Logo

Service-Oriented Application Development with WSML

Developing a service-oriented client application that takes benefit of the dynamic flexibilities of the WSML is a straightforward 3-step process:

1. Deploying the WSML

For every kind of service functionality required in the client application a service type needs to be specified in the WSML. A service type is a virtual stub representing some service functionality that will be delivered at runtime by one or more web services. Depending on the preferred setup, a service type is integrated in the client in two ways:

  • As local classes: The WSML runs as an internal component in the client. A service type is a plain java class containing the specified methods that will be mapped transparently to service invocations. This is the default setup.
  • As remote services: The WSML runs as an independent server and exposes the service type as a WSDL-described service again. This setup has advantages in a large scale environment were multiple clients need to be managed.

2. Configuring the WSML

Depending on the preferred setup, the WSML is launched as a server or as an internal component in the client application. Next, web services should be registered. This is done easily by pointing to their WSDL-specification. Now, a mapping is needed to specify how the service can fullfill the functionality requested by the service type. If needed, a service composition can be specified as well. Future work includes compatibility with the Semantic Web to automate this process. At the moment wizard tool support is available to do the mapping. Now, as soon as the client makes a service type request, the web service(s) will be invoked and the result will be passed back to the client

3. Customizing the WSML

It is possible to register multiple services and compositions for a service type. By default, selection can be done based on availability of the involved services. If a service becomes unavailable, a hotswap takes place and another service is invoked. This selection procedure can be customized by specifying selection policies based on non-functional properties (e.g. such as billing information) or behavioural proeperties (e.g. such as service uptime). Furthermore, a range of client-side management concerns can be non-invasively deployed in the WSML, including caching, logging, monitoring, billing, etc.



Current WSML Version

Java Prototype

A prototype of the WSML is available for download on this website. It is written in Java and is built on top of JAsCo, a dynamic aspect-oriented language. For more information on how aspects are applied in the WSML, we refer to the AOP section. For the users of the WSML, the use of aspects is completely transparent. The current version of WSML supports:

  • Service Types: Web Services are completely decoupled in a platform-independent manner from the client application using Service Types, i.e. virtual stubs.
  • Service Compositions: Both single Web Services and Service Compositions can be used to provide the requested functionality to the client application
  • Hot-Swapping: The WSML can switch at runtime between several Web Services based on their availability and network conditions. This is done in a transparent way for the client.
  • Selection Policies: Advanced service selection is possible based on the value of service properties and characteristics (price, reliability, response time, average speed, etc). These policies can be managed at runtime
  • Client-Side Management: Several management concerns can be dynamically integrated and configurated in a non-invasive manner. A Template library with predefined management concerns such as caching and monitoring is included.

Main Features

  • Eclipse plugin: a plugin for the Eclipse IDE is available to easily implement and deploy client applications together with the WSML
  • Local or distributed setup: the WSML can run as an internal component of the client, or can be decoupled and run as a seperate server
  • Monitor Console: A GUI allows monitoring and logging any WSML activity (see Figure 1)
  • Administration Console: the WSML can be remotely configured at runtime using a web interface (see Figure 2)
  • XML Configuration: Persistant configuration of the WSML is possible through XML files
  • Setup and deployment wizard: The WSML can be easily installed and configured through a graphical interface (see Figure 3)
  • VUB QuoteWeb Example: A demo application can be installed to demonstrate the capabilities of the WSML (see Figure 4)

Fig.1 - WSML Monitoring Console

Fig.2 - WSML Administration Console

Fig.3 - WSML Launch Options

Fig.4 - VUB QuoteWeb Example

 

The WSML is being developed with the support of the Flemish Government Project MOSAIC, funded by the “Institute for the Innovation of Science and Technology in Flanders” (IWT) (in Dutch “Instituut voor de aanmoediging van Innovatie door Wetenschap en Technologie in Vlaanderen”), and is carried out in cooperation with Alcatel Bell.

 

2006-05-22 18:30:00
Bart Verheecke

Updated publications page and fixed download link to WSML version 0.5.1

2005-05-23 17:35:17
Bart Verheecke

New WSML version 0.5.0 online. Download it here

2005-05-10 16:49:36
Bart Verheecke

WSML version 0.5 beta 5 has been released

2005-04-26 16:36:35
Bart Verheecke

WSML version 0.5 beta 3 has been released

2005-04-15 15:43:06
Bart Verheecke

WSML site updated: documentation and publications added

2004-09-07 14:43:59
Bart Verheecke

New WSML version 0.4.13. Download it here

2004-04-21 14:17:14
Bart Verheecke

New WSML version 0.4.8 (with improved monitoring console). Download it here

2004-04-08 18:05:34
Bart Verheecke

New WSML version 0.4.7a (bug fix release). Download it here

2004-03-15 15:11:38
Bart Verheecke

New WSML version 0.4.5 with linux support online. Download it here

2004-03-12 13:29:51
Bart Verheecke

Publication page updated and new event page added

SSELŠ2003 visitors: 38401