Services and Service Connectors Configuration

From OpenSimulator

Revision as of 09:52, 20 May 2009 by Diva (Talk | contribs)

Jump to: navigation, search

Starting in r9562 OpenSim has a set of new configuration variables that specify how services and service connectors are set up. The purpose of these new configuration variables is to move away from the brittle "grid vs. standalone" paradigm, as that was a very limiting model. OpenSim is moving into a service-oriented model where simulators can easily connect to services, independent of where they execute. This service-oriented model features a very flexible service connector and composition mechanism, enabling diversity in service implementations without having to change the simulator code.

The new architecture brings changes in configuration variables of the simulators (OpenSim.ini), and also changes in the way the servers are configured. What follows explains the new configuration variables in OpenSim.ini, using the asset service as an example.

[Modules]
    ; Choose one 
    AssetServices = "LocalAssetServicesConnector"
    ;AssetServices = "RemoteAssetServicesConnector"
    ;AssetServices = "HGAssetBroker"

    ; Leave this commented out
    ;AssetCache = "CoreAssetCache"
   ...

This section above specifies which service connector your simulator uses.

  • If you are running a standalone grid (i.e. one process grid-in-a-box), and/or if you want to store your simulator's assets locally, you want to set it to the default LocalAssetServicesConnector.
  • If your simulator is connected to an external grid and/or if it uses a remote server to store its assets, you want to set it to RemoteAssetServicesConnector.
  • If you want to use the current HyperGrid architecture that supports asset exchanges between simulators in different grids, you want to set it to HGAssetBroker, independent of whether your grid is standalone or external.

Many more asset service connectors may come long. For example, if someone implements an asset server that uses a completely different protocol, all the implementer needs to do is to write one of these service connectors for his/her service implementation, as a region module; the simulator administrators can then simply install that module and specify its name above, as a replacement for the 3 options that come with OpenSim.

The last variable in the block above specifies whether you want your simulator to cache assets in memory or not. Memory caching improves speed on asset access but increases memory usage.

The next set of variables zooms in on the configuration of the asset service connector itself.

[AssetService]
    ; Parameters for local assets
    LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
    StorageProvider = "OpenSim.Data.SQLite.dll"
    ;StorageProvider = "OpenSim.Data.MySQL.dll"
    ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;"
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"

    ; Parameters for remote assets
    ;AssetServerURI = "http://localhost:8003/"
     
    ;; Parameters for the HG Broker
    ; Use this one if you have a standalone grid
    LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService"
    ; Use this one if this sim is connected to a grid-wide asset server
    ;LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector"
    HypergridAssetService = "OpenSim.Services.AssetService.dll:HGAssetService"

The first group of variables pertains to the LocalAssetServicesConnector module in the previous section; the second group (only one variable) pertains to RemoteAssetServicesConnector; and the third group pertains to HGAssetBroker.

  • Parameters for Local assets. If you configured OpenSim in standalone before, you are probably familiar with most of that first set of variables: they are meant to configure the access to the assets database. The only new variable in there is the first one, LocalServiceModule. It specifies the local asset service implementation. Leave it as is.
  • Parameters for Remote assets: If you specified RemoteAssetServicesConnector in the service connectors section, you need to set the URI of the asset server, so uncomment that line and set the URI to be that of the server your simulator is using.
  • Parameters for the HG Broker: The HyperGrid asset connector is a broker, a sort of meta-connector. There are two variables for it: LocalGridAssetService and HypergridAssetService. The former specifies the connector to your local grid, whether that is standalone or external; the latter specifies the implementation to be used when accessing asset servers in other grids. Leave the latter as is. As for the former, LocalGridAssetService: if your sim is a standalone grid, choose the default OpenSim.Services.AssetService.dll:AssetService; if your sim is connected to an external asset server, choose the other one, OpenSim.Servers.Connectors.dll:AssetServiceConnector.

Note that this section of variables is dependent on the previous one, Modules. The choice of the service connector determines which group of these variables will be used by the simulator.

[AssetCache]
    ; Number of buckets for assets
    ;CacheBuckets = 32768

Finally, if you set up your simulator to use the memory asset cache (on the first section), you can specify how many assets the cache will have before it starts dropping them, as caches do. The default is 32K assets, and that default doesn't even need to be specified here. But if you want your cache smaller or larger, uncomment the variable above and set it to a different value.

Personal tools
General
About This Wiki