Upload
dangdan
View
226
Download
0
Embed Size (px)
Citation preview
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
Abdelhak Seriai
UMR CNRS 5506 / LIRMM
University of Montpellier
Montpellier, FRANCE
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.