+ All Categories
Home > Documents > [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)]...

[ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)]...

Date post: 27-Jan-2017
Category:
Upload: muhammad-ali
View: 212 times
Download: 0 times
Share this document with a friend
6
Towards a Pattern Language for Self-Adaptation of Cloud- Based Architectures Aakash Ahmad 1 , Muhammad Ali Babar 2, 1 1 IT University of Copenhagen, Denmark 2 University of Adelaide, Australia 1 [email protected], 2 [email protected] ABSTRACT Cloud computing enables organisations to deploy their software systems over a pool of available services – exploiting pay-per-use models – rather than upfront purchase of an overprovisioned infrastructure. In an architectural context for cloud systems that demand elasticity in terms of service availability, reliability, and efficiency, there is a need to capitalise on the ‘build-once, use-often’ solutions that support reuse- driven self-adaptations of cloud-based architectures. We support the composition and application of a pattern language that exploits adaptation patterns and their relations to support ‘adaptation-off-the- shelf’ for cloud-based software architectures. We unify the concepts of software repository mining and software evolution to support the composition and application of an adaptation pattern language. First, we exploit the software repository mining concepts by investigating adaptation logs to empirically discover architecture adaptation patterns and their relations. Second, we utilise the software evolution techniques for self-adaptation of cloud architectures guided by a systematic selection and application of adaptation patterns. In the context of the IBM’S MAPE-K model for self-adaptation, we propose reusable policies for self-adaptive cloud architectures. Architectural adaptation knowledge in the proposed pattern language is expressed as a formalised collection of interconnected-patterns. Individual patterns in the language build on each other to provide a generic and reusable solution to address the recurring adaptation problems. In future, we focus on an incremental evolution of pattern language by discovering new patterns from adaptation logs over time. Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Evolution General Terms Design, Software Architecture, Patterns, Maintenance & Evolution Keywords Cloud Computing, Self-adaptive System, Adaptation Pattern Language. 1. INTRODUCTION The research and practices on cloud computing have recently gained a significant momentum – proposing theory and innovative solutions to design, develop and deploy software systems as cloud-based services [1]. From an economic perspective, cloud computing offers organizations with a new engagement model to acquire Information and Communication Technologies (ICT) infrastructures as services for supporting their business operations. Instead of an upfront purchase of an infrastructure, the pay-per-use model offered by cloud services is considered more cost effective and flexible [2]. Despite the offered benefits, cloud-based software is expected to survive in an Open World [3, 18] which requires frequent adaptations in its structure and behavior under continuously varying requirements. Architecture-based self- adaptation [4, 5] is considered an effective solution in which software reconfigures its high-level structure and behavior evolving components and their connectors – while maintaining system execution. Research Domain: Cloud-based architectures utilize the software as a service (SaaS) model to develop systems that are elastic to frequent variations in their operational environments. In contrast to the more traditional (object-oriented and component-based) architectures [6], cloud architectures are characterized by a set of (service) elasticity requirements. According to Herbst and colleagues [7], elasticity in cloud systems is defined as “the degree to which a system is able to adapt to workload changes by provisioning and deprovisioning resources in an autonomic manner, such that at each point in time the available resources match the current demand as closely as possible”. To meet the demands for an autonomic resource provisioning and de- provisioning, elasticity is characterized by: (1) Scalability a system’s ability to robustly control the workload fluctuations corresponding to acquiring and releasing resources. (2) Cost-Time efficiency a system acquiring required resources and releasing unutilised resources in a time and cost efficient manner. In order to continuously satisfy the elasticity requirements [1, 7], a cloud architecture must frequently adapt itself. In self-adaptive clouds, an adaptation policy (e.g., elastic policy [7]) governs the evolution of architectural structure and behavior (dynamic addition or removal of services) so a cloud systems could self-adapt. The existing frameworks and processes [2, 5, 8] enable customisation and implementation of once-off and adhoc adaptation policies to address the quality requirements of adaptive architectures [18]. In this paper, we propose an approach that focus on empirical (i) discovery and (ii) specification of adaptation patterns to address frequent architectural adaptations. Research Challenge(s): Lehman’s law of continuing change [9] demands for long-living and continuously evolving architectures to prolong the productive life, economic value and operational reliability of deployed systems. To support continuing change in an automated way, the IBM autonomic framework [8] – Monitor-Analyse-Plan- Execute (MAPE) loop – embodies the topology, policy and problem determination knowledge to derive configuration plans to execute software adaptations. However, the IBM MAPE loop lacks support for reusable adaptation policies that can be extended or reused to address the frequent adaptation problems. We propose to augment the conventional MAPE loop with reuse knowledge exploiting architecture adaptation patterns – for supporting adaptation off-the-shelf corresponding to the elasticity requirements of cloud architectures. To support reusable adaptations the primary challenges include (i) a continuous empirical discovery and (ii) systematic application of architecture adaptation patterns. We identified research challenge as: 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. Request permissions from [email protected]. WICSA '14, April 07 - 11 2014, Sydney, NSW, Australia. Copyright 2010 ACM 1-58113-000-0/00/0010 …$15.00. http://dx.doi.org/10.1145/2578128.2578232
Transcript
Page 1: [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)] Proceedings of the First International Conference on Dependable and Secure Cloud Computing

