×

MOMI: a calculus for mobile mixins. (English) Zbl 1079.68002

Summary: 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.

MSC:

68M10 Network design and communication in computer systems
68M14 Distributed systems

Software:

Linda; Klava; KLAIM; MOMI
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Abadi, M., Cardelli, L.: A Theory of Objects. Springer (1996) · Zbl 0876.68014
[2] Allen, E., Bannet, J., Cartwright, R.: A first-class approach to genericity. ACM SIG-PLAN Notices 38(11), 96–114 (2003)
[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) · Zbl 1040.68058
[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) · Zbl 1049.68754
[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) · Zbl 1179.68027
[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) · Zbl 1100.68544
[11] Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Mixin-Based Incomplete Objects. In FOOL 11 (2004) · Zbl 1100.68544
[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) · Zbl 1053.68502
[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) · Zbl 1081.68558
[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) · Zbl 1088.68529
[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)
[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) · Zbl 1009.68933
[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) · Zbl 0924.68028
[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) · Zbl 0999.68505
[21] Cardelli, L.: A Language with Distributed Scope. Computing Systems 8(1), 27–59 (1995)
[22] Cardelli, L., Wegner, P.: On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys 17(4), 471–522 (1985)
[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)
[25] De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000) · Zbl 0954.68025
[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) · Zbl 1044.68684
[32] Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995) · Zbl 0887.68013
[33] Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985) · Zbl 0559.68030
[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) · Zbl 0917.68064
[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) · Zbl 1077.68557
[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) · Zbl 0683.68008
[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) · Zbl 0861.68030
[44] Pierce, B.C.: Types and Programming Languages. The MIT Press (2002) · Zbl 0995.68018
[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) · Zbl 1009.68022
[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)
[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)
[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) · Zbl 0940.68024
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.