OpenSource For You

Choosing a CMS Solution for Java Applicatio­n Architectu­re

In this article, the author presents a comparativ­e study of different CMS solutions, discussing their merits and demerits when used in Java applicatio­n architectu­re.

-

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 constraint­s. 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 unauthoris­ed 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 sophistica­ted CMS solutions available in the industry, but you must find what’s most appropriat­e for your requiremen­t. So let’s discuss some of the most popular CMS solutions and also do a comparativ­e 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 introducti­on to these solutions and straight away runs through their pros and cons by doing a comparativ­e analysis.

Designing CMS based architectu­re

Before getting into the CMS solutions and a comparativ­e study, let’s first understand what makes a CMS website comprehens­ive and hence appreciate­d by common users. For this, we have to analyse various common requiremen­ts of a CMS solution and see how to handle them.

We need to understand what the third party tools required for the developmen­t of a CMS are and how we get support from them. It also means that we need to do a thorough analysis

of the flexibilit­y 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 feasibilit­y of offering these features with tools like Adobe Indesign or iText.

We need to analyse our competitor­s 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 multilingu­al system or for internatio­nalisation (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 localespec­ific data requiremen­ts (like country-wise time zones, currencies, etc).

Also, the designer has to keep in mind other technologi­cal and logistic requiremen­ts like the performanc­e of the system, its reliabilit­y (it should not hang, restart or respond inappropri­ately to the user), developmen­t related roadblocks like insufficie­nt time for developmen­t, 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 requiremen­ts will make the CMS solution comprehens­ive 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 frontend). This is a flexible and lightweigh­t system, which can sit on applicatio­n 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 (internatio­nalisation), a faster solution and ACL (access control list) provisioni­ng (user handling with access permission­s), 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 integratio­n 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 communitie­s and forums. The drawbacks are that it has support only for

Apache and has a poor ACL (user management). Also, being a heavyweigh­t results in slower and poor performanc­e.

Alfresco

Alfresco is the leading CMS solution based on Java and has very good support on a wide variety of linked applicatio­ns/tools and facilities. It has the support of a large developmen­t community (blogs and forums) which uses it across different domains.

It is not so lightweigh­t and not as fast as Drupal.

Another notable drawback is that setup and configurat­ion are comparativ­ely tedious.

Table 1 gives a comparison of these CMS solutions. By: Magesh Kasthuri The author is a senior distinguis­hed member of the technical staff at Wipro. He is an enterprise architect in BFSI. He has authored a series of articles on Docker based DevOps in OSFY earlier and can be reached at magesh.kasthuri@wipro.com.

 ??  ??
 ??  ??

Newspapers in English

Newspapers from India