Introdução à Web services

Post on 08-Aug-2015

48 views 3 download

Transcript of Introdução à Web services

INSTITUTO  FEDERAL  RIO  GRANDE  DO  SUL  Campus  Osório  

1  

Ao final desta Aula: ü  Compreender o que são Web Services, e sua origem;

ü  Visão geral sobre WS-* e REST Web Services;

ü  construir um REST Web Services na linguagem Java

2  

Lembre-se

ü Sempre que tiver dúvidas, pergunte.

ü Muita atenção nas explicações;

ü Utilize as referências para estudar em casa.

3  

ü Protocolo HTTP;

ü Fundamentos de Arquitetura Web;

ü Fundamentos Cliente / Servidor;

ü XML.

Caso tenha dificuldades na resolução do exercício, revise o seguinte conteúdo:

4  

Para que usamos a Web?

5  

Como interagir?

Página Web + Banco de dados  6  

Competitividade

7  

Como interagir?

Pagamento   Loja  

Filial  

Fábrica  Fornecedor  

Transporte  Cliente  8  

Sistemas Operacionais

Bancos deDados  

Linguagens deProgramação  

Políticas de Segurança  

9  

Tecnologias Relacionadas

10  

Computação Distribuída “É um tipo de computação, em que diferentes componentes e objetos que compreendem uma aplicação podem ser localizados em diferentes computadores ligados a uma rede.” (Nagappan, 2001).

Aplicações  

Objeto  

Internet  

Objeto  

Objeto  TCP-­‐IP   TCP-­‐IP  

11  

Computação Distribuída

ü  Maior desempenho. Os aplicativos podem executar em paralelo e distribuir a carga em vários servidores.

ü  Colaboração. Vários aplicativos podem ser conectados através de mecanismos de padrões de computação distribuída.

ü  Maior confiabilidade e disponibilidade. Aplicativos ou servidores podem ser agrupados em várias máquinas.

ü  Escalabilidade. Isto pode ser alcançado por meio da implantação desses componentes reutilizáveis distribuídos em potentes servidores.

ü  Extensibilidade. Isto pode ser alcançado através de configuração dinâmica de aplicações que são distribuídos por toda a rede.

12  

Computação Distribuídaü  Maior produtividade e menor tempo de ciclo de desenvolvimento. Ao

quebrar-se grandes problemas em menores, estes componentes individuais podem ser desenvolvidas por pequenas equipes de desenvolvimento em isolamento.

ü  Reutilização. Os componentes distribuídos podem realizar vários serviços que podem potencialmente ser utilizados por múltiplos aplicativos cliente. Ele economiza esforço de desenvolvimento repetitivo e melhora a interoperabilidade entre componentes.

ü  Redução de Custo. Como esse modelo fornece um monte de reutilização de componentes, uma vez desenvolvidos que são acessíveis através da rede, pode ser alcançado significativas reduções de custos de escala.

13  

Web Services“são componentes de negócio autoexplicativos e modulares que expõem a lógica de negócios como serviços através da Internet e de interfaces programáveis e usando protocolos de Internet com a finalidade de proporcionar maneiras de encontrar, assinar, e invocar esses serviços.” (Nagappan, 2003)

14  

Exemplo: Previsão do Tempo

h=p://servicos.cptec.inpe.br/XML/  15  

http://servicos.cptec.inpe.br/XML/listaCidades?city=porto%20alegre

<cidades> <cidade> <nome>Porto Alegre</nome> <uf>RS</uf> <id>237</uf> </cidade> <cidade> <nome>Porto Alegre do Norte</nome> <uf>MT</uf> <id>4127</uf> </cidade> </cidades>

16  

http://servicos.cptec.inpe.br/XML/cidade/237/previsao.xml

<cidade> <nome>Porto Alegre</nome> <uf>RS</uf> <atualizacao>2015-06-12<atualizacao> <previsao> <dia>2015-06-14</dia> <tempo>cm</tempo> <maxima>17</maxima> <minima>13</minima> <iuv>3.0</iuv> </previsao> </cidade>

17  

Exemplo: Busca por CEP

h=p://viacep.com.br/  18  

http://viacep.com.br/ws/90030-041/xml/

<xmlcep> <cep>90030-041</cep> <logradouro>Rua Coronel Vicente</logradouro> <complemento>lado ímpar</complemento> <bairro>Centro Histórico</bairro> <localidade>Porto Alegre</localidade> <uf>RS</uf> <ibge>4314902</ibge>

