Vergleich von Problemlösungen mit verschiedener Middleware

Hier werden Lösungen für Problemstellungen verglichen, damit die Komplexität klar wird. Dies soll auch zur Entscheidungsfindung für die Middleware beitragen, je nach dem die Anforderung für die Anwendung ist.

Auffindung eines Dienstes

CORBA

Allerdings sind diese Dienste ein Single-point of failure!

DDS und andere Publisch-Subscribe-Middleware
hier werden einfach Datenobjekte vom Publisher gesendet - der Subscriber liest sie wenn es einen gibt.

QoS des Transports

CORBA
der Transportdienst (z.B. Eventchannel/COSNotification) muss dies implementieren
DDS
konfigurierbar

Durchsatz

Dienstverlagerung zur Laufzeit

CORBA und andere RPC basierte Middleware
DDS und andere event driven publish/subscribe Middleware
Die Datenobjekte werden sowieso an alle subscriber gesendet - ein Clustermanager muß nur aufpassen, daß der Dienst existiert.

Fehlertoleranz/Redundanz

Übernahme im Fehlerfall: Erkennung und Vollzug → Fehlertoleranz
CORBA
DDS
Fällt ein Teil des Systems aus, so hat der Rest des Systems noch die Datenobjekte.
Der Clustermanager muss ggf. Applikationen neu aufstarten, die Publisher bekommen davon nichts mit.

Lastbalacierung

Vermeidung von Inkompatibilitäten - dynamische Zugriff

Selbstverständlich muß organisatorisch durch das Konfigurationsmanagement gerantiert werden, daß kompatible Versionen im System verwendet werden.

Interface Repository von CORBA
Metainformationen über die Dienste, kann im DII (dynamic invocation Interface) auf der Clientseite und DSI (Dynamic server Interface) auf der Serverseite verwendet werden.
Offene Fragen: Optimales Verhalten: Im Fall eines Typekonfikts darf eine Applikation nicht aufstarten.

Mächtigkeit

Können die Middlewarearten sich gegenseitig simulieren/implementieren ?

Simulation des Publish-Subscribeparadigmas mit CORBA

Simulation eines RPC mit DDS

Anmerkung: Man kann ja mehrere Middleware-Systeme in einer Anwendung verwenden. Dieses ist einfach realisierbar. Ein Vorteil ist das Monitoring auf DDS-Ebene.

Allgemeine Wertung

(es kommt aber auf die Anforderungen der Anwendung an!)

Client-Server - Anwendungen:

Viele Clients greifen auf einen oder wenige Server zu
Information auf Server ist zentralisiert z.B. Datenbanken, Fileserver, Transaktionsverarbeitung
Nachteile: Server ist Flaschenhals und Single Point of Failure

Publish-Subscribe → Data-Centric:

DDS:

Lose Kopplung:

QoS:

Zusammenhang Data centric /Event Driven:
Data centric: nur die Daten, keine Metainfo mit Servern/Empfängern


TODO: Corba-Dienste von TAO durchsehen
Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber