segunda-feira, 26 de agosto de 2013

Introdução JMS(Java Message Service) - Português

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)




JMS Parent
Publish-Subscribe Domain
Point-To-Point Domain
Destination
Topic
Queue
ConnectionFactory
TopicConnectionFactory
QueueConnectionFactory
Connection
TopicConnection
QueueConnection
Session
TopicSession
QueueSession
MessageProducer
TopicPublisher
QueueSender
MessageConsumer
TopicSubscriber
QueueReceiver, QueueBrowser
Table 1: Relationship of Point-To-Point and Publish-Subscribe interfaces

Nenhum comentário:

Postar um comentário