Applied Sciences (Oct 2021)

Models@Runtime: The Development and Re-Configuration Management of Python Applications Using Formal Methods

  • Mohammed Mounir Bouhamed,
  • Gregorio Díaz,
  • Allaoua Chaoui,
  • Oussama Kamel,
  • Radouane  Nouara

DOI
https://doi.org/10.3390/app11209743
Journal volume & issue
Vol. 11, no. 20
p. 9743

Abstract

Read online

Models@runtime (models at runtime) are based on computation reflection. Runtime models can be regarded as a reflexive layer causally connected with the underlying system. Hence, every change in the runtime model involves a change in the reflected system, and vice versa. To the best of our knowledge, there are no runtime models for Python applications. Therefore, we propose a formal approach based on Petri Nets (PNs) to model, develop, and reconfigure Python applications at runtime. This framework is supported by a tool whose architecture consists of two modules connecting both the model and its execution. The proposed framework considers execution exceptions and allows users to monitor Python expressions at runtime. Additionally, the application behavior can be reconfigured by applying Graph Rewriting Rules (GRRs). A case study using Service-Level Agreement (SLA) violations is presented to illustrate our approach.

Keywords