Guide WMQ
Guide WMQ – – WAS 14/02/2008 WAS 14/02/2008
Introduction à WebSphere MQ Introduction à WebSphere MQ
Luc Luc -Michel - Michel Demey Demey http://
http://demey demey- -consulting.fr consulting.fr
WebSphere MQ WebSphere MQ
• • Logiciel IBM, catégorie « Logiciel IBM, catégorie « middleware middleware » »
• • Autres noms : Autres noms :
– – MQSeries MQSeries – – MQM MQM
– – WMQ WMQ
• • Version 1 en 12/1994 Version 1 en 12/1994
• • Dérivé du produit Dérivé du produit ezBridge ezBridge d’ d’ Apertus Apertus
WebSphere MQ WebSphere MQ
• • Permet aux applications d’échanger des données en Permet aux applications d’échanger des données en mode «
mode « message message » »
• • Communications asynchrones, plates Communications asynchrones, plates - - formes formes hétérogènes
hétérogènes
• • WMQ : 85 % de part de marché dans le messagging WMQ : 85 % de part de marché dans le messagging inter
inter - - applicatif applicatif
• • WMQ est WMQ est LE LE standard de facto pour ce type de fonction standard de facto pour ce type de fonction
• • Concurrence Concurrence
– – MSMQ (Microsoft) MSMQ (Microsoft)
– – Active MQ (Open Source) Active MQ (Open Source) – – DecMessageQ, DecMessageQ , Tibco Tibco, … , …
Non inter Non inter- -op opé érables rables avec WMQ avec WMQ
WebSphere MQ WebSphere MQ
WMQ fournit : WMQ fournit :
• • Une infrastructure de transport, pour les messages MQ Une infrastructure de transport, pour les messages MQ et JMS
et JMS
– – (JMS Provider au sens de J2EE 1.3) (JMS Provider au sens de J2EE 1.3)
• • Moteurs de messaging Moteurs de messaging locaux locaux
• • Clients MQ Clients MQ
• • Fonctions de clustering Fonctions de clustering ( ( Load Load Balancing Balancing , Haute , Haute Disponibilité)
Disponibilité)
• • Interface avec les applications (API) Interface avec les applications (API)
• • Interface d’administration (API, GUI, events Interface d’administration (API, GUI, events) )
• •
WebSphere MQ WebSphere MQ
Caractéristiques : Caractéristiques :
• • Asynchrone Asynchrone
– – « « time time independance independance » »
• • Très haute fiabilité (standard bancaire) Très haute fiabilité (standard bancaire)
• • Découplage des applications et des plates- Découplage des applications et des plates - formes
formes
– – « « loosely loosely coupled coupled » »
• • Disponible sur plus de 80 plates- Disponible sur plus de 80 plates - formes formes
• • API communs, nombreux langage API communs, nombreux langage
Principe du
Principe du Messaging Messaging (1) (1)
A
B
Qu eue
Principe du
Principe du Messaging Messaging (2) (2)
A
B
Qu eue Qu eue
Principe du
Principe du Messaging Messaging (3) (3)
A
B
Queue 2 Queue 1
Les API WebSphere MQ Les API WebSphere MQ
Plusieurs types d’
Plusieurs types d’ API API disponibles : disponibles :
• • MQI MQI
– – C C – – C++ C++
– – Cobol Cobol
– – RPG (OPM & ILE) RPG (OPM & ILE)
– – MQ Java (WMQ classes for Java) MQ Java (WMQ classes for Java)
• • AMI (deprecated AMI ( deprecated) )
• • XMS XMS
• • Dot Net Dot Net
• • JMS JMS
• • wrappers wrappers
– – Perl, PHP Perl, PHP
– – Python, Jython Python, Jython – – PL/SQL (Oracle) PL/SQL (Oracle)
– – Delphi / Pascal / Kylix Delphi / Pascal / Kylix
– – PL1, Rexx PL1, Rexx, … , …
Les API WebSphere MQ Les API WebSphere MQ
Les API de base Les API de base
• • MQCONN MQCONN : connexion au QM : connexion au QM
• • MQOPEN MQOPEN : ouverture de la queue : ouverture de la queue
• • MQPUT MQPUT : dépôt d’un message dans la queue : dépôt d’un message dans la queue
• • MQGET MQGET : retrait d’un message dans le queue : retrait d’un message dans le queue
• • MQCLOSE MQCLOSE : fermeture de la queue : fermeture de la queue
• • MQPUT1 MQPUT1 : open + put +close : open + put +close
•
• MQDISC MQDISC : déconnexion du QM : déconnexion du QM Les API avancées
Les API avancées
•
• MQCONNX MQCONNX : connexion au QM en mode étendu : connexion au QM en mode étendu
•
• MQINQ MQINQ : interrogation de l’état ou des paramètres d’un objet MQ : interrogation de l’état ou des paramètres d’un objet MQ
•
• MQSET MQSET : modification de l’état ou des paramètres d’un objet MQ : modification de l’état ou des paramètres d’un objet MQ
• • MQBEGIN MQBEGIN : début d’un cycle de validation si pas d’utilisation d’un gesti : début d’un cycle de validation si pas d’utilisation d’un gestionnaire de onnaire de synchronisation externe
synchronisation externe
Topologies Topologies
• • Gestionnaire de files d’attente isolé Gestionnaire de files d’attente isolé
• • Gestionnaires de files d’attente en réseau (DQM) Gestionnaires de files d’attente en réseau (DQM)
• • Gestionnaire de files d’attente et client MQ Gestionnaire de files d’attente et client MQ
• • Cluster de gestionnaires de files d’attente Cluster de gestionnaires de files d’attente (Cluster WMQ)
(Cluster WMQ)
• • DQM avec SiBus DQM avec SiBus WAS 6.x ( WAS 6.x ( Messaging Messaging Engine Engine ) )
Gestionnaire de files d’attente isolé Gestionnaire de files d’attente isolé
Application 1 QMA
Application 2
Put
Put
Get
Serveur
Gestionnaires de files d’attente Gestionnaires de files d’attente
en réseau (DQM) en réseau (DQM)
QMA
Application 1 Put
QMB
Application 2 Get
Serveur 1 Serveur 2
Gestionnaire de files d’attente et client MQ Gestionnaire de files d’attente et client MQ
QMA
Application
Q1
Serveur 2 Serveur 1
C lie n t M Q
Cluster WMQ Cluster WMQ
QMC1 QMC2
QMC3 Application
Application
Application
Put / Get
Put
Cluster CLU01 Put
Cluster MQ Cluster MQ
QMC1 QMC2
QMC3
Put
Cluster CLU01
Load Balancing
DQM avec
DQM avec SiBus SiBus WAS 6.x (Messaging WAS 6.x ( Messaging Engine) Engine )
Messaging Engine
Application
J2EE Put
QMA
Application 1 Get
Cellule WAS Serveur
Packaging WebSphere MQ Packaging WebSphere MQ
• • WebSphere MQ « WebSphere MQ « classic classic » »
• • WebSphere MQ WebSphere MQ Extended Extended Security Security Edition Edition
• • WebSphere MQ Express WebSphere MQ Express
• • WebSphere MQ Client WebSphere MQ Client
• • WebSphere MQ WebSphere MQ Transactionnal Transactionnal Client Client
Plates
Plates - - formes supportées WebSphere formes supportées WebSphere MQ MQ
Serveur Serveur
• •
AIXAIX• •
AT&T GS UnixAT&T GS Unix• •
Compaq NSK/NSSCompaq NSK/NSS• •
Compaq Open VMS Alpha & Compaq Open VMS Alpha & VaxVax• •
CompacqCompacqTruTru64 Unix64 Unix• •
DC/DC/OsxOsx• •
Digital UNIXDigital UNIX• •
DYNIX/DYNIX/ptxptx• •
HitachiHitachi• •
HP/UXHP/UX• •
IRIXIRIX• •
Linux Intel & Linux Intel & zSerieszSeries• •
MVS/ESAMVS/ESA• •
NCRNCR• •
NumaNuma--QQ((SequentSequent))• •
OpenVMSOpenVMS• •
OS/2OS/2• •
OS/390OS/390• •
OS/400OS/400• •
SCO SCO OpenServerOpenServer• •
SCO SCO UnixwareUnixware• •
SGISGI• •
Siemens Nixdorf SINIX DC/Siemens Nixdorf SINIX DC/OSxOSx• •
SinixSinix• •
Sun Sun SolarisSolarisIntel & SparcIntel & Sparc• •
TPFTPF• •
Unisys OS2000, 2200 & MCPUnisys OS2000, 2200 & MCP• •
UnixWareUnixWare• •
VSE/ESAVSE/ESAClient Client