Neste modelo temos os seguintes itens:
· Fila (Queue): Recipiente que recebe uma ou mais mensagens ou disponibiliza mensagens para serem lidas (consumidas);
· Produtor (producer): Cria e envia mensagens para uma fila;
· Consumidor (consumer): Lê mensagens de uma fila.
Neste modo existe um produtor (producer) que é capaz de criar e envia mensagens para uma fila, onde um consumidor (consumer) poderá ler. Podem existir muitas filas, mas o produtor e o consumidor podem escrever ou ler, respectivamente, apenas de uma determinada fila. Um consumidor pode ler várias filas, mas não simultaneamente, uma após outra, o mesmo valor para o consumidor. No entanto, na prática, são criados um produtor e um consumidor por fila. Quando uma mensagem está na fila:
· Apenas um consumidor irá ler a mensagem (dois consumidores não recebem a mesma mensagem);
· A fila recebe a mensagem, quando um produtor envia uma mensagem para a fila não é necessário que o consumidor esteja em execução, do mesmo modo, quando o consumidor lê uma mensagem, não é necessário que o produtor esteja em execução;
· O modelo JMS prevê que quando uma mensagem é lida com sucesso pelo consumidor, ele envia um aviso de reconhecimento (acknowledged) para o produtor.
Veja a figura exemplificando a visão ponto-a-ponto:
Figura (clique para ampliar)