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
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