When bringing an application into a portal, when is a Web service better than an old-school portlet? That's not a rhetorical question - what do you think?
The answer will probably vary, based on the type of application you want to expose. My work has been primarily with commercial ISV's (Citrix, Elluminate, Documentum, etc.), maintaining our Core Portal Ecosystem. Originally, every portlet project was 100% custom. Most ISV's had decent API's, but it was still a lot of manual work (not to mention constant business negotiations, measurement, etc.). The rapid adoption of the Java Portlet Specification (JSR 168) standard helped (by providing a container, consistent authentication mechanisms, etc.), as did WSRP's enabling of Web service consumption. Better still, many ISV's began publishing and supporting portlet sets of their own, taking over about 80% of the portlet development work. However, even with these advances, code to support portal-specific features (e.g. single sign on and, in our portal's case, Secure Remote Access) was still done largely by hand.
This Google spellcheck portlet started with a Web Service. To learn how to build this yourself, visit the tutorial.
Clearly, Web services are the future for commercial ISV portlets. Some are already phasing out portlets in favor of publishing Web services (Interwoven and Business Objects come to mind). SIDE NOTE: I've been advocating the creation of a core series of reusable infrastructure services (e.g. a single sign-on service, a secure remote access service) to glom\* together with the ISV services as our model for supporting commercial portlets going forward. Some of our gifted engineers are validating the concept as we speak. What's your take?
Also, almost half of the proposed features in the upcoming Portlet Specification 2.0 address WSRP alignment. So where does that leave the portlet as we once knew it? Is it strictly to be used for obscure, one-off tasks or ...?
Which method do you prefer in which circumstances? Please share your ideas and experiences.
PS - If you're interested in portals, you're probably interested in SOA. For a glimpse into Sun's SOA ISV community, feel free to visit my SOA Solar System blog. Most of the content is business oriented vs. technical, but it's a good place to learn about how SOA vendors - from established platform players to innovative startups - are shaking up that space.
\*glom - to mash, to moosh, to adjoin with reckless abandon (trademark pending) ; )