Preface |
Acknowledgments |
Introduction / 1: |
Sensor networks and traditional distributed systems / 1.1: |
Programming of distributed sensor networks / 1.2: |
Layers of programming abstraction / 1.2.1: |
Service-oriented specification / 1.2.1.1: |
Macroprogramming / 1.2.1.2: |
Node-centric programming / 1.2.1.3: |
Lessons from parallel and distributed computing / 1.2.2: |
Macroprogramming: What and why? / 1.3: |
Contributions and outline / 1.4: |
The Abstract Task Graph / 2: |
Target applications and architectures / 2.1: |
Key concepts / 2.2: |
Data-driven computing / 2.2.1: |
Program flow mechanisms / 2.2.1.1: |
Why data-driven? / 2.2.1.2: |
Mixed imperative-declarative specification / 2.2.2: |
Syntax / 2.3: |
The Structure of an ATaG program / 2.3.1: |
More on task annotations / 2.3.2: |
Illustrative examples / 2.3.3: |
Semantics / 2.4: |
Terminology / 2.4.1: |
Firing rules / 2.4.2: |
Task graph execution / 2.4.3: |
get () and put () / 2.4.4: |
Programming idioms / 2.5: |
Object tracking / 2.5.1: |
Interaction within local neighborhoods / 2.5.2: |
In-network aggregation / 2.5.3: |
Hierarchical data fusion / 2.5.4: |
Event-triggered behavior instantiation / 2.5.5: |
Future work / 2.6: |
State-based dynamic behaviors / 2.6.1: |
Resource management in the runtime system / 2.6.2: |
Utility-based negotiation for task scheduling and resource allocation / 2.6.3: |
Dart: The Data-Driven ATaG Runtime / 3: |
Design objectives / 3.1: |
Support for ATaG semantics / 3.1.1: |
Platform independence / 3.1.2: |
Component-based design / 3.1.3: |
Ease of software synthesis / 3.1.4: |
Overview / 3.2: |
Components and functionalities / 3.3: |
Task, data, and channel declarations / 3.3.1: |
UserTask / 3.3.2: |
Service / 3.3.2.1: |
Interactions / 3.3.2.2: |
Implementation / 3.3.2.3: |
DataPool / 3.3.3: |
AtagManager / 3.3.3.1: |
NetworkStack / 3.3.4.1: |
NetworkArchitecture / 3.3.5.1: |
Dispatcher / 3.3.6.1: |
Control flow / 3.3.7.1: |
Startup / 3.4.1: |
Illustrative example / 3.4.2: |
Lazy compilation of channel annotations / 3.5: |
Automatic priority assignment for task scheduling / 3.5.2: |
Programming and Software Synthesis / 4: |
Meta-modeling for the ATaG domain / 4.1: |
Objectives / 4.2.1: |
Application model / 4.2.2: |
Network model / 4.2.3: |
The programming interface / 4.3: |
Compilation and software synthesis / 4.4: |
Translating task annotations / 4.4.1: |
Automatic software synthesis / 4.4.2: |
The ATaG simulator / 4.4.3: |
Initialization / 4.4.4: |
Situatedness / 4.4.4.1: |
Network interface / 4.4.4.2: |
Network architecture / 4.4.4.3: |
Sensor interface / 4.4.4.4: |
Visualizing synthesized application behavior / 4.4.5: |
Case Study: Application Development with ATaG / 5: |
Overview of the use case / 5.1: |
Designing the macroprograms / 5.2: |
Temperature gradient monitoring / 5.2.1: |
Object detection and tracking / 5.2.2: |
Specifying the declarative portion / 5.3: |
Imperative portion: Temperature gradient monitoring / 5.4: |
Abstract data items: Temperature and fire / 5.4.1: |
Abstract task: Monitor / 5.4.2: |
Abstract task: Temperature sampler / 5.4.3: |
Abstract task: Alarm actuator / 5.4.4: |
Imperative portion: Object detection and tracking / 5.5: |
Abstract data items: TargetAlert and TargetInfo / 5.5.1: |
Abstract Task: SampleAndThreshold / 5.5.2: |
Abstract Task: Leader / 5.5.3: |
Abstract Task: Supervisor / 5.5.4: |
Application Composition / 5.6: |
Software Synthesis / 5.7: |
Concluding Remarks / 6: |
A framework for domain-specific application development / 6.1: |
A framework for compilation and software synthesis / 6.2: |
References |
Index |
Macroprogramming: What and Why? |
Contributions and Outline |
Key Concepts |
Data Driven Computing |
Why data driven? |
Mixed Imperative-Declarative Specification |
The Structure of an ATaG Program |
More on Task Annotations |
get() and put() |
Utility based negotiation for task scheduling and resource allocation |
Analyzing feasibility of compilation / 2.6.4: |
DART:The Data Driven ATaG Runtime |
Task, Data, and Channel Declarations |
Abstract data items: Temperature and Fire |
Abstract Task: Monitor |
Abstract Task: Temperature Sampler |
Abstract Task: Alarm Actuator |