ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform Adaptation of Service-Based Context- Aware Applications with FraSCAti Platform Abdelkader Bouguessa Boudjemaa Boudaa Leila Amel Mebarki Department of Computer Science Ibn Department of Computer Science Department of Computer Science Ibn Khaldoun University Ibn Khaldoun University Ibn Khaldoun University Tiaret, Algeria Tiaret, Algeria Tiaret, Algeria abdelkader.bouguessa@gmail.com boudjemaa.boudaa@univ-tiaret.dz leilamel.mebarki@gmail.com Abstract – The dynamic adaptation of running service-based applications without stopping has long been shown to be more than a dream for designers and developers. Recently, several works have been proposed in the literature, where most of them do not have a clear and complete process of adaptation or count on a specific plat-form that decreases the use of these adaptable large-scale applications. This paper aims to present a context-aware dynamic adaptation that covers techniques for handling the impact of context changes onto the execution of context-aware applications. We propose a comprehensive solution with software architecture that enables the dynamic adaptation of services built by assembling components, depending on context execution. This architecture is based on SCA (Service Component Architecture) specification, and implemented with the FraSCAti platform. The SCA specification guarantees pure component assembly and the FraSCAti platform guarantees the automatic reconfiguration. A case study of a modern tourism agency is treated by the proposed adaptation solution in order to exhibit its feasibility. Keywords – Dynamic Adaptation, Context-awareness, Service-based applications, FraSCAti, MAPE. SCA [3] is principally elaborated to realize large- 1. INTRODUCTION scale systems and distributed applications. Regardless to communication protocols or Advances in technology allow us to design programming languages, SCA standard aims to efficient applications, where their contextual define a set of services in one architecture that conditions are different. In order to meet specific stands on four specifications: assembly needs, components or services of these language, component implementations, bindings, applications can act synergistically and and policies [4]. This paper describes a support communicate with each other within one or to the execution of service-based applications different operating systems and across two or that may require adaptation to tackle changing more connected computers. The agility, user context, or even altering environment. Due reliability, flexibility and reusability that the to the situation where the services may become service-based architecture (SOA) [1] promises available or not during the execution of the are the main raisons of building service-based application, this concept helps constructing applications (SBAs) on such an architecture. This service-based applications that are capable to development, if properly designed and autonomously adapting, and consequently implemented, will make these SBAs (such as involve the evaluation of novel changes to its healthcare, travel, aerospace and defense current design. The goal is to propose a applications) able to discover and compose complete process of adaptation that does not services at runtime, thus fulfilling ever-changing count on a specific platform in order to increase requirements. Based on the combination of the use of these adapt-able large-scale Service-Oriented Architecture (SOA) and applications within open, dynamic, and Component-Based Software Engineering distributed environments. (CBSE) [2] principles, the evolving paradigm International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 171 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform A general definition of context provided by Dey et the creation of self-adaptive applications, and al. [5] is stated as “any in-formation used to Dynaco offers an adaptation framework, characterize the situation of entities (i.e., whether originally designed for applications on grids. a person, place, or object) that are considered According to these two generic frameworks, the relevant to the interaction between a user and an adaptation is separated into phases in order to application, including the user and the application perform several types of adaptations. The MAPE themselves. Context is typically the location, model [11] becomes now a standard reference identity, and state of people, groups, for specifying a way to divide the different computational and physical objects”. The adaptation phases. The limit of these two works Context-awareness concept that our solution is that they are intended to the reconfiguration of depends on, determines an application’s component-based applications. Concerning behavior, it can be also defined as a response dynamic adaptation of service-based component used to manage environmental applications, we will consider the generic awareness issues as well as unforeseen framework presented by Andrés et al. in [12] to changes by providing better information to specify different kinds of adaptation in various designers, and hence they would dynamically environments. The authors tackled in detail the adjust their applications. four functionalities of the MAPE model [11] (see The particularity of our proposal is to consider section C). Nevertheless, the main difference the work of Dey et al. [5] that introduced the idea between their proposition and ours is the of adaptation by defining context-awareness as a technologies, techniques and infrastructure. Our leading concept to the automation of a software selection of FraSCAti platform is motivated by its system, and to use the FraSCAti plat-form as a ability of customization depending on the run-time support for SCA, which offers designer needs; also, it carries runtime management features that allow us to easily reconfiguration capabilities into a SCA perform dynamic adaptation. Intended to environment. implement context-aware applications that can dynamically change or adapt their behavior based on their context, our proposed solution is 3. A DYNAMIC ADAPTATION OF CONTEXT- presented through an interesting Tourism AWARE APPLICATIONS Agency System case study, where it seeks mainly to help travelers finding their suitable In this section, we will introduce and define the destinations in the appropriate time based on elements of our solution, by mentioning the monitored information provided by various adaptation fields. We will mention then existing services. The rest of the paper is organized as adaptation types, and discuss in detail the ones follows. Section 2 discusses related work. that we focus on in our work. At the end of this Section 3 proposes a strategy of dynamic section, we will present our proposed solution, adaptation for service-based applications in which target dynamic adaptation for context- which a functional architecture based on aware application, and describe each phase of adaptation module is detailed. Finally, section 4 the MAPE model. Cloud Computing, mobile reports our Tourism Agency System case study computing, and others are among the research while section 5 concludes this paper, and areas that introduce the challenge of applications indicates our future work. adaptation, and the ability to reconfigure them so that they will be able to adapt themselves to their executions environment. Adaptation can be 2. RELATED WORK considered as the process of modifying an application in order to fit new situations and Various researches found in the literature with satisfy specific requirements. An application the objective to support the dynamic adaptation, should be adjusted if its execution context has notably Context Toolkit [2], SECAS [6], been changed. Context-aware applications COSMOS [7] and WildCAT [8], have tried to should adapt themselves at run-time, for many realize frameworks that make applications different purposes, in particular, to deal with the adaptable. However, most of them proposed amount of available resources, and by using incomplete adaptation approaches; where some more efficient program, the user needs will be works performed dynamic adaptation depending better satisfied. Note that introducing facilities for on a given infrastructure, and others are limited context-aware adaptation in exiting code is a to an application domain [12]. To the best of our very difficult task. knowledge, SAFRAN [9] and Dynaco [10] are two important works, which present clear dynamic adaptation strategies. SAFRAN enables International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 172 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform 3.1. Adaptation types observation process is done at each layer of the architecture, and equally the adaptation Adaptation types can be defined as mechanisms, schedules may also be performed at different which enable the application to react in order to layers as needed. fulfill specific adaptation needs, regarding the evolutions of the context. These are the five 3.2.1. OS & hardware layer possible types of adaptation strategies [9]: parametric adaptation, functional adaptation, This level is the infrastructure that constitutes structural adaptation, behavioral adaptation, and the context source. For example, in case new the environmental adaptation. For the purpose of OS policies become available, this level may better control the parametric adaptation [13], our require dynamic adaptation. solution will touch only input and output service parameters. The process of modifying those 3.2.2. FraSCAti Platform layer parameters will be not only to ensure the proper functioning but also to leverage new possibilities, At this level, explorer can detect that a service which can appear dynamically. appears or disappears; that means keeping  Input parameter. This parameter under observation various services’ progresses. comprises the population of operation FraSCAti [14], which is a reflective platform for parameters based on context. One or deploying, hosting, and managing SCA more parameters values of the request applications, its different subsystems are message are replaced with values implemented as SCA components. FraSCAti related to contextual information. provides a homogeneous view of a middleware  Output parameter. Response software stack where the platform, the non- manipulation is also a context-based; functional services, and the applications are where the service responses can be uniformly designed and implemented with the manipulated and modified. The same component-based and service-oriented adaptation is done after the service has paradigm. This platform has the particularity of executed and constructed a response. facilitating the process of dynamic adaptation of This can have sorting or filtering SCA components. Our work is motivated by the operations, for instance. fact that FraSCAti is a general model, i.e. it is not specific to an application domain [15]. Moreover, 3.2. Solution overview it is an extension of the Fractal model, in other words, it contains the various basic concepts This paper presents a novel approach that shared by most other models. Technically, the aims at dynamically adapting the execution of FraSCAti model is very flexible, allowing for the service-based applications at runtime in many dynamic reconfigurations and especially is case of context changes. As shown in Fig. 1, designed primarily to be easily extended, and it our proposal relies on four main layers; allows the addition of new features. Likewise, an where, it is important to emphasize that the application built using FraSCAti is seen as a set Figure 1: Architecture of the proposed Dynamic Adaptation. International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 173 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform of components and services, these components possibilities that may appear during its communicate with each other through referrals. execution. According to the MAPE model [11], The extension of the FraSCAti model provides the adaptation module is divided into four main better support for synchronization of different phases: Monitoring or observation, Analysis or application entities during the adaptation Decision, Planning, and Execution. process. This dynamic model offers also all the In the next section, we will describe in more basic functionalities we need without making it detail the MAPE module as well as techniques more complex than necessary, allowing us to and technologies related to each phase of it. easily integrate our work into the framework of the model itself. 3.3. Adaptation module 3.2.3. Service-based applications layer This section will give some details about our implementation that relies on the adaptation The end user interacts directly with this layer, module. This last is responsible for managing which represents the application he is using; an the dynamic adaptation of context-aware adaptation may be triggered via an adaptor, in service-based application. The MAPE model case the user changes his requirements, which [11] divides this module into four phases (Fig. 1): can be detected via an explorer. As obvious in Fig. 1, the present layer contains service-based 3.3.1. The observation phase applications (SBA) with Service Component Architecture (SCA), which defines a general The first phase of the MAPE model corresponds approach that can exploit components, and to the observation. It consists of monitoring the describe how they work together. In particular, context of the application in order to detect SCA specification defines how to create changes that need adaptation. This context can components and how to combine them into change from available system resources complete applications [16]. Regardless of the (bandwidth, CPU, etc.) to the user preferences language used to build the components of an and environmental properties (weather, time, SCA application and beyond the component etc.) [15]. Monitoring the environment (execution technology used, SCA defines a common context) of the application and/or the application assembly mechanism for specifying how these itself is the detection of the occurrence of certain elements are gathered within applications. The circumstances requiring adaptation. This step SCA platform is a framework designed for the can be implemented using context-aware development of service-based applications. The adaptive application. The technology we used in main characteristic of this platform is that it this phase is WildCAT, a Generic Framework for supports a wide variety of programming Context-Awareness [9]. This Framework’s languages for implementing and defining objective is to offer a pragmatic approach to interfaces as well as components. SCA does not ease the creation of Context-Aware applications. offer a new programming language, or a new Fig. 2 depicts the main function of the WildCAT technology for accessed services, but it can programming interface [8], which allows assemble all these existing technologies [17]. discovering the characteristics of the context, Beyond the advantages inherent to this reason on it and automatically be notified when approach, SCA allows easy integration of specific events occur. The main reasons behind existing non-SCA development. One more our choice of this system is the simplicity of its feature of the present platform is the policies use by application programmers, and it’s that are defined outside the code performing the considered generic, i.e. it’s not tied to a specific service may be changed without impact on the application domain, moreover this system application code, which will save time and enables and allows an efficient and custom money by allowing the developer to focus on implementations for particular domains. The business logic. Adaptation module is connected with each layer through two elements; an Explorer that 3.2.4. Adaptation module layer measures the level’s state and extracts new information appearing in that layer, for example WSensors in this level can listen multiple at the OS & Hardware layer. The Explorer can explorers and push various events directly given determine this level’s properties, such as the to the adaptation module, whose function is not number of available processors as well as RAM only to keep the application running, but also to capacity. make the best reconfiguration based on the new International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 174 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform various parts that compose a Drools rule may be extended to lend any domain- specific sense to the rule. As depicted in Fig. 3, a Drools rule has the following structure: A set of Events, which is the conditional parts of the rule, and a set of Actions, which is a block that allows specific actions to be done. The decision phase is the start point of our solution to perform adaptation; it relies on gathered contextual information to decide whether the current situation requires adaptation or not. Once this phase has decided that an adaptation should be done, it transmits Figure 2: WildCAT overview. reaction to the planning phase. The reaction describes what kind of adaptation should be Second element is an Adaptor that is charged of performed. performing adaptation within layers if necessary. In our case every Explorer is linked by a 3.3.3. The planning phase "WSensor". In order to monitor the execution context and detect its changing over time, This third phase consists on establishing a plan WildCAT gives a special implementation to the to apply reactions given from the Decision used monitors and after a certain period, the phase, this plan is a set of actions of various system collects the new contextual information types (environmental, structural, functional, so it will be notified by the occurred events, behavioral, or even parametric) able to change hence the application adapts to those changes the current state of the application into its new taking into account the new contexts. state. Before applying reconfiguration operations, we must associate those operations 3.3.2. The decision phase to their components, this step is called weaving of adaptation policies. To do so, our approach is Considering the current state of the application based on the aspect paradigm. Aspect-Oriented and depending on the new contextual Programming (AOP) [19] gives us mechanisms circumstances detected in the first phase, the to achieve an adaptation as a Cross-Cutting application must decide reconfiguration Concern, which means to separate the operations to perform so it adapts to new adaptation code from the functional code of the situations. To do this, the second phase of the application. The aspect includes a code that can MAPE model consists on reactivating an be grafted (or weaved) in a source code through adaptation policy, detecting events occurring in a program called Weaver and cut-off points or the context and according to these events as actions. The FraSCAti platform considers the well as the current state of the system, an Aspect as a component named FraSCAti Aspect adaptation has to be done for this application. Component (FAC for short). FAC is the mapping How decision is made and which actions must of the general model [20] (aspect component be performed to execute the reaction are closely (AC), aspect domain, and aspect binding) on the related to the information received from the FraSCAti components model. Fig. 3 illustrates previous phase and to the goal given to dynamic how to implement an AC by a sample source adaptation. Adaptation policies can be realized code. ACs apply the component methods shown by a rules-based inference engine, in our case by the client and server interfaces. An they are implemented using the Drools system. implementation of the IntentHandler interface is Drools [18] is a Business Rule Management required when declaring an AC. The invoke System with a rule-based engine, more correctly method describes the behavior of the aspect. known as a Production Rule System, which The parameter of the Invoke method is a execute actions based on conditions. Drools has reification of a FraSCAti interface invocation. It an enhanced and optimized implementation of provides a set of methods for a joint point introspection. The argument of the invocation the Rete algorithm. One of the main reasons of can be changed. The code written in this method using Drools in our case, is that it is flexible will be executed around the join point. The enough [18] to match the semantics of the “proceed” call is the original method call. dynamic adaptation problem. Moreover, the International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 175 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform Figure 3: Overview of the implementation process. The main advantage of considering our solution have control structures. An FPath expression as an Aspect system is that after the observation evaluates without side effects and always of changes that are significant enough, and the returns a value, which can be one of the decision to react to those changes, the Aspect following types: general classic types (numbers, Component model in particular, FraSCAti string and Boolean) and specific types for FPath component will be able to make a plan given to (homogeneous set of components of interfaces the execution phase, which addresses the or attributes). A path is a specific expression dynamicity of the execution environment. FPath. This type of expression allows browsing and selecting items inside FraSCAti 3.3.4. The execution phase architectures, with another word FPath is a way to select a set of node that meets certain criteria Once the system knows to what state it has to by navigating along the arcs. To do this, a path evolve, we must define how it should do it consists of a set of successive steps, separated (execution plan) and run the adaptation. The by a slash. Each of these steps is itself divided implementation plan will define the list of into three parts: an axis, a test and a collection operations to be performed by the component to of predicate possibly empty. The concrete achieve its new state. Thus the order of syntax of a path is: executing these operations. This plan can be axe1::test1[pred1]/axe2::test2[pred2]/... managed by a set of rules for an initial state and The axis is an indenting from a finite set, which a final state given a list of actions to perform. corresponds to the possible labels for arcs. The The implementation of the adaptation is the test is either a name (identifier) or a star *. most sensitive part. At this level, the component Predicates are complete FPath expressions knows the order of execution of adaptation evaluated for their Boolean values. We now operations. Although it supports all the features describe the FScript language. Compared to we need, the FraSCAti platform specified as a FPath, FScript adds the ability to define new set of application programming interfaces functions (used in FPath expressions) and (APIs). This form does not fit the way we use: it especially reconfiguration actions, which unlike is impossible to guarantee the consistency of functions are able to modify the architecture of reconfigurations performed, the corresponding FraSCAti components. For this, FScript supports code is very complex and incomprehensible and a number of control structures and especially specific concepts of FraSCAti does not exist enriches the FPath "standard library" with a set directly in Java. These limitations have led us to of primitive actions that act on FraSCAti choose FScript [21] a language dedicated for the components. An FScript program consists of a specification and the execution of application set of functions and actions. The difference and FraSCAti components reconfiguration, between the two is that the functions are strictly FScript includes FPath [21] another language no side effect on the architecture FraSCAti: Only used to navigate inside FraSCAti architecture. actions can invoke other actions. The only FPath can only write expressions and does not International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 176 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform syntactic difference between functions and the calculated total price using the currency of actions appear in their definitions. Functions are the visitor in accordance with the exchange rate. introduced by the keyword function while actions To more clarify the implementation of this use the keyword action. The body defining a runtime adaptation, Fig. 4 illustrates the tourism process consists of a sequence of instructions. agency services composite, which covers four components representing the following services: The "Tourism Agency Component" encapsulates 4. Tourism agency case study all calls to other services; it also contains two properties that describe the expected user input: Aimed at improving our proposed architecture Twitter or Facebook account, plus the date of and its implementation, we have chosen the visit. The second service "Visiting Service “Tourism agency System” as an illustrative case Component" displays the list of the touristic study, which is one of the most important and areas according to the user preferences and his required services in the market at the global current detected location from his IP address. It scale. This web application shown in Fig. 4, also suggests indoors and outdoors places in a allows the visitor to find a destination among specific order referring to the user favorites, and different touristic regions or events belong to the time conditions; for example if the condition time visited country, which is located by the system is good it proposes both of places, while only based on the visitor IP address. It also provides indoors places will be recommended if the a chronological classification for each touristic condition time is bad. The "Travel Service site so the visitor can easily move to the Component" displays the list of available means selected destination. To get there, he can of transport leading to the selected site and a choose a conveyance from a given list with the map between his current location and the price of each one, after that the total of the tour selected destination. The last service "Banking is calculated automatically by the system. In Service Component" converts the calculated order to strengthen and develop a context-aware total, which consists of two prices: the visit price, Web application (reconfigurable), we have and the transport price. added other functions to the previous features Fig. 5 demonstrates two possible scenarios by using the power of social networking tools seamlessly supported by our new architectural (Twitter or Facebook in our case) to gather the solution. In the first scenario (Fig. 5.Case1), the user’s contextual information based on his application starts by the observation phase and account preferences. At the end of the whole shows (Fig. 5.A) in the home page. When the process, the application offers a conversion of user introduces no input information, i.e. no Figure 4: General Architecture of Tourism Agency Composite. International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 177 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform contextual changes are applied; the system be displayed as well (Fig. 5.F). The total prices displays his current location detected from his IP will be shown (Fig. 5.G) only after the selection address, as well as a brief description of that of a mean traveling. This scenario depends area and its corresponding weather information. always on the user interaction. After selecting the suitable site (Fig. 5.D); which In the second scenario (Fig. 5.Case2), the user represents a contextual change for the introduces his Facebook or Twitter username as application, this last reacts by showing some an input, which allows detecting contextual information about the located area and a table of changes during the first phase of the MAPE the current conditions and forecasts including model (the observation phase) as long as the seven day outlook (Fig. 5.E). When the user user updates his account settings and chooses a day from this showing table, which preferences and attempt to use our web means that the application has detected another application. Liked pages, visited areas, tweets, contextual change and needs to be adapted and others factors can permit the application to again, the process of adaptation is applied for decide (at the decision phase) automatically and the second time. The application shows a list of then plans a new action (at the planning phase) means transports with their prices, a map that to propose when using the application. In the helps the user to reach the visiting location will end those plans will be executed (Fig. 5.B) at the execution phase. The second one that covers more dynamicity explains our implemented solution (Fig. 5.C) which consists of auto-charging different displayed information such as the selected touristic area, the preferred visiting day, and the mean of transport. All these features will help the visitor to make suitable decisions, save time and money. The strength of the services offered by the “Tourism Agency” resides on the fact that defining at design time all possible contexts and their evolutions is not obligatory needed. That means that the agency system will be drastically able to plan and react even with the unexpected context changes, hence specific user’s requirements will be satisfied according to the adaptation strategy. The main contribution of this proposal is the strength architecture that has been illustrated with the above-described case study, in which we applied the MAPE Model for developing adaptive service-based applications. We also demonstrated how the specific features of the FraSCAti platform could be exploited during the application’s adaptation process, and then how the defined dynamic adaptation strategy can be used to develop high quality, flexible, and scalable service-based applications. 5. Conclusion The present work stands on the FraSCAti Platform used to develop and adapt dynamically the SCA-based context-aware applications. SCA is a standard for the distribution of Service- Oriented Architectures (SOA). The novelty of Figure 5: Demonstration of the running FraSCAti is to bring the adaptation of application. applications during their execution according to International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 178 ICAASE'2014 Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform changes in their context. The solution provided Computer Science, vol. 4089. Springer in this work is performed by a case study on Berlin / Heidelberg, 2006, pp. 82–97. tourism services by presenting a variety of [10] J. Buisson, F. André, and J.L. Pazat, “Supporting adaptable applications in grid choices in order to satisfy customer’s needs. resource management systems,” in 8th Aiming at making the application benefit from IEEE/ACM International Conference on appearing contexts. In addition, other examples Grid Computing, Austin, USA, pp. 19-21, September. 2007. can also verify the feasibility of the proposed [11] J. O. Kephart and D. M. Chess, “The solution and demonstrate the effectiveness of vision of autonomic computing,” Computer, the dynamic adaptation using FraSCAti. Our vol. 36, no. 1. 2003, pp. 41–50. future work is to strengthen the flexibility, and [12] F. André, E. Daubert, and G. Gauvrit, the semantic of the decision phase by utilizing “Towards a Generic Context Aware other rule-based engines as SWRL rules Framework for Self-Adaptation of Service- Oriented Architectures,” in 5th International combining OWL, and RuleML scripts [20]. Conference on Internet and Web Moreover, we want to fully achieve other Applications and Services, Barcelona, aspects of contextual adaptation by addressing Spain, 2010, pp. 309–314. the behavioral aspect (changes of SCA [13] M. Kapitsaki, A. Kateros, N. Prezerakos, S. Venieris, “Model-driven development of component’s behavior), and the structural composite context- aware web aspect of a SCA composite (changes in the applications,” Information and Software structure of the components). Technology 51, 2009, pp. 1244–1260. [14] R. M´elisson, P. Merle,D. Romero,R Rouvoy, and L Seinturier. “Reconfigurable 6. REFERENCES run-time support for distributed service component architectures,” Automated [1] N. Bieberstein, S. Bose, M. Fiammante, Software Engineering, Tool Demonstration, K. Jones, and R. Shah, “Service-Oriented Antwerp Belgique, 2010. URL Architecture Compass : Business Value, http://hal.inria.fr/inria-00499477/en/. Plan-ning, and Enterprise Roadmap,” [15] L. Seinturier, P. Merle, “A Component- Prentice Hall PTR, Upper Saddle River, NJ, Based Middleware Platform for USA, 2005. Reconfigurable Service-Oriented Architectures,” April. 2012. [2] J.Q. Ning, “Component-Based Software [16] C. David, “Introducing SCA,” white paper, Engineering (CBSE),” In 5th International Chappell & Associates, July. 2007. Symposium on Assessment of Software Tool (SAST’97), 1997, pp. 34-43. [17] L. Seinturier, P. Merle, D. Fournier, N. Dolet, V. Schiavoni, and J.B. Stefani, [3] M. Beisiegel, D. Booz, A. Colyer and K. “Reconfigurable SCA Applications with Team, “Service Component Architecture,” the FraSCAti Platform,” In Proceedings of Novomber. 2007. the 6th IEEE International Conference on [4] D. Fournier, P. Merle, and al., “ANR Service Computing (SCC’09), pp. 268–275, SCOrWare Project: WP1 – SCA Platform September. 2009. Specification,” April. 2009, [18] Drools docs. www.scorware.org/. http://docs.jboss.org/drools/release/5.2.0.Fin [5] A. Dey, G Abowd and D Salber, “A al/droolsexpert-docs/html/ch05.html. Conceptual framework and toolkit for [19] G. Kiczales, J. Lamping, A. Mendhekar, supporting the rapid prototyping of C. Maeda, C. Lopes, J.M. Loingtier, and context-aware applications,” 2001, pp. 97- J. Irwin, “Aspect-Oriented Programming,” 166. In Proceedings of the 11th European [6] T. Chaari, “adapt applications to new Conference on Object-Oriented contexts of use”. SECAS Project: INSA Programming (ECOOP’97), volume 1241 Lyon, 2006. of LNCS, pp. 220–242. Springer, June. 1997. [7] C. Sophie, C Denis, and T Cahantal, “Service Management Context COSMOS,” [20] N. Pessemier, L. Seinturier, L. Duchien, and ADAPT09, September. 2009. T. Coupaye, “A Model for Developing Component-Based and Aspect-Oriented [8] P.C. David and T. Ledoux, “Wildcat: a Systems” In Proceedings of the 5th generic framework for context-aware International Symposium on Software applications,” in MPAC ’05: Proceedings Composition (SC’06), volume 4089 of of the 3rd international workshop on LNCS, pp. 259–274. Springer, March. 2006. Middleware for pervasive and ad-hoc computing. New York, NY, USA: ACM, [21] P.C. David, “Développement de 2005, pp. 1–7. composants Fractal adaptatifs : un langage dédié à l’aspect d’adaptation,” [9] P.C. David and T. Ledoux, “An aspect- PhD thesis, University of Nantes / Ecole orienteach for developing selfadaptive des Mines de Nantes, 2005. fractal components,” in Soft-ware Composition, ser. Lecture Notes in International Conference on Advanced Aspects of Software Engineering ICAASE, November, 2-4, 2014, Constantine, Algeria. 179