2. Web Services
Motivação.
• Integração entre serviços distintos.
• Padronização no retorno de cada requisição de
serviços.(WSDL)
• Independência de tecnologia de desenvolvimento e
plataformas.
3. Web Services
Motivação
• Os Web Services estão acima de plataformas,
bancos de dados, e linguagens de programação,
livrando completamente os desenvolvedores das
limitações previamente encontradas na interface
entre aplicativos.
4. Web Services
O Que é um Web Service?
Segundo a W3C(World Wide Web
Consortium),podemos defini-lo como: um sistema de
software projetado para suportar a
interoperabilidade entre máquinas sobre rede.
Um serviço web é um serviço que está publicado na
web
e disponível para qualquer pessoa/sistema possa
interagir com ele.
5. Web Services
Integração e Reuso
• Web Services permitem o compartilhamento de
Dados entre sistemas distintos (implementações
diferentes).
• Antes dos Web Services já existia interação entre
aplicações, a vantagem de se utilizar WS é o Reuso.
6. Web Services
Descritores de Serviço
• WSDL - Web Services Description Language.
Linguagem baseada em XML recomendada pelo
W3C
que tem por objetivo descrever web services através
dos métodos de requisição HTTP, passagem de
valores e formas de retorno.
7. Web Services
Páginas Amarelas de Serviços
• Universal Description, Discovery and Integration
(UDDI)
O UDDI atua como um diretório de arquivos
descritores de serviços.
8. Web Services
Implementação
• A implementação de web services promoveu não só
mudanças na interação entre sistemas, mas na
própria arquitetura de tais sistemas; SOA (Arquitetura
orientada a Serviço) é a prova concreta disso.
• SOAP: Protocolo especificado para a troca de
mensagens baseadas em XML em redes TCP/IP.
SOAP é um acrônimo de Simple Object Access
Protocol e é fundamentalmente usado por web
services, para a transmissão de mensagens e
requisição remota de processos.
9. Web Services
Implementação
• É importante saber que as idéias fundamentais que
construíram os web services provêm de tecnologias e
produtos anteriores, entre eles estão CORBA, DCOM
e RPC/RMI. Além dessas iniciativas prévias, existem
iniciativas atuais que também possibilitam o uso de
serviços pela Internet com eficiência. A principal
dessas iniciativas é denominada REST
(Representational State Transfer).
10. Arquitetura REST
• REST é uma abreviação de Representation State
Transfer, ou traduzindo, Transferência de Estado
Representacional
• Principais características arquiteturais incorporadas:
• Separação de responsabilidade entre as camadas
cliente servidor
• Comunicações independentes (stateless)
• Uso de cache (para eliminar algumas interações
desnecessárias entre cliente e servidor)
• Utilização de uma interface uniforme entre os
componentes
11. Arquitetura REST
• Essas características quando aplicadas à um web
service melhora o desempenho do sistema em geral
• Se comparar com o protocolo SOAP, diminui o tempo
de resposta das aplicações e seu uso gera uma
maior flexibilidade e simplicidade
• REST é composto por um conjunto de elementos
arquiteturais, as três classes de elementos:
Elementos de Dados, Conectores e Componentes
12. REST - Elementos de Dados
• São os elementos que contém a informação a ser
usada e transformada
• Recursos: Conceito-chave da arquitetura REST, é
qualquer informação que possa receber um nome
• Identificadores: Identifica um recurso específico
envolvido em uma interação entre clientes e
servidores. REST usa o URI (Unified Resourse
Identifier) como identificador de recursos
• Representações: São usadas para capturar o estado
atual e o estado desejado de um recurso solicitado.
Na prática são sequências de bytes acrescidas de
meta-dados
13. REST - Componentes
• São elementos que usam ou transformam a
informação, são caracterizados de acordo com o
papel que exercem
• Servidor de Origem (trata de requisições de um
cliente)
• Proxy e Gateway, utilizados para permitir o
encaminhamento das requisições e respostas.
• Agente do usuário, inicia a requisição e, logo em
seguida, se torna o destino final de uma resposta
14. REST - Conectores
• São elementos que interligam outros elementos. Rest
usa conectores para encapsular a atividade de
acesso aos recursos e para transferir as suas
representações
• Cliente e Servidor, são responsáveis pelo acesso aos
recursos
• Cache, armazena as respostas passíveis de cache
• Resolver é responsável pela conversão de um URI
em um endereço de rede
• Túnel cria um caminho virtual para o tráfego dos
recursos
15. REST - Métodos Nativos HTTP
• Para padronizar o formato das representações de um
recurso, REST utiliza uma interface uniforme de
componentes que é aplicada através da utilização
dos métodos nativos do protocolo HTTP
• Principais métodos HTTP utilizados em aplicações
RESTFul:
16. JSON (JavaScript Object Notation)
• Modelo para armazenamento e transmissão de
informações no formato texto
• Tem a capacidade de estruturar informações de uma
forma bem mais compacta do que XML, tornando
mais rápido o parsing dessas informações
• É um formato texto e completamente independente
de linguagem, pois usa convenções que são
familiares às linguagens C e familiares.
• Dividido em duas estruturas:
• Uma coleção de pares nome/valor
• Lista ordenada de valores: array
17. JSON
• Um Objeto com estrutura complexa possui
arrays, hierarquias e Informações opcionais
• Fornece a capacidade de atribuir métodos de
execução (funções) que estarão diretamente ligadas
ao objeto criado.
• Sua forma de aplicação assemelha-se a um objeto
abstraído do mundo real o qual trabalhamos em POO
18. JSON x XML
• Vantagens
o Leitura mais simples
o Analisador (parsing) mais fácil
o Suporta objetos
o Velocidade maior na execução e transporte de
dados
o Arquivo com tamanho reduzido
• Desvantagens
o As informações representadas em JSON não
podem ser validadas por um esquema, Já em
XML, é possível validar através por DTD e XML
Schema