title: Java Message Service
text: # 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.
  