Blockseminar Großrechneraspekte Messaging Systems/ MQSeries (Grundlagen) Steffen Goldau 1.Einführung 2.Messaging und Queuing 3.Messages 4.Queue-Manager 5.Message-Queues 6.Events 7.Zusammenfassung 1.1.Motivation • Middleware ermöglicht verteilten Anwendungen miteinander zu kommunizieren • „verteilt“ : z.B. Mainframes oder Cluster.... • Netzwerk zunächst erst einmal beliebig 1.1.Motivation • Hauptkomponenten von MQSeries: Applikation Applikation MQI MQI MQSeries MQSeries NETWORK 1.1.Motivation Serial Applications Parallel Applications Serial Programming Environment Parallel Programming Environment Cluster Middleware (Single System Image) PC/Workstation PC/Workstation Comm. SW Comm. SW Net.Interface HW Net.Interface HW (HIGHSPEED) NETWORK 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 Client NCR (AT&T GIS) UNIX- Server and Client Siemens Nixdorf SINIX- Server and Client Hewlett Packard HP-UX- Server and Client SunSolaris and SunOS- Server and Client Digital Unix- Client - available as SupportPac Linux 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)- Client SCO Unixware- Server SCO Unix- Server SCO Unix (L2)- Client DOS Client- available as SupportPac MacOS (OEM)- Client 1.2.Middleware • MQSeries ermöglicht die Kommunikation auf verschiedenen Abstraktionsebenen: WINTEL OS Subsystems KommunikationsProtokolle Prozessoren Sun/Solaris OS Subsystems KommunikationsProtokolle Prozessoren 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 MessageQueues (über MQSeries-API-Calls MQI) 1.3.MQSeries-Grundlagen und Charakteristika • der Queue-Manager ist das Run-TimeProgramm 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 Queuing 2.1.Speicherkommunikation vs Nachrichtenkommunikation • Speicherkommunikation: Global Memory CPU CPU Lok.Mem. Lok. Mem. 2.1.Speicherkommunikation vs Nachrichtenkommunikation • Nachrichtenkommunikation: CPU CPU Lok.Mem. Lok.Mem. NETWORK 2.2.Paketkommunikation vs Kanalkommunikation • Paket: z.B.:Bussysteme, internes Internet • Kanal: z.B.:Telephon • in der Realität treten nat. auch Mischformen auf 2.3.Grundlegende Prinzipien • MQSeries: • Messaging: • Queuing: • Queue: MOM, paketorientiert Nachrichtenobjekte werden versendet und empfangen Postfach, Synchronisation überflüssig 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-/ServerStruktur • Programme kommunizieren ausschließlich über Queues und deren Managern • innerhalb von MQSeries ist eine direkte Punktzu-Punkt-Kommunikation unmöglich 2.3.Grundlegende Prinzipien Applikation A MQI AQ(A) EQ(B) QueueManager QueueManager EQ(A) AQ(B) Applikation B MQI 2.3.Grundlegende Prinzipien AQ(A)=EQ(B) Applikation A Queuemanager Applikation 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: • Request: • Reply: • Report: konventionelle Nachricht, welche ohne Rückmeldungsforderung einfach nur Daten transportiert mit Rückmeldeforderung Antwortnachricht auf Request 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 Übertragungsprotokolls 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 Application Program A Application Program B PUT to Q1 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 (MQMto-MQM) - ggf. segmentieren und gruppieren - übernehmen von Aufgaben der Kommunikationskoordination (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 MQ Client MQI- Channels bidirektional MQ Client MQM MessageChannels unidirektional MQM 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“