Kap. 6 Message-Oriented Middleware (MOM)



Ähnliche Dokumente
Kap. 6 Message-Oriented Middleware (MOM)

Übungen zur Softwaretechnik

Installation der SAS Foundation Software auf Windows

Man liest sich: POP3/IMAP

Evaluation of Java Messaging Middleware as a Platform for Software Agent Communication

Software Engineering Klassendiagramme Assoziationen

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

SE2-10-Entwurfsmuster-2 15

Benutzerverwaltung Business- & Company-Paket

Updatehinweise für die Version forma 5.5.5

Anmeldung, Registrierung und Elternkontrolle des MEEP!-Tablet-PC

Benutzerhandbuch MedHQ-App

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

POP -Konto auf iphone mit ios 6 einrichten

Internet Explorer Version 6

Helmut Kleinschmidt. Pflicht ab

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

ERPaaS TM. In nur drei Minuten zur individuellen Lösung und maximaler Flexibilität.

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

ANLEITUNG NETZEWERK INSTALATION

SJ OFFICE - Update 3.0

Software Engineering Interaktionsdiagramme

Serien- mit oder ohne Anhang

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

Übungen zur Vorlesung. Datenbanken I

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Web Interface für Anwender

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

ICS-Addin. Benutzerhandbuch. Version: 1.0

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

3. Stored Procedures und PL/SQL

Algorithmische Kryptographie

Support-Ticket-System. - Anleitung zur Benutzung -

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Leitfaden zur Nutzung von binder CryptShare

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

OutLook 2003 Konfiguration

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Message Oriented Middleware am Beispiel von XMLBlaster

Guide DynDNS und Portforwarding

Über den Link erreichen Sie unsere Einstiegsseite:

Reporting Services und SharePoint 2010 Teil 1

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Einrichten eines E- Mail-Kontos unter Windows Live Mail mit der IMAP-Funktion

Clientkonfiguration für Hosted Exchange 2010

STORES2. Operation Manual Version Warenretoure mit Zustimmung des Headquarter

Brainloop Dox Häufig gestellte Fragen

Anleitung Grundsetup C3 Mail & SMS Gateway V

Vgl. Oestereich Kap 2.7 Seiten

Zwischenablage (Bilder, Texte,...)

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Lizenzierung von System Center 2012

Veranstaltungsbelegung in QIS/LSF -- Leitfaden für BW-Studierende --

Gesicherte Prozeduren

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

teamsync Kurzanleitung

Kurzleitfaden für Schüler

Mobile Anwendungen Google Cloud Messaging

SMS-Versand in MACS Einrichtung des SMS-Versand Verwendung des SMS-Versandes Der SMS-Versand Empfängerfeld Empfänger-Rufnummer Inhalt der SMS

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

:: Anleitung Hosting Server 1cloud.ch ::

Tess TeSign nutzen mit App's"! iphone und Bria Informationen zur Nutzung

Inside. IT-Informatik. Die besseren IT-Lösungen.

Kurzanleitung SEPPmail

Herzlich Willkommen bei der nfon GmbH

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

AirKey Das Handy ist der Schlüssel

Hilfedatei der Oden$-Börse Stand Juni 2014

Verwendung des IDS Backup Systems unter Windows 2000

Schulungsunterlagen zur Version 3.3

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

mobile Dokumente, Informationen, ECM... Immer präsent auch unterwegs.

SAP NetWeaver Gateway. 2013

1 Was ist das Mediencenter?

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

macs Support Ticket System

NEWSLETTER // AUGUST 2015

ANYWHERE Zugriff von externen Arbeitsplätzen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Standard-Kontaktformular

1 topologisches Sortieren

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

SharePoint Demonstration

Transkript:

Kap. 6 Message-Oriented Middleware (MOM) 6.1Asynchrone Prozedur- bzw. Methodenaufrufe Lose Kopplung von Komponenten 6.2Queued Transactions Entkopplung von Client/Server-Transaktionen 6.3Publish/Subscribe-Techniken Entkopplung von Sendern und Empfängern von Nachrichten Kapitel 6: Vorlesung MOM 1

