Simulation Modelling Practice and Theory 72 (2017) 118–130
Contents lists available at ScienceDirect
Simulation Modelling Practice and Theory journal homepage: www.elsevier.com/locate/simpat
Integrating dynamic scalability into the OpenSimulator framework Umar Farooq a,b,∗, John Glauert b a b
University of Science and Technology Bannu, Pakistan University of East Anglia Norwich, UK
a r t i c l e
i n f o
Article history: Received 2 November 2015 Revised 10 December 2016 Accepted 15 December 2016
Keywords: Simulation Simulator Scalability Virtual world OpenSimulator
a b s t r a c t OpenSimulator, when configured in grid mode, is highly scalable and places no restriction on the number of running OpenSimulator instances, often called Simulator, or the number of regions assigned to a simulator. However, the current implementation employs static configuration which either results in under-use of resources or restricts system capacity. This is due to the lack of an expansion and contraction model which would allocate resources purely based on load. This paper introduces scalability features into OpenSimulator based on our expansion and contraction models that use a hybrid grid infrastructure. The enhanced system takes dynamic decisions to add additional resources and reallocate regions as load increases, until each simulator is hosting a single unit region. We use a merge strategy, in which a simulator integrates its load back directly with the parent simulator if the current load decreases significantly. It has been verified using a 4-region test world for both expansion and contraction. Different patterns of player distribution are used to illustrate the benefits and limitations of this new feature. We identify the existing OpenSimulator components needed to incorporate this exciting feature. Further, we introduce an improved region removal strategy to significantly reduce the time to reallocate a region and hence to enhance the interactive user experience. © 2016 Elsevier B.V. All rights reserved.
1. Introduction Simulation environments have been used successfully for about six decades in a number of application areas, such as Defence, Entertainment, and Design [1,2]. The introduction of rich and appealing content, huge reductions in the cost of personal computers, and significant increases in bandwidth, mean that a number of communities have become interested in developing Distributed Virtual Environment (DVEs) rather than traditional analytic simulation environments [3]. Computer based game environments have been hugely popular for several decades but have limitations due to enforcing a fixed set of rules. In recent years, game environments such as World of Warcraft [4] and Ultima Online [5] have tried to overcome the inflexibility of traditional web applications, including online games, by adopting some of the attractive features of Virtual World (VWs) such as collaboration, social interaction, and persistence. Unlike traditional game environments, VWs, such as Second Life (SL) [6,7] and OpenSimulator (OSim) [8], are becoming more common and popular as they provide ∗
Corresponding author. E-mail addresses:
[email protected],
[email protected] (U. Farooq),
[email protected] (J. Glauert).
http://dx.doi.org/10.1016/j.simpat.2016.12.010 1569-190X/© 2016 Elsevier B.V. All rights reserved.
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
119
full control of the environment to end users who can build and control their virtual space free from a rigid set of rules. According to Hakonen et al. [9], the VWs Literature has largely neglected its potential for distributed collaboration. However, they are rapidly becoming a collaboration tool that integrates team efforts for implementing creative ideas [10]. Due to the unique characteristics of VWs, these environments do not allow replication (often called sharding) and are difficult to scale. Further, existing VWs use simulation-centric architectures developed for traditional simulation environments [11,12]. CPU Utilisation, Network bandwidth, and Latency are major barriers in scalability [13]. For these reasons, content and player capacity in VW environments are much restricted (lower than 100 users, according to Gupta et al. [14]). VWs use the concept of spatial partitioning to scale. Static spatial partitioning methods adopted by commercial infrastructures such as Second Life Grid (SLG) [15] and Butterfly Grid (BG) [16], however, introduce under-utilisation and overutilisation of resources. Dynamic spatial partitioning methods are highly scalable and remove the above mentioned issues, but are computationally very expensive and need careful design. It is believed that efficient use of resources, and minimising delays experienced by players are important to make these environments acceptable for both providers and end users [17]. In our previous work [18,19], we presented an infrastructure based on intelligent methods for splitting and reassigning a given space to improve performance. SL being state-of-the-art in VWs was our first choice to implement our scalability framework but its basic architecture has a number of shortcomings as reported in [20]. The Architecture Working Group (AWG) [21] at Linden Lab designed a new architecture and an interoperability protocol to open up the SLG for resolving these issues. However, it lacks dynamic capabilities to assign resources based on load. Further, the source code of the grid infrastructure was not available and, therefore, OSim being a complete and independent open source implementation of the AWG extended architecture was used to develop a prototype of our work. The OSim architecture is very flexible and scales well in terms of content by just configuring new Simulator (Sim) instances to overcome a number of SL issues. An arbitrary number of regions to be hosted by a single Sim, but it has no capability to scale dynamically to respond to changing concurrent user numbers without re-configuring the Sims. Nevertheless, the existing components of OSim can be employed by new intelligent strategies that overcome these scaling issues. In our previous work, we presented such an extended OSim framework [22] to incorporate scalability. The existing OSim components are identified and used to develop a prototype based on our Expansion and Contraction models on our proposed hybrid grid infrastructure [23]. The advanced OSim specific archiving facility (the OpenSim Archive functionality) is used for backup purposes while implementing spatial partitioning. We identified the expensive operations among those required to implement dynamic spatial partitioning, and presented an improved region removal strategy to reduce region reallocation time. In this work, we outline the existing components of OSim to implement the proposed framework. We illustrate a 4-region world that expands and contracts according to the capacity of a Sim. This paper is structured as follows. Section 1 introduces the research area. Section 2 briefly explains our expansion and contraction models for the proposed hybrid grid environment, relevant previous work, and the motivating factors and goals of the current work. The steps in achieving scalability using the existing OSim components and its implementation is introduced in Section 3. Section 4 provides a detailed evaluation of the proposed system, on both Windows and Linux environments, with a detailed illustration of the expansion and contraction models using a 4-region test world. Section 5 concludes the paper and provides directions for future work. 2. Background and motivation 2.1. Related work Distributed Virtual Environment (DVEs) are often handled by using Distributed Infrastructures which are usually classified as Client Multi Server (CMS) and Peer-to-Peer (P2P) [24]. CMS infrastructures, alternatively called Grids, are considered best for computationally intensive applications such as Games and VWs though many P2P mechanisms and applications of P2P can be found in the Literature [25–27]. However, Grid infrastructures suffer from both delay and latency, and hence most of these environments, including BG [16], SLG [15] and OSim Grid [28], adopt sophisticated load sharing and transferring mechanisms. For improved performance, they use static assignment of world content and constrained communication models which introduce resource provisioning issues [29]. We have compared our work with a wide range of dynamic strategies. Flat dynamic mechanisms that we considered include those in [30–32]. On the other hand, dynamic hierarchical methods presented in [33–35] were investigated. Overall improvement was achieved over both the static and dynamic methods which is explained later in this section. We also investigated two OSim projects on scalability and load distribution. The ScienceSim project [36] uses the concept of a Distributed Scene Graph [11,13] for improved performance as presented in [12]. However, it targets a different aspect and adds complexity with an additional communication layer. Load Balancer [37] is the only known attempt to achieve scalability in OSim based on spatial partitioning, but it is no longer maintained. Cloud infrastructures are attractive for scalable implementations, providing applications with rapid access to temporary virtual servers. They have gained popularity in a number of application domains and research areas [38]. Hence, clouds have been successfully employed for Discrete Event Simulation Systems [39], and to manage real time on-line applications [40]. According to Sanatinia et al. [41], the ever growing computational and communication needs can be met using the cloud
120
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
mechanisms. They investigated the potential performance of virtual machines of the cloud and showed that the virtual machines produced exactly the same frame rates as dedicated servers. CloudServe [42] is a business platform especially designed for VWs. It not only provides virtual severs but also packages for complete grid and standalone VWs managed by a linked website. It further provides additional resources to facilitate VW development. CloudServe restarts any crashed Sim every 2 hours and takes automated daily regional back-ups. Rogers [43], however, discusses some drawbacks of clouds for traditional dedicated applications. While cloud hosting is simple and could be used to balance the load in a VW by adding more OSim instances in response to demand, there would be a great increase in financial cost. He proved that cloud resources are much costly than dedicated servers for running VWs which are up and running all the time. The proposed framework shows improvement over both static and dynamic mechanisms for game and VW environments. It scales up to exactly the same capacity as static assignment infrastructures such as SLG [15] and OSim Grid [28]. It utilises resources strictly based on workload and, unlike Second Life (SL) [6,7] and OpenSimulator (OSim) [8], never dedicates resources to host regions without players. The primary aim is an improved interactive experience for players, rather than a perfectly uniform distribution of workload. By comparison, complex systems using global strategies such as those presented in [34,40] may disrupt user experience while seeking uniform load. Regions in an aggregate are transferred in sequence which not only greatly reduces the time that content is unavailable but improves the interactive experience of players compared with the techniques that transfer the whole space together. Our current implementation organises all additional Sims at a single lower level. It keeps our model simple so potentially reducing system complexity and communication overhead. It is decentralized in nature compared with centrally administered mechanisms such as those presented in [34,40]. Each Sim takes local decisions and is capable of hosting its assigned space even if the parent Sim is down. Further details may be found in [23]. 2.2. Our novel framework We have developed a novel infrastructure based on an expansion and a contraction model that closely matches assigned resources to system load. Initially, a Sim manages a square-shaped space made up of a number of primitive regions. If load on a Sim exceeds a limit, the model partitions its regions into two or more sub-spaces [18], based on the Aggregate Region Assignment (ARA) algorithm presented in [19]. If a Sim becomes under-loaded, the model attempts to merge its regions back into a neighbouring Sim. To implement this framework, we follow an extended grid model, a Hybrid Grid Model, which is flat in nature at normal load but uses additional resource levels, in hierarchical fashion, to cope with overloaded Sims. Initially, it is configured with a flat static grid similar to SL and OSim where each Sim (called a parent Sim) is assigned a large continuous space, made of a number of regions chosen according to system capacity (as in [44] and [45]). The space assigned to a parent Sim is square shaped, achieved by placing OSim regions side by side in multiple rows. 2.2.1. Expansion and contraction In response to high load, additional resources (child Sims) are provided dynamically at lower levels (only a single level in the current implementation) to share the load of the parent Sim. Compared with, say, a quadtree approach, levels in the hierarchy are kept low because expansion normally partitions a space into just two sub-spaces that are assigned to child servers. Parts of these sub-spaces may later be reassigned to yet further servers, but the new servers are linked in the Resource Management Tree (RMT) as siblings, rather than children, of the server undergoing a further split. On the other hand, under-utilised resources are released through a contraction step. The merge has two options, and during this process a child Sim either integrates its current load with its parent node or with a sibling node, thus releasing underused Sim as soon as possible. The current implementation implements the Parent Merge strategy in which each Sim integrates its load directly with its parent Sim. Two parameters, SplitCapacity and MergeCapacity, were introduced to help facilitate expansion and contraction. Issues such as frame rate decrease and lag raised by Lake et al. [17] are mitigated by taking split decisions before performance degrades unacceptably. Further, the merge uses a somewhat smaller capacity value than the split, to provide some hysteresis that avoids frequent splits and merges. For simplicity, this work uses numerical estimates for load based on player numbers, following detailed experiments presented in [23]. The SplitCapacity measure was estimated from the point where the observed Sim Frames Per Second (SimFPS) parameter was reduced to about 40FPS, an earlier stage than the a minimum of 30FPS required for a smooth interactive experience [45]. 2.2.2. The aggregate region assignment algorithm The aim of the ARA algorithm is to partition the regions held on a Sim into sub-spaces that meet several efficiency criteria. Firstly, load, measured by player numbers, is kept close to balance between the sub-spaces. Secondly, the sub-spaces should represent connected spaces of regions sharing physical boundaries, so that players moving to adjacent regions will often stay in the same sub-space, managed by the same Sim. The ARA algorithm takes the space of regions in a square shaped grid form as an input and applies heuristic aggregation strategies starting from any two consecutive corner regions, such as Top Left and Top Right. For each valid partition, as
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
121
Fig. 1. The 4 strategies of ARA algorithm for root Top Left for a 3 × 3 grid (One of the aggregate is coloured black while the other is coloured grey) [19]. (a)–(d) Illustrations of LRRows, TBcolumns, LRaTB, LRTBwDR strategies respectively.
Fig. 2. Illustrating the Contraction Phase (squares represent regions and text inside each provides the Sim hosting the region): (a) the initial status of regions and the Sims hosting them, (b)–(e) Illustrating valid merger of Child C4 , C3 , C2 , and C1 load in sequence with the Parent Sim.
illustrated in Fig. 1, the strategies calculate the balance of load between the sub-spaces represented, and record the partition that is closest to equal load. For this work, we used Top Left and Top Right regions to initiate scanning. We proposed four aggregation strategies to apply to Top Left: Left to Right Rows (LRRows) - that scans the regions row by row (Fig. 1(a)); Top to Bottom Columns (TBcolumns) - that scans the region column by column (Fig. 1(b)); Left to Right and Top to Bottom (LRaTB) - that scans the grid from left to right and top to bottom consecutively (Fig. 1(c)); and Left to Right and Top to Bottom with Diagonal Regions (LRTBwDR) - that extends the LRaTB and also reads a diagonal region of the root when regions near it are already in an aggregate (Fig. 1(d)). These strategies are then applied with directions reversed from Top Right to cover a number of additional valid combinations. The above strategies are all required to scan grid sizes of 3 × 3 and above. However, the initial two strategies are enough to determine the aggregates for a 2 × 2 size grid. The algorithm initially starts with one aggregate holding a single (root) region (coloured black), and the other with all the remaining regions (coloured grey). Each iteration in a strategy then switches one region from the second aggregate to the first (changing its colour from grey to black) as shown in Fig. 1 for all the strategies when applied to the Top Left. This process continues for all the strategies and both the root regions until we identify the most balanced distribution of load. The algorithm uses a number of techniques to reduce the scanning process. Once the aggregates are determined, the Sim that initiated the split keeps one aggregate for itself (normally the one with most players distributed among the regions), and assigns the other to an additional Sim. Fig. 2 illustrates the Parent Merge strategy for contraction, where a child Sim returns its full load to the parent Sim only if the combined load is less than or equal to the MergeCapacity and the combined space is contiguous. 3. The scalability model and its implementation The grid mode of OSim provides coherent spaces bigger than a unit region by arranging the regions adjacent to each other. Each region has a unique location on the grid. Traditional spatial partitioning methods serialise both content and
122
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
players of a region to transfer. The serialised items are de-serialised after a successful transfer and then resume their normal activities. However, as player serialisation leads significant delays, a different approach is adopted in our work. We use an intermediate transit region during a transfer, which improves user experience as the players moved there temporarily are free to move to other regions, or keep themselves busy with simple activities. Once their original region has been relocated, we teleport remaining players back to their original positions to resume normal activities.
3.1. The existing components of OpenSimulator An important aim of our work was to provide a conservative extension of the open source architecture. We, therefore, exploit existing capabilities of OSim, especially those provided by the RemoteAdmin (RAd) interface, and the OpenSim Archive (OAR) format for serialising region data. The following RAd commands are used in original or extended form to implement scalability: 1. 2. 3. 4. 5. 6.
Save OAR (SOAR) : stores regional content in a named OAR file. Load OAR (LOAR) : loads the content of an OAR file to a named region. Create Region (CreReg) : creates a region on a remote computer. Delete Region (DelReg) : removes a region from a Sim permanently. Close Region (ClsReg) : closes a region from a Sim. Teleport : method of the scene object used for transferring players from one region to another.
3.2. Steps in scalability The expansion and contraction methods in our scalability framework respond to Normal, Overloaded, and Underloaded States, as each Sim continuously monitors its current load. Nothing happens while the system is in Normal state. When a Sim is Overloaded, it may initiate a split if it is managing several regions and the players are not in a single region. The Sim may initiate a merge operation when its load drops below a lower limit. The split and merge operations use their corresponding capacities (SplitCapacity and MergeCapacity) to trigger the corresponding procedures but both use a 7-step procedure to transfer each region in an aggregate. We tag each step with RAd methods used: 1. 2. 3. 4. 5. 6. 7.
Save the content of the transferring region: SOAR Move the players to the corresponding transit region: Teleport Get the specification of the transferring region. Remove the transferring region from the source Sim: ClsReg, DelReg Create a region on the target Sim with the same specification: CreReg Restore content to the new region on the target Sim: LOAR Move the players from transit region to the target Sim: Teleport
3.3. The abstract implementation model The proposed framework is implemented as a plug-in application in C# which works on both Windows and Linux environments. It uses the grid service of OSim to maintain the uniqueness of regions and to find them whenever they are required. Three modules are introduced to implement the contraction and expansion models: Main Controller, the Expansion module, and the Contraction Module. In the current implementation, each Sim is either a parent or a child handling part of the world. Each Sim may manage more than a unit region and it has the capability to re-assign regions. Merge is possible only with the single parent Sim in the current implementation. Each Sim continuously monitors load while the simulation is running, and initiates a split or a merge when required. A pool of child Sims are used to share the load with an original parent Sim, that initially and finally manages the whole space. If a Sim load exceeds the SplitCapacity and a split is possible, it determines a list of scenes by using the ARA algorithm, and then it calls the Expansion Module to ease the load. On the other hand, if the load of a child Sim is less than, or equal to, the MergeCapcity and a merge with the parent Sim is possible, it initiates the Contraction Module to integrate its load with its parent. A merge is only permitted when all regions can be returned to the parent, after which the resource is released.
4. Evaluation To validate and illustrate the work, we used a small experimental VW containing four regions in a square configuration. The simulation infrastructure comprises four Sims each with a single transit region (see Table 1).
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
123
Table 1 Description of 4 Simulator test system with corresponding content and transit regions.
Simulator (Sim)
HTTP Listening Port
Sim-I (Parent)
90 0 0
Sim-II (Child) Sim-III (Child) Sim-IV (Child)
9005 9010 9015
Regions (Region: XY Co-ordinate:Port)
Transit Region(Region: XY Co-ordinate:Port)
A:10 0 0,10 0 0:90 0 0 B:1001,1000:9001 C:10 0 0,10 01:90 02 D:1001,1001:9003 Nil Nil Nil
T1:1005,1005:9105
T2:1006,1006:9106 T3:1007,1007:9107 T4:1008,1008:9108
Table 2 The description of example worlds content and additional dynamic content for a 4-region world. Original Content Description Example World Content
File Size (MB)
Prims/Scripts (Num/Num)
Assets/Objects (Num/Num)
Additional Content Prims/Scripts (Num/Num)
OpenVCE [47] CSI World [48] FairieCastle [49] Maya Pyramid [50]
21 8.02 19.3 6
2148/152 1256/184 2680/116 1227/2
385/96 151/307 290/194 56/34
50 0/50 0 50 0/50 0 50 0/50 0 50 0/50 0
4.1. Evaluation environment Sim-I is designated a parent Sim that initially hosts all four regions. Sim-II to Sim-IV are designated as child Sims which start with only their corresponding transit regions and wait to share the load with the parent Sim. It is important to note that typical Sims have the capability to host much bigger spaces. Our current implementation assumes that a VW is pre-partitioned into the number of regions over a grid. Each region is treated as a basic unit that is considered by the ARA algorithm during the aggregation process. Regions cannot be further divided so all Sims are directly connected to the parent Sim in an RMT of no more than a single additional level. 4.2. Platforms and experimental set-up We performed investigations on both Windows and Linux platforms to see the impact of computation power, choice of operating system, and network architecture, on performance. 4.2.1. Windows For Windows, we used a small private network of machines running Windows 7. A Pentium Dual-Core system (with a combined processor speed of 3.2GHz and 2GB RAM) was used to run both the OSim grid services as well as the MySQL database instance for the grid. Four Pentium-IV systems (each with processor speed of 3.2GHz and 1GB RAM) were used to run both an OSim instance and its corresponding database instance. A Dual-core system together with an another PentiumIV system was used to populate the VW with interactive clients. 4.2.2. Linux For Linux, we used the Cluster facility at UEA Norwich, UK [46]. Each cluster node comprises dual quad core 2.66GHz processors with 8GB RAM. One node was used to run grid services together with its MySQL database instance. Four other nodes were used to run an OSim instance and its corresponding database instance. The world was populated using additional nodes. 4.3. World content and interactive players Evaluation considered both quantities of content and interactive players. A number of different example VWs freely available in the OAR format were tested using a range of scene primitives to represent the objects in the worlds. The basic themes of these spaces are provided below (see Table 2 for detailed descriptions): 1. The Open Virtual Collaboration Environment (OpenVCE) [47] is a community based project and it provides free support to facilitate collaborative activities. Further, it integrates a community web portal to a VW. 2. The CSI World [48] is developed to solve crime scenes by testing virtual blood samples and inspecting collected evidences.
124
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
3. The FairieCastle [49] world comprises an island based castle with a hidden cave and a waterfall behind it. It has growing trees and mushrooms. 4. The Maya Pyramid [50] visualises the Temple of the Inscriptions, a Mayan pyramid in Palenque, Mexico and large houses and small thatched huts called ‘palapas’. Dynamic content represented by 500 additional Prims and Active Script (PandASs) (adapted from [51]) was added to the basic example worlds for fair comparison of different activities during a transfer. Here, a PandAS is a square that has an attached active script which rotates it and changes its colour every few seconds. Using balanced content comprising both dynamic and static elements was helpful to highlight issues in the current region removal strategies. Use of dynamic content and complex objects seems to have only a small impact on resource load [23]. However, player requests and responses to these requests have a very strong impact as the OSim services become overloaded very quickly due to reliance on an old server-client model [43]. Complexity of objects has shown a noticeable impact on the content load mechanism. The Bot concept was used to test the behaviour of interactive clients during transfers. The test client application of the OpenMetaverse [52] Library was used to login Bots and provide scripted actions for them to follow. Scripts were developed to ask Bots to randomly select activities such as walking, talking, shouting, sitting, sleeping and teleporting. While walking or flying, a Bot might cross regional boundaries. Also, a Bot might randomly select a region (including the current region) to teleport to. Finally, Bots are directed to go back to their original home region. To determine inter-Sim crossings, we counted the number of connections/disconnections based on Bots crossing Sim boundaries either via teleporting or walking. The use of Bots reduces the overall complexity of client software, but as the Bots are separate from the simulation framework, the same migration delays are observed for Bots and actual players. 4.4. Statistical parameters The statistics collected in this work fall in one of three categories: Individual; Cumulative; and Resource based. Individual statistics represent time consumed by the individual activities that constitute the scalability process and are collected because of their contribution to total transfer time. The time required to store the content of a region into an OAR file (implementing scalability step-1) is represented as Store Content Time (TStCon ). Transfer to Transit Time (TTfr2Tst ) denotes the total time taken by explicitly teleporting the players in a region to a transit region (implementing scalability step-2). Delete Region Time (TDelReg ) is the time needed to delete a region from the Sim permanently (implementing scalability step-4 using the delete option). Close Region Time (TClsReg ) is the time needed to remove a region from the Sim temporarily (implementing scalability step-4 using the close option). Remove Region Time (TRemReg ) is the time taken by an enhanced close region strategy with persistence disabled, which explicitly deletes the region content from the database (implementing the scalability step-4 using the extended close option). The time taken to create a region on a remote Sim is provided as Create Region Time (TCreReg )(implementing scalability step-5). Load Content Time (TLdCon ) is the time required to load content to a region from an OAR file (implementing scalability step6). Transfer to Region Time (TTfr2Reg ) represents the total time to transfer players from a transit region back to the original region (implementing scalability step-7). Cumulative statistics below identify timings based on different individual activities described above and they are used for comparing the proposed work with traditional methods. The Region Content Transfer Time (TRegConTfr ) specifies only the content transfer time of a region. It is calculated by adding TStCon , TRemReg , TCreReg , and TLdCon . The Region Un-availability Time (TRegUnAv ) represents the time span starting from locking the region to bringing it up again. It is calculated by combining TRegConTfr and TTfr2Tst . The Region Transfer Time (TRegTfr ) denotes the time required to transfer both content and players. It is calculated by adding TRegConTfr , TTfr2Tst , and TTfr2Reg . Total Time (TTotal ) provides the time taken by all the regions transferred being part of an aggregate. In other words, it is calculated by adding TRegTfr of all the regions in an aggregate. Resource based statistics show the impact of scaling a world. Number of Used Resources represent the total number of resources handling the current capacity. Number of inter-Sim crossings denotes the number of players who cross the space boundaries held by different Sims. 4.5. Results and discussion Timings were taken of the RAd commands used in the transfer steps outlined in Section 3.2. We present some general observations on performance on both Windows and Linux. The Linux environment has better performance than Windows for the original region removal strategies (namely Delete Region (DelReg) and Close Region (ClsReg)) and the Load Content algorithm. Table 3 provides a summary of the timing information for the extended example worlds content. Fig. 3(a) and (b) visualises the DelReg and ClsReg strategies in both environments. It is, however, observed that these operations still take a huge amount of time, and the best timings (3 to 6 s) for these arrangements are achieved by an enhanced ClsReg strategy. Fig. 4 compares the timing information of content load algorithm on both environments, making it clear that Linux performs significantly better than Windows.
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
125
Table 3 Comparison of regional removal strategies and load content for a 4-region world on both windows and Linux environments.
Region Name
A B C D
Extended Example World Content
OpenVCE [47] CSI World [48] FairieCastle [49] Maya Pyramid [50]
Comparison of Region Removal Strategies Windows Platform
Linux Platform
TLdCon
TDelReg (Sec)
TClsReg (Sec)
TDelReg (Sec)
TClsReg (Sec)
Windows (Sec)
Linux (Sec)
78 93 88 68
91 90 118 87
63 78 64 51
73 71 104 68
99 42 81 18
37 13 31 6
Fig. 3. Comparison of: (a) Delete Region (DelReg), and (b) Close Region (ClsReg) strategies on both Windows and Linux Environments.
Fig. 4. Comparison of Load Content on both Windows and Linux Environments.
Linux, however, shows a very little improvement for transferring players, taking on average 8 seconds to teleport a player compared with 9 seconds for Windows. The remaining activities on both environments have similar characteristics and no important performance differences are shown, except in the case of content load. The Linux environment is used to illustrate the complete functionality of the proposed framework. 4.6. Scalability of the system and possible restrictions This work has been analysed to identify the parameters which could possibly restrict scaling of VWs. The total number of possible concurrent users is termed the GridCapacity and it is based on SimCapacity.
126
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
Table 4 Expansion and contraction of the proposed method for a 4-region world on Linux environment .
Phase
Step
Split
1 2 3 4
Merge
1 2 4 5 6
Regional Players
From Sim
To Sim
Region Name
TStCon (Sec)
TTfr2Tst (Sec)
TRemReg (Sec)
TCreReg (Sec)
TLdCon (Sec)
TTfr2Reg (Sec)
TRegConTfr TRegUnAv (Sec) (Sec)
TRegTfr (Sec)
TTotal (Sec)
C:08 D:06 A:14 B:12 C:16 D:16 A:24 B:22 C:60 D:18 A:60 B:22 C:60 D:60 A:60 B:60
I
II III
7 5 8
96 47 129
5 3 6
2 1 2
11 6 31
94 48 125
25 15 47
121 62 176
215 110 301
325
I
B D C
301
II
IV
D
4
145
4
2
5
141
15
160
301
301
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
III
I
C
7
78
5
2
29
82
43
121
203
203
IV
I
D
5
42
4
1
5
38
15
57
95
95
II
I
B
6
38
5
2
11
41
24
62
103
103
C:60 D:60 A:60 B:60 C:20 D:15 A:05 B:25 C:10 D:15 A:05 B:25 C:10 D:05 A:00 B:15 C:10 D:05 A:00 B:05
In theory, with a uniform distribution of players, the availability of all required Sims, and the assumption that each Sim hosts a single unit region, suggests a GridCapacity equal to SimCapacity × Number of Sims. However, in practice, it is limited by three factors: number of available Sims, number of unit regions, and player distribution. Player distribution is the most critical factor. If all players are in a single region of a bigger world, the availability of Sims cannot achieve scaling (GridCapacity equals SimCapacity which is typically 60 players). Two populated regions cannot go beyond 120 players in total with a single additional Sims. Even if multiple regions are populated, the system capacity cannot increase unless an additional Sim is available to share the load. Further, additional Sims are unable to increase the capacity once the theoretical limit (say 240 players for a 4-region world) has been reached. 4.7. Illustration of a 4-region world on Linux This section illustrates the expansion and contraction models with the help of an example 4-region world with a parent Sim initially hosting all the regions. Players are introduced at random and the world is expanded to use up to 4 Sims. The players are then randomly but continuously taken off the world to show the merging process until the whole world returns back to being hosted on the parent Sim. 4.7.1. Scalability and time analysis For simplicity, this work used a numeric value of 40 for SplitCapacity based on our investigations presented in [23]. Table 4 provides important steps in the expansion phase. Players are distributed among 4 regions and the world is expanded to the maximum extent using 4 Sims which achieves GridCapacity of 240 players (SimCapacity (60) × Number of Sims(4)), the maximum possible capacity for the current implementation. When the world is completely expanded, each Sim manages a unit region and no further increase is possible for a 4 region world. We use this test configuration for illustration only. In a practical system, the parent Sim could host more regions (say 16), and the original configuration could contain multiple such parent nodes, each holding a 16 region section of the total simulated world. The ARA algorithm [19] determines contiguous spaces that partition load as evenly as possible. It excludes certain partitions, by imposing a continuity constraint, even though they might possibly achieve better distribution of load. Table 4 shows that at step 1 of the expansion phase it partitions the world load 22:18, and delegates aggregate [B,D] with 18 players to Sim-II, while leaving aggregate [A,C] with 22 players on Sim-I. It can be seen that it ignored the uniform load 20:20 due to odd cases combining diagonal regions in different aggregates. The aggregate transfer at step 1 takes 325 seconds in total. However, since we transfer the two regions B and D in turn, an affected player experiences a much shorter disruption: 215 seconds for B, and 110 seconds for D. Although the overall time taken may not be reduced, the impact on individual players is better. Steps 2 and 3 of the expansion phase delegate region C from Sim-I to Sim-III, and region D from Sim-II to Sim-IV, leaving regions A and B by themselves. The proposed framework has potential to scale a world, and uses resources flexibly, based on need. It is clear that our system improves performance, but the overall time taken by our system is dominated by player transfer time. Players are never unavailable, but they experience longer delays to TRegUnAv though TRegConTfr is significantly reduced. TRegConTfr is dominated by the Load Content (LdCon) time and the development of a faster algorithm is needed which is part of our future work. The transit method provides a better user experience, but we would be looking into more efficient mechanisms for
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
127
Fig. 5. Number of resources and Inter-Sim crossings as player capacity increases for a 4-region world on Linux.
player transfer in future. A principle of our implementation is to make minimal conservative changes to the OSim framework to provide a working prototype that can be adopted by others. To overcome some performance bottlenecks it is expected that more fundamental changes will be needed. At present, the time taken to transfer a region is considerable, but the use of a transit regions means that players are not frozen out during the whole process. In the transit region, they could be given the option of teleporting to a region unaffected by a split or merge, or could be provided with general information or activities until region transfer is complete. 4.7.2. System statistics and analysis When all the requirements for a split are satisfied, existing Sims share their load with additional Sims to scale the world. Both the Sim resources required, and the interactions between the Sims, are increased as player numbers increase in a world. Fig. 5 presents the number of resources in use and current capacity at different stages of the example experiment presented in Table 4. It is important to note that for persistence purposes at least one Sim is used even if the world has no interactive players at all, as in step 1. It also presents inter-Sim crossings of players as the system scales. Fig. 5 shows that as the number of resources and player capacity increases, the number of inter-Sim crossings also greatly increases. 4.7.3. Merging and time analysis The Parent Merge strategy is used to merge the load in this work, whereby a child Sim integrates its load directly with its parent Sim. Each merging step depends on two preconditions. Firstly, the combined load of both Sims needs to be less than or equal to MergeCapacity (considered 20 in this work for simplicity, and to avoiding frequent splits when player numbers change by small amounts). Secondly, they must lead to a combined contiguous space on the parent. In certain steps, the process allows contiguous spaces that are normally not used by the ARA algorithm during assignment, however, they do not lead to limitations that must be avoided. Table 4 presents the potential steps based on random decrease in number of players at different steps. It starts with maximum GridCapacity obtained during the scaling process presented in Table 4 (which is 240, after step-4 of expansion). In the first step of merging, Sim-I is hosting region A and the remaining child Sims are hosting the rest of the regions one each per Sim. It can be noted that first condition is satisfied by region D on Sim-IV and region A on Sim-I at step-2, whose combined capacity equals MergeCapacity. However, they constitute a non-contiguous space and thus no integration happens at this stage. The next three steps (step 3 to 5) illustrate the load integration of region C in Sim-III, region D in Sim-IV and region B in Sim-II with Sim-I at different time intervals as each step satisfies both the constraints. The Parent Merge strategy reduces complexity but Sims might wait for the parent Sim handling nothing at certain stages. Odd combinations are rejected to maintain the benefits we described earlier. Allowing such merges would potentially reduce the use of resources but with a possible compromise on performance as see by users. It can be noted that the current strategy is very simple to implement, although in some cases a Sim has to wait longer before it can integrate its load with the parent. Our future work includes the implementation of another strategy called the Child Merge that allow two siblings to integrate their load and release a resource earlier than the Parent Merge strategy. However, a consequence of the Child Merge is that some regions and players may be transferred multiple times.
128
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
4.7.4. Discussion The enhanced OSim framework has been demonstrated with the help of a 4-region world. It scales, with the help of additional Sims, as player numbers increase, and recovers resources as numbers decrease. Only a single region becomes unavailable while it is being transferred compared with traditional systems that close off all regions until the whole space is transferred. Based on the fact that we never transfer more than 20 players, TRegUnAv on Linux environment never exceeds 220 seconds in our experiments with OpenVCE world loaded to a region that has the most expensive content in terms of transfer. In worst cases, our approach requires the same amount of time as traditional systems, mostly when a world has few regions and a transfer selects only a single region. It is believed that for bigger worlds with players being distributed in multiple regions, we get significant improvement over traditional systems both in terms of number of players and total time they suffer from a split. This framework, therefore, needs to be investigated for bigger spaces. Players are never unavailable so users receive a better experience. In the Parent Merge strategy, the system holds resources for longer than the Child Merge strategy which help release resources much quicker. However, it may have repeated transfers of regions and players in them. More detailed analysis of the Child Merge strategy is needed from the load balancing perspective. 4.8. Performance of bigger worlds We also tested the proposed framework using a comparatively bigger world comprised of 9 regions. Random distribution of players was used to trigger expansion up to a maximum of 9 resources and this world was populated with a maximum of 540 players, corresponding to GridCapacity derived from SimCapacity (60) × resources (9). Since, we used a value 40 for SplitCapacity in this work; the worst case says that a single region might have a maximum of 20 players during a transfer. However, in most of the cases the aggregates we identified were comprised of a number of regions where the players were randomly distributed between regions in an aggregate. For Example, we consider two aggregates from our implementation: one comprises of [A, B, G] regions having [10, 4, 5] players while the other comprises of [A, B, C, D] regions having [8, 4, 5, 3] players. The strategy of transferring regions one at a time greatly reduces the time a single region is unavailable, as it only includes transfer timings for a subset of all players in an aggregate. From the perspective of players, this reduces the total time they are unable to perform their normal activities as compared to the traditional techniques that would transfer the whole aggregate together. It was observed that Inter-Sim crossings increase as the number of resources increase along with the number of players hosted by these resources. The impact on players is similar to that observed in this article for a 4-region world. If system capacity allows, we could start parent simulators with even bigger worlds comprised of 16 and 25 regions. The world made of 16 regions can be expanded up-to hosting a maximum of 960 players with 16 resources. Similarly, 25 resources would be required to expand a world comprises of 25 regions that has a potential of holding a maximum of 1500 players. 5. Conclusions and future work In general, VWs use spatial partitioning to scale [17]. However, this is an expensive operation that requires special attention to control the time taken by a distribution process. The modular structure of OSim, its potential to host large spaces, and to transfer regions sequentially assisted us in using the concept of spatial partitioning for achieving this goal. The aim was to reduce both the time when region content was unavailable, and the total time taken by a transfer. Further, it aimed to reduce the number of players that suffer from a transfer, compared with traditional methods. The basic goal was to cope with issues in both static and dynamic approaches. The approach of assigning large spaces to the parent Sims, by assigning multiple OSim regions to each, was based on the fact that most of the content has a limited number of visitors [45]. Another objective of this work was to provide a better user experience and it was achieved by transferring players to a transit region instead of freezing action while relocating their current region. Other implementation goals include the provision of missing features in the OSim framework and thus providing a platform to work on scalability issues. The Evaluation results of our work, showed improvements over the existing mechanisms outlined in Section 2.1 targeting a varied set of parameters. This paper, however, is only reporting the timing information for region transfer, and the activities involved in a transfer, on both Windows and Linux platforms. It presents the extended ClsReg strategy to reduce the content unavailability time and uses a 4-region world to illustrate the expansion and contraction models on Linux platform. For more details, see [23]. This paper presented the implementation of our scalability framework comprising an expansion and a contraction model and illustrated it with the help of a small world of 4 regions. It used content from a number of current OpenSimulator Virtual Worlds. It increased number of players to populate the regions and utilised a parameter called SplitCapacity for splitting the world. This work compared different activities during a transfer on both Windows and Linux environments by measuring a number of statistical parameters. The Linux environment showed improved performance over Windows. An extended Close Region method achieved significant improvement over the traditional region removal strategies.
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
129
Merging is triggered by a comparatively smaller number of players in the reintegrated space, designated MergeCapacity. It used a simple merging strategy called Parent Merge in which each child directly returns its load to the parent Simulator. Our future work includes testing the proposed framework for bigger worlds. It further includes investigating the Child Merge strategy that tries to balance the load better than the Parent Merge strategy but with additional transfer of regional content and their corresponding players. The development of faster load content algorithm and improving player transfer time are also part of our future work. References [1] R.M. Fujimoto, Parallel and Distributed Simulation Systems, Wiley Interscience, 20 0 0. [2] L. Yilmaz, S. Taylor, R. Fujimoto, F. Darema, Panel: the future of research in modeling and simulation, in: Simulation Conference (WSC), 2014 Winter, 2014, pp. 2797–2811, doi:10.1109/WSC.2014.7020122. [3] R. Fujimoto, K. Perumalla, G. Riley, Network Simulation, Synthesis lectures on communication networks, Morgan & Claypool Publishers, 2007. [4] R. Pardo, J. Kaplan, T. Chilton, World of Warcraft, 2015, (http://us.battle.net/wow/en/). Accessed: October, 2015. [5] R. Koster, Ultima online, 2015, (http://www.uoherald.com/). Accessed: October, 2015. [6] C. Ondrejka, A PIECE OF PLACE: Modeling the Digital on the Real in Second Life, Working Paper Series, University of South California, 2004. [7] SL-Site, Second life: the official website, 2015, (http://www.secondlife.com/). Last accesed in October, 2015. [8] OSim-Wiki, OpenSimulator (OSim): an introduction, 2015, (http://opensimulator.org/wiki/Main_Page). Last accesed in October, 2015. [9] M. Hakonen, P. Bosch-Sijtsema, Virtual worlds enabling distributed collaboration, J. Virtual Worlds Res. 7 (3) (2014) 1–19. [10] P. Alahuhta, E. Nordbck, A. Sivunen, T. Surakka, Fostering team creativity in virtual worlds, J. Virtual Worlds Res. 7 (3) (2014) 1–20. [11] H. Liu, M. Bowman, Scale virtual worlds through dynamic load balancing, in: DS-RT ’10: Proceedings of the 2010 14th IEEE/ACM International Symposium on Distributed Simulation and Real-Time Applications, IEEE Computer Society, Washington, DC, USA, 2010, pp. 43–52. http://dx.doi.org/10.1109/ DS-RT.2010.14. [12] C.M. Bowman, D. Lake, J. Hurliman, Designing extensible and scalable virtual world platforms, Extensible Virtual Worlds Workshop (X10), 2010. [13] H. Liu, M. Bowman, R. Adams, J. Hurliman, D. Lake, Scaling virtual worlds: simulation requirements and challenges, in: Proceedings of the 2010 Winter Simulation Conference (WSC ’10), 2010, pp. 778–790. [14] N. Gupta, A. Demers, J. Gehrke, P. Unterbrunner, W. White, Scalability for virtual worlds, in: Proceedings of the 2009 IEEE International Conference on Data Engineering (ICDE ’09), 2009, pp. 1311–1314. [15] SL-Wiki, Second life grid: introduction, 2015, (http://wiki.secondlife.com/wiki/Second_Life_Grid). Accessed: October, 2015. [16] IDC, Butterfly.net: powering next generation gaming with on-demand computing, Technical Report, IBM: An IDC e-Business Case Study, 2004. [17] D. Lake, M. Bowman, H. Liu, Distributed scene graph to enable thousands of interacting users in a virtual environment, in: Proceedings of the 9th Annual Workshop on Network and Systems Support for Games, in: NetGames ’10, IEEE Press, Piscataway, NJ, USA, 2010, pp. 19:1–19:6. [18] U. Farooq, J. Glauert, Joint hierarchical nodes based user management (JoHNUM) infrastructure for the development of scalable and consistent virtual worlds, in: DS-RT ’09: Proceedings of the 13th IEEE/ACM Symposium on Distributed Simulation and Real-Time Applications, IEEE Computer Society, Washington, DC, USA, 2009a, pp. 105–112. [19] U. Farooq, J. Glauert, ARA: an aggregate region assignment algorithm for resource minimisation and load distribution in virtual worlds, in: NDT ’09: Proceedings of the first IEEE International Conference on Networked Digital Technologies, Prague, Czech Republic, 2009b, pp. 404–410. [20] J. Helmer, Second life and virtual worlds, Technical Report, Learning Light Limited, UK., 2007. [21] SL-Wiki, Second life grid extension: architecture working group, 2015, (https://wiki.secondlife.com/wiki/Architecture_Working_Group). Accessed: October, 2015. [22] U. Farooq, J. Glauert, Scalable virtual worlds: an extension to the OpenSim architecture, in: ICCNIT ’11: Proceedings of the IEEE International Conference on Computer Networks and Information Technology, 2011, pp. 29–34. [23] U. Farooq, The Design of a Contemporary Infrastruture for Scalable and Consistent Virtual Worlds, School of Computing Sciences - University of East Anglia, Norwich, UK, 2012 Ph.D. thesis. [24] T. Wang, C.-L. Wang, F.C. Lau, An architecture to support scalable distributed virtual environment systems on grid, J. Supercomput. 36 (3) (2006) 249–264. http://dx.doi.org/10.10 07/s11227-0 06-8296-z. [25] A. Bharambe, J. Pang, S. Seshan, Colyseus: a distributed architecture for online multiplayer games, in: Proceedings of the 3rd conference on Networked Systems Design & Implementation - Volume 3, in: NSDI’06, USENIX Association, Berkeley, CA, USA, 2006. 12–12 [26] T. Hampel, T. Bopp, R. Hinn, A peer-to-peer architecture for massive multiplayer online games, in: Proceedings of 5th ACM SIGCOMM Workshop on Network and System Support for Games, in: NetGames ’06, ACM, New York, NY, USA, 2006. [27] L. Chan, J. Yong, J. Bai, B. Leong, R. Tan, Hydra: a massively-multiplayer peer-to-peer architecture for the game developer, in: Proceedings of the 6th ACM SIGCOMM workshop on Network and system support for games, in: NetGames ’07, ACM, New York, NY, USA, 2007, pp. 37–42. http://doi.acm. org/10.1145/1326257.1326264. [28] OSGrid, Inc., OpenSimulator(OSim) grid, 2015, (http://www.osgrid.org/). Accessed: October, 2015. [29] D.N.B. Ta, S. Zhou, H. Shen, Greedy algorithms for client assignment in large scale distributed virtual environments, Simulation 84 (10–11) (2008) 521–533. [30] B.D. Vleeschauwer, B.V.D. Bossche, T. Verdickt, F.D. Turck, B. Dhoedt, P. Demeester, Dynamic microcell assignment for massively multiplayer online gaming, in: 4th ACM SIGCOMM workshop on Network and System Support for Games, ACM New York, NY, USA, Hawthorne, NY, 2005, pp. 1–7. [31] R. Chertov, S. Fahmy, Optimistic load balancing in a DVE, 16th International Workshop on Network and Operating System Support for Digital Audio and Video, ACM New York, NY, USA, Newport, Rhode Island, 2006. [32] S. Shirmohammadi, I. Kazem, D.T. Ahmed, M. El-Badaoui, J.C.D. Oliveira, A visibility-driven approach for zone management in simulations, Simulation 84 (5) (2008) 215–229. [33] F. Chang, C. Bowman, W. Feng, XPU: A Distributed Architecture for Metaverses, Technical Report 10-04, Department of Computer Science, Portland State University, Portland, Oregon, 2010. [34] A.M. Burlamaqui, M.A.M. Oliveira, A.M.G. Goncalves, G. Lemos, J.C.D. Oliveira, A scalable hierarchical architecture for large scale multi user virtual environments, in: IEEE International Conference on Virtual Environment, Human Computer Interfaces and Measurement Systems, 2006, pp. 114–119. [35] R.K. Balan, M. Ebling, P. Castro, A. Misra, Matrix: adaptive middleware for distributed multiplayer games, in: Lecture Notes in Computer Science, 3790/2005, Springer Berlin/Heidelberg, 2005, pp. 390–400. [36] Intel Research Labs., ScienceSim: a virtual environment for collaborative visualization and experimentation, 2010, (White paper, Intel Labs). [37] M. Mazur, Load balancer project, 2015, (http://forge.opensimulator.org/gf/project/loadbalancer/). Accessed: October, 2015. [38] A. Deldari, M. Naghibzadeh, S. Abrishami, Cca: a deadline-constrained workflow scheduling algorithm for multicore resources on the cloud, J. Supercomput. (2016) 1–26, doi:10.1007/s11227- 016- 1789- 5. [39] S.B. Yoginath, K.S. Perumalla, Efficient parallel discrete event simulation on cloud/virtual machine platforms, ACM Trans. Model. Comput. Simul. 26 (1) (2015) 5:1–5:26, doi:10.1145/2746232. [40] D. Meiländer, A. Ploss, F. Glinka, S. Gorlatch, A dynamic resource management system for real-time online applications on clouds, in: European Conference on Parallel Processing, Springer, 2011, pp. 149–158. [41] A. Sanatinia, I.A. Oliver, A.H.D. Miller, C. Allison, Virtual machines for virtual worlds, CLOSER 2012 (2012).
130
U. Farooq, J. Glauert / Simulation Modelling Practice and Theory 72 (2017) 118–130
[42] 3D Virtual Web, Inc., CloudServe, 2016, (http://www.cloudserve.biz). Accessed: August, 2016. [43] T. Rogers, Should you host on the Amazon cloud?, 2013, (http://www.hypergridbusiness.com/2013/11/should- you- host- on- the- amazon- cloud/). Accessed: August, 2016. [44] OSim-Wiki, OpenSimulator(OSim): megaregions, 2015, (http://opensimulator.org/wiki/Setting_Up_Mega-Regions). Accessed: October, 2015. [45] M. Varvello, F. Picconi, C. Diot, E. Biersack, Is there life in second life? in: Proceedings of the 2008 ACM CoNEXT Conference, in: CoNEXT ’08, ACM, New York, NY, USA, 2008, pp. 1:1–1:12. [46] UEA-Norwich, HPC at the University of East Anglia, Norwich UK, 2015, (http://rscs.uea.ac.uk/high- performance- computing/faqs/history- of- hpc- at- uea/ grace). Accessed: October, 2015. [47] Edin.Uni, Open virtual collaboration environment (OpenVCE.net), 2015, (http://openvce.net). Accessed: October, 2015. [48] A. Zuiker, CSI virtual world archive, 2015, (http://labs.greenbush.us/CSI-Opensim.zip). Accessed: October, 2015. [49] J. Random, FairieCastle archive, 2015, (http://www.mediafire.com/file/l70hqvtcb8ub7z6/FairieCastle-v0.1.oar). Accessed: October, 2015. [50] D. Pentecost, Maya pyramid archive, 2015, (http://www.gomaya.com/glyph/opensim_dp/maya3.oar). Accessed: October, 2015. [51] Intel Research Labs, ScienceSim performance tests, 2015, (http://sciencesim.com/wiki/doku.php/opensim/performance_tests). Accessed: October, 2015. [52] OMF, Open metaverse, 2015, (http://openmetaverse.org/). Accessed: October, 2015.