<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thanks for this - it is a helpful clarification. I rarely mean criticism in a personal way so appreciate the background.<div><br></div><div>I have looked at the work involved and there is quite a lot. I appreciate where Mic is coming from as I have the same dilemma ( with even fewer resources than Intel!).  <div><div><div><br></div><div><br><div><div>On 6 Jan 2010, at 16:10, <a href="mailto:diva@metaverseink.com">diva@metaverseink.com</a> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Tom Willans wrote:<br><blockquote type="cite">Are some aspects of the interface more settled than others? I appreciate <br></blockquote><blockquote type="cite">that this is a judgement call.<br></blockquote><br>Yes, some aspects are more settled than others.<br>First, let me point out where this comes from, so that you and others <br>can understand better.<br><br>Up to recently, there was no such thing as OpenSim.Services.Interfaces, <br>nor the companions OpenSim.Services.Connectors and <br>OpenSim.Server.Handlers. The interaction between the simulator and the <br>resource services, and among the resource services themselves, was a <br>mess. I don't mean it in a criticizing attitude, early-stage code is <br>usually a mess. The broad stokes were there, and were really good, but <br>the details were a complete mess. Simple questions like "what handlers <br>are there?" or "what are the resource service interfaces?" were a <br>challenge to answer, interfaces and handlers were spread all over the <br>code, special cases were pervasive, classes were being used directly <br>instead of interfaces, etc. The user services, in particular, were a <br>nightmare, with duplication running rampant because of "standalone vs <br>grid mode", and the code being on the verge of bipolar disorder. Users, <br>agents and avatars were being used interchangeably, with no conceptual <br>distinction, misnomers everywhere, etc.<br><br>This refactoring's main goal is to depart from that chaotic mess and to <br>instill order in the code base. It is primarily a *refactoring*, meaning <br>that code has moved from one namespace to another, but it is also a <br>rewrite -- because in the process of revisiting the code it was clear <br>that things should be done better than they were being done. In <br>particular, harmful hard-coded instantiations of classes were replaced <br>by dynamic loading and instantiation. The core of this is <br>OpenSim.Server.Base.Utils.LoadPlugin -- this is the core of the ROBUST <br>model.<br><br>Having said that, let me now explain how people who plan to extend <br>OpenSim should be looking at it.<br><br>The main "contract" between the core code and developers of resource <br>services is the collection of interfaces in OpenSim.Services.Interfaces. <br>This is what the simulators call, can't get around hard-coded calls to <br>those interfaces. Those interfaces will stabilize very quickly. Most of <br>them are stable already, with the notable exception of IInventoryService <br>which still needs love. But all others will be stable at 0.7. Now is the <br>right time for people to look at those interfaces and send feedback <br>about which things you think are missing.<br><br>The next level of reuse is the code in OpenSim.Services.Connectors and <br>OpenSim.Server.Handlers. This code is less important than the <br>interfaces, because it's invisible to the simulators, therefore ppl <br>should be more careful about relying on it. This is quite an important <br>point that I don't think many people grasp yet, so let me explain.<br><br>In most systems, the network protocols are fixed. People go to great <br>lengths discussing them ad-nauseum in meetings and committees, to settle <br>on the right data formats, the right data, etc. NOT HERE. The network <br>protocols in OpenSim are now dynamically loaded, and therefore <br>replaceable. There is no such thing as *the* network protocol between <br>the simulator and, say, the asset server. There can be many -- you can <br>roll your own. There are reference implementations in the core <br>distribution, but that's exactly what they are: reference <br>implementations, they are not fixed protocols. As such, people should be <br>careful about relying on those reference implementations.<br><br>So, to sum it up: the main contract is OpenSim.Services.Interfaces and <br>those are going to be stable very soon. The level right under it, <br>OpenSim.Server.Handlers and OpenSim.Services.Connectors can also be <br>relied upon but it's less stable. I'm still not happy with many of <br>those, so they will change after 0.7. People who don't want to put up <br>with these changes may want to roll their own network protocols.<br>_______________________________________________<br>Opensim-dev mailing list<br><a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>https://lists.berlios.de/mailman/listinfo/opensim-dev<br></div></blockquote></div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Tom Willans </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Managing Director</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font class="Apple-style-span" color="#990000"><span class="Apple-style-span" style="color: rgb(153, 0, 0); ">Bessacarr Publications Ltd</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">3 Highfield, Hatton Park, Warwick, CV35 7TQ</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="mailto:tom.willans@bessacarr.com">tom.willans@bessacarr.com</a>  </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">+44 (0) 1926 402055   +44 (0) 121 288 0281</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Registered in England and Wales at the above address.  Company No: 4925067. VAT No:GB 823 9317 24.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">This e-mail is confidential and intended solely for the use of the individual to whom it is addressed. Any views or opinions presented are solely those of the author and do not necessarily represent those of Bessacarr Publications Ltd. If you are not the intended recipient you have received this e-mail in error and that any use, dissemination, forwarding, printing or copying of this e-mail is strictly prohibited. Please return it to the sender immediately. The contents of this message may be legally privileged.</div><div><br class="khtml-block-placeholder"></div><div><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span></span><br class="Apple-interchange-newline"></div></span> </div><br></div></div></div></div></body></html>