6.1 Asynchrone Prozedur- bzw. Methodenaufrufe Bisher haben wir nur synchrone Prozedur- bzw. Methodenaufrufe betrachtet: Client setzt einen (entfernten) Aufruf ab Dieser wird bearbeitet; währenddessen wartet der Client Nach Rückgabe des Ergebnisses wird die Ausführung des Client-Programms fortgesetzt Gut geeignet für die Integration unterschiedlicher Komponenten in verteilte Transaktionen Nachteile dieses Ansatzes Erfordert eine enge Kopplung der verwendeten Komponenten Client ist während langdauernden Prozedur- bzw. Methodenausführungen (die evtl. über mehrere Ebenen weiter propagiert werden können) blockiert Ausfall einer Komponente kann grosse Teile des Gesamtsystems lahm legen Mehrere Clients warten dann auf die Ausführung einer Methode/Prozedur Nicht geeignet im Fall von mobilen Komponenten bzw. Komponenten, die häufig nicht verfügbar sind Kapitel 6: Vorlesung MOM 2

Message-Oriented Middleware (MOM) Asynchrone Prozedur- bzw. Methodenaufrufe basieren auf dem Austausch von Nachrichten zwischen Komponenten Beinhalten sowohl Daten als auch Spezifikation der Prozedur- bzw. Methode, die ausgeführt werden soll MOM: Message-Oriented Middleware Infrastruktur zum Verschicken/ Empfangen von Messages MOM stellt APIs bereit, Clients müssen sich nicht um Message-Transfer kümmern Warteschlange (Queue), zum Zwischenlagern von Messages Ermöglicht asynchrone Kommunikation, selbst wenn Empfänger von Nachrichten temporär nicht verfügbar sind Keine direkte Verbindung nötig Application Service A DBMS A DB A Enqueue Dequeue execute B queue Client Enqueue queue Dequeue execute A Application Service B DBMS B DB B Kapitel 6: Vorlesung MOM 3

Message-Oriented Middleware (MOM) Unterschiedliche Varianten von MOM Transaktionsunterstützung Ohne Transaktionskontrolle: MOM gibt keine Garantie, dass die asynchron aufgerufenen Dienste auch wirklich ausgeführt werden (z.b. können bei nicht-persistenten Queues Nachrichten im Fall von Crashes verloren gehen) Queued Transactions: Gesicherter Austausch von Nachrichten zwischen persistenten Queues und Sendern/Empfängern (siehe Kap. 6.2) Art der Verbindung Point-to-point: Sender adressiert den Empfänger direkt (1:1-Kommunikation) Publish/Subscribe: Sender kennt die Empfänger seiner Nachrichten nicht (1:n-Kommunikation möglich) (siehe Kap. 6.3) Zusätzliche Aspekte Load Balancing: Auswahl, an welchen Server (eines Server-Pools) eine Message zur Bearbeitung weitergereicht wird, aufgrund von Lastinformation aller Server Prioritäten: Bevorzugung wichtiger Messages durch Einordnung in Queue gemäss deren Priorität (priority queues) Kapitel 6: Vorlesung MOM 4

Verbreitung von MOM MOM ist kein komplett orthogonaler Ansatz zu den bisher besprochenen IS-Infrastrukturkomponenten sondern mehr oder weniger gut versteckt überall vorhanden TP-Monitore: unterstützen in der Regel auch asynchrone Aufrufe TUXEDO: transaktionale Message Queues (TUXEDO/Q) sind dezidierte Systemkomponenten Möglichkeit, asynchrone Aufrufe abzusetzen: tpacall() bzw. die Ergebnisse eines asynchronen Aufrufs abzuholen: tpgetrply() Intern werden Queues verwendet, um Load Balancing durchzuführen (auch für synchrone Aufrufe) CORBA: Event Service und Notification Service (gehören beide zu den im Standard definierten Common Object Services) Ermöglichen Publish/Subscribe-Interaktionen Asynchrone Methodenaufrufe, i.d.r. ohne persistente Queues Kapitel 6: Vorlesung MOM 5

Verbreitung von MOM OTM: Messages sind zusammen mit Transaktionen und Objekten zentraler Bestandteil aller Objekt-Transaktions- Monitore COM+: Neben COM/DCOM und dem MS Transaction Server (MTS) gehört auch MS Message Queues (MSMQ) zum COM+Paket EJB: Unterstützung des Java Message Services (JMS) Sowohl point-to-point als auch Publish/Subscribe-Interaktionen zwischen Client- und Server-Objekten möglich Zusätzlich: MOM-Funktionalität implementiert als separates Software Paket, z.b. IBM MQSeries (zusammen mit Workflow Management-Unterstützung) Kapitel 6: Vorlesung MOM 6

