by Walter Binder, Ion Constantinescu, Boi Faltings and Radu Jurca

The creation of compound, service-oriented Web applications is a tedious, manual task. The software designer must search for relevant services, study their application programming interfaces (APIs) and integrate them into the desired application, while also taking into account non-functional aspects such as service cost or reliability. We have been investigating models and algorithms to automate the service integration process, resulting in novel service composition algorithms that combine artificial intelligence (AI) planning techniques with advanced dynamic matchmaking in large-scale Web service directories.

Building compound Web applications by integrating standardized Web services promises many benefits, such as reduced development effort and cost, ease of maintenance, extensibility and reuse of services. Service-oriented computing promotes the construction of applications by composing services. Service-oriented architectures maximize decoupling between services and create well-defined interoperation semantics based on standard protocols.

Service-oriented Web applications integrate the distributed Web services (WS) offered by various service providers. Web services are advertised in directories, which publish their programming interfaces, grounding details (protocol, address etc) and eventually service-level agreements (SLAs) specifying the conditions and cost of service usage. Current technology includes Universal Description Discovery and Integration (UDDI) for Web service directories, Web Service Definition Language (WSDL) for Web service advertisements, WS-Agreement for SLAs, and Business Process Execution Language for Web Services (BPEL4WS) for representing compound services. In order to leverage available Web services, software designers must be aware of the service interfaces and structure their applications so that they can be integrated. Software designers searching for suitable services (also using traditional search engines) are confronted with a large and dynamically changing search space, which in general must be explored manually. Such a manual approach to creating service-oriented systems is tedious and can hardly take advantage of the rapidly growing market of available Web services.

As a joint project between the University of Lugano and the Artificial Intelligence Lab of the Ecole Polytechnique Fédérale de Lausanne (EPFL), we have been exploring new techniques for automating the creation of compound service-oriented Web applications based on user requirements, while taking into account large-scale directories of Web service advertisements. As an essential tool for the design of service-oriented Web applications, we promote the ServiceComposer. This takes a specification of user requirements as input and interacts with Web service directories, as well as with the software designer, in order to create a compound service that meets those requirements. Our approach supports traditional settings in which Web service advertisements merely convey interface information at the level of method signatures, as well as advanced settings in which semantically enriched service advertisements provide specifications of service behaviour. In the latter case, languages such as OWL-S or Web Service Modelling Ontology (WSMO) may be used to specify service semantics; the ServiceComposer uses the additional information to improve composition quality.

Figure 1: The ServiceComposer helps the software designer in selecting and integrating available Web services that are advertised in distributed directories. The ServiceComposer uses AI planning and optimization algorithms and dynamically interacts with remote Web service directories that provide advanced matchmaking functionality.
Figure 1: The ServiceComposer helps the software designer in selecting and integrating available Web services that are advertised in distributed directories. The ServiceComposer uses AI planning and optimization algorithms and dynamically interacts with remote Web service directories that provide advanced matchmaking functionality.

At the core of the ServiceComposer are planning and optimization algorithms that combine available services. On the one hand, the generated compound service must fulfil the functional requirements specified by the user. On the other hand, the ServiceComposer should choose individual Web services so as to minimize the cost of service usage and maximize reliability and availability of the compound service. Ideally, the ServiceComposer discovers a set of available Web services that can be assembled to meet all requirements. However, often there are specific aspects of the desired application that cannot be covered by off-the-shelf services, or the software designer may want to avoid using certain Web services, eg because of high cost or because of lack of confidence in the service reliability. Thus, the ServiceComposer cannot be a fully automated tool, since it needs to interact with the software designer. Rather, it offers design alternatives, suggests Web services to be integrated, and helps to minimize development effort by making use of available Web services wherever possible.

So far, as original scientific contributions, we have developed novel algorithms for service matchmaking and automated service composition, allowing to efficiently assemble services advertised in large-scale directories in order to meet given user requirements. We have succeeded in interleaving and integrating AI planning algorithms with remote directory access, for which we designed a dedicated query language and new matchmaking algorithms. Moreover, our work on automated Web service composition takes partial matches into account, increasing the success rate of our algorithms. In contrast, prior work on automated composition required a fixed and limited set of service advertisements (in the order of a few hundred services) that was hard-coded in a reasoning engine and did not support partial matches.

Our ongoing research concentrates on optimizing compound services with respect to non-functional properties such as service cost and service reputation. Moreover, we are developing a new middleware for dependable service-oriented applications. This will support failure recovery through dynamic replanning of service compositions, as well as proactive improvement of compound services, taking service reliability and performance into account. The latter features require a sophisticated monitoring infrastructure to be integrated into our middleware. Regarding concrete applications, we have demonstrated the feasibility of our approach with an evening planner that automatically integrates Web services for route planning, public transport schedules, restaurant recommendations, movie schedules etc. Currently, we are exploring ways to partly automate the creation of upcoming, social-based Web structures such as Web mashups.

Links:
A Flexible Directory Query Language for the Efficient Processing of Service Composition Queries: http://www.igi-pub.com/articles/details.asp?id=6573

A Multi-agent System for the Reliable Execution of Automatically Composed Ad-hoc Processes: http://dx.doi.org/ 10.1007/s10458-006-5836-0

Flexible and Efficient Matchmaking and Ranking in Service Directories:
http://doi.ieeecomputersociety.org/10.1109/ICWS.2005.62

Large Scale, Type-Compatible Service Composition:
http://doi.ieeecomputersociety.org/10.1109/ICWS.2004.1314776

Please contact:
Walter Binder
University of Lugano, Switzerland
E- mail: walter.binder@unisi.ch

Ion Constantinescu
Digital Optim LLC
E-mail: ic@opt.im

Boi Faltings, Radu Jurca
Artificial Intelligence Laboratory, Ecole Polytechnique Fédérale
de Lausanne (EPFL), Switzerland
E-mail: {boi.faltings, radu.jurca}@epfl.ch

Next issue: October 2024
Special theme:
Software Security
Call for the next issue
Get the latest issue to your desktop
RSS Feed