Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen...

43
Ch. Thiele, 01IN, Obersem inar "Datenmanagement" SS 05 Kommunikation in verteilten Systemen (Middleware)

Transcript of Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen...

Page 1: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Kommunikation in verteilten Systemen (Middleware)

Page 2: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Agenda

Einleitung Begriff, Zielsetzung, Produkte

Kommunikation in verteilten Systemen Oracle - Messaging und Integration Oracle Streams AQ Oracle InterConnect („Hub and Spoke“)

Orchestrierung von Web-Services: BPEL

Page 3: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

anwendungsunabhängige TechnologieDienstleistung zur Vermittlung zwischen Anwendungen anErmöglicht Softwarekomponenten die Kommunikation untereinander

Page 4: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Aufgaben von Middleware (1)

Kommunikation einer Softwarekomponente über Netzwerke wird für diese transparent gemachtOrganisiert Transport komplexer Daten (Messaging)Stellt Software –Schnittstellen und – Dienste bereitStellt die Transaktionssicherheit über unabhängige Teilsysteme dar (Transaktions-Monitor)

Page 5: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Aufgaben von Middleware (2)

Stellt Dienste für Identifikation, Authentifizierung, Zugriffe oder Sicherheit zur VerfügungVerbirgt Unterschiede zwischen Hardwareplattformen, Programmiersprachen, Betriebssystemen und ÜbertragungsprotokollenVerschafft eine einheitliche SichtVerbirgt Komplexität der zugrunde liegenden Anwendungen und Infrastruktur

Page 6: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Vereinfachter Ablauf

Softwarekomponente A nutzt Schnittstellen der Middleware um mit SK B zu Informationen auszutauschenMiddleware reicht Aufruf über ein Netzwerk weiter (Einsatz von TCP/IP, darauf HTTP, SOAP)Auf der Empfängerseite setzt die Middleware die Anforderung in einen Funktionsaufruf an die Software B um

Page 7: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Middleware

Nachteile: Größe und Schwerfälligkeit Wenig Optimierungsmöglichkeiten in der

LeistungsfähigkeitProdukte:

CICS von IBM NetWeaver von SAP Websphere von IBM

Page 8: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Kommunikation in verteilten Systemen

1. Nachrichten-basiert2. Remote Procedure Calls (RPC)3. Objekt-basiert4. Web-basiert5. Komponenten-basiert

Man unterscheidet: synchrone und asynchrone Kommunikation

Page 9: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

1. Nachrichten-basiert

Einfachste ÜbertragungsartAsynchron: Zwischenspeicherung (Pufferung) der Nachricht zwischen Sender und EmpfängerVerwendung von Pipes oder Queues

... ein Beispiel hierfür ist das Java Messaging Service

(JMS)

Page 10: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

JMS (1)

Asynchrone KommunikationBasis bildet ein Message Server (JMS Provider), der Nachrichten empfängt zentrale Speicherung der DatenAufbau JMS-Architektur:

JMS-Client: Java Applikation, Versendet und Empfängt Nachrichten

JMS-Provider: Führt Nachrichtenversand durch, Persistenz durch Datenbankunterstützung (Java Application Server oder andere)

Page 11: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

JMS (2)

Nachrichtenmodelle von JMS: Point to Point

1:1 Kommunikation Verwendung einer Queue (Warteschlange) Über einen Queue-Browser kann Empfänger Nachricht

prüfen und anschließend konsumieren publish/subscribe

1:m Kommunikation Verwendung eines Topic (virtueller Kanal) Mehrere Empfänger bilden einen Topic und erhalten

eine Kopie der Nachricht

Page 12: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

2. Remote Procedure Calls (1)

Voraussetzung: Programm (Prozedur) kann entfernte Prozedur aufrufen Verschiedene Server stellen Schnittstellenprozeduren zur

Verfügung

Ablauf: Prozess auf Maschine A ruft Prozess auf Maschine B auf Aufrufender Prozess wird angehalten Abarbeitung der aufgerufenen Prozedur findet auf B statt Informationen werden durch Parameter bzw. Ergebnis der

Prozedur übertragen (analog lokale Prozesse)

Page 13: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

2. Remote Procedure Calls (2)

Aufgaben eines RPC-Systems: Kodierung und Übertragung Übertragung komplexer Datenstrukturen Behandlung von Übertragungsfehlern und

Rechnerausfällen

Ziel: Aufruf von nicht lokalen Prozeduren Transparent

machen

Beispiel: Open Network Computing (ONC)

Page 14: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Open Network Computing

