principles of multi level reflection for fault tolerant
play

Principles of Multi-Level Reflection for Fault Tolerant - PowerPoint PPT Presentation

* # Principles of Multi-Level Reflection for Fault Tolerant Architectures PRDC'02 (Dec 16-18 2002, Tsukuba, Japan) Franois Taani, Jean-Charles Farbre, Marc-Olivier Killijian Context Software COTS now in systems with high FT


  1. * # Principles of Multi-Level Reflection for Fault Tolerant Architectures PRDC'02 (Dec 16-18 2002, Tsukuba, Japan) François Taïani, Jean-Charles Farbre, Marc-Olivier Killijian

  2. Context • Software COTS now in systems with high FT requirements • Market products don’t meet dependability requirements ⇒ Adaptation needed • Dependability is a cross-cutting concern ⇒ Reflective architectures seem a good choice • But multi-component systems are a challenge for reflection F. Taïani et al. 2

  3. Outline • Introducing reflection for fault-tolerance • The Fault-Tolerance of Multi-component systems • Our proposal: Multi-Level Reflection • Conclusion F. Taïani et al. 3

  4. Outline • Introducing reflection for fault-tolerance • The Fault-Tolerance of Multi-component systems • Our proposal: Multi-Level Reflection • Conclusion F. Taïani et al. 4

  5. What is Reflection? "the ability of a system to think and act about itself" meta-level fault-tolerance observation control meta-model meta-interfaces ( generic connector) base-level original system � separating fault-tolerance from functional concerns F. Taïani et al. 5

  6. Reflection & Fault-Tolerance • Meta-model provides observation and control features that are needed to implement fault-tolerance – State capture (observation) / State recovery (control) – Method interception (observation) / Duplication (control) – Non-deterministic decision points – … • In a multi-component system: – Information/controls possible in different layers / abstraction levels – Higher levels (application, language): partial info / rich semantics – Lower layers (OS, middleware): complete info / poor semantics F. Taïani et al. 6

  7. Outline • Introducing reflection for fault-tolerance • The Fault-Tolerance of Multi-component systems • Our proposal: Multi-Level Reflection • Conclusion F. Taïani et al. 7

  8. Ad Hoc FT in Multi-Level Systems fault-tolerance application "patches" ad hoc connection middleware FT code ↔ original code ad hoc interlevel OS coordination F. Taïani et al. 8

  9. Reflective Approach fault-tolerance application meta- middleware model OS generic, uniform meta-interface F. Taïani et al. 9

  10. FT in Multi-Level Systems fault-tolerance application ? middleware OS • What information/control from which level? • How to aggregate information/control from ≠ levels? F. Taïani et al. 10

  11. Example class, object, method, C++ Appli attribute, invocation request, concurrency-model, CORBA interoperable object reference threads, address space, stack, POSIX locks, sockets, queues • What information/control from which level? • How to aggregate information/control from ≠ levels? F. Taïani et al. 11

  12. Outline • Introducing reflection for fault-tolerance • The Fault-Tolerance of Multi-component systems • Our proposal: Multi-Level Reflection • Conclusion F. Taïani et al. 12

  13. Multi-Level Reflection • 1. Construct a meta-model for each level / layer • 2. Analyze inter-level dependencies & coupling • 3. Aggregate single meta-models into a system wide model • 4. Use system wide meta-model for fault-tolerance F. Taïani et al. 13

  14. Multi-Level Reflection • 1. Construct a meta-model for each level / layer • 2. Analyze inter-level dependencies & coupling • 3. Aggregate single meta-models into a system wide model • 4. Use system wide meta-model for fault-tolerance F. Taïani et al. 14

  15. (I) Inter-Level Coupling • A Level = 1..n COTS = A set of interfaces = – Concepts – Primitives / base entities (keywords, syscalls, data types, …) – Rules on how to use them • (concepts, base entities, rules) = programming model – Very broad notion (includes programming languages) – Self contained • Base entities “a-tomic” within that programming model – Can’t be split in smaller entities within the programming model. – Implemented by more elementary entities within the component. – Implementation is internal ⇒ hidden to component user. F. Taïani et al. 15

  16. Inter-Level Coupling (II) transparent interaction CORBA interaction abstraction level client server Appli . thread socket server client Mw. signal mutex OS composite interaction chain F. Taïani et al. 16

  17. (III) Inter-Level Coupling • Within a COTS : – Coupling between emerging entities of next upper level and implementation entities of lower levels • Structural coupling relationships (“abstraction mappings”) – translation / aggregation / multiplexing / hiding • Dynamic coupling relationships (“interactions”) – creation / binding / destruction / observation / modification abstraction level client server CORBA interaction Appli. thread socket server Mw. client mutex signal OS F. Taïani et al. 17

  18. (I) Example: Coupling POSIX / CORBA • Behavioral model of connection oriented OS Berkeley sockets as seen by the middleware programmer × close | shutdown × idle * new socket accept call accept return send idle accepting connections call to recv return from recv bound waiting for reception bind ; listen socket * unbound F. Taïani et al. 18

  19. (II) Example: Coupling POSIX / CORBA Thread Creation Object Creation Mw. Method Invocation Socket API bind listen accept recv send shutdown OS × * * F. Taïani et al. 19

  20. Using Multi-Level Reflection for FT (I) • Top-down observation & control – State capture – Monitoring of non-determinism System's Functional Interface Application Layer L A Abstraction Level Lev n+1 Executive Layer L n+1 Abstraction Level Lev n Executive Layer L n Abstraction Level Lev n-1 F. Taïani et al. 20

  21. Using Multi-Level Reflection for FT (II) • Bottom-up observation & control – Fault propagation analysis / confinement – Rollback propagation / state recovery System's Functional Interface Application Layer L A Abstraction Level Lev n+1 Executive Layer L n+1 Abstraction Level Lev n Executive Layer L n Abstraction Level Lev n-1 F. Taïani et al. 21

  22. Outline • Introducing reflection for fault-tolerance • The Fault-Tolerance of Multi-component systems • Our proposal: Multi-Level Reflection • Conclusion F. Taïani et al. 22

  23. Conclusion • Multi-Level Reflection ( ≈ Translucent Interfaces) can be very powerful – Accuracy of action & observation from lower levels – Power of correlation and understanding from higher level • In practice: – Some low implementation decisions are equivalent when observed at higher levels ( a.b ⇔ b.a, for instance memory management) – Identifying higher level patterns (for instance queue manag mnt for Corba requests) can help reduce instrumentation costs. • Join to be done between accuracy and understanding ⇒ "Adding higher level semantics to low-level entities" F. Taïani et al. 23

  24. Future Actions • Finalize understanding of several ORBs + metamodel • Start prototype implementation of multi-level meta-interfaces • Proof of concept and evaluation with existing FT algorithms • Adaptive Reflection (Customizable meta-models…) F. Taïani et al. 24

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend