Inhalt ! Was ist neu? | Gästebuch
Sie sind hier: www.netz-meister.de > Marko Meister > more than you get wi ... > Papers > Ein Kommunikationsme ... > 2 Bestandsanalyse ex ...










Allein machen sie dich ein …

aus: "Keine Macht für Niemand", Ton Steine Scherben (1972)





2

Bestandsanalyse existierender Systeme

 

Die Idee, verteilte virtuelle Umgebungen zu schaffen, ist nicht neu. Es existieren verschiedene Systeme und Forschungsarbeiten, in denen mit unterschiedlichen Methoden versucht wird, sich dem Gegenstand zu nähern. In diesem Abschnitt werden einige Arbeiten näher vorgestellt. Zuvor erfolgt eine Aufstellung möglicher Kommunikations- und Verteilungsmethoden und allgemeiner Anforderungen an verteilte virtuelle Umgebungen. Dies ermöglicht eine Systematisierung der Lösungsmethoden.

2.1

Kommunikationsmechanismen

 

Verteilte virtuelle Umgebungen bestehen aus verschiedenen Stationen, die auf den Austausch von Informationen angewiesen sind, um die Konsistenz der gemeinsamen Umgebung zu gewährleisten. Jede Station bietet dabei eine eigene Sicht auf die gemeinsame virtuelle Umgebung. Prinzipiell sind verschiedene Strategien für die Lösung des entstehenden Kommunikationsproblems vorstellbar.

2.1.1

Hierarchische Client/Server Modelle

 

Ein System für verteilte virtuelle Umgebungen kann als Client/Server System ausgelegt werden. Ein zentraler Server hält die Informationen der virtuellen Umgebung vor und gibt diese Informationen an Clients (Teilnehmer) weiter.

Der Server fungiert in einem solchen System auch als Synchronisationsinstanz. Alle Teilnehmer erhalten über den Server die gleichen Informationen über die virtuelle Umgebung. Um den notwendigen Netzwerkverkehr zu verringern, können Methoden zur bedingten Nachrichtenweiterleitung eingesetzt werden. Dadurch erhalten die jeweiligen Stationen nur relevante Daten.

Client/Server Systeme besitzen immer eine zentrale Instanz, die prinzipiell als Beschränkung des Systems angesehen werden muß. In den Systemen werden Filtermechanismen und die Verteilung von Aufgaben auf mehrere zentrale Server dazu benutzt, um diesen Nachteil auszugleichen.

Ein Weg, die große Kommunikationslast, die beim Server entsteht, zu verringern, ist der Einsatz von Broad- und Multicast . Beim Broadcast wird dabei eine Nachricht einmalig abgeschickt und von allen Stationen empfangen, beim Multicast wird die einmal gesendete Nachricht von einer Gruppe von Empfängern empfangen. Broadcast hat dabei den Nachteil, daß sehr schnell Grenzen erreicht werden, da jede Station alle Nachrichten empfängt und auswerten muß (auch diejenigen, die nicht relevant sind). Multicast besitzt den Nachteil, daß die Einteilung in Multicastgruppen statisch erfolgt und somit eine dynamische Zuordnung von Stationen zu Multicastgruppen schwierig ist. Ein weiteres Problem sind sichere Netzwerkverbindungen. Um solche Verbindungen zu erhalten, ist es notwendig, daß der Empfänger den Erhalt eines Datenpaketes bestätigt, also an den Absender eine Bestätigungsnachricht schickt. Bei Broad- bzw. Multicast führt dies sofort zu einer erhöhten Netzwerkbelastung, die durch den Einsatz dieser Techniken eigentlich verhindert werden sollte.

2.1.2

Punkt-zu-Punkt Kommunikation

 

Systeme, bei denen die Kommunikation auf Punkt-zu-Punkt Verbindungen zwischen gleichberechtigten Stationen basieren, besitzen nicht den Nachteil einer zentralen Instanz. Ein Mangel solcher Systeme ist aber, daß theoretisch ein vollständiger Kommunikationsgraph zwischen allen Stationen notwendig ist. Dadurch wächst die Anzahl der notwendigen Verbindungen quadratisch zur Anzahl der beteiligten Stationen. Die sich ergebenden Einschränkungen für Systeme, die einen solchen vollständigen Kommunikationsgraph benutzen, liegen auf der Hand, wenn der entstehende Netzwerkverkehr betrachtet wird.

Es ist aber denkbar, daß Filtermechanismen eingesetzt werden, um redundante oder nicht benötigte Verbindungen zu vermeiden.

Auch bei solchen Systemen ist es möglich, Broad- bzw. Multicastmechanismen anzuwenden. Die oben beschriebenen Vor- und Nachteile gelten analog.

Kommunikation über Punkt-zu-Punkt Verbindungen hat den Vorteil, daß prinzipiell alle Module gleichberechtigt sind. Alle notwendigen Funktionen sind bei jedem Teilnehmer vorhanden, Es existiert keine zentrale Instanz, die zum Engpaß werden könnte.

2.1.3

Hybride Ansätze

 

Weiterhin ist es möglich, die oben beschriebenen Methoden zu kombinieren. Solche hybriden Ansätze könnten z.B. so aussehen, daß mehrere Server eine gewisse Anzahl von Clients verwalten. Zwischen den Clients und dem Server existiert die oben beschriebene Client/Server Struktur. Die Server untereinander sind über Punkt-zu-Punkt Verbindungen gekoppelt. Andererseits ist aber auch vorstellbar, daß ein zentraler Server als Verbindungsmanager fungiert. In einem solchen System würden zwischen den Teilnehmern Punkt-zu-Punkt Verbindungen bestehen, die durch einen zentralen Server verwaltet werden. Mit solchen Ansätzen ist es möglich, die Nachteile einer bestimmten Art der Kommunikation abzuschwächen und damit insgesamt die Performance zu erhöhen.

2.2

Verteilungsmechanismen

 

Die Verteilung der Daten in verteilten virtuelle Umgebungen kann durch zwei Merkmale kategorisiert werden. Ein Merkmal ist der Ort, an dem die Daten verwaltet werden. Dieser Ort ist entweder zentral oder dezentral. Das zweite Merkmal ist die Art der Replikation der Daten. Die Daten können entweder als vollständige Replikation bei allen Teilnehmern vorliegen, oder es erfolgt lediglich die Replikation der Daten, die aktuell von der jeweiligen Station benötigt werden.

Danach können vier Verteilungsmechanismen unterschieden werden. Die einzelnen Mechanismen sind in Tabelle 1 dargestellt.

vollständige Replikation (VRep) (multi-user-same-content) Replikation nach Bedarf (RepNB) (multi-user-different-content)
zentrale Datenverwaltung (ZeD) zentrales Datenmodell mit vollständiger Replikation auf allen Stationen (ZeD-VRep) zentrales Datenmodell mit Replikation der Daten nach Bedarf der Stationen (ZeD-RepNB)
dzentrale Datenverwaltung (DeD) dezentrales Datenmodell mit vollständiger Replikation auf allen Stationen (DeD-VRep) dezentrale Datenverwaltung mit Replikation der Daten nach Bedarf der Stationen (DeD-RepNB)
 

Tabelle 1: Verteilungsmechanismen

