Components for Distributed Virtual Environments

Manuel Oliveira Jon Crowcroft Mel Slater

University College of London
Computer Science Department
Gower Street. WC1E 6BT London
+44 171 419 3876

{m.oliveira|j.crowcroft|m.slater}@cs.ucl.ac.uk

 

Don Brutzman

Naval Postgraduate School
Monterey Ca 93943-5000 USA

+1 408 6562149

brutzman@nps.navy.mil

 

ABSTRACT

Virtual Environments (VE) are complex systems that presents interesting non-trivial challenges for software development. The problems increase when considering VE that are both distributed and shared amongst multiple participants. The majority of existing systems supporting Large Scale Virtual Environments (LSVE) are based on monolithic architectures, making maintenance, reusability and extensibility difficult at best.

This paper presents an overview of the Java Adaptive Dynamic Environment (JADE) as an alternative to the traditional approach for developing a core infrastructure for VE systems.

JADE consists of a light-weight cross-platform kernel with inherent capabilities for dynamic extensibility in run-time. Its architecture and fundamental design concepts are discussed in detail. Although the design principles are applicable to other areas, the implementation is targeted at LSVE.

The JADE implementation is 100% Java, taking full advantage of the following properties: wide deployment across major operating systems and browsers; comprehensive set of packages; networking capabilities and security mechanisms.

Keywords

Virtual Environments, Framework, Components, Virtual Reality, Object-Oriented, Java.

Introduction

The current LSVE systems are inflexible partly because some have the legacy of a monolithic architecture, and partly because of their premise of putting code together just to make things work. It is extremely difficult, if not totally impossible, to integrate a module that performs an elaborate visualisation algorithm from one LSVE system into another.

The gruesome reality of current LSVE systems is one of the major obstacles to satisfy the requirements for massive scalability. The Virtual Reality Transfer Protocol (vrtp) [Brutzman97] proposes a framework identifying the main components that constitute a distributed LSVE system: Client, Server, Monitor, Universal Platform (UP), Peer-to-Peer. The focus of this paper will be the UP, which provides the base support for all the remainder components, by means of a flexible kernel with extensible capabilities for run-time integration of code, thus enabling VE systems to be both dynamic and adaptive. The Bamboo [Watsen98a, Watsen98b] kernel is a proposed implementation for the UP, which is based on C++ for the core, using language loaders to broaden the platform to other languages. The underlying infrastructure is based upon the NetScape Portable Run-time (NSPR) technology. Nevertheless, significant effort has gone in the design of Bamboo to support cross-platform, by building the necessary common functionality as base components.

The JADE initiative is an alternative implementation of the UP, following the same software engineering principles as Bamboo, which have existed in other fields of computer science, namely operating systems [Ford97]. JADE takes full advantage of the rich functionality readily available in any Java Virtual Machine (JVM) along with the functionality provided by the extension libraries such as Java3D [Sowizral97]. The cross-platform nature of the Java language provides JADE with the capability for wide deployment, while avoiding the burden of third party libraries that may be unwieldy and too generic.

Overview Description

JADE focuses on the framework design of a small flexible kernel supporting dynamic components for LSVE, taking into consideration the premises inherent to vrtp. Therefore, its cornerstone is based on interface design, conveying a LSVE system with total liberty to customise.

The base component of the JADE framework is the Module, which enforces the minimal interface for any component to be managed by the kernel. It is possible for a Module to obtain a reference to another, however it is the responsibility of the Module developer to either understand beforehand the interface of the target Module, or to use the available reflection mechanisms.

Modules come in different variants to support the necessary base functionality for any VE system as illustrated in Fig. 1.

Fig. 1 - JADE possible configuration

The block diagram presented in the fig.1, represents a possible configuration of a VE system where the base Modules are used, where the differences are represented by different shapes and shades:

The core of any JADE based system is based on the kernel, which extends the ModuleManager, however additional helper classes exist to support dynamic runtime modules. The kernel implements the Singleton pattern thereby allowing immediate accessibility from anywhere in the system. The pattern enforces that only one single instance is available in the JVM at any given time. This permits ubiquitous access to the kernel without resorting to reference passing.

JADE Loader

The JADELoader is the fundamental helper class of the JADE kernel. It is responsible to retrieve resources based on a unique identifier and the URL indicating its location. The relationships between sources and sinks related to the JADELoader are depicted in Fig. 2.

Fig. 2 - The JADE Loader

