osaf, chandler, webdav, cap, caldav… lisa dusseault open source application foundation
Post on 18-Dec-2015
222 views
TRANSCRIPT
![Page 1: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/1.jpg)
OSAF, Chandler, WebDAV, CAP, CalDAV…
Lisa Dusseault
Open Source Application Foundation
![Page 2: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/2.jpg)
Topics
• My background• OSAF in brief• Chandler
– Product Vision– Protocol requirements
• WebDAV introduction– Properties– Distributed Authoring– Advanced features
• CalDAV architecture
![Page 3: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/3.jpg)
My background
• IETF:– Chair of WebDAV, XMPP, IMAPEXT WGs– Participant in CalSch, HTTP, others
• Microsoft Exchange PM– Calendaring standard architect– Content indexing– IRC, instant messaging– WebDAV
• Xythos Director of Development– Massively scalable WebDAV server
• OSAF
![Page 4: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/4.jpg)
OSAF
– Founded in 2001 by Mitch Kapor as non-profit– Currently 20 people (mostly developers)– Volunteer assistance encouraged
Create and gain wide adoption of Open Source application software
of uncompromising quality.
![Page 5: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/5.jpg)
Chandler Vision
• New model for personal information organization– Combine email, tasks, contacts and events– Easier to ‘clear the table’ and focus
• Extensible, customizable– User defines and bookmarks views very easily– User adds important metadata fields– 3rd-party plug-ins or ‘parcels
• Share!
![Page 6: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/6.jpg)
![Page 7: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/7.jpg)
![Page 8: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/8.jpg)
![Page 9: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/9.jpg)
Traditional PIM
![Page 10: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/10.jpg)
Mixed Collections
![Page 11: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/11.jpg)
Chandler Protocol Requirements
ChandlerChandlerserverserver
CalendarCalendar
CAP?Synch?Publish?
EmailEmail
Other Chandler
Sharing
IMAP, POP, iMIP
PDA?
HTTP?Web/fileWeb/fileserverserver
![Page 12: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/12.jpg)
Sharing: Functional Requirements
• Synchronize Calendars– View somebody else’s calendar offline– Add events to shared calendars– Discuss availability
• Share Views– Collections of mixed items– Sorting, columns, other details of view also
• Share/synchronize Contacts, tasks, email• Sharing “circle”
![Page 13: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/13.jpg)
Sharing: Abstract Requirements
• Mutual authentication• Access control / multiple authors• Data browsing• Data synchronization• Search• Notifications?• IM?• Locate peers dynamically?
![Page 14: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/14.jpg)
Existing Standards
Requirement Standards Others
Data browse/synch HTTP/WebDAV, NFS CIFS
Search WebDAV
Access Control WebDAV, NFS CIFS
Locate peers Zeroconf JXTA
Notifications XMPP (Jabber), SIP
Mutual P2P Authentication
XMPP PKI
IM XMPP, SIMPLE
![Page 15: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/15.jpg)
Modular Protocol Composition
Datastore
WebDAVXMPP
SASL
URLs
Directory
LDAPSSL
MIME
Event server
PKI
![Page 16: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/16.jpg)
“Silo” Protocol Design
TCP
event
CAP
calendar
post
newsgrp
NNTP
msg
IMAP
folder
•authenticate•sessions•browse•synch•acl
•authenticate•sessions•browse•synch
•authenticate•sessions•browse•synch•acl
resource
HTTP
directory
•authenticate•sessions•browse•synch•acl
![Page 17: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/17.jpg)
Chandler 1.0 Sharing
• IMAP/POP3/SMTP support for doing mail• Propose HTTP/WebDAV for sharing
– Between Chandler peers and publish to server– Browsing, search and synchronization– To share contacts, tasks, email, calendar data– To share Chandler views (heterogeneous)
• Use other standards for other pieces – Possibly PKI for sharing circle trust relationships– Possibly XMPP for chat, peer relationship, event
notifications
![Page 18: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/18.jpg)
Why OSAF Likes WebDAV
• Solves repository access requirements– Browse, search, synchronize – Multiple authors (ACL, locking, versioning)
• Provides additional benefits– HTTP base provides URLs, libraries, fast development, simple
clients, and extensible protocol
• Clear data model for any application semantics – Properties– Collections and resources– Synchronization
• Proven, deployed, open technology
![Page 19: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/19.jpg)
WebDAV Topics
• Introduction: goals, interoperability, model• HTTP
– Synchronization via ETags
• WebDAV– Properties– Distributed Authoring
• Access Control• DeltaV
![Page 20: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/20.jpg)
WebDAV Goals
• Extend HTTP, preserving semantics– Edit Web pages– Use any authoring tool – Use native URLs for in-place authoring
• Enable applications– Any document-plus-metadata application– Clear extensible data model
• Web File System
![Page 21: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/21.jpg)
Interoperability
WebDAV
Web servers
Document Management
Archives
Publishing• MS Office• Adobe tools
Web Browsers
File Explorers
Site and Content Management
Productivity Applications
![Page 22: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/22.jpg)
File system view
![Page 23: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/23.jpg)
Workflow model
![Page 24: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/24.jpg)
Usage examples
• MS Office/Adobe: authoring• Apache, IIS 5: Web site authoring• Exchange 2000: email/calendaring• Apple iCal• Mac OS/X: publish to Web servers• Xythos WFS: file sharing• Chubb: underwriter repository• Pacific National Labs: chemistry repository• Subversion: source control repository• Excosoft, Interwoven, Vignette, Documentum: Content
management
![Page 25: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/25.jpg)
Data model
http://example.com/hr/
http://example.com/hr/ergnomics/posture.doc
http://example.com/hr/index.html
A collection
http://example.com/hr/ergonomics/ A sub-collection
A resource
![Page 26: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/26.jpg)
HTTP Model
• Data Model: Resources, entities• Communication model: request/response• Address model
– A URL points to a resource
![Page 27: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/27.jpg)
HTTP Features
• Methods– GET, PUT, DELETE– POST– HEAD, TRACE
• ETags• Intermediary support
![Page 28: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/28.jpg)
ETags
• Resources have ETags– Chosen/published by server– Remembered by caches
etag1284467
/folder
doc1.txt
doc1.txt etag1284467etag1284458doc2.txt
Cache
etag8255591
doc2.txt
Need to GET
![Page 29: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/29.jpg)
Synchronization
• HTTP only:
GET <resource-url> HTTP 1.1
If-Match: etag1088ae32• Must remember every resource• Still -- it works
![Page 30: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/30.jpg)
Performance
• HTTP designed for low latency– Size of requests just not an issue
• Pipelining may be important in some applications
![Page 31: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/31.jpg)
WebDAV Focus
• URLs, MOVE, COPY, MKCOL• Properties• Locks• Access Control• DeltaV
![Page 32: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/32.jpg)
How WebDAV affects URLs
• MOVE, COPY• BIND, UNBIND --> see bindings• Collection membership
– Can list children of /specs– Address is determined by parent(s)
/specs
doc1.txt doc2.txt
![Page 33: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/33.jpg)
Properties
• Expose HTTP data in listings– For each resource in collection… etag, last-modified,
etc
• Expose WebDAV information– Is this a collection
• Expose custom data– Invoice #, customer ID…– Picture size, date of photo…– To addresses, from address, date received…
![Page 34: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/34.jpg)
Properties
• PROPFIND– Get properties for a single resource– Get properties for all resources inside a collection
(direct children or recursive)– Specific list of properties or names of all properties
• PROPPATCH– Operates only on single resource– Set property values– Create and delete dead properties
![Page 35: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/35.jpg)
Live vs. Dead properties
• Live properties: server generates, enforces, watches or …– getETag, resourceType
• Dead properties: client has complete control– invoiceID, customerID, description
• Live properties are frequently protected; dead properties all fall under same access control
![Page 36: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/36.jpg)
Examples: Directory listing<multistatus> <response> <href>URL for /specs</href> <propstat>Details of /specs</propstat> </response> <response> <href>URL for doc1</href> <propstat>Details of doc1</propstat> </response> <response> <href>URL for doc2</href> <propstat>Details of doc2</propstat> </response></multistatus>
/specs
doc1.txt doc2.txt
![Page 37: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/37.jpg)
Example: Text Properties in XML
<response xmlns=“DAV:”>
<href>http://example.com/folder/doc.txt</href>
<propstat>
<prop>
<creationdate>1997-12-01T17:42:21-08:00
</creationdate>
<displayname>Proposal for Reorg</displayname>
<getetag>e8829107</getetag>
</prop>
</propstat>
</response>
![Page 38: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/38.jpg)
Example: XML properties in XML
<prop xmlns=“DAV:”>
<m:author xmlns:m=“ietf:iana:schemes:wg:meta”>
<m:firstname>Lisa</m:firstname>
<m:lastname>Dusseault</m:lastname>
</m:author>
</prop>
![Page 39: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/39.jpg)
Synchronization, take 2
• WebDAV:PROPFIND <collection-url> HTTP 1.1
Depth: infinity
<?xml version=“1.0”?>
<propfind xmlns=“DAV:”>
<prop><getetag></prop>
</propfind>
• Easier to get list of changed and new resources
![Page 40: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/40.jpg)
Locks
• Avoid “Lost Update” problem– HTTP ETags help but aren’t sufficient
• Tells who is editing a document• Widely used
– Adobe clients require support
• Optional feature of base WebDAV spec
![Page 41: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/41.jpg)
Lost update problem
PUT file
GET fileHello Allison
Hello Alice
Dear Allison
Change salutation
PUT file
A’s fix is lost!
GET file
Client A Server State Client B
Change name
![Page 42: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/42.jpg)
Lost update with Etags
GET fileHello Allison
Hello Alice
Change salutation
PUT file, check ETag
GET file
B must start over!
Client A Server State Client B
PUT file
GET file
Change name
New ETag assigned
![Page 43: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/43.jpg)
Concurrent edit with locks
LOCK file failsHello Allison
Change salutation
PUT file UNLOCK file
Client A Server State Client B
PUT file
LOCK file
Change name
GET file
UNLOCK fileLOCK file worksGET fileHello
Alice
Dear Alice
![Page 44: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/44.jpg)
Read properties
Write properties
Modify entityRead entity
What locks aren’t
• Locks don’t prevent read operations• Locks don’t create a sandbox• Locks don’t involve a transaction
![Page 45: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/45.jpg)
ACLs
• RFC3744• Three working implementations • Interoperability work in progress
![Page 46: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/46.jpg)
ACLs
• Model– Each resource has an Access Control List (ACL)– Each ACL has n Access Control Entries (ACE)
granting specific permission to specific principal
• Permissions similar to NFS: read, write…• Principals includes users, groups• Compatible with popular file systems
![Page 47: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/47.jpg)
Versioning
• RFC3253, March 2002• DeltaV Working Group
– Lots of IBM input
• Implementations of ‘core’ features proven– Version history– Checkin, checkout
![Page 48: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/48.jpg)
Version history, URLs
File.doc
v1
root-version
http://example.com/file.doc
http://example.com/?v=file.doc&n=1
successor-set
v2 http://example.com/?v=file.doc&n=2
![Page 49: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/49.jpg)
Versioning
• Advanced support for:– Forks, merges– Server Workspaces– Activities: atomic multi-file checkins, multi-file
branches– Baselines– Versioned collections
![Page 50: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/50.jpg)
Calendaring
![Page 51: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/51.jpg)
Calendaring Standards Status
• IETF Working group:– been through 5 chairs since 1996– 8 years of debate over CAP model and design
• Design by committee• Changing editors• Changing names CIP, CTP, CAP…
– Compare to iCalendar and iMIP: focus success
• Inventing many things from scratch– Session control, feature negotiation– Addressing, hierarchical object access, and queries– Access control, other security design
![Page 52: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/52.jpg)
Current CAP problems
• 136 pages and still underspecified• Complex -- both clients and servers• Maintains connection between server and client• No Web addresses defined for calendar items• Data model poorly defined• Offline operation undefined• Not supported by Microsoft, Apple, IBM• Not yet a standard
![Page 53: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/53.jpg)
Data model problems
• Are recurrances first-class items?• Does a hierarchy imply inheritance?• Is free-busy information a roll-up?• Do free-busy ACLs differ from ordinary ACLs?• What class of thing are VCALSTOREs,
VAGENDAs, VQUERYs, VTIMEZONEs, VEVENTs, etc.– Which are the same kinds of things?– Which are different?
![Page 54: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/54.jpg)
Chandler problems with CAP
• Server centric– What functions can the client perform? Chandler
wants control– Hard to make peer-to-peer operation consistent
• Connection-oriented– Makes servers less scalable– Client must keep open yet another connection– Search instead of Synch
• Poor performance– Many roundtrips, e.g. GENERATE-UID
![Page 55: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/55.jpg)
Chandler problems with CAP, cont…
• Data access and scheduling mixed – Alexander Taler’s mail of 24 May 1999
• But scheduling model doesn’t help multiple clients work well together
• What if clients want to use XMPP to instantly schedule
![Page 56: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/56.jpg)
Chandler problems with CAP, cont…
• Poor extensibility (IMAP model)– Chandler wants to annotate and share much more– How to put a picture like a map along with an event?
• No leverage– Compare to leverage of WebDAV– BEEP…
• More work– No CAP client libraries exist today (python, other)– IMAP-like model harder for clients: more required
features
![Page 57: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/57.jpg)
Too many features
• Don’t need searching if using synch• Don’t want scheduling but server MUST support
– Don’t want to accept alarms in scheduling requests
• Don’t want attendees to set own status – At least not directly
![Page 58: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/58.jpg)
Requirements for Calendar Server Access Protocol
• Authenticate to server• Access control for multiple authors• Data browsing
– Support for vCalendar data format, including free-busy
• Data synchronization• Search• Invitations, fan-out?
– Or is this a client function
• Notifications– Reminders, incoming invitations
![Page 59: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/59.jpg)
Where to layer
BEEP
CAP orWebDAV
CalDAV
![Page 60: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/60.jpg)
WebDAV -- Application neutral
text img vCard vCal
WebDAV
SSL/TLS
TCP
Data formats
Data access
Data privacy
Transport
Extend classic protocol layering
![Page 61: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/61.jpg)
CalDAV overview
• Data model– Calendars are WebDAV collectionshttp://example.com/users/lisa/calendars/karate
– Events are HTTP (WebDAV) resources
http:.../calendars/karate/seminar.ics
• HTTP URLs extremely portable• Full HTTP backward compatibility
– ETags, last modified date, caching
• Full WebDAV backward compatibility
![Page 62: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/62.jpg)
File formats
• HTTP GET should return something useful• GET <event-url>
– Returns iCalendar document?– Returns xCalendar?– Negotiation is a possibility
• GET <calendar-url>– Possible roll-up into large iCalendar file– Possible entry-point into WebUI– Note WebDAV doesn’t define GET of collections
![Page 63: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/63.jpg)
CalDAV and WebDAV Properties
• Any implementor can add custom properties without conflict
• XML property format – conducive to WebUI implementations
• Backward compatibility easier– Clients only ask for properties they know how to
display– IMAP model: very difficult to achieve backward
compatibility
![Page 64: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/64.jpg)
Specific properties
<response xmlns:c=“ietf:wg:calsch”> <href>http://example.com/lisa/event1.ics</href> <propstat> <prop> <c:dtstart>2004-05-01T10:00-08:00</c:dtstart> <c:dtend>2004-05-01T11:00-08:00</c:dtstart> <c:transp><c:OPAQUE-NOCONFLICT/></c:transp> <c:summary>Important Meeting</c:summary> </prop> <status>HTTP/1.1 200 OK</status> </propstat></response>
![Page 65: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/65.jpg)
CalDAV and Locks
• Optional feature• Definitely useful for shared calendars• Also useful for multiple clients
– PDA and laptop
![Page 66: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/66.jpg)
CalDAV and WebDAV ACLs
• Access control could be optional– A simple system can make calendars readable only
by owners– A slightly more complex system can make events
either private (only owner) or public)– A high value-add server can have powerful access
control, e.g. shared calendars
![Page 67: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/67.jpg)
CalDAV and DeltaV
• Versioning?– Definitely optional– High value-add feature– Useful to see who changed an event
![Page 68: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/68.jpg)
Support for CalDAV
• Apple ‘iCal’ – Publish vCalendar document via WebDAV
• Mozilla– Uses Apple model, supports CalDAV
• MS Exchange - more structured, granular – Browse calendars via WebDAV– Use WebDAV properties for appointment information– Not interoperable with Apple, Mozilla
• Cyrusoft reviewing CalDAV draft
![Page 69: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/69.jpg)
Summary
• Chandler is ambitious, open, sharing-oriented– Combines multiple data types in shared views
• WebDAV is common data access protocol– Supports versioning, search, access control, locking,
addressing -- all independent of data formats
• WebDAV + iCalendar = CalDAV– Internet-Draft (work in progress)– Working on next version
![Page 70: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/70.jpg)
Bonus Slides
![Page 71: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/71.jpg)
iMIP, vCalendar and Calendar Servers
AttendeeSchedulingClient
Email1Email1
CalendarAccess
IMAPiMIP
vCalvCal
Cal1Cal1
1
Email2Email2
SMTP
2
POP
3
Cal2Cal2
CalendarAccess
vCal 4
![Page 72: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/72.jpg)
Modular Protocol Composition
DataStore MIME
WebDAV
XMPP
URLs
SASL
URLs
SSL
events
data
Direc-tory LDAP
![Page 73: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/73.jpg)
Permissions
• All– Read– Write
• Bind, unbind• Write-content, write-properties
– Administer• Read-acl, write-acl• Unlock (destroy lock)• Read-current-user-privilege-set
![Page 74: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/74.jpg)
Inheritance
• Each resource has ‘inherited-acl-set’ property– Can declare which other resource(s) it gets ACLs
from– On some systems, a user with write-acl privilege
could set this property to change inheritance
![Page 75: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/75.jpg)
Principals
• Browsable collections of principals• Each principal is a resource
– Has URL for identification in ACLshttp://example.com/principals/users/AliceW
/principals
/users /groups
AliceW BobR sales dev
![Page 76: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/76.jpg)
Principals and Directories
WebDAV LDAP?
transformResult: simpler client
Implementation-specificStandard
![Page 77: OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation](https://reader037.vdocuments.us/reader037/viewer/2022103123/56649d245503460f949faac0/html5/thumbnails/77.jpg)