Assembling Composite Web Services from Autonomous Components Jyotishman PATHAK, Samik BASU and Vasant HONAVAR Department of Computer Science Iowa State University Ames, IA 50011-1040, USA { jpathak, sbasu, honavar}@cs.iastate.edu Abstract. Web services are fast emerging as the technology of choice to build distributed information systems in multiple domains including e-Business and e-Science. An important challenge is to develop methodologies and tools that enable (semi-) auto- matic composition of services by taking into account the functional, non-functional and behavioral requirements of the service developer. This paper presents the fun- damental concepts and issues related to service composition and provides a repre- sentative sample of existing work proposed by the AI planning and formal meth- ods communities to address some of the challenges in service composition. It also provides a brief introduction to an iterative and incremental technique for modeling composite Web services proposed by the authors. Keywords. Web Services, Composition, AI Planning, Formal Methods 1. Introduction Recent advances in networks, information and computation grids, and the World Wide Web has led to the emergence of a new approach to build highly distributed information systems using Web-based services 1 [1]. They hold the promise to enable development of rich and flexible applications in multiple domains including e-Business and e-Science owing to their loosely coupled and interoperable nature. Consequently, there has been a significant interest in recent years to build Service-Oriented Architectures [2,3] that support the creation and deployment of complex Web services to accomplish different tasks. In particular, the ability to discover and integrate existing services into a compos- ite service (a.k.a. Web Service Composition) has received a lot of attention from both academia and industry, and many techniques based on formal methods, AI planning and logic theory have been proposed. The main objective of these approaches is to allow ser- vice developers to flexibly locate the required component services, compose them and orchestrate their execution to achieve the desired requirements, which otherwise cannot be fulfilled by a single (available) service. 1 In this paper, we use the terms “Web services” and “services” interchangeably.