an architecture description language for dynamic service...

6
DOI reference number: 10.18293/SEKE2015-217 An Architecture Description Language for Dynamic Service-Oriented Product Lines Seza Adjoyan UMR CNRS 5506 / LIRMM University of Montpellier Montpellier, FRANCE [email protected] Abdelhak Seriai UMR CNRS 5506 / LIRMM University of Montpellier Montpellier, FRANCE [email protected] Abstract- Reconciling Software Product Lines (SPL) and Service Oriented Architecture (SOA) allows modeling and implementing systems that systematically adapt their behavior in respond to surrounding context changes. Both approaches are complementary with regard to the variability and the dynamicity properties. Architecture Description Language (ADL), on the other hand, is recognized as an important element in the description and analysis of software properties. Different ADLs have been proposed in SOA or in SPL domains. Nevertheless, none of these ADLs allows describing variability and dynamicity features together in the context of service-oriented dynamic product lines. In this sense, our work attempts to describe the changing architecture of Dynamic Service-Oriented Product Lines (DSOPL). We propose an ADL that allows describing three types of information: architecture's structural elements, variability elements and system’s configuration. Furthermore, we introduce context elements on which service reconfiguration is based. Keywords—Architecture Description Language (ADL); Service- Oriented Architecture (SOA); Software Product Lines (SPL); dynamicity; variability; software architecture; Dynamic Service- Oriented Product Lines (DSOPL) I. INTRODUCTION Software Product Lines (SPL) and Service Oriented Architecture (SOA) have a common goal from a software development point of view; increase the reusability of existing assets rather than rebuilding new systems from scratch. SPL, on the one hand, allows the development of a family of products that share some common set of core assets [1], [2], [3]. Variability has always been a first concern in SPL studies [16]. According to [4], variability is the ability of a software artifact to quickly change and adapt for a specific context in a preplanned manner. SOA, on the other hand, is a special kind of software architecture, where the main architectural elements are coarse grained and loosely coupled services that are dynamically composable and inter-operable [5]. Being able to modify the architecture of a running system at such a high level of abstraction renders the system highly extensible, customizable and powerful [6]. Variability and dynamicity are core properties to develop complex adaptable software systems such as telecommunication, pervasive, crisis management, surveillance and security systems. In such systems, due to environment changes, a dynamic re-configuration should be carried out without having to re-deploy the whole system. Combining SOA and SPL constitutes the answer to this need [7]. SOA offers, through its encapsulation property and its explicit interfaces, a solution for achieving dynamic product lines. SPL offers, via variability modeling, analysis and design of changing points in service-oriented architectures. Architecture Description Language (ADL) is a formalism that allows the specification of system’s conceptual architecture [8]. It enables architects to describe and validate systems against stakeholders’ requirements from one side, and ease the development and implementation process of complex systems, from another side. It often has a graphical representation or plain text syntax. Conventional ADLs support only static architecture description [6]. Some ADLs provide special formalism for SOA to describe service dynamicity or for SPL to describe variability. Unfortunately no ADL supports the crosscutting SOA and SPL concepts. To overcome this limitation, we propose an XML-based ADL that allows describing the architecture of a Dynamic Service-Oriented Product Line (DSOPL). It describes the four following elements: (i) the structural elements of a family of software products (i.e. services and connections), (ii) an architectural variability model (i.e. variability points and alternatives), (iii) context information, in addition to (iv) an architectural configuration model (i.e. reconfiguration rules based on context and variability). We choose to use XML as a description language to facilitate understandability and analysis of the described architecture. In addition, XML-based description facilitates tool-support design and interoperability. The remainder of this paper is organized as follows: In section 2, we discuss related works regarding variability and dynamicity properties. In section 3, we characterize our proposed DSOPL-ADL’s elements and demonstrate their utility through a running example. Finally, in section 4, we summarize our contribution and provide directions for future research. II. RELATED WORK A. ADLs specifying dynamic properties A software architecture can be classified in terms of its capability of evolution into two categories: static or dynamic. A static architecture reflects the static structure of software and is completely specified at design time [6], whereas in dynamic architecture, system may evolve after its compilation [1]. In this type of architecture, in addition to specifying the

Upload: dangdan

Post on 31-Mar-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

DOI reference number: 10.18293/SEKE2015-217

An Architecture Description Language for Dynamic

Service-Oriented Product Lines

Seza Adjoyan

UMR CNRS 5506 / LIRMM

University of Montpellier

Montpellier, FRANCE

[email protected]

Abdelhak Seriai

UMR CNRS 5506 / LIRMM

University of Montpellier

Montpellier, FRANCE

[email protected]

Abstract- Reconciling Software Product Lines (SPL) and

Service Oriented Architecture (SOA) allows modeling and

implementing systems that systematically adapt their behavior in

respond to surrounding context changes. Both approaches are

complementary with regard to the variability and the dynamicity

properties. Architecture Description Language (ADL), on the

other hand, is recognized as an important element in the

description and analysis of software properties. Different ADLs

have been proposed in SOA or in SPL domains. Nevertheless,

none of these ADLs allows describing variability and dynamicity

features together in the context of service-oriented dynamic

product lines. In this sense, our work attempts to describe the

changing architecture of Dynamic Service-Oriented Product

Lines (DSOPL). We propose an ADL that allows describing three

types of information: architecture's structural elements,

variability elements and system’s configuration. Furthermore, we

introduce context elements on which service reconfiguration is

based.

Keywords—Architecture Description Language (ADL); Service-

Oriented Architecture (SOA); Software Product Lines (SPL);

dynamicity; variability; software architecture; Dynamic Service-

Oriented Product Lines (DSOPL)

I. INTRODUCTION

Software Product Lines (SPL) and Service Oriented Architecture (SOA) have a common goal from a software development point of view; increase the reusability of existing assets rather than rebuilding new systems from scratch. SPL, on the one hand, allows the development of a family of products that share some common set of core assets [1], [2], [3]. Variability has always been a first concern in SPL studies [16]. According to [4], variability is the ability of a software artifact to quickly change and adapt for a specific context in a preplanned manner. SOA, on the other hand, is a special kind of software architecture, where the main architectural elements are coarse grained and loosely coupled services that are dynamically composable and inter-operable [5]. Being able to modify the architecture of a running system at such a high level of abstraction renders the system highly extensible, customizable and powerful [6].

Variability and dynamicity are core properties to develop complex adaptable software systems such as telecommunication, pervasive, crisis management, surveillance and security systems. In such systems, due to environment changes, a dynamic re-configuration should be carried out without having to re-deploy the whole system.

Combining SOA and SPL constitutes the answer to this need [7]. SOA offers, through its encapsulation property and its explicit interfaces, a solution for achieving dynamic product lines. SPL offers, via variability modeling, analysis and design of changing points in service-oriented architectures.

Architecture Description Language (ADL) is a formalism that allows the specification of system’s conceptual architecture [8]. It enables architects to describe and validate systems against stakeholders’ requirements from one side, and ease the development and implementation process of complex systems, from another side. It often has a graphical representation or plain text syntax. Conventional ADLs support only static architecture description [6]. Some ADLs provide special formalism for SOA to describe service dynamicity or for SPL to describe variability. Unfortunately no ADL supports the crosscutting SOA and SPL concepts.

To overcome this limitation, we propose an XML-based ADL that allows describing the architecture of a Dynamic Service-Oriented Product Line (DSOPL). It describes the four following elements: (i) the structural elements of a family of software products (i.e. services and connections), (ii) an architectural variability model (i.e. variability points and alternatives), (iii) context information, in addition to (iv) an architectural configuration model (i.e. reconfiguration rules based on context and variability). We choose to use XML as a description language to facilitate understandability and analysis of the described architecture. In addition, XML-based description facilitates tool-support design and interoperability.

The remainder of this paper is organized as follows: In section 2, we discuss related works regarding variability and dynamicity properties. In section 3, we characterize our proposed DSOPL-ADL’s elements and demonstrate their utility through a running example. Finally, in section 4, we summarize our contribution and provide directions for future research.

II. RELATED WORK

A. ADLs specifying dynamic properties