Towards a Pattern Language for Self-Adaptation of Cloud- Based Architectures

Aakash Ahmad1, Muhammad Ali Babar

2, 1

1IT University of Copenhagen, Denmark

2University of Adelaide, Australia

1 [email protected],

2 [email protected]

ABSTRACT

Cloud computing enables organisations to deploy their software systems

over a pool of available services – exploiting pay-per-use models –

rather than upfront purchase of an overprovisioned infrastructure. In an

architectural context for cloud systems that demand elasticity in terms

of service availability, reliability, and efficiency, there is a need to

capitalise on the ‘build-once, use-often’ solutions that support reuse-

driven self-adaptations of cloud-based architectures. We support the

composition and application of a pattern language that exploits

adaptation patterns and their relations to support ‘adaptation-off-the-

shelf’ for cloud-based software architectures. We unify the concepts of

software repository mining and software evolution to support the

composition and application of an adaptation pattern language. First, we

exploit the software repository mining concepts by investigating

adaptation logs to empirically discover architecture adaptation patterns

and their relations. Second, we utilise the software evolution techniques

for self-adaptation of cloud architectures guided by a systematic

selection and application of adaptation patterns. In the context of the

IBM’S MAPE-K model for self-adaptation, we propose reusable

policies for self-adaptive cloud architectures. Architectural adaptation

knowledge in the proposed pattern language is expressed as a

formalised collection of interconnected-patterns. Individual patterns in

the language build on each other to provide a generic and reusable

solution to address the recurring adaptation problems. In future, we

focus on an incremental evolution of pattern language by discovering

new patterns from adaptation logs over time.

Categories and Subject Descriptors

D.2.11 [Software Engineering]: Software Evolution

General Terms

Design, Software Architecture, Patterns, Maintenance & Evolution

Keywords

Cloud Computing, Self-adaptive System, Adaptation Pattern Language.

1. INTRODUCTION

The research and practices on cloud computing have recently gained a

significant momentum – proposing theory and innovative solutions to

design, develop and deploy software systems as cloud-based services

[1]. From an economic perspective, cloud computing offers

organizations with a new engagement model to acquire Information and

Communication Technologies (ICT) infrastructures as services for

supporting their business operations. Instead of an upfront purchase of

an infrastructure, the pay-per-use model offered by cloud services is

considered more cost effective and flexible [2]. Despite the offered

benefits, cloud-based software is expected to survive in an Open World

[3, 18] which requires frequent adaptations in its structure and behavior

under continuously varying requirements. Architecture-based self-

adaptation [4, 5] is considered an effective solution in which software

reconfigures its high-level structure and behavior – evolving

components and their connectors – while maintaining system execution.

Research Domain: Cloud-based architectures utilize the software as a

service (SaaS) model to develop systems that are elastic to frequent

variations in their operational environments. In contrast to the more

traditional (object-oriented and component-based) architectures [6],

cloud architectures are characterized by a set of (service) elasticity

requirements. According to Herbst and colleagues [7], elasticity in

cloud systems is defined as “the degree to which a system is able to

adapt to workload changes by provisioning and deprovisioning

resources in an autonomic manner, such that at each point in time the

available resources match the current demand as closely as possible”.

To meet the demands for an autonomic resource provisioning and de-

provisioning, elasticity is characterized by:

(1) Scalability a system’s ability to robustly control the workload fluctuations corresponding to acquiring and releasing resources.

(2) Cost-Time efficiency a system acquiring required resources and releasing unutilised resources in a time and cost efficient manner.

In order to continuously satisfy the elasticity requirements [1, 7], a

cloud architecture must frequently adapt itself. In self-adaptive clouds,

an adaptation policy (e.g., elastic policy [7]) governs the evolution of

architectural structure and behavior (dynamic addition or removal of

services) so a cloud systems could self-adapt. The existing frameworks

and processes [2, 5, 8] enable customisation and implementation of

once-off and adhoc adaptation policies to address the quality

requirements of adaptive architectures [18]. In this paper, we propose an

approach that focus on empirical (i) discovery and (ii) specification of

adaptation patterns to address frequent architectural adaptations.

Research Challenge(s): Lehman’s law of continuing change [9]

demands for long-living and continuously evolving architectures to

prolong the productive life, economic value and operational reliability

of deployed systems. To support continuing change in an automated

way, the IBM autonomic framework [8] – Monitor-Analyse-Plan-

Execute (MAPE) loop – embodies the topology, policy and problem

determination knowledge to derive configuration plans to execute

software adaptations. However, the IBM MAPE loop lacks support for

reusable adaptation policies that can be extended or reused to address

the frequent adaptation problems. We propose to augment the

conventional MAPE loop with reuse knowledge – exploiting

architecture adaptation patterns – for supporting adaptation off-the-shelf

corresponding to the elasticity requirements of cloud architectures. To

