r2 - 26 Jul 2006 - 12:05:05 - ElliotLeeYou are here: OSAF >  Projects Web  >  CosmoHome > CosmoArchives > CosmoFeedService > CosmoAtomProposal

Cosmo Atom Proposal

This is a work-in-progress for the Google Summer of Code project to improve Atom support in Cosmo. Please feel to contact me with any comments.

So far, this page mostly just contains a portion of the information from the original proposal. We will flesh it out with details as I begin working on the project.

Related Wiki Resources

Java Utilities that might be useful

Why Atom support for Cosmo?

With the proliferation of Web 2.0-style websites, people are increasingly sharing data between separate web applications. Allowing these web applications to access Cosmo information using Atom would allow the server to be used in new and useful ways.

For web appliations and web services, Atom is a fast alternative to CalDAV. Eventually, it would allow complete calendar access. Similar to blog feeds with feed readers, it would allow users to publish and subscribe to calendars. Further, users could synchronize between multiple devices.

For the scope of this project, I want to implement at least basic functionality of the GData protocol.

Current Atom Support

Cosmo can already output a collection to an Atom 1.0 feed. To expand on this, I need to research atompub, the format and protocol for publishing, and learn how to use Java to connect with Atom feeds on the web. Then, I want to implement the GData protocol in Cosmo.

Interface

Atom feeds would be a natural option for working with data. Just as Cosmo supports iCal and CalDAV, it would support Atom. Although Atom feeds would be different from these other formats, it would also offer "subscribe" and "update" features.

Client programs talking to Cosmo over the network might POST a request for Cosmo to update from a remote calendar or POST the data directly via atompub. In this way, all Cosmo functionality could be made available via network protocols.

GData Support (from SOC proposal)

Cosmo's Atom support could be extended to include Google data API ("GData") feeds, since they are based on Atom. Since there is another group of developers already looking into the use of GData, Cosmo would become interoperable with these alternative Calendar applications. Like Google Calendar, using an API based on Atom would enable client applications to: - Create new events - Edit or delete existing events - Query for events

With Atom support, it seems that it would be easy to develop an application that synchronizes event data between Cosmo and Google Calendar. Using GData feeds, the application could pass information between various Calendar clients with little or no processing, and even perform actions and work with those events.

It seems that there are two methods to import data into Cosmo via Atom. First, Cosmo could read data from an Atom feed. This is a one-way transfer. When the Atom feed is updated, Cosmo would retrieve the new data and update its database. Second, Cosmo could receive data from a POST request that supplies the new entry in Atom (or GData) format. Then, the Cosmo server would respond with the status of the update request.

Google Calendar Data API Guide: http://code.google.com/apis/gdata/calendar.html

Google's Calendar Offerings

Note that Google offers calendars in three formats: Google Calendar, XML (Atom 1.0), and iCal (webcal?). The goal of this project would be to support the Atom 1.0 format. Example: http://www.google.com/support/adsense/bin/answer.py?answer=40714

Planned Schedule

This is a work-in-progress, and the schedule will be detailed more specifically as I reach these milestones.

  • Learn GData by July 27
  • Work on retrieving data by July 28
  • POST to add events around July 29
  • DELETE to remove events around July 30
  • PUT to update events around July 31

From http://wiki.osafoundation.org/bin/view/Projects/GoogleSummerOfCode2006:

Atom is an exciting lightweight alternative to CalDAV for Web 2.0-style calendar sharing. Cosmo generates basic Atom feeds for calendars and for generic collections. As well, we would like to accept events and other types of content via atompub.

Mentors: Brian Moseley and Bobby Rullo

-- ElliotLee - 05 Jun 2006 -- ElliotLee - 26 Jul 2006

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.