Bruno C. de Paula
Tecnologia de Programação
Web Services
1º Semestre 2009 > 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
depurar as nossas interfaces Web;
Chega de usar páginas ASPX sem
poder:
• Criar classes;
• Depurar facilmente.
•Além disso, verificaremos como
comunicar nossos programas C# com o
Java.
Requisição Cliente X Servidor
05/11/2015
3
Resposta do Servidor ao Cliente
05/11/2015
4
!
05/11/2015
5
A situação anterior é péssima
situação!
Necessidade de criação de N
respostas diferentes,
dependendo do número de
tipos de cliente!
!
05/11/2015
7
!
Processamento
Duplicado!
!
05/11/2015
8
Processamento
05/11/2015
9
Web Service não é:
Site para Web Genérico que
disponibilize um serviço
05/11/2015
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...
05/11/2015
11
Interoperabilidade sempre foi
tentada!
05/11/2015
12
Modelos de Web Service:
SOAP x REST
05/11/2015
13
SOAP
05/11/2015
14
Ser humano
05/11/2015
15
Web Service também é acessível
via URL!
05/11/2015
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.
05/11/2015
17
Exemplo
http://www.bronzebusiness.com.br/webservic
es/valida.asmx?op=valida_cpf
05/11/2015
18
05/11/2015
19
05/11/2015
20
05/11/2015
21
HTTP
Protocolo de transferência de
hipertexto;
Conexão, Requisição, Resposta,
Fechamento.
05/11/2015
22
WSDL
Descrição de quais métodos um certo
serviço responde;
 http://www.bronzebusiness.com.br/webservices/valida
.asmx?WSDL
05/11/2015
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.
05/11/2015
24
05/11/2015
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).
05/11/2015
26
REST
05/11/2015
27
REST
Cada url deve representar um recurso;
Via método GET, cada recurso deve ser
diferenciável;
NÃO TEM WSDL e nem UDDI!
Retorno livre:
– XML;
– JSON;
– Etc.
05/11/2015
28
Modelo tradicional
Premier
Customer
Representative
Clientes
Premier
Reserva de
Passagem
Clientes
Regulares
05/11/2015
Resposta
Automática
Regular
Customer
Representative
29
Modelo REST
1-800Premier
Clientes
Premier
Clientes
Freqüentes
1-800Frequent
1-800Reservation
Clientes
Regulares
05/11/2015
Premier
Customer
Representativ
e
F.F.
Customer
Representativ
e
Regular
Customer
Representativ
e
30
Modelo REST
client
http://www.kingsair/reservations/premier
Clientes
client
http://www.kings-air/reservations/frequentflyer
Clientes
Freqüentes
client
Clientes
Regulares
05/11/2015
http://www.kingsair/reservations/regular
Premier
Member
Reservatio
n
Service
Frequent
Flyer
Reservatio
n
Service
Regular
Member
Reservatio
n
Service
31
Exemplo de chamada a um
serviço
Mais exemplos:
http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2Isd
http://json-random.appjet.net/?num=5&min=10&max=20&callback=randomcallback
http://iplocationtools.com/ip_query_country.php?ip=74.125.45.100
http://www.spore.com/static/model/500/226/147/500226147573.xml
...
05/11/2015
32
SOAP X REST?
05/11/2015
33
SOAP X REST
Grande
suporte;
70%
Fortune
500.
05/11/2015
Suporte
médio;
34
SOAP X REST
Codificação
rápida;
Com WSDL.
05/11/2015
Codificação
menos
produtiva;
Sem WSDL.
35
SOAP X REST
Complexo;
Pesado.
05/11/2015
Simples e
legível.
36
Download

apresentação - Bruno Campagnolo de Paula