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