Wednesday, January 27, 2010

ModeShape - a unified content bus for Magnolia?

While Oracle is working on delivering everything you might ever need from a single vendor, the real world is a mess. Always has been, always will be. (Reminder: politics has to do with people, not technology).

The real world means that you have a lot of information hubs (call them silo's if they are proprietary and provide no open API to access their content). Content Management Systems like Magnolia CMS have provided a very open architecture to access these hubs, in part because Magnolia is running on the Java platform, which has been built for such integration, and in part because Magnolia's design is so open. However, each such integration still means the developer needs to understand the target API, a fact that quickly becomes expensive.

Wouldn't it be much nicer if the developer could just ignore the fact how and where data is coming from, and simply use JSR-170 to access it?

Enter ModeShape:

ModeShape (formerly "JBoss DNA") is a JCR implementation that provides access to content stored in many different kinds of systems. A ModeShape repository isn't yet another silo of isolated information, but rather it's a JCR view of the information you already have in your environment: files systems, databases, other repositories, services, applications, etc.

To your applications, ModeShape looks and behaves like a regular JCR repository. Using the standard JCR API, applications can search, navigate, version, and listen for changes in the content. But under the covers, ModeShape gets its content by federating multiple back-end systems (like databases, services, other repositories, etc.), allowing those systems to continue "owning" the information while ensuring the unified repository stays up-to-date and in sync.

So, if all goes well, ModeShape will provide a seamless extension of our existing content repository architecture. Instead of e.g. creating a new workspace and importing data from a third party system, you could just use ModeShape and add a connector to said system. If you are lucky, such a connector already exists. ModeShape is LGPL and as such I hope that it will gain wide adoption as a transparent wrapper for JackRabbit. Used in this way (provided the performance hit is small), nothing changes from the perspective of Magnolia (or the developer) but eventually, it will simplify content integration on the JSR-170 level, something that would definitely be a boost to the importance of the specification.

And with some luck, the world will be less messy even for those that don't shell out for Larry's vision of one provider for all things IT.