The retrieval methods employed by the JADELoader depend upon what is defined by the corresponding URL, which not only defines a location of the resource, but also the associated protocol to be used. By default if the URL is not based on the HyperText Transfer Protocol (http) then the resource is located on the local host and the system variables for paths are used. Otherwise the resource is located remotely, and therefore the appropriate protocol is used for retrieval as indicated in the protocol section of the url.

Once the resources are retrieved, JADE handles each according to their nature. In the case of a Module or a Java class, the JADELoader retrieves the corresponding classfile, linking it dynamically before creating an instance. This dynamic linking is an inherent property of the Java Virtual Machine [Venners98], which in Java Development Kit 1.2 (JDK) provides fine grained security policies associated to class loading. The JVM does resolution of classes, meaning that if a class being linked requires other classes then they are loaded into the same namespace of the current java.lang.classloader. However the search is done based on the current urls known, so it is advisable to either compact all required classes in a single jar (or zip) file or guarantee that the classes with interdependencies are located in the same resource path.

It is possible to integrate native code (C/C++, Pascal, Assembly, LISP, etc) as long as it is provided by means of a system library so the JADELoader may load it into its memory space. In the case of the windows operating system, the most common library form is the Dynamic Link Library (dll).

Alternative Frameworks

JADE benefits immensely from the Java platform and inherent mechanisms to make it a cross platform developing language. However it is necessary to evaluate alternative solutions that may support the aims of a flexible and dynamic runt-time kernel, to avoid repetition of any implementation efforts.

The underlying aim of middleware, such as Common Object Request Broker Architecture (CORBA) [Orfali98] and Distributed Component Object Model (DCOM) [Grims97], is to promote software reusability. However it does not present itself as a viable solution due to the real-time requirements of LSVE that make systems very susceptible to any latencies incurred in the middleware.

Although non-existent in virtual environments, there exist several research proposals to build multimedia applications from components, such as MMLite [Helander98], DJINN [Mitchell97], Medusa [Wray94], CINEMA [Barth96], amongst others. However normally their component framework is tied to the particular context of multimedia applications, thereby imposing obstacles for generalising to other contextual areas, such as LSVE.

The problem in defining a framework is to establish the life cycle of components and their management, including the way of interacting with one another. In JADE, the solution is based on defining a flexible interface and providing the mechanisms for Module management. Another alternative to defining an interface framework would be based on multicast communication to create a local data bus for components to exchange information. Such an approach is adopted in [Otto98] and [Schulzrine95], however minimal transmission mechanisms must be used for communication purposes. The associated overhead of those mechanisms incurs significant performance penalties when compared to JADE. It is always possible to design a component that integrates the MBUS functionality [Otto98].

