Liferay Portal Review

Liferay Portal Review

Over the past couple of months I’ve seen an increase in the number of customers who have shown interest in Open Source products as an alternate to commercial products. In Portal and Social networking space, Liferay Portal has been a clear leader – in most cases customer has already made their choice, while in others we’ve found Liferay portal to be a good fit for our customer requirements. As a result I have been playing around with the product for some time now, so thought of putting my together for interest of others. Since Liferay Portal 5.2 also got released while I’m putting this together, I’ve made an attempt to capture the key enhancements that have been made in this release.

Overview

With over 75000 download per month, Liferay is the leading Open Source portal server which supports operating system like Linux, UNIX, Mac OS as well as Window. The Application server support is even more impressive with support for 14 application servers including the leading ones like WebLogic, WebSphere, Tomcat, JBoss, Oracle AS etc. Gartner, in its 2008 Magic Quadrant for Horizontal Portal Products has recognized Liferay portal as Visionary for its strengths in innovation, market understanding and product development strategy. Although the Liferay portal’s key strengths and focus has been on Collaborative as well as Intranet Portals solutions, its capabilities extend far beyond and it is now emerging as a reliable & a cost effective enterprise portal product.

Portal Architecture

Liferay is based on the J2EE platform thus available on almost all leading application server; it is compatible will all leading databases; run on UNIX, Windows, Linux as well as Mac OS – resulting in over 700 configurations to choose from, with the various combinations of middleware and database platforms. It also provides support for open standards like JSR 168, JSR 268, JSF 128, JSR 170, JSF 314; WSRP, Web Services, AJAX, Springs, Struts, Tiles, Hibernate etc making it must have in any portal evaluation. The Portal architecture of Liferay has been built around Users, Organizations, Communities, Roles, Pages and Portlet that enables user to build flexible yet robust collaborative portal.

Installation

Installation of the server is pretty straight forward – I downloaded the Liferay Portal pack along with Apache Tomcat, extracted it to a director and it all worked like a charm. The default installation comes with HSQL database; connecting to other databases like MySQL, Oracle etc is just a few simple configurations away. This installation however installs the default sample website – 7Cogos and getting rid of is a bit of a challenge though.

Multi-language

Support for internationalization and multilingual support, Liferay provided single click access to the 25 languages it supports out of box (although the documentation still says 22). All you need to do is to include the language portlet on your page and select the language you want. This support can be further extended to other languages of your choice.multi-language I did find a few inconsistencies in the multilingual tag libraries that come out of the box but I’m sure that would get resolved in the new releases to come.

Administration

With Liferay Portal 5.2 a new control panel has been introduced that gives administrators’ quick access to all the admin tools from a single Administrationpanel – the administrator has everything available to him at just a click of a button. He no longer needs to navigate through the multiple tabs of the portlels that were available in 5.1. These tools are primarily classified into four broad categories – User, Content, Portal and Server. The Control Panel only shows the set of tools that are relevant to user based on his access roles and privileges and it can be easily customized further to add additional portlets as per your requirements.

This is a significant enhancement to the Information architecture of the Admin UI from previous versions where the admin tool were available as Portlets that could be dragged and dropped to get a customized page for administration activities. My guess is that this change was inspired by IBM WebSphere Portal’s administration panel which was introduced in WebSphere Portal 6.

Multi-tenancy

Liferay supports creation of multiple sites on a single instance of Liferay portal server through the Organization and Community Model it supports. Each of these sites can have it own independent Virtual host, Role, Users, Content as well as Look-and-feel.

Search & Tagging

Liferay provides support for tagging of all forms of content generated and managed in the portal – web content, documents, message board threads, wikis, etc. Users can also search for relevant information within specific portlets, communities, entire portal and even within external integrated applications. It also provides Out of the box integration with Amazon’s OpenSearch or SOLR; you can also choose to integrate Liferay with other third party search engines.

Content Management

Liferay portal come with Liferay CMS that has an out of box collection of several portlets like Document Library, Web Content (previously known as Journal Portlet), Image Gallery, XML Content, Asset Publishers, etc. These portlets provide elementary functionality for Document Management as well as Web Content

cms1

Management

Using these portlets you can create & manage document libraries; upload document, images; define fine grained access control; share documents across communities and organizations; implement version control, workflow,cms2taxonomy, tagging, etc. Liferay CMS also provides integration with Microsoft Office using SharePoint Protocol along with support for WebDAV which enables user to access documents libraries directly from their desktops itself – the user can drag files into WebDAV desktop folders which automatically uploaded the files into the portal.

Another neat framework that Liferay supports is Expandos, this provides developers with advance capability of creating dynamic datasets – a custom collection of data and CURD operations around it. This data can be:

  • Typed (boolean, Date, double, int, long, short, String, and arrays)
  • Associated with a specific entity(e.g. ‘com.liferay.portal.model.User’)
  • Arranged into any number of “columns”
  • Available to plugins, accessed from Velocity templates & via Liferay’s JSON API through AJAX

