Seza Adjoyan
email: adjoyan@lirmm.fr

Abdelhak Seriai
email: seriai@lirmm.fr

An Architecture Description Language for Dynamic Service-Oriented Product Lines

Keywords: Architecture Description Language (ADL), Service-Oriented Architecture (SOA), Software Product Lines (SPL), dynamicity, variability, software architecture, Dynamic Service-Oriented Product Lines (DSOPL) I

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.

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 [START_REF] Clements | Documenting software architectures: views and beyond, 2nd edition[END_REF], [START_REF] Mohabbati | Software Product Line Engineering to Develop Variant-Rich Web Services[END_REF], [START_REF] Clements | Software product lines: Practices and Patterns[END_REF]. Variability has always been a first concern in SPL studies [START_REF] Nakagawa | Reference architectures and variability: current status and future perspectives[END_REF]. According to [START_REF] Galster | Variability in software architecture: current practice and challenges[END_REF], 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 [START_REF] Papazoglou | Service oriented architectures: approaches, technologies and research issues[END_REF]. 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 [START_REF] Medvidovic | ADLs and dynamic architecture changes[END_REF].

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 [START_REF] Lee | Engineering Service-Based Dynamic Software Product Lines[END_REF]. 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 [START_REF] Medvidovic | A classification and comparison framework for software architecture description languages[END_REF]. 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 [START_REF] Medvidovic | ADLs and dynamic architecture changes[END_REF]. 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 [START_REF] Medvidovic | ADLs and dynamic architecture changes[END_REF], whereas in dynamic architecture, system may evolve after its compilation [START_REF] Clements | Documenting software architectures: views and beyond, 2nd edition[END_REF]. 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 forms architecture (modifying connection composing elements (substitution of composing elements). dynamic software architecture. literature, only few of them support dynamic reconfiguration such as ACME/Plastik de {condition} do {operations} different choices at runtime. component at runtime used components dynamic 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 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 ac managing 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 systems set of concepts in the form of three schemas: variants concepts within xADL; this approach suffers from limitation between elements of different variation points. defines component. any deployed configuration cannot be changed at runtim will require application recompilation, thus it is not suitable for dynamic architectures. lines architecture are not based on the ser A in terms of services whether in a dynamic or static ADL Nevertheless 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 architecture (modifying connection composing elements (substitution of composing elements).

ADLs are used dynamic software architecture. literature, only few of them support dynamic reconfiguration such as ACME/Plastik describe a specific {condition} do {operations} different choices at runtime. component at runtime used components dynamic 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 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 ac managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking of changed elements F representing an architecture that encompasses variability xADL architectural elements of software systems set of concepts in the form of three schemas: variants concepts within xADL; this approach suffers from limitation between elements of different variation points. defines component. any deployed configuration cannot be changed at runtim will 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 Approaches in terms of services whether in a dynamic or static ADL Nevertheless 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, reconfigur architecture (modifying connection composing elements (substitution of composing elements).

ADLs are used dynamic software architecture. literature, only few of them support dynamic reconfiguration such as ACME/Plastik scribe a specific {condition} do {operations} different choices at runtime. component at runtime used in components dynamic 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 ac managing 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 co representing an architecture that encompasses variability xADL [ architectural elements of software systems set of concepts in the form of three schemas: variants concepts within xADL; this approach suffers from limitation between elements of different variation points. defines component. any deployed configuration cannot be changed at runtim will 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 ADL Nevertheless 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, reconfigur architecture (modifying connection composing elements (substitution of composing elements).

ADLs are used dynamic software architecture. literature, only few of them support dynamic reconfiguration such as C2 ACME/Plastik scribe a specific {condition} do {operations} different choices at runtime. component at runtime in operations components dynamic 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 ac managing 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 co representing an architecture that encompasses variability [START_REF] Dashofy | An Infrastructure for the Rapid Development of XML-based Architecture Description Languages[END_REF] architectural elements of software systems XML schemas concepts in the form of three schemas: variants schemas. concepts within xADL; this approach suffers from limitation between elements of different variation points. defines "switches component. any deployed configuration cannot be changed at runtim will 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 ADL Nevertheless 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, reconfigur architecture (modifying connection composing 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 operations components. 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 ac managing 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 co representing an architecture that encompasses variability ] is an ADL for modeling runtime and design architectural elements of software systems XML schemas concepts in the form of three schemas: schemas. concepts within xADL; this approach suffers from of expressing between elements of different variation points. switches component. The main limitation in Koala is its static nature; any deployed configuration cannot be changed at runtim will 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 ADL Nevertheless, 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, reconfigur architecture (modifying connection composing elements (substitution of composing elements).

ADLs are used dynamic software architecture. literature, only few of them support dynamic reconfiguration [START_REF] Medvidovic | Using objectoriented typing to support architectural design in the C2 style[END_REF], Darwin ACME/Plastik [13 scribe a specific {condition} do {operations} different choices at runtime. component at runtime operations In π 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 ac managing 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural elements of software systems XML schemas concepts in the form of three schemas: schemas. concepts within xADL; this approach suffers from of expressing between elements of different variation points.

switches The main limitation in Koala is its static nature; any deployed configuration cannot be changed at runtim will 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 evolv evolution of architecture at runtime may happen under several : adding/ removing composing elements, reconfigur architecture (modifying connection composing elements (substitution of composing elements).

ADLs are used dynamic software architecture. literature, only few of them support dynamic reconfiguration , Darwin 13] 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 [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 ac managing 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural elements of software systems XML schemas concepts in the form of three schemas: schemas. Concerning the integration of product lines concepts within xADL; this approach suffers from of expressing between 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 runtim will 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 evolv evolution of architecture at runtime may happen under several : adding/ removing composing elements, reconfigur architecture (modifying connection composing elements (substitution of composing elements). . 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 ac managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking [START_REF] Capilla | An overview of Dynamic Software Product Line architectures and techniques: Observations from research and industry[END_REF] ew existing approaches were co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 expressing 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 runtim will 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 [19 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 evolved or reconfigured at runtime. evolution of architecture at runtime may happen under several : adding/ removing composing elements, reconfigur architecture (modifying connection composing elements (substitution of composing elements). 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 ac managing the dynamic selection of variants, autonomous activation/ deactivation of composing elements, substitution of composing elements and dependency and constraint checking [START_REF] Capilla | An overview of Dynamic Software Product Line architectures and techniques: Observations from research and industry[END_REF].

ew existing approaches were co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 runtim will 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, reconfigur architecture (modifying connection composing elements (substitution of composing elements). 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 ac 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 runtim will require application recompilation, thus it is not suitable Otherwise, approaches that describe variability in product lines architecture are not based on the ser ], [START_REF] Jia | A New Architecture Description Language for Service-Oriented Architecture[END_REF] 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 architecture (modifying connection composing elements (substitution of composing elements).

to describe the prope dynamic software architecture. Among literature, 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 ac 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 runtim will 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 architecture (modifying connections), composing elements (substitution of composing elements).

to describe the prope Among literature, only few of them support dynamic reconfiguration , π-ADL and Dynamic Wright in [ is used To replace and attachments to respectively unlink and lin the architecture dynamic 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 ac 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 runtim will 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 prope Among existing ADLs in the literature, only few of them support dynamic reconfiguration ADL and Dynamic Wright [START_REF] Joolia | Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform[END_REF] is used To replace attachments to respectively unlink and lin the architecture dynamic 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 ac 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 runtim will 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 upgrading existing composing elements (substitution of composing elements).

to describe the prope existing ADLs in the literature, only few of them support dynamic reconfiguration ADL [11 and Dynamic Wright ], the expression " is used to toggle between To replace attachments to respectively unlink and lin the architecture dynamic 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 co representing an architecture that encompasses variability is an ADL for modeling runtime and design architectural 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 runtim will 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, reconfigur upgrading 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 reconfiguration 11], Rapide [14 , the expression " to toggle between To replace an instance of attachments to respectively unlink and lin the architecture dynamic since third party services can be discovered and Dynamic Software Product Line (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 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 runtim will require application recompilation, thus it is not suitable Otherwise, approaches that describe variability in product vicedescribe 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 upgrading 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 lin the architecture is 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 design is 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 runtim 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 ed or reconfigured at runtime. evolution of architecture at runtime may happen under several : adding/ removing composing elements, reconfigur upgrading 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 lin is 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 design is 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 runtim 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 ed or reconfigured at runtime. evolution of architecture at runtime may happen under several : adding/ removing composing elements, reconfigur upgrading 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 lin 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 representing an architecture that encompasses variability is an ADL for modeling runtime and designis 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 Thi evolution of architecture at runtime may happen under several : adding/ removing composing elements, reconfiguring upgrading 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 lin 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 representing an architecture that encompasses variability [START_REF] Nakagawa | Reference architectures and variability: current status and future perspectives[END_REF] -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 approach example is about four actors service 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 prepar the delivery of items to the customer.

B S architecture level is 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 approach example is about four actors service 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 prepar the delivery of items to the customer.

B. The DSOPL

In order to describe the runtime variability of a Service architecture level is structured Fig.

Structural abstract structural entities interfaces, operations)

2. Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative

Illustrative

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach example is about four actors services 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 prepar the delivery of items to the customer. We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach example is about four actors s, as m 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 prepar the delivery of items to the customer. We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach example is about four actors;

, as m 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 prepar the delivery of items to the customer.

YNAMIC llustrative example

We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach example 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 prepar the delivery of items to the customer. We will use throughout the paper an illustrative example to exemplify concepts related to our proposed approach example 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 prepar the delivery of items to the customer.

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 prepar the delivery of items to the customer. 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 prepar the delivery of items to the customer.

ADL structure

In order to describe the runtime variability of a roduct we propose an four sections element description abstract structural entities interfaces, operations).

Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative 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 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 prepar the delivery of items to the customer.

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. 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. 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, variation and also all alternative services of each variation point with 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 architecture variability 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 DSOPL based summarized in the : defines of the system Variability description: here, variation points are defined and also all alternative services of each variation point with 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 architecture variability 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 point with 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 architecture variability 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 point with the constraints related to each alternative.

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 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 Since services future exploiting systems, they should defined interfaces that describe their operations. Interfaces are two types, either required interface 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 An interface has

The structural description of a se model. A service architectural attributes has a name specified by Our approach architectural concern description of architecture in four sections, each of them specifying one type of architectural description has following 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 self with other services through composite grained . All other services in the hierarchical tree are composite implement any functionality its composing services. described as sub-architecture.

Each service has require a number of collection of methods or operations

Since services future exploiting systems, they should erfaces that describe their Interfaces are two types, either required interface 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 has a

The structural description of a se A service attributes has a name specified by . Structural description meta Our approach implicitly architectural concern description of architecture in four sections, each of them specifying one type of architectural description has following 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

D. Variability

Variability making changes to system's architecture. types of

1)

It represents preexample, there are two alternatives of shipment; either a relay point shipment or home delivery shipment The decision of which alternative to ch automatically 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_at service is atomic or composite. section example. The selection of the appropriate connection is done

SOPL-ADL>

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 shipment The decision of which alternative to ch automatically at ru addition 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 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 shipment The 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

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 shipment 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,

Variability of connection It may exist several

The selection of the appropriate connection is done 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 shipment 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,

Variability of connection It may exist several

The selection of the appropriate connection is done 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 shipment 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,

Variability of connection It may exist several alternative

The selection of the appropriate connection is done Possibl connection 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 during points overhead of loading the entire configuration at v elements has 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 constraints For example, the customer retailer service and thus connectio connection for a VIP customer which normally has some extra privileges. Fig.

3)

This type of variability concerns replacing not only a service or a connection services by another set of interconnected services composite architecture composition one in warehouse services, requested T 8. W exist in the system specifies the part of the architecture that can be variable. variation variation variation_type Possibl connection 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 during points overhead of loading the entire configuration at variation point has several elements has 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 constraints For example, the customer retailer service and thus connectio connection 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 connection services by another set of interconnected services mposite architecture composition one in warehouse services, requested

The meta We specify exist in the system specifies the part of the architecture that can be variable.

variation variation variation_type

Possible values of connection 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 during points c overhead of loading the entire configuration at ariation point has several elements has 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 constraints For 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. 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 constraints For 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

Variability of composition

The is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connection services by another set of interconnected services mposite architecture composition of Fig. 1. warehouse services, items he meta-model of variability e specify exist in the system specifies 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 runtime ould be s overhead of loading the entire configuration at ariation point has several to fill the selected has 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 automatically at runtime according to constraints For 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_point is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connection services by another set of interconnected services mposite architecture of supply_chain_management_service . Here warehouse services, items and returns model of variability e specify in this section exist in the system specifies the part of the architecture that can be variable. point

_name variation_type e values of or composition whether this variation may occur at ) or at approaches where variability is clearly and completely specified at design time important SOA systems, where selection an alternative runtime is totally poss ould be s overhead of loading the entire configuration at ariation point has several to fill the selected has 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 constraints For 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_point is an example of variability of connection.

Variability of composition

This type of variability concerns replacing not only a service or a connection services by another set of interconnected services mposite architecture supply_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 poss ould be specifi overhead of loading the entire configuration at ariation point has several to fill the selected has 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 constraints For 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_point is 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 level specifies 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 poss pecified at compile overhead of loading the entire configuration at ariation point has several to fill the selected has 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 constraints For 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_point is an example of variability of connection. 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 constraints For example, the customer service command ns; 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

Variability of composition

This type of variability concerns replacing not only a , but replacing services by another set of interconnected services Fig. 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 level specifies the part of the architecture that can be variable.

the following indicating that specifies the type of this variation. whether this variation may occur at . Contrary to traditional SPL where variability is clearly and completely [START_REF] Galster | Describing variability in service-oriented software product lines[END_REF], important in SOA systems, where selection of an alternative is totally poss ed at compile overhead of loading the entire configuration at ariation point has several alternatives to fill the selected variation 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. alternative with the highest . Example of connection variability in sales scenario . Example of composition variability in sales scenario automatically at runtime according to constraints service command ns; 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 services 7 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 level specifies the part of the architecture that can be variable.

the following indicating its unique name that specifies the type of this variation. model of variability description the different at architectural level specifies the part of the architecture that can be variable.

the following its unique name that specifies the type of this variation.

variation_type

) variation_time whether 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 compile overhead of loading the entire configuration at alternatives variation 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. description the different at architectural level specifies the part of the architecture that can be variable.

the following its unique name that specifies the type of this variation. 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. description is variation points A variation point specifies 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. is given variation points variation point specifies 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. given variation points variation point specifies 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 runtime which 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. given in Fig variation points variation point specifies 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. 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. constraints operate properly. conditions selected alternative (i.e. alternative can be selected, only if all constraints of pre represents desirable outcomes when process is completed successfully. crosscutting " F condition 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. constraints operate properly. conditions selected alternative (i.e. alternative can be selected, only if all constraints of pre represents 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_city Fig. 9) constraint "relaying_point_in_city condition= 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. constraints operate properly. conditions selected alternative (i.e. alternative can be selected, only if all constraints of pre represents 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 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> 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. constraints operate properly. conditions selected alternative (i.e. alternative can be selected, only if all constraints of pre represents desirable outcomes when process is completed successfully. crosscutting " eature M condition 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 pre represents desirable outcomes when process is completed successfully. crosscutting " Model 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 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

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 pre represents desirable outcomes when process is completed Pre and P crosscutting "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 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 P requires 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 Pre 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 P requires", in 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 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 , "excludes in 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 excludes in 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 excludes in 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. Each 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 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 "and For example, the pre condition that states that in order to choose the alternative ", the service " should be available in 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 available FM 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 available to 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 conditions a group of should be satisfied before executi selected 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 pre condition that states that in order to choose the alternative ", the service " should be available to a "requires feature 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 available requires feature On 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 precondition 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.

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. 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>

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 metamodel 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.

  ADLs are used to describe the prope dynamic software architecture. literature, only few of them support dynamic reconfiguration , Darwin and Dynamic Wright configuration {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]

  to describe the prope dynamic software architecture. literature, only few of them support dynamic reconfiguration , Darwin and Dynamic Wright configuration {condition} do {operations} different choices at runtime. detach part ADL [11 dynamic 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

  to describe the prope dynamic software architecture. literature, only few of them support dynamic reconfiguration [10 and 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

3 .

 3 Context description: v descriptions are based on information about context.

  Figure

  Figure

Figure 1 .

 1 Figure 1. Illustrative example:

  The DSOPL-ADL structure In order to describe the runtime variability of a riented architecture level, in four sections Structural element description abstract structural entities interfaces, operations) Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative Context description: v descriptions 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

  ADL structure In order to describe the runtime variability of a riented P , we propose an four sections element description abstract structural entities interfaces, operations) Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative Context description: v descriptions are based on information about context. about section of Configuration description ncrete services how to configure (generate) variability and context elements Illustrative example:

Figure 2 ERVICE

 2 Figure 2

  Context description: v descriptions are based on information about context. about context elements is the ADL. description and connections are how to configure (generate) variability and context elements Illustrative example: 2. Modular DSOPL ERVICE O

  ADL structure In order to describe the runtime variability of a roduct we propose an four sections, as element description abstract structural entities Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative Context description: variability and configuration descriptions are based on information about context. context elements is the ADL. description: here, connections are how to configure (generate) variability and context elements Illustrative example: Modular DSOPL

  ADL structure In order to describe the runtime variability of a Line we propose an XML as summarized in the element description abstract structural entities Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative ariability and configuration descriptions are based on information about context. context elements is the ADL. : here, connections are how to configure (generate) concrete architecture variability and context elements Illustrative example: online sales scenario architecture Modular DSOPL RIENTED

  In order to describe the runtime variability of a ine XML summarized in the element description: defines of the system Variability description: here, variation and also all alternative services of each variation point with the constraints related to each alternative ariability and configuration descriptions are based on information about context. context elements is : here, connections are concrete architecture variability and context elements nline sales scenario architecture Modular DSOPL RIENTED P

  ariability and configuration descriptions are based on information about context. described the rules used to create specified concrete architecture variability and context elements. nline sales scenario architecture

  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

Figure 3 .

 3 Figure 3. Structural description meta

  elements is an encapsulated and self with other services through composite grained services . All other services in the hierarchical tree are composite implement any functionality its composing services. architecture.has require a number of collection of methods or operations Since services future exploiting systems, they should erfaces that describe their Interfaces are two types, either required interface 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 a set ofThe structural description of a se A service attributes 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 has following 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 self with other services through composite 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 their Interfaces 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 se A 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 self with other services through ervice services. . All other services in the hierarchical tree are A composite service implement any functionality its composing services. architecture. a number of required interfaces. collection of methods or operations are developed independently from their future exploiting systems, they should erfaces that describe their Interfaces are two types, either Provided interface that the service whereas is an interface the service needs in order to operate. Services communicate to each other through provides/ consumes relationship via their provided/ required set operations The structural description of a se is described based on , as shown in Fig has a name specified by service_name . Structural description meta implicitly separate 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 self with other services through ervice and . Leaf services are called . All other services in the hierarchical tree are composite service implement any functionality by its composing services. architecture. a number of required interfaces. collection of methods or operations are developed independently from their future exploiting systems, they should erfaces that describe their Interfaces are two types, either Provided interface that the service realizes, whereas is an the needs in order to operate. Services communicate to each other through provides/ consumes relationship via their provided/ required operations The structural description of a se is described based on , as shown in Fig service_name . Structural description meta separate 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 self with other services through and is Leaf services are called . All other services in the hierarchical tree are composite service by itself its composing services. a number of provided interfaces and may required interfaces. collection of methods or operations are developed independently from their future exploiting systems, they should erfaces that describe their Interfaces are two types, either Provided interface 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 se is described based on , as shown in Fig service_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 self with 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 are are developed independently from their future exploiting systems, they should erfaces that describe their Interfaces are two types, either interface 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 ser is described based on , as shown in Fig service_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 self with other services through interfaces hierarchically Leaf services are called . All other services in the hierarchical tree are composite service , but it delegates this Each provided interfaces and may required interfaces.that are are developed independently from their future exploiting systems, they should erfaces that describe their Interfaces are two types, either interface 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 rvice reflect is 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 selfinterfaces hierarchically Leaf services are called . All other services in the hierarchical tree are composite service doesn' but it delegates this Each composite service is provided interfaces and may required interfaces. Interfaces that are are developed independently from their future exploiting systems, they should have erfaces 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 reflect is 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 this composite service is provided interfaces and may Interfaces that are supported by the are developed independently from their have solid and well functionalities provided interface of a service is an interface that the service realizes, whereas 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 reflect is described based on : (1) Every attribute. ( model of DSOPL

Figure 4 .

 4 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 shipment The decision of which alternative to ch automatically addition to other environmental conditions such as the existence of a relay point service in customer's city, depicted in Fig

Figure 4 .

 4 Figure 4. Structural

Figure 5 .

 5 Figure 5. Example of service variability in sales scenario

Figure 4 .

 4 Figure 4. Structural

  escription in SPL making changes to system's architecture.variability:

Figure 4 .

 4 Figure 4. Structural

  escriptionSPL making changes to system's architecture.

Figure 4 .

 4 Figure 4. Structural

  escription

Figure 4 .

 4 Figure 4. Structural description

  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 shipment 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,Variability of connectionalternative 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" 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 shipment 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, 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" ... 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 shipment 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, 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 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 cho 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="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="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 constraints For example, the customer retailer service and thus connectio connection for a VIP customer which normally has some extra privileges. Fig service or a connection services by another set of interconnected services co composition one in warehouse services, requested 8 exist in the system specifies the part of the architecture that can be variable. variation variation variation_type

  This type of variability concerns replacing not only a service or a connection services by another set of interconnected services mposite architecture composition one in Fig warehouse services, requested items he meta e specify exist in the system specifies 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 s overhead of loading the entire configuration at ariation point has several elements to fill the selected has a unique name priority.

Figure 6 .Figure 7 .

 67 Figure 6. Example of connection variability in sales scenario

  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 level specifies the part of the architecture that can be variable. has the following indicating 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 poss ed at compile overhead of loading the entire configuration at ariation point has several to fill the selected alternative

variation_type. ( 3 )

 3 whether this variation may occur at Contrary to traditional SPL approaches where variability is clearly and completely ], variation_time important in SOA systems, where selection of an alternative is totally possible. ed at compile overhead of loading the entire configuration at alternatives variation 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 constraints service 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 services illustrates another alternative supply_chain_management_service in addition to the roles of retailer and the manufacturer service them to the warehouse service.

  priority . Example of connection variability in sales scenario . Example of composition variability in sales scenario automatically at runtime according to constraints in 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 services illustrates another alternative supply_chain_management_service in addition to the roles of retailer and the manufacturer service the warehouse service.

  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-time overhead of loading the entire configuration at alternatives variation 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 constraints in 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 services illustrates 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.

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 services illustrates another alternative supply_chain_management_service in addition to the roles of retailer and the manufacturer service the warehouse service.

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 two 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 services illustrates another alternative supply_chain_management_service in addition to the roles of retailer and the manufacturer service the warehouse service.

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.

=" 1 ".

 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.

" 1 "

 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 Fig variation points that variation point Each 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

Figure 8 .

 8 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 P requires FM condition that states that in order to choose the alternative

  <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 .

 11 Figure 11. Some context descriptions from sales scenario

Figure 10 .

 10 Figure 10. Context description meta-model of DSOPL-ADL

Figure 13 .

 13 Figure 13. Configuration description of sales scenario

  functionalities of the service, its inputs and expected outputs.

	textual_description
	functionalities of the service, its inputs and expected outputs.
	is_atomic omic
	service is atomic or composite. service is atomic or composite.
	section description description
	example.
	ADL>
	<structural_ <structural_ <structural_description
	<service <service <service name="
	<interfaces> <interfaces> <interfaces>
	... ...
	</interfaces> </interfaces> </interfaces>
	<sub <sub-architecture> architecture>
	<service name="retailer_service" <service name="retailer_service" <service name="retailer_service"
	<interfaces> <interfaces> <interfaces>
	<interface name="i_order" role="provides"> <interface name="i_order" role="provides">
	<operation <operation
	<operation name="submit_order_request"
	<operation name="get_catalog"
	</operations> </operations>
	</interface> </interface>
	<interface <interface
	</interface> </interface> </interface>
	</interfaces> </interfaces> </interfaces>
	</service> </service> </service>
	<service name="warehouse_service" <service name="warehouse_service" <service name="warehouse_service"
	<interfaces> <interfaces> <interfaces>
	</service> </service> </service>
	</sub </sub-architecture> architecture>
	</service> </service> </service>
	<service name="customer_service" <service name="customer_service" <service name="customer_service"
	...
	</service> </service> </service>
	<service name="relay <service name="relay <service name="relay
	...
	</service> </service> </service>
	<service name="home_delivery_shipping_service" <service name="home_delivery_shipping_service" <service name="home_delivery_shipping_service"
	...
	</service> </service> </service>
	</structural_ </structural_ </structural_description
	<variability_ <variability_ <variability_description
	<context <context_description description
	configuration_description configuration_description configuration_description
	SOPL-ADL> ADL> ADL>
	Variability Variability
	Variability Variability
	making changes to system's architecture. making changes to system's architecture.
	types of types of variability:
	) S Service variability
	It represents It represents
	-conditioned constraints on runtime conditioned constraints on runtime
	example, there are two alternatives of shipment; either a relay example, there are two alternatives of shipment; either a relay
	point shipment or home delivery shipment point shipment or home delivery shipment
	The decision of which alternative to ch The decision of which alternative to ch
	automatically automatically
	addition to other environmental conditions such as the addition to other environmental conditions such as the
	existence of a relay point service in customer's city, existence of a relay point service in customer's city,
	depicted in depicted in
	Figure 5
	) Variability of connection Variability of connection
	It may exist several It may exist several
	ervices. ervices. The selection of the appropriate connection is done

textual_description

  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

.

  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> ...

.

  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
	... </

.

  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

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.