[Opensim-dev] explanation of services

Cristina Videira Lopes lopes at ics.uci.edu
Mon Jun 29 22:21:36 UTC 2009


For "grid mode" things are not as you describe. I can tell you how 
things are done currently, but this may/can change very easily, and in 
fact things are quite different if C is Grider.

For the normal LL client, and as of now: C never talks to G/A/I 
directly; it talks to U and to Rs only. Upon login, C first contacts U, 
which in turn contacts G to know the info about the intended login 
Region, and then it informs that region R about the agent.

On region crossings/TPs G is also not involved that much; it only serves 
for the departing region to find the info about the destination region. 
Once it gets that info, crosssings/TPs are done region-to-region. It's 
also the regions that interact with C during this process. The only 
difference in HG is that G is not used for region lookup at all; instead 
the info about the destination region is local to the departing region. 
But TPs are almost identical, with one extra first step.

You can find some sequence diagrams here:
http://opensimulator.org/wiki/Teleports

Paul Fishwick wrote:
> I am writing a tutorial for a conference, where I'd like to introduce
> them to OpenSim, and I wanted in that tutorial to include some information
> on how services connect. If there is a web page that I have overlooked,
> please let me know where it is.
> 
> Here are some assumptions, which may not be right--and I'd like to be
> as accurate as possible. Here are some letters I'll use for servers:
> 
> C - Client
> G - Grid
> U - User
> A - Asset
> I - Inventory
> M - Messaging
> Rx - Region # x
> 
> .............................
> 
> 1. For StandAlone mode, C connects with one server that contains all of 
> the other services
>     inside of it, along with N regions. So, this behavior seems more 
> straightforward.
>     All "other services" are (U,A,I,M, and Rx).   I am assuming that 
> most LSL commands
>     are executed server side, except for some like Rotation, Audio and 
> Video Streaming...
>     Is there a list of what is server vs. client side?
> 
> 2. For Grid mode, here are some guesses - please correct or edit..
> 
>     C connects to G and then G serves as a gateway, routing messages to 
> the other
>     services. For example, if a user logs in, C connects to G which 
> connects to U,
>     which contains information on all agents and their avatars, 
> positions, etc.
> 
>     A and I require the bulk of the database storage since Regions (R) 
> have a UUID
>    (pointer) reference and do not contain the bulk of the data (i.e, 
> textures, images,
>    prim attributes).
> 
>     If a region crossing is made from, say R1 to R2, R1 sends a message 
> to G which
>     forwards it to R2.
> 
> 3. For HyperGrid mode, there is no "G" and so it is more of a peer to 
> peer relationship
>     of StandAlones.
> 
> Comments and corrections welcome!
> 
> paul
> 



More information about the Opensim-dev mailing list