57 research outputs found
Expressing Sensor Network Interaction Patterns using Data-driven Macroprogramming
Wireless Sensor Networks (WSNs) are increasingly be- ing employed as a key building block of pervasive com- puting infrastructures, owing to their ability to be embed- ded within the real world. So far, pervasive applications for WSNs have been developed in an ad-hoc manner using node-centric programming models, focusing on the behav- ior of single nodes. Instead, macro-programming models provide much higher levels of abstractions, allowing developers to reason on the sensor network as a whole.
In this paper, we demonstrate how a wide range of interaction patterns commonly found in pervasive, embedded applications can be expressed using ATaG, a data-driven macro-programming language. To support this, we show- case real-world applications developed in ATaG, and con- sider both homogeneous, sense-only scenarios, and hetero- geneous settings involving actuation on the environment un- der control
Towards Business Processes Orchestrating the Physical Enterprise with Wireless Sensor Networks
The industrial adoption of wireless sensor net- works (WSNs) is hampered by two main factors. First, there is a lack of integration of WSNs with business process modeling languages and back-ends. Second, programming WSNs is still challenging as it is mainly performed at the operating system level. To this end, we provide makeSense: a unified programming framework and a compilation chain that, from high-level business process specifications, generates code ready for deployment on WSN nodes
Enabling High-Level Application Development for the Internet of Things
Application development in the Internet of Things (IoT) is challenging
because it involves dealing with a wide range of related issues such as lack of
separation of concerns, and lack of high-level of abstractions to address both
the large scale and heterogeneity. Moreover, stakeholders involved in the
application development have to address issues that can be attributed to
different life-cycles phases. when developing applications. First, the
application logic has to be analyzed and then separated into a set of
distributed tasks for an underlying network. Then, the tasks have to be
implemented for the specific hardware. Apart from handling these issues, they
have to deal with other aspects of life-cycle such as changes in application
requirements and deployed devices. Several approaches have been proposed in the
closely related fields of wireless sensor network, ubiquitous and pervasive
computing, and software engineering in general to address the above challenges.
However, existing approaches only cover limited subsets of the above mentioned
challenges when applied to the IoT. This paper proposes an integrated approach
for addressing the above mentioned challenges. The main contributions of this
paper are: (1) a development methodology that separates IoT application
development into different concerns and provides a conceptual framework to
develop an application, (2) a development framework that implements the
development methodology to support actions of stakeholders. The development
framework provides a set of modeling languages to specify each development
concern and abstracts the scale and heterogeneity related complexity. It
integrates code generation, task-mapping, and linking techniques to provide
automation. Code generation supports the application development phase by
producing a programming framework that allows stakeholders to focus on the
application logic, while our mapping and linking techniques together support
the deployment phase by producing device-specific code to result in a
distributed system collaboratively hosted by individual devices. Our evaluation
based on two realistic scenarios shows that the use of our approach improves
the productivity of stakeholders involved in the application development
An Analysis of Deductive-Query Processing Approaches for Logic Macroprograms in Wireless Sensor Networks
Logic macroprogramming paradigms for wireless sensor networks (WSNs) are rule-based abstractions for programming a network as a whole. Programmers only focus on the main objective of the network rather than the low-level implementation details on each node. Therefore, the low-level details are automatically handled by underlying middleware of the paradigms. To be viable, the middleware must efficiently handle the underlying issues as well as effectively minimize energy consumption and communication overhead. Not surprisingly, one major underlying issue in logic macroprogramming systems is deductive-query processing. In this paper, we analyze the characteristics of deductive-query processing and identify what have been overlooked in those previous approaches. Furthermore, we overview, analyze, and compare several recent approaches for deductive-query processing of logic macroprograms in WSNs. Our analysis reveals several important aspects that should be considered when designing such systems
MacroSwarm: A Field-based Compositional Framework for Swarm Programming
Swarm behaviour engineering is an area of research that seeks to investigate
methods and techniques for coordinating computation and action within groups of
simple agents to achieve complex global goals like pattern formation,
collective movement, clustering, and distributed sensing. Despite recent
progress in the analysis and engineering of swarms (of drones, robots,
vehicles), there is still a need for general design and implementation methods
and tools that can be used to define complex swarm behaviour in a principled
way. To contribute to this quest, this article proposes a new field-based
coordination approach, called MacroSwarm, to design and program swarm behaviour
in terms of reusable and fully composable functional blocks embedding
collective computation and coordination. Based on the macroprogramming paradigm
of aggregate computing, MacroSwarm builds on the idea of expressing each swarm
behaviour block as a pure function mapping sensing fields into actuation goal
fields, e.g. including movement vectors. In order to demonstrate the
expressiveness, compositionality, and practicality of MacroSwarm as a framework
for collective intelligence, we perform a variety of simulations covering
common patterns of flocking, morphogenesis, and collective decision-making
Enabling High-Level Application Development in the Internet of Things
International audienceThe sensor networking field is evolving into the Internet of Things~(IoT), owing in large part to the increased availability of consumer sensing devices, including modern smart phones. However, application development in the IoT still remains challenging, since it involves dealing with several related issues, such as lack of proper identification of roles of various stakeholders, as well as lack of suitable (high-level) abstractions to address the large scale and heterogeneity in IoT systems. Although the software engineering community has proposed several approaches to address the above in the general case, existing approaches for IoT application development only cover limited subsets of above mentioned challenges. In this paper, we propose a multi-stage model-driven approach for IoT application development based on a precise definition of the role to be played by each stakeholder involved in the process -- domain expert, application designer, application developer, device developer, and network manager. The abstractions provided to each stakeholder are further customized using the inputs provided in the earlier stages by other stakeholders. We have also implemented code-generation and task-mapping techniques to support our approach. Our initial evaluation based on two realistic scenarios shows that the use of our techniques/framework succeeds in improving productivity in the IoT application development process
Programming models for sensor networks: a survey
Sensor networks have a significant potential in diverse applications some of which are already beginning to be deployed in areas such as environmental monitoring. As the application logic becomes more complex, programming difficulties are becoming a barrier to adoption of these networks. The difficulty in programming sensor networks is not only due to their inherently distributed nature but also the need for mechanisms to address their harsh operating conditions such as unreliable communications, faulty nodes, and extremely constrained resources. Researchers have proposed different programming models to overcome these difficulties with the ultimate goal of making programming easy while making full use of available resources. In this article, we first explore the requirements for programming models for sensor networks. Then we present a taxonomy of the programming models, classified according to the level of abstractions they provide. We present an evaluation of various programming models for their responsiveness to the requirements. Our results point to promising efforts in the area and a discussion of the future directions of research in this area.
The Design and Use of a Smartphone Data Collection Tool and Accompanying Configuration Language
Understanding human behaviour is key to understanding the spread of epidemics, habit dispersion, and the efficacy of health interventions. Investigation into the patterns of and drivers for human behaviour has often been facilitated by paper tools such as surveys, journals, and diaries. These tools have drawbacks in that they can be forgotten, go unfilled, and depend on often unreliable human memories. Researcher-driven data collection mechanisms, such as interviews and direct observation, alleviate some of these problems while introducing others, such as bias and observer effects. In response to this, technological means such as special-purpose data collection hardware, wireless sensor networks, and apps for smart devices have been built to collect behavioural data. These technologies further reduce the problems experienced by more traditional behavioural research tools, but often experience problems of reliability, generality, extensibility, and ease of configuration.
This document details the construction of a smartphone-based app designed to collect data on human behaviour such that the difficulties of traditional tools are alleviated while still addressing the problems faced by modern supplemental technology. I describe the app's main data collection engine and its construction, architecture, reliability, generality, and extensibility, as well as the programming language developed to configure it and its feature set. To demonstrate the utility of the tool and its configuration language, I describe how they have been used to collect data in the field. Specifically, eleven case studies are presented in which the tool's architecture, flexibility, generality, extensibility, modularity, and ease of configuration have been exploited to facilitate a variety of behavioural monitoring endeavours. I further explain how the engine performs data collection, the major abstractions it employs, how its design and the development techniques used ensure ongoing reliability, and how the engine and its configuration language could be extended in the future to facilitate a greater range of experiments that require behavioural data to be collected. Finally, features and modules of the engine's encompassing system, iEpi, are presented that have not otherwise been documented to give the reader an understanding of where the work fits into the larger data collection and processing endeavour that spawned it
- …