The goal of the Smart Messages project is to develop a computing model and a system architecture for networks of embedded systems (NES). The applications running over NES range from as simple as data collection and data dissemination in sensor networks to complex cooperative applications such as cars collaborating to adapt to traffic conditions or robots with intelligent cameras performing distributed object tracking. The main question that we try to answer is: How to program user-defined distributed applications over NES?
NES are large scale, ad hoc networks that work unattended. They are composed of resource constrained, heterogeneous, and volatile nodes. Programming NES is a significant challenge due to this unique combination of characteristics which makes traditional distributed computing models difficult, if not impossible, to use in such networks. Our solution is Cooperative Computing, a distributed computing model based on execution migration. In this model, applications are dynamic collections of Smart Messages (SMs) and each node cooperates by providing a common system support. Smart Messages are migratory execution units that execute on nodes of interest named by content and reached using self-routing at intermediate nodes. Each node in NES provides a virtual machine for SM execution and a name-based memory, called Tag Space The Tag Space offers persistent memory across SM executions and a uniform interface to the host OS and I/O system. The complete node architecture is presented in the figure below.
To demonstrate the feasibility of our computing model and system architecture, we have implemented an SM prototype by modifying Sun Microsystem's KVM. KVM is a virtual machine designed for mobile devices with resource constraints, suitable for devices with as little as 160 KB memory. SMs are written in Java and the SM's API is implemented as Java libraries using native methods. The SM migration is lightweight because the execution state consists only of SM's data bricks and the control stack. This prototype runs over a testbed consisting of HP's iPAQs with Linux 2.4.x as OS and equipped Orinoco's802.11b PC cards for wireless communication. An application developed over this prototype is EZCab, which is used for booking cabs in densely populated urban areas.
An implementation of SM based on KVM 1.0.3 for iPAQ and Intel x86 platforms is available here
EZCab: A Cab Booking Application Using Short-Range Wireless Communication
Rutgers University Technical Report DCS TR 550, Submitted for publication March 2004.
Cooperative Computing in Sensor Networks
To Appear in Handbook of Sensor Networks: Compact Wireless and Wired Sensing Systems, Mohammad Ilyas (ed.), CRC Press, 2004.
Smart Messages: A Distributed Computing Platform for Networks of Embedded Systems
To Appear in the Special Issue on Mobile and Pervasive Computing, the Computer Journal, British Computer Society, Oxford University Press, 2004
Portable Smart Messages Architecture for Ubiquitous Java-enabled Devices
To Appear in Proceedings of The First Annual International Conference on Mobile and Ubiquitous Systems: Networking and Services (MobiQuitous 2004), August 2004.
Toward a Security Architecture for Smart Messages: Challenges, Solutions, and Open Issues .
To Appear in Proceedings of the First International Workshop on Mobile Distributed Computing (MDC '03), May 2003.
Smart Messages:A system Architecture for Large Networks of Embedded Systems
Position Summary in Proceedings of HotOS VIII, May 2001.
Scylla:A Smart Virtual Machine for Mobile Embedded Systems
Proceedings of the Third IEEE Workshop on Mobile Computing Systems and Applications, December 2000.
Self-Routing in Pervasive Computing Environments Using Smart Messages
Presentation at PerCom 2003, March 2003.
Cooperative Computing for Distributed Embedded Systems
Presentation at ICDCS 2002, July 2002.
Migratory-TCP and Smart Messages: Two Lightweight Migration Architectures for High Availability
Invited talk at Carnegie Mellon University, Department of Electrical and Computer Engineering, February 2002.
Middleware for Cooperative Computing in Large Ad Hoc Networks of Embedded Systems
Poster at Middleware 2001, November 2001. Abstract published by IEEE DS Online.
|Links to Related Projects|