Broad standard support boost open source portals' appeal
Enterprise portals will be the first major application of SOA concepts for more than 50 percent of enterprises through 2007, according to Gartner. It’s easy to agree with this projection, as the composite, extensible nature of portals -- plus established standards for portlet design and intercommunication -- fit the SOA definition perfectly.
There’s been plenty of activity among portal vendors; many open source portal projects are thriving as well. I tested two of these offerings, JBoss Portal 2.2.1 and Liferay Portal 4.0. Their standards compliance, ease of installation, and functionality match up well with commercial portals. With active community support and professional services available, JBoss and Liferay are legitimate portal solutions worth considering.
JBoss Portal 2.2.1
JBoss Portal employs several JBoss Enterprise Middleware Suite (JEMS) components, including JBoss Cache, Clustering, and Application Server. This architecture provides scalability and reliability -- and your IT staff doesn’t have to worry about configuring other comparable open source products. You’re free to use any database supported by Hibernate or run a JBoss Portal distribution that bundles the Hypersonic database.
JBoss Portal 2.2.1 enhances standards support with a CMS (content management system) based on the JSR 170 content repository and authentication that uses JAAS (Java Authentication and Authorization Service). There’s portlet clustering, which provides high availability in critical applications. And administration is improved; most portal management can be done from a GUI rather than editing XML files.
Setting up JBoss is a straightforward, three-step process of editing a configuration file, creating the database, and starting the portal.
Although the Management Portlet has a graphical interface, I discovered that it takes time to understand all the pieces and to wend your way to the right area. Compared with Liferay, it also requires more effort to perform common tasks. To arrange portlets and configure them on a page with JBoss, for example, you must use somewhat obscure commands and controls rather than a more convenient drag-and-drop process.
JBoss offers several authentication methods. I used an existing LDAP server. Next, I turned to the Role and User Portlets to create roles and assign them to each user. Afterward, I assigned actions (such as view or create) to each portlet based on my custom roles.
Larger enterprises can create multiple portal instances running inside one JBoss portal container. I found, however, that Liferay’s organization structure gave me easier control over the tasks that users could perform. This illustrates a fundamental distinction between the products: JBoss is a very good general publishing platform, but it won’t let users create and customize private spaces, as is possible with Liferay.
JBoss, however, has strong Web content management and standards underpinnings. The CMS uses Apache Jackrabbit (an open source implementation of the Content Repository for Java Technology API). Using the CMS Admin Portlet, I built various directory structures, uploaded documents, and modified HTML files using the embedded WYSIWYG editor. Formatting text is easy because the editor displays the current portal style sheet.
Beside the CMS portlet, JBoss offers a discussion forum. In JBoss’ PortletSwap community, I found portlets for news, stocks, wikis, IFrame, and other useful items, as well as a few themes for download.
Designers create themes and page layouts using CSS, which can be assigned to portal instances, pages, and individual windows. These theme and layout combinations are packaged as Java war files and automatically plug into the system. Further, JBoss uses what the company calls Dynamicity, which basically lets administrators create, edit, or destroy portlet objects without restarting the server.
As I finished testing, JBoss was readying Version 2.4, which implements WSRP (Web Services for Remote Portals) and a basic CMS workflow (using JBoss jBPM). This version will also introduce a robust QA environment so enterprises can test new designs or changes before they go live.
JBoss currently can handle large deployments because of its JEMS underpinnings. To make it even stronger, company representatives indicated that in the near future, they’ll add index and search services and Portlet 2.0 support. Further, JBoss Portal will have an Eclipse IDE Portlet Plug-in (easing portlet development) and will become application-server agnostic. So while JBoss 2.2.1 may not be the easiest to use, it’s hard to argue with its standards support, road map and JBoss professional services.
Liferay Portal 4.0
First released six years ago, Liferay Portal is the company’s flagship product. It works on anything from lightweight servlet containers such as Jetty and Tomcat to full J2EE servers, including WebLogic and WebSphere; Liferay Portal Enterprise, designed for building EJB (Enterprise JavaBeans) and distributing the transactions across multiple servers, requires a J2EE server. Choice extends to how you construct portals -- from employing JSR 168-compliant portlets to publishing portlets using Web services.
Version 4.0 is a major release that benefits administrators, portal developers, and end-users. Admins can now restrict access to portlets and create separate portals or sub-portals for different parts of an organization. Portal developers may now use Velocity (a Java-based template engine) for designing portal pages. Users post pages with public and private viewing rights and also apply themes to different pages.
There are more than 700 ways to operate Liferay, counting the various combinations of middleware and database platforms. I tested the Professional version with Tomcat on a Windows 2003 server, and had the portal running in few minutes. Documentation is better in this release, though I did spot a few errors. But true to the community spirit, I easily found the corrected configuration steps on Liferay’s discussion forum.
Liferay portals have a smart, Web 2.0 look and the supplied portlets operate consistently and intuitively. For example, the GUI Administration portlet let me quickly add organizations and locations that represented a typical corporation’s structure. Within this hierarchy, I then quickly created user accounts with appropriate roles. For larger implementations, you can integrate Liferay with an external LDAP repository (a default connector is included for Exchange), creating an SSO (single sign-on) environment.
For document management, Liferay 4.0 adds support for JSR 170 through Apache Jackrabbit. Using the Document Library portlet, I created folders, uploaded documents and images, and assigned access permissions. Alternately, you can integrate Liferay with another open source content repository, such as Alfresco or Magnolia -- or even integrate with a closed-source vendor like Vignette.
Liferay’s Journal portlet let me add news articles and product information to my test portal, turning it into both a public Web site and intranet. Content editors format this information with a rich text editor, so little training should be required. CMS functions extend to versioning and document expiration. Similarly, designers should not require special skills to customize the portal look because templates are based on XML or the Velocity (.vm) format.
For end-users, Liferay is just as usable. Once I logged in, for instance, I created public and private spaces with one click and then added portlets by just dragging and dropping them anywhere on a page. The supplied portlets cover an excellent range -- from RSS feeds and wikis to community discussion forums. You can change the look and feel of individual pages by selecting a different theme. Adding a language portlet is easy, and developers or content contributors can localize portlets, CMS content, and page layouts for each language (13 language resources are included).
Enterprises wanting a platform for customization and SOA jobs will find most technologies supported. Coders can build JavaServer Faces portlets using their preferred visual development environment or the Struts framework. Liferay also supports WSRP, though this is Version 1.0. As a test, I easily used WSRP to consume data from public Web services, including stock quotes and shipping quotes, and displayed them in a portlet window.
The enterprise version uses OSCache (a widely used open source, high-performance J2EE caching framework) for clustering and caching portlets. As a result, Liferay appears scalable for larger organizations.
Using Liferay Portal 4.0 was totally enjoyable. I was impressed with the solid administration, flexible deployment options, and how much functionality comes out of the box. There’s strong standards support, but JBoss has a bit of an edge here if you consider their upcoming versions.
If I had to quickly create a finished portal with open source tools, Liferay would be my first choice for its usability, polished look, and supplied portlets. JBoss, however, has very good overall middleware offerings, plus technical and support quality. If you have the developer resources or funding for professional services, a JBoss portal is a fine choice. Plus, the forthcoming versions of JBoss will include the latest technologies and standards support required for SOA projects.
Ease of use (25.0%)
Overall Score (100%)
|JBoss Portal 2.2.1||7.0||9.0||8.0||9.0||9.0|
|Liferay Portal 4.0||9.0||8.0||9.0||9.0||8.0|
Microsoft buried a Get Windows 10 ad generator inside this month's Internet Explorer security patch for...
Hot or not? From the Web to the motherboard to the training ground, get the scoop on what's in and...
Microsoft’s 'Fall Update' promised to put the finishing touches on Windows 10 -- it doesn’t
Stop procrastinating and make the switch from SHA-1 to SHA-2. You may already be getting errors -- and...
What is blindingly obvious to many is still something new to many others, reflecting the reality of how...
Cloud migrations often expose a decades-old architectural decision that can require expensive rework ...
Memcached is sometimes more efficient, but Redis is almost always the better choice