http://www.inf.ufsc.br/~frank/INE6514/JMS/
http://www.brunobraga.com.br/tag/jms/
API para middleware MOM(Middleware Orientado
a Mensagem) orientado à mensagens. Com
ela duas ou mais aplicações podem se comunicar por mensagem.
Permite a comunicação entre sistemas(aplicações ou
módulos) sem a necessidade de conhecer as interfaces. diferentemente do e-mail
convencional.
Só precisa ter um destinatário em comum e que
compartilhem uma mesma mensagem.
Podemos destacar o uso da JMS quando:
·
Um componente não pode depender da interface de
outro componente, podendo ser facilmente substituído.
·
A aplicação
deve rodar mesmo que nem todos os seus módulos estejam disponíveis.
·
Sua regra
de negócio permite que você envie uma mensagem e não precise esperar uma
resposta imediata.
·
EAI
JMS é dividida
em 4 partes:
·
JMS
Provider: Sistema que implementa as interfaces JMS e provê controle sobre
algumas funções. Ele é o elo de ligação
entre os clientes.
·
Objetos
administrativos: Objetos pré-configurados criados pelas ferramentas
administrativas para uso dos clientes JMS.
São de dois tipos: Connection Factory e Destination.
·
Mensagens:
São os objetos trocados entre os clientes(produtor-consumidor). Podem ser de diferentes tipos.
·
Clientes
JMS: São os componentes ou sistemas que produzem ou consomem as mensagens.
JMS Provider:
Aplicação que fornece controle e administração aos serviços oferecidos pela
JMS. JMS Provider equivale ao Container
EJB ou Servlet Container. Ele que
gerencia o envio e o recebimento das mensagens pelos clientes. Uma de suas funções é o armazenamento de
mensagens que não forem entregues.
Dois
modelo de troca de mensagem:
·
Ponto a ponto ou modelo de filas (Point-to-Point(PTP)
Producer
envia a msg para uma fila e SÓ um consumidor lê. Producer conhece o destino. Producer não precisa estar em execução quando
o consumidor lê e vice-versa. O
Provider, de acordo com os parametros da mensagem, pode armazená-la até que
sejam consumida ou seu tempo expire.
- 3 Elementos: Fila(Queue), um produtor e um
conjumidor.
- Cada mensagem tem apenas um consumidor
- Produtor e consumidor não mantém relação de
tempo entre eles
- Consumidor reconhece quando a mensagem é
processada corretamente.
·
Publihs/subscribe(pub/sub)
Um
publicador publica a mensagem para um Topic e todos os assinantes(subscribers)
registrados naquele tópico lêem a mensagem. Por default, só o Subscriber tem
que estar executando para receber a mensagem, mas pode-se criar mensagens
“Durable”.
A leitura das mensagens pode ser:
·
Síncrona:
Chama o método receive, onde a aplicação
espera pela mensagem ou que o tempo de espera expire.
·
Assíncrona:
Registra-se em um listener associado a um consumidor. Quando a mensagem chega, o listener é avisado
e ativa o processo de busca da mensagem.
Passos
1. Localizar o provedor JMS(Obtem o Driver
JMS, instancia de ConnectionFactory
2. Criar um conexão JMS
3. Criar uma Sessão JMS
4. Localizar o destino
5. Criar um JMS Provider ou um JMS Consumer
6. Enviar ou Receber suas mensagens
·
Soluções
JMS Providers
JBossMQ, JBoss Messaging, Oracle AQ and
MQSeries(www.ibm.com), SonicMQ(progress.com), OpemJMs(openjms.org)
Table 1: Relationship of Point-To-Point and Publish-Subscribe
interfaces
|
Nenhum comentário:
Postar um comentário