T-110.5140 Network Application Frameworks P (5 cr)

SOAP


SOAP is an XML-based protocol for exchanging information in a distributed environment. Basic SOAP describes the SOAP envelope, i.e., what parts may be contained in a SOAP message, and the SOAP processing model, i.e., how a SOAP message is transferred from the sender to the receiver.

Comparing to CORBA, SOAP can be seen as CORBA's interoperability protocol IIOP. The role of IDL is played by Web Service Description Language (WSDL). It is an XML language for describing operations supported by services and how to invoke them.

The purpose of this assignment is to implement and deploy your own simple Web service that provides a search for files. You will write a WSDL description of the service, the actual server, and a client for the service. Apache Axis is to be used as the Web service implementation.

 

Requirements

The goals of this assignment are to

  •   Learn about SOAP and Web services
  •   Acquire an understanding of using, describing, and deploying Web services
  •   Learn to implement Web services


The service to implement contains an index (read from a file) associating filenames with corresponding keywords. The service provides an operation to query filenames matching a provided keyword. The service is also supplied with a maximum count of
filenames to be returned and an indication of whether to use partial or exact matching.

A completed assignment consists of the following parts:

  1. WSDL description of the service (you may either write this by hand or to use the Java2WSDL tool of Axis: in the latter case make sure you understand everything in the file)
  2. The Axis Web Service Deployment Descriptor (WSDD) file that was used to deploy the service
  3. Java code for the search service, including an example index file. You may pick the precise syntax of the index file yourself
  4. Java code for an example client. This client needs to take as command line parameters the parameters of the service and to output the returned list of files
  5. Both the output of the client and a network traffic dump of an example invocation