[Opensim-dev] explanation of services
Justin Clark-Casey
jjustincc at googlemail.com
Tue Jun 30 22:55:02 UTC 2009
Paul, a couple of other additional points below.
Paul Fishwick wrote:
> Thanks - I will take all of this into account!
> -paul
>
>
> Cristina Videira Lopes wrote:
>> 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?
I don't think there is such a list. In this particular example though, rotation is done server side - not sure about
what section of the mechanism is server side for the other two.
>>>
>>> 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).
Certainly, it's true to say that A contains the bulk of the data. I still contains some but like the regions they have
UUID pointers to assets.
Also, R does contain prim attributes directly.
>>>
>>> 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.
Well, a peer to peer relationship between Grids _and_ StandAlones (or Standalone Grids as Diva likes to call them :)
--
justincc
Justin Clark-Casey
http://justincc.wordpress.com
More information about the Opensim-dev
mailing list