6.2 Queued Transactions Clients Server Ziel: Messages bzw. Aufträge werden dauerhaft zwischengespeichert (persistente Queues) und überstehen somit auch System-Crashes Mehrere Clients können konkurrierend auf die Queue zugreifen Enqueue: Einfügen in die Queue Analog können auch mehrere Server konkurrierend die Queue auslesen Dequeue: Messages aus der Queue nehmen Kapitel 6: Vorlesung MOM 7

Garantierte Ausführung Das persistente Festschreiben von Messages in der Queue verhindert lediglich, dass Messages beim Crash der Queue verloren gehen Was passiert aber bei Server-Fehlern während der asynchrone Request bearbeitet wird? Im synchronen Fall ist dies kein Problem, das es zu einem Rollback der gesamten Transaktion führt Im asynchronen Fall muss das Enque bzw. Dequeue von Aufträgen atomar sein, d.h. muss in kurzen, aber verteilten Transaktionen zwischen Client und Queue sowie zwischen Queue und Server erfolgen Garantierte Ausführung (exactly once) duch Implementierung asynchroner Client/Server-Aufrufe als Folge dreier unabhängiger Transaktionen (Queued Transactions) 1. Client stellt Message zusammen, fügt diese in die Queue ein und führt Commit durch 2. Server entnimmt die Message, führt den Aufruf aus, legt die Antwort in die Antwort-Queue und führt Commit durch 3. Client entnimmt die Antwort aus der Antwort-Queue und führt Commit durch Kapitel 6: Vorlesung MOM 8

Garantierte Ausführung Request Queue Clients Server Reply Queue Transaktion 1: Einfügen in Queue Transaktion 2: Auftrag ausführen Transaktion 3: Antwort entnehmen Kapitel 6: Vorlesung MOM 9

Queued Transactions: Recovery Fehler können jetzt einfach behoben werden Server-Fehler Abbruch von Transaktion 2 belässt den Auftrag in der Request Queue Kann von anderem Server bzw. nach Wiederhochfahren bearbeitet werden Client-Fehler Zustand der Bearbeitung kann jederzeit über die Inhalte der Request- bzw. Reply-Queue überprüft werden Voraussetzung: Jeder Auftrag erhält eine eindeutige ID, die Request Queue verwaltet zusätzlich die höchste ID angenommener Aufträge pro Client ID max (C) Nach dem Aufstarten: Client überprüft, ob der Auftrag in einer der beiden Queues liegt (wenn dies der Fall ist, dann: Warten Request Queue oder Antwort abholen Reply Queue). Ansonsten: Falls ID > ID max (C): Auftrag nochmals abschicken Falls ID ID max (C): Warten, da Auftrag gerade in Bearbeitung Kapitel 6: Vorlesung MOM 10

6.3 Publish/Subscribe-Techniken Weitere Verallgemeinerung der asynchronen Kommunikation: neben der zeitlichen und räumlichen Entkopplung von Sender und Empfänger werden die Empfänger anonym Zentraler Bestandteil: Publish/Subscribe-Broker Empfänger müssen ihre Interessen beim Broker registrieren (subscription) Sender publiziert Nachrichten bzw. veröffentlicht Ereignisse, diese werden automatisch an die Empfänger weitergeleitet Sender müssen sich nicht um die Adressierung sämtlicher Empfänger kümmern Verwendung von Publish/Subscribe-Techniken zumeist für ereignisgesteuerte, lose Kommunikation zwischen Komponenten Sender veröffentlicht lediglich Ereignisse, erwartet keine Antwort Gut geeignet, um komplexe Abläufe wie z.b. Workflows über verteilten Komponenten hinweg zu implementieren Kapitel 6: Vorlesung MOM 11

