Analysis Domain Model for Shared Virtual Environments

The field of shared virtual environments, which also 
encompasses online games and social 3D environments, has a 
system landscape consisting of multiple solutions that share great functional overlap. However, there is little system interoperability between the different solutions. A shared virtual environment has an associated problem domain that is highly complex raising difficult challenges to the development process, starting with the architectural design of the underlying system. This paper has two main contributions. The first contribution is a broad domain analysis of shared virtual environments, which enables developers to have a better understanding of the whole rather than the part(s). The second contribution is a reference domain model for discussing and describing solutions - the Analysis Domain Model.


INTRODUCTION
The Second Life (SL) [219] phenomena has placed 3D cyberspace back into the mainstream spotlight.It permeates all dimensions of society from political campaigns, musical gigs, art exhibitions, social parties and other venues where people come together to work, play and socialize.The venture has triggered a renewed interest in building and deploying Virtual Environment (VE) systems that support a wide range of different application domains and are large-scale both in terms of content and the number of simultaneous participants.However, building VEs systems is a difficult endeavour to undertake due to the high complexity of associated problem domain.The workshop report [58] identifies interoperability, composability, evolution and infrastructure architecture as key research issues to be addressed in the development of VE systems.Although the problems have been identified, there is little understanding as to why such desirable properties did not permeate the existing solutions at the time of the workshop, and according to [271], those properties continue to be absent and difficult research challenges.In fact, an analysis of the history of virtual reality, such as [82], [171] and [118] demonstrate that the technologies have made discernible advances over the years.However, as reported in [31], an honest assessment reveals that VEs just about work, and still experience many problems that need to be solved.Although the field of VEs progressively advances and matures, there is an absence of a common VE platform and code interoperability between different systems continues to be a challenging research issue.An imposing barrier to surpass is the complex problem domain associated with VEs, with system requirements that in some cases have contradictory constraints and very few practitioners have the integrated perspective of the many facets of the problem domain.
There have been attempts to establish a standard aimed at VE system interoperability as in the case of High Level Architecture (HLA) [124].However, as pointed by [14], the steep learning curve coupled with overly complex architecture with performance constraints and semantic interoperability problems, has limited the adoption of HLA to military simulations.The web3d consortium took also the de jure approach to promote interoperability of 3D content by means of eXtensible 3D (X3D) [290], but the gaming industry has lent significant support to COLLADA [2] as an alternative.A new initiative of web3d is to define a standard for networked virtual environments.Furthermore, a recent workshop [271] demonstrates there continues to be a rich variety of different non-interoperable VE system solutions.
Instead of taking the approach of proposing another system framework or architecture, the main aim of this paper is to return to basics and carry out a broad domain analysis, which according to [87] is defined as: the identification, analysis, and specification of common, reusable capabilities within a specific application domain, in terms of common objects, classes, subassemblies and frameworks.
The result of the analysis is an Analysis Domain Model (ADM), which will provide a reference model for the discussion of system design and functionality, analogous to the renowned OSI 7-layered network model [250] used as reference for discussions in the networking community, ultimately promoting convergence amongst different VE systems.One can trace the inception of the vision to [240], but without doubt, Jaron Lanier has been an important visionary to shape the underlying vision associated with the creation of alternate realities [125]. Fictional Literature.This is an important source of inspiration since it stretches the imagination and instigates innovative approaches for the use of technology, such as in the case of well known hallmarks Neuromancer [115] and Snow Crash [237]. Technical Literature.The rich technical literature within the VE community is without doubt the greatest source of knowledge and the paper will focus on its analysis. VE Systems.The analysis of existing VE systems will reveal different implementation strategies and frameworks.An avatar is the graphical embodiment of a user within a VE.This section describes some of key issues to consider concerning avatars.the technical concerns, covering some human factors [226] and perceptual issues when relevant, thus subscribing to the argument [281] that a VE system is not just about technology.

Overview of the Domain Analysis
However, the large scope of the problem domain implies that none of the individual topics are explored in depth, with exception of the network, where more emphasis is provided to clarify the usual misconstrued understanding of what exists between different hosts communicating through the Berkeley socket API [37].

II. AVATAR
Independently of the sophistication of the input/output devices, the users themselves cannot be physically transposed into the alternate reality.A user must interact via the interface paradigms provided by the underlying system and they are represented within the VE by an artificial constructan avatar.
The avatar establishes and defines the identity of the user, ultimately contributing to the overall sense of immersion in the VE [242].The virtual representation has an important role in the social interaction between users [12], which has been demonstrated to be the main activity within VEs as evidenced in [245] and [169].The former study relates the analysis of user behaviour within a LambdaMoo community where 59% of the population clearly expressed social interactivity as their prime activity; while in the latter study, one of the main lessons from the Habitat experiment was that multi-user is essential for the success of a VE.In fact, it is possible to observe social conventions that are established to aid people to develop their cyber identity [148].However, the complete design incompatibility between different VE systems makes it necessary for a user to have a different avatar per system.
The fact that geometry exchange has been facilitated by the Virtual Reality Modelling Language (VRML) [291] standard does not imply that avatars may navigate freely between one VE and another.In addition to geometry, it is necessary to define a standard for humanoid avatars that includes the structure and behaviour model so an avatar may behave in similar fashion across different systems.This is the goal of the H-Anim 2.0 proposal [123] developed by the human animation working group of the X3D consortium, but the adoption seems to be restricted to just the geometry and structure.This is also the case regarding the LivingSpace [275] system, which uses a subset of the H-Anim geometry as part of their implementation of the Living Worlds [297] proposal.The approach to adding behaviour was to add an animation model [268] for specific pre-determined actions that the avatar may execute, which had an impact on the overall design of the system.In the case of other systems, the avatar was the part of the core functional requirements, such as in the case of Virtual Life Network (VLNET) [53,54].In this particular system, the design aims to produce avatars that are as realistic as possible, providing dedicated architectural blocks to handle the body, face, navigation and interaction of the user"s virtual representation.An interesting overview of existing research concerning avatars is presented in [1]

Presence and Co-Presence
When discussing avatars, it is not only important to consider the issues related to the creation and establishment of a cyber identity, but also to consider the measures of Presence and Co-Presence [153,235,76].The former relates to the degree to which the user feels "being there" in the VE [238], thus least likely to notice their surrounding physical environment, whilst the latter denotes the sense of sharing the VE with other people.However, there is a range of subtleties concerning what exactly constitutes Presence and Co-Presence, and [233] presents a good survey on the current research.
As pointed out by [244], a fundamental objective of any VE system is to ensure the user"s sense of Presence at all times and provide the means of positive reinforcement .One way of reinforcing Presence is by having the sensory data validating the user"s proprioception, as evidenced in the study of walking in place as a means of locomotion [244] and the same technique can be used to emulate ascending/descending steps [243].Another means of reinforcing Presence, as hypothesized by [251] and [235], is by successfully promoting Co-Presence between users.However, this result is contested by [42], which failed to verify the existence of positive correlation between Presence and Co-Presence in a small group experiment in a VE.
The divergence in the results may be related to the following facts:  The experiment design in [42] focused on the impact of avatar appearance and behaviour alone, whilst in [235] the focus was more on group interaction, thus the nature of the task may have an impact on both the sense of Presence and Co-Presence;  The Co-Presence questionnaire used in [42] was used for the first time in the experiment, unlike the one in [235];  The interface to control the behaviours of the avatars was obstructive to the users, thus presenting itself as a likely cause of disruption in the sense of Presence.
A break in Presence, or in Co-Presence, reminds the user that it is all a simulation and they become aware of their physical surroundings.In fact, this disruption to a user"s sense of Presence has been proposed as an alternative method for measuring presence by estimating the number and distribution of such, Break In Presence (BIP) [231] and [32].The role of the avatar is extremely important to the user"s sense of Presence, but even more relevant to the sense of Co-Presence amongst other participants [239].As a result, the underlying system must always take into account the support of virtual embodiment of users coupled with the chosen interaction metaphors.

Appearance
In VLNET system, the core of the system revolves around making realistic humanoid avatars, where the avatar has an underlying skeleton structure that defines what movement is possible [191].Attached to the skeleton, is a set of meta-balls to emulate muscles and skin [260], thus allowing for a deformable shaped body that is wrapped with skin texture.The face may have textured onto it a video image of the user, which with feature recognition could increase performance by avoiding the streaming of video and sending only changes in the features [197].Although a photorealistic appearance seems desirable, research has shown that behavioral realism is a more effective contributing factor to the user"s overall sense of presence [130].
It is important to notice that the avatar appearance does have an effect on the sense of Co-Presence, as illustrated by one of the experiments carried out by [42], which investigated the impact different avatar appearances had on the sense of Co-Presence.The results demonstrate that the human appearance is the strongest factor in re-enforcing Co-Presence, followed by cartoon-like avatars with the unrealistic avatars being the least effective in affecting Co-Presence.The advent of VRML [291], and its successor X3D [290], has lowered the barrier for a person to design and create 3D content.Independently of the merits of VRML and/or X3D, the format has become accepted as a standard de jure and de facto, so most VE systems support import mechanisms of VRML models.In some cases [69], it is possible to visually put 3D components together with predefined behaviours without being a modeller, similar to the construction kit approach.However, the fundamental goal of both VRML and X3D to make the Internet 3D remains unfulfilled and the WWW remains vastly confined to the 2D interface of the document paradigm.
The amount of detail in the avatar"s appearance may vary greatly.There is significant research at modelling all aspects of humanoid appearance such as the modelling of fur [121] and hair [9].This area poses significant challenges since the goal of realism is difficult to achieve with real-time performance using current technology.As a result, these techniques have been confined to dedicated modelling systems within the area of computer animation.
Although one"s imagination is the limit, it is important to consider some constraints concerning avatar appearance and geometry, such as maximum height since users use avatar size to establish their social space with others [294].

Object Interaction
The richness of the user"s experience within a VE contributes to their sense of presence, and object interaction plays an important role [280,241,223].In fact, this was one of the failures of VRML 1.0, which only allowed for navigation through static environments.There were improvements with VRML97, in particular the introduction of events to support dynamic VEs.A brief overview of the mechanisms supporting object interaction, along with the relevant issues, is presented in [101].
With regards to the field of VE, object interaction is an active area of research with focus on usability that has an impact on the development of the supporting VE system.Therefore, it is necessary to breakdown the interaction paradigm that begins with the user selecting the target object before proceeding with the manipulation of the selected object [23].The selection process normally includes some feedback mechanism to inform the user if an object is about to be selected.When haptic feedback is not available, it becomes necessary to provide either visual or audio cues.In [133], users demonstrated improved performance in object placement when aided by shadows and inter-reflection visual cues, these being even more significant for non-stereoscopic display devices.Another useful technique, put forth by [94], is the depiction of the target object in wireframe whilst it is being grasped so all users may be able to discern what others are interacting with.
In [167], it is argued that lack of haptic feedback can be compensated for by visual cues if the interface for object interaction exploits the user"s proprioception, such as the Go-Go Interaction [188] and Hand-centred Object Manipulation Extending Ray-casting (HOMER) [23].With the former technique, the user"s arm suffers a non-linear extension when the user interacts with an object that is beyond reach, but remaining a normal size for all interactions close within reach.The HOMER technique is based on ray-casting selection [174] combined with hand-centred manipulation [274], but using the user"s position as reference instead of the world coordinates.
The quality of input devices plays a crucial role in the user"s performance in selecting objects within the VE.This is evidenced in a study [205], where the subjects who had haptic feedback and a stereoscopic visual display with high refresh rate performed a task much better than those subjects who had a desktop display without the lower fidelity devices.In a similar fashion, anything detrimental to the quality of the devices, such as latency [267], has a negative impact on the user performance in object interaction.
The above techniques illustrate different object interaction models, which are not necessarily compatible with one another, thus implying different implementations.The difficulty of having a single framework that encompasses all possible interaction models is increased when the dimension of simultaneous object interaction by multiple participants is introduced.In [131], it is argued that the limitations of technology constrain collaborative object interaction amongst users within a desktop environment.The study illustrates the impact caused by the limited Field-of-View (FOV) associated with desktop displays on a user"s perception towards what another user is able to see of their surroundings, requiring more social interaction between users.A solution to this particular problem is making a user"s FOV visible to remote users so they may discern what the other is seeing [88].The difficulty of collaborative object interaction results from the dependencies in the distributed data model, the rendering process, and the supporting network infrastructure along with its associated mechanisms, such as Area of Interest Management (AOIM).In [166], a VE system is presented where the main aim is collaborative object interaction.This is achieved by combining the users" inputs together within an interaction model governed by the laws of physics.In addition, there are three visual metaphors to aid the user with their cognitive load allied to collaborative interaction without haptic feedback, but no user study was carried out to evaluate the effectiveness of the metaphors and their impact on both the sense of Presence and Co-Presence.In addition, the system has issues of scalability due to the distributed physics model and its requirement for total reliability of in-order delivery of data.To address the shortcomings of the complexity of the physics model, [187] presents a model that decomposes object interaction into four different phases [23].Based on the model, a framework is presented where the Awareness Module provides the user with visual cues to aid in the assessment of what is happening, whilst the Combiner Module takes into account all the position updates from the users manipulating an object and affects the object"s final position on the combined input.This approach is less accurate than the approach based on a physics model, but the performance and scale is much improved.

Locomotion
When considering locomotion, teleportation provides an instantaneous travel mechanism from one point to another.However studies, such as [26], demonstrate that users may feel disoriented when deprived of spatial awareness during the trajectory of travel by having a user jump immediately to their destination.So although teleporting would provide the shortest means of travelling, it is the least sympathetic to the users, possibly due to the lack of a counterpart in the real world.Although teleport is unnatural, there are many VE systems that support the notion of instantaneous travel by provisioning the user with artefacts such as teleport devices or/and mechanisms, as in the case of locales in the Diamond Park environment [4] and many online games, such as spells in Everquest [86].Consequently, it may be necessary to provide supporting user interface paradigms to counter the effect of disorientation caused by instantaneous locomotion.In any case, there are many forms of locomotion, which presents an interesting challenge to achieve a unifying framework that encompasses all possible scenarios.

Navigation
Navigation is probably one of the most common interaction activities undertaken by users within a VE.There is a rich variety of ways in which navigation can be carried out, depending on how direction is established and the speed at which travel is undertaken.An overview of possible techniques is given in [174].Some of the navigation techniques require a selection operation of the target destination, thus many techniques use selection mechanisms and combine them with a particular means of locomotion.
It is hard to assess the most effective navigation technique for a VE and how it fits into the user"s cognitive model [102].To distinguish between the usability of each technique, [26] proposes taxonomy of virtual travel techniques, along with quality measures to assess their usability.
A testbed evaluation study of basic interaction techniques [25] yields the following useful recommendations for navigation design in VE systems:  Navigation involving the user in steering the movement produces the most intuitive interface and can be mapped onto the user in one of three ways, direction of the head, direction of the body, or hand gesture.These techniques demonstrate a higher level of precision and control of movement;  Navigation based on target selection, such as ray-casting, may have an impact on the design of the VE to compensate for the inaccuracy of the technique;  Navigation based on manipulation techniques, such as HOMER and Go-Go interaction, should not be used in VEs where travel is frequent and usability times are high, due to the resulting discomfort;  Any navigation technique that does not have cognitive mapping to physical travelling may perform worse than the more natural techniques.This property is not exclusive to three-dimensional VEs, as users within text-based Multi-User Dungeons also experience disorientation whenever confronted with non-Euclidian spaces.
With navigation, an important aspect is localisation information such as the World In Miniature (WIM) interface [217,186].The concept consists of the user having a smaller 3D miniature of the environment that allows them to see and select their destination without suffering from any occlusions to their line of sight derived from the structure of the model.Another potential navigational aid sees the user empowered with the ability to see through obstacles (e.g.: walls).The effectiveness of using transparency as a navigational aid was studied in [59], which demonstrated that the method did improve users" navigation.The same study also validated that providing the user with the capability of having a bird"s-eye-view yielded even better results than using the transparency mechanism.
Although there are three dimensions to a VE, most of the navigation is done in two dimensions, but one may wonder about the effectiveness of any method based on maps when considering navigation in all three dimensions since the user experiences greater difficulty in gathering and assessing spatial information [298].
The navigation is a semantic-rich model with various subtleties that have an impact on the user"s experience while travelling in the VE, thus it is important to consider the associated cognitive issues [75].The implementation of the model is non-trivial and usually is tightly coupled with the data model of the system along with the related input devices.This is why it is easier to adopt Virtual Reality Peripheral Network (VRPN) [256] as a generic device library and build the additional navigation semantics.

Emotions and Body Language
The inclusion of behaviours in an avatar aids the sense of co-presence of others.This observation was evidenced in the second experiment by [42] where avatars with dynamic facial expressions and gestures had a significantly more relevant impact on co-presence than their static counterparts.Human social communication relies significantly on intricate emotional and body language in the form of non-verbal communication channels [119].Throughout the dialogue there is significant body language that the avatars display conveying more information on the context of the conversation.There is some research in this area, concerning autonomous avatars [40,26,22], where the avatars assume characteristic postures and fidgeting that normally goes unnoticed until people are made aware of these signals.The approach consists of providing some intelligence to the avatars, such that they may evaluate the various stages of interaction of the user with their surroundings, producing the corresponding behaviour.The final result lends more credibility to the overall illusion, since the avatars seem more alive, thus enhancing the sense of presence of a user.In [184] a similar approach is taken, but the focus is placed on equipping the avatar with emotions that reflect the tone of the messages being typed by the user, providing more information and thereby enriching conversations.
The work of [262] also enables avatars to react autonomously to the context of a conversation, but the focus is based on simplified gestures such as gaze direction.However, the supporting system is dedicated to the BodyChat behaviour framework and is not transposable to another VE system.Visual cues affect the avatar conveying non-verbal social cues for users so they may discern the situation and act accordingly [220].

III. DEVICES
The devices are responsible for providing the sensorial data to the user"s senses based on the VE"s state and the event data collected from the various input devices.When the sensorial information validates proprioceptive signals [241], then the user will experience a greater sense of presence [242].On the other hand, any conflicts may result in what is known as cybersickness, which may also be caused by numerous other factors [264].Most VE systems have recognised the rich variety of devices and thus have an abstraction that shields the system from the operation of a particular device, in similar fashion to device drivers in operating systems.The VRJuggler [21] is a system that has total device decoupling as a primary aim in its design with an elegant design based on device proxies [114].Other approaches have considered only input devices such as the Device Unified Interface (DUI) presented by [135] for general-purpose 3D interaction.This design was further extended by [107] as the Mapper module that not only provides a generic device abstraction, but also provides semantic layers that allow automatic selection of input devices based on navigation system configuration.Although the usefulness of both design approaches can be appreciated, the implementations of both approaches are constrained to particular VE systems.The adoption of the designs into an existing system is not feasible, considering the design incompatibilities, thus any modifications will most likely require structural changes making the implementation unfeasible.This is particularly relevant in the case of Mapper where semantic abstractions are included in the design, which has a greater impact on the remainder of the system.Another approach is [95], which proposes an object-oriented framework where the devices, interaction techniques and environment objects are mapped into objects.However, it compromises the design with the definition of an environment object and the coupling of interaction techniques with the device abstraction.A better solution is the VRPN framework, which was designed as a library to be integrated into a VE system by providing a clean abstract interface to any device.The VRPN solution also provides a flexible architecture that can be distributed across the network, thus the devices are not required to be collocated with the hardware running the system.
To better illustrate the importance of providing a unifying framework to the devices, the following subsections provide insight into the different types of input and output devices, along with some of the technical for VE systems.

Input
The input devices are the way that a VE system can discern the user"s position, orientation, and intent of interaction.The way this is achieved by the system is not only through the use of buttons/switches and joysticks (instances of devices commonly used for input), but also by means of trackers, which are very much dependent on some supporting technology: Optical (such as the HiBall [269,270]), Magnetic, Mechanical, acoustic and inertial.
The sampling rate of the data received from the tracking device is high, which can result in errors, which coupled with measurement latency, leads to cybersickness.Therefore smoothing and estimation techniques are used to make the task manageable, ameliorate such errors, and to achieve real-time performance.Techniques used to achieve this are Kalman filtering [162], Grey system theory [276] and/or double exponential smoothing [263].A comparison between Kalman and Grey filtering [277] yields little difference except the former is more susceptible to jitter, whilst the double exponential smoothing at little cost in accuracy outperforms Kalman by 135 times.
None of the tracking technologies are without disadvantages, thus another alternative is to combine solutions to leverage their strengths and counter their weaknesses.This is the case of the IS-900 [273] that combines acoustic with inertial technologies.Aside from locating the position and orientation of the user, there are other tracking technologies to track the user"s body.In the case of hands, the various techniques described in the survey [247] can be categorized into either intrusive or non-intrusive, depending if the user is required to wear a glove or not.

Output
Three years after the presentation of "Ultimate Interface" [248], the first Head-Mounted Display (HMD) was presented [249].The original HMD was cumbersome due to the tracking contraption that hung from the ceiling to track the position of the user, whilst the rendering was done upon miniature Cathode Ray Tubes (CRT) that would superimpose the virtual image upon the real world view.Even with the advances of the technologies pertaining to HMD, there remain limitations with the device due to display resolution, latency and the field-of-view.These limitations may result in cybersickness, such as in the case of latency between the tracking and display [83].
Instead of having a different display to each eye to give the sensation of depth, another approach is based on various stereoscopic techniques [236] using a single display.The cheapest solution is to provide lightweight glasses with two different colour filters (usually green and red) and render two superimposed images, each with a particular colour so each eye builds the 3D image.This can also be achieved using polarized filters instead of colour filters, which has the benefit of allowing colour images.A more sophisticated approach is to use active "shutter" glasses which filter the left and right views accordingly by polarizing each eye-piece in turn as the left and right eye views are alternately projected onto the display.
Another possible form of visual display is to have a room where each surface, such as the wall, floor and ceiling, has projected onto it the VE with the appropriate perspective corrections and synchronization so the result is a single view across all the displays -CAVE TM [60].The view frustum is built based upon the position and orientation of the user whose position and orientation is tracked by the system, this leads to possible distortion of perspective to any other users who are not tracked by the system.To counter this problem, [3] proposes extending the concept for single viewer stereoscopic image rendering to accommodate an additional pair of eyes.A drawback of such an approach is the reduction in the frame rate since the interleaving is no longer just between the left and right eye of a single user, but includes the interleaving of the other user"s eyes as well.This approach was implemented with a Responsive Workbench [146] and whilst feasible, the hardware limitations compromise its usability.
Although most of our sensorial input derives from the visual senses, [28] demonstrates that audio has an important impact on the user"s experience within a VE.As a result, it is necessary to consider the minimal quality requirements to ensure a satisfying experience.Whilst equipping a user with stereo earphones is a possibility, a richer experience is achieved by rendering the sound waves within the environments, but such an approach usually results in dedicated VEs systems such as Digital Interactive Virtual Acoustics (DIVA) [164].
The cost associated with a CAVE as a device remains prohibitively high and beyond the accessibility of the mass market.Another more cost effective approach is to consider multiple display viewing, where the VE is rendered across several displays combined with the use of PC clusters.However, the degree of immersion is reduced and the underlying system is built with the primary goal of rendering synchronized views across multiple displays, such as in the case of the distributed architecture presented in [89].A particularly interesting technology to consider is the Virtual Retinal Display (VRD) where the display is projected directly to the retina of the user [85].

Other
The sense of touch can greatly increase the users" sense of presence within a VE [136], which may result in increased task performance [163].A successful approach has been passive haptics, which consists of providing physical artefacts for the users to physically touch whilst seeing their virtual representation.However, such an approach reduces the freedom of creating alternate realities since a physical artefact is a contextual constraint.To benefit fully from the advantages of touch and keep the general purpose of VEs it is necessary to use active haptics or force-feedback haptics [211].These devices are based on a physics model of the VE and monitor the forces exerted by the user.Depending on the properties of the model, the device then exerts reaction forces, giving the impression to the user that physical interaction is taking place.The study [172] suggests that haptic feedback allows users to perform tasks in much the same way as in the real world.
The benefits of tactile feedback to identify objects can be reinforced with thermal feedback, as reported by [143].However, the devices do not have sufficient gradient resolution and there are difficulties in reflecting immediate changes, for instance when the user grabs a cool object and then a warm one in quick succession.

