Simple Asynchronous Invocation Framework for Web Services
 

SAIWS Framework

SAIWS

SAIWS (Simple Asynchronous Invocation Framework for Web Services) is an add-on to Apache Axis. It allows web service client developers to invoke web services asynchronously on top of the HTTP and SOAP protocols (without using messaging protocols).

SAIWS is publicly available from http://saiws.sourceforge.net.

SAIWS can be downloaded from http://sourceforge.net/projects/saiws.

In order to work with SAIWS you Apache Axis (together with a web server like Tomcat and an XML parser like Xerces). See http://ws.apache.org/axis/ for details. This version 0.11 of SAIWS has been tested with jakarta-tomcat-4.1.18-LE-jdk14, xerces-2_3_0, and xml-axis-10.

SAIWS Documentation

Overview Paper

The documentation contains various documents. A good starting point to learn more about SAIWS is the ICWS'03 overview paper: icws03.pdf

Java Doc

As a reference, the public classes and interfaces of SAIWS are documented using JavaDoc: Javadoc documentation.

Running the Examples and Tests

Deploy Date Service

A number of examples are provided in the directory/package asyncDateService. Before you can run these, you need to deploy the class DateService into the Axis web server. There are deployment/un-deployment descriptors provided in the directory. On Unix you can simply use the Makefile in the toplevel directory and invoke "make deploy" (you have to edit the directory DIR at the first line of the Makefile). On Windows you can call deploy by hand:

java org.apache.axis.client.AdminClient asyncDateService/deploy.wsdd

Be sure to have the class DateService on the Tomcat CLASSPATH (for instance by copying it into the respective directory). On my computer this is:

If you have problems in deploying the web service, consult the Axis documentation.

Running the examples

To run the examples you need the directory where you have installed the package saiws on your CLASSPATH.

There is one example for each type of invocation: SynchronousClient, FireAndForgetClient, ResultCBClient, PollingClient, SyncWithServerClient. These examples contain one or more invocation to the DateService. You can run all of these examples by issuing the following calls (also done by "make call"):

java saiws.asyncDateService.SynchronousClient
java saiws.asyncDateService.FireAndForgetClient
java saiws.asyncDateService.ResultCBClient
java saiws.asyncDateService.PollingClient	
java saiws.asyncDateService.SyncWithServerClient

The times test (summarized in the ICWS paper) can be performed by invoking (also done by "make callTime"):

java saiws.asyncDateService.TimeTest

Further Information

Contact

You can obtain further information from uwe.zdun [AT HATES SPAM] wu-wien.ac.at. Any suggestions or contributions are welcome.