Die einzelnen Verteilungsmechanismen besitzen verschiedene Vor- und Nachteile. Multi-user-same-content (/SIN94/) Systeme gehen von einer vollständigen Replikation aller Objekte der virtuellen Umgebung auf allen beteiligten Stationen aus. Dies führt zu einer hohen Belastung der Netzwerkverbindungen zwischen den Stationen, da jede Änderung einzelner Objekte an alle beteiligten Stationen weitergegeben werden muß. In Systemen, die keine vollständige Replikation der Objekte erfordern, muß aber ein Mechanismus vorhanden sein, mit dessen Hilfe entschieden werden kann, welche Objekte repliziert werden und welche nicht. Die zentrale Verwaltung der Objekte ermöglicht eine zentrale und damit einfacher umzusetzende Interaktionserkennung. Gleichzeitig ergibt sich aber die Notwendigkeit, alle Informationen an einer zentralen Stelle zu verwalten. Dies kann leicht zu einer Überlastung führen. Dezentrale Datenverwaltung impliziert die gleichmäßige Aufteilung der Informationen auf die Teilnehmer der verteilten virtuellen Umgebung. Das Problem der Überlastung kann dadurch gelöst werden. Wenn aber an keiner Stelle die vollständigen Informationen der Umgebung vorhanden sind, erhöht sich die Komplexität der Interaktionserkennung.

Um komplexe Welten zu erzeugen, sollte ein DeD-RepNB Mechanismus eingesetzt werden. Prinzipiell ist ein solcher Verteilungsmechanismus am besten geeignet, große verteilte virtuelle Umgebungen zu unterstützen. Diese Art der Verteilung erfordert aber auch den größten Aufwand bei der Implementierung und erfordert den Einsatz von Mechanismen, die noch nicht vollständig entwickelt sind.

2.3

Informationen in verteilten virtuellen Umgebungen

 

In verteilten virtuellen Umgebungen existieren verschiedene Arten von Informationen, die über Kommunikation zwischen den Teilnehmern ausgetauscht werden müssen. Es können folgende Informationsarten unterschieden werden:

[K1] Statisches Aussehen der gemeinsamen Welt.

Die Stationen, die an einer gemeinsamen virtuellen Umgebung beteiligt sind, müssen Informationen austauschen, die die Umgebung beschreiben. Angenommen, einige Nutzer wollen sich in einem virtuellen Büro treffen, um eine Besprechung abzuhalten. In diesem Fall ist es notwendig, daß alle Teilnehmer die gleichen Informationen über das Aussehen des Büros (der Umgebung) erhalten. Diese Informationen sind relativ langlebig, ein neuer Teilnehmer der Umgebung muß diese Informationen lediglich einmal erhalten. Problematisch ist dabei allerdings die relativ komplexe Struktur dieser Informationen, welche zu großen Datenmengen und damit zu langen Übertragungszeiten führt.

[K2] Dynamische Veränderungen der gemeinsamen Welt.

Veränderungen in der gemeinsamen Welt müssen ebenfalls (möglichst zeitsynchron) an alle Teilnehmer übertragen werden, um die Konsistenz der Welt sicherzustellen.
Ein Spezialfall dynamischer Änderungen in der verteilten Umgebung ist die direkte Kommunikation zwischen einzelnen Teilnehmern.

Die Einteilung in statische und dynamische Informationen ist nicht starr, sondern hängt vom Systemdesign ab.

Ausgehend von dieser Einteilung, kann die auftretende Netzlast und die Flexibilität einer verteilten virtuellen Umgebung, in Abhängigkeit von den statischen bzw. dynamischen Informationen, dargestellt werden. Aus der Abhängigkeit läßt sich schlußfolgern, daß die Definition statischer und dynamischer Informationen unter dem Gesichtspunkt der Netzlast und der notwendigen Systemflexibilität erfolgen muß (Abbildung 1).

Abbildung 1: Abhängigkeit von 
 Eigenschaften des Systems von der Informationsaufteilung

2.4

Spezielle Anforderungen an verteilte virtuelle Umgebungen

 

Wie bereits gesagt, werden an virtuelle Umgebungen folgende Anforderungen gestellt:

[A1] Dreidimensionale Darstellung und Modellierung der Umgebung.
[A2] Interaktive Manipulation in Echtzeit.
[A3] Nutzer als integraler Bestandteil der Umgebung.

An verteilte virtuelle Umgebungen werden, neben den allgemeinen Anforderungen, zusätzlich folgende Forderungen gestellt:

[B1]

Jedem Beteiligten muß eine verzögerungsfreie Sicht auf eine konsistente, gemeinsame Welt ermöglicht werden.
[B2]

Jedem Beteiligten muß die Möglichkeit der Interaktion mit der Welt (bzw. mit den autonomen Objekten der Welt) und den anderen Teilnehmern geboten werden.
[B3]

Es sollten keine prinzipiellen Beschränkungen in Bezug auf die Anzahl der beteiligten Nutzer vorhanden sein.
[B4]

Es sollten keine prinzipiellen Beschränkungen in Bezug auf die Komplexität der virtuellen Umgebung vorhanden sein.

Es ist leicht einzusehen, daß die Erfüllung dieser Ansprüche einen erheblichen Kommunikationsbedarf zwischen den Computern (Stationen), über die die Nutzer in die virtuelle Umgebung eintauchen, hervorrufen.

Werden die Probleme der virtuellen Umgebungen für Einzelnutzer beiseite gelassen, so ist der entstehende Kommunikationsaufwand das größte Problem bei verteilten virtuellen Umgebungen. Die Anforderungen erfordern eine Reduzierung des Verkehrs im Netzwerk, da dieses sehr schnell zum Engpaß bei verteilten Anwendungen wird. Weiterhin ist noch nicht klar, welche Netzwerkbelastung wirklich auftritt, da nur wenige Aussagen zur quantitativen Beschaffenheit der in virtuellen Umgebungen verwendeten Daten bekannt sind. Prinzipiell sollten alle bekannten Medien (3D Geometrie, akustische Informationen, bewegte Bilder usw.) integriert werden. Dies führt aber sicherlich nicht zu geringeren Ansprüchen an die Übertragungskanäle.

Deshalb ist es erforderlich, die Kommunikation auf das absolute Minimum zu begrenzen. Zusätzlich ist es notwendig, dafür Sorge zu tragen, daß keine Überlastung einzelner Teile des Systems erfolgt, bzw. die Belastung auf alle Teilnehmer im System gleichmäßig verteilt wird, da sich sonst die überlasteten Stationen als Engpaß des Systems entpuppen.

2.5

Beschreibung der Systeme

 

Schwerpunkt bei der Untersuchung waren Systeme, die verteilte virtuelle Umgebungen für mehrere Nutzer zur Verfügung stellen. Neben den oben beschriebenen Kriterien zur Kommunikation und Verteilung, wurde besonderer Wert auf die Beantwortung der folgenden Fragen gelegt:

  1. Ist das System eine Applikation oder ist es eher als Basis (Toolkit, Programmbibliothek) für andere Anwendungen ausgelegt?
  2. Gibt es im System eine Beschränkung hinsichtlich der Größe und Komplexität der Welt(en), bzw. der Anzahl der gleichzeitig agierenden Nutzer in ein und derselben Welt und wo liegen die Ursachen für die etwaigen Beschränkungen?
  3. Werden vom System Mechanismen unterstützt, die eine effektive Nutzung der Ressourcen ermöglichen und welche Methoden werden benutzt?
  4. Auf welche Art und Weise erfolgt die Definition der Bestandteile (Objekte) der virtuellen Umgebung? Lassen sich vollkommen neue Bestandteile dynamisch in das System integrieren?
  5. Läßt das Systemdesign prinzipielle Erweiterungen zu?

