aula web services

22
Web Services O que é um Web Service? Um componente de software hospedado em um computador que pode ser acessado por uma aplicação (ou outro componente de software) armazenado em outro computador usando uma rede. WS

Upload: robson-silva

Post on 17-Aug-2015

232 views

Category:

Documents


0 download

DESCRIPTION

aula

TRANSCRIPT

Web ServicesO que um Web Service?Um componente de software hospedado em um computador quepode ser acessado por uma aplicao (ou outro componente desoftware) armazenado em outro computador usando uma rede.WSWeb ServicesTecnologiasProtocolo HTTPWSRepresentao de dados (comumente, XML ou JSON)Web ServicesAPIs JAVAJAX-WS baseia-se no protocolo SOAP, que usa envelopes XML.WSJAX-RS usa REST, uma arquitetura de rede que usa requisiestradicionais, como GET e POST.Web ServicesExemplosSite de msicasVende CDs ou MP3Site de ingressosVende ingressos de showsWeb ServicesExemplosSite de msicasVende CDs ou MP3Site de ingressosVende ingressos de showsWSWeb ServicesExemplos143256Web ServicesExemplosWSWeb ServicesTermosA mquina que hospeda o ws o web service host.Tornar um ws disponvel para receber requisies chama-se publicar um ws.Usar um ws a partir de uma aplicao cliente chama-se consumir um ws.Web ServicesRest Representational State TransferUm estilo arquitetural para implementar web services.Esse estilo engloba conjunto de restries bem definidas visandodiversos benefcios.Um web service implementado usando Rest chamado RESTful web service.Web ServicesRestries RestArquitetura cliente servidor. Deve existir uma interface padro para a comunicao entre cliente e servidor.Stateless. No deve existir nenhuma informao sobre o cliente armazenadano servidor. A cada requisio, o cliente deve enviar informaessuficientes para que o servidor o identifique. Sesso? Armazenadano cliente.Web ServicesRestries RestCacheable. Cada resposta informa se pode ser armazenada em cache ou no.Ou seja, uma nova requisio precisa saber se uma resposta prviapode ser reutilizada, o que pode acontecer caso a resposta sejasempre a mesma. Que tal um arquivo esttico?Sistema em camadas.Quando faz uma requisio, o cliente no sabe dizer se est conectadodiretamente ao servidor final ou se a requisio foi redirecionadaentre mais servidores.Web ServicesRestries RestCdigo sob demanda (opcional). O servidor pode enviar cdigo para que o prprio cliente execute,por exemplo, um Applet ou cdigo Javascript.Interface UniformeIdentificao de Recursos. Cada recurso identificado nas requisies e seu contedo so independentesda representao usada para entreg-lo ao cliente.Manipulao pelo cliente. Se o cliente a representao de um recurso, isso o suficiente para modific-loou mesmo apag-lo.Mensagens auto descritivas. Cada mensagem inclui informao suficiente para ser processada.Hypermedia como engine do estado da aplicao (HATEOAS). Clientes fazem transies entre recursos somente por meio de aes que so identificadas como hypermediapelo servidor (como os hyperlinks). A menos daquilo informado pelo servidor, o cliente no supe que algumaao esteja disponvel para qualquer recurso.Web ServicesBenefcios RestEm sua tese de doutorado, Roy Thomas Fielding demonstrou queo uso das restries REST implicam nos seguintes benefcios.DesempenhoEscalabilidadeSimplicidadeManutenabilidadeVisibilidadePortabilidadeConfiabilidadeWeb ServicesJSON Javascript Object NotationUm subconjunto da linguagem Javascript para a representao de dadosWeb ServicesJSON Javascript Object NotationExemplosEmpregado com nome, telefone e endereo{"nome" : "Jos da Silva", "telefone" : "12345678" , "Endereo" : "Rua C, 121"}Em Javapublic class Empregado{private String nome;private String telefone;private String endereco;}JSONWeb ServicesJSON Javascript Object NotationAplicao Javanew Empregado ("Jos da Silva", "12345678", "Rua C, 121");Outra aplicao, talvez outra linguagem{"nome" : "Jos da Silva", "telefone" : "12345678" , "Endereo" : "Rua C, 121"}Processa dados recebidos e os representade acordo com suas estruturas de dadosdisponveis.Web ServicesJSON Javascript Object NotationVetor de animais"animais": [{"tipo" : "girafa", "idade" : "15"},{"tipo" : "elefante", "idade" : "23"}{"tipo" : "cachorro", "idade" : "4"}]Web ServicesJSON Javascript Object NotationFonte: http://json.org/Web ServicesJSON Javascript Object NotationFonte: http://json.org/Web ServicesJSON Javascript Object NotationFonte: http://json.org/Web ServicesJSON Javascript Object NotationFonte: http://json.org/Web ServicesJSON Javascript Object NotationFonte: http://json.org/