Thursday, February 2, 2012

Understanding Alfresco

I've just started at the new role and the first 'real' task I've been given was to identify if the Content Management System is suitable for storing some data which was previously stored in the database. This is quite a new concept for me and there are a lot of questions to answer. User friendly display? Editing and saving? Versioning? Approval? Trail of changes? Referential integrity?

What I need out of an CMS is

  • Ability to store data in XML form
  • Ability to display data in a user-friendly manner
  • Ability to edit and save data
  • Ability to apply scripts or rules on check-in of data
  • Keeping an audit trail of changes made to data
  • Version control and options available to keep release history and versioning of documents
  • Ability to keep multiple edits or branches of documents
  • Ability to extract data
  • Ability to apply a workflow to a document such as make a review mandatory before the document is released

As an example of a CMS, we chose Alfresco. Alfresco is an enterprise content management system that includes content repository, an out-of-the-box web portal framework, a CIFS interface that provides file system compatibility, a web content management system and a workflow.

There are two different repository implementations within Alfresco. They are DM store and WCM store (Data Management and Web Content Management). They are not equivalent in terms of functionality.

WCM is built on top of the core products and adds some functionality. However, it was developed in such way that it created a separation between DM and WCM from an API perspective, so WCM is not always a subset of DM functionality. Some features are only available in WCM.

Main differences:

  • DM uses a proprietary XML-based description of the content model, while WCM uses XML schema. Main idea – not to have a mix between two models.
  • Data entered into a WCM web form is saved as XML that conforms to the XSD defined by the user. There is no similar facility for capturing data as XML within DM.
  • XSLT (or Freemaker) can be used to transform WCM data into other formats. In DM, no such functionality exist out-of-the-box.
  • WCM does not allow configuration of rules (trigger actions against newly-added, updated or deleted documents).
  • DM allows assigning users and groups to roles at folder and file level. WCM only allows doing that on a project level, no lower, but can be implemented by writing custom code using API.

General advice on choosing between DM and WCM:

Choose WCM if:

  • Authors are comfortable with Alfresco Web Client and Web Forms
  • Minimal time to be spent on presentation tier
  • Need the ability to rollback change sets
  • Only need to link content to basic URLs
  • Need to have a staging environment
  • Simple workflow is sufficient

Choose DM if:

  • Workflow must be exposed via the portal
  • Developers are experienced with XML/XSLT, WYSIWYG editors and jBPM
  • Can spend time upfront designing a robust presentation tier
  • Custom solution is desired and the overall solution is simple

References

Understanding the differences between Alfresco repository implementations
Alfresco WCM or DM: What is the best choice for your enterprise portal? by . Also posted on my website

No comments: