The Problem OpenSim 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 OpenSim 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 OpenSim 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 TestSuites: 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 OpenSim DBMS Schema Install OpenSim server and MySQL database Perform a schema dump Generate a ER diagram from dump file No explicitly defined foreign keys Use existing documentation, MySQL practices, and source code to find foreign keys and relations
Entity-Relationship Diagram
Components of the OpenSim Schema
Components of the OpenSim 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 OpenSim 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 ‘many - to- many’ relationships Server Handling – tables required for server processing and network transmission
OpenSim in a Nutshell Layered Client/Server Architecture Services Assets Inventory User Grid/HyperGrid Functionality
Design Principles Modularity Abstraction Extensibility Separation of Concerns
Conclusions
Recommend
More recommend