Klaim(ID:2922/kla001)

Kernel Language for Agents Interaction and Mobility  


for Kernel Language for Agents Interaction and Mobility

Klaim is a formalism that supports a programming paradigm where processes, like data, can be moved from one computing environment to another. Klaim naturally supports programming with explicit localities;  it consists of a core Linda with multiple tuple spaces and of a set of operators for building processes.



Related languages
Linda => Klaim   Extension of
Klaim => KLAVA   Evolution of
Klaim => X-KLAIM   Adaptation of

References:
  • KLAIM: a Kernel Language for Agents Interaction and Mobility (1997) Rocco De Nicola, GianLuigi Ferrari, Rosario Pugliese Software Engineering view details
  • De Nicola, Rocco; Ferrari, Gian Luigi; Pugliese, Rosario "KLAIM: A Kernel Language for Agents Interaction and Mobility" pp315-330 view details Abstract: We investigate the issue of designing a kernel programming language for mobile computing and describe KLAIM, a language that supports a programming paradigm where processes, like data, can be moved from one computing environment to another. The language consists of a core Linda with multiple tuple spaces and of a set of operators for building processes. KLAIM naturally supports programming with explicit localities. Localities are first-class data (they can be manipulated like any other data), but the language provides coordination mechanisms to control the interaction protocols among located processes. The formal operational semantics is useful for discussing the design of the language and provides guidelines for implementations. KLAIM is equipped with a type system that statically checks access rights violations of mobile agents. Types are used to describe the intentions (read, write, execute, etc.) of processes in relation to the various localities. The type system is used to determine the operations that processes want to perform at each locality, and to check whether they comply with the declared intentions and whether they have the necessary rights to perform the intended operations at the specific localities. Via a series of examples, we show that many mobile code programming paradigms can be naturally implemented in our kernel language. We also present a prototype implementaton of KLAIM in Java.
          in Transactions on Software Engineering 24(5) May 1998 view details
  • L. Bettini, M. Loreti, R. Pugliese. "Structured Nets in Klaim" pp174-180 view details Abstract: Klaim (Kernel Language for Agents Interaction and Mobility) is an experimental kernel language to model and program distributed concurrent applications with mobile code. The language consists of a core Linda with multiple tuple spaces distributed over the nodes of a net and of a set of operators for building processes that communicate via tuple spaces. The model underlying Klaim is flat, namely nodes cannot enclose other nodes. This is not realistic if one aims at modeling the Internet architecture; when considering intranets and firewalls, it has a definitely hierarchical structure.

    In this paper we enrich the Klaim model by introducing a routing function and a partial ordering relation over nodes to obtain a hierarchical model. We also extend the language with a new process operation for programming and implementing system calls that provide access to and permit modification of the structure of a net

          in Proceedings of the 2000 ACM Symposium on Applied computing SAC'2000 Villa Olmo, Como, Italy view details
  • Rocco De Nicola and Michele Loreti "A Modal Logic for KLAIM" pp339ff view details Abstract: KLAIM is an experimental programming language 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. This paper presents a temporal logic for specifying properties of Klaim programs. The logic is inspired by Hennessy-Milner Logic (HML) and the ν calculus, but has novel features that permit dealing with state properties to describe the effect of actions over the different sites. The logic is equipped with a consistent and complete proof system that enables one to prove properties of mobile systems.
          in Rus T. (Ed.): Algebraic Methodology and Software Technology 8th International Conference, AMAST 2000, Iowa City, Iowa, USA, May 2000. Proceedings LNCS 1816 view details
  • Rocco De Nicola, GianLuigi Ferrari, and Rosario Pugliese "Programming Access Control: The KLAIM Experience" CONCUR 2000 Invited Tutorials view details Abstract: In the design of programming languages for highly distributed systems where processes can migrate and execute on new hosts, the integration of security mechanisms is a major challenge. In this paper, we report our experience in the design of an experimental programming language, called KLAIM, which provides mechanisms to customize access control policies. KLAIM security architecture exploits a capability-based type system to provide mechanisms for specifying and enforcing policies that control uses of resources and authorize migration and execution of processes. By means of a few programming examples, we illustrate the flexibility of the KLAIM approach to support the specification of control policies and to guarantee their enforcement.


          in Rus T. (Ed.): Algebraic Methodology and Software Technology 8th International Conference, AMAST 2000, Iowa City, Iowa, USA, May 2000. Proceedings LNCS 1816 view details
    Resources