ws-i: interoperabilidade no desenho e consumo de web services outubro 2003
TRANSCRIPT
WS-I: WS-I: Interoperabilidade no Interoperabilidade no Desenho e Consumo de Desenho e Consumo de Web ServicesWeb Services
Outubro 2003Outubro 2003
AgendaAgenda
Introdução WS-I.orgIntrodução WS-I.org Perfis de InteroperabilidadePerfis de Interoperabilidade Aplicações ExemploAplicações Exemplo Ferramentas de TesteFerramentas de Teste Programa de ConformidadePrograma de Conformidade
Introdução WS-I.orgIntrodução WS-I.orgContextoContexto
Negócios têm que inovar cada vez mais Negócios têm que inovar cada vez mais rapidamenterapidamente
Sucesso passa por dispor de muita Sucesso passa por dispor de muita interoperabilidadeinteroperabilidade– Dentro da empresaDentro da empresa– Entre parceiros de negócioEntre parceiros de negócio– Num conjunto diversificado de plataformas, Num conjunto diversificado de plataformas,
aplicações e linguagens de programaçãoaplicações e linguagens de programação Tecnologias Internet são um dado, e Tecnologias Internet são um dado, e
interoperabilidade é um requisitointeroperabilidade é um requisito
Introdução WS-I.orgIntrodução WS-I.org ComentáriosComentários
“Se é um fornecedor de infra-estrutura e não alinha com o WS-I, nem sequer apareça – não faremos negócio consigo”
-- Merrill Lynch CTO John McKinley
Introdução WS-I.orgIntrodução WS-I.orgStandardsStandards
XML (eXtensible Markup Language)XML (eXtensible Markup Language)– Não está acoplado a qualquer linguagem de Não está acoplado a qualquer linguagem de
programação, sistema operativo ou vendedor programação, sistema operativo ou vendedor de software.de software.
– É útil para descrever formatos de É útil para descrever formatos de documentos para a Web e também para documentos para a Web e também para dados estruturados.dados estruturados.
XML NamespacesXML Namespaces– Evitar conflitos de nomeclaturaEvitar conflitos de nomeclatura
XML Schema (XSD)XML Schema (XSD)– Descrever classes de documentos XMLDescrever classes de documentos XML
Introdução WS-I.orgIntrodução WS-I.orgStandards – XML SchemaStandards – XML Schema
<?xml version="1.0" encoding="utf-8" ?>
<FilmesPreferidos
xmlns="mailto:[email protected]">
<Filme>
<Titulo>Matrix</Titulo>
<Site url="http://whatisthematrix.warnerbros.com/"/>
</Filme>
<Filme>
<Titulo>Lord of the Rings - Part I</Titulo>
<Site url="http://www.lordoftherings.net/"/>
</Filme>
<Filme>
<Titulo>Bicentenial Man</Titulo>
</Filme>
</FilmesPreferidos>
<?xml version="1.0" encoding="utf-8" ?><xs:schema targetNamespace="mailto:[email protected]" xmlns:tns="mailto:[email protected]" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="FilmesPreferidos"> <xs:complexType> <xs:sequence> <xs:element name="Filme" type=“tns:FilmeType” maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name=“FilmeType"> <xs:sequence> <xs:element name="Titulo" type="xs:string" /> <xs:element name="Site" minOccurs="0"> <xs:complexType> <xs:attribute name="url" type="xs:URI" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType></xs:schema>
Introdução WS-I.org Introdução WS-I.org Standards (cont.)Standards (cont.) SOAP (Simple Object Access Protocol)SOAP (Simple Object Access Protocol)
– Protocolo simples para a troca de informação estruturada Protocolo simples para a troca de informação estruturada num ambiente distribuído e descentralizado. num ambiente distribuído e descentralizado.
– ““Messaging Framework”: Estabelece um formato extensível Messaging Framework”: Estabelece um formato extensível de mensagens XML, as quais podem ser enviadas através de mensagens XML, as quais podem ser enviadas através de diversos protocolos subjacentesde diversos protocolos subjacentes
WSDL (Web Services Description Language)WSDL (Web Services Description Language)– Documentar serviços (operações, mensagens, …)Documentar serviços (operações, mensagens, …)– Simplificar consumo dos serviços (criação automática de Simplificar consumo dos serviços (criação automática de
classes proxy)classes proxy)
UDDI (Universal Description and Discovery Interface)UDDI (Universal Description and Discovery Interface)– Catalogar serviços existentesCatalogar serviços existentes– Também conhecido como as Páginas Amarelas dos Também conhecido como as Páginas Amarelas dos
WebServicesWebServices
<?xml version="1.0"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <SOAP-ENV:Header> <!-- Opcional. Informação transversal (segurança, sessão, routeamento, etc) --> </SOAP-ENV:Header> <SOAP-ENV:Body> <!-- Informação especifica da mensagem --> <FilmesPreferidos xmlns="mailto:[email protected]"> <Filme> <Titulo>Matrix</Titulo> <Site url="http://whatisthematrix.warnerbros.com/"/> </Filme> </FilmesPreferidos> </SOAP-ENV:Body></SOAP-ENV:Envelope>
Introdução WS-I.org Introdução WS-I.org Standards (cont.)Standards (cont.) SOAP (Simple Object Access Protocol)SOAP (Simple Object Access Protocol)
– Protocolo simples para a troca de informação estruturada Protocolo simples para a troca de informação estruturada num ambiente distribuído e descentralizado. num ambiente distribuído e descentralizado.
– ““Messaging Framework”: Estabelece um formato extensível Messaging Framework”: Estabelece um formato extensível de mensagens XML, as quais podem ser enviadas através de mensagens XML, as quais podem ser enviadas através de diversos protocolos subjacentesde diversos protocolos subjacentes
WSDL (Web Services Description Language)WSDL (Web Services Description Language)– Documentar serviços (operações, mensagens, …)Documentar serviços (operações, mensagens, …)– Simplificar consumo dos serviços (criação automática de Simplificar consumo dos serviços (criação automática de
classes proxy)classes proxy)
UDDI (Universal Description and Discovery Interface)UDDI (Universal Description and Discovery Interface)– Catalogar serviços existentesCatalogar serviços existentes– Também conhecido como as Páginas Amarelas dos Também conhecido como as Páginas Amarelas dos
WebServicesWebServices
Introdução WS-I.org Introdução WS-I.org Standards - WSDLStandards - WSDL
<definitions<definitions>>
Conjunto de definições que caracterizam um Web ServiceConjunto de definições que caracterizam um Web Service
<types><types> Definição do formato das mensagens relevantes. Típica Definição do formato das mensagens relevantes. Típica mas não necessariamente através de XML Schema mas não necessariamente através de XML Schema
<message<message>>
Cada mensagem é constituída por zero/uma ou mais Cada mensagem é constituída por zero/uma ou mais partes. Cada parte é de um tipo bem definido. partes. Cada parte é de um tipo bem definido. Tipicamente estes tipos são tipos base de XML Schema ou Tipicamente estes tipos são tipos base de XML Schema ou tipos definidos na tag <types>tipos definidos na tag <types>
<portType<portType>>
Um Um tipotipo de porto é um conjunto de operações. Um de porto é um conjunto de operações. Um operação é uma acção disponibilizada por um serviço. A operação é uma acção disponibilizada por um serviço. A cada operação está associado um conjunto de mensagens cada operação está associado um conjunto de mensagens de input e um conjunto de mensagens de output.de input e um conjunto de mensagens de output.
<binding><binding> Forma como um <portType> é exposto num protocolo de Forma como um <portType> é exposto num protocolo de transporte (e.g., HTTP, MIME, TCP,…). Define transporte (e.g., HTTP, MIME, TCP,…). Define características das mensagens nesse protocolo, e forma características das mensagens nesse protocolo, e forma como protocolo é utilizado.como protocolo é utilizado.
<service><service> Conjunto de vários portos, cada um dos quais instancia Conjunto de vários portos, cada um dos quais instancia operações de acordo com um binding num determinado operações de acordo com um binding num determinado endpoint.endpoint.
<portType name="FavoriteMovieWSSoap"> <operation name="GetFavoriteMovies"> <input message="tns:GetFavoriteMoviesSoapIn" /> <output message="tns:GetFavoriteMoviesSoapOut" /> </operation></portType>
<service name="FavoriteMovieWS"> <port name="FavoriteMovieWSSoap" binding="tns:FavoriteMovieWSSoap"> <soap:address location="http://localhost/FavoriteMovieWS/FavoriteMovieWS.asmx" /> </port></service>
<message name="GetFavoriteMoviesSoapIn"> <part name="parameters" element="tns:GetFavoriteMovies" /></message><message name="GetFavoriteMoviesSoapOut"> <part name="parameters" element="tns:GetFavoriteMoviesResponse"/></message>
<types> <!-- Type definitions here --> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="mailto:[email protected]" xmlns:tns="mailto:[email protected]"> <xs:element name="GetFavoriteMovies"> <xs:complexType /> </xs:element> <xs:element name="GetFavoriteMoviesResponse"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="FilmesPreferidos" type="s0:FilmeType" /> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="FilmeType"> ... </xs:complexType> </xs:schema></types>
<binding name="FavoriteMovieWSSoap" type="s0:FavoriteMovieWSSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="GetFavoriteMovies"> <soap:operation soapAction="mailto:[email protected]/GetFavoriteMovies" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation></binding>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mailto:[email protected]" > <types>
<!-- Describe types used in operation messages --> </types> <message name="">
<!-- Describe operation messages --> </message> <portType name="">
<!-- Describe set of operations on a given port --> </portType> <binding name="" >
<!-- Bind portType to a specific protocol --> </binding> <service name="">
<!-- Instanciate Binding on a given endpoint --> </service></definitions>
Introdução WS-I.org Introdução WS-I.org Standards (cont.)Standards (cont.) SOAP (Simple Object Access Protocol)SOAP (Simple Object Access Protocol)
– Protocolo simples para a troca de informação estruturada Protocolo simples para a troca de informação estruturada num ambiente distribuído e descentralizado. num ambiente distribuído e descentralizado.
– ““Messaging Framework”: Estabelece um formato extensível Messaging Framework”: Estabelece um formato extensível de mensagens XML, as quais podem ser enviadas através de mensagens XML, as quais podem ser enviadas através de diversos protocolos subjacentesde diversos protocolos subjacentes
WSDL (Web Services Description Language)WSDL (Web Services Description Language)– Documentar serviços (operações, mensagens, …)Documentar serviços (operações, mensagens, …)– Simplificar consumo dos serviços (criação automática de Simplificar consumo dos serviços (criação automática de
classes proxy)classes proxy)
UDDI (Universal Description and Discovery Interface)UDDI (Universal Description and Discovery Interface)– Catalogar serviços existentesCatalogar serviços existentes– Também conhecido como as Páginas Amarelas dos Também conhecido como as Páginas Amarelas dos
WebServicesWebServices
Introdução WS-I.orgIntrodução WS-I.orgContextoContexto
Flexibilidade dos standardsFlexibilidade dos standards Evolução rápida dos standardsEvolução rápida dos standards Coordenação entre standardsCoordenação entre standards Conformidade das implementaçõesConformidade das implementações
Introdução WS-I.orgIntrodução WS-I.org Flexibilidade dos standardsFlexibilidade dos standards SOAPSOAP
– Encoding vs LiteralEncoding vs Literal– Document vs RPCDocument vs RPC– Header attributes: mustUnderstand, actor/roleHeader attributes: mustUnderstand, actor/role– Protocolo: tipicamente HTTP; existem bindings para SMTP, Protocolo: tipicamente HTTP; existem bindings para SMTP,
TCPTCP– HTTP: Cookies, Redirection, SOAPActionHTTP: Cookies, Redirection, SOAPAction
WSDLWSDL– Mensagens: XML, …Mensagens: XML, …– Types: XML Schema, …Types: XML Schema, …– Port Types: One-Way, Request-Response, …Port Types: One-Way, Request-Response, …– Bindings: SOAP, HTTP GET, SMTP, …Bindings: SOAP, HTTP GET, SMTP, …
UDDIUDDI– Arbitrariedade dos tModelArbitrariedade dos tModel
Introdução WS-I.orgIntrodução WS-I.org Evolução rápida dos Evolução rápida dos StandardsStandards
1998 1999 2000 2001 2002 2003
XM
L 1.0
XML 1.
0 2nd E
d
WSD
L 1.0
WSD
L 1.1
WSD
L 1.
2
SO
AP 1
.0
SO
AP 1
.1
SO
AP 1
.2
XML Sc
hem
a 1.
0U
DD
I 1.0
UD
DI 2.0
UDDI 3.0
WS-I
Basi
c Pro
file
1.0
WS-I
.org
2004
XM
L N
am
esp
ace
s 1.0
Introdução WS-I.orgIntrodução WS-I.orgContextoContexto
Flexibilidade dos standardsFlexibilidade dos standards Evolução rápida dos standardsEvolução rápida dos standards Coordenação entre standardsCoordenação entre standards Conformidade das implementaçõesConformidade das implementações
Introdução WS-I.orgIntrodução WS-I.orgMissãoMissão
http://www.ws-i.orghttp://www.ws-i.org […] […] WS-I é uma organização aberta WS-I é uma organização aberta da indústria que tem como da indústria que tem como propósito promover propósito promover Interoperabilidade de Interoperabilidade de Web ServicesWeb Services entre diversas plataformas, entre diversas plataformas, sistemas operativos e linguagens sistemas operativos e linguagens de programação de programação […] […]
Introdução WS-I.org Introdução WS-I.org MissãoMissão Qual é a missão?
– Estabelecer uma definição clara de ‘Web Services’– Clarificar as especificações que estejam maduras para
implementar– Publicar indicações sobre a melhor forma de utilizar as
especificações– Apoiar programadores através de exemplos concretos e de
ferramentas de suporte
WS-I subscreve especificações que tenham sido largamente adoptadas pela industria
WS-I não escreve novas especificações, mas adopta o trabalho realizado por outros (Standards integrator)
Introdução WS-I.orgIntrodução WS-I.orgDeliverables Deliverables Perfis de Interoperabilidade
– Basic 1.0: XML, XSD, SOAP, WSDL, UDDI
Use Cases e Cenários de Utilização– Capturam respectivamente requisitos de negócio e
técnicos para uso Web Services
Aplicações Exemplo– Supply Chain Management (Gestão Cadeia de
Fornecimento)
Ferramentas de teste– Monitor e Analisador – Verificar conformidade com
Perfis
Introdução WS-I.orgIntrodução WS-I.orgRelações entre materiaisRelações entre materiais
Aplicação ExemploMateriais e
Ferramentas de Teste
Use Cases e Cenários de Utilização
Perfil(e.g., Basic Profile)
Conjunto Regras Feedback
Orienta Regras
Restrições
Feedback
Verifica / Feedback
Restrições Orienta Requisitos
AgendaAgenda
Introdução WS-I.orgIntrodução WS-I.org Perfis de InteroperabilidadePerfis de Interoperabilidade Aplicações ExemploAplicações Exemplo Ferramentas de TesteFerramentas de Teste Programa de ConformidadePrograma de Conformidade
Perfis de Perfis de InteroperabilidadeInteroperabilidadeWS-I WS-I Basic ProfilesBasic Profiles
Um ‘Um ‘Basic ProfileBasic Profile’ é:’ é:– Um conjunto de especificações de Um conjunto de especificações de Web Web
ServicesServices com versões especificas com versões especificas– Restrições e recomendações quanto Restrições e recomendações quanto
ao uso das mesmasao uso das mesmas
Perfis de Perfis de InteroperabilidadeInteroperabilidadeWS-I WS-I Basic ProfilesBasic Profiles Basic Profile 1.0 Basic Profile 1.0
– http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfilehttp://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html-1.0a.html (~50 páginas) (~50 páginas)
– Publicado em AgostoPublicado em Agosto 2003 2003
Basic Profile 1.1Basic Profile 1.1– Actualização Incremental à versão 1.0Actualização Incremental à versão 1.0– SOAP SOAP with Attachmentswith Attachments
Basic Security ProfileBasic Security Profile– Segurança no TransporteSegurança no Transporte– Segurança de Mensagens SOAPSegurança de Mensagens SOAP– Outros aspectos (de acordo com Outros aspectos (de acordo com Basic ProfileBasic Profile 1.0 e 1.0 e
1.1)1.1)
Perfis de Perfis de InteroperabilidadeInteroperabilidadeFilosofia de um Filosofia de um Basic ProfileBasic Profile Não é garantia de Não é garantia de
interoperabilidadeinteroperabilidade Restringe em lugar de relaxar Restringe em lugar de relaxar Procura compatibilidade futuraProcura compatibilidade futura
Perfis de Perfis de InteroperabilidadeInteroperabilidadeWS-I WS-I Basic ProfileBasic Profile 1.0 1.0 BaseBase
– HTTP (1.0 ou 1.1)HTTP (1.0 ou 1.1)– XML 1.0XML 1.0– XML NamespacesXML Namespaces– XML Schema 1.0XML Schema 1.0
SOAP 1.1SOAP 1.1– Restrição mais significativaRestrição mais significativa: :
MUST NOT use SOAP 1.1 Section 5 (SOAP Encoding)MUST NOT use SOAP 1.1 Section 5 (SOAP Encoding)
WSDL 1.1WSDL 1.1– MUST use XML Schema 2001 and SOAP/HTTP bindingMUST use XML Schema 2001 and SOAP/HTTP binding
UDDI 2.0UDDI 2.0
Perfis de Perfis de InteroperabilidadeInteroperabilidadeWS-I WS-I Basic ProfileBasic Profile 1.1 1.1 Soap with AttachmentsSoap with Attachments
– W3C Note, Dezembro 2000W3C Note, Dezembro 2000– http://www.w3.org/TR/SOAP-attachmentshttp://www.w3.org/TR/SOAP-attachments
Perfis de Perfis de InteroperabilidadeInteroperabilidadeBasic ProfileBasic Profile 1.0 - Segurança 1.0 - Segurança Imposições reduzidasImposições reduzidas
– Permite mecanismos de segurança Permite mecanismos de segurança baseados embaseados em HTTP HTTP SSL/TLSSSL/TLS client certificatesclient certificates HTTP AuthenticationHTTP Authentication
– Não define nenhum mecanismo para Não define nenhum mecanismo para segurança das mensagens SOAPsegurança das mensagens SOAP (e.g. (e.g. WS-Security)WS-Security)
Perfis de Perfis de InteroperabilidadeInteroperabilidadeBasic Security ProfileBasic Security Profile Baseado em standardsBaseado em standards
– HTTP sobre TLS (HTTPS)HTTP sobre TLS (HTTPS)– SOAP SOAP Attachments SecurityAttachments Security– OASIS OASIS Web Services SecurityWeb Services Security v1.0 v1.0
Work in progressWork in progress!!
Perfis de Perfis de InteroperabilidadeInteroperabilidadeConformidadeConformidade Critérios de conformidade são estabelecidos:Critérios de conformidade são estabelecidos:
– Por requisitosPor requisitos– ParaPara artifactsartifacts
MensagemMensagem (SOAP/HTTP) (SOAP/HTTP)– Scoped to the Scoped to the entireentire message message
Description (WSDL)Description (WSDL)– Scoped to wsdl:port (or parts of a port)Scoped to wsdl:port (or parts of a port)
Regdata / Discovery (UDDI)Regdata / Discovery (UDDI)– Scoped to bindingTemplate or tModelsScoped to bindingTemplate or tModels
Considera-se que uma instância de um Considera-se que uma instância de um artifact artifact tem tem conformidade quando todos os requisitos conformidade quando todos os requisitos correspondentes se verificaremcorrespondentes se verificarem
O Basic Profile O Basic Profile NÃO estabelece um critério que indique se NÃO estabelece um critério que indique se as ferramentas e plataformas estão em conformidadeas ferramentas e plataformas estão em conformidade
Perfis de Perfis de InteroperabilidadeInteroperabilidadeConformidadeConformidade Definem-se várias instâncias de Definem-se várias instâncias de
processamentoprocessamento– Instância (e.g. ASMX)Instância (e.g. ASMX)– Consumidor (e.g. classe proxy e Consumidor (e.g. classe proxy e
wsdl.exe)wsdl.exe) Tanto Instâncias como Tanto Instâncias como
Consumidores devem respeitar as Consumidores devem respeitar as regras para:regras para:– SendersSenders– ReceiversReceivers
AgendaAgenda
Introdução WS-I.orgIntrodução WS-I.org Perfis de InteroperabilidadePerfis de Interoperabilidade Aplicações ExemploAplicações Exemplo Ferramentas de TesteFerramentas de Teste Programa de ConformidadePrograma de Conformidade
Aplicação ExemploAplicação ExemploIntroduçãoIntrodução
Web ServicesWeb Services Standard que promovam Standard que promovam InteroperabilidadeInteroperabilidade– Entre plataformas, aplicações e linguagens de Entre plataformas, aplicações e linguagens de
programaçãoprogramação– Interoperabilidade consistente e fiável entre Interoperabilidade consistente e fiável entre
tecnologias de tecnologias de Web servicesWeb services de vários vendedores de vários vendedores– Integrador de Integrador de standards standards para ajudar ao avanço de para ajudar ao avanço de
Web services de forma estruturada e coerenteWeb services de forma estruturada e coerente
Guidance
Boas Práticas
Specs Profiles
Consenso WS-I
Exemplos
Prova
Aplicação ExemploAplicação ExemploDescriçãoDescrição Aplicação simples de Gestão de Cadeia de Aplicação simples de Gestão de Cadeia de
FornecimentoFornecimento (Supply Chain Management) (Supply Chain Management)– Baseada emBaseada em Web Services Web Services– Demonstra uma aplicação que tem conformidadeDemonstra uma aplicação que tem conformidade com com
Basic Profile 1.0 Basic Profile 1.0 – Não é necessariamente representativaNão é necessariamente representativa dasdas Best Best
PracticesPractices
Doc/Literal Doc/Literal & RPC/Literal& RPC/Literal
Demonstra 3 padrões de troca de MensagensDemonstra 3 padrões de troca de Mensagens– One-WayOne-Way– Request-ResponseRequest-Response– CallbackCallback
Cliente Servidor
Pedido Inicial
Resposta: Ack
Pedido: Notifica Resposta
Resposta: Ack
Resposta Final:
Pedido Original:
Aplicação ExemploAplicação ExemploBasic CallbackBasic Callback
<ns2:StartHeader xmlns:ns2=""> <ns2:conversationID>1</ns2:conversationID> <ns2:callbackLocation>http://localhost:999/WS-I_Sample/services/WarehouseCallBack</ns2:callbackLocation> </ns2:StartHeader>
Aplicação exemplo inclui algumas funcionalidades que não são as mais Aplicação exemplo inclui algumas funcionalidades que não são as mais correctas para plataformas Microsoftcorrectas para plataformas Microsoft
Permite RPC/Literal Permite RPC/Literal – The Argument Against SOAP EncodingThe Argument Against SOAP Encoding
http://http://msdn.microsoft.com/library/default.asp?urlmsdn.microsoft.com/library/default.asp?url=/library/en-us/=/library/en-us/dnsoap/html/argsoape.aspdnsoap/html/argsoape.asp
SOAP encoding. SOAP encoding —sometimes called "Section 5 encoding", SOAP encoding. SOAP encoding —sometimes called "Section 5 encoding", after the portion of the SOAP 1.1 specification where it is defined —is a after the portion of the SOAP 1.1 specification where it is defined —is a shadow from SOAP's past that has no place in the future of Web servicesshadow from SOAP's past that has no place in the future of Web services
Propõe funcionalidade através de mecanismos não standardizadosPropõe funcionalidade através de mecanismos não standardizados– CallbackCallback
<StartHeader><StartHeader> <conversationID> <conversationID> <callbackLocation> <callbackLocation>
Exemplo equivalente WS-Addressing:Exemplo equivalente WS-Addressing:<wsa:RelatesTo><wsa:RelatesTo><wsa:ReplyTo><wsa:ReplyTo>
Aplicação ExemploAplicação ExemploRecomendações MSRecomendações MS
UC1: Purchase Goods
UC2: Source Goods
UC3: Replenish Stock
Retailer SystemUC4: Supply
Finished Goods
UC5: Manufacture Finished Goods
Manufacturing System
UC8: Configure and run demo
UC8: View Events
UC7: Log Events
Demo System
<<include>>
Consumer
DemoUser
<<include>>
AgendaAgenda
Introdução WS-I.orgIntrodução WS-I.org Perfis de InteroperabilidadePerfis de Interoperabilidade Aplicações ExemploAplicações Exemplo Ferramentas de TesteFerramentas de Teste Programa de ConformidadePrograma de Conformidade
Ferramentas de TesteFerramentas de TesteObjectivosObjectivos Materiais e Ferramentas de Teste de Materiais e Ferramentas de Teste de Web ServicesWeb Services
servem vários propósitos:servem vários propósitos:– Testar Conformidade com WS-I Testar Conformidade com WS-I Basic Profile(sBasic Profile(s))– Testar Interoperabilidade e diagnosticar problemasTestar Interoperabilidade e diagnosticar problemas– Ajudar programadores de Ajudar programadores de Web ServicesWeb Services a auto validar a auto validar
a interoperabilidade e conformidade com WS-Ia interoperabilidade e conformidade com WS-I– Estabelecer metodologia de testes WS-IEstabelecer metodologia de testes WS-I– Fornecer feedback a outros grupos de trabalho do WS-IFornecer feedback a outros grupos de trabalho do WS-I
Ferramentas de teste não certificam que um Ferramentas de teste não certificam que um Web ServiceWeb Service ou um cliente estão de acordo com WS-I * ou um cliente estão de acordo com WS-I * ProfileProfile
Ferramentas e materiais de testes são versionados e Ferramentas e materiais de testes são versionados e essas versões existem em cada plataformaessas versões existem em cada plataforma– Desenvolvidas em Desenvolvidas em ambosambos Java e C# Java e C#
Ferramentas de TesteFerramentas de TesteArquitecturaArquitectura
UserApplication
Or WS
Web Service
Logfile
MONITOR
ANALYZER Results
Monitor
Interceptor
RequestorWeb
Service
SOAPMessage
SOAPMessage
LoggerMonitorConfig
FileMonitor
SOAPMessage
<logFile truncate="true" location="\ temp\ traceLog.xml"/> <manInTheMiddle> <redirect> <listenPort>9090</listenPort>
<schemeAndHostPort> http:/ / localhost:80 </schemeAndHostPort>
</redirect> </manInTheMiddle>
<log …. startTimestamp="2002-07-30T20:16:06.722Z" > <monitor … > <implementer … />
<environment> <runtime name="… " version="… " /> <operatingSystem name="… " version="… " /> <xmlParser name="…" version="…" /> </environment> </monitor>
<logEntry id="1" type="request" timestamp="…6.722Z"> <message>< ;?xml …> ; < ;SOAP-ENV:Envelope …</message> <senderIP>127.0.0.1</senderIP> <receiverIP>169.198.23.45</receiverIP> <HTTPheaders>HTTP/ 1.1 200 OK Server: … </HTTP…>
</ logEntry> <logEntry id="1" type="response" timestamp="…6.962Z">
9090
80
MessageLog
Monitor
XMLSchema
Interceptor
MessageLog
RequestorWeb
Service
Analyzer WSDL
SOAPMessage
SOAPMessage
Logger
ConformanceReport
MonitorConfig
File
AnalyzerConfig
File
TestAssertionDocument
Monitor
Analyzer
UDDI
<logFile>traceLog.xml</logFile> <profileAssertions>tad_ BP1.xml</…> <wsdl> <wsdlFile> RetailerService.wsdl</…>
ConformanceReport
ConfigurationEnvironment
Artifact Assertion results
Summaries
Discovery Description Message
ResultArtifact
type
ResultAssertionResult per
targetResult per
targetResult per
target
ResultAll Result
Artifact type
Pass
Fail
NotApplicable
NotTested
Result types
Port
Binding
PortType
Message
Message
Operation
Binding Template
TModel
XSLT XSLT
Analyzer
ConformanceReport
AnalyzerConfig
File
TestAssertionDocument XSLT HTML report
<report …> <profile name="BasicProfile" version="1.0" /> <analyzer version="…" releaseDate="…"> <implementer … location="…" /> <environment> … </environment> <wsi-analyzerConfig:configuration …>…</… > </analyzer> <assertionTarget type="wsdlDocument">
<assertionResult id="WSI4001" result="passed">
<assertionDescription>The name scope in "definitions" element must have value: http:/ / schemas.xmlsoap.org/ wsdl/
</assertionDescription> </assertionResult> <assertionResult>…</…>
</assertionTarget>
Ferramentas de TesteFerramentas de TesteFunção do MonitorFunção do Monitor Captura Mensagens: Captura Mensagens:
InterceptorInterceptor– Especifico de um Especifico de um
Transporte Transporte – Captura mensagens e Captura mensagens e
erros na camada de erros na camada de transporte transporte
Logging e Logging e Formatação: Formatação: LoggerLogger– Grava output Grava output
execução do execução do InterceptorInterceptor
– Formata entradas no Formata entradas no log (XML) e exporta-o log (XML) e exporta-o para um ficheiropara um ficheiro
Sender ReceiverInterceptor
Logger
Log File
LOG file(ficheiro XML)
Test Procedure 3(HTTP)
Test Procedure 4(SOAP)
Test Procedure 2 (WSDL)
Relatórios Teste
WS Definition(WSDL, port)
WS-I Profile(s)
Activação selectiva de procedimentos teste
UDDITest Procedure 1
(UDDI)
Ferramentas de TesteFerramentas de TesteAnalisadorAnalisador Analise da descrição WSDLAnalise da descrição WSDL
– Testa Conformidade do Testa Conformidade do WSDL, e Target PortsWSDL, e Target Ports
Analise das mensagens do Analise das mensagens do Web ServiceWeb Service– Lê e correlaciona registos no Lê e correlaciona registos no
LogLog– Executa procedimentos de Executa procedimentos de
teste relevantes para o perfilteste relevantes para o perfil
Relatório de ConformidadeRelatório de Conformidade– Cobertura, Validação (WS Cobertura, Validação (WS
ports pass/fail), Errosports pass/fail), Erros
Desacoplado de Desacoplado de MonitorizaçãoMonitorização– Testes de conformidade Testes de conformidade
podem ser executados em podem ser executados em run-time ou posteriormenterun-time ou posteriormente
Ferramentas de TesteFerramentas de TesteSource e BináriosSource e Binários
http://www.ws-i.orghttp://www.ws-i.org//
Ferramentas de testeFerramentas de teste
demodemo
AgendaAgenda
Introdução WS-I.orgIntrodução WS-I.org Perfis de InteroperabilidadePerfis de Interoperabilidade Aplicações ExemploAplicações Exemplo Ferramentas de TesteFerramentas de Teste Programa de ConformidadePrograma de Conformidade
Programa de Programa de ConformidadeConformidadeObjectivosObjectivos Vendedores de tecnologia poderão invocar
conformidade com perfis WS-I– Demonstra liderança em Web Services e
Interoperabilidade– Invoca alinhamento com melhores práticas da industria
Programa auto gerido– Baseado em Relatórios emitidos pelo Vendedor– Clientes terão informação necessária para auditar e
duplicar os testes de conformidade
WS-I fornecerá índice de relatórios no seu site .org
Programa de Programa de Conformidade Conformidade DescriçãoDescrição Tipo de clausulas de conformidade:
– Artifacts: Schema e WSDL. (e.g., de indústrias verticais)
– Instancias de Web Services (e.g., MapPoint .NET)
– Aplicações (e.g., SAP, GreatPlains)
Conformidade de plataformas e ferramentas ainda está em estudo
Programa de Programa de conformidadeconformidadeRelação comRelação com .NET Connected .NET Connected Qual a relação com o programa .NET
Connected?– WS-I é mais restritivo
– São fornecidas regras sobre detalhes dos specs, não apenas sobre quais os specs a utilizar
– Algumas características dos spec são abandonadas pelo WS-I (e.g., SOAP encoding)
As aplicações .NET Connected PODEM ter conformidade com WS-I
Aplicações em conformidade com WS-I e que tenham conformidade com na Framework .NET são todas .NET Connected Premium
Building Interoperable Web Services: WS-I Basic Building Interoperable Web Services: WS-I Basic Profile 1.0Profile 1.0http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsvcinhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsvcinter/html/wsi-bp_msdn_landingpage.aspter/html/wsi-bp_msdn_landingpage.asp
– Foca aspectos chave do WS-I e dá indicações de como lidar com Foca aspectos chave do WS-I e dá indicações de como lidar com algumas restriçõesalgumas restrições
– Descreve como tirar partido do Visual Studio para criar Web Descreve como tirar partido do Visual Studio para criar Web Services que estejam em conformidade com as especificações WS-IServices que estejam em conformidade com as especificações WS-I
Utilize a aplicação de exemplo WS-I como exemplo de como se Utilize a aplicação de exemplo WS-I como exemplo de como se deve ou não deve desenhar um Web Servicedeve ou não deve desenhar um Web Service
A aplicação exemplo WS-I demonstra boas práticas de A aplicação exemplo WS-I demonstra boas práticas de interoperabilidade, mas não necessariamente de outros interoperabilidade, mas não necessariamente de outros aspectos como por exemplo performance ou segurançaaspectos como por exemplo performance ou segurança
Programa de Programa de ConformidadeConformidadeBoas PráticasBoas Práticas
Patterns & PracticesPatterns & Practiceshttp://www.microsoft.com/patterhttp://www.microsoft.com/patternsns
ResumoResumo
WS-I disponibiliza regras muito claras acerca de WS-I disponibiliza regras muito claras acerca de como construir como construir Web ServicesWeb Services interoperaveis interoperaveis
Os perfis de interoperabilidade definem o Os perfis de interoperabilidade definem o caminho para a interoperabilidadecaminho para a interoperabilidade
Aplicações Exemplo dão dicas de como seguir o Aplicações Exemplo dão dicas de como seguir o caminho indicadocaminho indicado
As Ferramentas de Teste ajudam os As Ferramentas de Teste ajudam os programadores a confirmar que construíram os programadores a confirmar que construíram os Web ServicesWeb Services da ‘forma correcta’ da ‘forma correcta’
Aplicações e Aplicações e Web ServicesWeb Services podem utilizar uma podem utilizar uma marca de conformidade do WS-I se seguirem o marca de conformidade do WS-I se seguirem o processo obrigatórioprocesso obrigatório
ResumoResumoO que pode fazerO que pode fazer Desenhar e construir Web Services que seguem Desenhar e construir Web Services que seguem
as regras WS-Ias regras WS-I
Verificar que os Web Services fornecidos por Verificar que os Web Services fornecidos por produtos estão em conformidade com os Perfis produtos estão em conformidade com os Perfis – Utilizar as ferramentas de teste e dar feedback sobre Utilizar as ferramentas de teste e dar feedback sobre
as mesmas as mesmas
Planear a publicação de relatórios de Planear a publicação de relatórios de conformidade conformidade
Evangelizar WS-I para os seus clientes, Evangelizar WS-I para os seus clientes, parceiros e fornecedoresparceiros e fornecedores– Actualizar produtos para obter conformidadeActualizar produtos para obter conformidade
© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.