Vous êtes sur la page 1sur 179

WebSphere Message Broker V6.

Apresenta os conceitos de SOA e ESB Introduz o WebSphere Message Broker V6.0 Apresenta o WebSphere MQ V6.0 Demonstra exemplos prticos atravs de laboratrios

Treinamento Bsico

ndice
Captulo 1: Introduo ............................................................................................................ 1 1.1 O escopo do treinamento.................................................................................................... 2 1.2 O pblico-alvo .....................................................................................................................3 1.3 Viso geral dos captulos ....................................................................................................3 1.4 O que este treinamento no contempla ..............................................................................4 Captulo 2: Introduo a SOA e ESB..................................................................................... 5 2.1 Viso geral da arquitetura orientada a servios.................................................................. 6 2.1.1 Definio....................................................................................................................6 2.1.2 Ciclo de desenvolvimento SOA .................................................................................7 2.2 Enterprise Integration..........................................................................................................8 2.3 Enterprise Service Bus (ESB) .............................................................................................9 Captulo 3: XML .....................................................................................................................13 3.1 XML................................................................................................................................... 14 3.1.1 Declarao XML ......................................................................................................15 3.1.2 Instruo de processamento ................................................................................... 15 3.1.3 Comentrios ............................................................................................................16 3.1.4 Elementos................................................................................................................ 16 3.1.5 Atributos ..................................................................................................................16 3.1.6 Exemplo de composio .........................................................................................17 3.2 XML Namespace...............................................................................................................18 3.2.1 Definindo um Namespace Default ...........................................................................19 3.3 Tecnologias relacionadas ................................................................................................. 19 3.4 Document Type Definition (DTD) ......................................................................................20 3.5 XML Schema Definition (XSD).......................................................................................... 20 3.5.1 Simple Type............................................................................................................. 20 3.5.2 Complex Type .........................................................................................................22 3.6 XPath ................................................................................................................................ 22 3.6.1 Notao ...................................................................................................................22 3.6.2 Funes ...................................................................................................................23 3.7 XQuery .............................................................................................................................. 24 3.8 XML Transformations (XSLT) ...........................................................................................24 Captulo 4: Viso geral da famlia WebSphere para SOA..................................................27 4.1 IBM WebSphere................................................................................................................ 28 4.1.1 Application Servers..................................................................................................28 4.1.2 Business Integration ................................................................................................ 29 4.1.3 Organizational Productivity, Portals and Collaboration............................................39 Captulo 5: WebSphere MQ ..................................................................................................41 5.1 Conceitos de mensageria ................................................................................................. 42 5.1.1 Middleware .............................................................................................................. 42 5.1.2 Mensagens .............................................................................................................. 42 5.1.3 Filas .........................................................................................................................42 5.2 Objetos do WebSphere MQ ..............................................................................................44 5.2.1 Queue Manager....................................................................................................... 44 5.2.2 Fila ........................................................................................................................... 44 5.2.3 Canais .....................................................................................................................49

5.2.4 Mensagem ...............................................................................................................53 5.3 A interface de comandos WebSphere MQ Script (MQSC) ...............................................54 Captulo 6: Trabalhando com WebSphere MQ ................................................................... 57 6.1 Ferramentas de administrao .........................................................................................58 6.2 Privilgios de acesso ........................................................................................................58 6.3 Cenrio do Laboratrio .....................................................................................................58 6.4 Criao de objetos ............................................................................................................59 6.4.1 Preparao da Queue Manager QMGR1 ................................................................ 59 6.4.2 Preparao da Queue Manager QMGR2 ................................................................ 63 6.4.3 Comunicao entre Queue Managers.....................................................................64 Captulo 7: WebSphere Message Broker ............................................................................71 7.1 Websphere Message Broker na integrao de sistemas..................................................72 7.2 Websphere Message Broker............................................................................................. 72 7.2.1 Edies de Websphere Message Broker ................................................................ 73 7.2.2 Funcionalidades do Websphere Message Broker ................................................... 73 7.2.3 Componentes do Websphere Message Broker....................................................... 74 7.3 WebSphere Message Broker como ESB .......................................................................... 77 7.3.1 Virtualizao de servio...........................................................................................77 7.3.2 Suporte e converso de protocolo de transporte ....................................................78 7.3.3 Modelagem de mensagem e transformao ...........................................................82 7.3.4 Roteamento dinmico..............................................................................................89 7.3.5 Estendendo as funcionalidades...............................................................................90 7.3.6 Padres de interao ..............................................................................................91 7.3.7 Integrao com outros Enterprise Information Systems (EIS).................................92 7.3.8 Suporte a Quality of service (QoS) .......................................................................... 93 7.3.9 Acesso ao registro de servios................................................................................ 93 7.3.10 Facilidade de administrao ..................................................................................93 7.4 Suporte a Web Services ................................................................................................... 95 7.4.1 Escolhendo o message domain para SOAP ...........................................................95 Captulo 8: Instalao ...........................................................................................................99 8.1 Planejamento para a instalao......................................................................................100 8.1.1 Softwares obrigatrios ........................................................................................... 100 8.1.2 Softwares opcionais .............................................................................................. 101 8.1.3 Requisitos de software ..........................................................................................101 8.2 Questes de segurana .................................................................................................. 103 8.2.1 User ID .................................................................................................................. 103 8.2.2 Outras questes de segurana .............................................................................103 8.3 Instalando os softwares obrigatrios............................................................................... 105 8.3.1 O Launchpad .........................................................................................................105 8.3.2 Instalando o produto via Express Installation ........................................................ 105 8.4 Tarefas ps-instalao....................................................................................................107 8.4.1 Servio WebSphere MQ ........................................................................................ 107 8.4.2 DB2 Universal Database .......................................................................................107 8.5 Verificando a instalao .................................................................................................. 108 8.5.1 Criando uma configurao default.........................................................................108 8.5.2 Executando os exemplos ......................................................................................109 8.6 Message Brokers Toolkit................................................................................................. 110 8.6.1 Navegando no Message Brokers Toolkit...............................................................110 8.7 Instalando fix packs.........................................................................................................112 8.7.1 Antes de instalar ....................................................................................................112 8.7.2 Atualizaes para componentes runtime .............................................................. 112

ii

8.7.3 Atualizaes para o Message Brokers Toolkit....................................................... 112 Captulo 9: Message Flows ................................................................................................115 9.1 Viso geral do message flow ..........................................................................................116 9.1.1 O fluido .................................................................................................................. 116 9.1.2 Construindo um message flow .............................................................................. 119 9.2 Cenrio do laboratrio..................................................................................................... 121 9.3 Verificao e preparao do ambiente ........................................................................... 122 9.3.1 Verificao do servio de frete .............................................................................. 122 9.3.2 Verificao do servio Serasa ............................................................................... 123 9.3.3 Verificao do servio de cadastro........................................................................ 124 9.4 Preparao do ambiente de desenvolvimento................................................................126 9.4.1 Criao de um Workspace ....................................................................................126 9.4.2 Conexo Configuration Manager de um Broker Domain.................................... 127 9.4.3 Criando um Execution Group ................................................................................128 9.4.4 Criando um Message Flow Project........................................................................ 129 9.4.5 Criando um Message Set Project ..........................................................................130 9.4.6 Importao do projeto auxiliar ............................................................................... 131 Captulo 10: Controle de transaes................................................................................. 133 10.1 Transaes ...................................................................................................................134 10.1.1 Transao em message flows .............................................................................134 10.1.2 Princpios de tratamento de erros .......................................................................135 Captulo 11: Web Services ................................................................................................. 137 11.1 Implementao.............................................................................................................. 138 11.1.1 Modelagem da mensagem de entrada ................................................................138 11.1.2 Importando a definio do SOAP Envelope ........................................................ 141 11.1.3 Criao do Broker Schema ................................................................................. 142 11.1.4 Configurando o message flow .............................................................................144 11.1.5 Adio de mais uma interface de entrada ........................................................... 149 11.2 Deploy ........................................................................................................................... 151 11.3 Teste .............................................................................................................................154 11.3.1 Teste da interface HTTP ..................................................................................... 154 11.3.2 Teste da interface WebSphere MQ ..................................................................... 154 Captulo 12: Troubleshooting ............................................................................................157 12.1 Logs .............................................................................................................................. 158 12.1.1 Troubleshooting administrativos e de runtime ..................................................... 158 12.1.2 Troubleshooting de desenvolvimento .................................................................. 159 12.1.3 Troubleshooting de deploy .................................................................................. 161 12.2 Trace Node ...................................................................................................................161 12.3 Flow Debugger.............................................................................................................. 162 12.3.1 Debugando um JavaComputeNode .................................................................... 164

iii

Figuras
2-1 Termologia SOA .................................................................................................................6 2-2 Ciclo SOA ...........................................................................................................................7 2-3 Cenrio de uma empresa real ............................................................................................ 8 2-4 Integrao com conexes ponto-a-ponto ...........................................................................9 2-5 Integrao utilizando um ESB.............................................................................................9 2-6 Enterprise Service Bus .....................................................................................................10 3-1 Exemplo de um XML simples com declarao XML......................................................... 15 3-2 Exemplo de um XML simples com instruo de processamento .....................................15 3-3 Exemplo de um XML simples com comentrios ...............................................................16 3-4 Exemplo de um XML simples com elementos ..................................................................16 3-5 Exemplo de um XML simples com atributos.....................................................................16 3-6 Trecho de um XML que representa uma imagem vetorial................................................ 17 3-7 XML de exemplo de chamada de um WebService...........................................................18 3-8 XML com Namespace Default .......................................................................................... 19 3-9 XML e tecnologias relacionadas ....................................................................................... 19 3-10 Hierarquia de simple types pr-definidos no XML Schema ............................................21 3-11 Simple Type que define um tipo para um nome de fila MQ............................................21 3-12 XML exemplo ..................................................................................................................22 3-13 Exemplo de XQuery........................................................................................................24 3-14 Utilizao do XML Transformations (XSLT).................................................................... 25 4-1 Componentes do WebSphere Process Server .................................................................34 5-1 Resoluo de filas............................................................................................................. 45 5-2 Configurao tpica de message channel.........................................................................50 5-3 O que ocorre quando uma mensagem no pode ser entregue ........................................52 6-1 Cenrio de implementao do laboratrio WebSphere MQ ............................................. 59 6-2 Criao de Queue Manager pelo MQ Explorer.................................................................59 6-3 Passo 2 de criao da Queue Manager ...........................................................................60 6-4 Passo 3 da criao da Queue Manager ...........................................................................60 6-5 Passo 4 da criao da Queue Manager ...........................................................................61 6-6 Passo 5 da criao da Queue Manager ...........................................................................61 6-7 Criando uma fila local pelo MQ Explorer .......................................................................... 62 6-8 Testando a fila com o MQ Explorer ..................................................................................62 6-9 Indicao dos atributos das filas no MQ Explorer............................................................. 62 6-10 Verificao dos status das Queue Managers .................................................................63 6-11 Acesso interface MQSC...............................................................................................63 6-12 Criao de uma fila de transmisso pelo MQ Explorer................................................... 64 6-13 Configurando a fila para ser uma fila de transmisso.....................................................65 6-14 Criando um listener pelo MQ Explorer............................................................................66 6-15 Configurao do novo listener ........................................................................................66 6-16 Criao de canais no MQ Explorer ................................................................................. 67 6-17 Configuraes de Sender Channel para QMGR1 .......................................................... 67 6-18 Configuraes de Receiver Channel para QMGR1........................................................68 6-19 Inicializao do canal Sender na Queue Manager ......................................................... 68 7-1 Arquitetura dos componentes runtime ..............................................................................76 7-2 Paletas com Nodes MQ no WebSphere Message Broker Toolkit 6.0.2 ...........................78 7-3 Paletas com Nodes MQe no WebSphere Message Broker Toolkit 6.0.2 ......................... 78 7-4 Paletas com Nodes Multicast no WebSphere Message Broker Toolkit 6.0.2................... 79 7-5 Paletas com Nodes Real-time no WebSphere Message Broker Toolkit 6.0.2..................79 7-6 Paletas com Nodes de telemetria no WebSphere Message Broker Toolkit 6.0.2 ............ 79 7-7 Paletas com Nodes HTTP no WebSphere Message Broker Toolkit 6.0.2........................80

iv

7-8 Paletas com Nodes JMS no WebSphere Message Broker Toolkit 6.0.2.......................... 80 7-9 Representao da rvore lgica de mensagem JMS ....................................................... 81 7-10 Mapeamento entre mensagem JMS e mensagem MQ ..................................................81 7-11 Modelagem de mensagem e transformaao ..................................................................82 7-12 Modelagem de mensageem no WebSphere Message Broker ....................................... 83 7-13 Representao do Validate Node no Toolkit ..................................................................84 7-14 Representao do Compute Node no Toolkit.................................................................85 7-15 Cdigo ESQL default criado para um determinado Compute Node ...............................86 7-16 Representao do Java Compute Node no Toolkit ........................................................86 7-17 Exemplo de cdigo de um Java Compute Node............................................................. 87 7-18 Representao do Mapping Node no Toolkit..................................................................87 7-19 Editor de mapeamentos do Mapping Node .................................................................... 88 7-20 Representao do XML Transformation Node no Toolkit...............................................88 7-21 Funcionamento do XML Transformation Node ...............................................................88 7-22 Trecho de cdigo: usando uma varivel compartilhada .................................................89 7-23 Representao do Filter Node no Toolkit ....................................................................... 89 7-24 Representao do Flow Order Node no Toolkit..............................................................89 7-25 Representao do Label Node no Toolkit....................................................................... 90 7-26 Representao do Route To Label Node no Toolkit....................................................... 90 7-27 Nodes relacionados com QSAM datasets ...................................................................... 90 7-28 Nodes relacionados com VSAM datasets....................................................................... 90 7-29 Nodes de agregao....................................................................................................... 92 7-30 Message Broker Toolkit ..................................................................................................94 7-31 Exemplo de mensagem MIME........................................................................................96 7-32 rvore lgica criada pelo MIME parser...........................................................................97 8-1 O Launchpad durante o Express Installation .................................................................. 106 8-2 cone que mostra o estado de execuo do WebSphere MQ ........................................ 107 8-3 cone que mostra o estado de execuo do DB2 Universal Database........................... 107 8-4 cone Getting started da tela de Welcome ...................................................................108 8-5 cone do Default Configuration wizard ............................................................................109 8-6 cone Run Pager Samples............................................................................................109 8-7 Perspectiva de desenvolvimento ....................................................................................110 8-8 cone Open Perspective (cone esquerdo) ...................................................................111 8-9 Criao automtica do link para a perspectiva ...............................................................111 8-10 Instalando atualizaes para o Message Brokers Toolkit.............................................113 9-1 Exemplo de message flow .............................................................................................. 116 9-2 Local Environment: estrutura da rvore lgica ...............................................................116 9-3 Environment: exemplo de utilizao ............................................................................... 117 9-4 Exception List: Estrutura da rvore lgica ......................................................................117 9-5 Root: exemplo de estrutura de uma mensagem MQ ......................................................119 9-6 Sistemas envolvidos em uma fbrica de automveis imaginria ...................................121 9-7 Barra Quick Launch com XMLSpy ............................................................................... 122 9-8 XML de requisio operao calcularFrete do WebService ........................................ 122 9-9 Resposta do WebService operao calcularFrete....................................................... 123 9-10 Barra Quick Launch com XMLSpy .............................................................................123 9-11 XML de requisio operao consultarEmpresa do WebService.............................. 123 9-12 Resposta do WebService operao consultarEmpresa ............................................124 9-13 Barra Quick Launch com RFHUtil .............................................................................. 124 9-14 Configurao do RFHUtil para teste do servio de cadastro de cliente ....................... 124 9-15 Verificando a leitura do arquivo no RFHUtil.................................................................. 125 9-16 Lendo a resposta do simulador atravs do RFHUtil ..................................................... 126 9-17 Iniciando o Message Brokers Toolkit c/ a workspace criada ........................................ 127 9-18 Conexo Configuration Manager ............................................................................... 127 9-19 Conexo com a Configuration Manager .......................................................................128

9-20 Criao de um novo execution group ........................................................................... 129 9-21 Criao de um novo Message Flow Project ................................................................. 129 9-22 Criao de um novo Message Set Project.................................................................... 130 9-23 Criao de um novo message set (continuao)..........................................................131 11-1 Mensagem XML de entrada a ser modelada................................................................138 11-2 Criando um novo message definition file ......................................................................138 11-3 Criando um novo message definition file (continuao) ...............................................139 11-4 Adio de mensagem no message definition file..........................................................139 11-5 Renomeando um complexType ....................................................................................140 11-6 Adicionando um elemento numa mensagem................................................................140 11-7 Configurando o tipo do elemento idProduto ................................................................. 141 11-8 Mensagem consultarEstoque envelopada no SOAP Envelope.................................... 141 11-9 Importao da modelagem da mensagem SOAP ........................................................ 142 11-10 Criao de um Broker Schema...................................................................................143 11-11 Criao de um message flow em um determinado Broker Schema........................... 143 11-12 Configurao final do message flow EstoqueWS ....................................................... 144 11-13 Adio e configurao do HTTPInput Node ...............................................................145 11-14 Verificao do messageSet Id ....................................................................................146 11-15 Cdigo default criado para o Compute Node.............................................................. 148 11-16 Configurao com os nodes adicionados ...................................................................149 11-17 Verificando as conexes entre Nodes ........................................................................ 149 11-18 Adio da interface WebSphere MQ ..........................................................................150 11-19 Conexo Configuration Manager .............................................................................151 11-20 Criao de um Broker Archive (BAR) .........................................................................151 11-21 Adicionando artefatos ao Broker Archive (BAR).........................................................152 11-22 Artefatos adicionados ao Broker Archive (BAR) .........................................................152 11-23 Event Log da Configuration Manager .........................................................................153 11-24 Testando o message flow EstoqueWS no NetTool .................................................... 154 11-25 Testando a interface MQ do message flow EstoqueWS ............................................155 11-26 Verificao da mensagem de resposta.......................................................................155 12-1 View Problem na perspectiva de desenvolvimento .................................................... 159 12-2 View Tasks na perspectiva de desenvolvimento........................................................ 160 12-3 View Alerts na perspectiva de administrao.............................................................160 12-4 Event Log da Configuration Manager ........................................................................... 161 12-5 Exemplo de sada de um Trace Node ..........................................................................162 12-6 Debug de um message flow .........................................................................................162 12-7 Anlise do contedo da mensagem atravs do Flow Debugger ..................................163 12-8 Comunicao com o RAC (Rational Agent Controller) ................................................. 164 12-9 Configurao do debug para Java................................................................................165 12-10 Adio do projeto Java para debug ............................................................................165

vi

Consideraes Legais
Este treinamento foi totalmente desenvolvido pela Intvision Solutions Ltda. Todo o material gerado no oficial e tampouco endossado pela IBM. Para a sua elaborao a Intvision Solutions Ltda baseou-se em manuais e artigos oficiais dos produtos envolvidos e na experincia tcnica de seus colaboradores. Esta apostila pode conter informaes tcnicas imprecisas e/ou erros de tipografia. Devido a isto, a Intvision poder lanar verses futuras com correes a qualquer tempo e sem nenhum aviso prvio. Caso seja de seu interesse receber estas atualizaes por favor consulte a Intvision. O ambiente de treinamento fornecido na forma de mquina virtual VMWare e dever ser utilizado apenas durante o treinamento, para fins educativos. vedado a utilizao e cpia, parcial ou integral, deste ambiente para fins comerciais. Os softwares no-IBM utilizados durante o treinamento so apresentados apenas por convenincia. A Intvision Solutions Ltda. no fornece qualquer tipo de licena de software para utilizao destes. A Intvision Solutions Ltda. no se responsabilizar por qualquer dano causado pelo uso indevido de seu material. A cpia e/ou distribuio dos materiais deste treinamento sem autorizao da Intvision Solutions Ltda. expressamente proibida.

vii

Chapter 1.

Introduo
Este captulo prov uma viso geral do escopo deste treinamento. Este captulo descreve: O escopo deste treinamento O pblico-alvo Viso geral dos captulos O que este treinamento no comtempla

Copyright Intvision Solutions 2007. All rights reserved.

1.1 O escopo do treinamento


O objetivo deste treinamento apresentar os conceitos e funcionalidades bsicas do Websphere Message Broker para novos usurios. Os seguintes produtos sero apresentados: Websphere Message Broker Websphere Event Broker 6.0 O Websphere Event Broker 6.0 contm um subconjunto das funcionalidades disponveis no Websphere Message Broker. Este treinamento ter foco no Websphere Message Broker. Este treinamento prov informaes bsicas para possibilitar a instalao e configurao do produto, desenvolvimento e deploy de solues simples. Alm disso habilita o usurio a completar tarefas administrativas comuns. O treinamento demonstra como criar passo-a-passo os componentes e desenvolver fluxos e message sets simples que demontram as capacidades do produto . Tambm sero apresentados os mtodos de obteno de dados diagnsticos para resoluo de problemas. O ambiente utilizado no treinamento baseado no Microsoft Windows. No entanto as informaes tratadas aqui podem ser utilizadas em outras configuraes como por exemplo em ambiente Linux.

WebSphere Message Broker 6.0 - Treinamento Bsico

1.2 O pblico-alvo
Este treinamento direcionado aos novos usurios do Websphere Message Broker fazendo com que estes comecem a utiliz-lo o mais rpido possvel. Este treinamento tambm indicado para usurios de verses anteriores que no esto familiarizados com o novo Message Broker Toolkit.

1.3 Viso geral dos captulos


Captulo 2, Introduo a SOA e ESB na pgina 5 Apresentamos o conceito SOA, suas caractersticas e o papel do ESB neste cenrio. Captulo 3, XML na pgina 13 Este captulo apresenta os conceitos do eXtensible Markup Language (XML) e as tecnologias relacionadas. um captulo essencial para o entendimento do produto. Captulo 4, Viso geral da famlia WebSphere para SOA na pgina 27 Este captulo aborda os principais produtos da famlia WebSphere utilizados para implantao da arquitetura SOA. Captulo 5, WebSphere MQ na pgina 41 Este captulo apresenta conceitos de mensageria e o produto WebSphere MQ. Captulo 6, Trabalhando com WebSphere MQ na pgina 57 Teremos um primeiro contato com o WebSphere MQ neste captulo. Captulo 7, WebSphere Message Broker na pgina 71 Este captulo mostra como o WebSphere Message Broker atua no cenrio SOA e como ele implementa as funes de um ESB. Captulo 8, Instalao na pgina 99 Este captulo comtempla a instalao e configurao do produto para obter um ambiente pronto para uso. Captulo 9, Message Flows na pgina 115 Neste captulo apresentamos o componente principal do WebSphere Message Broker: o message flow. Veremos como iniciar seu projeto dentro da ferramenta de desenvolvimento. Captulo 10, Controle de transaes na pgina 133 Este captulo explica quais so os procedimentos necessrios para o controle de transaes. Captulo 11, Web Services na pgina 137 Este captulo demonstra o uso do Web Services em um message flow. Captulo 12, Troubleshooting na pgina 157 Este captulo analisa os mtodos de troubleshooting para busca de informaes de status.
Chapter 1. Introduo

1.4 O que este treinamento no contempla


Este treinamento no contempla etapas de migrao de verses anteriores (2.1,5.0 e 5.1). Devido ao seu carter introdutrio os cdigos e exemplos apresentados no devero servir de base nas solues de Produo. No so apresentadas as best-practices de desenvolvimento, nem tampouco padres ou mtodos de obteno de performance. Este treinamento ser realizado em ambiente Windows e as caractersticas particulares de outros sistemas operacionais no sero apresentadas.

WebSphere Message Broker 6.0 - Treinamento Bsico

Chapter 2.

Introduo a SOA e ESB


Este captulo visa apresentar as caractersticas fundamentais da arquitetura orientada a servios (SOA).

Copyright Intvision Solutions 2007. All rights reserved.

2.1 Viso geral da arquitetura orientada a servios


2.1.1 Definio
SOA (Service-Oriented Architecture ou Arquitetura Orientada a Servios) uma arquitetura de software, baseada em servios, com foco nos processos de negcios. Suas principais caractersticas so: padres abertos, desacoplamento e o re-uso. SOA no uma tecnologia e sim um conceito. O grande benefcio de SOA o reuso e flexibilidade dos processos de negcios de uma empresa. Podemos resumir SOA da seguinte maneira: Dividir um processo de negcios em servios reutilizveis, mesmo se estes se estenderem aos aplicativos. Surgiro novos componentes (da empresa ou de parceiros de negcios) e depois juntar os novos e os antigos servios para criar um novo processo de negcios. A Arquitetura Orientada a Servios uma abordagem que pode orientar melhor o servio da sua empresa, tornando o seu atendimento mais gil e responsivo. Dentro de uma arquitetura orientada a servios, aplicativos, informaes e outros recursos de TI so vistos como servios ou "blocos de construo". Cada um desses servios podem ser misturados e combinados para criar novos e flexveis processos de negcios. Esta arquitetura criada para fornecer flexibilidade para tratar elementos de processos de negcios e a infra-estrutura fundamental de TI como servios que podem ser reutilizados e combinados para atender s prioridades de mudanas de negcios. Fornecendo uma ligao entre TI e processos de negcios, uma arquitetura orientada a servios pode ajudar a aumentar a flexibilidade de negcios e a capacidade da empresa em cumprir as metas de negcios com mais rapidez, facilidade e economia.

Figure 2-1 Termologia SOA

Servio a representao de uma tarefa de negcio repetitiva. Servios so usados para encapsular as funes de uma aplicao provendo uma interface independente. Os servios podem ser invocados por outros servios ou aplicaes. Orientao a servios a definio de mtodos de integraes de aplicaes e processos de negcios, conectados como servios. Arquitetura Orientada a Servios (SOA) pode ter diferentes contextos para as pessoas dentro de uma organizao, dependendo das suas funes (negcio, arquitetura, implementao, operao, etc.).

WebSphere Message Broker 6.0 - Treinamento Bsico

Da perspectiva de negcios, SOA define um conjunto de servios de negcios compostos para capturar o as regras de negcios e diretrizes que a empresa quer expor internamente e tambm para seus parceiros, clientes e fornecedores. Da perspectiva de arquitetura, SOA um estilo de arquitetura de aplicaes, baseada em servios. Da perspectiva de implementao, SOA uma infra-estrutura baseada em modelos, padres abertos e tecnologias, como Web Services. Da perspectiva operacional, SOA inclui um conjunto de ligaes entre consumidores e provedores, alm de prover a qualidade de servio e mtricas de negcios. Aplicativos Compostos so conjuntos de servios relacionados e integrados para suportar um processo de negcio dentro de SOA. Aplicativos e arquiteturas baseados em SOA, alm de mudar a ligao entre TI e negcios tambm mudam a maneira de como construir aplicaes, conforme o quadro a seguir:
Table 2-1 DE Orientado a funo Construdo para durar Longos ciclos de desenvolvimento Silos de aplicao Aplicaes estruturadas utilizando componentes Implementao conhecida PARA Orientado a processos Construdo para mudar Desenvolvido e implementado de forma incremental Solues orquestradas Aplicaes estruturadas utilizando servios Abstrao da implementao

2.1.2 Ciclo de desenvolvimento SOA


Para a adoo de SOA e BPM, importante construir os processos de negcios de maneira interativa e incremental. A figura abaixo demonstra as fases e interaes.

Figure 2-2 Ciclo SOA

Modelagem (model): O incio de um projeto comea pela modelagem de negcios, recolhendo e analisando as exigncias deste para simular e otimizar os processos. Esta

Chapter 2. Introduo a SOA e ESB

informao pode estabelecer uma compreenso comum dos processos de negcios entre TI e o negcio, assegurando que o resultado da aplicao definida pelo negcio alcance os seus objetivos e resultados. Construo (assemble): Nesta fase, os servios so criados ou utilizados. Com os servios prontos, possvel iniciar a orquestrao e execuo destes para executar os processos de negcios j modelados. Implantao (deploy): Na fase de implantao, o ambiente run-time configurado e escalado, para encontrar os melhores ndices para os servios. Assim, possvel implementar os servios e processos em um ambiente robusto, escalvel e altamente seguro para que este funcione com confiabilidade para os processos que ele requisitado, fornecendo a flexibilidade de alterar os processos dinamicamente em resposta as mudanas do negcio. Gerenciamento (manage): Na fase de gerenciamento estabelecida e mantida a disponibilidade e a resposta dos servios e processos de negcio. Para monitorar, pode-se utiliza KPIs para ter um monitoramento on-line, isolando e diagnosticando cada etapa de um processo. Nesta fase, permite-se fazer decises de negcio para verificar e melhorar os processos.

2.2 Enterprise Integration


Em geral, as tecnologias acumuladas dentro de uma empresa trazem diversos cenrios, com diferentes sistemas operacionais, protocolos de comunicao, plataformas de aplicativos, formatos de dados, etc.

Figure 2-3 Cenrio de uma empresa real

Para fazer a integrao entre os diversos cenrios, quando no se tem um centralizador para as integraes, as empresas so obrigadas a fazer as integraes de maneira ponto a ponto entre as aplicaes. Este tipo de arquitetura traz muitas dificuldades de manuteno de cdigo, conexes diversas, gerenciamento complexo, regras de integrao dentro das aplicaes entre outras caractersticas.

WebSphere Message Broker 6.0 - Treinamento Bsico

Para solucionar este problema, no passado foi criado o conceito de EAI (Enterprise Application Integration). Este conceito tornava as integraes entre os aplicativos, antes ponto a ponto, de uma maneira centralizada, facilitando a transformao de protocolos e formatos, substituio de sistemas, entre outras caractersticas.

Figure 2-4 Integrao com conexes ponto-a-ponto

Porem novos requisitos foram estabelecidos para as integraes dentro de uma empresa. Na poca do EAI, pensava-se somente em integrao de aplicaes. Hoje os requisitos de integrao so maiores: Pessoas, Processos e Aplicaes. Com a adio de Pessoas e Processos no escopo, o conceito de servios tornou-se muito forte para o reuso e o desacoplamento. Os aplicativos com funo de EAI tornaram-se obsoletos para tal tarefa e uma reengenharia deste padro foi necessria. Nesta nova fase, foi criado o conceito de ESB (Enterprise Service Bus), ou seja, aproveitando o conceito do EAI onde h um centralizador de integraes de aplicativos, porem com funes estendidas, como Web Services.

Figure 2-5 Integrao utilizando um ESB

2.3 Enterprise Service Bus (ESB)


Para implementar uma arquitetura que suporte o SOA e outros paradigmas de integrao, necessrio um ambiente sofisticado, com uma infra-estrutura gerencivel e que suporte vrias interaes. Este ambiente deve suportar vrios estilos de integraes existentes. O conceito de Enterprise Service Bus descrito como a nova arquitetura para explorar Web Services, Messaging Middleware, Roteamento e Transformao de dados. Para fazer uma implementao de um servio com SOA, ambas as aplicaes e infra-estruturas devem suportar os seus princpios bsicos. O ESB simplifica a infra-estrutura para rotear e transportar as requisies para o servio correto.
Chapter 2. Introduo a SOA e ESB

O grande valor do ESB habilitar a infra-estrutura para o SOA prover uma sute de nveis de servios e gerenciamento possibilitando a operao e integrao em ambientes heterogneos. O ESB tambm habilita a substituio da implementao de um servio por outro sem afetar os sistemas que se conectam a ele. O ESB suporta os trs principais paradigmas de integrao: Service-oriented architectures: Onde as aplicaes se comunicam atravs de servios reutilizveis; Message driven architectures: Onde as aplicaes enviam e recebem mensagens atravs do ESB; Event driven architectures: Onde as aplicaes geram e consomem mensagens independentemente.

Figure 2-6 Enterprise Service Bus

O ESB deve ser capaz de disponibilizar as seguintes capacidades:


Table 2-2 Capacidades de um ESB Capacidade Comunicao Detalhe

Roteamento Endereamento Protocolo e Padres (HTTP, HTTPS, etc.) Publish / Subscribe Response / Request Eventos, Fire & Forget Mensagens Sncronas e Assncronas

10

WebSphere Message Broker 6.0 - Treinamento Bsico

Capacidade Interao de Servios

Detalhe

Interface de definio de servios (WSDL) Substituio da implementao do servio Modelos de servios de mensagens requeridos para comunicao e integrao (SOAP, XML, modelos proprietrios, etc.) Servio de diretrio e procura

Integrao

Banco de Dados Legados e Adapters de Aplicao Conectividade com EAI Servio de mapeamento Protocolo de transformao Enriquecimento/Agregao de dados Ambientes com Servidos de Aplicao (Application Server) Interface com linguagens de programao (Java, C, C++, etc.)

Qualidade de Servio

Transaes (Two Fase Commit, Compensation, WS-Transaction) Vrios paradigmas de garantia de entrega dos dados (Message Queuing, WS-ReliableMessaging, etc.)

Segurana

Autenticao Autorizao No repudiao Confidenciabilidade Standards de segurana (Kerberos, WS-Security)

Nvel de Servio

Performance Multi-Processamento Escalabilidade Alta disponibilidade Outras medidas e meios de continuidade e melhoria dos servios

Chapter 2. Introduo a SOA e ESB

11

Capacidade Processamento de Mensagens

Detalhe

Encoded lgico Lgica baseada no contedo Transformao de dados Agregao e correlao Validao Intermediao Identificao de mapeamento dinmica Armazenamento e encaminhamento

Infra Estrutura inteligente

Regras de negcios Poltica de vrios nveis de servios, segurana, qualidade e capacidades (WS-Policy) Reconhecimento de parceiros; Gerenciamento e Automao Capacidade de Administrao Servio de provisionamento e registro Log com vrios nveis Mtricas Monitorao Integrao com sistemas de gerenciamento e ferramentas de administrao Auto monitorao e autogerenciamento

Modelagem

Modelagem de objetos Modelos de objetos de negcios comuns Bibliotecas de formatos de dados Modelos pblicos X privados para integrao B2B Ferramentas de desenvolvimento e implantao

12

WebSphere Message Broker 6.0 - Treinamento Bsico

Chapter 3.

XML
Este captulo prov uma viso geral sobre o XML e tecnologias relacionadas.

Copyright Intvision Solutions 2007. All rights reserved.

3.1 XML
O XML (eXtensible Markup Language) uma recomendao da W3C para gerar linguagens de marcao para necessidades especiais. Na prtica uma linguagem para representao de dados para diversas necessidades. Explicando-se pelo significado da sigla, o XML : Extensvel: devido natureza da sua estrutura, fica fcil estend-lo e adapt-lo para novas finalidades. Markup: os dados so envoltos em marcadores(markup), tambm chamados de tags. No existe um conjunto fixo de tags, portanto voc est livre para criar as suas prprias tags. Language: uma linguagem definida por uma gramtica. No caso do XML estabelecido uma gramtica rgida para entendimento preciso do contedo dos dados. O XML oferece uma tentadora possibilidade de formato de dados duradouro e cross-platform. J de praxe o caso de documentos escritos em uma plataforma no serem necessariamente legveis num outra plataforma, ou por uma aplicao diferente na mesma plataforma. Quando o documento era lido, no havia a garantia de que todas as informaes chegariam. Por exemplo, muitos dados do pouso lunar da dcada de 60 e 70 foram perdidos para sempre. Isto porque mesmo que algum consiga ler os dados das fitas da poca, ningum saberia dizer em qual formato os dados foram armazenados nestas fitas! No XML todos os dados so texto e codificados em UTF-8 por default. Isto significa que o XML pode ser lido e editado em qualquer editor texto de qualquer plataforma. Desta forma no h a necessidade de saber como deve se interpretar um nmero. Alm disso como as tags so abertas e fechadas, o comeo e final dos dados so bem definidos, alm de no existir mais o problema de se encontrar uma quebra de linha inesperada dentro da sua aplicao. Voc no precisar fazer engenharia reversa para descobrir a formatao dos dados ou confiar em documentos imprecisos ou indisponveis do formato de dados. O XML por si s faz uma auto-descrio de seu contedo atravs da nomenclatura de suas tags. O XML utilizado cada vez mais nos mais diversos campos como: web sites, EDI (eletronic data interchange), representao de grficos vetoriais, genealogia, serializao de objetos, RPC (remote procedure call), sistemas de voice mail,etc. Poucos fornecedores ainda insistem em forar seus usurios com dados de formatos binrios, proprietrios e no documentados. No entanto, no longo prazo seria se utilizasse formatos em texto, bem documentado, fcil de entender, fcil de parsear que o XML fornece. O XML faz com que documentos e dados sejam trafegados entre sistemas com razovel esperana de que os destinos entendam-nas. Alm do mais, a validao atravs de DTD ou XSD faz com que o receptor verifique se os dados esto no formato esperado. Assim como o Java prometeu programao portvel, o XML fornece dados portveis. Apesar de simples e poderoso, o XML: No uma linguagem de programao. Apesar de atualmente existirem diversas ferramentas de XML Scripting, tais como o Apache Ant, devemos prestar ateno ao fato de que a aplicao quem toma a ao ao ler um Script XML. O resultado disto semelhante uma aplicao que l um arquivo texto de configurao para tomar suas decises.

14

WebSphere Message Broker 6.0 - Treinamento Bsico

No um protocolo de transporte. O XML necessita de um meio de transporte para ser enviado pela rede. Existem protocolos codificados em XML, porm novamente podemos observar que existe uma aplicao que envia os dados. No um banco de dados. Dados podem ser armazenados facilmente em XML, porm nada supera as caractersticas de manipulao de dados bsicos (CRUD - create, read, update, delete) de um banco de dados. O XML pode ser armazenado em banco de dados em campos BLOB ou VARCHAR. O XML possui uma srie de componentes que descrevem os dados contidos, que sero apresentados em seguida.

3.1.1 Declarao XML


um trecho opcional. Caso exista deve ser o primeiro a aparecer dentro do documento. Abaixo segue um exemplo de declarao XML (em negrito):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <mensagem>Isto uma mensagem</mensagem> Figure 3-1 Exemplo de um XML simples com declarao XML

Traz as seguintes informaes: 1. verso do XML: Informao utilizada pelo XML Parser 2. encoding: Informa como o XML foi codificado, j que este texto. O seu valor default UTF-8. 3. standalone: Indica se o XML necessita de um DTD externo para ser lido. O seu valor default no.

3.1.2 Instruo de processamento


um meio de passar informaes de processamento para uma determinada aplicao. Esta instruo deve comear com <? e terminar com ?> Vide abaixo exemplos de instruo de processamento (em negrito):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <mensagem>Isto uma mensagem</mensagem> <?php mysql_connect("database.unc.edu", "clerk", "password"); $result = mysql("HR", "SELECT LastName, FirstName FROM Employees ORDER BY LastName, FirstName"); $i = 0; while ($i < mysql_numrows ($result)) { $fields = mysql_fetch_row($result); echo "<person>$fields[1] $fields[0] </person>\r\n"; $i++; } mysql_close( ); ?> Figure 3-2 Exemplo de um XML simples com instruo de processamento

A declarao XML um tipo especial de intruo de processamento.

Chapter 3. XML

15

3.1.3 Comentrios
Utilizados para comentar trechos de XML ou dar informaes adicionais para o XML. Os comentrios devem ser iniciados por <!-- e terminados por -->. Vide abaixo exemplos de comentrios (em negrito):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- TODO: Verificar como est a validao desta tag --> <mensagem>Isto uma mensagem</mensagem> <!-- <mensagem>Mensagem antiga</mensagem> --> Figure 3-3 Exemplo de um XML simples com comentrios

3.1.4 Elementos
Vejamos o exemplo abaixo com elementos (em negrito).

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- TODO: Verificar como est a validao desta tag --> <mensagem> <codStatus>-1</codStatus> <msgStatus1>Objeto no encontrado</msgStatus1> <msgStatus2></msgStatus2> <msgStatus3 /> </mensagem> Figure 3-4 Exemplo de um XML simples com elementos

Elementos consistem de tag iniciadora(eg: <codStatus>), seu contedo (eg: -1) e tag finalizadora (eg: </codStatus). Um documento XML deve possuir apenas um elemento raiz, no exemplo acima o elemento mensagem. O elemento vazio, ou seja, sem contedo pode ser representado de duas formas. Pelo exemplo acima, vide os elementos msgStatus2 e msgStatus3.

3.1.5 Atributos
So pares nome-valor separados por espao atribudos um elemento. Vide abaixo exemplos de atributos (em negrito):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <mensagem id=20394 replyToSender=yes>Isto uma mensagem</mensagem> Figure 3-5 Exemplo de um XML simples com atributos

O contedo dos atributos so delimitados sempre por aspas (simples ou duplas).

16

WebSphere Message Broker 6.0 - Treinamento Bsico

3.1.6 Exemplo de composio

Figure 3-6 Trecho de um XML que representa uma imagem vetorial

Chapter 3. XML

17

3.2 XML Namespace


Os namespaces possuem dois objetivos no XML: Distinguir elementos e atributos de diferentes vocabulrios com diferentes significados que compartilham o mesmo nome. Agrupar todos os elementos e atributos relacionados um domnio para que uma aplicao consiga reconhec-los facilmente. Os namespaces so implementados colocando-se prefixos em cada elemento ou atributo. Cada prefixo mapeado determinada URI por um atributo xmlns:prefixo. Vide abaixo um exemplo de chamada de WebServices:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:calcularFrete xmlns:m="http://www.intvision.com.br/calculoFrete"> <m:cepOrigem>14523-000</m:cepOrigem> <m:cepDestino>02311-000</m:cepDestino> <m:peso>2</m:peso> </m:calcularFrete> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figure 3-7 XML de exemplo de chamada de um WebService

Neste exemplo, temos os seguintes mapeamentos:


Table 3-1 Mapeamento de Namespaces Prefixo SOAP-ENV SOAP-ENC xsi xsd m URI http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/encoding/ http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema http://www.intvision.com.br/calculoFrete

O Namespace URI no necessita necessariamente apontar para um local vlido. Na verdade, poderiam at iniciar-se com mailto://. No entanto, no seria uma m idia deixar algum tipo de documentao nesta URI. O XML Parser compara as URIs caractr por caractr para definir o seu namespace. Ou seja, as quatro URIs abaixo apontariam para namespaces diferentes: http://www.w3.org/1999/02/22-rdf-syntax-ns# http://WWW.W3.ORG/1999/02/22-rdf-syntax-ns# http://www.w3.org/1999/02/22-rdf-syntax-ns/ http://www.w3.org/1999/02/22-rdf-syntax-ns/index.rdf

18

WebSphere Message Broker 6.0 - Treinamento Bsico

3.2.1 Definindo um Namespace Default


Muitas vezes voc sabe que todo o contedo de um elemento em particular vir de uma determinada aplicao. Por exemplo, dentro de um elemento svg para definio de elementos grficos, voc encontrar somente outros elementos do SVG. Neste caso pode-se retirar os prefixos atribuindo-se um atributo xmlns sem prefixo no elemento principal. Por exemplo:

<svg xmlns="http://www.w3.org/2000/svg" width="12cm" height="10cm"> <ellipse rx="110" ry="130" /> <rect x="4cm" y="1cm" width="3cm" height="6cm" /> </svg> Figure 3-8 XML com Namespace Default

Neste exemplo, embora no exista prefixo para os elementos svg, ellipse e rect, eles pertencem ao namespace http://www.w3.org/2000/svg.

3.3 Tecnologias relacionadas


Quando se observa uma arquitetura XML mais de perto encontraremos uma srie de tecnologias especializadas em processar o XML de alguma forma. As tecnologias mais utilizadas so: XML Schema Definition(XSD) Document Type Definition (DTD) XML Query (XQuery) XML Path (XPath) XML Transformations (XSLT)

Figure 3-9 XML e tecnologias relacionadas Chapter 3. XML

19

3.4 Document Type Definition (DTD)


O Document Type Definition vem sendo substitudo gradualmente pelo XML Schema (XSD), j que este praticamente possui as mesmas funcionalidades e possui mais benefcios. O estudo do DTD no ser tratado neste treinamento.

3.5 XML Schema Definition (XSD)


O XML Schema um documento XML que contm uma descrio formal de constraints, expressas atravs de regras ou modelagem da estrutura XML, que se aplicam a outros documentos XML. Um XML Schema possui as seguintes funes principais: Validao: o uso mais comum. A validao pode ser considerada como um firewall contra a diversificao do XML. Validando-se um documento XML com um Schema, voc pode assegurar-se que os dados sero enviados conforme o esperado. Documentao: mesmo quando o documento no necessita ser validado, o XML Schema utilizado para entendimento do vocabulrio do documento XML. Suporte querying: No XPath e XSLT so definidos para trabalhar sem um entendimento explcito da estrutura dos documentos que esto sendo manipulados. No entanto, estes podem ser otimizados lendo-se o Schema para entendimento da tipagem dos dados do documento XML. Por exemplo: sabendo-se que um elemento conter um nmero inteiro atravs do XML Schema, o XSLT pode tomar medidas otimizadas, ao invs de test-lo se realmente um nmero. Data binding: Embora no seja difcil escrever aplicaes que processam documentos XML usando SAX, DOM e outras APIs, esta pode ser uma tarefa repetitiva e sujeita a erros. No intuito de automatizar o processamento de documentos XML, o Data Binding funciona atravs de uma aplicao que l o XML Schema e gera automaticamente os recursos necessrios para o processamento do documento XML. No caso do Data Binding em Java, so geradas Classes Java que representam elementos do documento XML. Edio guiada: A maioria dos editores XML atuais provm o recurso de editar um documento XML analisando as constraints do elemento ou atributo pelo XML Schema. Desta forma, enquanto voc est criando ou editando um documento XML, voc poderia responder perguntas como: Posso inserir um novo elemento aqui? ou Posso atualizar o contedo deste elemento para este valor?

3.5.1 Simple Type


So definies para elementos ou atributos simples, ou seja, que no possuem filhos. O XML Schema possui alguns simple types pr-definidos, mostrados a seguir:

20

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 3-10 Hierarquia de simple types pr-definidos no XML Schema

Com os simple types, possvel gerar constraints para os elementos finais. Por exemplo, pode-se dizer que o elemento <dataNascimento> deve ser do tipo date. Voc pode estender a definio de um simple type pr-definido para criar o seu prprio simpleType. Abaixo, criamos um simple type que define o tipo para o nome de fila MQ:

<xs:simpleType name="MQQUEUE"> <xs:annotation> <xs:documentation>Type for MQ Queue names</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:maxLength value="48"/> </xs:restriction> </xs:simpleType> Figure 3-11 Simple Type que define um tipo para um nome de fila MQ

No exemplo acima definimos que o nome da fila deve ser String e ter o tamanho mximo de 48 caracteres.

Chapter 3. XML

21

3.5.2 Complex Type


uma definio para elementos complexos, ou seja, que possuem elementos filhos e/ou atributos. A sequncia de apario dos elementos filhos controlada atravs dos seguintes modelos: 1. sequence: os elementos devem aparecer exatamente na sequencia especificada. 1. all: os elementos podem aparecer em qualquer ordem, mas no podem repetir 2. choice: apenas um dos elementos deve ser escolhido

3.6 XPath
O XPath (XML Path Language) linguagem de expresso para navegao numa rvore XML ou para computar valores (string, nmeros e booleans). Fazendo-se uma analogia com um banco de dados, o XPath funciona como a query SELECT.

3.6.1 Notao
Uma expresso XPath possui os seguintes componentes: Axis: indica a direo de navegao dentro da rvore XML. Node test: testa o tipo do n Predicado: o filtro para selecionar um n com dadas caractersticas.

Axis
Vide o seguinte XML abaixo:

<?xml version="1.0" encoding="UTF-8"?> <mensagem> <cliente id="1234"> <nome>Jorge</nome> <sobrenome>Silva</sobrenome> </cliente> <cliente id="1235"> <nome>Maria</nome> <sobrenome>Silva</sobrenome> </cliente> </mensagem> Figure 3-12 XML exemplo

Um XPath que retorna todos os clientes do XML acima seria: Na forma abreviada: /mensagem/cliente Na forma extendida: /child::mensagem/child::cliente Abaixo seguem os principais axis do XPath:

22

WebSphere Message Broker 6.0 - Treinamento Bsico

Table 3-2 Principais axis do XPath Axis filho Notao expandida child Notao abreviada default, no necessita especificar uma notao abreviada. @ // no disponvel .. (ponto ponto) no disponvel no disponvel no disponvel no disponvel no disponvel no disponvel . (ponto)

atributo descendentes (todos os filhos) descendentes ou o prprio pai ancestrais (todos os pais, avs, etc) ancestrais ou o prprio o prximo irmo o irmo anterior o prximo irmo com mesmo nome o irmo anterior com mesmo nome o prprio

attribute descendant descendant-or-self parent ancestor ancestor-or-self following preceding following-sibling preceding-sibling self

Node test
O node test consiste em procurar ns com determinados nomes ou por seu tipo (n comentrio, n texto, n processing-instruction, n qualquer) Por exemplo, a expresso //cliente procura todos os elementos com o nome cliente dentro do XML.

Predicados
So expresses envolvidas por [ ] que funcionam como um filtro para dado axis + node test. Por exemplo, para selecionar o cliente que possui o id = 1234, no Exemplo 3-12 na pgina 22 o XPath ser:
/mensagem/cliente[@id='1234']

Os predicados funcionam como o WHERE de uma query SELECT de banco de dados.

3.6.2 Funes
Uma expresso XPath pode tambm realizar funes de manipulao de string, clculos numricos e expresses condicionais. Para maiores detalhes sobre as funes disponveis no XPath 1.0, verifique o site: http://www.w3.org/TR/xpath

Chapter 3. XML

23

3.7 XQuery
O XQuery fornece meios de extrair e manipular dados de um XML ou qualquer outra fonte de dados que possa ser visualizado como XML, tais como bancos de dados relacionais. O XQuery utiliza expresses XPath para navegar por um documento XML e alm disso traz funcionalidades parecidas com o SQL.

