Early look at Alfresco WCM

I’ve been using my recent travel time to have a look at Alfresco‘s Web Content Management (WCM) Preview Release 1 (download). The Preview Release does not include enough functionality to do an apples-to-apples comparison against existing competitors, but it does give you a feel for the templating functionality and virtualization.

At a high-level, the content authoring/publication workflow goes like this:

  1. A form is defined using XSD and uploaded to the Content Forms folder in the Data Dictionary.
  2. Forms are optionally associated with one or more XSL stylesheets to transform the content into any desired output format. (The XSD and XSL files are conveniently stored within the same folder).
  3. Content authors use a form to submit new content which is saved in the repository as XML. When it is saved, the XML is transformed into one format for each XSL defined for that form.

Creating XML content through templates

The templating engine is based on Chiba. Alfresco’s implementation exceeds what I’ve seen other vendors do with Chiba. The UI is congruent with the rest of the Alfresco web client and the form widget performance seemed quite snappy.

Alfresco’s WCM review guide uses the Hello World of the ECM market–Press Release–as its primary example. We can all relate to a Press Release, which is why everyone uses it, but it has its limitations. I’m anxious to see some advanced form functionality such as wizard-like behavior, complex validation, or form fields that are shown/hidden based on logic. But, again, this is only a preview. The example does include a run-time lookup to a JSP to get the options for a radio button, so that’s good. Ultimately it will take some real world examples (hopefully shared with the community) to show the full power of XForms.

Alfresco has said that the forms piece will be leverageable by non-WCM solutions built on the Alfresco platform, which is definitely important. Form submission is a low-hanging fruit for document management implementations. When I tried to create some form content outside of a web site folder, however, it didn’t work. I didn’t have time to figure out why. I’ll check on it again in a subsequent release.

Providing an isolated working environment through virtualization

The Virtualization Server is where we get our first glimpse of the Interwoven DNA Alfresco acquired to help drive the development of the WCM offering. Those who have worked with Interwoven TeamSite in the past will be instantly familiar with the concept of Virtualization and the Alfresco Sandbox. For those who missed out, a Sandbox is like your own personal snapshot of the website. It gives a content worker (I’ll use “worker” as a generic term to cover “Author”, “Publisher”, “Manager”, or any of the other terms that might have specific connotations to a particular WCM implementation) a way of seeing their changes before they are integrated into the site. Those changes might be to static pages, graphics, or even dynamic element such as JSPs. When multiple content workers are making changes to a site simultaneously, the sandbox model can be very efficient because everyone works in their own pristine environment until they are ready to integrate in the “Staging” area by promoting their changes.

The evaluation bundle comes with a separate instance of Tomcat that acts as the Virtualization Server. If you look in the work directory, you’ll see a web application for each user of each web site–these are essentially the sandboxes.

The first thing you’ll notice when you preview a piece of content is the URL. Out-of-the-box, Alfresco uses a public domain that their name server resolves to your loopback address. The sandbox webapp then takes it from there. This means that when you are running the virtualization server you’ll need either: (1) An internet connection or (2) Your own name server.

Because I frequently give disconnected demos I went with option 2. The high-level steps to get this working on my Ubuntu-based laptop were:

  1. Install bind9 (Follow steps here).
  2. Setup a zone file for my domain with a wildcard entry that resolves to my IP address (Follow rough steps here).
  3. Configure networking to use the new, local name server. In Ubuntu you can use the Networking GUI or update /etc/resolv.conf.
  4. Configure Alfresco to use my local domain for virtualization instead of the public domain by updating shared/classes/alfresco/extension/web-client-config-custom.xml (Read the Virtualization Configuration page on the Alfresco Wiki here).

What’s Next?

This preview achieved its desired goal–it gave us a tantalizing glimpse into the state of Alfresco’s WCM efforts. If you are implementing WCM in the next six months it is worth the time to download and play with the preview release.

The next big things to look for in subsequent preview releases are:

  • Integration of the Alfresco 1.4 jBPM Engine with WCM
  • Versioning and rollback
  • Content deployment

When those are in place and working, early adopters may have enough functionality to implement, and we’ll be able to do valid head-to-head comparisons with Alfresco’s competitors.