Java Message Service
# Java Message Service

In informatica Java Message Service (o JMS) è l'insieme di API, appartenente a Java EE, che consente ad applicazioni Java presenti in una rete di scambiarsi messaggi tra loro. JMS è definito dalle specifiche sviluppate sotto il Java Community Process come JSR 914.

JMS è stato distribuito per la prima volta nel 1998. La Sun Microsystems, insieme ad altri produttori, lo svilupparono per creare un'interfaccia che fosse indipendente sia dal sistema operativo che dalla specifica implementazione del sistema di messaging. Tale sistema, detto loosely coupled (a differenza dei sistemi tightly coupled come i socket del protocollo TCP, CORBA o RMI) rende possibile la comunicazione tra applicazioni mediante lo scambio di messaggi attraverso un gestore intermedio (chiamato provider) che in questo caso è una coda.

## Componenti

Gli elementi componenti di JMS sono:

### JMS provider (anche detto JMS broker)

    una implementazione dell'interfaccia JMS per un MOM (Message-oriented middleware). I provider possono essere implementati sia con JMS Java sia come adattatori di un MOM non Java.

### JMS client

    una applicazione o un processo che invia e/o riceve messaggi

### JMS producer

    un client JMS che crea ed invia messaggi.

### JMS consumer

    un client JMS che riceve messaggi.

### JMS message

    un oggetto che contiene i dati trasferiti tra i JMS client

### JMS queue

    una coda che raccoglie i messaggi inviati che sono in attesa di essere letti. I messaggi vengono consegnati nell'ordine in cui vengono inviati ed una volta letti vengono rimossi dalla coda.

### JMS topic

    Un meccanismo di distribuzione per la pubblicazione di messaggi inviati a più client.
