Top Banner
Seminar „Enterprise Applications“ Daniel Kersting 11.12.2008
55

Message Oriented Middleware (MOM)

Dec 13, 2014

Download

Education

drewenut

Was ist Middleware?
Unterschiedliche Middleware Arten
Grundlagen und Eigenschaft von Message Oriented Middleware
Implementierungsdetails
Beispiele (JMS)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Message Oriented Middleware (MOM)

Seminar „Enterprise Applications“Daniel Kersting

11.12.2008

Page 2: Message Oriented Middleware (MOM)

Ein Beispielszenario

2» MotivationMessage Oriented Middleware (MOM)

Page 3: Message Oriented Middleware (MOM)

Was ist Middleware? Unterschiedliche Middleware Arten Grundlagen und Eigenschaft von MOM Implementierungsdetails Beispiele

3» InhaltsverzeichnisMessage Oriented Middleware (MOM)

Page 4: Message Oriented Middleware (MOM)

Erste AnnäherungEigenschaften

BeispieleDefinition

4» Was ist MiddlewareMessage Oriented Middleware (MOM)

Page 5: Message Oriented Middleware (MOM)

Erste Annäherungen• Das Wort Middleware

Deutsch: „Zwischenanwendung“ Bezeichnet Software „in der Mitte“

Bezeichnung manchmal missverständlich Viele Middleware Produkte eher wie Server Nicht unbedingt in der Mitte

• Software Klebstoff• Der "/" in Client/Server

5» Was ist Middleware » Erste AnnäherungMessage Oriented Middleware (MOM)

Page 6: Message Oriented Middleware (MOM)

Im ISO/OSI Protokollstack

6» Was ist Middleware » Im ISO/OSI ProtokollstackMessage Oriented Middleware (MOM)

Page 7: Message Oriented Middleware (MOM)

Eigenschaften• Anwendungsneutrale Programme• Kommunikationsinfrastruktur• Vermittelt zwischen Anwendungen• Kommunikation zwischen Prozessen

Fast immer TCP/IP Darauf aufbauend meist HTTP, SOAP…

• Protokoll einer höheren Schicht• Setzt auf verteiltem System auf

7» Was ist Middleware » EigenschaftenMessage Oriented Middleware (MOM)

Page 8: Message Oriented Middleware (MOM)

Beispiele• Die meisten EAI-Produkte beinhalten Middleware-

Funktionalität• Typische Middlewareprodukte

Enterprise Service Bus von Oracle Exchange Infrastructure von SAP (SAP XI) WebSphere Application Server von IBM Common Object Request Broker Architecture (CORBA) von

der Object Management Group (OMG)

8» Was ist Middleware » BeispieleMessage Oriented Middleware (MOM)

Page 9: Message Oriented Middleware (MOM)

MIDDLEWARE KEINE MIDDLEWARE

PHP J2EE JavaScript Hardwaretreiber

Betriebssystem Datenbank Webbrowser Apache Webserver

9» Was ist Middleware » BeispieleMessage Oriented Middleware (MOM)

Page 10: Message Oriented Middleware (MOM)

Allgemein Definition von Middleware:Anwendungsneutrale "Zwischenanwendung" mit Schnittstellencharakter welche zwischen zwei Stücken Software (über ein Netzwerk) vermittelt

10» Was ist Middleware » DefinitionMessage Oriented Middleware (MOM)

Page 11: Message Oriented Middleware (MOM)

KommunikationsorientiertAnwendungsorientiertNachrichtenorientiert

Nachricht vs. Befehl

11» Unterschiedliche Middleware ArtenMessage Oriented Middleware (MOM)

Page 12: Message Oriented Middleware (MOM)

Kommunikationsorientiert• Engl: Transaction Oriented Middleware• Abstraktion von Netzwerkprogrammierung• Entfernte Methodenaufrufe• Beispiele: RPC, Java RMI, Web Service

12» Unterschiedliche Middleware Arten » KommunikationsorientiertMessage Oriented Middleware (MOM)

Page 13: Message Oriented Middleware (MOM)

Anwendungsorientiert• Engl. Distributed Objects and Components• Unterstützung verteilter Anwendungen• Beispiele: CORBA, J2EE oder .NET• Aber auch MIDP (Mobile Information Device Profile),

MHP (Multimedia Home Platform)

13» Unterschiedliche Middleware Arten » AnwendungsorientiertMessage Oriented Middleware (MOM)