IV. RESOURCE MANAGEMENT
A resource takes on a different meaning depending on a particular context within the VE system.Therefore, a resource may belong to one of the following categories:  Data Objects (Content).A VE is populated by a vast number of objects, which require the support of a database.These objects can be either passive (e.g.: table, painting, wardrobe, etc) or active (e.g.: avatar) depending on their capability of influencing the surrounding environment.
However, an object can also be just a texture or a behavioural script.A fundamental truth of cyberspace, as described in [238], is the fact that the alternate reality exists regardless of whether any users are interacting with it, thus providing object persistency;  System Objects (Code).In systems that allow for dynamic extensibility at run-time, the code becomes a resource that can be retrieved, integrated into the system and manipulated.The retrieval of a code resource entails a distributed infrastructure along with the appropriate mechanisms to support accessibility and retrieval;  Events.An approach to achieve flexibility within a VE system is to decouple dependencies caused by component interfaces, by adopting abstractions for communication, such as an event model.Since events are time dependent and affect the consistency of the integrity of the datamodel supporting the VE, event distribution and synchronisation are important mechanisms to be supported.Irrespective of the chosen categorization for resources within a VE system, the management mechanisms usually require repositories where the resources are stored and retrieved.These repositories require the support of namespaces, where logical names can be translated into system based resource handles.The identifiers should be unique within a well-defined naming context (scope) to avoid identity collisions and ambiguity in the resource retrieval.It is possible to combine namespaces together to construe logical names that are relational.In addition to the naming mechanism, it is necessary to support the lifecycle of resources, which initiates with the process of their discovery and retrieval.
The Rendering and Network are fundamental services that are part of any VE system.However, there are a wide number of other services with differing levels of granularity according to a particular implementation or design choices.These services can be shared across the system or be replicated in different sub-systems, as in the case of spatial management for visualization and interest filtering of network data transmission.In this case, a development choice may be to adopt a common service to cater for the needs of both the visualization and network sub-systems; however, the most common approach is for each of these subsystems to implement some form of spatial management.
The remainder of the sub-section will present two additional services, which have high semantics, one is Object Ownership and the other is Environment Policies.The functional granularity of these services is entirely for illustrative purposes and different systems adopt differing approaches, despite sharing similar functionality.

Object Ownership
An object, which resides in the database supporting the VE, can be accessed simultaneously by different users.Each user expects to have immediate feedback when manipulating any object.However, this raises a challenge when considering joint object manipulation as ownership transfer within a distributed system takes time, which collides with the real-time requirements of user feedback.
The easiest approach to the problem of object ownership transfer is to have a pessimistic approach and consider that an object has a single owner at any given instance in time.This implies the use of object locks in a pessimistic manner, meaning that unless a user has acquired the lock of the object successfully, they cannot manipulate it.This approach introduces a noticeable lag in the user interaction, as the ownership transfer requires an initial lock request that is embodied in a message sent from the user"s host to the object owner"s host.The remote host will decide if it will relinquish the lock, sending a message with the response.Consequently, it is only after the exchange of two messages, and the response being successful, that the user is allowed to manipulate the object.This approach is detrimental on two accounts.First, it does not scale to a large number of participants.Second, the delay makes it unfeasible to have any real-time object interaction.In the initial versions of Distributed Interactive VE (DIVE) [122], the object ownership mechanism is integrated into the distributed architecture of the hosts by using tokens.Each object possesses a token, which must be acquired by any host desiring ownership.
A different approach is taken with the centralized architecture of Virtual Society [156] where the server keeps track of the ownership of all the objects.However, there are inherent limitations to the pessimistic approach that cannot be countered by careful design or implementation.Therefore, it is necessary to pursue an alternative that involves the user in the processing cycle by providing visual feedback as in the case of the ghost cloning technique presented in [46].The concept is to create temporary translucent copies of the object that accept the user"s changes.If the transfer process is successful, the object becomes solid and all other temporary copies are vanquished, otherwise, the object disappears and the user verifies that some other ghosted object has become solid.
To counter the shortcomings of pessimistic lock transfer, one relaxes the notion of a single owner at any given instance and considers the possibility of multiple divergent states that eventually converge.This allows each user to begin their interaction whilst waiting for the outcome of determining object ownership.However, if the process is unsuccessful and the lock is not obtained, then any manipulation carried out is forfeited.This would mean that the current state has become inconsistent and the system needs to converge to the recognized legal state of the database.This approach was initially proposed for VEs by the Collaborative Immersive Architectural layOut (CIAO) [246] system and is known as optimistic lock transfer.
Although the optimistic concurrency mechanism is more scalable than the pessimistic approach, the former still suffers from significant scale problems and is inadequate considering the impact caused by rollback of database state.An improved approach is for object ownership to be predicted in advance.In the case of PaRADE [206], a single well-known multicast group is established where ownership requests are transmitted.Each host predicts the collision with objects and multicasts the ownership request.An owner of an object receives all the requests and validates the collision times to determine the next owner.However, the burden of communication via a single multicast group results in serious scalability problems.An improved approach is proposed by [165], where hosts in close proximity are aggregated together into a communication group to exchange messages.

Environment Policies
An environment policy represents a set of rules that defines different laws that govern a VE.These laws affect all objects and entities within the scope of a well-defined area.
The concept of environment policies is somewhat alien to most supporting systems, which is evident in the following cases that arise when considering the transition of objects between different VEs:  Non-exportable.An object is non-exportable when it is not recognised by any other VE apart from the original one;  Non-behaviour.The adoption of a common content format to describe objects facilitates the transition of objects between VEs.However, there is no guarantee that the event model of the modelling language is compatible with the event model of the system.Therefore the process of event "wiring" is not automated and in the case of objects that have dependence of external events, incompatibilities in semantic meaning may render an object as inert;  Non-environment.An object can be successfully transferred to another VE and exhibit the correct local behaviour.However, the object does not always demonstrate the correct behaviour according to the rules that define the VE.This results from the fact that the object does not have the necessary set of properties to support the rules.So in the case of a VE supporting gravity, an object may fail to behave correctly because it does not have mass to be affected by the gravitational field.There is no standard set of rules that define an alternate reality.This makes it infeasible for every object to support all the possible rules.Therefore, it is necessary to adopt the concept of the meta-datamodel, where a VE system can add properties to objects to support the behaviours dictated by the environment laws.So in the case of a VE supporting gravity, the system verifies whether all objects possess body mass and if necessary can add the required properties.This approach was a key characteristic that made traditional MUDs attractive.However, within the VE community, the most representative system is Distributed Environment for Visualization Applications (DEVA) [190], where properties are added to objects when required to execute the existing behaviours of a particular environment.

V. SECURITY
In any system, one of the most concerning issues is security and how prone a system is to security breaches.The current state of existing VE systems concerning security demonstrates that it is an area of often neglected.The most prominent security mechanism is a user validation process during a log-on phase.
Although security is a topic of concern in most existing systems, the VE community has neglected to pay due attention to it and most VE systems reflect this with their open trust approach.This is clearly evidenced in the SIMNET system where it is the target that determines if a hit was successful or not.The situation is somewhat different in the games industry where security is a main concern for several reasons [65] that ultimately affect business revenue.In fact, a dogma of online game development is to "never trust the client" [149], which is a reiteration of a lesson learnt during the Habitat experiment [169].

Access Control
Some systems have initiated the process of integrating security within their functionality.In DIVE, it is possible to associate access control with designated elements of the scenegraph in a similar way to Unix Access Control Lists (ACLs).However, such mechanisms require further refinement, since it is not possible to ensure the immutability and uniqueness of user profiles.Consequently this produces unpredictable results.The SPACE access model [11] is a more elaborate approach, consisting of an accessibility graph based on spatial boundaries [29].The transition from one space to another is constrained by the security credentials of a given arc.However, this approach is seriously plagued with scalability and distribution issues, due to the computation involved with the SPACE model.

Cheating and Hacking
Whilst cheating was an accepted fact of life in the games industry, the problem had no significant impact when considering only single player games since the user would be both the perpetrator and only victim.With the creation of VEs, or online games, the problem of cheating has become an issue of concern that either leads to system inconsistency or deteriorates the enjoyment of other players [65].A survey done of players of Massive Online Role Playing Games (MORPG) indicates that cheating is a serious issue and that 77% would like the game companies to take draconian measures against the users who cheat [225].Despite the evidence of the impact of cheating, the product life cycle in the games industry after development, consists of releasing a game and then initiating a cycle of releasing security patches to address security problems within the system.This reflects that the industry has, in the past, failed to understand the importance of security within the design of their systems [201] from the initial stages of the system development.A good overview of existing fallacies, along with the respective cheating mechanisms, is available in [286].
A number of interesting mechanisms have been devised, such as challenging the re-engineering process of communication protocols while minimizing the performance penalties normally associated with encryption.This is the case of [27], which proposes a protocol to counter existing look ahead cheating techniques, based on a cryptographic one-way hash technique.The core concept is for a host to send information regarding their state twice, the first time in secure mode and the second time in plain text, thus allowing a local host to compare the data and validate that no tampering has been made.To ameliorate the performance penalty of such a process, the concept Sphere of Influence is introduced that allows the anti-cheating algorithm just to be employed when players are in the vicinity of each other.However, the performance penalty is not negligible and the communication protocol must provide total reliability within the areas that result from the intersection of the spheres of influence.

System Security
The traditional approach to VE systems is to have a static runtime execution, implying offline time each time there is a change in the supporting code, such as the integration of update patches.A new trend is emerging in the field of VEs where the systems may evolve at runtime, meaning they may accept, modify or replace software without requiring offline time.In either case, the process raises the question of whether a person can trust the source of the new piece of software to be integrated into the current system, and this implies mechanisms to ensure trust and guarantee authentication.A preliminary design criteria [224] has been discussed to be integrated in the NPSNET-V system, but none other has been addressed in the field of VEs.

VI. RENDERING
The purpose of the rendering process is to take digital data as input and produce sensorial output using selected hardware devices targeted to a particular human sense.According to mainstream knowledge, there are five human senses (sight, hearing, touch, smell and taste), but experts vary on the number depending on the definition of sense (Experts agree that the minimal number is nine (touch, smell, sight, taste, hearing, thermoception, nociception, equilibrioception, and proprioception), but some consider up to twenty one senses).
An in-depth analysis of the various rendering techniques is well beyond scope of this chapter, although there are multiple worthwhile resources, such as [90,218] for visual rendering, [109] for audio rendering and [214] for haptic rendering.
From a system perspective, it is important to be aware of the concept of rendering pipelines and their impact on the architectural design.Concerning the visual rendering pipeline, the main processing stages are depicted in Fig. 2. The advances of graphics cards have enabled the Geometric Processing and the Pixel Operations to be directly supported by the associated hardware.A non-conventional suggestion has been to delegate the entire visual rendering pipeline, including the Object Database Processing onto the graphics hardware [MF05].The argument being that all unified data representations have proven impractical so far.However, this approach contradicts the principle of separation of concerns and it suffers from the potential of data overlap as different rendering pipelines and operations would share common information.
A short overview of the stages of the visual rendering pipeline is given in the subsequent subsections

Object Database Processing
The initial stage of any rendering pipeline is the processing of the object database representing the alternate reality to determine the visible objects to be rendered.Considering that the computational costs increase with each stage of the pipeline, it is highly beneficial to have an efficient data structure to transverse the object database and eliminate any objects that will not be rendered.A common data structure used is a directed acyclic graph known as a scenegraph (Transforms the O(n) problem into O(log (n))), which organizes objects in a hierarchy where relational information is propagated along the scenegraph.
The initial scenegraphs were mainly structural based on geometry transformation applied to the relationship between a parent node and its child nodes.Gradually more nodes (ie: sensors, interpolators, etc) and functionality (ie: event propagation between different nodes) were added, thus burdening the scenegraphs with semantics.As a result of non-homogenous nodes, the scenegraph transversals became more computationally expensive and cumbersome [293].This is clearly exemplified with the comparison between Performer [192] and Inventor [212], which both originated and co-existed at SGI.In the case of Inventor, the aim was to have a highly reusable and extensible structure, which made it less desirable than the efficiency achieved by the simpler approach of Performer.
The X3D [290] standard, as its predecessor VRML [291], formalises a file format for a 3D scenegraph that promotes content interoperability.However, there are other alternatives that compete with the standard, such as COLLADA, which is mostly adopted by the game industry.

Geometric Processing
The output of the previous stage results in a list of objects to be processed according to the particular targeted human sense.In a classical geometry-based graphic image rendering pipeline, geometric transformations are applied to the vertices of polygons, or other geometric objects used as modelling primitives.Geometric computations may also be applied to transform polygon or patch surface normals, and then to perform the lighting and shading computations used in their subsequent rendering.The fixed-function transform and lighting hardware, from the end of nineties was replaced by programmable vertex shaders of the recent GPUs

Pixel Operations
The transformed primitives from the previous stage are then rasterized into pixel fragments (or just "fragments") and submitted to operations such as Z-testing, texture mapping, per-fragment shading algorithms, alpha blending and anti-aliasing.
In the past, the fragments may have only been flat shaded or have simple texture color values applied.Today, a GPU"s programmable pixel shading capability permits numerous shading effects to be applied while working in concert with complex multitexturing methods

