Communicating Mobile Processes

This paper introduces occam-it, an efficient and safe binding of key elements from Hoare's CSP and Milner's π-calculus into a programming language of industrial strength. A brief overview of classical occam is presented, before focussing on the extensions providing data, channel and process mobility. Some implementation details are given, along with current benchmark results. Application techniques exploiting mobile processes for the direct modelling of large-scale natural systems are outlined, including the modelling of locality (so that free-ranging processes can locate each other). Run-time overheads are sufficiently low so that systems comprising millions of dynamically assembling and communicating processes are practical on modest processor resources. The ideas and technology will scale further to address larger systems of arbitrary complexity, distributed over multiple processors with no semantic discontinuity. Semantic design, comprehension and analysis are made possible through a natural structuring of systems into multiple levels of network and the compositionality of the underlying algebra.

[1]  Jim Woodcock,et al.  Travelling Processes , 2004, MPC.

[2]  Wayne A. Jansen,et al.  Countermeasures for mobile agent security , 2000, Comput. Commun..

[3]  Mario Schweigler,et al.  Adding Mobility to Networked Channel-Types , 2004 .

[4]  Per Brinch Hansen,et al.  Efficient parallel recursion , 1995, SIGP.

[5]  Brian Vinter,et al.  RMoX: A Raw-Metal occam Experiment , 2003 .

[6]  Peter H. Welch,et al.  Higher levels of process synchronisation , 1997 .

[7]  Peter H. Welch,et al.  Communicating Process Architectures 2012 , 2000 .

[8]  Wayne Jansen,et al.  NIST Special Publication 800-19 – Mobile Agent Security , 2000 .

[9]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[10]  Peter H. Welch,et al.  Prioritised dynamic communicating and mobile processes , 2003, IEE Proc. Softw..

[11]  Aaron Kershenbaum,et al.  Mobile Agents: Are They a Good Idea? , 1996, Mobile Object Systems.

[12]  D. Marr,et al.  Hyper-Threading Technology Architecture and MIcroarchitecture , 2002 .

[13]  Athanasios T. Karygiannis,et al.  SP 800-19. Mobile Agent Security , 1999 .

[14]  Michael Goldsmith,et al.  FDR2 user manual , 2000 .

[15]  James Moores The design and implementation of OCCAM/CSP support for a range of languages and platforms , 2002 .

[16]  Leon S. Levy A walk through AWK , 1983, SIGP.

[17]  André Bakkers Applying transputer based parallel machines : OUG-10, proceedings of the 10th Occam User Group Technical Meeting, 3-5 April 1989, Enschede, Netherlands , 1989 .

[18]  Jan Vitek,et al.  Mobile Object Systems Towards the Programmable Internet , 1996, Lecture Notes in Computer Science.

[19]  Peter H. Welch,et al.  Mobile Data, Dynamic Allocation and Zero Aliasing: an occam Experiment , 2001 .

[20]  Peter H. Welch,et al.  The Kent retargetable occam compiler , 1996 .

[21]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[22]  Steve A. Schneider,et al.  Concurrent and Real-time Systems: The CSP Approach , 1999 .

[23]  Peter H. Welch,et al.  Prioritised Dynamic Communicating Processes: Part II , 2002 .

[24]  Mario Schweigler,et al.  Flexible, Transparent and Dynamic occam Networking With KRoC.net , 2003 .

[25]  Michael D. Poole Extended Transputer Code - a Target-Independent Representation of Parallel Programs , 1998 .

[26]  Jim Woodcock,et al.  The Semantics of Circus , 2002, ZB.

[27]  Peter H. Welch,et al.  Mobile Data Types for Communicating Processes , 2001 .

[28]  Peter H. Welch,et al.  Graceful Termination -- Graceful Resetting , 1989 .

[29]  Fred R. M. Barnes,et al.  Dynamics and pragmatics for high performance concurrency , 2003 .

[30]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[31]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.