support reusable adaptations the primary challenges include (i) a

continuous empirical discovery and (ii) systematic application of architecture adaptation patterns. We identified research challenge as:

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. Request permissions from [email protected].

WICSA '14, April 07 - 11 2014, Sydney, NSW, Australia.

Copyright 2010 ACM 1-58113-000-0/00/0010 …$15.00.

http://dx.doi.org/10.1145/2578128.2578232

Page 2: [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)] Proceedings of the First International Conference on Dependable and Secure Cloud Computing

How to continuously discover and utilise adaptation knowledge that

executes reusable adaptation policies to tackle the frequently varying (elasticity) requirements in cloud architectures?

Solution Overview: In the proposed solution, reusable adaptation

knowledge is expressed as a formalized collection of interconnected

adaptation patterns that are empirically discovered. An ‘adaptation

pattern’ is defined as a generic, first class abstraction to support

potentially reusable architectural adaptation plans. We unify the

concepts of software repository mining and software evolution to

support the composition and application of an adaptation pattern

language. First as a design-time activity, we exploit the software

repository mining concepts to investigate the adaptation logs [12] to

empirically discover architecture adaptation patterns and their relations.

An adaptation log represents a collection of adaptive changes that are

captured in the log by analyzing architectural evolution over time. We

further discuss the composition of an adaptation pattern language in

terms of language vocabulary, grammar, and sequencing (also pattern

relations) in Section 4. Second as a runtime activity, we utilize the

software evolution techniques for self-adaptation of cloud architectures

guided by a collection of adaptation patterns. We further discuss the

application of pattern language with a systematic selection and

application of patterns (also pattern-based adaptation policies) in

Section 5. In software engineering research, the concept of pattern

language is borrowed from the theory of natural languages and the

architecting experience of Christopher Alexander [15]. The contribution

of this research lies with:

- Adaptation patterns as an empirically discovered knowledge that can

be reused to enhance efficiency of the architecture adaptation process.

- A continuous acquisition of architecture adaptation knowledge, i.e.,

discovering adaptation patterns and integrating them in a pattern

language to support reuse-driven self-adaptation of cloud architectures.

The rest of this paper is organized as follows. We explain the

architecture adaptation patterns in Section 2. We present the challenges

and proposed solution in Section 3. In Section 4, we discuss the

composition of the pattern language. In Section 5, we discuss language

application to self-adapt cloud architectures. Related research is

presented in Section 6. Conclusions and future research in Section 7.

2. ARCHITECTURE ADAPTATION PATTERNS

In this section, we explain the pattern meta-model (Section 2.1), that

provides a foundation for pattern discovery and pattern application

discussed in subsequent sections. We discuss the role of adaptation logs

as a source of adaptation pattern discovery (Section 2.2). We exemplify

adaptation pattern and also distinguish between a pattern, pattern

instance and pattern variants (Section 2.3).

2.1 A Meta-model of Adaptation Patterns

In Figure 1, the meta-model for pattern-based architecture adaptation

provides the structural composition of a pattern and the relationships

between pattern elements. For example, the relation among the elements

is expressed as: Adaptation Operators ← Adaptation Pattern,

an adaptation pattern is composed of adaptation operators. The pattern

meta-model allows a formal specification of the pattern language

vocabulary and grammar (in Section 3).

1. Specifying Architecture Model (ARCH) during the evolution

process, the first step is to specify the architecture model that is

subject to dynamic adaptation under frequently varying requirements.

The architecture model refers to the architectural elements to which a

pattern can be applied during architectural adaptation. We represent

the architecture model as a topological configurations (CFG) based

on a set of service components (CMP) as the computational entities,

linked through connectors (CON) [3]. Furthermore, service

components are composed of component interfaces (INF), while

connectors are composed of endpoints (EPT) to bind component

interfaces. The architectural description is based on the service

component architecture (SCA) specifications1 that models

architectural components that expose one or more services in a

service-driven architecture (SaaS model). To enable service elasticity

the SaaS must support a continuous composition and decomposition

of components to satisfy operational reliability of architectures.

Figure 1. A Meta-model for Adaptation Pattern Composition

2. Specifying Adaptation Operators (OPR) the adaptation

operators represent the architectural changes that are fundamental to

operationalizing architectural evolution and adaptation. We specify a

set of atomic and composite operations enabling the architectural

adaptation by adding (ADD), removing (REM), and modifying

(MOD) elements in the architecture model. Adaptation operators

enable the execution of an adaptation plan on architecture model [4,

5]. The architectural composition is preserved with:

– Atomic Change Operations: these enable fundamental changes in

terms of adding, removing, or modifying the service component

interfaces (INF) and connector endpoints (EPT). For example,

addition of a new interface I in an existing component C is expressed

as follows ( represents type of element): Add (I INF, C CMP).

– Composite Change Operations: these are sequential collections of

atomic change operations, combined to enable composite

architectural changes. These enable adding, removing, or modifying

architectural configurations (CFG) with service components (CMP)

containing interfaces, connectors (CON) containing endpoints (for

component interface binding). The addition of a new component C

