whiteboard: ECF generic or XMPPhttps://www.eclipse.org/forums/index.php/mv/msg/190271/603558/#msg_603558
I intend to build a shared whiteboard (with n participants) using ECF. As
your expertise is probably much better than mine on this subject, I have a
(newbie) question about the correct use of ECF for this purpose.

Would it be better to:
- use the generic ECF server and underlying generic protocol (btw what
protocol does it use to transmit data? defaut java serialization?), with
my own whiteboard actions and messages;

- use XMPP, with the XMPP provider, and use custom message stanzas, or for
example JEP 0009 (Jabber-RPC) or JEP 0072 (SOAP over XMPP) to transmit
whiteboard actions?

Ideally I would prefer to remain XMPP compatible, but I'm not sure if the
current ECF architecture and XMPP implementation easily allows this..

anyway thanks for your advice,]]>Denis Jouvin2006-05-17T16:44:20-00:00Re: whiteboard: ECF generic or XMPPhttps://www.eclipse.org/forums/index.php/mv/msg/190271/603561/#msg_603561
Denis Jouvin wrote:
> Hi ECF team,
>
> I intend to build a shared whiteboard (with n participants) using ECF.
> As your expertise is probably much better than mine on this subject, I
> have a (newbie) question about the correct use of ECF for this purpose.
>
> Would it be better to:
> - use the generic ECF server and underlying generic protocol (btw what
> protocol does it use to transmit data? defaut java serialization?), with
> my own whiteboard actions and messages;
>
> - use XMPP, with the XMPP provider, and use custom message stanzas, or
> for example JEP 0009 (Jabber-RPC) or JEP 0072 (SOAP over XMPP) to
> transmit whiteboard actions?
>
> Ideally I would prefer to remain XMPP compatible, but I'm not sure if
> the current ECF architecture and XMPP implementation easily allows this..

ECF does allow a common approach. One way to go about this would be to
implement your shared whiteboard application as an instance of
ISharedObject. The ISharedObjectContainer adapter is supported by both
the ECF generic provider, AND by the XMPP provider (in chat room).

Therefore apps built via these interfaces
(ISharedObjectContainer/ISharedObject) should work the same on ECF
generic or XMPP.

The way this works for XMPP is that XMPP supports 'message properties'
that can have arbitrary byte arrays associated with them. The ECF XMPP
provider serializes the Object param to
ISharedObjectContext.sendMessage(ID,Object) to a byte array, puts it on
an XMPP message as a message property, and sends it. This goes via XMPP
to receivers...any clients that do not understand the property simply
ignore the message once received. ECF clients (XMPP provider)
deserialize this byte array, and deliver the message as an
ISharedObjectMessage event to the appropriate shared object.

The main caveat here is although the XMPP provider has been tested via
the ISharedObjectContainer adapter and all of the above works, it has
not been thoroughly tested...i.e. it definately needs more testing.
There also might be rules about XMPP message sending rates (with the
magic xmpp message property) that various servers impose/enforce...I
don't know this to be true but I could imagine it. This also bears some
testing.

Note also that the datashare API has already been written to run on the
ISharedObject/ISharedObjectContainer structure (i.e. the datashare API
has been implemented on the ISharedObject/ISharedObjectContainer). So
it is also possible to write your app on the datashare API, and run it
as described above on either ECF generic and/or XMPP chat. There is a
little work here to add XMPP provider usage to
org.eclipse.ecf.provider.datashare, but the work is truly minor (and
does need to be done anyway...we just haven't gotten through with it yet).

I/we would welcome an opportunity to test out this aspect of ECF: using
these abstract APIs (ISharedObjectContainer, IChannelContainer) would
allow a single application (e.g. whiteboard) to run unmodified on either
ECF generic or XMPP (chat).

Scott

>
> anyway thanks for your advice,
>]]>Scott Lewis2006-05-17T21:51:10-00:00Re: whiteboard: ECF generic or XMPPhttps://www.eclipse.org/forums/index.php/mv/msg/190271/603565/#msg_603565
first of all, thank you for your very detailed answer.
(I guess it would have taken a long time for me to figure out all this..)

It's great news for me that The ISharedObjectContainer adapter is
supported by the XMPP provider, and I'll go for this solution, and test it
also with an ECF generic provider as well.

hope this can contribute to the testing..

Denis.

Scott Lewis wrote:

> Hi Denis,

> Denis Jouvin wrote:
>> Hi ECF team,
>>
>> I intend to build a shared whiteboard (with n participants) using ECF.
>> As your expertise is probably much better than mine on this subject, I
>> have a (newbie) question about the correct use of ECF for this purpose.
>>
>> Would it be better to:
>> - use the generic ECF server and underlying generic protocol (btw what
>> protocol does it use to transmit data? defaut java serialization?), with
>> my own whiteboard actions and messages;
>>
>> - use XMPP, with the XMPP provider, and use custom message stanzas, or
>> for example JEP 0009 (Jabber-RPC) or JEP 0072 (SOAP over XMPP) to
>> transmit whiteboard actions?
>>
>> Ideally I would prefer to remain XMPP compatible, but I'm not sure if
>> the current ECF architecture and XMPP implementation easily allows this..

> ECF does allow a common approach. One way to go about this would be to
> implement your shared whiteboard application as an instance of
> ISharedObject. The ISharedObjectContainer adapter is supported by both
> the ECF generic provider, AND by the XMPP provider (in chat room).

> Therefore apps built via these interfaces
> (ISharedObjectContainer/ISharedObject) should work the same on ECF
> generic or XMPP.

