14.7Java Message Service (JMS)
Der JMS (http://java.sun.com/products/jms/) dient dem asynchronen Austausch von Nachrichten über Rechnergrenzen hinweg. Er unterstützt zwei unterschiedliche Ansätze zum Versenden von Nachrichten: zum einen die Nachrichtenschlangen (Message Queues) und zum anderen ein Anmelde-Versende-System (Publish-Subscribe). Bei gerichteten Punkt-zu-Punkt-Verbindungen (auch Point-to-Point-, PTP-, P2P-Systeme genannt) sendet ein Client eine Nachricht an einen Empfänger, der die Nachricht in eine Queue einreiht. JMS definiert, wie der Client Nachrichten verschicken kann und wie die Nachrichten aus der Schlange genommen werden. Beim Anmeldesystem interessiert sich der Client für bestimmte Nachrichten, die dann automatisch verteilt werden. Diese Nachrichten heißen in JMS Topics.
Jede Nachricht, die JMS versendet, besteht aus einem Kopf (Header), einigen Eigenschaften (Properties) und dem Körper (Body). Der Header enthält Felder mit Angaben zur Identität und nötige Informationen, damit die Nachricht übermittelt werden kann (Routing-Informationen). Die Properties sind zusätzliche Felder und können von jeder Applikation selbst bestimmt werden. Der Datenteil bildet den Körper, der aus unterschiedlichen Formaten bestehen kann: einem Datenstrom, der sequenziell verarbeitet wird, Schlüssel-Wert-Paaren, Text, einem Java-Objekt oder uninterpretierten Bytes.