Uploaded image for project: '{RETIRED} XWiki Contrib'
  1. {RETIRED} XWiki Contrib
  2. XCONTRIB-55

Implement XWiki P2P Client

    XMLWordPrintable

Details

    • Task
    • Resolution: Duplicate
    • Major
    • None
    • None
    • P2P
    • 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

          Activity

            People

              sdumitriu Sergiu Dumitriu
              bikash bikash agarwalla
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: