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
> 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
thanks - sorry for my ignorance on not looking into this...
> 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
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.