The Web Service resource framework (Web Services Resource FRAMEWORK,WSRF) specification provides a standard for mechanisms that use Web services to access resources in a stateful manner. IBM Lotus Expeditor integrates WSRF as a feature that allows you to expose open service Gateway Initiative (OSGI) services as resources. This article describes the concepts involved in WSRF and clarifies the steps associated with modeling and exposing simple stateful resources (implemented using WEB services as OSGi packages). It then further explains how to access this stateful resource using the message Exchange Mode standard set defined in the WSRF specification. The sample code used in this article is developed for the OSGi runtime provided by the IBM Lotus expeditor Client for Desktop V6.1.0.
In this article, you will learn the following:
How to model a simple stateful resource.
How to use the Lotus Expeditor Toolkit to implement Ws-resource provider-side components.
How to use the Lotus expeditor Toolkit to create a Ws-resource client component.
How to deploy Ws-resource in Lotus expeditor Client.
How to develop an application that works with Ws-resource.
This article assumes that you already have core Java development skills, as well as the basics of WEB services, XML, and OSGi. Also, in order to run the sample application, you must install the following software on the Windows/linux system:
Java 1.4.2
Lotus Expeditor Client V6.1.0 (with Web Services Resource Framework 6.1.0.0)
Eclipse 3.2.0 and Web Tools Project (WTP) 1.5.1
Lotus Expeditor Toolkit (with Mobile Web Services 6.1.0)
The Ws-resource in Lotus Expeditor
Ws-resource is a combination of resources and Web services that can access resources through this Web service. The Lotus expeditor Client for Desktop uses the following component prototypes to implement Ws-resource:
Resources
A resource is an OSGi bundle that encapsulates one or more stateful OSGi service objects that must be exposed as ws-resource. These service objects can be business entity views (such as ShoppingCart or PrintJob), or the software façade of physical resources (such as Printer). You need to provide the implementation of the service object as an OSGi bundle.
WEB Services
A Web service is an OSGi bundle that acts as a façade for ws-resource Web services. This component exposes WSRF standard port types and custom port types, as described in the Ws-resource Web Service Description Language (Web Services Description language,wsdl). You can use the Mobile Web Services Builder Wizard to generate a complete WEB service bundle for a given resource description.
Adapter
Adapters are OSGi bundle that act as bridges between Web service bundle and resource bundle. It sends incoming WEB service messages, including WSRF standard port types and custom port types, to the resource instance selected by the requester. Any response to the resource, including exceptions, will be returned to the requester through the adapter and Web service bundle as a normal response or error. When you build a Web service bundle, the Mobile Web Services Builder Wizard also generates an adapter bundle with a placeholder. You need to provide an implementation that binds the adapter to the resource instance.