A software architecture can be classified in terms of its capability of evolution into two categories: static or dynamic. A static architecture reflects the static structure of software and is completely specified at design time [6], whereas in dynamic architecture, system may evolve after its compilation [1]. In this type of architecture, in addition to specifying the

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolution of architecture at runtime may happen under several formsarchitecture (modifying connectioncomposing elements (substitution of composing elements).

dynamic software architecture.literature, only few of them support dynamic reconfigurationsuch as ACME/Plastikde{condition} do {operations}different choices at runtime. component at runtimeused componentsdynamic since third party services can be discovered and bound to service broker at

B

conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration duringagreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

representing an architecture that encompasses variability xADL architectural elements of software systemsset ofconcepts in the form of three schemas: variantsconcepts within xADL; this approach suffers from limitation between elements of different variation points.defines component. any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

lines architecture are not based on the serAin terms of services whether in a dynamic or static ADLNevertheless

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolution of architecture at runtime may happen under several formsarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used dynamic software architecture.literature, only few of them support dynamic reconfigurationsuch as ACME/Plastikdescribe a specific {condition} do {operations}different choices at runtime. component at runtimeused componentsdynamic since third party services can be discovered and bound to service broker at

B. ADLs

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration duringagreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

Frepresenting an architecture that encompasses variability xADL architectural elements of software systemsset ofconcepts in the form of three schemas: variantsconcepts within xADL; this approach suffers from limitation between elements of different variation points.defines component. any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the serApproaches in terms of services whether in a dynamic or static ADLNevertheless

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolution of architecture at runtime may happen under several forms: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used dynamic software architecture.literature, only few of them support dynamic reconfigurationsuch as ACME/Plastik

scribe a specific {condition} do {operations}different choices at runtime. component at runtimeused in componentsdynamic since third party services can be discovered and bound to service broker at

ADLs

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration during agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

Few existing approaches were corepresenting an architecture that encompasses variability xADL [architectural elements of software systemsset of concepts in the form of three schemas: variantsconcepts within xADL; this approach suffers from limitation between elements of different variation points.defines component. any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

pproaches in terms of services whether in a dynamic or static ADLNevertheless

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used dynamic software architecture.literature, only few of them support dynamic reconfigurationsuch as C2ACME/Plastik

scribe a specific {condition} do {operations}different choices at runtime. component at runtime

in operationscomponentsdynamic since third party services can be discovered and bound to service broker at

ADLs spec

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

runtime agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

ew existing approaches were corepresenting an architecture that encompasses variability

[17]architectural elements of software systems

XML schemasconcepts in the form of three schemas: variants schemas.concepts within xADL; this approach suffers from limitation between elements of different variation points.defines “switchescomponent. any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

pproaches in terms of services whether in a dynamic or static ADLNevertheless

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used dynamic software architecture.literature, only few of them support dynamic reconfiguration

C2 [ACME/Plastik

scribe a specific {condition} do {operations}different choices at runtime. component at runtime

operationscomponents. In dynamic since third party services can be discovered and bound to service broker at

pec

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

runtime agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

ew existing approaches were corepresenting an architecture that encompasses variability

] is an ADL for modeling runtime and designarchitectural elements of software systems

XML schemasconcepts in the form of three schemas:

schemas.concepts within xADL; this approach suffers from

of expressingbetween elements of different variation points.

switchescomponent. The main limitation in Koala is its static nature; any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

pproaches such in terms of services whether in a dynamic or static ADLNevertheless, these ADLs

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used dynamic software architecture.literature, only few of them support dynamic reconfiguration

[9], DarwinACME/Plastik [13

scribe a specific {condition} do {operations}different choices at runtime. component at runtime

operationsIn π

dynamic since third party services can be discovered and bound to service broker at

pecifying

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

runtime agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

XML schemasconcepts in the form of three schemas:

schemas.concepts within xADL; this approach suffers from

of expressingbetween elements of different variation points.

switchesThe main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

such in terms of services whether in a dynamic or static ADL

these ADLs

system in terms of components, connectors and configurations, it should also specify how these components and connectors are evolvevolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used dynamic software architecture.literature, only few of them support dynamic reconfiguration

, Darwin13]

scribe a specific configuration{condition} do {operations}different choices at runtime. component at runtime

operations π-ADL

dynamic since third party services can be discovered and bound to service broker at

fying variability

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

runtime [15agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

XML schemasconcepts in the form of three schemas:

schemas. Concerning the integration of product lines concepts within xADL; this approach suffers from

of expressingbetween elements of different variation points.

switches” in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

such as in terms of services whether in a dynamic or static ADL

these ADLs

system in terms of components, connectors and configurations, it should also specify how these components

evolvevolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

ADLs are used to describe the propedynamic software architecture.literature, only few of them support dynamic reconfiguration

, Darwin and Dynamic Wrightconfiguration

{condition} do {operations}different choices at runtime. component at runtime, detach

part ADL

dynamic since third party services can be discovered and bound to service broker at

variability

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

15]. agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

[22]

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

XML schemas. xADL 2.0 integrates product lines concepts in the form of three schemas:

Concerning the integration of product lines concepts within xADL; this approach suffers from

of expressingbetween elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

as [19in terms of services whether in a dynamic or static ADL

these ADLs

system in terms of components, connectors and configurations, it should also specify how these components

evolved or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

to describe the propedynamic software architecture.literature, only few of them support dynamic reconfiguration

, Darwin and Dynamic Wright

configuration{condition} do {operations}different choices at runtime.

detachpart

ADL [11dynamic since third party services can be discovered and bound to service broker at runtime

variability

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

[22].

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

. xADL 2.0 integrates product lines concepts in the form of three schemas:

Concerning the integration of product lines concepts within xADL; this approach suffers from

of expressing constraints (i.e. between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable for dynamic architectures.

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

19], [in terms of services whether in a dynamic or static ADL

these ADLs are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

to describe the propedynamic software architecture.literature, only few of them support dynamic reconfiguration

[10and Dynamic Wright

configuration{condition} do {operations}” different choices at runtime.

detach part to respectively unlink and lin

11], dynamic since third party services can be discovered and

runtime

variability

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

. xADL 2.0 integrates product lines concepts in the form of three schemas:

Concerning the integration of product lines concepts within xADL; this approach suffers from

constraints (i.e. between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

], [20]in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connectioncomposing elements (substitution of composing elements).

to describe the propedynamic software architecture. Amongliterature, only few of them support dynamic reconfiguration

10], πand Dynamic Wright

configuration ” is used

different choices at runtime. To replace and

to respectively unlink and lin the architecture

dynamic since third party services can be discovered and runtime

properties

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

. xADL 2.0 integrates product lines concepts in the form of three schemas:

Concerning the integration of product lines concepts within xADL; this approach suffers from

constraints (i.e. between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

] describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurarchitecture (modifying connections), composing elements (substitution of composing elements).

to describe the propeAmong

literature, only few of them support dynamic reconfiguration, π-ADL

and Dynamic Wright in [

is used To replace

and attachmentsto respectively unlink and lin

the architecturedynamic since third party services can be discovered and

.

properties

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

. xADL 2.0 integrates product lines concepts in the form of three schemas:

Concerning the integration of product lines concepts within xADL; this approach suffers from

constraints (i.e. between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigur), or

composing elements (substitution of composing elements).

to describe the propeAmong existing ADLs in the

literature, only few of them support dynamic reconfigurationADL

and Dynamic Wright[13]

is used To replace

attachmentsto respectively unlink and lin

the architecturedynamic since third party services can be discovered and

properties

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common acmanaging the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems

. xADL 2.0 integrates product lines concepts in the form of three schemas: versions

Concerning the integration of product lines concepts within xADL; this approach suffers from

constraints (i.e. between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product lines architecture are not based on the ser

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfiguror upgrading existing

composing elements (substitution of composing elements).

to describe the propeexisting ADLs in the

literature, only few of them support dynamic reconfigurationADL [11

and Dynamic Wright ], the expression “

is used to toggle between To replace

attachmentsto respectively unlink and lin

the architecturedynamic since third party services can be discovered and

properties

Dynamic Software Product Line conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which provides the following common activities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ew existing approaches were corepresenting an architecture that encompasses variability

is an ADL for modeling runtime and designarchitectural elements of software systems.

. xADL 2.0 integrates product lines versions

Concerning the integration of product lines concepts within xADL; this approach suffers from

constraints (i.e. requires, excludes) between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product lines architecture are not based on the service

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurupgrading existing

composing elements (substitution of composing elements).

to describe the properties of static or existing ADLs in the

literature, only few of them support dynamic reconfiguration11], Rapide [14

, the expression “to toggle between

To replace an instance of attachments

to respectively unlink and linthe architecture

dynamic since third party services can be discovered and

Dynamic Software Product Line (DSPLconventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which

tivities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ew existing approaches were concerned about representing an architecture that encompasses variability

is an ADL for modeling runtime and design It is defined as a

. xADL 2.0 integrates product lines versions

Concerning the integration of product lines concepts within xADL; this approach suffers from

requires, excludes) between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product vice-

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurupgrading existing

composing elements (substitution of composing elements).

ties of static or existing ADLs in the

literature, only few of them support dynamic reconfiguration, Rapide

14]. I, the expression “to toggle between

an instance of statements are

to respectively unlink and linthe architecture is considered

dynamic since third party services can be discovered and

DSPLconventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which

tivities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ncerned about representing an architecture that encompasses variability

is an ADL for modeling runtime and designis defined as a

. xADL 2.0 integrates product lines versions, options

Concerning the integration of product lines concepts within xADL; this approach suffers from

requires, excludes) between elements of different variation points.

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product -oriented style.

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime.evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurupgrading existing

composing elements (substitution of composing elements).

ties of static or existing ADLs in the

literature, only few of them support dynamic reconfiguration, Rapide

In order to , the expression “to toggle between

an instance of statements are

to respectively unlink and linis considered

dynamic since third party services can be discovered and

DSPL) conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which

tivities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ncerned about representing an architecture that encompasses variability

is an ADL for modeling runtime and designis defined as a

. xADL 2.0 integrates product lines options

Concerning the integration of product lines concepts within xADL; this approach suffers from

requires, excludes) Koala [

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtimwill require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product oriented style.

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

ed or reconfigured at runtime. evolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfigurupgrading existing

composing elements (substitution of composing elements).

ties of static or existing ADLs in the

literature, only few of them support dynamic reconfiguration, Rapide

n order to , the expression “to toggle between

an instance of statements are

to respectively unlink and linis considered

dynamic since third party services can be discovered and

extends conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which

tivities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ncerned about representing an architecture that encompasses variability

is an ADL for modeling runtime and design-is defined as a

. xADL 2.0 integrates product lines options, and

Concerning the integration of product lines concepts within xADL; this approach suffers from

requires, excludes) Koala [

in order to dynamically bind the selected The main limitation in Koala is its static nature;

any deployed configuration cannot be changed at runtime and will require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product oriented style.

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

Thievolution of architecture at runtime may happen under several

: adding/ removing composing elements, reconfiguringupgrading existing

composing elements (substitution of composing elements).

ties of static or existing ADLs in the

literature, only few of them support dynamic reconfiguration [12

n order to , the expression “on to toggle between

an instance of statements are

to respectively unlink and linis considered

dynamic since third party services can be discovered and

extends conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which

tivities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ncerned about representing an architecture that encompasses variability [16

-time is defined as a

. xADL 2.0 integrates product lines , and

Concerning the integration of product lines concepts within xADL; this approach suffers from the

requires, excludes) Koala [18

in order to dynamically bind the selected The main limitation in Koala is its static nature;

e and will require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product oriented style.

describe system’s architecture in terms of services whether in a dynamic or static ADL

are not able to describe variants.

system in terms of components, connectors and configurations, it should also specify how these components

This evolution of architecture at runtime may happen under several

ing upgrading existing

ties of static or existing ADLs in the

literature, only few of them support dynamic reconfiguration 12],

n order to on

to toggle between an instance of

statements are to respectively unlink and link

is considered dynamic since third party services can be discovered and

extends conventional SPL perspective by delaying the binding time of product’s composing elements (i.e. features) to runtime. It produces autonomous and reconfigurable products that are able to reconfigure themselves to select a valid configuration

Even though there is no concrete agreement of what aspects a dynamic SPL should exactly treat, most approaches agree that the main characteristic of any dynamic SPL framework is the runtime variability, which

tivities at runtime: managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking

ncerned about 16]. time

is defined as a . xADL 2.0 integrates product lines

, and Concerning the integration of product lines

the requires, excludes)

18] in order to dynamically bind the selected

The main limitation in Koala is its static nature; e and

will require application recompilation, thus it is not suitable

Otherwise, approaches that describe variability in product oriented style.

describe system’s architecture in terms of services whether in a dynamic or static ADL.

A

exemplify concepts related to our proposed approachexample is aboutfour actorsserviceretailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

B

Sarchitecture levelis structured F

1

2

3

4

III

A. I

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approachexample is aboutfour actorsserviceretailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

B. The DSOPL

In order to describe the runtime variability of a Servicearchitecture levelis structured Fig.

1. Structural abstract structural entitiesinterfaces, operations)

2. Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

3. Context description: vdescriptions are based on information about context. information specific

4. Configuration cohow to configure (generate) on structural,

III.

Illustrative

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approachexample is aboutfour actorsservicesretailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

The DSOPL

In order to describe the runtime variability of a ervice

architecture levelis structured

2:

Structural abstract structural entitiesinterfaces, operations)

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context. information specific

Configuration concrete services how to configure (generate) on structural,

Figure

D

llustrative

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approachexample is aboutfour actors

s, as mretailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

The DSOPL

In order to describe the runtime variability of a ervice-Oriented

architecture levelis structured

Structural abstract structural entitiesinterfaces, operations)

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context. information specific

Configuration ncrete services

how to configure (generate) on structural,

Figure

DYNAMIC

llustrative

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approachexample is aboutfour actors;

, as mretailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

The DSOPL

In order to describe the runtime variability of a riented

architecture levelis structured in

Structural abstract structural entitiesinterfaces, operations)

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context. information specific section

Configuration ncrete services

how to configure (generate) on structural,

Figure 1. Illustrative example:

YNAMIC

llustrative example

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approachexample is about

customer, retailer, warehouse and shipment , as modeled in

retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

The DSOPL-ADL structure

In order to describe the runtime variability of a riented

architecture level, in four sections

Structural element descriptionabstract structural entitiesinterfaces, operations)

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context. information about

section

Configuration ncrete services

how to configure (generate) on structural, variability and context elements

Illustrative example:

YNAMIC S

xample

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approachexample is about a simplified online sales scenario between

customer, retailer, warehouse and shipment odeled in

retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

ADL structure

In order to describe the runtime variability of a riented P

, we propose anfour sections

element descriptionabstract structural entitiesinterfaces, operations)

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context.

about section of

Configuration descriptionncrete services

how to configure (generate) variability and context elements

Illustrative example:

Figure

SERVICE

xample

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

odeled in retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

ADL structure

In order to describe the runtime variability of a Product

we propose anfour sections

element descriptionabstract structural entitiesinterfaces, operations)

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context.

about of the ADL.

descriptionncrete services and

how to configure (generate) variability and context elements

Illustrative example:

Figure 2

ERVICE

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

odeled in retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

ADL structure

In order to describe the runtime variability of a roduct

we propose anfour sections

element descriptionabstract structural entitiesinterfaces, operations).

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: vdescriptions are based on information about context.

about context elements isthe ADL.

descriptionand connections are

how to configure (generate) variability and context elements

Illustrative example:

2. Modular DSOPL

ERVICE O

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

odeled in Figretailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is preparthe delivery of items to the customer.

ADL structure

In order to describe the runtime variability of a roduct

we propose anfour sections, as

element descriptionabstract structural entities

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

Context description: variability and configuration descriptions are based on information about context.

context elements isthe ADL.

description: here, connections are

how to configure (generate) variability and context elements

Illustrative example:

Modular DSOPL

ORIENTED

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

Fig. retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the order. Once the order is prepared, the shipping service handles the delivery of items to the customer.

ADL structure

In order to describe the runtime variability of a Line

we propose an XMLas summarized in the

element descriptionabstract structural entities

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

ariability and configuration descriptions are based on information about context.

context elements isthe ADL.

: here, connections are

how to configure (generate) concrete architecturevariability and context elements

Illustrative example: online sales scenario architecture

Modular DSOPL

RIENTED

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

. 1. retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles the delivery of items to the customer.

In order to describe the runtime variability of a ine XMLsummarized in the

element description: defines of the system

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

ariability and configuration descriptions are based on information about context.

context elements is

: here, connections are

concrete architecturevariability and context elements

nline sales scenario architecture

Modular DSOPL

RIENTED P

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles the delivery of items to the customer.

In order to describe the runtime variability of a (D

XML-based summarized in the

: defines of the system

Variability description: here, variationand also all alternative services of each variation pointwith the constraints related to each alternative

ariability and configuration descriptions are based on information about context.

context elements is

: here, the rules used to create connections are

concrete architecturevariability and context elements

nline sales scenario architecture

Modular DSOPL-ADL

PRODUCT

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

In order to describe the runtime variability of a DSOPLbased

summarized in the

: defines of the system

Variability description: here, variation points are defined and also all alternative services of each variation pointwith the constraints related to each alternative

ariability and configuration descriptions are based on information about context.

context elements is

the rules used to create connections are specified

concrete architecturevariability and context elements

nline sales scenario architecture

ADL

RODUCT

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

In order to describe the runtime variability of a SOPL)

based ADL.summarized in the

: defines all types of of the system

points are defined and also all alternative services of each variation pointwith the constraints related to each alternative

ariability and configuration descriptions are based on information about context.

context elements is described

the rules used to create specified

concrete architecturevariability and context elements

nline sales scenario architecture

RODUCT L

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

In order to describe the runtime variability of a )

ADL.summarized in the

all types of of the system

points are defined and also all alternative services of each variation pointwith the constraints related to each alternative.

ariability and configuration descriptions are based on information about context.

described

the rules used to create specified

concrete architecturevariability and context elements.

nline sales scenario architecture

LINE

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

In order to describe the runtime variability of a Dynamic system

ADL. This ADL summarized in the schema

all types of of the system (services,

points are defined and also all alternative services of each variation point

ariability and configuration descriptions are based on information about context.

described

the rules used to create specified to

concrete architecture

nline sales scenario architecture

INE ADL

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach.

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

Dynamic system

This ADL schema

all types of (services,

points are defined and also all alternative services of each variation point

ariability and configuration descriptions are based on information about context. Thus

described

the rules used to create to describe

concrete architectures based

nline sales scenario architecture

ADL

We will use throughout the paper an illustrative example to . This

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

Dynamic system

This ADL schema of

all types of the (services,

points are defined and also all alternative services of each variation point

ariability and configuration Thus

described in

the rules used to create describe

based

We will use throughout the paper an illustrative example to This

a simplified online sales scenario between customer, retailer, warehouse and shipment

The customer accesses retailer’s website, browses the catalog, selects some items and commands an order. The retailer fulfills customer’s order request and inquires the warehouse to prepare all items of the

ed, the shipping service handles

Dynamic at

This ADL of

the (services,

points are defined and also all alternative services of each variation point

ariability and configuration Thus,

n a

the rules used to create describe

based

architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

of the

by sepa

and

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

C

interactsitself is ainto finerservicesconsidered implement any functionalitytodescribed as sub

require a number ofcollection of methods or operationsservicefuture exploiting systems, they should defined intoperations.or interface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ requiredAn interface

metaarchitectural has a name specified by

Our approach architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

1)

of the

2)

by sepa

and configuration).

3)

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

C. Structural

Ainteractsitself is ainto finerservicesconsidered implement any functionalityto one ofdescribed as sub

Each service require a number ofcollection of methods or operationsservicefuture exploiting systems, they should defined intoperations.or required interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ requiredAn interface

The structural description of a semetaarchitectural has a name specified by

Our approach architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

) It facilitates the modification and re

of the four

) It allows the description and anal

by sepa

configuration).

) It allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

Structural

A serviceinteractsitself is ainto finerservicesconsidered implement any functionality

one ofdescribed as sub

Each service require a number ofcollection of methods or operationsservice. future exploiting systems, they should defined intoperations.

required interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ requiredAn interface

The structural description of a semeta-model. architectural has a name specified by

Figure

Our approach architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

t facilitates the modification and re

four

t allows the description and anal

by separating the four concerns (structure, variability, context

configuration).

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

Structural

serviceinteracts with other services throughitself is a composite into finer-grained services. All other services in the hierarchical tree are considered implement any functionality

one of its composing services.described as sub

Each service require a number ofcollection of methods or operations

. Since services future exploiting systems, they should defined intoperations.

required interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ requiredAn interface

The structural description of a semodel.

architectural has a name specified by

Figure

Our approach architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

t facilitates the modification and re

sections of ADL.

t allows the description and anal

rating the four concerns (structure, variability, context

configuration).

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

Structural

service with other services throughcomposite grained

. All other services in the hierarchical tree are considered compositeimplement any functionality

its composing services.described as sub

Each service require a number ofcollection of methods or operations

Since services future exploiting systems, they should defined interfaces that describe theiroperations. Interfaces are two types, either

required interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ requiredAn interface has

The structural description of a semodel. A service

architectural attributeshas a name specified by

Figure 3. Structural description meta

Our approach architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

t facilitates the modification and re

sections of ADL.

t allows the description and anal

rating the four concerns (structure, variability, context

configuration).

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

Structural elements

is an encapsulated and selfwith other services throughcomposite grained

. All other services in the hierarchical tree are composite

implement any functionalityits composing services.

described as sub-architecture.

Each service hasrequire a number ofcollection of methods or operations

Since services future exploiting systems, they should

erfaces that describe theirInterfaces are two types, either

required interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

has a

The structural description of a seA serviceattributes

has a name specified by

. Structural description meta

Our approach implicitly architectural concerndescription of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

t facilitates the modification and re

sections of ADL.

t allows the description and anal

rating the four concerns (structure, variability, context

configuration).

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architec

elements

is an encapsulated and selfwith other services throughcomposite grained services

. All other services in the hierarchical tree are composite

implement any functionalityits composing services.

architecture.

has require a number ofcollection of methods or operations

Since services future exploiting systems, they should

erfaces that describe theirInterfaces are two types, either

required interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

a set of

The structural description of a seA serviceattributes

has a name specified by

. Structural description meta

implicitly architectural concerns description of architecture in four sections, each of them specifying one type of architectural description hasfollowing advantages:

t facilitates the modification and re

