Presentation is loading. Please wait.

Presentation is loading. Please wait.

Towards Context-oriented Self-adaptation in Resource-constrained Cyberphysical Systems Mikhail Afanasov*, Luca Mottola*† and Carlo Ghezzi* *Politecnico.

Similar presentations


Presentation on theme: "Towards Context-oriented Self-adaptation in Resource-constrained Cyberphysical Systems Mikhail Afanasov*, Luca Mottola*† and Carlo Ghezzi* *Politecnico."— Presentation transcript:

1 Towards Context-oriented Self-adaptation in Resource-constrained Cyberphysical Systems Mikhail Afanasov*, Luca Mottola*† and Carlo Ghezzi* *Politecnico di Milano (Italy), †SICS Swedish ICT

2 Problem CPSs are intimately tied to the real world – Multiple environment dimensions at hand – Continuously changing environment The software must adapt Missing design and programming support

3 Example: Wildlife Tracking

4 Problem module ReportLogs{ uses interface Collection; uses interface DataStore; } implementation { int base_station_reachable = 0; event msg_t Beacon.receive(msg_t msg) { if (!acceleromenter_detects_activity()) return; if (call Battery.energy() <= THRESHOLD) return; base_station_reachable = 1; call GPS.stop() call BaseStationReset.stop(); call BaseStationReset.startOneShot(TIMEOUT); } event void BaseStationReset.fired() { base_station_reachable = 0; } event void ReportPeriod.fired() { switch (base_station_reachable){ case 0: call DataStore.deposit(msg); case 1: call Collection.send(msg);} }

5 Solution Context Context-Oriented Programming (COP) Language-independent design concepts Programming support

6 Solution context Unreachable { uses interface DataStore; } implementation { layered command void report(msg_t msg){ call DataStore.deposit(msg);} } context group BaseStationG { layered command void report(msg_t msg); } implementation { contexts Reachable, Unreachable is default, MyErrorC is error; components Routing, Logging; Reachable.Collection -> Routing; Unreachable.DataStore -> Logging; } context Reachable { uses interface Collection; } implementation { layered command void report(msg_t msg){ call Collection.send(msg);} } Functionality are decoupled; implementations are individually simpler

7 Context-oriented Programming Layered functions change the behavior depending on the context

8 Context-oriented Programming Java Python Erlang Lisp Objective-C Layered functions change the behavior depending on the context 8Kb RAM

9 Design Concepts Context group as collection of environmental situations sharing the same characteristics Context represents a single environmental situation in a group Context group Context

10 Wildlife Tracking Design

11 Programming: ConesC Context-Oriented extension of nesC Enable layered functions (commands) in nesC Redefine component and configuration

12 Execution Example call BaseStationG.report(msg);

13 activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; Execution Example

14 call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; } implementation { //... layered command void report(msg_t msg){ call Collection.send(msg);}} context Unreachable { uses interface DataStore; } implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);}} Execution Example

15 call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; } implementation { //... layered command void report(msg_t msg){ call Collection.send(msg);}} context Unreachable { uses interface DataStore; } implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);}} Execution Example

16 call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; } implementation { //... layered command void report(msg_t msg){ call Collection.send(msg);}} context Unreachable { uses interface DataStore; } implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);}} Execution Example

17 call BaseStationG.report(msg); activate BaseStationG.Reachable; //... activate BaseStationG.Unreachable; context Reachable { uses interface Collection; } implementation { //... layered command void report(msg_t msg){ call Collection.send(msg);}} context Unreachable { uses interface DataStore; } implementation { //... layered command void report(msg_t msg){ call DataStore.deposit(msg);}} context group BaseStationG { layered command void report(msg_t msg); } implementation { contexts Reachable, Unreachable is default, MyErrorC is error; components Routing, Logging; Reachable.Collection -> Routing; Unreachable.DataStore -> Logging;} Execution Example

18 Transition Control Design issues Programming errors Hardware faults

19 Transition Control context NotMoving { transitions Resting; } implementation {//...} Design issues Programming errors Hardware faults

20 Transition Control context Unreachable { transitions Reachable iff ActivityG.Running; } implementation {//...} Design issues Programming errors Hardware faults

21 Transition Control context Reachable { //... } implementation { //... command bool check(){ return call BatteryG.getContext() == BatteryG.Normal;} } Design issues Programming errors Hardware faults

22 Translator and Benchmarks Wildlife tracking Smart-home controller Adaptive protocol stack

23 Evaluation: Coupling W. Stevens et al. Classics in software engineering. Chapter Structured Design. 1979. Easier to maintain Strongest Weakest

24 Evaluation: Complexity Easier to understand

25 Evaluation: Run-time Overhead MCU Overhead Memory Overhead Turning an LED on is 8 MCU cycles Max 2.5%! Negligible Overhead

26 Conclusion Context as a CPS programming concept – Language independent design – Programming support: ConesC Key results: – Easier to maintain and to understand – Negligible performance overhead

27 Future Work Domain-specific model-checking Source-code generator Context-Oriented programming for other CPS platforms

28 Questions?


Download ppt "Towards Context-oriented Self-adaptation in Resource-constrained Cyberphysical Systems Mikhail Afanasov*, Luca Mottola*† and Carlo Ghezzi* *Politecnico."

Similar presentations


Ads by Google