> The way this works for XMPP is that XMPP supports 'message properties'
> that can have arbitrary byte arrays associated with them. The ECF XMPP
> provider serializes the Object param to
> ISharedObjectContext.sendMessage(ID,Object) to a byte array, puts it on
> an XMPP message as a message property, and sends it. This goes via XMPP
> to receivers...any clients that do not understand the property simply
> ignore the message once received. ECF clients (XMPP provider)
> deserialize this byte array, and deliver the message as an
> ISharedObjectMessage event to the appropriate shared object.

> The main caveat here is although the XMPP provider has been tested via
> the ISharedObjectContainer adapter and all of the above works, it has
> not been thoroughly tested...i.e. it definately needs more testing.
> There also might be rules about XMPP message sending rates (with the
> magic xmpp message property) that various servers impose/enforce...I
> don't know this to be true but I could imagine it. This also bears some
> testing.

> Note also that the datashare API has already been written to run on the
> ISharedObject/ISharedObjectContainer structure (i.e. the datashare API
> has been implemented on the ISharedObject/ISharedObjectContainer). So
> it is also possible to write your app on the datashare API, and run it
> as described above on either ECF generic and/or XMPP chat. There is a
> little work here to add XMPP provider usage to
> org.eclipse.ecf.provider.datashare, but the work is truly minor (and
> does need to be done anyway...we just haven't gotten through with it yet).

> I/we would welcome an opportunity to test out this aspect of ECF: using
> these abstract APIs (ISharedObjectContainer, IChannelContainer) would
> allow a single application (e.g. whiteboard) to run unmodified on either
> ECF generic or XMPP (chat).

> Scott

>>
>> anyway thanks for your advice,
>>]]>Denis Jouvin2006-05-18T09:18:18-00:00Re: whiteboard: ECF generic or XMPPhttps://www.eclipse.org/forums/index.php/mv/msg/190271/603568/#msg_603568
Denis Jouvin wrote:
> Hi Scott,
>
> first of all, thank you for your very detailed answer.
> (I guess it would have taken a long time for me to figure out all this..)
>
> It's great news for me that The ISharedObjectContainer adapter is
> supported by the XMPP provider, and I'll go for this solution, and test
> it also with an ECF generic provider as well.
>
> hope this can contribute to the testing..

Actually, I would like you to consider working with ECF team on this (me
and others)...and perhaps even contributing the effort back as an
example app. We could also use it to add to the documentation (about
exactly this usage...i.e. ISharedObject and xmpp chat container)...as
well as testing.

I'm not sure what constraints you are under for this project WRT working
as open source, doing things publicly, etc., but if you were able/wanted
to do this we could make you an official contributor to ECF...give you a
CVS account on ecf1.osuosl.org, etc.

Actually, we are trying to get a set of web pages up that will allow
people to make available their apps based upon ECF...similar to what EMF
has done.

Finally, Ken Gilmer, Chris Aniscyck, Boris Bokowski, and myself (all ECF
committers) have done some work with building 'whiteboarding/graphical
editing' work with ECF and perhaps you would want to coordinate with
one/all of them on this app. Things might go quicker that way for all
involved.

Thanks,

Scott]]>Scott Lewis2006-05-18T17:05:12-00:00Re: whiteboard: ECF generic or XMPPhttps://www.eclipse.org/forums/index.php/mv/msg/190271/603573/#msg_603573
I have some constraints though: I'm working for an e-learning company,
eLycee, and at the same time as a post-doc in a lab (LIRIS, university of
Lyon). eLycee and my lab have an official collaboration project, which
brings more flexibility, so I can use either "hat" depending on the
situation.

So the best option for me would be to develop two different versions at
the same time:
- an open source whiteboard plug-in using ECF (as a researcher) in
collaboration with the ECF team,
- the collaboration application (an Eclipse RCP application) developped by
eLycee, which will have a commercial licence, using or extending the open
source whiteboard.
In fact the collaboration platform developped by eLycee will also include
web co-browsing (with URL pushing, similar to the URL sharing exemple of
ECF but with a session concept), and multi-user chat, and other minor
functionnalities.

does it sound good to you?
I think that the Eclipse public licence is compatible with this.

kind regards,

Denis.

Scott Lewis wrote:

> Hi Denis,

> Denis Jouvin wrote:
>> Hi Scott,
>>
>> first of all, thank you for your very detailed answer.
>> (I guess it would have taken a long time for me to figure out all this..)
>>
>> It's great news for me that The ISharedObjectContainer adapter is
>> supported by the XMPP provider, and I'll go for this solution, and test
>> it also with an ECF generic provider as well.
>>
>> hope this can contribute to the testing..

> Actually, I would like you to consider working with ECF team on this (me
> and others)...and perhaps even contributing the effort back as an
> example app. We could also use it to add to the documentation (about
> exactly this usage...i.e. ISharedObject and xmpp chat container)...as
> well as testing.

> I'm not sure what constraints you are under for this project WRT working
> as open source, doing things publicly, etc., but if you were able/wanted
> to do this we could make you an official contributor to ECF...give you a
> CVS account on ecf1.osuosl.org, etc.

> Actually, we are trying to get a set of web pages up that will allow
> people to make available their apps based upon ECF...similar to what EMF
> has done.

> Finally, Ken Gilmer, Chris Aniscyck, Boris Bokowski, and myself (all ECF
> committers) have done some work with building 'whiteboarding/graphical
> editing' work with ECF and perhaps you would want to coordinate with
> one/all of them on this app. Things might go quicker that way for all
> involved.