Cafe Rouge Architecture

Cafe Rouge is built upon standard Web protocols and components. At the heart of Cafe Rouge lies an Atom Store database (using AtomServer), which is used to store mutation entries as they are submitted to the Cafe:

  • A web feed is a simple XML document describing a collection of items, typically blog entries or news headlines. Feeds can be useful in any setting where a list of items is a useful representation. Atom is a popular, extensible feed format.
  • AtomPub is a simple, standard, RESTful web service protocol for publishing and editing information on the Web, using Atom XML as a content-neutral data wrapper.
  • An Atom store is a Web publishing platform based on the AtomPub protocol. Google Data APIs (GData) are examples of well-known Atom stores.
  • AtomServer is a generic, off-the-shelf open-source data store modelled after GData. Café RouGE is based on AtomServer. See http://atomserver.codehaus.org/ for the AtomServer project page and also this article http://www.infoq.com/articles/atomserver for a very good introduction to the AtomServer concept.

 

0
Your rating: None

Comments

Thanks for the interesting group! By quickly looking it is not clear how domain specific information (e.g. lsdb data) should be embedded into the feeds. Can you provide some info on this ?

Juha, the general idea is that the public, open-access feeds will contain only metadata in the feeds and entries within feeds. This will be a combination of standard Atom attributes/elements and possibly a small amount domain-specific extensions if required. Each element in those feeds would therefore be empty, i.e. not contain any payload in the element.
The domain-specific information would on the other hand be accessed by retrieving each via its URL from the feed, one by one (and this is where the access control mechanisms would come in).

For large collections, this one-by-one retrieval could obviously be problematic performance-wise. This could be solved by simply making a another version of each feed available where the full entry is included along with the metadata. The client could therefore say something like 'I want all the entries in this entire feed', and fetch all them all in batch. We haven't figured out how to configure Atomserver to do this yet, however.

In general, Atom feeds and the AtomPub protocol are a powerful way of piping data from one database into another and as components of a service-oriented architecture. See these slides on Atom feeds, AtomPub, REST and AtomServer: http://www.scribd.com/doc/17064220/AtomServer-The-Power-of-Publishing-fo...

Regarding AtomPub feeds - see also this post elsewhere on the KC site:

http://www.gen2phen.org/post/atom-web-feeds-atompub-protocol-and-g2p-dat...

Thanks!