• Keine Ergebnisse gefunden

Kommunikation in verteilten Systemen (Middleware)

N/A
N/A
Protected

Academic year: 2022

Aktie "Kommunikation in verteilten Systemen (Middleware)"

Copied!
43
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Kommunikation in verteilten

Systemen (Middleware)

(2)

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

(3)

anwendungsunabhängige Technologie

Dienstleistung zur

Vermittlung zwischen Anwendungen an

Ermöglicht

Softwarekomponenten die Kommunikation

untereinander

(4)

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)

(5)

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

(6)

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

(7)

Middleware

Nachteile:

Größe und Schwerfälligkeit

Wenig Optimierungsmöglichkeiten in der Leistungsfähigkeit

Produkte:

CICS von IBM

NetWeaver von SAP

Websphere von IBM

(8)

Kommunikation in verteilten Systemen

1.

Nachrichten-basiert

2.

Remote Procedure Calls (RPC)

3.

Objekt-basiert

4.

Web-basiert

5.

Komponenten-basiert

Man unterscheidet: synchrone und asynchrone Kommunikation

(9)

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)

(10)

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)

(11)

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

(12)

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)

(13)

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)

(14)

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

(15)

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)

(16)

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

(17)

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

(18)

4. Web-basierte Kommunikation

Nutzung vorhandener Internet-Technologien Transfer via HTTP

Basis bildet XML

Einsatz von Web-Services

(19)

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

(20)

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

(21)

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

(22)

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)

(23)

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

(24)

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)

(25)

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)

(26)

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

(27)

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

(28)

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

(29)

Oracle – Messaging und Integration in verteilten Systemen

- Oracle Streams AQ (Advanced Queuing)

- Oracle InterConnect („Hub and

Spoke“ Topologie)

(30)

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

(31)

Beispiel einer XML-View

(32)

Oracle Streams AQ (1)

AQ = Advanced Queuing

Asynchrones, Datenbankinternes Message Queuing Nutzung der Oracle-Datenbank zur

Persistenzsicherung

Kommunikation per Point to Point, publish/subscribe

(33)
(34)

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

(35)

Oracle Streams AQ (3)

Nachrichten vom Client werden durch den Server verarbeitet

AQ-Servlet stellt Kommunikation mit den Queues zur Verfügung

(36)

Bisher: BUS-Struktur mit Anbindung an eine Datenbank:

(37)

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)

(38)

„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, ...

(39)

„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

(40)

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

(41)

BPEL - Struktur

(42)
(43)

Open Source Engine: ActiveBPEL

Referenzen

ÄHNLICHE DOKUMENTE

Irmscher; Uni Leipzig 371 Modellierung und Konzeption eines verteilten Framework. für

Der Hauptunterschied zwischen dynamischer NAT und einem Adressbereich für statische NAT besteht darin, dass ein Remote-Host eine Verbindung zu einem übersetzten Host initiieren

Behindertenpolitik eingeleitet wurde – also weg von der Fürsorge und Versorgung.. und hin zur selbstbestimmten Teilhabe am gesellschaftlichen Leben – spielte das Thema

I Problem: Wir haben eine elastische, reaktive Anwendung aber nicht genug Geld um eine unbegrenzt große Server Farm zu betreiben. I Lösung: Bei Überlastung sollten Anfragen nicht

I Problem: Wir haben eine elastische, reaktive Anwendung aber nicht genug Geld um eine unbegrenzt große Server Farm zu betreiben. I Lösung: Bei Überlastung sollten Anfragen nicht

VDE-Switches lassen sich durch VDE-Cables untereinander verbinden. Um Loop- Verbindungen zwischen Switches zu verhindern, unterstützten VDE-Switches das Fast- Spanning-Tree

Wir müssen noch besser verstehen, wie Studierende pervasive e-Learning-Konzepte wie Mobilität, Konnektivität, umfeldbe- wusste Geräte, Melde- oder Ortsbestimmungssysteme zur

Hier bietet sich das Konzept der Annotationen an, auf dessen Basis Kommunikationsbeiträge in Materialien integriert werden können.. Das Konzept der Annotationen wird zwar bereits