2.5.1

DIVE

 

DIVE (Distributed Interactive Virtual Environment) wurde am Swedish Institute of Computer Science (SICS) entwickelt und 1993 von Carlsson/Hagsand vorgestellt (/CAR93/). Das System basiert auf UNIX als Betriebssystem und den Internet Protokollen zur Kommunikation. DIVE steht für nichtkommerzielle Nutzung frei zur Verfügung.

DIVE besteht grundsätzlich aus Welten (worlds) und Prozessen (processes). Prozesse können in DIVE entweder Applikationen sein, oder Menschen die in der virtuellen Umgebung dargestellt werden. Die Daten der virtuellen Umgebung werden in einer Art verteilter Datenbank abgelegt. Jeder DIVE-Prozeß besitzt eine Kopie dieser Datenbank. Die Konsistenz der Daten wird über Nachrichten (messages) und Ereignisse (events) sichergestellt, die die einzelnen Prozesse austauschen. Jede Veränderung wird über Broadcast Messages an alle anderen Prozesse weitergeleitet. Die gesamte virtuelle Umgebung ist in Welten (worlds) unterteilt. Die einzelnen Welten sind unabhängig voneinander. Der Nutzer kann allerdings dynamisch von einer Welt in eine andere übergehen. In diesem Falle werden die Daten der neuen Welt vollständig repliziert.

Informationen legt DIVE in Objekten ab. Objekte sind die Elementarbausteine der replizierten Datenbank.

Als Benutzeroberfläche werden in DIVE verschiedene Konzepte eingeführt. Ein Benutzer z.B., wird durch ein Body-Icon dargestellt. Die Navigation und Fortbewegung in der virtuellen Umgebung erfolgt über Fahrzeuge (vehicles).

Durch das Prozeßkonzept von DIVE ist es möglich, Applikationen einzubinden. Diese Applikationen können unter Umständen sogar unabhängig vom Benutzerinterface laufen. Applikation und Benutzerschnittstelle kommunizieren über die replizierte Datenbank.

DIVE diente als Basis für weitere Forschungsarbeiten auf dem Gebiet der verteilten virtuellen Umgebungen, z.B. Einsatz von 3D-Audio (/POP93/).

Durch die Art der Kommunikation und die Aufteilung in vollständig replizierte Welten ist das System in der Anzahl der gleichzeitig in einer Welt agierenden Personen beschränkt, weil bei jedem Teilnehmer eine vollständige Kopie der replizierten Datenbank vorliegen muß. Auch die Größe der einzelnen Welten ist begrenzt, da immer alle Zustandsänderungen aller Objekte in dieser Welt an alle Prozesse weitergegeben werden.

2.5.2

VEOS

 

Die Virtual Environment Operating Shell (VEOS) wurde ab 1990 am Human Interface Technologie Laboratory der University of Washington in Seattle entwickelt (/BRI94/). Das Projekt wurde 1994 abgeschlossen.

VEOS ist, wie der Name bereits sagt, ein Ansatz, der in Richtung Betriebssystemaufsatz für virtuelle Umgebungen geht. Dieser Ansatz ist sehr interessant, wenn in Betracht gezogen wird, daß Applikationen für virtuelle Umgebungen den Umgang mit Computern sicher nachhaltig verändern werden und deshalb andere Anforderungen an ein Betriebssystem stellen, als heutige Anwendungen dies tun. Im VEOS Projekt wurde intensive theoretische Vorarbeit auf diesem Gebiet geleistet.

VEOS besteht aus einem Kernel, den Modulen FERN (eine Art Verteilungsmanager), SENSORLIB (Device driver) und dem Renderer IMAGER.
Prinzipiell kann eine VEOS Welt in einen Interpretationsteil, in einen Modellierungsteil und einen Darstellungsteil aufgespalten werden. Der VEOS Kernel stellt einfache Möglichkeiten zum Datentransport zur Verfügung (NANCY - eine Variante des Linda Parallel Database Model). Die Programmiersprache, in der VEOS Applikationen geschrieben werden, ist Lisp.

VEOS basiert wie DIVE auf direkter Kommunikation zwischen einzelnen Teilnehmern der virtuellen Umgebung. Dies führt sehr schnell zu Performanceproblemen, wenn die Anzahl der partizipierenden Prozesse steigt.

Methoden zur Ressourcenschonung sind nicht eingebaut - es werden immer alle Informationen allen anderen Teilnehmern mitgeteilt.

Die Nutzung der Daten-Programm-Identität von Lisp ermöglicht es, interessante Wege bei der Verteilung und Kommunikation einzuschlagen. Nachteilig wirkt sich das Kommunikationsmodell aus, da es nicht skaliert, sondern sehr schnell Grenzen erreicht.

2.5.3

Distributed Virtual Environment System

 

Das Distributed Virtual Environment System (dVS) der britischen Firma Division Limited, ist nach Grimsdale /CRI91/ ein Betriebssystem für Applikationen in virtuellen Umgebungen. Es stellt eine verteilte Datenbank und entsprechende Manipulationsmechanismen als Basis der Kommunikation zur Verfügung. Ein dVS besteht aus Akteuren (actors), Elementen (elements) und Instanzen (instances). Akteure sind diskrete Prozesse, die in ihrer Gesamtheit die virtuelle Umgebung steuern. Akteure werden eingesetzt, um Aufgaben in der virtuellen Umgebung zu erfüllen. Solche Aufgaben reichen von der Überwachung von Eingabegeräten bis zur Animation von dynamischen Objekten. Elemente sind einfache Objekte, die von den Akteuren gesteuert werden, z.B. Lichtquellen (lights) oder Objekte der Umgebung (EnvObjects). Instanzen sind die Datenstrukturen, die die aktuell gültigen Daten einer Umgebung enthalten. Akteure generieren in einer Umgebung Instanzen von Elementen. Akteure halten (hold) nun bestimmte Instanzen. D.h. der Akteur betreut, überwacht und verändert den Status (state) der Instanzen, die von ihm gehalten werden.

Akteure können den Status der lokalen Instanzen verändern. Wenn aber der Status aller im verteilten System vorhandenen Kopien verändert werden soll, dann muß der Akteur dies explizit veranlassen (update). Ein spezieller Akteur (director) übernimmt die Verteilung dieser Nachrichten und Ereignisse.

Das System ist als kommerzielles Produkt konzipiert und unterliegt entsprechenden Lizenzbestimmungen.

Es existiert ein API (VL), das es ermöglicht, Akteure zu implementieren. Auf einem höheren Level ist auch ein Toolkit (VCTools) vorhanden, mit dem komplexere Aufgaben auf höherem Niveau gelöst werden können.

Das System bietet Unterstützung für die Parallelisierung der einzelnen Aufgaben des VR-Systems. Die Unterstützung mehrerer Nutzer ist auch vorgesehen, es fehlen aber spezielle Methoden, mit denen die Probleme größerer verteilter Umgebungen gelöst werden können.

2.5.4

VUE

 

