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.
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.
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 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.
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. 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.
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 panel – 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.
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.
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
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,taxonomy, 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:
- 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. 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 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. 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.
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 inclusion 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.
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).
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.
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
Ease of Installation and configurability
- Lack of out of box integration with enterprise systems
- Product documentation and online support
Competition: MS SharePoint
- Intranet Portals
- Departmental portals
- Collaborative portal for small & medium size organizations
- Community Portals