SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

Documentos relacionados
Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens

UNIVERSIDADE. Sistemas Distribuídos

UFG - Instituto de Informática

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Criação de um Web Services em.net

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Minicurso Web Services com PHP

Criação de um Web Services em.net

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/ Faculdade de Ciências da Universidade de Lisboa

Desenvolvimento Cliente-Servidor 1

Kassius Vargas Prestes

Introdução a Web Services

Web Services. (Introdução)

O protocolo HTTP. O que é o protocolo HTTP?

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Estendida (Física) Versão: 1.0. Autor: Angelo Bestetti Junior

Service Oriented Architecture SOA

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

SOA na Prática Ricardo Limonta

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

Nota Fiscal Paulista. Manual para Envio de Arquivo de Cupons Fiscais via Webservice GOVERNO DO ESTADO DE SÃO PAULO

Sistemas Distribuídos

Serviços Web: Arquitetura

Sistemas Distribuídos e Paralelos

Cálculo Remoto de Preços e Prazos de Encomendas

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

SOA Introdução. SOA Visão Departamental das Organizações

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: Serviços de Informação. Produto: CEP. Versão: 1.0. Autor: Angelo Bestetti Junior

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Serviços Web: Introdução

Interface Web services

Cálculo Remoto de Preços e Prazos de Encomendas

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Transferência de arquivos (FTP)

Programação Cliente em Sistemas Web

Web Technologies. Tópicos da apresentação

Departamento de Informática

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

A Estrutura de um Web Service

Comunicando através da rede

18/04/2006 Micropagamento F2b Web Services Web rev 00

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Webservice LerChaveAutenticadora

2 Conceitos relativos a Web services e sua composição

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 2. Avaliação sumária da matéria do Capítulo 2

ITBI ONLINE MANUAL DE INTEGRAÇÃO

INT-9: Implementing ESB Processes with OpenEdge and Sonic David Cleary

Microsoft.NET. Desenvolvimento Baseado em Componentes

3 Serviços na Web (Web services)

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa. versão draft

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

Sistema Nacional de Registro de Hóspedes - SNRHos. PGTUR Plataforma de Gestão do Turismo Manual Técnico de Utilização do Web Service Versão 1.

Projeto: Plataforma de Integração. Data: 01/08/2014

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

Permite o acesso remoto a um computador;

Sistemas distribuídos. Prof. Emiliano Monteiro

: : Interoperabilidade entre Sistemas de Informação baseados na WEB - uma abordagem Multicanal

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Integre pela Internet com os Web Services OpenEdge

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Sistemas Distribuídos Arquiteturas Middlewares

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

Soluções de integração: SOA, web services e REST + XML/XSD

Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18

1.264 Lição 11. Fundamentos da Web

Web Services na plataforma.net

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Consultas SQL por XML-RPC no WordPress José Antonio Meira da Rocha

Web Services. Autor: Rômulo Rosa Furtado

Redes de Computadores

6127. Redes comunicação de dados. 2014/2015. Acesso à Internet.

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Correio Electrónico. Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações e de Computadores

Webservices. O que é um web service? Características. Por que web services? Tipos de web services

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

Desenvolvimento Web Protocolos da Internet

Coordenação Geral de Tecnologia da Informação - CGTI. Corporativo-Sistema de serviços corporativos Manual de Utilização dos Serviços

Transcrição:

Web Services & SOAP Tecnologias de Middleware 2004/2005 SOAP Simple Object Access Protocol Os web services necessitam de comunicar entre eles e trocar mensagens. O SOAP define a estrutura e o processamento das mensagens, de forma independente da plataforma ou linguagem de programação. XML + regras de utilização Utilização em comunicação A2A: B2B. SOAP 1992 XML-RPC 1999 Nascimento oficial do SOAP 1.0 com a submissão à W3C (só para protocolo HTTP) 2000 SOAP 1.1 (geral) 2001 SOAP 1.2 (recomendação) Simple Object Access Protocol Após a obtenção do WSDL no UDDI uma mensagem SOAP é gerada para transmitir os dados para um site remoto. É um modelo de comunicação unidireccional que assegura a comunicação. Existem convenções que permitem a adaptação do modelo para o paradigma pedido/resposta (usado pelas comunicações baseadas em RPCs). 1

