I had an interesting question come up to me a few weeks ago that I wanted to share my notes on. I was asked the question is SharePoint 2010 JSR 168 compliant? Well I did some searching and this is what I came up with. The straight answer is no; it is not. Now there are several really good reasons why:
- Microsoft is based on numerous open standards. One of them is Web Services for Remote Portlets (WSRP). JSR 168 is a Java standard.
- What is the purpose of the JSR 168 standard? It is a standard that allows portlets (web parts) to be supported across different Java portal platforms.
- From what my researched turned up, the JSR 168 standard is supported by many Java portals but still require customization to some degree.
SharePoint 2010 provides a WSRP Consumer WebPart. Using this WebPart an administrator can define producer URLs that are available for consumption, users can choose remote portlets and render them in Web Part pages. The consumer supports any Web Part in strict compliance with the WSRP 1.1 specification. This allows SharePoint technology-based portals to support two portlet models, a local one based on Web Parts, and a remote one based on WSRP. Microsoft has also written Producer toolkits and there are partners that have written accelerators.
Closing thoughts which directly align to some of the references below:
- I bet there scenarios out there where a company may want to leverage an existing investment in a Java Portlet and render it natively in SharePoint; however I have never come across it yet to date. I recommend linking to it or some sort of service based integration solution. Even if you get it to work, I bet there will be some challenges with user experience which have to be heavily weighed.
- If you read the JSR definition it talks about eventing, web part communication, etc. All of these sort of things are defined as part of the SharePoint Web Part framework. All developers and Microsoft partners develop to this. ASP.net web parts and user controls can be rendered across version of SharePoint and in ASP.net applications outside of SharePoint. It appears to me that the JSR standard was created as a way to enforce standards and consistency for Java Portlet development in an open source sort of world. That is not needed when it comes to .NET so it is not really fair to hold SharePoint to that criteria.
- Great Blog that discusses this topic - http://blogs.technet.com/b/mdunkel/archive/2008/02/21/sharepoint-jsr-168-and-wsrp.aspx
- Another great blog - http://blogs.msdn.com/b/mikefitz/archive/2006/02/10/529682.aspx
- WSRP Definition - http://en.wikipedia.org/wiki/Web_Services_for_Remote_Portlets
- WSRP MOSS 2007 Toolkit and Whitepaper - http://code.msdn.microsoft.com/WSRPToolkit
- JSR Definition - http://en.wikipedia.org/wiki/Java_Portlet_Specification
- Additional JSR Information which talks to what sort of things are supported - http://developers.sun.com/portalserver/reference/techart/jsr168/