Übungen „Message-basierte Anwendungen“ WS 08/09 Blatt 2

Werbung
Prof. Dr . Frank Leymann / Thorsten Scheibler
Institut für Architektur von Anwendungssystemen
Universität Stuttgart
Übungen
„Message-basierte Anwendungen“
WS 08/09
Blatt 2 – 19.11.2008
Aufgabe 2.1 – Message-oriented Middleware
Es ist eine Message-oriented Middleware nach der unten dargestellten Topologie
gegeben. In diesem Szenario kann Klient A Nachrichten über das MQ System 1
versenden. Klient B kann Nachrichten aus dem MQ System 2 abholen und über
das MQ System 4 versenden. Klient C kann Nachrichten aus dem MQ System 5
abholen.
2.1 a - Topologie
Erstellen Sie die detaillierte Topologie dieses Szenarios. Es sollen alle
Komponenten aufgelistet werden, die dabei zum Einsatz kommen (MQI, MQM,
Ports + Listener, alle Queues, QM Definitionen, Kanäle samt Konfigurationen,…).
2.1 b - Kommunikation
Klient A sendet eine Nachricht ab. Diese Nachricht wird an den Klienten C
weitergegeben. Erläutern Sie den genauen Ablauf, wie die Verbindungen
zwischen den einzelnen Komponenten hergestellt werden. Verwenden Sie dazu
Befehle des MQI und des MQM. Falls geeignete Befehle im Skript nicht
auftauchen, können Sie Pseudo-Befehle einführen.
2.1c – Fehlerfall
In einem Fehlerfall ist MQ System 2 nicht verfügbar. Was passiert mit
Nachrichten von MQ System 1 und 4, die an dieses System gesendet werden?
Kanal
Ka
na
l
Kanal
MQ System 4
MQ System 3
l
na
Ka
Klient B
l
na
MQ System 2
Ka
l
MQ System 1
Ka
na
l
Kanal
Kana
Klient A
MQ System 5
Abbildung 3.1: Topologie einer MOM
Seite 1 von 3
Kanal
Klient C
Message-basierte Anwendungen
WS 08/09
Übungsblatt 2
19.11.2008
Aufgabe 2.2 – JMS Message Types
Es existiert eine Nachricht der Form {Firmenname, Aktienkurs}. Pro Nachricht
werden Aktienkurse mehrerer Firmen zu einem bestimmten Zeitpunkt
abgesendet. Diese Information kann in verschiedene JMS Nachrichtentypen
verpackt werden (TextMessage, ObjectMessage, MapMessage,…).
Zeigen Sie, welche unterschiedlichen Möglichkeiten existieren, diese Mitteilungen
über JMS zu versenden. Je nach Typ sieht der Nachrichteninhalt (Body)
unterschiedlich aus. Stellen Sie für jede einzelne Möglichkeit eine oder mehrere
Formen des Nachrichteninhaltes dar1.
Aufgabe 2.3 – JMS Header Informationen
JMS Nachrichten können mit Hilfe von Header Feldern bestimmte Quality-ofService (QoS) Level erreichen. Geben Sie an, welche Header Felder wie gesetzt
sein müssen, um jeweils folgende Eigenschaft zu erreichen:
- Nachricht mit hoher Dringlichkeit ausliefern
- Nachricht soll beantwortet werden (wie sieht außerdem die
Antwortnachricht aus)
- Aus der Nachricht muss erkennbar sein, wann sie erzeugt wurde
- Nachricht ist nur eine bestimmte Zeit gültig
Kann man folgende QoS Level ebenfalls mit Header Feldern erreichen oder sind
hierzu weitere Eigenschaften/ Einstellungen/ Konfiguration (z.B. an der
Infrastruktur) nötig?
- Nachricht genau einmal und nur einmal senden (once-and-only-once)
- Nachricht mindestes einmal senden (at-least-once)
- Nachricht höchstens einmal senden (at-most-once)
Aufgabe 2.4 – JMS Properties
JMS besitzt keine Vorkehrungen, um Sicherheit der Nachrichten zu
gewährleisten. Sicherheit bedeutet dabei Authentifizierung des Senders und
Verschlüsselung des eigentlichen Nachrichteninhalts. Erläutern Sie, wie mit Hilfe
von JMS Properties die Nachrichten mit Informationen angereichert werden
können, um Sicherheitsaspekte umsetzen zu können2. Erstellen Sie dazu ein
geeignetes Protokoll, bei welchem zunächst der Benutzer authentifiziert und
anschließend ein sicherer Kanal zum Server aufgebaut wird. Achten Sie darauf,
dass keine sicherheitskritischen Daten (wie z.B. ein Passwort) unverschlüsselt
übertragen werden.
Aufgabe 2.5 – JMS Message Selectors
Ein „Message Selector“ erlaubt einem JMS Konsumenten eingehende Nachrichten
bereits frühzeitig zu filtern, bevor er sie (unnötigerweise) verarbeiten muss.
Solche Selektoren verwenden dabei Headerfelder und Properties als Kriterien in
bedingten Anweisungen. Im Folgenden werden zwei Szenarien beschrieben.
Stellen Sie für jedes dieser Szenarien einen Selektor auf und erläutern Sie,
welche Headerfelder dabei verwendet werden bzw. welche Properties die
Nachricht enthalten muss. Ein Selektor ist dabei nichts anderes als ein boolscher
Ausdruck, ähnlich der ‚where’ Klausel eines SQL Statements.
1
Beispiel für TextMessage: eine Möglichkeit wäre „ Firmenname Kurs,…“
Verwenden Sie zur Authentifizierung ein Protokoll mit Hilfe von Benutzername und Passwort.
Verschlüsselung soll mit Hilfe von privaten und öffentlichen Schlüsseln erfolgen.
2
Seite 2 von 3
Message-basierte Anwendungen
WS 08/09
Übungsblatt 2
19.11.2008
Szenario 1: Eine Versicherungsanwendung möchte aus der großen Anzahl von
Mängelbeschwerden, die als Nachrichten in einer Message Queue landen, alle
diejenigen herausfiltern, die nicht älter als drei Wochen sind und nur von
Chemikern oder Physikern stammen, die an der Universität Stuttgart angestellt
sind.
Szenario 2: Ein Hersteller möchte eine Mitteilung erhalten, wenn die Bestellung
des Artikels mit der Inventarnummer ‚SFW374556-02’ mit mindestens 100 stück
eingeht.
Aufgabe 2.6 – Topics
Stellen Sie ein Topic auf, das die deutsche Börse widerspiegelt. Dabei soll es
neben den unterschiedlichen Indexen (DAX30, MDAX, NEMAX50, TECDAX,…)
auch Topics für verschiedene Branchen geben (Fahrzeuge – Hersteller oder
Zulieferer, Maschinenbauer – Hersteller oder Zulieferer,…). Firmen können dabei
unter verschiedenen Zweigen vertreten sein, d.h. eine Firma kann z.B. ihre
Nachrichten über das Topic DAX30 und gleichzeitig auch über das Topic
Maschinenbauer – Hersteller veröffentlichen.
BMW möchte nun seine Nachrichten veröffentlichen. Auf welche Topics
veröffentlicht er diese?
Ein Kunde möchte alle Informationen der DAX30 Unternehmen sowie der
Unternehmen Bosch und MAN erhalten (und keine weiteren). Auf welche Topics
muss er sich in diesem Fall einschreiben
Seite 3 von 3
Herunterladen