VII. NETWORK
The infrastructure for data communication is not visible from the perspective of the system, thus it is hardly ever mentioned in any vision for VEs.However, one of the fundamental truths recognised within the field of VEs is crystallised in the primary lesson that resulted from Habitat [169], where it is stressed that cyberspace will only exist if people are its crux.Considering that each person has a terminal host with devices that enable them to interact in the VE, it becomes self evident that all the different hosts need to be connected in some way, independently of the underlying architecture.Although unseen within a VE, meaning it has no virtual representation, the connectivity is provided by an underlying network infrastructure, which provides a rich set of problems that require some awareness to build adequate data communication subsystems.In fact, most developers completely ignore the intrinsic nature of the network and restrict themselves to the socket paradigm [158] with its blackbox approach to network programming.This results in a complete lack of understanding of what can go wrong when connecting all the different hosts.Consequently, VE systems become erratic and inefficient beyond the well-controlled environment of the development testbed, leading some developers to despise the Internet [157].
The adoption of simplicity as a core design principle was crucial to allow the Internet to evolve from a small network between a dozen sites across the USA to the global infrastructure that exists today.This line of reasoning is embodied in the end-to-end design principle [230] that is based on the formalisation of various trends within networking communication regarding data communication between different hosts, where the user applications reside.This principle defends the potential benefits of delegating to the application partial responsibility over the data communication delivery service since the semantic requirements of the application can determine usefulness of the data in case of loss, error, and/or latency.For example, in the case of movement updates, ensuring total reliability with First-In-First-Out (FIFO) delivery is not required because the temporal expectancy of the data is low with the next piece of data invalidating the previous state.Consequently, the simplicity associated with the end-to-end design principle has kept the complexity of the core backbone minimal, which facilitates maintenance and growth.The user also benefits, since new data communication functionality does not depend on its deployment across the network.Within the networking community, the OSI seven layered communication model [80] of Fig. 3 is used as a reference model which addresses the complexity of data networking by breaking the problem domain into different layers (layer label/layer unit).In practice the Internet uses a simplified model (also illustrated in Fig. 3) where some of the layers are encapsulated into a single layer due to the difficulties in isolating some of the functionality such as in the case of the data link and physical layer.
The heart of the Internet is embodied in the Internet Protocol, or more precisely the network layer, with the hop-to-hop routing of data packets between the nodes of the network known as routers.When conceived, the primary concern was for data to be transmitted from one node to another without any constraint of a pre-established path, nor any expectation concerning delivery guarantees since the layer does not provide any reliability, flow control or error recovery.This single connectionless service for data delivery without any assurances is known as the Internet"s "best-effort" service model.However, at its genesis, no one predicted the success of the Internet which now provides global interconnectivity.Today"s market pressures demonstrate that both the best-effort service model and the end-to-end design principle have become inadequate considering the current requirements of the network [15].In fact, the introduction of third party middleware within the network has compromised its transparent architecture [39].

Distribution Models
There are several ways, as illustrated in Fig. 4, to distribute the data from a source to a particular receiver or group of receivers.Each approach has advantages and disadvantages, and some have deployment considerations that constrain their adoption.

Broadcast
The broadcast model consists of a host sending a packet to all reachable hosts across all interconnecting networks.This model presents serious problems concerning routing because of the associated packet implosion.The Internet prevents this problem by having mechanisms on the routers that filter all broadcast packets, not allowing a broadcast packet to be forwarded from one network to another.An initial system that employed broadcast was SIMNET [199], a military simulator network, which proved to scale very poorly and had bad performance when more than a very few hosts co-existed in the network.

Unicast
The unicast model embodies the end-to-end argument, establishing a communication channel between two host machines.However, for a VE that is distributed across any number of computer hosts, the model is not scalable as network resources are finite and globally shared.This is most evident in the case of bandwidth sharing, where the demand may grow exponentially according to the number of participants.This limitation is evidenced in most, if not all, real-time interactive online games where a significant portion of the monetary budget is allocated to ensure bandwidth at the server to support a maximum threshold of simultaneous users.This threshold is significantly smaller when the associated budget does not allow such an over-provisioning of the server bandwidth, such as in the case of the VE systems developed within the research community, for example RING [110] and WAVES [145].The case worsens for those systems that operate solely on the Internet, such as NetEffect [77] and DeepMatrix [72].
Although the unicast model imposes a threshold on the total number of participants within a VE, there is always the need to have a dedicated data channel between two hosts such as in the case of downloading the data files corresponding to the content of the VE [36].

Multicast
The multicast model [78] is ideally suited for group communication, where all hosts that share common interest are grouped together by using the same logical address.Any message sent to the group is received by all members of the group, but the sender does not need to be a group member to send packets.With multicast, the bandwidth requirements grow linearly with the number of participants [96].
The data link layer supports multicast by default, such as in the case of the Ethernet, where the mapping is direct.However, the same cannot be said of the networking layer, as the initial IP protocol did not foresee the necessity for multicast, until it was proposed as an extension by [66].A detailed analysis of the traditional multicast address allocation mechanism is given in [126], which concludes that the introduction of a hierarchical scheme is necessary to ensure the success of multicast since 270 million addresses yields a difficult namespace to manage on a global scale without any supporting structure.The current proposal Multicast Address Allocation Architecture (MAAA) [255] is overly complex with its three composing protocols: Multicast Address Dynamic Client Allocation Protocol (MADCAP) [138], Address Allocation Protocol (AAP) [134] and Multicast Address Set Claim [207].Another proposal is the one provided by the framework [150], which allows dynamic address allocation on a global scale, based on the MASC protocol and the Border-Gateway Multicast Protocol (BGMP) [254].The process of multicast routing is fundamentally different from the point-to-point routing of unicast communication, since the distribution model resembles a tree and the routing process consists of two distinct processes, the building of a distribution tree and the actual forwarding.The building process relies on Internet Group Management Protocol (IGMP) to inform the local router(s) of membership intent and then there is the multicast routing protocol to build the distribution structure.There are many solutions, each with its advantages and disadvantages, thus contributing to deployment problems associated with multicast [79].
Independently of the routing protocol used, there is always a delay from the moment of joining a multicast group and beginning to receive data.This delay may be sufficient to cause inconsistencies within the VE, thus particular care should be taken with management of group membership and its mechanisms [152].To address the latency of grafting and tearing down links to a distribution tree, several proposals have been put forth to address the possibility of subcasting, meaning the co-existence of different subgroups within a single multicast group, namely Router Level Filtering (RLF) [185], BreadCrumb Forwarding Service (BCFS) [288] and Generic Multicast Transport Services (GTMS) [62].
As previously mentioned, the diversity of multicast routing protocols is one of the foundational problems towards wide deployment of multicast.When considering intra-domain multicast, there are a series of proposals, such as Hierarchical Multicast Protocol (HIP) [210] that operates with Ordered Core Based Tree (OCBT) [209] and the Multicast Source Discovery Protocol (MSDP) [103] coupled with Protocol Independent Multicast (PIM) [7,84], but none is the optimal solution.Both Distance Vector Multicast Routing Protocol (DVRMP) [278] and Multicast Open Shortest Path First (MOSPF) [177] suffer significantly from scalability issues, in particular when group membership is sparse, so these protocols are not considered for inter-domain multicast routing.The MSDP complements PIM for the distribution of RP and their respective multicast groups across different domains.However MSDP defeats the intended support for shared trees because the protocol does not handle inter-domain communication of RPs, resorting to source based routing.With Centred-Based Trees, the placement of the core greatly influences the performance of the protocol.In the case of optimal placement, the delay incurred is at most twice as the shortest-path delay [266].This upper bound is contested by the findings in [195] where the additional delay is stated to be at most 45%.Another problem associated with CBT is the possibility of traffic concentration near the core.However, literature has conflicting findings where [68] claims the concentration to be relevant, while [195] dismisses the relevance.The later study is based on a graph model originated from experimental data, thus providing more realistic results than the 50 randomly generated graphs as in [272].The importance of core placement has resulted in various research solutions, namely [63,258] which carries out a static selection of the core based on prior knowledge of the network topology.
However, the volatile nature of the network does not guarantee that the best choice for a core will remain constant over time, thus [81] proposes an algorithm for core migration.This approach consists of having a set of candidate cores, which evaluate their potential performance compared to the current core.In the case of improvement the candidate becomes the new core.While the idea of having a dynamic core placement, with the aim of achieving the optimal CBT, seems to improve performance, some issues remain unclear.As a result of the problems associated with multicast, there has been active research into modifying the basic multicast model by changing the addressing system to utilise a tuple space, such as in the case of Simple Multicast [198], Express [127] and Recursive UNicast TreE (REUNITE) [228].However, none has been deployed, although IGMPv3 integrates the concept of tuple addressing and it is the basis for Source Specific Multicast (SSM) [128], which it is hoped will make multicast commercially viable in the mass market.
Other problems that have proven detrimental to the wide deployment of multicast are caused by missing functionality to support a business model that allows exploitation of the technology [79].Many of the addressing problems, routing and missing functionality have been dealt with in the design of the next generation of the IP protocol, IPv6 [70], where multicast is no longer an afterthought but has been present since the conceptualisation phases.
Although multicast is supported by the infrastructure of the Internet, the distribution model is not readily available.This makes it necessary for hosts to connect to a virtual network that shares the same physical infrastructure.This virtual network uses dedicated routers that can handle multicast between themselves, using tunnels between each other when the network distance is more than a single hop.This network is known as the Multicast Backbone (MBone) [151].Although many VE systems resort to multicast for group communication, deployment beyond the research laboratory or/and dedicated networks presents significant challenges due to the difficulties of integrating and using the MBone.Consequently, some have devised their own mechanisms at the end system to link the multicast islands together across the Internet, such as in the case of the Cyberspace Backbone (CBone) [35] proposal and the more practical implementation of the DIVEBone [93].The DIVEBone is based on the use of a server process that acts as a multiplexer of all messages received from a particular channel and redistributes the messages to all the other channels.By building tunnels between the different server proxies, it is possible to build an overlay network with the last network hop as multicast.There is a penalty in terms of latency and overhead traffic, but no systematic analysis and evaluation based on actual network traces was carried out to evaluate the effectiveness of the implementation.In fact, [57] verified that End System Multicast was viable when considering small sparse communication groups with little overhead when compared with native multicast.A more sophisticated form of end system multicast is the Narada protocol [57], which reorganizes structure of the overlay network based on the results from network monitoring.
With unicast transmission, mechanisms are used to maximise the utility of the data being sent to each receiver so nothing is transmitted which is later discarded.With multicast, the data transmitted is received by more than one single host, thus there must be an overlap of interest in the data to minimise the transmission of unnecessary data.Therefore, the challenge with multicast communication is to devise an aggregation mechanism for receivers that will maximise the data utility across all the hosts of the group, by ensuring the maximum interest overlap in the data.The family of aggregation mechanisms is known as Area Of Interest Management (AOIM) and the various mechanisms are discussed in section VIII.

Characteristics
In [157], the Internet is portrayed as a hideous beast that behaves unpredictably thereby destroying any expectations of any construed network model, independently of how meticulous the networking programming is.These claims result from the frustration of designing and fine-tuning a VE system, in this particular case an online game, so it operates well with high delay.In the particular instance of [157], the implementation failed disastrously to maintain consistency although the measured delay was much less than the projected one.However, the devised network model was fundamentally flawed and as evidenced by [194] it is not possible to devise a model capable of simulating the Internet due to its self-similar nature [41].Traditional modelling techniques are ineffectual in simulating the Internet over long periods of time due to self-similarity, although the Poisson process is deemed feasible for modelling user session arrivals [193].It has been proven by studies [10,196] that self-similarity leads to the overall degradation of the network performance.
Most, if not all, monitoring studies yield similar results concerning the decomposition of network traffic, verifying that TCP is responsible for 83±11% of the total bytes [99] passing through the monitored sites.However, the total number of flows is not as disproportionate since TCP holds only 56±15% of the total number of flows.This indicates that although the increase of distributed applications using UDP modifies the type of flows, they have not had an impact upon the composition of traffic in terms of throughput.As a result, a new categorization is emerging to distinguish not only between the small and large packets, but also between the streams of short and long longevity [16].Considering that the composition has not significantly changed, an earlier study [168] segregated the traffic into the respective applications, and it was verified that the great majority was generated by the traditional protocols associated with the WWW with online games holding only a very small percentage of the total bytes transmitted.
Independently of the network behaviour, the characteristics of the network can be distilled into what affects data communications, namely latency, jitter, bandwidth and reliability.The combination of these characteristics reflects the state of congestion of the network, which in turn reflects the shared state of the Internet across all the data being transmitted at any given instance.