From a Web Content publishing perspective, Liferay CMS allows publishing of various forms of content including text as well as images on portal pages. This is supported by feature rich portlets like:

  • Asset publisher portlet that allow wcm1conditional publishing of content, as a result the user can predefine the content and push it to the portal based on predefined conditions

  • Rich (WYSIWG) Text Editor that enables users to create great content without having to know HTML
  • Multiple File upload to save time while uploading multiple files
  • Drag & Drop Site map.

Previously know as Journal, Liferay Web Content Management provides a great set of features like

  • Web 2.0 features like RSS, tagging, comments and ratings;
  • Friendly URLs, Site Maps, and Search Engine Optimization (SEO).
  • Dynamic Virtual Hosting or Multi-tenancy
  • Full localization capabilities for article elements enabling localization of each block of text and each image
  • Web Content Templating using Velocity Scripts which can integrate with Liferay Business tier using Liferay API.
  • Structured content with inheritance and dynamic lists
  • Multi-stage content staging and publishing
  • Versioning, publication and expiration dates for full control over your site’s publishing behavior

Liferay also supports Dynamic Tagging, Live Page Editing & Scheduling; features that along with portal capabilities allows users to reach rich web sites.wcm2 Liferay content management capabilities can be further extended to convert web content several other industry standard formats: this is possible through the support of OpenOffice – just enable the OpenOffice integration with Liferay in the server Configuration portlet and select the export format in the Web Content Portlet configuration. If you are looking for an enterprise class content management capabilities, it can be achieved by integrating Liferay with Open Source CMS like Alfresco, OpenCMS, Magnolia etc as well as Commercial CMS like Vignette.

Collaboration

Collaboration is one of the most powerful & extensively used features for Liferay Portal. Build around “Organization” and “Communities” hierarchy, users can participate and collaborate using several out the box portlets like Wikis, Message Boards, Blogs, Email, Calendar, Polls, Announcements & Alerts, Bookmarks, directory, invitations etc.collaboration1 Before deep diving into these features, I would like to highlight a cool feature that’s been introduced in Release 5.2 – Scope. With prior release Liferay allowed user to add collaboration portlets to different communities (& organization) with its own independent data – since this scope was defined at the community level, multiple instances of same portlets across pages would display same data. This has changed with release 5.2, allowing users to have several independent data (scope) within the community; so the user can have multiple instances of a portlets within a community and choose between default community scope as well as page specific scope. Liferay’s Blogs provide advanced blogging capability supported by features like rich text editor, rating system, comments, track back URL, social bookmarking links, email notifications, RSS subscription, etc.

collaboration2

The Message Boards portlet allows the user so share messages / ideas within communities – the portlet has a pretty elaborate set of capabilities including activity statistics, recent posts, ability to subscribe to message threads via RSS, reply to them via email.Another new surprise is the chat portlet collaboration3inclusion in the default packaging of Liferay portal. In addition to making chat window persistent across pages and a brand new UI, it also allows users to change status and add personal image. Having this inclusion further strengthens the Liferay portal collaboration offerings that already provide an elaborate set of features. Few other great set of out of box collaboration portlets that Liferay provides include:

  • Wall – provides a whiteboard where user’s friends / community members can leave comments for the user.
  • Meetups – allows setting up of get-togethers which the community users can register for.
  • Invitation – allow users to send out invites to their friends
  • Google Maps, Maps etc.

Security

The security model defined in Liferay portal is pretty elaborate; it provides a flexible yet robust Authentication & Authorization support: For Authentication Liferay provides out of box support for LDAP (SiteMinder, Apache Directory Server , Fedora Directory Server , MS Active Directory, Novell eDirectory, OpenLDAP and most other LDAP Server), Central Authentication Service (CSA is a widely-used open source single sign-on solution), NTLM, Open ID, and Open SSO. For Authorization Liferay provides a granular & role based access management capabilities. The portal administrator can define Roles, user groups and permissions, both for portal as well as portlets while the content owners can define access levels available to users.

Search Engine Optimization

Some of the features provided by Liferay for SEO support are :

Sitemap Protocol to notify Google or Yahoo of the sitemap of the web site. The search engine uses this site map to crawl the website, to get notified for the updates to the website. Liferay allows administrator to push updated to search engines and even customize your sitemap – specify higher priority pages; exclude unimportant pages; frequency of updates.

Friendly URLs enables search engine to read works in the URL & give them a higher relevance than those found in the body of the document. Liferay URL provide the following structure

  • General Prefix : /web for public sites and /group for private.
  • Community, Organization or User Path : eg /guest
  • Specific Page Path : eg. /home
  • Friendly URL for the specific application being navigated

