- Slides: 12
Mapping the Open. Simulator Architecture Chris Dempewolf Greg Stafford Seth Williams
The Problem Open. Sim is a relatively new development. As such, standards for how this particular virtual world uses communication protocols and databases have not yet been established. Our goal through this project was to update the outdated Database Documentation page in the Open. Sim Wiki so the community at large would know how their system is put together and how it functions.
Approach #1 Our original idea with how to tackle this problem was simply to dive headlong into the Open. Sim source code (which is available to the public) to find connections between modules. This led to discoveries about how the system was modularized, but did not completely reveal to us how the databases were connected.
What We Learned From Approach #1 Folders were specialized for their own purposes: Region: handles all visual data for regions and avatars. Tests and Test. Suites: exactly what they sound like. Framework: Provided base classes for assets. Client and Server: Provide protocols for communications between the client and server. Data: THIS folder is the one that we learned the most about the database in.
Approach #2 Attempt to map out Open. Sim DBMS Schema Install Open. Sim server and My. SQL database Perform a schema dump Generate a ER diagram from dump file No explicitly defined foreign keys Use existing documentation, My. SQL practices, and source code to find foreign keys and relations
Components of the Open. Sim Schema
Components of the Open. Sim Schema Physical Space – the three-dimensional environments in which the users can navigate Physical Objects – graphical information used to represent physical objects within three-dimensional environment Identification – authorization information to uniquely identify a user and the verifcation information Assets – the objects held or owned by a signle user, avatar, physical space, or social group (different forms of media)
Components of the Open. Sim Schema Social – social relations between various users. Expansion – table to handle the synchronizing of the hardware components required to support the virtual world. Mapping – the mapping tables required to handle ‘manyto-many’ relationships Server Handling – tables required for server processing and network transmission
Open. Sim in a Nutshell Layered Client/Server Architecture Services Assets Inventory User Grid/Hyper. Grid Functionality
Design Principles Modularity Abstraction Extensibility Separation of Concerns