Thinking about wiki backends

Lately I've been thinking a lot about wiki backends. Others have thought about new weblog backends. From my point of view, most wikis in the Java world use ORM oder mostly JDBC backends. Currently there is a lot of buzz about JPA. JPA is a great standard to unify ORM apis and would enable users change the ORM solution in their wiki with a drop in replacement. Others do this with their app server successfully.

But for wikis the JPA abstraction level is still to low level. Much better suited is JSR 170 aka Content Repository for Java (JCR) 1.0 and the upcoming next version. Applications can specify their needs for content storage on a high abstraction level with metadataed (= property) chunks of content. There can be title, content, attachments and author properties (JCR tutorial). If all wikis share the same property namespace and the same standard markup, users could change their wiki implementations without the need to migrate data. Just start the new engine. Users could even run two wiki engines for different needs on the same content backend.

Imagine a JCR implementation (Jackrabbit please!) which uses JPA. Best of two worlds: High abstraction and content portability and plugable ORM and JCR implementations.

That were just some of my thoughts on wiki backends 2006 style.