Customer Experience Management (CXM), Information Management, Social Business
 
 
 

CMS Review: OpenCms 6.0

OpenCms Web Content Management SystemReprinted with permission from CMS Watch — www.cmswatch.com
OpenCms 6.0 is a mature, open source Web Content Management (WCM) system based on the J2EE platform. We recently acquired hands-on experience installing and customizing OpenCms on a client project. Our take: OpenCms is well suited to supporting small to medium web sites, but comes with a steep learning curve.

If you are looking for WCM solution for a web site or an intranet, OpenCms can provide you with a lot of muscle for free. However, as with all products, OpenCms has its own strengths and weaknesses. To guarantee the success of your project, multiple factors should be considered, from the skills of your development team to your ability to support open source technologies. OpenCms is normally deployed as a web application on a stack containing the Apache web server, Apache Tomcat as the application server, MySQL as the database and your choice of an operating system. We chose Linux to complete a free and open source solution, yet recent OpenCms releases are aimed to improve support for application stacks such as IBM's WebSphere and alternate database servers like Oracle.

Let's start with what OpenCms offers out of the box.

OpenCms Features

OpenCms has a broad range of features you would expect to see in a robust WCM package, including:
  • Browser-based contributor workspace
  • Built-in asset management, e.g., images, PDF documents, external links, etc.
  • DHTML-based WYSIWYG editor
  • Versioning of content with simple roll-back capabilities
  • Page preview
  • Support for structured and unstructured content
  • Integrated user management and permission system
  • JSP-based templating mechanism
  • Java API
  • Internationalization support
  • Dynamic and static content publishing models
  • Module-based packaging of add-on resources
  • Built-in search
  • Caching engine

But, like many broadly-featured WCM tools, OpenCms tends to have a steep learning curve, especially if customization is required. Molecular recently implemented a web site powered by OpenCms for one of our clients. Although the site was not large (150 pages), it was busy and high-profile. The WCM needed to support load-balancing, separate development and staging environments, as well as other advanced functionality, including support for multiple languages, Flash, RSS, ad serving, a community functions for web visitors, and potentially much more in the future.

In the following sections, we summarize what we consider the particularly strong features versus the weaknesses of OpenCms, based on our experience during this project.

Strengths

We particularly liked one feature of OpenCms: its ability to present web content both dynamically and statically. In dynamic mode, the content is served out directly from the database, optionally cached, and then presented to the end user. In static mode, OpenCms pre-publishes content to the file system and then lets the web server deliver those static HTML pages directly, in a very efficient manner.

It is even possible to combine two modes on the same website and serve different pages dynamically or statically. For example, administrators can configure the “About Us” folder and all pages underneath to be static, i.e. to be published and served directly from the file system because this content does not change very often. On the other hand, “My Account” folder and all related pages such as Login and Registration can remain dynamic because they vary for each visitor.

In OpenCms, content can exist in the system either in plain HTML format or have a a more rigid structure enforced. The latter approach allows administrators to enforce the layout of content across the entire site or portions thereof, at a much finer-grained level. Using an XML Schema, developers can create structured content types, defining XML document formats. OpenCms can then accept specifications on how to display and manipulate the XML document on the site.

OpenCms' Java API offers virtually unlimited customization, from using the repository as a mere content source to expanding and customizing the entire application for the unique needs of your organization. Our team was able to use the API to develop a custom solution to support publishing content to multiple servers.

Developers use JSP code to include dynamic elements in the content provided by the system, as well as access its repository for navigation, content, user authentication and anything in between. For example, we leveraged built-in web user registration mechanisms to create our own sign-up process by accessing the system through JSP-based forms and Java API objects. The core JSP-based templates were developed to dynamically render navigation elements depending on the context.

Like most major open source CMS packages, OpenCms has a notion of extensibility through optional modules. Adding and removing features to the systems is a matter of choosing a module and a click of a button. Modules provide excellent means of extending OpenCms' features for developers who can package their code and integrate it with the system with minimal hassle. We created a module that processes and embeds external RSS feeds into the system with code that leveraged the OpenCms APIs. The module satisfied the immediate need for a required functionality, but also can be easily reused in other installations.

The system's maturity was evident with the relatively rare occurrence of bugs during development and deployment. We spent very little (if any) time chasing OpenCms bugs. The publishing engine is solid and stable: after proper configuration the system just runs for weeks without any maintenance. The admin interface is surprisingly advanced and problem free on PC, with occasional minor issues on Mac.

The simplicity of installation is a breath of fresh air compared to the experience with the vast majority of other Java web applications. If you know your database location and passwords, you are pretty much ready to install.

OpenCms has a lively discussion on its mailing list, where implementers help each other and the core development group often provides insight and quick bug fixes for issues encountered. Archived discussions had very relevant tips for our project, and we also were able submit a question and have it answered the next day.

Weaknesses and Open Issues

OpenCms has its weaknesses, although we were able to overcome most problems by developing custom solutions, conducting additional user training, or establishing extra processes. Among the issues we encountered were OpenCms' lack of native support for multi-environment configurations, difficulty scaling the system up, weak workflow facilities, a development environment that is far from ideal, and a challenging content deployment process.

 

Continue reading this article:

 
 
Useful article?
  Email It      

Related Articles:
 
 
 

Featured Events  View all | Add event | feed RSS

Who's Hiring?  View all | Post a job | feed RSS


 
Are you hiring?    Post your job today ($45 for 45 days)!