Abstract
The use of the reflection paradigm was motivated by the need of separation of concerns in dependable systems. The separation of the application from its fault tolerance mechanisms for instance was a good way to make the system adaptive, the application and mechanisms reusable. One may ask, however, to which extent this separation of concerns is of interest for practical dependable systems. This depends very much on the mechanisms considered, and on some target objective of the system designer in terms of system properties. The present paper attempts to shed some light on these factors by drawing the lessons gained from several research projects with colleagues in the dependability community and beyond. We also claim that some novel technologies are of high interest and that their use should be based on the experience gained in the field of reflective computing. Finally, we express some of the challenges we feel of interest for the development of dependable systems in general and of adaptive fault tolerant systems in particular.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Agha, G., et al.: A Linguistic Framework for Dynamic Composition of Dependability Protocols. In: the IFIP Conference on Dependable Computing for Critical Applications (DCCA-3), pp. 197–207. Elsevier, Palermo (1992)
Garbinato, B., Guerraoui, R., Mazouni, K.R.: Implementation of the GARF Replicated Objects Platform. Distributed Systems Engineering Journal 2(1), 14–27 (1995)
Pérennou, T., Fabre, J.-C.: A Metaobject Architecture for Fault-Tolerant Distributed Systems: the FRIENDS Approach. IEEE Trans. on Computer, Special Issue on Dependability of Computing Systems 47, 78–95 (1998)
Maes, P.: Concepts and Experiments in Computational Reflection. In: Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Orlando, Florida, pp. 147–155 (1987)
Chiba, S.: A Metaobject Protocol for C++. In: Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1995), Austin, Texas, pp. 285–299 (1995)
Blair, G.S., Coulson, G., Blair, L., Duran-Limon, H., Grace, P., Moreira, R., Parlavantzas, N.: Reflection, Self-Awareness and Self-Healing in Open ORB. In: Proceedings of the ACM Sigsoft Workshop on Self-Healing Systems, WOSS 2002 (November 2002)
Patil, A., Audsley, N.: Implementing Application-Specific RTOS Policies using Reflection. In: Proc. of the 11th IEEE Real-time and Embedded Technology and Applications Symposium, San Francisco, USA, pp. 438–447 (March 2005)
Martins, E., Rosa, A.C.A.: A Fault Injection Approach Based on Reflective Programming. In: Proc. of the 2000 International Conference on Dependable Systems and Networks (formerly FTCS-30 and DCCA-8), pp. 407–416 (June 2000)
Chiba, S.: A Study on a Compile-time Metaobject Protocol, Phd. Thesis, University of Tokyo, Japan (1996)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kiczales, G., Hilsdale, E., et al.: An Overview of AspectJ. In: European Conference on ObjectOriented Programming, Springer, London (2001)
Coulson, G., Grace, P., et al.: Towards a Component-based Middleware Architecture for Flexible and Reconfigurable Grid Computing. In: International Workshops on Enabling Technologies, Infrastructure for Collaborative Enterprises, 14–16. IEEE Computer Society, Modena (June 2004)
Bruneton, E., Coupaye, T., Leclercq, M., Quéma, V., Stefani, J.-B.: The Fractal Component Model and Its Support in Java. Software, Practice and Experience 36(11-12), 29 (2006)
RTCA Inc. Document, RTCA/DO-178B dated December 1, – Software Considerations in Airborne Systems and Equipment Certification (1992)
ISO/WD 26262-6: Road vehicles, Functional safety, Part 6: Product development: software level (2007)
Gorton, I., Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Szyperski, C., Wallnau, K. (eds.): CBSE 2006. LNCS(Programming and Software Engineering), vol. 4063. Springer, Heidelberg (2006)
Coulson, G., Blair, G., Grace, P., Taïani, F., Joolia, A., Lee, K., Ueyama, J., Sivaharan, T.: A generic component model for building systems software. ACM Transactions on Computer Systems (TOCS) 26(1), 1–42 (2008)
Sun: Interface Serializable, http://java.sun.com/javase/6/docs/api/java/io/Serializable.html
Avizienis, A.l., Laprie, J.-C., Randell, B., Landwehr, C.: Basic Concepts and Taxonomy of Dependable and Secure Computing. IEEE Transactions On Dependable And Secure Computing 1(1) (January-March 2004)
Randell, B., Xu, J.: The Evolution of the Recovery Block Concept. In: Lyu, M. (ed.) Software Fault Tolerance. Trends in Software series, pp. 1–22. John Wiley & Sons, Chichester (1995)
Laprie, J.-C., Arlat, J., Béounes, C., Kanoun, K.: Definition and Analysis of Hardware- and Software-Fault-Tolerant Architectures. Computer 23(7), 39–51 (1990)
Rodríguez, M., Fabre, J.-C., Arlat, J.: Wrapping Real-time Systems from Temporal Logic Specifications. In: Bondavalli, A., Thévenod-Fosse, P. (eds.) EDCC 2002. LNCS, vol. 2485, pp. 253–270. Springer, Heidelberg (2002)
Rodríguez, M., Salles, F., Fabre, J.-C., Arlat, J.: MAFALDA: Microkernel Assessment by Fault Injection and Design Aid. In: Hlavicka, J., Maehle, E., Pataricza, A. (eds.) EDDC 1999. LNCS, vol. 1667, pp. 143–160. Springer, Heidelberg (1999)
Koopman, P., DeVale, J.: Comparing the Robustness of POSIX Operating Systems. In: Proc. 29th IEEE International Symposium on Fault-Tolerant Computing (FTCS-29), Madison, WI, USA, pp. 30–37 (1999)
Marsden, E., Fabre, J.-C.: Failure Mode Analysisof CORBA Service Implementations. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 216–231. Springer, Heidelberg (2001)
Taïani, F., Fabre, F.J.-C., Killijian, M.O.: Towards Implementing Multi-Layer Reflection for Fault-Tolerance. In: Proc. of the IFIP/IEEE Int. Conf on Dependable Systems and Networks (DSN 2003), San Francisco,CA, USA, pp. 435–444 (2003)
Taïani, F., Killijian, M.-O., Fabre, J.-C.: A Multi-Level Meta-Object Protocol for Fault-Tolerance in Complex Architectures. In: Proc. of the IFIP/IEEE Int. Conf. on Dependable Systems and Networks (DSN 2005), Yokohama, Japan, pp. 270–279 (2005)
AUTomotive Open Standard ARchitecture, http://www.autosar.org
Lu, C., Fabre, J.-C., Killijian, M.O.: Robustness of modular multilayered software in the automotive domain: a wrapping-based approach. In: Proc. of the 14th Int. IEEE Conf. on Emergent Technology and Factory Automation (ETFA 2009), Palma-de-Mallorca, Spain (September 2009)
Lu, C., Fabre, J.-C., Killijian, M.O.: An approach for improving Fault-Tolerance in Automotive Modular Embedded Software. In: Proc. of the 17th Int. IEEE Conf. on Real-Time and Network Systems (RTNS 2009), Paris, France (October 2009)
Cazzola, W., Savigni, A., Sosio, A., Tisato, F.: Rule-Based Strategic Reflection: Observing and Modifying Behaviour at the Architectural Level. In: Proceedings of 14th IEEE International Conference on Automated Software Engineering (ASE 1999), Cocoa Beach, Florida USA, pp. 263–266 (1999)
Salatge, N., Fabre, J.-C.: Fault Tolerance Connectors for Unreliable Web Services. In: Proceedings of the 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2007), pp. 51–60 (2007)
Robert, T., Fabre, J.-C., Roy, M.: On-line monitoring of real time applications for early error detection. In: The 14th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC 2008), Taipei, Taiwan, December 15-17 (2008)
Fabre, J.-C., Killijian, M.-O., Pareaud, T.: Towards On-Line Adaptation of Fault Tolerance Mechanisms. In: Proc. of the European Dependable Computing Conference (EDCC 2010), Valencia, Spain, pp. 45–54 (2010)
Ruiz, J.-C., Fabre, J.-C., Thévenod-Fosse, P.: Testing MetaObject Protocols Generated by Open-Compilers for Safety-Critical Systems. In: Proc. Third Int’l Conf. Metalevel Architectures and Separation of Crosscutting Concerns, pp. 134–152 (2001)
Laprie, J.C.: From dependability to resilience. LAAS research report #08001, P 4 (January 2008)
Ruiz, J.-C., Killijian, M.-O., Fabre, J.-C., Thévenod-Fosse, P.: Reflective Fault-Tolerant Systems: From Experience to Challenges. IEEE Transactions on Computers 52(12), 237–254 (2003)
De Lemos, R., Fabre, J.C., Gacek, C., Gadducci, F., ter Beek, M. (eds.): Architecting Dependable Systems VI. LNCS, vol. 5835, pp. 49–75. Springer, Heidelberg (2009) ISBN: 978-3-642-10247-9
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Fabre, JC. (2010). Architecting Dependable Systems Using Reflective Computing: Lessons Learnt and Some Challenges. In: Casimiro, A., de Lemos, R., Gacek, C. (eds) Architecting Dependable Systems VII. Lecture Notes in Computer Science, vol 6420. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-17245-8_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-17245-8_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-17244-1
Online ISBN: 978-3-642-17245-8
eBook Packages: Computer ScienceComputer Science (R0)