Abstract
In mobile languages programmers control the placement of code or computations in open networks, e.g., a program can migrate between locations. Mobile computations are typically stateful and interact with the state at each location in the network. We propose mobility skeletons, a library of parameterisable functions that encapsulate common patterns of mobile computation. Mobility skeletons are analogous to, but very different from, algorithmic skeletons - parameterisable functions encapsulating common patterns of parallel computation. We have identified three common patterns of mobile computation, and implemented them as a library of higher-order functions in mobile Haskell. Each mobility skeleton is defined and illustrated with an example. We show how mobility skeletons can be composed and nested, and illustrate their use in a non-trivial case study: a distributed meeting planner. Mobility skeletons are extensible: there is a small set of mobility primitives, and medium-level abstractions such as remote evaluation can be defined using them. New mobility skeletons can be defined using the medium and low level abstractions. © World Scientific Publishing Company.
Original language | English |
---|---|
Pages (from-to) | 273-288 |
Number of pages | 16 |
Journal | Parallel Processing Letters |
Volume | 15 |
Issue number | 3 |
DOIs | |
Publication status | Published - Sept 2005 |
Keywords
- Functional programming
- Haskell
- Mobile computation
- Skeletons