Continuously available virtual environments
This thesis presents a framework for continuously available persistent collaborative virtual environments which is fundamentally more flexible than current approaches. Whereas existing systems allow the artefacts in the environment and the application behaviours of those artefacts to be changed at run time, they still need to be shut down if the infrastructure mechanisms of the system need to be changed. The framework presented by this thesis pushes run-time extensibility to a lower level allowing previously static infrastructure mechanisms and application level behaviours to be replaced and extended in a uniform way. By associating infrastructure mechanisms with artefacts in the same way that application behaviours are associated, the framework allows multiple alternative infrastructure mechanisms to coexist within the virtual environment system. Rather than applying a single infrastructure mechanism to all artefacts in a virtual environment, mechanisms can be tailored to an artefact’s role, optimising the operation of each artefact. This allows a wider range of artefact behaviours and so applications to be supported by a single virtual environment. Infrastructure level behaviours may implement a single infrastructure mechanism or multiple mechanisms, allowing the framework to explicitly present the complex interdependencies which can exist between infrastructure mechanisms such as persistence and consistency. In addition to providing greater run-time flexibility for continuously available persistent virtual environments, the framework allows infrastructure mechanisms to be easily developed, compared, tested and configured, making it a useful test bed for the development of future infrastructure mechanisms. After reviewing existing virtual environment systems and related systems, the thesis presents an experiment which reveals some of the problems existing with current approaches to persistence in virtual environments. The thesis then describes the framework discussed above and the issues involved in its realisation before evaluating the current prototype. Finally some conclusions are presented and future work discussed.