SARANA: language, compiler and run-time system support for spatially aware and resource-aware mobile computing.
Increasingly, spatial awareness plays a central role in many distributed and mobile computing applications. Spatially aware applications rely on information about the geographical position of compute devices and their supported services in order to support novel functionality. While many spatial application drivers already exist in mobile and distributed computing, very little systems research has explored how best to program these applications, to express their spatial and temporal constraints, and to allow efficient implementations on highly dynamic real-world platforms. This paper proposes the SARANA system architecture, which includes language and run-time system support for spatially aware and resource-aware applications. SARANA allows users to express spatial regions of interest, as well as trade-offs between quality of result (QoR), latency and cost. The goal is to produce applications that use resources efficiently and that can be run on diverse resource-constrained platforms ranging from laptops to personal digital assistants and to smart phones. SARANA's run-time system manages QoR and cost trade-offs dynamically by tracking resource availability and locations, brokering usage/pricing agreements and migrating programs to nodes accordingly. A resource cost model permeates the SARANA system layers, permitting users to express their resource needs and QoR expectations in units that make sense to them. Although we are still early in the system development, initial versions have been demonstrated on a nine-node system prototype.
Hari
Pradip
P
Department of Computer Science, Rutgers, The State University of New Jersey, Piscataway, NJ 08854, USA.
Ko
Kevin
K
Koukoumidis
Emmanouil
E
Kremer
Ulrich
U
Martonosi
Margaret
M
Ottoni
Desiree
D
Peh
Li-Shiuan
LS
Zhang
Pei
P
D003195:Computer Communication Networks / Q000639:trends*; D008838:Microcomputers / Q000639:trends*; D011381:Programming Languages; D012815:Signal Processing, Computer-Assisted; D012984:Software; D018511:Systems Integration; D014584:User-Computer Interface