2014 IEEE 15th International Symposium on High-Assurance Systems Engineering

ArCMAPE: A Software Product Line Infrastructure to Support Fault-Tolerant Composite Services Amanda S. Nascimento Institute of Computing University of Campinas Campinas, SP, Brazil [email protected]

Cec´ılia M.F. Rubira Institute of Computing University of Campinas Campinas, SP, Brazil [email protected]

out of wrong specifications and incorrect coding [5], [1]. Because a number of alternate services can be found on the web to achieve a particular task [6], [3], several diversitybased solutions exist to support dependable service-oriented systems [4], [7], [8], [6], [9]. These solutions operate as mediators between clients and alternate services. The latter are structured in fault-tolerant composite web services [6], [5], called FT-compositions for simplicity. From the clients’ viewpoint, the FT-composition works as a single, reliable service [4]. SOA-based systems often rely in an environment that is highly dynamic and several decisions should be postponed until runtime, where we have different client with changing requirements, and fluctuations in the quality of services (QoS) are recurrent. A solution for FT-compositions should adapt itself to bring out fault tolerance strategies in close accordance with clients’ requirements and the environment. Nevertheless, a systematic review of solutions for FT-compositions [4] has shown us that (i) existing solutions do not support the choice of various software fault tolerance techniques, thus not being able to cope with various client requirements [7], [10], [8]; and (ii) few solutions support an adaptive fault tolerance mechanism [5], [6], [9], however such solutions do not support the separation of the fault tolerance and adaptation concerns. Dynamic Software Product Lines (DSPLs) provide the modelling framework to understand a self-adaptive system by highlighting the relationships among its parts [11]. DSPLs extend Software Product Lines to support late variability [11]. Software variability is the ability of a software system or artefact to be modified for use in a particular context [12]. At the requirement level, variability can be described in terms of features [13]. At the design level, variability is structured into Product Line Architectures (PLAs) in terms of variable architectural elements, their interfaces and their configurations [14]. In PLAs, variability can be reached by delaying certain architectural design decisions, which are described through variation points. Variants are the different possibilities that exist to satisfy a variation point. DSPLs ensure that a self-adaptive system moves from a consistent configuration to another by employing dynamic binding of variants [11]. We propose an DSPL infrastructure, called ArCMAPE, to support a family of software fault tolerance techniques based

Abstract—A number of solutions use software fault tolerance techniques based on design diversity to create fault-tolerant composite services that leverage functionally equivalent services. Nevertheless, these solutions are not able to adapt themselves at runtime to cope with dynamic changes of user requirements and fluctuations in the quality of services (QoS). We propose a self-adaptive solution, called ArCMAPE, that leverages ideas from Software Product Line Engineering to support fault-tolerant composite services. In particular, we specify a feature model and product line architecture to capture the common and variable features among a number of software fault tolerance techniques based on design diversity. ArCMAPE provides software components implementing the common features; and a foundation on which plug-in components, or variable components, can be easily added to realise the target variable features. At runtime, ArCMAPE dynamically instantiates software fault tolerance techniques tailored to the specific needs of different clients and contexts by employing feature-based runtime adaptations. Outcomes obtained from an empirical study suggest the feasibility and efficiency of our solution to support self-adaptive, faulttolerant composite services. We discuss the obtained outcomes and present directions for future work. Keywords-Self-Adaptation; SOA, Fault Tolerance;

I. I NTRODUCTION Design diverse software fault tolerance techniques (e.g. Recovery Block, N-Version and N-Self-Checking Programming) are used to cope with residual software design faults in operational software [1] by employing redundant software components called alternates1 , each with equivalent functionality yet different designs. These techniques differ in terms of (i) quality requirements (e.g. costs and reliability); and (ii) different type of alternates’ results they are able to adjudicate (e.g. simple or complex data types) that makes different techniques more suitable in different contexts. Today’s society is highly dependent on systems based on Service-Oriented Architectures (SOA) for its basic day-to-day functioning [3], [4]. A composite service, the basis for engineering SOA-based systems, can be regarded as a combination of activities invoked in a predefined order and executed as a whole [3]. Nevertheless, it is unlikely that services, usually controlled by third parties, are free from software faults arising 1 Although Laprie et al. [2] justifies the usage of the term ‘variants’, we use ‘alternates’ to avoid conflict with the notion of variant from SPL.

978-1-4799-3466-9/14 $31.00 © 2014 IEEE DOI 10.1109/HASE.2014.15

Fernando Castor Informatics Center Federal University of Pernambuco Recife, PE, Brazil [email protected]

41

 

on design diversity for FT-compositions, such as the most suitable technique is instantiated at runtime in accordance to the context. More specifically, we specified a feature model (FTFM) and a product line architecture (FT-PLA) model to capture the commonalities and variabilities among various software fault tolerance techniques based on design diversity [1], [15]. ArCMAPE was designed based on a reflective architecture to support separation of concerns. The meta-level relies on an autonomic loop [16] and leverages the FT-FM and FTPLA models at runtime for reasoning on the fault tolerance’s adaptive behaviour. The base-level is composed by the FT-PLA implementation. In particular, ArCMAPE provides software components implementing the common features; and a foundation on which plug-in components may be added at specified plug-in locations. The plug-in components, or variable components, should realise the target variable features. The plug-in locations, in turn, define the variation points. At runtime, ArCMAPE dynamically chooses suitable variable components to satisfy those variation points. The chosen variable components may provide better quality of service (QoS) or offer new services that did not make sense in the previous context (e.g. due to changes in client requirements). We present an empirical study to exemplify the use of ArCMAPE in a practical setting and to assess the time overhead it imposes to support late variability. Outcomes obtained suggest that ArCMAPE (i) is efficient to support self-adaptive FT-compositions; (ii) can be easily reused and extended; and (iii) does not introduce an excessive time overhead to support dynamic binding of variants. The main contribution of this work is to provide an infrastructure to dynamically derive software fault tolerance techniques for FT-compositions tailored to the specific needs of different clients and contexts.



    

   