sections of ADL.

t allows the description and anal

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

is translated at architecture level through

elements description

is an encapsulated and selfwith other services throughcomposite service

services. All other services in the hierarchical tree are

composite. A implement any functionality

its composing services.architecture.

a number of require a number of required interfaces. collection of methods or operations

Since services are developed independently from their future exploiting systems, they should

erfaces that describe theirInterfaces are two types, either

required interface. Provided interface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

set of

The structural description of a seA service attributes, as shown in Fig

has a name specified by

. Structural description meta

implicitly from each other

description of architecture in four sections, each of them specifying one type of architectural description has

t facilitates the modification and re

sections of ADL.

t allows the description and anal

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

ure level through

description

is an encapsulated and selfwith other services through

ervice services.

. All other services in the hierarchical tree are A composite service

implement any functionalityits composing services.

architecture.

a number of required interfaces.

collection of methods or operationsare developed independently from their

future exploiting systems, they should erfaces that describe theirInterfaces are two types, either

Provided interface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

set of operations

The structural description of a se is described based on

, as shown in Fighas a name specified by service_name

. Structural description meta

implicitly separatefrom each other

description of architecture in four sections, each of them specifying one type of architectural description has

t facilitates the modification and re

sections of ADL.

t allows the description and anal

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

ure level through

description

is an encapsulated and selfwith other services through

ervice and . Leaf services are called

. All other services in the hierarchical tree are composite service

implement any functionality byits composing services.

architecture.

a number of required interfaces.

collection of methods or operationsare developed independently from their

future exploiting systems, they should erfaces that describe theirInterfaces are two types, either

Provided interface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

operations

The structural description of a seis described based on

, as shown in Figservice_name

. Structural description meta

separatefrom each other

description of architecture in four sections, each of them specifying one type of architectural description has

t facilitates the modification and re

t allows the description and anal

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

ure level through

description

is an encapsulated and selfwith other services through

and is Leaf services are called

. All other services in the hierarchical tree are composite service

by itselfits composing services.

a number of provided interfaces and may required interfaces.

collection of methods or operationsare developed independently from their

future exploiting systems, they should erfaces that describe theirInterfaces are two types, either

Provided interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

operations

The structural description of a seis described based on

, as shown in Figservice_name

. Structural description meta

separates from each other

description of architecture in four sections, each of them specifying one type of architectural description has

t facilitates the modification and re

t allows the description and anal

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

ure level through

description

is an encapsulated and selfwith other services through

is hierarchically Leaf services are called

. All other services in the hierarchical tree are composite service

itself,its composing services. Each

provided interfaces and may required interfaces.

collection of methods or operations that areare developed independently from their

future exploiting systems, they should erfaces that describe theirInterfaces are two types, either

interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

operations.

The structural description of a seris described based on

, as shown in Figservice_name

. Structural description meta-model of DSOPL

the from each other

description of architecture in four sections, each of them specifying one type of architectural description has

t facilitates the modification and re

t allows the description and analysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

ure level through

is an encapsulated and selfwith other services through interfaces

hierarchically Leaf services are called

. All other services in the hierarchical tree are composite service

, but it delegates thisEach

provided interfaces and may required interfaces.

that areare developed independently from their

future exploiting systems, they should erfaces that describe theirInterfaces are two types, either

interfaceinterface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

rvice reflectis described based on

, as shown in Fig.service_name

model of DSOPL

the four from each other

description of architecture in four sections, each of them specifying one type of architectural description has

t facilitates the modification and re-utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

ure level through its variabi

is an encapsulated and self-interfaces

hierarchically Leaf services are called

. All other services in the hierarchical tree are composite service doesn’

but it delegates thisEach composite service is

provided interfaces and may required interfaces. Interfaces

that areare developed independently from their

future exploiting systems, they should haveerfaces that describe their functionalities Interfaces are two types, either provided interface

interface of a service is an interface that the service realizes, whereas is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

vice reflectis described based on

. 3: (1) Every attribute. (

model of DSOPL

four aforementioned from each other.

description of architecture in four sections, each of them specifying one type of architectural description has

utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

variabi

-contained unit. It interfaces

hierarchically Leaf services are called

. All other services in the hierarchical tree are doesn’

but it delegates thiscomposite service is

provided interfaces and may Interfaces

that are supported by the are developed independently from their

have solid and wellfunctionalities provided interfaceof a service is an

interface that the service realizes, whereas required interfaceis an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

vice reflectis described based on

: (1) Every attribute. (

model of DSOPL

aforementioned . The modular

description of architecture in four sections, each of them specifying one type of architectural description has

utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

variabi

contained unit. It interfaces. The system

hierarchically deLeaf services are called

. All other services in the hierarchical tree are doesn’t execute

but it delegates thiscomposite service is

provided interfaces and may Interfaces

supported by the are developed independently from their

solid and wellfunctionalities provided interfaceof a service is an required interface

is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required

vice reflects is described based on the following

: (1) Every attribute. (

model of DSOPL

aforementioned The modular

description of architecture in four sections, each of them specifying one type of architectural description has

utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

lity section.

contained unit. It The system decomposed

Leaf services are called . All other services in the hierarchical tree are

t execute but it delegates this

composite service is

provided interfaces and may Interfaces define

supported by the are developed independently from their

solid and wellfunctionalities provided interfaceof a service is an required interface

is an interface that the service needs in order to operate.Services communicate to each other through provides/ consumes relationship via their provided/ required interfaces.

this service the following

: (1) Every attribute. (2) It has a

-ADL

aforementioned The modular

description of architecture in four sections, each of them specifying one type of architectural description has

utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

lity section.

contained unit. It The system

composed Leaf services are called atomic

. All other services in the hierarchical tree are t execute

but it delegates thiscomposite service is

provided interfaces and may define

supported by the are developed independently from their

solid and wellfunctionalities provided interfaceof a service is an required interface

is an interface that the service needs in order to operate.Services communicate to each other through provides/

interfaces.

this service the following

: (1) Every service) It has a

ADL

aforementioned The modular

description of architecture in four sections, each of them specifying one type of architectural description has the

utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

lity section.

contained unit. It The system

composed atomic

. All other services in the hierarchical tree are t execute or

but it delegates this task composite service is

provided interfaces and may define

supported by the are developed independently from their

solid and wellfunctionalities andprovided interfaceof a service is an required interface

is an interface that the service needs in order to operate.Services communicate to each other through provides/

interfaces.

this service the following

service) It has a

aforementioned The modular

description of architecture in four sections, each of them the

utilization of each

ysis of the architecture

rating the four concerns (structure, variability, context

t allows controlling the traceability links of each type

of information among several abstraction levels. For example,

the variability described in feature model at requirement level

lity section.

contained unit. It The system

composed atomic

. All other services in the hierarchical tree are or

task composite service is

provided interfaces and may a

supported by the are developed independently from their

solid and well-and

provided interface of a service is an required interface

is an interface that the service needs in order to operate. Services communicate to each other through provides/

interfaces.

this service the following

service ) It has a

textual_description

functionalities of the service, its inputs and expected outputs. (3) service is atomic or composite. section example.

<

</interface>

</

D

making changes to system’s architecture. types of

preexample, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to chautomatically addition to other environmental conditions such as the existence of a relay point service in customer’s city, depicted in

s

textual_description

functionalities of the service, its inputs and expected outputs. (3) service is atomic or composite. section example.

<DSOPL

<structural_

<service

</interface>

</service>

<service name="customer_service"

</service>

<service name="relay

</service>

<service name="home_delivery_shipping_service"

</service>

</structural_

<variability_

<context

<configuration_description

</DSOPL

D. Variability

Variability making changes to system’s architecture. types of

1)

It represents pre-example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to chautomatically addition to other environmental conditions such as the existence of a relay point service in customer’s city, depicted in

2)

It may exist several services.

textual_description

functionalities of the service, its inputs and expected outputs. (3) is_atservice is atomic or composite. section example.

SOPL-ADL>

<structural_

<service

<interfaces>

...

</interfaces>

<sub

<service name="retailer_service"

<interfaces>

</interface>

</interfaces>

</service>

<service name="warehouse_service"

<interfaces>

</service>

</sub

</service>

<service name="customer_service"

...

</service>

<service name="relay

...

</service>

<service name="home_delivery_shipping_service"

...

</service>

</structural_

<variability_

<context

configuration_description

SOPL-ADL>

Variability

Variability making changes to system’s architecture. types of

) S

It represents -conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to chautomatically addition to other environmental conditions such as the existence of a relay point service in customer’s city, depicted in

) Variability of connection

It may exist several ervices.

textual_description

functionalities of the service, its inputs and expected outputs. is_atomic

service is atomic or composite. section description example.

ADL>

<structural_

<service

<interfaces>

...

</interfaces>

<sub-architecture>

<service name="retailer_service"

<interfaces>

<interface name="i_order" role="provides">

<operation

</operations>

</interface>

<interface

</interface>

</interfaces>

</service>

<service name="warehouse_service"

<interfaces>

</service>

</sub-architecture>

</service>

<service name="customer_service"

</service>

<service name="relay

</service>

<service name="home_delivery_shipping_service"

</service>

</structural_

<variability_

<context_description

configuration_description

ADL>

Variability

Variability making changes to system’s architecture. types of variability:

Service variability

It represents conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to chautomatically addition to other environmental conditions such as the existence of a relay point service in customer’s city, depicted in

Variability of connection

It may exist several ervices. The selection of the appropriate connection is done

Figure 5

textual_description

functionalities of the service, its inputs and expected outputs. omic

service is atomic or composite. description

<structural_description

<service name="

<interfaces>

</interfaces>

architecture>

<service name="retailer_service"

<interfaces>

<interface name="i_order" role="provides">

<operation

<operation name="submit_order_request"

<operation name="get_catalog"

</operations>

</interface>

<interface

</interface>

</interfaces>

</service>

<service name="warehouse_service"

<interfaces>

</service>

architecture>

</service>

<service name="customer_service"

</service>

<service name="relay

</service>

<service name="home_delivery_shipping_service"

</service>

</structural_description

<variability_description

description

configuration_description

ADL>

Figure 4. Structural

Variability

Variability making changes to system’s architecture.

variability:

ervice variability

It represents conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to chautomatically addition to other environmental conditions such as the existence of a relay point service in customer’s city, depicted in Fig

