Your SlideShare is downloading. ×

Message Oriented Middleware (MOM)

3,504
views

Published on

Was ist Middleware? …

Was ist Middleware?
Unterschiedliche Middleware Arten
Grundlagen und Eigenschaft von Message Oriented Middleware
Implementierungsdetails
Beispiele (JMS)

Published in: Education

1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
3,504
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
76
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Seminar „Enterprise Applications“ Daniel Kersting 11.12.2008
  • 2.
    • Ein Beispielszenario
    » Motivation Message Oriented Middleware (MOM)
  • 3.
    • Was ist Middleware?
    • Unterschiedliche Middleware Arten
    • Grundlagen und Eigenschaft von MOM
    • Implementierungsdetails
    • Beispiele
    » Inhaltsverzeichnis Message Oriented Middleware (MOM)
  • 4.
    • Erste Annäherung
    • Eigenschaften
    • Beispiele
    • Definition
    » Was ist Middleware Message Oriented Middleware (MOM)
  • 5.
    • 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
    » Was ist Middleware » Erste Annäherung Message Oriented Middleware (MOM)
  • 6.
    • Im ISO/OSI Protokollstack
    » Was ist Middleware » Im ISO/OSI Protokollstack Message Oriented Middleware (MOM)
  • 7.
    • 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
    » Was ist Middleware » Eigenschaften Message Oriented Middleware (MOM)
  • 8.
    • 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)
    » Was ist Middleware » Beispiele Message Oriented Middleware (MOM)
  • 9.
    • MIDDLEWARE
    • KEINE MIDDLEWARE
    • PHP
    • J2EE
    • JavaScript
    • Hardwaretreiber
    • Betriebssystem
    • Datenbank
    • Webbrowser
    • Apache Webserver
    » Was ist Middleware » Beispiele Message Oriented Middleware (MOM)
  • 10.
    • Allgemein Definition von Middleware: Anwendungsneutrale "Zwischenanwendung" mit Schnittstellencharakter welche zwischen zwei Stücken Software (über ein Netzwerk) vermittelt
    » Was ist Middleware » Definition Message Oriented Middleware (MOM)
  • 11.
    • Kommunikationsorientiert
    • Anwendungsorientiert
    • Nachrichtenorientiert
    • Nachricht vs. Befehl
    » Unterschiedliche Middleware Arten Message Oriented Middleware (MOM)
  • 12.
    • Kommunikationsorientiert
      • Engl: Transaction Oriented Middleware
      • Abstraktion von Netzwerkprogrammierung
      • Entfernte Methodenaufrufe
      • Beispiele: RPC, Java RMI, Web Service
    » Unterschiedliche Middleware Arten » Kommunikationsorientiert Message Oriented Middleware (MOM)
  • 13.
    • 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)
    » Unterschiedliche Middleware Arten » Anwendungsorientiert Message Oriented Middleware (MOM)
  • 14.
    • 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
    » Unterschiedliche Middleware Arten » Nachrichtenorientiert Message Oriented Middleware (MOM)
  • 15.
    • NACHRICHT (MOM)
    • BEFEHL (RPC)
    • Ein Feuer brennt
    • Ein Sensor sendet Nachricht: „Ein Feuer brennt“
    • Empfänger sind beliebig
      • Feuerwehr
      • Löschanlage
      • Feuertüren
    • Ein Feuer brennt
    • Ein Sensor
      • Informiert Feuerwehr
      • Startet Löschanlage
      • Schließt Feuertüren
    » Unterschiedliche Middleware Arten » Nachricht vs. Befehl Message Oriented Middleware (MOM)
  • 16.
    • Nachricht vs. Befehl
    » Unterschiedliche Middleware Arten » Nachricht vs. Befehl Message Oriented Middleware (MOM)
  • 17.
    • Nachricht vs. Befehl
    » Unterschiedliche Middleware Arten » Nachricht vs. Befehl Message Oriented Middleware (MOM)
  • 18.
    • Warteschlange
    • Asynchrones Kommunikationsmodell
    • Komponenten
    • Vor- und Nachteile
    » Grundlagen und Eigenschaften Message Oriented Middleware (MOM)
  • 19.
    • Warteschlange nach FIFO Prinzip
    » Grundlagen und Eigenschaften » Warteschlange Message Oriented Middleware (MOM)
  • 20.
    • Asynchrones Kommunikationsmodell
      • Nicht auf Antwort warten
      • Sender blockiert nicht
      • Vergleiche: E-Mail
    » Grundlagen und Eigenschaften » Asynchrones Kommunikationsmodell Message Oriented Middleware (MOM)
  • 21.
    • Komponenten
      • Nachrichten ( Messages )
      • Warteschlangen ( Queues )
      • Datentransfer Schnittstelle ( Messaging Clients )
    » Grundlagen und Eigenschaften » Komponenten Message Oriented Middleware (MOM)
  • 22.
    • Komponenten
      • Nachrichten ( Messages )
        • Header
          • Routing
          • Identifikation/Authentifikation
          • Priorität
        • Body
          • Application Data
          • Message Content
    » Grundlagen und Eigenschaften » Komponenten Message Oriented Middleware (MOM)
  • 23.
    • Komponenten
      • Beispiel: SOAP Nachricht
    » Grundlagen und Eigenschaften » Komponenten Message Oriented Middleware (MOM) <? xml version=&quot;1.0&quot; encoding =&quot;utf-8&quot; ?> <soap:Envelope xmlns:soap =&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;> <soap:Header> <login:sicherheit xmlns:login =&quot;http://example.com/login/&quot;> <login:benutzername> Peter Muster </login:benutzername> <login:passwort> meinpasswort </login:passwort> </login:sicherheit> </soap:Header> <soap:Body> <bank:KontoStand xmlns:bank =&quot;http://example.com/bank/&quot;> <Gutschrift> 100.00 </Gutschrift> </bank:KontoStand> </soap:Body> </soap:Envelope>
  • 24.
    • 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
    » Grundlagen und Eigenschaften » Komponenten Message Oriented Middleware (MOM)
  • 25.
    • Komponenten
      • Datentransfer Schnittstelle ( Messaging Clients )
        • Sender/Empfänger
        • Bieten API an
          • Nachrichten senden/empfangen
          • Session starten
          • Nachricht vorbereiten
          • Routing Parameter
    » Grundlagen und Eigenschaften » Komponenten Message Oriented Middleware (MOM)
  • 26.
    • Komponenten
    » Grundlagen und Eigenschaften » Komponenten Message Oriented Middleware (MOM)
  • 27.
    • 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
    » Grundlagen und Eigenschaften » Vor- und Nachteile Message Oriented Middleware (MOM)
  • 28.
    • 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
    » Grundlagen und Eigenschaften » Vor- und Nachteile Message Oriented Middleware (MOM)
  • 29.
    • Typen der Kommunikation
    • MOM Frameworks
    » Implementierungsdetails Message Oriented Middleware (MOM)
  • 30.
    • Typen der Kommunikation
      • Message Passing
      • Message Queueing (Point-to-Point)
      • Broadcasting
      • Publish & Subscribe
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 31.
    • 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
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 32.
    • Message Passing
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 33.
    • Typen der Kommunikation
      • Message Queueing
        • Asynchron
        • Punkt zu Punkt
        • Indirekte Kommunikation über eine Nachrichtenqueue
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 34.
    • Message Qeueing
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 35.
    • Typen der Kommunikation
      • Broadcasting
        • Nachricht wird an alle erreichbaren Sender versendet
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 36.
    • Broadcasting
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 37.
    • 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
    » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 38.
    • Publish & Subscribe
    Vermittler (Broker) » Implementierungsdetails » Typen der Kommunikation Message Oriented Middleware (MOM)
  • 39.
    • MOM Frameworks
      • Message Queueing
        • Indirekte Kommunikation über eine Nachrichtenqueue
        • Punkt zu Punkt
        • Buffered/Persistent
        • MQSeries (IBM)
      • Message Broker
        • Vermittler
        • Punkt zu Mehrpunkt
        • ESB
    » Implementierungsdetails » MOM Frameworks Message Oriented Middleware (MOM)
  • 40.
    • Message Queueing
    » Implementierungsdetails » MOM Frameworks Message Oriented Middleware (MOM)
  • 41.
    • Message Queueing
    » Implementierungsdetails » MOM Frameworks Message Oriented Middleware (MOM)
  • 42.
    • Message Broker
    » Implementierungsdetails » MOM Frameworks Message Oriented Middleware (MOM)
  • 43.
    • JMS
    • MSMQ
    • MQSeries
    » Beispiele Message Oriented Middleware (MOM)
  • 44.
    • 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
    » Beispiele » JMS Message Oriented Middleware (MOM)
  • 45.
    • JMS
    » Beispiele » JMS Message Oriented Middleware (MOM)
  • 46.
    • public class HelloProducer {
    • public HelloProducer () {
    • ConnectionFactory cf = new com . sun . messaging . ConnectionFactory () ;
    • Connection connection = cf . createConnection () ;
    • Session session = connection . createSession (…) ;
    • Destination destination = session . createQueue ( &quot;HelloWorld&quot; ) ;
    • MessageProducer producer = session . createProducer ( destination ) ;
    • connection . start () ;
    • TextMessage message = session . createTextMessage () ;
    • message . setText ( &quot;Hello World&quot; ) ;
    • producer . send ( message ) ;
    • producer . close () ;
    • connection . close () ;
    • }
    • public static void main ( String args []) {
    • new HelloProducer () ;
    • }
    • }
    » Beispiele » JMS Message Oriented Middleware (MOM)
  • 47.
    • public class HelloConsumer {
    • public HelloConsumer () {
    • ConnectionFactory cf = new com . sun . messaging . ConnectionFactory () ;
    • Connection connection = cf . createConnection () ;
    • Session session = connection . createSession (…) ;
    • Destination destination = session . createQueue ( &quot;HelloWorld&quot; ) ;
    • 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 () ;
    • }
    • }
    » Beispiele » JMS Message Oriented Middleware (MOM)
  • 48.
    • Microsoft Message Queue (MSMQ)
      • 1998 Windows NT Addon
      • ActiveX API
      • Point-To -Point Modell
      • Intelligentes Routing
      • Transaktions Management
    » Beispiele » MSMQ Message Oriented Middleware (MOM)
  • 49.
    • 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
    » Beispiele » MQSeries Message Oriented Middleware (MOM)
  • 50.
    • MQSeries
      • Transaktions Management
        • Interne Transaktion
          • Nachrichten im Fehlerfall neu übertragen
        • Externe Transaktion
        • Selbst Transaktion
    » Beispiele » MQSeries Message Oriented Middleware (MOM)
  • 51.
    • MQSeries
    » Beispiele » MQSeries Message Oriented Middleware (MOM)
  • 52.
    • 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
    » Beispiele » MQSeries Message Oriented Middleware (MOM)
  • 53.
    • Zusammenfassung
    • Fragen?
    » Ende Message Oriented Middleware (MOM)
  • 54.
    • 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.
    » Ende » Zusammenfassung Message Oriented Middleware (MOM)