Fig. 1.

Basic Design Diversity [1]

method to collect the details it needs from the system; to analyze those details to determine if something needs to change; to create a plan, or sequence of actions, that specifies the necessary changes; and to perform those actions [16]. The autonomic control loop provides the generic mechanism for self-adaptation. For instance, we focus on the feedback control loop proposed by IBM’s autonomic computing initiative, also known as the MAPE-K control loop [16]. MAPE-K includes the Monitoring, Analysing, Planning and Executing functions and is fed with knowledge, the K on MAPE-K [16]. C. Common Variability Language (CVL) CVL is a domain-independent language for specifying and resolving variability [17]. It allows the specification of variability over models of any language defined using a MOF-based metamodel. As illustrated in Figure 2, CVL encompasses three models (i) the base model is specified by means of a MOF-compliant language; (ii) the CVL variability model defines variability on the base model [17]; and (iii) the resolution model defines how to resolve the variability model to automatically generate product models, or resolved models, in the base language [17]. To generate the product models, the user can run the generic CVL model-to-model transformation [17]. This process is called materialisation. In general terms, a resolution model may be used to specify a feature configuration (i.e. a set of preselected features).

II. BACKGROUND We present some background concepts. A. Design Diverse Software Fault Tolerance Techniques Figure 1 illustrates the basic design diversity concept. Inputs are distributed to multiple software components, each with equivalent functionality yet different designs, called alternates. The alternates execute their operations and produce their results, from which a single correct or acceptable result must be derived, if any [1]. The mechanism responsible for this task is called an adjudicator, which generally comes in two flavours, voters and Acceptance Tests (ATs). There are various subtypes of voters and ATs ( [1] pages 269-324 and [4]). We refer to Pullum[1] for references for efficiency and capability investigations on various software fault tolerance techniques.





Fig. 2.

CVL transformation (or materialisation) [17]

III. T HE P ROPOSED S OLUTION

B. The MAPE-K Loop

We present a feature model (FT-FM) and a product line architecture (FT-PLA) for fault tolerance techniques applied to SOA. To develop the FT-FM and FT-PLA models, we employed a model-driven infrastructure for developing PLAs through a step-by-step refinement from high-level models into lower level abstractions [15]. This model-driven infrastructure

Software-based systems today increasingly operate in changing environments with variable user needs. Consequently, systems are increasingly expected to dynamically self-adapt to accommodate such changes [16]. For a system component to be self-adaptive, it must have an automated

42

FT-FM is a general feature model and it can be extended in order to cope with different clients’ requirements (e.g. by adding customized features and hierarchy relations). For example, we could create hierarchy relations to represent explicitly what adjudicators are able to judge a specific data type. In Figure 3(b), we illustrate an alternative hierarchy relation for the Adjudicator feature, which contains a String and a Integer as sub features. The String feature contains a Majority and a Consensus voter as alternative sub features. Whereas, results belonging to the Integer data type can be judged by either a Median or a Mean voter.

encompasses a set of process, models, and tools to ensure that product line models are correctly specified [15]. FT-FM and FT-PLA were used to drive the development of ArCMAPE. A. Feature Model for Fault Tolerance applied to SOA (FT-FM) To identify features, we analysed (i) the domain knowledge of design diversity - e.g. [1], [2], [18], [6]; (ii) the various types of adjudicators and their operations [1], [4]; and (iii) requirements that service compositions in general should encompass (e.g. autonomic composition of services and QoSaware service compositions [3]). In Figure 3(a) we show an excerpt of the resulting feature model (FT-FM). According to FaMa-FM [19], a largely accepted test suite to support automated analysis of feature models [19], [15], FT-FM is a valid model and it encompasses 36 products - considering the various subtypes of adjudicators, omitted to avoid an unreadable feature model. FT-FM also represents constraints between features (mutual dependency, when a feature requires another, and mutual exclusion, when a feature excludes another [13]). In Figure 3(a), the Executive feature aims to orchestrate a software fault tolerance technique operation. It is composed of seven mandatory features. Consistency of input data can be achieved either implicitly through backward error recovery, or explicitly through a synchronization regime [1], [18]. Execution scheme represents the three possible ways for executing alternate services [1], [4], [18]. In conditionally sequential execution, the system executes the first alternate and sends its result to an adjudicator. If this alternate fails, another alternate is executed until a correct result is obtained, if any. In fully sequential and parallel, all the alternates are executed respectively, sequentially and in parallel, then an adjudicator is invoked to judge the results obtained [1], [4]. Judgement on result presents how the judgement should be performed, either with an absolute criteria (involving the result of only one alternate service), or a relative criteria (involving the results of more than one alternate service). Adjudicator captures a set of variable features related to the different ways that can be employed for detecting errors: by acceptance testing, voting or comparison [18]. The Number of Alternate Services for tolerating f sequential faults represents the number of alternate services to tolerate f solid faults [1], [18], [2]. A solid software fault is recurrent under normal operation or cannot be recovered [2]. In contrast, a soft software fault is recoverable and has a negligible likelihood of recurrence. Provided there are no fault coincidences, an architecture tolerating a solid fault can also tolerate a (theoretically) infinite sequence of soft faults [2]. Suspension of operation delivery during error processing indicates whether the error recovery technique suspends the execution when an error is detected [1], [18]. In case the execution is suspended, it is necessary to define what the purpose of the suspension is: either for re-executing the target operation or for switching to another result. Alternate Services represents which alternate services will be leveraged by a FT-composition. Alternate services should be selected and executed by means of dynamic connectivity capabilities [3].

