Abstract
System substitution can be defined as the capability to replace a system by another one that preserves the specification of the original one. It may be used for reconfiguration in various situations like failure management, maintenance or Web services compensation. When substituting a system at runtime, a key requirement is to correctly restore the state of the substituted one. This paper proposes a correct-by-construction generic model for system reconfiguration defined using formal methods, based on a system substitution operator we define. This model provides a formal semantics for Web services compensation seen as a particular case of system substitution. The originality of the proposed approach relies on the fact that it is defined on a family of systems and it provides instantiation mechanisms for particular systems using witnesses. Systems are seen as state transition systems, and the system substitution operation is formalized as a state recovery operation. This proposal is supported by a formal model relying on stepwise refinements and proofs. A generic formal model is developed using Event-B. Specific systems instantiate this generic model using a particular use of refinement based on the definition of witnesses for existential proof obligations. A specific case study, borrowed from an electronic commerce application, is used as a particular instance of the defined generic model.
Similar content being viewed by others
References
Aït-Sadoune I, Ait-Ameur Y (2015) Formal modelling and verification of transactional web service composition: a refinement and proof approach with event-b. In: Thalheim B, Schewe K-D, Prinz A, Buchberger B (eds) Correct software in web applications and web services. Springer, Berlin, pp 1–27
Abrial J-R, Butler M, Hallerstede S, Hoàng TS, Mehta F, Voisin L (2010) Rodin: an open toolset for modelling and reasoning in Event-B. Int J Softw Tools Technol Transf 12(6):447–466
Abrial J-R (1996) The B-book: assigning programs to meanings. Cambridge University Press, Cambridge
Abrial J-R (2010) Modeling in Event-B: system and software engineering, 1st edn. Cambridge University Press, New York
An X, Delaval G, Diguet J-P, Gamatié A, Gueye S, Marchand H, de Palma N, Rutten E (2015) Discrete control-based design of adaptive and autonomic computing systems. In: Raja N, Gautam B, Ranjan PM (eds) Distributed computing and internet technology, vol 8956. Lecture notes in computer science. Springer, Berlin, pp 93–113
Abrial J-R, Hallerstede S (2007) Refinement, decomposition, and instantiation of discrete models: application to Event-B. Fundam Inform 77(1):1–28
Ait-Ameur Y, Méry D (2016) Making explicit domain knowledge in formal system development. Sci Comput Program 121:100–127
Babin G, Aït-Ameur Y, Nakajima S, Pantel M (2015) Refinement and proof based development of systems characterized by continuous functions. In: Li X, Liu Z, Yi W (eds) Dependable software engineering: theories, tools, and applications, vol 9409. Lecture notes in computer science. Springer, Berlin, pp 55–70
Babin G, Aït-Ameur Y, Marc P (2015) Formal verification of runtime compensation of web service compositions: a refinement and proof based proposal with Event-B. In: IEEE international conference on services computing (SCC), pp 98–105
Babin G, Aït-Ameur Y, Pantel M (2016) Correct instantiation of a system reconfiguration pattern: a proof and refinement-based approach. In: 2016 IEEE 17th international symposium on high assurance systems engineering (HASE), pp 31–38
Babin G, Yamine A-A, Marc P (2016) A generic model for system substitution. In: Alexander R, Fuyuki I (eds) Trustworthy cyber-physical systems engineering, computer and information science series, chapter 4. Chapman and Hall/CRC, London
Babin G, Aït-Ameur Y, Pantel M (2017) Web service compensation at runtime: formal modeling and verification using the event-b refinement and proof based formal method. In: IEEE transactions on services computing—special issue on advances in web services research
Babin G, Aït-Ameur Y, Singh NK, Pantel M(2016) Abstract state machines, Alloy, B, TLA, VDM, and Z: 5th international conference, ABZ 2016, Linz, Austria, May 23–27, 2016, proceedings, chapter handling continuous functions in hybrid systems reconfigurations: a formal Event-B development, pp 290–296. Springer, Berlin
Bertot Y, Castéran P (2004) Interactive theorem proving and program development: Coq’Art: the calculus of inductive constructions. Texts in theoretical computer science. Springer, Berlin
Bhattacharyya A (2013) Formal modelling and analysis of dynamic reconfiguration of dependable systems. PhD thesis, Newcastle University School of Computing Science
Bjørner D, Jones CB (eds) (1978) The Vienna development method: the meta-language. Lecture notes in computer science, vol 61. Springer, Berlin
Chebieb A, Ait-Ameur Y (2018) A formal model for plastic human computer interfaces. Front Comput Sci 12(2):351–375
Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on principles of programming languages, POPL ’77. ACM, New York, NY, pp 238–252
Diallo N, Ghardallou W, Mili A (2016) Program repair by stepwise correctness enhancement. In: Luca A, Adrian F, Anna I (eds) Proceedings first workshop on pre- and post-deployment verification techniques, PrePost@IFM 2016, Reykjavík, Iceland, 4th June 2016, EPTCS, vol 208, pp 1–15
de Lemos R, de Castro Guerra PA, Fischer Rubira CM (2006) A fault-tolerant architectural approach for dependable systems. IEEE Softw 23(2):80–87
de Palma N, Laumay P, Bellissard L (2001) Ensuring dynamic reconfiguration consistency. In: 6th international workshop on component-oriented programming (WCOP 2001), ECOOP related workshop, pp 18–24
Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, Berlin
Emerson EA, Clarke EM (1980) Characterizing correctness properties of parallel programs using fixpoints. In: de Bakker J, van Leeuwen J (eds) Automata, languages and programming, vol 85. Lecture notes in computer science. Springer, Berlin, pp 169–181
Filieri A, Ghezzi C, Tamburrelli G (2012) A formal approach to adaptive software: continuous assurance of non-functional requirements. Form Asp Comput 24(2):163–186
Gurevich Y (1995) Evolving algebras 1993: Lipari guide. In: Börger E (ed) Specification and validation methods. Oxford University Press, Oxford, pp 9–36
INRIA (2016) The Coq proof assistant reference manual, version 8.5 edition
Iftikhar MU, Weyns D (2012) A case study on formal verification of self-adaptive behaviors in a decentralized system. In: Kokash N, Ravara A (eds) 11th international workshop on foundations of coordination languages and self adaptation (FOCLASA’12). EPTCS, vol 91, pp 45–62
Leuschel M, Butler M (2008) Prob: an automated analysis toolset for the b method. Int J Softw Tools Technol Transf 10(2):185–203
Lanoix A, Dormoy J, Kouchnarenko O (2011) Combining proof and model-checking to validate reconfigurable architectures. Electron Not Theor Comput Sci 279(2):43–57 Proceedings of the 8th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA)
Le Goues C, Forrest S, Weimer W (2013) Current challenges in automatic software repair. Softw Qual J 21(3):421–443
Lemos R, Giese H, Müller HA, Shaw M, Andersson J, Litoiu M, Schmerl B, Tamura G, Villegas NM, Vogel T, Weyns D, Baresi L, Becker B, Bencomo N, Brun Y, Cukic B, Desmarais R, Dustdar S, Engels G, Geihs K, Göschka KM, Gorla A, Grassi V, Inverardi P, Karsai G, Kramer J, Lopes A, Magee J, Malek S, Mankovskii S, Mirandola R, Mylopoulos J, Nierstrasz O, Pezzé M, Prehofer C, Schäfer W, Schlichting R, Smith DB, Sousa JP, Tahvildari L, Wong K, Wuttke J (2013) Software engineering for self-adaptive systems: a second research roadmap. In: Lemos R, Giese H, Müller HA, Shaw M (eds) Software engineering for self-adaptive systems II, vol 7475. Lecture notes in computer science. Springer, Berlin, pp 1–32
Le Goues C, Nguyen TV, Forrest S, Weimer W (2012) Software engineering for self-adaptive systems: a second research roadmap. IEEE Trans Softw Eng 38(1):54–72
Lopatkin I, Romanovsky A (2014) Rigorous development of fault-tolerant systems through co-refinement. Technical report, School of Computing Science, University of Newcastle upon Tyne
Mirandola R, Potena P, Riccobene E, Scandurra P (2014) A reliability model for service component architectures. J Syst Softw 89:109–127
Mirandola R, Potena P, Scandurra P (2014) Adaptation space exploration for service-oriented applications. Sci Comput Program 80:356–384
Nipkow T, Paulson LC, Wenzel M (2002) Isabelle/HOL—a proof assistant for higher-order logic, vol 2283. Lecture notes in computer science. Springer, Berlin
Parashar M, Hariri S (2005) Autonomic computing: an overview. In: Banâtre J-P, Fradet P, Giavitto J-L, Michel O (eds) Unconventional programming paradigms, vol 3566. Lecture notes in computer science. Springer, Berlin, pp 257–269
Potena P (2013) Optimization of adaptation plans for a service-oriented architecture with cost, reliability, availability and performance tradeoff. J Syst Softw 86(3):624–648
Pereverzeva I, Troubitsyna E, Laibinis L (2012) Development of fault tolerant MAS with cooperative error recovery by refinement in Event-B. In: Ishikawa F, Romanovsky A (eds) DS-Event-B 2012: workshop on the experience of and advances in developing dependable systems in Event-B, in conjunction with ICFEM 2012—Kyoto, Japan, November 13, 2012
Pereverzeva I, Troubitsyna E, Laibinis L (2013) A refinement-based approach to developing critical multi-agent systems. Int J Crit Comput-Based Syst 4(1):69–91
Rodrigues R, Liskov B, Chen K, Liskov M, Schultz D (2012) Automatic reconfiguration for large-scale reliable storage systems. IEEE Trans Depend Secure Comput 9(2):145–158
Tarasyuk A, Pereverzeva I, Troubitsyna E, Latvala T, Nummila L (2012) Formal development and assessment of a reconfigurable on-board satellite system. In: Ortmeier F, Daniel P (eds) Computer safety, reliability, and security, vol 7612. Lecture notes in computer science. Springer, Berlin, pp 210–222
Wenzel M (2016) The Isabelle/Isar reference manual
Weyns D, Iftikhar MU, de la Iglesia DG, Tanvir A (2012) A survey of formal methods in self-adaptive systems. In: Proceedings of the fifth international c* conference on computer science and software engineering, C3S2E ’12. ACM, New York, pp 67–79
Wermelinger M, Lopes A, Fiadeiro JL (2001) A graph based architectural (re)configuration language. In: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on foundations of software engineering, ESEC/FSE-9. ACM, New York, pp 21–32
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Ait-Ameur, Y., Babin, G. & Pantel, M. An Event-B formal model for a system reconfiguration pattern and its instantiation: application to Web services compensation. SOCA 15, 205–230 (2021). https://doi.org/10.1007/s11761-021-00314-4
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11761-021-00314-4