[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [corona-dev] Ref count for container.
|
Hi Folks,
Note that the ECF shared object API provides for group membership
notifications. That is, internal to the generic shared object container
is a 'group membership manager' which tracks clients (by clientID) and
sends/receives notifications of client arrival and departure. The group
membership manager's failure detection allows other clients to be
reliably notified if a given client crashes, or if there is a network
partition.
These group membership changes can be easily mapped to other user state
(e.g. user presence, project state, workspace state, etc), if the
client's online/offline state is reported in a timely fashion (with
app-specified keepalive/timeout)...or to logic for automatic reconnect.
If application code is written as shared object instances, they will be
automatically notified about clients (identified by clientID) coming and
going. They simply need to respond to the delivery of
IContainerConnectedEvent/IContainerDisconnectedEvent to the
ISharedObject.handleEvent method.
Underneath the sharedobjectcontainer is a transport-level protocol (see
org.eclipse.ecf.provider.comm package) that is currently implemented with
a) a simple socket-level message protocol...aka 'ecftcp'
b) ActiveMQ (org.eclipse.ecf.provider.jms)
c) JXTA (org.eclipse.ecf.provider.jxta)
It's possible to insert some other transport (e.g. SOAP) underneath
('d', etc) and use that instead. This would be done simply by
implementing a new ISharedObjectContainer instance that extends
ClientSOContainer, and overrides ClientSOContainer.createConnection() to
return an implementation based upon the transport of one's choosing.
The intention and result is that then applications that require reliable
group membership info can get it in a transport-independent way and use
it in any way desired.
If more info or pointers to code examples is desired, please let me know.
Scott
Marcin Okraszewski wrote:
At project level there would be a component that would have a set of
client IDs for a user. When the set becomes empty, the offline message
would be sent.
Don't know exactly what your are asking about semantics. In general then:
- open / close would indicate that a client (a software instance)
opened / closed container
- online / offline would indicate that user opened a container for the
first time; offline user closed container in all his instances
Marcin
Everitt, Glenn wrote:
What keeps track of Clients - since a ClientID may reference many
Containers. If I understand...
So, do we need to define semantics for? Client - open, close
User - on, off
Container - open, close
User in a Container - yes, no
-----Original Message-----
From: corona-dev-bounces@xxxxxxxxxxx
[mailto:corona-dev-bounces@xxxxxxxxxxx] On Behalf Of O'Flynn, Dennis
Sent: Wednesday, March 14, 2007 8:55 AM
To: Corona development
Subject: RE: [corona-dev] Ref count for container.
+1 for using an ID, not user.
The ref count was / is intended to identify the number of open requests
for a specific container. It is possible that a component (non-user)
has opened a container.
-----Original Message-----
From: corona-dev-bounces@xxxxxxxxxxx
[mailto:corona-dev-bounces@xxxxxxxxxxx] On Behalf Of Everitt, Glenn
Sent: Wednesday, March 14, 2007 8:47 AM
To: Corona development
Subject: RE: [corona-dev] Ref count for container.
...deleted stuff
*/[Glenn] I thought we were only interested in other Users that were
active in my Container - since all of the views are within in the
context of a container. I'm only interested in users that have the
same container open as I do. This approach gives me the ability to NOT
be available to others in a Containers I don't have open, even
though I may be "online"/*
[Marcin] You have two computers. You may want to open the same container
twice, have two clients open for the same team member. Then when you
close one of the containers, the "close" event is sent. With current
semantic, this would mean you are offline, but you still have one
instance running. It is not about being online in an other container.
[Glenn] OK - then do we need to reference count users? Or should we do
what you suggested earlier and keep track of a ClientID and an
associated User? That would mean "Close" is for a Container with
associated with a ClientID. We still need to know if a user is still
available in a particular Container...
So, do we need to define semantics for? Client - open, close
User - on, off
Container - open, close
User in a Container - yes, no
The contents of this e-mail are intended for the named addressee only.
It contains information that may be confidential. Unless you are the
named addressee or an authorized designee, you may not copy or use it,
or disclose it to anyone else. If you received it in error please notify
us immediately and then destroy it.
_______________________________________________
corona-dev mailing list
corona-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/corona-dev
The contents of this e-mail are intended for the named addressee only.
It contains information that may be confidential. Unless you are the
named addressee or an authorized designee, you may not copy or use it,
or disclose it to anyone else. If you received it in error please notify
us immediately and then destroy it.
_______________________________________________
corona-dev mailing list
corona-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/corona-dev
The contents of this e-mail are intended for the named addressee
only. It contains information that may be confidential. Unless you
are the named addressee or an authorized designee, you may not copy
or use it, or disclose it to anyone else. If you received it in error
please notify us immediately and then destroy it.
_______________________________________________
corona-dev mailing list
corona-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/corona-dev
The contents of this e-mail are intended for the named addressee only.
It contains information that may be confidential. Unless you are the
named addressee or an authorized designee, you may not copy or use it,
or disclose it to anyone else. If you received it in error please
notify us immediately and then destroy it.
_______________________________________________
corona-dev mailing list
corona-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/corona-dev