[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Distributed collaborative development with Saros

Hi Karl,

Here's some orienting info about ECF for you, the Saros team, and others. Hopefully this will help you interact with the appropriate people/committers, who have worked (and are working) on the relevant sections of ECF.

Who am I?

Project lead for ECF project since 2004. You can see a list of current committers, as well as other project summary information here: http://www.eclipse.org/projects/project_summary.php?projectid=rt.ecf

What is ECF?

ECF is a set of APIs, and example applications built on these APIs, to provide communications/messaging to Eclipse-based tooling, RCP apps, and OSGi servers. One area of much interest and previous work has been on using ECF for Eclipse-based real-time collaboration. Other research efforts (as well as commercial systems) have used ECF to create/add real-time communications to Eclipse...as well as RCP applications.

Parts of ECF Relevant to Saros' work

Real-time shared editing.

This work has been going on for some number of years, initiated by Mustafa Isik's 2006 Google Summer of Code project called cola. See [1], [2], [3]. This work was/is based upon the work on operational transformation...which is the underlying synchronization approach taken by Google Wave as well as other real-time shared editors.

The Eclipse real-time shared editor (called 'docshare') works over xmpp (and other transports) for the java editor, as well as the text editor. It's also possible to add real-time shared editing to most Eclipse-based editors, as per [4].

Mustafa is now a committer, and is also the mentor for Sebastian Schmidt's 2010 Google Summer of Code project (underway now), to create an ECF provider based upon Google Wave protocol. See [5] and [6]. The cola work has also resulted in the creation of an abstract 'synchronization api'...implemented by cola/operational transformation. See [7].

I suggest that the Saros folks interact with Sebastian and Mustafa to figure out how/whether there are things being done by Saros that can/could enhance docshare.

Bundles/API: org.eclipse.ecf.docshare, org.eclipse.ecf.sync, org.eclipse.ecf.datashare and dependencies
Committers/Contributors working in this area: Sebastian Schmidt, Mustafa Isik, Scott Lewis, others

Project and resource sharing

Remy Suen (another ECF committer) did some work several years ago on sharing project/resource-level changes in real-time by integrating ECF with the Eclipse team API. See [8], [9], [10].

Bundles/API: org.eclipse.team.ecf.core, org.eclipse.team.ecf.ui, org.eclipse.ecf.datashare
Commiters/Contributors: Remy Suen, Mustafa Isik, Scott Lewis

Instant Messaging/Presence

ECF has an abstract presence API, as well as an Eclipse-based UI that includes a number of features:

Multi Account Roster (including support for xmpp, yahoo, ICQ, IRC, other presence protocols)
URL sharing
Screen sharing
Remote view opening
Bot framework
lots of other things.

I think the best way is to install ECF 3.3 into Eclipse 3.6 and try these out. There's help docs included with the ECF installation, and you can take a look through the whole history of ECF feature additions around real-time collaboration via the ECF new and noteworthy going back several years [11].

More recently, there have been Google summer of code projects having to do with creating support for more Google Services and Voip [12].

Bundles/API: org.eclipse.ecf.presence, org.eclipse.ecf.presence.ui, org.eclipse.ecf.datashare, org.eclipse.ecf.example.collab, org.eclipse.ecf.provider.xmpp, org.eclipse.ecf.provider, org.eclipse.ecf.example.clients, org.eclipse.ecf.sharedobject

Committers/Contributors: Remy Suen, Scott Lewis, Harshana Eranga Martin, Nuwan Samarasekera

I think these are the main areas (and people/committers) relevant to what Saros is doing. If I've missed or misrepresented things existing committers please chime in and correct/clarify. Karl please let me know if I can provide other pointers (e.g. to API, source code, examples, etc) or further info on ECF architecture, existing APIs, technical approaches, areas of work, etc.



[1] http://live.eclipse.org/node/543
[2] http://wiki.eclipse.org/DocShare_Plugin
[3] http://wiki.eclipse.org/RT_Shared_Editing
[4] http://wiki.eclipse.org/Extending_Real-Time_Shared_Editing_for_Use_with_Other_Editors
[5] http://wiki.eclipse.org/Google_Wave_ECF_provider
[6] https://bugs.eclipse.org/bugs/show_bug.cgi?id=280347
[7] https://bugs.eclipse.org/bugs/show_bug.cgi?id=234142
[8] https://bugs.eclipse.org/bugs/show_bug.cgi?id=237471
[9] https://bugs.eclipse.org/bugs/show_bug.cgi?id=238040
[10] https://bugs.eclipse.org/bugs/show_bug.cgi?id=239048
[11] http://www.eclipse.org/ecf/NewAndNoteworthy.html (see links of versions going back to ECF 1.0.0)
[12] http://wiki.eclipse.org/Google_Summer_of_Code_ECF_Projects_for_2009

Beecher, Karl wrote:
Hi Ecf-dev,

After earlier conversations with Scott Lewis and encouragement from him, I would like to introduce myself to you all along with the project I represent.

Who am I?

I am a researcher within the Software Engineering Workgroup at Freie Universität (Free University) Berlin. I manage the Saros project.

What is Saros?

Saros is a fully-functional Eclipse plug-in that enables two or more developers to work simultaneously over the Internet on a shared project and share each other's changes. It grew out of ongoing research into the difficulties posed by distributed collaborative development.

How does Saros work?

At its simplest, Saros works like a collaborative editor. After inviting a number of other users, you can jointly edit any artefact in your Eclipse project and see each other's changes.

However, there is more. Saros provides in-built communication methods (including IM, VoIP and screen-sharing), a roster, and also simple user role management (each user can be a "driver" or an "observer", and a user can automatically "follow" another user's movements).

Exciting features currently in development include whiteboarding and version control system integration.

Any technical details?

I won't go too deep into these, suffice it to say that Saros:
- is written in Java - uses XMPP protocol for low-latency, high bandwidth communications
- is tested in Eclipse 3.4, 3.5, 3.6 on Windows (XP, Vista, 7), Mac OSX, and Linux

So, why am I here? We in the Saros team are very intrigued by the possibilities of working closer with the ECF project, given how the goals and the technology of the ECF overlap with ours. For now, I'd like to learn more about your project and I would be happy to answer questions about mine. In time, we could exchange ideas and contributions, and so improve our software.

In the meantime, feel free to refer to the following resources:

Website:     https://www.saros-project.org
Update Site: http://dpp.sf.net/update
Saros @ SF:  http://sourceforge.net/projects/dpp

I look forward to a dialogue.

Yours faithfully,
Karl Beecher

Dr. Karl Beecher
Research Associate
Software Engineering Workgroup
Department of Computer Science
Free University of Berlin
Takustr. 9, 14195 Berlin, Germany

ecf-dev mailing list