Das Veridicial User Environment (VUE) wurde am IBM T. J. Watson Research Center New York entwickelt /APP92/. VUE ist als Client/Server System ausgelegt. Das System ist nicht als Interaktionssystem für mehrere Benutzer konzipiert, sondern als verteiltes System zur Visualisierung sehr großer, dynamischer Datenmengen. Prozesse kommunizieren über Nachrichtenaustausch miteinander. Es existieren sogenannte Device-Server, die über einen Dialogmanager von den eigentlichen Applikationen getrennt sind. VUE ist als Basis für VR-Applikationen anzusehen. Die strikte Trennung von Devices, Kommunikation und Applikationen bietet ein Grundgerüst für die Implementation virtueller Umgebungen. Im System sind allerdings keine Mechanismen vorgesehen, die eine effektivere Ressourcennutzung ermöglichen würden. Das System ist aber ohnehin nicht für die Interaktion vieler Nutzer, bzw. zur Implementation großer virtueller Umgebungen gedacht.

VUE diente als Basis für weitere Forschung auf dem Gebiet der verteilten virtuellen Umgebungen am IBM Research Center.

2.5.5

Rubber Rocks

 

Rubber Rocks wurde am IBM T. J. Watson Research Center, Yorktown Heights, New York entwickelt (/COD92/).

Es kombiniert flexible Objektsimulatoren mit einer VR Benutzeroberfläche. Das System basiert auf einer Client/Server Architektur. Ein Dialogmanager in Rubber Rocks fungiert als Bindeglied zwischen Nutzer und virtueller Welt. Der Dialogmanager kommuniziert mit Device- und Simulationsservern, um Informationen über die virtuelle Welt zu erhalten. Sollen mehrere Personen in der virtuellen Umgebung agieren, werden mehrere Dialogmanager eingesetzt. Diese Dialogmanager tauschen untereinander Informationen aus (z.B. die Position eines Nutzers).

Das System ist eher eine flexibel gestaltete Applikation als ein Toolkit. Die Trennung von Inhalt (content) und Darstellung (style) war ein wichtiges Paradigma der Entwickler. Als Inhalt wird dabei die Funktionalität der Bestandteile des Systems und als Darstellung deren Benutzerinterface angesehen.

Die Entwickler schlagen den Einsatz von komplexen Ereignissen (higher-level events) vor. Dies ist ein Ansatz, durch den die notwendige Kommunikation reduziert werden könnte. Interessant ist auch die Integration von physikalischen Gesetzen und Objektsimulatoren.

Rubber Rocks ist nicht ohne weiteres auf viele Nutzer und große Welten erweiterbar, da es die exponentiell wachsende Informationsmenge nicht in geeigneter Weise reduzieren kann. Es fehlt an prinzipiellen Mechanismen, die eine solche Reduktion ermöglichen könnten.

2.5.6

VR-DECK

 

Das Virtual Reality Distributed Environment and Construction Kit (VR-DECK) wurde am IBM T. J. Watson Research Center, Yorktown Heights, New York, entwickelt (/COD93/). Die Entwickler ließen Erkenntnisse, die mit dem Rubber Rocks System gesammelt wurden, in das System einfließen.

VR-DECK benutzt Module (modules) als Grundbausteine der virtuelle Umgebung. Diese Grundbausteine schließen Objekte, Operationen, Funktionen und Nutzer ein. Die Module kommunizieren über Ereignisse (events), die sie entweder erzeugen oder verarbeiten. Die Verarbeitung der Ereignisse basiert dabei auf Regeln (rules), die in C++ geschrieben werden.

Welten in VR-Deck bestehen aus Modulen, die Ereignisse austauschen. Wenn zwei Module sich miteinander verbinden, so wird durch das Laufzeitsystem sichergestellt, daß nur diejenigen Ereignisse vom sendenden Modul zum empfangenden übertragen werden, die vom empfangenden Modul auch bearbeitet werden. Dieser Filtermechanismus stellt sicher, daß keine unnötigen Daten über das Netzwerk übertragen werden. VR-DECK vereinfacht die Erstellung einer virtuellen Umgebung durch eine intuitiv benutzbare Benutzeroberfläche. Es ist möglich, neue Module mit neuen Regeln zu erstellen und in die VR-DECK Bibliothek zu integrieren.

Ressourcenschonung kann durch das Verändern der Regeln der einzelnen Module erreicht werden.

Problematisch ist die Erzeugung von großen Welten. Es ist denkbar, daß durch die zentrale Regelauswertung des Systems die Rechenleistung eines einzelnen Computers bei großen Welten nicht ausreicht, um alle Regeln schnell genug auszuwerten und die resultierenden Ereignisse an die einzelnen Modulen weiterzuleiten.

Ein anderer Nachteil des Systems ist, daß beim Start eines Moduls alle anderen Module auch gestartet werden müssen. Zum Einen ergibt sich daraus das Problem, daß eine Applikation auf einer fremden Maschine gestartet werden muß (also die nötigen Rechte vorhanden sein müssen), zum Anderen müssen eben immer alle Module auf allen Maschinen ausgeführt werden, was den dynamischen Eintritt neuer Nutzer in die Umgebung unmöglich macht.

2.5.7

BrickNet

 

Das BrickNet Toolkit wurde am Institute of Systems Science der University of Singapore entwickelt (/SIN94/).

Es unterstützt die grafische, funktionale und netzwerkspezifische Modellierung virtueller Umgebungen. Dabei wird von virtuellen Welten ausgegangen, die Objekte gemeinsam benutzten (shared objects).

Virtuelle Welten in BrickNet funktionieren objektorientiert, bestehen also aus Objekten, die ihre gesamte Funktionalität selbst enthalten (Grafik, Verhalten, Netzwerk). Objekte können zur Laufzeit dynamisch erzeugt und gelöscht werden, Attribute sind veränderbar. Die BrickNet Welten müssen nicht zwangsläufig alle den gleichen Inhalt haben. Jede virtuelle Welt verwaltet ihre eigenen Objekte. Diese Objekte können u.U. gemeinsam von verschiedenen, verteilten Welten benutzt werden. Die Kommunikation zwischen den Welten (Clients) geschieht über eine Client/Server Architektur. Server fungieren dabei als Objektanforderungsverteiler (Object Request Broker). Objekte in BrickNet sind ebenfalls Clients. Diese Objekte stellen sich über die Server anderen Clients zur Verfügung. Dabei ist auch eine Zugriffsrechteverwaltung mit eingebaut. BrickNet wurde in C und mit Hilfe der Starship (/LOO91/) Programmiersprache implementiert. Wenn ein Objekt über das Netzwerk verteilt benötigt wird, so wird der Starship Quelltext übertragen. Auch Objektaktualisierungen werden im Starshipcode übertragen und beim entfernten Rechner ausgeführt. Dabei übernimmt der BrickNet Server die Aufgabe der Verteilung, Weiterleitung und Filterung solcher Nachrichten.

Wesentlich an BrickNet ist, daß die verschiedenen Benutzer nicht zwangsläufig die gleiche virtuelle Umgebung vor sich haben, obwohl dies durchführbar wäre. Dadurch kann die Komplexität der Welt, die auf der Station eines Teilnehmers vorhanden ist, begrenzt werden.

