A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "WS-I: Interoperabilidade no Desenho e Consumo de Web Services"— Transcrição da apresentação:

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

2 Agenda Introdução WS-I.org Perfis de Interoperabilidade
Aplicações Exemplo Ferramentas de Teste Programa de Conformidade

3 Introdução WS-I.org Contexto
Negócios têm que inovar cada vez mais rapidamente Sucesso passa por dispor de muita interoperabilidade Dentro da empresa Entre parceiros de negócio Num conjunto diversificado de plataformas, aplicações e linguagens de programação Tecnologias Internet são um dado, e interoperabilidade é um requisito

4 Introdução WS-I.org Comentá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

5 Introdução WS-I.org Standards
XML (eXtensible Markup Language) Não está acoplado a qualquer linguagem de programação, sistema operativo ou vendedor de software. É útil para descrever formatos de documentos para a Web e também para dados estruturados. XML Namespaces Evitar conflitos de nomeclatura XML Schema (XSD) Descrever classes de documentos XML

6 Introdução WS-I.org Standards – XML Schema
<?xml version="1.0" encoding="utf-8" ?> <FilmesPreferidos <Filme> <Titulo>Matrix</Titulo> <Site url=" </Filme> <Titulo>Lord of the Rings - Part I</Titulo> <Site url=" <Titulo>Bicentenial Man</Titulo> </FilmesPreferidos> <?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs=" > <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:element name="Titulo" type="xs:string" /> <xs:element name="Site" minOccurs="0"> <xs:attribute name="url" type="xs:URI" /> </xs:schema>

7 Introdução WS-I.org Standards (cont.)
SOAP (Simple Object Access Protocol) Protocolo simples para a troca de informação estruturada num ambiente distribuído e descentralizado. “Messaging Framework”: Estabelece um formato extensível de mensagens XML, as quais podem ser enviadas através de diversos protocolos subjacentes WSDL (Web Services Description Language) Documentar serviços (operações, mensagens, …) Simplificar consumo dos serviços (criação automática de classes proxy) UDDI (Universal Description and Discovery Interface) Catalogar serviços existentes Também conhecido como as Páginas Amarelas dos WebServices <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=" xmlns:xsi=" xmlns:xsd=" > <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 <Filme> <Titulo>Matrix</Titulo> <Site url=" </Filme> </FilmesPreferidos> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

8 Introdução WS-I.org Standards (cont.)
SOAP (Simple Object Access Protocol) Protocolo simples para a troca de informação estruturada num ambiente distribuído e descentralizado. “Messaging Framework”: Estabelece um formato extensível de mensagens XML, as quais podem ser enviadas através de diversos protocolos subjacentes WSDL (Web Services Description Language) Documentar serviços (operações, mensagens, …) Simplificar consumo dos serviços (criação automática de classes proxy) UDDI (Universal Description and Discovery Interface) Catalogar serviços existentes Também conhecido como as Páginas Amarelas dos WebServices

9 Introdução WS-I.org Standards - WSDL
<types> <!-- Type definitions here --> <xs:schema elementFormDefault="qualified" xmlns:xs=" <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:complexType name="FilmeType"> ... </xs:schema> </types> <definitions> Conjunto de definições que caracterizam um Web Service <types> Definição do formato das mensagens relevantes. Típica mas não necessariamente através de XML Schema <message> Cada mensagem é constituída por zero/uma ou mais partes. Cada parte é de um tipo bem definido. Tipicamente estes tipos são tipos base de XML Schema ou tipos definidos na tag <types> <portType> Um tipo de porto é um conjunto de operações. Um operação é uma acção disponibilizada por um serviço. A cada operação está associado um conjunto de mensagens de input e um conjunto de mensagens de output. <binding> Forma como um <portType> é exposto num protocolo de transporte (e.g., HTTP, MIME, TCP,…). Define características das mensagens nesse protocolo, e forma como protocolo é utilizado. <service> Conjunto de vários portos, cada um dos quais instancia operações de acordo com um binding num determinado endpoint. <binding name="FavoriteMovieWSSoap" type="s0:FavoriteMovieWSSoap"> <soap:binding transport=" style="document" /> <operation name="GetFavoriteMovies"> <soap:operation style="document" /> <input> <soap:body use="literal" /> </input> <output> </output> </operation> </binding> <definitions xmlns=" > <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> <portType name="FavoriteMovieWSSoap"> <operation name="GetFavoriteMovies"> <input message="tns:GetFavoriteMoviesSoapIn" /> <output message="tns:GetFavoriteMoviesSoapOut" /> </operation> </portType> <message name="GetFavoriteMoviesSoapIn"> <part name="parameters" element="tns:GetFavoriteMovies" /> </message> <message name="GetFavoriteMoviesSoapOut"> <part name="parameters" element="tns:GetFavoriteMoviesResponse"/> <service name="FavoriteMovieWS"> <port name="FavoriteMovieWSSoap" binding="tns:FavoriteMovieWSSoap"> <soap:address location=" /> </port> </service>

