390 likes | 560 Views
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.
E N D
BlockseminarGroß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 An-wendungen miteinander zu kommunizieren • „verteilt“ : z.B. Mainframes oder Cluster.... • Netzwerk zunächst erst einmal beliebig
1.1.Motivation • Hauptkomponenten von MQSeries: Applikation MQSeries Applikation MQSeries MQI MQI NETWORK
1.1.Motivation Serial Applications Parallel Applications Serial Programming Environment Parallel Programming Environment Cluster Middleware (Single System Image) PC/Workstation Comm. SW Net.Interface HW PC/Workstation Comm. SW 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 Kommunikations- Protokolle Prozessoren Sun/Solaris OS Subsystems Kommunikations- Protokolle 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 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: CPU Lok.Mem. CPU 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: 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 Queue- Manager Queue- Manager AQ(A) EQ(B) Applikation B Applikation A EQ(A) AQ(B) MQI MQI
2.3.Grundlegende Prinzipien Queuemanager AQ(A)=EQ(B) Applikation B Applikation A 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 Application Program A PUT to Q1 Application Program 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 MQM MQ Client MQM Message- Channels unidirektional MQI- Channels bidirektional MQ Client
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“