with an interface I in a configuration G is specified as follows, where

represents operational sequence.

Add (C CMP, G CFG) Add (I INF, C CMP)

We propose that the adaptation operators are primitive changes [5, 8]

that are composed to enable pattern-based changes [10, 11] to enhance

reusability of architectural adaptations. Patterns abstract the addition,

removal, and modification of components and connectors to enable the

composition, decomposition, and replacement of architecture elements.

3. Specifying Constraints on Adaptation Operations (CNS) the

constraints refer to a set of pattern-specific conditions in terms of pre-

conditions (PRE - the conditions before application of a pattern) and

post-conditions (POST – the conditions after application of a pattern) to

ensure the consistency of pattern-based adaptations. In addition, the

invariants (INV – the conditions satisfied during application of a

pattern) ensure structural integrity of individual architecture elements

during the execution of adaptation patterns. During addition of a

component C, the preconditions ensure that a component C does not

1 Service Component Architecture (SCA) http://oasis-opencsa.org/sca

Page 3: [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)] Proceedings of the First International Conference on Dependable and Secure Cloud Computing

exist in a configuration G, and the post-conditions ensure that a

component C with interface I has been added in a configuration G.

4. Specifying the Adaptation Patterns (PAT) an adaptation pattern

defines a first-class abstraction that can be operationalized and

parameterized to support potentially reusable architectural change

execution (adaptation policies) expressed as, PAT<name, intent>:

PRE[OPR(arch ARCH)] → POST[arch′ ARCH]

A pattern has a name and an intent that represents a recurring,

constrained (CNS) composition of change operationalization (OPR) on

architecture elements (aem ARCH) - in Figure 1.

5. A Collection of Architecture Adaptation Patterns (COL) it

provides repository infrastructure that facilitates an automated storage

(in: once-off specification) and retrieval (out: multiple instantiation) of

discovered adaptation patterns. The collection also supports a logical

grouping of related patterns based on types of architectural adaptation

(composition, decomposition, replacement of component etc.).

2.2 Adaptation Log as a Source of Pattern Discovery We focus on a continuous empirical discovery of adaptation patterns by

investigating architecture adaptation logs [12] that provide a history of

adaptive changes. An Architecture Adaptation Log (AAL) refers to a

recorded collection of adaptive change instances (CI) that is expressed

as: AAL =<CI1, CI2,…,CIN>, where CI1 to CIN represent a sequential

collection of adaptive change instances.

Data in Adaptation Logs: currently, the adaptation log contains a

sequential collection of change instances for (i) a dynamic adaptive

instant messenger (IM) and (ii) an auction management system (AMS)

case studies providing a change repository to continuously discover

recurring changes. We propose to formalize change instances in AAL as

an attributed graph (AG) [16] as tuple GAAL = <N, E, A[N, E]>, N : Node

represents an individual change instance; E : Edge maintains change

sequencing among a node collection while A[N, E]: Attributes on nodes

and edges express the intent, scope and impact for change instances

explicitly. This allows us to exploit sub-graph mining – a formalized

knowledge discovery technique to identify the frequent sequences (i.e.,

recurring sub-graphs in GAAL) as potential adaptation patterns.

2.3 Pattern, Pattern Instance and Pattern Variant After presenting the pattern meta-model and pattern discovery source,

we exemplify the adaptation patterns and also provide a distinction

between a pattern, pattern instance and its variant in Figure 2.

Figure 2. Adaptation Pattern, Pattern Instance and Pattern Variant

A. Adaptation Pattern represents a generic and repeatable solution to

recurring architectural adaptation problems. In contrast to primitive

changes on architecture model (cf. Section 2.1 Adaptation Operators),

an adaptation pattern promotes a solutions that can be (a) identified as

recurrent, can be (b) specified once and (c) instantiated multiple times

to support reuse of adaptation plans [5, 8]. Let us consider two

adaptation scenarios in Figure 2 from an adaptive Auction Management

System (AMS) case study. We abstract the details about the Service

Level Agreements (SLAs) and Quality of Service (QoS) [18] aspects

during architectural adaptations in Scenarios I and II. An example with

SLAs and QoS requirements for adaptation is presented in Section 5.

Adaptation Scenario I – In the AMS architectural configuration two

nodes (Provider: P and Bidder: B) are connected in a peer-to-peer

connection for online bidding process. However, as the number of

bidder B increases over time (B1, B2,…,Bn) the AMS architecture must

self-adapt by integrating a bidding server S that mediates the bidding

process between the providers and bidders.

Adaptation Scenario II – Once a bidder has successfully quoted for an

item he/she must pay for that item to complete the transaction. The

current architectural configuration only accepts a bank transfer mode of

payment. In the reconfigured architecture, there is a need to integrate

the Payment Type component so a bidder could select among

DebitPayment or CreditPayment methods.

Adaptation Pattern – Service Mediation

In both the scenarios above, the recurring adaptation problem is the

introduction of a new service that mediates between two or more

directly connected services. We propose the Service Mediation pattern