Variability of connection

It may exist several The selection of the appropriate connection is done

Figure 5

textual_description

functionalities of the service, its inputs and expected outputs. omic has a Boolean value to indicate whether the

service is atomic or composite. description

description

name="supply_chain_management_service"

<interfaces>

</interfaces>

architecture>

<service name="retailer_service"

<interfaces>

<interface name="i_order" role="provides">

<operation

<operation name="submit_order_request"

<operation name="get_catalog"

</operations>

</interface>

<interface

</interfaces>

</service>

<service name="warehouse_service"

<interfaces>

</service>

architecture>

<service name="customer_service"

<service name="relay

<service name="home_delivery_shipping_service"

description

description

description

configuration_description

Figure 4. Structural

Variability description

Variability in making changes to system’s architecture.

variability:

ervice variability

It represents conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to chautomatically at ruaddition to other environmental conditions such as the existence of a relay point service in customer’s city,

Fig. 9

Variability of connection

It may exist several The selection of the appropriate connection is done

Figure 5. Example of service variability in sales scenario

textual_description

functionalities of the service, its inputs and expected outputs. has a Boolean value to indicate whether the

service is atomic or composite. description of the architecture related to our illustrative

description

supply_chain_management_service"

architecture>

<service name="retailer_service"

<interfaces>

<interface name="i_order" role="provides">

<operations>

<operation name="submit_order_request"

<operation name="get_catalog"

</operations>

</interface>

<interface name="i_goods_request"

</interfaces>

<service name="warehouse_service"

<interfaces> ...

architecture>

<service name="customer_service"

<service name="relay

<service name="home_delivery_shipping_service"

description

description

description>

configuration_description

Figure 4. Structural

escription

in SPL making changes to system’s architecture.

variability:

ervice variability

It represents binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

runtime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

9.

Variability of connection

It may exist several The selection of the appropriate connection is done

. Example of service variability in sales scenario

textual_description functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the service is atomic or composite.

of the architecture related to our illustrative

description>

supply_chain_management_service"

<service name="retailer_service"

<interface name="i_order" role="provides">

<operation name="submit_order_request"

<operation name="get_catalog"

</operations>

name="i_goods_request"

<service name="warehouse_service"

... </interfaces>

architecture>

<service name="customer_service"

<service name="relay_point_shipping_service"

<service name="home_delivery_shipping_service"

description>

description>

> ... </

configuration_description

Figure 4. Structural

escription

SPL making changes to system’s architecture.

ervice variability

binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

Variability of connection

It may exist several The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the service is atomic or composite.

of the architecture related to our illustrative

supply_chain_management_service"

<service name="retailer_service"

<interface name="i_order" role="provides">

<operation name="submit_order_request"

<operation name="get_catalog"

name="i_goods_request"

<service name="warehouse_service"

</interfaces>

<service name="customer_service"

_point_shipping_service"

<service name="home_delivery_shipping_service"

...

</context

configuration_description> ...

Figure 4. Structural

escription

SPL architecture making changes to system’s architecture.

ervice variability

binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

Variability of connection

It may exist several The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the service is atomic or composite.

of the architecture related to our illustrative

supply_chain_management_service"

<service name="retailer_service"

<interface name="i_order" role="provides">

<operation name="submit_order_request"

<operation name="get_catalog"

name="i_goods_request"

<service name="warehouse_service"

</interfaces>

<service name="customer_service"

_point_shipping_service"

<service name="home_delivery_shipping_service"

... </variability_

context

... </

Figure 4. Structural description

architecture making changes to system’s architecture.

binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

Variability of connection

It may exist several alternative The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the service is atomic or composite.

of the architecture related to our illustrative

supply_chain_management_service"

<service name="retailer_service"

<interface name="i_order" role="provides">

<operation name="submit_order_request"

<operation name="get_catalog"

name="i_goods_request"

<service name="warehouse_service"

</interfaces>

<service name="customer_service" ...

_point_shipping_service"

<service name="home_delivery_shipping_service"

</variability_

context_description

</configuration_description

description

architecture making changes to system’s architecture.

binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

Variability of connection

alternative The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the service is atomic or composite. Fig

of the architecture related to our illustrative

supply_chain_management_service"

<service name="retailer_service" ...

<interface name="i_order" role="provides">

<operation name="submit_order_request"

<operation name="get_catalog"

name="i_goods_request"

<service name="warehouse_service" ...

... is_atomic="Y">

_point_shipping_service"

<service name="home_delivery_shipping_service"

</variability_

description

configuration_description

description

architecture making changes to system’s architecture.

binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

alternative The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the ig. 4 shows the structural

of the architecture related to our illustrative

supply_chain_management_service"

... is_atomic="Y">

<interface name="i_order" role="provides">

<operation name="submit_order_request"

<operation name="get_catalog" ...

name="i_goods_request"

... is_atomic="Y">

is_atomic="Y">

_point_shipping_service"

<service name="home_delivery_shipping_service"

</variability_description

description

configuration_description

of sales scenario

architecture refers to the ability of making changes to system’s architecture.

binding an alternative service that satisfies conditioned constraints on runtime

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipmentThe decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

alternative connections between The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

supply_chain_management_service"

is_atomic="Y">

<interface name="i_order" role="provides">

<operation name="submit_order_request"

...> </operation>

role="consumes">

is_atomic="Y">

is_atomic="Y">

_point_shipping_service" ...

<service name="home_delivery_shipping_service"

description

description>

configuration_description

of sales scenario

refers to the ability of making changes to system’s architecture.

binding an alternative service that satisfies conditioned constraints on runtime. Back to

example, there are two alternatives of shipment; either a relay point shipment or home delivery shipment, as The decision of which alternative to ch

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

connections between The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

supply_chain_management_service" ...

is_atomic="Y">

<interface name="i_order" role="provides">

<operation name="submit_order_request" ...

</operation>

role="consumes">

is_atomic="Y">

is_atomic="Y">

... is_atomic="Y">

<service name="home_delivery_shipping_service" ...

description

configuration_description

of sales scenario

refers to the ability of making changes to system’s architecture. We

binding an alternative service that satisfies . Back to

example, there are two alternatives of shipment; either a relay , as shown

The decision of which alternative to chontime depending on customer’s selection in

addition to other environmental conditions such as the existence of a relay point service in customer’s city,

connections between The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

... is_atomic="N">

is_atomic="Y">

...> </operation>

</operation>

role="consumes">

is_atomic="Y">

is_atomic="Y">

is_atomic="Y">

... is_atomic="Y">

description>

configuration_description

of sales scenario

refers to the ability of e distinct

binding an alternative service that satisfies . Back to

example, there are two alternatives of shipment; either a relay shown oose is taken

ntime depending on customer’s selection in addition to other environmental conditions such as the existence of a relay point service in customer’s city,

connections between The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

is_atomic="N">

is_atomic="Y">

</operation>

</operation>

role="consumes">

is_atomic="Y">

is_atomic="Y">

is_atomic="Y">

>

configuration_description

refers to the ability of distinct

binding an alternative service that satisfies . Back to our sales

example, there are two alternatives of shipment; either a relay shown in Fig

ose is taken ntime depending on customer’s selection in

addition to other environmental conditions such as the existence of a relay point service in customer’s city,

connections between The selection of the appropriate connection is done

. Example of service variability in sales scenario

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

is_atomic="N">

</operation>

role="consumes">

is_atomic="Y">

is_atomic="Y">

configuration_description>

refers to the ability of distinct

binding an alternative service that satisfies our sales

example, there are two alternatives of shipment; either a relay in Fig

ose is taken ntime depending on customer’s selection in

addition to other environmental conditions such as the existence of a relay point service in customer’s city,

connections between The selection of the appropriate connection is done

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

is_atomic="N">

</operation>

...

is_atomic="Y">

is_atomic="Y">

refers to the ability of distinct three

binding an alternative service that satisfies our sales

example, there are two alternatives of shipment; either a relay in Fig.

ose is taken ntime depending on customer’s selection in

addition to other environmental conditions such as the existence of a relay point service in customer’s city, as

connections between The selection of the appropriate connection is done

that explains in plain text the main functionalities of the service, its inputs and expected outputs.

has a Boolean value to indicate whether the 4 shows the structural

of the architecture related to our illustrative

is_atomic="N">

</operation>

...

is_atomic="Y">

refers to the ability of three

binding an alternative service that satisfies our sales

example, there are two alternatives of shipment; either a relay 5.

ose is taken ntime depending on customer’s selection in

addition to other environmental conditions such as the as

connections between The selection of the appropriate connection is done

automatically at runtime according to constraintsFor example, the customer retailer service and thus connectioconnection for a VIP customer which normally has some extra privileges.Fig

service or a connectionservices by another set of interconnected servicescocomposition one in warehouse services, requested

8exist in the systemspecifies the part of the architecture that can be variable. variationvariation

variation_type

Possiblconnection

whether this variation may occur at runtimeapproaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative during points overhead of loading the entire configuration at velementshas a unique name priority

determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

automatically at runtime according to constraintsFor example, the customer retailer service and thus connectioconnection for a VIP customer which normally has some extra privileges.Fig.

3)

This type of variability concerns replacing not only a service or a connectionservices by another set of interconnected servicescomposite architecturecomposition one in warehouse services, requested

T8. Wexist in the systemspecifies the part of the architecture that can be variable. variationvariation

variation_type

Possiblconnection

whether this variation may occur at runtimeapproaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative during points overhead of loading the entire configuration at variation point has severalelementshas a unique name priority

determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

automatically at runtime according to constraintsFor example, the customer retailer service and thus connectioconnection for a VIP customer which normally has some extra privileges.

9 is an example of variability of connection.

) Variability of composition

This type of variability concerns replacing not only a service or a connectionservices by another set of interconnected services

mposite architecturecomposition one in warehouse services, requested

The metaWe specify

exist in the systemspecifies the part of the architecture that can be variable. variationvariation

variation_type

Possible values of connection

whether this variation may occur at runtimeapproaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative during points coverhead of loading the entire configuration at

ariation point has severalelementshas a unique name priority

determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

Figure 6

Figure 7

automatically at runtime according to constraintsFor example, the customer retailer service and thus connections; either a connection for a regular customer or a connection for a VIP customer which normally has some extra privileges.

