JMS Java Message Queue
Eigenschaften:
 - Asynchrone Zustellung: Der Empfäger kann später empfangen, es muss nicht quasi sofort sein [JMS Tut. 42.1.1]
- Zuverlässig (reliable): Die Nachricht wird genau einmal ausgeliefert [JMS Tut. 42.1.1]
- Nachrichten werden gepuffert (← Asynchron und zuverlässig)
- nicht Brokerfree (hat einen Broker zumindest ActiveMQ - der wird gebraucht, um die asynchrone Zustellung zu garantieren)
JMS unterstützt zwei Modelle:
 - Point to Point (PTP)
- Nachricht wird an Message Queue gesendet, Clients holen nachricht aus Queue
 
- publish subscribe
- 
  
   - Topic in einer Content Hierarchie wird gesendet oder empfangen
- Sender/Publisher und Empfänger sind annonym (kennen sich nicht)
- System ist für die Verteilung verantwortlich.
 
JMS-Client kann auch Java Transaction API (JTA) nutzen (javax.transaction)
Es gibt verschiedene konkrete JMS Service Provider.(Kap.2.3)
Wichtige Begriffe
 - Connection [JEE Tut.42.3.2]
- Verbindung zum JMS-Provider. Intern kann es z.B. ein TCP/IP-Socket zwischen einem Client und einem Provider Dienstdaemon sein
 
- Session [JEE Tut.42.3.3]
- ein Kontext für einen Thread zum produzieren und konsumieren.
 hier werden die Message-Listeners ausgeführt
 Sessions haben einem Transkationellen Kontext für eine Gruppe von 
     zu sendenen und zu empfangenen Nachrichten.
- JMSContext[JEE Tut.42.3.4]
- Kombination zwischen Connection und Session in einem Objekt
 
Links
 - eWP
- JMS-Konzepte aus JavaEE-Tutorial
Implementierungen
ActiveMQ