MOMI: a calculus for mobile mixins
- 39 Downloads
- 4 Citations
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 TheoryPreview
Unable to display preview. Download preview PDF.
References
- 1.Abadi, M., Cardelli, L.: A Theory of Objects. Springer (1996)Google Scholar
- 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)Google Scholar
- 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.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.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.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.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)Google Scholar
- 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.Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Mixin-Based Incomplete Objects. In FOOL 11 (2004)Google Scholar
- 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.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.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.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)Google Scholar
- 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.Bracha, G., Cook, W.: Mixin-based inheritance. In Proc. of OOPSLA '90, pp. 303–311 (1990)Google Scholar
- 20.Bugliesi, M., Castagna, G.: Mobile Objects. In FOOL 7 (2000)Google Scholar
- 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)CrossRefGoogle 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)Google Scholar
- 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.De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000)MathSciNetGoogle 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)Google Scholar
- 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.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.Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In Proc. of POPL '98, pp. 171–183. ACM Press (1998)Google Scholar
- 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.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.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)Google Scholar
- 33.Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)CrossRefMATHGoogle 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)Google Scholar
- 35.Harrison, C., Chess, D., Kershenbaum, A.: Mobile agents: Are they a good idea? Research Report 19887, IBM Research Division (1994)Google Scholar
- 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.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.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.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.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.Milner, R.: Communication and Concurrency. Prentice Hall (1989)Google Scholar
- 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)Google Scholar
- 44.Pierce, B.C.: Types and Programming Languages. The MIT Press (2002)Google Scholar
- 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.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.Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In Proc. of ECOOP '98, pp. 550–570 (1998)Google Scholar
- 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)CrossRefGoogle 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)Google Scholar
- 52.White, J.E.: Mobile Agents. In Bradshaw, J. (ed.), Software Agents. AAAI Press and MIT Press (1996)Google Scholar
- 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