Kommunikation in verteilten Systemen (Middleware) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 anwendungsunabhängige Technologie Dienstleistung zur Vermittlung zwischen Anwendungen an Ermöglicht Softwarekomponenten die Kommunikation untereinander Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Aufgaben von Middleware (1) Kommunikation einer Softwarekomponente über Netzwerke wird für diese transparent gemacht Organisiert Transport komplexer Daten (Messaging) Stellt Software –Schnittstellen und – Dienste bereit Stellt die Transaktionssicherheit über unabhängige Teilsysteme dar (Transaktions-Monitor) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Aufgaben von Middleware (2) Stellt Dienste für Identifikation, Authentifizierung, Zugriffe oder Sicherheit zur Verfügung Verbirgt Unterschiede zwischen Hardwareplattformen, Programmiersprachen, Betriebssystemen und Übertragungsprotokollen Verschafft eine einheitliche Sicht Verbirgt Komplexität der zugrunde liegenden Anwendungen und Infrastruktur Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Vereinfachter Ablauf Softwarekomponente A nutzt Schnittstellen der Middleware um mit SK B zu Informationen auszutauschen Middleware 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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Middleware Nachteile: Größe und Schwerfälligkeit Wenig Optimierungsmöglichkeiten in der Leistungsfähigkeit Produkte: CICS von IBM NetWeaver von SAP Websphere von IBM Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Kommunikation in verteilten Systemen Nachrichten-basiert Remote Procedure Calls (RPC) Objekt-basiert Web-basiert Komponenten-basiert Man unterscheidet: synchrone und asynchrone Kommunikation Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 1. Nachrichten-basiert Einfachste Übertragungsart Asynchron: Zwischenspeicherung (Pufferung) der Nachricht zwischen Sender und Empfänger Verwendung von Pipes oder Queues ... ein Beispiel hierfür ist das Java Messaging Service (JMS) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 JMS (1) Asynchrone Kommunikation Basis bildet ein Message Server (JMS Provider), der Nachrichten empfängt zentrale Speicherung der Daten Aufbau 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) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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 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) 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) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Open Network Computing RPC-System der Firma SUN Besteht aus Routinen für RPC Verwendet neben TCP auch UDP als Transportprotokoll Blockierende, asynchrone oder nicht blockierende RPC möglich Auch Broadcast-RPC möglich: Client sendet Broadcast und wartet auf mehrere Antworten Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
3. Objekt-basierte Kommunikation Kommunikation und Koordination von Objekten auf verschiedenen Rechnern Jedes ‚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) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Remote Method Invocation (RMI) Aufruf einer Methode eines ‚entfernten‘ Java-Ojektes ‚Entfernt‘: Objekt befindet sich auf einer anderen VM Aufrufe werden wie lokale Aufrufe abgebildet Ausnahmebehandlung (z.b. bei Verbindungsabbruch) notwendig Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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 Schnittstellen Nachteile: Bindung an Betriebssysteme von Microsoft Keine Mehrfachvererbung von Schnittstellen: Objekte untereinander können keine Schnittstellen erben Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
4. Web-basierte Kommunikation Nutzung vorhandener Internet-Technologien Transfer via HTTP Basis bildet XML Einsatz von Web-Services Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Web-Services (1) WS sind über das Internet zugängliche Schnittstellen zu Anwendungsfunktionen Nutzung von Standardtechniken des Internets Basieren auf XML („XML-Web-Services“) ... die Übertragung der XML-Daten erfolgt durch SOAP Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 WS (2) - SOAP Simple Object Access Protokoll Kommunikationsprotokoll zum Austausch strukturierter und typisierter Daten XML-basierter RPC Auch unabhängig von Web-Services, WSDL, ... einsetzbar Nutzt HTTP, SMTP, FTP, ... Als Übertragungsprotokolle Ziel: Interaktion mit externen Anwendungen über das Internet 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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 WS (4) – UDDI (1) Spezifikation für verteilte, web-basierte Registrierungsstellen für Web-Services Beschreibt Vorgehensweise, um Informationen über Web-Services zu publizieren und aufzufinden UDDI-Server: Datenbank, welche Beschreibungen der Web-Services als Einträge enthält Enthält Meta-Daten der WS: White Pages (Adresse, Ansprechpartner, ...) Yellow Pages (Branchenbuch, kategorisiert) Green Pages (technische Spezifikation der WS) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 WS (5) - WSDL Beschreibungssprache der Schnittstelle für einen Web-Service Gebunden an das Protokoll SOAP XML-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) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 WS (6) - Ablauf Services Requestor (Client) sucht gewünschten Dienst bei der UDDI-Service Registry Registry sendet URL des registrierten Dienstes Client 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) 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 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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
5. Komponenten-basierte Kommunikation Komponenten enthalten mehrere Objekte Funktionalitäten werden über Schnittstelle bereit gestellt Beispiel: EJB Standardisierte Komponenten innerhalb eines J2EE-Servers Entwicklung komplexer und mehrschichtiger Anwendungen mittels Java Message Driven Beans: asynchrone Verarbeitung von JMS-Nachrichten, Serverseitige Nachrichtenverarbeitung Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Oracle – Messaging und Integration in verteilten Systemen Oracle Streams AQ (Advanced Queuing) Oracle InterConnect („Hub and Spoke“ Topologie) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Warum XML als Austauschformat ? (WH) Lesbares Format Standardisiert Akzeptanz am Markt Transformation 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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Beispiel einer XML-View Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Oracle Streams AQ (1) AQ = Advanced Queuing Asynchrones, Datenbankinternes Message Queuing Nutzung der Oracle-Datenbank zur Persistenzsicherung Kommunikation per Point to Point, publish/subscribe Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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 Properties Lebensdauer Empfänger Exception Queue einer Nachricht Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Oracle Streams AQ (3) Nachrichten vom Client werden durch den Server verarbeitet AQ-Servlet stellt Kommunikation mit den Queues zur Verfügung Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 Bisher: BUS-Struktur mit Anbindung an eine Datenbank: Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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) Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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, ... Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Orchestrierung von WS - BPEL Orchestrierung: Zusammenführung von WS zu einem komplexen System BPEL (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 Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05 BPEL - Struktur Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Open Source Engine: ActiveBPEL Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05