Postprint version. Published in International Conference on Distributed Computing Systems Proceedings: Mesa, AZ, April 1, 2001, pages 303-312.
Copyright © 2001 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
The definitive version is available at http://dx.doi.org/10.1109/ICDSC.2001.918960.
NOTE: At the time of publication, the author Michael Haungs was not yet affiliated with Cal Poly.
Writing distributed programs is difficult. To ease this task, we introduce a new programming abstraction. which we call a mobility attribute. Mobility attributes provide a syntax that describes the mobility semantics of program components. Programmers attach mobility attributes to program components to dynamically control the placement of these components within the network. Mobility attributes intercept component invocations and decide whether and where to move a component before the component executes. This allows the programmer to improve her program's run-time efficiency by colocating components and resources. We present MAGE, an object oriented distributed system, that supports mobility attributes and illustrates their utility.