[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