10 Introdução WS-I.org Standards (cont.)
SOAP (Simple Object Access Protocol) Protocolo simples para a troca de informação estruturada num ambiente distribuído e descentralizado. “Messaging Framework”: Estabelece um formato extensível de mensagens XML, as quais podem ser enviadas através de diversos protocolos subjacentes WSDL (Web Services Description Language) Documentar serviços (operações, mensagens, …) Simplificar consumo dos serviços (criação automática de classes proxy) UDDI (Universal Description and Discovery Interface) Catalogar serviços existentes Também conhecido como as Páginas Amarelas dos WebServices

11 Introdução WS-I.org Contexto
Flexibilidade dos standards Evolução rápida dos standards Coordenação entre standards Conformidade das implementações

12 Introdução WS-I.org Flexibilidade dos standards
SOAP Encoding vs Literal Document vs RPC Header attributes: mustUnderstand, actor/role Protocolo: tipicamente HTTP; existem bindings para SMTP, TCP HTTP: Cookies, Redirection, SOAPAction WSDL Mensagens: XML, … Types: XML Schema, … Port Types: One-Way, Request-Response, … Bindings: SOAP, HTTP GET, SMTP, … UDDI Arbitrariedade dos tModel

13 Introdução WS-I.org Evolução rápida dos Standards
XML Namespaces 1.0 WS-I Basic Profile 1.0 SOAP 1.0 SOAP 1.1 WSDL 1.0 WSDL 1.1 UDDI 1.0 WS-I.org UDDI 2.0 SOAP 1.2 XML 1.0 1998 1999 2000 2001 2002 2003 2004 WSDL 1.2 XML 1.0 2nd Ed XML Schema 1.0 UDDI 3.0

14 Introdução WS-I.org Contexto
Flexibilidade dos standards Evolução rápida dos standards Coordenação entre standards Conformidade das implementações

15 Porquê mais um “grupo” para lidar com Web Services?
Trabalho à volta de Web Services é realizado por muitas entidades: Orgs de Standards: W3C, OASIS, IETF, … Orgs ad-hoc: UDDI.org Vendedores: GXA

16 Introdução WS-I.org Missão
[…] WS-I é uma organização aberta da indústria que tem como propósito promover Interoperabilidade de Web Services entre diversas plataformas, sistemas operativos e linguagens de programação […]

17 Introdução WS-I.org Missã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)

18 Introdução WS-I.org 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

19 Introdução WS-I.org Relações entre materiais
Feedback Aplicação Exemplo Materiais e Ferramentas de Teste Verifica / Feedback Restrições Orienta Requisitos Conjunto Regras Feedback Orienta Regras Use Cases e Cenários de Utilização Perfil (e.g., Basic Profile) Restrições

20 Agenda Introdução WS-I.org Perfis de Interoperabilidade
Aplicações Exemplo Ferramentas de Teste Programa de Conformidade

21 Perfis de Interoperabilidade WS-I Basic Profiles
Um ‘Basic Profile’ é: Um conjunto de especificações de Web Services com versões especificas Restrições e recomendações quanto ao uso das mesmas

22 Perfis de Interoperabilidade WS-I Basic Profiles
(~50 páginas) Publicado em Agosto 2003 Basic Profile 1.1 Actualização Incremental à versão 1.0 SOAP with Attachments Basic Security Profile Segurança no Transporte Segurança de Mensagens SOAP Outros aspectos (de acordo com Basic Profile 1.0 e 1.1)

23 Perfis de Interoperabilidade Filosofia de um Basic Profile
Não é garantia de interoperabilidade Restringe em lugar de relaxar Procura compatibilidade futura

24 Perfis de Interoperabilidade WS-I Basic Profile 1.0
Base HTTP (1.0 ou 1.1) XML 1.0 XML Namespaces XML Schema 1.0 SOAP 1.1 Restrição mais significativa: MUST NOT use SOAP 1.1 Section 5 (SOAP Encoding) WSDL 1.1 MUST use XML Schema 2001 and SOAP/HTTP binding UDDI 2.0

