Abstract
This paper presents the design and implementation of a lightweight and flexible middleware, based on Smart Messages (SMs), for programming distributed applications over networks of ubiquitous Java-enabled devices, such as cell phones and PDAs. SMs are user-defined distributed applications which execute on nodes of interest, named by their properties, and use explicit migration to move between these nodes. The main benefits provided by SMs are ease of deployment for new applications and adaptability to highly dynamic network conditions. To leverage the computing power of existent wireless Java-enabled devices, we have designed a portable SM architecture in which the SM support at nodes is implemented as a runtime system on top of pre-installed Java virtual machines, and the SM migration is implemented by instrumenting the SM Java bytecode. The experimental results for applications executed over a testbed consisting of HP iPAQs communicating through 802.11 wireless cards demonstrate the feasibility of our architecture.