B. PLA for Fault Tolerance applied to SOA (FT-PLA) We adopt the FArM method (Feature-Architecture Mapping) to map from features to a PLA [15], [20]. By iteratively refining the initial feature model, FArM enables the construction of a transformed feature model containing exclusively functional features, whose business logic can be implemented into architectural components [20]. In a simplified manner, FTFM (Figure 3) was transformed based on mutual dependencies between its features [15]. We refer to our previous work for a detailed description of the performed transformations [15]. Figure 4 shows an excerpt of the resulting FT-PLA. We have omitted architectural connectors and interface names for the sake of clarity. Executive, AltServiceSelectionMgr, ExecutionSchemeMgr and AdjudicatorMgr are in charge of implementing the mandatory features - respectively, to manage the execution of a fault tolerance technique; to manage the selection and execution of alternate services; and to manage the judgement on results from the alternate services. The different types of execution schemes (e.g. sequential and parallel) and adjudicators (e.g. the various subtypes of ATs and voters [1]) and different alternate services (rarely more than 3 alternates [1]) are variable features. The variable features are realised by variable components, which can be added at specified plug-in locations, i.e. the variation points (Figure 4). Furthermore, we adopt CVL to specify and resolve architectural variability explicitly and systematically (Section II-C). By using CVL, we are able to produce the right product models automatically given a resolution model encompassing a set of preselected features (Figure 2). This facility is mainly used by ArCMAPE to generate adaptation plans dynamically, as discussed in Section III-C3. For instance, our base model is based on the model in Figure 4 and is specified by using Unified Modelling Language (UML), a MOF-based language. In Figure 4, for example, suppose we have, besides the three alternate services (i) a parallel and a fully sequential execution scheme; and (ii) a median and a majority voter. Under this circumstance, a resolution model could be composed by the following features: Parallel execution scheme; Service 1, Service 2 and Service 3; and Median Voter. Therefore, after executing the CVL transformation we would have a product model related to the N-Version Programming technique with a median voter. The UML-based FT-PLA and the CVL variability model was specified by means of, respectively, the CVLEnable Papyrus and CVl Eclipse Plug-in [15].

43



 

 

 ( 

 ) 

 

 



*

  . ! #

  

 



 $   





!



 

 

 /%#

0$

   

0    $

   



 #  0 

  -

 

  

&#   



-    

  





*+,



   



'$  

       $ #   #

"      #     

!  % 



 0 

# 0$  

0 !

Fig. 3. (a) A Feature Model for Software Fault Tolerance Techniques Applied to SOA (notation proposed by Ferber et al. [13]); (b) An alternative hierarchy relation for the Adjudicator feature in which data types adjudicators are able to judge are explicitly represented.



  

 



 

  

Fig. 4.







An excerpt of FT-PLA

C. ArCMAPE As illustrated in Figure 5, ArCMAPE relies on a dynamic component framework and was designed on a reflective architecture. The base-level, or running system, is oblivious to the adaptation level, which is modularized as a standalone module, or aspect [21]. At runtime, the adaptation logic intercepts the running system when a requisition is sent by a client to ArCMAPE. A dynamic adaptation corresponds to the dynamic instantiation of a software fault tolerance technique, i.e. a product, that satisfies high-level policies while maximizes the utility value, or subjective preferences. The latter is calculated based on pre-defined weights for QoS. Sensors and effectors are used, respectively, to gather details about and change the behaviour of the running system [16]. In the following, we go into detail on the knowledge base, and the base and meta levels. 1) The Knowledge Base: It is composed by FT-FM; FTPLA (including the CVL variability model); high-level policies defined as Event-Condition-Action (ECA) rules; reflection product model, which abstracts the running software fault tolerance technique; and details on the current context. Specifically, the ECA rules are used to handle known and common

Fig. 5.

An Overview of ArCMAPE

changes in a deterministic way [22]. By using ECA rules, general conditions are mapped to actions, which represent a set of pre-selected features. In general terms, rules can be specified in terms of client preferences; number of alternate services; result data types that adjudicators are able to judge; service descriptions; and availability of adjudicators and execution schemes. For example, to avoid inconsistencies, we could specify that credit card payment operations should always be invoked by means of a conditionally sequential execution scheme and their results judged by acceptance tests. 2) The Fault Tolerance Level: This level, also called baselevel or running system, encompasses the implementation of the FT-PLA (Figure 4). For instance, we have already implemented the mandatory features, which are realised by the Executive, ExecutionMgr, AdjudicatorMgr and AltServiceSelectionMgr software components. These components serve as central access point for functionality from and to

44

