[TYPES] Types in distributed systems
Peter Sewell
Peter.Sewell at cl.cam.ac.uk
Tue Sep 2 04:55:31 EDT 2014
> The TL;DR version is: how does one specify types in a distributed
> programming model, like actors? And how much can we trust these types?
As you can see from the earlier responses, there's been a lot of work
addressing different aspects of this problem. To quickly (and
partially!) summarise, we have:
- typing to ensure message-passing endpoints conform to some protocols
(session types etc.), as several people have mentioned
- partially typed systems, in which type-checking part of the system
ensures that its interactions with some other untrusted (and hence not
necessarily type-correct) part will not be disastrous. Andrew
mentioned James Riely and Matthew Hennessy's work on this, Jan Vitek
and I dabbled in this direction
(http://www.cl.cam.ac.uk/~pes20/wrapall.ps), and there's a lot of more
recent work, especially in non-distributed PL contexts (eg Richards et
al.'s OOPSLA 13 paper, like types, etc.).
- typing that ensures safety properties in the face of version change
of some of the endpoints. Phil mentioned our Acute language, and
there's also the HashCaml follow-up
(http://www.cl.cam.ac.uk/~pes20/hashcaml/index.html). These explore
how one can preserve type abstraction boundaries using only runtime
checking of channel-name identity - basically implicitly versioned
communication channels.
- typing to ensure that dynamic updates of endpoints will work, as
explored by Mike Hicks and others.
Peter
More information about the Types-list
mailing list