Tuesday January 23, 2007
The Enterprise class WSRP Open Source Project is in a reasonable shape so decided to do some interoperability
testing with other vendors. Interoperability is a key to any WSRP implementation
and we have done such exercise with most of the vendors for Sun Portal Server
releases in the past. Eventhough the Enterprise class WSRP OSP Project
code base is derived from Sun Portal Server 7.x, there is some considerable
changes in the code to support a light weight driver and to be integrated
in the future releases of Sun Portal Server, so decided to try some interop tests.
Considering that I am behind a firewall, I could test only the consumer
interoperability to start with, since there is no need to host a producer
machine external to the firewall. The initial try is to point the Consumer
implementation to Netunity interop server, here is the WSDL URL
To get the initial consumer creation going, I had to do 2 things which is not different from my previous blog entry on
configuring proxies for WSRP.
The above steps are required only if you are running a consumer behind a
proxy i.e. the consumer can reach the producer directly but it can reach it
only via a proxy server.
Netunity hosts a producer which supports in-band registration with no
registration properties, The registration with the producers went fine and
I could create a consumer one pointing to Netunity interop server. This
test validated that there are no issues with both Registration and ServiceDescription
Ports.
The next step was to create remote channels, Upon channel creation
was running some basic tests discovered the following issues and fixed them
Issue 1: For any operation that involves saving preferences both the
producers were throwing PortletStateChange required. This is obvious since
I was accessing the portlets as a authless user. The portlet container
driver provides a option to login as a user by providing a FORM based authentication.
So this was NOT really a issue, upon user login the issue vanishes.
Issue 2: There were some problem with templates that a consumer generate
for rewriting. This problem was easily reproducible with the local producer
itself, the fix for this issue is checked in to the code base.
Issue 3: The last issue was a bit hard to crack, since any changes
that a users does by editing the portlet did not get saved, nailed the issue
to persisting of portletHandle. The fix is to allow persistence of portletHandle
for each user. The fix for this is also checked into the code based.
Here is screenshot of the rendered portlets from Netunity producer.

If you are interested in trying the above interop tests. Make sure you have the bits/code after 22nd Jan. The next step is to reiterate the above process for other vendors, will try to post on how stuff goes.