Kooperatives Arbeiten

Beim kooperativen Arbeiten geht es darum, zwei oder mehreren räumlich getrennten Anwendern die Möglichkeit zu geben, eine einheitliche Sicht auf das Modell zu haben. Gleichzeitig kann dann zum Beispiel am Telefon über Bewertungen diskutiert werden, ohne dass eine der beteiligten Personen ihren Arbeitsplatz verlassen muss.
Hierbei kann zwischen folgenden Szenerien unterschieden werden:

Für beide Szenerien wurden im crashViewer CORBA-basierte Lösungsansätze implementiert. Während das erste Szenario erfordert, dass auf den Rechnern aller Teilnehmer sowohl die Applikation crashViewer als auch die zu visualisierenden Daten zur Verfügung stehen, werden für das zweite Szenario auf der Client-Seite (Zuschauer) lediglich eine JAVA-Applikation oder ein HTML-Browser benötigt.

Coop1
Szenario 1: Der SessionServer verbindet die crashViewer untereinander und steuert die Kommunikation mit Hilfe eines Tokens, das die Interaktionskontrolle erlaubt. Events oder Kameraparameter werden zwischen den crashViewer-Instanzen direkt ausgetauscht.

Im Szenario 1 startet der initiierende Anwender zunächst eine steuernde Applikation, den SessionServer. Dieser stellt seine eigene CORBA-Referenz zur Verfügung und erlaubt nun einem crashViewer, eine neue Sitzung zu eröffnen oder sich bei einer bereits bestehenden Sitzung anzumelden. Die Aufgabe des SessionServer besteht darin, die teilnehmenden crashViewer miteinander zu verbinden und das Token zu verteilen, das die Interaktion mit dem dargestellten Modell erlaubt. Der crashViewer speichert sich außer der Referenz auf den SessionServer auch die Referenzen aller anderer an der Sitzung teilnehmenden crashViewer.
Zu jedem Zeitpunkt kann nur ein crashViewer die Steuerung übernehmen. Wird zum Beispiel der Augpunkt geändert, dann überträgt der steuernde crashViewer die Kameraparameter direkt an alle anderen Teilnehmer. Das Token, das die Steuerung erlaubt, wird von dem SessionServer verwaltet und zugeteilt. Es kann unter den teilnehmenden crashViewer Instanzen ausgetauscht werden; somit ist der Wechsel der Interaktionskontrolle möglich.
Das Setzen von Markierungspfeilen am Modell erleichtert die Kommunikation. Sofern die zu Modelldaten nicht jedem Teilnehmer zur Verfügung stehen, kann der Cosmo3D-Szenengraph über die CORBA-Schnittstelle von dem steuernden crashViewer angefordert und übertragen werden.

Coop2
Szenario 2: Der crashViewer stellt jeweils die gezeichneten Bilddaten an einem Port zur Verfügung, welcher über eine Socket-Verbindung ausgelesen werden kann. Um eine höhere Übertragungsgeschwindigkeit gewährleisten zu können, werden Kompressionsverfahren zur Übertragung der Bilder verwendet.

Das Szenario 2 erlaubt einem aktiven crashViewer-Anwender, das dargestellte Modell in Form von kodierten Bildinformationen auf einem Socket zur Verfügung zu stellen. Die passiven Teilnehmer der Sitzung können dann mit Hilfe einer JAVA-Applikation die komprimierten Bilddaten von dem Socket lesen, dekodieren und in einem graphikfähigen Fenster darstellen. Zusammen mit einem JAVA-Applet wurde eine HTML-Seite erstellt, die zum Beispiel mit dem Netscape geladen werden kann und das im crashViewer gezeichnete Bild darstellt.
Auf Grund der großen Datenmengen, die von der Größe des Darstellungsbereiches und dem gewählten Kompressionsverfahren abhängen, und der Verbindungsbandbreite kommt es hier zu geringeren Bildraten auf der Empfängerseite. Dennoch erlaubt diese Technik einen gewissen Grad von Kooperation mit sehr geringen Anforderungen auf der Client-Seite.

Coop3Small Coop3NetscapeSmall
Hier wird jeweils das aktuell im crashViewer dargestellte Bild komprimiert, über eine Socket-Verbindung zum JAVA-Applet, das in einem Webbrowser läuft, transferiert, dort dekomprimiert und schließlich dargestellt.


Kontakt: Ove Sommer Email: Ove.Sommer@informatik.uni-stuttgart.de



zurueck zur VIS Homepage
English