25 Perfis de Interoperabilidade WS-I Basic Profile 1.1
Soap with Attachments W3C Note, Dezembro 2000

26 Perfis de Interoperabilidade Basic Profile 1.0 - Segurança
Imposições reduzidas Permite mecanismos de segurança baseados em HTTP SSL/TLS client certificates HTTP Authentication Não define nenhum mecanismo para segurança das mensagens SOAP (e.g. WS-Security)

27 Perfis de Interoperabilidade Basic Security Profile
Baseado em standards HTTP sobre TLS (HTTPS) SOAP Attachments Security OASIS Web Services Security v1.0 Work in progress!

28 Perfis de Interoperabilidade Conformidade
Critérios de conformidade são estabelecidos: Por requisitos Para artifacts Mensagem (SOAP/HTTP) Scoped to the entire message Description (WSDL) Scoped to wsdl:port (or parts of a port) Regdata / Discovery (UDDI) Scoped to bindingTemplate or tModels Considera-se que uma instância de um artifact tem conformidade quando todos os requisitos correspondentes se verificarem O Basic Profile NÃO estabelece um critério que indique se as ferramentas e plataformas estão em conformidade

29 Perfis de Interoperabilidade Conformidade
Definem-se várias instâncias de processamento Instância (e.g. ASMX) Consumidor (e.g. classe proxy e wsdl.exe) Tanto Instâncias como Consumidores devem respeitar as regras para: Senders Receivers

30 Agenda Introdução WS-I.org Perfis de Interoperabilidade
Aplicações Exemplo Ferramentas de Teste Programa de Conformidade

31 Aplicação Exemplo Introdução
Web Services Standard que promovam Interoperabilidade Entre plataformas, aplicações e linguagens de programação Interoperabilidade consistente e fiável entre tecnologias de Web services de vários vendedores Integrador de standards para ajudar ao avanço de Web services de forma estruturada e coerente Specs Profiles Consenso WS-I Exemplos Prova Guidance Boas Práticas

32 Aplicação Exemplo Descrição
Aplicação simples de Gestão de Cadeia de Fornecimento (Supply Chain Management) Baseada em Web Services Demonstra uma aplicação que tem conformidade com Basic Profile 1.0 Não é necessariamente representativa das Best Practices Doc/Literal & RPC/Literal Demonstra 3 padrões de troca de Mensagens One-Way Request-Response Callback

33 Aplicação Exemplo Basic Callback
<ns2:StartHeader xmlns:ns2=""> <ns2:conversationID>1</ns2:conversationID> <ns2:callbackLocation> </ns2:StartHeader>

34 Aplicação Exemplo Recomendações MS
Aplicação exemplo inclui algumas funcionalidades que não são as mais correctas para plataformas Microsoft Permite RPC/Literal The Argument Against SOAP 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 shadow from SOAP's past that has no place in the future of Web services Propõe funcionalidade através de mecanismos não standardizados Callback <StartHeader> <conversationID> <callbackLocation> Exemplo equivalente WS-Addressing: <wsa:RelatesTo> <wsa:ReplyTo>

35 UC4: Supply Finished Goods UC1: Purchase Goods
Consumer Retailer System UC4: Supply Finished Goods UC1: Purchase Goods <<include>> <<include>> UC2: Source Goods UC5: Manufacture Finished Goods UC3: Replenish Stock Manufacturing System UC8: Configure and run demo UC7: Log Events UC8: View Events Demo User Demo System

36

37 Aplicação Exemplo Implementações
IBM, BEA, Microsoft, Sun, Oracle, SAP, Corillian, Bowstreet Registada no UDDI Procurar serviços com %ws-i% Implementação da Microsoft implementation Using .NET v1.0

38 Agenda Introdução WS-I.org Perfis de Interoperabilidade
Aplicações Exemplo Ferramentas de Teste Programa de Conformidade

39 Ferramentas de Teste Objectivos
Materiais e Ferramentas de Teste de Web Services servem vários propósitos: Testar Conformidade com WS-I Basic Profile(s) Testar Interoperabilidade e diagnosticar problemas Ajudar programadores de Web Services a auto validar a interoperabilidade e conformidade com WS-I Estabelecer metodologia de testes WS-I Fornecer feedback a outros grupos de trabalho do WS-I Ferramentas de teste não certificam que um Web Service ou um cliente estão de acordo com WS-I * Profile Ferramentas e materiais de testes são versionados e essas versões existem em cada plataforma Desenvolvidas em ambos Java e C#

