Notas de Aula - MAC 5759 - Sistemas de Objetos Distribuídos
Aula 25 - 20/6/2002
SOAP (Simple Object Access Protocol )
- Histórico
- Inicialmente lançado por um pequeno consórcio de empresas
liderado pela Microsft
- Baseado em um outro protocolo recém-surgido denominado XML-RPC
(1998) www.xmlrpc.com
- O nome SOAP só apareceu no final de 1999
- O objetivo era possibilitar a integração de serviços
na web de forma independente de plataforma
- A Microsoft sempre foi contrária a essa idéia mas se
viu forçada a aceitar algum padrão para interoperabilidade
- Ao invés de fazer o mais sensato que seria usar padrões
existentes como CORBA ou Java, decidiu promover a criação de
um novo padrão
- Depois de certo tempo, a IBM entrou na jogada e veio a versão
1.1: xml.apache.org
- Em seguida, a Sun percebeu que não haveria como evitar o surgimento
de SOAP e acabou entrando no consórcio dando a ele "legitimidade"
como um padrão independente de fabricante
- É um protocolo para chamadas a objetos remotos baseado em
- TCP/HTTP como protocolo de transporte (não obrigatoriamente
mas na prática é o que é usado quase sempre)
- XML para formatação das requisições e
das respostas
- É equivalente ao
- IIOP do mundo CORBA
- JRMP do mundo Java
- Vantagens:
- É um protocolo baseado em texto puro o que favorece depuração
por seres humanos
- Assim como os IIOP Gateways, é capaz de penetrar em
firewalls (usando a porta do servidor web)
- Desvantagens:
- Por ser baseado em texto, é de processamento e transmissão
mais lentos do que protocolos binários
- Quase sempre usa HTTP que é um protocolo conhecidamente fraco
- Assim como XML não é muito orientado a objetos, não
permitindo aspectos avançados de orientação a objetos
- Foi uma arma eficaz para acabar com a posibilidade de termos um protocolo
decente orientado a objetos utilizado largamente em aplicações
para Internet no mundo comercial
- Características:
- Permite a inclusão de aspectos não-funcionais das chamadas
dentro dos cabaçalhos
- Tem sido usado para prover segurança, transações,
etc.
- Mas, ainda não há uma padronização neste
sentido, em geral, cada sítio de Internet usa um esquema diferente
- A Sun está promovendo o ebXML para padronizar os serviços
mas parece que a Microsoft não está apoiando
- Objetivo: desenvolver padrão para permitir a criação
de um mercado eletrônico global.
- Tem apoio até da ONU/CEFACT
(Centro para a Facilitação do Comércio e Negócios Eletrônicos).
- WIDL é o equivalente a IDL (muito feio).
- WSDL (Web Services Description Language)
- UDDI é o equivalente ao Trader, LDAP, e Jini Lookup
- A resposta vem em XML, é preciso convertê-la em alguma
outra coisa usando:
- XSL - converte para uma representação visual a ser
mostrada ao cliente (e.g. HTML)
- SAX - oferece uma visão do tipo stream (???)
dos dados representados em XML, baseado em callbacks
- DOM - oferece uma visão OO dos dados representados em XML
, i.e., ele monta em memória uma representação do arquivo
XML como objetos
- Exemplos de requisições e respostas podem ser obtidos nestes
slides da Universidade de Alberta ou nesse
arquivo PDF.
Referências
- Um artigo de Tom Clements chamado
Overview of SOAP
enaltecendo as maravilhosas vantagens de SOAP em relação
a outras tecnologias menos eficazes como CORBA e Java. (FAZ-ME RIR)
- URLs sobre o assunto:
QuO - Quality Objects
- Um middleware de suporte a qualidade de serviço em sistemas
de objetos distribuídos
- Os slides da apresentação de Germano Bezerra sobre o QuO
nos formatos PPT e .ps.gz.
Próxima Aula
Aula Anterior
Página de MAC 5759
Página do Fabio
Página do DCC