Professional Documents
Culture Documents
Arquitectura de Sistemas
DEI-ISEP
Web Services
A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Webrelated standards.
Fonte:http://www.w3.org/TR/2004/NOTE-ws-arch-20040211
Web Services
Um cenrio de utilizao
Um cenrio de utilizao
Web Services
Um Web Service um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicaes
Web Services
Antecedentes
DCOM Distributed Component Object Model CORBA -Common Object Request Broker Architecture Java RMI Remote Method Invocation Problemas de interoperabilbidade Orientados ligao Dependentes da plataforma
Web Services
Caractersticas de um Web Service
Expe funcionalidades de programao na Web servio So acedidos usando protocolos standard - HTTP Comunicam por meio de mensagens Simple Object Usam XML para codificar as mensagens Access Protocol Estruturam as mensagens usando o protocolo SOAP Web Services Description Language So auto-descritivos permitindo a um cliente facilmente comunicar com o servio - WSDL Universal Description, Discovery and Integration So servios que podem ser registados e facilmente descobertos UDDI Independentes de plataformas, linguagens de
programao e sistemas operativos
6
Web Services
Arquitectura baseada em SOAP, WSDL e UDDI
Camadas de Protocolos
Servio de transporte - responsvel pelo
transporte das mensagens entre aplicaes. HTTP, SMTP, FTP Mensagens XML - responsvel pela codificao das mensagens num formato XML, de modo a serem facilmente interpretadas pelas aplicaes. XML-RPC e SOAP Descrio do servio - responsvel pela descrio da interface publica do servio, implementada atravs do protocolo WSDL Descoberta do Servio - responsvel pela centralizao dos servios, simplificando a sua publicao/descoberta - UDDI
9
Camadas de Protocolos
Descoberta UDDI
Descrio
WSDL
10
11
SOAP
SOAP Version 1.2 (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics.
[SOAP Version 1.2 Part 1: Messaging Framework ] http://www.w3.org/TR/2003/REC-soap12-part1-20030624/
12
SOAP
SOAP um protocolo, baseado em XML, para troca de mensagens entre aplicaes
Define:
A estrutura das mensagens Um modelo de processamento que descreve como as mensagens devem ser processadas pelo servio.
13
SOAP
Template de uma mensagem SOAP:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envel ope/"> <soap:Header> <!-- optional --> <!-- header blocks go here... --> </soap:Header> <soap:Body> <!-- payload or Fault element goes here... --> </soap:Body> </soap:Envelope>
14
SOAP
<soap:Envelope>
Elemento raiz de uma mensagem SOAP. Contm um Header opcional e um Body obrigatrio <soap:Header> usado para codificar informao adicional da mensagem header blocks <soap:Body> contm o contedo principal da mensagem a enviar e deve ser um documento XML vlido.
<soap:Fault>
trata os erros de um modo centralizado, permitindo ao servidor comunicar ao cliente os erros encontrados no processamento da mensagem
15
17
18
POST /losaw/dir1/demoservice.asmx HTTP/1.1 Host: w2ks Request Content-Type: text/xml; charset=utf-8 Content-Length: 312 SOAPAction: "http://w2kslosaw/helloworld/Add" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Add xmlns="http://w2kslosaw/helloworld/"> <x>3</x> <y>5</y> </Add> </soap:Body> 19 </soap:Envelope>
10
Camadas de Protocolos
Descoberta UDDI
Descrio
WSDL
21
11
Web Service
WSDL Web Service Description Language
22
WSDL
WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). WSDL is extensible to allow description of endpoints and their messages regardless of what message formats or network protocols are used to communicate.
[Web Services Description Language (WSDL) 1.1 ] http://www.w3.org/TR/2001/NOTE-wsdl-20010315
23
12
13
o elemento raz de um documento WSDL. O atributo targetNamespace permite definir um namespace e o atributo xmlns permite referenciar outos namespaces
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/ http: definitions http //schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ http: http //schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema http: org/2001/XMLSchema" 2001/XMLSchema http //www. xmlns:s0="http://w2kslosaw/addservice/ http: http //w2kslosaw/addservice/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/ http: http //schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/ http: http //microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/ http: http //schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://w2kslosaw/addservice/ http: http //w2kslosaw/addservice/" xmlns="http://schemas.xmlsoap.org/wsdl/"> http://schemas.xmlsoap.org/wsdl/ http
26
Add
14
WSDL
<types>
element AddResponse (tipo de dados da resposta)
<s:element name="AddResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="AddResult" type="s:int" /> </s:sequence> </s:complexType> </s:element>
28
Input
Output
15
Response
31
16
<portType name="DemoServiceSoap"> <operation name="Add"> <input message="s0:AddSoapIn" /> <output message="s0:AddSoapOut" /> </operation> </portType> <message name="AddSoapIn"> <part name="parameters" element="s0:Add" /> </message>
32
33
17
<soap:binding>
binding atravs de SOAP transport
transport=http://schemas.xmlsoap.org/soap/http
35
18
<soapAction>
define cabealho http SOAPACTION
36
37
19
Web Services
Universal Description, Discovery and Integration
39
20
UDDI
Um registo de servios
UDDI Business registry
Um local para descobrir servios e informao detalhado sobre o servio WSDL, etc Classificar, catalogar e gerir Web services Seleco dinmica da implementao de um servio em Runtime Criado inicialmente por Microsoft, IBM e Ariba
40
UDDI
Repositrios UDDi de teste
http://test.uddi.microsoft.com/ https://uddi.ibm.com/testregistry/registry.html http://udditest.sap.com
41
21
UDDI
UDDI Programmers APIs
Inquiry API Set Publication API Set Security Policy API Set Subscription API Set Value Set API Set
Implementaes
Microsoft UDDI SDK IBM UDDI4J Java API for XML Registry JAXR WASP UDDI
42
43
22
23
46
47
24
48
49
25
50
26
52
Fonte: Anatomy of an XML Web Service Lifetime - .NET Framework Developer's Guide
53
27
54
55
28
type="tns:Pessoa" />
29
58
30
SoapServer
Usada para criar um servio Web, especificar as suas Operaes a partir de um WSDL que especifica o servio.
SoapFault
Usado para definir respostas de erro na chamada do servio
60
3.
4.
31
62
63
32
Entre muitas outras, tem uma ferramenta para gerar o cdigo PHP a partir do WSDL - wsdl2php e tambm php2wdsl
Frameworks PHP
Zend Framework Cake PHP
Notes on Choosing a PHP Framework:
64
33