ws-i: interoperabilidade no desenho e consumo de web services outubro 2003

55
WS-I: WS-I: Interoperabilidade no Interoperabilidade no Desenho e Consumo de Desenho e Consumo de Web Services Web Services Outubro 2003 Outubro 2003

Upload: internet

Post on 16-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

WS-I: WS-I: Interoperabilidade no Interoperabilidade no Desenho e Consumo de Desenho e Consumo de Web ServicesWeb Services

Outubro 2003Outubro 2003

Page 2: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 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

Page 3: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 4: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 5: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 6: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>

Page 7: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>

Page 8: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 9: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>

Page 10: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 11: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 12: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 13: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 14: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 15: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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 […] […]

Page 16: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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)

Page 17: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 18: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 19: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 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

Page 20: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 21: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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)

Page 22: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 23: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 24: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 25: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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)

Page 26: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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!!

Page 27: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 28: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 29: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 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

Page 30: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 31: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 32: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>

Page 33: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 34: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>>

Page 35: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003
Page 36: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 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

Page 37: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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#

Page 38: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

Ferramentas de TesteFerramentas de TesteArquitecturaArquitectura

UserApplication

Or WS

Web Service

Logfile

MONITOR

ANALYZER Results

Page 39: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>&lt ;?xml …&gt ; &lt ;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

Page 40: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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</…>

Page 41: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 42: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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>

Page 43: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 44: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 45: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

Ferramentas de TesteFerramentas de TesteSource e BináriosSource e Binários

http://www.ws-i.orghttp://www.ws-i.org//

Page 46: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

Ferramentas de testeFerramentas de teste

demodemo

Page 47: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 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

Page 48: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 49: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 50: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 51: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 52: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

Patterns & PracticesPatterns & Practiceshttp://www.microsoft.com/patterhttp://www.microsoft.com/patternsns

Page 53: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 54: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

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

Page 55: WS-I: Interoperabilidade no Desenho e Consumo de Web Services Outubro 2003

© 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.