Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

36
Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula

Transcript of Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Page 1: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Web Services

1º Semestre 2010 > PUCPR > BSI

Bruno C. de PaulaBruno C. de Paula

Page 2: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno 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;

Page 3: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Vamos usar web services quando precisarmos comunicar nosso programa em ASP.NET com outra plataforma

311/04/23

Page 4: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Cenário de motivação para uso de web services

Page 5: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

5

Requisição Cliente X Servidor

Page 6: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

6

Resposta do Servidor ao Cliente

Page 7: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

7

!

Page 8: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 9: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

9

!

Page 10: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Web Service não é:

Site para Web Genérico que disponibilize um serviço

10

Page 11: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 12: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Interoperabilidade sempre foi tentada!

12

Page 13: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Modelos de Web Service:SOAP x REST

13

Page 14: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

SOAP

14

Page 15: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Ser humano15

Page 16: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Web Service também é acessível via URL!

16

Page 17: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 18: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Exemplo de serviço em .Net

http://www.bronzebusiness.com.br/webservices/valida.asmx?op=valida_cpf

18

Page 19: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

19

Page 20: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

20

Page 21: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

21

Page 22: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

HTTP

Protocolo de transferência de hipertexto;

Conexão, Requisição, Resposta, Fechamento.

22

Page 23: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

WSDL

Descrição de quais métodos um certo serviço responde;

http://www.bronzebusiness.com.br/webservices/valida.asmx?WSDL

23

Page 24: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 25: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

25

Page 26: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 27: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

REST

27

Page 28: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 29: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

Modelo tradicional29

Clientes Premier

Clientes Regulares

Reserva de Passagem

Resposta Automática

PremierCustomer

Representative

RegularCustomer

Representative

Page 30: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 31: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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

Page 32: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

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...

Page 33: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

SOAP X REST?33

Page 34: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

SOAP X REST

Grande suporte;

70% Fortune 500.

34

Suporte médio;

Page 35: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

35

SOAP X REST

Codificação rápida;

Com WSDL.

35

Codificação menos produtiva;

Sem WSDL.

Page 36: Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.

36

36

SOAP X REST

Complexo;Pesado.

36

Simples e legível.