How-to develop/test/deploy WSRP JSR168 portlets for Open Source Portlet Container & JES-Portal7\* with Open Source WSRP

This blog is a feedback about the installation and the configuration for trying the milestone 1 preview drop of the Enterprise class WSRP Open Source Project.

Mainly, these tests have been driven to get a clear understanding about WSRP portlets technologies and how this project can help in the WSRP JSR168 portlet development/deployment lifecycle.

The goal behind these tests is to be able to demonstrate a complete development environment for building JES Portal 7.\* portlets for a large CU in France.

These tests have been driven with the support of Didier Burkhalter working as a senior J2EE Architect for Sun Microsystems in France.

Lessons Learned

  • The installation of Open Source Portlet Container and Open Source WSRP are not straightforward as there are no pre-built binaries packages available right now. You need to setup on you platform a couple of add-on products such as a subversion client and Maven utility to download the source code and generate the binaries. Btw, there are very good « feuille de route » available for both products on : https://portlet-container.dev.java.net/ and https://wsrp.dev.java.net/

  • This milestone 1 preview of the Enterprise class WSRP Open Source Project provides a full development/test environment introduction regarding WSRP JSR168 portlets

With NetBeans 5.5, it is straightforward to create a JSR168 portlet, to deploy it in the Open Source Portlet Container within Glassfish and to define a WSRP Producer based on this JSR168 Portlet from the Open Source WSRP admin GUI

From the Open Source WSRP admin GUI, it is straightforward to create a WSRP Consumer portlet to have access to the WSRP Producer JSR168 portlet in order to test it in the WSRP tab

Have fun.


What is WSRP (in a few words)?


If you are not familiar with WSRP, here is a definition of what is WSRP and why it is useful. We get this topic from http://en.wikipedia.org/wiki/WSRP.


Web Services for Remote Portlets (WSRP) is a standard for content aggregators, such as Web portals, to access and display content sources (i.e. portlets) that are hosted on a remote server. WSRP is a technology agnostic protocol designed for accessing remote Portlets in a standard manner. The WSRP specification defines a web-service interface for interacting with interactive presentation-oriented web services. Initial work was produced through the joint efforts of the Web Services for Interactive Applications (WSIA) and Web Services for Remote Portlets (WSRP) OASIS Technical Committees. With the approval of WSRP v1 as an OASIS standard in September, 2003, these two Technical Committees merged and continued the work as the Web Services for Remote Portlets (WSRP) OASIS Technical Committee.

Scenarios that motivate WSRP/WSIA functionality include:

  • content hosts, such as portal servers, providing portlets as presentation-oriented web services that can be used by aggregation engines;

  • content aggregators, such as portal servers, consuming presentation-oriented web services provided by portal or non-portal content providers and integrating them into a portal framework.

Contrary to first impressions, JSR 168 and WSRP are not competing technologies as they address different aspects of portlet functionality. In the simplest terms, JSR 168 is a technology specific (Java) Portlet API designed to enable interoperability between Java portlets and Java portlet containers. These portlets are "local" to the container in which they are managed. WSRP is a technology agnostic protocol designed for accessing remote Portlets in a standard manner. These two are not orthogonal, but rather parallel. WSRP does not make any statements as to how the protocol should be implemented, and interoperability between JSR 168 based implementations and .NET implementations has been demonstrated. These two specifications can be (and frequently are) used together with JSR 168 defining a portlet and WSRP remoting that Portlet to remote containers/consumers.

WSRP v1 provided a base platform for interoperable publishing and consumption of remote portlets. WSRP v2 is extending that platform to provide cross-portlet coordination, among other features. This targets additional use cases related to the WSRP Consumer integrating multiple content sources, regardless of whether they are local or remote, into a new web application. WSRP v2 began a public review in June 2006 with an intent to become an OASIS standard by the end of 2006.

Article from http://en.wikipedia.org/wiki/WSRP




What have we done so far ?


The following schema introduces the test performed so far with the milestone 1 preview drop of the Enterprise class WSRP Open Source Project:



Cadre1


Our test scenario was the following :

  • Step 0 : Develop & build a JSR168 portlet with NB55 and the Portal Pack Portlet Plugin. Portal Pack Portlet Plugin has a set of plugins for Netbeans IDE which provide portlet development and deployment support inside Netbeans IDE.

  • Step 1 : Deploy the JSR168 portlet into the Open Source Portlet Container with Glassfish

  • Step 2 : Register this JSR168 portlet as a WSRP Producer portlet

  • Step 3 : Define a WSRP Consumer portlet and its channel to have access to the WSRP Producer portlet


Infrastructure used

We have performed the test with the follwing platforms

  • Installation on Windows XP

We have performed the Open Source Portlet Container and the Open Source WSRP setup on Windows-XP that runs smoothly.


  • Installation on MAC OS X

The MAC OS-X setup is not OK right now with the milestone 1 preview due to known issues (tools.jar not available). Feel free to read the ProjectMailing alias : https://wsrp.dev.java.net/servlets/projectMalilingListList .

Btw, if you want to get it up & running with MAC OS X, here is a the workaround that works for me :

  1. Generate the binaries for Windwos-XP

  2. Xfert the binaries to your MAC OS X environment

  3. Set-up the Open Source Portlet Container

      review the configuration files of the « portletcontainer-code-base »/dist/portlet-container to reflect your Glassfish setup

      execute the following command to deploy Open Source Portlet Container on Glassfish

      « path»/glassfish/lib/ant/bin/ant -f setup deploy_on_glassfish

  4. Set-up the Open Source WSRP

      review the configuration files of the « wsrp-code-base »/dist/wsrp to reflect your Glassfish & JWSDP1.6 setup

      execute the following command to deploy Open Source Portlet Container on Glassfish

      « path»/glassfish/lib/ant/bin/ant -f setup deploy_on_glassfish


Here are a couple of screenshots demonstrating this stuff


Step 0 : Develop a « stupid » JSR168 portlet with NetBeans 5.5. There are a couple of screencasts and tutortials available on this subject sucha as :


Step 1 : Deploy a HelloWorldPortlet JSR168 portlet in the Glassfish/Open Source Portlet Container



Step 2 : Create a WSRP Producer based on the HelloWorldPortlet JSR168 portlet




Step 3 : Create a new WSRPConsumer with the WSDL provided by the WSRPProducer of the HelloWorldPortlet JSR168 portlet





Step 4 : Create a channel for your this WSRPConsumer



Step 5 : Celebrate!!! when you get the following




What's next ?


Base on the requirements from our customer, we will like to be able to run the following scenario:

  • Use NetBeans55 + Glassfish / Open Source portlet Container – Open Source WSRP to develop and deploy WSRP Producer portlet

  • Configure JES-Portal 7.\* as a WSRP Consumer


Cadre2


Some security aspects need to be addressed in this scenario between the WSRP Producer and the WSRP Consumer.


Stay tuned on https://wsrp.dev.java.net/


Patrice & Didier


Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

This blog is about Software How-to & Best Practices

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today