Adaptive Web Service Composition: An Aspect-Oriented Approach

Adaptive Web Service Composition: An Aspect-Oriented Approach

Areeg Samir (Cairo University, Egypt)
DOI: 10.4018/978-1-4666-6178-3.ch012


Service-Oriented Architecture supports sharing resources and transforming business services into a set of linked Web services. Web services rely on non-functional attributes managed through Web Service standards (WS-*) and Quality of Service (QoS) specifications. However, traditionally, the functionality related to QoS and WS-* specifications is scattered and tangled all over the main service code, making the maintenance of these Web services expensive and complex. Aspect-Oriented Programming (AOP) provides abstraction techniques and language constructs to manage and separate these crosscutting concerns from other parts of the system. This chapter focuses on explaining the concepts of dynamic and adaptive Web service composition and proposes an adaptive Web service architecture to enhance reusability of services using the Aspect-Oriented approach. This approach enables separating crosscutting concerns such as QoS and WS-* specifications in aspect Web services and integrating them with the base Web services on the fly. This architecture is based on AO4BPEL, an aspect-oriented extension to BPEL, which reduces the complexity in dynamic selection and reuse of non-functional attributes. This methodology can facilitate dynamic composition of services and business processes in on-premise and Cloud computing environments.
Chapter Preview


The Web is rapidly becoming the environment through which many companies deliver services to businesses and individual customers. The number and type of Web services increase everyday and this trend is likely to continue at an even faster pace in the immediate future. In particular, the possibility of composing already implemented Web services and reusing them in order to provide new functionality is an interesting approach for building distributed applications and business processes across multiple organizations. In highly dynamic and heterogeneous environments such as Cloud Computing, services must be able to adapt at runtime by reacting to the environmental changes. Web services are designed to be loosely coupled so that they can be potentially reused in various Service-driven solutions and for a wide range of service requestors (Schmidt, 2008; Casati, 2001).

Service Oriented Architecture (SOA) is an approach for modeling and packaging software as a set of services based on a simple model of roles. Every service may assume one or more roles such as being a service provider or a service consumer. In Web services, standard communication protocols and simple broker-request architectures are needed to facilitate service exchange, and simplify interoperability (Chan & Lyu, 2008). SOA is not only adopted in Web services but also in various distributed systems (Stanoevska et al., 2009), such as Grid Computing systems, Utility Computing systems and Cloud Computing systems. The major challenge that must be addressed to effectively use these systems in various applications is in managing the Quality of Services (QoS) (Yau, 2009) to satisfy user requirements to deal with the dynamic changes in service compositions and the changes in requirements during runtime. Furthermore, many standard Web Service Specifications (WS-*) provide various options to give the implementers the ability to choose the one that satisfies their need.

However the functionality related to QoS and WS-* specifications is scattered and tangled all over the main service functionality code making the monitoring of these services expensive and complex. Several issues relating to service adaptability and response to the changes in the environment at runtime have been widely studied. The purpose of this chapter is to empower developers of Web services to apply dynamic adaptability to enhance reusability in different environments including the Cloud. Therefore, this chapter focuses on explaining the concepts of Dynamic and Adaptive Web services and highlights the reasons and benefits of applying these techniques to Web service composition and business processes. An Adaptive Web service architecture is being proposed to enhance reusability in service-driven environments. The main objective of this architecture is to enhance Web service reusability using SOA and Aspect Oriented Programming (AOP) concepts by separating crosscutting concerns such as QoS and WS-* attributes in aspect Web services and integrating them with the base Web services on the fly.

The rest of the chapter is structured as follows. The background section presents an introduction to the concepts of adaptive Web services, Web service composition and reusability, aspect-oriented methodology, applicability to Cloud computing, and related research works in some of these areas that motivated the research steps undertaken in this work to extend the state-of-the-art on Web service reusability and composition. Next, dynamic adaptation using aspects and SOA is explained and an architecture is proposed for implementing adaptive services using the aspect-oriented approach. Finally, this chapter summarizes future work.

Key Terms in this Chapter

Services Adaptation: Refers to the capability of the software service to adapt its behavior in order to satisfy new requirements and to fit new situations dictated by the environment.

Web Service: A software system identified by a URL and whose public interfaces and bindings are defined and described using XML is called a Web service. Its architecture is loosely coupled. The Web Service Description Language WSDL uses the XML format to describe the methods provided by a Web service, including input and output parameters, data types and the transport protocol, which is typically HTTP. Web Services use a registry to publish details about services and provide an opportunity for service consumers to find service providers.

Service Oriented Architecture: A technological approach and methodology for building business applications. These business applications implement business processes or services through a set of loosely coupled, black-box components orchestrated to deliver a well-defined level of service.

Cloud Computing: It is a general term for anything that involves delivering hosted services over the network. These services are broadly divided into three categories: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS).

Aspect Oriented for Business Process Execution Language: Aspect Oriented for Business Process Execution Language (AO4BPEL) is an aspect-oriented extension to WS-BPEL that allows for modular and dynamically adaptable Web service compositions.

Business Process Execution Language: Business Process Execution Language (BPEL and variants WS-BPEL, BPEL4WS) is a language used for composition, orchestration, and coordination of Web services. It provides a rich vocabulary for expressing the behavior of business processes. It uses an XML-based vocabulary to specify and describe business processes.

Aspect-Oriented Programming: Aspect-oriented programming (AOP) is a style of programming that attempts to abstract out features common to many parts of the code beyond simple functional modules and thereby improve the quality of software.

Service Reusability: It is the degree to which the service can be used in more than one business process or service applications without the need for reconfiguration or recreation.

Service Composition: It is the process of synthesizing a new composite service using a set of available Web services in order to satisfy a user request that cannot be satisfied by any individual Web services.

Complete Chapter List

Search this Book: