Académique Documents
Professionnel Documents
Culture Documents
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
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.
Chapter 2.
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.).
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
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
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.
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.
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.
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.
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.
Roteamento Endereamento Protocolo e Padres (HTTP, HTTPS, etc.) Publish / Subscribe Response / Request Eventos, Fire & Forget Mensagens Sncronas e Assncronas
10
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
Nvel de Servio
Performance Multi-Processamento Escalabilidade Alta disponibilidade Outras medidas e meios de continuidade e melhoria dos servios
11
Detalhe
Encoded lgico Lgica baseada no contedo Transformao de dados Agregao e correlao Validao Intermediao Identificao de mapeamento dinmica Armazenamento e encaminhamento
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
Chapter 3.
XML
Este captulo prov uma viso geral sobre o XML e tecnologias relacionadas.
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
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.
<?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.
<?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
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
16
Chapter 3. XML
17
<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
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
<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.
19
20
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.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
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']
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.
24
Chapter 3. XML
25
26
Chapter 4.
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
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.
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.
30
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
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
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.
32
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.
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.
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
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
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.
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
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).
39
40
Chapter 5.
WebSphere MQ
Este captulo prov uma viso geral da ferramenta WebSphere MQ.
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
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.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
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.
45
Nome da fila: nome da fila local Nome da queue manager: em branco ou o nome da queue manager local.
46
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.
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
TRIGDATA TRIGDEPTH
Local Local
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.
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:
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
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.
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
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.
54
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
Chapter 6.
58
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
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
60
6. No passo seguinte remova a seleo para a opo Create listener configured for TCP/IP, pois criaremos um Listener na seo seguinte.
7. O ltimo passo configura o MQ Explorer para a Queue Manager criada. Clique em Finish
61
2. Preencha com o nome EXERCICIO1.IN e Finish 3. Crie mais uma fila local com o nome EXERCICIO1.OUT
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.
62
A partir de ento ser possvel criar as filas. Isto possvel atravs da interface MQSC pelo comando: runmqsc QMGR2 A seguinte tela ser apresentada:
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
64
3. Clique em Finish
65
2. Configure a propriedade Control como Queue Manager e digite a porta 1414 e clique em Finish.
66
67
68
69
70
Chapter 7.
72
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.
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.
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.
74
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
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.
76
77
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
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
mensagem JMS chega, o JMSInput Node criar a estrutura de mensagem mostrada na Figura 7-9. .
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.
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.
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.
XML
83
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
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
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
Compute Node
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:
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.
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
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
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.
87
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.
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.
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
-- 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
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).
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.
89
Utilize um Route To Label Node para rotear a mensagem para um dos Label Nodes localizados dentro do message flow.
90
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.
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.
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
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.
93
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
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.
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
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.
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
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
100
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.
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
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.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.
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
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).
Chapter 8. Instalao
105
Verificando o progresso da instalao O progresso do Express Installation pode ser visto atravs dos estados conforme a figura abaixo:
106
Figure 8-3 cone que mostra o estado de execuo do DB2 Universal Database
Chapter 8. Instalao
107
108
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
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.
110
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.
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
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
112
Chapter 8. Instalao
113
114
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.
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.
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
ExceptionList: uma rvore de excees que populada no momento de uma exceo no message flow.
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
117
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
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.
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
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.
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
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:
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
2. Selecione a Queue Manager WBRK6_DEFAULT_QUEUE_MANAGER 3. Selecione a fila CADASTROLEGADO.IN 4. Clique no boto Read File
124
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.
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:
125
126
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
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
Figure 9-21 Criao de um novo Message Flow Project Chapter 9. Message Flows
129
4. A seguir escolha o tipo fsico das mensagens deste message set. Escolha XML documents e clique em Finish.
130
131
132
10
Chapter 10.
Controle de transaes
Este captulo prov uma viso geral sobre transaes no WebSphere Message Broker.
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.
134
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.
135
136
11
Chapter 11.
Web Services
Neste captulo vamos conhecer o mtodo de construo de um Web Service.
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.
<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:
4. Clique em Next
138
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
6. A seguir vamos criar a mensagem de entrada que se chamar consultarEstoque. Para fazer isso selecione Messages Add Message
7. A mensagem criada ser um elemento do tipo complexType1. Renomeie o complexType1 para consultarEstoqueType:
139
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.
140
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
<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
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
142
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.
143
5. Clique em Finish
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
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.
145
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
Propriedade Destination path mode (o destino do envelope existe ou dever ser criado?) Route to operation label (Roteia conforme o WSDL operation?)
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:
147
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
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:
149
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
11.2 Deploy
1. Alterne para a perpectiva Broker Administration. 2. Conecte Configuration Manager WBRK6_DEFAULT_CONFIGURATION_MANAGER
3. Crie um Broker Archive (BAR) que o pacote de deploy. Nomeie-o como desenv
151
5. Selecione o message flow EstoqueWS e o message set ACME_MessageSet e salve com CTRL-S. O resultado ser:
152
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.
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.
154
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.
155
156
12
Chapter 12.
Troubleshooting
Este captulo orienta e d dicas de busca de informaes para resoluo de problemas.
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.
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
A view Tasks na perspectiva Broker Application Development. Caso no esteja visvel, clique em Window Show View Tasks
159
160
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.
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
161
(0x01000000):Properties = (0x03000000):MessageSet (0x03000000):MessageType (0x03000000):MessageFormat . . (0x01000000):MQMD = (0x03000000):SourceQueue (0x03000000):Transactional (0x03000000):Encoding (0x03000000):CodedCharSetId (0x03000000):Format . . (0x01000010):XML = (
162
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:
163
164
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.
165
166
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