session - avatar - object - bubble - server relations

3 views
Skip to first unread message

Maróy Ákos

unread,
Feb 8, 2010, 5:08:25 AM2/8/10
to metaverseexc...@googlegroups.com
Tommi & al,

I'm trying to create a simple MXP server based on the C++ protocol
implementation - actually it might make sense to provide this as part of
an mxp::services namespace in the MXP library itself. the initial idea
at the time is just to create a stand-alone server, thus I narrowed down
the scope a little bit.

I started to do the implementation / initial modeling, and thus to map
out the possible entity relationships. I sort of come down to the
following, but I'm not sure afterwards.

(forgive my textual description instead of UML diagrams - but this is
easier to type in an e-mail :)

entities: server, bubble, session, object, avatar, active user / active
connection?

server:
- accepts incoming MXP connections, and maintains these sessions
- hosts ('serves') 1..n bubbles

session:
- a session as defined by the MXP protocol, a low level concept

bubble:
- maintains 1..n objects that are injected into it
- manages 1..n 'active users'? / 'active connections'?:
- interprets messages like the inject, eject, etc.
- sends out notification messages, like perception, sync, etc.

active user / active connection?
- tied to an open MXP session (1..1 relationship)
- higher level concept that MXP session
- initiated by a join request, closed by a leave request or timeout
- what is the unique id of an active user?
- the session id?
- the unique id in the join request?
- maintained by...? bubble?

avatar:
- an avatar ID is sent in the join request, but what is this?
- an id of an object that the user will inject later, or someone
else injected earlier?
- what is the life cycle of the avatar?


I wonder what your take on the above is. Sorry if these are too simple
questions / concerns :)


Akos

Tommi Laukkanen

unread,
Feb 8, 2010, 5:37:54 AM2/8/10
to metaverseexc...@googlegroups.com
Hi

I came up with pretty similar model when designing the C# client/server implementation. Here is the UML diagram:

http://www.bubblecloud.org/wiki/-/wiki/Main/Implementation

Some differences:

I have just session object instead of separate session and active user/connection.
I have two separate "server" objects:

Server which hosts port where clients connect to.
Hub which hosts port where other servers connect to. Hub also enables opening connections to other hub ports.

This is because messaging between servers is quite different from client to server messaging. Hub is used to synchronize the bubble content between servers having linked bubbles.

It may be good idea to first implement just client and standalone server and later expand to supporting server clustering.

-tommi

Tommi Laukkanen

unread,
Feb 8, 2010, 5:38:59 AM2/8/10
to metaverseexc...@googlegroups.com
Actually I do have ParticipantLink and BubbleLink objects which may correlate with your active user object.

Maróy Ákos

unread,
Feb 8, 2010, 5:42:12 AM2/8/10
to metaverseexc...@googlegroups.com
Tommi,

> I came up with pretty similar model when designing the C# client/server
> implementation. Here is the UML diagram:
>
> http://www.bubblecloud.org/wiki/-/wiki/Main/Implementation

thanks - sorry for my ignorance on not looking into this..

> Some differences:
>
> I have just session object instead of separate session and active
> user/connection.
> I have two separate "server" objects:
>
> Server which hosts port where clients connect to.
> Hub which hosts port where other servers connect to. Hub also enables
> opening connections to other hub ports.
>
> This is because messaging between servers is quite different from client
> to server messaging. Hub is used to synchronize the bubble content
> between servers having linked bubbles.
>
> It may be good idea to first implement just client and standalone server
> and later expand to supporting server clustering.

yes, this is my intention..


Akos

Tommi Laukkanen

unread,
Feb 8, 2010, 5:54:29 AM2/8/10
to metaverseexc...@googlegroups.com
thanks - sorry for my ignorance on not looking into this...

I don't expect you to have crawled through all those odd pages in the wiki :)

-ommi

Maróy Ákos

unread,
Feb 8, 2010, 8:18:34 AM2/8/10
to metaverseexc...@googlegroups.com
Tommi,

> Actually I do have ParticipantLink and BubbleLink objects which may
> correlate with your active user object.

I see. and what do you use as a unique id for these link objects? the
session id? the participants id?

also, what to make of the avatar id? is this an id of an 'object' to be
used as an avatar for display?


Akos

Tommi Laukkanen

unread,
Feb 8, 2010, 8:25:37 AM2/8/10
to metaverseexc...@googlegroups.com
Hi,

BubbleLink id is the remote bubble id and participantlink id is the participant id they both hold reference to the underlying session.

All though Arkowiz does not really approve tagging any objects with special avatar flag we have included it to support traditional worlds where one or more objects are specially used by participant to represent his identity in world and to interact with the world.

-tommi



Akos

--
You received this message because you are subscribed to the Google Groups "Metaverse eXchange Protocol" group.
To post to this group, send email to metaverseexc...@googlegroups.com.
To unsubscribe from this group, send email to metaverseexchangep...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/metaverseexchangeprotocol?hl=en.


Reply all
Reply to author
Forward
0 new messages