White Paper - Evaluating Java-based Open-Source Content Management Systems

In this article, we will talk about our experience with evaluating java-based open-source content management systems (CMS). This evaluation was conducted in the context of a particular project, and the project requirements are outlined here as well.  

About the Project
 
Rentgrow is a software company that provides resident screening solutions to multifamily rental properties. Using their software, rental property managers can conduct criminal, credit and other checks on the rental applicants. They needed to completely rebuild their web-based application that would be used by their customers to conduct such checks.  In particular, this project imposed the following requirements on a content management system:
  • Robust Content Approval and Publishing: The Company needs to regularly publish content onto their website: product promotions, FAQs, trade shows and events. In addition, they offered a “User Community” where end-users would be able to post comments as well. All this dynamic content would need to be managed by a content management system. It had to be very easy to create, get approval, and publish to the website. Commercial CMS solutions such as Interwoven or Vignette were too expensive and beyond the budget range for the project.
  • Extremely customizable User Interface: The Company intended to thoroughly re-brand itself in terms of images, layout and color. Furthermore, the company intended to “white-label” and resell under multiple brands, which meant an even higher level of personalization was needed. So, the CMS had to allow for absolute customizability on the front end.
  • Workflow Management: The system needed a very robust workflow engine to handle multiple business scenarios. For example, a customer who signed up online, would need to go through an internal approval workflow, before he could be approved. Similarly, the sequence of reference checks allowed to a customer, needed to be workflow driven as well. This meant that the CMS system had to either have an inbuilt workflow and alerting system, or be able to easily integrate with other open-source pure-workflow engines.
  • Permissions & Roles-based Access Control: This was a very important requirement. Based on the user’s role, he would be able to access certain areas of the website only, or be able to access certain services only. This applied to both internal and external users. The CMS needed to support a very extensive permissions framework and also be able to support it at a very granular level.
  • Java-based: The client had made Java the technology platform, so this system had to be Java-based, and this ruled out PHP or .NET based content management systems.
CMS Evaluation
Based on these criteria, we searched around and shortlisted four CMS offerings,  based on market leadership : Liferay, Alfresco, eXo and Jetspeed. We then reviewed articles on the internet and conducted some internal tests as well.
Liferay
The Liferay Enterprise Open-Source Portal is distributed under the MIT license. The MIT license allows users to modify and distribute the product without any additional cost. It uses the latest in Java, J2EE and Web 2.0 technologies. The current version of the portal is Liferay Portal 4.3, and runs on all the major operating systems, application servers, servlet containers and databases.
Strengths : It has a number of features like personalized pages, CMS, role-based permissions to pages and portlets, web publishing, publishing workflow and page staging. It also provides mobile devices support that makes pages in a Liferay Portal accessible over mobile devices. The Liferay Portal comes with about 60 portlets and various ready-made features like blog, Wiki, calendar and RSS. Liferay has a strong user community and support community in place. Weaknesses : However, in our tests we identified very significant issues with the performance of the product, and it was very slow to respond even at small traffic loads.
Alfresco
Strengths :Alfresco can run on any application server that uses Java5 (or above), is easy-to-use, has an intelligent file system, and provides a  good search interface. It also supports document and records management besides web content. The distributed (web-oriented REST) architecture that Alfreso uses makes it highly scalable and fault tolerant. Alfresco uses Web2.0 integration techniques and light-weight scripting that makes it easy to integrate with mashup content. It also has a good Web 2.0 user interface, workflow support and supports content publishing to WordPress and TypePad. It has a very extensive user community, a big list of integration partners and a support team.
Weaknesses : Alfresco is strongest at Content Publishing and didn’t provide an inbuilt workflow engine. Also, we felt that it was not very strong in its Roles Based Permissions functionality. Also, though an open-source product, the Alfresco Portal, of which Alfresco 2.1 is the latest, costs between 15,000 to 20,000 USD/CPU/year.
eXo
Strengths : eXo, like the other ECM products discussed in this document, has very good user, group and permission management that provides a powerful security management that enables control and simple access only to authorized individuals. The current version of eXo ECM, 2.0, has a unique repository that can be accessed remotely, thereby, facilitating easy and unified access to document and other enterprise content. It also has a very good versioning facility that enabled simultaneous edits and saves by multiple users. eXo ECM allows for publishing workflow management that enables administrators to configure the workflow for publishing a document. It also has a ready-made user registration module and a host of other portlets that reduce the need to re-do some of the common functionalities and helps in developing some of the custom ones. eXo ECM 2.0 has a web 2.0 based user interface that is easy-to-use.
Jetspeed-2
Jetspeed-2 Portal, is an Apache product, that requires Java 1.4.2_02 or higher and Servlet engine 2.4 or higher.
Strengths : Some of the important features it provides include role-based security, Portal content management and navigation, internationalization and full-text search facility. It also provides the user registration, forgot password and single sign-on facilities. Jetspeed-2 also has a very good statistics logging engine that keeps track of all the portlet statistics. It has excellent user and support communities and very good credibility in the Java arena.
Weaknesses : The latest version on Jetspeed-2, Jetspeed Portal 2.1.2, does not come with workflow support. It is however, possible to easily use the standard workflow engines like jBPM and OSWorkflow in Jetspeed-2 based applications.  Also, Jetspeed is not built using standard Java frameworks (like JSF, Struts, EJB etc), rather uses “velocity templates”, which we weren’t comfortable with having our team learn.
After reviewing the data, we came to the following comparison matrix:
Criteria
Liferay
Alfresco
ExO
Jetspeed
Content Publishing
Good
Very Good
Good
Good
Customizable UI
Good
Very Good
Good
Good
Permissions & RBAC
Good
Good
Good
Good
Workflow Management
Good
Good
Good
NA
E-commerce Modules
No direct support
using Partners’ products integation
No direct support
No direct support
Java Support
Very Good
Good
Very Good
Very Good
Developer Community
Good
Very Good
Good
Good
Market Momentum
Good
Good
Good
Average
System Performance
Average
Good
Good
Good
Summary
After conducting this detailed evaluation, we decided on eXo for the following reasons:
  • Liferay had significant performance issues that ruled it out early in the decision process
  • Alfresco we felt, was designed more as a content publishing system and did not have strengths in   workflow and roles-based permissions
Although jetSpeed was a close second, in the final analysis, we did not want to commit to a proprietary technical framework.