Liferay 5.2 also  comes with the following improvements for SEO

  • Friendlier URLs are generated by default & they not longer contains numbers
  • Asset Publisher automatic generates META tags based on category & descriptions
  • Unique titles for all pages
  • Framework to set the title and meta tags values from custom portlets
  • Friendly URLs in Asset Publisher when viewing an specific asset

Performance & Scalability

Liferay provides scalable architecture to meet high performance and availability requirements – it supports Multi-tier clustering at any combination of multiple tiers – presentation, service, business logic as well as database. This portal performance can be further enhanced by leveraging the caching framework – Liferay leverages Ehcache for distributed caching support; the same caching mechanism is also leveraged by Liferay’s persistence layer (Hibernate).

Licensing

Liferay Portal is available 2 licensing Model – Standard Edition is available under the MIT License while Enterprise Edition is available under the commercial license.

Liferay Portal was first developed in the year 2000 by Brian Chan as an open source project with the objective of providing an inexpensive collaborative portal to non profit organization. Over its nine years of existence, it has matured into one of the leading Open-Source Enterprise Portal product with global customer base. Liferay is well funded by Liferay Inc. (incorporated in 2006) – a fast growing profitable business focusing on providing Professional services to Liferay Portal users.

Summary

OS Support: OS Linux, Mac OS X, Unix, Windows

Application Server: All key applications servers Including but not limited to Tomcat, JBoss, OracleAS, WebLogic, WebSphere

Database: Including but not limited to IBM DB2, Oracle, Sybase, Informix, MySQL, Apache Derby, MS SQL, SAP

Servlet Container: Jetty, Resin, Tomcat

Standards: JSR-168, JSR-127, JSR-170, JSR-286 (Portlet 2.0), JSF-314 (JSF 2.0)

Languages: 25 languages supported out of the box

Strengths

Ease of Installation and configurability

  • Support for an elaborate set of product with over 700 configurations to choose from
  • Flexible and a robust architecture that can meet most high availability and usage requirements
  • Features that allow you to rapidly create Collaborative portal
  • Elaborate set of out of box portlets
  • WebDAV Support
  • Growing Community Support
  • Multi-tenancy
  • Web Content Management
  • Weaknesses

    • Lack of out of box integration with enterprise systems
    • Product documentation and online support

    Competition: MS SharePoint

    Target Audience

    • Intranet Portals
    • Departmental portals
    • Collaborative portal for small & medium size organizations
    • Community Portals

    14 thoughts on “Liferay Portal Review

    1. Neville Bradbury

      Hi, this is a great article of Liferay and indeed the Enterprise version ensures full performance, stability and many other aspects of this great platform. OpenSoft Australia also has had experience in designing it to handle millions of users and activities. Good work.

    2. Bryan Cheung

      To clarify, Liferay LLC was formed in 2004 and we converted to an Inc. in 2006. In any case the commercial open source company existed since January 2004 and the open source project has been around since 2000.

    3. Jerome

      You fail to mention that portlet/web development with Liferay is a nightmare. It's buggy, it's needlessly complex, the code it serves to clients is not W3C compliant and it will quadruple development times. Not to mention the learning curve for it is practically a vertical line. The community is weak, the documentation is poor and even if you have an enterprise account, which we do, answers are slow coming. You can expect to spend many hours banging your head against walls. There's even a thread in Liferay's own forums where the majority of people involved express their displeasure with it: http://www.liferay.com/community/forums/-/message_boards/message/213570

      That said, the back-end for the portlets is pretty decent. I really like the use of design patterns and I enjoy programming with Java.

    4. Anonymous

      We've found after developing several portals with LifeRay that it takes less $$$ develop something from scratch rather than tackle the bugs & overly complex deployment processes present in this product. Even today I found that the export / import feature stopped working, images randomly go missing when LifeRay feels like it, and my local install decided to revert back to the default installation (there was a known bug where if you delete a certain default user this happens) but we didn't delete anybody! LifeRay has a mind of its own…

    5. Sanjay

      I have just installed liferay community edition and hosted a website on it.

      My problem is how to add multilingual content English, hindi and russian.

      I added the web content in english. Using the language selection portlet i got all menus in hindi except my content.

      Please help me.

    6. Sanjeev Gupta Post author

      Sanjay
      The Liferay menu changed to Hindi because the menus (like most of the user interface (UI) text used in Liferay portal) are implemented using resource bundles – so when your changed the Liferay locale using the portlet, all the UI text changed.
      That said your English web content didn’t change to Hindi because changing the locate doesn’t automatically result in the translation of content from one language to other. You have to manually enter the content in all the languages that you would like to support and customize your portlets to fetch the multilingual content from your data store based on the Liferay portal locale selection.

      1. Josh Milane

        Language support in the context of what I believe is stated here, trends to be for the admin UI and can extend to things like the accommodation of simitic languages and special characters, but machine translation is something I’ve yet to see done well enough for the enterprise. Not even particularly close.

        Best,

        Josh
        Josh@mittechnical.com

    Leave a Reply

    You have to agree to the comment policy.