Mit Hilfe des ursprünglichen XFantasy-UITs ist die Modellierung und Implementierung interaktiver graphischer Benutzerschnittstellen möglich. Zur Ausgabe von Informationen werden die diskreten Medien Text und Graphik bereitgestellt. Durch zwei Diplomarbeiten ([Cla93] und [Vos93]) wurde die Funktionalität des XFantasy-UITs dahingehend erweitert, daß auch die Entwicklung komplexer multimedialer Präsentationen unterstützt wird. Während durch den MediaManager [Vos93], der im nächsten Unterabschnitt beschrieben wird, eher technische Aspekte der Multimedialität behandelt werden, stellt das Kommando-Modell [Cla93] Mechanismen zur Verfügung, die eine einfache Modellierung komplexer zeitlicher Beziehungen zwischen mehreren diskreten oder kontinuierlichen Ausgabeobjekten einerseits und zwischen Ausgabeobjekten und Interaktionsobjekten andererseits erlauben. Die Architektur des erweiterten XFantasy-UITs wird in Abbildung 7.1(b) verdeutlicht.
Zeitliche Beziehungen zwischen Medienobjekten werden im Kommando-Modell durch eine hierarchische Komposition modelliert (siehe auch 2.4.2). Zur Erhöhung der Mächtigkeit können Bäume jedoch miteinander verbunden werden, so daß azyklische Graphen entstehen. Eine Erweiterung des Modells erlaubt sogar die beliebige Verknüpfung von Objekten aufgrund von Start-Ende-Beziehungen, also eine Start-Ende-Komposition. Elementare Medienobjekte sind im Kommando-Modell diskrete Ausgabeobjekte, kontinuierliche Ausgabeobjekte, Timer-Objekte und Interaktionsobjekte. Interaktionsobjekte werden dabei mit Hilfe der Eventbehandlung des XFantasy-UITs modelliert. Objekte können gestartet und gestoppt, pausiert und reaktiviert werden. Desweiteren kann ihre Präsentationsgeschwindigkeit skaliert werden. Diskrete Ausgabeobjekte müssen explizit gestoppt werden.
Über Hierarchien ist im Kommando-Modell die Bildung komplexer Medienobjekte (mit ausschließlich zeitlichen Beziehungen) möglich. Blätter sind dabei diskrete und kontinuierliche Ausgabeobjekte, Interaktionsobjekte und Timer-Objekte (Verzögerungskomponenten). Innere Knoten stellen Operatoren (Operatorobjekte) dar, die eine zeitliche Beziehung zwischen Start und Ende ihrer untergeordneten Knoten herstellen. Folgende Operatoren werden in Anlehnung an Allen's Intervallkalkül [All83] unterstützt:
Genauso wie den elementaren Objekten können auch den Operatorobjekten die Befehle Start, Stop, Pause, Resume und Scale über entsprechende Methodenaufrufe gegeben werden. Sie geben diese je nach ihrem Typ unterschiedlich an ihre untergeordneten Knoten weiter. Von außerhalb der Hierarchie dürfen nur dem Wurzelknoten Befehle gegeben werden.
Die sogenannten Synchronisationsoperatoren ermöglichen die Zusammenfassung
von elementaren oder auch komplexen Objekten
zu Mengen, zwischen deren Elementen bestimmte zeitliche Beziehungen
gelten. Ein Objekt kann dabei
auch in mehreren Mengen enthalten sein.
Es existieren verschiedene Typen von Mengen mit
folgender Semantik:
In diesen sogenannten symmetrischen Mengen sind alle Elemente gleichberechtigt. Die Mengen können auch asymmetrisch gebildet werden, indem lediglich ein Element der Menge, das sogenannte Triggerelement, die Synchronisation auslösen darf. Für den asymmetrischen Fall gibt es einen weiteren Mengentyp:
Über die sogenannten Synchronisationsbedingungen läßt sich der Start oder das Ende eines oder mehrerer Objekte als Folge des Starts oder des Endes anderer Objekte modellieren. Durch die Synchronisationsbedingungen sind also beliebige Start-Ende-Beziehungen zwischen diskreten Ausgabeobjekten, kontinuierlichen Ausgabeobjekten, Timer-Objekten, Interaktionsobjekten und komplexen Objekten (Hierarchien) realisierbar. Die Klasse FAndSync realisiert eine konjunktive Verknüpfung von Start- oder Ende-Events. Sind alle geforderten Events generiert worden, wird der Start oder der Abbruch eines anderen Objektes ausgelöst. Bei der disjunktiven Verknüpfung (FOrSync) genügt die Generierung eines mehrerer möglicher Start- oder Ende-Events zum Start oder Abbruch eines bestimmten Objektes.
Anzumerken ist an dieser Stelle, daß sowohl mit Hilfe von Synchronisationsoperatoren als auch mit Hilfe der Hierarchien nur Teilmengen von zeitlichen Beziehungen zwischen Objekten modelliert werden können, die auch alle mittels der Synchronisationsbedingungen realisierbar sind. Sie wurden aber aus dem Grunde nicht aus dem Kommando-Modell entfernt, weil bestimmte Sachverhalte mit ihnen einfacher modelliert werden können; denn neben der Mächtigkeit eines Modell spielt seine einfache Anwendbarkeit eine mindestens genauso wichtige Rolle.