components implementing the variable features. The variable components should be added in the variation points. These variable components are usually dependent on the domain e.g. an adjudicator able to judge an application specific data type; an execution scheme to invoke SOAP (or JAVA RMI) services; and a set of alternate services realising an application specific task. The FT-FM and the FT-PLA models should be consistent. Because the proposed feature model (Figure 3) is a more general model, it might be necessary to configure the FT-FM model to use it in practical settings (e.g. addition or removal of variable features). 3) The Adaptation Level: Unlike the FT-PLA, the adaptation level, or meta-level, is independent of the application, thus it can be reused across different domains. The input for the execution of the adaptation logic consists of the assets from the knowledge base. These assets serve as a basis for reasoning about the environment and determining a software fault tolerance technique suitable to the current context. Therefore, the effort to design adaptation logic explicitly is decreased. The adaptation level, which is already implemented, relies on an autonomic control loop [16], for instance, the MAPE-K loop (Section II-B), as described in the following. The M onitor Component collects details from the base-level through Sensors. Sensors should log any significant changes that appear in the running system (e.g. addition/removal of components). For instance, when software components are removed, the Monitor is in charge of disabling selection of its related features to avoid inconsistencies. On the other hand, when software components are added, a software engineer is in charge of keeping the knowledge base up-to-date. Furthermore, M onitor monitors QoS values of software components implementing the variable features, including the alternate services. M onitor also computes the utility of the functional variable features based on pre-defined weights for QoS. We adopt the concept of sub-trees, denoted as ST , to group a collection of features with a common (either identical or similar) functionality but possibly different QoS. These sub-trees are automatically identified by analysing the FTFM. For example, in Figure 3(b), we have two sub-trees: ST(String)={Majority, Consensus}, ST(Integer)={Mean, Median}. For each feature of a sub-tree (ST ) is associated a QoS vector [q1 , ..., qm ] (e.g. [availability, reliability, memory consumption, financial cost]). Suppose there are α QoS values to be maximized and β QoS values to be minimized. The utility function for a feature k in a sub-tree ST is defined as proposed by Yo and Lin [23]: β α qai (k)−μai F (k)ST = + j=1 wj ∗ (1 − i=1 wi ∗ σai qbj (k)−μbj ) σbj where w is the weight parameter set by a α for each QoS β client (0 < wi , wj < 1, i=1 wi + j=1 wj = 1, α+β = m). μ and σ are, respectively, the average value and the standard deviation of the QoS attribute for all candidates in the ST sub-tree. The Analyse Component selects the most suitable features if adaptation is required. First, Analyse ensures that clients

and applications requirements are addressed by executing at runtime the pre-defined ECA rules. Second, it selects a set of variable features that present the highest utility value while satisfying feature constraints from the FT-FM. More specifically, executing ECA rules might result in leaf features or features identifying sub-trees. For example, in Figure 3(b), if a String adjudicator is selected, we identify a sub-tree composed by Majority Voter and Consensus Voter, whereas if Consensus is selected, we have a leaf feature. In the first case, it is necessary to find out the feature that present the highest utility of the identified sub-tree. At this stage we handle unknown changes since QoS values vary over time. We adopt a greedy algorithm to recursively find out the most valuable feature of each sub-tree - a different maximization model could be adopted. Once we have identified the most valuable adjudicator, execution scheme and alternate services, if these features are different from the ones encompassed by the currently running fault tolerance strategy, a dynamic adaptation is required. As a consequence, the set of required features is passed to the plan function. The P lan Component identifies the set of software components to be (un)bound in order to actually adapt the running system in agreement with the requisition sent by the Analyse component. First, it dynamically generates a CVL resolution model (Figures 2) in accordance with the set of required features. Subsequently, a new product model is generated at runtime accordingly by executing CVL model-to-model transformation (see example in Figure 4). By comparing the new product model with the reflection product model, the plan function dynamically generates a change plan [24]. Models comparisons are specified as follows. The T M and RM are defined as the set of, respectively, all elements of the new model and all elements of the reflection model. The corresponding configuration change, ΔC, is defined as a pair (ΔC⊕ , ΔC ), such as, ΔC⊕ is the set of all the elements of the new model that have no matching counterpart in the reflection model, whereas ΔC is the set of all the elements of the reflection model that have no matching counterpart in the new model [25]. Architectural components related to the model elements belonging to the ΔC⊕ should be bound at runtime. On the other hand architectural components related to the model elements belonging to the ΔC should be unbound at runtime. The ΔC⊕ and ΔC set are specified as follows: ΔC = (ΔC⊕ , ΔC ) ΔC⊕ := T M \ RM ΔC := RM \ T M If (ΔC⊕ = ∅ and ΔC = ∅), than no adaptation is required, otherwise it is necessary to update the reflection model (RM = T M ) [25]. The change plan, composed by ΔC⊕ and ΔC , is logically passed to the Execute component. The Execute Component generates reconfiguration scripts on the fly in accordance with the adaptation plan in order to realise the causal connection between high-level abstractions from the meta-level and the running system (base-level). Effectors execute these scripts in order to finally instantiate the most adapted software fault tolerance technique. To correctly

45

handle the life-cycle of the running components we adopt the topological sorting of command suggested in [24]: components, which should be stopped, are stopped and then bindings are removed before removing components. Components are added before adding bindings and components, which should be (re-)started, are (re-)started. 4) The ArCMAPE Implementation: It used Equinox, an implementation of the OSGi R4 core framework specification [26]. Sensors and Effectors were implemented by means of APIs for introspection and reconfiguration provided by the OSGi platform [26]. Software components were implemented according to COSMOS* [27], a component implementation model that materializes the elements of a software architecture using the concepts available in object-oriented programming languages [27], [15]. At runtime, to bind software components in the base-level, we employ a service locator, instead of traditional architectural connectors. The ‘service locator’ is used by Effectors and acts as a simple run-time linker. To programmatically and dynamically create CVL resolution models and invoke CVL model-to-model transformation, we extended a headless (a non-GUI) CVL Eclipse Plugin. For product models comparisons, we use EMF Compare [28]. EMF Compare is a comparison engine that compares any kind of models producing as results a diff and a match model that specifies, respectively, the differences and the similarities between the source and the target models [24]. ECA-based rules are defined and managed by employing a rule engine, for instance, the JRuleEngine engine [29]. To modularize the meta-level as an aspect, we use Aspectj, an aspectoriented extension for the Java programming language [21].

Fig. 6.

An excerpt of the high-level architecture of FT-e-credit.

