[Cosmo-dev] Sharing Format discussions..

Lisa Dusseault lisa at osafoundation.org
Thu Jun 8 16:21:14 PDT 2006


I can see the attraction of sharing format code between the Cosmo  
sharing functionality and the upcoming dump-and-reload feature.   
However, there are other options with different tradeoffs in terms of  
interoperability.

One tradeoff of using a dump-and-reload format is that such a format  
may not have the same interoperability characteristics.  Two cases:
	(a) Either the format changes from version to version of Chandler,  
and therefore can't be used for sharing between two people with  
different versions of Chandler
	(b) Or, the format is consistent so that it *can* be used for  
sharing between two people with different versions, but this might  
have undue costs for dump-and-reload scenarios.  For example, if the  
dump-and-reload format is consistent between versions, we might be  
expected to support dump-and-reload from any Chandler version to any  
other Chandler version.  We might then have to test that  
flexibility.  ISMT that typically dump-and-reload features don't have  
to support major version changes, and that could be a good  
simplification to make for that feature if it was considered in  
isolation.

A tradeoff in favour of sticking with iCalendar (at least for events  
and tasks) is interoperability, of course.  I think it's feasible for  
Chandler to achieve its sharing of rich data even with CalDAV servers  
that aren't Cosmo.  (Oracle's CalDAV server is shipping this year,  
and RPI's CalDAV server is already in use in a couple places, so this  
isn't only a theoretical benefit).  There are a number of ways of  
approaching this:
    * Raw XML data could be put in an inline attachment in the  
iCalendar resource -- simple, but with the slight drawback of  
behavior in other clients likely to display the XML object as an  
attachment
    * Translate OSAF attributes into iCalendar extension attributes  
e.g. "X-OSAF-TRIAGE-STATUS=Now".  This is not much more complicated  
than storing the same data in XML anyway, and has the advantage of  
ideal behavior with non-Chandler clients -- if they don't understand  
the iCalendar extension elements they ignore them , but if they do  
decide to adopt triage status or some other property we define, it's  
possible.  Even stamping attributes can be stored this way.

iCalendar and CalDAV are more extensible than they're given credit  
for, and we haven't really had a problem solving session to overcome  
any potential barriers.

Much of the rest of what you said is applicable to any of these  
approaches (e.g. the need for an information model) but still, these  
considerations might affect some of that decision making.

Lisa


On Jun 6, 2006, at 12:04 PM, Morgen Sagen wrote:

> Now that background sync is wrapping up, it is indeed time to start  
> this discussion up.  Incidentally, I recently talked with Philip  
> (pje) about whether it made sense to use the same 'machinery'  
> within Chandler to perform both general sharing and an upcoming  
> dump-and-reload feature.  We agreed there is enough overlap that  
> we'll go that route, so let's add to the requirements list that the  
> sharing format we spec out will also be used for dumping repository  
> data to a filesystem directory and reading it back in (for use in  
> migrating data between Chandler versions, for example).
>
> Philip suggested we come up with an "information model" for the  
> format -- in other words, how an application accesses/processes  
> data in this format.  Since Chandler is extensible, as the other  
> members of the ecosystem are I'm sure, the format needs to be  
> modeled in such a way that processing can be easily handed off to  
> the proper modules/parcels/extensions.  He gave an example (pje,  
> please correct any mistakes): imagine the app receives some inbound  
> data, and that data is parsed into a dictionary whose keys are  
> namespaces.  Installed extensions could register for the namespace 
> (s) they can process, and through callbacks are given the inbound  
> data to crunch.  This allows an application to process the data it  
> understands, and ignore (but retain/republish) the data it doesn't,  
> which is important because not everyone will have the same set of  
> modules/parcels/extensions installed.
>
> So the external sharing format needs some form of namespace  
> support, whether via XML, or just splitting a file up into  
> namespace-labeled sections.  Each namespace identifies a domain  
> model (aka schema) for the enclosed data.  As for the actual  
> enclosed data, it could be as simple as a table with rows  
> consisting of: (1) UUID, (2) Attribute name, (3) Value.
>
>
>
>
> On May 23, 2006, at 3:29 PM, John Townsend wrote:
>
>> On May 23, 2006, at 3:13 PM, Brian Moseley wrote:
>>>
>>> from the cosmo perspective - i'd like to look at the complete  
>>> list of
>>> requirements from chandler, foxmarks, interop with
>>> ical/evolution/sunbird/lightning, and whatever else i've forgotten,
>>> and assign priorities. i don't want to fall into the trap of  
>>> stopping
>>> on a dime and forgetting about earlier plans because of a flavorful
>>> new feature of the week :)
>>>
>>
>> Agreed. We should invite some of the non-OSAF people like Todd to  
>> join us in this discussion. In fact, anyone who is reading this:  
>> if you know someone who should be involved in this discussion,  
>> please invite them to join us on the Cosmo list for discussion.
>>
>>
>>> btw - i think the non-osaf people on this list deserve to know what
>>> the hell we are talking about!
>>>
>>
>> Ah, ok. So, for those that don't know, here's a brief summary  
>> (feel free to correct me if I get any of this wrong):
>>
>> Up to this point, Chandler has utilized Cosmo as a sharing server.  
>> Chandler has the ability to share collections to Cosmo and current  
>> does that using WebDAV and CalDAV. When Chandler writes data to  
>> Cosmo, it writes out essentially the same set of data in two  
>> different formats: Cloud XML for Chandler use and CalDAV data for  
>> interoperability with other clients like Scooby or Sunbird.
>>
>> Going forward, we would like to change that. Beside the obvious  
>> fact that sharing the same set of data is slow and inefficient, we  
>> eventually plan to deal with other media types when we do sharing.  
>> Some of those media types are known today, some are not. So, to  
>> summarize.. we want to develop a rich sharing format that can:
>>
>> - Satisfy the needs of the projects within the Chandler ecosystem.
>> - Be more efficient than how we are doing it today
>> - The format should be extensible and scalable
>> - The format should utilize standards where possible.
>>
>> Other points to consider are that even though we are sharing a  
>> newer richer format with Cosmo in this plan, we still would like  
>> to maintain interoperability as much as possible. This might mean  
>> that Cosmo has explicit knowledge of the sharing format, parses  
>> it, and creates standards-based data structures on the server (for  
>> example, Cosmo might take in the rich sharing format, store it for  
>> chandler, and then parse it to create a CalDAV collection for  
>> interop use). Again, these are just ideas and we haven't set  
>> anything in motion yet.
>>
>> If you have thoughts on this, now is the time to speak up. Any and  
>> all thoughts are welcome!
>>
>> --> John
>>
>> _______________________________________________
>> cosmo-dev mailing list
>> cosmo-dev at lists.osafoundation.org
>> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev
>
> _______________________________________________
> cosmo-dev mailing list
> cosmo-dev at lists.osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev



More information about the cosmo-dev mailing list