Implementando Processos ESB com OpenEdge e Sonic Paulo Costa Global Field Services Agenda Desenvolvendo Processos de Negócio Visão geral da tecnologia Desenvolvendo um processo de negócio do início ao fim 2 Implementando Processos ESB com OpenEdge and Sonic Expectativas Compreensão sobre as ferramentas e tecnologias empregadas durante a apresentação Familiaridade em pensar sobre processos e assim convertê-los em processos de negócio Roteiro completo sobre a demonstração a ser apresentada 3 Implementando Processos ESB com OpenEdge and Sonic 1
Produtos utilizados OpenEdge 10.1B01 OpenEdge Architect ProxyGen OpenEdge Adapter para Sonic ESB OpenEdge Adapter para SonicMQ Sonic Workbench 7.5 SonicMQ Sonic ESB 4 Implementando Processos ESB com OpenEdge and Sonic Sonic e o OpenEdge Adapter para Sonic ESB Sistema do Parceiro Aplicação Proprietária Processo ESB Enterprise Service Bus ESB Adapter OpenEdge AppServer 5 Implementando Processos ESB com OpenEdge and Sonic Porque usar Sonic ESB e OpenEdge Application Server A interface Web Service do AppServer não é o que você deseja Transformação Necessidade de rotear mensagem para diferentes serviços baseado no conteúdo CBR Combinação dos anteriores Processos de negócio com múltiplos passos Padrões de Web Services avançados WS-Addressing WS-Security 6 Implementando Processos ESB com OpenEdge and Sonic 2
Modelos de Comunicação Sistema do Parceiro Aplicação Proprietária Web Services Rest Enterprise Service Bus ESB Adapter AppServer 7 Implementando Processos ESB com OpenEdge and Sonic Web Services SOAP- based Web Services Consumidor de Web Services Sonic OpenEdge Java.NET Perl HTTP Request(SOAP) HTTP Reply(SOAP) WSDL Provedor de Web Services Sonic OpenEdge Java.NET Perl Uma aplicação que pode ser acessada utilizando SOAP sobre o protocolo HTTP onde a interface é descrita pelo WSDL Padrões definidos pela W3C 8 Implementando Processos ESB com OpenEdge and Sonic REST Transferência de Estado Representacional Rest- based Web Services REST Consumer HTTP Request(XML) HTTP Reply(XML) REST Provider Uma aplicação que pode ser acessada via HTTP GET/POST/PUT/DELETE Conteúdo da mensagem no formato XML, conforme defindo através de algum Schema 9 Implementando Processos ESB com OpenEdge and Sonic 3
Construindo Interfaces Interface Pública Sistema de Parceiros Aplicação Proprietária Interface Pública Web Services Rest Enterprise Service Bus ESB Adapter Interface Privada AppServer 10 Implementando Processos ESB com OpenEdge and Sonic Construindo Interfaces Interfaces Públicas Web Services vs. REST Use SOAP quando puder aproveitar ferramentas Use REST para simplificar De acordo com as recomendações do mercado Web Services Interoperability Organization (ws-i.org) SOAP Encoding está depreciado use Literal Use Document ao invés de RPC para o amplo suporte do lado client Aprenda sobre WSDL Crie um WSDL para atender a interface que você deseja - torne o mais simples possível esta é a idéia 11 Implementando Processos ESB com OpenEdge and Sonic Construindo Interfaces Interfaces Privadas Interface entre Sonic e OpenEdge Serviço é uma ou mais operações relacionadas Operações devem realizar uma unidade completa de trabalho com granularidade grossa (coarsegrained) para eficiência Todos os serviços OpenEdge são Request-Reply e podem retornar uma falha RPC/Literal permite mapeamento para parâmetros individuais pode ser utilizado através de um editor de chamadas Web Service facilmente Document/Literal permite utilizar transformação em toda a mensagem 12 Implementando Processos ESB com OpenEdge and Sonic 4
Agenda Desenvolvendo Processos de Negócio Visão geral da tecnologia Desenvolvendo um processo de negócio do início ao fim 13 Implementando Processos ESB com OpenEdge and Sonic Configurando o Sonic Workbench com OpenEdge Workbench possui dois containers para desenvolvimento Dev.ESB_Core executa Serviços Sonic Dev.ESB_Test executará Serviços OpenEdge OpenEdge container não é usado para desenvolvimento Classpath e as propriedades no container de Teste configurados para OpenEdge 15 Implementando Processos ESB com OpenEdge and Sonic Defina a Interface Pública Definida por um XML Schema Utilize uma Namespace XML URL se o Schema puder se recuperado através de uma posição URN se for apenas um nome Crie named types para sua interface Defina Elementos para os seus types Muitos benefícios em criar um schema Arquivos de exemplo automáticos Facilidade para criar um WSDL 16 Implementando Processos ESB com OpenEdge and Sonic 5
Definindo e Implementando Serviços OpenEdge com o ProxyGen Nova aba ESB no ProxyGen na versão 10.1B Cria arquivos WSM e WSDL para o Sonic Implementa-os automaticamente no Sonic Domain Defina um Serviço ESB Crie Endpoints not underlying Queues Opcionalmente implemente um serviço para o container ESB definido Configure uma URL pro AppServer 17 Implementando Processos ESB com OpenEdge and Sonic Chamando um Serviço OpenEdge com uma invocação de Web Service Maneira mais fácil de chamar um Serviço OpenEdge Mensagens transitórias SOAP o conteúdo é o importante O editor de cenário permite teste online do serviço Incluia invocação ao processo Use ferramentas de mapeamento para extrair os parâmetros de entrada Muitas opções para manipular o resultado Cenários e informações de rastreamento no desenvolvimento 18 Implementando Processos ESB com OpenEdge and Sonic Utilizando Serviços de Transformação Sonic Transformações alteram os resultados para o que você precisa Salve os resultados como um documento de exemplo Schema representa o que você deseja Ferramentas Sonic facilitam a criação de folhas de estilo 19 Implementando Processos ESB com OpenEdge and Sonic 6
Utilizando Serviços de Roteamento (CBR) Encaminhe mensagens com base no conteúdo Suporta message parts ou headers Direcionamento baseado em Regras ou Padrão XPATH Regras podem ser escritas em JavaScript Não é necessário codificar com XPATH Roteamento semelhante a declaração de CASE Pode direcionar para a primeira condição verdadeira ou todas definidas Inclui também um destino padrão para roteamento 20 Implementando Processos ESB com OpenEdge and Sonic Chamando Web Services Externos Mesmo procedimento dos Serviços OpenEdge Planejar-se para a indisponibilidade Utilize sub-processos para abstrair a implementação Maneira fácil de criar um novo sub-processo se o Web Service falhar Crie também um processo de FAULT para ser flexível 21 Implementando Processos ESB com OpenEdge and Sonic Disponibilizando Processos de Negócio para os Clientes Processo atualmente tem a interface REST JMS e clients ABL enviam mensagens para um Endpoint de Entrada HTTP Direct Acceptor para browser-based AJAX clients Respostas especificadas via JMSReplyTo Envolva o processo para disponibilizar via SOAP Geração automática de WSDL Empacotamento e desempacotamento 22 Implementando Processos ESB com OpenEdge and Sonic 7
Demonstração de Processo de Negócio 23 Implementando Processos ESB com OpenEdge and Sonic Em suma Crie sua interface pública Use REST para JMS e AJAX Use SOAP para clients avançados (ferramentas, WS-Security, etc) Siga as recomendações WS-I Use Document-Literal para o amplo suporte dos clients Use sub-processos com liberdade Planejar-se para a indisponibilidade 24 Implementando Processos ESB com OpenEdge and Sonic Para maiores informações, procure no PSDN Progress Software Developers Network Desenvolvendo e Implementado Aplicações SOA no Sonic ESB para o Desenvolvedor OpenEdge PSDN Forum Treinamentos: Desenvolvimento OpenEdge com Sonic ESB Integração Orientada a Serviços com Sonic ESB Utilizando JMS no OpenEdge 25 Implementando Processos ESB com OpenEdge and Sonic 8
Dúvidas? 27 Implementando Processos ESB com OpenEdge and Sonic Obrigado pela sua atenção!!! 28 Implementando Processos ESB com OpenEdge and Sonic 29 Implementando Processos ESB com OpenEdge and Sonic 9