RPC-System der Firma SUNBesteht aus Routinen für RPCVerwendet neben TCP auch UDP als TransportprotokollBlockierende, asynchrone oder nicht blockierende RPC möglichAuch Broadcast-RPC möglich: Client sendet Broadcast und wartet auf mehrere Antworten

Page 15: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

3. Objekt-basierte Kommunikation

Kommunikation und Koordination von Objekten auf verschiedenen RechnernJedes ‚entfernte‘ Objekt spezifiziert ein Interface (Angabe von Methoden, welche durch Clients aufgerufen werden können)Nutzung von dynamisch zugewiesenen Ports (Firewall-freundlicher)Beispiele:

RMI (Remote Method Invocation) CORBA DCOM (Microsoft)

Page 16: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Remote Method Invocation (RMI)

Aufruf einer Methode eines ‚entfernten‘ Java-Ojektes‚Entfernt‘: Objekt befindet sich auf einer anderen VMAufrufe werden wie lokale Aufrufe abgebildetAusnahmebehandlung (z.b. bei Verbindungsabbruch) notwendig

Page 17: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

DCOM

Vorgänger: COM (Component Object Model) und OLE (Object Linking and Embedding)DCOM-Objekte sind Softwarekomponenten mit ein oder mehreren SchnittstellenNachteile:

Bindung an Betriebssysteme von Microsoft Keine Mehrfachvererbung von Schnittstellen: Objekte

untereinander können keine Schnittstellen erben

Page 18: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

4. Web-basierte Kommunikation

Nutzung vorhandener Internet-TechnologienTransfer via HTTPBasis bildet XMLEinsatz von Web-Services

Page 19: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Web-Services (1)

WS sind über das Internet zugängliche Schnittstellen zu AnwendungsfunktionenNutzung von Standardtechniken des InternetsBasieren auf XML („XML-Web-Services“)

... die Übertragung der XML-Daten erfolgt durch SOAP

Page 20: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

WS (2) - SOAP

Simple Object Access ProtokollKommunikationsprotokoll zum Austausch strukturierter und typisierter DatenXML-basierter RPCAuch unabhängig von Web-Services, WSDL, ... einsetzbarNutzt HTTP, SMTP, FTP, ... Als ÜbertragungsprotokolleZiel: Interaktion mit externen Anwendungen

über das Internet

Page 21: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

WS (3) – Architektur nach W3C

Dienstanbieter (Service Provider) Stellt Dienst bereit Publiziert Dienst bei der Service Registry

Service Registry Stellt Beschreibungen für Dienste bereit Nutzung von WSDL (Web Service Description

Language) UDDI (Universal Description Discovery and

Integration) – Verzeichnisdienst: Spezifikation für eine weltweit-basierte Registrierungsstelle

Page 22: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

WS (4) – UDDI (1)

Spezifikation für verteilte, web-basierte Registrierungsstellen für Web-ServicesBeschreibt Vorgehensweise, um Informationen über Web-Services zu publizieren und aufzufindenUDDI-Server: Datenbank, welche Beschreibungen der Web-Services als Einträge enthältEnthält Meta-Daten der WS:

White Pages (Adresse, Ansprechpartner, ...) Yellow Pages (Branchenbuch, kategorisiert) Green Pages (technische Spezifikation der WS)

Page 23: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

WS (4) – UDDI (2)

UDDI-Registrierungsstellen:public

regelmäßige Synchronisation notwendig

private liegt hinter einer Firewall für eine Intranet-Applikation

semi-private Registrierungsstelle zwischen vertrauenswürdigen Partnern

Page 24: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

WS (5) - WSDL

Beschreibungssprache der Schnittstelle für einen Web-ServiceGebunden an das Protokoll SOAPXML-basiertÜbersicht WSDL-Dokument:

Was für ein Service? (Welche Funktionen werden angeboten?)

Welche Protokolle werden verwendet? Wo befindet sich der Service? (URL, bei mehreren

Funktionen mehrere URL)

Page 25: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

WS (6) - Ablauf

Services Requestor (Client) sucht gewünschten Dienst bei der UDDI-Service RegistryRegistry sendet URL des registrierten DienstesClient ruft Schnittstelle des Web Service mit Hilfe der URL bei der Registry ab (SOAP-Request)Schnittstelle des Web-Services wird als WSDL-Datei an Client übermittelt (SOAP-Response)Client ruft Web-Service beim Dienstanbieter auf (SOAP-Request)Ausführung des Web-Services beim DienstanbieterÜbermittlung des Ergebnisses an Client (SOAP-Response)

Page 26: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Web-Services unter .Net (1)

