Aggregating Functional and Non-Functional Properties to Identify Service Compositions

Aggregating Functional and Non-Functional Properties to Identify Service Compositions

Eduardo Blanco (Universidad Simón Bolívar, Venezuela), Yudith Cardinale (Universidad Simón Bolívar, Venezuela) and María-Esther Vidal (Universidad Simón Bolívar, Venezuela)
DOI: 10.4018/978-1-60960-493-6.ch008
OnDemand PDF Download:
No Current Special Offers


This chapter presents an aggregated metric to estimate the quality of service compositions, and two algorithms to select the best compositions based on this metric. Both algorithms follow different strategies to prune the space of possibilities while minimizing the evaluation cost. The first algorithm, DP-BF, combines a best first strategy with a dynamic-programming technique. The second one, PT-SAM, adapts a Petri-net unfolding algorithm and tries to find a desired marking from an initial state. An experimental study was conducted in order to evaluate the behavior of DP-BF and PT-SAM compared to SAM and to the exhaustive solution. The experiments show that the quality of the compositions identified by the presented algorithms is close to the optimal solution produced by the exhaustive algorithm, while the optimization time is close to the time required by SAM to identify a solution.
Chapter Preview


A Service-Oriented Architecture (SOA) (Erl, 2005) is essentially a collection of loose coupled services, that interoperate based on a formal language which is independent of the platform and the programming language used to implement each service. SOA relies on a set of policies, practices, and frameworks by which it ensures that the appropriate services are provided and consumed, and enhances services inter-connectivity. Hence, rather than leaving developers to discover individual services and execute them independently, SOA provides the Business Service Bus that works across multiple SOA applications in the same domain.

Flexible SOA connections between services, as well as software components that pass simple data among other services or that coordinate simple activities, are seen as services which can be combined with other services to achieve specific goals. Thus, SOA provides a scalable and robust framework to integrate heterogeneous software agents and enhance reliability of isolated software components.

In systems engineering as well as in SOA applications, requirements are partitioned into functional and non-functional. Functional requirements specify the functions that a system or its components must be capable of performing. These software requirements define the system behavior, i.e., fundamental processes or transformations performed by software and hardware components of the system on its inputs to produce the correct outputs. In contrast, non-functional requirements are constraints that allow the description of an application in terms of quality attributes or transactional behavior, e.g., performance-related, reliability, availability issues, or fault tolerance capability. These types of requirements are often classified into execution and evolution quality requirements or parameters. The former parameters are observable at run time, while the latter are embodied in the static structure of the software system. It is well known that functional and non-functional requirements constrain each other, and therefore, they should be considered together to completely specify a user request.

As SOA applications become popular and Web Services proliferate, it becomes more dificult to find a specific service that can meet a user request expressed in terms of a set of functional and non-functional requirements, and combinations of several heterogeneous services may be required to satisfy the user request.

Heterogeneity, which means diffrent non-functional requirements (response time, cost, reliability, throughput, trust, fault tolerance capability), granted by multiple distributed services delivering the same functionality, must be adequately managed to ensure effcient implementations of user requests. In this sense, machine-readable knowledge about the parameters whose values describe the execution quality or transactional properties of the available services, play an important role to decide if a given service composition satisfies the user non-functional requirement, and services with the highest quality will produce more efficient compositions.

In this chapter, we consider the problem of identifying a service composition that best meets functional and non-functional user requirements (the WSC problem). Related problems have been studied in different areas, for example, query optimization (Florescu, Levy, Manolescu, & Suciu, 1999; L. Haas, Kossmann, Wimmers, & Yang, 1997; Levy, Rajaraman, & Ordille, 1996; Papakonstantinou, Gupta, & Haas, 1996; Ouzzani & Bouguettaya, 2004; Srivastava, Munagala, Widom, & Mot-wani, 2006; Zadorozhny, Bright, Raschid, Urhan, & Vidal, 2000; Zadorozhny, Raschid, Vidal, Urhan, & Bright, 2002), and service discovery (Bansal & Vidal, 2003; Paolucci, Kawamura, Payne, & Sycara, 2002; Al-Masri & Mahmoud, 2008b; Bachelechner, Siorpaes, Lausen, & Fensel., 2006).

Complete Chapter List

Search this Book: