Prof. Rocco De Nicola (Dip. di Sistemi e Informatica, Univ. di Firenze)
Title: Coordination and Control of Mobile Agents
Reference: Eugenio Moggi
Abstract. We shall present an experimental programming language specifically designed for programming mobile agents that supports a programming paradigm where both processes and data can be moved across different computing environments. The language, that we call Klaim (Kernel Language for Agents Interaction and Mobility) relies on the use of explicit localities, and on allocation environments that associate logical localities to physical sites. The language consists of core Linda with multiple located tuple spaces and of a set of process operators, borrowed from Milner's CCS. Klaim tuple spaces and processes are distributed over different localities, which are considered as first-class data. Linda operations are indexed with the locations of the tuple space they operate on. This allows programmers to distribute/retrieve data and processes over/from different nodes directly.
Klaim provides direct support for expressing and enforcing security policies that control access to resources and data. In particular, Klaim uses types to protect resources and data and to establish policies for access control. The type system guarantees that the operations that processes intend to perform at various network sites comply with the processes' access rights. Types are used to describe the intentions (read, write, execute, ...) of processes relative to the different localities that they are willing to interact with, or that they want to migrate to. Type checking then determines whether processes comply with the declared intentions, and whether they have been assigned the necessary rights to perform the intended operations at the specified localities.