Pilotanwendung für die Nutzung von WebSphere Publish/Subscribe

Transcription

Pilotanwendung für die Nutzung von WebSphere Publish/Subscribe
TWINSOFT GmbH & Co. KG
Pilotanwendung für die Nutzung von
WebSphere Publish/Subscribe bei
Vallourec & Mannesmann Tubes
Rolf Stemmler
11.05. und 12.05.
Böblingen, HP Demo Center
GTUG, Mai 2011
Ihr Partner für Hochverfügbarkeit
Pilotanwendung mit WebSphere Publish/Subscribe bei Vallourec &
Mannesmann Tubes
Überblick und Abgrenzung:
 Dieser Vortrag soll einen Einblick in die Funktionalität von Publish/Subscribe geben.
• Erläuterung einiger Begriffe aus dem Publish/Subscribe-Umfeld anhand eines
Beispiels aus der Literatur
• Organisatorische Lösung
• Technische Lösung
• Pilotanwendung bei Vallourec & Mannesmann Tubes
 Dieser Vortrag soll folgendes nicht sein:
 umfassende Schulung in WebSphere-Publish/Subsribe mit allen Optionen und
Varianten
 Darstellung der Unterschiede beim Release-Wechsel (Version 6 auf Version 7)
Hierzu wird lediglich ein Hinweis am Schluss des Vortrags gegeben!
Ihr Partner für Hochverfügbarkeit
Seite 2
WebSphere Publish/Subscribe:
Erläuterung einiger Begriffe aus dem Publish/Subscribe-Umfeld
Beispiel aus der Literatur: „Sportinformations-Dienst“
 Die Sportinformations-Agenturen (=Publisher) veröffentlichen Informationen zu den
folgenden Themenbereichen (=Topics):
 Fußball, Handball, Eishockey
 Beispiele für Veröffentlichungen (=Publications) (hier nur Fußball):
15:30 Spiel A: Bayern München gegen Werder Bremen: Spiel hat begonnen
15:45 Spiel B: Schalke 04 gegen Bor. Dortmund hat später begonnen (zu viele
Zuschauer)
15:56 Spiel C: Fortuna Düsseldorf gegen 1.FC Köln: Tor gefallen, Aktueller
Spielstand 1:0, Torschütze A.Lambertz
15:59 Spiel A: Bayern München gegen Werder Bremen: Spieler Müller (Bayern)
vom Platz gestellt
17:20 Spiel C: Fortuna Düsseldorf gegen 1.FC Köln: Spiel beendet,
Endergebnis 4:0
….
Ihr Partner für Hochverfügbarkeit
Seite 3
WebSphere Publish/Subscribe:
Erläuterung einiger Begriffe aus dem Publish/Subscribe-Umfeld
Beispiel aus der Literatur: „Sportinformations-Dienst“
 Diverse Abonnenten (=Subscriber) sind an unterschiedlichen Teilmengen dieser
Informationen interessiert:
 Sonntagszeitung:
nur Paarung und Endergebnisse
 Video-Text (Live-Ticker):
alle Ereignisse
 Video-Text (Akt. Spielstände): Spielbeginn (Farbe der Anzeige wechselt),
Ergebnis-Veränderung (Aktualisierung Anzeige,
Torschütze in Klammern),
Halbzeit (Ergebnis in Klammern),
Spielende (Farbe der Anzeige wechselt)
….
 …..
Ihr Partner für Hochverfügbarkeit
Seite 4
WebSphere Publish/Subscribe:
Schematische Darstellung: Beispiel „Sportinformations-Dienst“
System-1
System-2
Publisher-1
Publisher-2
Publisher-3
Fußball
Handball
Eishockey
Broker-1
Subscriber-1
Videotext: Live-Ticker:
Fußball/Alles
Broker-2
Subscriber-2
Videotext: Akt. Spielstand.
Subscriber-3
Sonntagszeitung:
Fußball/Ergebnisveränd.
Fußball/Nur Endergebnisse
Subscriber-4
...
...
Ihr Partner für Hochverfügbarkeit
Seite 5
WebSphere Publish/Subscribe:
Organisatorische Lösung (s. auch „Schematische Darstellung“)
 Einsatz von sogenannten Brokern als Bindeglied zwischen den Publishern und den
Subscribern.
• Ablauf:
Publisher schicken Informationen (=Publication-Messages) an den
Broker unter Angabe der betreffenden Topics.
Subscriber registrieren sich bei ihrem lokalen Broker, dabei geben
sie an, an welchen Topics sie interessiert sind und in welche Queue
(=Subscriber-Queue) die gewünschten Publications weitergeleitet
werden sollen.
Wenn eine Information publiziert wird, prüft der Broker, ob
Registrierungen durch einen oder mehrere Subscriber für die betr.
Topics vorliegen. In diesem Fall wird die Information als Kopie dem
Subscriber in die Subscriber-Queue zugestellt.
Am Ende deregistrieren sich die Subscriber von ihrem Broker.
Ihr Partner für Hochverfügbarkeit
Seite 6
WebSphere Publish/Subscribe:
Organisatorische Lösung
 Einsatz von sogenannten Brokern als Bindeglied zwischen den Publishern und den
Subscribern.
• Besonderheit:
Broker können miteinander verbunden werden, so dass
Subscriber, die an einem Broker (ihrem lokalen Broker)
registriert sind, auch Informationen erhalten können, die an
einem anderen Broker publiziert worden sind.
• Genereller Vorteil von Publish/Subscribe:
Im Gegensatz zu herkömmlichen Kopplungen verschiedener Anwendungen
brauchen sich Sender und Empfänger nicht zu „kennen“. Es fallen keine
besonderen Fehlerbehandlungsfälle an, wenn z.B. ein Empfänger keine weiteren Daten mehr haben will und
sich beendet.
Es können leicht neue Empfänger hinzugefügt werden, ohne dass der Sender
etwas davon merkt und ohne dass irgendwelche Software-Erweiterungen
erforderlich sind.
Ihr Partner für Hochverfügbarkeit
Seite 7
WebSphere Publish/Subscribe:
Technische Lösung
 Einsatz von IBM-WebSphere mit den Produkten:
• MQ-Series
als Transport-System für den Message-Verkehr
• Broker
zur Verwaltung der Publish/Subscribe-Funktionalität
mit den Standard-Queues:
„Stream-Queue“
SYSTEM.BROKER.DEFAULT.STREAM
„Registration-Queue“
SYSTEM.BROKER.CONTROL.QUEUE
 Erstellung eigener Applikations-Programme, die als Publisher bzw. als Subscriber
fungieren.
Ihr Partner für Hochverfügbarkeit
Seite 8
WebSphere Publish/Subscribe:
Technische Lösung
Aufbau der Messages für Publisher und Subscriber:
 Publisher: Aufbau der „Publications-Message“:
• Jede MQ-Series-Message besteht aus:
MQMD
(Message-Descriptor oder Message-Header)
Application-Data
(eigentlicher Message-Text)
• Bei Publish/Subscribe teilt sich der Application-Data-Teil (s.o.) auf in:
MQRFH
(Rules and Formatting Header)
NameValueList
(enthält u.a. Commands und die Topics)
eigentlicher Publication-Text
 Subscriber: Aufbau der „Registrierungs-Message“:
• Wie bei Publisher, allerdings nur MQMD, MQRFH, NameValueList.
In der NameValueList stehen u.a. die Topics und das Command (Registrieren
bzw. Deregistrieren).
In MQMD wird der Name der Subscriber-Queue angegeben.
Ihr Partner für Hochverfügbarkeit
Seite 9
WebSphere Publish/Subscribe:
Technische Lösung
Ablauf eines Publisher-Programms:
 MQCONN:
 MQOPEN:
 Aufbau der betreffenden
„Publication-Message“
und MQPUT:
 MQCLOSE:
 MQDISC:
Connect zum lokalen Queue-Manager
Öffnen der Broker-“STREAM“-Queue
Schreiben der Publication-Message in „STREAM“-Queue
Schließen der „STREAM“-Queue
Disconnect vom lokalen Queue-Manager
Ihr Partner für Hochverfügbarkeit
Seite 10
WebSphere Publish/Subscribe:
Technische Lösung
Ablauf eines Subscriber-Programms:
 MQCONN:
 MQOPEN:
 MQOPEN:
 Aufbau der „RegistrierungsMessage“
und MQPUT:
Connect zum lokalen Queue-Manager
Öffnen der Broker-“CONTROL“-Queue
Öffnen der Subscriber-Queue
Schreiben der Registrierungs-Message in „CONTROL“Queue
 MQGET (Loop):
Lesen aller betreffenden Publications-Messages aus der
Subscriber-Queue
 Aufbau der „DeregistrierungsMessage“
und MQPUT:
Schreiben der Deregistrierungs-Message in „CONTROL“Queue
Ihr Partner für Hochverfügbarkeit
Seite 11
WebSphere Publish/Subscribe:
Technische Lösung
Ablauf eines Subscriber-Programms (Fortsetzung):
 MQCLOSE:
 MQCLOSE:
 MQDISC:
Schließen der Subscriber-Queue
Schließen der „CONTROL“-Queue
Disconnect vom lokalen Queue-Manager
Ihr Partner für Hochverfügbarkeit
Seite 12
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
Visualisierung Werksbahn („Transport und Verkehr“):
 BDE-System (TANDEM): Werksbahn-System mit folgenden Subsystemen:
• Zugeingang, Zugausgang
• Rangierbewegungen
• Wägung (u.a. Gleiswaage am Bahnhof)
• Leerwaggonbestellung
• etc.
• Waggon-Bestand: ca. 800 Waggons (Werk und Bahnhof)
 Visualisierungs-System (Windows):
Graphische Darstellung des Werksbereichs und des werkseigenen Bahnhofs
(s. Screenshots auf den folgenden Folien)
 Ziel für den Einsatz von Publish/Subscribe:
