introdução à web services
TRANSCRIPT
![Page 1: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/1.jpg)
INSTITUTO FEDERAL RIO GRANDE DO SUL Campus Osório
1
![Page 2: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/4.jpg)
ü 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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/5.jpg)
Para que usamos a Web?
5
![Page 6: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/6.jpg)
Como interagir?
Página Web + Banco de dados 6
![Page 7: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/7.jpg)
Competitividade
7
![Page 8: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/8.jpg)
Como interagir?
Pagamento Loja
Filial
Fábrica Fornecedor
Transporte Cliente 8
![Page 9: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/9.jpg)
Sistemas Operacionais
Bancos deDados
Linguagens deProgramação
Políticas de Segurança
9
![Page 10: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/10.jpg)
Tecnologias Relacionadas
10
![Page 11: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/15.jpg)
Exemplo: Previsão do Tempo
h=p://servicos.cptec.inpe.br/XML/ 15
![Page 16: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/18.jpg)
Exemplo: Busca por CEP
h=p://viacep.com.br/ 18
![Page 19: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/22.jpg)
WS-* Funcionamento Básico
22
![Page 23: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/23.jpg)
WS-* Comunicação
23
![Page 24: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/24.jpg)
WS-* UDDI
Protocolo para publicação e descoberta de Web Services
24
![Page 25: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/25.jpg)
WS-* WSDL
Padroniza a descrição de um Web Service
25
![Page 26: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/26.jpg)
WS-* SOAP
Trocar informações em ambientes distribuídos através de objetos do envelope.
26
![Page 27: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/28.jpg)
Web Services - REST
28
![Page 29: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/29.jpg)
REST - Vantagensü Protocolos menos complexos
ü Maior flexibilidade
ü Menos overhead de protocolo
29
![Page 30: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/30.jpg)
REST – Acesso aos Serviços
GET
O quê Como
Método HTTP URI do recurso
/usuario/1234
30
![Page 31: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/32.jpg)
REST – URI
GET
O quê
URI do recurso
/usuario/1234
Baseado em Recursos
32
![Page 33: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/36.jpg)
ü 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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/37.jpg)
37
![Page 38: Introdução à Web services](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/38.jpg)
ü 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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/39.jpg)
ü 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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.com.br/reader030/viewer/2022013115/55c6245abb61ebd3338b481b/html5/thumbnails/41.jpg)
41