Sistema de software projetado para permitir
interoperabilidade na interação entre máquinas
através de uma rede
Surgiram com a missão de integrar
sistemas heterogênos
Disponibilizado por meio de um contrato, que é uma interface que disponibiliza suas
funcionalidades, com uma infraestrutura leve e desacoplada de plataforma facilitando a
integração entre diferentes tecnologias
Componentes de aplicativos baseados em XML,
autocontidos e autodescritivos, que se comunicam usando
protocolos abertos
Autocontidos: não necessitam ou dependem
de outros componentes para existir - eles se
bastam
Autodescritivos: não necessitam de
informações externas para expor suas
funcionalidades
Baseados em protocolos abertos: protocolos
não-proprietários - protocolos padrões da
internet
Uma interface que descreve uma coleção de operações que
são acessíveis pela rede através de mensagens XML
padronizadas
Podem ser descobertos com UDDI e ser
utilizados por outras aplicações
Representam uma lógica/função de negócio ou um
serviço que pode ser acessado por uma outra aplicação
na web
Gerações de Web services
Web services de
Primeira Geração
Composta por meio de tecnologias e
especificações abertas: WSDL, XSD, SOAP,
UDDI e o WS-I
Carece de qualidade para executar projetos críticos
com funcionalidades de produção em nível de
organização
Categorias de participantes
Provedor de serviços: indústria, negócio ou empresa
capaz de criar e fornecer serviços baseados em
software
As interações entre o provedor e o agente
são basicamente a publicação dos
serviços
A interação entre entre o solicitante e o agente
é a tarefa de pesquisar os serviços e os
provedores de serviços
A interação entre o provedor e o solicitante
é chamada de vínculo (bind)
Solicitante de serviços: empresa ou
negócio que gostaria de usar o serviço
Agente de serviços: entidade ou sistema, que
ajuda o solicitante de serviços a descobrir o
provedor de serviços
Web services de Segunda
Geração
Propostos para lidar com lacunas de qualidade dos WS de 1ª geração:
segurança em nível de mensagem, transações entre serviços e
mensageria confiável
WS-*: extensões e especificações para fornecer um conjunto
sofisticado de componentes construídos sobre os WS de 1ª
geração
Permite utilizar as regras de
negócio através da rede
Baixo custo de
comunicação (Internet)
Conecta aplicações de diferentes
fornecedores: lida com heterogeneidade
e integração
Protocolo padronizado
(SOAP/WSDL/UDDI)
Interação em geral é máquina-máquina ou
aplicação-aplicação, não requerendo
interações imediatas de usuários finais
WS-Security (WSS)
O protocolo SOAP não prevê a proteção de
mensagens, deixando essa tarefa para especificações
estendidas
O SOAP é um protocolo que roda (na
maioria dos casos) sobre o protocolo
HTTP
Com o HTTP, é possível autenticar o
remetente, assinar a mensagem e
criptografar os dados
O remetente é conhecido, o destinatário pode
confirmar a integridade e a mensagem se mantém
confidencial
Contudo, o HTTP só oferece segurança
ponto-a-ponto e muitas vezes, é necessário
segurança fim-a-fim
Ademais, pode ser necessária mais de uma chave de
criptografia ao longo da rota percorrida e domínios de
segurança podem ser cruzados
Logo, para soluções mais complexas o
HTTP não satisfaz todos os requisitos de
segurança
O WS-Security utiliza diversos padrões
e especificações de segurança
pré-existentes
Pode-se utilizar Kerberos e X.509
para fornecer autenticação
XML-Encryption e XML-Signature para fornecer
criptografia e assinatura do conteúdo das mensagens
XML
O WS-Security agrupa um conjunto de especificações
em um framework a ser embutido em uma mensagem
SOAP
Utilizado para estender os mecanismos do protocolo SOAP
para fornecer segurança (confidencialidade, integridade e
não-repúdio) fim-a-fim
Ele também se associa ao WS-Privacy,
WS-Test, WS-Policy, WS-Trust, ID-WSD, TAS3
O WS-Privacy determinará de que forma os
Web Services serão adotados e
implementados
O WS-Policy define como os recursos e
restrições das normas de segurança poderão
ser expressados
O WS-Trust descreve um modelo para que se obtenha um relacionamento de
confiança, tanto direto, quanto por meio de agentes (incluindo terceiros e
intermediário)
O protocolo HTTPS não é utilizado para garantir mais segurança para web
services ele está associado ao protocolo SSL/TLS que funciona bem apenas
para segurança ponto-a-ponto