4
Estudo de caso: Mule como um transporte JMS Comum A equipe de integração aplicações tiveram que lidar com seis fornecedores diferentes. JMS e SOAP emergiu como os transportes comuns para todas as aplicações; 90% das comunicações poderia ter lugar ao longo JMS. A configuração normal JMS exigiria que cada aplicativo para criar filas de entrada e saída para cada aplicativo que ele precisa interagir. Esta configuração "ponto-a-ponto" explodiria complexidade porque mais aplicativos de fornecedores viria a ser adicionado à mistura, e cada aplicativo teria que ser revisto para adicionar novas definições de interface cada vez. A equipe de integração decidiu em vez de aproveitar os recursos da mula para simplificar isso criando uma fila única, comum onde todas as mensagens são enviadas. Cada mensagem tem um atributo que indica seu tipo e encaminha para a aplicação adequada. O aplicativo capta a mensagem na sua fila de entrada privada, processá-lo e responde colocando uma resposta na fila comum. rotas mula a resposta para os aplicativos apropriados. Listagem 1 é um arquivo de configuração Mule para lidar com as interações entre os componentes de aplicativos se comunicam através de JMS. As regiões coloridas corresponder cada um dos próximos parágrafos. As peças em cinza da lista são redundâncias ou exigir nenhuma explicação. Baixar arquivo de configuração Mule O primeiro passo consiste em definir o nome e tipo de conector. Qualquer provedor JMS, open-source ou comercial, pode ser definida aqui, enquanto Mule pode alcançar o servidor através da rede. As propriedades adicionais, tais como credenciais ou nomes deve ser definido aqui também. Mule vai usar esse conector para todo o tráfego JMS. Mais do que uma peça de ligação do mesmo tipo podem ser definidos, se necessário. Os conectores são identificados pelo nome; estes nomes são

Estudo de caso: Mule como um transporte JMS Comum

Embed Size (px)

Citation preview

Page 1: Estudo de caso: Mule como um transporte JMS Comum

Estudo de caso: Mule como um transporte JMS Comum

A equipe de integração aplicações tiveram que lidar com seis fornecedores

diferentes. JMS e SOAP emergiu como os transportes comuns para todas

as aplicações; 90% das comunicações poderia ter lugar ao longo JMS.

A configuração normal JMS exigiria que cada aplicativo para criar filas de

entrada e saída para cada aplicativo que ele precisa interagir. Esta

configuração "ponto-a-ponto" explodiria complexidade porque mais

aplicativos de fornecedores viria a ser adicionado à mistura, e cada

aplicativo teria que ser revisto para adicionar novas definições de

interface cada vez. A equipe de integração decidiu em vez de aproveitar os

recursos da mula para simplificar isso criando uma fila única, comum onde

todas as mensagens são enviadas. Cada mensagem tem um atributo que

indica seu tipo e encaminha para a aplicação adequada. O aplicativo capta

a mensagem na sua fila de entrada privada, processá-lo e responde

colocando uma resposta na fila comum. rotas mula a resposta para os

aplicativos apropriados.

Listagem 1 é um arquivo de configuração Mule para lidar com as

interações entre os componentes de aplicativos se comunicam através de

JMS. As regiões coloridas corresponder cada um dos próximos parágrafos.

As peças em cinza da lista são redundâncias ou exigir nenhuma explicação.

Baixar arquivo de configuração Mule

O primeiro passo consiste em definir o nome e tipo de conector. Qualquer

provedor JMS, open-source ou comercial, pode ser definida aqui,

enquanto Mule pode alcançar o servidor através da rede. As propriedades

adicionais, tais como credenciais ou nomes deve ser definido aqui

também. Mule vai usar esse conector para todo o tráfego JMS. Mais do

que uma peça de ligação do mesmo tipo podem ser definidos, se

necessário. Os conectores são identificados pelo nome; estes nomes são

Page 2: Estudo de caso: Mule como um transporte JMS Comum

usados Mule para determinar qual deles lida com uma determinada

interação. Conectores para outros transportes seria definida de um modo

semelhante.

