0.7 Release
From OpenSimulator
Contents |
Release Notes
Major changes from 0.6.9
Release 0.7 features the completed major refactoring and rearchitecting work that happened during the second half of 2009 and the first quarter of 2010. This work targeted mainly the resource services and servers previously known as UGAIM. These servers have been replaced by one single server shell called ROBUST which can now run any combination of services in it.
The standard opensim release includes configuration files for two deployment architectures:
- The standalone deployment consists in having both the simulator and the services in one single process, OpenSim.exe, configured by OpenSim.ini (and included .inis under bin/config-include).
- The grid deployment has 1 ROBUST server process (Robust.exe) running all services, configured by Robust.ini (or Robust.HG.ini); and one or more simulators (OpenSim.exe), each configured by OpenSim.ini (and included .inis under bin/config-include).
Users and distributors of OpenSim can deviate from these pre-existing configurations in many ways. Specifically, large grids will benefit from splitting the single ROBUST server into several ROBUST servers, each running a collection of services. Instructions for how to do that are found elsewhere. (Think of the ROBUST server as an Apache server, to which you can load service modules)
The services themselves have been reconceptualized; we now have the following set of main services:
- Assets -- the asset store
- Authentication -- passwords and auth tokens
- Authorization -- access control
- Avatar -- the visual representation of users, formerly known as "avatar appearance"
- FreeSwitch -- voice
- Friends -- social net
- Gatekeeper -- hypergrid foreign users control
- Grid -- maps map locations to IPs and regions
- Grid User -- grid-local information about users
- Inventory -- the inventory store
- Login -- the login service
- Presence -- tracks where in the grid user agents are
- Profile (Basic) -- user profiles
- User Accounts -- administrative info about users
- User Agents -- hypergrid local users protection
The simulators access these services through abstract interfaces, therefore being isolated from implementation details. The services are seamlessly instantiated as plugins in any process, namely ROBUST server shells and the simulators processes themselves, which means that we have complete reuse of service code between standalone and grid configurations. The plugin specification is done in configuration files (.ini). Moreover, access to remote services is also seamlessly achieved through the instantiation of stubs (aka service connectors) as plugins; again, the specification of which stubs the simulators use is done externally in configuration files (.ini).
This layering allows for alternative third-party implementations of the entire resource service infrastructure without having to affect one line of code in the simulator, and simply using different ini files. Starting in this release, there is an alternative infrastructure to Robust: SimianGrid, a separate project from OpenSim. The standard OpenSim release includes simulator's configuration files for the SimianGrid, but that infrastructure is not distributed with OpenSim, only Robust is.
Bug Fixes
- Neighboring regions being brought up and down results in correct accessibility in the connected clients.
- Friends online/offline notifications are now working across the board.
- Object attach/drop/attach correctly working.
- Inventory folder 'wear' working correctly.
- Inventory accept/decline notifications working correctly.
Database changes
The database schema has changed considerably from previous releases. The picture on the right shows the entire set of tables for a clean installation of the 0.7 release with MySql.
In the picture, the tables are grouped into 2 catalogs, the service-db and the simulator-db, corresponding to the data managed by the resource services (the ConnectionString under the [DatabaseService] section) and the data managed by the simulators (the connection_string under [Startup] section), respectively.
As before, you have a lot of freedom to define how the data is organized, so, for example you might have one single catalog with all the tables. In any case, after a clean installation of release 0.7, there should be all these tables in your DB.
For SQLite, the tables are split among several .db files under the bin directory. Here are the SQLite .db files that a clean install of 0.7 should produce:
crista@crista-PC /cygdrive/c/dev/opensim/bin $ ls -l *.db ----------+ 1 crista None 6555648 Jun 14 08:15 Asset.db ----------+ 1 crista None 564224 Jun 14 08:15 OpenSim.db ----------+ 1 crista None 5120 Jun 14 08:15 auth.db ----------+ 1 crista None 4096 Jun 14 08:14 avatars.db ----------+ 1 crista None 4096 Jun 14 08:14 friends.db ----------+ 1 crista None 4096 Jun 14 08:14 griduser.db ----------+ 1 crista None 26624 Jun 14 08:15 inventory.db ----------+ 1 crista None 0 Jun 14 08:14 inventoryStore.db ----------+ 1 crista None 4096 Jun 14 08:15 userprofiles.db
With SQLite, the simulator data is in OpenSim.db; the service data is in all the other files. inventoryStore.db has to do with migrations of inventory from older OpenSim releases. On a fresh install, this file is created, but is has no data, you can safely delete it afterward.