is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connectionservices by another set of interconnected services

mposite architecturecomposition one in Figwarehouse services, requested items

he metae specify

exist in the systemspecifies the part of the architecture that can be variable. variation variation_name

variation_type

e values of connection

whether this variation may occur at runtime) or at approaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative during runtime

could be soverhead of loading the entire configuration at

ariation point has severalelements to fill the selectedhas a unique name priority. determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

Figure 6

Figure 7

automatically at runtime according to constraintsFor example, the customer retailer service and thus

ns; either a connection for a regular customer or a connection for a VIP customer which normally has some extra

The is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connectionservices by another set of interconnected services

mposite architecturecomposition of

Fig. 1.warehouse services,

items

he meta-model of variability e specify

exist in the systemspecifies the part of the architecture that can be variable.

point_name

variation_type

e values of connection or whether this variation may occur at

) or at approaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative

runtimeould be s

overhead of loading the entire configuration at ariation point has several

to fill the selectedhas a unique name

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

Figure 6. Example of connection variability in sales scenario

Figure 7. Example of composition variability in sales scenario

automatically at runtime according to constraintsFor example, the customer retailer service and thus

ns; either a connection for a regular customer or a connection for a VIP customer which normally has some extra

The variation_pointis an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connectionservices by another set of interconnected services

mposite architectureof supply_chain_management_service. Here

warehouse services, items and returns

model of variability e specify in this section

exist in the systemspecifies the part of the architecture that can be variable.

point _name

variation_type e values of

or compositionwhether this variation may occur at

) or at approaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative

runtime is totally possould be s

overhead of loading the entire configuration at ariation point has several

to fill the selectedhas a unique name

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsFor example, the customer retailer service and thus

ns; either a connection for a regular customer or a connection for a VIP customer which normally has some extra

variation_pointis an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connectionservices by another set of interconnected services

mposite architecturesupply_chain_management_service

ere,warehouse services,

and returns

model of variability in this section

exist in the system specifies the part of the architecture that can be variable.

has indicating that specifies the type of this variation.

e values of composition

whether this variation may occur at ) or at runtime

approaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative

is totally possould be specifi

overhead of loading the entire configuration at ariation point has several

to fill the selectedhas a unique name

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsFor example, the customer retailer service and thus

ns; either a connection for a regular customer or a connection for a VIP customer which normally has some extra

variation_pointis an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connection, but services by another set of interconnected services

mposite architecture. supply_chain_management_service

, in addition to the roles of retailer and warehouse services, the manufacturer service

and returns

model of variability in this section

at architectural levelspecifies the part of the architecture that can be variable.

has indicating

that specifies the type of this variation. e values of variation_type

composition

whether this variation may occur at runtime

approaches where variability is clearly and completely specified at design time important in SOA systems, where selection of an alternative

is totally posspecified at compile

overhead of loading the entire configuration at ariation point has several

to fill the selectedhas a unique name alternative

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsFor example, the customer retailer service and thus command

ns; either a connection for a regular customer or a connection for a VIP customer which normally has some extra

variation_pointis an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a , but

services by another set of interconnected services Fig

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

and returns

model of variability in this section

at architectural levelspecifies the part of the architecture that can be variable.

has the followingindicating

that specifies the type of this variation. variation_type

composition

whether this variation may occur at runtime

approaches where variability is clearly and completely specified at design time [important in SOA systems, where selection of an alternative

is totally possed at compile

overhead of loading the entire configuration at ariation point has several

to fill the selectedalternative

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsFor example, the customer service

commandns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra variation_point

is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a , but replacing

services by another set of interconnected servicesFig. 7

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

and returns them to

model of variability in this section the different

at architectural levelspecifies the part of the architecture that can be variable.

the followingindicating

that specifies the type of this variation. variation_type

composition. whether this variation may occur at

. Contrary to traditional SPL approaches where variability is clearly and completely

[21],important in SOA systems, where selection of an alternative

is totally possed at compile

overhead of loading the entire configuration at ariation point has several alternatives

to fill the selected variation poialternative

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.alternative with the highest

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsservice

commandns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra variation_point "customer_variation_point

is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a replacing

services by another set of interconnected services7 illustrates another alternative

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

them to

model of variability the different

at architectural levelspecifies the part of the architecture that can be variable.

the followingindicating its unique name

that specifies the type of this variation. variation_type

. (3) whether this variation may occur at

Contrary to traditional SPL approaches where variability is clearly and completely

], variation_timeimportant in SOA systems, where selection of an alternative

is totally possible. ed at compile

overhead of loading the entire configuration at alternativesvariation poi

alternative

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.

priority

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsservice in Fig

command an order via ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

is an example of variability of connection.

This type of variability concerns replacing not only a replacing

services by another set of interconnected servicesillustrates another alternative

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

them to the warehouse service.

model of variability description the different

at architectural levelspecifies the part of the architecture that can be variable.

the followingits unique name

that specifies the type of this variation. variation_type

) variation_timewhether this variation may occur at compile

Contrary to traditional SPL approaches where variability is clearly and completely

variation_time

important in SOA systems, where selection of an alternative ible. However,

ed at compileoverhead of loading the entire configuration at

alternativesvariation poi

alternative_name

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.

priority

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsin Fig

an order via ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

is an example of variability of connection.

This type of variability concerns replacing not only a replacing a set of interconnected

services by another set of interconnected servicesillustrates another alternative

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

the warehouse service.

description the different

at architectural levelspecifies the part of the architecture that can be variable.

the followingits unique name

that specifies the type of this variation. variation_type

variation_time

compile

Contrary to traditional SPL approaches where variability is clearly and completely

variation_time

important in SOA systems, where selection of an alternative However,

ed at compile-timeoverhead of loading the entire configuration at

alternativesvariation poi

_name

This attribute helps the system automatically determine which architectural element is chosen in case there is more than one valid configuration at a given time.

priority priority

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraintsin Fig.

an order via ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

is an example of variability of connection.

This type of variability concerns replacing not only a a set of interconnected

services by another set of interconnected servicesillustrates another alternative

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

the warehouse service.

description the different variation points

at architectural level. A specifies the part of the architecture that can be variable.

the following its unique name

that specifies the type of this variation. are either

variation_time

compile

Contrary to traditional SPL approaches where variability is clearly and completely

variation_time

important in SOA systems, where selection of an alternative However,

time. This reduces the overhead of loading the entire configuration at

alternatives, which are variation point. Each alternative

_name and This attribute helps the system automatically

determine which architectural element is chosen in case there is more than one valid configuration at a given time.

priority

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraints 6 can access the

an order via ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

is an example of variability of connection.

This type of variability concerns replacing not only a a set of interconnected

services by another set of interconnected servicesillustrates another alternative

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

the warehouse service.

description is variation points

A variation pointspecifies the part of the architecture that can be variable.

attributes: its unique name

that specifies the type of this variation. are either

variation_time

compile-time

Contrary to traditional SPL approaches where variability is clearly and completely

variation_time

important in SOA systems, where selection of an alternative However, some

. This reduces the overhead of loading the entire configuration at

which are nt. Each alternative

and This attribute helps the system automatically

determine which architectural element is chosen in case there is more than one valid configuration at a given time.

priority

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

automatically at runtime according to constraints’ satisfaction. can access the

an order via twons; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

is an example of variability of connection.

This type of variability concerns replacing not only a a set of interconnected

services by another set of interconnected servicesillustrates another alternative

supply_chain_management_service

in addition to the roles of retailer and the manufacturer service

the warehouse service.

is givenvariation points

variation pointspecifies the part of the architecture that can be variable.

attributes: its unique name

that specifies the type of this variation. are either

variation_time

time Contrary to traditional SPL

approaches where variability is clearly and completely variation_time

important in SOA systems, where selection of an alternative some

. This reduces the overhead of loading the entire configuration at runtime

which are nt. Each alternative

and an order of This attribute helps the system automatically

determine which architectural element is chosen in case there is more than one valid configuration at a given time.

priority=

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

satisfaction. can access the

two different ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

This type of variability concerns replacing not only a a set of interconnected

services by another set of interconnected services within a illustrates another alternative

supply_chain_management_service than the in addition to the roles of retailer and

the manufacturer service the warehouse service.

givenvariation points

variation pointspecifies the part of the architecture that can be variable.

attributes: its unique name

that specifies the type of this variation. are either service

