Você está na página 1de 2

Message-Oriented Middleware

1.Viso Geral
Middleware um mediador, ento entendemos que o Middleware orientado a mensagens uma
canalizao entre dois sistemas, responsvel por gerenciar as mensagens entre eles trocadas. Um
suporte computacional para comunicao atravs de mensagens. Esse suporte tambem pode ser referido
como: Servio, sistema, barramento, Middleware de mensagens, eventos, filas e Mailboxes.
Filas de sistemas de mensagens so comuns em uma variedade de arquiteturas de software e domnios,
incluindo sistemas financeiros, de sade e o segmento de viagens. O Message-Oriented Middleware
(MOM) o paradigma dominante de sistemas de mensagens para sistemas distribudos requer que
um sistema de enfileiramento seja especialmente instalado e mantido.
O MOM como um servio de e-mail. Quando quer se comunicar com algum voc envia um e-mail e
continua fazendo as coisas que tem para fazer, sem ter que parar para aguardar por uma resposta. Essa
comunicao atravs de e-mail ocorre de forma assncrona, isto , sem interromper as atividades do
remetente.
JMS um padro de interfaces para acesso ao MOM. Projetado pela Sun com o apoio de empresas
associadas, e lanado para o mercado em agosto de 1998, o JMS surgiu para permitir que os aplicativos
escritos na linguagem Java pudessem criar, receber e enviar mensagens destinadas ou oriundas de
outros aplicativos. A principal caracterstica deste tipo de processamento, classificado como fracamente
acoplado, que todas as operaes que envolvem a troca de mensagens so feitas de forma assncrona,
fazendo com que as aplicaes participantes no precisem ficar bloqueadas esperando o trmino de
alguma computao remotamente solicitada, como ocorre naquelas aplicaes que utilizam o Remote
Procedure Call(RPC) ou mesmo o Remote Method Invocation(RMI).
O JMS define formalmente um grupo de interfaces e semnticas que permitem que aplicaes escritas
em Java possam acessar os servios de qualquer Message-Oriented Middleware(MOM).

