Différences entre l'intégration de services et un réseau IBM MQ
Les applications peuvent utiliser à la fois l'intégration de services et IBM MQ pour transmettre les messages. La messagerie d'intégration de services utilise des moteurs de messagerie tandis que IBM MQ utilise des gestionnaires de files d'attente.
IBM MQ est un système autonome de messagerie et de mise en file d'attente qui ne fait pas partie d'un serveur d'applications. Dans IBM MQ, les services de messagerie et de mise en file d'attente sont fournis par les gestionnaires de files d'attente. Une application se connecte à un gestionnaire de files d'attente et utilise une interface de programmation d'application pour placer les messages dans des files d'attente et les en extraire. L'une de ces interfaces d'application est l'API JMS (Java Messaging Service). Les applications peuvent se connecter directement à un gestionnaire de files d'attente en utilisant une interface d'appel ou indirectement en utilisant une connexion de socket TCP/IP. Cette connexion qu'utilise une application pour se connecter à un gestionnaire de files d'attente s'appelle un canal MQI. L'application utilise la même interface de programmation pour les connexions directes (mode de liaison) et indirectes (mode client).
L'intégration de services fait partie de WebSphere Application Server. Dans l'intégration de services, les services de messagerie et de mise en file d'attente sont fournis par les moteurs de messagerie (ME). Un moteur de messagerie d'intégration de services s'exécute dans un serveur WebSphere Application Server. Un moteur de messagerie d'intégration de services est similaire à un gestionnaire de files d'attente IBM MQ plus son agent MCA (Message channel agent) utilisé pour transférer des messages d'un gestionnaire de files d'attente vers un autre. Toutefois, contrairement à un gestionnaire de files d'attente, un moteur de messagerie contient également des fonctions de transformation et de routage.
Une application WebSphere Application Server se connecte à un moteur de messagerie en utilisant les services JMS et utilise l'interface de programmation d'application JMS pour envoyer des messages aux destinations et en recevoir. Une destination JMS est similaire à une file d'attente ou un sujet IBM MQ. Un moteur de messagerie d'intégration de services utilise les fonctions de communication WebSphere Application Server pour connecter les clients en dehors du serveur WAS où il s'exécute et pour communiquer avec les autres moteurs de messagerie. Les moteurs de messagerie d'intégration de services fournissent les services pour transformer, router et prendre en charge la messagerie de publication-abonnement. Aucun courtier de messages distinct n'est nécessaire.
Les applications IBM MQ réceptionnent les messages des files d'attente définies en local sur un gestionnaire de files d'attente ou (pour IBM MQ for z/OS) un groupe de partage de file d'attente. Dans l'intégration de services, le composant équivalent à une file d'attente définie localement IBM MQ est un point de file d'attente dans le moteur de messagerie local. En intégration de services, il n'existe pas de restriction similaire imposée sur le point de file d'attente et l'emplacement du bus où l'application de réception est connectée.
L'API JMS est accessible aux applications de messagerie dans WebSphere Application Server et IBM MQ. IBM MQ dispose également d'une API native appellée MQI (Message Queue Interface). Les interfaces d'envoi et de réception JMS sont similaires aux interfaces put et get MQI.
Chaque gestionnaire de files d'attente IBM MQ comporte normalement une file d'attente de rebut (ou file d'attente de messages non distribués). Les messages sont placés dans cette file d'attente s'ils ne peuvent pas être distribués à leur destination prévue. Dans l'intégration de services WebSphere Application Server, les équivalents des files d'attente de rebut sont des destinations d'exception. Une destination d'exception est automatiquement créée pour chaque moteur de messagerie. Si les messages ne peuvent pas être remis, ils sont placés dans la destination d'exception de la file d'attente, si elle existe, ou dans la destination d'exception par défaut.