Varianten von Publish/Subscribe-Interaktionen (1) Art der Beschreibung von Nachrichten bzw. Events Topics-basiert vs. Content-basiert Topics-basiertes Publish/Subscribe Voraussetzung: festgelegtes Vokabular für die Beschreibung von Nachrichten/Events durch Topics Meistens Verwendung eines hierarchischen Namensraums Dadurch jedoch recht unflexibel Realisierung Pro Topic ein eigener Kanal, eine eigene Queue, bzw. ein eigenes Interface (bei objektorientierter Implementierung) Content-basiertes Publish/Subscribe Nachrichten sind selbstbeschreibend Dadurch: viel flexibler, es wird kein gemeinsames Vokabular mehr benötigt Kapitel 6: Vorlesung MOM 12

Topics-basiertes Publish/Subscribe Subscriber Publisher ZH.Kultur.Theater ZH.Politik ZH.Kultur Publish/Subscribe Broker Kapitel 6: Vorlesung MOM 13

Content-basiertes Publish/Subscribe Subscriber Publisher Die Hamlet-Aufführung von Christoph Schlingensief im Pfauen, die im Vorfeld mit grossen Protesten seitens der SVP verbunden war, hatte gestern Premiere.. SVP, Protest Theater, Schauspielhaus Publish/Subscribe Broker Kapitel 6: Vorlesung MOM 14

Varianten von Publish/Subscribe-Interaktionen (2) Unterschiedliche Topologien eines Publish/Subscribe- Systems Dezentraler Ansatz: Peer-to-peer Nachricht/Event wird über Broadcast-Mechanismen veröffentlicht Jeder potentielle Empfänger muss sich die gewünschten Informationen selbst herausfiltern Grosser Kommunikationsoverhead z.b. TIB/Rendezvous, kommerzielles Publish/Subscribe-System von TIBCO Zentraler Broker Bus-Architektur, z.b. CORBA Event Service Hub-and-Spoke: Publish/Subscribe-Broker & (persistente) Queues (z.b. MQSeries von IBM) Kapitel 6: Vorlesung MOM 15

Bus-Architektur App App event event Event Broker event.. Subscriptions App Queues Filters App Log Publishers Adapters Business rules Adapters Subscribers event ORB Routers Load-balancing event event App App nach OHE99 Figur 8-10 Kapitel 6: Vorlesung MOM 16

Varianten von Publish/Subscribe-Interaktionen (3) Art der Filterung Global beim Broker Möglichkeit der Angabe von zusätzlichen Filterprädikaten bei der Subscription Broker überprüft diese Prädikate bevor eine Nachricht an den Empfänger weitergeschickt wird Lokal beim Empfänger Nachrichten werden (nach Topic bzw. Content) weitergeleitet. Zusätzliche Überprüfungen muss der Empfänger durchführen Ist bei dezentralen Ansätzen zwangsläufig der Fall Verteilung der Nachrichten Push: automatische Verteilung Pull: Empfänger muss explizit nachschauen, ob in der Queue, die seiner Subscription entspricht, Einträge eingegangen sind Kapitel 6: Vorlesung MOM 17

Varianten von Publish/Subscribe-Interaktionen (4) Persistenz Nicht-persistente Queues Events werden veröffentlicht und gleich weitergeleitet, falls Subscriber vorhanden sind, ansonsten verpuffen sie Es werden nur Events versandt, die nach der Subscription veröffentlicht worden sind Persistente Queues Publish/Subscribe-Broker speichert Events dauerhaft Subscriber können also bereits bei der Subscription auf archivierte Informationen zurückgreifen In vielen Produkten ist die Persistenz/Nicht-Persistenz eine Eigenschaft der Nachricht (d.h. der Publisher kann bestimmen, ob eine Nachricht dauerhaft gemacht werden soll oder nicht) Transaktionsunterstützung Transaktionslose Übertragung vs. Übertragung in Form von Queued Transactions Kapitel 6: Vorlesung MOM 18

Varianten von Publish/Subscribe-Interaktionen (5) Anzahl der Empfänger Events werden allen Subscribern zugänglich gemacht (gemäss Topic bzw. Content) Dies ist der Fall bei Nachrichtenaustausch über Publish/Subscribe Events werden lediglich einem Subscriber geschickt Auswahl des Empfängers aufgrund deren Auslastung Ziel: Load balancing (z.b. Queues in TP-Monitoren) Kapitel 6: Vorlesung MOM 19