An Erlang implementation of multiparty session actors

Fowler, S. (2016) An Erlang implementation of multiparty session actors. Electronic Proceedings in Theoretical Computer Science, 223, pp. 36-50. (doi: 10.4204/eptcs.223.3)

223077.pdf - Published Version
Available under License Creative Commons Attribution.



By requiring co-ordination to take place using explicit message passing instead of relying on shared memory, actor-based programming languages have been shown to be effective tools for building reliable and fault-tolerant distributed systems. Although naturally communication-centric, communication patterns in actor-based applications remain informally specified, meaning that errors in communication are detected late, if at all. Multiparty session types are a formalism to describe, at a global level, the interactions between multiple communicating entities. This article describes the implementation of a prototype framework for monitoring Erlang/OTP gen_server applications against multiparty session types, showing how previous work on multiparty session actors can be adapted to a purely actor-based language, and how monitor violations and termination of session participants can be reported in line with the Erlang mantra of "let it fail". Finally, the framework is used to implement two case studies: an adaptation of a freely-available DNS server, and a chat server.

Item Type:Articles
Additional Information:This work was supported by EPSRC grant EP/L01503X/1 (University of Edinburgh CDT in Pervasive Parallelism).
Glasgow Author(s) Enlighten ID:Fowler, Dr Simon
Authors: Fowler, S.
College/School:College of Science and Engineering > School of Computing Science
Journal Name:Electronic Proceedings in Theoretical Computer Science
Publisher:Open Publishing Association
Published Online:11 August 2016
Copyright Holders:Copyright © 2016 S. Fowler
First Published:First published in Electronic Proceedings in Theoretical Computer Science 223: 36-50
Publisher Policy:Reproduced under a Creative Commons License

University Staff: Request a correction | Enlighten Editors: Update this record