presented in a pattern template (Table 1) as a repeatable solution to

address the scenarios above. We discovered Service Mediation pattern

with a manual analysis of changes in an adaptation log. In future we aim

to (semi-) automate the pattern discovery process (as in Section 4).

B. Pattern Instance represents a concrete representation of the pattern.

As presented in Figure 2, the instance of Service Mediation pattern

represents the interposition of a mediator service component BidServer: S among the directly connected BidClient: B and BidProvider: P.

C. Pattern Variant represents a possible variation of the

implementation of the adaptation pattern. In Figure 2, the pattern variant

represents the variation of the Service Mediation pattern. It integrates

two mediator components CreditPayment: T and DebitPayment: D.

Pattern Name and Intent Service Mediation ([SM] <S1, SM, S2>)

Intent – To interpose a mediator service component (SM) among two or more directly connected components (S1, S2)

Pattern Constraints, Operators and Impact

Constraints – conditions before, during and after the change.

– Preconditions S1 and S2 must be directly connected.

– Invariants S1 and S2 must be disconnected.

– Post-conditions S1 and S2 must connected with SM.

Change Operators – to apply architecture restructuring.

– Add a Component SM

– Remove a Connector X1 (S1, S2) (more connectors may exist, see variant)

– Add a Connector X2 (S1, SM)

– Add a Connector X3 (SM, S2)

Impact on Architecture Models – the affected architecture model.

Table 1. A Template-based Specification of Service Mediation Pattern

3. CHALLENGES AND PROPOSED SOLUTION

Considering the architectural challenges [4, 5] for self-adaptive

software and elasticity requirements for cloud-based systems [7, 18],

the existing solutions support reusable infrastructure [5], adaptation

strategies [10] and adaptation knowledge [8] for architecture evolution.

Page 4: [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)] Proceedings of the First International Conference on Dependable and Secure Cloud Computing

Figure 3. Layered Overview of Solution a) Pattern Language Composition and b) Pattern Language Application

In contrast to these existing solution, we propose the adaptation patterns

approach to address the recurring architectural changes [14] under

evolving requirements. We outline the research challenges and provide

solution overview that addresses these challenges by enabling the

composition and application of an adaptation pattern language

illustrated in Figure 3.

Challenge 1 – Discovering Reusable Adaptation Knowledge:

Addressing frequent dynamic adaptations, a critical challenge is to

acquire an explicit adaptation knowledge that enables an anticipative

change management while maintaining a system’s execution (reliability,

correctness, minimal disruptions etc.) [4]. The questions then arises,

what exactly is reusable adaptation knowledge? and how to derive and

express it?

Pattern Language Composition: In the proposed solution illustrated in

Figure ,3 we utilise the software repository mining techniques to

empirically discover an explicit reusable knowledge as the adaptation

pattern language that represents a formalised collection of adaptation

patterns (cf. Section 2). In contrast to the pattern invention in the

SASSY framework [11], we investigate architecture adaptation logs

[12] to empirically discover a classified composition of change patterns

and possible variants (i.e; vocabulary) as in Section 2.2. The pattern

model governs the structural composition and semantic relationships

among pattern elements (i.e., grammar) as in Section 2.1. The last step

involves creating pattern relations to operationalise adaptation

sequencing expressed as a pattern language – fostering pattern

sequences to formalise a generic problem-solution view.

Challenge 2 – Enabling Reuse-Driven Adaptation Plans: In self-

adaptive software, an adaptation plan refers to a systematic mapping

between the problem-solution views and to the derivation of

implementation mechanism(s) to address evolution in an autonomic

way [3, 5, 8]. As opposed to an ad-hoc, one-off step, the challenge is to

apply reusable adaptation plans to address recurring evolution [10]. We

propose to augment the conventional MAPE loop [8] with an explicit

knowledge about architectural adaptation that support adaptation off-

the-shelf corresponding to the elasticity requirements of cloud

architectures [1, 2].

Pattern Language Application: In Figure 3, we utilise the software

evolution techniques as a runtime activity to analyse and execute

recurring adaptation scenarios (cf. section 2.2). In a running

architecture, we continuously analyse the evolving adaptation goals in

terms of changing requirements (adaptation properties) and domain

assumptions for adaptation scenarios. This enables selection of the

appropriate pattern sequences to derive the adaptation plan based on

adaptation scenarios. The pattern language provides a method of

systematic reuse based on pattern collection that comprises the

knowledge-base for future reuse. The proposed pattern language

evolves by incorporating newly discovered patterns from adaptation

logs over time as in Figure 3.

4. PATTERN LANGUAGE COMPOSITION The adaptive changes are captured in an adaptation log [12] (cf.

Section 2.2) by analyzing architectural changes at runtime. In contrast,

the composition of pattern language (cf. Figure 3) is a design-time

activity that aims at an empirical analysis of adaptation logs (cf. Section

2) to discover adaptation patterns and their relations. We model the data

from adaptation logs as a graph and exploit the sub-graph mining

techniques to discover recurring changes as adaptation patterns. In

software engineering research, the concept of pattern language is