40 Ferramentas de Teste Arquitectura
User Application Or WS Web Service MONITOR ANALYZER Log file Results

41 Monitor Web Requestor Service Monitor Interceptor Logger 80 9090
SOAP Message 80 Monitor SOAP Message SOAP Message Interceptor 9090 Monitor Config File Logger Monitor Message Log

42 Monitor Analyzer Web Requestor Service Monitor Interceptor Logger
SOAP Message SOAP Message Interceptor Monitor Config File Logger Monitor Message Log XML Schema Analyzer Analyzer Config File Analyzer WSDL Test Assertion Document Conformance Report UDDI

43 Conformance Report Summaries Configuration Environment
Artifact Assertion results XSLT XSLT Discovery Description Message Result All Result Assertion Result Artifact type Result Artifact type Result per target Result per target Result per target Pass Fail NotApplicable NotTested Result types Binding Template Port Message Binding TModel PortType Operation Message

44 Analyzer Config File Analyzer Test Assertion Document HTML report Conformance Report XSLT

45 Ferramentas de Teste Função do Monitor
Captura Mensagens: Interceptor Especifico de um Transporte Captura mensagens e erros na camada de transporte Logging e Formatação: Logger Grava output execução do Interceptor Formata entradas no log (XML) e exporta-o para um ficheiro Sender Interceptor Receiver Logger Log File

46 Ferramentas de Teste Analisador
Activação selectiva de procedimentos teste Analise da descrição WSDL Testa Conformidade do WSDL, e Target Ports Analise das mensagens do Web Service Lê e correlaciona registos no Log Executa procedimentos de teste relevantes para o perfil Relatório de Conformidade Cobertura, Validação (WS ports pass/fail), Erros Desacoplado de Monitorização Testes de conformidade podem ser executados em run-time ou posteriormente WS-I Profile(s) Test Procedure 1 (UDDI) UDDI WS Definition (WSDL, port) Test Procedure 2 (WSDL) Test Procedure 3 (HTTP) LOG file (ficheiro XML) Test Procedure 4 (SOAP) Relatórios Teste

47 Ferramentas de Teste Source e Binários

48 demo Ferramentas de teste

49 Ferramentas de Teste Monitorizar a Aplicação Exemplo
Serviço Retalhista getCatalog Página Carrinho Compras submitOrder shipGoods Armazém A Seleccionar Items e Quantidades shipGoods submitPO Submeter Encomenda Monitor Fabricante X SubmitPO SubmitShipNotice

50 Agenda Introdução WS-I.org Perfis de Interoperabilidade
Aplicações Exemplo Ferramentas de Teste Programa de Conformidade

51 Programa de Conformidade Objectivos
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

52 Programa de Conformidade Descriçã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

53 Programa de conformidade Relação com .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

54 Programa de Conformidade Boas Práticas
Building Interoperable Web Services: WS-I Basic Profile 1.0 Foca aspectos chave do WS-I e dá indicações de como lidar com algumas restrições Descreve como tirar partido do Visual Studio para criar Web Services que estejam em conformidade com as especificações WS-I Utilize a aplicação de exemplo WS-I como exemplo de como se deve ou não deve desenhar um Web Service A aplicação exemplo WS-I demonstra boas práticas de interoperabilidade, mas não necessariamente de outros aspectos como por exemplo performance ou segurança

55 Patterns & Practices http://www.microsoft.com/patterns

56 Resumo WS-I disponibiliza regras muito claras acerca de como construir Web Services interoperaveis Os perfis de interoperabilidade definem o caminho para a interoperabilidade Aplicações Exemplo dão dicas de como seguir o caminho indicado As Ferramentas de Teste ajudam os programadores a confirmar que construíram os Web Services da ‘forma correcta’ Aplicações e Web Services podem utilizar uma marca de conformidade do WS-I se seguirem o processo obrigatório

57 Resumo O que pode fazer Desenhar e construir Web Services que seguem as regras WS-I Verificar que os Web Services fornecidos por produtos estão em conformidade com os Perfis Utilizar as ferramentas de teste e dar feedback sobre as mesmas Planear a publicação de relatórios de conformidade Evangelizar WS-I para os seus clientes, parceiros e fornecedores Actualizar produtos para obter conformidade

58 © 2003 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.


Carregar ppt "WS-I: Interoperabilidade no Desenho e Consumo de Web Services"

Apresentações semelhantes


Anúncios Google