A Theory of Composing Protocols
Laura Bocchi (University of Kent, UK), Dominic Orchard (University of, Kent, UK / University of Cambridge, UK), A. Laura Voinea (University of, Glasgow, UK)

TL;DR
This paper introduces a formal framework for composing multiple protocols within a single process, enabling software to handle complex, interdependent interactions more reliably and with verified behavior.
Contribution
It proposes a novel interleaving composition method for protocols described via process algebra, allowing integration of multiple protocols with behavior preservation.
Findings
Proves that the composed protocol maintains the behavior of individual protocols.
Develops a tool for protocol composition and Erlang code generation.
Demonstrates the approach with practical protocol examples.
Abstract
In programming, protocols are everywhere. Protocols describe the pattern of interaction (or communication) between software systems, for example, between a user-space program and the kernel or between a local application and an online service. Ensuring conformance to protocols avoids a significant class of software errors. Subsequently, there has been a lot of work on verifying code against formal protocol specifications. The pervading approaches focus on distributed settings involving parallel composition of processes within a single monolithic protocol description. However we observe that, at the level of a single thread/process, modern software must often implement a number of clearly delineated protocols at the same time which become dependent on each other, e.g., a banking API and one or more authentication protocols. Rather than plugging together modular protocol-following…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsService-Oriented Architecture and Web Services · Advanced Software Engineering Methodologies · Logic, programming, and type systems
