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