A graph-based framework for optimal semantic web service composition

Web services are self-described, loosely coupled software components that are network-accessible through standardized web protocols, whose characteristics are described in XML. One of the key promises of Web services is to provide better interoperability and to enable a faster integration between systems. In order to generate robust service oriented architectures, automatic composition algorithms are required in order to combine the functionality of many single services into composite services that are able to respond to demanding user requests, even when there is no single service capable of performing such task. Service composition consists of a combination of single services into composite services that are executed in sequence or in a different order, imposed by a set of control constructions that can be specified using standard languages such as OWL-s or BPEL4WS. In the last years several papers have dealt with composition of web services. Some approaches treat the service composition as a planning problem, where a sequence of actions lead from a initial state to a goal state. However, most of these proposals have some drawbacks: high complexity, high computational cost and inability to maximize the parallel execution of web services. Other approaches consider the problem as a graph search problem, where search algorithms are applied over a web service dependency graph in order to find a solution for a particular request. These proposals are simpler than their counterparts and also many can exploit the parallel execution of web services. However, most of these approaches rely on very complex dependency graphs that have not been optimized to remove data redundancy, which may negatively affect the overall performance and scalability of these techniques in large service registries. Therefore, it is necessary to identify, characterize and optimize the different tasks involved in the automatic service composition process in order to develop better strategies to efficiently obtain optimal solutions. The main goal of this dissertation is to develop a graph-based framework for automatic service composition that generate optimal input-output based compositions not only in terms of complexity of the solutions, but also in terms of overall quality of service solutions. More specifically, the objectives of this thesis are: (1) Analysis of the characteristics of services and compositions. The aim of this objective is to characterize and identify the main steps that are part for the service composition process. (2) Framework for automatic graph-based composition. This objective will focus on developing a framework that enables the efficient input-output based service composition, exploring the integration with other tasks that are part of the composition process, such as service discovery. (3) Development of optimal algorithms for automatic service composition. This objective focuses on the development of a set of algorithms and optimization techniques for the generation of optimal compositions, optimizing the complexity of the solutions and the overall Quality-of-Service. (4) Validation of the algorithms with standard datasets so they can be compared with other proposals.