borrowed from theory of natural languages and the architecting

experience (buildings) by Christopher Alexander [15]. As illustrated in

Figure 3, the adaptation pattern language (APL) is composed of

language vocabulary, language grammar and language sequencing

expressed as:

[

{ }

{ } ]

The language is composed of (i) discovered patterns and their variants

(1. vocabulary: ) along with a (ii) set of rules to govern the

structure of relations among pattern elements (2. grammar: ) to

create a (iii) sequence-of-patterns (3. sequencing: ) in Figure 3.

4.1 Mining Patterns for Language Vocabulary

The language vocabulary (VAPL) is represented with the discovered

adaptation pattern (PAT) instances and their possible variants (VAR)

expressed as (1), where represents a composition operator. To derive

vocabulary, we rely on a continuous empirical discovery of adaptation

patterns by investigating architecture adaptation logs [12] as a history of

sequential changes. In Section 2, we have explained the concept of

adaptation patterns along with pattern instances and pattern variants that

represent pattern language vocabulary as illustrated in Figure 3. We

modeled the adaptive changes from logs as a graph with graph nodes

representing a change instance and graph edge representing a relation

between two consecutive change instances. Modeling the log data as a

graph allows us to exploit the sub-graph mining techniques to discover

recurring sub-graphs as frequent adaptation patterns.

4.2 Formalising Pattern Language Grammar

The language grammar (GAPL) is represented as structural composition

and semantic relationships among elements in a pattern model (cf.

Page 5: [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)] Proceedings of the First International Conference on Dependable and Secure Cloud Computing

Section 2). We exploit attributed graphs [16] with typed instances

formalizing the language grammar as in Listing 1. Graph-based

modeling for language grammar is beneficial for visualizing pattern

composition and relations to abstract a complex pattern hierarchy to

facilitate analyzing pattern structure to evaluate possible consequences

and alternatives. In addition, it enables establishing a (graph) network of

patterns to define semantic relationships among patterns that can be

selected and applied in an incremental fashion (Line 02 - 14).

Listing 1. Pattern Language Grammar with Graph Modeling Language

Nodes – Pattern Composition in Listing 1 is expressed as CLS that

represents a classification of patterns (categorizing addition, removal,

modification etc. types of change impact). OPR represents

operationalizing changes. CNS represents a set of constraints as pre-

and post-conditions to be preserved during pattern-based change.

ARCH represents the architecture model to which a pattern is applied.

VAR represents the possible variation of a pattern instance. An

Adaptation Pattern PAT is expressed as a constrained composition of change operators on an architecture model (Line 03 - 07).

Edges – Semantic Relations enable compositional semantics with a

possible relation among a pattern and operators defined as: OPR ← PAT, pattern is a composition of operations (Line 09 - 13).

4.3 Pattern Language Sequences

The sequence-of-patterns represents a collection of interconnected

patterns in the language (3), where is a language sequencing

operation. The pattern selection problem in pattern language is

addressed with a (semi-) formal mapping between the problem-solution

views by employing the Question-Option-Criteria (QOC) methodology

[17]. The mapping of QOC criteria with pattern selection is provided in

Table 2. We further explain the QOC method for pattern selection in

Section 5. QOC Method Pattern Selection Process Description

Question Adaptation Scenario Questions refer to an adaptation scenario

Option Adaptation Pattern(s) Options provide the available patterns, while selection depends

Criteria Pattern Impact Criteria evaluates the impacts and consequences of a pattern on architecture.

Table 2. Overview of the Mapping for QOC and Pattern Selection

5. PATTERN LANGUAGE APPLICATION

After language composition, we now discuss the applicability of the

proposed pattern language as a three step process for self-adaptation of

the running architecture of an auction management system (AMS).

AMS represents a distributed (Client: Bidders, Server: Auction Providers) architecture that provides loosely coupled configurations

among service components (bidders, auction provider) and their

interconnections (bidding requests). The adaptation process comprises

of (i) a continuous analysis of adaptation scenarios in running

architecture, (ii) deriving a pattern-driven reusable adaptation plan

(selecting adaptation patterns) for (iii) dynamic adaptation in the

running architecture [5, 8] as in Figure 3. Self-adaptation is exploited to

enforce service level agreements (SLAs), such as those on performance,

availability and confidentiality of the bidding process while maintaining

the Quality of Service (QoS, i.e. adaptation goals) that change

frequently with system (re-) configurations.

5.1 Adaptation Scenario – Integration of an

Auctioning Protocol in AMS Architecture In the functional context of the AMS case study, a dynamic aspect in

this scenario requires that new Bidders (B) must register with the

AuctionProvider (A) in the running AMS, presented in Figure 4. A

performance SLA has been negotiated in terms of three throughput

service level objectives (SLOs) to guarantee three different levels of

system capacity in AMS. A normal capacity is required for a normal

load; a medium capacity is required when special auctions are placed on

AMS while a high capacity guarantees to deal with the peak load.

In step 1, Figure 4 we continuously analyse the adaptation strategy that

if the number of registered bidders (Bn) increases beyond a certain

