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