Você está na página 1de 22

Web Services

O que um Web Service?


Um componente de software hospedado em um computador que
pode ser acessado por uma aplicao (ou outro componente de
software) armazenado em outro computador usando uma rede.
WS

Web Services
Tecnologias
Protocolo HTTP
Representao de dados (comumente, XML ou JSON)

WS

Web Services
APIs JAVA
JAX-WS baseia-se no protocolo SOAP, que usa envelopes XML.
JAX-RS usa REST, uma arquitetura de rede que usa requisies
tradicionais, como GET e POST.
WS

Web Services
Exemplos

Site de msicas
Vende CDs ou MP3

Site de ingressos
Vende ingressos de shows

Web Services
Exemplos

Site de msicas
Vende CDs ou MP3

WS

Site de ingressos
Vende ingressos de shows

Web Services
Exemplos
2

1
6

Web Services
Exemplos

WS

Web Services
Termos
A mquina que hospeda o ws o web service host.

Tornar um ws disponvel para receber requisies chama-se


publicar um ws.
Usar um ws a partir de uma aplicao cliente chama-se
consumir um ws.

Web Services
Rest Representational State Transfer
Um estilo arquitetural para implementar web services.

Esse estilo engloba conjunto de restries bem definidas visando


diversos benefcios.
Um web service implementado usando Rest chamado
RESTful web service.

Web Services
Restries Rest
Arquitetura cliente servidor.
Deve existir uma interface padro para a comunicao entre cliente
e servidor.
Stateless.
No deve existir nenhuma informao sobre o cliente armazenada
no servidor. A cada requisio, o cliente deve enviar informaes
suficientes para que o servidor o identifique. Sesso? Armazenada
no cliente.

Web Services
Restries Rest
Cacheable.
Cada resposta informa se pode ser armazenada em cache ou no.
Ou seja, uma nova requisio precisa saber se uma resposta prvia
pode ser reutilizada, o que pode acontecer caso a resposta seja
sempre a mesma. Que tal um arquivo esttico?
Sistema em camadas.
Quando faz uma requisio, o cliente no sabe dizer se est conectado
diretamente ao servidor final ou se a requisio foi redirecionada
entre mais servidores.

Web Services

Restries Rest
Cdigo sob demanda (opcional).
O servidor pode enviar cdigo para que o prprio cliente execute,
por exemplo, um Applet ou cdigo Javascript.

Interface Uniforme
Identificao de Recursos. Cada recurso identificado nas requisies e seu contedo so independentes
da representao usada para entreg-lo ao cliente.
Manipulao pelo cliente. Se o cliente a representao de um recurso, isso o suficiente para modific-lo
ou mesmo apag-lo.
Mensagens auto descritivas. Cada mensagem inclui informao suficiente para ser processada.
Hypermedia como engine do estado da aplicao (HATEOAS).
Clientes fazem transies entre recursos somente por meio de aes que so identificadas como hypermedia
pelo servidor (como os hyperlinks). A menos daquilo informado pelo servidor, o cliente no supe que alguma
ao esteja disponvel para qualquer recurso.

Web Services

Benefcios Rest
Em sua tese de doutorado, Roy Thomas Fielding demonstrou que
o uso das restries REST implicam nos seguintes benefcios.

Desempenho
Escalabilidade
Simplicidade
Manutenabilidade
Visibilidade
Portabilidade
Confiabilidade

Web Services
JSON Javascript Object Notation
Um subconjunto da linguagem Javascript para a representao
de dados

Web Services
JSON Javascript Object Notation
Exemplos
Empregado com nome, telefone e endereo
Em Java
public class Empregado{
private String nome;
private String telefone;
private String endereco;
}

JSON
{"nome" : "Jos da Silva", "telefone" : "12345678" , "Endereo" : "Rua C, 121"}

Web Services
JSON Javascript Object Notation
new Empregado ("Jos da Silva", "12345678", "Rua C, 121");

Aplicao Java

Outra aplicao, talvez outra linguagem


Processa dados recebidos e os representa
de acordo com suas estruturas de dados
disponveis.

{"nome" : "Jos da Silva", "telefone" : "12345678" , "Endereo" : "Rua C, 121"}

Web Services
JSON Javascript Object Notation
Vetor de animais

"animais": [
{"tipo" : "girafa", "idade" : "15"},
{"tipo" : "elefante", "idade" : "23"}
{"tipo" : "cachorro", "idade" : "4"}
]

Web Services
JSON Javascript Object Notation
Fonte: http://json.org/

Web Services
JSON Javascript Object Notation
Fonte: http://json.org/

Web Services
JSON Javascript Object Notation
Fonte: http://json.org/

Web Services
JSON Javascript Object Notation
Fonte: http://json.org/

Web Services
JSON Javascript Object Notation
Fonte: http://json.org/

Você também pode gostar