Logo

Introduction

The Web Services Management Layer (WSML) is a reusable middleware platform for the dynamic integration, selection, composition and client-side management of Web Services in client applications. The philosophy of the WSML is that all web service related code is taken out of the client application and placed inside the WSML. Whenever the client requires some service functionality, it makes a request to a Service Type, i.e. a virtual stub. The WSML will translate this request to an available Web Service or a Service Composition and send the result back to the client.

More advanced features of the WSML include Service Selection Policies and Management Concerns. A Selection Policy specifies which Web Service or Service Composition to prefer over another one (e.g. the cheapest or fastest service). A Management Concern takes care of client-side management issues such as monitoring, billing, caching, etc. The core technology of the WSML is JAsCo, a dynamic Aspect Oriented Programming (AOP) framework.

Problem Statement

Current approaches typically used to integrate services in client applications are rather static and do not allow easy dynamic adaptations of the web services themselves or the way they are used. However, this leads to unmanageable applications that cannot adapt to changes in the business environment (e.g. a service that is abandoned or changed, a new service that becomes available on the market, etc). Furthermore, creating Service Composition is very cumbersome as all the Web Services need to be integrated and the composition logic is hard-wired in the client.

A second obstacle is that by generating hard-wired proxy-classes, and as such treating the services as regular software components, the specific requirements of services are completely ignored. Services are organisationally fragmentized, can be asynchronous and latent, can become unavailable due to unpredictable network conditions and thus require more overall management. To deal with these issues in order to create more robust applications, code has to be written manually and repeated for each service. This way, the code is duplicated, scattered all over the application and becomes an obstacle for future maintenance.

A third limitation encountered is that services can only be selected based on the functionality they offer. The web service documentation provided in WSDL-format does not support the explicit specification of non functional requirements such as constraints based on Quality-of-Service and management statements, classes of service, access rights, pricing information, SLA’s (Service Level Agreements) and other contracts between web services. Explicitly specifying these non-functional requirements at the service side in a precise and unambiguous way would allow the composition and integration of services to occur in a more intelligent and customized manner. This way, applications are able to specify criteria to be considered at service selection time to integrate those services that best fit the application requirements.

Web Services Management Layer

To overcome these probems, we introduce a Web Services Management Layer (WSML), which is placed in between the application and the world of web services. This intermediate layer allows: dynamic selection and integration of services into an application, client-side management of the service, and support for rules that govern the selection, integration and composition.

Generic functionality, necessary to provide support for multi-partner processes (e.g. to guarantee security, transactions, etc) can also resides in the WSML, depending on specific application requirements. Examples of this generic management functionality are:

  • Traffic Optimisation: in order to reduce traffic over the network to avoid slowing response times, losing packages, congesting networks, etc., a caching mechanism can be considered. Instead of invoking the services each time the application requests certain service functionality, the results are retrieved from a cache
  • Billing Management: services can specify their own billing strategies and the application might want to control how billing is applied. Analogously, services might need to be billed for being integrated in the client applications.
  • Accounting: many industries are required to provide tracing and logging capabilities for accounting as well as regulatory purposes.
  • Security: web services might have several security mechanisms (e.g. WS-Security [21]) depending on the environment where they are deployed. Data sent over the network can be encrypted and user authentication and authorisation might be required.
  • etc

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: 38399