Kommunikation in verteilten Systemen (Middleware)

Download Report

Transcript Kommunikation in verteilten Systemen (Middleware)

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
1.
2.
3.
4.
5.
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 JMSNachrichten, 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
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 EAIFirmen
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
Ch. Thiele, 01IN, Oberseminar
"Datenmanagement" SS05
Open Source Engine: ActiveBPEL
Ch. Thiele, 01IN, Oberseminar
"Datenmanagement" SS05