The RPC Calculus
Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming - PPDP 09
Several recent language designs have offered a unified language for programming a distributed system, with explicit notation of locations; we call these “location-aware” languages. These languages provide constructs allowing the programmer to control the location (the choice of host, for example) where a piece of code should run, which can be useful for security or performance reasons. On the other hand, a central mantra of WWW system engineering prescribes that web servers should be “stateless”: that no “session state” should be maintained on behalf of individual clients—that is, no state that pertains to the particular point of the interaction at which a client program resides. Many implementations of locationaware languages are not at home on the web: they hold some kind of client-specific state on the server. We show how to implement a symmetrical location-aware language on top of a stateless server.