In this article, the author presents a comparative study of different CMS solutions, discussing their merits and demerits when used in Java application architecture.
With widespread access to the Internet, people prefer to do many of their favourite jobs online—like shopping, banking, attending meetings, etc. Earlier, tasks requiring online (Web based) technology proved to be costly due to resources and other constraints. Nowadays, with the invention and widespread usage of cloud computing as well as access to shared or rentable resources over the Net, people prefer online computing to a great extent.
A CMS (content management system) comprises a set of techniques and features to handle shared data and to manage the related workflow. Knowledge management sites (sharing articles and technical query forums) are examples of a CMS. Content management is coupled with workflow management (like a series/sequence of predefined workflows for handling content). To make it simpler, since the volume of users online is too huge for handling unauthorised content publishing, a gateway is provided for the approval process (like upload, accept, approve, publish, share) which is defined with different stages, before becoming available to public users.
Choosing a CMS solution
There are a lot of sophisticated CMS solutions available in the industry, but you must find what’s most appropriate for your requirement. So let’s discuss some of the most popular CMS solutions and also do a comparative study on them.
Do keep in mind that this article does not cover the usage and complete technical background of the CMS solutions discussed as that may deviate from the topic of interest. Rather, it gives an introduction to these solutions and straight away runs through their pros and cons by doing a comparative analysis.Designing CMS based architecture
Before getting into the CMS solutions and a comparative study, let’s first understand what makes a CMS website comprehensive and hence appreciated by common users. For this, we have to analyse various common requirements of a CMS solution and see how to handle them.
We need to understand what the third party tools required for the development of a CMS are and how we get support from them. It also means that we need to do a thorough analysis of the flexibility of these tools when combined with our CMS solution. For example, if we need support for PDF printing or barcode printing, we need to check the feasibility of offering these features with tools like Adobe Indesign or iText.
We need to analyse our competitors and design a solution that not only offers all the facilities provided by them, but even more. Also, the designer has to analyse the support for a multilingual system or for internationalisation (i18n) if required for the system, so that it caters to users across various countries. i18n support is not an easy-to-handle design as it requires deep study into the type of language support (like Unicode support) and locale-specific data requirements (like country-wise time zones, currencies, etc).
Also, the designer has to keep in mind other technological and logistic requirements like the performance of the system, its reliability (it should not hang, restart or respond inappropriately to the user), development related roadblocks like insufficient time for development, etc. It should also be easy/flexible to maintain, modify and deploy, and designers should factor in changing resource (systems and hardware) needs and network traffic.
Deciding and planning for these requirements will make the CMS solution comprehensive and robust for users, while being easy and flexible to implement, handle and maintain for the developers.
Drupal
Drupal is a growing CMS solution which uses PHP for Web designing (the front-end). This is a flexible and lightweight system, which can sit on application servers like Apache or Microsoft IIS.
We can configure Drupal easily with a database system based on MySQL or PostgreSQL. Drupal has several advantages like i10n support (internationalisation), a faster solution and ACL (access control list) provisioning (user handling with access permissions), to name a few.
The drawbacks include poor support (community users are few) and less support for document management (DM). Recently, Drupal developed a package for Alfresco integration to support better document management.
Joomla!
Joomla! is a popular open source CMS which is flexible and has a wide variety of content themes (Web design models or skeletons of Web page designs). It has good support for blogging and DM, and from different communities and forums. The drawbacks are that it has support only for Apache and has a poor ACL (user management). Also, being a heavyweight results in slower and poor performance.
Alfresco
Alfresco is the leading CMS solution based on Java and has very good support on a wide variety of linked applications/tools and facilities. It has the support of a large development community (blogs and forums) which uses it across different domains.
It is not so lightweight and not as fast as Drupal. Another notable drawback is that setup and configuration are comparatively tedious.
Table 1 gives a comparison of these CMS solutions.
Drupal has poor support? My experience is that the Drupal community is it’s main strength, the is a culture of helping each other and you can get an answer to most things on stackexchange within the same day.