How Liferay Supports & Integrates with RIA Technologies

Technology supporting RIAs has been around for several years and numerous frameworks exist to support them. Some of the more prevalent platforms are listed below:

jQuery – A popular JavaScript framework that provides rich support for creating client side browser applications.
YUI – Another popular JavaScript framework, Yahoo UI Library is a high-performance and flexible framework used in highly interactive sites such as the Yahoo homepage and Yahoo mail.
AUI – Alloy UI is an emerging framework from Liferay that enhances YUI. It provides an additional library of user interface components built on top of YUI and provided with Liferay out-of-the-box.
GWT – Google Web Toolkit is a rich JavaScript client library that powers sites such as Google Mail and Google Maps.
Vaadin – A Java server-side client framework, Vaadin provides user interface objects using a component model, similar to how Java AWT or Swing works.
Others: (ext-js, dojo, etc)

The RIA flavor you choose to develop your application is an important decision, but it is equally important to consider how the selected portal platform supports and integrates with the chosen RIA technology.  Because the RIA framework is an integral part of the portlets you develop, it is important that the framework is provided from a foundational level of the portal.  In other words, the application needs to be viewed systemically rather than looking at individual portlets, especially from a performance standpoint. This becomes more critical if your application needs to scale.

Portlets are designed to be self-contained, with all of their supporting resources meant to be included. When developing an entire application however, looking at the portlets as a system can result in positive performance outcomes. Consider three portlets that utilize jQuery for their user interactions.  These three portlets would normally include the jQuery JavaScript libraries individually. If all three of them are placed on the same page, the libraries will be downloaded three separate times. This design will have serious performance implications. A good portal platform will make it easy to coalesce the portlets into a single library, while providing the ability for it to be cached.

When looking at the portal systemically, four good questions to ask include:

1. Does the portal platform provide the ability to combine all the RIA libraries into a single resource to minimize the HTTP requests needed for a single page?

2. Is the portal platform smart enough to combine requests across portlets using the same resources into a single resource request, rather than making individual requests?

3. Does the portal platform provide the ability to minify JavaScript resources served in order to decrease the payload size of the served resources?

4. Does the portal platform provide the ability to cache the resource requests on the server side and eliminate re-serving those resources by using a server response such as HTTP 304?

Liferay Enterprise Portal supports all of these requirements.

Related Posts