41
INSTITUTO FEDERAL RIO GRANDE DO SUL Campus Osório 1

Introdução à Web services

Embed Size (px)

Citation preview

Page 1: Introdução à Web services

INSTITUTO  FEDERAL  RIO  GRANDE  DO  SUL  Campus  Osório  

1  

Page 2: Introdução à Web services

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  

Page 3: Introdução à Web services

Lembre-se

ü Sempre que tiver dúvidas, pergunte.

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

ü Utilize as referências para estudar em casa.

3  

Page 4: Introdução à Web services

ü 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  

Page 5: Introdução à Web services

Para que usamos a Web?

5  

Page 6: Introdução à Web services

Como interagir?

Página Web + Banco de dados  6  

Page 7: Introdução à Web services

Competitividade

7  

Page 8: Introdução à Web services

Como interagir?

Pagamento   Loja  

Filial  

Fábrica  Fornecedor  

Transporte  Cliente  8  

Page 9: Introdução à Web services

Sistemas Operacionais

Bancos deDados  

Linguagens deProgramação  

Políticas de Segurança  

9  

Page 10: Introdução à Web services

Tecnologias Relacionadas

10  

Page 11: Introdução à Web services

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  

Page 12: Introdução à Web services

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  

Page 13: Introdução à Web services

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  

Page 14: Introdução à Web services

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  

Page 15: Introdução à Web services

Exemplo: Previsão do Tempo

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

Page 16: Introdução à Web services

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  

Page 17: Introdução à Web services

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  

Page 18: Introdução à Web services

Exemplo: Busca por CEP

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

Page 19: Introdução à Web services

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  

Page 20: Introdução à Web services

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  

Page 21: Introdução à Web services

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  

Page 22: Introdução à Web services

WS-* Funcionamento Básico

22  

Page 23: Introdução à Web services

WS-* Comunicação

23  

Page 24: Introdução à Web services

WS-* UDDI

Protocolo para publicação e descoberta de Web Services  

24  

Page 25: Introdução à Web services

WS-* WSDL

Padroniza a descrição de um Web Service  

25  

Page 26: Introdução à Web services

WS-* SOAP

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

26  

Page 27: Introdução à Web services

REST Web Service

Recurso

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

GET PUT POST DELETE

URI

27  

Page 28: Introdução à Web services

Web Services - REST

28  

Page 29: Introdução à Web services

REST - Vantagensü  Protocolos menos complexos

ü  Maior flexibilidade

ü  Menos overhead de protocolo

29  

Page 30: Introdução à Web services

REST – Acesso aos Serviços

GET  

O  quê  Como  

Método  HTTP   URI  do  recurso  

/usuario/1234  

30  

Page 31: Introdução à Web services

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  

Page 32: Introdução à Web services

REST – URI

GET  

O  quê  

URI  do  recurso  

/usuario/1234  

Baseado em Recursos  

32  

Page 33: Introdução à Web services

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  

Page 34: Introdução à Web services

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  

Page 35: Introdução à Web services

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  

Page 36: Introdução à Web services

ü 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  

Page 37: Introdução à Web services

37  

Page 38: Introdução à Web services

ü  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  

Page 39: Introdução à Web services

ü 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  

Page 40: Introdução à Web services

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  

Page 41: Introdução à Web services

41