WebSphere Message Broker unterstützt keine expliziten Programmierschnittstellen, sondern es werden mehrere Programmierschnittstellen unterstützt, die heutzutage in Anwendungen zur Nachrichtenübertragung gängig sind.
Die MQI (Message Queue Interface) stellt eine kleine Anzahl an Aufrufen bereit, die einer Anwendung die Interaktion mit anderen Anwendungen über ein WebSphere MQ-Netz von Warteschlangenmanagern hinweg ermöglicht. Die Aufrufe unterstützen eine breite Palette an Parametern, die für alle denkbaren Nachrichten eine große Auswahl an Verarbeitungsoptionen bieten.
Clientanwendungen, von denen die MQI verwendet wird, können auf jedem von WebSphere MQ unterstützten Betriebssystem ausgeführt werden. Aus diesem Grund hängen eventuelle Einschränkungen im Hinblick auf Sprache oder Funktion vom jeweiligen Produkt für dieses Betriebssystem ab.
Die MQI wird in den Handbüchern WebSphere MQ Application Programming Guide und WebSphere MQ Application Programming Reference beschrieben. Darüber hinaus enthalten diese Handbücher detaillierte Informationen zur Unterstützung der Programmiersprachen und Betriebssysteme, die für Clients, die diese Schnittstelle verwenden, zur Verfügung stehen.
Die AMI (Application Messaging Interface) wurde zur Vereinfachung der Aufgaben von Anwendungsprogrammierern entwickelt. Sie bietet eine Zentralisierung der Auswahl optionaler Parameter außerhalb des Anwendungsprogramms. Darüber hinaus unterstützt sie die erweiterten Funktionen, die über den Nachrichtenbroker zur Verfügung stehen. Die AMI wurde für Anwendungen zur allgemeinen Nachrichtenübertragung (Messaging) mit und ohne Broker entwickelt.
Die Hauptfunktionen der AMI werden in Form von Optionspaketen bereitgestellt, die als 'Richtlinien' und 'Services' bezeichnet und vom Administrator definiert werden. Eine Anwendung gibt einen Service an, um die erforderliche zu Grunde liegende Messaging-Unterstützung zu bestimmen, und sie ordnet dem Senden und Empfangen einer Nachricht eine Richtlinie zu, um die Attribute (beispielsweise die Priorität) für die Nachrichtenverarbeitung zu steuern.
Die Richtlinien und Services bedeuten, dass die Anwendung die Details des MQRFH2-Headers und der MQI-Schnittstelle nicht verstehen muss.
Clientanwendungen, die die AMI verwenden, sind auf die Betriebssysteme und Programmiersprachen beschränkt, die von dieser Schnittstelle unterstützt werden. Sie finden detaillierte Informationen hierzu in der aktuellen Ausgabe des Handbuchs WebSphere MQ Application Messaging Interface oder auf der Website von WebSphere MQ.
JMS ist eine Anwendungsprogrammierschnittstelle, die Java-Funktionen zur Verarbeitung von Nachrichten zur Verfügung stellt. Die Anwendungsprogrammierschnittstelle JMS wurde von Messaging-Softwareanbietern (einschließlich IBM in Partnerschaft mit Sun Microsystems Inc.) entwickelt und bietet eine gemeinsame Oberfläche für den Zugriff auf verschiedene Messaging-Systeme für Unternehmen, einschließlich WebSphere MQ. Diese Schnittstelle eignet sich für Punkt-zu-Punkt- und Publish/Subscribe-Anwendungen.
Die Messaging-Clients von JMS werden als JMS-Clients und das Messaging-System als JMS-Provider bezeichnet. Bei einer JMS-Anwendung handelt es sich um ein Business-System, das JMS-Clients und mindestens einen JMS-Provider beinhaltet. Clientanwendungen, die die JMS-Schnittstelle verwenden, werden in der Programmiersprache 'Java' geschrieben und sind daher auf die JVM-Versionen beschränkt, die auf dem fraglichen Betriebssystem unterstützt werden. Weitere Informationen hierzu finden Sie im Handbuch WebSphere MQ Using Java oder auf der Website von WebSphere MQ.
Diese werden in WebSphere MQ Mobile Transport beschrieben.
Diese Nachrichten werden in WebSphere MQ Telemetry Transport beschrieben.
Falls Sie bereits über Endbenutzeranwendungen verfügen, die für diese Schnittstellen geschrieben wurden, können diese normalerweise unverändert in einer Brokerumgebung ausgeführt werden. Sie müssen die Nachrichtenflüsse für die Interaktion mit diesen Anwendungen über die unterstützten Protokolle und unter Verwendung der Empfangs- und Sendeknoten erstellen. WebSphere Message Broker stellt integrierte Empfangs- und Sendeknoten für die unterstützten Protokolle bereit, und Sie können bei Bedarf Ihre eigenen benutzerdefinierten Knoten erstellen, um zusätzliche Protokolle zu unterstützen.
Sie können auch neue Endbenutzeranwendungen für die Interaktion mit dem Broker erstellen.
Da WebSphere Message Broker für viele WebSphere MQ-Header Parser bereitstellt, können über die Protokolle WebSphere MQ Enterprise Transport, WebSphere MQ Mobile Transport und WebSphere MQ Telemetry Transport Nachrichten akzeptiert werden, die solche Header enthalten.
Bei dem ersten Header in den Nachrichten muss es sich um den WebSphere MQ-Nachrichtendeskriptor (MQMD) handeln, der in jeder Nachricht vor den Benutzer- oder Anwendungsdaten stehen muss. Der MQMD enthält grundlegende Steuerinformationen, die mit der Nachricht gesendet werden müssen. Dazu gehören folgende:
Wenn eine Nachricht von einem WebSphere Message Broker-Broker verarbeitet wird, weist sie typischerweise (aber nicht notwendigerweise) einen oder mehrere zusätzliche Header auf. Der Header, der dem MQMD folgt, wird immer im Formatfeld des MQMD angegeben und enthält selbst ein weiteres Formatfeld, in dem entweder der nachfolgende Header oder das Format der Benutzerdaten angegeben wird.
Bei den zusätzlichen Headern kann es sich um folgende handeln:
Verwenden Sie den MQRFH2-Header in allen neuen Anwendungen, die für die WebSphere Message Broker-Umgebung geschrieben wurden und ein unterstütztes Protokoll auf Basis der WebSphere MQ-Technologie verwenden. Der MQRFH2-Header sollte unmittelbar vor dem Hauptteil der Nachricht (d. h. dem letzten Header) stehen.
Wenn kein MQRFH2-Header enthalten ist (was bei einer Anwendung, die ein unterstütztes Protokoll verwendet, das nicht auf der WebSphere MQ-Technologie basiert, normalerweise der Fall ist), müssen Sie den Nachrichtenfluss, der ihre Nachrichten verarbeitet, so konfigurieren (durch die Festlegung der Eigenschaften des Empfangsknotens), dass die Nachrichtenmerkmale angegeben werden.