Acta Informatica

, Volume 42, Issue 2–3, pp 143–190 | Cite as

MOMI: a calculus for mobile mixins

  • Lorenzo Bettini
  • Betti Venneri
  • Viviana Bono
Original Article

Abstract

MOMI (Mobile Mixins) is a coordination language for mobile processes that communicate and exchange object-oriented code in a distributed context. MOMI's key idea is structuring mobile object-oriented code by using mixin-based inheritance. Mobile code is compiled and typed locally, and can interact successfully with code present on foreign sites only if its type is subtyping-compliant with the type of what is expected by the receiving site. The key feature of the paper is the definition of this subtyping relation on classes and mixins that enables a significantly flexible, yet still simple, communication pattern. We show that communication by subtyping is type-safe in that exchanged code is merged into local code without requiring further type analysis and recompilation.

Keywords

Information System Operating System Data Structure Communication Network Information Theory 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer (1996)Google Scholar
  2. 2.
    Allen, E., Bannet, J., Cartwright, R.: A first-class approach to genericity. ACM SIG-PLAN Notices 38(11), 96–114 (2003)Google Scholar
  3. 3.
    Ancona, D., Lagorio, G., Zucca, E.: Jam – a smooth extension of java with mixins. In Proc. of ECOOP'00, vol. 1850 of LNCS, pp. 145–178. Springer-Verlag (2000)Google Scholar
  4. 4.
    Ancona, D., Zucca, E.: A theory of mixin modules: Algebraic Laws and Reduction Semantics. Mathematical Structures in Computer Science 12(6), 701–737 (2001)MathSciNetGoogle Scholar
  5. 5.
    Bak, L., Bracha, G., Grarup, S., Griesemer, R., Griswold, D., Hölzle, U.: Mixins in Strongtalk. In Proc. of the “Inheritance Workshop” at ECOOP'02 (2002)Google Scholar
  6. 6.
    Benton, N., Cardelli, L., Fournet, C.: Modern Concurrency Abstractions for C. In Proc. of ECOOP'02, Vol. 2374 of LNCS, pp. 415–440. Springer-Verlag (2002)Google Scholar
  7. 7.
    Bettini, L.: A Java package for class and mixin mobility in a distributed setting. In Proc. of FIDJI'03, volume 2952 of LNCS, pp. 12–22. Springer-Verlag (2003)Google Scholar
  8. 8.
    Bettini, L.: Linguistic Constructs for Object-Oriented Mobile Code Programming & their Implementations. PhD thesis, Dipartimento di Matematica, Università di Siena (2003). Available at http://music.dsi.unifi.it
  9. 9.
    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.), Global Computing – Programming Environments, Languages, Security, and Analysis of Systems, IST/FET International Workshop GC 2003. Vol. 2874 of LNCS. Springer-Verlag (2003)Google Scholar
  10. 10.
    Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Higher-Order Mixins and Classes. In Post-Proc. of TYPES'03. vol. 3085 of LNCS. Springer-Verlag (2004)Google Scholar
  11. 11.
    Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Mixin-Based Incomplete Objects. In FOOL 11 (2004)Google Scholar
  12. 12.
    Bettini, L., Bono, V., Venneri, B.: Coordinating Mobile Object-Oriented Code. In Proceeding of Coordination Models and Languages (COORDINATION'02), vol. 2315 of LNCS, pp. 56–71. Springer-Verlag (2002)Google Scholar
  13. 13.
    Bettini, L., Bono, V., Venneri, B.: O'Klaim: a coordination language with mobile mixins. In Proc. of Coordination Models and Languages (COORDINATION'04), vol. 2949 of LNCS, pp. 20–37. Springer-Verlag (2004)Google Scholar
  14. 14.
    Bettini, L., Bono, V., Venneri, B.: Subtyping-Inheritance Conflicts: The Mobile Mixin Case. In Proceeding of Third IFIP International Conference on Theoretical Computer Science (TCS'04), pp. 451–464. Kluwer Academic Publishers (2004)Google Scholar
  15. 15.
    Bettini, L., De Nicola, R., Ferrari, G., Pugliese, R.: Interactive mobile agents in X-Klaim. In Proc. of the 7th Int. IEEE Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE'98), pp. 110–115. IEEE Computer Society Press (1998)Google Scholar
  16. 16.
    Bettini, L., De Nicola, R., Pugliese, R.: Klava: a Java package for distributed and mobile applications. Soft-ware – Prac-tice and Experience 32(14), 1365–1394 (2002)Google Scholar
  17. 17.
    Bettini, L., Loreti, M., Venneri, B.: On Multiple Inheritance in Java. In Proc. of Technology of Object-Oriented Languages, Systems and Architectures (TOOLS'02), pp. 1–15. Kluwer Academic Publishers (2003)Google Scholar
  18. 18.
    Bono, V., Patel, A., Shmatikov, V.: A Core Calculus of Classes and Mixins. In Proc. of ECOOP'99, vol. 1628 of LNCS, pp. 43–66. Springer-Verlag (1999)Google Scholar
  19. 19.
    Bracha, G., Cook, W.: Mixin-based inheritance. In Proc. of OOPSLA '90, pp. 303–311 (1990)Google Scholar
  20. 20.
    Bugliesi, M., Castagna, G.: Mobile Objects. In FOOL 7 (2000)Google Scholar
  21. 21.
    Cardelli, L.: A Language with Distributed Scope. Computing Systems 8(1), 27–59 (1995)Google Scholar
  22. 22.
    Cardelli, L., Wegner, P.: On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys 17(4), 471–522 (1985)CrossRefGoogle Scholar
  23. 23.
    Carzaniga, A., Picco, G., Vigna, G.: Designing Distributed Applications with mobile code paradigms. In Proc. of the 19th Int. Conf. on Software Engineering (ICSE '97), pp. 22–33. ACM Press (1997)Google Scholar
  24. 24.
    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
  25. 25.
    De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000)MathSciNetGoogle Scholar
  26. 26.
    Di Blasio, P., Fisher, K.: A Calculus for Concurrent Objects. In Proc. of 7th Int. Conf. on Concurrency Theory (CONCUR'96), volume 1119 of LNCS, pp. 655–670. Springer-Verlag (1996)Google Scholar
  27. 27.
    Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In Proc. of ICFP '98, pp. 94–104, (1998)Google Scholar
  28. 28.
    Fisher, K., Mitchell, J.C.: A Delegation-based Object Calculus with Subtyping. In Proc. of FCT'95, vol. 965 of LNCS, pp. 42–61. Springer-Verlag (1995)Google Scholar
  29. 29.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In Proc. of POPL '98, pp. 171–183. ACM Press (1998)Google Scholar
  30. 30.
    Fournet, C., Gonthier, G., Levy, J.J., Maranget, L., Remy, D.: A Calculus of Mobile Agents. In Proc. of 7th Int. Conf. on Concurrency Theory (CONCUR'96), vol. 1119 of LNCS, pp. 406–421. Springer-Verlag (1996)Google Scholar
  31. 31.
    Fournet, C., Laneve, C., Maranget, L., Rémy, D.: Inheritance in the Join Calculus. In Proc. of Foundations of Software Technology and Theoretical Computer Science (FSTTCS'00), vol. 1974 of LNCS, pp. 397–408. Springer-Verlag (2000)Google Scholar
  32. 32.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)Google Scholar
  33. 33.
    Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)CrossRefMATHGoogle Scholar
  34. 34.
    Gordon, A., Hankin, P.: A Concurrent Object Calculus: Reduction and Typing. In Proc. of High-Level Concurrent Languages (HLCL'98), vol. 16.3 of ENTCS. Elsevier (1998)Google Scholar
  35. 35.
    Harrison, C., Chess, D., Kershenbaum, A.: Mobile agents: Are they a good idea? Research Report 19887, IBM Research Division (1994)Google Scholar
  36. 36.
    Hennessy, M., Riely, J.: Type-Safe Execution of Mobile Agents in Anonymous Networks. In: Vitek, J., Jensen, C. (eds.), Secure Internet Programming: Security Issues for Distributed and Mobile Objects, vol. 1603 of LNCS, pp. 95–115. Springer-Verlag (1999)Google Scholar
  37. 37.
    Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In Proc. of ESOP'00, vol. 2305 of LNCS, pp. 6–20. Springer-Verlag (2002)Google Scholar
  38. 38.
    Knabe, F.: An overview of mobile agent programming. In Proceedings of the 5th workshop on Analysis and Verification of Multiple-Agent Languages (LOMAPS'96), vol. 1192 of LNCS. Springer-Verlag (1996)Google Scholar
  39. 39.
    Laneve, C.: Inheritance in Concurrent Objects. In Bowman, H., Derrick, J. (eds.) Formal Methods for Distributed Processing, An Object Oriented Approach. Cambridge University Press (2001)Google Scholar
  40. 40.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In Agha, G., Wegner, P., Yonezawa, A. (eds.), Research Directions in Concurrent Object-Oriented Programming, pp. 107–150. MIT Press (1993)Google Scholar
  41. 41.
    Milner, R.: Communication and Concurrency. Prentice Hall (1989)Google Scholar
  42. 42.
    Object Management Group: Corba: Architecture and specification. http://www.omg.org (1998)
  43. 43.
    Pierce, B., Sangiorgi, D.: Typing and Subtyping for Mobile Processes. In Proceedings of 8th IEEE Logics in Computer Science (LICS'93), pp. 376–385. IEEE (1993)Google Scholar
  44. 44.
    Pierce, B.C.: Types and Programming Languages. The MIT Press (2002)Google Scholar
  45. 45.
    Pierce, B.C. Turner, D.N.: Concurrent Objects in a Process Calculus. In Proc. of Theory and Practice of Parallel Programming (TPPP 94), vol. 907 of LNCS, pp. 187–215. Springer (1995)Google Scholar
  46. 46.
    Riecke, J., 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
  47. 47.
    Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In Proc. of ECOOP '98, pp. 550–570 (1998)Google Scholar
  48. 48.
    Sun microsystems: RMI, Remote Method Invocation. http://java.sun.com/-products/-jdk/-rmi
  49. 49.
    Thorn, T.: Programming Languages for Mobile Code. ACM Computing Surveys 29(3), 213–239 (1997)CrossRefGoogle Scholar
  50. 50.
    Van Limberghen, M., Mens, T.: Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems. Object Oriented Systems 3(1), 1–30 (1996)Google Scholar
  51. 51.
    VanHilst, M., Notkin, D.: Using role components to implement collaboration-based designs. In Proc. of OOPSLA '96, pp. 359–369. ACM Press (1996)Google Scholar
  52. 52.
    White, J.E.: Mobile Agents. In Bradshaw, J. (ed.), Software Agents. AAAI Press and MIT Press (1996)Google Scholar
  53. 53.
    Yoshida, N., Hennessy, M.: Subtyping and Locality in Distributed Higher Order Mobile Processes (extended abstract). In Proc. of 10th Int. Conf. on Concurrency Theory (CONCUR'99), Vol. 1664 of LNCS, pp. 557–572. Springer-Verlag (1999)Google Scholar

Copyright information

© Springer-Verlag 2005

Authors and Affiliations

  • Lorenzo Bettini
    • 1
  • Betti Venneri
    • 1
  • Viviana Bono
    • 2
  1. 1.FirenzeItaly
  2. 2.Dipartimento di InformaticaUniversità di TorinoTorinoItaly

Personalised recommendations