Result: Reliable and efficient programming abstractions for wireless sensor networks

Title:
Reliable and efficient programming abstractions for wireless sensor networks
Source:
PLDI'07 Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design & Implementation, June 10-13, 2007, San Diego, CAACM SIGPLAN notices. 42(6):200-210
Publisher Information:
Broadway, NY: ACM, 2007.
Publication Year:
2007
Physical Description:
print, 29 ref
Original Material:
INIST-CNRS
Subject Terms:
Computer science, Informatique, Sciences exactes et technologie, Exact sciences and technology, Sciences appliquees, Applied sciences, Informatique; automatique theorique; systemes, Computer science; control theory; systems, Logiciel, Software, Langages de programmation, Programming languages, Systèmes informatiques et systèmes répartis. Interface utilisateur, Computer systems and distributed systems. User interface, Abstraction, Abstracción, Analyse programme, Program analysis, Análisis programa, Code temps, Time code, Código tiempo, Compilateur, Compiler, Compilador, Composant logiciel, Software component, Componente logicial, Ecriture programme, Program writing, Escritura programa, Fiabilité, Reliability, Fiabilidad, Gestion ressources, Resource management, Gestión recursos, Interblocage, Deadlock, Interbloqueo, Langage C, C language, Lenguaje C, Langage programmation, Programming language, Lenguaje programación, Lisibilité, Legibility, Legibilidad, Réseau capteur, Sensor array, Red sensores, Réseau local, Local network, Red local, Système exploitation, Operating system, Sistema operativo, Système réparti, Distributed system, Sistema repartido, Sérialisabilité, Serializability, Serialisabilidad, Verrouillage, Locking, Fijación, Vérification programme, Program verification, Verificación programa, Réseau sans fil, Wireless network, Red sin hilo, Deadlocks, Design, Energy Efficiency, Experimentation, Languages, Macroprogramming, Performance, Wireless Sensor Networks
Document Type:
Conference Conference Paper
File Description:
text
Language:
English
Author Affiliations:
University of Southern California, United States
University of California, Los Angeles, United States
ISSN:
1523-2867
Rights:
Copyright 2007 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems
Accession Number:
edscal.19110786
Database:
PASCAL Archive

Further Information

It is currently difficult to build practical and reliable programming systems out of distributed and resource-constrained sensor devices. The state of the art in today's sensomet programming is centered around a component-based language called nesC. nesC is a node-level language-a program is written for an individual node in the network-and nesC programs use the services of an operating system called TinyOS. We are pursuing an approach to programming sensor networks that significantly raises the level of abstraction over this practice. The critical change is one of perspective: rather than writing programs from the point of view of an individual node, programmers implement a central program that conceptually has access to the entire network. This approach pushes to the compiler the task of producing node-level programs that implement the desired behavior. We present the Pleiades programming language, its compiler, and its runtime. The Pleiades language extends the C language with constructs that allow programmers to name and access node-local state within the network and to specify simple forms of concurrent execution. The compiler and runtime system cooperate to implement Pleiades programs efficiently and reliably. First, the compiler employs a novel program analysis to translate Pleiades programs into message-efficient units of work implemented in nesC. The Pleiades runtime system orchestrates execution of these units, using TinyOS services, across a network of sensor nodes. Second, the compiler and runtime system employ novel locking, deadlock detection, and deadlock recovery algorithms that guarantee serializability in the face of concurrent execution. We illustrate the readability, reliability and efficiency benefits of the Pleiades language through detailed experiments, and demonstrate that the Pleiades implementation of a realistic application performs similar to a hand-coded nesC version that contains more than ten times as much code.