ecutions schemes (fully sequential, parallel and conditionally sequential ones); (iii) one majority voter able to judge Boolean data type; and (iv) one computer run-time acceptance tests, which detects anomalous answers (e.g. timeout exceptions or undefined operation code) [1]. To have an executable instance of ArCMAPE, we provide software components implementing these variable features. The target adjudicators were implemented based on pseudo code samples provided by Pullum [1]. To implement the execution schemes, we reused the implementation provided by Chen and Romanovsky [31]. All these variable components were implemented and plugged in the base level. To implement the alternate services we have adopted scripts in order to random generate 1 or 0 (i.e. credit requisition has been approved or denied) and exceptions, for instance, undefined operation code [1]. The alternate services rely on the SOAP/WSDL protocol and were deployed in a remote server. We customized the FT-FM (Figure 3) and the FT-PLA (Figure 4) according to the target variable features. For instance, FT-FM-ecredit and FT-PLA-ecredit support 5 different software fault tolerance techniques, or products. To define the target fault model (i.e. the faults that should be tolerated [1]), we taken into account a fault taxonomy for service-oriented architectures defined by Bruning et al. [32]. The target fault models includes discovery faults, including no service found and timeout; and execution fault, including incorrect results, undefined operation codes and time out. Furthermore, because there are three alternate services, we are able to tolerate 2 sequential faults when using acceptance tests and 1 sequential fault when using voters [1] (Figure 3). To calculate the utility of each one of the functional variable features at runtime, we mocked the M onitor component implementation. For that, we programmatically simulated changes in QoS of variable features, for instance, reliability, memory consumption and financial costs. Changes on user preferences were also simulated (weights for QoS). To programmatically simulate these inherent instabilities of a real execution scenario is a sufficient condition to trigger dynamic adaptations. We implemented a client application (a store) to send requisitions for credit decisions to e-credit, which, in turn, invokes ArCMAPE. For instance, 5000 requisitions were sent and the amount required was generated at random ($200 $10000). Finally, we taken into account the following ECA rule: if the amount of credit line required is greater than $5000 then the alternate services should be executed in parallel or in a fully sequential way and results obtained should be judged by the majority voter; otherwise the alternate services should

IV. E VALUATION We present a case study, called e-credit, based on an enterprise application, described in [30], that provides instant credit decisions for in-store purchases. Among other functionalities of e-credit, we focus on the approval of credit line. When a customer in a retail store wishes to purchase an expensive item, the store clerk offers the customer an instant line of credit to make the purchase and pay later. If the customer is interested in obtaining the line of credit, the customers information and a request for credit is sent to the remote ecredit server for approval. E-credit, in turn, invokes remote web services to realise the credit decision, which is based on the analysis of the customer’s credit card records. This information can be purchased from multiple vendors at varying prices based on volume. Different vendors employ different algorithms to make a credit decision. A failure to make a decision could result in a customer not making a purchase or in approving a credit line that would have to be denied. To face software faults, we develop the FT-e-credit, which leverages ArCMAPE to support FT-compositions. An excerpt of the high-level architecture of FT-e-credit is shown in Figure 6. ArCMAPE acts as a mediator between e-credit and alternate services, used to implement fault tolerance techniques. Related to ArCMAPE, besides its mandatory features, we taken into account (i) three alternate services; (ii) three ex-

46

separation of the adaptation and the fault tolerance logics. By reusing models from design time to automatically generate adaptation plans at runtime is a suitable approach to decrease the effort to design adaptation logic explicitly. Therefore, ArCMAPE supports maintainability and flexibility of software fault tolerance techniques applied to SOAs.

be executed in a conditionally sequential way and the results from services should be judged by the acceptance test. During adaptation processes on DSPLs, the cost to monitor the context data and execute plans in order to deploy new configurations can be considered fixed [33]. However, it is critical to make the plan task as efficient as possible because it depends on the number of variable features [33]. As a consequence, we measured the time required to generate adaptation plans dynamically in order to analyse the overhead imposed by ArCMAPE to support late variability. In Table I, we present the approximate time obtained to (i) execute each one of the target software fault tolerance techniques (which includes the time required to execute the alternate services about 10 ms); and (ii) generate adaptation plans at runtime. The median time required to generate adaptation plans at runtime is about 73 ms, which tends to be very close to the mean time (82.58 ms). The slowest and the highest median time to execute a fault tolerance is, respectively, about 388 ms (Technique 1) and 846.00 ms (Technique 4). In the worst case, the median time to execute ArCMAPE is about 18.04% of the time to execute a software fault tolerance technique (Technique 1). Furthermore, the execution of the fault tolerance techniques might present higher values for the standard deviation due to inherent instabilities of the Internet, as the alternate services are available remotely.

VI. R ELATED W ORK A systematic literature review of diversity-based solutions for FT-compositions has shown us the main drawbacks and contributions of these solutions. Firstly, some solutions support only one software fault tolerance technique which is not easily customizable to face changing requirements [7], [10], [8]. Secondly, some solutions are able to face changing requirements at runtime by selecting and executing the most appropriate software fault tolerance technique [5], [31]. Nevertheless, these solutions do not considerer separation of concerns between adaptation and fault tolerance logics. Unlike existing solutions, ArCMAPE supports flexibility, including at runtime, in terms of (i) selection and execution of alternate services; (ii) adjudication of results from the alternate services; and (iii) specification of high-level policies so that fault tolerance techniques are executed accordingly. ArCMAPE is an extension of our very preliminary solution for FT-compositions [6], which presents some drawbacks: (i) models leveraged at runtime were specified in an ad hoc way, thus, it is difficult and error prone to specify and validate them; (ii) fault tolerance and adaptation logics were not clearly separated; and (iii) adaptations were defined solely by ECAs (it might be not scalable [22]). With respect to the solutions for DSPLs, MADAM [34] leverages architectural models at runtime to reason about adaptation and uses the adaptation capabilities offered by dynamic platforms to support late variability [34]. The EU MUSIC project [35] extends the solution developed in MADAM to ubiquitous computing and SOA. Morin et al. [24] use modeldriven engineering (MDE) and aspect-oriented modelling techniques to support runtime variability and dynamic generate product models. These solutions [24], [34], [35] also rely on models comparisons to generate adaptation plans. Unlike these solutions [24], [34], [35], in our work, product models are systematically and dynamically generated by CVL transformations, which is also a novel contribution.

