Bruno C. de Paula Web Services 1º Semestre 2010 > PUCPR > BSI Resumo da aula Trabalharemos hoje com o conceito de Web Services; Vamos aprender como representar de maneira mais eficiente e fácil de construir as nossas interfaces Web; Até agora, nós construímos nossas aplicações web para pessoas acessarem; Web services permitem que outros programas acessem a sua aplicação web; 05/11/2015 Vamos usar web services quando precisarmos comunicar nosso programa em ASP.NET com outra plataforma 3 Cenário de motivação para uso de web services 5 Requisição Cliente X Servidor 6 Resposta do Servidor ao Cliente 7 ! A situação anterior é péssima! Necessidade de criação de N respostas diferentes, dependendo do número de tipos de cliente! A próxima situação melhora um pouco 9 ! 10 Web Service não é: Site para Web Genérico que disponibilize um serviço 11 Web Service é: Arquitetura para criação de aplicações que podem ser acessadas a partir de diferentes plataformas (interoperabilidade); Identificado através de uma URL; Aplicação que recebe e retorna mensagens em formatos padrão: XML; XML/SOAP; XML/RSS; JSON... Interoperabilidade sempre foi tentada! 12 13 Modelos de Web Service: SOAP x REST 14 SOAP 15 Ser humano 16 Web Service também é acessível via URL! 17 Padrões XML (eXtensible Markup Language): Metalinguagem; Linguagem para construir linguagens. SOAP (Simple Object Access Protocol): Gramática de envio e resposta; Descrição do formato da mensagem; Duas partes: Cabeçalho e Payload. 18 Exemplo de serviço em .Net http://www.bronzebusiness.com.br/webservic es/valida.asmx?op=valida_cpf 19 20 21 22 HTTP Protocolo de transferência de hipertexto; Conexão, Requisição, Resposta, Fechamento. 23 WSDL Descrição de quais métodos um certo serviço responde; http://www.bronzebusiness.com.br/webservices/valida .asmx?WSDL 24 UDDI Universal Discovery, Description and Integration; Diretório de Web Services; Lista que permite que se encontre de forma fácil um Web Service de acordo com o interesse. 25 26 Analogia com restaurante! Você busca nas páginas amarelas (UDDI) um restaurante para comer; Chegando lá, recebe um cardápio (WSDL) com as opções de comida; Faz o pedido ao garçom (SOAP) que andando, leva à cozinha (HTTP); Lá na cozinha, você não sabe o que tem dentro (e não importa), o Cozinheiro prepara a comida (Sistema); Depois de pronto, recebe uma resposta (SOAP). 27 REST 28 REST Cada url deve representar um recurso; Geralmente, via método GET, cada recurso deve ser diferenciável; NÃO TEM WSDL e nem UDDI! Retorno livre: XML; JSON; Etc. 29 Modelo tradicional Premier Customer Representative Clientes Premier Reserva de Passagem Clientes Regulares Resposta Automática Regular Customer Representative 30 Modelo REST 1-800Premier Premier Customer Representative Clientes Premier Clientes Freqüentes Clientes Regulares 1-800Frequent F.F. Customer Representative 1-800Reservation Regular Customer Representative 31 Modelo REST http://www.kings-air/reservations/premier client Clientes Premier http://www.kings-air/reservations/frequent-flyer client Clientes Freqüentes http://www.kings-air/reservations/regular client Clientes Regulares Premier Member Reservation Service Frequent Flyer Reservation Service Regular Member Reservation Service 32 Exemplo de chamada a um serviço Mais exemplos: http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2Is &city=Curitiba http://search.twitter.com/search.atom?q=PUCPR http://search.twitter.com/search.json?q=PUCPR&callback=exibirResultados http://maps.google.com/maps/api/geocode/json?address=1155+Imaculada+Conceicao http://iplocationtools.com/ip_query_country.php?ip=74.125.45.100 http://www.spore.com/static/model/500/226/147/500226147573.xml ... 33 SOAP X REST? 34 SOAP X REST Grande suporte; 70% Fortune 500. Suporte médio; 35 SOAP X REST Codificação rápida; Com WSDL. Codificação menos produtiva; Sem WSDL. 35 36 SOAP X REST Complexo; Simples e legível. Pesado. 36