Frugal Mobile Objects

This paper presents a computing model for resource-limited mobile devices. The originality of the model lies in the integration of a strongly-typed event-based communication paradigm with abstractions for frugal control, assuming a small footprint runtime. With our model, an application consists of a set of distributed reactive objects, called FROBs, that communicate through typed events and dynamically adapt their behavior reacting to notifications typically based on resource availability. FROBs have a logical time-slicing execution pattern that helps monitor resource consuming tasks and determine resource profiles in terms of CPU, memory, and bandwidth. The behavior of a FROB is represented by a set of stateless first-class objects. Both state and behavioral objects are referenced through a level of indirection within the FROB. This facilitates the dynamic changes of the set of event types a FROB can accept, say based on the available resources, without requiring a significant footprint of the underlying FROB runtime. We demonstrate the usability of the FROB model through our Java-based prototype and a peer-to-peer audio streaming scenario where an audio provider dynamically adjusts its quality of service by adapting to demand. The performance results of our prototype convey the small footprint of our FROB runtime (86 kilobytes). We also augmented the KVM to enable resource profiling with however a negligible overhead (less than 0.5%) and a decrease in speed of the virtual machine of at most 7%.

[1]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.

[2]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[3]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[4]  Kimmo Raatikainen,et al.  A New Look at Mobile Computing , 2004 .

[5]  Randall B. Smith,et al.  Programming as an Experience: The Inspiration for Self , 1995, ECOOP.

[6]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005 .

[7]  Robert Szewczyk,et al.  System architecture directions for networked sensors , 2000, ASPLOS IX.

[8]  David E. Culler,et al.  The dynamic behavior of a data dissemination protocol for network programming at scale , 2004, SenSys '04.

[9]  David E. Culler,et al.  Overload management as a fundamental service design primitive , 2002, EW 10.

[10]  Jong-Deok Choi,et al.  Escape analysis for Java , 1999, OOPSLA '99.

[11]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[12]  Martin Glinz,et al.  A framework for dynamically adaptive applications in a self-organized mobile network environment , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[13]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[14]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[15]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[16]  Gul A. Agha,et al.  ActorSpace: an open distributed programming paradigm , 1993, PPOPP '93.

[17]  Jeffrey M. Bradshaw,et al.  NOMADS: toward a strong and safe mobile agent system , 2000, AGENTS '00.

[18]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[19]  Joe L. Armstrong The development of Erlang , 1997, ICFP '97.

[20]  Mani B. Srivastava,et al.  A dynamic operating system for sensor nodes , 2005, MobiSys '05.

[21]  Wilson C. Hsieh,et al.  Processes in KaffeOS: isolation, resource management, and sharing in java , 2000, OSDI.

[22]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[23]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005, Softw. Pract. Exp..

[24]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[25]  Rachid Guerraoui,et al.  Frugal Event Dissemination in a Mobile Environment , 2005, Middleware.

[26]  Mälardalen,et al.  .NET FRAMEWORK By , 2004 .

[27]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[28]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[29]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[30]  Carl Hewitt,et al.  The Scientific Community Metaphor , 1988, IEEE Transactions on Systems, Man, and Cybernetics.

[31]  Klaus-Peter Löhr,et al.  Object-Oriented Concurrent Programming , 1992, TOOLS.

[32]  A. Yonezawa,et al.  An Object-Oriented Concurrent Reflective Language ABCL / R 3 Its Meta-level Design and Efficient Implementation Techniques , 1999 .

[33]  Rachid Guerraoui,et al.  Concurrency and distribution in object-oriented programming , 1998, CSUR.

[34]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.