variation_time specifies (i.e. before

Contrary to traditional SPL approaches where variability is clearly and completely

attribute is important in SOA systems, where selection of an alternative

some variation . This reduces the

runtimewhich are nt. Each alternative

an order of This attribute helps the system automatically

determine which architectural element is chosen in case there is more than one valid configuration at a given time.

=“1”

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

satisfaction. can access the

different ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point

This type of variability concerns replacing not only a a set of interconnected

within a illustrates another alternative

than the in addition to the roles of retailer and

the manufacturer service realizes the warehouse service.

given in Figvariation points

variation pointspecifies the part of the architecture that can be variable. Each

attributes: its unique name, (2)

that specifies the type of this variation. service

specifies (i.e. before

Contrary to traditional SPL approaches where variability is clearly and completely

attribute is important in SOA systems, where selection of an alternative

variation . This reduces the

runtime. Each which are possible nt. Each alternative

an order of This attribute helps the system automatically

determine which architectural element is chosen in case there is more than one valid configuration at a given time.

“1” is the

. Example of connection variability in sales scenario

. Example of composition variability in sales scenario

satisfaction. can access the

different ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra customer_variation_point" in

This type of variability concerns replacing not only a a set of interconnected

within a illustrates another alternative

than the in addition to the roles of retailer and

realizes the warehouse service.

in Figvariation points that

variation pointEach

attributes: (1) , (2)

that specifies the type of this variation. service

specifies (i.e. before

Contrary to traditional SPL approaches where variability is clearly and completely

attribute is important in SOA systems, where selection of an alternative

variation . This reduces the

Each possible

nt. Each alternative an order of

This attribute helps the system automatically determine which architectural element is chosen in case there

The is the

satisfaction. can access the

different ns; either a connection for a regular customer or a

connection for a VIP customer which normally has some extra in

This type of variability concerns replacing not only a a set of interconnected

within a illustrates another alternative

than the in addition to the roles of retailer and

realizes

in Fig. that

variation point Each

(1) , (2)

that specifies the type of this variation. service, specifies

(i.e. before Contrary to traditional SPL

approaches where variability is clearly and completely attribute is

important in SOA systems, where selection of an alternative variation

. This reduces the Each

possible nt. Each alternative

an order of This attribute helps the system automatically

determine which architectural element is chosen in case there The

is the

preferred one in a variation point. constraintsoperate properly.conditions selected alternative (i.e. alternative can be selected, only if all constraints of prerepresents desirable outcomes when process is completed successfully.crosscutting “Fcondition that states that in order to choose the alternative ““Fig. 9)constraint“condition=

constraint in FM.

variation_type="service" variation_time="runtime">

reference_element="

reference_element="relay_point_shipping_service" priority="2">

element="relaying_point_service_in_city" condition="available"/>

calculculate_total_amount" condi

variation_type="connection" variation_time="runtime">

reference_element="i_customer_order" priority="1">

reference_element="i_VIP_customer_order" priority="2">

preferred one in a variation point. constraintsoperate properly.conditions selected alternative (i.e. alternative can be selected, only if all constraints of prerepresents desirable outcomes when process is completed successfully.crosscutting “Feature condition that states that in order to choose the alternative “relay_point_delivery_alternative“relaying_point_service_in_cityFig. 9)constraint“relaying_point_in_citycondition=

constraint in FM.

<variability_

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

reference_element="

reference_element="relay_point_shipping_service" priority="2">

element="relaying_point_service_in_city" condition="available"/>

calculculate_total_amount" condi

</variation_point>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

reference_element="i_customer_order" priority="1">

reference_element="i_VIP_customer_order" priority="2">

</alternative>

</variation_point>

</variability_

preferred one in a variation point. constraintsoperate properly.conditions selected alternative (i.e. alternative can be selected, only if all constraints of prerepresents desirable outcomes when process is completed successfully.crosscutting “

eature condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

Fig. 9), this statement is equivalent constraintrelaying_point_in_city

condition=

constraint in FM.

<variability_

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternatives>

<alternative name="home_delivery_alternative"

reference_element="

<contraints>

</alternative>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

<contraints>

element="relaying_point_service_in_city" condition="available"/>

calculculate_total_amount" condi

</contraints>

</alternative>

</alternatives>

</variation_point>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

<alternatives>

<alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

</alternative>

</alternativ

</variation_point>

</variability_

preferred one in a variation point. constraintsoperate properly.conditions selected alternative (i.e. alternative can be selected, only if all constraints of prerepresents desirable outcomes when process is completed successfully.crosscutting “

eature Mcondition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent constraint relaying_point_in_city

condition=

constraint in FM.

<variability_

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternatives>

<alternative name="home_delivery_alternative"

reference_element="

<contraints>

</alternative>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

<contraints>

<pre

<pre

element="relaying_point_service_in_city" condition="available"/>

</pre

<post

<post

calculculate_total_amount" condi

</post

</contraints>

</alternative>

</alternatives>

</variation_point>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

<alternatives>

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

</alternative>

</alternativ

</variation_point>

</variability_

Figure 8

preferred one in a variation point. constraints, in forms of operate properly.conditions that selected alternative (i.e. alternative can be selected, only if all constraints of prerepresents desirable outcomes when process is completed successfully. crosscutting “

Modelcondition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent from “

relaying_point_in_city

condition=”unavailable

constraint in FM.

<variability_description

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternatives>

<alternative name="home_delivery_alternative"

reference_element="

<contraints>

</alternative>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

<contraints>

<pre-condit

<pre-

element="relaying_point_service_in_city" condition="available"/>

</pre-conditions>

<post-condidtions>

<post

calculculate_total_amount" condi

</post-

</contraints>

</alternative>

</alternatives>

</variation_point>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

<alternatives>

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

</alternative>

</alternativ

</variation_point>

</variability_description

Figure

Figure 8

preferred one in a variation point. , in forms of

operate properly.that

selected alternative (i.e. alternative can be selected, only if all constraints of prerepresents desirable outcomes when process is completed

Pre and Pcrosscutting “requires

odel FM condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent from “

relaying_point_in_city

unavailable

constraint in FM.

description

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternatives>

<alternative name="home_delivery_alternative"

reference_element="home_delivery_shipping_service" priority="1">

<contraints>

</alternative>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

<contraints>

condit

-condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

conditions>

condidtions>

<post-condition element_type="method" element="re

calculculate_total_amount" condi

-condidtions>

</contraints>

</alternative>

</alternatives>

</variation_point>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

<alternatives>

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

</alternatives>

</variation_point>

description

Figure

Figure 8. Variability description meta

preferred one in a variation point. , in forms of

operate properly. that should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all constraints of pre-conditions are satisfied)represents desirable outcomes when process is completed

Pre and Prequires

FM condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent from “

relaying_point_in_city

unavailable

description

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

<contraints> ...

</alternative>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

<contraints>

conditions>

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

conditions>

condidtions>

condition element_type="method" element="re

calculculate_total_amount" condi

condidtions>

</contraints>

</alternative>

</alternatives>

</variation_point>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

es>

</variation_point> ...

description

Figure 9. Variability description of sales scenario

Variability description meta

preferred one in a variation point. , in forms of

Preshould be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed Pre and Prequires”,

in SPL paradigmcondition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent from “relay_point

relaying_point_in_city

unavailable

description>

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

... </contraints>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

ions>

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

conditions>

condidtions>

condition element_type="method" element="re

calculculate_total_amount" condi

condidtions>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

...

description>

Variability description of sales scenario

Variability description meta

preferred one in a variation point. , in forms of pre

Pre-conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed Pre and Post

, “excludesin SPL paradigm

condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent relay_point

relaying_point_in_city

unavailable”

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

</contraints>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

condidtions>

condition element_type="method" element="re

calculculate_total_amount" condi

condidtions>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

>

Variability description of sales scenario

Variability description meta

preferred one in a variation point. pre-conditions

conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed ost-con

excludesin SPL paradigm

condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent relay_point

relaying_point_in_city” ” is equivalent

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

</contraints>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

calculculate_total_amount" condition="execute"/>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

Variability description of sales scenario

Variability description meta

preferred one in a variation point. conditions

conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed conditions are the equivalent of

excludesin SPL paradigm

condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city

, this statement is equivalent relay_point

feature.is equivalent

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

</contraints>

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

tion="execute"/>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

Variability description of sales scenario

Variability description meta

preferred one in a variation point. Eachconditions

conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed ditions are the equivalent of

excludes” and “in SPL paradigm

condition that states that in order to choose the alternative relay_point_delivery_alternative

relaying_point_service_in_city” should be available, this statement is equivalent

relay_point_delivery

feature.is equivalent

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

tion="execute"/>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

Variability description of sales scenario

Variability description meta

Each alternative has a set of conditions and

conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed ditions are the equivalent of

and “in SPL paradigm. For example, the pre

condition that states that in order to choose the alternative relay_point_delivery_alternative”, the service

” should be available, this statement is equivalent in

_delivery

feature. is equivalent

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

tion="execute"/>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

Variability description of sales scenario

Variability description meta-model of DSOPL

alternative has a set of and post

conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied)

represents desirable outcomes when process is completed ditions are the equivalent of

and “andFor example, the pre

condition that states that in order to choose the alternative ”, the service

” should be availablein FM

_delivery

On the contrary, is equivalent

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

condition element_type="service"

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

tion="execute"/>

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1">

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

Variability description of sales scenario

model of DSOPL

alternative has a set of post

conditions specify should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all conditions are satisfied). Post

represents desirable outcomes when process is completed ditions are the equivalent of

and” For example, the pre

condition that states that in order to choose the alternative ”, the service

” should be availableFM to a

_delivery” On the contrary,

is equivalent to

<variation_point name="shipping_variation_point"

variation_type="service" variation_time="runtime">

<alternative name="home_delivery_alternative"

home_delivery_shipping_service" priority="1">

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

<variation_point name="customer_variation_point"

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

reference_element="i_customer_order" priority="1"> ...

<alternative name="VIP_customer_alternative"

reference_element="i_VIP_customer_order" priority="2">

Variability description of sales scenario

model of DSOPL

alternative has a set of post-conditions

conditions specify a should be satisfied before executi

selected alternative (i.e. alternative can be selected, only if all . Post

represents desirable outcomes when process is completed ditions are the equivalent of

” constraints in For example, the pre

condition that states that in order to choose the alternative ”, the service

” should be availableto a feature

On the contrary, to

home_delivery_shipping_service" priority="1">

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re

variation_type="connection" variation_time="runtime">

alternative name="regular_customer_alternative"

... </alternative>

reference_element="i_VIP_customer_order" priority="2"> ...

Variability description of sales scenario

model of DSOPL

alternative has a set of conditionsa group of

should be satisfied before executiselected alternative (i.e. alternative can be selected, only if all

. Post-condition represents desirable outcomes when process is completed

ditions are the equivalent of constraints in

For example, the precondition that states that in order to choose the alternative

”, the service ” should be available

to a “requiresfeature

On the contrary, to “exclude

home_delivery_shipping_service" priority="1">

<alternative name="relay_point_delivery_alternative"

reference_element="relay_point_shipping_service" priority="2">

element="relaying_point_service_in_city" condition="available"/>

condition element_type="method" element="re-

</alternative>

...

Variability description of sales scenario

model of DSOPL-ADL

alternative has a set of conditions

group of should be satisfied before executing

selected alternative (i.e. alternative can be selected, only if all condition

represents desirable outcomes when process is completed ditions are the equivalent of

constraints in For example, the pre

condition that states that in order to choose the alternative ”, the service

” should be availablerequires

featureOn the contrary,

exclude

home_delivery_shipping_service" priority="1">

reference_element="relay_point_shipping_service" priority="2">

element="relaying_point_service_in_city" condition="available"/>

-

</alternative>

ADL

alternative has a set of conditions, to

group of ng the

selected alternative (i.e. alternative can be selected, only if all condition

represents desirable outcomes when process is completed ditions are the equivalent of

constraints in For example, the pre

condition that states that in order to choose the alternative ”, the service

” should be available (see requires

feature to On the contrary,

excludes

</alternative>

ADL

alternative has a set of to

group of the

selected alternative (i.e. alternative can be selected, only if all condition

represents desirable outcomes when process is completed ditions are the equivalent of

constraints in For example, the pre-

condition that states that in order to choose the alternative ”, the service

(see requires”

to On the contrary,

s”

</alternative>

E. Context description

Architecture reconfiguration is based on context changes. The context consists of any element that influences the behavior and/or the structure of the architecture. It can be related either to system’s environment (e.g. escalator state in the case of crisis management software), evaluated quality of service (e.g. time to response to a query), hardware architecture changes (e.g. server failure), etc. Thus, context element needs to be described in a dynamic ADL. We include these context elements as part of the architecture description to allow context-aware configurations (i.e. autonomous run-time adaptation according to context changes). A context element could capture raw data from a single information source such as a GPS locator that locates customer’s current location to search for a nearby relay point for the shipping service in our sales example. In this case, context element is considered as a primitive_context. In some other cases, a single information source could not be sufficient to take decisions; in that case, different atomic information sources’ values are collected, combined and analyzed in order to give sufficient and more accurate information about the context value. We call this context as composite_context. We can consider the weather forecast example, where the weather is considered hot when both temperature and humidity sensors exceed a certain threshold.

A simplified meta-model of context is illustrated in Fig. 10. Any context element has a unique name and a context_type to indicate to which family of contexts it belongs (e.g. contexts related to environment, user preferences, etc.). Context element also has values_type that indicates the type of its values, either primitive types such as integer, double, etc. or user-defined types. In Fig. 11, we show two primitive context descriptions from our sales scenario.

<context_description>

<context_type name="environment">

<context is_aggregate="N">

<name> location </name>

<values_type> double </values_type>

</context>

<context is_aggregate="N">

<name> shipping </name>

<values_type> enumeration </values_type>

<permitted_values>

<possible_value> home </possible_value>

<possible_value> relay_point </possible_value>

</permitted_values>

</context> ...

</context_type> ...

</context_description>

Figure 11. Some context descriptions from sales scenario

F. Configuration description

In traditional architectures, where environment is considered stable, services are selected and composed at design time. In contrast, in dynamic environment, parts of the

software can be instantiated or evolved at runtime. Therefore, we need to maintain, in addition to structural information, architectural information of the running system. The configuration section of DSOPL-ADL allows describing all the configuration rules to generate valid architectures. A valid architecture is a concrete architecture whose services and connections comply with configuration rules.

The configuration description section of DSOPL-ADL has an initialization sub-section, where all static elements (services and connections) in addition to alternatives, whose variation_time=”compile_time”, are instantiated. The connection part has two references to two different service interfaces, the one that calls the information consumer_interface and the one that provides the information provider_interface. The configuration description also has a dynamic_configuration sub-section where architectural configurations are triggered based on runtime context conditions. In other words, a concrete architecture is selected through two consecutive execution levels: (1) static bind where core services are selected and bound then (2) late-binding where remaining services and variation points are bound.

In initialization sub-section, we first bind static services to the configuration in addition to their connections. In dynamic_configuration sub-section, we integrate selected instances of services by observing context changes that are specified in the condition part of the configuration rule. Fig. 12 illustrates the architectural configuration meta-model. Any partial_configuration has a name and an attribute called priority of type integer, which determines which configuration to choose in case more than one partial_configuration satisfies current conditions. At that time, the one with the higher priority is privileged. Each partial_configuration is composed of two parts; condition part and dynamic_action part. In the condition part, we specify conditions that are driven by context elements. In the dynamic_action part, we specify all dynamic activities that will be realized. Every action concerns an architectural element which can either be a service or a connection. Action_type defines the type of change that will apply on the selected element. Its values are limited to bind, unbind, activate or deactivate concerned elements. Figure 10. Context description meta-model of DSOPL-ADL

Figure 12. Configuration description meta-model of DSOPL-ADL

In our illustrative example, customer and supply chain management services are instantiated at design time, as depicted in Fig. 13, whereas the relay point shipping service or home delivery shipping service are instantiated dynamically depending on environment’s conditions.

<configuration_description>

<initialization>

<services>

<deployable_service_instance

service_instance_name="customer_service_instance" ...>

</deployable_service_instance>

<deployable_service_instance

service_instance_name="supply_chain_management_service_instance" ...>

</deployable_service_instance> <!-- when a composite service is

connected, all its composing atomic services are consequently

connected -->

</services>

<connections>

<connection consumer_interface="i_goods_request"

provider_interface="i_goods_response">

</connection>

...

</connections>

</initialization>

<dynamic_configuration>

...

<partial_configuration name="home_delivery_configuration"

priority="2">

<condition>

<context_element name="shipping"/>

<expression operator="equals"> home </expression>

</condition>

<dynamic_actions>

<architecture_element element_type="service"

name="home_delivery_shipping_service_instance" action_type="bind"/>

<architecture_element element_type="connection"

consumer_interface="i_home_delivery"

provider_interface="i_shipment_ready_delegation"

action_type="activate"/>

</dynamic_actions>

</partial_configuration>

...

</dynamic_configuration>

</configuration_description>

Figure 13. Configuration description of sales scenario

IV. CONCLUSION AND PERSPECTIVES

We have presented DSOPL-ADL, an architectural language that allows the runtime variability of a service based product lines system to be modeled. To manage the runtime variability of such service based systems at architectural level, we have proposed a modular language called DSOPL-ADL which is structured and composed of four sections; structural, variability, context and configuration. For each part, its meta-model was presented and discussed in detail through an illustrative example.

It is worth noting that we have perceived variability in this work from a spatial perspective and not temporal, that is why we have only considered describing variation points and alternatives and have intentionally eliminated versioning aspect. Another point is that during late binding, we do not use any real-time configuration verification mechanisms. However, we assume that pre-conditions and post-conditions assure a valid configuration.

We are working on generating BPEL process from DSOPL architecture. As a future work; we intend to build a modeling tool for DSOPL-ADL and to conduct more experiments in order to completely evaluate our approach.

REFERENCES

[1] P. Clements, D. Garlan, F. Bachmann, J. Ivers, J. Stafford, L. Bass, P.

Merson. Documenting software architectures: views and beyond, 2nd

edition. Addison-Wesley Professional, 2010.

[2] B. Mohabbati, B. Asadi, D. Gašević, J. Lee. Software Product Line

Engineering to Develop Variant-Rich Web Services. In Web Services

Foundations, pp. 535-562. Springer New York, 2014.

[3] P. Clements, L. Northrop. Software product lines: Practices and Patterns.

Addison-Wesley, 2001.

[4] M. Galster, P. Avgeriou, D. Weyns, T. Männistö. Variability in software

architecture: current practice and challenges. SIGSOFT Softw. Eng.

Notes, vol. 36, no. 5, pp. 30-32, September 2011.

[5] M. P. Papazoglou, W.-J. Heuvel. Service oriented architectures:

approaches, technologies and research issues. The VLDB Journal, vol.

16, no. 3, pp. 389–415, 2007.

[6] N. Medvidovic. ADLs and dynamic architecture changes. In Joint

proceedings of ISAW-2 & Viewpoints '96 on SIGSOFT '96.

[7] J. Lee, G. Kotonya, D. Robinson. Engineering Service-Based Dynamic

Software Product Lines. Computer, vol.45, no.10, pp. 49-55, Oct, 2012.

[8] N. Medvidovic, R.N. Taylor. A classification and comparison

framework for software architecture description languages. IEEE

Transactions on Software Engineering, vol.26, no.1, pp.70-93, Jan 2000.

[9] N. Medvidovic, P. Oreizy, J. E. Robbins, R.N. Taylor. Using object-

oriented typing to support architectural design in the C2 style.

In Proceedings of SIGSOFT '96, pp. 24-32, 1996.

[10] J. Magee, N. Dulay, S. Eisenbach, J. Kramer. Specifying Distributed

Software Architectures. In Proceedings of the 5th European Software

Engineering Conference, pp. 137-153, 1995.

[11] F. Oquendo. π-ADL: An architecture description language based on the

higher-order typed π-calculus for specifying dynamic and mobile

software architectures. ACM SIGSOFT, pp. 1-14, 2004.

[12] D.C. Luckham, J.J. Kenney, L.M. Augustin, J. Vera, D. Bryan, W.

Mann. Specification and Analysis of System Architecture Using Rapide.

IEEE Trans. Software Eng., vol. 21, no. 4, pp. 336-355, Apr. 1995.

[13] A. Joolia, T. Batista, G. Coulson, A.T.A. Gomes. Mapping ADL

Specifications to an Efficient and Reconfigurable Runtime Component

Platform. WICSA’05, pp.131-140, 2005.

[14] R. Allen, R. Douence, D. Garlan. Specifying dynamism in software

architectures. In Proceedings of the Workshop on Foundations of

Component-Based Systems, Zurich, Switzerland, pp. 11–22. 1997.

[15] C. Cetina, P. Trinidad, V. Pelechano, A. Ruiz-Corts. An Architectural

Discussion on DSPL. 2nd International Workshop on Dynamic Software

Product Lines (DSPL08). Limerick, Ireland, 2008.

[16] E.Y. Nakagawa. Reference architectures and variability: current status

and future perspectives. In Proceedings of the WICSA/ECSA, 2012.

[17] E.M. Dashofy, A. van der Hoek, R.N. Taylor. An Infrastructure for the

Rapid Development of XML-based Architecture Description Languages.

In ICSE2002, Orlando, Florida, 2002.

[18] R. van Ommering, F. van der Linden, J. Kramer, J. Magee. The Koala

Component Model for Consumer Electronics Software. Computer 33, 3,

pp. 78-85, March 2000.

[19] F. Oquendo. π-ADL for WS-Composition: A Service-Oriented

Architecture Description Language for the Formal Development of

Dynamic Web Service Compositions. In: SBCARS, pp. 52–66, 2008.

[20] X. Jia, S. Ying, H. Cao, D. Xie. A New Architecture Description

Language for Service-Oriented Architecture. In Sixth International Conf.

on Grid and Cooperative Computing GCC, pp. 96-103, 2007.

[21] M. Galster. Describing variability in service-oriented software product

lines. In Proceedings of the ECSA’10, pp. 344–350, 2010.

[22] R. Capilla, et al. An overview of Dynamic Software Product Line

architectures and techniques: Observations from research and industry.

Journal of Systems and Software, vol. 91, pp. 3-23, May 2014.