websphere messaging positionningmq et was...
TRANSCRIPT
Software Group
© 2006 IBM Corporation p1
WebSphere MessagingPositionning MQ et WAS SIBus
Carl Farkas
IBM France - WebSphere BI zSeries Consultant
Paris, France
Internet : farkas @ fr.ibm.com
Notes : Carl Farkas/France/IBM @ IBMFR
Software Group
© 2006 IBM Corporation p2
Agenda
� Rappel de MQ et SIBus
� Environnements d’exécution
� Caractéristiques
� Performances
Software Group
© 2006 IBM Corporation p3
Couche de transport
« Pourquoi les gens envoient des messages, Papa ? » « Pour éviter qu’ils se parlent… »
Software Group
© 2006 IBM Corporation p4
Intro
� WebSphere MQ (ex-MQSeries) est commércialisé par IBM depuis 1993, et il est
en production chez 10.000 clients au niveau mondial. Il est estimé de détenir entre
65% et 80% du marché de « messaging ».
� WebSphere Application Server v6 est sorti début 2005 avec son propre moteur de
messaging, le WAS « Default Messaging Provider » (parfois appellé « SIBus » ou
« WAS Messaging Bus » ou parfois « Platform messaging » ou etc. ! ;)
Quel produit fournit la bonne solution « messaging » pour vous ?
Il n’y certainement pas une réponse correcte pour toutes circonstances,
mais cette présentation vous donnera quelques éléments de comparaison
Software Group
© 2006 IBM Corporation p5
Rappel : Qu'est-ce que WebSphere MQ ?
• Une interface de programmation (API) pour envoyer/recevoir
des messages
• Disponible sur plus de 40 plates-formes (Windows, Unix,
System z, System i, etc.)
• Disponible depuis tous les langages classiques (C, C++,
VB, COBOL, Java, GAP, etc.)
• Facile à apprendre; facile à développer
• Un gestionnaire de files ("Queue manager")
• Assurer le transport des messages jusqu'à leur
destination
• Simple à mettre en oeuvre et gérer
• Performant et fiable
• Le standard du marché MOM depuis 1993 avec plus de 70%
du marché
• Plus de 450 produits "MQ ready" sur le marché
• Plus de 2000 consultants « certifiés MQ »
Application
:
ioQueue = session.createQueue( « MaFile » );
QueueSender queueSender =
session.createSender(ioQueue);
queueSender.send(outMessage);
:
Transport
WebSphere MQ
API MQ
Software Group
© 2006 IBM Corporation p6
Server
Rappel : Qu’est-ce que WAS SIBus ?• SIBus fournit un support natif dans WAS pour des messages JMS
• Disponible sur toutes plates-formes WAS v6
• Support d’interface JMS 1.1 depuis WAS
• Support des modèles de distribution de messages Point à Point ou Pub/Sub
NodeNode
Server
CellNode Node
Server1
(Bus Member)
Server2
(Bus Member)
ME ME
Bus
Queue Point D1
D2
D1
DestinationsCluster1 (Bus Member)
ME ME
Queue Point D2 Queue Point D2
• Les définitions « SIBus » sont
connues au niveau du Cell WAS
• Un SIBus comprend un (ou plus)
Messaging Engine (ME) ; le ME
gère des ressources (eg. Queues)
• Les Queues sont définies sur des
ME
• Le ME stocke les messages dans
une base de donnée (eg.
Cloudscape, DB2…)
• Un SIBus peut être connecté à
l’extérieur, eg. un autre SIBus ou
QM
Software Group
© 2006 IBM Corporation p7
Environnement opérationnel
DB par JDBC (et
fichiers à partir de
v6.1)
FichiersPersistance
WASWAS, IMS, CICS, MQEnvironnements
gestionnaires de
transaction
Java (JMS WAS)Java (JMS + base), C,
C++, PL/I, COBOL,
Assembler, GAP, VB,
etc.
Langages de
développement
Les principaux (z/OS,
i5/OS, AIX, Linux,
Solaris, HP-UX,
Windows)
Les principaux (z/OS,
i5/OS, AIX, Linux,
Solaris, HP-UX,
Windows) + 30
d’autres (eg.
OpenVMS, Tandem,
TPF, VSE, etc.)
Plates-formes
supportées
SIBusMQ
Software Group
© 2006 IBM Corporation p8
Administration� L’administration de MQ
– API : PCF (plutôt format de message)
– Interface ligne : commandes, RUNMQSC
– Interface menu (MQExplorer et ISPF/PDF sur z/OS)
– Beaucoup d’offres des tiers sur le marché (Tivoli, MQSoftware, BMC, etc)
� L’administration de SIBus
– API : JAX
– Menus d’admin WAS
– Des outils existent, mais moins
aujourd’hui
Software Group
© 2006 IBM Corporation p9
Sécurité - MQ
� Accès aux files peut être contrôlé
(accès limité aux userids, groupes)
� Commandes pour controller (setmqaut, dspmqaut)
� SSL et encryptions lors de transmission par les canaux
Software Group
© 2006 IBM Corporation p10
Securité - SIBus
� Accès aux files peut être contrôlé
(accès limité aux userids, groupes)
� Commandes wsadmin pour définir les
contrôles
IBM Software Group | WebSphere software
Interopérabilité
� WAS v6 fournit MQLink
� Echange de messages entre WMQ Queue Manager et WAS V6 Messaging Engine
� Pour MQ, le WAS ME est un QM classique
� Définition côté MQ des canaux Sender/Receiver
� Le CONNAME pour le canal WMQ sender précise l’endpoint (ipaddress:port) WAS
NodeBus
AppServer1
ME1
AppServer2
ME2Gateway QMgr1
Gateway
QMgr2
QMgr3
Link
MQLink
MQ Channels
Cell WebSphere MQ network(vue comme Foreign Bus)
� WAS v6.1 ajoute la possibilité de définir un « MQServer »
� Attention ! Le WAS « MQServer » s’appuie sur….. Un MQ Client !
IBM Software Group | WebSphere software
Configuration JMS
� Configuration JMS avec des objets SIbus
�SIBus « pur » - messages restent dans le monde SIBus
�SIBus, mais communiquant avec MQ – MQLink, MQServer, Foreign bus
� Configuration JMS avec des objets MQ
�S’appuyant sur MQ Queue Manager local, dit mode « bindings »
�S’appuyant sur MQ Client
Quatre types de configuration !
AddAdd picturepicture herehere !!
Software Group
© 2006 IBM Corporation p13
Qualités de service - MQ
Queue
Manager
Queue
CC/RC
Queue
CC/RC
Application
Program
MQPUT
MQPUT
Queue Files
Persistent
message
Non-Persistent
message
Logs
� Persistent Messages
– Persistent Messages sont toujours récupérables
� Non-persistent Messages ont 2 classes de service:
– Messages sont gardés pendant la session du QMgr
(défault sauf files partagées)
– Messages peuvent être maintenus au travers d’un
redémarrage normal d’un QMgr
Software Group
© 2006 IBM Corporation p14
Qualités de service - SIBus
� BEST_EFFORT_NONPERSISTENT
– Messages are never written to disk
– throw away messages if memory cache over-runs
� EXPRESS_NONPERSISTENT
– Messages are written asynchronously to persistent storage if memory cache
overruns, but are not kept over server restarts
– No acknowledgement that the ME has received the message
� RELIABLE_NONPERSISTENT
– Same as Express_Nonpersistent, except, with a low level acknowledgement
message that the client code waits for, before returning to the application with an
OK or not OK response
� RELIABLE_PERSISTENT
– Messages are written asynchronously to persistent storage during normal
processing, and stay persisted over server restarts.
– If the server fails, messages are lost if they are held in the cache at the time of
failure.
� ASSURED_PERSISTENT
– Highest degree of reliability where assured delivery is supported
High
Low
Performance
Low
High
Reliability
Plus proche à MQ Non-Persistent ?
Plus proche à MQ Persistent
Plus proche à MQ Non-Persistent avec NPMCLASS = HIGH ?
Software Group
© 2006 IBM Corporation p15
Performance WAS JMS
Sur : les performances de WAS v6 JMS s’appuyant sur SIBus 5 est beaucoup
mieux que WAS v5.1 JMS s’appuyant sur MQ v5.3
Assured Persistent Messaging Performance
1175659
21651756
4078
2802
0
1000
2000
3000
4000
5000
ops/sec
V5.1 V6.0 local DB V6.0 remote DB
MDB_PTP_P_TR MDB_PS_P_D_TR
CP U% WAS 24 98 91 20 96 76
CP U% DB 36 43
MDB = MDB receiver, stand-alone sender scenario
PTP = po int-to -point messaging domain, PS = publish-subscribe messaging domain
P = persistent, D = durable subscription, TR = transaction required
System co nfigurat ion
Producer: xSeries 445 Server, 4 x 3.0 GHz Xeon, 2 GB ram, Windows 2003 Server Ent Edition
Consumer: xSeries 365 Server, 4 x 2.8 GHz Xeon, hyper threaded, 3.5 GB ram, Windows 2003 Server Ent Edition
Database: xSeries 365 Server, 4 x 2.8 GHz Xeon, hyper threaded, 3.5 GB ram, Windows 2003 Server Ent Edition,
DB2 v8.2
Software Group
© 2006 IBM Corporation p16
WebSphere MQ Performance – Point à Point – Java vs. C
18539
3389
13893
3954
0
5000
10000
15000
20000
WMQ
V6
WMQ
V6
JMS
non-
persistent
persistent
� Local queuing scenario
� 2 kByte message size
� Roundtrip messaging
Software Group
© 2006 IBM Corporation p17
Performance – WAS v6 JMS
0
0.0005
0.001
0.0015
0.002
0.0025
0.003
0.0035
0.004
0.0045
0 20 40 60 80 100 120
Message length (KB)
CP
U T
ime
(sec
)
PUT(Persistent)
PUT(Non Persistent)
GET(Persistent)
GET(Non Persistent)
JMS PUT/GET (local WMQ)
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0 20 40 60 80 100 120
Message length (KB)
CP
U T
ime (se
c)
PUT(Persistent)
PUT(Non persistent)
GET(Persistent)
GET(Non persistent)
JMS PUT/GET (SIBus)
� Consommation CPU beaucoup moins avec MQ (ordre de grandeur !)
� Attention : tests avec WAS v6.01 et MQ v5.3.1
� Auteur original : インフラ設計 (et IBM Design Center, avec mes remerciements….. ;>)
1)
2)
3)
4)
Software Group
© 2006 IBM Corporation p18
Haute-disponibilité - MQ
� Dispositif MQ Clusters
– Multiples instances d’une file
– Accès aux messages uniquement par le QM original
– Distribution de charge avec multiples algorithmes
� Files partagées (« shared queues »)
– Unique instance d’une file, accessible simultanément par
multiples QMs
– Limité à z/OS (coupling facility)
� Clustering matériel (eg. HACMP, MCS, etc)
– Uniquement actif-passif (une instance du QM actif à un
moment donné)
Software Group
© 2006 IBM Corporation p19
Haute-disponibilité - SIBus
� Le SIBus exploite les facilités de WebSphere
Application Server pour l’haute disponibilité
� Par défaut, un ME est démarré sur le premier
serveur démarré dans le Cluster
� En cas d’échec, le ME est démarré dans un
autre serveur (fonction HAMgr de WAS)
� Les mêmes avantages que les Files Partagées
de MQ : messages toujours disponibles !
(MQ Cluster + Cluster matériel peut donner la
fonction)
� Inconvénient : accès ralenti aux messages
(par réseau)
� Possibilité d’avoir une file dans multiples MEs simultanément pour augmenter les
performances (scalabilité)
ME ME
Cluster
Server2Server1
Bus
Base (JDBC)
DestinationSIBus
Software Group
© 2006 IBM Corporation p20
Etc
� MQ propose beaucoup plus de « petites fonctions »…
�Message segmentation
�Message groups
�Reference messages
�Compression
� SIBus est limité aux messages de < 40 MB (MQ supporte < 100 MB)
� MQ est clairement un produit plus « mature »
Software Group
© 2006 IBM Corporation p21
Résumé
WebSphere SIBus
WebSphere MQ
� Integration surtout avec WAS
� Objectif primaire : J2EE
� Couche de médiation fournie
naturellement par WESB
� Pour un environnement
hétérogène, eg. Java et
non-Java, plates-formes
“exotiques”, etc.
� Objectif primaire : messaging
� support des standards
� Couche de médiation fournie naturellement par
WebSphere Message Broker