Alfresco uses spaces for organizing content/document storage. My first impression was that space is just a fancy name for a folder. As I learned more the meaning began to sink in. While it is possible to just treat an Alfresco repository just like a folder tree on the disk, most of the useful capabilities can be utilized at a folder level. Further, when looking at the collaboration capabilities with a team working together in one area, space begins to make more sense.
As I learned about the rules that can be enabled at the folder level, which would apply to all documents stored (recursively) within a space, the neat folder-based workflow model became obvious. This is not a new concept by any means. If you search “hot folder” on Google you will find that people have been using this concept in wide variety of applications. In particular, AntFlow gives you this general-purpose capability to create arbitrary folder-based workflows (called simple workflows). What’s neat about Alfresco is that it offers this capability in an Enterprise Content Management (ECM) framework. An Alfresco repository can be used as a Windows share using the built-in CIFS interface. So you can just drag a file into such a folder share and have workflow and other rules such as rendition creation (PDF, for example) triggered automatically. There is a long list of possible actions that these rules can invoke – including automatic metadata extraction from MS Office documents and changing security for the document. Since this is a core capability, an end user can set up such a workflow as well as a developer.
Alfresco also supports fully-featured and task-oriented (as opposed to content or space-oriented) workflows. These are called advanced workflows and are implemented using jBPM (jBoss Business Process Management). These workflows can be designed using jBPM plugins for Eclipse.
Due to my background with Documentum, I cannot help but compare how similar things are achieved on the two platforms. Workflows in Documentum refer to the task-oriented workflows, similar to the advanced workflows in Alfresco. While folder-based workflows are possible in Documentum, they would typically require customization. In Documentum, a workflow template needs to designed, validated, and installed before a workflow instance can be created from that template by the end users. If you want a nicer workflow solution, you need to buy additional licenses for Business Process Manager (BPM). There are also separate per-user licenses for the Web-based interface (Webtop) and if you want collaboration capabilities in the interface, you need to buy additional licenses. That shouldn’t be a surprise though since commercial systems are designed to be sold with separable feature bundles.
Another nice capability you have in Alfresco is that you can define aspects and attach them to all the documents automatically beneath a particular space, irrespective of the type of document. Documentum plans to support aspects in their next major release – D6. Aspects offer exciting capabilities and will be discussed in a separate post.
Overall, I feel that the Alfresco approach to rules, actions, and workflows is very flexible and gives users a lot of freedom to get creative to meet their needs.