Web services
Ângelo Vimeney
Rafael Martinelli
Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação ConclusãoProtocolos base para a Web services
Web services
Web services
Web services
Web services
Web services
Web services
www.comidas.com.br www.veiculos.com.br www.dentista.org www.algoritmos.com.br www.campeonatos.com.br www.animais.com.br www.something.com.br abacate abacaxi abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial ... tartaruga watch xadrez xerox yet zebra ? ? ? ? xadrez asdfkljdfkjsdf sdfjsdfkf sdfjsdfkjf sdfjkasdkflad sdfd dkfsdf k sdkfka Portal Server
Web services
Web services
Brasil USA Rio de Janeiro São Paulo Salvador Porto Alegre New York San Francisco Seattle Portland Preço < 300 Preço < 100 Tecido de Algodão Tecido de Linho Tecido de Tergal Web service 1 Web service 2 Web service 3 Web service 4 Web service 5 Web service 6 Web service 7 Web service 8 Pizzarias Hotéis Corretagem de imóveisWeb services
Web services
www.uddi.microsoft.com
Web services
Web services
• Modo padrão, independente de plataforma, aberto,
escalável e facilmente extensível de descrever os
serviços.
• Modo padrão, independente de plataforma, aberto,
escalável e facilmente extensível para publicar e
localizar os serviços.
Web services
Web services
“O termo Web service se refere a uma
funcionalidade específica oferecida por uma
empresa, geralmente através de uma conexão de
internet, com o propósito de permitir que outra
empresa ou software utilize este serviço.”
UDDI Technical White Paper
“Web services são o próximo passo na evolução da
World Wide Web (WWW) e permite disponiblizarmos
elementos programáveis em Web sites onde outros
possam acessá-los de forma distribuída.”
Web services
Web services
Heather Kreger - IBM
“Um Web service é uma interface que descreve
uma coleção de operações que são acessíveis
pela rede através de mensagens XML
padronizadas.”
Arquitetura da Empresa A Cliente Servidor Arquitetura da Empresa B Cliente Servidor Arquitetura da Empresa C Cliente Servidor. . .
Empresa A Empresa B Empresa C Empresa Z Arquitetura baseada em Web services
Pilha padrão de protocolos Bind Publish Find
Service Requestor Service Provider Service Registry
Service
Service Description
Modelo Web services
Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação Conclusão
Protocolos base para a Web services
Nível Físico
IP
UDP
TCP
HTTP
HyperText Transfer ProtocolCamada
de Aplic
aç
ão
XML
EXtensible Markup LanguageSOAP
WSDL
Web Services Description Language Simple Object Access Protocol Universal Description, Discovery Integration
UDDI
USIP
Universal Service Interop Protocols
Nível Físico
IP
UDP
TCP
HTTP
Camada de Aplic aç ãoHTTP
HTTP
•
Simples
•
Human-readable, English-based
•
Stateless
•
Padrão de fato para comunicação na Web
•
Extensível para tranporte de qualquer
formato de documento
•
Versão atual: 1.1...
...vamos ver a versão 1.0...
HTTP
Service Requestor Service Provider Service Registry Bind Publish Find Service Requestor Service Provider Service Registry Service Service Description
HTTP
...
Componentes HTTP
Linha Inicial
Linhas de cabeçalho
Linha em branco
Conteúdo (message body)
...
HTTP
Initial Request Line
GET /path/to/file/index.html HTTP/1.0
HEAD (obter somente cabeçalho) GET (obter recurso)
POST (enviar dados) Initial Response Line (status line) HTTP/1.0 200 OK
1xx Mensagem de informação 2xx Algum tipo de sucesso 3xx Redireciona o cliente 4xx Indica um erro na parte cliente 5xx Indica um erro na parte servidor
Primeiro Componente:
Linha Incial
HTTP
...
Header 1 From: [email protected] Header 2 User-Agent: Mozilla/3.0Gold Header N AlgumHeader: Algum Valor.
.
.
Header 1 Server: Apache/1.2b3-dev Header 2Last Modified: Fri, 31 Dec 1999 23:59:59 Header 3
Content-Type: text/html Header 4 Content-Length: 12300
Header N AlgumHeader: Algum Valor
Segundo Componente:
Linhas de Header
HTTP
...
001101010100010101001110010010101000101100 100101011010011010010 101010001010101111111 111101010001010100001 101011001001010110100 110100101010100010101 011111111111010100010 1010000110 <HTML> <HEAD> <TITLE>Teste</TITLE> </HEAD> <BODY> <P>Hello World!!!! </BODY> </HTML>Quarto Componente:
Message Body
HTTP
...
Acessando:
http://www.somehost.com/path/file.html
GET /path/file.html HTTP/1.0
From: [email protected]
User-Agent: HTTPTool/1.0
[blank line here]
Server Socket TCP na porta 80
HTTP
...
Resposta do Servidor em
www.somehost.com
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354
<html>
<body>
<h1>Happy New Millennium!</h1>
(more file contents)
.
.
.
</body>
</html>
Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação ConclusãoProtocolos base para a Web services
Web services
Web services
Nível Físico
IP
UDP
TCP
HTTP
Camada de Aplic aç ãoXML
XML
XML
O que é XML:
.
- Significa Extensible Markup Language
- É uma linguagem de marcação muito parecida com HTML - Foi desenvolvida para descrever dados
- Não existem tags predefinidas, você tem que definir suas próprias tags - Documentos XML devem ser auto-descritivos
Diferenças entre XML e HTML:
.
- XML serve para descrever dados e se concentra em como eles são - HTML serve para exibir dados e se concentra em como serão exibidos
XML não faz nada!
.
- XML foi criado para estruturar, guardar e transmitir dados - É necessário um software para fazer algo com XML
XML - Introdução
XML
Exemplo de XML:
. <mensagem> <para>Ângelo</para> <de>Rafael</de> <cabecalho>Lembrete</cabecalho><corpo>Não esquecer de estudar Web Services!</corpo> </mensagem>
Utilização do XML:
.
- Pode guardar dados fora do HTML
- Pode ser usado para trocar informações por sistemas incompatíveis - Pode ser usado para compartilhar dados
- Pode ser usado para guardar dados - É interpretado pela maioria dos browsers - É a “mãe” de outras linguagens como WAP e WML
XML - Exemplo
XML
Sintaxe do XML:
. <?xml version="1.0" encoding="ISO-8859-1"?> <mensagem data=“29/08/2003”> <para>Ângelo</para> <de>Rafael</de> <cabecalho>Lembrete</cabecalho><corpo>Não esquecer de estudar Web Services!</corpo> </mensagem>
.
- Os documentos usam uma sintaxe auto-descritiva - Todos as tags têm que possuir outra tag indicando seu fim - XML diferencia letras maiúsculas e minúsculas
- Tags têm que começar e terminar na mesma ordem: <b><i>ERRADO!</b></i>
- Todo documento tem que possuir uma tag raiz - Os atributos têm que ser limitados por aspas - Os espaços e as novas linhas são considerados - Os comentários são iguais a HTML: <!-- Comentário -->
XML - Sintaxe
XML
XML Namespaces:
. <table> <tr> <td>Banana</td> <td>Limão</td> </tr> </table> .- As tags XML não são predefinidas
- Utiliza-se um prefixo para diferenciar os namespaces
. <h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Banana</h:td> <h:td>Limão</h:td> </h:tr> </h:table> . <f:table xmlns:f="http://www.exemplo.com/moveis"> <f:name>Mesa de café</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> . . <table> <name>Mesa de café</name> <width>80</width> <length>120</length> </table> XML - Namespaces
Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação Conclusão
Protocolos base para a Web services
Web services
Web services
Nível Físico
IP
UDP
TCP
HTTP
Camada de Aplic aç ãoSOAP
XML
SOAP
SOAP
O que é SOAP:
.- Significa Simple Object Access Protocol - É um protocolo de comunicação
- Foi desenvolvido para ser usado na Internet - Independente de plataforma
- Independente de linguagem - É baseado em XML
- Atravessa firewalls com facilidade
Por que SOAP?
.
- Foi desenvolvido para funcionar com HTTP
- Objetos DCOM e CORBA normalmente são barrados por firewalls - O melhor método de comunicação entre aplicações é por HTTP, pois é suportado por qualquer browser e servidor de internet
- SOAP permite aplicações de diferentes sistemas, de diferentes tecnologias e desenvolvidas em linguagens diferentes se comunicarem
SOAP - Introdução
SOAP
Componentes de uma mensagem SOAP:
.
- Envelope: identifica o documento XML como uma mensagem SOAP - Header (opcional)
- Body: contém informações de requisições e respostas - Fault (opcional) - Namespaces padrão: http://www.w3.org/2001/12/soap-envelope http://schemas.xmlsoap.org/soap/envelope <?xml version=“1.0”?> <soap:Envelope xmlns:soap=“http://www.w3.org/2001/12/soap-envelope” soap:encodingStyle=“http://www.w3.org/2001/12/soap-encoding”> <soap:Header> ... </soap:Header> <soap:Body> ... <soap:Fault> ... </soap:Fault> </soap:Body> </soap:Envelope> SOAP - Componentes
SOAP
Um exemplo de SOAP:
. - Pedido . <?xml version=“1.0”?> <soap:Envelope xmlns:soap=“http://www.w3.org/2001/12/soap-envelope” soap:encodingStyle=“http://www.w3.org/2001/12/soap-encoding”> <soap:Body> <m:GetPrice xmlns:m=“http://www.exemplo.com/prices”> <m:Item>Apples</m:Item> </m:GetPrice> </soap:Body> </soap:Envelope> . - Resposta . <?xml version=“1.0”?> <soap:Envelope xmlns:soap=“http://www.w3.org/2001/12/soap-envelope” soap:encodingStyle=“http://www.w3.org/2001/12/soap-encoding”> <soap:Body> <m:GetPriceResponse xmlns:m=“http://www.exemplo.com/prices”> <m:Price>1.90</m:Price> </m:GetPriceResponse> </soap:Body> </soap:Envelope> SOAP - ExemploSOAP
Um exemplo de SOAP + HTTP:
. POST /InStock HTTP/1.1 Host: www.stock.orgContent-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version=“1.0”?> <soap:Envelope xmlns:soap=“http://www.w3.org/2001/12/soap-envelope” soap:encodingStyle=“http://www.w3.org/2001/12/soap-encoding”> <soap:Body xmlns:m=“http://www.exemplo.org/stock”> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope> . HTTP/1.1 200 OK
Content-Type: application/soap; charset=utf-8 Content-Length: nnn <?xml version=“1.0”?> <soap:Envelope xmlns:soap=“http://www.w3.org/2001/12/soap-envelope” soap:encodingStyle=“http://www.w3.org/2001/12/soap-encoding”> <soap:Body xmlns:m=“http://www.exemplo.org/stock”> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> </soap:Body> </soap:Envelope> SOAP - Exemplo + HTTP Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação Conclusão
Protocolos base para a Web services
Web services
Web services
Nível Físico
IP
UDP
TCP
HTTP
Camada de Aplic aç ãoWSDL
XML
SOAP
WSDL
WSDL
• É um documento XML
• Possui namespace definido em:
http://schemas.xmlsoap.org/wsdl/
• Descreve serviços de forma abstrata e
facilmente extensível
• Usado para descrever Web Services
• Usado para localizar Web Services
WSDL
Service Provider
Service Registry Service Description
Bind Publish Find Service Requestor Service Provider Service Registry Service Service Description
WSDL
Class WeatherService {public void registerUser( String userName ) { usersVector.addElement( userName ); }
public float getTemperature( String zipCode, boolean celsius ) { float temperature; if (celsius) { temperature = 21.7; }else temperature = 71.06; return temperature; } }
WSDL
<message name='GetTemperatureRequest'> <part name='zipcode' type='xsd:string'/> <part name='celsius' type='xsd:boolean'/> </message><message name='GetTemperatureResponse'> <part name='Result' type='xsd:float'/> </message>
<message name=’RegisterUser'> <part name=’Name' type='xsd:string'/> </message>
Parâmetros (parts)
WSDL
<message name='GetTemperatureRequest'> <part name='zipcode' type='xsd:string'/> <part name='celsius' type='xsd:boolean'/> </message>
<message name='GetTemperatureResponse'> <part name='Result' type='xsd:float'/> </message>
+
<operation name='GetTemperature' parameterOrder='zipcode celsius'> <input message='wsdlns:GetTemperatureRequest' /> <output message='wsdlns:GetTemperatureResponse' /> </operation>
WSDL
HTTP Response HTTP GET Request Weather Server SOAP/HTTP Request SOAP/HTTP Response Cliente 1 Cliente 2 port 1 port 2WSDL
Weather Server port 1 port 2 <port name='WeatherHTTPPort’ binding='wsdlns:WeatherHTTPBinding' > <http:address location="http://localhost/ demos/wsdl/devxpert/weatherGET.asp"/> </port> <port name='WeatherSoapPort' binding='wsdlns:WeatherSoapBinding' > <soap:address location='http://localhost/ demos/wsdl/devxpert/weatherservice.asp' /> </port>WSDL
Weather Server port 1 port 2 <service name=”WeatherService"> <documentation>My first service</documentation> <port name='WeatherSoapPort’ binding='wsdlns:WeatherSoapBinding' > <soap:address location=’ http://.../weatherservice.asp' /> </port> <port name='WeatherHTTPPort’ binding='wsdlns:WeatherHTTPBinding' > <http:address location=” http://.../weatherGET.asp"/> </port> </service>WSDL
<binding name='WeatherSoapBinding' type='wsdlns:WeatherSoapPort' >
<soap:binding style=’document' transport='http://schemas.xmlsoap.org/soap/http' /> <operation name='GetTemperature' >
<soap:operation soapAction='http://tempuri.org/action/GetTemperatureRequest' /> <input>
<soap:body use='encoded' namespace='http://tempuri.org/message/' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' /> </input>
<output>
<soap:body use='encoded' namespace='http://tempuri.org/message/' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' /> </output> </operation> </binding> <operation name:’RegisterUser’> ...
<definitions
name=”Weather"targetNa
mespace="http://example.c
om/weathers.wsdl”
xmlns:tns=...>
</definitions>
WSDL
Elementos HTML table body title head . . . Elementos WSDL types service message import portType definitions binding <types> ... definição de tipos (sintaxe do XML Schema) ... </types><message>
...
define as mensagens trocadas
durante uma operação
...
</message>
<portType> ...
define as operações que o Web Service pode realizar ...
</portType> <binding> ...
define o formato das mensagens e detalhes de protocolo (reuso das definições abstratas) ... </binding> Root Element
WSDL
<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all><element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all>
<element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message>
<message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/> </port> <port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>
WSDL
http://www.capescience.com/downloads/wsdleditor/
Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação Conclusão
Protocolos base para a Web services
Web services
Web services
Nível Físico
IP
UDP
TCP
HTTP
Camada de Aplic aç ãoUDDI
XML
SOAP
UDDIWSDL
UDDI
Publish FindService Requestor Service Provider Service Registry Bind Publish Find Service Requestor Service Provider Service Registry Service
Service Description
• UDDI Business Registration
• UDDI API
Service Registry UDDI Business Registration White Pages Yellow Pages Green PagesNome: Padaria do Sr. Manoel Ltda Contato: Dona Maria Lisboa
Descrição: Importante padaria no subúrbio do Rio de Janeiro. Pães frescos a toda hora.
UDDI
CNPJ: 35.402.759/9999-99
Área de atividade: comércio de alimentos Localização: América do Sul - Brasil Taxonomias padrão como:
North American Industry Classification System (NAICS)
NAICS código 3341: computer manufacturers
Standard Industrial Classification (SIC) Serviço-1: Encomendar pães
Acesso: [email protected] Serviço-2: ObterPreços Acesso: http://www.padaria.com.br/op.wsdl UDDI API Inquiry API Publishers’ API User
Elementos HTML table body title head . . . Elementos UDDI businessEntity businessService bindingTemplate tModel UDDI Business Registration White Pages Yellow Pages Green Pages
UDDI
UDDI
tModel tModel tModel businessEntity businessService businessService businessService bindingTemplate bindingTemplate bindingTemplateUDDI
businessEntity businessService businessService businessService bindingTemplate bindingTemplate bindingTemplate tModel tModel tModelUniversally Unique ID (UUID)
UDDI
businessEntity businessService businessService businessService bindingTemplate bindingTemplate bindingTemplate tModel tModel tModelUDDI
<tModel authorizedName="..." operator= "..." tModelKey= "..."> <name>Weather Service</name>
<description xml:lang= "en” >
WSDL description of a standard weather service interface </description>
<overviewDoc>
<description xml:lang="en"> WSDL source document. </description>
<overviewURL> http://example.com/weathers.wsdl </overviewURL> </overviewDoc>
<categoryBag>
<keyedReference tModelKey= "UUID:..." keyName= "uddi-org:types"
keyValue= "wsdlSpec” /> </categoryBag>
</tModel>
UDDI
<tModel authorizedName="..." operator= "..." tModelKey= "..."> <name>Weather Service</name>
<description xml:lang= "en” >
WSDL description of a standard weather service interface </description>
<overviewDoc>
<description xml:lang="en"> WSDL source document. </description>
<overviewURL> http://example.com/weathers.wsdl </overviewURL> </overviewDoc>
<categoryBag>
<keyedReference tModelKey= "UUID:..." keyName= "uddi-org:types"
keyValue= "wsdlSpec” /> </categoryBag>
UDDI
UDDI API Inquiry API Publishers’ API Publishers’ API •save_business •save_service •save_binding •save_tModel •delete_business •delete_service •delete_binding •delete_tModel Inquiry API •find_business •find_service •find_binding •find_tModel •get_businessDetail •get_serviceDetail •get_bindingDetail •get_tModelDetailUDDI
Service Registry Marketplaces Search Portals Technical Users UDDI AP INível Físico
IP
UDP
TCP
HTTP
Camada de Aplic aç ãoUSIP
XML
SOAP
UDDIWSDL
USIP
Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação ConclusãoProtocolos base para a Web services
Compilação
HelloWorld.java.
Package com.wrox.helloworld.service; Public class HelloWorld {
String getMessage() { return “Hello World!”; } } HelloWorldDD.xml . <?xml version=“1.0”?> <isd:service xmlns:isd=“http://xml.apache.org/xml-soap/deployment” id=“urn:HelloWorldService”> <isd:provider type=“java” scope=“Application” methods=“getMessage”>
<isd:java class=“com.wrox.helloworld.service.HelloWorld” static=“false” /> </isd:provider> <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener> </isd:service> Registrando o serviço: . > java org.apache.soap.server.ServiceManagerClient
http://localhost:8080/soap/servlet/rpcrouter deploy HelloWorldDD.xml
Compilação - Java e ISD
Compilação
HelloWorldClient.java . import org.apache.soap.Constants; import java.net.URL; import org.apache.soap.Fault; import org.apache.soap.rpc.Call; import org.apache.soap.rpc.Response; import org.apache.soap.rpc.Parameter; public class HelloWorldClient {static String DEFAULT_ENDPOINT = “http://localhost:8080/soap/servlet/rpcrouter”; public static void main(String args[]) throws Exception {
String endPoint = DEFAULT_ENDPOINT; if (args.length == 1) {
endPoint = args[0]; } else if (args.length > 1) {
System.out.println(“java HelloWorldClient [endpoint]”); }
Call call = new Call();
call.setTargetObjectURI(“urn:HelloWorldService”); call.setMethodName(“getMessage”); call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); ... Compilação - Cliente I
Compilação
HelloWorldClient.java (continuação) . ...URL url = new URL(endPoint); Response resp = call.invoke(url, “”); if (resp.generatedFault()) {
Fault fault = resp.getFault();
System.out.println(“The Following Error Occured: ”); System.out.println(“ Fault Code = ” + fault.getFaultCode()); System.out.println(“ Fault String = ” + fault.getFaultString()); } else {
Parameter result = resp.getReturnValue(); System.out.println(result.getValue()); } } } Chamando o serviço: . > java HelloWorldClient Compilação - Cliente II
Compilação
Pedido . POST /soap/servlet/rpcrouter HTTP/1.0 Host: localhostContent-Type: text/xml; charset=utf-8 Content-Length: 414 SOAPAction: “” <?xml version=‘1.0’ encoding=‘UTF-8’?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=“http://www.w3.org/1999/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/1999/XMLSchema”> <SOAP-ENV:Body> <nsl:getMessage xmlns:nsl=“urn:HelloWorldService” SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”> </nsl:getMessage> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Compilação - Request
Compilação
Resposta.
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8 Content-Length: 485
Date: Wed, 19 Dec 2001 04:10:28 GMT
Server: apache Tomcat/4.0.1 (HTTP/1.1 Connector)
Set-Cookie: JSESSIONID=D712520676C524504110A4C5D6E672E9;Path=/soap <?xml version=‘1.0’ encoding=‘UTF-8’?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=“http://www.w3.org/1999/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/1999/XMLSchema”> <SOAP-ENV:Body> <nsl:getMessageResponse xmlns:nsl=“urn:HelloWorldService” SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”> <return xsi:type=“xsd:string”>Hello World!</return>
</nsl:getMessageResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Compilação - Response Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação Conclusão
Protocolos base para a Web services
Web services
Web services
Conclusão - Lista