Remoting-Services: Verteile Kommunikation durch .Net Remoting Kommunikation nur unter .Net Anwendungen

Enterprise Services: Zusammenspiel von COM+ -Diensten und .Net

Komponenten

Vorhandene Web-Services: .Net Alerts .Net Passport

Page 27: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Web-Services unter .Net (2)

.Net Alerts sind geräte- und anwendungsunabhängige,

zeitgesteuerte Benachrichtigungsservices, die von Providern an ihre Kunden ausgesandt werden. (Unabhängig vom Endgerät - Empfang auf Microsoft Messenger, PDA, Mobiltelefon, ...)

.Net Passport ist ein Service, über den der Anwender mit einer

Benutzerkennung (einer registrierten E-Mail-Adresse) und einem einzigen Kennwort problemlos mit nur einer Anmeldung auf alle Passport-geschützten Services zugreifen kann

Page 28: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

5. Komponenten-basierte Kommunikation

Komponenten enthalten mehrere ObjekteFunktionalitäten werden über Schnittstelle bereit gestelltBeispiel: EJB

Standardisierte Komponenten innerhalb eines J2EE-Servers

Entwicklung komplexer und mehrschichtiger Anwendungen mittels Java

Message Driven Beans: asynchrone Verarbeitung von JMS-Nachrichten, Serverseitige Nachrichtenverarbeitung

Page 29: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Oracle – Messaging und Integration in verteilten Systemen

- Oracle Streams AQ (Advanced Queuing)- Oracle InterConnect („Hub and Spoke“ Topologie)

Page 30: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Warum XML als Austauschformat ? (WH)

Lesbares FormatStandardisiert Akzeptanz am MarktTransformation in andere FormateÜber HTTP Zugriffe und Transformationen durch XSLT abrufbar und Darstellung in HTML o.a.Erzeugen einer einheitlichen Sicht durch XML-Views:

Zugriff per HTTP Einfach Datenaustausch Einfach Abruf Einstellen in Message Queue

Page 31: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Beispiel einer XML-View

Page 32: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Oracle Streams AQ (1)

AQ = Advanced QueuingAsynchrones, Datenbankinternes Message QueuingNutzung der Oracle-Datenbank zur PersistenzsicherungKommunikation per Point to Point, publish/subscribe

Page 33: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Page 34: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Oracle Streams AQ (2)

Point to Point und publish/subscribe auch über Rechnergrenzen hinweg möglich

Wichtige Bestandteile einer Nachricht:Eindeutige MESSAGE_ID

Automatische Zuweisung

Message PropertiesLebensdauerEmpfängerException Queue einer Nachricht

Page 35: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Oracle Streams AQ (3)

Nachrichten vom Client werden durch den Server verarbeitetAQ-Servlet stellt Kommunikation mit den Queues zur Verfügung

Page 36: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Bisher: BUS-Struktur mit Anbindung an eine Datenbank:

Page 37: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

publish/subscribe-Prinzip: Informationen, die in einer Anwendung entstehen, werden auf einem zentralen Bus (Message Queue) abgelegt (publish)

Applikationen entscheiden, ob die jeweilige Information für sie relevant ist, und nehmen sie ggf. auf (subscribe)

zentraler Ansatz InterConnect von Oracle (basiert auf „Hub and Spoke“-Topologie)

Page 38: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

„Hub and Spoke“ (1)

Verwendung eines Data Hub: zentraler Daten-Sammelpunkt Anwendungen und Systeme sind mit diesem

gleichberechtigt verbunden gesamte Kommunikation der einzelnen

Anwendungen findet über diesen Punkt (Hub) statt

dieser steuert und überwacht den gesamten Datenverkehr zwischen den einzelnen Systemen

Integration von Fremdanwendungen, z.B. SAP, Siebel, Peoplesoft, ...

Page 39: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

„Hub and Spoke“ (2)

Zielsetzung: ‚Vermeidung‘ unnötiger Dienste von EAI-Firmen

Vorteile: Data Hub enthält alle Entscheidungsrelevanten

Daten nur einmal höhere Datenqualität zentrale und redundanzfreie Prozessverwaltung

Page 40: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Orchestrierung von WS - BPEL

Orchestrierung: Zusammenführung von WS zu einem komplexen SystemBPEL (Business Process Execution Language):

Standard zur Durchführung von Geschäftsprozessen mittels Internet-Technologien

XML-basiertes Format ermöglicht die Kombination von (in WSDL modellierten) Web-Services

Page 41: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

BPEL - Struktur

Page 42: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Page 43: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Kommunikation in verteilten Systemen (Middleware)

Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05

Open Source Engine: ActiveBPEL