1.1.Motivation

Werbung
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“
Herunterladen