1 / 77

OSAF, Chandler, WebDAV, CAP, CalDAV…

OSAF, Chandler, WebDAV, CAP, CalDAV…. Lisa Dusseault Open Source Application Foundation. Topics. My background OSAF in brief Chandler Product Vision Protocol requirements WebDAV introduction Properties Distributed Authoring Advanced features CalDAV architecture. My background.

bairn
Download Presentation

OSAF, Chandler, WebDAV, CAP, CalDAV…

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OSAF, Chandler, WebDAV, CAP, CalDAV… Lisa Dusseault Open Source Application Foundation

  2. Topics • My background • OSAF in brief • Chandler • Product Vision • Protocol requirements • WebDAV introduction • Properties • Distributed Authoring • Advanced features • CalDAV architecture

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

  4. OSAF Create and gain wide adoption of Open Source application software of uncompromising quality. • Founded in 2001 by Mitch Kapor as non-profit • Currently 20 people (mostly developers) • Volunteer assistance encouraged

  5. 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!

  6. Traditional PIM

  7. Mixed Collections

  8. Chandlerserver Calendar Synch?Publish? CAP? Web/fileserver Email IMAP, POP, iMIP HTTP? Other Chandler Sharing ? PDA Chandler Protocol Requirements

  9. 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”

  10. Sharing: Abstract Requirements • Mutual authentication • Access control / multiple authors • Data browsing • Data synchronization • Search • Notifications? • IM? • Locate peers dynamically?

  11. Existing Standards

  12. Datastore Modular Protocol Composition Event server URLs MIME XMPP WebDAV SSL PKI SASL LDAP Directory

  13. “Silo” Protocol Design IMAP NNTP CAP HTTP • authenticate • sessions • browse • synch • acl • authenticate • sessions • browse • synch • authenticate • sessions • browse • synch • acl • authenticate • sessions • browse • synch • acl folder newsgrp calendar directory msg post event resource TCP

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

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

  16. WebDAV Topics • Introduction: goals, interoperability, model • HTTP • Synchronization via ETags • WebDAV • Properties • Distributed Authoring • Access Control • DeltaV

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

  18. Interoperability Web Browsers Web servers Productivity Applications Archives • MS Office • Adobe tools WebDAV Publishing Document Management File Explorers Site and Content Management Email

  19. File system view

  20. Workflow model

  21. 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 Usage examples

  22. Data model A collection http://example.com/hr/ A resource http://example.com/hr/index.html A sub-collection http://example.com/hr/ergonomics/ http://example.com/hr/ergnomics/posture.doc

  23. HTTP Model • Data Model: Resources, entities • Communication model: request/response • Address model • A URL points to a resource

  24. HTTP Features • Methods • GET, PUT, DELETE • POST • HEAD, TRACE • ETags • Intermediary support

  25. ETags • Resources have ETags • Chosen/published by server • Remembered by caches /folder Cache doc1.txt etag1284467 doc2.txt etag1284458 doc1.txt doc2.txt etag1284467 etag8255591 Need to GET

  26. Synchronization • HTTP only: GET <resource-url> HTTP 1.1 If-Match: etag1088ae32 • Must remember every resource • Still -- it works

  27. Performance • HTTP designed for low latency • Size of requests just not an issue • Pipelining may be important in some applications

  28. WebDAV Focus • URLs, MOVE, COPY, MKCOL • Properties • Locks • Access Control • DeltaV

  29. /specs doc1.txt doc2.txt How WebDAV affects URLs • MOVE, COPY • BIND, UNBIND --> see bindings • Collection membership • Can list children of /specs • Address is determined by parent(s)

  30. 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…

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

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

  33. /specs doc1.txt doc2.txt 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>

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

  35. Example: XML properties in XML <prop xmlns=“DAV:”> <m:authorxmlns:m=“ietf:iana:schemes:wg:meta”> <m:firstname>Lisa</m:firstname> <m:lastname>Dusseault</m:lastname> </m:author> </prop>

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

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

  38. Client A Server State Client B GET file Hello Allison GET file Change name PUT file Change salutation Hello Alice PUT file DearAllison A’s fix is lost! Lost update problem

  39. Lost update with Etags Client A Server State Client B GET file GET file Change name Hello Allison Change salutation PUT file New ETag assigned PUT file, check ETag Hello Alice B must start over! GET file

  40. Concurrent edit with locks Client A Server State Client B LOCK file GET file Hello Allison LOCK file fails Change name PUT file UNLOCK file LOCK file works Hello Alice GET file Change salutation PUT file UNLOCK file DearAlice

  41. What locks aren’t • Locks don’t prevent read operations • Locks don’t create a sandbox • Locks don’t involve a transaction Read properties Write properties Read entity Modify entity

  42. ACLs • RFC3744 • Three working implementations • Interoperability work in progress

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

  44. Versioning • RFC3253, March 2002 • DeltaV Working Group • Lots of IBM input • Implementations of ‘core’ features proven • Version history • Checkin, checkout

  45. Version history, URLs File.doc http://example.com/file.doc root-version v1 http://example.com/?v=file.doc&n=1 successor-set v2 http://example.com/?v=file.doc&n=2

  46. Versioning • Advanced support for: • Forks, merges • Server Workspaces • Activities: atomic multi-file checkins, multi-file branches • Baselines • Versioned collections

  47. Calendaring

More Related