Skip to content. Skip to navigation

Guide CMS

Alfresco

by Guy Vigneault last modified 2008-05-01 21:56
Keywords: Alfresco

Alfresco

Logo AlfrescoAlfresco is the newest project in the document management space but definitely not the least mature. Most of the mainly UK-based team of Alfresco Software share a Documentum or Interwoven background and have focused on applying best practices around the management of enterprise content as well as on the architecture that fosters easy and reliable integration with other systems. Alfresco is distributed in three levels or networks: a free community network, an enterprise network, and the small business network, which is a hybrid of the two. In addition to commercial style software support, the Enterprise Network (priced on a per-user or per-CPU basis) gives access to “Shared Source” functionality, which is not available in the free version. The key differentiator is support for high-availability deployments, LDAP support, and support for group based access control (which is very important to any large scale implementation).

ARCHITECTURE

Alfresco is a Java application relying on best of breed open source components. It is based on the Spring framework and Hibernate, includes Lucene for search and indexing, utilizes some of Open Office’s document transformation capabilities and supports common ECM standards such as JSR 168 and JSR 170. The latest version (1.2) introduced support for level 2 of the JSR 170 standard allowing also for update and search in the content repository. Web services have been a well covered topic since the start of the Alfresco project. In addition, the new version offers a web services starter kit. This allows for integration also into heterogeneous or non-Java architectures without having to go the mainstream ECM vision of centralization. The Enterprise Network version of Alfresco supports both LDAP and Microsoft's Active Directory to ensure integration into an existing security and access infrastructure. Additional features are constantly being added – the aspect-oriented approach will ensure upward compatibility. Alfresco has a distributed architecture based on the Java stack, making it very scalable and highly available with built-in faulttolerance across multiple machines. Content is stored in the native file systems with attributes stored in a relational database.

CREATE AND STORE

Claiming to be an Enterprise Content Management (ECM) System, it is the document management that Alfresco does particularly well for now. Alfresco is easy to use due to the multiple ways that files can be written and read from the system. The most intuitive interface is Microsoft’s Common Internet File System (CIFS) protocol, which allows a Windows user to mount the Alfresco repository as a normal network file share. Through CIFS, users can open, edit, and move files just like many of us are used to operate on a shared drive without even knowing that they are using a document management system. Behind the scenes, Alfresco handles locking, versioning, security, lifecycles and metadata extraction and can execute rules such as sending emails or adding categories. The more open WebDAV protocol is also supported.

ORGANIZING AND COLLABORATION

Documents inside Alfresco are organized in work spaces following the windows folder metaphor. Access rights can be defined per folder or for every file individually. All advanced functionality and administrative control is done through the Alfresco web client. Here, users with sufficient privileges can define content rules and manage security. The web client also displays metadata and versioning information about content.

Alfresco supports the concept of "€œAspects."€ The general idea is that an Aspect is a set of attributes or capabilities that can be assigned to an object without relying on inheritance through the class hierarchy. In Alfresco, there are aspects like “versionable” or "categorized"€ which can be applied to any asset within the repository. These concepts allow content types to be very simple and, if desired, users can add attributes to a single instance of a content asset. Aspects can be added to folders as rules with actions through simple wizards, similar to the way nontechnical users can add rules in email. The aspect model is also extensible.

Alfresco supports "Smart Spaces."€ These are similar to "rooms"€ in collaboration tools where knowledge (an application) on how to manage a project is stored in the form of: folder structures, content lifecycles, auditing, transformations, security and drop zones.

With the current version, Alfresco supports threaded discussions on a document or folder. Projects can be managed through notifications, reporting and dashboards. Notifications can occur through email and RSS.

Documents can be made available in other formats using Alfresco'€™s "€œTransformers"€. Retrieving a PDF version of a word document is a typical usage example.

Additional features like BPEL and extended work flow support are on the road map for future versions.

SEARCH & ACCESS

Alfresco'€™s search is powered by the open source search engine Lucene and Open Office, which is able to extract text from many file formats and make them available to the Lucene search engine. Searches can combine content (full-text) with attributes, location (folder), document type and category/taxonomy. Alfresco has extended Lucene to support categories. Support for Microsoft Office and PDF file formats is the strongest. Alfresco can be extended to handle other file formats. Folders, or "€œspaces"€ in Alfresco terminology, can have different views or “dashboards,” which are defined by creating templates using the FreeMarker templating syntax. The presentation templates as well as being used to develop dashboards can be used to create web pages, custom pplications and integrations to other applications.

Security is role/based, offering inheritance between sub-folders. Access as a guest is also supported to grant, for example, general RSS access to a folder. In the Enterprise Network, roles can be granted to user groups. In the Community Network, they only can be assigned to individuals. For large deployments, the Enterprise Network is recommended.

USABILITY

The mentioned file system integration for handling documents inside Alfresco is unique and will be helpful for companies hoping widespread adoption with little or no user training. While there is the ability to automatically extract metadata from a Microsoft Office Document’s properties, business processes should be put into place to ensure that the proper level of metadata is applied.

The user interface of Alfresco'€™s web client follows the common rules of file access and management interfaces. A tree metaphor for browsing spaces would help the user to cope with large structures of files and spaces. Novice users will need to rely on a help function for some of the features. This feature hasn'€™t yet been fully documented in the referenced mediawiki on Alfresco’s homepage during the writing of this paper. The available documentation and tutorials are being extended and improved every day.

COMMUNITY AND RESSOURCES

Alfresco is a project with development of the core product originating from employees of the Alfresco Software company. Alfresco welcomes community contributions in the form of additions to the core, bug fixes, add-on modules and translations. Some contributions, such as meta-data extraction have already been integrated. The community has also translated the product into over ten different languages. But the Alfresco community is relatively new and it remains to be seen whether a development community will form around the project to contribute more than bug reports and requirements. Forums on various topics and interest groups are available and well frequented on Alfresco’s website. Documentation is another area where an active user and development community would benefit.