Der SharedObject Knoten ist ein sogenannter
"wrapper"-Knoten für verteilte Objekte. Mit seiner Hilfe werden verteilte
von rein lokalen Objekten unterschieden. Jedes verteilte Objekt ist genau
einem SharedObject Knoten zugeordnet, ein rein lokales Objekt ist
dies natürlich nicht. Zusammen mit einem PrivateSharedObject
beinhaltet das SharedObject sämtliche für die Verteilung
dieses Objekts notwendigen Statusinformationen, z.B. die momentane Position
des Objekts in der Szene, ob das Objekt persistent ist (ob es also, wie
der BirdBot im einführenden Szenario,
nach dem Verlassen seines 'Erschaffers' weiter in der Szene bleibt) oder
verschiedene Konsistenz- und Sicherheitsinformationen.
Der Grund für die Einführung von zwei
Knoten für diese eine Funktion liegt in dem in Living Worlds genutzten
Sicherheitsmechanismus von VRML. In VRML können Knoten nur dann verändert
werden, wenn man in den Besitz eines direkten Zeigers darauf gelangen kann.
Hier werden im SharedObject, dessen Zeiger frei verfügbar ist,
nur wenige allgemeine Dinge gespeichert, während die eigentlich für
die Verteilung genutzten Daten im PrivateSharedObject gehalten werden,
auf das nur die MUtech Zugriff hat (siehe
Code).
Das eigentliche Objekt wird in den PrivateSharedObject
Knoten über ein Feld url eingebunden, in dem die URL einer
VRML File, die genau ein Objekt enthält eingetragen ist. Dies ermöglicht
sowohl das Einbinden von Objekten auf entfernten Rechnern, wie es auch
zur modularen VRML Entwicklung motiviert.
Jedes SharedObject ist ein Kindknoten
genau eines Zone Knotens, auf den im weiteren genauer eingegangen
wird.
Der zweite wesentliche neue Knoten in der Living
Worlds Struktur ist der Zone Knoten. Eine Zone ist ein räumlich
sowie konzeptionell zusammenhängender Teil einer Szene. Zum Beispiel
würde man das Monopolyspiel im Szenario
wohl als eine Zone anlegen. Innerhalb dieses Bereichs kapselt die
Zone
alle verteilten Objekte. Eine Zone ist also eine Ansammlung von
SharedObjects.
Der Sinn einer solchen Bündelung liegt darin,
daß die MUtech einen konsistenten
Zuständigkeitsbereich benötigt. Wie wir bei der Beschreibung
dieser Komponente sehen werden, können in einer Szene durchaus mehrere,
von verschiedenen Entwicklern geschriebene MUtechs zum Einsatz kommen.
Jede muß dabei genau wissen, auf welchen Bereich sie sich beziehen
soll. Flexibilität bleibt dabei dadurch gewährleistet, daß
ein SharedObject durchaus in eine andere Zone überwechseln
kann, und damit dann auch in den Zuständigkeitsbereich einer anderen
MUtech.
Auch zur Zone existiert ein Partnerknoten,
die PrivateZone. Hier verhält es sich analog zu oben so, daß
im allgemein zugänglichen Teil, der Zone, nur allgemeine Informationen
verzeichnet sind, während im nur für die MUtech zugänglichen
PrivateZone
Knoten konkrete Informationen zur Verteilung dieser Gruppe von Objekten
enthalten sind. Wesentlich ist hier ein Feld children, das einen
array von Kindknoten enthält, nämlich die SharedObjects
dieser Zone.
Der nächste Abschnitt soll anhand eines Diagramms
den Ablauf einer typischen Kommunikation zwischen verteilten Objekten auf
verschiedenen Rechnern aufzeigen. Dabei werden noch die Begriffe Pilot
und Drone sowie Avatar und Bot eingeführt.