next up previous contents
Next: General Idea and Problems Up: Applications Previous: Generalising the Models

Distributed Virtual Reality

Distributed VR is a relatively new area of research. Virtual reality systems are now largely software components, rather than requiring the dedicated head-up-display input controllers and renderer hardware of the past. Current high-end workstations can now render scenes described in VRML and other languages in near real time.

The introduction of audio and video input and output on desktop machines led to the deployment of software based multimedia conferencing, we expect to see the deployment of multi-user virtual environments over the Internet shortly.

In this paper, we present an architecture for distributed virtual reality. We outline the necessary network support and a transport protocol, and the way that distributed virtual reality applications would interact (the API if you like) with each other using these mechanisms.

It is a goal of the architecture to provide policy free mechanisms for distributed VR application builders. It is not a goal to make it easy to program such applications, since it is all too easy in providing easy-to-program distributed system tools that let the application builder overload the network, and at the same time provide suboptimal performance for the user.

The architecture provides necessary and sufficient hooks only for distributed VR.

Multicast routing is a mature area of research in the Internet. The system that we now call the ``Mbone''[#!mac:94!#] has its roots in the research by Cheriton and Deering where they developed the Internet multicast model, including the idea of host groups[#!igmp!#] and the basic service model for IP multicast[#!deer:88!#]. It is now widely deployed in the network, and available in most common host operating systems and routers.

Some functions in a distributed system can best be performed in intermediate nodes or routers, whilst others can best be performed in end systems or hosts. The end to end principle[#!end2end!#] is used to select where to place a function. The principle is that a function that requires end system knowledge to carry out correctly should only exist in the end systems; where it appears in the network, it should only be as a performance enhancement.

Two principles behind the design of high performance, low cost protocols that have proved themselves in this environment are Application Layer Framing (ALF) and Integrated Layer Processing (ILP)[#!ddc:91!#]. These state simply that: the unit of synchronisation and recovery should as far as possible be the same as the unit of communication (packet); and that where possible, modular functionality that is specified in layered form should not be implemented as such, and that new designs communications systems should factor this in so that processing associated with layered modules can be integrated in one pass.

Combining these principles with the use of multicast for many-to-many communication, a number of further techniques have arisen for protocol design:

The rest of this paper is structured as follows: In the next section, we outline the structure of a distributed virtual reality system. After that we look at some of the real requirements from distributed VR, both from systems and the human perspective. Following that we present the transport protocol. Finally we look at further work that needs to be done.

next up previous contents
Next: General Idea and Problems Up: Applications Previous: Generalising the Models