REFERENCES

  1. Snowdon, D. and West, A. "AVIARY: Design Issues for Future Large-Scale Virtual Environments", Presence Vol. 3 N. 4, 1994
  2. Singh, G., Serra, L., Pang, W. and Ng, H., "BrickNet: A Software Toolkit for Network-Based Virtual Worlds", Presence, Winter 1994, Vol. 3, N.1, pp. 13-34
  3. Hagsand, O. "Interactive Multiuser VEs in the DIVE System", IEEE Multimedia, Spring 1996, Vol. 3, N. 1, IEEE Computer Society, pp. 30-39.
  4. Greenhalgh, C. and Benford, S., "MASSIVE: A Collaborative Virtual Environment for Teleconferencing", ACM Transactions on Computer Human Interfaces, Vol. 2, N. 3, pp. 239-261, September 1995
  5. Macedonia, M., Zyda, M., Pratt, D., Barham, P. and Zestwitz, S., "NPSNET: A Network Software Architecture for Large-Scale Virtual Environments", Presence: Teleoperators and Virtual Environments, Vol. 3, N. 4, 1994
  6. Singhal, S. and Cheriton, D., "Using Projection Aggregations to Support Scalability in Distributed Simulation", Proc. International Conference on Distributed Computing Systems (ICDCS’96), 1996
  7. Funkhouser, T., "RING: A Client-Server System for Multi-User Virtual Environments", Proc. Siggraph Symposium on Interactive 3D Graphics, Monterey, April, 1996
  8. Anderson, D., Barrus, J., Howard, J., Rich, C. and Waters, R., "Building Multi-User Interactive Environments at MERL", IEEE Multimedia, Winter 1995, pp. 77-82
  9. Capin, T., Noser, H., Thalmann, D., Pandzic, I. and Thalmann, N., "Virtual Human Representation and Communication in VLNet", IEEE Computer Graphics and Applications, Vol. 17, N. 2, Mar-Apr 1997, pp. 42-53
  10. "Standard for Information Technology – Protocols for Distributed Interactive Simulation Applications", Institute for Simulation and Training, Technical Report IST-CR-93-15, May 1993
  11. "Virtual Reality Modeling Language", ISO/IEC DIS 14772-1, April 1997
  12. Curtis, P. and Nichols, D., "MUDs Grow Up: Social Virtual Reality in the Real World", Proc. IEEE Computer Conference, January, 1994, pp. 193-200
  13. Morningstar, C. and Farmer, F., "The Lessons of the Lucasfilm’s Habitat", Proc. 1st Annual Conference on Cyberspace, 1990
  14. Das, T., Singh, G., Mitchell, A., Kumar, P. and McGee, K., "NetEffect: A Network Architecture for Large Scale Multi-User Virtual Worlds", Proc. VRST’97, Lausanne, 1997, pp. 157-163
  15. Lea, R., Honda, Y., Matsuda, K. and Matsuda, S., "Community Place: Architecture and Performance", 2nd Symposium VRML’97, Monterey, 1997, pp. 41-50
  16. Broll, W., "DWTP – An Internet Protocol for Shared Virtual Environments", 3rd Symposium VRML’97, Monterey, February, 1998, pp. 15-24
  17. Brutzman, D., Zyda M., Watsen, K. and Macedonia, M. "Virtual Reality Transfer Protocol (vrtp) Design Rationale", Workshops on Enabling Technology: Infrastructure for Collaborative Enterprises (WET ICE): Sharing a Distributed Virtual Reality, MIT, Cambridge Massachusetts, June, 1997
  18. www.web3d.org/workinggroups/vrtp
  19. Clark, D. and Tennenhouse, "Architectural Considerations for a New Generation of Protocols", Proc. SIGCOMM’90, Philidelphis, September 1990, pp. 200-208
  20. Macedonia, M., Zyda, M., Pratt, D., Brutzman, D. and Barham, P., "Exploiting Reality with Multicast Groups: A Network Architecture for Large-Scale Virtual Environments", Proc. IEEE Virtual Reality Annual International Symposium (VRAIS’95), North Carolina, March, 1995
  21. Abrams, H., Watsen, K. and Zyda, M., "Three-Tiered Interest Management for Large Scale Virtual Environments", Proc. VRST’98, Taipei, September, 1998
  22. Watsen, K. and Zyda, M., "Bade – A Portable System for Dynamically Extensible, Real-Time, Networked, Virtual Environments", Proc. IEEE Virtual Reality Annual International Symposium (VRAIS’98), Atlanta, March 1998
  23. Watsen, K. and Zyda, M., "Bade – Supporting Dynamic Protocols for Virtual Environments", Proc. IMAGE Conference, Arizona, August 1998
  24. Schimdt, D., "An Architectural Overview of the ACE Framework: A Case Study of Successful Platform Systems Software Reuse", USENIX Login Magazine, Tools Special Issue, November, 1998
  25. Sowizral, H., Rushforth, K. and Deering, M., "The Java3D API Specification", Addison-Wesley, 1997
  26. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M., "A System of Patterns", John Wiley & Sons, 1998
  27. Venners, B., "Inside the Java Virtual Machine", McGraw Hill, 1998
  28. Orfali, R. and Harkey, D., "Client/Server Programming with Java and CORBA", 2nd Edition, John Wiley & Sons, 1998
  29. Grims, R., "Professional DCOM Programming", WORX, 1997
  30. Helander, J. and Forin, A., "MMLite: A Highly Componentized System Architecture", Proc. 8th SIGOPS European Workshop, Sintra, September, 1998
  31. Schulzrine, H., "Dynamic Configuration of Conferencing Applications using Pattern Matching Multicast", Proc. 5th International Workshop on Network and Operating Systems Support for Digital Audio and Video, New Hampshire, April, 1995
  32. Otto, J., Perkins, C. and Kutscher, D., "A Message Bus for Conferencing Systems", Internet Draft, August 1998
  33. Yang, Z. and Sun, C., "CORBA for Hard Real-Time Applications: Some Critical Issues", Operating Systems Review, pp. 64-71, Vol. 32, 1998