O’Klaim: A Coordination Language with Mobile Mixins

  • Lorenzo Bettini
  • Viviana Bono
  • Betti Venneri
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2949)


This paper presents O’Klaim (Object-Oriented Klaim), a linguistic extension of the higher-order calculus for mobile processes Klaim with object-oriented features. Processes interact by an asynchronous communication model: they can distribute and retrieve resources, sometimes structured as incomplete classes, i.e., mixins, to and from distributed tuple spaces. This mechanism is coordinated by providing a subtyping relation on classes and mixins, which become polymorphic items during communication. We propose a static typing system for: (i) checking locally each process in its own locality; (ii) decorating object-oriented code that is sent to remote sites with its type. This way, tuples can be dynamically retrieved only if they match by subtyping with the expected type. If this pattern matching succeeds, the retrieved code can be composed with local code, dynamically and automatically, in a type-safe way. Thus a global safety condition is guaranteed without requiring any additional information on the local reconfiguration of local and foreign code, and, in particular, without any further type checking. Finally, we present main issues concerning the implementation of O’Klaim.


Mobile Agent Operational Semantic Typing Rule Mobile Process Type Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ancona, D., Lagorio, G., Zucca, E.: Jam - designing a java extension with mixins. In: ACM Transaction on Programming Languages and Systems (2003) (to appear)Google Scholar
  2. 2.
    Bettini, L.: A Java package for class and mixin mobility in a distributed setting. In: Guelfi, N., Astesiano, E., Reggio, G. (eds.) FIDJI 2003. LNCS, vol. 2952, pp. 12–22. Springer, Heidelberg (2004) (to appear)CrossRefGoogle Scholar
  3. 3.
    Bettini, L.: Linguistic Constructs for Object-Oriented Mobile Code Programming & their Implementations. PhD thesis, Dip. di Matematica, Università di Siena (2003), Available at
  4. 4.
    Bettini, L., Bono, V., De Nicola, R., Ferrari, G., Gorla, D., Loreti, M., Moggi, E., Pugliese, R., Tuosto, E., Venneri, B.: The Klaim Project: Theory and Practice. In: Priami, C. (ed.) GC 2003. LNCS, vol. 2874, pp. 88–150. Springer, Heidelberg (2003) (to appear)Google Scholar
  5. 5.
    Bettini, L., Bono, V., Likavec, S.: A core calculus of mixin-based incomplete objects. In: FOOL, vol. 11 (2004)Google Scholar
  6. 6.
    Bettini, L., Bono, V., Venneri, B.: MoMi - A Calculus for Mobile Mixins (manuscript)Google Scholar
  7. 7.
    Bettini, L., Bono, V., Venneri, B.: Towards Object-Oriented Klaim. In: TOSCA 2001. ENTCS, vol. 62. Elsevier, Amsterdam (2001)Google Scholar
  8. 8.
    Bettini, L., Bono, V., Venneri, B.: Coordinating Mobile Object-Oriented Code. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 56–71. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  9. 9.
    Bettini, L., Bono, V., Venneri, B.: Subtyping Mobile Classes and Mixins. In: Proc. of FOOL (2003)Google Scholar
  10. 10.
    Bettini, L., De Nicola, R., Ferrari, G., Pugliese, R.: Interactive Mobile Agents in X-Klaim. In: Proc. of WETICE, pp. 110–115. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  11. 11.
    Bettini, L., De Nicola, R., Pugliese, R.: X-Klaim and Klava: Programming Mobile Code. In: TOSCA 2001. ENTCS, vol. 62. Elsevier, Amsterdam (2001)Google Scholar
  12. 12.
    Bettini, L., De Nicola, R., Pugliese, R.: Klava: a Java package for distributed and mobile applications. Software – Practice and Experience 32(14), 1365–1394 (2002)CrossRefzbMATHGoogle Scholar
  13. 13.
    Bono, V., Patel, A., Shmatikov, V.: A Core Calculus of Classes and Mixins. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 43–66. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  14. 14.
    Bracha, G., Cook, W.: Mixin-based inheritance. In: Proc. OOPSLA, pp. 303–311 (1990)Google Scholar
  15. 15.
    Bugliesi, M., Castagna, G.: Mobile Objects. In: Proc. of FOOL (2000)Google Scholar
  16. 16.
    Cardelli, L.: A Language with Distributed Scope. Computing Systems 8(1), 27–59 (1995)Google Scholar
  17. 17.
    Carzaniga, A., Picco, G.P., Vigna, G.: Designing Distributed Applications with Mobile Code Paradigms. In: Proc. of ICSE, pp. 22–33. ACM Press, New York (1997)Google Scholar
  18. 18.
    De Nicola, R., Ferrari, G., Pugliese, R.: Klaim: a Kernel Language for Agents Interaction and Mobility. IEEE Transactions on Software Engineering 24(5), 315–330 (1998)CrossRefGoogle Scholar
  19. 19.
    De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Di Blasio, P., Fisher, K.: A Calculus for Concurrent Objects. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 655–670. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  21. 21.
    Fisher, K., Mitchell, J.C.: A Delegation-based Object Calculus with Subtyping. In: Proc. of FCT. LNCS, vol. 965, pp. 42–61. Springer, Heidelberg (1995)Google Scholar
  22. 22.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proc. POPL 1998, pp. 171–183 (1998)Google Scholar
  23. 23.
    Fournet, C., Gonthier, G., Levy, J.J., Maranget, L., Remy, D.: A Calculus of Mobile Agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 406–421. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  24. 24.
    Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)CrossRefzbMATHGoogle Scholar
  25. 25.
    Gordon, A., Hankin, P.: A Concurrent Object Calculus: Reduction and Typing. In: Proc. of HLCL. ENTCS, vol. 16.3, Elsevier, Amsterdam (1998)Google Scholar
  26. 26.
    Pierce, B.C., Turner, D.N.: Concurrent Objects in a Process Calculus. In: Proc. of TPPP. LNCS, vol. 907, pp. 187–215. Springer, Heidelberg (1995)Google Scholar
  27. 27.
    Riecke, J.G., Stone, C.: Privacy via Subsumption. Information and Computation 172, 2–28 (2002); 3rd special issue of Theory and Practice of Object-Oriented Systems (TAPOS)Google Scholar
  28. 28.
    Thorn, T.: Programming Languages for Mobile Code. ACM Computing Surveys 29(3), 213–239 (1997); Also Technical Report 1083, University of Rennes IRISAGoogle Scholar
  29. 29.
    Yoshida, N., Hennessy, M.: Subtyping and Locality in Distributed Higher Order Mobile Processes (extended abstract). In: Baeten, J.C.M., Mauw, S. (eds.) CONCUR 1999. LNCS, vol. 1664, pp. 557–572. Springer, Heidelberg (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Lorenzo Bettini
    • 1
  • Viviana Bono
    • 2
  • Betti Venneri
    • 1
  1. 1.Dipartimento di Sistemi e InformaticaUniversità di FirenzeItaly
  2. 2.Dipartimento di InformaticaUniversità di TorinoItaly

Personalised recommendations