Virtual spaces (worlds) applications are among
the most complex of distributed applications. They
are both distributed and open. Minimizing network
latency, fault-tolerance, persistence, resource
control, and security are also important
aspects. Designing and implementing virtual spaces
is currently difficult in that the already not
insignificant complexities of program
functionality, distribution, openness, and
efficiency are interwound and cannot be tackled
We present a distributed programming language, distributed-Oz, that greatly reduces the complexity of distributed programming by clearly separating the different aspects of distributed programming. The design and implementation of distributed-Oz is ongoing work, but considerable progress has been made. The current prototype demonstrates network transparency, that computations behave the same way regardless of how the computation is partitioned between different sites. This is the basis for realizing clean separation of the functionality aspect from other aspects. Network awareness allows the programmer to predict and control network communication patterns. The current system gives the programmer the means to tackle separately the aspects of openness, efficiency (minimizing latency), distribution, and functionality.
We have extended distributed-Oz with a tool for graphics in a distributed setting. This extends the idea of network transparency and network awareness to graphics. From the programmers point of view graphics programming for a multi-user application is virtually the same as programming for a single-user application. The differences are necessary extensions for achieving network and site awareness, such as visualization control (deciding which users should see what).
Finally we consider virtual space applications, and propose a number of abstractions for use by developers of virtual spaces, relating them to the properties of distributed-Oz upon which they are based.
Download PDF Show BibTeX
Login to edit