BrickNet Clients kommunizieren nicht direkt miteinander, sondern immer nur über den Server. Ein Client in BrickNet besteht aus mehreren Schichten. Die Interaktionsunterstützungsschicht (interaction-support Layer) ist sozusagen die VR-Oberfläche. Sie besteht aus verschiedenen Modulen (bricks), die verschieden Aufgaben übernehmen (Gerätetreiber - device brick, grundlegende 3D Grafik - geometry brick, usw. ). Die zweite Schicht ist die VR-Wissensschicht (VR Knowledge Layer). Diese Schicht verwaltet die Objekte einer virtuellen Welt. Dabei kommen Gesetze (laws) zum Einsatz, die verschiedenes Verhalten der Objekte hervorrufen. BrickNet geht in der Wissensschicht von verschiedenen Klassen aus, die die einzelnen Wissenskomponenten enthalten. Solche Klassen sind die Geometrie- und Weltklassen (Solid- and World Classes), die Überwachungs- (Controller-) und Aktionsklassen (Action Classes) und die Objekt- und Abgleichskontrolle (Object- and Updatemanagement)

Bei der Objektverwaltung ist das Konzept des derzeitigen Besitzers (current owner) eines Objektes interessant. Dieses Konzept verhindert Inkonsistenzen durch gleichzeitiges Verändern eines Objektes durch mehrere Clients. Um Besitzer eines Objektes zu werden, wird eine entsprechende Anforderung an den Server gesendet. Wenn niemand das Objekt besitzt, vergibt der Server die Besitzrechte und sperrt das Objekt für andere Clients solange, bis das Objekt wieder freigegeben wird.

In der Kommunikationsschicht wird die Kommunikation des Clients mit dem Server abgewickelt. Ein Kommunikationsverwalter ist als separater Prozeß ausgelegt.

BrickNet Server bestehen ebenfalls aus verschiedenen Schichten die folgende Aufgaben haben: Clientverwaltung (Client Management Layer) , Objektverwaltung (Object Management Layer), Aktualisierungsanforderungsverwalter (update request handler) und Kommunikation (communication Layer).

Nachteil des BrickNet Systems ist ganz klar der Server, der zum Kommunikationsflaschenhals werden kann. Die Entwickler schlagen eine Lösung vor, in der die Aufgaben des Servers zusätzlich von den Clients übernommen werden. Dies führt aber zu komplizierteren Clientprogrammen und könnte die Interaktionsgeschwindigkeit evtl. nachteilig beeinflussen.

Die Netzlast kann in BrickNet durch die Implementation der Objekte beeinflußt werden. Jedes Objekt entscheidet selbst, wie oft es entfernte Kopien aktualisiert, und wie die entfernten Kopien auf diese Aktualisierung reagieren.

2.5.8

NVR

 

Networked Virtual Reality (NVR) wurde durch Wissenschaftler der Bell Communications Research entwickelt (/BER94/).

NVR stellt ein Software Toolkit dar, welches die Generierung von verteilten (networked) virtuellen Umgebungen unterstützt. Das System basiert auf einer Client/Server Architektur. Dabei existiert ein zentraler Kommunikationsserver, über den die Kommunikation der Clients untereinander erfolgt. Alle Clients besitzen eine Kopie der Datenbank, die die virtuelle Umgebung beschreibt. Über Nachrichten, die der Server verteilt, wird die Konsistenz der bei den Clients replizierten Daten sichergestellt. Es wird ein Mechanismus vorgestellt, der bei zu hohen Belastungen (Rechen- bzw. Netzwerkleistung) die Zeit zwischen solchen Nachrichten vergrößert. Dies führt aber zu deutlichem Qualitätsverlust, da die fehlenden Informationen in keiner Weise interpoliert werden. Als weitere Methode die Kommunikation zu verringern, benutzt NVR lokale Objekte (local objects). Diese Objekte werden allein von der lokalen Datenbank verwaltet. Denkbare Anwendungen sind hier z.B. Kontrollpanelobjekte, die sich jeder Nutzer lokal anpassen kann, oder auch Objekte, bei denen es nicht auf zeitsynchrones Verhalten bei allen Nutzern ankommt (z.B. ein Objekt welches zur besseren Erkennbarkeit immer um seine eigene Achse rotiert, oder eine Fackel deren Flamme flackert).

Das Problem großer virtueller Welten wird von NVR über getrennte Welten, die über Portale (portals) verbunden sind, gelöst. Beim Neueintritt in das System oder beim Übergang in eine andere Welt wird vom Server eine vollständige Kopie der aktuellen Welt geliefert. Der Server hält also von jeder Welt eine Kopie vor und aktualisiert diese Welt permanent.

Dieser Punkt ist problematisch, da dadurch der Server sehr schnell zum Flaschenhals des Systems werden kann.

NVR zielt auf Low-End Hardware ab. Das System ist für heterogene Umgebungen geeignet, es basiert auf TCP/IP und benutzt entfernte Prozeduraufrufe (remote procedure calls - RPC) zur Kommunikation.

2.5.9

MASSIVE

 

Model, Architecture and System for Spatial Interaction in Virtual Environments (MASSIVE) ist ein experimentelles System. Es wurde von Greengalgh und Benford an der University of Nottingham entwickelt und 1995 auf der Conference on Distributed Computing in Vancouver vorgestellt (/GRE95/).

Es benutzt verteilte virtuelle Umgebungen mit dem Ziel der Unterstützung gemeinsamen Arbeitens. Die Entwickler von MASSIVE haben bei ihrer Arbeit großen Wert auf das gemeinsame Arbeiten und auf die Bereitstellung von Schnittstellen für verschiedene Arten der Kommunikation gelegt. Die Entwicklung von MASSIVE wurde von zwei Grundideen getragen: Erstens sollen so viele gleichzeitig agierende Nutzer wie möglich unterstützt werden und zweitens soll Interaktion auch zwischen solchen Nutzern möglich sein, die radikal verschiedene Benutzeroberflächen benutzen bzw. deren Ausstattung sich sehr stark von einander unterscheidet.

MASSIVE benutzt für die Kommunikation zwischen Benutzern das räumliche Modell der Interaktion (spatial model of interaction). Dieses Modell geht von zwei Grundkomponenten aus. Die eine Komponente - Skalierbarkeit (scalability) - basiert auf dem Aurakonzept. Jedes Objekt in einer virtuellen Umgebung besitzt eine Aura, also einen gewissen räumlichen Einflußbereich. Diese kann für jedes Medium in dem es interagieren kann, verschieden sein. Die Aura legt die Grenze fest, bis zu der das Objekt im jeweiligen Medium mit anderen Objekten interagieren kann. Interaktion kommt nur dann zustande, wenn die Aura zweier Objekte miteinander kollidieren (Aura collision). Die Kontrolle, ob eine solche Kollision vorliegt, übernimmt ein Auramanager. Der Auramanager informiert die Objekte, die an einer Kollision beteiligt sind und diese Objekte können dann eine Punkt-zu-Punkt Verbindung zueinander aufnehmen. Die zweite Komponente dieses räumlichen Interaktionsmodells ist die Wahrnehmung anderer Objekte (awareness) . Diese ist beim räumlichen Modell in weiter Entfernung weniger stark ausgeprägt als beim direkten Kontakt und kann etwa mit einem Detaillierungsgrad (Level of Detail, LOD) verglichen werden. Um die Wahrnehmung zu steuern, wurden Fokus (focus) und Nimbus (nimbus) eingeführt. Fokus geht immer von Beobachtern aus und gibt an, wie stark der Beobachter sein Wahrnehmung auf ein bestimmtes Objekt konzentriert. Nimbus beschreibt eine Art Sichtbarkeit. Mit dem Nimbus kann ein Objekt steuern, wie stark es selbst von anderen Objekten (Beobachtern) wahrgenommen wird. Wie ein Objekt ein anderes Objekt nun wahrnimmt hängt zum einen vom eigenen Fokus des Objektes ab und zum Anderen vom Nimbus der beobachteten Objekte.

