TY - CHAP UR - http://dx.doi.org/10.1007/3-540-48919-3_1 PB - Springer SN - 3-540-65836-X ID - eprints339 Y1 - 1999/// ED - Ciancarini, Paolo ED - L. Wolf, Alexander EP - 2 M1 - 1594 AV - none T2 - Coordination Languages and Models (COORDINATION 1999) SP - 1 N2 - Klaim (a Kernel Language for Agents Interaction and Mobility) [1] is 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 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. Programmers share their control with what we call the net coordinators. Net coordinators describe the distributed infrastructure necessary for managing physical distribution of processes, allocation policies, and agents mobility. 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 [2, 3]. 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. The Klaim type system encompasses both subtyping and recursively defined types. The former occurs naturally when considering hierarchies of access rights, while the latters are needed to model migration of recursive processes. We are actually working on extending both the language and the type system for introducing types for tuples (record types), notions of multi-level security (by structuring localities into levels of security) and public or shared keys to model dynamic transmission of access rights. Other ongoing research is considering the extension of the language to deal with open systems and with hierarchical nets. The interested reader is referred to [4] for written material about our project, for related software (a Java implementation of the topic of Klaim is available), and for the forthcoming additional written documentation. TI - Coordination and Access Control of Mobile Agents A1 - De Nicola, Rocco T3 - Lecture Notes in Computer Science ER -