O documento discute os conceitos de web services, REST e SOAP. Define web services como sistemas de software que permitem a interação entre máquinas através de redes. Compara SOAP e REST, destacando que SOAP usa XML e HTTP enquanto REST usa métodos HTTP para acessar recursos representados por URIs.
2. Definição
A definição de Web Services de acordo com a W3C diz que é um sistema de
software responsável por proporcionar a interação entre duas máquinas
através de uma rede.
3. Outras soluções:
● DCOM (Distributed Component Object Model)
● CORBA
● JAVA RMI
● Problemas de interoperabilidade
● Orientados a ligação
● Dependentes de plataforma
5. Reduzir complexidade de integração
O desenvolvimento de aplicações em ambientes corporativos ganhou,
com o tempo, proporções que não poderiam ser previstas a curto prazo. Esse
crescimento desordenado criou uma espécie de “colcha de retalhos” onde
cada componente é desenvolvido para ligar 2 pontos específicos e possuem
alto acoplamento dentro do sistema fazendo com que haja uma grande
redundância de funcionalidades.
6. Características
● Expõe funcionalidades de programação na web
● São acedidos usando protocolos standard HTTP
● Comunicam por meio de mensagens
● Usam XML para codificar mensagens
● Estrutura as mensagens usando o protocolo SOAP
● São auto-descritivos permitindo a um cliente facilmente
comunicar com os serviço - WSDL
● São serviços que podem ser registrados e facilmente
descobertos
7. Arquitetura de um web service SOA
Uma definição técnica de web services SOA poderia ser como um serviço disponibilizado na Internet,
descrito via WSDL, registrado via UDDI, acessado utilizando SOAP e com os dados transmitidos
sendo representados em XML.
8. SOAP
SOAP (Simple Object Access Protocol) é um protocolo para troca de
informações em ambiente distribuído. É baseado em definições XML e
utilizado para acessar web services. Esse protocolo encapsula as chamadas e
retornos aos métodos dos web services, sendo utilizado, principalmente, sobre
HTTP.
9. De acordo com o W3Schools, a estrutura da mensagem SOAP é definida em um documento XML que
contém os seguintes elementos:
SOAP
10. WSDL
WSDL (Web Services Description Language) é a linguagem de descrição de
web services baseada em XML. Ela permite, através da definição de um
vocabulário em XML, a possibilidade de descrever serviços e a troca de
mensagens. Mais especificamente é responsável por prover as informações
necessárias para a invocação do web service, como sua localização,
operações disponíveis e suas assinaturas.
11. WSDL
Message : define a part de cada mensagem associada a um tipo
PortType : define “glossaryTerms” como um porta e <operation> define o metodo a ser chamado
Input: “getTerms” tem com mensagem de entrada “getTermRequest”
output: “getTerms” tem com mensagem de saída ‘“getTermresponse”
12. UDDI
UDDI (Universal Description, Discovery and Integration) é um serviço de
diretório onde empresas podem registrar (publicar) e buscar (descobrir) por
serviços Web (Web Services). UDDI é ainda um framework de plataforma
independente (desenvolvido na plataforma .NET) para descrever e integrar os
serviços de negócios usando a internet, possibilitando assim uma exposição
controlada dos serviços da empresa. A comunicação é realizada através do
SOAP e as interfaces web service são descritas por WSDL.
Um serviço de registro UDDI é um WS que gerencia informação sobre
provedores, implementações e metadados de serviços. Provedores de serviços
podem utilizar UDDI para publicar os serviços que eles oferecem. Usuários de
serviços podem usar UDDI para descobrir serviços que lhes interessem e obter
os metadados necessários para utilizar esses serviços.
13. Vantagens do SOAP
● Pode atravessar firewalls com facilidade.
● Os dados do SOAP são estruturados usando XML. Portanto, as
mensagens podem ser compreendidas por quase todas as plataformas de
hardware, sistemas operacionais e linguagens de programação.
● Pode ser usado, potencialmente, em combinação com vários protocolos
de transporte de dados, como HTTP, SMTP e FTP.
● O SOAP mapeia satisfatoriamente para o padrão de solicitação / resposta
HTTP.
● Pode ser usado tanto de forma anônima como com autenticação
(nome/senha).
14. Desvantagens do SOAP
● Pode ser usado tanto de forma anônima como com autenticação
(nome/senha).
● Mecanismos de Segurança Imaturos.
● O SOAP não define mecanismo para criptografia do conteúdo de uma
mensagem SOAP, o que evitaria que outros tivessem acesso ao conteúdo
da mensagem.
● Não existe garantia quanto à entrega da mensagem.
● Um cliente SOAP não pode enviar uma solicitação a vários servidores,
sem enviar a solicitação a todos os servidores.
● Incapacidade de transportar conteudo complexo como arquivos de
imagens ou sons
15. Ligação SOAP + HTTP
Requisição HTTP
POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain
Content-Length: 200
Uma requisição SOAP é uma requisição HTTP que usa o padrão de
request/response definido pelas regras de codificação SOAP
HTTP + XML = SOAP
Uma requisição SOAP pode ser feita através de POST ou GET.
16. Rest
REST: significa (Representational State
Transfer) é um estilo de desenvolvimento de
web services que teve origem na tese de
doutorado de Roy Fielding
17. Caracteristicas
● Uso adequado dos métodos HTTP.
● Uso adequado de URL’s
● Uso adequado de cabeçalho HTTP
● Interligação entre vários recursos diferentes
18. Recursos
O “marco zero” de REST é o recurso. Em REST, tudo é
definido em termos de recursos, sendo estes os conjuntos
de dados que são trafegados pelo protocolo. Os recursos
são representados por URI’s
19. Exemplo Request
Request: http://localhost:8080/cervejaria/clientes
• http:// - Indica o protocolo que está sendo utilizado (no caso, HTTP);
• localhost:8080 - Indica o servidor de rede que está sendo utilizado e a porta (quando a porta não é
especificada, assume-se que é a padrão - no caso do protocolo HTTP, 80);
• cervejaria - Indica o contexto da aplicação, ou seja, a raiz pela qual a aplicação está sendo fornecida
para o cliente (Domínio).
• clientes - É o endereço, de fato, do recurso - no caso, a listagem de clientes. Vou me referir a este,
daqui em diante, como endereço do recurso.
21. Exemplo Response
Se você desejar, portanto, retornar um cliente específico, você deve utilizar
uma URL diferente. Suponha, por exemplo, que você deseja retornar o cliente
com id igual a 1: http://localhost:8080/cervejaria/clientes/1
Isso retornaria algo como:
<cliente id="1">
<nome>Alexandre</nome>
<dataNascimento>2012-12-01</dataNascimento>
</cliente>
22. HTTP métodos
Cada método possui particularidades e aplicações de acordo com a necessidade. Estas
particularidades são definidas em termos de idempotência, segurança e mecanismo de
passagem de parâmetros
• GET
• POST
• PUT
• DELETE
• OPTIONS
• HEAD
• TRACE
• CONNECT
24. SOAP VS REST
SOAP:
● independência de transporte (SMTP, HTTP, UDP)
● Segurança
● Machine-readable
● Maior flexibilidade
● Interoperabilidade
● Serviço mais robusto.
25. SOAP VS REST
● Mensagens menores
● Simplicidade.
● Explora melhor com o HTTP.
● A comunicação não é restrita a xml.
26. Referencias
[1]G. Alonso, F. Casati, H. Kuno, V. Machiraju. Web Services: Concepts,
Architecture and Applications. Springer Verlag 2004
[2]G. Alonso, F. Casati, H. Kuno, V. Machiraju. Web Services: Concepts,
Architecture and Applications. Springer Verlag 2004
[3]http://www.oreilly.com/catalog/progwebsoap/chapter/ch03.html
[4]http://pt.wikipedia.org/wiki/Web_service
[5]http://www.caelum.com.br/apostila-java-testes-jsf-web-services-design-
patterns/acessando-um-web-service/#6-2-consumindo-dados-de-um-web-
service
[6]http://www.webopedia.com/TERM/W/Web_Services.html
[7]http://www.devmedia.com.br/introducao-as-tecnologias-web-services-soa-