Aura, Fokus und Nimbus können auf drei verschiedene Arten beeinflußt werden. Einmal kann eine implizite Änderung erfolgen. Dies ist z.B. bei einer Bewegung durch die virtuelle Umgebung sinnvoll. Natürlich kann auch explizit Einfuß genommen werden, z.B. indem einfach verschiedene Größen oder Gestalten bzw. enger oder weiter Fokus gewählt werden. Eine weitere Einflußmöglichkeit auf diese Parameter sind Adapter. Adapter sind Objekte, die eine Transformation von Aura, Fokus und Nimbus vornehmen. Ein Beispiel für einen solchen Adapter ist z.B. ein Mikrofonobjekt. Dieses Objekt kann Aura, Fokus und Nimbus anderer Objekte verändern und dadurch bestimmte Funktionen bereitstellen (in diesem Beispiel Verstärkung von akustischen Informationen).

MASSIVE unterstützt die Existenz mehrerer unabhängiger virtueller Welten, die über Portale miteinander verbunden sind. Kommunikation kann graphisch, über Audio oder mit Hilfe eines Textinterfaces bzw. als Kombination dieser Medien, erfolgen.

Das Verteilungsmodell von MASSIVE benutzt typisierte Punkt-zu-Punkt Verbindungen, die eine Kombination aus entfernten Prozeduraufrufen (remote procedure calls, /BLO92/), gemeinsamen Attributen (shared attributes) und Strömen (streams) sind.

Interaktionen können nur dann zustande kommen, wenn zwei Voraussetzungen erfüllt sind: Die Objekte müssen mindestens ein gemeinsames Interface besitzen und sie müssen nah genug beisammen sein. Beide Voraussetzungen spiegeln sich im Konzept des räumlichen Austausches (spatial trading) wider. Ein Auramanager übernimmt die Aufgabe, Aurakollisionen gleicher Interfaces verschiedener Objekte festzustellen und die Objekte davon in Kenntnis zu setzen.

Die zentrale Kollisionsfeststellung durch den Auramanager ist als Nachteil von MASSIVE anzusehen, da zentralisierte Funktionalitäten in jedem Fall einen Engpaß darstellen können.

2.5.10

AVIARY

 

Das AVIARY System wurde von der Communications Research Group am Department of Computer Science der University of Nottingham entwickelt und in /SNO94/ vorgestellt.

AVIARY kann als Sammlung autonomer, miteinander kommunizierender Objekte angesehen werden, die unabhängig voneinander ausgeführt werden. Alle Objekte exportieren ein Interface, mit dessen Hilfe sie in einem gemeinsamen Kommunikationsmedium durch den Austausch von Nachrichten kommunizieren. Solche Objekte können sowohl Gegenstände oder Objekte (artifacts) der virtuellen Umgebung sein, als auch Dienste anbieten (z.B. Kollisionsfeststellung).

Das System ermöglicht die Einrichtung von verschiedenen Welten, in denen auch verschiedene Gesetze gültig sein können. Die Kommunikation zwischen AVIARY Objekten geschieht über Nachrichtenaustausch (message passing). Es ist möglich, neue Nachrichtentypen zur Laufzeit zu erzeugen.

Die Objekte in AVIARY können von verschiedener Art sein. Es gibt Objekte, die als Applikationen ausgelegt sind, die also ohne weiteres ausführbar sind (heavyweight objects) und es gibt Objekte, die - ähnlich den Objekten aus Standard Programmiersprachen - weniger Overhead besitzen, somit leichter (lightweight objects) sind und auf eine einfache Art und Weise zwischen Prozessoren hin und her bewegt werden können.

Nutzer werden von AVIARY auf die gleiche logische Ebene gestellt wie Applikationen.

Erkennung von Interaktionen zwischen Objekten (hier Kollisionsfeststellung) erfolgt bei AVIARY über eine Umgebungsdatenbank (Environment Database). Diese Datenbank wird von den Objekten über räumliche Änderungen informiert und informiert ihrerseits die Objekte, wenn eine Kollision festgestellt wurde. Die Objekte müssen dann geeignete Maßnahmen einleiten. In AVIARY wird zur zeitlichen Synchronisation das Konzept einer globalen Zeit (world-time) eingeführt.

Schonender Benutzung von Netzwerkressourcen wurde Beachtung geschenkt, indem z.B. nur diejenigen Bestandteile (artifacts) der virtuellen Umgebung Synchronisationsereignisse erhalten, die sich in einem bestimmten räumlichen Umfeld um den Betrachter befinden.

2.5.11

NPSNET

  NPSNET wurde für militärische Simulationen entwickelt (/MAC94/).

Es benutzt sowohl das IEEE 1278 distributed interactive simulation (DIS) application protocol (/DIS/), als auch das IP Multicast network protocol (/LOO91b/). Ein weiterer wesentlicher Punkt des NPSNET Systems ist die Verwendung eines Dead Reckoning Verfahrens zur Verminderung der Netzwerkbelastung.

Dead Reckoning bezeichnet eine Methode zur Verringerung der notwendigen Datenübertragung zum Abgleich der Stationen. Um eine flüssige Darstellung der Bewegung eines Objektes zu erhalten, müssen ca. 25 Bilder pro Sekunde dargestellt werden. Wenn Objekte über ein Netzwerk abgeglichen werden müssen, ist es somit notwendig, die Informationen zum Abgleich 25 mal pro Sekunde über das Netzwerk zu übertragen. Dies führt zu einer hohen Belastung des Netzwerks. Außerdem kommt die Bewegung eines Objektes ins Stocken, wenn bei der Übertragung der Abgleichsinformationen Verzögerungen auftreten. Wird Dead Reckoning eingesetzt, so kann die Bewegung eines Objektes anhand der aktuellen Position, der Geschwindigkeit und der Beschleunigung des Objektes bei jedem Teilnehmer berechnet werden. Durch diese lokale Berechnung ist die Flüssigkeit der Darstellung unabhängig vom Eintreffen neuer Objektinformationen. Zusätzlich kann der Zeitraum zwischen zwei Synchronisationsimpulsen erhöht werden. Dadurch erfolgt eine Entlastung des benutzten Übertragungskanals. Für die Berechnung der Bewegung eines Objektes anhand o.g. Attribute existieren verschiedene Lösungen. Neben der Lösung, die in NPSNET benutzt wurde, sei an dieser Stelle noch auf /SIN95/ verwiesen.

Das DIS Protokoll unterstützt und verlangt eine volle Replikation aller Objekte in der virtuellen Umgebung und es verlangt auch, daß die replizierten Objekte immer den aktuellen Status des Originals kennen. Selbst durch den Einsatz von Mechanismen wie Dead Reckoning ist ein Ansatz mit dem DIS Protokoll nicht allgemeingültig anwendbar, da durch die vollständige Replikation aller Objekte sehr schnell die Grenzen der zur Verfügung stehenden Hardware und Netzbandbreite erreicht werden.

