[Opensim-dev] OpenSim Comms

MW michaelwri22 at yahoo.co.uk
Mon Dec 29 12:30:50 UTC 2008


I think we should use REST for most of the comms, but am a little bit wary about if it will be the right choice for some of the region to region comms. And if the overhead in lots of http requests/posts will be too much, for messages like ChildAgentUpdate that we should be sending quite often. 

As for making comms a Region module, I'm +1 to that sort of idea. In the past I have from time to time, gone through removing direct references from scene, and region modules to the comms manager and instead routing them through wrapper functions in SceneCommunicationService. So that at some point we could refactor it to remove the current comms manager and make SceneCommunicationService into some sort of region module. 

I know that recently we have started taking the reverse course and removing the wrapper function. Which also has its benefits as there isn't much point in having the wrapper if we keep the comms manager as it is.


But anyway to answer your questions, if you have a REST childagentUpdate working and its a improvement on what we have, then I'd say that there shouldn't be any problem with replacing the old method as the way to get it in the quickest.

But I think we really should have some better method to do comms plugin replacement/configuration in the future, weather that is by having it as a region module, or just improving the current system. So if you want to do that now, then I think that would be great.


Melanie <melanie at t-data.com> wrote: Hi,

I have made my view widely known already:

I'm for REST and the idea about making it choose the most efficient 
format sounds like a winner to me.

I would like to see comms become a region module instead of the 
tightly tied OGS1 we have now, or a replacement OGS2. That way, any 
method of communication can be implemented, including a null method 
for local operation only, and it can be done easily and without 
messing with existing code at that point.

Melanie


Cristina Videira Lopes wrote:
> Hi,
> 
> As some of you know I've been working on improving the sim-sim 
> ChildUpdate message to include a lot more information than what it has 
> now. This is needed for a variety of purposes, including improving 
> region crossings and TPs, but not only. In talking to Melanie and 
> Teravus, we decided that since this improvement is going to break 
> sim-sim comms anyway, it wouldn't be a bad idea to try something radical 
> and do this over HTTP POST instead of remoting.
> 
> The good news is that I have this working. But before I commit anything 
> to trunk, I'd like to hear from you about OpenSim comms in general, and 
> their future. But I don't want this topic to degenerate in the 
> conversation about standalone vs. grid. I think that issue is marginal 
> here, since this is about remote sim-sim comms, independent of the UGAIM 
> services.
> 
>  From what I understand, everyone dislikes OGS1 for all sorts of 
> different reasons. From where I stand, Remoting in sim-sim comms is an 
> unnecessary tie to .Net. This HTTP POST method is really neat, I think, 
> and we could move all remote sim-sim comms to use HTTP POST, which will 
> make OpenSim  a lot more interoperable (yes, somebody might want to 
> write non-.Net simulator and have it talk to OpenSim :-).
> 
> But the real question is: should we *replace* the remoting methods in 
> OGS1 with this other thing, or should someone do some plugin magic in 
> order to be able to configure OpenSim with different communication 
> components?
> 
> To be very concrete. I started doing this new ChildAgentUpdate method as 
> a replacement of the existing one in OGS1. If I commit what I have, the 
> previous mechanism for ChildUpdates will disappear into svn history, and 
> this new one will pop up in the middle of Remoting (and XMLPRC, mind 
> you) methods. I'm not sure this is the right thing to do. An alternative 
> is to start another namespace called, say, OGS2, and rewrite all methods 
> that use remoting in OGS1 with methods in OGS2 that use HTTP POST. If I 
> do this, and without proper componentization, I'll have to do a similar 
> trick that I did for the HG, ie. make the comms configuration affect the 
> application classes themselves. But it's a little worse than for the HG, 
> because the data structures passed around are seriously intertwined 
> between Environment.Scenes and Comms. As we make improvements in those 
> data structures (as is the case in the ChildAgentUpdate message), we 
> need to change Environment.Scenes. Plus, regions using OGS1 won't work 
> with regions using OGS2.
> 
> So the even more real question is this: do we really want to make Comms 
> a replaceable component? Something that can be completely replaced under 
> the hood? If so, then componentizing it is a must, and the question is 
> how. If not, replacing OGS1 with another thing that serves as references 
> implementation of a standard protocol might be ok.
> 
> Thoughts?
> 
> Crista
> 
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
> 
_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


       
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20081229/733d12cf/attachment-0001.html>


More information about the Opensim-dev mailing list