An Automated Approach for Selecting Web Services Alysson Alves, Gledson Elias Informatics Center Federal University of Paraíba João Pessoa, Brazil e-mail: a.alvesdl@gmail.com, gledson@ci.ufpb.br Abstract—The task of selecting web services is one of the main challenges for successfully exploring the Service-Oriented Architecture (SOA) approach in software development processes. Whereas the availability of web services tends to increase rapidly in the software industry, it is impractical to adopt ad-hoc manual approaches for selecting web services. Thus, considering a very large and complex search space, it is required an automated approach for selecting web services. In such a direction, exploring Search Based Software Engineering (SBSE) techniques, this paper proposes an automated approach for selecting web services, whose optimization strategy is based on functional and structural metrics that evaluate the functionalities provided by candidate web services, as well as their dependencies in the architectural level. As main contribution, experimental results show that the proposed approach represents an extremely complex problem in a systematic and structured way, discovering good-enough or even optimal solutions among the candidate web services. Keywords-Web Services; Service-Oriented Architecture; Search Based Software Engineering. I. INTRODUCTION The advancements in software engineering approaches have contributed for increasing productivity in software development processes [1]. As a promising approach, software reuse has the potential to reduce development time, cost and risk during the development of a software product [2]. In such a context, Service-Oriented Architecture (SOA) has emerged as one of the main software reuse approaches, in which software systems can be developed reusing services available in the internet. Note that, SOA is an architectural style for building software systems, while Web Services (WS) are the preferred standards-based way to realize SOA [3]. Ideally, web services are perfectly connected and integrated without additional adaptation efforts for composing a software system or even a new web service. However, in practice, web services can be developed by different software providers, and, generally, such services can only be integrated with additional adaptation efforts for resolving incompatibilities among their required and provided functionalities [4]. As a consequence, such incompatibility issues must be already considered during the selection of the candidate web services, trying to choose more compatible candidates as a mean to reduce adaptation efforts, and consequently integration time and cost. The selection of web services has proven to be a phase of major complexity in SOA-based development processes. Most processes for selecting web services take into account only quality attributes or non-functional requirements of the candidate web services, such as availability, reliability, response time and price. However, functional requirements also have significant impact in the quality of a SOA-based software product. Indeed, functional requirements make possible to assess the effectiveness of the integration of all candidate web services, minimizing integration mismatch issues. The higher the integration effectiveness, the lower the amount of incompatibilities that arise from the integration, and consequently the lower the adaptation efforts for integrating candidate web services. Therefore, the selection of web services for a given architectural specification is a pivotal task that is more complex than traditional products selection [5]. Besides, taking into account that the availability of web services tends to rapidly increase in software industry, it is impracticable the adoption of ad-hoc manual approaches for selecting web services. In fact, considering a SOA-based architectural specification, several candidate implementations can exist for each web service specification included in the architectural specification. The amount of possible solutions creates a very large search space with exponential complexity, in which the base is the average number of candidate implementations and the exponent is the number of web service specifications included in the architectural specification. As a consequence, considering a very large and complex search space, it is required an automated approach for selecting web services. Even adopting an automated approach, the search space is typically too large to be explored exhaustively, suggesting the adoption of metaheuristic search techniques explored in Search Based Software Engineering (SBSE), in which software engineering problems are reformulated as optimization problems that can be tackled with metaheuristics, such as Genetic Algorithms [6]. In such a direction, exploring SBSE techniques, this paper proposes an automated approach for selecting web services, in which from a SOA-based architectural specification, web service specifications are contrasted against their correspondent candidate implementations, which are selected by evaluating the effectiveness of their integration, minimizing integration mismatch issues, and consequently, reducing adaptation efforts for integrating them. In the proposed approach, the optimization strategy is based on functional and structural metrics that evaluate the functionalities provided by candidate web services, as well as their dependencies in the architectural level. As main 41 Copyright (c) IARIA, 2016. ISBN: 978-1-61208-482-4 ICNS 2016 : The Twelfth International Conference on Networking and Services