2.5.12

RING

 

RING wurde von den AT&T Bell Laboratories, Murray Hill, New York als Client-Server System für virtuelle Umgebungen mit mehreren gleichzeitig agierenden Nutzern konzipiert(/FUN95/).

Die Kommunikation wird über Server abgewickelt. Dabei werden aber nicht alle Statusänderungen aller Objekte an alle Clients weitergeleitet, sondern es werden nur Nachrichten weitergeleitet, die für den Empfänger wirklich notwendig sind.

Diese Notwendigkeit errechnet der Server über einen Sichtbarkeitsalgorithmus. Clients werden nur über Statusänderungen von Objekten informiert, die für sie selbst sichtbar sind. Es existiert für jedes Objekt (entity) genau ein Client, der dieses Objekt verwaltet. Wenn ein Objekt für einen anderen Client interessant wird, dann wird eine Kopie des Objektes angelegt. Die Statusänderungen werden durch Nachrichten (messages) übertragen. Die Server fungieren dabei als Filter für Nachrichten.

Problematisch wirkt sich dabei aus, daß jede Kommunikation über den Server abläuft und beim Server die räumlich Aufteilung der gesamten Umgebung bekannt sein muß.

Das RING System benutzt verschiedene Methoden, um die Ressourcen effizient auszunutzen. So wurde z.B. eine Erweiterung vorgeschlagen (multiresolution update), die dafür sorgt, daß die Position von Objekten, die räumlich weiter vom Betrachter entfernt sind, mit einer geringeren zeitlichen Auflösung aktualisiert wird als Objekte, die sich dicht beim Betrachter befinden.

2.5.13

MR-Toolkit Peer Package

 

Das Minimal Reality (MR) Toolkit wurde an der University of Alberta entwickelt (/SHA92/, /SHA93a/).

MR ist eine Programmbibliothek, mit der es möglich ist, Applikationen für virtuelle Umgebungen zu entwickeln. MR basiert dabei auf einer Client/Server Architektur, bei der die Gerätetreiber als Server fungieren. Von diesen Servern rufen die Applikationen dann die benötigten Daten ab. MR stellt eine Softwarebasis für die Entwicklung von Einzelplatz VR-Anwendungen dar.

Peer Package ist eine Erweiterung des MR Systems und wurde an derselben Einrichtung entwickelt (/SHA93b/).

Mit Peer Package ist es möglich, MR-Applikationen miteinander über ein Netzwerk zu verbinden. Dies macht das MR-System zum Multi-User VR System. Die Kommunikation der einzelnen Stationen basiert auf Punkt-zu-Punkt Verbindungen. Die Netzwerktopologie ist dabei ein vollständig konnektierter Graph, d.h. jede Applikation besitzt Verbindungen zu jeder anderen Applikation.

Durch diese Vorgehensweise wächst der Kommunikationsbedarf quadratisch mit der Anzahl der beteiligten Nutzer. MR Peer Package ist deshalb nicht in der Lage, die Probleme großer, verteilter virtueller Umgebungen mit vielen Nutzern zu lösen.

Die Implementation basiert auf UDP, einem verbindungslosen Transportprotokoll /LOO91a/. MR Peer Package besitzt keine Methoden zur Unterbindung der Nachteile von UDP. Diese Nachteile liegen darin, daß der Empfang von Paketen nicht bestätigt wird. Außerdem kann sich die Reihenfolge der Pakete durch die Übertragung ändern, so daß ein Paket A, welches früher als ein Paket B abgeschickt wurde, später beim Empfänger ankommt, als das Paket B. Deshalb eignet es sich nur für den Einsatz in schnellen LANs, in denen davon ausgegangen werden kann, daß keine Verzögerungen beim Routen der Pakete auftreten und in der Regel alle Pakete ankommen. Als Demonstration wurde ein Multi Player Handball vorgestellt.

Mit einem weiteren Zusatzmodul, dem Umgebungsmanager (Environment Manager, EM) werden einige der Probleme in Angriff genommen (/WAN95/). Netzwerkverkehr wird durch verschiedene Methoden (u.a. lokale Simulation, Nachrichtentransfer nur an relevante Empfänger) verringert. Weiterhin werden verteilte Objekte und Zugriffsrechte benutzt. Der EM vereinfacht aber nicht nur die Arbeit mit verteilten Systemen mit mehreren Nutzern, sondern auch Einzelplatzsysteme profitieren von dieser Systemerweiterung.

2.5.14

Waves / Hidra

 

Die Waves (Waterloo virtual environment system) Architektur wurde von Rick Kazman (University of Waterloo, Canada) vorgestellt (/KAZ93a/).

Die Architektur geht davon aus, daß eine virtuelle Umgebung aus einer Anzahl Nachrichtenverwaltern (message managers) besteht, die die Kommunikation zwischen Stationen (hosts) realisieren.

Die Nachrichtenverwalter leiten Nachrichten von einer Station zu einer anderen und fungieren dabei auch als Nachrichtenfilter. Eine Station kann einem Nachrichtenverwalter explizit mitteilen, daß sie nur bestimmte Nachrichten empfangen will.

Die Stationen sind Prozesse, die Objoids simulieren. Objoids ist ein Kunstwort, welches bei Waves für Objekte in der virtuellen Umgebung steht. Ein Objoid besteht aus einem internen Status, exportierten Attributen und einer Anzahl ausführbarer Verhaltensvorschriften, mit denen der interne Status des Objoids dezentral und autonom aktualisiert werden kann. Virtuelle Welten in Waves enthalten nichts außer solchen Objoids. Die Stationen stellen den Objoids Serviceleistungen wie Simulation, Interaktionserkennung und -auflösung (interaction detection and resolution) und Visualisierung zur Verfügung.

Objoids können auf einfache Weise von einer Station zu einer anderen übertragen werden, da die gesamte Beschreibung eines Objoids in Parameter überführt werden kann. Diese Parameter können über das Netzwerk an eine andere Station übertragen werden. Dort existiert das Objoid als Kopie (clone) weiter. Es ist in der Lage, seinen internen Status eigenständig zu ändern und seinen Zustand mit dem Originalobjoid abzugleichen.

Leider wird in den Quellen nichts über die Implementation und die Parameterisierung der Objoids ausgesagt. Dieser Umstand ist bedauerlich, da gerade die Darstellung der Verhaltensvorschriften als Parameter der Objoids eine komplexe Aufgabe zu sein scheint. Es ist denkbar, daß die Lösung des Problems durch eine Art Interpreter bewerkstelligt wurde, mit dessen Hilfe die parametrisierten Verhaltensprogramme ausgeführt werden können. Der Autor des Systems, Rick Kazman, teilte auf Anfrage mit, daß das Projekt nicht mehr weiterverfolgt wird und deshalb keine weiteren Informationen verfügbar seien.

Die Verhaltensvorschriften der Objoids enthalten auch explizite Verhaltensmodelle (explicit behavioral models). Diese Modelle erlauben es, zukünftiges Verhalten von Objoids vorherzusagen. Damit können z.B. Verzögerungen beim Nachrichtentransfer ausgeglichen werden.

