Mobile Processes: a Commented Bibliography
Total Page:16
File Type:pdf, Size:1020Kb
Mobile Processes: a Commented Bibliography Silvano Dal Zilio Microsoft Research Abstract. We propose a short bibliographic survey of calculi for mobile processes. Contrasting with other similar exercises, we consider two re- lated, but distinct, notions of mobile processes, namely labile processes, which can exhibit dynamic changes in their interaction structure, as mod- elled in the π-calculus of Milner, Parrow and Walker for example, and motile processes, which can exhibit motion, as modelled in the ambient calculus of Cardelli and Gordon. A common characteristic of the alge- braic frameworks presented in this paper is the use of names as first class values and the support for the dynamic generation of new, fresh names. 1 Introduction Process algebras have proved to be valuable mathematical tools to reason about the behaviour of concurrent and communicating systems. For more than ten years now, research has been conducted on semantics of higher-order processes that allow communication channels or even processes to be carried across by communications. Process calculi featuring the ability to dynamically create and exchange channel names are often referred to as mobile, a term popularised by the seminal introduction to the π-calculus [1], a prominent example of calculus with mobile processes. 1. Robin Milner, Joachim Parrow, David Walker: A Calculus of Mobile Pro- cesses, (parts I and II). Information and Computation 100(1) (1992) 1–77 2. Robin Milner: Communicating and Mobile Systems: the Pi-Calculus. Cam- bridge University Press (2000) Unfortunately, the term mobility is overloaded with meaning and the notion of mobility supported by the π-calculus encompasses only part of all the abstrac- tions meaningful to mobility in a distributed system. For instance, the π-calculus does not directly model phenomena such as the distribution of processes within different localities, their migrations, or their failures. As a matter of fact, the term mobility is related to two distinct notions. First, mobility is a property of systems undergoing frequent changes. In this situation, we say that the system is labile, by analogy with the labile compounds of a chemical reaction. Another notion associated with mobility is related to systems capable of changing their physical location. We say that these systems F. Cassez, C. Jard, B. Rozoy and M. Ryan (Eds.): Modelling and Verification of Parallel Processes, LNCS 2067, pp. 207–223, 2001. c Springer-Verlag Berlin Heidelberg 2001 208 Silvano Dal Zilio are motile, borrowing a term commonly used in biology to describe living form demonstrating movement by independent means. Labile systems are well modelled by the π-calculus, which can represents systems that dynamically reorganize their communication structure throughout time. But as we said earlier, the π-calculus does not directly models motile systems. Based on this distinction, and to grasp the core meaning of location and process migration, process calculi with explicit locations, such as the ambient calculus of Cardelli and Gordon [3], have been recently proposed. 3. Luca Cardelli, Andrew D. Gordon: Mobile Ambients. In Proc. of FoSSaCS, Springer LNCS 1378 (1998) 140–155 This paper offers a short bibliographic survey of calculi for mobile processes. Contrasting with other similar exercises, we consider both labile and motile process calculi and we concentrate especially on the π-calculus, the ambient calculus, and some extension of π with distribution primitives. This commented bibliography is not meant as an introduction to the π- calculus or the ambient calculus. In particular, we do not define these calculi, nor give hints at their syntax or semantics, as we cite several introductory mate- rials that answer this purpose. Instead, this paper is an attempt to explain the differences and similarities between the two different notions of mobility that motivated the design of the π and ambient calculi, and to attract notice to in- teresting research problems arisen from the study of mobility. We organize the rest of the paper as follows. Section 2 is concerned with labile process calculi, that is, calculi featuring mobility of names, and more par- ticularly with the π-calculus. We suppose that the reader is familiar with process calculus and their equational theory, such as found in [2] for example. Familiar- ity with distributed programming languages and type systems would also be an advantage. In Section 3, we present calculi with distributed and migrating pro- cesses, namely motile calculi. We start by considering extension of the π-calculus with explicit locations and primitives for location failures and process migration. Then we look at the ambient calculus, an archetypal calculus for the mobility of computations. Since bibliographical references make an important part of this paper, we provide them directly within the text. The complete list of references is provided at the end of this paper. 2 Mobility of Names As explained in introduction of this paper, the notion of mobility in process calculi often refers to the capability for a process to exchange names as values. The idea of using channel names as data, together with the ability to generate fresh and unique names, is the basis on which the π-calculus is founded. In his 1991 Turing award Lecture, Milner [4] gives an illuminating account on the concepts of interaction and naming. The study of the relation between Mobile Processes: a Commented Bibliography 209 computation and naming is further developed in Gordon’s survey on nominal calculi [5], that we discuss in the following section. 4. Robin Milner: Elements of Interaction. Communications of the ACM 36(1) (1993) 78–89 5. Andrew D. Gordon: Notes on Nominal Calculi for Security and Mobility. In Proc. of FOSAD, Springer LNCS (2001), to appear 2.1 The Significance of Names In his Turing award lecture, Milner argues that when one talks about mobility in a system of interacting agents, what really matters is not the mobility of the agents per se (an agent can even not exist), but rather the movement of the access paths to the agents. These access paths — channel names in the π- calculus or references in object-oriented terminology — are the key element we actually need to reason about. As noted by Gordon [5], this emphasis on the role of naming in the compre- hension of computational systems is not isolated. Indeed, contemporarily to the π-calculus definition, Needham [6] was advocating the importance of the notion of pure names in the formalization of distributed objects. In his own words, a pure name is “nothing but a bit pattern that is an identifier, and is only useful for comparing for identity with other bit patterns — which includes looking up in tables in order to find other information.” Compare this definition with the usage of (channel) names in the π-calculus, where a process can read from a named channel, emit in a named channel, or test the equality of two names. Another example of research on the significance of pure names can be found in the nu-calculus of Pitts and Stark [7], a typed lambda-calculus extended with state in the form of dynamically generated names, in which pure names are introduced in order to models the effect of adding references to a functional language like ML. 6. Roger M. Needham: Names. In S. Mullender (ed.): Distributed Systems, Addison-Wesley (1989) 89–101 7. Andrew M. Pitts, Ian D. B. Stark: Observable Properties of Higher Order Functions that Dynamically Create Local Names, or: What’s New? In Proc. of MFCS, Springer LNCS 711 (1993) 122–141 2.2 The π-Calculus As the λ-calculus, from which many similarities can be drawn, the π-calculus is a parsimonious algebraic framework built from a reduced number of operators, yet expressive enough to model a wide range of computational systems and data structures. A good introduction to the π-calculus can be found in Milner’s tutorial book [2], a preliminary version of which exists as a LFCS research report [8]. Sangiorgi and Walker provide a reference book on the π-calculus theory [9], with 210 Silvano Dal Zilio emphasis on proof techniques. Related papers, more targeted towards the ap- plication to concurrent and distributed programming languages, are Benjamin Pierce’s introduction to the π-calculus for the engineer [10], and Peter Sewell’s report on applied pi [11]. Beside these papers, the reader interested by a thorough presentation of the π-calculus will benefit from the notable bibliography on mobile processes com- piled by Kohei Honda. Other interesting collections of resources are the bibliog- raphy and web pages on mobile process calculi maintained by Uwe Nestmann and Bj¨orn Victor and available at the following address: http://move.to/mobility. 8. Robin Milner: The Polyadic π-Calculus: a Tutorial. Technical Report ECS- LFCS-91-180, University of Edinburgh (1991) 9. Davide Sangiorgi, David Walker: The π-Calculus: a Theory of Mobile Pro- cesses. Cambridge University Press (2001) 10. Benjamin C. Pierce: Foundational Calculi for Programming Languages. In A. B. Tucker (ed.): Handbook of Computer Science and Engineering, CRC Press (1996) 11. Peter Sewell: Applied Pi – A Brief Tutorial. Technical Report 498, University of Cambridge (2000) 12. Kohei Honda: Selected Bibliography on Mobile Processes. Unpublished notes, available electronically (1998) 13. Uwe Nestmann, Bj¨ornVictor: Calculi for Mobile Processes: Bibliography and Web Pages. Bulletin of the EATCS 64 (1998) 139–144 The definition of the π-calculus is not steady and many different evolution of π can be found in the literature. The π-calculus is actually more a family of calculi than just a unique calculus. Such evolutions, briefly summarized in [11], include asynchronous, internal or receptive version of the π-calculus; extensions with primitive for testing the (in)equality of names; etc. In addition, several process calculi based on name-passing has been proposed: the fusion calculus of Parrow and Walker, a simplification of π with a more symmetric form of communication; the spi-calculus of Abadi and Gordon, an extension of π designed for the description and analysis of cryptographic protocols; the join-calculus of Fournet, Gonthier et al; the blue-calculus of Boudol; etc.