Details
-
Task
-
Resolution: Duplicate
-
Major
-
None
-
None
-
None
-
soc
-
Description
Project Title
P2P XWiki
Synopsis
This project would be a very ambitious project of creating a P2P
XWiki which would allow users to run an XWiki locally and
automatically synchronize it with other XWiki users using P2P
technologies. It would be an extension of the "offline" wiki but
without any central wiki and being much more real-time.
Benefits to the Community
The project will make XWiki faster and fault tolerant. Moreover,
Xwiki is one of the few projects with the WYSIWYG editor where there
is significant obstacles to make it distributed. The current Xwiki
client consults a centralized server. Enabling communication with
other clients, providing conflict management on a document by document
basis will make it truly distributed and efficient.
Deliverables
1/ Java program allowing to synchronize a local wiki with a remote
(centrally located) wiki and handle conflicts. XWiki uses CVS for
visioning its files so conflict management should be possible and
provided through an interface. Users would access the local wiki
through their usual web interface.
2/ Implement a P2P protocol which would allow to have no central
server containing the wiki data. Documents would be synched from user
to user on a document by document basis. Conflicts management will be
needed. I will explore various design choices and pick the ``best''. A
central server can be kept (or not) to manage the participant lists. A
system for security is needed (a key ? PGP keys ? something else
?). Sync could be manual or automated (near-real-time).
3/ Optional: Eclipse RCP client embedding Gekko and managing the
remote/P2P aspects of XWiki, manage the sync conflicts and adding some
cool XWiki interface navigation features (spaces, documents, active
users, etc..). The XWiki content would be shown using the embedded
Gekko component.
Project Details
Listed with the same numbering as deliverables:
1/ I will be using the existing Xwiki client while providing support
to handle conflicts (communicating with a centralized
server). Conflict management is the biggest part of this work.
2/ This deliverable includes some unresolved issues and is very
interesting. I will discuss these issues (most of which are solved
problems, I will need to decide on the right tools) and design
prototype. Implementing protocols for peer discovery, protocols for
discovering versions of documents, and providing conflict management
is a first step. There is right management in the current wiki and
APIs that use the right management. I will also explore if the present
right management in Wiki can be extended to the p2p architecture as
the second step.
3/ If I can implement XWiki interface for the features I implement
in (2) within the time-frame, that will be awesome! It will depend on
how much of Eclipse RCP, and Gekko I have to learn and how much I can
reuse. I will like to try it as well.
Project Schedule
a) exploring, and understanding XWiki components relevant for
building P2P Xwiki :: 2 weeks
b) Conflict management and 1st deliverable :: 3 weeks
c) P2PXwiki prototype with peer discovery, conflict management
(2nd deliverable) :: 3 weeks
d) enhancements and possible XWiki interface (3rd deliverable) ::
2 weeks
Attachments
Issue Links
- depends on
-
XCONTRIB-51 Functional Specification of P2PXwiki
- Closed
-
XCONTRIB-52 Semantic of P2P XWiki
- Closed
-
XCONTRIB-54 Shall we use JXTA for developing P2PXWiki
- Closed