2. Comunicao
Caractersticas Principais
A unidade de comunicao uma mensagem semelhante ao que chamado de evento em mecanismos
de eventos;
Comunicao ocorre de forma assncrona;
Um elemento centralizador, possivelmente replicado, gerencia as filas de mensagens.
Primitivas de comunicao
PUT: adiciona uma mensagem a uma determinada fila
GET: obtem uma mensagem de uma certa fila, bloqueando caso a mesma esteja vazia
POLL: verifica a fila sem bloquear, obtendo uma mensagem caso a fila no esteja vazia
NOTIFY: fornece handler para ser chamado quando uma mensagem for colocada em uma determinada
fila
Formato das mensagens
Cada fila pode adotar um formato prprio, podendo ter desde uma simples cadeia de caracteres,
documentos em XML ou um objeto serializado(A serializao o processo de armazenar um objeto ,
incluindo todos os atributos pblicos e privados para um stream(binrio, XML, etc).
Suporte de comunicao
Pode ser construdo sobre os mais diversos mecanismos de comunicao;
Os participantes da comunicao usam API para enviar e receber mensagens;
O elemento principal da comunicao o Message Broker/Provider que intermdia a interao entre os
participantes e gerencia as filas de mensagens.
Confiabilidade
Requisitos de confiabilidade podem ser impostos no envio das mensagens;
Protocolos de entrega confivel de mensagens podem ser usados;
Acordo e ordenao podem ser observados na entrega das mensagens a grupos de destinatrios;
Coordenao efetuada pelo Message Broker.
Confidencialidade e controle de acesso
Mensagens podem ser criptografadas, de modo a impedir acesso no autorizado;
Filas podem ter controle de acesso, impondo restries quanto a quem pode produzir e consumir
mensagens;
Controle feito pelo Message Broker.

3. Gesto de Filas

Message Brokers um corretor de mensagens, um mdulo intermedirio que traduz uma mensagem do
protocolo formal de mensagens do remetente para o protocolo formal de mensagens do receptor.
Corretores de mensagens so elementos de redes de telecomunicaes, onde programas (aplicativos de
software) se comunicam trocando mensagens formalmente definidos. Corretores de mensagens so um
bloco de construo de middleware orientado a mensagem.
A finalidade de um corretor levar mensagens recebidas a partir de aplicativos e executar alguma ao
sobre eles. A seguir, so exemplos de aes que podem ser tomadas no corretor: Rotear mensagens
para um ou mais dos muitos destinos, transformar mensagens para uma representao alternativa,
execute agregao mensagem, decompondo as mensagens em vrias mensagens e envi-los ao seu
destino, em seguida, recompondo as respostas em uma mensagem para retornar para o usurio,
interagir com um repositrio externo para aumentar uma mensagem ou armazen-lo, invoque os
servios da Web para recuperar dados, responder a eventos ou erros, fornecer mensagem com base em
contedo e tema de roteamento usando o padro de publicao-assinatura.

4. Solues MOM
HornetQ Jboss(Open Source): Licenciado pelo Apache, um projeto open source para construir um
multi-protocolo, incorporvel, de alto desempenho, agrupado, sistema de mensagens assncrono. Iniciou
com o nome de JBoss Messaging 2.0.
WebSphere MQ IMB: Lanado pela IBM, permite que aplicativos independentes e potencialmente no
concorrentes em um sistema distribudo se comuniquem uns com os outros. Iniciou com o nome de
MQSeries
Rendezvous TIBCO: Lanado pela TIBCO, um software que fornece um barramento de mensagens
para integrao de aplicaes empresariais (EAI).
Aurea SonicMQ Progress Software: Lanando pela Progress, um sistema de entrega de mensagens,
iniciado como SonicMQ.
FioranoMQ - Fiorano : Lanado pela Fiorano, JMS capaz de entregar mensagens com baixa latncia, em
tempo real(sncrona e assncrona) para alto desempenho, alta disponibilidade e aplicaes Workflow.
MSMQ Microsoft: um componente do Windows, uma aplicao de fila de mensagens, esta
disponvel desde o Win95 at as verses atuais e servidores.
OpenJMS Sun Microsystems: um projeto de cdigo aberto, cujo objetivo a implementao da API
Java Message Service, de acordo com suas especificaes.
Simple Queue Service Amazon: Lanado pela Amazon, um sistema de servios de fila de mensagens,
a Amazon declara que no uma JMS e no implementa nenhuma interface JMS, no necessrio ter
servidor local, a Amazon fornece o servidor e cobra por uso.
ActiveMQ Apache: um corretor de mensagens de acordo com as especificaes do JMS, fornece
recursos empresariais, utilizado em implementaes Enterprise Service Bus, como o Apache ServiceMix
e o Mule, Apache Camel e Apache CXF em SOA projetos de infraestrutura.

5. Exemplo de MOM
O caso de uma montadora de automveis que necessita enviar uma nova lista de preos de seus
veculos para a sua rede de empresas concessionrias. Se estivesse utilizando um sistema do tipo RPC,
ou mesmo RMI, haveria a necessidade de a montadora estar conectada s suas concessionrias em pelo
menos algum instante para que a nova lista pudesse ser obtida e atualizada. Caso fosse uma aplicao
utilizando MOM, o aplicativo na concessionria produziria a mensagem contendo a nova lista de preos e
enviaria a mensagem para o MOM. O MOM que ficaria encarregado de entregar, com segurana, esta
mensagem aos aplicativos das concessionrias. O MOM responsabiliza-se por armazenar as mensagens
que sero enviadas e verificar se os destinatrios esto disponveis para receb-las. Com isto, a
montadora de automveis poder enviar sua lista em qualquer instante, pois ter a certeza que ela ser
recebida por toda a sua rede de concessionrias em algum momento. Por outro lado, as concessionrias
precisam apenas desenvolver o aplicativo que ir fazer a recepo das mensagens oriundas da
montadora, e obviamente, realizar os procedimentos rotineiros de atualizao de suas bases de dados.
As concessionrias tambm podem produzir mensagens. Seria o caso, por exemplo, de recomposio de
seus estoques. A concessionria produz a mensagem e envia para o MOM que por sua vez ficar
encarregado de encaminh-la para a montadora. Ambas as operaes foram realizadas de forma
totalmente assncrona. Tanto a montadora quanto as concessionrias fazem o intercmbio de suas
operaes sem que haja um acoplamento forte entre seus aplicativos.