Portlet

Portlets are pluggable user interface software components that are managed and displayed in a web portal. Portlets produce fragments of markup code that are aggregated into a portal page. Typically, following the desktop metaphor, a portal page is displayed as a collection of non-overlapping portlet windows, where each portlet window displays a portlet. Hence a portlet (or collection of portlets) resembles a web-based application that is hosted in a portal. Some examples of portlet applications are email, weather reports, discussion forums, and news.

Portlet standards are intended to enable software developers to create portlets that can be plugged in to any portal supporting the standards.

Standards
The purpose of the Web Services for Remote Portlets protocol is to provide a web services standard that allows for the "plug-n-play" of remote running portlets from disparate sources. Many sites allow registered users to personalize their view of the website by turning on or off portions of the webpage, or by adding or deleting features. This is sometimes accomplished by a set of portlets that together form the portal.

The Java Portlet Specification (JSR168, JSR286) enables interoperability for portlets between different web portals. This specification defines a set of APIs for interaction between the portlet container and the portlet addressing the areas of personalization, presentation and security.

Apache Pluto is a reference implementation of JSR168. In addition to the reference implementation, a number of vendors provide commercial implementations of the portlet container. Some of the leading vendors are IBM, Oracle, BEA Systems, Vignette Corporation, jBoss and Sun Microsystems. These vendors provide standards-based implementations as well as extensions not yet approved by the standards body. In addition, a number of open-source portal solutions support JSR168, such as Apache's Jetspeed-2 Enterprise Portal, eXo Platform, uPortal and Liferay Portal.