Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ecf-dev] Brainstorming for resource/document sharing...

On Mon, Apr 20, 2009 at 1:53 PM, Mustafa Isik <mustafa.isik@xxxxxxxx> wrote:
> The use case I have in mind would involve a user to share a project and all
> initial resources with a remote user. All subsequent changes to the project,
> such as the addition and removal of resources (e.g. new files etc.) would be
> propagated to the respective remote site transparently.

Resource change distribution is not too hard unless you get into
optimizing by doing a diff of some sorts and only sending the changes.
Though how feasible this is is rather questionable.

The only conflict I can think of (assuming that both project's state
is the same, per what you implied above), is if the two users create
the same file at the same time.

Now if the projects aren't identical then there are two other
possibilities I can think of.

A conflict for resource addition could be defined as peer A creating a
resource when peer B already has a resource with the same name.
A conflict for resource change could be defined as peer A causing a
resource change (saving a file) but peer B doesn't even have the file.

> As soon as two users
> open the same project file in an editor, this new integrated project sharing
> feature would initialize a real-time shared editing session for the file -
> also done transparently without prompting a user.

Tying docshare into the equation opens a whole new can of worms.

When a user opens an editor on a resource, a docshare session needs to
be initiated with the remote end's resource. The reason I feel this is
necessary is if you open an editor and start typing something and the
remote peer opens an editor, they will not see the text you have been
typing if a docshare session is not in place to monitor document
changes.

However, once the remote peer has the editor up, the resource sharing
mechanism needs to disable itself or be aware that the document is
visible on both ends. If one person invokes a save, the document will
be committed to disk prompting a resource change which is subsequently
distributed. The remote peer will process this change and commit the
change to disk. This causes the editor's content to be overwritten
(even though it is the same content, as we already retrieved what the
user typed via docshare, unless we do some kind of diff'ing per above)
and the framework will pop a dialog up telling you that the file has
changed "externally" and you've got a recipe for angering your users.

---------------------

I think the first step should be to allow multiple documents to be
shared [1] and to then/at the same time decouple the docshare code so
that it can work headlessly with just a document and a document
listener without UI dependencies.

[1] - https://bugs.eclipse.org/bugs/show_bug.cgi?id=238966

Regards,
Remy


Back to the top