Architektur: Client-Server (remotefähig)

Das Kapitel beschreibt die Client-Server-Architektur des Model-To-Model-Software-Development-Kit (M2M SDK) von MID.

Komponenten und Konfiguration

Die Ablaufumgebung des M2M SDK ist komponentenorientiert nach einer Client-Server-Architektur aufgebaut und kann in zwei verschiedenen Konfigurationen ausgeführt werden:

  1. Client und Server in einem Prozess, der auf dem lokalen Rechner des Benutzers läuft, Sehen Sie hierfür: "Abbildung: Client und Server in einem Prozess".
  2. Client und Server in zwei getrennten Prozessen, die mittels Java RMI miteinander kommunizieren, Sehen Sie hierfür: "Abbildung: Client und Server in zwei getrennten Prozessen". Der Client-Prozess läuft auf dem lokalen Rechner des Benutzers, der Server-Prozess auf demselben oder einem erreichbaren Rechner.

Beide Konfigurationen basieren auf denselben Komponenten. Die wesentlichen Komponenten haben im Einzelnen folgende Aufgaben:

  • MappingApplication: Initialisiert und startet die Laufzeitumgebung für die Ausführung eines Modelltransformationslaufes.
  • WorkflowEngine: Arbeitet die konfigurierbaren Einzelschritte eines Modelltransformationslaufes ab:
    • Bedienoberfläche anzeigen
    • Optionsmodell laden
    • Modellelemente laden
    • Modelltransformation laden
  • ClientSession: Enthält die spezifischen Daten des Benutzers für die clientseitige Ausführung eines Modelltransformationslaufes.
  • ServerSession: Enthält die spezifischen Daten des Benutzers für die serverseitige Ausführung eines Modelltransformationslaufes.
  • ModelTransformationEngine: Führt die eigentliche Modelltransformation gemäß dem unter Transformationsalgorithmus angegebenen Algorithmus aus.

Konfiguration A: Client und Server in einem Prozess

In der Konfiguration A können die GUI und die Workflow-Engine im selben Prozess wie die Engine zur Durchführung der eigentlichen Modelltransformation ausgeführt werden.

Abbildung: Client und Server in einem Prozess

Konfiguration B: Client und Server in getrennten Prozessen

In der Konfiguration B befindet sich zwischen Client- und Serversession eine Fassade, die die entfernte Kommunikation mittels Java RMI bereitstellt.

Es kann sinnvoll sein, die Ausführungsumgebung des M2M SDK in der Konfiguration B laufen zu lassen, wenn die Verbindung zwischen dem lokalen Rechner und dem Modell, das die Modellelemente enthält, in Bandbreite und Latenzzeit stark beschränkt ist. In diesem Fall wird wie auf demselben Rechner, auf dem das Modell läuft, ein eigener Serverprozess gestartet, in dem sich die serverseitige Session des Benutzers und die Transformationsengine befinden.

Unsere Untersuchungen haben gezeigt, dass sich hierdurch in einem Netzwerk mit hoher Latenzzeit und niedriger Bandbreite ein Geschwindigkeitsvorteil um den Faktor 100 gegenüber der Konfiguration A ergibt.

Zurzeit unterstützt in der Konfiguration B der Serverprozess des M2M SDK lediglich die Ausführung der Transformation eines einzelnen Benutzers. Ein Mehrbenutzerbetrieb ist für eine spätere Version geplant.

Abbildung: Client und Server in zwei getrennten Prozessen