Zeitnaher Refresh der Visualisierung, wenn im BDE-System eine Veränderung
(speziell: Gleis-Spiegel, Waggon-Bestand) verbucht worden ist
(„event-driven“ nicht zyklischer Gesamt-Refresh)
Ihr Partner für Hochverfügbarkeit
Seite 13
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
(Screenshot 1)
Ihr Partner für Hochverfügbarkeit
Seite 14
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
(Screenshot 2)
Ihr Partner für Hochverfügbarkeit
Seite 15
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
(Screenshot 3)
Ihr Partner für Hochverfügbarkeit
Seite 16
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
(Screenshot 4)
Ihr Partner für Hochverfügbarkeit
Seite 17
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
 Topics bei der Pilotanwendung:
 Datenbankupdate/Werksbahn/Rangieren
 Datenbankupdate/Werksbahn/WaggonAbrufe
 Datenbankupdate/Werksbahn/Zugeingang
 …
Weitere geplante Topics für andere Anwendungsbereiche:
 Datenbankupdate/BDEallgemein/Betriebsraster
(noch nicht implementiert)
Ihr Partner für Hochverfügbarkeit
Seite 18
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
Publisher-Programme:
 Verschiedene BDE-Anwendungsprogramme publizieren jeden Datenbankupdate für
bestimmte Dateien/Tabellen des Werksbahn-Systems.
 Kapselung der Publish-Funktionalität:
Da diese BDE-Anwendungsprogramme schon recht alt sind, ist es nicht sinnvoll, in
diese Programme noch MQ-Series und Publish/Subscribe einzubauen. Stattdessen
rufen diese Programme (über PATHSEND bzw. SERVERCLASS_SEND_) eine zentrale
PATHWAY-Serverklasse auf, die dann die gewünschte Publication durchführt.
Ihr Partner für Hochverfügbarkeit
Seite 19
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
Subscriber-Programme:
 Teile des Visualisierungs-Systems subscribieren Datenbankupdates für bestimmte
Tabellen in bestimmten Subsystemen (z.B. Rangieren). Nach Erhalt der PublicationsMessage greifen sie dann per ODBC auf die betreffenden Tabellen zu, um die
geänderten Daten aktuell visualisieren zu können.
(z.B. Gleis-Spiegel: Waggon W1 steht nicht mehr in Gleis G1, sondern in Gleis G2.)
Ihr Partner für Hochverfügbarkeit
Seite 20
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
 Eigentlicher Publication-Text (Beispiel für Update der Gleisspiegel-Datei):
<Datenbankupdate>
<SQL-Tabelle>
<TabellenName>TTV048T0</TabellenName>
<DBFunktion>Update</DBFunktion>
<KeyColumnNames>WAGGONNUMMER;WAGGON_ID
</KeyColumnNames>
<KeyValues>338039920032;4EWL7QPL</KeyValues>
</SQL-Tabelle>
</Datenbankupdate>
Ihr Partner für Hochverfügbarkeit
Seite 21
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
„Trick“ bei der Pilotanwendung:
 Auf der Publisher-Seite (TANDEM-BDE-System) ist kein Broker aktiviert.
Publizierende Programme können somit nicht in die lokale SYSTEM.BROKER.
STREAM.QUEUE schreiben.
Stattdessen wurde eine Remote-Queue definiert, welche auf die SYSTEM.BROKER.
STREAM.QUEUE unter dem Queue-Manager auf der Plattform verweist, auf der die
Subscriber-Anwendungen registriert sind.
Ihr Partner für Hochverfügbarkeit
Seite 22
WebSphere Publish/Subscribe:
Pilotanwendung bei Vallourec & Mannesmann Tubes
Hinweis auf unterschiedliche Release-Stände bei Publish/Subscribe:
 Publish/Subscribe Version 6:
 Publish/Subscribe Version 7:
 Bei Pilotanwendung:
wie oben beschrieben (mit Broker, StreamQueue, Control-Queue etc.)
Auf TANDEM läuft MQ-Series Version 5.3, der
Broker-Teil entspricht der Publish/Subscribe
Version 6 auf den Windows-Systemen.
kein expliziter Broker (Stream- und ControlQueue); Funktionalität ist implizit im QueueManager integriert.
Subscriber öffnen Subscriber-Queue und geben
die Topics als (neue) Parameter beim MQOPEN
an.
Publisher (TANDEM) publizieren nach Version 6,
Subscriber (Windows) arbeiten nach Version 7.
Ihr Partner für Hochverfügbarkeit
Seite 23
TWINSOFT GmbH & Co. KG
TWINSOFT GmbH & Co. KG
Europaplatz 2
64293 Darmstadt
Tel: 06151/39756-0
Siemensstr. 8-10
40885 Ratingen
Tel: 02102/3004-0
Einsteinstr. 55
89077 Ulm
Tel: 0731/407697-0
www.twinsoft.de
[email protected]
Ihr Partner für Hochverfügbarkeit
Rolf Stemmler
[email protected]
Version 2.0
Datum 04.04.2011