Model-based design; Fault-tolerance; Industrial cyber physical systems
Abstract :
[en] The ever-growing complexity of present-day software systems raises new and more stringent requirements on their availability, pushing designers to make use of sophisticated fault tolerance techniques far beyond the areas they were traditionally conceived for, and bringing new challenges to both the modelling and implementation phases. In this paper, we propose a design pattern to model in a domain-specific language one of the prominent fault-tolerant techniques, namely the N-version programming. It can be integrated seamlessly into existing applications to enhance their functional correctness, while still preserving the timing characteristics, in particular the sampling times. Besides, it is also designed in a way to ease the automatic code generation. A counterpart of the same framework is also implemented in a lower-level programming language, for use when direct model execution is impractical, like in severely resource-limited embedded targets.
Disciplines :
Computer science
Author, co-author :
Hu, Tingting ; University of Luxembourg > Faculty of Science, Technology and Communication (FSTC) > Computer Science and Communications Research Unit (CSC)
Cibrario Bertolotti, Ivan; National Research Council of Italy > Institute of Electronics, Computer and Telecommunication Engineering (IEIIT)
Navet, Nicolas ; University of Luxembourg > Faculty of Science, Technology and Communication (FSTC) > Computer Science and Communications Research Unit (CSC)
External co-authors :
yes
Language :
English
Title :
Towards Seamless Integration of N-Version Programming in Model-Based Design
Publication date :
2017
Event name :
22nd IEEE International Conference on Emerging Technologies And Factory Automation (ETFA’2017)
Event place :
Limassol, Cyprus
Event date :
from 12-09-2017 to 15-09-2017
Main work title :
22nd IEEE International Conference on Emerging Technologies And Factory Automation (ETFA’2017), Limassol, Cyprus, September 12-15 2017
B. Randell and J. Xu, "The evolution of the recovery block concept, " in Software Fault Tolerance, M. R. Lyu, Ed. John Wiley & Sons, Inc., 1995, pp. 1-22.
A. Avižienis, "The methodology of N-version programming, " in Software Fault Tolerance, M. R. Lyu, Ed. John Wiley & Sons, Inc., 1995, pp. 23-46.
B. Baudry and M. Monperrus, "The multiple facets of software diversity: Recent developments in year 2000 and beyond, " ACM Computing Surveys, vol. 48, no. 1, pp. 161-1626, Sep. 2015.
N. Navet and L. Fejoz. (2017, Jan.) The CPAL programming language, version 1.06. [Online]. Available: https://www.designcps.com/wp-content/uploads/cpal-intro.pdf.
R. T. Wang, "A dependent model for fault tolerant software systems during debugging, " IEEE Transactions on Reliability, vol. 61, no. 2, pp. 504-515, Jun. 2012.
Hystrix. Latency and fault tolerance for distributed systems. [Online]. Available: https://github.com/Netflix/Hystrix/.
P. Hosek and C. Cadar, "VARAN the unbelievable: An efficient Nversion execution framework, " in Proc. 12th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2015, pp. 339-353.
G. Latif-Shabgahi, J. M. Bass, and S. Bennett, "A taxonomy for software voting algorithms used in safety-critical systems, " IEEE Transactions on Reliability, vol. 53, no. 3, pp. 319-328, Sep. 2004.
M. Rezaee, Y. Sedaghat, and M. Khosravi-Farmad, "A confidence-based software voter for safety-critical systems, " in Proc. 12th IEEE International Conference on Dependable, Autonomic and Secure Computing, Aug. 2014, pp. 196-201.
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, "The synchronous data flow programming language LUSTRE, " Proceedings of the IEEE, vol. 79, no. 9, pp. 1305-1320, Sep. 1991.
P. L. Guernic, T. Gautier, M. L. Borgne, and C. L. Maire, "Programming real-time applications with SIGNAL, " Proceedings of the IEEE, vol. 79, no. 9, pp. 1321-1336, Sep. 1991.
F. Boussinot and R. de Simone, "The ESTEREL language, " Proceedings of the IEEE, vol. 79, no. 9, pp. 1293-1304, Sep. 1991.
ISO/IEC 9899, Programming Languages - C, 2nd ed., International Organization for Standardization and International Electrotechnical Commission, Dec. 1999.
I. Cibrario Bertolotti, "RTOS support in C-language toolchains, " in Proc. 18th IEEE International Conference on Industrial Technology (ICIT), Mar. 2017, pp. 1328-1333.
ISO/IEC/IEEE 9945, Information Technology - Portable Operating System Interface (POSIX®) Base Specifications, Issue 7, IEEE and The Open Group, Sep. 2009.