When the user (sales man) works in his office Rich UI No filter on the notifications All communication channels available … When the user is driving (to visit a client) Reduced UI on his SmartPhone Filter on the notifications Communication channel = SmartPhone … When the user is meeting his client … 4
to describe the adaptation logic 2. Adaptation logic how to avoid continuous oscillation (stability Vs reactivity) 3. Validation, automation how to validate every configuration before actual adaptation, with no need to specify all the possible configurations how to fully automate the actual reconfiguration, with no need to write low-level platform-specific scripts 6
Adaptive Software, IEEE Computer, July 2004 Gordon S. Blair et al., The Role of Software Architecture in Constraining Adaptation in Component-based Middleware Platforms, Middleware 2000. Focus on two types of approaches MDE for developing adaptive systems Aspect-Oriented approaches More approaches in the manuscript 7 We rely on these platform-level adaptation mechanisms. - no new adaptation mechanism - offer abstraction and control over these mechanisms
possible transitions See Zhang et al., Bencomo et al. + + - - • Extensive validation at design-time • Code generation • Not scalable • Not so dynamic 8
a reconfiguration script (SAFRAN) An AspectJ-like aspect (FAC, AOpenCOM) See David et al., Pessemier et al. + + - - •Variability Management • Rather low-level • Script/Aspect interaction • No validation a priori 9
and therefore reason about its own state. Intercession is the ability of a program to modify its own execution state or alter its own interpretation or meaning. - Daniel G. Bobrow et al. 11 If you know your enemies and know yourself, you can win a hundred battles without a single loss. If you only know yourself, but not your opponent, you may win or may lose. If you know neither yourself nor your enemy, you will always endanger ourself. - Sun Tzu, The Art of War, 6th Century BC
it! Two possible results OK Not OK Rollback, Retry «INTELLIGENT» REFLECTION What would happen if I would do…? Just think about it! Two possible results OK Not OK Discard the model, Build another model 15
Multiple join points Adoption/Ease of use and Tool Support Approach and Tools to be used by external people ▪ e.g. , industrial partners of the DiVA project Agility Evolution of metamodels, platforms Iterative approach (research project) 32
Model (conforms to Metamodel) MOF (M3 Level) Metamodel (M2 Level) require require Java EMF + Drools* code produces produces *Drools (JBoss Rules) (meta-) metamodels input (meta-)models Written in Kermeta/KET Visitor on the metamodel: - 2 passes for the pointcut - 2 passes for the advice
to Analyzer The running system adapts Causal link Strong synchronization introspection + listeners Delayed synchronization Validation Reasoning Context info. Context model Design- models
Target Model = independent from the reality, to avoid “the complexity, danger and irreversibility” Seamless synchronization Platform-independent Generated Scripts Safe w.r.t. lifecycle issues, client/server dependencies Not obtimal ▪ Tend to maximize the unavailability of components that should be stopped and restarted 42
Flexible and Dynamic access control policies See Morin et al., ASE’10 60 RoleY UserX ResourceZ (any user of) RoleY can access the actionW of the ResourceZ actionW actionW UserX (of RoleY) can access the actionW of the ResourceZ
with no more battery The software system should consider the evolution of the hardware The software system could also drive the reconfiguration of the hardware FPGA, turn on/off sensors, upload code to micro- controllers, etc My future work at SINTEF (MODERATES internal project) 61