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
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! Seite 2
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. Seite 3
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)... Seite 4
Schematische Darstellung: Beispiel Sportinformations-Dienst System-1 System-2 Publisher-1 Fußball Publisher-2 Handball Publisher-3 Eishockey Broker-1 Broker-2 Subscriber-1 Videotext: Live-Ticker: Fußball/Alles Subscriber-2 Videotext: Akt. Spielstand. Fußball/Ergebnisveränd. Subscriber-3 Sonntagszeitung: Fußball/Nur Endergebnisse... Subscriber-4... Seite 5
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. Seite 6
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. Seite 7
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. Seite 8
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. Seite 9
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 Seite 10
Technische Lösung Ablauf eines Subscriber-Programms: MQCONN: Connect zum lokalen Queue-Manager MQOPEN: Öffnen der Broker- CONTROL -Queue MQOPEN: Öffnen der Subscriber-Queue Aufbau der Registrierungs- Message und MQPUT: Schreiben der Registrierungs-Message in CONTROL - Queue MQGET (Loop): Lesen aller betreffenden Publications-Messages aus der Subscriber-Queue Aufbau der Deregistrierungs- Message und MQPUT: Schreiben der Deregistrierungs-Message in CONTROL - Queue Seite 11
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 Seite 12
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) Seite 13
Pilotanwendung bei Vallourec & Mannesmann Tubes (Screenshot 1) Seite 14
Pilotanwendung bei Vallourec & Mannesmann Tubes (Screenshot 2) Seite 15
Pilotanwendung bei Vallourec & Mannesmann Tubes (Screenshot 3) Seite 16
Pilotanwendung bei Vallourec & Mannesmann Tubes (Screenshot 4) Seite 17
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) Seite 18
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. Seite 19
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 Publications- Message 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.) Seite 20
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> Seite 21
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. Seite 22
Pilotanwendung bei Vallourec & Mannesmann Tubes Hinweis auf unterschiedliche Release-Stände bei Publish/Subscribe: Publish/Subscribe Version 6: wie oben beschrieben (mit Broker, Stream- Queue, 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. Publish/Subscribe Version 7: kein expliziter Broker (Stream- und Control- Queue); Funktionalität ist implizit im Queue- Manager integriert. Subscriber öffnen Subscriber-Queue und geben die Topics als (neue) Parameter beim MQOPEN an. Bei Pilotanwendung: Publisher (TANDEM) publizieren nach Version 6, Subscriber (Windows) arbeiten nach Version 7. 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 Rolf Stemmler rolf.stemmler@twinsoft.de Version 2.0 Datum 04.04.2011 Einsteinstr. 55 89077 Ulm Tel: 0731/407697-0 www.twinsoft.de Info@twinsoft.de