Simple Object Access Protocol XML - RPC Envia uma mensagem XML através de um pedido HTTP e recebe uma resposta, caso exista, através de uma resposta HTTP. A mensagem é processada pelo processador SOAP presente no servidor web (IIS). Não inclui um modelo de objectos para definição de tipos. Apareceu pela primeira vez no Userland's Frontier, um sistema de gestão de conteúdos web. Antecessor e parte integrante do SOAP. Construido para RPCs simples utilizando o HTTP. Actualmente ainda é utilizado. X M L XML-RPC Chamadas a procedimentos remotos utilizando o HTTP. POST /RPC2 HTTP/1.0 User-Agent: Frontier/5.1.2 (WinNT) Host: betty.userland.com Content-Type: text/xml Content-length: 181 <?xml version="1.0"?> Cabeçalho HTTP <methodcall> <methodname>examples.getstatename</methodname> <params> <param> <value><i4>41</i4></value> </param> </params> </methodcall> Do XML-RPC ao SOAP Diferem na estrutura do XML que enviam. XML-RPC adequado para um programa cliente invocar uma função de outro programa. SOAP adequado ao envio de objectos e dados arbitrários. SOAP tem funcionalidades adicionais relativamente ao XML-RPC, o que explica a sua adopção generalizada. 2

Dinâmica SOAP Mensagens SOAP As mensagens SOAP são envelopes que encapsulam os dados que uma aplicação necessita de enviar. São constituídas por um bloco header opcional e um bloco body obrigatório. Uma mensagem pode ter um ou mais documentos anexados. Mensagens SOAP Especificação: Mensagens SOAP <env:envelope xmlns:env="http://www.w3.org/2001/12/ soap-envelope"> <env:header> <n:broadcastservice xmlns:n="http:// www.xmlbus.com/broadcastservices"> <n:list>pda, Cell, Email, VoiceMail, IM</n:list> </n:broadcastservice> </env:header> <env:body> <m:function xmlns:m="http://www.xmlbus.com/broadcastservices/ send"> <m:message> Hello! </m:message> </m:function> </env:body> </env:envelope> 3

Especificação: SOAP Namespaces Especificação: SOAP Namespaces Definem elementos ou atributos nos vários blocos ou partes da mensagem. Os elementos presentes nos blocos header e body devem ser identificados por namespaces únicos. Namespace dos blocos de uma mensagem soap <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ envelope/"> <soap:header>... Blocos standard </soap:header> <soap:body>... </soap:body> SOAP Envelope Define o início e o fim de uma mensagem SOAP. v1.1: <SOAP-ENV:Envelope xmlns:soap-env= "http://schemas.xmlsoap.org/soap/ envelope/" v1.2: <SOAP-ENV:Envelope xmlns:soap-env="http://www.w3.org/ 2001/12/soap-envelope SOAP Header Encapsula informação não relacionada com a aplicação (de suporte). As informações podem ser relativas à segurança, coordenação ou serem identificadores. Contém atributos opcionais utilizados no processamento das mensagens SOAP. Permitem a adição de funcionalidades ao SOAP de forma descentralizada. Bloco opcional. 4

SOAP Header - Exemplo SOAP Body <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mi="http://www.monson-haefel.com/jwsbook/message-id" <soap:header> <mi:message-id soap:actor="http://www.monson- Haefel.com/logger" > 11d1def534ea:b1c5fa:f3bfb4dcd7:-8000 </mi:message-id> </soap:header> Todas as mensagens SOAP encerram um bloco body. Contêm dados específicos da aplicação ou relativos à informação de falha. Os dados podem ser parâmetros de uma invocação ou informação arbitrária em XML. O conteúdo não é especificado, a não ser para os casos de falha. SOAP Body - Exemplo Pedido: <m:getorderstatus xmlns:m="www.xmlbus.com/orderentry"> <orderno>12345</orderno> </m:getorderstatus> Resposta <m:getorderstatusresponse xmlns:m="www.xmlbus.com/orderentry"> <status>shipped June 18</status> </m:getorderstatusresponse> SOAP Fault (1.2) O não processamento de uma mensagem SOAP resulta numa falha. Existe apenas 1 bloco com informação de falha e é incluído no body da mensagem. Sub-elementos: faultcode, faultstring, faultfactor e detail. É retornado, juntamente com a mensagem de falha, um código que indica o erro. 5

