Thursday 31 May 2012

Liferay 6 vs Jahia 6.5


Liferay and Jahia are excellent solutions for the implementation of Enterprise Web Applications. Here I am focusing the comparative analysis on the following:
    • Content Integration Model and 
    • Extensibility Model. 
Content Integration Model
  • Integration with external services,
  • Integration with different DBMS, 
  • Consuming external RSS feeds 
  • Communication between components.

Architecture & Web Services Integration
Liferay and Jahia are products with a robust architecture that use the latest Java framework to accomplish their goals. Both solution use the Apache Jackrabbit for content storage and can also be configured to access other types of repositories via the JCR API. 
One architecture difference is that Liferay has an architecture based on SOAP and Jahia uses the REST API, but using both ways we can integrate both products to external services.
Supported Databases

Both products support almost all the DBMS, but there is a big difference on the community versions. 

Liferay EE and CE support Microsoft SQL Server and Oracle, but Jahia only supports those DBMS in the Enterprise version.
RSS Integration

The rendering of RSS feeds is supported on both products and both have ready to go portlets/modules for rendering. Liferay has the RSS Portlet and Jahia has the 'Display External RSS' module. Jahia’s 'Display External RSS' uses the RSS URL and number of entries, in the same way Liferay’s RSS Portlet uses them.

Communication between components

Communication to different databases is supported by both products. Liferay and Jahia can connect to different databases adding different sources in the context.xml file. The sharing of information between components in Liferay can be done via the Inter-Portlets Communication API. The sharing of information between modules in Jahia seems to be more integrated, because Jahia modules can communicate each other by simply using the context of a session.


Extensibility Model
Both products present similar ways to add/extend functionality, but there are some following differences:

Add/Extend Portable Functionality
Portlets are supported by and can be used in both products. The development effort in both cases is almost the same, but both systems provide to developers different tools for development. Liferay has the Plugins SDK tool in order to create portlet projects. In a similar way, Jahia has a maven archetype that can be used for this same purpose.

Jahia also can be extended via modules that are considered plugins. The advantage of modules over portlets is that they don’t need a Portal Sever and they are integrated directly into Jahia’s core gaining direct access to Jahia features. This means that developers using modules, apart from extending Jahia functionality, can add functionality to the default Jahia modules. Liferay doesn’t have this type of extensibility so I consider it an advantage of Jahia over Liferay.

Extend/Modify Core
Liferay has a very interesting method to overwrite files, beans, Struts Actions and properties in the core. It uses Hooks and Ext Plugins. This feature is based on the configuration of xml files that contain information about which files are going to be replaced. 
This feature does not exist on Jahia as those modules just can add new files but cannot replace core files.


I think that both products are excellent solutions and can work for any type of Enterprise Web Application. There are some differences, but in the end, both products can accomplish the same objectives:
  • Maintainability
  • Usability 
  • Portability 

Also, the development time, effort and skills are similar because each product offers powerful tools, like Liferay SDK and Jahia Maven archetype to generate extensibility projects

1 comment:

  1. By purchasing your next gun or weapons safe using these guidelines you can be sure that you are buying a quality safe that will stand up to your everyday requirements. discover this info here

    ReplyDelete