Diretrizes: JMS (Java Messaging Service)
Tópicos
Introdução
O JMS (Java Message Service) pode ser utilizado para comunicação entre os componentes.
Os recursos do JMS, como a comunicação assíncrona e a entrega garantida,
o tornam uma opção popular para aplicativos corporativos. O JMS pode ser utilizado para comunicação
síncrona também, mas a utilização assíncrona é dominante.
Essas diretrizes descrevem quando utilizar o JMS, como modelá-lo e algumas considerações
aplicáveis de design.
Para obter informações adicionais sobre o JMS, consulte Conceitos: Java Messaging Service.
Modelando o JMS
Os clientes JMS são modelados como classes. O diagrama a seguir ilustra uma interação típica de um produtor de mensagens para o envio de mensagens utilizando o JMS.
O exemplo está utilizando uma fila como destino.

Um cliente JMS deve implementar a interface do listener de mensagens. O provedor JMS garante que um método especial onMessage seja chamado sempre que chega uma mensagem.

O diagrama seguinte mostra uma configuração típica de um cliente consumidor do JMS.

Projetando o JMS
Há duas maneiras principais de projetar aplicativos JMS: ponto-a-ponto
e publicar-assinar.
Em um modelo ponto-a-ponto, o JMS é utilizado para entregar uma mensagem para UM cliente.

Os produtores de mensagens comunicam-se com um consumidor de mensagens, enviando mensagens para
uma fila. Conceitualmente, uma fila possui apenas um consumidor, mas vários provedores de JMS
permitem que vários consumidores suportem o equilíbrio de carga. Quando são utilizados
vários consumidores, cada mensagem é manipulada por um e apenas um consumidor. As mensagens são
retidas na fila até que sejam consumidas ou até que expirem.
Em um modelo publicar-assinar, o padrão de comunicação permite que vários
produtores enviem mensagens para vários consumidores. Os consumidores assinam nos tópicos
e o middleware entrega as mensagens aos consumidores.

Em comparação com o modelo ponto-a-ponto, o modelo publicar-e-assinar mantém as mensagens em um tópico até que todos os clientes as tenham recebido.
Nota: Desde o JMS 1.1, você pode combinar esses dois modelos no mesmo aplicativo JMS.
|