1 OpenPING: A Reflective Middleware Platform for construction of Adaptive Virtual Reality Applications 3DXO2NDQGD*RUGRQ%ODLU1LNRV3DUODYDQW]DV 'LVWULEXWHG0XOWLPHGLD5HVHDUFK*URXS &RPSXWLQJ'HSDUWPHQW /DQFDVWHU8QLYHUVLW\%DLOULJJ/DQFDVWHU/$<58. 7HOH[W )D[ (PDLO {okanda, gordon} @comp.lancs.ac.uk, n.parlavantzas@lancaster.ac.uk Abstract The emergence of collaborative virtual world applications that run over the Internet has presented Virtual Reality (VR) application designers with new challenges. In an environment where the public internet streams multimedia data and is constantly under pressure to deliver over widely heterogeneous user-platforms, there has been a growing need that distributed virtual world applications be aware of and adapt to frequent variations in their context of execution. In this paper, we argue that the use of structural reflection offers great potential for the design of flexible real-time interactive Distributed Virtual Environments (DVEs). Keywords Distributed Virtual Environment (DVE), Virtual Reality (VR), Reflection, Object Behaviour, Adaptation. 1. Introduction Recent research has been aimed at developing distributed platforms that can support real-time applications running on the public internet. This has proved extremely challenging, particularly in massively multi-participant applications where thousands of users potentially interact in real-time with each other and with thousands of autonomous entities using uncontrolled network and local (processor, memory) resources. Requirements for such systems include scalability, persistence, responsiveness, flexibility, maintainability, and extensibility. The main focus of research on platforms that support real-time interaction has been on the first three capabilities and, as a result, a number of techniques both at the platform and application level have emerged. To improve scalability, existing published works propose a wide range Virtual World partitioning approaches from static coarse- grained partitions [Frecon98] to interest management (perception-based) approaches (VS) [Lea97]. To address persistence requirements, some DVE platforms such as Continuum [Frederic00] implement mastership transfer within peer-to-peer architectures. To provide support for responsiveness, researchers in real-time interactive VR systems have attempted to implement fully distributed architectures together with multicast grouping of clients, e.g. DIVE [Frecon98]. (A detailed analysis of techniques used in contemporary DVEs can be accessed in [Okanda02a]). In contrast, there has been much less effort on addressing the flexibility, maintainability and extensibility requirements of contemporary DVEs. We propose the use of structural reflection as an approach that not only addresses these requirements but also offers added value in the form of providing a framework for scalability, persistence and responsiveness that is itself flexible, maintainable and extensible. This paper is structured as follows: Section 2 presents a definition of reflection. Section 3 then provides an insight into our system design while implementation details and an overall architecture are covered in section 4. Section 5 briefly mentions some experiments done and their evaluation. Section 6 then presents related work and finally, section 7 concludes the paper. 2. Background on Reflection The conceptual origin of reflection could be traced to Smith [Smith82] who introduced it thus: ‘In as much as a computational process can be constructed to reason about an external world in virtue of comprising an ingredient process (interpreter) formally manipulating representations of that world, so too a computational process could be made to reason about itself in virtue of comprising an ingredient process (interpreter) formally manipulating representations of its own operations and structures’. This insight triggered an initially limited body of research in programming languages such as Lisp and a few others in the object-oriented community. Subsequently, this research diversified into areas such as distributed systems [McAffer96] in which contemporary research emphasis has been on architecting middleware platforms that are geared towards accommodating a wide variety of requirements imposed by both applications, mobility and underlying environments. For the purposes of this paper, we provide a simple context- specific definition of structural reflection in DVEs as; ‘a design principle that allows a Virtual World to have a representation of itself in a manner that makes its adaptation to a changing environment possible’. 3. System Design Essentially, the motivation for this work is to incorporate flexibility, maintainability and extensibility into DVEs that support real-time interaction. The next section provides details of our design.