A Framework for Architecture-driven Service Discovery A. Kozlenkov V. Fasoulas F. Sanchez G. Spanoudakis A. Zisman Department of Computing, City University, Northampton Square, London EC1V 0HB, UK Phone: +44 20 7040 8346 Fax: +44 20 70400244 a.kozlenkov@city.ac.uk, {v.fasoulas, sa840, gespan, a.zisman}@soi.city.ac.uk ABSTRACT Service discovery has been recognised as an important aspect in the development of service centric systems, i.e. software systems that are constructed based on the composition of web services. In order to develop service centric systems it is necessary to identify web services that can be combined to fulfil the functionality and quality criteria of the system being developed. In this paper we present a framework to support architecture-driven service discovery – that is the discovery of services that can provide the functionalities and satisfy properties and constraints of systems as specified during the design phase of the development lifecycle. Our framework assumes an iterative design process and allows for the (re-)formulation of the design models of service-centric systems based on the discovered services. A prototype tool has been developed and includes two main components: a UML 2.0 integration module, which derives queries from behavioural and structural UML design models and integrates the results of the queries; and a query execution engine, which performs the queries against service registries. The execution of the query is a two- stage process based on a similarity analysis algorithm. Categories and Subject Descriptors D.2.2 [Software Engineering]: Design Tools and Technique – Computer-aided software engineering, modules and interfaces, object-oriented design methods, user interfaces. General Terms: Algorithms, Design, Languages. Keywords: Service centric system, service discovery, profile, messages, queries, operations. 1. INTRODUCTION The development of service centric systems (SCS), in which software systems are constructed based on the composition of autonomous web services, has been recognised as an important paradigm for software system development. Recently, software systems are being developed, deployed, and consumed in this way, shifting from traditional object-oriented approaches. This new paradigm focuses on the creation, discovery, and composition of autonomous services that can fulfil various functional and quality characteristics of the system. In the last few years, we have seen the emergence of important standards and technologies that enable the service centric vision. However, there is still the need to extend current software development practices with new processes, methods, and tools to assist the engineering of complex and dependable SCS. An important aspect of service centric systems is the ability to support the discovery and composition of services at different stages of the development life cycle of a system. In this paper, we present a framework to support architecture-driven service discovery (ASD). By architecture-driven service discovery we mean the identification of services that can provide the functionality and satisfy quality properties and constraints of an SCS as specified by its design models. Architecture-driven service discovery requires support to address some important challenges, including: The extraction of service discovery queries from SCS architecture and design models specifying the functionality and quality properties of such systems; The provision of a query language supporting both the expression of arbitrary logical combinations of prioritised functionalities and quality properties criteria for the required services, and similarity-based queries of the form "find a service that is similar to service X"; The efficient matching of service discovery queries against service specifications and return of services that may have varying degrees of match with the queries; The assistance to system designers to select services for an SCS in cases where the discovery process identifies more than one candidate services satisfying a query; The integration of discovered services into an iterative design process in which SCS architecture and design models may be re-formulated following service discovery. The above challenges have been identified by industrial partners in the areas of telecommunications, automotive, and software in an integrated European project focusing on service centric system engineering (SeCSE [16]). These challenges constitute the main driver underpinning the framework that we present in this paper. Our framework adopts an iterative architecture-driven service discovery process in which the discovery activity relies on the ongoing development of the architecture of the SCS and, therefore, the available services identified during this process can be used to amend and reformulate the design models of the system. The reformulation of these models may trigger new service discovery iterations. The result of this process is a complete specification of the SCS architecture models. The framework assumes the use of UML to specify structural and behavioural design models of the SCS. It includes a UML 2.0 Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. IW-SOSE’06, May 27–28, 2006, Shanghai, China. Copyright 2006 ACM 1-59593-085-X/06/0005...$5.00.. 67