Linear forwarders

A linear forwarder is a process that receives one message on a channel and sends it on a different channel. We use linear forwarders to provide a distributed implementation of Milner's asynchronous pi calculus. Such a distributed implementation is known to be difficult due to input capability, where a received name is used as the subject of a subsequent input. This allows the dynamic creation of large input processes in the wrong place, thus requiring comparatively large code migrations in order to avoid consensus problems. Linear forwarders constitute a small atom of input capability that is easy to move. We show that the full input capability can be simply encoded using linear forwarders. We also design a distributed machine, demonstrating the ease with which we can implement the pi calculus using linear forwarders. We also show that linear forwarders allow for a simple encoding of distributed choice and have ''clean'' behaviour in the presence of failures.

[1]  Arnaud Sahuguet,et al.  Resource Sharing Through Query Process Migration , 2001 .

[2]  Cosimo Laneve,et al.  PiDuce: A Process Calculus with Native XML Datatypes , 2005, EPEW/WS-FM.

[3]  Rocco De Nicola,et al.  KLAIM: A Kernel Language for Agents Interaction and Mobility , 1998, IEEE Trans. Software Eng..

[4]  Kousha Etessami,et al.  A Hierarchy of Polynomial-Time Computable Simulations for Automata , 2002, CONCUR.

[5]  Nobuko Yoshida,et al.  On Reduction-Based Process Semantics , 1995, Theor. Comput. Sci..

[6]  David N. Turner,et al.  The polymorphic Pi-calculus : theory and implementation , 1996 .

[7]  Luca Cardelli,et al.  Mobile Ambients , 1998, FoSSaCS.

[8]  Cosimo Laneve,et al.  Smooth Orchestrators , 2006, FoSSaCS.

[9]  Cosimo Laneve,et al.  Foundations of Web Transactions , 2005, FoSSaCS.

[10]  Benjamin C. Pierce,et al.  Location-Independent Communication for Mobile Agents: A Two-Level Architecture , 1998, ICCL Workshop: Internet Programming Languages.

[11]  James Riely,et al.  Distributed processes and location failures , 2001, Theor. Comput. Sci..

[12]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

[13]  Roberto M. Amadio,et al.  The Receptive Distributed pi-Calculus (Extended Abstract) , 1999, FSTTCS.

[14]  Prateek Mishra,et al.  Facile: A symmetric integration of concurrent and functional programming , 1989, International Journal of Parallel Programming.

[15]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[16]  Cédric Fournet,et al.  The Join Calculus: A Language for Distributed Mobile Programming , 2000, APPSEM.

[17]  Davide Sangiorgi,et al.  On Bisimulations for the Asynchronous pi-Calculus , 1996, Theor. Comput. Sci..

[18]  Cosimo Laneve,et al.  The Fusion Machine , 2002, CONCUR.

[19]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[20]  Chris Hankin,et al.  Coordinatio Languages and Models , 2002, Lecture Notes in Computer Science.

[21]  Nobuko Yoshida,et al.  A Distributed Abstract Machine for Boxed Ambient Calculi , 2004, ESOP.

[22]  Nicholas Carriero,et al.  Parallel Programming in Linda , 1985, ICPP.

[23]  Peter Sjödin,et al.  Multiway Synchronization Verified with Coupled Simulation , 1992, CONCUR.

[24]  Philippa Gardner,et al.  Explicit fusions , 2000, Theor. Comput. Sci..

[25]  Roberto M. Amadio,et al.  The receptive distributed π-calculus , 1999, TOPL.

[26]  Massimo Merro On Equators in Asynchronous Name-passing Calculi without Matching , 1999, EXPRESS.

[27]  Martín Abadi,et al.  Mobile values, new names, and secure communication , 2001, POPL '01.

[28]  Michele Boreale On the Expressiveness of Internal Mobility in Name-Passing Calculi , 1998, Theor. Comput. Sci..

[29]  Martin Berger Basic Theory of Reduction Congruence forTwo Timed Asynchronous pi-Calculi , 2004, CONCUR.

[30]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[31]  B. Pierce,et al.  Typing and subtyping for mobile processes , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[32]  Davide Sangiorgi pi-Calculus, Internal Mobility, and Agent-Passing Calculi , 1996, Theor. Comput. Sci..

[33]  Roberto M. Amadio An Asynchronous Model of Locality, Failurem and Process Mobility , 1997, COORDINATION.

[34]  Paolo Milazzo,et al.  BoPi - a distributed machine for experimenting Web services technologies , 2005, Fifth International Conference on Application of Concurrency to System Design (ACSD'05).

[35]  Sylvain Conchon,et al.  Jocaml: mobile agents for Objective-Caml , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[36]  Martin Jandl,et al.  Internet Programming Languages , 2005, The Industrial Information Technology Handbook.

[37]  Roberto M. Amadio,et al.  Localities and Failures (Extended Abstract) , 1994, FSTTCS.

[38]  Davide Sangiorgi,et al.  On the bisimulation proof method , 1998, Mathematical Structures in Computer Science.

[39]  Benjamin C. Pierce,et al.  Decoding Choice Encodings , 2000, Inf. Comput..

[40]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[41]  Benjamin C. Pierce,et al.  Linearity and the pi-calculus , 1999, TOPL.

[42]  Philippa Gardner,et al.  Modelling dynamic web data , 2003, Theor. Comput. Sci..

[43]  Davide Sangiorgi,et al.  On Asynchrony in Name-Passing Calculi , 1998, ICALP.

[44]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[45]  Robin Milner,et al.  Barbed Bisimulation , 1992, ICALP.