Java Messsage Service (JMS) definiert einen Standard für eine einheitliche Java Zugriffsschnittstelle auf nachrichtenorientierte Middleware (Message Queuing, Message Brokering). JMS ist ein integraler Bestandteil der Java-Plattform. Des JMS Standard definiert also die JMS-API – eine Schnittstelle über die Java-Anwendungen (JMS-Clients) die Dienste eines beliebigen MOM Servers (JMS-Providers) nutzen können. Die JMS- Provider (sowie die gesamte Schnittstellen-) Implementierung ist herstellerspezifisch.
Im Standard sind zwei Rollen vorgesehen:
Der JMS-Provider dient als Oberbegriff für den MOM-Server.
Der JMS-Client steht für Java-Anwendung, die einen JMS-Provider nutzen möchte.
Nachrichten - Haben einen bestimmten Format und sind zum Versenden über den JMS-Provider bestimmt.
Administrative-Objekte - werden von den JMS-Providern bereitgestellt um dem Klient die Dienste und Informationen z.B. über Verbindungsaufbau bereit zu stellen. Der Standard definiert zwei davon:
ConnectionFactory - enenthält alle notwendigen Informationen zum Aufbau der Verbindungen zu einem JMS-Provider und die Methoden zu deren Intialisierung.
Destination - repräsentiert eine konkrete Warteschlange des JMS-Providers.
Der Aufbau von Verbindungen zum JMS-Service
Send, Receive (selectives Receive möglich)
-
Erhaltung der Nachrichtenreihenfolge im Rahmen einer Session
Header (standard); message-id, correlation-id, delivery mode (persistent/not-persistent), destination (queue), priority, redelivered, reply-to, timestamp
Properties (optional); hertellerspezifische, anwendungsspezifische und optionale standardisierte Eigenschaften
Body; eigentlicher Ihalt, verschiedene Inhaltstypen (Bytes, Text, Java Object, …)