portlets jsr 168 wsrp

Fri, Jun 24, 2005

I was getting far too confused. The situation was so confusing in fact that it was putting me off my cakes. That’s how bad it was. So I decided to get back on the trolley by doing some reading and trying to clear my confusion about the world of portlets.

The first thing that struck me, perusing the Apache Portlets Site, is that it’s all business-speak. The type of stuff suits are into - “… B2E intra-nets, B2B extra-nets, or B2C inter-nets …”. That got me worried straight away. Business doesn’t care for creative cake munchers like me.

Portlets are a bit like servlets in a way. They have an api, the Java Portlet Standard (JSR-168). From now on, I’ll cal this the Portlet API as that’s what it is. It’s not a standard just yet but it should go a long way to easing portlets into our working lives. It’s basically the Servlet spec for portlets.

Now, portlets have to run in a portlet environment that provides support for the Portlet API, in the same way that servlets have to run in a Servlet API environment. Pluto is that environment. It provides the Portlet API. It comes with a default, no frills portal but it’s normal to wrap it in a more functional one, such as Jetspeed.

To continue with the servlet analogy:

  • Portlets make use of a Portlet Container (Pluto) for their core functions while the Portal provides extra features such as security, persistence etc.
  • Servlets make use of the Servlet API (servlet-api.jar) for their core functions while the Servlet Container (Tomcat) provides the extra features

Now, where’s that WSRP come from? It’s Web Services for Remote Portlets and it’s a way for a Portlet Container (Pluto) to “bring in” the services of portlets running in another Portlet Container (perhaps Pluto, perhaps not). You can download the WSRP spec here.

The important point to notice is that WSRP is for Portlet Container to Portlet Container (Pluto - Pluto) communication. It has nothing to do with portlets. Portlets only know how to speak the Portlet API. They know nothing about WSRP. A portlet that thinks it can talk WSRP is a bit like me phoning a fax machine and trying to have a meaningful conversation with it.

What WSRP lets you do is have a a remote portlet display it’s output alongside other, local portlets on your screen. e.g. one part of the page is a search box for you to search Amazon for your favourite cake books. That search box could be inside a portlet that is not in the local portal. It could be in a portal on the other side of the world. WSRP allows the portlet container (Pluto) to access and consume it’s output for display in the local portal.

I hope I’ve managed to clear up some confusion as I’ve just had a delivery of Paris Buns and I don’t want them to go to waste!

comments powered by Disqus