Novas Arquitecturas baseadas em Web Services XATA 2004 – Fev 2004 José António Silva Architect Evangelist [email protected] http://canoas.com/blog/ vamos falar sobre… Service-Orientation XML, SOAP, WSDL, UDDI Novos Protocolos WS-* WS-* Workshop Process Web Services Interoperability WS-I.ORG Service-Orientation porque é que construímos sistemas distribuídos? demasiado trabalho para uma só máquina dados pertencem a diferentes organizações dados pertencem a diferentes sistemas funcionalidades de determinados sistemas necessidades de execução diferentes necessidades de segurança diferentes Protocolos na NET XML Web Services HTML IP e-mail Pessoas com Pessoas browser Pessoas com Informação composição de serviços Aplicações com Aplicações Exemplo: Aplicação 3 camadas boa arquitectura DNA Aplicação Central Compras Data Layer Business Layer Presentation Layer Interface da aplicação dá acesso aos dados aplicacionais Aplicação Contabilidade Processo de negócio atravessa várias aplicações Aplicação Central Compras Aplicação RH O utilizador é o elo de ligação dos processos, o que é lento, caro e propício a erros Service Oriented Architecture troca de mensagens Interface desacoplado da lógica de processamento dos dados boa arquitectura 3-tier service Serviço Central Compras Data Layer Business Layer Dados e Lógica Negócio encapsulados por uma Web Service Façade Service Façade UI Presentation Layer Web Service Standards permitem ligações cross-platform Serviços Contabilidade Automação de Processos de Negócio integração com diferentes plataformas Serviço Central Compras UI Processo Compras Business Process Automation Serviço RH Múltiplos serviços combinados num único processo de negócio gerações Paradigma Período Modelo Programação Motivação Mainframe 60s–80s Procedural (COBOL) Automated business Cliente/Servidor 80s-90s Database (SQL) fat-client (VB) Desktop power n-Tier 90s-00s Object-Oriented (Java, COM, ASP) Internet/Browser SOA 2000s Service-oriented (SOAP, WSDL, UDDI) Business agility Serviços, Componentes, Objectos, … Service Evolução natural Function Component Service Serviços contem mensagens, componentes e dados Dados privados e completamente encapsulados pelo serviço Mensagens são a única forma de entrada e saída num serviço Components Functions Private Data Tightly Coupled Programming Language Agreements Database Database Object Model Schema Operating System Operating System Application Server Loosely Coupled Programming Language Database Programming Language Database Agreements Object Model Object Model Operating System Operating System Schema Application Server Application Server Basic Standards SOAP Web Service SOAP: Expansível Informação extra Opcional soap:Header vs soap:Body soap:mustUnderstand Qualificável soap:role (soap:actor in SOAP 1.1) Exemplo: Composição Addressing Security Reliability <S:Envelope … > <S:Header> <wsa:ReplyTo> <wsa:Address>http://business456.com/User12</wsa:Address> </wsa:ReplyTo> <wsa:To>http://fabrikam123.com/Traffic</wsa:To> <wsa:Action>http://fabrikam123.com/Traffic/Status</wsa:Action> <wssec:Security> <wssec:BinarySecurityToken ValueType="wssec:X509v3" EncodingType=“wssec:Base64Binary"> dWJzY3JpYmVyLVBlc…..eFw0wMTEwMTAwMD </wssec:BinarySecurityToken> </wssec:Security> <wsrm:Sequence>zzz <wsu:Identifier>http://fabrikam123.com/seq1234</wsu:Identifier> <wsrm:MessageNumber>10</wsrm:MessageNumber> </wsrm:Sequence> </S:Header> <S:Body> <app:TrafficStatus xmlns:app="http://highwaymon.org/payloads"> <road>520W</road><speed>3MPH</speed> </app:TrafficStatus> </S:Body> </S:Envelope> Web Services Basic Standards Stack UDDI (discovery) WSDL (API description) SOAP (messaging) XML (lingua franca) HTTP (transport) Limitações actuais: Segurança? Garantias de Entrega? Transacções? Outros Transportes? Mensagens Assíncronas (One-Way)? Encaminhamento (Routing/Addressing)? Outros padrões (Ex: Pub/Sub)? Web Services Security Roadmap Hoje SecureConversation Federation Authorization Policy Trust Privacy Security SOAP Foundation Security in a Web Services World – IBM/MSFT White Paper http://msdn.microsoft.com/library/en-us/dnwssecur/html/securitywhitepaper.asp Abril 2002 WS-Security Specification http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss Novos Protocolos Web Services Protocols (WS-*) Connected Applications Management Business Process … Security Reliability Transactions Metadata Messaging XML HTTP TCP SMTP … Messaging Specifications SOAP WS-Addressing MTOM (Attachments) WS-Eventing Security Specifications WS-Security WS-SecureConversation WS-Trust WS-Federation WS-Federation Active Requestor Profile WS-Federation Passive Requestor Profile Web Services Security Kerberos Binding Reliable Messaging Specifications WS-ReliableMessaging Transaction Specifications WS-Coordination WS-AtomicTransaction WS-BusinessActivity Metadata Specifications WSDL UDDI WS-Policy WS-PolicyAssertions WS-PolicyAttachment WS-SecurityPolicy XML Specifications XML Namespaces in XML XML Information Set XInclude WS-* Objectivos Arquitectura Modular/Composable De Aplicabilidade Genérica (B2B, EAI, Devices) Baseado em Standards Modelo Federado Resultados tangíveis Qualidade no desenvolvimento Adopção generalizada por todos os intervenientes do mercado Rápido time-to-market Novas especificações (1) WS-Security – protecção via integridade, confidencialidade e autenticação directamente na mensagem XML (XML-SIG, XML-ENC) WS-Security WS-SecureConversation WS-Trust WS-Federation WS-Policy – descrição e comunicação das políticas de utilização de WS WS-SecurityPolicy WS-PolicyAssertions WS-PolicyAttachment Novas especificações (2) WS-Addressing – Virtualização dos endpoints para cada serviço WS-Addressing WS-Eventing Attachments - Message Transmission Optimization Mechanism MTOM Novas especificações (3) WS-Coordination WS-AtomicTransaction WS-BusinessActivity tipos de coordenação: Atomic Transaction (AT) and Business Activity (BA). WS-ReliableMessaging coordenação das acções de sistemas distribuídos. Por exemplo o acordo no resultado de uma transacção em vários sistemas Garantia de entrega, uma e uma só vez BPEL4WS gestão de processos e protocolos de interacção (BPM) WS-* Workshop Process Processo de desenvolvimento de novas especificações http://msdn.microsoft.com/webservices/community/workshops/ WS Architecture Evolution Secure, Reliable, Transacted July 2003 WS-Federation March 2003 WS-ReliableMessaging WS-Addressing RM Roadmap April 2002 WS-Security and Security Roadmap UDDI SOAP 2000 WSDL WS-I September 2003 WS-AtomicTransaction WS-Coordination SRT WS Whitepaper December 2002 WS-Policy WS-Trust WS-SecureConversation August 2002 WS-Transaction WS-Coordination Web Services Specifications Process Specification Published Feedback and Interop Workshops Revise spec Participation Standards Org WS-I WS-Security demonstrou sucesso do processo Specification Published Customer and Industry Feedback Gathered Publish Addendum, Deliver Dev Product April 2002 April - August 2002 August 2002 Three Partners OASIS Standardization WS-I Interoperability Profile September 2002 April 2003 Over 30 Partners Over 100 Partners Interoperability Events & Workshops Nov 2003 WS-Trust WS-SecureConversation (workshop) September 2003 Bill Gates (Microsoft) Steve Mills (IBM) SOAP December 2002 Builders CDBi - EMEA TBD 2004 WS-Federation (workshop) October 2003 WS-ReliableMessaging (workshop) 2002 July 2003 September 2003 Catalyst OASIS (Burton conference) WS-Security August 2002 XML Web Services One (East) TBD 2004 WS-Transaction Feedback Workshops July 2003 WS-ReliableMessaging February 2003 WS-Policy and WS-Trust 2002 TBD 2004 WS-Policy November 2003 WS-Federation March 2003 WS-Policy and WS-Trust WS-* Specifications Timeline Routing Referral Oct 2001 Security Nov 2001 WSInspection April 2002 Trust Federation Coordination Security Policy Active Profile Transaction Secure Conversation June August 2002 2002 Attachments Security Addendum Security Profile For Tokens Security Roadmap December 2002 Infoset Addendum to SOAP Messages w/ Attachments (MTOM) March April 2003 2003 Passive Profile June 2003 Business Activity Sept 2003 July 2003 Policy Reliable Messaging Policy v1.1 Coordination Policy Attachment Addressing Policy Attachment v1.1 Atomic Transactions Policy Assertions v1.1 Policy Assertions Reliable Message Roadmap Federation of Identities in a WS World http://msdn.microsoft.com/webservices/understanding/specs Boas Práticas WS-I.ORG www.ws-i.org 170+ fabricantes software envolvidos Interoperabilidade entre plataformas, aplicações e linguagens Maior evidência de que a indústria está alinhada com os web services Um slide do Patrocinador Framework (Microsoft) ASP.NET Web Services Web Service Enhancements Indigo Web Service Enhancements 2.0 Lista de funcionalidades Modelo programação orientado a Mensagens Suporte para variados hosts WS-Addressing WS-Policy WS-Security WS-SecurityPolicy WS-SecureConversation WS-Trust Download, Documentação e Anúncios: http://msdn.microsoft.com/webservices/ sumário Service-Orientation Desacoplados Bem limitados/Autónomos Partilhar apenas Contratos/Politica Composição de protocolos WS-* Processo Ágil de desenvolvimento de novas specs Interoperabilidade aplicando as recomendações do WS-I.ORG Referências Microsoft MSDN Portugal http://www.microsoft.com/portugal/msdn/ Microsoft Patterns & Practices http://msdn.microsoft.com/practices/ WS-* specs http://msdn.microsoft.com/webservices/understanding/specs/ Weblogs Don Box (Microsoft) http://www.gotdotnet.com/team/dbox/ Clemens Vasters (Newtelligence AG) http://staff.newtelligence.net/clemensv/ LooselyCoupled.com http://www.looselycoupled.com/blog/ Canoas’blog (o meu !) http://canoas.com/blog/ Obrigado [email protected] http://canoas.com/blog/ © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.