430 likes | 546 Views
Kommunikation in verteilten Systemen (Middleware). 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.
E N D
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Bisher: BUS-Struktur mit Anbindung an eine Datenbank: 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
„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
„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
BPEL - Struktur Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05
Open Source Engine: ActiveBPEL Ch. Thiele, 01IN, Oberseminar "Datenmanagement" SS05