V. D ISCUSSION To evaluate ArCMAPE we employ it to support FTcompositions within an enterprise application that provides instant credit decisions for in-store purchases, the FT-e-credit application. Although the evaluation is preliminary, outcomes from the empirical study suggest that ArCMAPE is efficient to derive at runtime suitable software fault tolerance techniques and does not imply in an excessive time overhead to support late variability. We have ‘mocked’ the implementation of the target alternate services, however, it should be noticed that if we had employed more complex alternate services it would have no negative effect on our final conclusions because more complex systems usually take larger time to execute. To specify a family of software fault tolerance techniques to develop FT-e-credit was greatly facilitated by two main facts. First, a general feature model and product line model was previously defined in order to identify commonalities and variabilities among various software fault tolerance techniques (i.e. models in Figure 3 and Figure 4). Secondly, the employed models are supported by existing tools, identified by the employed model-driven infrastructure for developing PLAs [15]. It was straightforward to specify customized models. By instantiating ArCMAPE, we realised that the effects of changes, such as the removal and addition of features, were localized. This mainly happened due to two reasons. First, ArCMAPE explicitly supports well-defined extension points in which software components implementing variable features can be added. The explicit integration of plug-in mechanisms in the PLAs reduces the effort for the composition of the final products [20]. Second, ArCMAPE supports an explicit

VII. C ONCLUDING R EMARKS We presented ArCMAPE, a novel DSPL infrastructure to support self-adaptive, fault-tolerant composite services. ArCMAPE allows leveraging a family of software fault tolerance techniques based on design diversity at runtime and instantiates the most suitable one through dynamic management of software variability. The most suitable technique is instantiated in close accordance with high-level policies and the current context. We exemplified the use of the proposed solution and evaluated it. Preliminary results suggest that ArCMAPE is easily reused and customized and does not introduce an excessive overhead to support dynamic management of variability.

47

TABLE I T IME OVERHEAD IMPOSED BY A R CMAPE ( IN MILLISECONDS MS ) Activity Specification Tec. 1: Parallel + Majority + Alt. Services Tec. 2: Fully Sequential + Majority + Alt. Services Tec. 3: Parallel + ATs + Alt. Services Tec. 4: Fully Sequential + ATs + Alt. Services Tec. 5: Conditionally Sequential + ATs + Alt. Services ArCMAPE: Generate Adaptation Plans Dynamically

Mean 1578.80 1767.60 1597.594 1829.58 453.36 82.58

For further work, we intend to perform more experiments to evaluate scalability of ArCMAPE by employing a larger number of fault tolerance techniques and client applications.

Median 388.00 842.50 409.00 863 445.6 73

St.Deviation 24566.26 17202.45 24566.35 17592.91 176.15 38.93

# Executions 902 889 724 1002 1483 2742