Interaktionserkennung wird in Waves durch separate Stationen durchgeführt. Dabei simulieren diese Stationen eine Anzahl Objoids. Die Interaktionserkennung und -auflösung erfolgt über separate Vorschriften. Die Objoids interagieren also nicht selbst, sondern Interaktionen werden von der Implementation der Objoids getrennt definiert. Dabei besteht eine Interaktionsdefinition aus zwei Teilen: einem Interaktionserkennungsteil und einem Interaktionsauflösungesteil. Die Interaktionserkennung erfolgt zentral, also nur an einer Stelle im Gesamtsystem. Der Engpaß, der sich dadurch ergeben könnte, wird in Waves dadurch gelöst, daß die Erkennung verschiedener Arten von Interaktionen auf verschiedenen Stationen (Interaktionserkennungsstationen) durchgeführt werden kann.

Die Waves Architektur wurde mit dem Prototypen HIDRA (Higly interactive distributed real-time architecture) implementiert (/KAZ95/, /KAZ93b/).

Leider ist dieser Prototyp nicht frei verfügbar und das Projekt wird derzeit nicht weiterentwickelt.

2.5.15

Demand Driven Geometry Transmission

 

Schmalstieg und Gervautz vom Institut für Computergrafik der technischen Universität Wien stellen verschiedene Methoden zur Minimierung der Netzwerkbelastung in verteilten virtuellen Umgebungen vor (/SCH95/, /SCH96/). Ein Prototyp ist als Client/Server System ausgelegt. Der Server hält dabei die Daten der gesamten Umgebung vor. Clients erhalten vom Server die Daten der für sie relevanten Objekte. Die Relevanz wird dabei durch das räumliche Umfeld des Clients festgelegt (Area of Interest, AOI).

Hauptaugenmerk legten die Autoren auf die Optimierung des Transports von Geometriedaten. Dabei werden für Objekte Datenstrukturen eingesetzt, die verschiedene Detaillierungsgrade (Level of Detail, LOD) enthalten. Wird ein Objekt für einen Client interessant, so wird das Modell des Objektes in der geringsten Auflösung an den Client übertragen. Ein Prefetch-Mechanismus sorgt dafür, daß die Übertragung der Daten vor der eigentlichen Visualisierung abgeschlossen ist. Die AOI um den Client besteht aus verschiedenen Zonen, denen jeweils ein LOD des Objektes zugeordnet ist. Bewegt sich der Client näher an das Objekt heran (bzw. das Objekt an den Betrachter), so werden entsprechend feinere Geometrieinformationen vom Server geladen.

Die Autoren schlagen einen Serververbund vor, um die Skalierbarkeit des Systems zu gewährleisten. Jeder Server ist dabei für einen gewissen Teil der virtuellen Umgebung zuständig.

Es existieren Objekte, die lediglich aus statischen Geometrieinformationen bestehen, Objekte, die zusätzlich statische Animationen beinhalten können und Objekte, deren Verhalten in einer Art Skript festgelegt werden kann.

Dabei werden die Skripts hauptsächlich dazu benutzt, die Reaktion auf asynchrone Ereignisse zu definieren. Bei dieser Art der Objekte wird weiterhin unterschieden, ob das Skript durch den Server oder durch den Client interpretiert werden soll. Weiterhin sind externe Applikationen möglich, die über Clients in die virtuelle Umgebung eingebunden werden können.

Das System von Schmalstieg und Garvautz besitzt den Charakter eines unvollständigen Prototypen. Tests mit vielen Nutzern und großen Umgebungen stehen noch aus und die verwendeten Mechanismen müssen noch optimiert werden.

2.6

Zusammenfassung

 

Neben der in der Beschreibung der einzelnen Systeme erfolgten Darstellung der Vor- und Nachteile, soll an dieser Stelle nochmals eine zusammenfassende Aufstellung wichtiger Parameter der Systeme erfolgen (Tabelle 2). Dabei wurde die anfänglich durchgeführte Systematisierung zugrunde gelegt. Der Prototypcharakter der meisten Systeme erschwert eine genaue Gegenüberstellung.

Es zeigt sich, daß sich der Einsatz einer Client/Server Architektur nur dann für den Einsatz in verteilten virtuellen Umgebungen eignet, wenn diese Architektur entweder in Verbindung mit Punkt-zu-Punkt Kommunikation eingesetzt wird oder ein hierarchisches Client/Server System aufgebaut wird. Punkt-zu-Punkt Kommunikation stellt einen flexibleren Ansatz dar, ist aber nur in Verbindung mit Methoden zur Netzlastbegrenzung sinnvoll.

System Kommunikations- methode Verteilungs- methode Netzlast- begrenzung max. Nutzeranzahl Komplexität der Welt
DIVE Punkt-zu-Punkt DeD-Vrep Filtermechanismen in einer Teilwelt < 10, durch Einteilung in unabhängige Teilwelten hoch
VEOS Punkt-zu-Punkt DeD-Vrep keine keine Angaben, wahrscheinlich < 10 durch Kommunikations- und Verteilungsmethode beschränkt
dVS Punkt-zu-Punkt ZeD-Vrep keine keine Angaben, wahrscheinlich < 10 durch Kommunikations- und Verteilungsmethode beschränkt
VUE Client/Server ZeD-RepNB keine 1 (Verteilung wird zum Zweck der Parallelisierung der Aufgaben eingesetzt) hoch
Rubber Rocks Client/Server ZeD-Vrep higher-level Events vorgeschlagen keine Angaben, wahrscheinlich< 10 gering (durch Kommunikations- und Verteilungsmethode beschränkt)
VR-DECK Punkt-zu-Punkt ZeD-RepNB Filtermechanismen (spezielle Regeln) keine Angaben, wahrscheinlich < 10 mittel
BrickNet Client/Server ZeD-RepNB Filtermechanismen keine Angaben, wahrscheinlich < 10 mittel (Stationen verwalten nur benötigte Daten)
NVR Client/Server ZeD-Vrep verzögerter Abgleich bei Überlastung, lokale Objekte keine Angaben, wahrscheinlich < 10 durch Einteilung in unabhängige Teilwelten hoch
MASSIVE hybrid ZeD-Vrep spatial model of interaction keine Angaben, wahrscheinlich < 20 durch Einteilung in unabhängige Teilwelten hoch
AVIARY hybrid ZeD-RepNB Filtermechanismen keine genauen Angaben, wahrscheinlich < 10 keine genauen Angaben, durch Prototypcharakter wahrscheinlich gering
NPSNET Punkt-zu-Punkt DeD-Vrep Dead Reckoning, Multicast max. 300 (10 Mbit Ethernet LAN) hoch (Datenmodell bei allen Staionen initial vorhanden)
RING Client/Server ZeD-RepNB bedingte Nachrichten- weiterleitung bis zu 1024 hoch (durch Aufteilung in dynamische Sichtbarkeitsräume)
MR Punkt-zu-Punkt DeD-Vrep Erweiterungen (EM) vorgesehen. keine Angaben, wahrscheinlich < 10 gering (durch Kommunikations- und Verteilungsmethode beschränkt)
Waves / Hidra hybrid DeD-RepNB Filtermechanismen Abgleich nach Bedarf keine Angaben, wahrscheinlich < 100 hoch
Demand Driven Geometry Transmission hybrid ZeD-RepNB bedingte Nachrichten- weiterleitung keine Angaben (Prototyp) hoch (durch Art der Verteilung)
  Tabelle 2: Systematisierung der untersuchten Systeme




mm
letzte Änderung: 05.05.1999, marko[at]netz-meister[punkt]de