Page 14: Message Oriented Middleware (MOM)

Nachrichtenorientiert• Engl. Message Oriented Middleware (MOM)• Arbeitet nicht mit Methoden- oder Funktionsaufrufen

Austausch von Nachrichten Empfänger nimmt Nachricht an, sobald er bereit ist Weitgehende Entkopplung von Sender und Empfänger

• Nachrichtenformat gibt eingesetzte Middleware vor • Kann sowohl synchron als auch asynchron arbeiten• Beispiele: JMS, MSMQ, MQSeries

14» Unterschiedliche Middleware Arten » NachrichtenorientiertMessage Oriented Middleware (MOM)

Page 15: Message Oriented Middleware (MOM)

NACHRICHT (MOM) BEFEHL (RPC)

1. Ein Feuer brennt2. Ein Sensor sendet Nachricht:

„Ein Feuer brennt“3. Empfänger sind beliebig

• Feuerwehr• Löschanlage• Feuertüren• …

1. Ein Feuer brennt2. Ein Sensor

• Informiert Feuerwehr• Startet Löschanlage• Schließt Feuertüren• …

15» Unterschiedliche Middleware Arten » Nachricht vs. BefehlMessage Oriented Middleware (MOM)

Page 16: Message Oriented Middleware (MOM)

Nachricht vs. Befehl

16» Unterschiedliche Middleware Arten » Nachricht vs. BefehlMessage Oriented Middleware (MOM)

Page 17: Message Oriented Middleware (MOM)

Nachricht vs. Befehl

17» Unterschiedliche Middleware Arten » Nachricht vs. BefehlMessage Oriented Middleware (MOM)

Page 18: Message Oriented Middleware (MOM)

WarteschlangeAsynchrones Kommunikationsmodell

KomponentenVor- und Nachteile

18» Grundlagen und EigenschaftenMessage Oriented Middleware (MOM)

Page 19: Message Oriented Middleware (MOM)

Warteschlange nach FIFO Prinzip

19» Grundlagen und Eigenschaften » WarteschlangeMessage Oriented Middleware (MOM)

Page 20: Message Oriented Middleware (MOM)

Asynchrones Kommunikationsmodell • Nicht auf Antwort warten• Sender blockiert nicht• Vergleiche: E-Mail

20» Grundlagen und Eigenschaften » Asynchrones KommunikationsmodellMessage Oriented Middleware (MOM)

Page 21: Message Oriented Middleware (MOM)

Komponenten• Nachrichten (Messages)• Warteschlangen (Queues)• Datentransfer Schnittstelle (Messaging Clients)

21» Grundlagen und Eigenschaften » KomponentenMessage Oriented Middleware (MOM)

Page 22: Message Oriented Middleware (MOM)

Komponenten• Nachrichten (Messages)

Header Routing Identifikation/Authentifikation Priorität

Body Application Data Message Content

22» Grundlagen und Eigenschaften » KomponentenMessage Oriented Middleware (MOM)

Page 23: Message Oriented Middleware (MOM)

23» Grundlagen und Eigenschaften » KomponentenMessage Oriented Middleware (MOM)

<? xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <login:sicherheit xmlns:login="http://example.com/login/"> <login:benutzername>Peter Muster</login:benutzername> <login:passwort>meinpasswort</login:passwort> </login:sicherheit> </soap:Header> <soap:Body> <bank:KontoStand xmlns:bank="http://example.com/bank/"> <Gutschrift>100.00</Gutschrift> </bank:KontoStand> </soap:Body></soap:Envelope>

Komponenten• Beispiel: SOAP Nachricht

Page 24: Message Oriented Middleware (MOM)

Komponenten• Warteschlangen (Queues)

„Mailbox“ einer MOM (MOM-Server) Empfangen und Speichern von Nachrichten Beim Sender oder Empfänger lokalisiert Persistent

Speichern Nachrichten physikalisch Garantierte Übertragung Resourcenhungrig

Non-persistent Speichern Nachrichten nur im RAM

24» Grundlagen und Eigenschaften » KomponentenMessage Oriented Middleware (MOM)

Page 25: Message Oriented Middleware (MOM)

Komponenten• Datentransfer Schnittstelle (Messaging Clients)

Sender/Empfänger Bieten API an

Nachrichten senden/empfangen Session starten Nachricht vorbereiten Routing Parameter