[16] “An Architectural Blueprint for Autonomic Computing,” jun 2013. [Online]. Available: http://www-01.ibm.com/software/tivoli/autonomic/ pdfs/AC\ Blueprint\ White\ Paper\ 4th.pdf [17] C. V. Language, “start — common variability language,” 2012, [Online; accessed 24-April-2013]. [Online]. Available: http://www.omgwiki.org/ variability/doku.php?id=start&rev=1351084099 [18] P. Brito, C. Rubira, and R. de Lemos, “Verifying architectural variabilities in software fault tolerance techniques,” in Proc of the WICSA/ECSA 2009, sept. 2009, pp. 231 –240. [19] “Fama framework,” Apr 2013, http://www.isa.us.es/fama. [20] P. Sochos, M. Riebisch, and I. Philippow, “The feature-architecture mapping (farm) method for feature-oriented development of software product lines,” in Proc.the 13th ECBS, 2006, pp. 308–318. [21] R. Laddad, AspectJ in Action: Enterprise AOP with Spring Applications, 2nd ed. Greenwich, CT, USA: Manning Publications Co., 2009. [22] N. Bencomo, S. Hallsteinsen, and E. Almeida, “A view of the dynamic software product line landscape,” Computer, vol. 45, no. 10, pp. 36–41, oct 2012. [23] T. Yu and K.-J. Lin, “Service selection algorithms for composing complex services with multiple qos constraints,” in Proc. of ICSOC’05, 2005, pp. 130–143. [24] B. Morin, O. Barais, J. Jezequel, F. Fleurey, and A. Solberg, “Models@ run.time to support dynamic adaptation,” Computer, vol. 42, no. 10, pp. 44–51, 2009. [25] M. Rosenmuller, N. Siegmund, M. Pukall, and S. Apel, “Combining runtime adaptation and static binding in dynamic software product lines,” School of Computer Science, University of Magdeburg, Tech. Rep. 02, 2011. [Online]. Available: http://wwwiti.cs.uni-magdeburg.de/ iti db/publikationen/ps/auto/RSPA11.pdf [26] “OSGi - The Dynamic Module System for Java,” last access: Feb. 2013. [Online]. Available: http://www.osgi.org/Main/HomePage [27] L. A. Gayard, C. M. F. Rubira, and P. A. de Castro Guerra, “COSMOS*: a COmponent System MOdel for Software Architectures,” Inst. of Computing, University of Campinas, Tech. Rep. IC-08-04, Feb 2008. [28] E. M. F. T. (EMFT), “Eclipse modeling framework technology (emft),” 2013, [Online; accessed 24-April-2013]. [Online]. Available: http://www.eclipse.org/modeling/emft/ [29] JRuleEngine, “Jruleengine,” 2016, [Online; accessed 05-August-2013]. [Online]. Available: http://jruleengine.sourceforge.net/ [30] J. White, B. Dougherty, H. Strowd, and D. Schmidt, “Using filtered cartesian flattening and microrebooting to build enterprise applications with self-adaptive healing,” in Soft. Engineering for Self-Adaptive Systems, ser. Lect. Notes in Comp. Science, 2009, vol. 5525, pp. 241–260. [31] Y. Chen, “Ws-mediator for improving dependability of service composition,” Ph.D. dissertation, Newcastle University, Newcastle upon Tyne, United Kingdom, 2008. [32] S. Bruning, S. Weissleder, and M. Malek, “A fault taxonomy for serviceoriented architecture,” in Proc. of the 10th HASE, 2007, pp. 367–368. [33] G. Brataas, S. Hallsteinsen, R. Rouvoy, and F. Eliassen, “Scalability of Decision Models for Dynamic Product Lines,” in Proc. of the Int. Work. on DSPL, sep 2007, pp. 23–32. [34] K. Geihs, P. Barone, F. Eliassen, J. Floch, R. Fricke, E. Gjorven, S. Hallsteinsen, G. Horn, M. U. Khan, A. Mamelli, G. A. Papadopoulos, N. Paspallis, R. Reichle, and E. Stav, “A comprehensive solution for application-level adaptation,” Softw. Pract. Exper., vol. 39, no. 4, pp. 385–422, Mar. 2009. [35] R. Rouvoy, P. Barone, Y. Ding, F. Eliassen, S. Hallsteinsen, J. Lorenzo, A. Mamelli, and U. Scholz, “Software engineering for self-adaptive systems,” B. H. Cheng, R. Lemos, H. Giese, P. Inverardi, and J. Magee, Eds., 2009, ch. MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments, pp. 164–182.

ACKNOWLEDGMENT This research was sponsored by UOL (www.uol.com.br), through its UOL Bolsa Pesquisa program, process number 20120217172801. Fernando is supported by CNPq (306619/2011-3), FACEPE (APQ-1367-1.03/12), and by INES (CNPq 573964/2008-4 and FACEPE APQ-1037- 1.03/08). Cec´ılia is supported by CNPq (305331/2009-4) and FAPESP (2010/00628-1). R EFERENCES [1] L. L. Pullum, Software fault tolerance techniques and implementation. Norwood, MA, USA: Artech House, Inc., 2001. [2] J. C. Laprie, C. B´eounes, and K. Kanoun, “Definition and analysis of hardware- and software-fault-tolerant architectures,” IEEE Computer, vol. 23, no. 7, pp. 39 –51, Jul. 1990. [3] M. P. Papazoglou, P. Traverso, S. Dustdar, and F. Leymann, “Serviceoriented computing: State of the art and research challenges,” Computer, vol. 40, no. 11, pp. 38 – 45, 2007. [4] A. S. Nascimento, C. M. F. Rubira, R. Burrows, and F. Castor, “A systematic review of design diversity-based solutions for fault-tolerant soas,” in Proc. the 17th EASE, 2013, pp. 107–118. [5] Z. Zheng and M. R. Lyu, “An adaptive qos-aware fault tolerance strategy for web services,” Empirical Software Engineering, vol. 15, no. 4, pp. 323 – 345, 2010. [6] A. S. Nascimento, C. M. F. Rubira, and J. Lee, “An spl approach for adaptive fault tolerance in soa,” in Proc. of SPLC’15, vol. 2, no. 15, pp. 1–8. [7] N. Looker, M. Munro, and J. Xu, “Increasing web service dependability through consensus voting,” in In Proc. of the 29th annual Intl. Conf. on Comp. Soft. and applications, ser. COMPSAC-W’05, 2005, pp. 66–69. [8] E. Nourani, “A new architecture for dependable web services using nversion programming,” in 3rd Intl. Conf. on Computer Research and Development, vol. 2, 2011, pp. 333 –336. [9] G. Kotonya and S. Hall, “A differentiation-aware fault-tolerant framework for web services,” in Service-Oriented Computing, ser. Lecture Notes in Computer Science, 2010, vol. 6470, pp. 137–151. [10] G. T. Santos, L. C. Lung, and C. Montez, “Ftweb: A fault tolerant infrastructure for web services,” in In Proc. of the 9th IEEE Intl. EDOC Enterprise Computing Conf., ser. EDOC ’05, 2005, pp. 95–105. [11] L. Baresi, S. Guinea, and L. Pasquale, “Service-oriented dynamic software product lines,” IEEE Computer Computer, vol. 45, no. 10, pp. 42–48, 2012. [12] Jilles Van Gurp, J. Bosch, and M. Svahnberg, “On the notion of variability in software product lines,” in Proc. of WICSA ’01, ser. WICSA ’01, 2001. [13] S. Ferber, J. Haag, and J. Savolainen, “Feature interaction and dependencies: Modeling features for reengineering a legacy product line,” in Proc. SPLC 2002, ser. SPLC 2, 2002, pp. 235–256. [14] K. Pohl, G. B¨ockle, and F. J. v. d. Linden, Software Product Line Engineering: Foundations, Principles and Techniques. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2005. [15] A. S. Nascimento, C. Rubira, R. Burrows, and F. Castor, “A modeldriven infrastructure for developing product line architectures using cvl,” in CBSoft 2013 - SBCARS 2013, may 2013.

