Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Tópicos de Sistemas de Informação A
Carlos Oberdan Rolim Ciência da Computação
2
(Simple Object Access Protocol)
SOAP (Simple Object Access Protocol)
3
Contexto
4
Introdução SOAP significa Simple Object Access Protocol.
SOAP é um protocolo de comunicação. SOAP é para comunicação entre aplicações. SOAP é um simples protocolo baseado em XML para permitir aplicações trocarem informação sobre HTTP ou outro protocolo.
5
Introdução Surgiu em 1998 Proposta a W3C em Maio de 2000
Proposto pela DevelopMentor, Microsoft e UserLand Software como um “Internet Draft” Definia um mecanismo para transmissão de procedimentos remotos XML sobre HTML Proposta a W3C em Maio de 2000 Primeira versão pública em Dezembro de 2001 Versão atual 1.2
6
Arquitetura Plataforma de Serviço na Web Cliente Servidor SOAP Serviço
Converte msg SOAP a tipo de dado e invoca o serviço. Converte resultado da operação a msg SOAP e envia msg. Plataforma de Serviço na Web Servidor SOAP Cliente request response
7
SOAP 1.2 Dividido em duas partes
Service Oriented Architecture Protocol: Framework de mensagens Mensagem representa a informação necessária para invocar um serviço ou analisar o resultado de uma chamada e contém informações específicas da definição da interface do serviço. Service Object Access Protocol: um conjunto de regras de codificação para expressar instâncias dos tipos de dados definidos pela aplicação uma convenção para representar RPCs e respostas um conjunto de regras para usar SOAP com HTTP/1.1 Define o método de invocação de um objeto remoto
8
Principais vantagens 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).
9
Principais desvantagens
Falta de interoperabilidade entre ferramentas de desenvolvimento do SOAP. Embora o SOAP tenha amplo suporte, ainda existem problemas de incompatibilidades entre diferentes implementações do SOAP. 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. Quando uma mensagem estiver sendo transferida, se o sistema falhar, ele não saberá como reenviar a 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
10
Funcionalidades Interoperabilidade entre sistemas utilizando linguagens e protocolos padronizados largamente difundidos, como XML e HTTP. Permite a comunicação entre sistemas protegidos por firewalls, sem precisar abrir portas adicionais e possivelmente não seguras. Ele utiliza (na maioria dos servidores) a porta 80. SOAP descreve completamente cada elemento na mensagem, facilitando o entendimento e a proteção contra erros.
11
Estrutura de uma mensagem
SOAP Envelope SOAP header Soap basea-se na troca de mensagens Mensagens são vistas como envelopes que as aplicações usam para enviar dados Uma mensagem contém dua partes: cabeçalho e corpo. Ambos podem ser divididos em blocos SOAP não especifica o que fazer com o cabeçalho e o corpo. Ele somente diz que o cabeçalho é opcional e o corpo mandatório Entretanto uso do corpo e cabeçalho são implicitos. Corpo define os dados da aplicação e o cabeçalho define a estrutura Header Block SOAP Body Body Block
12
Estrutura de uma mensagem
<SOAP-ENV:envelope> <!— Elemento raiz do SOAP e define que essa é uma mensagem SOAP> <SOAP-ENV:header> <!—Especifica informações especificas como autenticação (opcional)--> </SOAP-ENV:header> <SOAP-ENV:body> <!—O elemento BODY contém o corpo da mensagem--> <SOAP-ENV:fault> <!—O elemento FAULT contém os erros que podem ocorrer--> </SOAP-ENV:fault> </SOAP-ENV:body> </SOAP-ENV:envelope>
13
Estrutura de uma mensagem
Envelope: obrigatório. Define conteúdo da mensagem encodingStyle: atributo que tem como objetivo especificar como as informações devem ser codificadas. <SOAP-ENV:Envelope xmlns:SOAP ENV=” SOAP-ENV:encodingStyle=” <SOAP-ENV:Header> ... </SOAP-ENV:Header> <SOAP-ENV:Body> … </SOAP-ENV:Body> </SOAP-ENV:Envelope>
14
Estrutura de uma mensagem
Header: opcional. Contém os dados do cabeçalho <SOAP-ENV:Envelope xmlns:SOAP ENV=” SOAP-ENV:encodingStyle=” <SOAP-ENV:Header> <a:authentication xmlns:a=” <a:username>Admin</a:username> <a:password>SuperPass</a:password> </a:authentication> </SOAP-ENV:Header> <SOAP-ENV:Body> … </SOAP-ENV:Body> </SOAP-ENV:Envelope>
15
Estrutura de uma mensagem
Elemento actor especifica o receptor que deve processar o elemento do cabeçalho. <SOAP-ENV:Envelope xmlns:SOAP ENV=” SOAP-ENV:encodingStyle=” <SOAP-ENV:Header> <a:authentication xmlns:a=” SOAP-ENV:actor=” <a:username>Admin</a:username> <a:password>Pass</a:password> </a:authentication> </SOAP-ENV:Header>
16
Estrutura de uma mensagem
Elemento mustUnderstand especifica se uma entrada de cabeçalho é obrigatória ou opcional (booleano) Se for acrescido mustUnderstand=“1” a um elemento filho no cabeçalho, indica que o receptor deve reconhecer esse elemento. Se ele não reconhecer deve ser retornada uma falha quando o cabeçalho for processado <SOAP-ENV:Envelope xmlns:SOAP ENV=” SOAP-ENV:encodingStyle=” <SOAP-ENV:Header> <a:authentication xmlns:a=” SOAP-ENV:mustUndestrand=”1” <a:username>Admin</a:username> <a:password>Pass</a:password> </a:authentication> </SOAP-ENV:Header>
17
Estrutura de uma mensagem
Body: Obrigatório. contém a codificação atual de uma chamada a um método e todos os argumentos de entrada ou uma resposta codificada que contém o resultado de uma chamada de um método. <soap:Envelope xmlns:soap=" envelope" soap:encodingStyle=" encoding"> <soap:Body> <m:GetPrice xmlns:m=" <m:Item>Apples</m:Item> </m:GetPrice> </soap:Body> </soap:Envelope>
18
Estrutura de uma mensagem
Resposta da requisição <?xml version="1.0"?> <soap:Envelope xmlns:soap=" soap:encodingStyle=" <soap:Body> <m:GetPriceResponse xmlns:m=" <m:Price>1.90</m:Price> </m:GetPriceResponse> </soap:Body> </soap:Envelope>
19
Estrutura de uma mensagem
Elemento Fault: contém as informações dos erros ocorridos no envio da mensagem. Apenas nas mensagens de resposta do servidor. Se o elemento Fault existe ele deve aparecer como um elemento filho do elemento Body. Elemento Fault pode aparecer apenas uma vez em uma mensagem SOAP
20
Estrutura de uma mensagem
Elemento Fault: Possui os seguintes subelemento <faultcode> Para identificar o código da falta <faultstring> Descriçao da falta <faultactor> Informação de quem originou a falta <detail> Informações específicas de erro relacionada ao elemento Body
21
Estrutura de uma mensagem
Alguns exemplos de erros: Error: VersionMismatch Description: Encontrado um namespace invalido no envelope SOAP Error: MustUnderstan Description: Um elemento filho do elemento Header com o atributo mustUnderstand=“1” não foi entendido Error: Client Description: A mensagem foi formada incorretamente ou contém informações incorretas Error: Server Description: Problemas com o servidor. Mensagem não pode ser processada
22
Ligação SOAP + HTTP Requisição HTTP POST /item HTTP/1.1
Host: 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
23
Ligação SOAP + HTTP Exemplo de uma requisição
POST /InStock HTTP/ Host: Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap= soap:encodingStyle=" <soap:Body xmlns:m=" <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope Exemplo de uma requisição
24
Ligação SOAP + HTTP Exemplo de resposta da requisição HTTP/1.1 200 OK
Content-Type: application/soap; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap=" soap:encodingStyle=" <soap:Body xmlns:m=" <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> </soap:Body> </soap:Envelope> Exemplo de resposta da requisição
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.