<html><head/><body> { for $act in doc("hamlet.xml")//ACT let $speakers := distinct-values($act//SPEAKER) return <span> <h1>{ $act/TITLE/text() }</h1> <ul> { for $speaker in $speakers return <li>{ $speaker }</li> } </ul> </span> } </body></html> Figure 3-13 Exemplo de XQuery

O XQuery uma recomendao W3C de Janeiro/2007 e possui suporte nos novos bancos de dados que armazenam XMLs nativamente. No momento da concluso deste treinamento, o WebSphere Message Broker no possuia suporte nativo ao XQuery. Entretanto, as expresses XQuery poderiam ser executadas via APIs em Java dentro de um JavaCompute Node.

3.8 XML Transformations (XSLT)


Um documento XML por si s uma estrutura de dados. Seria muito interessante se um documento XML pudesse ser transformado em outro XML, ou mesmo se fosse possvel obter tabelas, cores e fontes aplicadas aos dados deste XML. O XSLT foi desenvolvido com este intuito e, em conjunto com o XPath, possvel transformar um documento XML em outro documento XML, ou at mesmo para um documento PDF atravs de um arquivo XSL, tambm conhecido como Stylesheet. O WebSphere Message Broker V6.0 suporta nativamente o XSLT verso 1.0.

24

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 3-14 Utilizao do XML Transformations (XSLT)

Chapter 3. XML

25

26

WebSphere Message Broker 6.0 - Treinamento Bsico

Chapter 4.

Viso geral da famlia WebSphere para SOA


Este captulo prov uma viso geral da famlia WebSphere da IBM.

Copyright Intvision Solutions 2007. All rights reserved.

4.1 IBM WebSphere


WebSphere refere-se uma brand de software da IBM que atua no contexto de middleware. Contm uma diversidade de produtos que configuram, operam e integram aplicaes de mltiplas plataformas computacionais. A famlia WebSphere categorizada segundo as classificaes IBM: Application Servers Business Integration Commerce Mobile, Speech and Enterprise Access Networking Organizational Productivity, Portals and Collaboration Software Development System Management Neste captulo apresentaremos apenas as categorias voltadas ao mundo SOA.

4.1.1 Application Servers


Aplication e Web servers distribudos
So plataformas que fornecem blocos de construo para a montagem de aplicaes. A aplicao se beneficia da infra-estrutura provida pelo application server como acesso a banco de dados, segurana, mensageria, etc.

WebSphere Application server


WebSphere Application Server (WAS) um dos principais servidores para J2EE e web services e oferece uma mquina transacional de alta disponibilidade com capacidades avanadas de performance e gerenciamento. um produto da IBM que tem uma grande fatia do mercado. o nico servidor de aplicao capaz de executar em todas as plataformas importantes do mercado como Windows, Linux, vrios Unix, AS/400 e at mesmo no mainframe onde tem crescido em larga escala. A IBM tambm fornece uma verso gratuita de servidor de aplicao baseada no Apache Geronimo que tem o nome de WebSphere Application Server Community Edition. Nota: Aprenda mais sobre a utilizao do Java 2 Enterprise Edition (J2EE) e o IBM WebSphere Application Server com a lista de leitura recomendada pela IBM: http://www-128.ibm.com/developerworks/websphere/library/techarticles/0305_issw/ recommendedreading.html

O WebSphere Application Server fornecido nas seguintes edies: Community Edition Express Edition z/OS Edition Network Deployment Edition 28
WebSphere Message Broker 6.0 - Treinamento Bsico

WebSphere Extended Deployment


O WebSphere Extended Deployment um produto que aplica os tcnicas de computao adaptativa e de grid num WebSphere Application Server dando aos administradores a garantia da melhor performance da aplicao otimizando-se a utilizao de hardware e configurando-se os clusters para auto-monitoramento e tomada de aes corretivas. O produto centraliza o balanceamento de carga, a virtualizao de aplicao e o gerenciamento de altos volumes de dados para obter qualidade de servio (QoS). O WebSphere Extended Deployment contm os seguintes componentes: Otimizao de operaes: Fornece virtualizao de aplicao, gerenciamento de carga e e administrao para aplicaes Java. Data grid: Faz com que as aplicaes tenham alta performance com volumes massivos de dados. Compute grid: Habilita agendamento, execuo e monitorao de jobs batch com polticas de segurana e balanceamento de carga.

Edge Servers
WebSphere Edge Server
O WebSphere Edge Server, tambm conhecido como WebSphere Edge Components um conjunto de componentes de application/web servers criados com o intuito de aumentar a performance dos sistemas web. O Edge Server possui 4 componentes bsicos: 1. Network Dispatcher: usado para direcionar as requisies de entrada para o servidor apropriado baseado num conjunto de regras que incluem balanceamento de carga para diversos servidores . 2. Caching Proxy: O caching proxy pode ser configurado como forward-proxy ou reverse-proxy. O contedo requisitado guardado em cache pelo Edge antes de ser enviado ao requisitante. 3. Content Distribution: Usado para sincronizar contedo web esttico pelos web servers quando o contedo publicado. 4. Application Service at the Edge: Fornece a habilidade de construo de pginas web dinmicas a partir de fragmentos gerados pelos mltiplos application servers.

4.1.2 Business Integration


Application Integration and Connectivity
WebSphere Adapters
O WebSphere Adapter utilizado para a conexo com Enterprise Information Systems (EIS) seguindo a especificao 1.5 do Java EE Connector Architecture (JCA). Eles podem ser adaptadores de tecnologia ou de aplicaes. Cerca de 25 diferentes WebSphere Adapters esto disponveis

WebSphere Data Interchange


O WebSphere Data Interchange facilita a criao, implementao, execuo e transformao de formatos EDI e XML. Os padres EDI suportados incluem ANSI X12, UN/EDIFACT e UCS. O WebSphere Data Interchange suporta subconjuntos dos padres ANSI X12 e UN/EDIFACT interpretadas por indstrias de comrcio, transportes, eletrnicos, sade, seguros, manufatura, etc.
Chapter 4. Viso geral da famlia WebSphere para SOA

29

O WebSphere Data Interchange pode operar como um sistema EDI stand-alone ou pode ser integrado outras aplicaes da empresa, tanto via WebSphere MQ quanto pela API Java, que permite que este seja chamado como Web Service em implementaes de SOAP ou BPM. Ele pode ser integrado com o WebSphere Enterprise Service Bus, ou com o WebSphere Message Broker ou WebSphere Process Server. O WebSphere Data Interchange pode ser utilizado em conjunto com o WebSphere Partner Gateway para suportar um amplo suporte de conectividade como EDIINT AS1, AS2 e AS3, ebXML ebMS 2.0, RosettaNet RNIF 1.1 e 2.0, cXML, CIDX Chem eStandards 4.0, e SOAP como anexos.

WebSphere DataPower SOA Appliances


So dispositivos construdos com o propsito de auxiliar na arquitetura SOA para simplificar, ajudar na segurana, acelerar a implementao de XML e Web Services. Estes dispositivos foram originalmente criados pela DataPower Technology Inc. e adquirida pela IBM em Outubro/2005. Atualmente existem trs tipos de dispositivos: WebSphere DataPower Integration Appliance XI50 WebSphere DataPower XML Security Gateway XS40 WebSphere DataPower XML Accelerator XA35

WebSphere Enterprise Service Bus


O WebSphere Enteprise Service Bus (WESB) uma implementao de ESB para ambientes de TI construdas sobre open standards, SOA, mensageria e tecnologias WebServices do WebSphere Application Server. O WebSphere ESB tem como foco a mediao de WebServices e integrao orientada a servio. Nota: Veja as funcionalidades do WESB no seguinte site: http://www-306.ibm.com/software/integration/wsesb/about/?S_CMP=wspace

WebSphere Message Broker


O WebSphere Message Broker um mediador de informaes (information broker) que implementa um Enterprise Service Bus com ampliao do escopo de integraes para sistemas legados. Oferece suporte a uma grande variedade de formatos de dados, incluindo padres industriais como EDIFACT e SWIFT e suporta diversos tipos de transportes como: WebSphere MQ HTTP JMS WebSphere MQ Enterprise WebSphere MQ Real-time Transport WebSphere MQ Multicast Transport WebSphere MQ Telemetry Transport WebSphere MQ Everyplace Com o WebSphere Message Broker o processo de comunicao entre WebServices e servios no-WebServices simplificado consideravelmente.

30

WebSphere Message Broker 6.0 - Treinamento Bsico

WebSphere MQ
O WebSphere MQ uma plataforma de middleware estvel e que possibilita uma arquitetura de message queuing. O WebSphere MQ fornece entrega de mensagens garantida e nica entre os sistemas de TI, conectando mais de 80 plataformas, como Z/OS, Windows, AIX, HP-UX, Solaris, entre outras, utilizando uma variedade de protocolos de comunicao.

WebSphere MQ Everyplace
O WebSphere MQ Everyplace estende a integrao de negcios para dispositivos mveis garantindo uma mensageria robusta para superar as intermitncias das frgeis redes wireless. Oferece APIs e ambientes como Java, C, JMS e J2ME. O WebSphere MQ Everyplace est disponvel nas verses: Network Edition Retail Edition

WebSphere Service Registry and Repository


O WebSphere Service Registry and Repository (WSRR) uma ferramenta poderosa que ajuda a alcanar um valor de negcio tangvel de sua arquitetura SOA melhorando o gerenciamento e governana de seus servios. Com o WebSphere Service Registry and Repository voc pode armazenar, acessar e gerenciar informaes de servios (chamados de metadados) para auxiliar numa implementao bem sucedida de SOA. Os metadados so utilizados para selecionar, chamar, governar e reutilizar os servios. Por exemplo, a aplicao pode verificar o WSRR antes de chamar o servio para localizar o servio que melhor satisfaz as necessidades funcionais e de performance. Os benefcios incluem: Registro de servios que contm informaes de servios, como as interfaces de servios, suas operaes e parmetros. Repositrio de metadados que possui um framework robusto e extensvel para operar diversas utilizaes de servio Suporte a cluster Suporte documentao de servios em qualquer tipo de documento (eg.: Word, PowerPoint, Visio, Excel). Suporte bi-direcional a sincronizao com UDDI. Nota: Veja o funcionamento do WSRR no seguinte site: http://www.ibm.com/developerworks/websphere/library/techarticles/0609_mckee/060 9_mckee.html

Process Integration
WebSphere Business Modeler
IBM WebSphere Business Modeler fornece recursos poderosos de modelagem de processos de negcios, simulao, anlise e gerao de relatrios, para ajud-lo a otimizar o desempenho de seus processos de negcios. Na busca permanente por melhoria nos negcios, um modelo de processo de negcios bem construdo pode ajudar a localizar e eliminar ineficincias, custos, e atrasos ocultos. O WebSphere Business Modeler simplifica o processo de criao de modelos de negcios

Chapter 4. Viso geral da famlia WebSphere para SOA

31

realsticos, permitindo integrar os diferentes aspectos de um processo de negcios complexo em um nico modelo. O WebSphere Business Modeler fornece sofisticadas ferramentas de anlise que permitem avaliar os processos de negcios atuais e potenciais. Tambm fornece um link direto da modelagem do processo de negcios para a implementao de servios de software. possvel transformar os modelos de processos de negcios em modelos no nvel de TI utilizando o WebSphere Business Modeler Advanced. Por exemplo, possvel exportar uma verso BPEL (Business Process Execution Language) de um modelo, import-la para o WebSphere Integration Developer e utilizar o modelo para criar um aplicativo integrado. possvel criar uma soluo de automao de fluxo de trabalho a partir de um modelo, importando uma verso FDL (FlowMark Definition Language) do modelo para a ferramenta IBM WebSphere MQ Workflow Buildtime. Com essa ferramenta, possvel aprimorar a definio de processo para que o processo possa ser automatizado em um ambiente de tempo de execuo do WebSphere MQ Workflow. Alm disso, pode-se utilizar um projeto do WebSphere Business Modeler para modelar aplicativos no IBM Rational Software Modeler e trabalhar com o projeto como um modelo UML (Unified Modeling Language). De maneira semelhante, possvel importar um projeto do WebSphere Business Modeler no IBM Rational Software Architect para transformar um to processo de negcios em um aplicativo orientado a servios. WebSphere Business Modeler um componente-chave de uma implementao SOA (Arquitetura Orientada a Servios). Tanto para melhorar a satisfao do cliente em relao aos servios oferecidos como para reduzir custos atravs do aumento de produtividade do trabalho, o ciclo de vida da SOA comea com a modelagem de processo de negcios como uma entrada. Os modelos de processo de negcios criados com o WebSphere Business Modeler ajudam a alcanar metas importantes de planejamento e implementao da SOA: Capturar os relacionamentos entre pessoas, processos e informaes; Construir seu caso de negcios, mapeando metas estratgicas para processar recursos e simulando as alteraes do processo para avaliar impactos nos custos, utilizao de recursos e ciclo operacional antes da implementao; Identificar onde as qualificaes so mais necessrias; Reduzir risco, simulando alteraes de mercado em relao aos modelos de processo atuais; Comunicar com exatido e eficincia os requisitos dos negcios para IT. Apesar de ser possvel fazer a modelagem do processo de negcios crtico para uma implementao SOA com o WebSphere Business Modeler Basic, necessrio o WebSphere Business Modeler Advanced para executar simulaes, fazer anlise de simulaes, definir medidas de negcios e exportar arquivos para o desenvolvimento de aplicativos. Extenso: Os modelos de processos criados no WebSphere Business Modeler podem ser publicados no WebSphere Business Modeler Publishing Server para que os revisores possam visualizar e comentar sobre os modelos.

WebSphere Business Monitor


Fornece a visualizao grfica do status dos processos de negcio com alertas e notificaes para facilitar a contnua melhora de seus processos de negcio.

32

WebSphere Message Broker 6.0 - Treinamento Bsico

Deixa o usurio no controle de relatrios filtrados pelo dashboard, que suporta anlise multi-dimensionais e relatrios BI embutidos. Os componentes do WebSphere Business Monitor so: Workflow Dashboard: Verifica o andamento dos workflows em real-time Business Dashboard: Fornece views dos processos estratgicos e mtricas.

WebSphere Event Broker


um mediador de eventos que lida com interaes Publish/Subscribe.

WebSphere Integration Developer


O WebSphere Integration Developer (WID) uma IDE para construir aplicaes baseadas em SOA. utilizado para desenvolver aplicaes para o WebSphere Process Server e o WebSphere ESB. O WID foi construdo sobre o Rational Application Developer (RAD) que por sua vez baseado na plataforma Eclipse.

WebSphere Partner Gateway


Chamado anteriormente de WebSphere Business Integration Connect, o WebSphere Partner Gateway auxilia na integrao entre parceiros business-to-business (B2B). No contexto SOA, o WebSphere Partner Gateway ajuda na integrao da empresa com seus parceiros de negcio fornecendo um nico ponto de gerenciamento para eles com amplo escopo de protocolos de transporte e formatos de dados B2B. Para seu gerenciamento e deploy o WebSphere Parner Gateway utiliza a infra-estrutura do WebSphere Application Server Network Deployment. Ele pode ser integrado com outros produtos como WebSphere Transformation Extender (WTX), WebSphere Data Interchange (WDI), WebSphere Process Server (WPS), WebSphere Enterprise Service Bus (WESB), WebSphere Message Broker (WMB), WebSphere Business Monitor e IBM Tivoli Monitor (ITM).

WebSphere Process Server


O IBM WebSphere Process Server combina recursos de integrao com uma plataforma de aplicativo composto para fornecer uma plataforma de integrao com um mecanismo de processo de negcios baseado em padres e totalmente convergente, utilizando o domnio total do WebSphere Application Server. O IBM WebSphere Process Server uma plataforma de integrao de SOA (Arquitetura Orientada a Servios) construda em um modelo de programao de chamada uniforme e em um modelo de representao de dados uniforme. A infra-estrutura bsica de tempo de execuo do WebSphere Process Server o WebSphere Application Server. A Service Component Architecture e os objetos de negcios que fazem parte do ncleo da SOA fornecem modelos de programao de chamada e representao de dados uniforme. O ncleo da SOA inclui a Common Event Infrastructure para gerao de eventos para o monitoramento e gerenciamento de aplicativos em execuo no WebSphere Process Server. Os servios de suporte fornecem o objeto de negcios e a estrutura de transformao fundamentais para o WebSphere Process Server. Os componentes de servio representam os componentes funcionais requeridos por aplicativos compostos.

Chapter 4. Viso geral da famlia WebSphere para SOA

33

A combinao de uma fundao poderosa (o WebSphere Application Server e o Ncleo SOA) e os componentes de servio do WebSphere Process Server permitem um rpido desenvolvimento e implementao de aplicativos compostos sofisticados que so executados no WebSphere Process Server.

Figure 4-1 Componentes do WebSphere Process Server

Service Component Architecture A Service Component Architecture apresenta todos os elementos das transaes comerciais - acesso a servios da Web, recursos de servios do EIS (Enterprise Information System), regras de negcios, fluxos de trabalho, bancos de dados e outros de uma maneira orientada a servios. A Service Component Architecture separa a lgica de negcios da implementao, de forma que voc possa se concentrar na montagem de um aplicativo integrado sem conhecer detalhes da implementao. A implementao de processos de negcios est contida em componentes de servio. Os componentes de servio podem ser montados graficamente nas ferramentas do IBM WebSphere Integration Developer e a implementao pode ser includa posteriormente. O modelo de programao Service Component Architecture restringe o que os desenvolvedores devem saber sobre Java e J2EE ou sobre outra implementao em cenrios especficos para um conjunto principal de conceitos de linguagem que so familiares a todos os que desenvolvem aplicativos de negcios em outras linguagens de programao atualmente. Isto permite aos desenvolvedores integrar tecnologias rpida e facilmente. Os desenvolvedores que comutam de ambientes clssicos de desenvolvimento de aplicativos deparam-se com uma curva de aprendizado muito menor; eles podem tornar-se rapidamente produtivos com esse modelo de programao. O modelo de programao Service Component Architecture tambm ajuda os desenvolvedores experientes do J2EE a se tornarem mais produtivos. A Service Component Architecture suporta vrios tipos padro de implementao de servio: Objetos Java, que implementam uma classe Java. Assim como na linguagem de programao Java, as instncias de componentes Java em tempo de execuo so referidas como objetos Java. Componentes de processos de negcios, que implementam um processo de negcios. A linguagem da implementao a BPEL (Business Process Execution Language) e suas extenses IBM.

34

WebSphere Message Broker 6.0 - Treinamento Bsico

Componentes de tarefas humanas, que representam e implementam uma tarefa geralmente desempenhada por uma pessoa em um processo de negcios ou em um aplicativo de integrao. Componentes de mquina de estado de negcios, que so utilizados quando os aplicativos funcionam com artefatos que tm um conjunto de estados. Uma mquina de estado define o que os artefatos podem fazer em um determinado momento. Componentes de regras de negcios, que determinam o resultado de um processo de negcios com base em um contexto e podem ser designados como regras if-then, tabelas de deciso ou rvores de deciso. As regras de negcios em um processo de negcios permitem que aplicativos respondam rapidamente para alterar condies de negcios. As regras so independentes do processo de negcios em si e voc pode alter-las a qualquer momento, sem precisar refazer o processo. Os qualificadores de servio controlam a interao entre um cliente de servio e um servio no ambiente de tempo de execuo do WebSphere Process Server.Os qualificadores de servio so qualidade de especificaes de servio que definem um conjunto de caractersticas de comunicao requerido por um aplicativo para prioridade de transmisso, nvel de confiabilidade de rota, gerenciamento de transaes e nvel de segurana. Um aplicativo comunica suas necessidades de qualidade de servio para um ambiente de tempo de execuo, especificando qualificadores de servio. Os qualificadores de qualidade de servio podem ser especificados ao ligar componentes no editor de montagem no WebSphere Integration Developer. Essas especificaes, durante a execuo no WebSphere Process Server, determinam como os clientes interagem com os componentes de destino. Dependendo dos qualificadores especificados, o tempo de execuo pode fornecer processamento adicional necessrio. As solues do WebSphere Process Server contam com os recursos subjacentes do WebSphere Application Server para transao, segurana e gerenciamento de carga de trabalho, para fornecer um ambiente de integrao escalvel. Para processos de negcios, o WebSphere Process Server oferece suporte para transaes que envolvem vrios gerenciadores de recursos que utilizam o processo de confirmao de duas fases para assegurar propriedades ACID (Atomic, Consistent, Isolated e Durable). Esse recurso est disponvel para fluxos de execuo curta (transao nica) e fluxos de execuo longa (vrias transaes). Voc pode agrupar vrias etapas em um processo de negcios em uma s transao, modificando os limites de transao no WebSphere Integration Developer. Como nem todas as invocaes de servio suportam transaes de confirmao de duas fases, o WebSphere Process Server tambm inclui recursos de recuperao. Se ocorrer uma falha no meio da execuo de um aplicativo de integrao, o servidor a detectar e permitir que um administrador gerencie o evento com falha a partir do gerenciador de eventos com falha. Servios de Suporte Os servios de suporte do IBM WebSphere Process Server abordam vrias contestaes de transformao para conexo de componentes e artefatos externos. Voc pode utilizar fluxos de mediao, mapas de interface, mapas de objetos de negcios, relacionamentos e seletores para integrar aplicativos em execuo no IBM WebSphere Process Server. Fluxos de Mediao

Chapter 4. Viso geral da famlia WebSphere para SOA

35

Os fluxos de mediao interceptam e modificam mensagens que so transmitidas entre servios existentes (provedores) e clientes (solicitantes) que desejam utilizar tais servios. Um fluxo de mediao media ou interpe-se entre uma exportao e uma importao para fornecer funes como registro de mensagens, transformao e roteamento de dados. Os fluxos de mediao so criados no IBM WebSphere Integration Developer e implementados como parte do mdulo de mediao no WebSphere Process Server. Mapas de Interface Os mapas de interface reconciliam as diferenas entre componentes que possuem diferentes interfaces. Os mapas de interface so componentes de servio de suporte presentes no IBM WebSphere Process Server que solucionam e reconciliam diferenas entre interfaces de outros componentes SCA (Service Component Architecture) para permitir que se comuniquem. O mapa de interface captura um padro de primeira classe que permite que os designers de mdulos do IBM WebSphere Integration Developer reconciliem diferenas entre diversas interfaces utilizando transformaes e outras operaes rudimentares. Os mapas de interface so implementados no WebSphere Process Server como parte dos mdulos, tambm chamados mdulos SCA. Mapas de Objetos de Negcios Os mapas de objetos de negcios suportam mapeamentos entre os objetos de negcios de origem e de destino. Os mapas de objetos de negcios so componentes de servio de suporte do IBM WebSphere Process Server que atribuem valores para os componentes de servio dos objetos de negcios de destino com base nos valores dos componentes de servio dos objetos de negcios de origem. Desenvolvedores criam os mapas de objetos de negcios no IBM WebSphere Integration Developer. Relacionamentos Relacionamentos so servios de suporte em aplicativos do WebSphere Process Server que estabelecem uma associao entre dados de dois ou mais tipos. No IBM WebSphere Process Server, o gerenciador de relacionamentos uma ferramenta para a manipulao manual de dados de relacionamento para corrigir erros localizados no gerenciamento de relacionamentos automatizados ou fornecer informaes de relacionamento mais completas. Em particular, ele fornece um recurso para recuperar, bem como modificar dados de instncia de relacionamento. O gerenciador de relacionamentos permite que voc configure, consulte, visualize e desempenhe operaes em dados de tempo de execuo de relacionamentos, incluindo participantes e seus dados. Voc cria definies de relacionamento com designer de relacionamentos. No tempo de execuo, as instncias dos relacionamentos so alimentadas com os dados que associam informaes de diferentes aplicativos. Seletores Os seletores fornecem flexibilidade em pontos do processamento de componentes em um aplicativo em execuo no IBM WebSphere Process Server. Os seletores so servios de suporte que fornecem flexibilidade em pontos do processamento de componentes de servio durante o tempo de execuo. Um seletor capta 36
WebSphere Message Broker 6.0 - Treinamento Bsico

uma chamada e permite que diferentes destinos sejam chamados com base nos critrios de seleo. Os seletores incluem flexibilidade adicional alm das regras de negcios. As regras de negcios so uma parte fundamental dos negcios. As regras de negcios conduzem o processamento geral de um aplicativo, chamando determinados servios para obter dados por meio do aplicativo. Por exemplo, uma regra pode ser: duas semanas antes de iniciar o perodo escolar, oferecer um preo especial de volta s aulas na propaganda relacionada escola. Um seletor capta a chamada e permite que diferentes destinos sejam chamados com base nos critrios de seleo. Por exemplo, se o tempo for imediatamente antes do incio do perodo escolar, a oferta anterior de volta s aulas ser chamada. No entanto, se a estao for imediatamente aps o trmino do perodo escolar, uma oferta "deixe seus filhos prontos para as frias" ser chamada. O aplicativo transportvel porque chama a mesma coisa todo o tempo. A regra de negcios nunca alterada. O processamento real difere (e chama os diferentes componentes de servio) por causa do seletor. Componentes de Servio Todos os artefatos de integrao em execuo no IBM WebSphere Process Server (por exemplo, processos de negcios, regras de negcios e tarefas humanas) so representados como componentes com interfaces bem definidas. Na SCA (Service Component Architecture), um componente de servio define uma implementao de servio. Como todos os artefatos de integrao so representados como componentes de servio, tambm chamados de componentes SCA, o IBM WebSphere Process Server cria um ambiente com flexibilidade incomparvel. Os componentes da SCA possuem uma interface cada um e podem ser fisicamente conectados para formar um mdulo implementado no WebSphere Process Server. Isto permite alterar qualquer parte de um aplicativo sem afetar as outras partes. Por exemplo, possvel substituir uma tarefa humana para uma aprovao com uma regra de negcios para aprovao automtica, simplesmente substituindo os componentes no diagrama de montagem sem alterar um processo de negcios ou o responsvel pela chamada do processo de negcios. Os componentes podem interagir com aplicativos existentes, utilizando os seguintes constructos de programao: Java Beans Java Beans Corporativos Servios da Web Mensagens JMS Alm disso, os componentes podem interagir com outros aplicativos em EIS (Enterprise Information Systems) com IBM WebSphere Adapters, verso 6.0 e WebSphere Business Integration Adapters, com base no WebSphere Business Integration Framework, verso 2.6. Acima dos servios de suporte da infra-estrutura de tempo de execuo e do ncleo da arquitetura orientada a servios, o WebSphere Process Server oferece uma variedade de componentes de servio da SCA prontos para uso, que podem ser utilizados em aplicativos de integrao. Processos de Negcios Processos de negcios so componentes de servio que fornecem os meios primrios atravs dos quais os servios corporativos so integrados.

Chapter 4. Viso geral da famlia WebSphere para SOA

37

Um processo de negcios qualquer sistema ou procedimento que uma organizao utiliza para atingir uma maior meta de negcio. Decompondo-o, possvel ver que um processo de negcios consiste de fato em uma srie de tarefas individuais, e que cada tarefa executada em uma ordem especfica. Como parte integrante dos aplicativos em execuo no IBM WebSphere Process Server, os processos de negcios oferecem os meios primrios atravs dos quais os servios corporativos so integrados. Os componentes do processo de negcios implementam um mecanismo Web Services BPEL (Business Process Execution Language) totalmente suportado. O WebSphere Process Server inclui um mecanismo de coreografia de processo de negcios alm do WebSphere Application Server. Voc pode desenvolver e implementar processos de negcios complexos em um modelo de desenvolvimento simples com suporte sofisticado para processos de negcios de execuo curta e longa em uma infra-estrutura altamente escalvel. Voc pode criar modelos BPEL no WebSphere Integration Developer, verso 6.0, ou import-los de um modelo de negcio criado no WebSphere Business Modeler, verso 6.0. O Web Services BPEL (Business Process Execution Language) utilizado para coreografar o fluxo dos processos de negcios. Os servios de integrao de processos de negcios so construdos sobre o BPEL4WS verso 1.1 e incluem os principais recursos da especificao do futuro WS-BPEL verso 2.0. Tarefas humanas As tarefas humanas so componentes de servio independentes que podem ser utilizados para designar trabalho a funcionrios ou para chamar outros servios. O Human Task Manager, disponvel no IBM WebSphere Process Server, suporta a criao e rastreio ad-hoc de tarefas. Os diretrios LDAP existentes (bem como os repositrios do sistema operacional e o registro do usurio do WebSphere) podem ser utilizados para acessar informaes sobre grupos e usurios. O WebSphere Process Server suporta escalao de vrios nveis para tarefas humanas, incluindo notificao por e-mail. Tambm inclui um cliente Web para gerenciar tarefas humanas e um conjunto de componentes JSF (Java Server Faces), que pode ser utilizado para criar clientes customizados ou para incorporar a funcionalidade das tarefas humanas em outros aplicativos da Web. Servios de tarefas humanas permitem designao, chamada e escalao de tarefas baseadas em funes. Mquinas de Estado de Negcios As mquinas de estado de negcios so componentes de servio que especificam as seqncias de estados, respostas e aes que um objeto ou uma interao percorrem durante sua vida, em resposta a eventos. Uma mquina de estado de negcios fornece uma outra maneira de modelar um processo de negcios. Isto d a voc a oportunidade de representar processos de negcios com base em estados e eventos, em vez de um modelo de processo de negcios seqencial. Regras de Negcios As regras de negcios so componentes de servio que declaram as polticas ou condies que devem ser satisfeitas em seu negcio. As regras de negcios tornam os processos de negcios mais flexveis. Como as regras de negcios determinam o resultado de um processo com base em um contexto, utilizar regras de negcios em um processo de negcios permite que aplicativos respondam rapidamente para alterar condies de negcios.

38

WebSphere Message Broker 6.0 - Treinamento Bsico

A autoria da regra de negcios suportada com o IBM WebSphere Integration Developer. O IBM WebSphere Process Server inclui o gerenciador de regras de negcios, uma ferramenta de tempo de execuo baseada na Web para que os analistas de negcios atualizem as regras de negcios conforme a necessidade do negcio, sem afetar outros componentes ou servios da SCA (Service Component Architecture).

4.1.3 Organizational Productivity, Portals and Collaboration


Portals
WebSphere Portal
O WebSphere Portal consiste em um middleware, aplicativos (chamados portlets) e ferramentas de desenvolvimento para construir e gerenciar portais protegidos B2B (business-to- business), B2C (business-to-consumer) e B2E (business-to-employee). Um portal um site na Web que fornece aos usurios finais um ponto nico de acesso a recursos baseados na Web agregando esses recursos em um local e exigindo que os usurios efetuem login somente ao prprio portal e no a cada portlet utilizado por eles. O WebSphere Portal pode entregar contedo da Web para dispositivos ativados por WAP e telefones, bem como para vrios navegadores da Web. O administrador pode personalizar o WebSphere Portal para atender s necessidades da organizao, seus usurios e grupos de usurios. Pode-se adaptar a aparncia e o comportamento do portal para se ajustar aos padres da organizao e para personalizar o contedo da pgina para usurios e grupos de acordo com as regras de negcios e os perfis dos usurios. Os usurios finais, tais como parceiros de negcio, clientes ou funcionrios, podem personalizar mais ainda suas prprias visualizaes do portal. Os usurios finais podem adicionar portlets a pginas e organiz-los como quiserem e controlar os esquemas de cores dos portlets. Agregando portlets em um local e fornecendo aos usurios finais o poder de personalizar seus prprios desktops, o WebSphere Portal proporciona aos usurios finais um meio de realizar negcios eficientemente e com grande satisfao. Os portlets so centrais para o WebSphere Portal. Como servlets JAVA reutilizveis especiais que aparecem como regies definidas em pginas do portal, os portlets fornecem acesso a muitos aplicativos, servios e contedo da Web diferentes. WebSphere Portal envia um importante conjunto de portlets padro, incluindo portlets para exibio de contedo sindicalizado, transformao de XML e acesso a mecanismos de pesquisa e pginas da Web. Tambm esto includos portlets para acessar o Lotus Notes, o Microsoft Exchange e os sistemas de mensagens instantneas. Os vrios portlets de terceiros tambm esto disponveis. Exemplos incluem portlets ERP (Enterprise Resource Planning) e CRM (Customer Relationship Management). WebSphere Portal tambm possui APIs que os desenvolvedores de portlets podem utilizar para criar portlets personalizados.

WebSphere Portlet Factory


Para conseguir o mximo de uma implementao de Portal, as empresas devem construir seus portais com views e portlets (pginas customizadas) que agregam dados, contedo e processos de aplicaes existentes. Normalmente a maioria dos portlets precisam ser customizadas para atender a singularidade de cada companhia como requisitos de apresentao, estruturas organizacionais, processos de negcio, etc. O WebSphere Portlet Factory acelera o desenvolvimento de portlets para o WebSphere Portal com ferramentas e tecnologias para fcil criao, customizao, implementao e manuteno de portlets. Os portlets criados no WebSphere Portlet Factory so aplicaes J2EE dinmicas e robustas que reagem automaticamente a alteraes e podem ser modificadas em real-time.

Chapter 4. Viso geral da famlia WebSphere para SOA

39

40

WebSphere Message Broker 6.0 - Treinamento Bsico

Chapter 5.

WebSphere MQ
Este captulo prov uma viso geral da ferramenta WebSphere MQ.

Copyright Intvision Solutions 2007. All rights reserved.

5.1 Conceitos de mensageria


Um grande nmero de diferentes tecnologias podem existir numa infra-estrutura de TI. Muitas vezes estes possuem diferentes plataformas de hardware, linguagens de programao, sistemas operacionais e links de comunicao. Servios so construdos nesta infra-estrutura e podem ser internos ou fornecidos por outros fornecedores ou clientes.

5.1.1 Middleware
As aplicaes desenvolvidas para prover e requisitar servios precisam comunicar-se com os servios existentes. A tecnologia de Middleware prov uma camada de abstrao entre os componentes de infra-estrutura e aplicaes que acessam estes componentes. Assim o middleware se torna parte da infra-estrutura do sistema: uma ponte em comum que liga os servios. A camada de middleware pode simplificar o desenvolvimento e manuteno das aplicaes provedoras ou requisitantes de servios fazendo com que elas se concentrem na lgica de negcio imposta pelo servio, ao invs de se preocuparem com as complexidades de acesso aos servios existentes. A mensageria uma tecnologia de middleware que simplifica muito a comunicao entre os ns do sistema permitindo uma forma flexvel que no necessita de um conhecimento detalhado do servio destino ou da disponibilidade deste. Uma comunicao confivel pode ser alcanada independentemente da complexidade da infra-estrutura que conecta os ns do sistema. Esta tecnologia baseia-se em dois conceitos principais: mensagens e filas.

5.1.2 Mensagens
Uma mensagem pode conter caracteres simples, dados numricos, dados binrios complexos, um comando, ou at uma mistura de todos esses. importante que a aplicao destino entenda o formato da mensagem. Porm, a infra-estrutura de mensageria que conecta os ns no necessita deste mesmo entendimento. Ao invs disto, a infra-estrutura deve garantir a integridade da informao contida na mensagem e que a mensagem seja entregue corretamente ao seu destino. A infra-estrutura de mensageria entende as diferenas de hardware e software abaixo dele em cada n onde este est sendo executado. Algumas vezes necessrio algum tipo de converso de codepage ou dados numricos para que os dados sejam inteligveis nestas diferentes plataformas de hardware e software. A infra-estrutura de mensageria pode realizar a converso transparente para que a mensagem continue vlida ao chegar no seu destino.

5.1.3 Filas
As filas so os repositrios das mensagens. As novas mensagens so postadas no final da fila e so lidas normalmente pelo seu incio. Tambm possvel que as mensagens sejam lidas atravs de identificadores associados estas mensagens. Da mesma forma possvel que mensagens com prioridade maior seja liga antes das mensagens de menor prioridade. Quando existem dependncia entre as mensagens, estas podem ser agrupadas.

42

WebSphere Message Broker 6.0 - Treinamento Bsico

No entanto as filas no so desenhadas para serem banco de dados de informao. Elas so otimizadas de forma a conter um pequeno nmero de mensagens que fluem at chegar no seu destino. As vantagens do servio de mensageria incluem: Prover um buffer entre produtor e consumidor: um servio que recebe, consume e processa as mensagen podem no conseguir processar todas as mensagens que chegam, j que este pode estar ocupado ou at indisponvel por algum perodo. Outro caso quando as mensagens no chegam em taxa constante e assim a demanda pelo servio pode temporariamente exceder a sua capacidade. A isto se d o nome de comunicao assncrona, ou seja, o produtor no necessita esperar que o consumidor esteja disponvel ou que complete o processamento antes de continuar. Processamento em batch: Um servio pode no querer processar cada mensagem que chegue numa fila. Ao invs disso, este servio pode esperar por um certo patamar de mensagens para process-las de uma s vez. Esta funcionalidade pode ser utilizada para que o processamento seja feito quando outros sistemas e servios estejam inativos, por exemplo de madrugada. Prover um buffer intermedirio entre os ns do sistema: uma mensagem pode percorrer por diversos sistemas at chegar no seu destino. Os links de rede entre estes ns nem sempre esto disponveis. Colocando-se filas entre os ns do sistema, as mensagens podem esperar em qualquer ponto do sistema at que o link de rede volte a funcionar. Neste momento as mensagens voltaro a fluir automaticamente.

Chapter 5. WebSphere MQ

43

5.2 Objetos do WebSphere MQ


Os objetos MQ so definidos e configurados dentro de uma queue manager (apresentado na seo a seguir: Queue Manager). Cada objeto possui seu tipo, nome e alguns atributos que configuram este objeto. Alguns objetos so criados automaticamente quando a queue manager criada. Estes objetos, chamados de objetos de sistema, possuem nomes que iniciam-se com SYSTEM para distingu-los de objetos criados pelo usurio.

5.2.1 Queue Manager


A queue manager um elemento core da infra-estrutura WebSphere MQ. Todas as aplicaes que necessitam acessar esta infra-estrutura devem se conectar queue manager. Assim como necessria uma conexo com um database manager (eg. Oracle) para acessar as tabelas, as aplicaes acessam as filas por meio de uma conexo com uma queue manager.

Nomenclatura de Queue Manager


Cada queue manager possui um nome e este nome deve ser nico dentro da infra-estrutura WebSphere MQ, no intuito de que este seja um destino nico. O nome da queue manager utilizado no momento da conexo a ele e quando se especifica o local da fila dentro da infra-estrutura. Escolher um nome correto para a queue manager importante. O nome pode refletir o uso dessa queue manager, alm do nome da mquina e sua localizao. Recomenda-se que voc considere o crescimento da sua infra-estrutura (ex: adio de queue manager na mesma mquina; fuso de mltiplas infra-estruturas WebSphere MQ) na nomenclatura das queue managers. Importante: Depois que uma Queue Manager criada, seu nome no pode ser alterado. Se isto for necessrio, ser preciso apag-lo e recri-lo. Em todas as plataformas, com exceo do z/OS, o nome da queue manager deve ter no mximo 48 caracteres. O nome case-sensitive.

5.2.2 Fila
o repositrios de mensagens e pode ser um dos seguintes tipos: Fila local (local queue): o nico tipo que pode guardar mensagens dentro da queue manager. Fila remota (remote queue): uma representao de uma fila de outra queue manager. Fila de transmisso (transmission queue): filas intermedirias entre queue managers. um tipo especial de fila local. Fila de apelido (alias queue): simplemente aponta para outra fila qualquer dentro do escopo da queue manager. Fila de comando (command queue): fila que recebe mensagens de administrao da queue manager.

44

WebSphere Message Broker 6.0 - Treinamento Bsico

Fila modelo (model queue): fila com atributos para criao de filas dinmicas. Fila de eventos (event queue): fila que recebe eventos da queue manager. Fila de mensagens perdidas (dead letter queue): fila onde ficam as mensagens que no puderam chegar ao seu destino.

Resoluo de fila
Para que a Queue Manager saiba como rotear as mensagem para a fila correta ela analisa dois atributos do cabealho MQ da mensagem enviada: o nome da fila e o nome da queue manager. A partir de ento, a queue manager toma as seguintes medidas, chamada de resoluo de fila: Caso a fila destino seja local, ento a mensagem enviada diretamente para esta fila. Caso seja verificado que a fila de outra queue manager, esta mensagem enviada para uma fila de transmisso para ser enviada a esta queue manager. Neste caso, quando a mensagem chegar queue manager remota ser necessrio realizar o mesmo processo de resoluo de fila. Por isso, quando a mensagem enviada para a fila de transmisso, esta ter um cabealho de fila de transmisso com as informaes de resoluo.

Figure 5-1 Resoluo de filas

Fila local (Local Queue)


Como a fila local o nico tipo que pode possuir mensagens. Um exemplo simples de utilizao deste tipo de fila quando diversas aplicaes locais se comunicam assincronamente. Para que uma mensagem seja postada numa fila local, o seu cabealho deve ser configurado da seguinte forma:
Chapter 5. WebSphere MQ

45

Nome da fila: nome da fila local Nome da queue manager: em branco ou o nome da queue manager local.

Fila remota (Remote Queue)


As filas remotas so utilizadas para definir rotas entre outras queue managers. Normalmente utilizada como definio local de uma fila remota. Isto faz com que a aplicao no precise indicar explicitamente qual queue manager destino. Desta forma no necessrio que a aplicao tenha que ser alterada numa eventual troca de queue manager. Para se criar uma definio local de uma fila remota preciso: O nome remoto (obrigatrio): o nome da fila na queue manager remota. O nome da queue manager remota (obrigatrio): o nome da queue manager remota. Fila de transmisso (opcional): Caso esteja em branco, ser considerada a fila de transmisso com o mesmo nome da queue manager remota.

Fila de transmisso (Transmission Queue)


uma fila local com o atributo USAGE igual a XMITQ. Caso uma fila local seja designada como fila de transmisso, a aplicao no deve postar mensagens diretamente esta fila. A transmisso das mensagens de uma fila de transmisso realizada atravs de canais (apresentado posteriormente). Quando uma mensagem enviada com destino uma queue manager remota, esta mensagem enviada por default para a fila de transmisso de mesmo nome. Ou seja, caso uma mensagem postada para a queue manager QMGR1 tenha de ser enviada para a queue manager QMGR2, esta mensagem encaminhada para a fila de transmisso que possui o nome QMGR2 Best practice: A nomenclatura da fila de transmisso deve ser a mesma da queue manager remota.

Fila de apelido (Alias Queue)


uma referncia qualquer fila da queue manager local. Nota: possvel criar uma fila de apelido que aponte para outra fila de apelido, porm ocorrer um erro ao tentar utilizar esta fila.

Fila de inicializao (Init Queue)


onde so enviadas as mensagens de trigger. Estas mensagens contm informaes necessrias para responder ao evento de triggger: Nome da fila: nome da fila na qual foi gerado o evento Detalhes da aplicao a ser executada: detalhes de como executar a aplicao Trigger data: so dados customizados do atributo TRIGDATA. Qualquer fila local pode ser designada como fila de inicializao. Uma das utilidades da fila de inicializao a capacidade de inicializar um canal MQ no momento de um evento (ex: quando uma fila atinge determinada profundidade).

46

WebSphere Message Broker 6.0 - Treinamento Bsico

Fila de comandos (Command Queue)


a fila SYSTEM.ADMIN.COMMAND.QUEUE onde so enviadas mensagens PCF (programmable command formats) para a queue manager. Estas mensagens possuem comandos administrativos (ex.: manipulao de filas, subida/parada de canais,etc) que so interpretados pelo command server da queue manager. A interface com o command server provida por um modelo request/reply, ou seja, a aplicao envia as mensagens PCF e diz para qual fila o command server deve devolver a resposta com o status do comando. O SupportPac MS0B apresenta a API Java para utilizao da interface PCF. Procure no seguite site para detalhes:
http://www.ibm.com/support/docview.wss?rs=171&uid=swg24000668&loc=en_US&cs=utf-8&lang=en

Nota: O MQ Explorer utiliza-se desta fila para enviar os comandos administrativos de sua interface grfica. As respostas destes comandos so ento enviadas para filas dinmicas criadas pelo prprio MQ Explorer.

Fila modelo (Model Queue)


So filas com atributos para criao de filas dinmicas. Fazendo-se uma analogia com a programao orientada a objetos, as filas modelo so como classes e as filas dinmicas so como suas instncias. O seu uso comum em mensageria request/reply para que a aplicao tenha filas de resposta individuais.

Fila dinmica (Dynamic Queue)


Simplesmente indicando o nome da fila modelo passado numa chamada MQOPEN possvel criar uma fila local dinmica. O nome desta fila criada dinamicamente pela Queue Manager de forma a ser nica. Depois que esta fila criada, ela pode ser acessada da mesma maneira que uma fila local.

Fila de eventos (Event Queue)


Utilizado para receber mensagens de eventos da Queue Manager. Existem trs tipos de filas eventos: SYSTEM.ADMIN.QMGR.EVENTS - para eventos de Queue Manager SYSTEM.ADMIN.CHANNEL.EVENTS - para eventos dos canais da Queue Manager SYSTEM.ADMIN.PERFM.EVENTS - para eventos de performance de filas

Fila de mensagens perdidas (Dead Letter Queue)


Fila local para mensagens que no puderam ser entregues ao seu destino pelas seguintes razes: A resoluo de fila no foi bem-sucedida. A fila destino atingiu o nmero mximo de mensagens A fila destino no permite postagem (put disabled) As mensagens que caem na DLQ adquirem um cabealho DLQ, que indica qual foi o motivo do erro encontrado.

Chapter 5. WebSphere MQ

47

Quando uma Queue Manager criada, automaticamente cria-se a fila SYSTEM.DEAD.LETTER.QUEUE que ser a DLQ default. Best practice: Crie uma fila local customizada com tamanho suficiente para evitar a perda de mensagens. Logo aps configure-a como DLQ de sua Queue Manager dentro do MQ Explorer: Clique sobre uma queue manager iniciada com o boto direito e Properties Extended Dead Letter Queue. Preencha com o nome da fila criada.

Atributos de filas:
Em seguida apresentaremos os atributos que as filas podem ter dependendo de seu tipo. A tabela abaixo ilustra os atributos e seus possveis valores. Alm disso a tabela contm o nome do atributo utilizado na interface WebSphere MQ Script (MQSC). Por ltimo apresentado em que tipos de fila tal atributo utilizado. Por simplicidade no ser mostrado o tipo de fila modelo, j que este possui os mesmos atributos da fila local.
Table 5-1 Atributos de determinados tipos de fila, seus possveis valores e respectivos nomes MQSC Atributo Tipo de definio Valores PREDEFINED PERMDYN TEMPDYN ENABLED DISABLED ENABLED DISABLED Inteiro > 0 Inteiro > 0 NORMAL XMITQ Inteiro de 0 a 9 YES NO EXCL SHARED NORMAL HIGH PRIORITY FIFO SHARE NOSHARE String TRIGGER NOTRIGGER Atributo MQSC DEFTYPE Tipos de fila Local

Get habilitado Put habilitado Tamanho mximo da fila Tamanho mximo de mensagem para a fila Indicador de uso da fila Prioridade default Persistncia default Habilidade de PUT simultneo Classe de mensagens no-persistentes Sequencia de entrega Habilidade de GET simultneo Processo relacionado trigger Trigger habilitado

GET PUT MAXDEPTH MAXMSGL USAGE DEFPRTY DEFPSIST DEFPSOPT NPMCLASS MSGDLVSQ SHARE NOSHARE PROCESS TRIGGER NOTRIGGER

Local Alias Todos Local Local Local Todos Todos Local Local Local Local Local Local

48

WebSphere Message Broker 6.0 - Treinamento Bsico

Atributo Tipo de trigger

Valores FIRST EVERY DEPTH NONE string inteiro > 0

Atributo MQSC TRIGTYPE

Tipos de fila Local

Dados para o trigger Profundidade de ativao da trigger

TRIGDATA TRIGDEPTH

Local Local

Para conhecer os demais atributos veja o seguinte site: http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzaj.doc/sc 11240_.htm

5.2.3 Canais
Todas as comunicaes de rede no WebSphere MQ so feitas atravs de um canal. Quando um canal cria uma conexo entre duas Queue Managers chamada de message channel e quando uma conexo entre uma aplicao cliente com uma Queue Manager chamada de client channel.

Message Channel Agents (MCA)


Todos os canais possuem dois Message Channel Agents (MCA) que so complementares e so dos seguintes tipos: Caller MCA: o MCA que abre uma fila de transmisso particular e transmite suas mensagens exclusivamente, ou seja, no possvel que dois canais sejam configurados para transmitir mensagens de uma mesma fila de transmisso. Nota: Isto no vlido para canais Cluster, j que estes utilizam uma mesma fila de transmisso. Os canais Cluster no sero apresentados neste treinamento. Responder MCA: o MCA que recebe as mensagens de um Caller MCA. Para cada mensagem, este MCA remove o cabealho de transmisso, faz a resoluo de fila e envia para a fila correta.

Channel Object
So objetos da Queue Manager que configuram um MCA. Alm disso possui atributos que definem como a comunicao ser realizada, por exemplo, pode ser especificado o uso da autenticao Secure Sockets Layer (SSL)

Message Channels
Para que duas Queue Managers possam se comunicar por Message Channels, as seguintes medidas devem ser tomadas: 1. Os channels objects complementares devem possuir o mesmo nome, ou seja, se o channel object da Queue Manager QMGR1 se chama QMGR1.TO.QMGR2, o channel object da Queue Manager QMGR2 tambm dever se chamar QMGR1.TO.QMGR2. 2. Os channel objects complementares devem possuir o mesmo protocolo, por exemplo TCP/IP

Chapter 5. WebSphere MQ

49

3. Os channel objects complementares devem possuir o mesmo nmero de sequncia de mensagem esperada A figura a seguir ilustra uma configurao tpica com duas message channels:

Figure 5-2 Configurao tpica de message channel

Os tipos de message channels possveis sero apresentados a seguir.

Canal Sender/Receiver
Este canal s pode ser iniciado pelo lado Sender. Mltiplos channel object Sender podem ser definidos em diferentes Queue Managers utilizando o mesmo channel object Receiver de uma Queue Manager. Suponhamos que um channel object Sender criado numa Queue Manager A e um channel object Receiver criado numa Queue Manager B. Os passos de comunicao so: 1. O channel object Sender inicia o canal solicitando que o canal Receiver inicie 2. O MCA do Sender envia as mensagens da filas de transmisso da Queue Manager A 3. O MCA do Receiver faz a resoluo de fila e envia a mensagem para a fila correspondente.

Canal Requester/Server
Este canal pode ser iniciado pelo lado Requester, mas opcionalmente pode ser iniciado pelo lado Server se este tiver o endereo do lado Requester. Esta forma de canal no garante que o Requester est num determinado endereo. Da mesma forma que no canal Sender/Receiver, mltiplos channel object Requester de diferentes Queue Managers podem conectar-se a um channel object Server. Contudo apenas um canal Requester/Server deve estar ativo por vez.

50

WebSphere Message Broker 6.0 - Treinamento Bsico

Suponhamos que um channel object Server criado numa Queue Manager A e um channel object Requester criado numa Queue Manager B. Os passos de comunicao so: 1. O channel object Requester inicia o canal solicitando que o channel object Server inicie. 2. O MCA do Server envia as mensagens da filas de transmisso da Queue Manager A 3. O MCA do canal Requester faz a resoluo de fila e envia a mensagem para a fila correspondente.

Canal Requester/Sender
Esta forma de canal similar ao canal requester/sender com o Server configurado com o endereo do Requester. Suponhamos que um channel object Sender criado numa Queue Manager A e um channel object Requester criado numa Queue Manager B. Os passos de comunicao so: 1. O channel object Requester inicia o canal solicitando que o channel object Server inicie. 2. O canal desconectado e reiniciado pelo Sender. 3. O MCA do Sender envia as mensagens da filas de transmisso da Queue Manager A 4. O MCA do canal Requester faz a resoluo de fila e envia a mensagem para a fila correspondente.

Canal Server/Receiver
Este tipo de canal funcionalmente equivalente ao canal Sender/Receiver.

Tratamento de falhas de entrega


A Figura 5-3 na pgina 52 abaixo mostra o que ocorre quando o Responder MCA no consegue entregar a mensagem para a fila destino:

Chapter 5. WebSphere MQ

51

Figure 5-3 O que ocorre quando uma mensagem no pode ser entregue

Se um Responder MCA no consegue entregar a mensagem para a fila destino os seguintes passos podem ser tomados: 1. Como algumas falhas podem ser transitrias por natureza, como uma fila que atingiu se nmero mximo de mensagens, a ao de postagem pode ser tentada novamente. O nmero de vezes de tentativas e o delay entre elas so configuradas no channel object desta MCA. 2. Caso atinja-se o nmero mximo de tentativas ou ocorra algum outro tipo de erro, o MCA pode retornar a mensagem para o remetente. Neste caso necessrio configurar algumas opes de postagem assim como setar as propriedadesReplyToQ e ReplyToQmgr. 3. Caso no seja possvel entregar nem devolver a mensagem, ela enviada para a fila DLQ. 4. Se a fila DLQ no estiver disponvel, ento a mensagem no retirada da fila de transmisso e o canal pra.

Client Channel
Os Client Channels permitem que as aplicaes remotas possam se conectar queue manager. Quando uma aplicao conecta numa queue manager atravs de uma API, ela invoca um MCA provido pela API cliente. Este MCA cria a comunicao com a queue manager por um Client Channel atravs do Listener provido pela queue manager. Do lado da queue manager, um channel object Server Connection iniciado pela queue manager.

52

WebSphere Message Broker 6.0 - Treinamento Bsico

Outra forma de se realizar um Client Connection atravs de um channel object Client Connection em que pode-se incluir atributos avanados como a configurao de um SSL.

5.2.4 Mensagem
As mensagens enviadas pela infra-estrutura WebSphere MQ podem conter dados de qualquer forma. No intuito de ser possvel o processamento de cada mensagem so necessrias informaes a respeito da mensagem, como por exemplo se a mensagem necessita de uma resposta. Estas informaes esto descritas no cabealho MQMD (MQ Message Descriptor). Neste cabealho encontram-se entre outras informaes: O ID da mensagem, que nica. O tipo da mensagem, para determinar se uma resposta necessria. Detalhes de onde enviar qualquer resposta para a mensagem. O tempo de expirao. Informaes de como a mensagem foi construda, quando e por quem. Informaes sobre a representao dos dados no corpo da mensagem.

Persistncia de mensagens
A mensagem persistente aquela que pode ser recuperada mesmo aps uma parada abrupta da queue manager. Isto possvel pois ela persistida localmente e um registro de log (apresentado na seo seguinte) criado na queue manager. Normalmente a mensagem persistente usada nos negcios crticos, porm devido prpria persistncia ela menos performtica. Em contraste a este tipo de mensagem, a mensagem no-persistente no gravada localmente nem logada e portanto mais rpida. Uma fila pode conter ambos os tipos de mensagens, porm na ocasio de uma parada abrupta da queue manager, apenas as mensagens persistentes sobrevivero. Nota: Para que as mensagens persistentes sobrevivam uma parada normal necessrio que o atributo NPMCLASS seja configurado como HIGH. Caso contrrio, todas as mensagens no-persistentes sero apagadas no reincio da queue manager.

Logging
O logging uma funo fundamental realizada por uma queue manager. Este log um registro das aes sucessivas feitas na queue manager. Todas as aes feitas com mensagens persistentes so logadas, assim como as mudanas nas configuraes de objetos da queue manager e outras aes internas. O mtodo que a queue manager utiliza para escrever o log assegura que as aes no ocorram enquanto os logs no forem garantidamente escritos. Os dados de log so mantidos separados dos dados da queue manager. Nos dados da queue manager so mantidos os status atuais de todos os objetos e mensagens guardadas nas filas.

Chapter 5. WebSphere MQ

53

Quando a queue manager termina abruptamente, por exemplo, numa falha de mquina, os dados da queue manager estaro num estado inconsistente. Nestas circunstncias, a queue manager utiliza o log para reconstruir o estado atual correto dos objetos durante o reincio da queue manager. Regularmente a queue manger faz com que os dados de log sejam consistentes com os dados da queue manager. Este processo chamado de check point e ocorre automaticamente enquanto a queue manager est em execuo e quando ela termina. Assim, quando uma queue manager termina normalmente significa que existiro um mnimo nmero de logs a serem lidos.

Syncpoint
O syncpoint o ponto de incio de uma transao no WebSphere MQ. A transao s pode ser iniciada no momento de um PUT ou GET de mensagens. As mensagens que foram postadas ou lidas de determinadas filas desde o syncpoint ficam invisveis para outras aplicaes at que seja dado um commit ou backout da transao. Nota: No WebSphere MQ utilizado a termologia unit of work para denotar uma transao, ou seja, um agrupamento de aes que podem ser consolidados ou desfeitos. Pode-se habilitar ou desabilitar a transao atravs de uma opo SYNCPOINT ou NO-SYNCPOINT no momento do PUT ou GET. Mensagens com syncpoint so mais lentas pois so gravadas em disco.

Expirao
Se uma aplicao implementa o timeout, este deve especificar o tempo de expirao no cabealho MQMD. Este intervalo dado em dcimos de segundos e reduzido enquanto a mensagem trafega dentro da infra-estrutura MQ at ser lido pela aplicao. A aplicao pode receber uma notificao de expirao indicando que a mensagem foi descartada. Nota: O WebSphere MQ no discarta a mensagem imediatamente aps o tempo de expirao. Ao invs disto, a mensagem continua na fila at que a aplicao tente l-la. A notificao de expirao ocorrer somente neste momento. No WebSphere MQ V6.0, uma verificao peridica feita em todas as filas da queue manager para que as mensagens expiradas sejam removidas automaticamente. Isto est habilitado por default.

5.3 A interface de comandos WebSphere MQ Script (MQSC)


A interface de comandos MQSC utilizada para administrar objetos WebSphere MQ. Uma linha de comando possui a seguinte sintaxe: COMANDO TIPO_OBJETO(nome_objeto) +

54

WebSphere Message Broker 6.0 - Treinamento Bsico

ATRIBUTO_1(valor) + ... ATRIBUTO_n(valor) A linha de comando pode ficar numa nica linha separado por espaos, porm quando o comando for separado por ENTER, ser necessrio acrescer o smbolo + no final da linha. Atributos: Quando um atributo for string, o seu valor deve estar entre aspas simples Quando um atributo tiver um domnio(eg.: ENABLED/DISABLED, YES/NO), o seu valor no dever possuir aspas. Quando um atributo for numrico, o seu valor no dever possuir aspas.

Seguem alguns exemplos abaixo: Definindo uma fila local: DEFINE QLOCAL(INTVISION.FILA1) DESCR(Primeira fila da Intvision) Sobrescrevendo uma fila existente com a palavra-chave REPLACE: DEFINE QLOCAL(INTVISION.FILA1) DESCR(Nova fila da Intvision) REPLACE Mostrando todos os atributos das filas locais que tm o nome iniciado por INTVISION: DISPLAY QLOCAL(INTVISION*) ALL Mostrando apenas os atributos: quantidade de mensagens na fila (CURRDEPTH) e a descrio da fila (DESCR) para todas as filas locais: DISPLAY QLOCAL(*) CURRDEPTH DESCR Idem ao tem anterior, porm mostrando somente as filas que comeam com INTVISION e com mais de 10 mensagens: DISPLAY QLOCAL(INTVISION*) CURRDEPTH DESCR WHERE(CURRDEPTH GT 10)

Chapter 5. WebSphere MQ

55

56

WebSphere Message Broker 6.0 - Treinamento Bsico

Chapter 6.

Trabalhando com WebSphere MQ


Neste captulo vamos lidar com a criao, iniciao e administrao de Queue Managers. Aprenderemos a utilizar tanto o WebSphere MQ Explorer quanto os controles de linha de comando e o WebSphere MQ Script (MQSC).

Copyright Intvision Solutions 2007. All rights reserved.

6.1 Ferramentas de administrao


O WebSphere MQ possui 3 tipos de ferramentas de administrao: 1. Linha de comando: so comandos que no mudam de nomenclatura entre as plataformas e possuem as seguintes finalidades: a. Comandos de Queue Manager (strmqm.exe, endmqm.exe, crtmqm.exe e dltmqm.exe): start, end, create e delete respectivamente. b. Comandos run (runXXX.exe): iniciam canais, listeners, trigger monitors, etc. c. Comandos display (dspXXX.exe): mostram informaes como verso do MQ, status de inicializao de queue managers, etc. Nota: Estes comandos se encontram na pasta /bin dentro do diretrio de instalao do WebSphere MQ. Aps a instalao do WebSphere MQ a varivel de ambiente $PATH atualizada com este diretrio. 2. MQ Script Command (MQSC): So comandos utilizados para administrar os objetos de uma Queue Manager. Para utiliz-lo digite na linha de comando: runmqsc.exe <nome da queue manager> 3. MQ Explorer: uma ferramenta grfica baseado-se na plataforma Eclipse, onde possvel realizar a maioria das tarefas realizadas por linha de comando ou pelo MQSC.

6.2 Privilgios de acesso


Para que seja possvel manipular os objetos pelas ferramentas de administrao necessrio que seu usurio possua os seguintes privilgios: No Windows: deve ser membro dos grupos Administradores e mqm. No UNIX e Linux: deve ser membro do grupo mqm.

6.3 Cenrio do Laboratrio


Neste laboratrio faremos a criao dos objetos MQ bsicos e faremos a comunicao entre duas Queue Managers criando e configurando os objetos adicionais necessrios. O cenrio de implementao apresentado na Figura 6-1 na pgina 59.

58

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 6-1 Cenrio de implementao do laboratrio WebSphere MQ

6.4 Criao de objetos


6.4.1 Preparao da Queue Manager QMGR1
Para o preparo desta Queue Manager utilizaremos os recursos do MQ Explorer.

Criao da Queue Manager


1. Clique com o boto direito sobre a pasta Queue Managers e New Queue Manager 2. Digite QMGR1 como nome da Queue Manager

Figure 6-2 Criao de Queue Manager pelo MQ Explorer

3. Clique em Next
Chapter 6. Trabalhando com WebSphere MQ

59

4. Em seguida sero apresentados as configuraes de Logging do MQ. Vamos deixar com as configuraes default. Clique em Next

Figure 6-3 Passo 2 de criao da Queue Manager

5. Agora ser apresentado como a Queue Manager ser iniciado. Selecione tambm a opo Create server-connection channel, que habilitar um canal para que uma aplicao cliente remota consiga conectar na Queue Manager. Clique em Next

Figure 6-4 Passo 3 da criao da Queue Manager

60

WebSphere Message Broker 6.0 - Treinamento Bsico

6. No passo seguinte remova a seleo para a opo Create listener configured for TCP/IP, pois criaremos um Listener na seo seguinte.

Figure 6-5 Passo 4 da criao da Queue Manager

7. O ltimo passo configura o MQ Explorer para a Queue Manager criada. Clique em Finish

Figure 6-6 Passo 5 da criao da Queue Manager

Criao de Filas locais


A Queue Manager QMGR1 aparecer como um tem no MQ Explorer. A partir de ento ser possvel criar as filas. 1. Na Queue Manager criada, d um clique direito sobre Queues e faa New Local Queue

Chapter 6. Trabalhando com WebSphere MQ

61

Figure 6-7 Criando uma fila local pelo MQ Explorer

2. Preencha com o nome EXERCICIO1.IN e Finish 3. Crie mais uma fila local com o nome EXERCICIO1.OUT

Testanto as filas criadas


1. Clique sobre a fila criada com o boto direito e selecione Put Test Message.

Figure 6-8 Testando a fila com o MQ Explorer

2. Digite uma mensagem qualquer. 3. Faa um refresh da pgina a partir do cone superior direito indicado naFigura 6-9. Verifique que a profundidade da fila aumentou.

Figure 6-9 Indicao dos atributos das filas no MQ Explorer

62

WebSphere Message Broker 6.0 - Treinamento Bsico

6.4.2 Preparao da Queue Manager QMGR2


Criao da Queue Manager
Para o preparo desta Queue Manager utilizaremos a linha de comando e a interface MQSC. 1. Na linha de comando digite crtmqm QMGR2 O resultado deste comando ser:
WebSphere MQ queue manager created. Creating or replacing default objects for QMGR2. Default objects statistics : 43 created. 0 replaced. 0 failed. Completing setup. Setup completed.

2. Digite strmqm QMGR2 para inici-lo.

Criao de Filas locais


A queue manager QMGR2 aparecer com o seu status de inicializao atravs do comando dspmq.

Figure 6-10 Verificao dos status das Queue Managers

A partir de ento ser possvel criar as filas. Isto possvel atravs da interface MQSC pelo comando: runmqsc QMGR2 A seguinte tela ser apresentada:

Figure 6-11 Acesso interface MQSC

1. Copie os comandos abaixo:


********************************* * DEFINIO DE FILAS ********************************* DEFINE QLOCAL('EXERCICIO2.IN') DEFINE QLOCAL('EXERCICIO2.OUT') END

Testanto as filas criadas


1. Na linha de comando digite: amqsput EXERCICIO2.IN QMGR2
Chapter 6. Trabalhando com WebSphere MQ

63

2. Digite quantas mensagens quiser separados por ENTER. Para sair deixe uma linha em branco e pressione ENTER. 3. Para verificar o nmero de mensagens na fila, volte para a interface MQSC e digite o seguinte comando: DISPLAY QLOCAL(EXERCICIO2.IN) CURDEPTH

6.4.3 Comunicao entre Queue Managers


A troca de mensagens entre Queue Managers feita atravs de canais. No entanto, os canais necessitam de pontos de conexo nas respectivas Queue Managers, pois estes so inicialmente isolados. Estes pontos de conexes so as portas TCP, NetBIOS, SPX, etc. Os pontos de conexo so chamados de Listener na Queue Manager. Neste treinamento criaremos um listener TCP em cada queue manager utilizando as duas formas de criao: pela linha de comando e pelo MQ Explorer.

Criao da Fila de Transmisso na QMGR1


Vamos criar uma fila de transmisso das mensagens que iro para a Queue Manager QMGR2: 1. Siga os passos da criao de uma fila local pelo MQ Explorer e digite o nome da fila conforme abaixo:

Figure 6-12 Criao de uma fila de transmisso pelo MQ Explorer

2. Em seguida altere a propriedade Usage para Transmission

64

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 6-13 Configurando a fila para ser uma fila de transmisso

3. Clique em Finish

Criao da Fila de Transmisso na QMGR2


1. Entre na interface MQSC (runmqsc QMGR2) 2. Digite o comando abaixo:
********************************* * CRIAO DA FILA DE TRANSMISSO ********************************* DEFINE QLOCAL(QMGR1) USAGE(XMITQ) END

Criao de Listener na QMGR1


Vamos criar o listener TCP com a porta 1414 atravs do MQ Explorer. 1. Na Queue Manager criada, v em Advanced Listeners New TCP Listener

Chapter 6. Trabalhando com WebSphere MQ

65

Figure 6-14 Criando um listener pelo MQ Explorer

2. Configure a propriedade Control como Queue Manager e digite a porta 1414 e clique em Finish.

Figure 6-15 Configurao do novo listener

3. Clique com o boto direito sobre o listener criado e clique em Start

Criao de Listener na QMGR2


Vamos criar o listener TCP com a porta1415 atravs do MQSC. 1. Entre na interface MQSC (runmqsc QMGR2) 2. Copie os comandos abaixo.
********************************* * DEFINIO DO LISTENER ********************************* DEFINE LISTENER('QMGR2_LISTENER') + TRPTYPE(TCP) + PORT(1415) + CONTROL(QMGR) *********************************

66

WebSphere Message Broker 6.0 - Treinamento Bsico

* INICIALIZAO DO LISTENER ********************************* START LISTENER('QMGR2_LISTENER') END

Criao dos canais na QMGR1


1. Na QMGR1, v em Advanced Channels New Sender Channel

Figure 6-16 Criao de canais no MQ Explorer

2. Digite as informaes abaixo:

Figure 6-17 Configuraes de Sender Channel para QMGR1

3. Em seguida crie um Receiver Channel:

Chapter 6. Trabalhando com WebSphere MQ

67

Figure 6-18 Configuraes de Receiver Channel para QMGR1

Criao dos canais na QMGR2


1. Entre na interface MQSC (runmqsc QMGR2) 2. Digite os seguintes comandos:
********************************* * CRIAO DO CANAL SENDER ********************************* DEFINE CHANNEL(QMGR2.QMGR1) + CHLTYPE(SDR) + CONNAME('localhost(1414)') + XMITQ('QMGR1') ********************************* * CRIAO DO CANAL RECEIVER ********************************* DEFINE CHANNEL(QMGR1.QMGR2) + CHLTYPE(RCVR)

Inicializao do canal na QMGR1


1. D um clique direito sobre o canal Sender criado e selecione Start

Figure 6-19 Inicializao do canal Sender na Queue Manager

68

WebSphere Message Broker 6.0 - Treinamento Bsico

Inicializao do canal na QMGR2


1. Entre na interface MQSC (runmqsc QMGR2) 2. Digite o comando abaixo:
********************************* * INICIALIZAO DO CANAL SENDER ********************************* START CHANNEL(QMGR2.QMGR1) END

Chapter 6. Trabalhando com WebSphere MQ

69

70

WebSphere Message Broker 6.0 - Treinamento Bsico

Chapter 7.

WebSphere Message Broker


Este captulo prov uma viso macro do Websphere Message Broker e seu papel na integrao de sistemas. As suas funcionalidades principais e os seus componentes sero descritos.

Copyright Intvision Solutions2007. All rights reserved.

7.1 Websphere Message Broker na integrao de sistemas


A integrao de sistemas um grande desafio nas grandes empresas. A IBM prov inmeras solues e oferecimentos para auxiliar as empresas a integrar seus sistemas. O Websphere Message Broker uma importante parte dos oferecimentos da IBM. Numa viso de alto nvel a integrao de sistemas refere-se solues de integrao de sistemas de dentro ou fora da empresa. Historicamente, a integrao de sistema tem se preocupado com a integrao de sistemas legado como os de diferentes departamentos e divises da compania, ou de novas aquisies. Dentro da organizao, estes sistemas variam consideravelmente pelos departamentos, existem em diferentes plataformas, so escritas em diferentes linguagens de programao e usam diferentes estruturas de dados. Assim sendo, integrar sistemas uma soluo mais prtica e barata do que re-escrever as aplicaes existentes. O Websphere Message Broker usado na implementao da integrao de sistemas pois este prov mecanismos de conexo, roteamento e transformao de dados de negcio ,originrios de uma variedade de protocolos de transporte, sem necessitar nenhuma alterao na aplicaes geradoras ou consumidoras dos dados. O Websphere Message Broker tambm possui as seguintes funcionalidades-chave que o torna uma valiosa soluo de integrao: Distribui qualquer tipo de informao entre diversos sistemas e aplicaes, provendo a informao correta no formato correto e no momento correto. Reduz o nmero de conexes ponto-a-ponto e simplifica a programao removendo a lgica de integrao das aplicaes. Roteia a informao em tempo real baseado em tpico e contedo para qualquer destino utilizando um poderoso engine publish/subscribe Valida e transforma mensagens em diferentes formatos de mensagens, incluindo Web Services e outros formatos XML e no-XML. Roteia mensagens baseado em contedo Aumenta a agilidade nos negcios reconfigurando dinamicamente os padres de distribuio de informaes sem a reprogramao das aplicaes-destino. Controle de acesso para entrega segura de informaes para o local correto no momento correto.

7.2 Websphere Message Broker


Em termos prticos o WebSphere Message Broker um mediador que realiza transformao de mensagem e roteia para diferentes participantes de diferentes destinos baseado em regras definidas pelo usurio. Assim, diversas aplicaes podem trocar informaes de diferentes formas com o broker lidando com o processamento da informao que deve chegar ao lugar certo e no formato certo. Diferentemente de um servidor de processos, o WebSphere Message Broker no um bom lugar para armazenar estados de processos long-running ou coreografar diversos processos de negcio. Na verdade o WebSphere Message Broker prov uma camada de conectividade para os executores do processos que coreografam o fluxo de atividades entre servios. de responsabilidade do WebSphere Message Broker entregar as requisies de servio, re-rotear ou transform-lo se necessrio.

72

WebSphere Message Broker V6.0 - Treinamento Bsico

De forma semelhante, o WebSphere Message Broker tambm no um lugar indicado para implementar lgicas de negcio. No uma boa idia encapsular uma lgica de negcio dentro de message flows. Enquanto o WebSphere Message Broker possui a habilidade de rotear e transformar a mensagem baseada em regras de negcio e valores, a lgica de negcio complexa deve ser colocada num servidor de aplicaes como o WebSphere Application Server. Uma das foras do WebSphere Message Broker sua poderosa capacidade de parsear diferentes formatos de mensagens vindos de diferentes canais e protocolos, manipulando a mensagem, e serializando a mensagem em diversos tipos de mensagem fsica e protocolos. O WebSphere Message Broker flexvel suficiente para: Suportar diversos paradigmas de mensageria como o comportamento sncrono ou assncrono Suportar diferentes padres de interaes como fire-and-forget, request-reply, publish-subscribe e capacidade de agregao.

7.2.1 Edies de Websphere Message Broker


Existem trs edies do produto Websphere Message Broker que so descritas abaixo:

Websphere Event Broker


O Websphere Event Broker usado para distribuio e roteamento de mensagens de diferentes aplicaes. Ele pode distribuir informaes e dados, que so geradas por eventos de negcio em real-time para pessoas, aplicaes e dispositivos pela empresa. O Websphere Event Broker tem suporte para mltiplos protocolos de transporte e estende a informao alm do ponto-a-ponto, utilizando mecanismos de distribuio flexveis como o publish/subscribe e multicast.

Websphere Message Broker


O Websphere Message Broker contm todas as funcionalidades do Websphere Event Broker e estende-o para incluir funcionalidades adicionais que habilitam armazenamento, transformao e complementao de dados que trafegam pelo broker.

Rules and Formatter Extension


Websphere Message Broker with Rules and Formatter Extension prov Rules and Formatter nodes e elementos runtime associados. Isso suporta as funcionalidades das verses antigas do Websphere MQ Integrator. Esta funcionalidade no ser tratada no treinamento.

7.2.2 Funcionalidades do Websphere Message Broker


Roteamento de mensagem
Prov a conectividade para aplicaes e servios tanto standard-based como non-standard-based. O roteamento pode ser ponto-a-ponto ou baseado no filtragem do contedo da mensagem. O Websphere Message Broker contm uma gama de transportes que fazem com que os negcios sejam seguros e conduzidos qualquer hora e lugar, provendo integrao usando tecnologias mvel, de telemetria e de Internet. O Websphere Message Broker construdo sobre o WebSphere MQ e desta maneira suporta os mesmos transportes. No entanto, ele tambm estende as funcionalidades do WebSphere MQ adicionando o suporte a outros protocolos, incluindo Internet e Intranet em tempo-real e destinos multicast.
Chapter 7. WebSphere Message Broker

73

Neste mbito o Websphere Message Broker suporta os seguintes transportes: WebSphere MQ Enterprise Transport WebSphere MQ Web Services Transport WebSphere MQ Real-time Transport WebSphere MQ Multicast Transport WebSphere MQ Mobile Transport WebSphere MQ Telemetry Transport WebSphere Broker JMS Transport Alm destes transportes fornecidos, os usurios podem definir e criar seus prprios input nodes que aceitem mensagens de outros transportes e formatos.

Transformao e enriquecimento de mensagem


A transformao e enriquecimento uma importante capacidade do Websphere Message Broker e possibilita a integrao de negcios sem a necessidade de lgica adicional nas aplicaes a serem integradas. As mensagens podem ser transformadas entre aplicao para usar diferentes formatos. Por exemplo, transformando um formato personalizado de uma sistema legado para um XML que pode ser utilizado com um Web Service. Este mecanismo poderoso na unificao da empresa na medida em que a informao pode ser distribuda para sistemas que esperam formatos de dados completamente diferentes sem que haja a necessidade de reprogramao nos sistemas de origem ou destino. As mensagens podem ser enriquecidas pela integrao com mltiplas fontes de dados como banco de dados, aplicaes e arquivos. Isto permite qualquer manipulao de dados como logging ou merging. Manipulaes complexas dos dados da mensagem podem ser realizadas utilizando ESQL ou Java. No Websphere Message Broker, a transformao e alterao da mensagem depende do entendimento da estrutura e contedo da mensagem de entrada. Mensagens auto-definidas como XML contm informaes sobre sua estrutura e formato. Entretanto para uso de outros tipos de mensagem personalizada necessrio que a definio de mensagem esteja presente. O Message Broker Toolkit auxilia na definio destas mensagens para o message broker.

Publish/Subscribe
A maneira mais simples de rotear um mensagem utilizando a mensageria ponto-a-ponto para enviar mensagens diretamente de uma aplicao outra. A arquitetura publish/subscribe prov uma outra forma de mensageria na qual a mensagem enviada para todas as aplicaes que assinam um tpico particular. O broker lida com a distribuio das mensagens entre as aplicaes publicadoras e aplicaes assinantes. Quanto mais aplicaes publicam ou assinam em muitos tpicos, mas mecanismos sofisticados de filtragem podem ser aplicados.

7.2.3 Componentes do Websphere Message Broker


O Websphere Message Broker consiste em duas partes principais: um ambiente de desenvolvimento para a criao de message flows, message sets, e outros artefatos; um

74

WebSphere Message Broker V6.0 - Treinamento Bsico

ambiente runtime que contm componentes para execuo desses message flows criados no ambiente de desenvolvimento.

Ambiente de desenvolvimento
O ambiente de desenvolvimento onde so criados os message flows que contm a fluxo com a lgica ser executada. O Broker utiliza esta lgica para processar as mensagens em runtime. Message Flows Os message flows so fluxos onde os nodes so conectados, cada um deles provendo alguma lgica bsica. A combinao de vrios nodes utilizada para conseguir manipulaes complexas da mensagem. Uma sorte de mtodos esto disponveis para definir a lgica do fluxo de mensagem. Dependendo do tipo de dados ou dos skills do desenvolvedor, existem as seguintes opes: Extended Structured Query Language (ESQL) Java eXtensible Style Sheet Language for Transformations (XSLT) Mapeamento Drag-and-drop Os nodes definem o protocolo de transporte para as aplicaes de origem e de destino. Message Sets Um message set a definio da estrutura da mensagem que ser processada por um message flow no broker. Como mencionado anteriormente, para que um message flow seja capaz de transformar a mensagem, o broker precisa conhecer a estrutura da mensagem. A definio da mensagem pode ser usada para verificar a estrutura da mensagem em runtime e/ou ajudar na construo dos message flows e mapeamentos no Message Broker Toolkit. Os message sets so compilados so chamados de message dictionary.

Ambiente Runtime
O ambiente runtime um conjunto de componentes requeridos para deploy e execuo de message flows. Broker O Broker onde se armazena e se executa um message flow. O Broker usa o WebSphere MQ como transporte para comunicar-se com outros Brokers e tambm com o Configuration Manager, de onde este recebe as informaes de configurao. Cada Broker possui um banco de dados onde armazenado todas as configuraes deste, incluindo os message flows e message sets. Execution groups parte componente de um Broker (descrito acima) para possibilitar que message flows sejam agrupados por interesse. Um Broker pode possui n execution groups. Os execution groups so processos de sistema operacional separados (possuem pid program ids - distintos) e, portanto o contedo do execution group permanecem separados dentro de um mesmo Broker. Isto til para isolar message flows. O deploy de um message flow feito num execution group especfica. Configuration Manager

Chapter 7. WebSphere Message Broker

75

O Configuration Manager faz a interface entre o Message Broker Toolkit e os Brokers. O Configuration Manager armazena as configuraes dos Brokers num repositrio interno, provendo assim um controle central das configuraes dos Brokers associados. O Configuration Manager responsvel por fazer o deploy dos message flows nos Brokers. Ele tambm reporta o andamento do deploy e os status do ambiente dos Brokers como por exemplo se um determinado message flow est parado ou no. Broker Domain Os Brokers so agrupados em Broker Domains. Os Brokers de um determinado Broker Domain compartilham uma configurao em comum que definido no Configuration Manager. Um Broker Domain pode conter tambm um User Name Server. Os componentes de um Broker Domain podem existir em mltiplas mquinas e sistemas operacionais, e so conectadas via WebSphere MQ. Um Broker pertence a apenas um Broker Domain. User Name Server O User Name Server um componente opcional que requerido apenas quando message flows com publish/subscribe esto em execuo, ou quando uma segurana extra requerida para que aplicaes consigam publicar ou assinar tpicos. O User Name Server prov autenticao por tpicos para usurios e grupos que fazem operaes publish/subscribe.

Figure 7-1 Arquitetura dos componentes runtime

76

WebSphere Message Broker V6.0 - Treinamento Bsico

7.3 WebSphere Message Broker como ESB


A arquitetura SOA define um approach para reutilizao e extenso de recursos de maneira flexvel. Isto feito separando-se a interface do servio da sua implementao. Cada aplicao que contm uma lgica de negcio exporta como servio. Por exemplo, o servio de criao de conta de cliente poderia ser uma transao CICS, enquanto que uma chamada de saldo de cliente servida por uma aplicao J2EE rodando num WebSphere Application server. Criando-se uma interface padro para estas aplicaes, suas lgicas de negcio ficam disponveis para reutilizao para muito processos de negcio. Possibilitar que aplicaes conversem numa mesma linguagem no fcil. Aplicaes antigas podem utilizar tecnologias que so completamente diferentes das atuais. Um ESB permite virtualizao e gerenciamento de interaes de servios entre os participantes da comunicao. Ele no s ajuda na camada de conectividade entre provedor e consumidor de servio, mas tambm auxilia na traduo de tipos de mensagem. Um ESB pode localizar os provedores de servio e rotear a requisio para o servio mais adequado, eliminando a necessidade do consumidor saber onde o provedor est. O WebSphere Message Broker prov as capacidades de um Exposed ESB Gateway, incluindo: Virtualizao de servio Suporte e converso de protocolos de transporte Modelagem e transformao de mensagem Roteamento dinmico de mensagem Suporte mediao personalizada Suporte padres de interao como: request-reply, publish-subscribe, aggregation. Integrao com outros enterprise information systems (EIS) Suporte a Quality of Service (QoS). Acesso ao registro de servios. Facilidade de administrao

7.3.1 Virtualizao de servio


A virtualizao de servio um atributo core de um ESB. O requisitante do servio no necessita se preocupar com qual linguagem de programao o servio foi criado, sua plataforma de execuo, seu endereo de rede, seu protocolo de comunicao ou mesmo quando o provedor de servio est disponvel. O requisitante s tem a responsabilidade de conectar ao bus e colocar a requisio. O WebSphere Message Broker utiliza message flow que aceitam requisies de diferentes formatos, protocolos e canais de comunicao. Ele pode determinar qual o destino para a requisio, converter a requisio se necessrio e envi-lo para o provedor do servio. O provedor de servio aceita a requisio do WebSphere Message Broker na sua forma nativa e reponde de volta ao bus, que por sua vez resposta requisio inicial. O provedor de servio portanto no necessita saber qual o formato da mensagem do requisitante.

Chapter 7. WebSphere Message Broker

77

7.3.2 Suporte e converso de protocolo de transporte


O uso de um ESB elimina a necessidade do provedor e consumidor de servios usarem o mesmo protocolo. O WebSphere Message Broker suporte uma gama de protocolos tantos de entrada como de sada para estender o alcance e escopo at dispositivos mveis e dispositivos de telemetria como sensores e atuadores. Os transportes suportados pelo WebSphere Message Broker incluem: WebSphere MQ Enterprise Transport Utilizado para conectar aplicaes WebSphere MQ que conectam no WebSphere Message Broker. Os Nodes deste protocolo so: MQInput Node MQOutput Node MQReply Node MQGet Node Publication Node

Figure 7-2 Paletas com Nodes MQ no WebSphere Message Broker Toolkit 6.0.2

WebSphere MQ Mobile Transport Utilizado exclusivamente pelos clientes do WebSphere MQ Everyplace. Desta forma os dispositivos mveis como handhelds podem enviar mensagens para o bus. Os nodes deste protocolo so: MQeInput Node MQeOutput Node

Figure 7-3 Paletas com Nodes MQe no WebSphere Message Broker Toolkit 6.0.2

WebSphere MQ Multicast Transport utilizado predominantemente no modelo publish/subscribe. Os nodes que do suporte a este protocolo so: Real-timeInput Node Real-timeOptimizedFlow Node

78

WebSphere Message Broker V6.0 - Treinamento Bsico

Publication Node

Figure 7-4 Paletas com Nodes Multicast no WebSphere Message Broker Toolkit 6.0.2

WebSphere MQ Real-time Transport Este um protocolo leve otimizado para uso com mensagens no persistentes. Ele usado exclusivamente por clientes JMS e so obtidos grandes nveis de escalabilidade e throughput de mensagem. Os nodes que suportam este protocolo so: Real-timeInput Node Real-timeOptimizedFlow Node Publication Node

Figure 7-5 Paletas com Nodes Real-time no WebSphere Message Broker Toolkit 6.0.2

WebSphere MQ Telemetry Transport Este utilizado em aplicaes especiais em dispositivos que utilizam poucos recursos e requerem pouca banda de rede, tipicamente para aquisio de dados e controle de processos de produo. Os nodes que suportam este protocolo so: SCADAInput Node SCADAOutput Node Publication Node

Figure 7-6 Paletas com Nodes de telemetria no WebSphere Message Broker Toolkit 6.0.2

WebSphere MQ Web services Transport Este protocolo utiliza o protocolo HTTP sobre TCP/IP. O protocolo HTTP o mais comum na Internet e Intranet j que seus pacotes normalmente no so bloqueados por muitos firewalls. Os nodes que suportam este protocolo so: HTTPInput Node HTTPReply Node
Chapter 7. WebSphere Message Broker

79

HTTPRequest Node

Figure 7-7 Paletas com Nodes HTTP no WebSphere Message Broker Toolkit 6.0.2

Nota: Caso haja um message flow com HTTPInput Node em execuo num Broker runtime, ser iniciado o processo biphttplistener que receber as requisies HTTP de entrada. A porta default deste listener o 7080 para HTTP e 7083 para HTTPS. WebSphere Broker JMS Transport utilizado para enviar/receber mensagens JMS que seguem a especificao 1.1 do JMS. Provendo interoperabilidade com as implementaes JMS de diversos fornecedores, o WebSphere Message Broker pode atuar como ponte entre as combinaes de JMS Providers. Os nodes que suportam este protocolo so: JMSInput Node JMSOutput Node

Figure 7-8 Paletas com Nodes JMS no WebSphere Message Broker Toolkit 6.0.2

O JMSInput Node permite que uma mensagem JMS seja recebida de um ponto JMS e as mensagens JMS so enviadas para outro ponto JMS por um JMSOutput Node. Estes pontos so acessveis atravs de uma conexo com um JMS Provider. Quando uma

80

WebSphere Message Broker V6.0 - Treinamento Bsico

mensagem JMS chega, o JMSInput Node criar a estrutura de mensagem mostrada na Figura 7-9. .

Figure 7-9 Representao da rvore lgica de mensagem JMS

Os nodes JMSMQTransform e MQJMSTransform so nodes que fazem a ponte de transformao entre os protocolos JMS e WebSphere MQ. Na prtica estes nodes fazem um mapeamento de cabealhos necessrios para cada tipo de transporte.

Figure 7-10 Mapeamento entre mensagem JMS e mensagem MQ

O WebSphere Message Broker pode tambm suportar como entrada/sada: Arquivos do filesystem Arquivos VSAM Arquivos QSAM
Chapter 7. WebSphere Message Broker

81

CICS EXCl TCP/IP Socket FTP Protocolos de telemetria baseados no SCADA. O WebSphere Message Broker tambm suportam WBI Adapters que fornecem outros tipos de protocolos de transporte.

7.3.3 Modelagem de mensagem e transformao


A maioria dos negcios globais recaem sobre a troca de informaes entre aplicaes. A informao fica contida em mensagem que possuem uma estrutura definida que conhecida e estabelecida entre remetente e destinatrio. As aplicaes tipicamente usam uma combinao de mensagems, incluindo algumas definidas com as seguintes estruturas ou padres: Estruturas de dados C e COBOL Padres industriais como SWIFT e EDIFACT DTD ou Schema XML Voc pode modelar uma grande variedade de formatos de mensagem que so entendidas pelos message flows do WebSphere Message Broker. Quando a modelagem da mensagem conhecida, o broker runtime pode parsear uma mensagem entrante (mensagem fsica) e convert-la para uma rvore de mensagem lgica. Assim, esta mensagem lgica manipulada e no final do seu processamento pelo message flow, o broker runtime a converte novamente para o formato fsico. Abaixo segue uma viso geral de como uma mensagem fsica parseada quando chega um Input Node:

Figure 7-11 Modelagem de mensagem e transformaao

O WebSphere Message Broker fornece uma gama de parsers para ler e escrever formatos de dados. Alguns formatos de dados como XML so auto-definidas e podem ser parseados para uma mensagem lgica sem uma referncia a um modelo de mensagem. No entanto a maioria dos formatos de mensagem no so auto-definidas. Por exemplo, a mensagem binria COBOL ou uma mensagem formatada em SWIFT no contm definies suficientes para que o parser entenda a mensagem. Desta forma, o parser necessita de um modelo que descreva como a mensagem deve ser parseada. 82
WebSphere Message Broker V6.0 - Treinamento Bsico

Para aumentar a produtividade de criao de modelos de mensagem, os importadores so fornecidos para transformar em modelos de mensagem as definies encontradas em: Arquivos de cabealho C (C Header) Arquivos copybook de COBOL XML Schema DTD Arquivos WSDL Alm disso, a IBM fornece modelo pr-construdos dos padres industriais como SWIFT, EDIFACT, X12, FIX, HL7, TLOG e outros.

Figure 7-12 Modelagem de mensageem no WebSphere Message Broker

A tabela seguinte mostra os parsers suportados pel WebSphere Message Broker:


Table 7-1 Tabela com parsers Parser MRM Uso Para modelar um grande alcance de mensagens incluindo XML, formatos binrios fixos, mensagens sequenciais. O MRM pode tambm ser utilizado para lidar com JMS byteMessage e textMessage que entram por um JMSInput Node. Para mensagens em conformidade com o padro XML do W3C, porm sem suporte a namespaces.

XML

Chapter 7. WebSphere Message Broker

83

Parser XMLNSC, XMLNS

Uso Para mensagens em conformidade com o padro XML do W3C, com suporte a namespaces Para mensagens produzidas pelo provider JMS do WebSphere MQ. O JMSInput Node formata o JMS MapMessage e StreamMessage para XML. Para mensagens no formato SAP iDoc. Para lidar com mensagens MIME como o SOAP com anexos ou RosettaNet Na realidade no um parser, j que mantm a mensagem na sua forma fsica (bit stream).

JMSMap ou JMSStream

IDOC MIME BLOB (Binary Large Object)

Nota 1: O BLOB ser o parser default, caso no seja associado nenhum ao Input Node.

Nota 2: No se esquea que cada parser tem a resposabilidade final de transformar a mensagem fsica em mensagem lgica (rvore lgica) e vice-versa. A mensagem lgica criada fica no domnio do seu parser at que isto seja alterado dentro do message flow. Por isso, muitas vezes dentro do contexto do WebSphere Message Broker, voc ouvir dizer em Message Domain, que a referncia para o parser da mensagem lgica. Uma vez que a mensagem de entrada construda como mensagem lgica, o WebSphere Message Broker possui diferentes formas de process-la:

Validate Node

Figure 7-13 Representao do Validate Node no Toolkit

utilizado para fazer a validao da mensagem entrante. Tambm utilizado quando mensagens de diversos formatos chegam a um message flow. O Validate Node verifica as propriedades: message domain, message set e message type da mensagem que chega ao seu terminal In. Ele pode ser configurado para verificar se o contedo da mensagem bate com estas propriedades.
Table 7-2 Propriedades do Validate Node Propriedade Check message domain Check message set Check message type Validate message body Domnio Todos Somente MRM e IDOC Somente MRM Somente MRM e IDOC

84

WebSphere Message Broker V6.0 - Treinamento Bsico

Compute Node

Figure 7-14 Representao do Compute Node no Toolkit

Utilizado para construi uma ou mais mensagens de sada. Ele utilizado criar uma mensagem totalmente nova com ou sem acesso a banco de dados, ou modificar a mensagem que passa por ele. As instrues de processamento da mensagem so feitas atravs da linguagem ESQL. O Extended Structured Query Language(ESQL) uma linguagem de programao que estende o Structured Query Language (SQL) que tem uso comum em banco de dados relacionais. Com o ESQL voc pode criar ou modificar tanto a mensagem de entrada quanto banco de dados externos atravs de expresses. As expresses podem conter operadores aritmticos, operadores de texto (eg.: concatenao), operadores lgicos e outras funes pr-definidas. Entre as utilizaes comuns do Compute Node esto: Construir uma nova mensagem usando alguns comandos de atribuio. Transformar uma mensagem de um formato para outro. Converter o codepage de uma mensagem texto para outra. Por exemplo, alterar um texto codificado em ASCII para EBCDIC. Criao de rotas dinmicas. Por exemplo, o Compute Node pode propagar a mensagem para um Label Node. Aggregao de informao com acesso a banco de dados. Abaixo segue um trecho de cdigo ESQL gerado para um Compute Node:

Chapter 7. WebSphere Message Broker

85

CREATE COMPUTE MODULE MessageFlowTeste_Compute CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN -- CALL CopyMessageHeaders(); -- CALL CopyEntireMessage(); RETURN TRUE; END; CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER; SET J = CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; CREATE PROCEDURE CopyEntireMessage() BEGIN SET OutputRoot = InputRoot; END; END MODULE; Figure 7-15 Cdigo ESQL default criado para um determinado Compute Node

Nota: O acesso a banco de dados deste node realizado atravs de conexo ODBC. A propriedade Data Source do Compute Node indica qual a conexo ODBC a ser utilizada.

Java Compute Node

Figure 7-16 Representao do Java Compute Node no Toolkit

O Java Compute Node um novo node muti-uso para programao. Ele baseado no Java 1.4.2 e suporta XPath 1.0 para navegar pelas mensagens. Nota: O suporte para o Java verso 5 est disponvel apenas a partir do fixpack 3 do Broker Runtime. At o lanamento deste treinamento, a verso 6.0.2 do Message Broker Toolkit possuia suporte apenas at a verso 1.4.2 do Java. O deploy de cdigos Java 1.5 possvel, porm utilizando-se a plataforma Eclipse a partir da verso 3.1 para o desenvolvimento. O deploy do arquivo .jar pode ser feito normalmente atravs do Message Broker Toolkit ou Configuration Manager Proxy. Porm, a no ser que haja grande necessidade, este suporte deve ser evitado. O Java Compute Node pode transformar a mensagem e rotear a mensagem para um dos seus terminais de sada. O suporte banco de dados fornecido de duas formas: Via JDBC type 4 (sem suporte a XA)

86

WebSphere Message Broker V6.0 - Treinamento Bsico

Via classe MbSQLStatement que utiliza a conexo ODBC com suporte transacional total. O cdigo Java associado a um Java Compute Node armazenado num Java Project no workspace do Message Broker Toolkit e pode ser aproveitado todas as funcionalidades do Java Development Toolkit (JDT) do Eclipse para o seu desenvolvimento. O suporte ao debug deste cdigo fornecido utilizando-se o Java debugger do Eclipse, que se conecta a JVM do execution group do Broker runtime. Abaixo segue um exemplo de cdigo Java associado um Java Compute Node:

import com.ibm.broker.javacompute.MbJavaComputeNode; import com.ibm.broker.plugin.*; public class SamplelNode extends MbJavaComputeNode { public void evaluate(MbMessageAssembly assembly) throws MbException { MbOutputTerminal out = getOutputTerminal("out"); MbOutputTerminal alt = getOutputTerminal("alternate"); MbMessage message = assembly.getMessage(); // ---------------------------------------------------------// Add user code below // End of user code // ---------------------------------------------------------// The following should only be changed // if not propagating message to the 'out' terminal out.propagate(assembly); } } Figure 7-17 Exemplo de cdigo de um Java Compute Node

Mapping Node

Figure 7-18 Representao do Mapping Node no Toolkit

A grande vantagem do Mapping Node em relao aos outros Nodes de transformao o mapeamento drag-and-drop que permite uma visualizao grfica da transformao da mensagem. O seu uso comum a realizao de mapeamentos de estruturas lgicas semelhantes. Para mapeamento de estruturas complexas utilize um Compute Node ou um Java Compute Node. Dentro de um Mapping Node possvel construir um ou mais mensagens e agreg-los com informaes de banco de dados ou da mensagem de entrada. Os mapeamentos so transformados em cdigo ESQL no momento do deploy. A atribuies feitas atravs do mapeamento drag-and-drop podem ser alteradas aplicando-se funes ESQL pr-definidas ou personalizadas e/ou funes do XPath 1.0. Por exemplo, voc pode converter o dado origem para caixa alta.

Chapter 7. WebSphere Message Broker

87

Figure 7-19 Editor de mapeamentos do Mapping Node

Na WebSphere Message Broker V6.0 possvel realizar o debug grfico passo-a-passo pelo Mapping Node atravs do Flow Debugger. Nota: O Mapping Node suporta apenas mensagens definidas em Message Sets e tabelas de banco de dados definidas em Database Schemas.

XML Transformation Node

Figure 7-20 Representao do XML Transformation Node no Toolkit

O XML Transformation Node utiliza o eXtensible Stylesheet Language for Transformations (XSLT) para transformar uma mensagem XML para outro formato (que pode ser ou no um XML) de acordo com as regras escritas num arquivo XSL.

Figure 7-21 Funcionamento do XML Transformation Node

O XML Transformation Node ser gerados como Java no momento do deploy. O WebSphere Message Broker V6 suporte stylesheets compilados, que aumentam a performance da transformao.

88

WebSphere Message Broker V6.0 - Treinamento Bsico

7.3.4 Roteamento dinmico


Numa arquitetura SOA um ESB deve ter a capacidade de decidir o destino de uma mensagem dinamicamente provendo assim uma transparncia na localizao dos servios. Com o WebSphere Message Broker o roteamento pode ser baseado no cabealho da mensagem (como MQMD ou MQRFH2) ou no seu contedo. Vale a pena mencionar que no WebSphere Message Broker V6 foram adicionados dois tipos de dados novos: ROW e SHARED. Eles so teis para a tomada de decises de roteamento a partir de tabelas de deciso. Normalmente a soluo indicada era salvar a tabela de deciso num banco de dados para que todos os message flows tivessem acesso. No entanto, uma melhor alternativa a varivel SHARED ROW. Com ele voc pode atribuir uma tabela de lookup em memria, que compartilhada para todas as instncias de message flows.

-- Uma varivel compartilhada que pode ser usada por todas as instncias do message flow declare CacheQueueTable SHARED ROW; -- Cdigo para atribuir ou excluir regras da varivel CacheQueueTable ...... -- Pega a informao de roteamento diretamente da memria SET OutputLocalEnvironment.Destination.MQDestinationList.DestinationData[] = ( SELECT S.QUEUE_MANAGER as queueManagerName, S.QUEUE_NAME as queueName FROM CacheQueueTable.DestinationData[] as S WHERE S.VARIABLE2 = Variable2 and S.VARIABLE3 = Variable3 ); Figure 7-22 Trecho de cdigo: usando uma varivel compartilhada

Filter Node

Figure 7-23 Representao do Filter Node no Toolkit

O Filter Node roteia a mensagem de acordo com expresses booleanas ESQL. Voc pode utilizar qualquer elemento da mensagem de entrada e acessar o banco de dados para montar a expresso e como resultado ter TRUE, FALSE ou UNKNOWN (no caso de a expresso no retornar nada).

Flow Order Node

Figure 7-24 Representao do Flow Order Node no Toolkit

O Flow Order Node controla a ordem de processamento de uma mensagem dentro do message flow. A mensagem de entrada propagada para fluxo ligado ao terminal First. Quando este fluxo termina o controle retornado para o Flow Order Node, que em seguida envia a mesma mensagem de entrada para o terminal Second.

Chapter 7. WebSphere Message Broker

89

Label Node e Route To Label Node

Figure 7-25 Representao do Label Node no Toolkit

Figure 7-26 Representao do Route To Label Node no Toolkit

Utilize um Route To Label Node para rotear a mensagem para um dos Label Nodes localizados dentro do message flow.

7.3.5 Estendendo as funcionalidades


O WebSphere Message Broker pode ser estendida de acordo com suas necessidades. Os support packs fornecidos pela IBM ou por terceiros podem auxili-lo na implementao dos message flows.

QSAM dataset adapter


Os nodes QSAM dataset adapter do SupportPac IA11 so utilizados para operar num QSAM( eg.: dataset sequencial de um mainframe).

Figure 7-27 Nodes relacionados com QSAM datasets

VSAM dataset adapter


Os nodes VSAM dataset adapter do SupportPac IA13 so utilizados para operar datasets VSAM de um mainframe.

Figure 7-28 Nodes relacionados com VSAM datasets

WebSphere Message Broker File Extender


Este prov um conjunto de nodes para o WebSphere Message Broker V6 para adicionar capacidades no domnio de arquivos fsico. Nota: Para mais informaes sobre o WebSphere Message Broker file Extender veja a pgina do produto: http://www-306.ibm.com/software/integration/wbimessagebroker/fileextender/v5/in dex.html

90

WebSphere Message Broker V6.0 - Treinamento Bsico

LDAP Plug-in
O SupportPac IA08 contm um node para acesso ao LDAP usando certos parmetros da mensagem.

Sendmail Plug-in
O SupportPac IA07 contm um node para construir um e-mail e envi-lo.

Customizao de Plug-in
O WebSphere Message Broker fornece APIs para permitir que o desenvolvimento de plug-ins para extenso de capacidades de mediao: API Java para criao de plug-in API C para criao de plug-in e parsers Nota: Para mais informaes sobre o desenvolvimento de plug-ins customizados procure o captulo Developing user-defined extensions no information center do WebSphere Message Broker.

7.3.6 Padres de interao


Quando dois ou mais sistemas interagem entre si, estes sempre recaem sobre os seguintes padres de interao: Interao de mo nica Requisio/Resposta Agregao Publish/Subscribe (pub/sub)

Interao de mo nica
O cenrio fire-and-forget o mais comum para o modo assncrono: o remetente envia a mensagem para o destinatrio e s. O remetente no precisa de uma resposta do destinatrio para continuar seu trabalho. Algumas vezes quando necessrio, o destinatrio envia uma resposta para o remetente. Nesta situao o requisitante deve implementar um event handler para capturar a resposta que chega assincronamente fazendo uma correlao entre requisio/resposta. O WebSphere Message Broker suporta interaes assncronas usando o transporte MQ ou JMS. Ele tambm suporta o modo one-way de Web Service usando SOAP over HTTP 1.1. Neste caso o requisitante no espera por uma resposta SOAP, mas sim por um simples status HTTP 200 ou 202.

Requisio/Resposta
o cenrio mais amplamente utilizado nos modos sncrono e assncrono. Quando sncrono o requisitante envia a mensagem, aguarda pela resposta, e continua suas tarefas. O requisitante deve esperar por um determinado perodo de tempo, mas caso a resposta no chegue uma exceo de time-out ter de ser tratada. Um exemplo tpico deste cenrio uma solicitao de saldo bancrio num ATM, na qual a aplicao aguarda pela resposta do sistema CICS.

Chapter 7. WebSphere Message Broker

91

Agregao
A agregao um processo que se constitui de duas etapas: 1. Requisio de pelo menos 2 servios a partir da mensagem de entrada. 2. Processamento das respostas dos servios e agregao destas numa nica mensagem de sada. Um exemplo tpico deste cenrio quando um cliente faz um pedido pela Internet. O Broker constri diversas requisies independentes que so disparadas para os fornecedores envolvidos no pedido e ento consolida os resultados numa nica resposta para o cliente. Os nodes utilizados para a implementao deste cenrio so: AggregateControl node AggregateRequest node AggregateReply node

Figure 7-29 Nodes de agregao

Publish/Subscribe (pub/sub)
O publish/subscribe envolve o envio de dados de uma aplicao para qualquer nmero de receptores. Isto introduz uma camada de abstrao entre remetente e receptor, j que um no precisa se preocupar com o outro. Esta camada de abstrao provida pelo Broker, que gerencia os dados de entrada (publication) das aplicaes remetentes (publishers) e encontra os receptores interessados (subscribers). O broker ento envia os dados para os subscribers registrados. A correlao entre publishers e subscribers definida atravs de tpicos, que ficam contidos em uma estrutura hierrquica definida pela aplicao. Os subscribers registram o interesse em um tpico (ou tpicos) com o Broker. O Broker ento distribui uma publicao para este tpico para todos estes interessados. Por exemplo, o Broker publica o preo de uma ao de diferentes companias usando diferentes tpicos, um por compania. Os usurios assinaro apenas os tpicos das companias que lhe interessem. Dentro de um message flow, a publicao em tpico possvel atravs do Publication Node.

7.3.7 Integrao com outros Enterprise Information Systems (EIS)


Um ESB deve ter a capacidade de interagir com os EIS existentes dentro da empresa. Existem diversos adapters para interao com outros componentes do ambiente como: Siebel PeopleSoft SAP R/3 CICS Transaction Server IMS 92
WebSphere Message Broker V6.0 - Treinamento Bsico

7.3.8 Suporte a Quality of service (QoS)


Pelo ponto de vista de arquitetura um ESB deve apenas prover a capacidade de virtualizao de servio, mas sempre existem uma srie de questes de QoS que afetam um ESB. Alguns dos importantes aspectos de QoS que afetam um ESB so: Autenticao e autorizao Garantia de entrega para o local correto e confidencialidade Transaes Performance e throughput Alta disponibilidade Logging, mtricas e monitorao

7.3.9 Acesso ao registro de servios


A medida que a infra-estrutura SOA cresce, fica mais importante que o sistema de servios possa: Encontrar e publicar servios Gerenciar o ciclo de vida do servio Suportar interaes policy-driven. Alterar notificaes. Ter um repositrios de metadados de servios Um registro de servios gerencia os metadados do servio habilitando a seleo, invocao, gerenciamento, governana e reuso dos servios levando-se assim para uma arquitetura SOA bem-sucedida. Como espinha dorsal da arquittetura SOA, o ESB deve ter habilidade total de acessar um registro de servios. O SupportPac IA9L habilita o WebSphere Message Broker acessar o WebSphere Service Registry and Repository de dentro do message flow.

7.3.10 Facilidade de administrao


Um ESB deve ser fcil de gerenciar. O WebSphere Message Broker inclui o WebSphere Message Broker Toolkit, que uma ferramenta de desenvolvimento e administrao dos componentes runtime.

Chapter 7. WebSphere Message Broker

93

Figure 7-30 Message Broker Toolkit

Alm da interface do Message Broker Toolkit, voc pode escolher as seguintes opes: SupportPac IS02: WebSphere Message Broker Administrator Explorer Plug-in for MQ Explorer Este SupportPac permite que tarefas administrativas do Message Broker sejam realizadas atravs do WebSphere MQ Explorer. Veja mais informaes em: http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg24012457&loc=en_US&cs=ut f-8?=en Configuration Manager Proxy API Atravs desta API uma aplicao pode ser conectar a um Configuration Manager e gerenciar os objetos do Broker Domain. Mais informaes podem ser encontradas no WebSphere Message Broker Information Center: http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/topic/com.ibm.etools.mf t.doc/ae20620_.htm

94

WebSphere Message Broker V6.0 - Treinamento Bsico

7.4 Suporte a Web Services


Com o WebSphere Message Broker voc pode desenvolver seus message flows para trabalhar com mensagens SOAP sobre qualquer um dos transportes suportados, incluindo o HTTP/HTTPS, JMS ou MQ.

7.4.1 Escolhendo o message domain para SOAP


Como o SOAP uma mensagem XML, seu message flow ter que usar um dos seguintes parsers: XMLNS, XMLNSC ou MRM. Caso seu WebService usa SOAP com anexos, ento voc precisar utilizar o parser MIME. O SOAP verso 1.1 e 1.2 so suportadas pelo WebSphere Message Broker V6.

MRM domain
O MRM domain criado por um parser que utiliza as definies de mensagem de um Message Set. O parser MRM pode ser utilizado para interpretar trs tipos de mensagens: Custom Wire Format (CWF): Modelagem de mensagens binrias C, COBOL, PL/I e de outras linguagens. XML Wire Format (XML): Modelagem de mensagens XML, com ou sem utilizao de namespace. Com esta modelagem possvel associar tipagem e constraints aos elementos XML, alm de controlar a sua cardinalidade e composio na mensagem. Tagged Delimited String Format (TDS): Modelagem de mensagens posicionais ou separados por delimitadores e tags. Por exemplo: HL7, SWIFT, EDIFACT e X12. Os message sets compilados so chamados de dicionrios no ambiente do Broker runtime. O MRM parser pode efetuar uma validao da mensagem com o dicionrio implementado no ambiente runtime.

XML domains
Trs tipos de parsers so disponibilizados para interpretar um XML em conformidade com o padro W3C: XMLNSC domain Este domain pode ser utilizado para qualquer mensagem XML, incluindo aqueles que utilizam namespaces. O parser usa a implementao XML4C e reduz a quantidade de memria ocupada na montagem da rvore lgica. importante notar que o comportamento default do parser XMLNSC discartar whitespaces no significativos (tab, enter, espaos) , mixed content (elementos misturados com texto), comentrios, processing instruction e DTDs embutidos. XMLNS domain Caso o XMLNSC parser no cumpra seus requisitos, utilize este. O uso de namespace permitido. XML domain Este parser no permite a utilizao de namespace. fornecido por razes de compatibilidade com verso anteriores do WebSphere Message Broker.

MIME domain - SOAP com anexos


O SOAP com anexos um padro W3C para Web services que precisem incorporar anexos como imagens em suas mensagens. Ele baseado no multipart MIME, que consiste numa mensagem particionada, cada um com um tipo definido e delimitado com um string limitador.

Chapter 7. WebSphere Message Broker

95

A primeira parte da mensagem normalmente uma mensagem SOAP normal que refere s outras partes (os anexos).

MIME-Version: 1.0 Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml Content-Description: Optional description of message. Optional preamble text --MIME_boundary Content-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-ID: <rootpart@example.com> <?xml version='1.0' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns:ins="http://myInsurers.com"> <ins:ClaimReference>abc-123</ins:ClaimReference> </SOAP-ENV:Header> <SOAP-ENV:Body xmlns:ins="http://myInsurers.com"> <ins:SendClaim> <ins:ClaimDetail>myClaimDetails</ins:ClaimDetail> <ins:ClaimPhoto> <href>cid:claimphoto@example.com</href> </ins:ClaimPhoto> </ins:SendClaim> </SOAP-ENV:Body> </SOAP-ENV:Envelope> --MIME_boundary Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-ID: <claimphoto@example.com> myBinaryData --MIME_boundary-Optional epilogue text Figure 7-31 Exemplo de mensagem MIME

O MIME parser interpreta a mensagem MIME e gera a rvore lgica correspondente como abaixo:

96

WebSphere Message Broker V6.0 - Treinamento Bsico

Figure 7-32 rvore lgica criada pelo MIME parser

Observe que cada corpo das partes da mensagem MIME guardado como BLOB. Normalmente a mensagem parseada com o MIME parser na entrada do message flow e a primeira parte (onde est a mensagem SOAP) da mensagem parseada com o MRM parser ou pelo ResetContentDescriptor Node. O parser MIME implementado no WebSphere Message Broker no suporta completamente o padro MIME, mas suporta todos os formatos MIME usados em aplicaes baseadas em mensagem, incluindo SOAP com anexos e RosettaNet.

Qual domain escolher?


Se a sua mensagem XML, ento utilize um dos seguintes parsers: MRM parser com message set modelado com XML Wire Format. XMLNS parser XMLNSC parser No entanto o MRM parser oferecer maior flexibilidade pelos seguintes motivos: O dicionrio gerado pela modelagem do message set pode ser aproveitado no message flow para: Fornecer tipagem dos elementos do XML. Validar o XML com as constraints e composio dos elementos. Decodificar automaticamente os dados binrios codificados em Base64. Extrao automtica de data e hora atravs de uma mscara (eg.: yyyy-mm-dd hh:mm:ss) Existem opes avanadas de renderizao do formato fsico XML. Por exemplo voc pode ter um elemento que renderizado como atributo numa mensagem e como elemento numa outra mensagem.

Chapter 7. WebSphere Message Broker

97

Voc pode compartilhar a estrutura lgica com outras representaes fsicas. Por exemplo, uma mensagem criada em COBOL na representao fsica Custom Wire Format (CWF) pode ter a mesma representao lgica para o formato fsico XML Wire Format (XML) Caso nenhuma das razes acima lhe interessem veja as prximas dicas: Se voc necessita de uma melhor performance ou menor consumo de memria, utilize o XMLNSC parser. Nunca utilize o XML domain para novos message flows. Este domain fornecido apenas por razes de compatibilidade. Caso sua mensagem chegue de uma aplicao escrita em COBOL, C ou PL/I ou mesmo consista em dados binrios fixos utilize o MRM domain com o formato fsico CWF. Caso a sua mensagem consiste de texto formatado, separados por tags ou delimitadores ou ambos, utilize o MRM domain com o formato fsico TDS. Se voc utiliza mensagens JMS use o XML domain ou um dos JMS domains. Se sua mensagem possui vrias partes ou utiliza anexos SOAP, utilize o MIME parser. Adicionalmente voc pode customizar um domain desenvolvendo o seu prprio parser.

98

WebSphere Message Broker V6.0 - Treinamento Bsico

Chapter 8.

Instalao
Este captulo detalha consideraes de software e de sistema para instalar o Websphere Message Broker. Sero discutidas as seguintes tarefas: Planejamento para a instalao Questes de segurana Instalando os softwares obrigatrios Tarefas ps-instalao Verificando a instalao Instalando fix-packs

Copyright Intvision Solutions 2007. All rights reserved.

8.1 Planejamento para a instalao


Esta seo apresenta informaes a respeito dos softwares obrigatrios e opcionais para instalar o Websphere Message Broker v6.0 no Windows. Os requisitos para estes produtos, como espao em disco e memria tambm sero discutidos

8.1.1 Softwares obrigatrios


Para realizar uma instalao full do Websphere Message Broker voc dever instalar todos os softwares obrigatrios listados a seguir. possvel instalar partes especficas do produto numa mquina. Poderamos por exemplo querer instalar apenas o Broker runtime. Neste caso nem todos os softwares mencionados sero necessrios. WebSphere MQ O WebSphere MQ prov um mecanismo de comunicao entre Configuration Manager, os Brokers, o Message Broker Toolkit . O WebSphere MQ pode ser utilizado tambm para a comunicao com os sistemas a serem integrados. Este deve ser instalado no ambiente runtime do Websphere Message Broker. Um WebSphere MQ Queue Manager deve ser criado para: Cada Broker runtime criado Configuration Manager User Name Server O Message Broker Toolkit comunica-se atravs de um cliente do WebSphere MQ e portanto no necessita da instalao do WebSphere MQ. WebSphere MQ Explorer O WebSphere MQ Explorer uma ferramenta de administrao grfica que permite criar, modificar e apagar recursos do WebSphere MQ e monitorar uma rede WebSphere MQ. Apesar de ser um componente opcional, na instalao tpica este instalado. O WebSphere MQ Explorer est disponvel em Windows e Linux (x86) apenas. WebSphere Eclipse Platform O WebSphere Eclipse Platform V3.0.1 um pr-requisito para o WebSphere MQ Explorer ODBC Drivers for Cloudscape O Configuration Manager utiliza um banco de dados Apache Derby embutido. No Windows, o ODBC Drivers for Cloudscape pode possibilitar que a mesma base seja utilizada como base de dados do Broker runtime. Esta configurao suportado em ambiente de teste apenas. Para ambientes de produo, uma outra alternativa de banco de dados deve ser usada. WebSphere Message Broker runtime O WebSphere Message Broker runtime a parte do produto que possibilita a criao de recursos runtime, incluindo o Configuration Manager, Brokers runtime, User Name Server. Message Brokers Toolkit O Message Brokers Toolkit uma interface grfica construda sobre a plataforma Rationall Application Developer. O Message Brokers Toolkit usado tanto para desenvolvimento como para administrao.

100

WebSphere Message Broker V6.0 - Treinamento Bsico

Os desenvolvedores o utilizam para criar message flows e artefatos necessrios por ele e o deploy disso feito tambm atravs do Message Brokers Toolkit . O Message Brokers Toolkit pode ser instalado sem o componente runtime por exemplo para desenvolver e/ou administrar componentes de Broker Domains remotos. O Message Brokers Toolkit est disponvel para Windows e Linux (x86). No h nenhum pr-requisito para a sua instalao. Caso algum outro produto que utilize a plataforma Rational Application Developer encontrada, a instalao do Message Brokers Toolkit utilizar a instalao antiga contanto que a plataforma esteja na mesma verso.

8.1.2 Softwares opcionais


Adicionalmente ao softwares obrigatrios, muitos produtos opcionais podem ser instalados. Estes produtos so descritos nesta seo. Rational Agent Controller O Rational Agent Controller (RAC) verso 6.0.0.1 usado pelo Message Brokers Toolkit durante o debug de um message flow. Caso voc deseje usar o Flow Debugger do Message Brokers Toolkit , ento ser necessrio instalar o Rational Agent Controller em cada mquina onde esteja instalado o Broker runtime. Quando o Rational Agent Controller instalado onde se encontra o Broker runtime, voc instala um servidor que se comunica com um cliente Rational Agent Controller embutido no Message Brokers Toolkit . Como a verso de Rational Application Developer se altera durante seu prprio ciclo de vida, a verso funcional do Rational Agent Controller necessria para funcionar com o Broker runtime pode mudar. DB2 Universal Database Enterprise Server O DB2 Universal Database suportado como um repositrio das configuraes do Broker runtime. O DB2 Universal Database Enterprise Serer Verso 8.2 fornecido no pacote do Websphere Message Broker V6.0. Existem trs tipos de instalao do DB2: instao compacta, instalao tpica e instalao personalizada. A instalao compacta adequada para todas as funcionalidades requeridas pelo Websphere Message Broker V6.0. No entanto instalaremos a verso tpica do DB2 visto que esta inclui ferramentas de administrao grficas como o DB2 Control Center. Outros bancos de dados suportados Os outros bancos de dados suportados em ambiente de produo so o Oracle, Sybase Adaptive Server Enterprise (ASE) e Microsoft SQL Server. Estes no so fornecidos juntamente com o pacote Websphere Message Broker e portanto voc ter que obter sua cpia caso queira usar estes bancos de dados.

8.1.3 Requisitos de software


Esta seo descreve os requisitos de softwares para o Websphere Message Broker V6.0 Espao em disco Antes de instalar o Websphere Message Broker verifique a quantidade de espao em disco necessrio. Isto inclui no somente o espao ps-instalao, mas tambm o espao para

Chapter 8. Instalao

101

arquivos temporrios durante a instalao, espao para os softwares requeridos e o espao para as configuraes e desenvolvimentos ps-instalao. Espao em disco para o Websphere Message Broker A quantidade de espao em disco requerida depende dos componentes a serem instalados e da working space requerida por estes componentes. O total de espao requerido para um produto instalado geralmente incrementa numa ordem de dezenas a centenas de megabytes na medida em que os artefatos so desenvolvidos, logs so criados e fixpacks so aplicados. Este aumento dos requisitos de espao ao longo do tempo devem ser levados em conta. Uma das maiores fontes de uso de espao em disco a aplicao de fixpacks. A razo para isto que as novas verses de plug-ins para o Message Brokers Toolkit no apagam as verses anteriores para no afetar a compatibilidade com outros produtos que dependem da plataforma Rational Application Developer. Um espao adicional necessrio para arquivos temporrios gerados pelo instalador. Ao trmino da instalao todos os arquivos temporrios so apagados. Importante: Caso falte espao em disco durante a instalao do Message Brokers Toolkit alguns problemas podem ocorrer. Um sintoma disto a ausncia de partes do Message Brokers Toolkit responsveis por message sets e/ou ausncia de nodes. Caso este sintoma ocorra, desinstale o Message Brokers Toolkit e libere um espao extra antes de reinstal-lo. Durante a instalao, o wizard mostrar os requisitos dos componentes que sero instalados. A tabela a seguir descreve o cenrio tpico para componentes instalados no Windows e Linux.
Table 8-1 Espao em disco necessrio para componentes instalados em Windows e Linux Componente Broker, Configuration Manager e User Name Server Transformation services (extenso opcional do Broker) Message Brokers Toolkit Espao requerido no Windows 315MB (+ 300MB de espao temporrio) 25MB 4.2GB (+1.5GB de espao temporrio) Espao requerido no Linux 280MB (+ 300MB de espao temporrio) 20MB 4.2GB (+1.5GB de espao temporrio)

Espao em disco para o WebSphere MQ A instalao do WebSphere MQ, excluindo o WebSphere MQ Explorer, pode tomar at 25.2MB de espao em disco. Esta quantidade pode aumentar dependendo dos componentes WebSphere MQ criados. O WebSphere MQ Explorer requer at 40.5MB de espao em disco. Espao em disco para o WebSphere Eclipse Platform A instalao do WebSphere Eclipse Platform necessita aproximadamente 1.5GB. Espao em disco para banco de dados Os bancos de dados fornecidos com o Websphere Message Broker V6.0 requerem os seguinte espaos adicionais:

102

WebSphere Message Broker V6.0 - Treinamento Bsico

O DB2 Universal Database Enterprise Server requer aproximadamente 300MB na instalao compacta. A instalao tpica requer aproximadamente 350-560MB e a personalizada 260-600MB. O Cloudscape embutido necessita aproximadamente 105MB no Windows. Em adio as espao necessrio para a instalao dos bancos de dados, um espao necessrio para armazenagem das configuraes do Configuration Manager e/ou Broker runtime. No caso do Broker runtime, o mnimo de espao adicional de 10MB. Memria O mnimo de memria necessria para o Websphere Message Broker V6.0 runtime de 512MB de RAM. Para executar o Message Brokers Toolkit necessrio um mnimos de 512MB em Windows ou Linux. Para melhor performance recomendado um mnimo de 1GB de RAM. A memria para os softwares de pr-requisto devem ser considerados.

8.2 Questes de segurana


Os requisitos de segurana devem ser considerados antes da instalao do Websphere Message Broker. Existem diferentes formas de controle de segurana para cobrir vrios aspectos do uso do produto. Esta seo discute alguns destes aspectos para Windows.

8.2.1 User ID
H um inmero de aspectos a serem considerados para escolher o user ID utilizado pelo Websphere Message Broker V6.0: 1. O nmero de caracteres permitido para o user ID varia de acordo com o sistema operacional No Windows, o tamanho mximo de 12 caracteres. No Linux e UNIX, o tamanho mximo de 8 caracteres Os bancos de dados tambm podem ter estas restries. 2. Utilize todas as letras em minsculo ou maisculo. 3. No Windows, o user ID de administrador no deve ser utilizado. Qualquer tentativa de usar o user ID de administrador com o Websphere Message Broker runtime produz erros de autorizao. 4. No Windows, o user ID criado deve ser membro do grupo de Administradores. recomendado que o user ID e combinaes de senha sejam vlidas em todos os sistemas operacionais envolvidos na configurao do Websphere Message Broker.

8.2.2 Outras questes de segurana


A segurana deve ser considerada nas mquinas onde o Websphere Message Broker est instalado. Esta seo discute algumas outras questes de segurana para o Websphere Message Broker. Segurana de banco de dados

Chapter 8. Instalao

103

No ambiente de testes, o mesmo user ID e senha podem ser utilizados para acessar banco de dados e criar componentes do Websphere Message Broker. Isto traz simplicidade no ambiente de teste e em ocasies na qual apenas um usurio administra o banco de dados. Como exemplo, o Default Configuration Wizard, que faz o setup de um Broker Domain para testes, usa o user ID e senha do Websphere Message Broker runtime para criar e acessar os bancos de dados. Num ambiente mais complexo ou num ambiente de Produo, o acesso seguro ao banco de dados importante, principalmente no acesso bases armazenadoras de dados de negcio. Nestes ambiente tpico que um administrador de banco de dados determine as permisses para os objetos. Desta forma, diferentes user IDs so necessrios para diferentes tarefas. Para segurana de banco de dados seja melhorada, garanta que qualquer senha seja alterada se o default user ID para o banco de dados usado. Por exemplo, ao usar o DB2, deixar o user db2admin usar a senha db2admin um risco em potencial. Segurana no WebSphere MQ O usurio do Websphere Message Broker deve ser membro do grupo mqm (grupo de segurana do WebSphere MQ). Este grupo habilita o usurio a criar componentes e acessar filas e outros recursos do WebSphere MQ necessrios para a comunicaao entre componentes do Websphere Message Broker. O SSL pode ser usado na segurana das conexes entre Message Brokers Toolkit e Configuration Manager, assim como nos canais que conectam os Brokers runtime.

104

WebSphere Message Broker V6.0 - Treinamento Bsico

8.3 Instalando os softwares obrigatrios


Neste treinamento instalaremos o produto atravs do Launchpad no Windows. Para informaes sobre outras alternativas de instalao do Websphere Message Broker V6.0, procure informaes relevantes no Installation Guide.

8.3.1 O Launchpad
Quando voc insere a mdia do produto (DVD ou CD), o Lauchpad executado automaticamente. Caso este no se execute, d um duplo clique no arquivo mqsilaunchpad.exe que se encontra na pasta raz. O Launchpad oferece dois tipos de instalao: o Express Installation e o Advanced Installation. Neste treinamento utilizaremos a primeira opo. Express Installation Utilize o Express Installation se voc deseja uma instalao full do Websphere Message Broker V6 incluindo os softwares obrigatrios. O Express Installation necessita de pouca interao com o usurio e durante a instalao os valores default so assumidos para que a instalao seja o mais simples e rpido possvel. O Express Installation instala todos os softwares requeridos para uma instalao mnima do Websphere Message Broker: WebSphere Eclipse Platform V3.0.1 WebSphere MQ 6.0 ODBC Drivers for Cloudscape Websphere Message Broker V6.0 Websphere Message Broker Toolkit V6.0 O Launchpad detecta quando qualquer software obrigatrio j foi instalado no seu sistema. Caso nenhum dos softwares obrigatrios existam, o estado do software estar como pendente (Pending) e todos os check boxes sero selecionados. possvel que alguns softwares j existam, mas que o status seja de verso incorreta (Incorrect Level).

8.3.2 Instalando o produto via Express Installation


Para iniciar o Express Installation: 1. No Launchpad, navegue at a pgina do Express Installation. Abra a pgina do Express Installation clicando o boto do canto superior esquerdo. 2. Assegure-se de que todos os check boxes esto selecionados. Todos os softwares devero estar com status pendente (pending). 3. Clique em Launch Express Installation for Websphere Message Broker. Isto iniciar a instalao dos softwares obrigatrios. Enquanto os softwares obrigatrios esto sendo instalados, poucos painis so mostrados para insero de dados pelo usurio. Aceite todos os valores default e clique em Next quando solicitado.

Chapter 8. Instalao

105

Verificando o progresso da instalao O progresso do Express Installation pode ser visto atravs dos estados conforme a figura abaixo:

Figure 8-1 O Launchpad durante o Express Installation

106

WebSphere Message Broker V6.0 - Treinamento Bsico

8.4 Tarefas ps-instalao


Aps a instalao full do Websphere Message Broker V6.0, garanta que os seguintes produtos estejam em execuo usando ass instrues desta seo: WebSphere MQ DB2 Universal Database

8.4.1 Servio WebSphere MQ


Para verificar se o servio do WebSphere MQ est no ar, escolha uma das alternativas: Verifique o rodap direito do monitor como o cone do WebSphere MQ. Vide Figura 8-2 na pgina 107 Verifique o status Started do servio IBM MQSeries na lista de servios do Windows: Start Control Panel Administrative Tools Services

Figure 8-2 cone que mostra o estado de execuo do WebSphere MQ

8.4.2 DB2 Universal Database


Para verificar se o DB2 Universal Database est em execuo, escolha uma das seguintes alternativas: Verifique o rodap direito do monitor como o cone do DB2. Vide Figura 8-3 na pgina 107. Caso o banco esteja parado, clique com o boto direito sobre o cone e clique em Start(DB2). Na linha de comando digite db2start. Se o DB2 Universal Database estiver em execuo, a mensagem The database manager is already active mostrada. Verifique a o status Started do servio DB2 - DB2-0 na lista de servios do Windows: Start Control Panel Administrative Tools Services.

Figure 8-3 cone que mostra o estado de execuo do DB2 Universal Database

Chapter 8. Instalao

107

8.5 Verificando a instalao


Esta seo descreve como verificar se a sua instalao do Websphere Message Broker foi bem sucedida. Para auxili-lo em verificar a instalao rapidamente existem 2 wizards: Default configuration wizard, para criao de um Broker domain simples. Prepare the Samples wizard, para configurar e fazer deploy de exemplos.

8.5.1 Criando uma configurao default


No Message Brokers Toolkit, os message sets e message flows podem ser desenvolvidos sem a criao de componentes runtime. Contudo, voc no poder testar ou executar estes message flows, ou executar qualquer exemplo fornecido at ter configurado os componentes runtime e criado um Broker Domain. O Default Configuration wizard cria os seguintes componentes e recursos no sistema a fim de prover um Broker Domain simples que possa ser utilizado para fins de teste: Um Configuration Manager chamado WBRK6_DEFAULT_CONFIGURATION_MANAGER Um Broker runtime chamado WBRK6_DEFAULT_BROKER Uma Queue Manager chamada WBRK6_DEFAULT_QUEUE_MANAGER compartilhada entre Configuration Manager e o Broker runtime. Um Listener na Queue Manager na porta 2414. Um banco de dados para as configuraes do WBRK6_DEFAULT_BROKER chamado DEFBKDB6. Nota: Caso o DB2 esteja instalado e em execuo, o Default Configuration wizard o utilizar para a criao da base DEFBKDB6, caso contrrio utilizar o banco de dados Apache Derby embutido. Executando o Default Configuration wizard Siga as seguintes instrues para a criao de uma configurao default: 1. Abra o Message Brokers Toolkit: Start IBM WebSphere Message Brokers 6.0 WebSphere Message Brokers Toolkit 2. Caso a tela de Welcome no seja aberta, ento clique em Help Welcome 3. Clique no cone Getting started mostrado na Figura 8-4 na pgina 108 4. Clique no cone Create the Default Configuration mostrado na Figura 8-5 na pgina 109. Este abrir uma tela com a documentao do produto. 5. Clique em Start the Default Configuration wizard. 6. Preencha com a senha do usurio.

Figure 8-4 cone Getting started da tela de Welcome

108

WebSphere Message Broker V6.0 - Treinamento Bsico

Figure 8-5 cone do Default Configuration wizard

Quando o Default Configuration wizard termina com sucesso, um Broker Domain simples configurado no sistema.

Dica: O Default Configuration wizard faz com que os servios do Broker runtime e Configuration Manager sejam executados automaticaticamente. Problemas podem ocorrer caso os softwares de dependncia no sejam iniciados automaticamente. Para resolver este problema configure os servios do WebSphere MQ e o DB2 para inicializarem automaticamente: Start Control Panel Administrative Tools Services IBM MQ Series Properties Start Control Panel Administrative Tools Services DB2 - DB2-0 Properties Altere o startup type para automatic

8.5.2 Executando os exemplos


Dentro do Message Brokers Toolkit existe uma seleo de exemplos para demonstrar as diferentes reas de funcionalidades do produto e como us-los. Os Getting Started Samples so os seguintes: Pager samples Scribble sample Soccer sample O Pager samples so fornecidos para voc para verificar a sua instalao do Websphere Message Broker. Para acessar os exemplos, siga os passos 1,2 e 3 da seo anterior e clique no cone Run Pager Samples da Figura 8-6 na pgina 109

Figure 8-6 cone Run Pager Samples

Clique em Set up pager samples e isto iniciar o Prepare the samples wizard. Este wizard criar todos os recursos necessrios para a execuo do exemplos, tais como: filas MQ, deploy na execution group,etc.

Chapter 8. Instalao

109

Importante: Os exemplos funcionam apenas no ambiente default criado por Default Configuration wizard. Os exemplos no sero executados em ambientes montados manualmente, ainda que tenham os mesmos nomes.

8.6 Message Brokers Toolkit


O Message Brokers Toolkit a interface grfica para o Websphere Message Broker que roda em Windows e Linux. O Message Brokers Toolkit o ambiente de desenvolvimento de message flows e recursos associados como o ESQL, Java, mapeamentos, definies de mensagem, etc. O Message Brokers Toolkit tambm usado para tarefas administrativas como configurar propriedades e componentes de um Broker Domain e publish/subscribe. Algumas tarefas administrativas como incio/parada de message flows podem ser realizados tanto no Message Brokers Toolkit quanto pela linha de comando.

8.6.1 Navegando no Message Brokers Toolkit


Perspectivas O Message Brokers Toolkit est construdo sobre a plataforma Rational Application Developer, que por sua vez baseia-se na plataforma Eclipse. As perspectivas so conceitos herdados do Eclipse, em que uma coleo de views apresentada de acordo com o objetivo da perspectiva. A Figura 8-7 na pgina 110 mostra a perspectiva Broker Application Development perspective, que a perspectiva default apresentada quando se abre o Message Brokers Toolkit..

Figure 8-7 Perspectiva de desenvolvimento

110

WebSphere Message Broker V6.0 - Treinamento Bsico

Mudando de perspectivas Existem duas formas de se alterar a perspectiva: A primeira forma: 1. Clique em Window Open Perspective Other... 2. Selecione a perspectiva desejada e clique OK A segunda forma: 1. No canto superior direito clique no cone Open Perspective. Vide Figura 8-8 na pgina 111 2. Selecione a perspectiva desejada e caso no encontre, escolha Others para a listagem completa.

Figure 8-8 cone Open Perspective (cone esquerdo)

Quando uma perspectiva selecionada, o Eclipse criar um boto com o link direto para a perspectiva selecionada. Caso selecionemos a perspectiva Broker Administration Perspective teremos o resultado da Figura 8-9 na pgina 111

Figure 8-9 Criao automtica do link para a perspectiva

Dica: Para tornar os botes menores e mais fceis de enxergar: 1. Clique com o boto direito perto do boto de perspectivas. 2. Clique em Show Text Qual perspectiva escolher? A seguir apresentamos as perspectivas mais adequadas para determinadas tarefas:
Table 8-2 Perspectivas para tarefas bsicas Tarefa Desenvolver message flows Desenvolver message sets Deploy e teste de message flows Debugar message flows Perspectiva Broker Application Development Perspective Broker Application Development Perspective Broker Administration Perspective Debug Perspective

Chapter 8. Instalao

111

Tarefa Gerenciar Broker Domains Configurar Publish/Subscribe Conectar e buscar definies de banco de dados Desenvolver Classes Java para uso em JavaCompute nodes

Perspectiva Broker Administration Perspective Broker Administration Perspective Data Perspective Java Perspective

8.7 Instalando fix packs


As instrues desta seo descrevem como instalar um fix pack (pacotes de correo) para verses instaladas do Websphere Message Broker V6.0. Estes pacotes so baixados via Web e contm recursos adicionais ferramenta ou correes de problemas.

8.7.1 Antes de instalar


Verifique se voc est logado com o mesmo user ID que foi utilizado para instalar o Websphere Message Broker V6.0 Certifique-se de que todos os componentes runtime, tais como: Configuration Manager, User Name Server e todos os Brokers runtime estejam parados. Assegure-se de que todos os arquivos do Websphere Message Broker estejam fechados, inclusive os arquivos readme. Feche o Message Brokers Toolkit

8.7.2 Atualizaes para componentes runtime


Para instalar um fix pack siga as instrues fornecidas com o fix pack e leia o arquivo memo.ptf e os arquivos readme. O processo de atualizao ter as mesmas sequncias do processo de instalao inicial.

8.7.3 Atualizaes para o Message Brokers Toolkit


As atualizaes so feitas atravs da ferramenta IBM Rational Product Updater que se encontra em: Start IBM WebSphere Message Brokers 6.0 Rational Product Updater Siga as etapas seguintes: 1. Baixe o pacote de correo para o Message Brokers Toolkit. 2. Descompacte o pacote numa pasta temporria 3. Abra o Rational Product Updater 4. Clique em Preferences Update Sites 5. Aponte para o arquivo policy.xml que se encontra na pasta temporria criada no tem 2. 6. Clique OK 7. Em seguida clique em Find Updates na tela principal 8. Os tens a serem atualizados estaro selecionados como na Figura 8-10 na pgina 113. Ento clique em Install Updates

112

WebSphere Message Broker V6.0 - Treinamento Bsico

Figure 8-10 Instalando atualizaes para o Message Brokers Toolkit

Chapter 8. Instalao

113

114

WebSphere Message Broker V6.0 - Treinamento Bsico

Chapter 9.

Message Flows
Neste captulo apresentaremos o principal componente de execuo do WebSphere Message Broker: o message flow. Vamos apresentar a forma de iniciar seu projeto criando um ambiente de desenvolvimento no Message Broker Toolkit.

Copyright Intvision Solutions 2007. All rights reserved.

9.1 Viso geral do message flow


A definio mais simples de message flow : uma sequncia de passos de processamento a ser executado pelo Broker runtime quando uma mensagem de entrada recebida. Entretanto outras definies podem ser dadas: Do ponto de vista de negcio, o message flow uma ponte de comunicao entre consumidor e provedor de servio, pois ele faz roteamento, converso de protocolos de transporte, transformao de formatos de mensagem e distribuio de eventos. Do ponto de vista de desenvolvimento, o message flow o elemento principal de desenvolvimento, pois todos os outros artefatos desenvolvidos (message sets, database schemas) so auxiliares ao seu desenvolvimento. Do ponto de vista de implementao, o message flow o elemento de deploy que pode ser iniciado, parado e apagado no Broker runtime.

Figure 9-1 Exemplo de message flow

9.1.1 O fluido
A mensagem que trafega entre os nodes chamada de assembly. Este o fluido que manipulado e transformado pelos nodes durante a execuo do message flow. O assembly constitui-se de 4 rvores lgicas, a saber: Local Environment: esta rvore lgica utilizada para guardar informaes que podem ser utilizadas pelos nodes seguintes.

Figure 9-2 Local Environment: estrutura da rvore lgica

Environment (tambm chamada de Global Environment): nesta rvore voc pode gravar/ler variveis globais, ou seja, que podem ser utilizados por qualquer node seguinte durante a execuo do message flow. Apesar de no existir uma estruturao fixa para esta rvore, recomendado que voc crie suas variveis na sub-rvore Variables conforme Figura 9-3 na pgina 117.

116

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 9-3 Environment: exemplo de utilizao

ExceptionList: uma rvore de excees que populada no momento de uma exceo no message flow.

Figure 9-4 Exception List: Estrutura da rvore lgica

A hierarquia de excees mostram um detalhamento da exceo em diferentes nveis. Os elementos da Figura 9-4 so descritos a seguir:
Table 9-1 Exception List: detalhamento dos elementos Nome File Line Function Type Name Label Tipo String Integer String String String String Descrio arquivo fonte C++ Linha no arquivo fonte C++ Nome da funo C++ Tipo do objeto fonte Nome do objeto fonte Label do objeto fonte

Chapter 9. Message Flows

117

Nome Text Catalog Severity

Tipo String String Integer

Descrio Texto adicional Nome do catlogo de erros Severidade do erro:

1. informao 2. aviso 3. erro


Number Insert/Type Integer Integer Nmero da mensagem no catlogo Tipo do parmetro da funo C++

1. Boolean 2. Integer 3. Float 4. Decimal 5. Character 6. Time 7. GMT Time 8. Date 9. Timestamp 10.GMT Timestamp 11. Interval 12.BLOB 13.Bit array 14.Pointer
Insert/Text String Valor do parmetro da funo C++

Root: esta a rvore lgica principal, que populada pelo parser de um node de entrada. Um MQInput Node que processa uma mensagem MQ construir a seguinte mensagem:

118

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 9-5 Root: exemplo de estrutura de uma mensagem MQ

O elemento Properties sempre ser o primeiro elemento na rvore Root e guarda informaes sobre as caractersticas da mensagem, tais como: informaes de como a mensagem parseada (MessageSet, MessageType, MessageFormat), codificao (CodedCharSetId, Encoding), identificao da resposta (ReplyIdentifier), etc. Em seguida a rvore Root pode conter cabealhos do protocolo de transporte associado ao node de entrada. No caso da Figura 9-5 temos o cabealho MQMD, que o cabealho de uma mensagem MQ. O corpo da mensagem ser sempre o ltimo filho da rvore Root.

9.1.2 Construindo um message flow


Ao desenvolver um message flow voc dever considerar os seguintes aspectos: Quais nodes devo utilizar? Verifique os protocolos de transporte de entrada e sada e escolha os nodes de entrada e de sada correspondentes. Em seguida escolha os diversos nodes disponveis para obter a funo esperada do message flow. Quando melhor criar mais de uma entrada para o message flow? Quando o message flow deve fornecer as mesmas funes para diversos tipos de transportes. Quando um message flow recebe diversos tipos de formatos de dados por filas MQ. Dessa forma pode-se incluir n MQInput Nodes, cada um com propriedades de parse de entrada diferente. Cada node de entrada num message flow faz com que o Broker runtime execute uma thread de execuo. Incluir mais de um node de entrada pode aumentar a performance do message flow. Contudo, isto no recomendado. Ao invs disto configure instncias adicionais do message flow nas propriedades de seu deploy. Quando melhor criar um subflow? Subflows so trechos de message flows encapsulados com Input Nodes e Output Nodes. Por exemplo, quando muitos message flows necessitam do mesmo tratamento de erros, um subflow pode ser construdo e adicionado em cada um deles.
Chapter 9. Message Flows

119

Com a definio de subflows voc ganha: Reuso e reduo de tempo de desenvolvimento Uma forma consistente de alcanar uma funo particular e aumento da manutenibilidade de seus message flows. Flexibilidade: voc pode parametrizar o subflow atravs de Promoted Properties. Onde necessrio visualizar ou gravar as informaes do assembly? Em ambiente de Produo, onde o recurso de Debug no aconselhvel, voc pode considerar o uso de Trace Nodes que gravem a rvore lgica Exception List na sada Catch ou Failure de um node de entrada. Quando voc precisa validar a mensagem de entrada? Voc pode utilizar uma grande variedade de parsers de entrada como XMLNS, XMLNSC, MIME, MRM, etc. No entanto, caso haja necessidade de validao da mensagem com constraints de tipagem, valores ou sequncia de elementos, voc dever utilizar o parser MRM no node de entrada. Quando seu message flow acessa um banco de dados? Verifique a propriedade Data Source nos nodes que acessam o banco de dados. Eles apontam para o nome do ODBC configurado em seu sistema operacional. Verifique tambm se o usurio/senha foi configurado atravs do comando mqsisetdbparms Quando fazer a converso de codepage? Em alguns casos voc precisar transformar uma mensagem codificada em UTF-8 para uma mensagem ISO8859-1. Neste caso altere o elemento Root.Properties.CodedCharSetId e Root.Properties.Encoding para que a mensagem de sada esteja na codificao esperada.

120

WebSphere Message Broker 6.0 - Treinamento Bsico

9.2 Cenrio do laboratrio


O cenrio consiste na implementao da integraes dos sistemas de uma fbrica de automveis imaginria. Os sistemas apresentados so os seguintes: Sistema de estoque: Guarda as informaes de estoque de carros e peas produzidas. Sistema de frete: Calcula o custo de frete de carros e peas. Cadastro de clientes: Manipula o cadastro de clientes desta fbrica. Serasa: Faz anlise de risco de determinado cliente. Email Adapter/SMTP Server: Fica responsvel pelo envio de e-mails. Usurio: Apesar de no ser um sistema, est representado aqui para simular uma aplicao que utiliza os servios dos sistemas.

Figure 9-6 Sistemas envolvidos em uma fbrica de automveis imaginria

O objetivo deste laboratrio disponibilizar um servio que simplifica todos os acessos necessrios aos sistemas envolvidos durante um processo de venda imaginrio. importante observar que este cenrio tem efeito apenas elucidativo das capacidades do WebSphere Message Broker. O cenrio foi construdo como forma de utilizar o mximo possvel as funcionalidade do produto. Os tens j estaro construdos para simular servios disponveis: 1. Simulador de servio de consulta de frete 2. Simulador de servio de consulta de cliente no Serasa 3. Simulador do sistema legado que processa o cadastro de clientes. Atravs deste cenrio implementaremos os seguintes servios:
Chapter 9. Message Flows

121

1. Servio de consulta de estoque disponvel 2. Encapsulamento do cadastro de clientes em WebService 3. Servio de verificao de uma venda de veculo utilizando os servios disponveis (via simuladores) e servios a serem implementados. 4. Servio de realizao de uma venda de veculo utilizando os servios 2 e 3.

9.3 Verificao e preparao do ambiente


Inicialmente vamos verificar o funcionamento dos simuladores que j esto disponveis no ambiente.

9.3.1 Verificao do servio de frete


Este servio um WebService e possui portanto um arquivo WSDL (Web Service Description Language). Atravs deste WSDL iremos gerar uma requisio para o WebService de frete, conforme a seguir: 1. Abra o XMLSpy, atravs do boto localizado no Quick Launch:

Figure 9-7 Barra Quick Launch com XMLSpy

2. Com o XMLSpy aberto, clique em SOAP Create new SOAP Request 3. Clique em Browse e selecione WSDL do servio de frete que se encontra em: C:\Student\Workspace\IVS_Lab_Materiais\WSDL\fretews.wsdl 4. Clique em OK para carregar o WSDL. 5. Selecione a operao WSDL. Como existe apenas uma operao (calcularFrete), clique em OK 6. Preencha o XML de requisio como no exemplo abaixo:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:calcularFrete xmlns:m="http://www.intvision.com.br/calculoFrete"> <m:tipoFrete>1</m:tipoFrete> <m:cepOrigem>04523-000</m:cepOrigem> <m:cepDestino>12345-000</m:cepDestino> <m:peso>1</m:peso> </m:calcularFrete> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figure 9-8 XML de requisio operao calcularFrete do WebService

7. Clique em SOAP Send request to Server 8. A resposta solicitao vir num XML como abaixo: 122
WebSphere Message Broker 6.0 - Treinamento Bsico

<?xml version="1.0"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://www.intvision.com.br/calculoFrete" xmlns:NS1="http://www.serasa.com.br/consultaEmpresa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"> <soapenv:Body> <m:calcularFreteResp> <m:custoFrete>78.22</m:custoFrete> </m:calcularFreteResp> </soapenv:Body> </soapenv:Envelope> Figure 9-9 Resposta do WebService operao calcularFrete

9.3.2 Verificao do servio Serasa


Este servio verifica o risco que um dado cliente tem de no arcar com seus compromissos. Sua interface tambm WebService. Para verificar o seu funcionamento faremos o mesmo procedimento do tem Verificao do servio de frete. 1. Abra o XMLSpy, atravs do boto localizado no Quick Launch:

Figure 9-10 Barra Quick Launch com XMLSpy

2. Com o XMLSpy aberto, clique em SOAP Create new SOAP Request 3. Clique em Browse e selecione WSDL do servio serasa que se encontra em: C:\Student\Workspace\IVS_Lab_Materiais\WSDL\serasaws.wsdl 4. Clique em OK para carregar o WSDL. 5. Selecione a operao WSDL. Como existe apenas uma operao (consultarEmpresa), clique em OK 6. Preencha o XML de requisio como no exemplo abaixo:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:consultarEmpresa xmlns:m="http://www.serasa.com.br/consultaEmpresa"> <m:cnpj>12345</m:cnpj> </m:consultarEmpresa> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figure 9-11 XML de requisio operao consultarEmpresa do WebService

7. Clique em SOAP Send request to Server 8. A resposta solicitao vir num XML como abaixo:

Chapter 9. Message Flows

123

<?xml version="1.0"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://www.intvision.com.br/calculoFrete" xmlns:NS1="http://www.serasa.com.br/consultaEmpresa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"> <soapenv:Body> <NS1:consultarEmpresaResp> <NS1:grauRisco>345</NS1:grauRisco> <NS1:descricaoRisco>alto risco</NS1:descricaoRisco> </NS1:consultarEmpresaResp> </soapenv:Body> </soapenv:Envelope> Figure 9-12 Resposta do WebService operao consultarEmpresa

9.3.3 Verificao do servio de cadastro


O servio de cadastro de clientes simula um sistema legado que possui interface C. Este simulador l uma requisio escrita em C, atravs de uma fila MQ chamada CADASTROLEGADO.IN e grava a resposta tambm numa fila MQ, porm chamada de CADASTROLEGADO.OUT. 1. Abra o RFHUtil, atravs do boto localizado no Quick Launch:

Figure 9-13 Barra Quick Launch com RFHUtil

2. Selecione a Queue Manager WBRK6_DEFAULT_QUEUE_MANAGER 3. Selecione a fila CADASTROLEGADO.IN 4. Clique no boto Read File

Figure 9-14 Configurao do RFHUtil para teste do servio de cadastro de cliente

124

WebSphere Message Broker 6.0 - Treinamento Bsico

5. Procure pelo arquivo C:\Student\Workspace\IVS_Lab_Materiais\Arquivos teste\msg1_CADASTROLEGADO.IN 6. Verifique o contedo do arquivo lido clicando na aba Data. Veja informaes como o nome do arquivo lido e do lado direito, as configuraes de apresentao dos dados desta mensagem. Como o arquivo binrio, no possvel l-lo claramente pelas configuraes indicadas abaixo.

Figure 9-15 Verificando a leitura do arquivo no RFHUtil

7. Volte para a tela inicial clicando na aba Main. 8. Clique no boto Write Queue para enviar a mensagem para a fila indicada. 9. Verifique a resposta do simulador clicando em Read Queue na fila CADASTROLEGADO.OUT conforme abaixo:

Chapter 9. Message Flows

125

Figure 9-16 Lendo a resposta do simulador atravs do RFHUtil

10.Veja a resposta na aba Data

9.4 Preparao do ambiente de desenvolvimento


No ambiente deste laboratrio j temos pronta a instalao dos componentes necessrios para o desenvolvimento de message flows, so eles: WebSphere MQ V6.0.2 Broker runtime verso 6.0.0.3 Configuration Manager 6.0.0.3 Banco de dados DB/2 8.2 + FP11 Message Brokers Toolkit verso 6.0.2 c/ iFix 008 (Jul/2007) Nesta seo criaremos os elementos iniciais para o desenvolvimento de message flows.

9.4.1 Criao de um Workspace


A workspace a rea de trabalho onde sero reunidos os diversos projetos que sero desenvolvidos durantes este laboratrio. 1. Crie a pasta C:\workspace 2. Inicie o Message Brokers Toolkit atravs do atalho no Desktop. Digite o nome da Workspace criada no tem 1 e em seguida clique em OK.

126

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 9-17 Iniciando o Message Brokers Toolkit c/ a workspace criada

3. Feche a tela Welcome

9.4.2 Conexo Configuration Manager de um Broker Domain


Vamos criar uma conexo para a Configuration Manager de um Broker Domain na qual faremos o deploy dos message flows criados. 1. Selecione a perspectiva Broker Administration 2. Na view Domains (posio inferior esquerdo) clique com o boto direito e selecione New Domain 3. Digite as informaes necessrias conforme abaixo:

Figure 9-18 Conexo Configuration Manager

Chapter 9. Message Flows

127

4. Clique em Next 5. Digite o nome da conexo: Desenvolvimento e clique em Finish 6. Perguntado se quer criar um projeto de Server, clique em Yes

9.4.3 Criando um Execution Group


O execution group o local onde sero implantados os message flows e os recursos necessrios (dicionrios, bibliotecas jar, xsl,etc). Verifique que j existe um Broker runtime chamado WBRK6_DEFAULT_BROKER neste Broker Domain e dentro dele um execution group de nome default que possuem message flows implantados. Neste execution group esto os message flows simuladores de servios.

Figure 9-19 Conexo com a Configuration Manager

Vamos criar um segundo execution group, onde implantaremos os message flows a serem desenvolvidos. 1. Com o boto direito clique no Broker WBRK6_DEFAULT_BROKER e selecione New Execution Group 2. Digite desenv no nome do execution group a ser criado e clique em Finish

128

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 9-20 Criao de um novo execution group

9.4.4 Criando um Message Flow Project


O Message Flow Project o projeto onde criaremos os message flows. Para criar um projeto deste tipo: 1. Selecione a perspectiva Broker Application Development 1. Clique em File New Message Flow Project 2. Digite o nome ACME_MessageFlowsProject e clique em Finish.

Figure 9-21 Criao de um novo Message Flow Project Chapter 9. Message Flows

129

9.4.5 Criando um Message Set Project


O message set project o projeto para a definio de um, e apenas um, message set. Dentro de um message set definimos o formato fsico de uma mensagem e sua respectiva representao lgica. Dentro do nosso cenrio, faremos trocas de mensagens XML inicialmente , e portanto o formato fsico escolhido ser o XML. Para criar um message set project: 1. Selecione a perspectiva Broker Application Development 2. Clique em File New Message Set 3. Digite as informaes abaixo e clique em Next.

Figure 9-22 Criao de um novo Message Set Project

4. A seguir escolha o tipo fsico das mensagens deste message set. Escolha XML documents e clique em Finish.

130

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 9-23 Criao de um novo message set (continuao)

9.4.6 Importao do projeto auxiliar


Vamos importar um projeto auxiliar que contm materiais necessrios ao longo do laboratrio. Escolha a perspectiva Broker Application Development Selecione File Import Selecione Existing Project into Workspace Importe o projeto C:\Student\Workspace\IVS_Lab_Materiais

Chapter 9. Message Flows

131

132

WebSphere Message Broker 6.0 - Treinamento Bsico

10

Chapter 10.

Controle de transaes
Este captulo prov uma viso geral sobre transaes no WebSphere Message Broker.

Copyright Intvision Solutions 2007. All rights reserved.

10.1 Transaes
Transao um conceito fundamental na construo de aplicaes distribudas confiveis. As caractersticas de uma transao, coletivamente chamadas de ACID, so: Atomicidade: Se bem sucedido, todas as operaes acontecem; caso contrrio, nenhuma operao acontece. Consistncia: A aplicao realiza transies de estado vlidas no seu trmino. Isolao: Os efeitos das operaes no so visveis externamente at que a transao termine sucedidamente. Durabilidade: Uma vez que a transao completada, as alteraes sobrevivem falhas. Um message flow consiste em diversos nodes que realizam determinada funo, por exemplo: Lem de uma fila Atualizam uma tabela de banco de dados Escrevem um uma ou mais filas A caracterstica transacional de um message flow muito requisitada, principalmente em aplicaes crticas. Isto , o message flow deve trabalhar em coordenao. Por exemplo, se uma atualizao de banco de dados falha no ltimo passo, o message flow deve ter a capacidade de desfazer todas as alteraes realizadas. Isto seria uma transao global que envolve diversos resource managers. O WebSphere Message Broker suporta transaes globais.

10.1.1 Transao em message flows


Um message flow suporta dois tipos de transaes: Message flows coordenados: garante que todas as alteraes nos sistemas sejam consolidados ou desfeitos juntos dentro de uma nica transao. Message flows no-coordenados: Permite que as atualizaes nos sistemas ocorram independentemente. As atualizaes no so afetadas pelo sucesso ou falha geral do fluxo.

Message flows coordenados


Message flows que interagem com banco de dados ou outro recurso recupervel podem ser configurados para suportar uma nica transao global. A transao consolidada quando a mensagem de entrada processada normalmente pelo message flow. Ao contrrio, a transao desfeita caso as duas condies abaixo sejam satisfeitas: 1. A exceo jogada durante o message flow e tratada diretamente pelo node de entrada. 2. A sada Catch do node de entrada no est conectada. Este tipo de transao no ser tratatada neste treinamento.

Message flows no-coordenados


As atualizaes nos recursos neste caso so gerenciados individualmente pelos respectivos Resource Managers envolvidos. Alguns Resource Managers como o WebSphere MQ

134

WebSphere Message Broker 6.0 - Treinamento Bsico

permitem que haja uma transao especfica dele. As transaes especficas de cada Resource Manager possuem escopo limitado aos recursos pertencentes a ele. As transaes especficas de Resource Managers so normalmente utilizadas quando existem um nico tipo de recurso recupervel utilizado no fluxo. Por exemplo podemos citar um fluxo que contm apenas MQInput Nodes e MQOutput Nodes, que no acessem nenhum banco de dados. Estes tipos de transao no devem ser utilizadas quando existem mais de um tipo de recurso e a integridade dos dados precise ser mantida.

10.1.2 Princpios de tratamento de erros


Utilize os seguintes princpios para desenvolver tratamentos de erro com controle transacional: Crie uma fila de backup e configure a propriedade backout threshold da fila. Coloque a maior parte do tratamento de erro no terminal Catch do MQInput Node de forma a generalizar a notificao e registro do erro. Coloque um Throw Node no final do fluxo Catch. Notifique algum sobre o erro.

Chapter 10. Controle de transaes

135

136

WebSphere Message Broker 6.0 - Treinamento Bsico

11

Chapter 11.

Web Services
Neste captulo vamos conhecer o mtodo de construo de um Web Service.

Copyright Intvision Solutions 2007. All rights reserved.

11.1 Implementao
Faremos o desenvolvimento de um message flow que acessa uma base de dados e retorna os dados para o requisitante do servio. A interface deste servio ser em WebService.

11.1.1 Modelagem da mensagem de entrada


Nesta seo vamos modelar a mensagem entrante do message flow. Vamos criar uma definio de mensagem XML com a seguinte estrutura:

<m:consultarEstoque xmlns:m="http://www.intvision.com.br/consultaEstoque"> <m:idProduto>100</m:idProduto> </m:consultarEstoque> Figure 11-1 Mensagem XML de entrada a ser modelada

Para criar este definio: 1. Selecione a perspectiva Broker Application Development 2. Sobre o message set project clique com o boto direito e selecione New Message Definition File 3. Nomeie o arquivo como EstoqueMessages conforme abaixo:

Figure 11-2 Criando um novo message definition file

4. Clique em Next

138

WebSphere Message Broker 6.0 - Treinamento Bsico

5. Como a interface ser de WebService, vamos associar um Namespace para a mensagem de entrada selecionando o checkbox Use target namespace. Logo aps digite a seguinte namespace: http://www.intvision.com.br/consultaEstoque

Figure 11-3 Criando um novo message definition file (continuao)

6. A seguir vamos criar a mensagem de entrada que se chamar consultarEstoque. Para fazer isso selecione Messages Add Message

Figure 11-4 Adio de mensagem no message definition file

7. A mensagem criada ser um elemento do tipo complexType1. Renomeie o complexType1 para consultarEstoqueType:

Chapter 11. Web Services

139

Figure 11-5 Renomeando um complexType

8. Agora vamos adicionar o nico elemento desta mensagem que o idProduto. Clique com o boto direito sobre consultarEstoque ou consultarEstoqueType e selecione Add Local Element.

Figure 11-6 Adicionando um elemento numa mensagem

140

WebSphere Message Broker 6.0 - Treinamento Bsico

9. Altere o tipo do elemento idProduto para o simpleType xs:int.

Figure 11-7 Configurando o tipo do elemento idProduto

Nota: Observe que a coluna minOccurs e maxOccurs esto configurados como 1, ou seja, este elemento ser obrigatrio e deve aparecer no mximo 1 vez. 10.Crie uma segunda mensagem chamada consultarEstoqueResp e adicione o elemento quantidadeEstoque como int (xsd:int) 11. Salve o message definition file com CTRL-S

11.1.2 Importando a definio do SOAP Envelope


Como este servio possui interface WebService, a mensagem consultarEstoque criada no tem anterior dever ser envelopada num SOAP Envelope. Assim, uma chamada ao servio dever ter a seguinte configurao:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:consultarEstoque xmlns:m="http://www.intvision.com.br/consultaEstoque"> <m:idProduto>100</m:idProduto> </m:consultarEstoque> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figure 11-8 Mensagem consultarEstoque envelopada no SOAP Envelope

Chapter 11. Web Services

141

1. Clique com o boto direito sobre o ACME_MessageSet e selecione New Message Definition File From IBM Supplied Message 2. Selecione a mensagem soapenv11.xsd que relativo ao SOAP Envelope V1.1 e clique em Next

Figure 11-9 Importao da modelagem da mensagem SOAP

3. Na prxima tela clique em Finish.

11.1.3 Criao do Broker Schema


Nesta seo vamos criar o message flow que receber a solicitao SOAP e far o acesso ao banco de dados de estoque. Inicialmente, vamos criar um Broker Schema, que um agrupamento de message flows. Na prtica o Broker Schema funciona como um package Java. 1. Clique com o boto direito sobre Flows em ACME_MessageFlowsProject e selecione New Broker Schema

142

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 11-10 Criao de um Broker Schema

2. Digite br.com.acme.estoque e clique em Finish 3. Mesmo aps o Broker Schema ser criado, ele aparecer apenas quando algum message flow for adicionado a ele. Vamos criar um message flow que ser adicionado a este Broker Schema. Clique com o direito sobre Flows e selecione New Message Flow. 4. Digite o nome do flow EstoqueWS, deselecione o checkbox Use default broker schema e selecione o broker schema criado anteriormente.

Figure 11-11 Criao de um message flow em um determinado Broker Schema

Chapter 11. Web Services

143

5. Clique em Finish

11.1.4 Configurando o message flow


Nota: Este message flow contm os nodes do Support Pac IA90: SOAP Extract Node e SOAP Envelope Node que voc encontrar na paleta Web Services. Para mais informaes sobre este Support Pac acesse: http://www-1.ibm.com/support/docview.wss?rs=849&context=SSKM8N&dc=D400&uid=swg2 4014070&loc=en_US&cs=UTF-8%E2%8C%A9=en&rss=ct849websphere O message flow EstoqueWS conter os seguintes nodes:

Figure 11-12 Configurao final do message flow EstoqueWS

Este message flow ser um WebService via HTTP e portanto, precisamos inicialmente adicionar um HTTPInput Node, localizado na paleta HTTP ao lado esquerdo do editor de message flow. Vide Figure 11-13 on page 145 Na propriedade Path suffix for URL digite /estoquews conforme Figure 11-13 on page 145 Nota: Quando um Broker runtime inicializado e possui pelo menos 1 message flow com HTTPInput Node, ele iniciar um processo chamado biphttplistener.exe A porta HTTP default aberta pelo biphttplistener a 7080. Caso haja mais de 1 Broker runtime rodando na mesma mquina ser necessrio alterar esta porta para evitar conflitos. No nosso laboratrio o message flow ser acessvel pela URL absoluta: http://localhost:7080/estoquews

144

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 11-13 Adio e configurao do HTTPInput Node

Para que este flow entenda como a mensagem de entrada deve ser lida necessrio que associemos um parser ao HTTPInput Node. Lembra-se da definio de mensagem de entrada construda na seo Modelagem da mensagem de entrada? Vamos utiliz-lo agora. Primeiramente verifique qual o identificador do nosso messageSet (message set id). Para isto veja o arquivo messageSet.mset no projeto ACME_MessageSetProject conforme Figure 11-14 on page 146 Ateno: O message set id pode no ser igual ao apresentado na figura.

Chapter 11. Web Services

145

Figure 11-14 Verificao do messageSet Id

Em seguida clique sobre o HTTPInput Node e verifique a tab Input Message Parsing nas propriedades deste node. Selecione as seguintes propriedades:
Table 11-1 Configurao do parser de entrada Propriedade Message Domain Message set Message type Message format Valor MRM Digite o messageSet Id encontrado acima Envelope XML1

Dica: Para facilitar a localizao dos parmetros de Input Message Parsing, referencie os Message Set Projects utilizados. Desta forma no ser necessrio fazer as etapas manuais apresentadas acima. No nosso caso, d um clique direito sobre o projeto ACME_MessageFlowsProject e selecione Properties. Em Project References, selecione o checkbox do projeto ACME_MessageSetProject. O prximo passo adicionar um SOAPExtract Node, que ir remover o envelope SOAP. Adicione-o a partir da paleta Web Services. Configure o SOAPExtract Node da seguinte forma:
Table 11-2 Configurao do SOAP Extract Node Propriedade Remove envelope (remove o envelope SOAP?) Envelope destination (onde o envelope SOAP extrado ficar guardado?) Valor true $LocalEnvironment/SOAP/Envelope

146

WebSphere Message Broker 6.0 - Treinamento Bsico

Propriedade Destination path mode (o destino do envelope existe ou dever ser criado?) Route to operation label (Roteia conforme o WSDL operation?)

Valor Create path true

Adicione um Label Node a partir da paleta Routing e configure-o:


Table 11-3 Configurao do Label Node Propriedade Label name Valor consultarEstoque

Agora vamos colocar um Compute Node (paleta Transformation) que extrair as informaes de estoque do banco de dados. Configure o Node:
Table 11-4 Propriedade Data source Transaction ESQL module Compute mode Treat warnings as errors Throw exception on database error Valor DEFBKDB6 Automatic br.com.acme.estoque.EstoqueWS_Compute Message false true

Feito isto, d um clique direito sobre o Compute Node e selecione Open ESQL. Outra alternativa dar um duplo clique sobre o Node. O ESQL deste Compute Node ter o seguinte cdigo default:

Chapter 11. Web Services

147

BROKER SCHEMA br.com.acme.estoque

CREATE COMPUTE MODULE EstoqueWS_Compute CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN -- CALL CopyMessageHeaders(); -- CALL CopyEntireMessage(); RETURN TRUE; END; CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER; SET J = CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; CREATE PROCEDURE CopyEntireMessage() BEGIN SET OutputRoot = InputRoot; END; END MODULE; Figure 11-15 Cdigo default criado para o Compute Node

Adicione o contedo do arquivo EstoqueWS/EstoqueWS.esql do projeto IVS_Lab_Materiais entre a diretiva BEGIN e END; da funo Main(). Salve o ESQL com CTRL-S. A sada do Compute Node criar uma mensagem do tipo calcularEstoqueResp. Porm falta envelop-lo com o SOAP Envelope. Adicione ento um SOAPEnvelope Node. Deixe-o com as propriedades default. Por ltimo adicione um HTTPReply Node da paleta HTTP para que o message flow responda requisio HTTP. O resultado final destes procedimentos ser:

148

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 11-16 Configurao com os nodes adicionados

A ltima etapa ligar os nodes e obter a configurao desejada. Clique sobre o terminal de sada de um node e d um segundo clique sobre o terminal de entrada do prximo node. Para verificar o DE-PARA de ligao passe o mouse sobre ele:

Figure 11-17 Verificando as conexes entre Nodes

11.1.5 Adio de mais uma interface de entrada


O WebSphere Message Broker possui grande flexibilidade para uso de protocolos de transporte diferentes. Nesta seo vamos adicionar o suporte ao WebSphere MQ, fazendo com que este servio seja acessvel tambm via filas, aproveitando-se ento de um transporte assncrono, seguro e confivel. O message flow modificado apresentado abaixo:

Chapter 11. Web Services

149

Figure 11-18 Adio da interface WebSphere MQ

1. Adicione um MQInput Node com as seguintes propriedades:


Table 11-5 Configuraes do MQInput Node Propriedades Basic Input Message Parsing/Message domain Input Message Parsing/Message set Input Message Parsing/Message type Input Message Parsing/Message format Valor ESTOQUEWS.IN MRM ACME_MessageSet Envelope XML1

2. Insira um Filter Node no final do message flow, pois agora necessrio escolher o Node de resposta 3. Clique duas vezes sobre o Filter Node e adicione o contedo do arquivo EstoqueWS/Filtro.esql do projeto IVS_Lab_Materiais entre as diretivas BEGIN e END; 4. Adicione um MQReply Node. 5. Reestruture o message flow do modo apresentado na Figure 11-18 on page 150

150

WebSphere Message Broker 6.0 - Treinamento Bsico

11.2 Deploy
1. Alterne para a perpectiva Broker Administration. 2. Conecte Configuration Manager WBRK6_DEFAULT_CONFIGURATION_MANAGER

Figure 11-19 Conexo Configuration Manager

3. Crie um Broker Archive (BAR) que o pacote de deploy. Nomeie-o como desenv

Figure 11-20 Criao de um Broker Archive (BAR)

4. Selecione o cone Add deste desenv.bar:

Chapter 11. Web Services

151

Figure 11-21 Adicionando artefatos ao Broker Archive (BAR)

5. Selecione o message flow EstoqueWS e o message set ACME_MessageSet e salve com CTRL-S. O resultado ser:

Figure 11-22 Artefatos adicionados ao Broker Archive (BAR)

152

WebSphere Message Broker 6.0 - Treinamento Bsico

6. Agora clique e arraste o arquivo desenv.bar para a execution group desenv. 7. Abra o Event Log da Configuration Manager e verifique o status do deploy.

Figure 11-23 Event Log da Configuration Manager

Chapter 11. Web Services

153

11.3 Teste
11.3.1 Teste da interface HTTP
Vamos validar o funcionamento do WebService que criamos na seo anterior. 1. Abra o utilitrio NetTool a partir de C:\Tools\nettool\start-nettool.bat 2. Digite a URL: http://localhost:7080/estoquews 3. Digite o contedo da requisio tal como mostrado na Figure 11-8 on page 141 na poro esquerda do NetTool. Por convenincia, o XML tambm se encontra no arquivo C:\Student\Workspace\IVS_Lab_Materiais\Arquivos teste\estoquews.xml 4. Clique em Send 5. Verifique a resposta do WebService na poro direita da tela.

Figure 11-24 Testando o message flow EstoqueWS no NetTool

11.3.2 Teste da interface WebSphere MQ


1. Abra o utilitrio RFHUtil 2. Selecione a fila ESTOQUEWS.IN. 3. Clique no boto Read File e escolha o arquivo C:\Student\Workspace\IVS_Lab_Materiais\Arquivos teste\estoquews.xml 4. Na tab MQMD, digite a fila ESTOQUEWS.RESP no campo Reply To Queue.

154

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 11-25 Testando a interface MQ do message flow EstoqueWS

5. Volte tab Main e clique em Write Q 6. Selecione a fila ESTOQUEWS.RESP e clique em Read Q 7. Verifique a mensagem lida na tab Data. Selecione a formatao XML em Data Format.

Figure 11-26 Verificao da mensagem de resposta

Chapter 11. Web Services

155

156

WebSphere Message Broker 6.0 - Treinamento Bsico

12

Chapter 12.

Troubleshooting
Este captulo orienta e d dicas de busca de informaes para resoluo de problemas.

Copyright Intvision Solutions 2007. All rights reserved.

12.1 Logs
Tanto o Message Brokers Toolkit quanto os componentes Runtime do WebSphere Message Broker criam logs para registros de ocorrncias, principalmente quando algo no est indo bem. Dependendo do sistema operacional e do ponto de falha analisado, voc deve selecionar o log adequado para anlise.

12.1.1 Troubleshooting administrativos e de runtime


Caso ocorra algum problema na inicializao/parada de algum componente runtime como Brokers runtime, Configuration Manager ou User Name Server deve-se procurar informaes nos seguintes locais: No Windows: Abra o Event Viewer atravs de Control Panel Administrative Tools Event Viewer e verifique as ocorrncias na tag Application No UNIX: Abra o arquivo criado pelo syslog (no configurado por default) Nota: Para configurar o syslog, coloque a seguinte linha no arquivo de configurao (/etc/syslog.conf):
user.info /var/adm/user.log

Em seguida digite touch /var/adm/user.log e reinicie o syslog. No z/OS: Verifique o log de console ou o joblog pelo address space. Alm disso, alguns erros de processamento nos message flows so logados nestes mesmos locais. Veja algumas delas: 1. Fila de entrada no encontrada: Quando um message flow executado e possui um MQInput de uma fila inexistente, o flow fica parado at a criao desta. 2. Bibliotecas obrigatrias no encontradas: Quando um message flow que possui um plugin node ou JavaComputeNode iniciado, o Broker runtime carrega as bibliotecas de dependncia. Caso o Broker runtime no as encontre, ento o message flow no iniciado. 3. ABEND (Abnormal End): Uma execution group pode terminar de forma anormal, por exemplo, na falta de recursos da mquina. Um registro disto gerado e as informaes detalhadas sobre o ABEND registrado em outro arquivo indicado no log. Este arquivo enviado para o diretrio MQSI_WORKPATH/errors. Limpe periodicamente este diretrio para relacionar rapidamente o ABEND ao problema detectado. Por ltimo vale lembrar que os Trace Nodes que esto configurados como Local Error Log tambm faro seus registros no mesmo local.

158

WebSphere Message Broker 6.0 - Treinamento Bsico

12.1.2 Troubleshooting de desenvolvimento


Quando ocorrer algum problema durante o desenvolvimento de message flows ou outros componentes necessrios, verifique: A view Problems na perspectiva Broker Application Development

Figure 12-1 View Problem na perspectiva de desenvolvimento

A view Tasks na perspectiva Broker Application Development. Caso no esteja visvel, clique em Window Show View Tasks

Chapter 12. Troubleshooting

159

Figure 12-2 View Tasks na perspectiva de desenvolvimento

A view Alerts na perspectiva Broker Administration

Figure 12-3 View Alerts na perspectiva de administrao

160

WebSphere Message Broker 6.0 - Treinamento Bsico

Erros lgicos na aplicao: o message flow pode conter loops infinitos. No deixe-se guiar pelas descries dos nodes. Confira as configuraes reais dos nodes.

12.1.3 Troubleshooting de deploy


Quando realizado o deploy, o resultado apresentado no Event Log do Configuration Manager:

Figure 12-4 Event Log da Configuration Manager

Para obter informaes adicionais utilize a varivel de ambiente MQSI_SHOW_DEPLOY. Siga os seguintes passos para que sejam registradas as etapas de deploy passo-a-passo: 1. Na linha de comando digite export MQSI_SHOW_DEPLOY=1 2. Reinicie o Broker runtime 3. Analise o Event Viewer/syslog

12.2 Trace Node


O trace node bastante flexvel na medida em que pode ser posicionado em qualquer local dentro do message flow. Ele utilizado para verificar o contedo da mensagem trafegada, das variveis e da exceo caso ocorra. Veja um exemplo de sada de um Trace Node:

Chapter 12. Troubleshooting

161

(0x01000000):Properties = (0x03000000):MessageSet (0x03000000):MessageType (0x03000000):MessageFormat . . (0x01000000):MQMD = (0x03000000):SourceQueue (0x03000000):Transactional (0x03000000):Encoding (0x03000000):CodedCharSetId (0x03000000):Format . . (0x01000010):XML = (

( = P258VC4002001' = INVOICE' = 'XML'.

( = = = = = 'TESTIN' TRUE 546 1208 'MQSTR

(0x01000000):MESSAGE = ( (0x02000000): = ELEMENT1' ) Figure 12-5 Exemplo de sada de um Trace Node

12.3 Flow Debugger


O flow debugger a forma mais usual de analisar o funcionamento de um message flow e sua interao com outros sistemas. Alm de ser possvel verificar o fluxo da mensagem e seu contedo atravs dos nodes, possvel analisar o funcionamento de cada node. Veja o flow debugger em execuo abaixo:

Figure 12-6 Debug de um message flow

162

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 12-7 Anlise do contedo da mensagem atravs do Flow Debugger

O Flow Debugger funciona atravs de uma conexo com o RAC (Rational Agent Controller) que por default se encontra instalado na mquina do Broker runtime. As configuraes do RAC ficam no arquivo <dir_instalao>/config/serviceconfig.xml. Verifique neste arquivo quais os clientes RAC que possuem permisso para conexo. Caso no seja possvel conectar ao RAC, verifique se a porta TCP default (10002) est liberada no firewall. Nota: possvel driblar um firewall entre a comunicao do Flow Debugger com o RAC. Para tanto, edite o arquivo de configurao <dir_instalao>/config/serviceconfig.xml, procure o elemento AgentControllerConfiguration e altere o valor do atributo isDataMultiplexed de false para true e o atributo filePort de 10005 para 0. Reinicie o RAC. Para que seja possvel fazer uma sesso de Debug necessrio que o Broker runtime e o RAC estejam ativos. Abaixo segue uma ilustrao da comunicao do Flow Debugger com o Rational Agent Controller:

Chapter 12. Troubleshooting

163

Figure 12-8 Comunicao com o RAC (Rational Agent Controller)

12.3.1 Debugando um JavaComputeNode


O suporte ao debug de um JavaComputeNode no ativo por default. Para debugar o cdigo de um JavaComputeNode necessrio configurar o Flow Debugger e o Broker Runtime da seguinte forma: 1. Abra uma porta de debug na JVM (Java Virtual Machine) da execution group do Broker runtime. Para isso execute o comando: mqsichangeproperties <BROKER> -e <EG> -o ComIbmJVMManager -n jvmDebugPort -v <PORT> onde <BROKER> o nome do Broker runtime, <EG> a execution group e <PORT> a porta a ser aberta para debug da JVM. 2. Na configurao de debug, configure a porta de debug criado no tem 1).

164

WebSphere Message Broker 6.0 - Treinamento Bsico

Figure 12-9 Configurao do debug para Java

3. Adicione os cdigos-fonte do projeto Java (que contm a implementao do JavaComputeNode) na tab Source. Desta forma, o Flow Debugger saber onde procurar o cdigo.

Figure 12-10 Adio do projeto Java para debug

Chapter 12. Troubleshooting

165

166

WebSphere Message Broker 6.0 - Treinamento Bsico

Glossrio
BAR. Abreviao para message broker archive. um arquivo usado para armazenar message flows compilados, message sets e outros cdigos para fazer deploy num execution group. BIP message. Uma mensagem de evento gerado pelo WebSphere Message Broker. identificado por seu nmero,por exemplo: BIP1003. Breakpoint. Usado como um ponto de suspenso de execuo de um message flow quando um Flow Debugger est ativo. Broker. Um Broker um conjunto de processos de execuo que rodam message flows Broker Administration perspective. Esta uma perspectiva do Message Brokers Toolkit. utilizada para administrar objetos de um broker domain. Ela tambm utilizada para realizar deploy e alterar a topologia do Broker Domain. Broker Application Development perspective. a perspectiva no Message Brokers Toolkit para criao de message flows e message sets. Broker database. o banco de dados onde armazena-se a configurao de 1 (um) Broker. Mltiplos Brokers podem compartilhar o mesmo banco de dados. Broker domain. Um grupo de brokers que compartilham uma mesma configurao e gerenciada por um nico Configuration Manager Command console. uma interface de comandos que configura o ambiente para executar os comandos do WebSphere Message Broker. Compute node. Um node de um message flow que utiliza ESQL. Normalmente utilizado para transformao de mensagem Configuration Manager. Armazena a configurao de um Broker Domain gerenciado por ele e realiza aes de deploy entre o Toolkit e os Brokers. Configuration Manager Proxy API. Uma API para acessar um Configuration Manager e realizar operaes administrativas. Database node. Um node de message flow para realizar aes em banco de dados utilizando ESQL. No altera a mensagem. DB2 Enterprise Server. Um banco de dados que suportado para uso do Broker Database e fornecido com o WebSphere Message Broker. Dead letter queue. Uma fila do WebSphere MQ queue que guarda mensagens que foram repostadas pelo message flow. Debug perspective. a perspectiva utilizada no Message Brokers Toolkit para debugar message flows e Java, ESQL or mapeamentos associados a ele. Default Configuration Wizard. Um wizard que cria um Broker Domain simples para verificar a instalao do WebSphere Message Broker installation. A configurao criada por ele pode ser usada para fins de teste e utilizao dos exemplos fornecidos. ESQL. ESQL significa Extended Structured Query Language e usado na transformao de mensagens em message flows. tambm utilizado para realizar operaes em banco de dados. Execution groups. Um execution group representa uma coleo de message flows dentro de um Broker. Java. Uma linguagem de programao orientada a objetos e utilizada para programao de um JavaCompute node ou user defined nodes no Message Brokers Toolkit. JavaCompute node. Um node de um message flow para transformar e rotear mensagens usando Java. Tambm usado para manipular banco de dados utilizando Java. Mapping. Um mtodo de transformao de mensagem utilizando drag-and-drop de

167

referncias para message definitions e database definitions. Mapping node. Um node de um message flow que utiliza mappings para construir uma mensagem de sada usando outras mensagens ou banco de dados. Message Brokers Toolkit. Uma interface grfica para realizar o desenvolvimento, teste, deploy e debug de message flows. Message Definition. Define a estrutura lgica e fsica das mensagens. Message Domain. a propriedade que pode ser configurada no Node de entrada para indicar o tipo de mensagens que o message flow espera processar e seleciona o parser apropriado. Exemplos de Message Domain so XMLNS e MRM. Message Flow Debugger. Uma ferramenta para visualizar o caminho das mensagens dentro de um message flow, podendo ver e alterar o contedo das mensagens enquanto so processadas. Message sets. Message sets contm definies das mensagens que sero processados pelo Broker. As message definitions associadas a um message set contm informaes de como a estrutura lgica e fsica das mensagens. MQInput node. Um node de message flow para ler uma mensagem de uma fila WebSphere MQ. MQOutput node. Um node de message flow para postar uma mensagem numa fila WebSphere MQ mqsideploy. Um comando do Command Console para realizar deploy de arquivos BAR. mqsilist. Um comando executado no Commando Console para listar todos os componentes runtime do WebSphere Message Broker de uma mquina. mqsistart. Um comando executado no Command Console para iniciar um componente como um Broker ou Configuration Manager. mqsistop. Um comando executado no Command Console para parar um componente runtime como Broker ou Configuration Manager.

ODBC drivers for Cloudscape. Driver ODBC para conectar ao banco de dados embutido no Configuration Manager. So utilizados para aproveitar essa base como Broker Database. Queue manager. Um queue manager um sistema que fornece servios de enfileiramento para aplicaes. utilizado para a comunicao entre os componentes runtime do WebSphere Message Broker. Rational Agent Controller. usado para debug de message flow no Message Brokers Toolkit. Deve ser instalado na mesma mquina do Broker que ser debugado. System Log. Um log visvel no Windows Event Viewer que mostra informaes sobre softwares rodando como Windows Services incluindo os componentes runtime do WebSphere Message Broker components. Terminal. Cada node de um message flow contm diversos terminais. Mensagens so enviadas para diferentes terminais dependendo dos resultados de processamento do node. User Name Server. Usado para fornecer autenticao e segurana para publish/subscribe num broker domain. WebSphere Event Broker. Usado para distribuio e roteamento de mensagem de diferentes aplicaes. frequentemente usado na mensageria publish/subscribe WebSphere Message Broker. Fornece storage, transformao e enriquecimento de dados em adio s funcionalidades do WebSphere Event Broker. WebSphere MQ. Uma aplicao de mensageria que a base para todo o produto. Todas as comunicaes entre os componentes do WebSphere Message Broker so realizadas via WebSphere MQ. WebSphere MQ Explorer. Uma interface grfica para administrao de componentes WebSphere MQ como filas e canais. Windows Event Viewer. Uma ferramenta do Windows para visualizar contedo de logs de aplicao e sistema.

168

ndice Remissivo
A acesso a banco de dados 86 ACID 134 agregao 73, 92 Arquivo messageSet.mset 145 assembly 116 B backout threshold 135 balanceamento de carga 29 batch 43 BPEL 32 Broker Domain 76 C cabealho DLQ 47 fila de transmisso 45 MQMD 53 CICS 77 client channel 49 comunicao assncrona 43 Conexo Configuration Manager 127 Configuration Manager 75 Configuration Manager Proxy 94 controlar a ordem de processamento 89 converso de codepage 42, 120 Criao da Fila de Transmisso 64 Criao da Queue Manager 59 Criao de Filas locais 61 Criao de um Workspace 126 Criao do Broker Schema 142 Criando um Execution Group 128 Criando um Message Flow Project 129 Criando um Message Set Project 130 Custom Wire Format 95 Customizao de Plug-in 91 D Database Schemas 88

DB2 101 debug grfico 88 E EAI 9 Edge 29 EDI 29 EIS 29, 92 Environment 116 ESQL 85 Event Log do Configuration Manager 161 ExceptionList 117 Execution groups 75 F fire-and-forget 73, 91 fix pack 112 G grupo mqm 104 I importadores 83 Importando a definio do SOAP Envelope 141 Input Message Parsing 146 integrao de sistemas 72 J J2EE 28, 77 Java debugger 87 JCA 29 JMS 79 JMS Providers 80 JVM 164 L LDAP 91 Linha de comando 58 Listener 64 listener 80 Local Environment 116 Local Error Log 158

169

lgica de negcio 73 lookup em memria 89 M mapeamento drag-and-drop 87 maxOccurs 141 mensageria 73 Message Brokers Toolkit 100 message channel 49 message dictionary 75 Message Domain 84 message set id 145 middleware 42 MIME domain 95 minOccurs 141 MQ Explorer 58, 94 Multicast 78 P PCF 47 Perspectivas 110 perspectivas 111 ponto-a-ponto 72 Properties 119 publish/subscribe 73, 76, 92 publish-subscribe 73 Q QoS 29, 93 R Rational Agent Controller 101, 163 Real-time Transport 79 request-reply 73 Root 118 S SCADA 79 Sendmail 91 Server Connection 52 sistemas legado 72 SOAP Envelope 141, 142 standard-based 73

syslog 158 T Tagged Delimited String Format 95 Testanto as filas criadas 62 transao global 134 Tratamento de falhas 51 U User Name Server 76 V validao da mensagem 84 view Alerts 160 view Problems 159 view Tasks 159 W WebSphere MQ Everyplace 78 X XML domain 95 XML Wire Format 95 XMLNS domain 95 XMLNSC domain 95 XSLT 88

170

Vous aimerez peut-être aussi