SOAP fault (1.2) <env:body> <env:fault> <faultcode>env:server</faultcode> <faultstring>server Error</faultstring> <detail> <e:myfaultdetails xmlns:e="http:// www.xmlbus.com/faults"> <message>hello</message> <errorcode>1001</errorcode> </e:myfaultdetails> </detail> </env:fault> </env:body> Ligação ao protocolo HTTP O SOAP utiliza o POST ou o GET e os mesmos códigos de erro e estado do HTTP nas respostas. A informação relativa a uma mensagem SOAP é encapsulada no método POST/GET. SOAP sobre HTTP (POST) (Pedido) POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/ soap/envelope/ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/ soap/encoding/"> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Envelope>... SOAP sobre HTTP (Resposta) HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/ soap/envelope/ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/ soap/encoding/"/> <m:getlasttradepriceresponse xmlns:m="some- URI"> <Price>34.5</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Envelope>... 6

RPCs & SOAP Dados em binário no SOAP É difícil trocar tipos de dados complexos (imagens, ficheiros binários) utilizando o SOAP. É utilizado um tratamento de dados baseado na codificação para XML. Levanta problemas de acordo com o tipo dos dados. Especificação: SOAP com Anexos SOAP e standard MIME MIME (multipurpose internet mail extensions) é o método utilizado para enviar anexos em mensagens de correio electrónico. Ideia base: incluir uma referência que aponta para o anexo no fim da mensagem Apache SOAP 2.2 suporta SOAP com anexos. M E N S G S O A P A N E X O MIME-Version: 1.0 Content-Type: Multipart/Related; boundary=mime_boundary; type=text/xml; start="<http://claiming-it.com/claim061400a.xml> Content-Description: This is the optional message description. --MIME_boundary Content-Type: text/xml; charset=utf-8 Content-Transfer-Encoding: 8bit Content-ID: <http://claiming-it.com/claim061400a.xml> Content-Location: http://claiming-it.com/claim061400a.xml <?xml version='1.0'?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/ soap/envelope/"> </SOAP-ENV:Envelope> --MIME_boundary Content-Type: image/tiff Content-Transfer-Encoding: binary Content-ID: <http://claiming-it.com/claim061400a.tiff> Content-Location: http://claiming-it.com/claim061400a.tiff 7

DIME (microsoft) Internet Message Encapsulation Mecanismo para empacotar dados binários sem recorrer à codificação para XML. Permite incluir um ou mais ficheiros binários. Utiliza uma flag de início e outra de fim. MB ME CH Formato do registo de dados DIME (microsoft) 100 01100001000000000000000000000 0000000000000000 0000000000101000 Registo DIME de dados 00000000000000000000000110110101 http://schemas.xmlsoap.org/soap/envelope <soap-env:envelope xmlns:soap- env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:msg="http://example.com/dimeexample/messages/" xmlns:ref= "http://schemas.xmlsoap.org/ws/2002/04/reference/" > <soap-env:body> <msg:getmediafile> <msg:filename>mymediafile.mpg </msg:filename> <msg:file ref:location= "uuid:f2da3c9c-74d3-4a46-b925- B150D62D9483" /> </msg:getmediafile> </soap-env:body> </soap-env:envelope> ------------------------------------------------------------------------- 00001 0 0 1 0001 00000000000000000000 0000000000101001 0000000000001010 00000000000101011010101011100000 uuid:f2da3c9c-74d3-4a46-b925- B150D62D9483 video/mpeg <<First 1.42 MB of binary data for mymediafile.mpg>> ------------------------------------------------------------------------- 00001 0 1 0 0000 00000000000000000000 0000000000000000 0000000000000000 00000000000010000110110001000000 <<Remaining 552 KB of binary data for mymediafile.mpg>> SOAP c/ Anexos Vs DIME Fácil inserção de anexos em ambos os métodos. MIME não inclui o tamanho dos dados. MIME obriga a fazer parsing de toda a mensagem de forma a encontrar os MIME boundaries. A escolha assenta mais em questões de marketing do que em questões técnicas inerentes a cada um dos métodos. ebxml Electronic Business XML Conjunto de especificações que, juntas, definem uma plataforma modular de negócio. Facilita a troca de documentos electrónicos através da internet. Define mensagens e conteúdos, mecanismo de publicação, registo e descoberta (relativamente aos negócios que se pretende utilizar). Utiliza uma camada de transporte de mensagens mapeada para SOAP com anexos (MIME). 8

Limites da Especificação Fiabilidade Políticas de QoS. Questões de: Segurança Coordenação Suporte a transacções Limitações Não tem modelo de objectos, language bindings ou uma semântica definida para o processamento de mensagens SOAP. Apenas para wired. Interoperabilidade. 9