Abstract
Software components are expected to communicate according to predetermined protocols and APIs. Numerous methods have been proposed to check the correctness of communicating systems against such protocols/APIs. Session types are one such method, used both for static type-checking as well as for run-time monitoring. This work takes a fresh look at the run-time verification of communicating systems using session types, in theory and in practice. On the theoretical side, we develop a formal model of session-monitored processes. We then use this model to formulate and prove new results on the monitorability of session types, defined in terms of soundness (i.e., whether monitors only flag ill-typed processes) and completeness (i.e., whether all ill-typed processes can be flagged by a monitor). On the practical side, we show that our monitoring theory is indeed realisable: we instantiate our formal model as a Scala toolkit (called STMonitor) for the automatic generation of session monitors. These executable monitors can be used as proxies to instrument communication across black-box processes written in any programming language. Finally, we evaluate the viability of our approach through a series of benchmarks.
Original language | English |
---|---|
Title of host publication | Proceedings of 35th European Conference on Object-Oriented Programming |
Publisher | Schloss Dagstuhl - Leibniz-Zentrum für Informatik |
Publication date | 2021 |
Pages | 20:1--20:30 |
ISBN (Print) | 978-3-95977-190-0 |
DOIs | |
Publication status | Published - 2021 |
Event | 35th European Conference on Object-Oriented Programming - Virtual event, Aarhus, Denmark Duration: 11 Jul 2021 → 17 Jul 2021 Conference number: 35 https://2021.ecoop.org/ |
Conference
Conference | 35th European Conference on Object-Oriented Programming |
---|---|
Number | 35 |
Location | Virtual event |
Country/Territory | Denmark |
City | Aarhus |
Period | 11/07/2021 → 17/07/2021 |
Internet address |
Series | Leibniz International Proceedings in Informatics, LIPIcs |
---|---|
Volume | 194 |
ISSN | 1868-8969 |
Keywords
- Monitor correctness
- Monitorability
- Scala
- Session types