Skip to main content

Advertisement

Log in

MOMI: a calculus for mobile mixins

  • Original Article
  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+
from $39.99 /Month
  • Starting from 10 chapters or articles per month
  • Access and download chapters and articles from more than 300k books and 2,500 journals
  • Cancel anytime
View plans

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abadi, M., Cardelli, L.: A Theory of Objects. Springer (1996)

  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. 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)

  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)

    MathSciNet  Google Scholar 

  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)

  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)

  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)

  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. 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)

  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)

  11. Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Mixin-Based Incomplete Objects. In FOOL 11 (2004)

  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)

  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)

  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)

  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. 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. 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)

  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)

  19. Bracha, G., Cook, W.: Mixin-based inheritance. In Proc. of OOPSLA '90, pp. 303–311 (1990)

  20. Bugliesi, M., Castagna, G.: Mobile Objects. In FOOL 7 (2000)

  21. Cardelli, L.: A Language with Distributed Scope. Computing Systems 8(1), 27–59 (1995)

    Google Scholar 

  22. Cardelli, L., Wegner, P.: On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys 17(4), 471–522 (1985)

    Article  Google Scholar 

  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)

  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)

    Article  Google Scholar 

  25. De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000)

    MathSciNet  Google Scholar 

  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)

  27. Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In Proc. of ICFP '98, pp. 94–104, (1998)

  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)

  29. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In Proc. of POPL '98, pp. 171–183. ACM Press (1998)

  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)

  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)

  32. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)

  33. Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)

    Article  MATH  Google Scholar 

  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)

  35. Harrison, C., Chess, D., Kershenbaum, A.: Mobile agents: Are they a good idea? Research Report 19887, IBM Research Division (1994)

  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)

  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)

  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)

  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)

  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)

  41. Milner, R.: Communication and Concurrency. Prentice Hall (1989)

  42. Object Management Group: Corba: Architecture and specification. http://www.omg.org (1998)

  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)

  44. Pierce, B.C.: Types and Programming Languages. The MIT Press (2002)

  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)

  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)

  47. Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In Proc. of ECOOP '98, pp. 550–570 (1998)

  48. Sun microsystems: RMI, Remote Method Invocation. http://java.sun.com/-products/-jdk/-rmi

  49. Thorn, T.: Programming Languages for Mobile Code. ACM Computing Surveys 29(3), 213–239 (1997)

    Article  Google Scholar 

  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. VanHilst, M., Notkin, D.: Using role components to implement collaboration-based designs. In Proc. of OOPSLA '96, pp. 359–369. ACM Press (1996)

  52. White, J.E.: Mobile Agents. In Bradshaw, J. (ed.), Software Agents. AAAI Press and MIT Press (1996)

  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)

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work has been partially supported by EU within the FET - Global Computing initiative, project MIKADO IST-2001-32222 and DART project IST-2001-33477 and by MIUR project EOS. The funding bodies are not responsible for any use that might be made of the results presented here.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bettini, L., Venneri, B. & Bono, V. MOMI: a calculus for mobile mixins. Acta Informatica 42, 143–190 (2005). https://doi.org/10.1007/s00236-005-0176-0

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-005-0176-0

Keywords

Profiles

  1. Lorenzo Bettini
  2. Viviana Bono