Formal design of scalable conversation protocols using Event‐B: Validation, experiments, and benchmark
|S. Benyagoub, Y. Ait-Ameur, M. Ouederni, A. Mashkoor, A. Medeghri. Formal design of scalable conversation protocols using Event‐B: Validation, experiments, and benchmark. Journal of Software: Evolution and Process, Special Issue: Security- and Safety-Critical Cyber-Physical Systems, volume 32, number 2, pages e2209, DOI 10.1002/smr.2209, 2, 2020.|
|Journal||Journal of Software: Evolution and Process, Special Issue: Security- and Safety-Critical Cyber-Physical Systems|
Contemporary interaction‐based complex systems are often built by reusing existing distributed peers, which have to coordinate with each other to fulfill the client, system, and environment requirements. In this paper, we address the design of distributed systems composed of peers (state‐transitions systems) communicating through message exchanges. We consider choreographies as the formal model, allowing a developer to describe and specify peers coordination as a set of conversations; ie, all sequences of messages exchanged between the communicating peers. Proceeding this way requires building neither the individual peers nor their composition as they may be obtained by the choreography projection. The correctness of the preservation of such messages exchanges by each peer obtained after projection is a key issue, known as the realizability problem. Checking choreography realizability is mandatory to build third‐party applications with no coordination error, eg, absence of deadlocks, missing messages, and erroneous messaging order. In our previous work, we have proposed a set of composition operators, allowing designers to build realizable choreographies that are represented by conversation protocols (CPs). In this work, realizability is guaranteed by construction. We rely on the correct‐by‐construction Event‐B method to prove that each CP constructed using our operators is realizable. In this paper, we show how our approach applies and scales to a set of use cases borrowed from the literature and used by the research community. We also show that our approach allows to detect failures and failure recovery in case realizability does not hold.