SOA Elucidado: Princípios da Arquitetura Orientada a Serviços Renato L. Rissardi Pre-Sales System Engineer Ambiente de negócios é altamente mutável Demanda de clientes Competição Fusões e aquisições Desmembramento de áreas Parceiros de negócio Tecnologia Expansão dos negócios Redução de custos 2 © 2005 Progress Software Corporation Esclarecendo SOA A realidade de TI Requisitos Negócios Sistemas TI Tempo Mudanças contínuas reduzem a capacidade de resposta 3 © 2005 Progress Software Corporation Esclarecendo SOA Dilema de TI: “A arquitetura acidental” Capacidade de resposta reduzida Conjunto proprietário de tecnologias e habilidades Infraestruturas de comunicação múltiplas Alto custo de licenças, consultoria e operação Muitas questões organizacionais e de controle da “propriedade” 4 © 2005 Progress Software Corporation CRM PARTNER SYSTEMS ERP ORDER ENTRY FINANCE Esclarecendo SOA Requisitos de arquitetura de TI Simplicidade Software que reflete a necessidade do negócio Agilidade e flexibilidade Reusabilidade Indepentente de tecnologia Promover integração Feita para mudar 5 © 2005 Progress Software Corporation Esclarecendo SOA Service-Oriented Architecture Uma abordagem para criar sistemas computacionais distribuídos baseada no encapsulamento de funções de negócio em serviços que podem ser acessados de forma fracamente acoplada. 6 © 2005 Progress Software Corporation Esclarecendo SOA Já tivemos diversas tentativas Focadas em APIs, mais fácil para programadores CORBA Microsoft DCOM Java™ RMI .NET™ Remoting DCE EJB 7 © 2005 Progress Software Corporation Esclarecendo SOA Por que SOA é diferente? Mais fácil para analistas de negócio – focado em documentos Usa conceitos já estabelecidos de mensagens e computação distribuída Escala muito em portes diferentes de aplicação – Departamento – Empresa – Cadeia de valor Incorpora vários modelos de comunicação – eventos e request/reply Direcionada por padrões e protocolos bem conhecidos, e.g. Web Services, XML, HTTP, etc. 8 © 2005 Progress Software Corporation Esclarecendo SOA Mas e na prática, será que “pega”? “Até 2008, SOA será a prática de engenharia de software predominante, encerrando 40 anos de dmínio da arquitetura de software monlítica” Yefim V. Natis, Gartner Group Analyst, “Service Oriented Architecture Scenarios,” 16 de abril de 2003 9 © 2005 Progress Software Corporation Esclarecendo SOA SOA não é uma “coisa” Não é: Produto Uma tecnologia específica Uma aplicação Um padrão específico Um conjunto específico de regras Uma abordagem para criar aplicações de negócio ágeis e flexíveis 10 © 2005 Progress Software Corporation Esclarecendo SOA Agenda Visão geral SOA Tipos e padrões de SOA SOA e OpenEdge® Reference Architecture SOA e o Enterprise Service Bus Resumo 11 © 2005 Progress Software Corporation SOA? Uau! E-lu-ci-date: To make clear or plain Esclarecendo SOA Modelo SOA Componentes fracamente acoplados comunicando-se via interfaces bem definidas Service Director y Find / Details Service Consumer 12 © 2005 Progress Software Corporation Publish Bind / Invoke Service Provide r Esclarecendo SOA Elementos de serviço e contratos de serviço Fn() Consumidor do serviço Fn() Interface do serviço Provedor do serviço Implementação do serviço Lógica do serviço 13 © 2005 Progress Software Corporation Camada de apresentação ou outro serviço Encontra provedor de serviço através de um diretório de serviços acordado Chama serviço baseado em sua interface Apenas as interfaces do serviço são expostas Implementação é escondida do consumidor Armazenamento de dados é encapsulado pelo serviço Dados Esclarecendo SOA Várias interfaces de serviço Consumidor do serviço Consumidor do serviço Interface A Interface B Operação A1 Operação A2 Operação A3 Operação B1 Operação B2 Interface do serviço Interface do seviço Implementação do serviço Lógica do serviço 14 © 2005 Progress Software Corporation Dados Esclarecendo SOA SOA – Um mar de serviços Online Ordering Service OrderEntry Req. Order Notify Buyer Supplier Service Valid Order? Check Credit Inventory Mgmt Service Hold Stock Lookup Hold Ship Order Mgmt Service Credit Services Valid Order Approve Chk Credit FulfillOrder Approve Notify 15 © 2005 Progress Software Corporation Esclarecendo SOA Contrato de serviço Tudo – e nada além disso – que é necessário para interagir com o serviço Provedor do serviço Consumidor do serviço Contrato 16 © 2005 Progress Software Corporation Esclarecendo SOA Contratos de serviço Interface do serviço incluindo operações, mensagens, transportes e localização – WSDL (Web Service Description Language) – XML Schemas – “Proxies” gerados a partir da implementação do serviço – Uma especificação formal em papel Descrição do serviço – Requisitos de sequenciamento – Tratamento de exceções – Documentação formal e semântica implícita Acordo de nível de serviço (SLA) e obrigações legais 17 © 2005 Progress Software Corporation Esclarecendo SOA Infra-estrutura SOA Consumidor do serviço Infraestrutura SOA Provedor do serviço Liga os consumidores aos provedores de serviço Pode ser usuada para comunicação com o diretório de serviços Pode ser implementado com uma gama de tecnologias 18 © 2005 Progress Software Corporation Esclarecendo SOA Infra-estrutura de Serviço Order Mgmt Service Order Mgmt Service AppServer CORBA JMS FTP Web Services Order Mgmt Service 19 © 2005 Progress Software Corporation Order Mgmt Service Order Mgmt Service Esclarecendo SOA Várias interfaces de serviços Consumidor do serviço Consumidor do serviço Contrato 2 Contrato 1 Web Service Message Based Interface do serviço Interface do serviço Implementação do serviço Lógica do serviço 20 © 2005 Progress Software Corporation Dados Esclarecendo SOA Diretório de serviços Diretório de serviços Repositório dos contratos de serviço Oferece facilidade para encontrar serviços Pode oferecer informações adicionais como:: – Informações de contato – Tarifas de uso Pode ser formal ou informal – – – – UDDI Web site central Um banco de dados proprietário de XML schemas Arquivo de documentos impressos Escopo para aplicação, departamento, corporação, cadeia de valor Pode ser formalmente gerenciada por um comitê de arquitetura 21 © 2005 Progress Software Corporation Esclarecendo SOA Agenda Visão geral SOA Tipos e padrões SOA SOA e OpenEdge Reference Architecture SOA e o Enterprise Service Bus Resumo 22 © 2005 Progress Software Corporation SOA? Uau! E-lu-ci-date: To make clear or plain Esclarecendo SOA Tipos de serviços SOA Application Client Layer Serviços de processos de negócio Serviços intermediários Serviços básicos 23 © 2005 Progress Software Corporation Esclarecendo SOA Serviços básicos Uma função de software “stateless” orientada a servidor A rigor, age apenas como provedor de serviço Encapsula todo acesso a uma fonte de dados específica Serviços básicos de negócio – específicos do domínio Serviços de infraestrutura básicos – não específicos do domínio Segurança Logging Persistência Auditoria 24 © 2005 Progress Software Corporation Esclarecendo SOA Serviços intermediários Um serviço “stateless” que é tanto provedor quanto consumidor de serviços Inclui tipo de negócio e intraestrutura – Pontes entre tecnologias Faz a interface entre duas tecnologias distintas – Transformação Convert message format from/to what service consumer and provider expect – Fachadas (“façade”) Visão simplificada e agrupada de múltiplos serviços – Serviços para agregação de funcionalidade Adiciona funcionalidade a um serviço sem modificar o serviço em si 25 © 2005 Progress Software Corporation Esclarecendo SOA Serviço de processo de negócio Encapsula um processo de negócio corporativo “stateful” Age tanto como provedor quanto consumidor de serviços Tem tendência a ser bastante específico à aplicação 26 © 2005 Progress Software Corporation Esclarecendo SOA SOA: Estágios de crescimento Maturidade da SOA SOA Orientada a processos Agilidade e Flexibilidade SOA Multi camadas SOA Simples Complexidade 27 © 2005 Progress Software Corporation Esclarecendo SOA SOA Simples Camada de apresentação Camada de serviços básicos Online Ordering Application Order Management 28 © 2005 Progress Software Corporation Inventory Management Warehouse Application Customer Management Esclarecendo SOA SOA multi-camadas Camada de apresentação Camada de serviços intermediários Camada de serviços básicos Online Ordering Application Order and Ship Order Management 29 © 2005 Progress Software Corporation Inventory Management Customer Management Esclarecendo SOA SOA orientada a processos Online Ordering Application Camada de apresentação Camada de serviços de processos de negócio Camada de serviços intermediários Camada de serviços básicos Catalog Service Order Cancellation Service Order and Ship Order Management 30 © 2005 Progress Software Corporation Inventory Management Customer Management Esclarecendo SOA Agenda Visão geral SOA Tipos e padrões SOA SOA e OpenEdge Reference Architecture SOA e o Enterprise Service Bus Resumo 31 © 2005 Progress Software Corporation SOA? OERA? E-lu-ci-date: To make clear or plain Esclarecendo SOA Componentes de serviço OpenEdge Reference Architecture Enterprise Services Users Consumidores de serviços Presentation Layer Integration Layer Business Servicing Layer Data Access Layer Provedores de serviços Managed Data Stores 32 © 2005 Progress Software Corporation Unmanaged Data Stores Esclarecendo SOA Integração da camada de negócio Enterprise Services Users Presentation Layer/s Integration Layer/s Service Adapter Service Interface Business Workflows Business Tasks Business Entities Data Access Layers Managed 33 © 2005 Progress Software Corporation Unmanaged Esclarecendo SOA OERA e contratos de serviço Fn() Consumidor de serviço Service Adapter Contrato Service Interface Financials 34 © 2005 Progress Software Corporation Provedor de serviço Esclarecendo SOA Por dentro do serviço: Componentes de negócio coordenados Service Interface Business Business Workflows Business Workflows Workflows Business Business Tasks Business Tasks Tasks Business Business Entities Entities 35 © 2005 Progress Software Corporation Business Business Tasks Business Tasks Tasks Business Business Entities Entities Business Business Entities Entities Esclarecendo SOA Integração da camada de negócios Enterprise Services Users Presentation Layer/s Integration Layer/s Serviços básicos e intermediários Service Adapter Serviço de processo de negócio Service Interface Business Workflows Business Tasks Business Entities Data Access Layers Managed 36 © 2005 Progress Software Corporation Unmanaged Esclarecendo SOA Agenda Visão geral SOA Tipos e padrões SOA SOA e OpenEdge Reference Architecture SOA e o Enterprise Service Bus Resumo 37 © 2005 Progress Software Corporation SOA? ESB? E-lu-ci-date: To make clear or plain Esclarecendo SOA “Arquitetura acidental”: Resolvemos o problema mesmo? CRM PARTNER SYSTEMS 38 © 2005 Progress Software Corporation ERP ORDER ENTRY FINANCE Esclarecendo SOA Web Services Interfaces padrão são o maior passo adiante PACKAGED J2EE™ APPLICATION Interface de APPLICATION & LEGACY SYSTEMS serviço bem definida promove o reuso Dados baseados em XML facilita intercâmbio WEB SERVICES INTERFACE Projetado para OpenEdge acesso remoto, Application entre plataformas heterogêneas .NET™ APPLICATION XML TCP/IP XML 39 © 2005 Progress Software Corporation WEB SERVICE Esclarecendo SOA Web Services Mas resolvemos o todo problema? J2EE™ APPLICATION É mais ágil? É confiável, escalável e seguro? Como gerir e monitorar serviços distribuidos? PACKAGED APPLICATION & LEGACY SYSTEMS .NET™ APPLICATION TCP/IP WEB SERVICES INTERFACE Web services são pilhas de comunicação interoperáveis mas não oferecem capacidades chave como roteamento, “deploy” de serviços, gerenciamento, transformação de formatos e entrega garantida. 40 © 2005 Progress Software Corporation OpenEdge Application WEB SERVICE Esclarecendo SOA Enterprise Service Bus Conjunto integrado de serviços SOA baseado numa infra-estrutura de “backbone” SOA J2EE™ SERVICE LEGACY SYSTEMS .NET™ SERVICE ENTERPRISE SERVICE BUS OPENEDGE SERVICE WEB SERVICE 41 © 2005 Progress Software Corporation Transformação de dados Roteamento inteligente Logging Persistência Capacidades nativas de Web service Roteamento baseado no conteúdo Adaptadores especializados Orchestration Server Mensageria assíncrona e síncrona Esclarecendo SOA Agenda Visão geral SOA Tipos e padrões SOA SOA e OpenEdge Reference Architecture SOA e o Enterprise Service Bus Resumo 42 © 2005 Progress Software Corporation SOA? SOA! E-lu-ci-date: To make clear or plain Esclarecendo SOA Resumindo… SOA é a arquitetura para negócios ágeis SOA é uma abordagem de engenharia de sistemas, não uma tecnologia Uma boa arquitetura depente de um boa engenharia dos serviços 43 © 2005 Progress Software Corporation Esclarecendo SOA Perguntas? 44 © 2005 Progress Software Corporation Esclarecendo SOA Obrigado! Renato Luís Rissardi [email protected] http://www.progress.com/br http://www.sonicsoftware.com 45 © 2005 Progress Software Corporation Esclarecendo SOA 46 © 2005 Progress Software Corporation Esclarecendo SOA