33 research outputs found

    A Compilation Framework for Macroprogramming Networked Sensors

    Get PDF
    Abstract. Macroprogramming—the technique of specifying the behavior of the system, as opposed to the constituent nodes—provides application developers with high level abstractions that alleviate the programming burden in develop- ing wireless sensor network (WSN) applications. However, as the semantic gap between macroprogramming abstractions and node-level code is considerably wider than in traditional programming, converting the high level specification to running code is a daunting process, and a major hurdle to the acceptance of macroprogramming. In this paper, we propose a general compilation framework for a data-driven macroprogramming language that allows for plugging in different modules implementing various stages of compilation. We also demonstrate an actual instantiation of our framework by showing an end-to-end solution for compiling macro- programs. Our compiler provides the final code to be deployed on real nodes as well as an estimate of the costs the running system will incur, e.g., in terms of messages exchanged. We compared the auto-generated code against a hand- coded version for the same application behavior to verify the outcome of our compiler

    Design and compilation of an object-oriented macroprogramming language for wireless sensor networks

    Get PDF
    open5siWireless sensor network (WSN) programming is still largely performed by experts in a node-centric way using low-level languages such as C. Although numerous higher-level abstractions exist, each simplifying a specific aspect of distributed programming, real applications often require to combine multiple abstractions into a single program. Using current programming frameworks, this represents a difficult task. In previous work, we therefore defined a conceptual framework that facilitates abstraction composition by defining sound compositional rules among few fundamental abstraction categories. The framework is extensible: programmers can add new abstractions within the boundaries determined by the compositional rules. In this paper we describe the design of a language - called MPL - that instantiates this conceptual framework. To support the extensible nature of the framework, the language is object-oriented, which allows programmers to add new abstractions by inheriting from existing classes that implement predefined interfaces. We modeled the syntax after Java, to make it more palatable to inexperienced embedded programmers. Compared to Java, we modified the language to enable efficient execution on WSN devices. We designed and implemented a compiler that translates MPL language into executable C code, which spares the overhead of a virtual machine. By comparing MPL implementations against functionally-equivalent Contiki/C implementations of several benchmark applications, we determined that the performance overhead of MPL is limited, and yet the programming task is simplified.openOppermann, Felix Jonathan; Römer, Kay; Mottola, Luca; Picco, Gian Pietro; Gaglione, AndreaOppermann, Felix Jonathan; Römer, Kay; Mottola, Luca; Picco, Gian Pietro; Gaglione, Andre

    Srijan: a graphical toolkit for sensor network macroprogramming

    Get PDF
    International audienceMacroprogramming is an application development technique for wireless sensor networks (WSNs) where the developer specifies the behavior of the system, as opposed to that of the constituent nodes. In this proposed demonstration, we would like to present Srijan, a toolkit that enables application development for WSNs in a graphical manner using data-driven macroprogramming. It can be used in various stages of application development, viz. i) specification of application as a task graph, ii) customization of the autogenerated source files with domain-specific imperative code, iii) specification of the target system structure, iv) compilation of the macroprogram into individual customized runtimes for each constituent node of the target system, and finally v) deployment of the auto generated node-level code in an over-the-air manner to the nodes in the target system. The current implementation of Srijan targets both the Sun SPOT sensor nodes and larger nodes with J2SE. Our demonstrattion will encourage users to perform end-to-end WSN application development on the SPOTs using Srijan

    Information extraction from large-scale WSNs - a complex querying perspective

    Get PDF

    Energy-Efficient Task Mapping for Data-Driven Sensor Network Macroprogramming

    Get PDF
    International audienceData-driven macroprogramming of wireless sensor networks (WSNs) provides an easy to use high-level task graph representation to the application developer. However, determining an energy-efficient initial placement of these tasks onto the nodes of the target network poses a set of interesting problems. We present a framework to model this task-mapping problem arising in WSN macroprogramming. Our model can capture placement constraints in tasks, as well as multiple possible routes in the target network. Using our framework, we provide mathematical formulations for the task-mapping problem for two different metrics -- energy balance and total energy spent. For both metrics, we address scenarios where a) a single or b) multiple paths are possible between nodes. Due to the complex nature of the problems, these formulations are not linear. We provide linearization heuristics for the same, resulting in mixed-integer programming (MIP) formulations. We also provide efficient heuristics for the above. Our experiments show that our heuristics give the same results as the MIP for real-world sensor network macroprograms, and show a speedup of up to several orders of magnitude. We also provide worst-case performance bounds of the heuristics

    Compiling functional reactive macroprograms for sensor networks

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2005.Includes bibliographical references (p. 77-79).Sensor networks present a number of novel programming challenges for application developers. Their inherent limitations of computational power, communication bandwidth, and energy demand new approaches to programming that shield the developer from low-level details of resource management, concurrency, and in-network processing. To answer this challenge, this thesis presents a functional macroprogramming language called Regiment. The essential data model in Regiment is based on regions, which represent spatially distributed, time-varying collections of state. The programmer uses regions to define and manipulate dynamic sets of sensor nodes. A first compiler for Regiment has been constructed, which implements the essential core of the language on the TinyOS platform. This thesis presents the compiler as well as an intermediate language developed to serve as a Regiment compilation target.by Ryan Rhodes Newton.S.M
    corecore