Latency
Latency within networked interactive environments is of great importance since it impacts highly on the overall performance of a system.The property manifests itself in three distinct ways:  Physical Level.This is directly related to the physical means of transportation of data using either analogue or digital approaches.No matter what the physical medium is, there is always latency because transmission of information is not instantaneous [47];  Communication Level.This level includes all the problems related to the network state that increase latency, such as queuing delays and packet loss in routers. Interface Level.This is related to the software component of the network architecture and involves the processing time necessary to pass the data from the physical layer to the application.Normally this kind of latency limits the receiving data rate of an application before dropping incoming packets because the buffers remain full. Fig. 6.Latency impact on a shared virtual environment with spaceships fighting each other in battle.From Player A"s perspective, his opponent has been successfully destroyed.From Player B"s perspective, they managed to survive to live another day Since VEs rely heavily on the underlying network then latency is an inherent problem that may seriously affect the immersion illusion of the end-user.It is important to devise means for reducing its effects.The IP layered model, as depicted in Fig. 3, reflects the structure of most applications.The overhead of layer processing does not improve the network latency, thus the attractiveness of Integrated Layer Processing (ILP) [61].In fact, with Application Device Channels (ADC) [74] it is possible to bypass the Operating System (OS) for read/write operations.The only involvement of the OS is in establishing and terminating data connections, where the associated operations are not time-critical.The approach consists of placing beyond the OS, in the application space, a small communication library that provides the read/write operations.This may seem to imply little gain for corrupting the traditional layered model, but [67] presents interesting results.Another similar approach [6] is to minimise the amount of memory copying when passing the boundary between the OS and the application.By passing pointers at places in memory, rather than copying the data, it is possible to achieve a 50% performance increase when compared to the BSD Unix socket interface [158].However, all these approaches, amongst others, are not readily accessible for developers of VE systems that deal solely with the application layer according to the IP model, beyond the OS.
Latency does not only affect overall performance of the client with overlay packet processing but it may lead to incoherent states of the VE across participating hosts.As an example consider when a user picks an object and the related packet with the event is transmitted to all remainder avatars.Should another user be interested in picking up the same object then that should be prohibited due to its unavailability.However, if the packet is delayed then an incoherent state is attained because two users will have picked the object and both will receive a packet containing information that another entity has performed the same action with the object.Another possible scenario where latency may have a disastrous impact is illustrated in Fig. 6, which portrays a hypothetical game of spaceships where each player"s objective consists of shooting the enemy spaceships, while keeping alive throughout the process.Player A (light grey spaceship) has player B (dark grey spaceship) within its sight and fires a missile that destroys the target.However, due to network latency the packet concerning the firing of the missile arrives after player B has moved position, thus avoiding being hit.In this scenario the world encounters an incoherent state where player B is alive in one simulation view while in the other Player B has ceased to exist.The problem of the shared object and the exploding ship are just two of the types of problems that must be handled in a smooth manner by any VE infrastructure.However, as verified in [157], developing within a controlled environment does not provide any guarantees of correct behaviour and performance when operating over the Internet.
The only way to fully reduce the effects of latency is to avoid transmission of any data, but this is not feasible.There is no ideal solution, but it is possible to combine several techniques, to explore the strengths of each and diminish their respective weaknesses.The reduction of data transmission exploits two basic principles of VEs:  Scoped Interest.A user has a limited perception of the VE at any given instance and this can be leveraged so their host does not require updates from sources that are beyond the user"s scope of interest. Isolation.The user experience is constrained to what is visible in the viewing frustum.It is permissible to have minor inconsistencies between different user"s perception, provided that these differences reconcile so that the state of the world remains coherent and consistent to all users.The end-users have become aware of network latency and its impact on their enjoyment when participating in populated VEs.This is evidenced by the fact that users of online games base their selection strategies for their game server when playing First Person Shooters (FPS), such as Half-Life™.A rudimentary selection strategy is based on the lowest ping value to a server.Nevertheless, the research community singles out latency as one of the main causes of concern [73].

Jitter
Data transmission will always have an associated latency that results from the physical transmission over the infrastructure.Studies have demonstrated that provided the latency is constant the user may adapt and compensate for the latency.
The user compensation adaptation techniques only work as long as the latency is consistent across time.Whenever there is a variance in latency, known as jitter, the user is unable to adapt even if the latency is not very severe.

Bandwidth
A prevailing principle of networked multimedia research is that no matter how much bandwidth is available it will never suffice.Currently, the two highest costs of supporting an online game service are for the customer service and for the bandwidth to assure a maximum number of simultaneous participants.Network technology continues to expand the limits of bandwidth, and network operators continue to overprovision to compensate for the lack of network Quality of Service (QoS), but the excess is steadily drained.
An increase in bandwidth does reduce data transmission time, but it does not make any impact on the propagation delay.Bandwidth influences the architecture of a VE and its availability seems to be inversely proportional to the number of users that have access to the system.The reason for such an imbalance is purely financial.At one extreme, there is the global connectivity of the Internet, being massively shared amongst millions of users so the bandwidth available to each user is quite low.The low access threshold associated with the Internet due to it being practically free causes the growth of the user base to be exponential, consequently keeping the bandwidth a scarce resource.At the other extreme, there are dedicated high bandwidth networks used in exclusive environments such as the trans-European project Visinet [154] and the Trans-Atlantic virtual research environment [176] where in both cases the user base is limited to the research team.
The problem of bandwidth is tightly coupled to how much information may be present on a given branch of the network at any given time.When considering the IP protocol [52], all information is transmitted by means of data packets.This implies that any network, or subparts of it, has a maximum capacity for the presence of packets in its router queues, both incoming and outgoing.When this threshold is surpassed then we have congestion, leading to packet loss which, in extreme cases, may lead to a collapse in network performance.The latter situation means that sent packets have a higher probability of not being delivered, being dropped by some queuing mechanism along the way.Thus there is the need to alleviate the quantity of packets transmitted by temporarily refraining from any transmission, this is known as congestion control mechanism [142] and it is inherently part of TCP and a requirement of any widely deployed protocol based on UDP.Clear evidence of what occurs when applications do not respect the need for throttling their transmission rate can be found with the initial version of Doom in death match mode.The game engine was very promiscuous as regards the network, allowing each host to flood the network with packets at frame rate and, without any congestion control, the packets were getting lost and the games became inconsistent across all participating hosts.In addition, all the remaining networked applications within the same subnet were gradually starved of the network resources since congestion was never alleviated and their own congestion control mechanism kept them from transmitting any data.

Reliability
Reliability measures the guarantee of a packet being delivered from one host of the network to another (remote) host.There exist two types of factors that determine the reliability of a network:  Packet loss.The network loses packets at the routers because either the packet has its Time To Live (TTL) reduced to zero or the router cannot accommodate the burst of traffic and is forced to drop packets.In the former case, the TTL of packets expires due to routing mis-configuration.In the latter case the router is receiving packets more rapidly than it can process them. Packet corruption.The packet arrives at the destination, but for some reason (mostly physical) it has been modified since its initial transmission.In this case, the Cyclic Redundancy Check (CRC) results in error and the packet is simply rejected.The transport protocol may issue a control packet notifying the source to send the data packet again.
A compromise between latency and bandwidth must be achieved to satisfy the requirements of the system.The main issue is to analyse what data will circulate the network and if its nature allows for the loss of packets or requires reliable delivery 7.2.5.Congestion Congestion reflects the state of the network and is an important property that is often overlooked or completely neglected when designing VEs.The state at a given instance is characterised by the state of each queue within all the routers of the network.The congestion phenomenon consists of queuing problems at the routers, resulting in packet loss because new arrivals are discarded because of a lack of resources; these discarded packets may consequently result in transmission of control packets and ultimately the retransmission of data packets, clogging up the network with additional packets.It is the responsibility of the data protocols to detect the packet loss, thereby reducing their transmission rate.
The TCP congestion control algorithm, which adopts rapid rate reduction on packet loss and slow rate increase in the absence of packet loss, is used as the reference for congestion control mechanisms.Although simple and elegant, a data connection using this congestion control mechanism relies on the good behaviour of every other connection to adopt a similar strategy; otherwise the particular connection may continuously recede from transmitting data because some application refuses to reduce its data rate.In the Internet, routers may incorporate mechanisms to enforce congestion awareness to data connections that do not reduce their data rate, by dropping packets.These mechanisms are based on Random Early Drop (RED) algorithms [97], which continue to be an active area of research.However for multimedia applications based on video and audio transmissions, where the data rate is high but constant, congestion mechanisms degrade significantly the quality of the stream, therefore an alternative approach is to adopt reservation strategies such as Resource reSerVation Protocol (RSVP) [292].
Even though the graphics community rarely acknowledge congestion, it is a main focus of any protocol research done in the network community.In fact, Internet Engineering Task Force (IETF) will not endorse any reliable multicast protocol that does not possess a TCP friendly [92] congestion control mechanism.However, recently [30], the feasibility and effectiveness of rate fairness have been placed in doubt, with flow fairness based on cost being considered more appropriate.

Protocols
Protocols become relevant to a VE system beyond the transport layer as illustrated in Fig. 3.The most common baseline protocols used are User Datagram Protocol (UDP) (connectionless data communication) and Transmission Control Protocol (TCP).There are advantages and disadvantages concerning each one of the transport protocols, but the lack of performance, flexibility and control of TCP make UDP the only viable design choice.However, adopting UDP entails the use of development resources to ensure the resulting protocol is TCP-friendly and meets the data transmission requirements of the VE system 7.2.6.Reliable Protocols The Internet"s best effort service model, leads to packet loss and packet corruption, delegating to the protocols the responsibility of countering the negative effects and ensuring reliable delivery.In the unicast communication model, the TCP protocol ensures reliability based on the use of transmission buffers with a feedback policy.The reliability mechanism is intrinsically intertwined with the congestion control mechanism.A feedback mechanism also regulates the flow control mechanism based on a sliding transmission window.Most unicast flows with reliability properties adopt similar techniques.
As regards multicast, achieving reliability is much harder than unicast.There are two main approaches to detecting loss and initiating the process of retransmission, receiver-based or source-based.A careful analysis between both approaches [257] has demonstrated that the receiver-based approach is better than the sender-based approach on two accounts, it scales better as the number of receivers increase and has greater throughput.Independently of the approach taken concerning retransmission, the multicast transmission model raises significant challenges that affect the scalability of a protocol:  Feedback implosion.The problem of scale between sender-based and receiver-based is clearly evident in how the packet loss is detected.In the case of sender-based, positive acknowledgements (ACKs) are used, which leads quickly to an architectural bottleneck on the source as the number of receivers increase.Consequently, the source can be led to a position where significant acknowledgement processing will be detrimental to the other processes in the system.Another drawback is the fact that the source needs to keep track of all the receivers within the group, which breaks a core design premise of multicast.The ACK implosion makes sender-based approach unfeasible for VEs.Although receiver-based approaches using negative acknowledgements (NAKs) suffer less from the feedback implosion, there is the cost of a small delay that is incurred until the source is aware of the loss of data.To further ameliorate the feedback implosion, there are two main techniques adopted in receiver-based reliable multicast.The first is NAK suppression [98,182] and the second is NAK aggregation [216,208].With NAK suppression, each receiver waits a random amount of time before multicasting the NAK.
Receiving an equivalent NAK from another receiver will make the receiver suppress its own.With NAK aggregation, each node in the multicast routing tree aggregates the NAKs received before sending the result towards the source. Retransmission.The source receives feedback from a receiver that a packet is missing.The response may be either the unicast transmission of the packet to the receiver or the multicast retransmission to the group.Each approach has its benefits and costs.However, rather than having a global recovery policy, it might be convenient and more efficient to delegate the recovery mechanism to other network elements [160], such as routers and the receivers themselves.This approach is denominated as local recovery, where a network element retransmits a data packet if the local cache can satisfy the request.There are two variants to local recovery.One distributes the server workload amongst other servers within the network that have the sole purpose of caching data packets and retransmitting them when necessary.The Log-Based Reliable Multicast (LBRM) [140] is a clear example of server-based local recovery.The other approach distributes the workload with the receivers themselves, such as the case of Scalable Reliable Multicast (SRM) [98].
Although the server option has the potential to be more efficient if co-located with the links that exhibit loss, the static deployment seriously compromises its effectiveness as the network is highly volatile and there may be changes in the loss characteristics [287].In the case that processing can be delegated to the network for the purpose of reliable multicast, the Practical General Multicast (PGM) is a viable solution for a single source with multiple receivers, where data and NAKs are stored at the routers for the purpose of retransmission and feedback aggregation.However, PGM is not constrained by the need for network support, allowing for incremental deployment.
An important dimension to any protocol is the TCP-friendliness, thus supporting congestion control mechanisms.In the networking community [175,265], the concept of multiple multicast groups has been proposed to handle flow and congestion control.However, the approach is most appropriate for streaming sources of non real-time content.This constraint, coupled with the fact of the increased cost of signaling between the multiple groups makes it unfeasible to adopt in VE systems, except for the transmission of geometry and other static resources.Another approach is proposed by PGMCC [208], which is based on the work of PGM, adding support for congestion control.The method is based on the selection of a group representative that will establish a logical link with the source using a similar window-based congestion control mechanism to TCP.Thus, contrary to most popular reliable multicast, the group representative will provide positive acknowledgements that will improve the response time of the sender to loss.The group representative is selected as the receiver with the worst throughput and constant monitoring allows subsequent changes to this selection to reflect the current network state.
A well-known reliable multicast framework is the SRM, which was initially aimed to support shared whiteboard applications.It is based on a NAK feedback mechanism with rudimentary local receiver based recovery.However, the recovery mechanism is based on scoping, which makes it prone to unnecessary packet processing by receivers.The DIVE system adopted the implementation of SRM to support the group communication, but there were problems in the TCP-friendly behavior and since then a custom derivation has been developed [183]

