Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with...

10
Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury

Transcript of Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with...

Page 1: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

snBench: A Programming and Runtime Framework

for Sensor Networks

Michael Oceanwith Azer Bestavros and Assaf Kfoury

Page 2: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Motivation (sensing change)

Traditional Sensor Networks : Homogeneous nodes Highly constrained (e.g., computation,

communication, power, etc.) Nodes programmed for a single common goal

“Embedded” Sensor Networks (Sensoria) : Heterogeneous nodes/Hybrid networks Varied constraints on devices/networks Program the network to achieve multiple

(potentially conflicting) goals running simultaneously

Page 3: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Motivation (sensing change)

What sensors can I use and what functionality do I

get from them?

Embedded SNs (“Sensoria”) : Heterogeneous nodes Varied constraints Program the network diff't goals running

simultaneously

Page 4: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

snBench: Programming Cycle

Program SNAFU language

high-level “glue” Compile

A SNAFU program is compiled into a Sensorium Task Execution Plan (STEP)

Map and Link STEPs are decomposed in smaller dispatch-able

(baby) STEPs which are linked to resources Load and Execute

Linked STEPs are dispatched to sensor runtime/execution environments (SXEs)

Page 5: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

SNet Apps as FUnctions

SNAFU: functional specification language computation, sensing, communication, storage, values,

etc.

e.g., identify the face seen through camera 1

Use “annotative” functions for constraints e.g., what streams can be “exposed”

e.g., minimum acceptable resolution

identify(facefind(grabframe(cam1)))

public(facecount(grabframe(private(cam1)))))

facecount(resn(800x600x24b,grabframe(cam1)))

Page 6: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Sensorium Task Execution Plan

SNAFU is compiled into STEP our “Instruction Set Architecture”

cam2

snapshot

motion

clock 4am2am

< <

&&

trigger

email

[email protected]”email(“[email protected]”, trigger( (motion(snapshot(cam2)) && (2am<NOW<4am)), snapshot(cam2)))

snafu program

Sensorium Task Execution Plan

Page 7: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Sensorium Task Execution Plan

serialized as XML

Page 8: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Infrastructure support

Scheduling/linking as graph partitioning

SXE

SXESXE

SXE

?

cam2

snapshot

motion

clock 4am2am

< <

&&

trigger

email

[email protected]

Page 9: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Infrastructure support

Sensorium Resource Manager (SRM) Manage “local”-area Sensorium resources

Sensorium Service Dispatcher (SSD) STEP scheduling, deployment and monitoring:

SD, SXESXE

SXE

SXE

SXESXE

SXE

Page 10: Computer Science snBench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury.

Computer Science

Sensor eXecution Environment

Shares local (virtual) resources with the Sensorium Abstraction of local resources

through STEP program abstraction

Advertises computational and sensing capabilities to SSD

Accepts STEPs from SSD STEP interpreter

can be dynamically tasked with new functionalities via the network