To manage load on large and dynamic networks we have developed Autonomous Mobile Programs (AMPs) that periodically use a cost model to decide where to execute. A disadvantage of directly programming AMPs is that the cost model, mobility decision function, and network interrogation are all explicit in the program. This paper proposes autonomous mobility skeletons that encapsulate self-aware mobile coordination for common patterns of computation over collections. Autonomous mobility skeletons are akin to algorithmic skeletons in being polymorphic higher order functions, but where mic skeletons abstract over parallel coordination, autonomous mobility skeletons abstract over autonomous mobile coordination. We present the automap, autofold and autoiter autonomous mobility skeletons, together with performance measurements of Jocaml, Java Voyager, and JavaGo implementations on small networks. autoiter is an skeleton, abstracting over the Iterator interface commonly used with Java collections...
Xiao Yan Deng, Greg Michaelson, Philip W. Trinder