« iPhone SDK Feature Check | Main | iPhone 1.1.4 and SDK »

Saturday, February 16, 2008

AtomPub Servers Anywhere?

Atom and AtomPub (and the surrounding landscape) already are important building blocks of web architecture, and will no doubt become more important. today i learned that there even is a word for using these technologies, KnowNow invented the term Syndication-Oriented Architecture (SynOA). i don't like the name, because it sounds like a designer drug, because the term syndication is a mystery to most, and because this clumsy allusion to SOA probably is not a smart thing to do. but i do like the fact that there is a name. it is always good when things get names, it means that somebody cares about them.

now that the thing has a name, i would be really curious to find out how usable it is. i am currently searching for AtomPub server implementations, and so far this process has been rather frustrating. as far as i can tell, there is no general-purpose implementation of AtomPub's server side available. all seem to be implementations of draft versions of the standard, in early stages, or experimental. why is that? of course, there are a number of well-established AtomPub servers in specialized products (such as in blogging tools, for example in WordPress), but there does not seem to be anything with a really wide range of possible uses.

but why isn't anybody interested in building general-purpose AtomPub server code that can then be build to easily build AtomPub interfaces to any collection of entries? one of the beauties of Atom and AtomPub is that they are so strict about foreign markup and how they can be extended, so building an open and extensible AtomPub server would not only be interesting, it would also be a platform for all kinds of specializations.

because we are actively looking for some usable code implementing AtomPub's server side, i will soon post some overview of what we found. for now, what we've found is php-atompub-server, apache abdera (Java), exist (XQuery), amplee (python), and mod_atom (C, apache module). if there's more, please let me know!

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

While reading this I also decided to start my own implementation of AtomPub server framework in php. Take a look http://code.google.com/p/atom-php-framework/

There is BlogSVC in C# by Jarrett Vance (http://www.blogsvc.net/)

Introduction from BlogSVC's website:

BlogSvc is an open source implementation of the Atom Publishing Protocol. It has a flexible design that allows entries to be stored in files or databases. The service is compatible with Live Writer.

BlogSvc is written in C# 3.5, uses the new web programming model in WCF, and relies heavily on LINQ and other new language features. BlogSvc can be used with or without IIS.

BlogSvc includes a front-end implemented as a cutting edge web site in ASP.NET. It uses web standards and has neat new features built with jQuery.

I personally use Amplee as a backend for Bright Content[1]. At the moment it simply just wraps the Amplee storage and indexing in a slightly simpler interface. The result is a rather easy way of creating AtomPub based stores for different applications. Bright Content powers my blog but I also created a small accounting application and a wiki-ish CMS.

The key is using the indexes. This allows you to create an AtomPub interface while still using the entries how you need to. For example, in one scenario, I use the atom:categories to filter feeds, where in another instance I'm able to version documents. Bright Content as an application aims to be a RESTful CMS, but at the moment the storage library and model has been very flexible. Overall the model of a generic AtomPub store with indexes makes for creating the HTTP interfaces and checking/filtering a snap.

[1] http://xml3k.org/Bright_Content/

I ever tried a php implementation called Isotope. It's quite a neat PHP implementation of Atom Publishing Protocal(now AtomPub).Unfortunately, the author had stopped further development of the frame for a long time.

http://www.isolani.co.uk/projects/atom/isoTope/

What I'd be more interested in these days is a XForms application that could be plugged onto an AtomPub server and provide a rich frontend to such web service.

I had the same intuition as you, that a general store could be useful, without being hooked up into some larger system (like WordPress). But I haven't actually confirmed that intuition. In the process I did write my own Atompub server: http://blog.ianbicking.org/2007/09/12/flatatompub/ (written in Python) -- it has limited extensibility, in part because I'm not sure how extensible a server *should* be. Storage is boring; flat files are good enough. Indexing is interesting, and that is extensible.

But I dunno, I haven't actually found the right opportunity to use this, so I don't know if it's really extensible enough as is.

I also went looking only to be disappointed. I'm personally working on a C#/ASP.NET implementation of the server, but it's still in the prototype and design stage at this point.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Flickr

Twitter Updates

    follow me on Twitter