blockseminar großrechneraspekte messaging systems/ mqseries (grundlagen) steffen goldau
TRANSCRIPT
Blockseminar
GroßrechneraspekteMessaging Systems/
MQSeries (Grundlagen)
Steffen Goldau
1.Einführung2.Messaging und Queuing3.Messages4.Queue-Manager5.Message-Queues6.Events7.Zusammenfassung
1.1.Motivation
• Middleware ermöglicht verteilten An-wendungen miteinander zu kommunizieren
• „verteilt“ : z.B. Mainframes oder Cluster....
• Netzwerk zunächst erst einmal beliebig
1.1.Motivation• Hauptkomponenten von MQSeries:
NETWORK
Applikation
MQSeries
Applikation
MQSeries
MQIMQI
1.1.Motivation
(HIGHSPEED) NETWORK
PC/Workstation
Comm. SW
Net.Interface HW
PC/Workstation
Comm. SW
Net.Interface HW
Cluster Middleware (Single System Image)
Serial ProgrammingEnvironment
Parallel ProgrammingEnvironment
Serial Applications Parallel Applications
1.2.Middleware
• "Off-the-shelf connectivity software that supports distributed processing at runtime and it is used BY DEVELOPERS to build distributed software."
• MQSeries ist ein proprietäres Middlewareprogramm von IBM
1.2.Middleware• Host: IBM
MVS/ESA- Server and Client enabled Tandem NonStop Kernel- Server IBM VSE/ESA- Server
• Workstation:IBM AIX- Server and ClientNCR (AT&T GIS) UNIX- Server and ClientSiemens Nixdorf SINIX- Server and ClientHewlett Packard HP-UX- Server and ClientSunSolaris and SunOS- Server and ClientDigital Unix- Client - available as SupportPacLinux Client - available as SupportPac
1.2.Middleware• Desktop: Windows 2000- Server and Client
Microsoft Windows (MQSeries V2.0 - 16 Bit)Microsoft Windows (MQSeries V2.1 - 32 Bit)Windows 95 (32- Bit)- ClientSCO Unixware- ServerSCO Unix- ServerSCO Unix (L2)- ClientDOS Client- available as SupportPacMacOS (OEM)- Client
1.2.Middleware
• MQSeries ermöglicht die Kommunikation auf verschiedenen Abstraktionsebenen:
OSSubsystems
Kommunikations-Protokolle
Prozessoren
OSSubsystems
Kommunikations-Protokolle
Prozessoren
WINTEL Sun/Solaris
MQSeries = Cross- Network- Communication
1.3.MQSeries-Grundlagen und Charakteristika
• Message- Queuing ist eine Methode der Programm-zu-Programm-Kommunikation
• VERBINDUNGSLOSES Senden und Empfangen von Nachrichten wird ermöglicht
• Nachrichten werden hinterlegt und abgefragt mit Hilfe sogenannter Message- Queues (über MQSeries-API-Calls MQI)
1.3.MQSeries-Grundlagen und Charakteristika
• der Queue-Manager ist das Run-Time-Programm von MQSeries (zuständig für Verwaltungs-aufgaben der Queues)
• ein Queue-Manager arbeitet objektorientiert• MQSeries ermöglicht: -
asynchrone Kommunikation - verbindungslose Kommunikation - parallele Kommunikation
1.4.Anwendungsgebiete
• Workflow-Management:Lotus Notes
• Integration prinzipiell jeglicher IT- Systeme, insbesondere aber:
- Finanzen - Herstellung - Handel & Vertrieb - Gesundheitsfürsorge- Reise- & Transportwesen
1.5.Alternativen
• innerhalb des Mainframebereichs gibt‘s keine• außerhalb (z.B.Cluster):
- DCOM (distributed component oriented model) von Microsoft
- Programmiersprachen – spezifisch: RMI (Java)
MPI/PVM (C,C++)HPF (Fortran) ......
1.5.Alternativen
• alternative Prinzipien zum Message- Queuing:
RPC (remote procedure call)
MOM (message oriented middleware)ORB
(object request broker)
2. Messaging und Queuing2.1.Speicherkommunikation vs
Nachrichtenkommunikation• Speicherkommunikation:
Global Memory
CPU
Lok.Mem.
CPU
Lok. Mem.
2.1.Speicherkommunikation vs Nachrichtenkommunikation
• Nachrichtenkommunikation:
NETWORK
CPU
Lok.Mem.
CPU
Lok.Mem.
2.2.Paketkommunikation vsKanalkommunikation
• Paket: z.B.:Bussysteme, internes Internet
• Kanal: z.B.:Telephon
• in der Realität treten nat. auch Mischformen auf
2.3.Grundlegende Prinzipien
• MQSeries: MOM, paketorientiert• Messaging: Nachrichtenobjekte werden
versendet und empfangen• Queuing: Postfach, Synchronisation
überflüssig• Queue: Datenstruktur, die von einem
Queuemanager verwaltet wird und in der Nachrichten gespeichert werden können
2.3.Grundlegende Prinzipien
• eine Anwendung nutzt zum Senden und Empfangen einer Nachricht MQI-Calls
• der Programmiere kümmert sich nicht um Zielapplikation sondern nur um Zielqueue
• MQSeries ermöglicht sowohl synchrones als auch asynchrones messaging
2.3.Grundlegende Prinzipien• durch das MQI ist MQSeries in vielen
Programmiersprachen und Plattformen nutzbar• MQSeries verwirklicht eine Client-/Server-
Struktur• Programme kommunizieren ausschließlich über
Queues und deren Managern• innerhalb von MQSeries ist eine direkte Punkt-
zu-Punkt-Kommunikation unmöglich
2.3.Grundlegende Prinzipien
ApplikationA
ApplikationB
Queue-Manager
Queue-Manager
AQ(A)
EQ(A) AQ(B)
EQ(B)
MQIMQI
2.3.Grundlegende Prinzipien
ApplikationA
ApplikationBQueuemanager
AQ(A)=EQ(B)
EQ(A)=AQ(B)
MQI MQI
3.Messages
• Messages bestehen prinzipiell aus zwei Teilen:
- Daten (ab Version MQSeries 5 bis zu 100MB)
- Header (MessageID, Steuerattribute,...)
3.1.Segmentierung
• Messages können (automatisch) zerteilt werden, um Ressourcen (z.B. Puffergröße der Zielapplikation) besser nutzen zu können
• der Empfänger kann dann entweder die ganze Nachricht oder bestimmte, in interessierende, Segmente abfragen
• die Segmente sind prinzipiell eigenständige kleinere Nachrichten
3.2.Gruppierung
• um den Netzwerktraffic zu optimieren, können viele kleine Messages auch zu einer großen Nachricht zusammengefasst werden
• MQSeries sorgt automatisch für das Beibehalten der richtigen Reihenfolge (falls die Nachricht wieder auseinander genommen wird)
3.3.Distribution Lists
• eine Message kann natürlich auch an mehrere Ziel- Queues gesendet werden
• wenn diese Queues vom selben Manager verwaltet werden, können die Nachrichten nur an diesen Manager gesendet werden
• dieser verteilt sie dann an die Queues • dynamic distribution list : welche Queue
gehört zu welchem Manager
3.4.Message Types
• Datagram: konventionelle Nachricht, welche ohne Rückmeldungs- forderung einfach nur Daten transportiert
• Request: mit Rückmeldeforderung• Reply: Antwortnachricht auf Request• Report: Event- Information (z.B. bei
Fehler oder als Bestätigung
3.5.Persistenz von Messages
• Messages können persistent oder nicht persistent übertragen werden:
• persistent messages: - Übertragung wird mittels eines Über- tragungsprotokolls sichergestellt - bei Systemausfällen reproduzierbar
• non persistent messages:- bei Systemausfällen nicht reproduzierbar
3.6.Message Descriptor • Der Message- Descriptor enthält:
- Version Number- MessageID/CorrellationID- persistent/non persistent- Priorität- Date & Time- Lifetime of a message- Returnadress- Format- Sender application and type- report option- Backout- Counter- Segmentierung/ Gruppierung
3.Queue- Manager
• der Message- Queue- Manager (MQM) ist der Kern von MQSeries und wird durch das MQSeries-Run-Time-Program implementiert
• seine Hauptaufgabe ist (wie schon erwähnt) die Verwaltung der Queues
• zusätzlich stellt er einige Funktionen bereit, die den Traffic verringern bzw. die Arbeit des Programmierers vereinfachen
• dies geschieht durch die Bereitstellung des MQI durch den MQM
4.Queue- Manager
ApplicationProgram A
PUT to Q1
ApplicationProgram B
GET from Q1
Queuemanager mit Queue Q1
4.Queue- Manager
Hauptaufgaben des Queuemanagers:- verwalten der Message- Queues der Applikationen- zur Verfügung stellen des MQI's- nutzen vorhandener Netzwerk- Facilities (MQM- to-MQM)- ggf. segmentieren und gruppieren- übernehmen von Aufgaben der Kommunikations-
koordination (Distribution List)- liefern von Queue-Verwaltungs-Funktionen
4.1.Queue-Manager-Cluster
• MQMs können in Clustern zusammengeschlossen werden
• Konventionelle Verbindung: partial repository (enthält nur Informationen über interessierende Objekte)
• Cluster- Verbindung: full repository (enthält Informationen über alle Objekte im Cluster)
• den Programmierer kümmert es nicht, ob er in einem Cluster arbeitet oder nicht; die Koordination übernimmt MQSeries
4.2.Queue-Manager-Objekte
es gibt folgende Objekte für den Queuemanager:
– Queuemanager
– Queues
– Channels
– Prozess- Definitionen
4.2.Channels
MQClient
MQClient
MQM MQMMQI- Channels
bidirektional
Message- Channels
unidirektional
5.Message- Queues
MQSeries unterscheidet je nach Zweck verschiedene Arten von Queues:
- Lokale Queues- Cluster- Queues- Remote Queues- Transmission Queues- Dynamic Queues- Alias Queues
6.Events
• es gibt MQSeries-Instrumentations-Events, welche benutzt werden können, um Operationen eines Managers zu verfolgen
• Events generieren spezielle Nachrichten, wenn bestimmte Bedingungen erfüllt sind
• sie lassen sich z.B. wie folgt kategorisieren:- Queuemanager- Events- Performance- Events- Channel- Events
7.Zusammenfassung
• Middleware• MQSeries• Alternativen: RPC, MOM, ORB• Queuemanagerobjekte:
-Queues-Queuemanager-Channels-Events
Quellenverzeichnis
• Herrmann/Kebschull/Spruth: Einführung in z/OS und OS/390
• Bulitz/Döhre: Seminararbeit Enterprise Middleware
• Fey: Vorlesung “Cluster Computing“