Content Management System (CMS) investigation [2005-08-19]

Overview

One of the key success factors for any type of collaborative team (not just software development) is the ability to quickly and effectively capture and disseminate their knowledge. In terms of ubiquitity, you just can't go past a web server and web browser. However, all but the most trivial web sites really need some sort of Content Management System. Without some sort of tools based assistance, it just gets too hard to achieve ...

  • Ease of content creation and instant publishing (absolutely crucial)
  • Ease of locating, indexing or searching for information (also absolutely crucial)
  • Content and presentation consistency
  • Version control
  • Access control
  • Interoperability with other systems
  • Flexibility

Starting from a base of Internet standards, there are many different approaches to capturing and dissemination information. From the most ephemeral, such as instant messaging, through to email lists, static web pages, forums, blogs, wiki-wikis and so on.

However, when it comes to a balance of easy content authoring, instant publishing, collaborative approach, capturing non-linear thought processes and incremental assembly into more structured documentation. Then, systems based around a wiki-based approach are hard to beat. Perhaps the premier example in the world is the Wikipedia, a collaborative encyclopedia. Wikis are not without their problems, but they are a reasonable compromise.

This technical note is written from the perspective of knowledge capture and dissemination, as well as integration with other systems, rather than pure content publishing.

Underlying technology choices

If it is possible to get an out-of-the-box solution that will meet 100% of your current and future needs, then what's under the covers of your CMS probably isn't an issue.

However, typically, a CMS will need to be customized. Perhaps only the skin for external appearances. Also, you may need to integrate the CMS with other information systems in the organization. Finally, there may be a need to extend the CMS with new functionality via site specific programming. In these cases, the technology underpinning the CMS becomes a factor. A key consideration will be whether either in-house skills and / or external assistance is available to make the modifications.

Since my current weapon of choice is Java, my starting point was to check out Java based CMS projects / products.

However, in the open-source world, it would appear that many people favor PHP based CMS systems. This article is one example ... Ask TSS: Do any Java CMS/Portals match the PHP ones?

There is a tension between the quick and (often) dirty PHP based systems that are feature rich and constantly changing and improving, but are (often) a complete mess internally ... and, on the other hand, the slower and well-engineered (perhaps over-engineered) Java based systems. One thing is for sure, the PHP community seems to have got it's CMS act together a couple of years ahead of the Java crowd.

Daisy CMS

Is Daisy the best CMS ? For your needs, perhaps not.

But, what I like about Daisy is ...

  • Content is based on standard HTML tags. No obscure CMSor Wiki specific mark-up to learn
  • Excellent JavaScript based HTML editor. Runs in any browser for painless local editing
  • Based on Cocoon 2 (an old favorite of mine) and Java
  • Is well engineered with clean seperation between content, logic and presentation / layout (thanks to Cocoon)
  • Handles non-HTML content and other documents quite readily
  • Reasonably easy installation and administration
  • Easily skinnable via XSLT, extensible via JavaScript and more seriously extensible via Java
  • Is actively under development
  • Has a number of neat features, e.g. document collections and faceted browsing

And, so, the Daisy CMS is powering the dynamic content authoring and publishing for this Geekscape web-site and several others.

Other noteworthy open-source CMS

WikiMatrix is an excellent web-site that reviews and provides detailed comparison between a bewildering array of CMS offerings !
CMSMatrix is another source of (self-proclaimed independent) information and analyst.
CMSWatch
ditto.

Java based

  1. Magnolia http://www.magnolia.info
  2. OpenCMS http://www.opencms.org
  3. Alfresco http://www.alfresco.org
  4. Confluence http://confluence.atlassian.com (commercial product)
  5. OpenACS http://openacs.org used on many projects and web sites
  6. List of Java open-source CMS

Over time, the JSR 170: Content Repository for Java technology API specification will become more of a factor.

There also appears to be some interest in these systems being built using the JSR 168: Portlet Specification.

PHP based

  1. Drupal http://www.drupal.org
  2. MySource Matrix http://matrix.squiz.net
  3. PHPNuke http://phpnuke.org --> PostNuke http://www.postnuke.com --> Xaraya http://www.xaraya.com
  4. Mambo http://www.mamboserver.com -> Joomla http://joomla.org
  5. Typo3 http://www.typo3.com
  6. DocuWiki http://www.dokuwiki.org
  7. List of PHP open-source CMS

Python based

  1. Plone http://www.plone.org on Zope http://www.zope.org

Copyright Notice

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License

Comments (0)