[Cosmo-dev] chandler/cosmo sharing format -- requirements proposal

Katie Capps Parlante capps at osafoundation.org
Fri May 5 21:55:58 PDT 2006


In March, Morgen opened up a discussion about the sharing format the 
Chandler desktop client uses when publishing items to Cosmo. He outlined 
a number of problems and proposed some goals for the sharing format: 
extensible, stable, stop publishing multiple resources for a single 
item, etc.
http://lists.osafoundation.org/pipermail/chandler-dev/2006-March/005309.html

After some discussion with Brian, Lisa and Bobby, Morgen made a proposal 
(publish RDF/XML resources to Cosmo collections):
http://lists.osafoundation.org/pipermail/chandler-dev/2006-March/005453.html

The conversation took a hiatus while Morgen went off to work on 
background sync. Jumping back into that conversation (and moving the 
conversation to the cosmo list), I wanted to throw out a proposal for 
how we might frame the requirements for the sharing format, looking at 
all three projects: the sharing server (cosmo), the desktop client, and 
the web client (scooby). This proposal is a synthesis of conversations 
with John, Morgen, Ted, Grant, Sheila as well as points made by Brian, 
Bobby and Lisa in the list discussions.

(Side note: I'm tripping over myself with project names here -- trying 
to make the point that all 3 osaf projects should embody what the design 
team has thought of as "chandlerness" -- flexible data model, rich 
integration between calendar/tasks/contacts/other in part inspired by 
GTD, etc. etc. Also, I'm sending this to the cosmo list only to avoid 
cross posting -- I believe interested parties from the other projects 
are on this list.)

Proposal
========

Sharing service big picture
---------------------------
The high level priority for the "chandler sharing service" should be to 
support "rich data format" sharing services. This includes both calendar 
data as well as more general forms of personal information (tasks, 
contacts, photos, etc.). It also includes data model features used by 
the desktop client (and eventually web client) like stamping and items 
in multiple collections. We want to be able to inter-operate with other 
clients, servers, and services (both to gain adoption and because this 
is the kind of world we want to live in) and we want to promote the use 
of standards to encourage inter-operation. We also want to use standard 
protocols to build on work others have already done.

Outline of requirements
-----------------------
A. The desktop client communicates with the sharing server using a 
protocol/format that supports a "rich sharing format"
    - reasonable performance characteristics
    - extensible format to support new data types
    - supports data model features: stamping, items in multiple 
collections, bidirectional references

B. The desktop client and sharing server use standard protocols and data 
formats where possible/sensible (avoid reinventing the wheel). Options 
include:
    - tweak CalDAV
    - build on DAV (RDF format as morgen proposed, or another format)
    - HTTP, Atom, some other solution?

C. The sharing server implements a variety of protocols to facilitate 
inter-operation with other clients
    - CalDAV
    - iCal style WebDAV + ics files
    - WebDAV + other standard formats (vcard, etc.)
    - Atom
    - RSS

E. The web client supports the same "rich data model"
    - stamping
    - items in multiple collections
    - bidirectional refs
    - extensible to support new types

F. The desktop client implements other protocols to allow it to 
inter-operate with other servers
    - CalDAV, iCal style WebDAV + ics
    - functionality may be less rich
    - the desktop client can speak to other servers using these 
protocols, but doesn't necessarily speak to Cosmo this way, and Cosmo 
handles interop with other clients

G. The web client communicates with the sharing service using the same 
"rich data format" protocol as the desktop client

H. The web client implements other protocols to allow it to 
inter-operate with other servers
    - CalDAV
    - iCal style WebDAV + ics

Priorities for the short term
-----------------------------
A and E are the top, driving priorities -- fully support the features of 
the web client and desktop client, in an efficient manner.

B is important for getting where we want to go in the short term, as 
well as not shooting ourselves in the foot over the long term. As Lisa 
points out, inventing a new protocol is difficult and costly. That said, 
the protocol/data format needs to support our requirements.

C is also important in the short term, prioritized to support 
inter-operating with clients with existing users (iCal, google?, etc.). 
We prioritize based on what we think will drive adoption.

F we freeze in the short term, with possible exceptions for critical 
bugs found against popular servers. The assumption is that interop with 
other servers is not high priority in the short term as it will not 
drive adoption in the short term.

H is low priority in the short term, but we get the architecture right 
such that we can do it in the longer term.

G is important in the near term to get the architecture right, perhaps 
staged along with web client functionality showing up.

Open issues
-----------
- Most notably, define the data format crisply. Perhaps start with the 
requirements -- anything missing beyond what is listed above?

- Can we do this by tweaking CalDAV, using options that Lisa suggested? 
Do we go with something that looks more like Morgen's RDF proposal?

- How is free/busy handled if we go with Morgen's proposal?

Thoughts?

Cheers,
Katie


More information about the cosmo-dev mailing list