25» Grundlagen und Eigenschaften » KomponentenMessage Oriented Middleware (MOM)

Page 26: Message Oriented Middleware (MOM)

Komponenten

26» Grundlagen und Eigenschaften » KomponentenMessage Oriented Middleware (MOM)

Page 27: Message Oriented Middleware (MOM)

Vorteile• Asynchrone/synchrone Kommunikation

Server/Dienst muss nicht sofort verfügbar sein Message-Warteschlangen

• Schnellere Ausführung Im Vergleich zu Funktionsaufruf-basierten Programmen

• Lose Kopplung von Server/Clients• Mehr Toleranz für Änderungen bestehender Funktion• Verbesserte Verfügbarkeit• Parallele Verarbeitung von Nachrichten

27» Grundlagen und Eigenschaften » Vor- und NachteileMessage Oriented Middleware (MOM)

Page 28: Message Oriented Middleware (MOM)

Nachteile• Ausfall legt alle angeschlossenen Systeme lahm• Designen, Testen, Debuggen und Entwicklung der

Bauteile für Synchron-Programmierer ungewohnt• Zusätzlich Komponenten bzw. Infrastruktur benötigt• Kommunikation zwischen Applikationen oft synchron• Viele unterschiedliche Standards

28» Grundlagen und Eigenschaften » Vor- und NachteileMessage Oriented Middleware (MOM)

Page 29: Message Oriented Middleware (MOM)

Typen der KommunikationMOM Frameworks

29» ImplementierungsdetailsMessage Oriented Middleware (MOM)

Page 30: Message Oriented Middleware (MOM)

Typen der Kommunikation• Message Passing • Message Queueing (Point-to-Point)• Broadcasting• Publish & Subscribe

30» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 31: Message Oriented Middleware (MOM)

Typen der Kommunikation• Message Passing

Synchrone Kommunikation Über asynchrone Middleware

Direkte Kommunikation zwischen Applikationen Verhält sich ähnlich wie RPC Request/Reply

Sender blockiert, bis Antwort eintrifft Realisierung z.B. über zwei Warteschlangen

31» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 32: Message Oriented Middleware (MOM)

Message Passing

32» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 33: Message Oriented Middleware (MOM)

Typen der Kommunikation• Message Queueing

Asynchron Punkt zu Punkt Indirekte Kommunikation über eine Nachrichtenqueue

33» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 34: Message Oriented Middleware (MOM)

Message Qeueing

34» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 35: Message Oriented Middleware (MOM)

Typen der Kommunikation• Broadcasting

Nachricht wird an alle erreichbaren Sender versendet

35» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 36: Message Oriented Middleware (MOM)

Broadcasting

36» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 37: Message Oriented Middleware (MOM)

Typen der Kommunikation• Publish & Subscribe

Asynchron Broadcast-Kommunikation

Nachricht wird an alle erreichbaren Sender versendet Publisher

Veröffentlichen Nachrichten zu einem Thema Subscriber

Abonnieren bestimmte Themen Vermittlung durch Broker Vergleichbar mit Observer Pattern

37» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 38: Message Oriented Middleware (MOM)

Vermittler (Broker)

Publish & Subscribe

38» Implementierungsdetails » Typen der KommunikationMessage Oriented Middleware (MOM)

Page 39: Message Oriented Middleware (MOM)

MOM Frameworks• Message Queueing

Indirekte Kommunikation über eine Nachrichtenqueue Punkt zu Punkt Buffered/Persistent MQSeries (IBM)

• Message Broker Vermittler Punkt zu Mehrpunkt ESB

39» Implementierungsdetails » MOM FrameworksMessage Oriented Middleware (MOM)

Page 40: Message Oriented Middleware (MOM)

Message Queueing

40» Implementierungsdetails » MOM FrameworksMessage Oriented Middleware (MOM)

Page 41: Message Oriented Middleware (MOM)

Message Queueing

41» Implementierungsdetails » MOM FrameworksMessage Oriented Middleware (MOM)

Page 42: Message Oriented Middleware (MOM)

Message Broker

42» Implementierungsdetails » MOM FrameworksMessage Oriented Middleware (MOM)

Page 43: Message Oriented Middleware (MOM)

JMSMSMQ

MQSeries

43» BeispieleMessage Oriented Middleware (MOM)

Page 44: Message Oriented Middleware (MOM)