Em seguida, defina os parâmetros globais. Estes terminais são as

interfaces entre cada aplicação e Mule. Um componente objeto de serviço

de vias de comunicação entre terminais; os parâmetros podem ser

definidos no nível do componente objeto de serviço ou podem ser

definidos globalmente. Parece mais fácil defini-las globalmente para que o

modelo e roteador configuração Mule é menos detalhada. Use a

abordagem que funciona melhor para sua aplicação.

Mule é bastante silencioso por design. Ele apenas se senta lá e aguarda o

tráfego para passar, obedientemente escrever mensagens de status para

seus logs. Algumas vezes é conveniente definir filas de saída do console

para fins de depuração já que nem todos podem ter acesso a um console

JMX. Consolas exibir ASCII ou UTF-8 saída, mas o tráfego enviado através

desta configuração mula é toda a JMS. Assim, dois transformadores são

definidos. Uma converte mensagens JMS para objetos de mula, o outro

converte esses objetos para cordas; o console pode exibir as seqüências

de diagnóstico sem problemas. Essas mensagens também podem ser

encaminhados via e-mail para cada fornecedor utilizando os transportes

Java Mail da mula sem ter que extrair o texto a partir dos registros, etc.

O modelo Mule gerencia o comportamento de tempo de execução de uma

instância de servidor e encapsula todas as suas funcionalidades. O modelo

é responsável por manter a configuração e instâncias do objeto de serviço.

O modelo para este exemplo tem um descritor, o

JMSMessageSwitchboard, que irá encaminhar todas as mensagens entre

diferentes aplicações através de seus terminais. Este contém todos os

roteadores, regras de filtragem, e definições de ponto final para garantir

que as mensagens viajam dentro das aplicações com precisão.

Page 3: Estudo de caso: Mule como um transporte JMS Comum

Uma vez que os integradores decidiu que todas as mensagens são

introduzidos através de um único ponto de entrega, eles definiram um

único roteador de entrada que escuta em um conector JMS específico.

Enquanto cada aplicação define suas saídas de mensagem para o terminal

outJMSBitco, Mule será capaz de encaminhá-los para o destino adequado.

definições de roteamento de saída requer duas partes: primeiro, definir

uma regra que corresponde a todas as mensagens JMS e os envia para

filtros específicos para definição roteador de cada aplicação; isso é o que o

todo o jogo = "true" é para. Em seguida, cada ponto de extremidade

correspondente a uma determinada aplicação contém um filtro que

corresponde a um atributo específico definido no cabeçalho da mensagem

JMS, como OrderHistoryRequest. Note-se que, neste caso, as

comunicações são assíncronas. Aplicações colocar pedidos na fila comum

e passar para outras tarefas. As respostas vão voltar em suas filas

específicas do aplicativo. Cada resposta também terá um cabeçalho da

mensagem JMS identificação; analisar a validade do cabeçalho e a carga

de dados são de responsabilidade de cada aplicação.

Cada mensagem que circula através do JMSMessageSwitchboard deve

corresponder a uma regra filtrada. Se isso não acontecer, isso significa que

um integrador esqueceu de atualizar o arquivo de configuração Mule, um

novo serviço já está on-line e usando a fila de entrada, ou há um erro de

ortografia. Um modo rápido de detectar este é o roteador catchall saída

definida para o fim das etiquetas descritor mula. Se nenhuma das regras

corresponde, Mule irá encaminhar a mensagem para stdout depois de

converter para uma string (lembre-se esses transformadores que

definimos anteriormente?).

Adicionando um novo aplicativo para este mashup torna-se um exercício

trivial: garantir que ele usa JMS para comunicações de entrada e de saída,

definir seu atributo de encaminhamento, e atualizar o arquivo de

configuração do Mule. Se o novo aplicativo se comunica através de um

protocolo diferente, como SOAP, definir o conector, terminais e um

transformador para converter JMS-to-SOAP e volta. O processo de

Page 4: Estudo de caso: Mule como um transporte JMS Comum

integração todo vai demorar cinco minutos, no máximo. Esse é o poder da

mula.