A unified component framework for dynamically extensible virtual environments

If large-scale shared virtual worlds are to be established on the Internet, they must be based on technologies that allow them to adapt, scale, and evolve continuously-that is, without their being taken offline. In the course of designing NPSNET-V, an architecture intended to satisfy these criteria through component-based dynamic extensibility, the authors recognized the need for a consistent, unified component framework. This framework, which they implemented in Java™, allows one to construct applications as component hierarchies rooted at an invariant microkernel. A simple extensible interface layer and event model allow components to communicate with one another, and an XML configuration and serialization mechanism permits applications to store and transmit component and application state in a versatile standardized format. After an initial bootstrapping process, one may add, remove, and upgrade components at run time, and one may introduce newly loaded Java™ code anywhere in the application hierarchy at any time. The complications posed by this reconfigurability and the hierarchical nature of NPSNET-V applications led the authors to develop a consistent design strategy, which they based largely on several common design patterns. The most critical design pattern that they used was the Model-View-Controller pattern, which forms the basis of the NPSNET-V entity model.