threshold (X) such that Bn X the current architecture of AMS cannot guarantee the expected QoS and needs more capacity to deal with the

new bidders. It sends a change request to derive an adaptation plan to

integrate an Auction Protocol (P) to support load balancing among

directly connected Bidders (B1, B2) and Auction Provider (A). The

change request in expressed as an ECA formalism [5]: E (Event):

Bidder registration load; C (Condition): RT (Response Time)>= SLOi; A

(Action): ADD {Bidder, Auction Protocol: P, AuctionProvider} to mediate bidder registration.

Figure 4. Pattern-Driven Reusable Adaptation Plan

5.2 Execution of Reusable Adaptation Plan In contrast to an adhoc addition or removal of individual components

and connectors in AMS, evolution reuse knowledge (expressed as

patterns) allows us to exploit the integration and replacement patterns

successively applied for integration of an auction protocol. Pattern

selection and sequencing from pattern language is guided by QOC

methodology to evaluate consequences, forces and possible pattern

alternatives [10] (cf. Table 2). It allows a declarative composition of

individual changes (Integrate, Replace) that can be operationalized and

parameterized while preserving a set of architectural constraints [CNS],

expressed as follows.

Event: Add<Component : P>

Condition: if RT SLOi

Action(s): Integrate(AuctionProtocol : P, [CNS]) follows

Replace(BidderRequests : b1, [CNS])

