Skip to main content
Log in

An Event-B formal model for a system reconfiguration pattern and its instantiation: application to Web services compensation

  • Special Issue Paper
  • Published:
Service Oriented Computing and Applications Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. 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

    Google Scholar 

  2. 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

    Article  Google Scholar 

  3. Abrial J-R (1996) The B-book: assigning programs to meanings. Cambridge University Press, Cambridge

    Book  Google Scholar 

  4. Abrial J-R (2010) Modeling in Event-B: system and software engineering, 1st edn. Cambridge University Press, New York

    Book  Google Scholar 

  5. 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

    Chapter  Google Scholar 

  6. Abrial J-R, Hallerstede S (2007) Refinement, decomposition, and instantiation of discrete models: application to Event-B. Fundam Inform 77(1):1–28

    MathSciNet  MATH  Google Scholar 

  7. Ait-Ameur Y, Méry D (2016) Making explicit domain knowledge in formal system development. Sci Comput Program 121:100–127

    Article  Google Scholar 

  8. 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

    Chapter  Google Scholar 

  9. 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

  10. 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

  11. 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

    Google Scholar 

  12. 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

  13. 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

  14. 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

    Book  Google Scholar 

  15. Bhattacharyya A (2013) Formal modelling and analysis of dynamic reconfiguration of dependable systems. PhD thesis, Newcastle University School of Computing Science

  16. Bjørner D, Jones CB (eds) (1978) The Vienna development method: the meta-language. Lecture notes in computer science, vol 61. Springer, Berlin

    Google Scholar 

  17. Chebieb A, Ait-Ameur Y (2018) A formal model for plastic human computer interfaces. Front Comput Sci 12(2):351–375

    Article  Google Scholar 

  18. 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

  19. 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

  20. 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

    Article  Google Scholar 

  21. 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

  22. Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, Berlin

    Book  Google Scholar 

  23. 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

    Chapter  Google Scholar 

  24. 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

    Article  MathSciNet  Google Scholar 

  25. Gurevich Y (1995) Evolving algebras 1993: Lipari guide. In: Börger E (ed) Specification and validation methods. Oxford University Press, Oxford, pp 9–36

    Google Scholar 

  26. INRIA (2016) The Coq proof assistant reference manual, version 8.5 edition

  27. 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

  28. Leuschel M, Butler M (2008) Prob: an automated analysis toolset for the b method. Int J Softw Tools Technol Transf 10(2):185–203

    Article  Google Scholar 

  29. 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)

    Article  Google Scholar 

  30. Le Goues C, Forrest S, Weimer W (2013) Current challenges in automatic software repair. Softw Qual J 21(3):421–443

    Article  Google Scholar 

  31. 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

    Chapter  Google Scholar 

  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

    Article  Google Scholar 

  33. 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

  34. Mirandola R, Potena P, Riccobene E, Scandurra P (2014) A reliability model for service component architectures. J Syst Softw 89:109–127

    Article  Google Scholar 

  35. Mirandola R, Potena P, Scandurra P (2014) Adaptation space exploration for service-oriented applications. Sci Comput Program 80:356–384

    Article  Google Scholar 

  36. 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

    MATH  Google Scholar 

  37. 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

    Chapter  Google Scholar 

  38. 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

    Article  Google Scholar 

  39. 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

  40. 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

    Article  Google Scholar 

  41. 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

    Article  Google Scholar 

  42. 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

    Chapter  Google Scholar 

  43. Wenzel M (2016) The Isabelle/Isar reference manual

  44. 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

  45. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yamine Ait-Ameur.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11761-021-00314-4

Keywords

Navigation