Saturday, 21 March 2009 - Welcome to JavaScript Portlets Saturday, 21 March 2009 - Welcome to JavaScript Portlets

Welcome to JavaScript Portlets Homepage:  100% Client-side, 100% JavaScript

Recently Java portlets became popular technology allowing easily to share and combine web applications developed by different organizations and individuals in a personalized enterprise portal. A new "portlet-based" style of web application development has emerged. Portlet apps (PA) are more distributed, flexible and agile, compared to older style, monolithic web applications we know for years. PA can use asynchronous data requests and can be dynamically updated in response (and sometime in anticipation) to user's needs. They are typically consisting from several different portlets that communicate using shared parameters or publish/subscribe events according to latest Portlet 2.0 Specification (JSR-000286).

But this is not the whole story – we have portlet alternatives in parallel world of ASP.NET - Web Parts controls, and there will be such portlets in Flash (as we saw in a preliminary demonstration).

And this is not the whole story either. We think that all current approaches suffer from some inherent limitations connected with the server-side binding of portlet components. For example, JSR-000286 only recommends the asynchronous portlet requests (namely serveResource method) only for static resources, and NOT for changing the portlet state (of course server based) and data. We have neglected this recommendation and organised 90% of our client-server portlet communication in this way using AJAX and JSON, keeping the portlet state on client side. Using Liferay® portlet container jQuery/ Dojo Toolkit we have achieved our inter-portlet communication to be 100% client side javascript based. This made web apps faster, less bandwidth hungry, more homogenious, less sever processing demanding, and predominantly stateless from server side. This allowed us to integrate easily with other client side technologies as Flash and Silverlight using javascript, and what is most important ...

This LED US TO AN IDEA:

Why not to make portlets 100% client-side & javascript! The goal of this open source project to provide specification, reference implementation and many, many useful examples for such lightweight, tiny javascript portlets in open source. When combined with RESTful web services accessed asynchronously, and Comet server-push we see unlimited application possibilities. This is a whole new world of architecturally and visually distributed, agile web apps, that are browser compatible (based on standard JS libraries) and reside fully on the client – BASED ON STANDARD JAVASCRIPT PORTLET ENGINE :)