soa

Service-oriented Blogging

For some time now I’ve had ideas banging around in my head about what a fully service-oriented blogging (SOB :) system would look like. It feels good to get this out of my head, and onto (virtual) paper.

Content store

The core of the blog system would be simply a store of blog posts with a blogging API in front of it.

Existing technology: Atom Publishing Protocol - Atom seems like the only blogging API with a future - I.e. the only one extensible enough to be used beyond the basic blogging use cases.

Existing services: it may be possible to use an existing hosted blogging service, if it provides an Atom API to access the store. However I doubt these systems are flexible enough to do what’s needed here.

Indexing

Your content store would be indexed by one or more indexing services. Some would perhaps focus more on categorization (e.g. Technorati) others on keyword search (e.g. Google search). The key is that the index services have an API that allows them to be easily plugged in to our blog UI.

Existing technology: Lucene perhaps?

Existing services: Google search, Yahoo! search, Technorati, many more…

Comments/Annotation

This service would allow commenting, annotation, rating, tagging, review, etc. of your content by others.

It would be cool to see a unification of pingback, trackback, and regular blog comments via smart schemas (Atom, hAtom, hReview) and smart indexers. It shouldn’t matter if my comment on your article resides in my blog system or yours (or on a third-party’s), as long as the links between the content items are discoverable programmatically, and notification of all interested parties is possible. In a sense this service doesn’t store content so much as store the links between pieces of content. To some extent this is the domain of an Indexing service - so maybe a seperate category of service is not necessary.

Existing technology: Atom, hAtom, hReview, RDF maybe

Existing services: There are several commenting services out there, but none are this flexible as far as I can tell. There have also been some experiments with decentralized annotation, like hoodwink.d and wikialong.

Authentication

Identity 2.0 technologies are appropriate here, so that none of these services need yet-another-password, and so people can easily give indexing and annotation services access to their private data.

Existing technology: OpenID, OAuth, Infocards, SAML, i-names

Existing services: many, I use Sxipper and MyOpenID.com

UI

At the end of the day, we need a front-end so that humans can see our wonderful content.

Likely there would be many - feed readers and browser plugins on the client side, on the server side one could imagine a generic content store navigator service - something that aggregates not just your content but all the various indexes, ratings, categories, tags and reviews on your content into one UI.

Existing technology: Many feed readers exist. Most modern content management systems and web frameworks are capable of assembling various feeds and querying various services to build a page.

Existing services: I don’t know of any services that do exactly what is needed here.

Syndicate content