Post on 17-Apr-2015
Web Services
1º Semestre 2010 > PUCPR > BSI
Bruno C. de PaulaBruno C. de Paula
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;
Vamos usar web services quando precisarmos comunicar nosso programa em ASP.NET com outra plataforma
311/04/23
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
!
Web Service não é:
Site para Web Genérico que disponibilize um serviço
10
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...
11
Interoperabilidade sempre foi tentada!
12
Modelos de Web Service:SOAP x REST
13
SOAP
14
Ser humano15
Web Service também é acessível via URL!
16
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.
17
Exemplo de serviço em .Net
http://www.bronzebusiness.com.br/webservices/valida.asmx?op=valida_cpf
18
19
20
21
HTTP
Protocolo de transferência de hipertexto;
Conexão, Requisição, Resposta, Fechamento.
22
WSDL
Descrição de quais métodos um certo serviço responde;
http://www.bronzebusiness.com.br/webservices/valida.asmx?WSDL
23
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.
24
25
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).
26
REST
27
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.
28
Modelo tradicional29
Clientes Premier
Clientes Regulares
Reserva de Passagem
Resposta Automática
PremierCustomer
Representative
RegularCustomer
Representative
Modelo REST30
Clientes Premier
Clientes Freqüentes
Clientes Regulares
1-800-Premier
PremierCustomer
Representative
F.F.Customer
Representative
RegularCustomer
Representative
1-800-Frequent
1-800-Reservation
Modelo REST31
ClientesPremier
Clientes Freqüentes
Clientes Regulares
client
client
client
http://www.kings-air/reservations/premier
http://www.kings-air/reservations/frequent-flyer
http://www.kings-air/reservations/regular
PremierMember
ReservationService
FrequentFlyer
ReservationService
RegularMember
ReservationService
Exemplo de chamada a um serviço32
Mais exemplos:http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew--&city=Curitibahttp://search.twitter.com/search.atom?q=PUCPRhttp://search.twitter.com/search.json?q=PUCPR&callback=exibirResultadoshttp://maps.google.com/maps/api/geocode/json?address=1155+Imaculada+Conceicao,Curitiba&sensor=falsehttp://iplocationtools.com/ip_query_country.php?ip=74.125.45.100http://www.spore.com/static/model/500/226/147/500226147573.xml...
SOAP X REST?33
SOAP X REST
Grande suporte;
70% Fortune 500.
34
Suporte médio;
35
SOAP X REST
Codificação rápida;
Com WSDL.
35
Codificação menos produtiva;
Sem WSDL.
36
36
SOAP X REST
Complexo;Pesado.
36
Simples e legível.