Automated Software Engineering

, Volume 11, Issue 3, pp 207–243

CODEWEAVE: Exploring Fine-Grained Mobility of Code

  • Cecilia Mascolo
  • Gian Pietro Picco
  • Gruia-Catalin Roman


This paper is concerned with an abstract exploration of code mobility constructs designed for use in settings where the level of granularity associated with the mobile units exhibits significant variability. Units of mobility that are both finer and coarser grained than the unit of execution are examined. To accomplish this, we take the extreme view that every line of code and every variable declaration are potentially mobile, i.e., it may be duplicated or moved from one program context to another on the same host or across the network. We also assume that complex code assemblies may move with equal ease. The result is CODEWEAVE, a model that shows how to develop new forms of code mobility, assign them precise meaning, and facilitate formal verification of programs employing them. The design of CODEWEAVE relies greatly on Mobile UNITY, a notation and proof logic for mobile computing. Mobile UNITY offers a computational milieu for examining a wide range of constructs and semantic alternatives in a clean abstract setting, i.e., unconstrained by compilation and performance considerations traditionally associated with programming language design. Ultimately, the notation offered by CODEWEAVE is given exact semantic definition by means of a direct mapping to the underlying Mobile UNITY model. The abstract and formal treatment of code mobility offered by CODEWEAVE establishes a technical foundation for examining competing proposals and for subsequent integration of some of the mobility constructs both at the language level and within middleware for mobility.

code mobility specification and semantics distributed systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Amadio, R. 1997. An asynchronous model of locality, failure, and process mobility. In '97),vol. 1282 of LNCS, Springer, pp. 374–391.Google Scholar
  2. Cardelli, L. 1995. A language with distributed scope. In Proc.22nd ACM Symp.on Principles of Programming Languages (POPL), pp. 286–297.Google Scholar
  3. Cardelli, L., Ghelli, G., and Gordon, A.D. 2002. Types for the ambient calculus. Journal of Information and Computation, 177(2):160–194.Google Scholar
  4. Emmerich, W., Mascolo, C., and Finkelstein, A. 2000. Implementing incremental code migration with XML. In Proc.of the 22nd Int.Conf.on Software Engineering (ICSE2000), pp. 397–406.Google Scholar
  5. Fournet, C., Gonthier, G., Levy, J.J., Maranget, L., and Remy, D. 1996. A calculus of mobile agents. In '96),vol. 1119 of LNCS, Springer, pp. 406–421.Google Scholar
  6. Fuggetta, A., Picco, G.P., and Vigna, G. 1998. Understanding code mobility. IEEE Transactions on Software Engineering, 24(5):342–361.Google Scholar
  7. Gelernter, D. 1985. Generative communication in linda. ACM Transactions on Programming Languages and Systems, 7(1):80–112.Google Scholar
  8. Gray, R. 1995. Agent Tcl: A transportable agent system. In Proceedings of the CIKM Workshop on Intelligent Information Agents.Google Scholar
  9. Gray, R.S., Cybenko, G., Kotz, D., Peterson, R.A., and Rus, D. 2002. D'Agents: Applications and performance of a mobile-agent system. Software: Practice and Experience, 32(6):543–573.Google Scholar
  10. Javasoft.Java Remote Method Invocation Specification.Available at Scholar
  11. Kiniry, J. and Zimmerman, D. 1997. A hands-on look at Java mobile agents. IEEE Internet Computing, 1(4):21–30.Google Scholar
  12. Lange, D.B. and Oshima, M. (eds.) 1998. Programming and Deploying Java Mobile Agents with Aglets.Addison-Wesley.Google Scholar
  13. McCann, P.J. and Roman, G.-C. 1998. Compositional programming abstractions for mobile computing. IEEE Transactions on Software Engineering, 24(2):97–110.Google Scholar
  14. Milner, R. 1999. Communicating and Mobile Systems: The π-Calculus. Cambridge University Press.Google Scholar
  15. De Nicola, R., Ferrari, G., and Pugliese, R. 1998. KLAIM: A kernel language for agents interaction and mobility. IEEE Transactions on Software Engineering, 24(5):315–330.Google Scholar
  16. Picco, G.P. 1998. µCode: A lightweight and flexible mobile code toolkit. In K. Rothermel and F. Hohl, editors, Proceedings 2nd International Workshop on Mobile Agents,vol. 1477 of LNCS, pp. 26–37, Springer, Stuttgart, Germany.Google Scholar
  17. Picco, G.P., Roman, G.-C., and McCann, P.J. 2001. Reasoning about code mobility with mobile unity. ACM Transactions on Software Engineering and Methodology (TOSEM), 10(3):338–395.Google Scholar
  18. Vitek, J. and Castagna, G. 1999. Seal: A framework for secure mobile computations. In Internet Programming Languages, LNCS, Springer, pp. 47–60.Google Scholar
  19. White, J. 1996. Telescript technology: Mobile agents. In J. Bradshaw, editor, Software Agents, AAAI Press/MIT Press.Google Scholar
  20. White, T. and Pagurek, B. 1998. Towards multi-swarm problem problem solving in networks. In Proceedings 3rd International Conferences on Multi-Agent Systems (ICMAS'98), pp. 333–340.Google Scholar
  21. Wong, D., Paciorek, N., and Moore, D. 1999. Java-based mobile agents. Communications of the ACM, 42(3):92–102.Google Scholar

Copyright information

© Kluwer Academic Publishers 2004

Authors and Affiliations

  • Cecilia Mascolo
    • 1
  • Gian Pietro Picco
    • 2
  • Gruia-Catalin Roman
    • 3
  1. 1.Department of Computer ScienceUniversity College LondonLondonUK
  2. 2.Dipartimento di Elettronica e InformazionePolitecnico di MilanoMilanoItaly
  3. 3.Department of Computer Science and EngineeringWashington UniversitySaint LouisUSA

Personalised recommendations