[Opensim-dev] moving away from grid vs. standalone
diva at metaverseink.com
diva at metaverseink.com
Wed Apr 29 16:48:12 UTC 2009
Stefan Andersson wrote:
> How about
>
> ---
> [RegionResourceServices]
> ;GridService = OpenSim.Region.Communications.Hypergrid.dll, HGGridServices
> ;GridService = OpenSim.Region.Communications.Local.dll, LocalBackEndServices
>
> GridService = OpenSim.Region.Communications.OGS1.dll, OGS1GridServices
>
> [GridService]
> grid_server_url = "http://192.168.1.101:9000"
> grid_send_key = "null"
> grid_recv_key = "null"
The problem with specifying dlls *in this particular case* is that these
things aren't entirely orthogonal/different. The Hypergrid dlls are a
mashup of the other two. Therefore from a source code perspective it
makes things a heck of a lot more complicated than they need to be if we
simply merge things and use conditionals on configuration variables. For
example, hyperlinks (part of grid services) is a really simple extension
to LocalGrid services.
The issue of local vs remote services isn't entirely orthogonal either.
Some parts of OGS1 use Local services -- the well know pattern of
trying things locally first and if that doesn't work, proceed for a
remote service call (e.g. OGS1 grid services does that).
I see why you want this, in abstract. If another service comes along, it
can simply be added as a component. Or if someone writes, say, a
completely different inventory service, its interface can be added as dll.
But in this particular case, for the code we already have, I think that
having Local.dll, OGS1.dll and Hypergrid.dll is not working well, even
if the configuration process is the one you suggest. The code is mess;
things are _way_ more complicated than they need to be.
So, maybe, what we can do is merging these two ideas. We'll have only
one dll (OpenSim.Region.ResourceServices.dll), but we'll specify things
in OpenSim.ini the way that you suggest, so that if anyone comes along
and wants to plug in a different inventory service, he can just specify
the other dll and an entry class name for it.
What do you think?
> [Security]
>
> SessionAuthentication = {True|False}
> KeyAuthentication = {True|False}
>
> ---
>
> The constructor is being fed a config source, so the service can pick
> out whatever it needs.
>
> All the shipped grid services could move into one assembly, as we're
> explicitly specifying the implementing calss.
>
> I believe this approach would get us improved flexibility.
>
> /Stefan
More information about the Opensim-dev
mailing list