</xmlcep>

19  

http://viacep.com.br/ws/90030-041/json/

{  "cep":  "90030-­‐041",  "logradouro":  "Rua  Coronel  Vicente",  "complemento":  "lado  ímpar",  "bairro":  "Centro  Histórico",    "localidade":  "Porto  Alegre",  "uf":  "RS",  ”  ibge":  "4314902"  }

20  

Tipos de Web Services

WS-* (SOAP)   REST  Formalização WS-Transaction WS-Security WS-Addressing WS-Policy WSDL UDDI SOAP

UDI

Recurso

Método

Parâmetro

21  

WS-* Funcionamento Básico

22  

WS-* Comunicação

23  

WS-* UDDI

Protocolo para publicação e descoberta de Web Services  

24  

WS-* WSDL

Padroniza a descrição de um Web Service  

25  

WS-* SOAP

Trocar informações em ambientes distribuídos através de objetos do envelope.  

26  

REST Web Service

Recurso

Representação 1 Representação 2 Representação 3 Representação 4

GET PUT POST DELETE

URI

27  

Web Services - REST

28  

REST - Vantagensü  Protocolos menos complexos

ü  Maior flexibilidade

ü  Menos overhead de protocolo

29  

REST – Acesso aos Serviços

GET  

O  quê  Como  

Método  HTTP   URI  do  recurso  

/usuario/1234  

30  

REST – Métodos HTTPMétodo Descrição

GET Obtém  uma  representação  de  um  recurso

POST Cria  um  novo  recurso

PUT Cria  ou  altera  um  recurso  existente

DELETE Exclui  um  recurso

31  

REST – URI

GET  

O  quê  

URI  do  recurso  

/usuario/1234  

Baseado em Recursos  

32  

Exemplo – Loja Virtual

ü  Anunciar item

ü  Buscar ítens do fornecedor

ü  Cadastrar usuário

ü  Realizar oferta

ü  Retirar oferta

ü  Buscar ofertas de um item

ü  Buscar melhores ofertas

ü  Avaliar produtos

ü  Buscar avaliações do usuário

ü  Trocar senha usuário

33  

REST – Métodos HTTP

URI Método

/item/{id} GETPUT

/item/{id}/ofertas GETPOST

/oferta/{id}GETPUT

DELETE

/usuario POST

/usuario/{id} GETPUT

/usuario/{id}/avaliacoes GET

/usuario/{id}/itens GETPOST

/avaliacao/{id} GET/avaliacao/de/{id}/para/{id} POST

Exemplo - Loja Virtual  34  

João possui uma transportadora e desenvolveu um sistema web de encomendas online. Então, gostaria de integrar com diversas lojas virtuais existentes. João precisa criar um Web Service Rest para o cálculo do frete.

Peso  (Kg)   RS   Outros  estados  

Até  1   R$  20,00   R$  40,00  

Até  5   R$  30,00   R$  50,00  

Mais  que  5   R$  50,00   R$  70,00  

35  

ü Defina os recursos;

ü Defina as URIs;

ü Defina os formatos (XML,JSON..,);

ü Que métodos HTTP são aceitos em cada URI?

Passos para desenvolver um Rest Web Service  

36  

37  

ü  Web Services são excelentes para integração; ü  Podemos escolher entre os tipos WS-* ou REST;

ü  REST é mais flexível e mais leve;

ü  WS-* é o método tradicional

ü  Ganhamos independência de tecnologias como linguagens e sistemas operacionais quando implementamos Web Services.

Resumo  

38  

ü Crie um Web Service para obter o cpf de um cliente e verificar se o mesmo já existe no Banco de Dados.

ü Crie um Web Service que obtenha o peso e a altura e calculo o índice de massa corporal.

39  

Burke, B RESTful Java with JAX-RS 2.0. Editora O’Reilly, 2013

Cerami E. Web Servicess Essentials. Editora O’Reilly, 2002

Daigneau Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful

Web Services. Addison-Wesley, 2011

Duckett G. Web Services: Questions and Answers, Auto-delivered wirelessly, 2015

Graham S Building Web Services with Java: Making Sense of XML, SOAP, WSDL, and UDDI (2nd

Edition), editora Weyley, 2004

HANSEN, M. D. SOA using Java web services. Upper Saddle River: Prentice Hall, 2007.

Kalin, M. Java Web Services: Up and running. Editora O’Reilly 2013

Richardson L. RESTful Web APIs Editora O’Reilly, 2013          

Referências

40  

41