|
The Collaborative Sensing Language (CSL)
is a high-level feedback control language for mobile sensor networks
(MSN). It specifies MSN controllers to accomplish network objectives
with a dynamically changing ad-hoc resource pool. Furthermore, CSL is
designed to allow the updating of controllers during execution
(patching). This enables hierarchical control with simpler controllers
at lower levels. The CSL Execution Engine contains the intelligence to
allocate resources to tasks dynamically and adjust in real time to
resource motion; this enables CSL controllers to be simple, intuitive
and scalable. Experimental results show that the CSL Execution Engine
performs these services with the addition of very little overhead.
CSL is comprised of two sub-languages:
CSL-MCL the declarative Mission Control Language, and CSL-RPL the
imperative Run-time Patching Language. CSL’s research efforts, and its
two sub-languages, are motivated by two coupled problems: the need to
program controllers for distributed ad-hoc mobile sensor, and the
desired ability to significantly change those controllers during
execution. Both abilities simplify the control of mobile sensor networks
and are therefore necessary parts of CSL.
The first problem arises due to human-user
limitations. A single user cannot properly control the low-level details
of multiple resources concurrently. In the CSL philosophy, the user
should control network objectives and receive information relevant to
the objectives. This is further complicated if a network may have
variable dimension, i.e., sensors and channels come and go. Therefore a
goal oriented network controller interacting with a dynamic network
should be weakly coupled to the size of the network. A tightly coupled
controller, i.e., one reacting at fine grain to changes in network
dimension, would be too complex to scale. MCL controllers are very
weakly coupled for scalable execution by large networks. MCL controllers
do not specify the allocation of tasks to platforms, coordination
structures between collaborating platforms, or lower-level platform
controllers. All of this is embedded in the CSL Execution Engine. It is
part of the network intelligence, similar to the Internet which
autonomously adapts to the loss of a router without troubling its
applications. This helps reduce the cognitive workload required of the
user.
The second problem requires the run-time
patching of controllers and has value in many ways. Controllers are
typically continuously operating components; think of air traffic
management systems, traffic signal control systems, or Google servers.
Updates should be run-time updates unless one assumes it is acceptable
to leave the plant without control for some time. In the MSN context,
the ability to change controllers at run time can lead to simpler
controllers. Instead of defining a controller able to accommodate all
eventualities, one may set up the current controller for a short
horizon, and patch it to a new controller if the state changes in
unforeseen ways.
Publications:
Joshua Love, Jerry
Jariyasunant, Eloi Pereira, Marco Zennaro, Karl Hedrick, Christoph
Kirsch and Raja Sengupta, CSL: A Language to Specify and Re-Specify
Mobile Sensor Network Behaviors, 15th IEEE Real-Time and Embedded
Technology and Applications Symposium, San Francisco, California, April
2009. [pdf]
Page last updated
02/02/2010.
|