Dynamic Adaptation Dynamic Adaptation Dynamic Adaptation Dynamic Adaptation Minema Minema Winter School 2009 Minema Minema Winter School 2009 Winter School 2009 Winter School 2009 Minema Minema Minema Minema Winter School 2009 Winter School 2009 Winter School 2009 Winter School 2009 Gothenburg, Sweden Gothenburg, Sweden Gothenburg, Sweden Gothenburg, Sweden Gothenburg, Sweden Gothenburg, Sweden Gothenburg, Sweden Gothenburg, Sweden Paul Grace, Computing Department, Lancaster University p.grace@lancaster.ac.uk
Acknowledgements Acknowledgements Acknowledgements Acknowledgements Gordon Blair � Geoff Coulson � Francois Taiani Francois Taiani Eddy Truyen Eddy Truyen � � � Nelly Bencomo Bert Lagaisse � � Wouter Joosen �
Outline of the Talk Outline of the Talk Outline of the Talk Outline of the Talk What is dynamic adaptation ? What is dynamic adaptation ? What is dynamic adaptation ? What is dynamic adaptation ? Why is adaptation important? Why is adaptation important? Why is adaptation important? Why is adaptation important? Principled software approaches Characteristics of mobile � � computing Safety � Emerging fields � Types of adaptation � Future Challenges Future Challenges Future Challenges Future Challenges Dynamic Middleware Dynamic Middleware Dynamic Middleware Dynamic Middleware Reflective middleware What are the next research � � areas? (Dynamic AOP middleware) � (Policy middleware) �
Further Reading Further Reading Further Reading Further Reading Oreizy, P., Medvidovic, N., and Taylor, R. Architecture Architecture Architecture- Architecture - - -based runtime based runtime based runtime based runtime � software evolution software evolution. In Proceedings of the 20th international Conference on software evolution software evolution Software Engineering (Kyoto, Japan, April 1998) McKinley, P., Sadjadi, S., Kasten, E., and Cheng, B. Composing adaptive Composing adaptive Composing adaptive Composing adaptive � software software. IEEE Computer 37(7): 56-64 (2004) software software Kramer, J. and Magee, J. The evolving philosophers problem: dynamic Kramer, J. and Magee, J. The evolving philosophers problem: dynamic The evolving philosophers problem: dynamic The evolving philosophers problem: dynamic The evolving philosophers problem: dynamic The evolving philosophers problem: dynamic The evolving philosophers problem: dynamic The evolving philosophers problem: dynamic � change management. IEEE Transactions on Software Engineering 16(11): change management. change management. change management. 1293-1306 (November 1990) Kon, F., Costa, F., Blair, G., and Campbell, R. H. The case for reflective The case for reflective The case for reflective The case for reflective � middleware. Communications of the ACM 45(6):33-38 (June 2002) middleware middleware middleware Issarny, V., Caporuscio, M., and Georgantas, N. A perspective on the A perspective on the A perspective on the A perspective on the � future of middleware- future of middleware future of middleware future of middleware - - -based software engineering based software engineering based software engineering based software engineering. International Conference on Software Engineering (Minneapolis, USA, May 2007)
Definitions, Types & Motivation DYNAMIC ADAPTATION DYNAMIC ADAPTATION DYNAMIC ADAPTATION DYNAMIC ADAPTATION
Everyone’s Talking About It. Are you? Everyone’s Talking About It. Are you? Everyone’s Talking About It. Are you? Everyone’s Talking About It. Are you? Talk 6 – Self- Talk 1 – Change Talk 10 – Lime healing mesh the sensor network reacting to changes routes behaviour ... in context Talk 11 – Talk 2 – Install new Autonomous Autonomous module on sensor module on sensor Talk 7 – driving Autonomous Talk 3 – Changing Gossip, evolution models of Talk 12 – reaction connectivity to context Talk 5 – ANA, autonomic, Self* Talk 8 – change of subscriptions, change of nodes, change of connectivity
Dynamic Adaptation Dynamic Adaptation Dynamic Adaptation Dynamic Adaptation (or dynamic reconfiguration) (or dynamic reconfiguration) (or dynamic reconfiguration) (or dynamic reconfiguration) ‘Changing the behaviour of an executing system at � runtime’ � A system is not taken off-line e.g. “Your update was successful and you need to reboot the system” and you need to reboot the system” Classifying Software Adaptation � � Who Who makes the change Who Who � What What What What behaviour is changed � How How How How is the change made � When When When When is the change made
One Classification One Classification One Classification One Classification From McKinley From McKinley et al., “Composing Adaptive Software” et al., “Composing Adaptive Software” From McKinley From McKinley et al., “Composing Adaptive Software” et al., “Composing Adaptive Software”
Additional Properties of Adaptation Additional Properties of Adaptation Additional Properties of Adaptation Additional Properties of Adaptation Safety � Quiescence: Quiescence: The system is placed in a state such that the adaptation does Quiescence: Quiescence: � not cause erroneous behaviour Consensus � � In a multi-party system the adaptation is agreed upon Consistency � � Multiple adaptations (which may be concurrently executed) do not conflict Rollback � � If the adaptation fails the system returns to the prior state
Exploring Quiescence Exploring Quiescence Exploring Quiescence Exploring Quiescence Seminal work by Kramer and Magee (Imperial College) � Operation Calls Operation Calls Operation Calls Operation Calls Operation Calls Operation Calls Operation Calls Operation Calls Blocking Blocking Blocking Blocking ADAPT ADAPT ADAPT ADAPT ADAPT ADAPT ADAPT ADAPT Quiescent Quiescent Quiescent Quiescent Module Module Module Module Executing Executing Executing Executing Threads Threads Threads Threads Wait for threads to complete; what are the problems with this ?
Motivation: Mobile Computing Motivation: Mobile Computing Motivation: Mobile Computing Motivation: Mobile Computing The key characteristics of Mobile Computing are � Change & Spontaneity Change & Spontaneity Change & Spontaneity Change & Spontaneity � Changes in Context, Resource Availability, Fluctuating Network Changes in Context, Resource Availability, Fluctuating Network Changes in Context, Resource Availability, Fluctuating Network Changes in Context, Resource Availability, Fluctuating Network Quality of Service ( Quality of Service (QoS Quality of Service ( Quality of Service ( QoS QoS) QoS ) ) ) � Applications must adapt, middleware must adapt, … � Applications must adapt, middleware must adapt, … Applications must adapt, middleware must adapt, … Applications must adapt, middleware must adapt, … Applications must adapt, middleware must adapt, … Applications must adapt, middleware must adapt, … Applications must adapt, middleware must adapt, … Applications must adapt, middleware must adapt, … Images from the Runes project: http://www.ist-runes.org
Case Study 1: Protocol Heterogeneity Case Study 1: Protocol Heterogeneity Case Study 1: Protocol Heterogeneity Case Study 1: Protocol Heterogeneity
Case Study 2: Sensor Network Case Study 2: Sensor Network Case Study 2: Sensor Network Case Study 2: Sensor Network Adaptation for Flood Monitoring Adaptation for Flood Monitoring Adaptation for Flood Monitoring Adaptation for Flood Monitoring G P R S 1 1 . 802.11 2 0 8 Site 1 Site 4 Site 3 Site 2 GPRS GPRS (High_Flow* && High_Battery) || Flood_Predicted** (High_Flow* && High_Battery) || Flood_Predicted** Flood_Predicted** Flood_Predicted** High_Flow* && !High_Battery High_Flow* && !High_Battery if (High_Flow && High_Battery if (High_Flow && High_Battery SP SP SP SP FH FH || Flood_Predicated) || Flood_Predicated) WiFi WiFi Bluetooth Bluetooth WiFi WiFi replace Bluetooth with WiFi replace Bluetooth with WiFi quiescent state quiescent state emergency state emergency state alert state alert state replace ST.sp with ST.fh replace ST.sp with ST.fh !High_Battery || High_Flow* !High_Battery || High_Flow* !Flood_Predicted** !Flood_Predicted** (!Flood_Predicted**) && (!High_Flow*) (!Flood_Predicted**) && (!High_Flow*) **Require Lower Latency **Require Lower Latency *Resiliency Risk *Resiliency Risk
Analysis Analysis Analysis Analysis Two distinct classes of adaptation � � Node Node Node- Node - -local - local local local � Software adaptation within a single machine (or address space) � Distributed Distributed Distributed Distributed Distributed Distributed Distributed Distributed � Co-ordinated adaptation of modules across multiple machines � Introspection, Consensus, Safety … remain open research challenges
Mechanisms: Reflection and Dynamic AOP DYNAMIC ADAPTATION DYNAMIC ADAPTATION DYNAMIC ADAPTATION DYNAMIC ADAPTATION
Recommend
More recommend