Other protocols
Beyond the transport layer, other protocols belong to the application and are embedded with semantic connotation associated with the data being transmitted, such as the Real-Time Protocol that aims to support continuous rich media streams, such as audio and video.
One of the most well-known protocols associated typically with VEs is the Distributed Interactive Simulation (DIS) protocol.The aim of the protocol is to support the distribution of real-time state across multiple hosts participating in a VE.Between hosts, there is a flow of data and the minimal unit of data being transmitted is designated as a Protocol Data Unit (PDU)s, and there are a total of 27 different PDU.However, most DIS compliant systems rely on 4 PDUs: Entity, Fire, Detonation and Collision.

VIII. SCALE
The core principle of any scale mechanism is rooted in the capability to leverage the perceptual limitations of the human being and their cognitive models, thus minimizing what is needed to convey an immersive experience of a shared alternate reality.In the real world, a person is aware and interacts with only a small portion of the environment at any given time.The boundaries of awareness are confined by a person"s perceptual limitations, but this is complemented by the inherent mental models that provide a contextual experience for the person.
There are multiple forms of scale mechanisms (ie: receiver network interest that limits a host"s interest in the overall data traffic to only what is necessary to ensure presence and co-presence), each affecting different properties of the VE system.However, the different mechanisms share significant overlap and operate over similar data structures, implying an unnecessary expenditure of resources.The rest of this section addresses different mechanisms that contribute to the overall scalability of a VE system, namely the network, visual rendering, content management, and level of detail.

Network Scale
According to the special report [18] from the First Joint EC/NSF Advanced Research Workshop, massive scalability is one of the major research issues for VEs.Although much has been achieved in VE research, the maximum threshold of simultaneous users is a few hundred at most.Online games have surpassed the research threshold and currently support a few thousand simultaneous users, but this is achieved at the expense of significant investments in provisioning for the necessary computational and network resources and is not due to an intelligent linear scalable mechanism.

Sampling
The illusion of a shared experience amongst multiple participants requires the corresponding hosts to exchange data across the network.However, the simplistic approach to extend DOOM to work across a LAN clearly demonstrates that network subsystems play a crucial role in the scale of a VE.In the particular case of DOOM, each keystroke of a host was communicated to all the other participants, quickly saturating a LAN, leading to a congestion collapse.
The only approach to counter the flooding of data is to reduce the amount of data.The most common adopted mechanism is the sampling of the data stream, which consists of devising a model that allows for sending less data and that calculates the missing data.In the case of the DIS, the dead reckoning mechanism uses a physical model of Brownian motion to represent the likely position of entities.Each host has a model for every remote entity, calculating the state at each instance, which is based on velocity, orientation and acceleration.Although there is no need for transmission of data, the state of an entity may change based on user input, which means that the corresponding models held by remote hosts are invalidated.To counter the problem of state deviation, every host keeps a model representing their own state.This allows for the host to detect when a state deviation occurs between the actual state, based on user interaction, and the model.Should the deviation exceed a predetermined error threshold, then an update of the correct data is distributed to all the remote hosts to synchronize the respective model.To avoid the delay that may exacerbate the error of the deviation, a sampling rate is established for the transmission of the correct state.
The problem with sampling is the trade-off between transmitting data to ensure the correct model and impact caused by state deviation.The latter causes a teleporting effect, which may disconcert the user if their cognitive model cannot assimilate the correction.Thus a few methods exist to counter the teleporting effect by smoothing the difference between the modelled state and the updated correct state, such as [213].

Receiver Interest Management
An important scale mechanism is to manage receiver interest to ensure that each receiver receives only the data that it is interested in.Those receivers with similar interest are aggregated together into the same group communication.This approach maximizes the efficiency of the data transmission.In [152], a model is presented describing how receiver interest is considered in the management of group communication.An adaptation of the model is illustrated in Fig. 7.The relationships between the various elements may be categorized into three tiers:  Naming.This makes up the Application layer and is responsible for interconnecting it to the Transport layer.A namespace is associated with the application datamodel, so that the entities are mapped to the appropriate Flows. Mapping.This is responsible for mapping the data flows to the network resources available, taking into account the associated cost to the system. Forwarding.This corresponds to the actual distribution of the data across the network.This process does implicit filtering of the network so that only the relevant hosts receive data.In the case of multicast, some host filtering may be necessary since 100% receiver interest across all hosts is difficult, if not unfeasible.Research in Area Of Interest Management (AOIM) has yielded multiple solutions, of which the most common can be aggregated into five different categories as illustrated in Fig. 8.The static partitioning of the VE, as in [179], relies on the spatial division of the environment into fixed sized cells, where each one has associated a multicast group.An entity transmits and receives to the cell in which they are located.To ease the transitioning between cells, the entity registers to listen to the cells neighbouring their own.The underlying principle of dynamic spatial partitioning is the same as the static spatial partitioning.The partitioning is done when the capacity threshold of a cell is exceeded, thus prompting the subdivision into smaller cells.
In the Diamond Park experiment using the SPLINE system [33], the notion of locales was introduced.The VE is segmented into non-regular regions denominated as locales.In addition to a multicast group, each locale can have associated with it a unique coordinate system thus producing interesting effects as a user navigates/teleports between regions.
A different approach is taken with Model Architecture and System for Spatial Interaction in VEs (MASSIVE) [112], using the spatial awareness model.The simplest implementation approach is to adopt a client/server architecture, where a server oversees all the auras from all the entities and when an aura intersects the nimbus of another entity, the server indicates to both entities to share the same communication group.
With the subscriber/publisher region approach, an entity that is a source of updates publishes a region that other entities may listen to, provided their subscribing region intersects the published region.The data distribution [178] of the High Level Architecture (HLA) [221] adopts the subscriber/publisher region model.

Content Management
The total number of receivers affects the scalability of the VE.Another dimension to consider, which affects scale, is the size of the database supporting the VE.The size of the database is governed by the number of entities and the corresponding geometric detail of each entity.The aim is to support large databases that exceed the capacity of the local client"s resources, thus it is necessary to have mechanisms supporting dynamic content management.The mechanisms are based on a three-tiered framework, which consists of the following three operations:  Compression.To maximize the data transmission, the geometry is compressed;  Pre-fetch.A selection mechanism governs the pre-fetching of entities according to the particular interest of a user.The selection shares functional similarities with the Area Of Interest (AOI);  Cache.The cache allows for optimization of the pre-fetching operation by avoiding data transmission from the server, if the entity resides in the cache.The operation of the cache should not rely on traditional renewal policies and adopt more intelligent policies that take into account user cognition.
The geometry transmission normally exploits the advantages of multi-resolution meshes [137,232] to allow progressive transmission of data [120,51].
The [222] proposes a solution based on the three tiered framework that supports geometry transmission based on the demand of the client hosts, with graceful degradation and smoothing of oscillation.The data transmission can be improved by adopting a scheduler which operates according to a policy, such as the Priority Round Robin (PRR) [105] or the look-ahead policy of [189].

Visibility Culling
The complexity of a database containing the VE, either part of it or all of it, may be overwhelming for the rendering pipeline.Complex scenes are highly desirable, but not at the cost of rendering at non-interactive frame rates with low quality because the database traversal takes too long going through all the objects.However, when looking through a camera in the real world, not all objects are visible, thus the database transversal can benefit from additional information concerning visibility to reduce the final set of polygons given to the next stage of the pipeline.
The usual approach to visibility is decomposed into two stages, the preprocessing and the culling.The former is done offline and builds structures to provide visibility based on spatial information, whilst the latter uses that information to exclude objects from the set of objects to be passed along to the 3D Polygon processing.The culling operation is composed of the following three forms:  View-frustum.If an object is totally outside the view frustum then it may be automatically discarded;  Backface.All the polygons belonging to a visible object that are not seen by the user may be excluded from the rendering process;  Occlusion.Objects and/or polygons within the view frustum that are occluded by others in the foreground are excluded; Both the view-frustum and backface culling are the easiest forms to support complex VEs with acceptable interactive rendering [90].This first is achieved by pursuing a coarse approach to polygon culling that is based on the careful spatial organization of the VE.The Binary Space Partitioning (BSP) [100] is a simple effective approach of segmenting the n-dimensional space into hierarchical regions using n-1 dimensional hyperplanes.As the result is a set of sub-regions, it is feasible to perform set operations [181].The supporting data structure to store the BSP is a binary tree, where each node corresponds to a region containing a hyperplane that divides the space into two sub-regions corresponding to the node"s children.A node without a hyperplane is a non-divisible space and is termed a cell.In [180], an algorithm is presented that projects a BSP tree in object space into a BSP tree in screen space, thus facilitating the process of ordering and culling.The BSP was hailed as the great innovation in the gaming industry with the release of Quake, which allowed more sophisticated VEs at interactive frame rates.Backface culling is yet more simple to implement, and is used to ascertain whether a surface points toward (and thus might be visible) or away from the user.
A further approach exploits the occlusion between objects and polygons.Such an approach is more sophisticated than the previous visibility mechanisms (backface culling and view frustum culling), which implies the methods are more computationally intensive.Therefore, best results are achieved in highly occluded VEs.A coarse classification used to characterise the occlusion of VEs is to consider them as either sparse or dense.In the case of densely occluded environments, such as interior architectural spaces, numerous methods revolve around the approach of partitioning of the environment into cells and linking portals [144].The cells are polyhedral volumes of space, whilst the portals are two-dimensional polygons connecting cells together forming an adjacency graph.The initial concept was not aimed at the optimization of complex scene rendering, but addressed the global visibility in its entirety, thus a depth first traversal of the whole adjacency graph would be made.Although the same principles can be applied to occlusion culling, the aim is to identify efficiently those polygons that are not visible and thereby avoid submitting geometry to the rendering pipeline.[8] proposed combining the concept of Potential Visible Set (PVS) where associated with each cell is the list of visible neighbouring cells.The computation of the PVS is usually done offline and it is based on a conservative overestimate of what is visibleconservative visibility [8,259].The method then relies on some raster technique such as the Z-buffer to ensure correct rendering.The underlying principle is that a PVS is substantially less computationally expensive than determining the absolute visibility set and the total number of polygons is only negligibly greater.This is evidenced in [259], where the concept of [8] is extended with an analytical calculation of the exact PSV for each cell.To avoid the overhead entailed in the computation of the PSV, [155] proposes a variant that allows for the PSV computation to take place in real-time rather than offline by using the coordinates of the portals projected onto screen.As the adjacent graph is traversed, the intersection of the aggregated portals is used.This approach makes it feasible to achieve the necessary frame rate to support interactive experience and since the computation is done entirely at runtime, it is feasible to visualize the effects of modifications as they take place.
The Hierarchical Z-Buffer (HZB) [116,117] is an occlusion mechanism that combines together an octree in object space with a hierarchical z-buffer in screen space.Although the algorithm operates simultaneously in object and image spaces, the lack of graphics hardware support enforces the sole use of software rendering.This limitation is addressed by the Hierarchical Occlusion Map (HOM) [295] method, which shares similar principles to the HZB, but aims specifically at exploiting the capabilities of graphics hardware.This is achieved by segregating the visibility assessment into an overlap test and depth test.Therefore, the HOM contains opacity information against which the screen projected bounding box of an object is tested.If the box intersects an area that is not opaque, then the object cannot be culled.In the other cases, it means that there is an overlap and consequently a depth test is necessary to determine if the object is hidden or not.To increase the performance of occlusion culling, there is the concept of using virtual occluders [147] and the concept of combining disjoint occluders into a single occluder [282].
The survey presented in [43] presents a taxonomy and a more extensive overview of the research topic concerning visibility based on occlusion culling.

Level of Detail (LOD)
The concept of Level Of Detail (LOD) has existed since the inception of the field of computer graphics [49].It exploits the human perceptual limitations when exploring their surrounding environment.Independently of the complexity of an object, the further away it is from the viewpoint, the smaller it is visually perceived.The process of rendering the VE onto a display device reinforces the perceptual limitations due to the finite resolution.As a result, an object that is located beyond a particular distance threshold in object space may correspond to a single pixel of the display device being used.The use of simpler representations may not be detrimental to the perceived quality of the visualization, but will provide significant improvements to the performance and use of computational resources.Ultimately, this contributes to the support of more complex environments at interactive framerates.It has been demonstrated [229] that people are more forgiving of degradation of visual quality, but far less tolerant to temporal delays that result from having detailed complex geometric models.
The concept of LOD is not restricted to geometry, but can be applied to other aspects of the VE, such as physical simulation [45].In this case, when the object is close to the viewpoint, a realistic physical model is used, whilst when the object is beyond a predetermined threshold, a simplified simulation is used that is more concerned with behaviour rather than physical realism.
The operation of LOD is broken down into two main processes.The first is the creation of the various LODs [132] and the second is the selection strategy to choose the appropriate geometric representation whilst engaged within the VE.LOD selection can be based on a range of different factors, most of which are based on physical information such as size, distance and velocity.Without doubt, distance is probably the most common and with effective results as evidenced in the early flight simulations [285].However, the case of a scene with a few highly complex objects at close range, the distance selection mechanism may be ineffectual, having a detrimental impact on the smoothness of the rendering output that ultimately may lead to motion sickness [261].Therefore, it is essential to maintain a constant framerate [139] independently of the realism or complexity of the VE from a particular viewpoint.This constraint requires a more sophisticated LOD selection process involving a scheduler that is responsible for choosing the appropriate LOD of an object taking into account the physical aspects along with the computational resources available.The main problem when considering Quality of Service (QoS) is that the term means different things to different types of people.However, for the purpose of this paper, the diagram block of Fig. 9 aptly summarizes the perspective on QoS and how the network, system and user relate to each other.Fig. 9 presents a simple overview of QoS as two main process cycles.The first corresponds to the user and system dynamics, where the user has certain expectations that define the thresholds of acceptable QoS as perceived by the user.Naturally this depends significantly on the nature of the application, since a text-based mode does not have a user feedback loop as demanding as the one associated with immersive 3D graphics, although the user"s expectations are similar.The second process cycle reflects the dynamics between the system and network, where the system specifies the necessary QoS to be supported by the network and in turn the network will provide what QoS is possible.
The concept of QoS is not about improved performance between different implementations of the same mechanism within a system or network, since this ultimately amounts only to an improvement of a single service without consideration of the user"s choices.QoS is only applicable when there is the option between different services, each having an associated cost and benefit.
Although not depicted in Fig. 9, the system may have further refinements concerning QoS process cycles, such as in the cases where the system relies on middleware for communication, thus having the possibility of middleware QoS [5].
When considering the various QoS technologies and mechanisms, it is important to consider what the target requirements are.There are many specifications and proposals, but none is considered ideal since compromises are necessary.This is summarily embodied in the constant debate over processing priority within the system concerning the networking and graphics rendering elements.The computer graphics community argues that the user"s sense of presence can only be assured by constant framerate, thus the rendering process should have the highest priority, delegating to the networking process the remainder of the computational resources.However, the networking community argues that the network should be given the highest priority to assure consistency across all the hosts participating in the VE, and since the amount of time necessary is quite small, there will be ample time to do the rendering.

Network Centric
Since multicast is a technology of choice for VEs, some of the network QoS requirements to be considered in supporting large-scale systems are enumerated in the following taxonomy [13].However, the taxonomy does not determine how the QoS may be ensured by the Internet.The limitations of the best-effort service model have been recognized, and many QoS proposals [284,296] are being developed to address the lack of QoS capabilities.
Although there have been many research proposals for an incremental deployment of network QoS over the Internet and the IETF is focused on achieving a solution, the Internet continues bereft of QoS on a wide scale, meaning that end-to-end QoS is not available from the perspective of distributed applications, such as VEs.The impediment is not only due to technology.There are sophisticated routing mechanisms readily available in commercial routers, but these are not used in deference to the default First In First Out (FIFO) scheduling and DropTail queue management.The lack of immediate commercial gain for network operators [Dav03] is also an inhibiting factor.In fact, the current operational response of network operators towards the issues pertaining to network QoS continues to revolve around the over-provisioning of links to ensure a target service devoid of congestion [19].Most operators apply some policy to decide when to increase the provisioning across their entire network.However, some research has indicated the advantages of network traffic monitoring and how the results aid in determining how to overprovision the network [108].
The subsequent subsections give a very brief overview of some network QoS approaches to improving the Internet"s current service model.However, as argued by [48], the provisioning for network QoS must be inherent in the lowest layers, even if it is just a single bit, otherwise wide deployment will always be compromised.

Resource reSerVation Protocol
The Resource reSerVation Protocol (RSVP) [34] is a protocol aimed at supporting QoS on the Internet by making resource reservation along a particular path.The RSVP is common to both the hosts and the routers of the network.A particular characteristic of the protocol is the fact that the request for resources corresponds to simplex data flows, from the receiver to the source.The protocol allows dynamic modification of the current QoS along a particular path for a data path.All that is required is for the receiver to send a new control message (RESV) replacing the former parameters with new ones.In the scenario where a receiver needs to connect to several sources, RSVP supports resource sharing amongst the flows originating from the different sources.
In [50], an attempt is made to associate RSVP approach with applications based on Distributed Interactive Simulation (DIS).However their approach does not consider one of the main characteristics of a VE, which is the volatile nature of the receiver"s interest.Another problem with the studies is the way DIS Protocol Data Unit (PDU) are classified in terms of QoS requirements, namely with regard to Entity State PDUs that, contrary to what is presented, do not require reliability because of the continuous nature of the PDUs.
Unfortunately the scalability of RSVP may be questioned, when considering VEs with a large number of participants.The problem resides in the simplex nature of the resource reservation mechanism combined with the periodic update messages.This would imply that each host would have a flow for every other host, meaning that for 100 users, the total number of flows in the network would be 9900 (Permutations of 100 elements organized in groups of two).Clearly this represents a significant amount of state at the routers, without mentioning the traffic overhead generated to maintain the state of each flow.In a VE, hosts are clustered together according to their shared interests, thereby saving network resources, however this does not alleviate the problem of RSVP since the high frequency of receiver"s interest may very well not justify establishing a resource reservation per flow basis.Another problem is the overhead associated with the protocol, which is made worse by the protocol"s soft-state nature, requiring the end-hosts to continuously refresh the state.
Recognising the problems associated with RSVP, other alternatives are being investigated such as YEt another Session Internet Reservations (YESSIR) [138], which operates upon Real-Time Control Protocol (RTCP) [215].Although some improvement in router processing is achieved, scalability issues similar to those of RSVP continue to exist.Nevertheless interesting new concepts are introduced, such as partial reservation, meaning that only particular areas of the network require the flow to have resources allocated to it, while others lapse into the best-effort model.

Integrated Services
The goal of Integrated Services (IntServ) [17] is to provide end-to-end QoS by enhancing the best effort service model with another model that provides QoS guarantees on per flow basis.This is achieved by reserving in advance the necessary resources in all the routers along a particular path between a source and a receiver.The base service continues to be the existing best-effort model, but this is enhanced with two service classes, guaranteed QoS service [227] and controlled load service [279].The former is based on hard bound QoS parameters, but the complexity involved makes its deployment unfeasible.The latter provides a best-effort service model but as if the network was not shared with other flows.However, both are based on the premise that resource reservation is a requirement for network QoS.
There are three main barriers to wide deployment of IntServ.The complexity of the necessary mechanism makes the framework incompatible with the existing Internet and incremental deployment is not feasible.The scalability of the framework is severely compromised by the amount of additional state required to maintain a per flow basis.Finally, the amount of overhead traffic signaling is prohibitive.
In addition to the deployment barriers, it is not guaranteed that the IntServ will work within a VE because of the volatile nature of the receiver"s interest due to the setup penalty associated with resource reservation.This is corroborated in the study of a military VE [50]

Differentiated Services
The Differentiated Services (DiffServ) model was devised to address the concerns of scale of IntServ.The approach consists of categorizing the data traffic into several classes, each with distinctive QoS.Traffic classification is achieved by marking each packet with the corresponding QoS class and this process effectively aggregates flows together into Behavior Aggregate (BA).In addition, routers have Per-Hop Behavior (PHB) profiles for each type of QoS class.These profiles indicate to the router how to handle the packets belonging to each class.
The DiffServ architecture makes a distinction between the core routers and the edge routers of the network, pushing complexity towards the edge.The core routers continue to be very simple, focusing on fast forwarding mechanisms, but now taking into account the BA.The routers towards the edge must perform traffic conditioning, assuring that the traffic forwarded to the core fits the existing BA.Since the packet classification is based on the Type Of Service (TOS) field of the IP packet, it is possible to have incremental deployment of DiffServ.
Should the VEs be small scale with few participants, analogous to a videoconference, it is possible to benefit from the allocation of differentiated services [289].
DiffServ is more scalable than IntServ, but still requires additional complexity in the network, in particular at the edge routers.There is a need to establish Service Level Agreement (SLA) between customers and service providers, and in the case of dynamic SLA, a signaling protocol is required.There are no QoS guarantees, but it is possible to have relative QoS between different aggregated flows.9.1.4Quality of Service Routing Traditionally, IP routing is based on the shortest path, normally based on the number of hops.The purpose of QoS routing [202] is to extend the metric used for routing with QoS parameters.Thus forwarding will be based on the QoS requirements of the flow and the QoS assurances along a particular path.However, QoS routing requires additional complexity cost that may surpass IntServ.

System Centric
The objective from the system"s perspective is to avoid causing any disruptions to the user"s sense of presence, but taking into account the limited computational resources, there is a need to make choices on how and where those resources are used.In most VEs systems, these choices are established during the design phase, thereby influencing the entire architecture and functionality.However, whenever those choices are dynamic and governed by parameters influenced by the user, then the system is considered to support QoS.
There are a few proposals for QoS specification concerning VEs, such as [173].These specifications are not about empowering the user with choice over the quality of the system"s capabilities, but more about minimum thresholds necessary for the user"s perception to match their expectations.
The few exceptions that already provide an actual QoS framework, or implementation of QoS mechanisms within a particular VE system, have a specific notion of what QoS means.In some cases, QoS becomes a requirement that results from bad design or unfortunate choice of system architecture.A clear example is the case of the Distributed VE COllaboration Model (DVECOM) [55,56] where the notion of QoS relates exclusively to quality of rendering to ensure the best user experience according to their preferences.The system is based on a ring architecture of servers that are responsible for the dissemination of events to ensure consistency and synchronization.However, the design introduces significant delays with the consistency mechanism, thereby leaving very little time for the rendering cycle.As a result, there is a need to introduce a mechanism to induce a graceful degradation by selecting what and how to render, based on the user profile.A more effective and efficient approach can be achieved with the dynamic LOD selection mechanisms, such as the market model [129], or one based on a cost/benefit function [104].
With system QoS, there is the fundamental principle that each host is responsible for managing their own computational and network resources.With regards to the network, a greedy approach is taken, ignoring the fact that there is a limitation to the resources that are available in the network infrastructure to be shared amongst all the participating hosts.Even when considering the architectural principals of network QoS, the concept is based on streaming applications where there is a single source that sends to either a single receiver (unicast) or a small set of receivers (multicast).This approach is inadequate when considering the case of VEs where every user is simultaneously a receiver and a source.
A different approach is necessary, such as in the case of [113], where the QoS is done at two levels: • Group.There is a monitor responsible for reproducing the interest of each participating host within the VE using the spatial awareness model [20].The aggregated information is passed on to the group QoS manager that distributes the resources available according to the various hosts.• Host.Based on the existing known sources, the local QoS manager selects the relevant data streams to receive data.The selection is done on the local spatial awareness model.Although the concepts presented in [113] are of great interest due to the social potential associated with group QoS management, the prototype implementation only delivers a rudimentary form of layered multicast, presented in [175] and [265].Nonetheless, the approach is innovative when compared to traditional groupware applications due to the integration of a spatial awareness model to determine the group membership.Another shortcoming relates to the fact that the QoS architecture was used only to control the data streams pertaining to the audio/video communication, whilst disregarding the other data communication that exists within a VE.

X. SYSTEM INTFRASTRUCTURE
This section describes additional important characteristics to consider for the infrastructure supporting a VE system.

Global Infrastructure
The support of cyberspace implies the existence of a global infrastructure providing both wired and wireless connectivity.The only likely candidate, irrespective of all its shortcomings due to its best-effort delivery model, is the Internet.The widest deployed application that leverages the connectivity of the Internet is the WWW, which is confined to the two dimensions of the associated page paradigm.To support the transition to 3D cyberspace, it is necessary to establish standards that ensure functionality and operation regardless of the underlying technology.The most prominent initiative is the ISO standard VRML [291], and its successor X3D [290].Therefore, it is possible to have a VE on the WWW provided the necessary browser or plug-in is installed, the Uniform Resource Locator (URL) of the VRML resource is correct and the format of the data file is valid.The navigation of a VRML world is a lonely experience as the standard only supports the content, relegating to particular instantiations of the browser if and how the technology supports multiple simultaneous participants.However, VRML (and X3D) are a first and necessary step to attaining a global infrastructure of supporting cyberspace that includes the third dimension.

Distribution Model
There are essentially two extreme approaches concerning the distribution model of a VE system: • Client/Server.The server can be a single machine, a cluster of machines or a hierarchical set of machines.The role of the server is to manage the VE by determining the valid state of the database at any given instance of time.The client provides the means for the user to experience the VE.This entails the processing of the user feedback, providing the user with sensorial data and communicating with the server.The communication is bi-directional.The server sends to the client the current state of the world, including data concerning the other users.In turn, the client sends to the server the data resulting from the user feedback.The main advantage of this architectural approach is its simplicity due to the central nature of the database, but this comes at the cost of creating a bottleneck at the server and introducing delays into the user feedback cycle.Overall, the approach does not scale to a large number of users and over-provisioning is not a sustainable solution; • Distributed.In the distributed approach, the database of the VE is managed by all hosts of the participating users.This requires each host to communicate all local events and data to all the other hosts to attain sufficient consistency to support a shared experience.One variant of the distributed architecture is for each host to maintain a connection to every other participating host.However, this approach does not scale with a very low threshold.The best approach is to support some form of group communication where a host does not have the burden of having any information concerning the other participating hosts.In all forms of distributed architecture, there is more complexity to ensure the distributed consistency of the VE database.The distributed and client/server are extremes of the architecture spectrum with many variations in-between.Independent of the system architecture, to support the persistency necessary for cyberspace, servers are needed to deal with user management and for persistent storage of the VE.

System Evolution
The complexity of the problem domain leads to the development of complex VE systems.As a result, it is necessary to consider the system architecture [299] as the underlying structured blueprint identifying the various elements of the system, along with their roles, dependencies and interactions.
The initial systems were monolithic with unclear boundaries delineating parts of the systems that dealt with specific functionality, denoting the lack of a well-defined system architecture as illustrated in (i) of Fig. 10.However, these systems are usually tightly coupled to form a very specific application without any aim of reusability other than possible code scavenging.To improve the development of VE systems it became necessary to define and build the system architecture as the underlying blueprint.A first architectural approach was to delegate into a separate layer all the system functionality coupled with the application, thus forming three layers as depicted in (ii) of Fig. 10.This was closely followed by the internal partitioning of the overall system functionality into smaller sub-systems, each with particular roles (ie: graphics, network, audio, etc) as illustrated in (iii) of Fig. 10.The structured system architecture introduced internal flexibility, but traditionally there would be tight coupling between all the different subsystems making maintenance a task that would be easily prone to design errors or implementation mistakes, which degrades the overall software quality of the system.Consequently, it would be necessary to periodically perform extensive refactoring over the entire system, which in turn increases the potential of outdating the previous applications.Whilst object-oriented methodology assisted in structuring VE systems, it was through the concept of components and services that the issue of coupling was adequately addressed, as illustrated by the component/service architecture in the block diagram (iv) in Fig. 10.However, these systems need to be defined at compile time.A few systems have pushed the boundaries to allow the definition of components/services at run-time, and this is conceptually illustrated by the diagram (v) of Fig. 10.The dynamic component/services systems are in principle more open and extensible than their static counterparts due to the lack of constraints on the types of components/services that a system may have.

Configuration
An important aspect that affects the reusability and the longevity of a VE system is its configuration capability at run-time.Associated with configuration is the capability of the system to support rapid-prototyping, which is exemplified by the powerful scripting capabilities of the ALICE system [38] based on Python [204].
There are many configuration approaches, each with their advantages and disadvantages, such as:  Parameterisation.The system exposes parameters that can be changed at run-time.This is the least flexible of the methods, but also the one with lowest computational overhead;  Composition.In this case, the system allows for the composition of components or software artefacts.This is achieved by establishing well-defined interfaces that allow for structural composition;  Scripting.A system may adopt an existing scripting language or develop its own scripting engine, which may be elementary or sophisticated with control structures similar to programming languages.Scripting may take place at different levels, at the application level we have the example of the DIVE system [106] that utilizes behavioural scripting using tcl/tdk [252] or the Component OrieNted Three-dimensional Interactive Graphical Application (CONTIGRA) system [71] which has a component model based on XML schema, in particular X3D.However, at the other extreme are the initialisation scripts as in the case of the Bamboo system [283].The main advantage of scripting is the increased productivity, but at the cost of a language being interpreted, resulting in performance inefficiency. Reflection.This approach is the most dynamic where the interfaces of the components are discovered at run-time.This is achieved by establishing beforehand the introspection mechanisms that allow a component (or an object) to be queried so another software artefact may connect and interface with it.The high level of abstraction provides the maximum flexibility but the main shortcomings are the associated computational cost and the integrity problems that may emerge.

Monitoring
A major contribution of the Virtual Reality Transport Protocol (VRTP) [35] framework is the clear identification of monitoring as essential system functionality.This capability provides the system with the necessary data to self-regulate and adapt at runtime to changes in either the network or the computational resources.Some of the existing systems possess rudimentary monitoring capabilities, such as in the case of collision detection and feedback control mechanisms (used in either visibility or streaming geometry, for example).However, the data generated is tailored specifically to a particular part of the system.This clearly indicates an overlap of similar functionality throughout different parts of the system.
The potential of monitoring can and should be exploited beyond the scope of feedback control loops, as in the case of dynamic reconfiguration of the system itself, by changing its codebase in an evolutionary manner.

XI. ANALYSIS DOMAIN MODEL
The overview domain analysis carried out throughout this paper provides the necessary understanding to elaborate a domain reference model, which provides insight to the issues to consider when designing and developing VE systems.The resulting Analysis Domain Model (ADM) is represented by the block diagram of Fig. 11.
All the issues have been covered in different sections of the paper, but where relevant some additional information is provided to clarify particular decisions on the aggregation or inclusion of a logical block in the diagram.
The focus of any VE system is the user and providing them with an immersive experience where they are present within a VE and potentially co-present with others.Therefore, the ADM clearly singles out the user in the diagram, who interacts with the alternate reality sustained by the VE system via the proxy of an Avatar supported by devices that capture the user"s input and provide sensorial output.The remainder of the ADM is decomposed into three distinctive layers:  Application.This layer encompasses all the components and resources that are tightly coupled to the scoped subdomain associated with a particular VE system. VE System.This layer of the ADM decomposes a VE system into five functional blocks:  System Infrastructure.This layer provides the common base functionality that should exist in any VE system, which are as follows:  Monitoring.Any system intent on adapting to its computational environment, taking into account its internal status and external events, requires monitoring.The analysis, using heuristics or self-awareness mechanisms, allows the VE system to adopt the appropriate policies to maximise its utility to the user as an individual and within a group. Configuration.In modular, flexible and extensible systems, the aim is to support run-time modifiability.As a result, configuration becomes a base function that affects everything within a VE system, from the system components to the scripting of behaviours within a VE. Security.The issue of security must be embedded in the infrastructure of the system, thus making it more difficult to circumvent if a security policy is adopted. Resource Management.Everything within a VE system is a resource, irrespective of whether it consists of code or content. Event Model.Taking the approach of designing everything in a VE as a resource, it is necessary to consider a flexible means of communication and this implies an event model (irrespective of the particular instantiation or approach adopted). Rendering.This block may have one or more rendering pipelines depending on the devices used to output sensorial data at the targeted human senses by the VE system. Distribution Model.An alternate reality to be shared amongst multiple participants requires an underlying distribution model to ensure that the database is distributed across all participating hosts according to a particular consistency policy.The distribution model could be integrated within the System Infrastructure block, but this would confine the design space to VE systems supporting multiple participants and would potentially raise code hematomas resulting from the multiple associated implementation dilemmas . System Core.The system core has two main parts to it, the data and the processes.The former consists of the data representing the alternate reality, including the avatar representing the user, whilst the latter consists of all the generic VE operations that are not application dependent, such as collision detection, scale, concurrency, environment policies, concurrency, simulation, amongst many others. Networking.This layer provides the network support for data communication, and thus covers the protocols used and the quality of service. Low-Level APIs.This layer corresponds to all the libraries that have minimal semantic connotations, such as OpenGL for graphics

XII. CONCLUSION
This paper gave a broad exposition of the multidisciplinary aspects involved in developing a VE system and avoided focusing on specific aspects regarding the design and development of such systems.In the discourse of each topic, different VE systems were mentioned, demonstrating the wide variety of solutions.The networking topic received some more attention since it is usually neglected or misunderstood, thus the additional detail.
Although the field of VEs has made significant progress since the inception of SIMNET [199] in 1983, it has not been possible to devise a single unique system that is able to satisfy the user requirements of all application domains.This is a result of the inability to simultaneously address the entire problem domain of VEs, which has many conflicting requirements.
The traditional approach in the development process of VE systems has been to scope the complexity of the problem domain from a top-down perspective, focusing on specific application domains.Naturally this leads to different solutions, but there is significant overlap of functionality that could be leveraged for reuse.This would improve the quality of the systems whilst reducing the resource consumption associated with the development process.As pointed out in [CS97], these concerns are not always reported in the research literature, but are tacitly accepted by system developers from the VE community and remain a difficult research challenge [IAO06].
The result of the paper is the ADM presented in Fig. 11, where all the issues covered in the paper are included and considered.The presented block configuration of Fig. 11 is one of many possibilities depending on the aggregation criteria of the subdomains considered.In the particular instance of the proposed ADM, the block configuration resulted in five logical blocks: System Core, Networking, System Infrastructure, Rendering, and Distribution Model.

Fig. 1 .
Fig. 1.Overview of the process to build the Analysis Domain Model The block diagram of Fig.1 provides an overview of the

Fig. 3 .
Fig. 3.The OSI and IP communication layered model

Fig. 7 .
Fig. 7. Framework describing the dynamics between the elements that are part of the application flows Even though every application is different, there are four distinctive elements:  Entity.An Entity represents any object within the VE that has an interest in either sending or receiving data to/from other entities. Flow.A Flow is a virtual data channel that provides a means of communication between different entities.Each Flow has specific properties, thereby providing varying Quality Of Service (QoS).The communication model of a Flow is generic and may accommodate peer-to-peer, client/server, distributed or any hybrid combination. Comm.A Comm represents the network connection being used that establishes the liaison with the underlying network.Examples of a Comm are the various Berkeley sockets (Unicast UDP, Multicast UDP, TCP). Host.A Host represents where an application runs along with all, or a reduced set of, entities from the environment database.The relationships between the various elements may be categorized into three tiers:  Naming.This makes up the Application layer and is responsible for interconnecting it to the Transport layer.A namespace is associated with the application datamodel, so that the entities are mapped to the appropriate Flows. Mapping.This is responsible for mapping the data flows to the network resources available, taking into account the associated cost to the system. Forwarding.This corresponds to the actual distribution of the data across the network.This process does implicit filtering of the network so that only the relevant hosts receive data.In the case of multicast, some host filtering may be necessary since 100% receiver interest across all hosts is difficult, if not unfeasible.

Fig. 9 .
Fig. 9. Framework describing the dynamics between the elements that are part of the application flows

Fig. 11 .
Fig.11.Analysis Domain Model for shared virtual environment systems

TABLE 1 :
OVERVIEW OF DOMAIN ANALYSIS