r1 - 30 Jun 2004 - 12:30:00 - ChaoLamYou are here: OSAF >  Projects Web  >  SharingRevisited > SharingNetworkArchitectures

Sharing protocol implementation options

1. WebDAV central server

  • ServerCentric.gif
  • WebDAV server acts as the point of coordination all changes and conflicts (e.g. through locks)
  • Change notifications can be pushed through separate means (e.g. XMPP as below)
  • Individual clients pull in changes to update own repository and push its changes to the server
  • Strengths:
    • Very scalable to large groups
    • Central server approach can be basis of Westwood central server plans
    • In-house expertise, few anticipated technical issues
    • Highest availability
    • Fewest synchronization problems
    • Basis for web publishing and other forms of interoperability
  • Issues
    • Barrier to entry of setting up a server account
    • Obtainability of server account
    • Ongoing of maintenance of server possibly an issue (alternatively: challenge to make server near-maintenance-free)
    • Restrictions on server storage space or bandwidth if externally hosted
    • Requires WebDAV extensions and modification to support outside server accounts
    • Requires OSAF to commit resources to build new product
    • Moving away from original P2P vision and obligation (e.g. requires central server, one real "owner" of data". Owner of data cannot be simply removed from ACL)
  • Next steps
    • Explore plan to host OSAF WebDAV server
    • Explore plan to create server product (second Chandler product ahead of Westwood)

2. Proxied P2P by Pulling data and pushing change notifications (aka Hub and Spoke model)

  • HubAndSpoke.gif
  • Push / Store and Forward notifications of changes
  • Pull changes
  • Similar to WebDAV model, except WebDAV server is built into client itself, not a separate server
  • Designate initial sharer the point of coordination
  • Strengths:
    • Simple to set up and mantain
    • In-house expertise, few anticipated technical issues
    • Few synchronization problems
    • Basis for web publishing and other forms of interoperability
    • Just one product
  • Issues
    • Availability of sharing depends heavily on avaibility of owner client being online
    • Not scalable beyond 30-person workgroup
    • Dilutes some P2P elements (e.g. one real "owner" of data". Owner cannot be simply removed from ACL)
  • Next steps:
    • Discuss if item conversations can mitigate availability issues for key workflows
    • Basis for "dog food" candidate

3 Proxied P2P with Push

  • P2PPush.gif
  • Current editing client responsible for pushing out and coordinating changes.
  • Changes are pushed through store and forward XMPP server to shared clients
  • No one client "owns" the data
  • Manually activated Pull to synchronize
  • Always receive changes before pushing out your own
  • Strengths:
    • Simple to set up and mantain
    • Higher availability
    • Just one product
    • Closest to P2P vision
  • Issues
    • Not scalable beyond 30-person workgroup
    • Restrictions on server storage space or bandwidth if externally hosted
    • N-way synchronization potentially very hairy
    • Non-guaranteed delivery of push messages could result in errors esp. conflict resolution
    • Healing network splits could result in errors esp. conflict resolution
    • Data pushing is inherently technically more dififcult (?)
    • Lack of P2P expert
  • Next steps:
    • Discuss how crucial are conflict resolutions and how well we need to resolve them? (see below for discussion)
    • Discuss if item conversations can mitigate availability issues for key workflows
    • Get a P2P expert to appraise if our PIM workflows can mitigate the n-way sync issues to a manageable level

Network architecture #2 and #3 (Proxied P2P) both involve using messaging central servers (probably XMPP servers) to traverse firewalls:
XMPP.gif

For Network architecture #1, we assume WebDAV server to be outside any firewalls.

Factors for evaluation

  • Barrier to entry of setting up and mantaining a server account
  • Availibility
  • Scalability
  • In-house expertise
  • Restrictions on server storage space
  • Non-guaranteed message delivery
  • N-way synch
  • "P2P" vision and obligation
  • Work required both on technical and product management side

Decisions made (28 Jun 2004):

  1. We will go with Option#1 for sharing collections. After we implement an early version of option#1, we will decide if we still need to support option#2. This is the only form of sharing we will implement in 0.4.
  2. We will support option#3 for sharing of single items only. This will be done to support the 1-time send update feature. We will use email as the messaging server to support option#3. This is a post 0.4 feature.
-- ChaoLam - 30 Jun 2004
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.