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.
Similar content being viewed by others
References
Abadi, M., Cardelli, L.: A Theory of Objects. Springer (1996)
Allen, E., Bannet, J., Cartwright, R.: A first-class approach to genericity. ACM SIG-PLAN Notices 38(11), 96–114 (2003)
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)
Ancona, D., Zucca, E.: A theory of mixin modules: Algebraic Laws and Reduction Semantics. Mathematical Structures in Computer Science 12(6), 701–737 (2001)
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)
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)
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)
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
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)
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)
Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Mixin-Based Incomplete Objects. In FOOL 11 (2004)
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)
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)
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)
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)
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)
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)
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)
Bracha, G., Cook, W.: Mixin-based inheritance. In Proc. of OOPSLA '90, pp. 303–311 (1990)
Bugliesi, M., Castagna, G.: Mobile Objects. In FOOL 7 (2000)
Cardelli, L.: A Language with Distributed Scope. Computing Systems 8(1), 27–59 (1995)
Cardelli, L., Wegner, P.: On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys 17(4), 471–522 (1985)
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)
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)
De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000)
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)
Findler, R., Flatt, M.: Modular object-oriented programming with units and mixins. In Proc. of ICFP '98, pp. 94–104, (1998)
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)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In Proc. of POPL '98, pp. 171–183. ACM Press (1998)
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)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)
Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)
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)
Harrison, C., Chess, D., Kershenbaum, A.: Mobile agents: Are they a good idea? Research Report 19887, IBM Research Division (1994)
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)
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)
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)
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)
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)
Milner, R.: Communication and Concurrency. Prentice Hall (1989)
Object Management Group: Corba: Architecture and specification. http://www.omg.org (1998)
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)
Pierce, B.C.: Types and Programming Languages. The MIT Press (2002)
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)
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)
Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In Proc. of ECOOP '98, pp. 550–570 (1998)
Sun microsystems: RMI, Remote Method Invocation. http://java.sun.com/-products/-jdk/-rmi
Thorn, T.: Programming Languages for Mobile Code. ACM Computing Surveys 29(3), 213–239 (1997)
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)
VanHilst, M., Notkin, D.: Using role components to implement collaboration-based designs. In Proc. of OOPSLA '96, pp. 359–369. ACM Press (1996)
White, J.E.: Mobile Agents. In Bradshaw, J. (ed.), Software Agents. AAAI Press and MIT Press (1996)
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)
Author information
Authors and Affiliations
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
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
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-005-0176-0