r3 - 19 Aug 2004 - 13:50:17 - LisaDusseaultYou are here: OSAF >  Journal Web  >  TWikiUsers > LisaDusseault > LisaDusseaultNotes > LisaDusseault20040816
Previous Notes

Notes for CSG meeting: Topics to cover

WebDAV tutorial

Standards

  • CalSch WG -- Bob Morgan
  • Launch of iCalendar mailing list: Calsify
  • Launch of Python iCalendar/vCard parsing libraries: VObject
  • Launch of CalDAV mailing list, discussion so far
  • IMAP WG completing Annotate, LISTEXT, SORT -- important for Chandler

Sharing Architecture

  • Publishing Item Collections
    • Upload data to publisher's WebDAV account
    • Simplest case: Publicly readable data
    • Eg: entire calendar as WebDAV collection, events as WebDAV resources
    • Export Chandler attributes as WebDAV resource properties
    • Long-term: use standard fromats for resource bodies (e.g. iCalendar, vCard, RFC822)

  • Publish + Invite
    • Enter list of people invited to share my material
    • Send sharing invitations via email/XMPP
    • Each Chandler recipient sees "Accept/Ignore" when invitation is received in Chandler
    • Each non-chandler recipient sees HTTP URL - can download standard body representation
    • Publisher can see the list of invitees later -- re-issue invitations if necessary.

  • Access Control
    • Simplest case: publisher uploaded data to own WebDAV account, so whatever that account is configured for, becomes the default access control.
    • E.g. Unix permissions model: owner can do all operations, group can do most operations. This works for many small workgroup situations.
    • More complex servers: support for WebDAV ACL standard needed
    • Long term: Chandler GUI to expose server's Access Control settings for entire collection or for individual resources

  • "Subscribe", or Share from this URL: Synchronize
    • Terminology issue: "Subscribe" means to download/synchronize repeatedly via polling
    • Synchronization is needed for offline functionality
    • Can provide URL to publicly-readable calendar (e.g. SF Symphony; Avalon Meeting Room) and download any changes for offline viewing any time
    • WebDAV supports synchronization through ETags and PROPFIND
    • Proposals to improve WebDAV synchronization (higher performance): SyncML integration? Replication reports?

  • Browse shared Collection
    • How similar is browsing to synchronizing? How different?
    • Is the cache for browsing just the same as synchronized content?
    • How to make browsing fast?
    • WebDAV supports browse by using PROPFIND to display only a summary view, before all the details are downloaded
    • Even better if WebDAV SEARCH becomes standardized -- a subset of the information from PROPFIND, only what's needed in current view rather than entire collection contents

  • Sharing Circle
    • Different circle for each Item Collection or use same circle for multiple Item Collections
    • Each person with read/write access treated equally -- no default "winner" of conflicts
    • Each person's Chandler can synchronize local changes and do automated merges
    • Conflicts that can't be resolved by software are published as conflicts for anybody to deal with
    • Each person can see the sharing status of other people -- e.g. Leslie hasn't updated in 1 week (maybe she's gone on vacation?)

  • Choice of properties vs. body
    • WebDAV represents database-style data through properties, leaving bodies empty.
    • WebDAV represents file-structured data through bodies, with minimal properties.
    • Can we pick one for calendaring or do we use both?
    • Property advantage: fast browsing, easy to make modifications to small piece --> multi-author support
    • Body advantage: Better synchronization support, better support for plain HTTP clients.
    • Can we do both? CalDAV approach to make server do both...
    • Can we do both? Chandler dogfood approach maybe make client do both...

  • Property namespaces, property values, and iCalendar
    • WebDAV properties MUST have namespaces
    • DAV: namespace only for standard properties
    • This makes WebDAV nicely extensible
    • Server must preserve, COPY, MOVE even custom properties it doesn't recognize
    • Property values are either XML elements or XML text
    • Dates are XML Text but defined (in specifications) as
    • Proposal to do datatyping for WebDAV
    • If we want iCalendar data to be reflected in the properties (for fast browsing and multi-author support) then iCalendar data must have an XML mapping for value, plus a namespace

  • Single Item Sharing
    • How to share a single event, single contact?
    • Feasible via email --> absolute broadest accessibility
    • Email to Chandler user: view as Event/Contact primarily (not as email)
    • Email to Chandler user: Replacements to item are recognized and treated as updates
    • Email to non-Chandler user: view standard representation (iCalendar or vEvent)
    • Email to non-Chandler user: Replacements are simply additional (later) copies
    • How is this different from an invitation, for events? Not very different...
    • Same mechanism for Contacts, Tasks, even as-yet-undefined resources
    • Why not do email sharing for more than one item? Too difficult, unreliable, coordination hard!

  • XMPP Uses
    • Instant messaging
    • Use XMPP to see whether contacts are online/offline -- visible when viewing contact, email from contact, email to contact
    • Use XMPP, when available, to deliver Chandler<--> Chandler messages -- preferable to email
    • Define a way for WebDAV server to generate XMPP notifications on change events...

  • XMPP as Event Notification Infrastructure
    • HTTP(WebDAV) and XMPP are complementary
    • HTTP is designed for the server to handle many requests from many clients scalably and securely -- some are straightforward content requests, some require processing
    • XMPP is designed for the client to handle many requests scalably and securely from a variety of sources -- some are straightforward user text messages, some are intended for handling by software agents
    • XMPP is only protocol that provides a way to address a specific software agent via a user: lisa@osafoundation.org/Chandler
    • XMPP Pub/sub model: http://www.jabber.org/jeps/jep-0060.html
    • User agent (Chandler) subscribes to events: presence notifications, calendar collection change notifications
    • Terminology: issue: "Subscribe" here means to ask for and receive stream of live events -- almost the opposite of synchronization via polling

  • Extranet sharing
    • Certificates
    • Tickets

Into Westwood

  • What is a Chandler Server? What are the requirements?
  • How much of this do we build or buy?
  • What tradeoffs do we make between usability (advanced features), time to release, security, interoperability?
  • WebDAV servers: ACL support? Certificate support? SEARCH? DeltaV?
  • IMAP servers: Annotate support? LISTEXT? ACL2?

The good news

  • If we'd done something proprietary we'd have to invent all of this
  • Backward compatibility (to down-level clients) very feasible in very many situations

-- LisaDusseault - 17 Aug 2004

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r3 < r2 < 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.