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
- 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 connectors and 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 top picture on the right shows the entire set of tables for a clean installation of the 0.7 release with MySql. The bottom picture shows the new tables as well as the tables that existed in previous versions of OpenSim and that are now obsolete, stroked in red. OpenSim does not drop the old tables automatically, for obvious reasons. Once you are sure your data migration was successful, you can then drop the obsolete tables manually.
In the picture on top, 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 (like the organization shown in the picture on the bottom). 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.
Upgrading from older releases
Upgrading from older releases is done as usual; no special provisions are required. However, the configuration files have changed, and you need to pay close attention to them.
Standalone Deployments
For standalones, there is no noticeable difference in the mode of operation. The main configuration file is OpenSim.ini, as before; make sure it exists and that is readable. If you are upgrading from 0.6.[7-8-9], you should already know about config-include/StandaloneCommon.ini. If you are upgrading from older releases, please be aware that this additional configuration file is needed. Make sure it exists and that it is readable. There are .example files for both of these.
There were several changes and additions to the configuration files. As such, it is better that you start with the given .example files again and customize from them, as opposed to upgrading your existing ini files.
Grid Deployments
The deployment model for grids has changed considerably, as explained before, so you need to acquire the know-how for operating in this post-0.7 model. The most important change is this: none of the UGAIM servers exist any longer; they have been replaced by one single server shell, Robust.exe, configured by one single configuration file, Robust.ini (or Robust.HG.ini). There are .example files provided. Copy one of them, and make the appropriate customizations.
On the simulators side, the operation is the same as before. The main configuration file is OpenSim.ini, as before; make sure it exists and that is readable. If you are upgrading from 0.6.[7-8-9], you should already know about config-include/GridCommon.ini. If you are upgrading from older releases, please be aware that this additional configuration file is needed. Make sure it exists and that it is readable. There are .example files for both of these.
It is better that you start with the given .example again and customize from them, as opposed to upgrading your existing ini files.