JMS (Java Message Service)• Teil der Java2 Enterprise Edition (J2EE)• Programmierschnittstelle (API)

Ansteuerung von MOM aus einem Client heraus• Man unterscheidet zwei Rollen:

JMS-Provider: der jeweilige MOM-Server JMS-Client: Sender bzw. Empfänger von Nachrichten

• JMS unterstützt: Publish/Subscribe Point-to-Point Request-Reply Modell

• Warteschlange kann persistent sein

44» Beispiele » JMSMessage Oriented Middleware (MOM)

Page 45: Message Oriented Middleware (MOM)

JMS

45» Beispiele » JMSMessage Oriented Middleware (MOM)

Page 46: Message Oriented Middleware (MOM)

public class HelloProducer{ public HelloProducer() {

ConnectionFactory cf = new com.sun.messaging.ConnectionFactory(); Connection connection = cf.createConnection(); Session session = connection.createSession(…); Destination destination = session.createQueue("HelloWorld"); MessageProducer producer = session.createProducer(destination); connection.start(); TextMessage message = session.createTextMessage(); message.setText("Hello World"); producer.send(message); producer.close(); connection.close(); }

public static void main(String args[]) { new HelloProducer(); }}

46» Beispiele » JMSMessage Oriented Middleware (MOM)

Page 47: Message Oriented Middleware (MOM)

public class HelloConsumer{ public HelloConsumer() {

ConnectionFactory cf = new com.sun.messaging.ConnectionFactory(); Connection connection = cf.createConnection(); Session session = connection.createSession(…); Destination destination = session.createQueue("HelloWorld"); MessageConsumer consumer = session.createConsumer(destination); connection.start(); TextMessage m = (TextMessage)consumer.receive(); System.out.println(m.toString()); consumer.close(); session.close(); connection.close(); } public static void main(String args[]) { new HelloConsumer(); } }

47» Beispiele » JMSMessage Oriented Middleware (MOM)

Page 48: Message Oriented Middleware (MOM)

Microsoft Message Queue (MSMQ)• 1998 Windows NT Addon• ActiveX API• Point-To -Point Modell• Intelligentes Routing• Transaktions Management

48» Beispiele » MSMQMessage Oriented Middleware (MOM)

Page 49: Message Oriented Middleware (MOM)

MQSeries• Mittlerweile „Websphere MQ“• Plattformunabhängige MOM von IBM (1992)

Austausch von Nachrichten zwischen heterogenen Anwendungen auf verschiedenen Plattformen

• Asynchrone Datenübertragung• Point-To -Point Modell• Intelligentes Routing• Weite Verbreitung

49» Beispiele » MQSeriesMessage Oriented Middleware (MOM)

Page 50: Message Oriented Middleware (MOM)

MQSeries• Transaktions Management

Interne Transaktion Nachrichten im Fehlerfall neu übertragen

Externe Transaktion Selbst Transaktion

50» Beispiele » MQSeriesMessage Oriented Middleware (MOM)

Page 51: Message Oriented Middleware (MOM)

MQSeries

51» Beispiele » MQSeriesMessage Oriented Middleware (MOM)

Page 52: Message Oriented Middleware (MOM)

MQSeries• Programmierschnittstelle MQI

MQCONN – mit dem Queue-Manager verbinden MQDISC – vom Queue-Manager trennen MQOPEN – Message Queue öffnen MQCLOSE – Message Queue schließen MQGET – Lesen aus Message Queue MQPUT – Schreiben in Message Queue MQPUT1 – Öffnen, Schreiben & Schließen MQBEGIN – Transaktion beginnen MQBACK – Transaktion zurücknehmen MQCMIT – Transaktion bestätigen MQINQ – Attribute eines MQ-Objekts abfragen MQSET – Attribute eines MQ-Objekts setzen

52» Beispiele » MQSeriesMessage Oriented Middleware (MOM)

Page 53: Message Oriented Middleware (MOM)

ZusammenfassungFragen?

53» EndeMessage Oriented Middleware (MOM)

Page 54: Message Oriented Middleware (MOM)

Eine Middleware heißt nachrichtenorientierte Middleware (MOM) genau dann, wenn die Kommunikation zwischen den beteiligten Komponenten durch den Austausch von Nachrichten über eine Zwischeninstanz erfolgt.

54» Ende » ZusammenfassungMessage Oriented Middleware (MOM)

Page 55: Message Oriented Middleware (MOM)

55