28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figure 2: Interfae components to external applications<br />

Interface nodes provide a simple but very powerful mechanism to establish connections between the VRML world and<br />

external applications. These applications might be located on the local host or even on arbitrary external servers. The<br />

communication is realized by a common event <strong>in</strong>terface. Events sent to <strong>in</strong>terface node are forwarded to the application<br />

or server by the VRML browser [Fig. 2]. Events sent to the browser by an application or server are sent to the Interface<br />

node. The communication between the browser and the external application is done by an TCP/IP <strong>in</strong>terface of the<br />

browser. This <strong>in</strong>terface is powerful enough for almost all k<strong>in</strong>ds of applications. For external applications which have to<br />

communicate with a large number of hosts, a multicast connection (see second part of the paper) should rather be<br />

established. Locat<strong>in</strong>g an application on a central server which might be accessed from different VRML worlds allows to<br />

create high-level services. The Interface node allows behaviors def<strong>in</strong>ed with<strong>in</strong> the scene graph to access such services.<br />

The Interface node may be used for <strong>in</strong>put, output or bidirectional I/O. The external service associated with the <strong>in</strong>terface<br />

node, dest<strong>in</strong>ations of <strong>in</strong>com<strong>in</strong>g events and the name of the external service can be specified by appropriate fields. The<br />

name of the server might be any valid host name or IP address and may <strong>in</strong>clude a specification of the port (e.g.<br />

baghira.universe.com:1234 or 134.62.47.11), provid<strong>in</strong>g the specified service.<br />

A simple example for the usage of this mechanism is a 3D mail watcher connected to an external daemon by an<br />

Interface node. The daemon watches the user's mailbox and sends appropriate events to the <strong>in</strong>terface. This will than raise<br />

the flag of the user's 3D mailbox with<strong>in</strong> the virtual world.<br />

Distributed Behavior<br />

Our VRML behavior approach as well as any other proposal based on a user-extendable event mechanism, seems to be<br />

very suitable to support distributed virtual worlds. To do this, events <strong>in</strong>fluenc<strong>in</strong>g the state of a virtual world entity have<br />

to be transmitted over a network connect<strong>in</strong>g the current participants of world. Our proposal [Broll et al. 96] uses Eng<strong>in</strong>e<br />

nodes to realize time dependent behaviors such as animations. The Mov<strong>in</strong>g Worlds proposal [Mitra et al. 95] uses<br />

TimeSensors <strong>in</strong>stead. However, behaviors depend<strong>in</strong>g rather on the elapsed time than on user <strong>in</strong>put allow more<br />

sophisticated ways to reduce the required network traffic [Roehl 95].<br />

Some behaviors are even completely <strong>in</strong>dependent on each virtual world, e.g. a waterfall, a bl<strong>in</strong>k<strong>in</strong>g light, tree<br />

movements by the w<strong>in</strong>d, etc. These behavior do not need to be synchronized.<br />

Other behavior have a def<strong>in</strong>ed start<strong>in</strong>g and end<strong>in</strong>g time, def<strong>in</strong>ed <strong>in</strong> real world time. No synchronization is needed for<br />

this k<strong>in</strong>d of behavior either.<br />

Further more most animations even if not completely <strong>in</strong>dependent are well def<strong>in</strong>ed. Thus their description can already<br />

be transmitted as part of the virtual world distribution. However, they may be <strong>in</strong>voked or stopped under certa<strong>in</strong><br />

conditions or parameters may be modified. This usually requires a s<strong>in</strong>gle resynchronization. S<strong>in</strong>ce the transmission<br />

between the different sites requires a certa<strong>in</strong> time (latency), such updates require a time stamp to guarantee the desired<br />

effects. Time stamps additionally require synchronized clocks, which can be realized us<strong>in</strong>g one of the well established<br />

mechanisms such as NTP (Network Time Protocol).<br />

Our approach provides special eng<strong>in</strong>es nodes to allow the author of a virtual world to determ<strong>in</strong>e the required<br />

synchronization level. By an additional resynchronization field it is possible to determ<strong>in</strong>e, under which conditions a<br />

resynchronization is performed. Resynchronization may be deactivated, performed on activation or deactivation of the<br />

eng<strong>in</strong>e, or realized when any field value of the eng<strong>in</strong>e is changed. In the latter case, modifications are only distributed<br />

immediately if the eng<strong>in</strong>e is currently active, otherwise redistribution is postponed until the eng<strong>in</strong>e is reactivated.<br />

Multi-User Interactions<br />

In current proposals for VRML 2.0, <strong>in</strong>teractions are executed by the local browser only, s<strong>in</strong>ce multiple users or shared<br />

virtual worlds are not supported. However, with<strong>in</strong> shared environments, <strong>in</strong>consistencies may occur, when several users<br />

at different sites <strong>in</strong>teract with the same virtual world entity. For that reason our approach adds shared trigger components<br />

to the VRML specification. These components either prevent several users to execute a certa<strong>in</strong> behavior at the same time<br />

or detect and resolve concurrent access. Interactions might then be synchronized e.g. by comb<strong>in</strong><strong>in</strong>g them. Shared trigger<br />

components synchronize events, which would actually trigger a certa<strong>in</strong> behavior. Synchronization is achieved by<br />

forward<strong>in</strong>g the events to the replicated copies of the trigger components. This allows one either to lock certa<strong>in</strong><br />

<strong>in</strong>teractions already accessed by a another user, or to comb<strong>in</strong>e the <strong>in</strong>put events of several users. We realize this k<strong>in</strong>d of

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!