48

ArCMAPE: A Software Product Line Infrastructure to ... - IEEE Xplore

from Software Product Line Engineering to support fault-tolerant composite services ... ational software [1] by employing redundant software compo- nents called ...

469KB Sizes 2 Downloads 255 Views

Recommend Documents

Optimized Software Implementation of a Full-Rate IEEE ... - IEEE Xplore
Hardware implementations are often used to meet the high-data- rate requirements of 802.11a standard. Although software based solutions are more attractive ...

Infrastructure for a clinical- decision-intelligence system - IEEE Xplore
Dec 27, 2006 - management and application development. The goal of ... discuss the functional requirements and reference architecture for CDI systems and.

A Novel Error-Correcting System Based on Product ... - IEEE Xplore
Sep 23, 2011 - with large changes in signal amplitude and large values of log-likelihood ratios ... Low-density parity check (LDPC) codes and Reed-Solomon.

Components of software development risk: how to ... - IEEE Xplore
component analysis, we derive six components of software development risk. In the fourth section, we examine which risk management practices and ...

Ad Hoc Networking With Rate-Limited Infrastructure ... - IEEE Xplore
Computer Science and Engineering. Dankook University. Yongin, Republic of Korea. Email: [email protected]. Abstract—Capacity scaling of a large hybrid ...

Software Product Line Variability: A Systematic ...
[6] F. Bachmann, M. Goedicke, J. C. S. do Prado Leite, R. L.. Nord, K. Pohl, B. Ramesh, and A. Vilbig. A meta- model for representing variability in product family devel- opment. In Proc. of the 5th International Workshop on Soft- ware Product-Family

A Framework for Software Product Line Practice ... - SEI Digital Library
line development. The framework is a product line encyclopedia; it is a Web-based document describing the essential activities and practices, in both the technical and ... ence decisions regarding the adoption of product line practices, as well as th

IEEE Photonics Technology - IEEE Xplore
Abstract—Due to the high beam divergence of standard laser diodes (LDs), these are not suitable for wavelength-selective feed- back without extra optical ...

HATS—A Formal Software Product Line Engineering ...
runtime code evolution [14]. • We aim to supply a tool chain supporting the HATS methodology. Formalization of the artifacts and require- ments of a system ...

Off-line Chinese Handwriting Identification Based on ... - IEEE Xplore
method for off-line Chinese handwriting identification based on stroke shape and structure. To extract the features embed- ded in Chinese handwriting character, ...

wright layout - IEEE Xplore
tive specifications for voice over asynchronous transfer mode (VoATM) [2], voice over IP. (VoIP), and voice over frame relay (VoFR) [3]. Much has been written ...

Device Ensembles - IEEE Xplore
Dec 2, 2004 - time, the computer and consumer electronics indus- tries are defining ... tered on data synchronization between desktops and personal digital ...

wright layout - IEEE Xplore
ACCEPTED FROM OPEN CALL. INTRODUCTION. Two trends motivate this article: first, the growth of telecommunications industry interest in the implementation ...

Evolutionary Computation, IEEE Transactions on - IEEE Xplore
search strategy to a great number of habitats and prey distributions. We propose to synthesize a similar search strategy for the massively multimodal problems of ...

I iJl! - IEEE Xplore
Email: [email protected]. Abstract: A ... consumptions are 8.3mA and 1.lmA for WCDMA mode .... 8.3mA from a 1.5V supply under WCDMA mode and.

Gigabit DSL - IEEE Xplore
(DSL) technology based on MIMO transmission methods finds that symmetric data rates of more than 1 Gbps are achievable over four twisted pairs (category 3) ...

IEEE CIS Social Media - IEEE Xplore
Feb 2, 2012 - interact (e.g., talk with microphones/ headsets, listen to presentations, ask questions, etc.) with other avatars virtu- ally located in the same ...

Grammatical evolution - Evolutionary Computation, IEEE ... - IEEE Xplore
definition are used in a genotype-to-phenotype mapping process to a program. ... evolutionary process on the actual programs, but rather on vari- able-length ...

SITAR - IEEE Xplore
SITAR: A Scalable Intrusion-Tolerant Architecture for Distributed Services. ∗. Feiyi Wang, Frank Jou. Advanced Network Research Group. MCNC. Research Triangle Park, NC. Email: {fwang2,jou}@mcnc.org. Fengmin Gong. Intrusion Detection Technology Divi

striegel layout - IEEE Xplore
tant events can occur: group dynamics, network dynamics ... network topology due to link/node failures/addi- ... article we examine various issues and solutions.

Digital Fabrication - IEEE Xplore
we use on a daily basis are created by professional design- ers, mass-produced at factories, and then transported, through a complex distribution network, to ...

Toward Runtime Self-adaptation Method in Software ... - IEEE Xplore
exploit some “craft” from the perspective of qualitative analysis. However, these methods are often incapable of reasoning about the history of requested services ...

Iv~~~~~~~~W - IEEE Xplore
P. Arena, L. Fortuna, G. Vagliasindi. DIEES - Dipartimento di Ingegneria Elettrica, Elettronica e dei Sistemi. Facolta di Ingegneria - Universita degli Studi di Catania. Viale A. Doria, 6. 95125 Catania, Italy [email protected]. ABSTRACT. The no

Device Ensembles - IEEE Xplore
Dec 2, 2004 - Device. Ensembles. Notebook computers, cell phones, PDAs, digital cameras, music players, handheld games, set-top boxes, camcorders, and.