- Dependent Patterns – enables change sequencing expressed as PATm → PATn, e.g: PATm{Integrate(P, <B1, A, B2)

PATn{Replace(P, b1, b3)} to add an auction protocol (P) with an

appropriate processing capacity.

01: <graphml>

02: <graph id = “PAT_N” edgedefault = “directed”>

03: <node id = “CLS”> …</node>

04: <node id = “PAT”> …</node>

05: <node id = “OPR”> …</node>

06: <node id = “CNS”> …</node>

07: <node id = “ARCH”>… </node>

08: <node id = “VAR”> …</node>

09: <edge id = “Classifies” source=”CLS” target=”PAT”/>

10: <edge id = “ComposedOf” source=”PAT” target=”OPR”/>

11: <edge id = “ConstrainedBy” source=”PAT” target=”CNS”/>

12: <edge id = “Evolves” source=”PAT” target=”ARCH”/>

13: <edge id = “HasVariation” source=”PAT” target=”VAR”/>

14: </graph>

15: </graphml>

Page 6: [ACM Press the First International Conference - Sydney, Australia (2014.04.07-2014.04.07)] Proceedings of the First International Conference on Dependable and Secure Cloud Computing

- Commutative Patterns – enable changes to be performed in parallel

expressed as: PATm → PATn to the current architecture. Having

prepared a pattern-driven adaptation plan, plan execution in Figure 4

(Step 3) applies reusable operationalization in terms of pattern

sequences to enable architectural adaptation. In the context of MAPE

loop [7], system-level monitoring is outside the scope of this research.

6. RELATED RESEARCH

Our systematic comparison [14] between (i) adaptive evolution and (ii)

runtime change – comparing the Means, Time and Stage of evolution –

reflects on an increasing demand for generic, reusable plans for

adaptive (service) architectures [5, 6, 18]. We review the state-of-

research in terms of the reference models [8] and frameworks [11] that

support architectural adaptations to justify the proposed contributions.

6.1 Needs for Reuse in Architecture-based Self-Adaptation

An interesting observation at the intersection of adaptive evolution and

self-adaptation reflects on future implications [14] to leverage existing

processes [4] and (empirically discovered) knowledge to guide and execute adaptation strategies [5, 11] in an un-anticipated evolution.

The conventional MAPE loop [8] offers an embedded (topology, policy

and problem determination) knowledge to monitor and execute dynamic

adaptive evolution. We specifically argue about the needs to discover

and apply reusable adaptations patterns to create adaptation plans. The

proposed language, as an empirically derived sequence-of-patterns

formalizes the problem-solution view to address frequent adaptation

problems as an incremental refinement process.

6.2 Frameworks for Reuse-Driven Adaptation

The SASSY (Self-Architecting Software Systems) framework [11]

utilises a model-driven approach for run-time self-architecting of

service-driven software using adaptation patterns. In contrast to

patterns invention in SASSY, we focus on a continuous and automated

empirical discovery of patterns with a formalised collection of

interconnected patterns to support an incremental change execution.

Although, the support for reusable infrastructure and adaptation

aspects is provided in [7, 4], these solutions lacks an empirical

acquisition of evolution knowledge in guiding architecture-based self-

adaptations. We believe that, there is a need to extend the concept of

‘Evolution Shelf’ [11] beyond specification-time evolution to rely on

off-the-shelf adaptation expertise to tackle a continuous change [14].

An interesting dimension of research for self-adaptive cloud-service

architectures is the optimisation of cloud-services based on the quality

of service requirements that evolve over time [18]. In contrast to self-

optimising cloud architectures (based on QoS) requirements; our

contribution is about a continuous discovery and utilisation of

adaptation knowledge guided by reusable adaptation patterns.

7. CONCLUSIONS AND FUTURE RESEARCH In this paper, we argue about the needs for ‘built-once, use-often’

adaptation plans to systematically tackle recurring evolution in self-

adaptive (service) architectures. We claim that by investigating the

history of adaptive evolution (exploiting adaptation logs), we can

discover adaptation patterns as a generic, repeatable solution to derive

reusable adaptation plans. We discussed the role of an adaptation

pattern language as an explicit knowledge-base to support reuse-driven self-adaptation of running architectures. The contributions are:

– Enabling ‘post-mortem’ analysis of architecture adaptation histories to

discover operationalisation and patterns that can be shared and reused to

guide architecture change management.

– Language as a formalised system-of-pattern allows problem-solution

mapping to reuse generic, reusable operationalisation. The role of the

pattern language is central in promoting patterns to achieve reuse and consistency in evolution and adaptation of service architectures.

Future Research: A performant solution requires a rigorous validation;

we are specifically interested in evaluating the expressiveness – an

extensive vocabulary of possible patterns and their variants – as a

formalised grammar of pattern language. In addition, the adequacy of

the proposed pattern language determines the effectiveness in terms of

deriving reuse-driven adaptation. A prototype (Pat-Adapt) is envisaged

to automate the (i) pattern discovery and (ii) pattern application

processes. Tool support and data shall form the basis to evaluate the

extent to which the solution enables a reuse-driven dynamic adaptation.

REFERENCES

[1] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A.

Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica and M. Zaharia,

"A view of cloud computing," Communications of the ACM, vol. 53, no.

4, pp. 50-58, 2010.

[2] R. Buyya, C.S. Yeo, S. Venugopal, J. Broberg, and I. Brandic,

“Cloud Computing and Emerging IT Platforms: Vision, Hype, and

Reality for Delivering Computing as the Fifth Utility,” Future

Generation Computer Systems, vol. 25, no. 6, pp. 599-616, 2009.

[3] L. Baresi, E. Di Nitto, C. Ghezzi. Toward Open-World Software:

Issue and Challenges. IEEE Computer Society. 39(10), 36–43, 2006.

[4] J. Kramer and J. Magee. Self-Managed Systems: an Architectural

Challenge. In Future of Software Engineering, IEEE, 2007.

[5] D. Garlan, B. Schmerl, S. Cheng. Software Architecture-based Self-

adaptation. In Autonomic Computing and Networking, 2009.

[6] Nenad Medvidovic and Richard N. Taylor. A Classification and

Comparison Framework for Software Architecture Description

Languages. IEEE Transactions on Software Engineering, vol. 26, no. 1,

pages 70–93, 2000.

[7] N. R. Herbst, S. Kounev and R. Reussner, "Elasticity in Cloud

Computing: What It Is, and What It Is Not," in International

Conference on Autonomic Computing, 2013.

[8] Autonomic Computing. "An architectural blueprint for autonomic

computing." IBM White Paper (2006).

[9] M. M. Lehman. Laws of Software Evolution Revisited. In Software

Process Technology, pages 108–124. Springer, 1996.

[10] E. Truyen, W. Joosen. "Towards an Aspect-oriented Architecture

for Self-adaptive Frameworks." Proceedings of the 2008 AOSD

Workshop on Aspects, Components, and Patterns, 2008.

[11] A. Menasce, H. Gomaa, S. Malek, J. Sousa. SASSY: A Framework

for Self-Architecting Service-Oriented Systems. In IEEE Software,

28(6):78-85, 2011.

[12] A. Ahmad, P. Jamshidi, Claus Pahl. Graph-based Implicit

Knowledge Discovery form Architecture Change Logs. In 7th

International Workshop on Sharing and Reusing Architectural

Knowledge, 2012.

[13] P. Jamshidi, A. Ahmad, C.Pahl. Cloud Migration Research: A

Systematic Review. In IEEE Transactions on Cloud Computing, vol 1,

no. 1, 2013.

[14] P. Jamshidi, M. Ghafari, A. Aakash and C. Pahl. A Framework for

Classifying and Comparing Architecture-centric Software Evolution

Research. In 17th European Conference on Software Maintenance and

Reengineering, IEEE Computer Society, 2013.

[15] C. Alexander. The Origins of Pattern Pheory: The Future of the

Theory, and the Generation of a Living World. In IEEE Software, vol.

16, no. 5, pages 71–82, 1999.

[16] H. Ehrig, U. Prange, G. Taentzer. Fundamental Theory for Typed

Attributed Graph Transformation. In Graph Transformations, 2004.

[17] A. MacLean, R. Young, V. Bellotti, T. Moran: “Questions,

Options, and Criteria: Elements of a Design Rationale for user

interfaces, Human Computer Interaction, vol 6 (3&4), 1991.

[18] V. Nallur and R. Bahsoon. A Decentralized Self-Adaptation

Mechanism for Service-Based Applications in the Cloud. In IEEE

Transactions on Software Engineering, vol 39, no 5, 2013.


Recommended