NACHRICHTENORIENTIERTE MIDDLEWARE (MOM)
MOM ist eine Konnektivitätssoftware, die aus Diensten besteht, die es mehreren Anwendungen, die auf einem oder mehreren Rechnern laufen, ermöglichen, über ein Netz zu interagieren. Anwendungen, die Nachrichten in eine Warteschlange stellen, verwenden eine asynchrone Verarbeitung, um Nachrichten zu senden und zu empfangen. Sie lesen und bearbeiten die Nachrichten unabhängig voneinander.
In ihrer einfachsten Form sieht eine Nachricht, die von einer Anwendung an eine andere Anwendung gesendet wird, etwa so aus:

Für diese Funktionalität gibt es viele Implementierungen, einige sind Open Source, andere proprietär. Einige Beispiele sind IBM MQSeries, Apache ActiveMQ, RabbitM, Kafka, etc.
In diesem Artikel gehen wir näher auf IBM MQ ein, da es die am weitesten verbreitete Implementierung im Unternehmen ist.
IBM MQ
IBM MQ ermöglicht Anwendungsprogrammen die Verwendung von Message Queuing zur Teilnahme an der nachrichtengesteuerten Verarbeitung. Anwendungsprogramme können über verschiedene Plattformen hinweg kommunizieren, indem sie die entsprechenden Message-Queuing-Softwareprodukte verwenden.
IBM MQ-Produkte implementieren eine gemeinsame Schnittstelle für die Anwendungsprogrammierung, die als Message Queue Interface (oder MQI) bekannt ist, unabhängig davon, wo die Anwendungen ausgeführt werden. Dies erleichtert Ihnen die Portierung von Anwendungsprogrammen von einer Plattform auf eine andere.
Die Hauptkomponente von IBM MQ ist der Warteschlangenmanager. Der Queue-Manager ist ein Systemprogramm, das einen logischen Container für die Nachrichtenwarteschlangen-Dienste bereitstellt und die von IBM MQ verwendeten Ressourcen besitzt und verwaltet. Zu diesen Ressourcen gehören Warteschlangen, Kanäle, Prozessdefinitionen usw.
Eine einfache Konfiguration von zwei MQ-Warteschlangenmanagern würde wie folgt aussehen:

Im einfachsten Fall ist eine Warteschlange ein vom Warteschlangenmanager reservierter Speicherbereich, in dem Nachrichten auf ihrem Weg von einem Programm zum anderen gespeichert werden. Standardmäßig funktioniert sie wie eine physische Warteschlange: first in, first out [FIFO]. Es gibt mehrere verschiedene Arten von Warteschlangen:
Lokales Queue-Objekt
Bezeichnet eine lokale Warteschlange, die zu dem Warteschlangenmanager gehört, mit dem die Anwendung verbunden ist. Eine lokale Warteschlange ist der einzige Ort, an dem Nachrichten physisch gespeichert werden.
Entferntes Warteschlangenobjekt
Identifiziert eine Warteschlange, die zu einem anderen Warteschlangenmanager gehört, der nicht derjenige ist, mit dem die Anwendung verbunden ist. Wenn eine Anwendung eine entfernte Warteschlange öffnet, sorgt der Warteschlangenmanager, mit dem die Anwendung verbunden ist, dafür, dass die Nachrichten gekennzeichnet und lokal gespeichert werden, um sie an einen anderen Warteschlangenmanager zu senden.
Alias queue object ist keine Warteschlange, sondern ein Objektzeiger auf eine lokale oder entfernte Warteschlange.
Modell Warteschlangenobjekt
Definiert einen Satz von Warteschlangenattributen, der als Vorlage für die Erstellung einer dynamischen Warteschlange verwendet wird. Kanäle sind Objekte, die einen Kommunikationspfad von einem Warteschlangenmanager zu einem anderen bereitstellen. Channels werden in verteilten Warteschlangen verwendet, um Nachrichten von einem Warteschlangenmanager zu einem anderen zu übertragen. In IBM MQ gibt es zwei Kategorien von Kanälen:
- Nachrichtenkanäle - sind Einwegverbindungen, die zwei Warteschlangenmanager über Nachrichtenkanalagenten miteinander verbinden
- MQI-Kanäle - verbinden einen WebSphere MQ-Client mit einem Warteschlangenmanager auf einem Server-Rechner und werden durch einen MQCONN- oder MQCONNX-Aufruf eingerichtet.
Ein MQ-Kanal ist eine bidirektionale Verbindung, die ausschließlich zur Übertragung von MQI-Aufrufen und -Antworten verwendet wird. Es gibt zwei Kanaltypen für MQI-Kanaldefinitionen:
Client-Verbindungskanal - verbindet sich mit dem IBM MQ-Client
Server-Verbindungskanal - stellt eine Verbindung zu dem Server her, auf dem der Queue Manager läuft Eine IBM MQ-Nachricht besteht aus zwei Teilen:
- Nachrichtenkopf - Nachrichtensteuerungsinformationen, die einen Teil mit fester Größe und einen Teil mit variabler Größe enthalten
- Nachrichtentext - Anwendungsdaten, die eine beliebige Art von Daten enthalten (Text oder binär)
Zu den IBM MQ-Nachrichtentypen gehören:Datagramm - es wird keine Antwort erwartet; Anforderung - es wird eine Antwort erwartet; Antwort - Antwort auf eine Anforderungsnachricht; Bericht - enthält Statusinformationen vom Warteschlangenmanager oder einer anderen Anwendung;

