[Opensim-dev] moving away from grid vs. standalone
Stefan Andersson
stefan at tribalmedia.se
Thu Apr 30 03:55:04 UTC 2009
> > 2. On your previous suggested ini stuff, in my opinion something like
> >
> > UserService = { local | remote }
> >
> > would be clearer than
> >
> > LocalUserService = {True|False}
> >
> > From what I remember, specifying remote is understandable even if the services are actually on the same machine (but
> > one has chosen to run them as separate processes). Local would naturally denote the use of services in the same process
> > as the simulator.
>
> Actually, there's a subtle but very important difference in the case of
> hypergrid. A standalone grid wanting to allow Guests would have to use
> the Remote dll, even though the service for local users is local.
I don't see a problem with 'chaining' services; something like
[RegionResourceServices]
GridService = OpenSim.Region.Communications.Hypergrid.dll, HGGridServices
[Hypergrid]
RemoteGridService = OpenSim.Region.Communications.OGS1.dll, OGS1GridServices
> This is, in fact, the kernel of the complexity here. Local has been
> designed to be Sandbox connectors, and OSG1 has been designed to connect
> with exactly *one* of each type of service. All remote calls in it
> hardcode serversInfo.xxxURL.
Yes. As part of the login/distributed assets refactoring, I was thinking of introducing an UserServicesManager that would keep proxies to all registered user services. Of course, I never got that far.
> The Hypergrid needs the regions to interact with *several* of each type
> of service, potentially, including the local one. So, most of the
> hypergrid changes have to do with determining local vs remote and, if
> remote, determining the service URL, making it a variable instead of a
> constant.
Again, some kind of repository for proxy classes would probably be the easy way, I think. the proxy classes could just as well be non-proxy persistent (local db), non-proxy volatile (in-mem), proxy to 'home' user service or proxy to foreign service. It would be the proxies that contained the protocol-specific functions to resolve calls (or just local in-mem calls in case of local)
+1 on the
> AllowGuests = {True|False}
vs
> gridmode = {True|False}
> So if we want to keep 3 architectures around, as separate architectures
> (and not one, more general), we have a meta option here:
>
> ServiceConnectors = {Sandbox|LLGrid|Hypergrid}
again, I guess service connector plugins could report a 'short name' that could be used in resolving configurations like this.
> With this, I can make the hypergrid architecture have configuration
> variables to be able to generate all of the behaviors of Sandbox and
> LLGrid, and more -- basically place the ideas on my original email under
> the Hypergrid mode, and leave the other two as they are now.
For what it's worth, I think that all the various services should share a common abstract baseclass (per domain) so we can pull up and push down freely.
/Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20090430/c2cacfdf/attachment-0001.html>
More information about the Opensim-dev
mailing list