[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.technology.ecomm] Re: An abstract conferencing model
|
Hi John,
John F. Patterson wrote:
Scott:
Some comments mixed in, but it does sound like we have similar, though
not identical, models.
Some general issues are:
1) How do you represent online presence/awareness in this model? I
gather your containers establish shared object spaces through which the
presence of a user is signaled by the availability of a proxy object in
the shared space. This seems straightforward for conference-based
presence. If we want to provide global online presence, do you adopt
the attitude that there is a universal container?
No, only a container that contains the others 'interested' in a given
other's presence info. If that's everyone (which seems sort of unlikely
to me at the app/user level), then it would make more sense to 'jump
out' of a conference model, and have some other messaging model for
presence info, I suspect. But I'm not sure whether such 'global online
presence' would really be user desirable or not, so I'm less concerned
about the scalability implications of this approach to dealing with the
common case.
This seems a stretch
for what I think of as a conference.
True. I have some difficulty imagining what such an application would
be like from the user point of view.
2) My impression is that you support shared object spaces. (Do you
support nested spaces?)
Yes, although I haven't found a really good application for it...yet.
Within each shared object space, a client
learns about and may manipulate the objects within that space. Presence
objects are a specialized type of object because they represent the
association of the client with the shared object space. As such, they
impose a policy that permits only the represented client to actually
manipulate the object. The policy regarding visibility of the Presence
objects is controllable, such that a standard conference would provide
visibility of all presence objects, while an online awareness system
would support subscription-based buddy list type awareness. Other
objects (components or tools) provide specialized capabilities that
usually involve sending a message to all joined clients or changing some
shared state that is visible to all joined clients. Is this generally
right?
Yes. You are right on. The only thing I would add is that your phrase
'the policy regarding visibility of objects is controllable...' is true,
but I would generalize this to 'the policy regarding the object's
behavior/code *in general* is controllable'...via the Java 2 protection
domain and it's guarantee of component type safety. This is a really
nice thing about the java2 security model...it fits very well with the
possibility that (untrusted) remote participants might introduce objects
of unknown qualities...and each participant can have a group and
personal protection domain for that object.
3) How do we move towards a common nomenclature?
Well, I would propose we first come up with a generic name for the
'component' or 'conference tool'...since we can then refer to the
container for that as [X]Container.
I've used names like [X]Object (like RemoteObject, or ReplicatedObject)
but I don't really like these. I've also recently (in the Composent
code) used the term 'Stage'...which was used by Matt Welsh in his Ph.D
work on SEDA...Scalable Event Driven Architecture.
Alternatively, I think it would be a very good idea to connect the ecomm
APIs by name directly to the OSGI model, and perhaps extend the OSGI
'Bundle' concept...e.g. DistributedBundle or a shortened version like
DBundle.
DBundle
DBundleContainer
Any thoughts about this?
BTW, I think it's probably going to make sense to change the name of
this project to something like 'Eclipse Communications Framework' or
'ecf' rather than 'ecomm'. Obviously, at this stage of the project it's
a good time to get such names nailed down, and I admit to a certain lack
of creativity on my part for ecomm.
4) What's the next exercise?
For my part, I am inclined to keep focusing on the API and leave
implementations and applications aside for the time being. I am
definitely finding this useful, but it would be nice to know if we are
just talking to each other. Is anyone else listening in?
Well, at least we're listening :-). Actually, I've understood from
others through correspondence that they *are* reading these posts and
some folks have found them useful. I also feel they are useful and so
would like to continue them...and yes, I agree the right focus is on the
API(s)...because I do believe that the virtualization we're discussing
is a potentially highly valuable contribution to be made by this project.
Please others do chime in.
Thanks,
Scott