rudra dutta csc 453-001, fall, 2012 a simple sensing program structure

21
Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program A Simple Sensing Program Structure Structure

Upload: augustus-shepherd

Post on 13-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Rudra DuttaCSC 453-001, Fall, 2012

A Simple Sensing Program StructureA Simple Sensing Program Structure

Page 2: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

OverviewOverview Designing the program on the mobile platform

– Brings up issues and representative solutions– Possibly useful in project– Not mandated to be template – not a “standard”

Assumes a wireless multihop (mesh) network– Nodes perform routing, forwarding, sensing– Some or all nodes can act as 802.11 Aps

Mobile auxiliary sensing devices (ASD)– Sensor rich, 802.11, moderate processing/memory– Flexibly connecting and disconnecting from mesh

Copyright Fall 2013, Rudra Dutta, NCSU 2

Page 3: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Requirements / IssuesRequirements / Issues Rendezvous

– Mobile devices’ presence is transient

Context management– Benefits if same device is recognized

Sensing Management– Agreeing on frequency of sensing, reporting

Timestamping– Cannot assume accurate clock at auxiliary nodes

Semantics– Physical quantities corresponding to readings, units– Heterogeneity: Multiple types of sensing devices

Robustness– State refresh, soft state

Copyright Fall 2013, Rudra Dutta, NCSU 3

Page 4: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Big Picture to Design ProblemBig Picture to Design Problem

Copyright Fall 2013, Rudra Dutta, NCSU 4

Page 5: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

SyntaxSyntax “Wire format” of application layer PDU

– Signals – header design– Data – sensed data format in payload– Meta – type of packet, details

Common header format– Preamble – application specific

distinct pattern– Action code – type of packet,

interpretation of rest of packet– ID – identity of ASD (from / to)

Copyright Fall 2013, Rudra Dutta, NCSU 5

Preamble Action Code ID

Code Meaning

0 Rendezvous request

1 Rendezvous reply

2 Req. capabilities

3 Reply capabilities

4 Set requirements list

5 Reporting sensed data

6 Sensed data ACK

… …

Page 6: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

RendezvousRendezvous Auxiliary Sensing device’s presence is transient Rendezvous with AP when close MAC / IP : Inbuilt into protocol

– Entry to network of AP, IP address by DHCP

Application level rendezvous– Periodic beacons from Server, optionally– Periodic broadcasts for discover from ASD Client,

when ready to connect– Subnet broadcast at IP level, but specific UDP port– Reply is unicast, completing application layer

association

Copyright Fall 2013, Rudra Dutta, NCSU 6

Page 7: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

RendezvousRendezvous Auxiliary Sensing device’s presence is transient

Does ASD perform sensing while disconnected?– May be useful in many cases; mobility trace etc. that can be post-analyzed– Less useful for managed sensing systems

ASD requires local auxiliary storage

Copyright Fall 2013, Rudra Dutta, NCSU 7

Server

Co

mm

Co

mm

Client

SensorMgr

Page 8: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Context ManagementContext Management ASDs may connect and disconnect multiple times, to

multiple servers (APs) Recognizing previously encountered ones can be

beneficial– May be able to “connect” space-time differentiated sensor

readings (location, mobility)– May help in calibration, self-calibration

Simple approach: ASD puts ID (if assigned) in rendezvous packet, Server assigns in reply

– Allows continuity of readings without PII, supports heterogeneity

Copyright Fall 2013, Rudra Dutta, NCSU 8

Preamble Action Code ID

Preamble Action Code ID

Page 9: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Sensor ManagementSensor Management ASDs may connect and disconnect multiple times, to

multiple servers Different servers may have different ability/requirement

to serve multiple clients Must be capable of telling the client to report at a certain

frequency Reasonable to piggyback on the rendezvous interaction

– Or use a general-purpose SET message (later)

Copyright Fall 2013, Rudra Dutta, NCSU 9

Preamble Action Code ID

Preamble Action Code ID Rep. Freq.

Page 10: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Distributed ServerDistributed Server

Copyright Fall 2013, Rudra Dutta, NCSU 10

To utilize the distributed nature of themesh, server must run as distributed coordinated process

Human user / controlling application at one node (may or may not be mesh node)– Commands issued at any mesh node should reach

any and all ASDs– Sensor readings reported to any mesh node should

be available at central database

May not be necessary for simple applications

Page 11: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

TimestampingTimestamping Each ASD keeps its own clock

– Not guaranteed to be very accurate

Stores sensor readings with timestamps by local time– When reporting to Server, includes a “reporting

timestamp”

Server is expected to maintain accurate clock– Synchronized across the mesh– Can calibrate/update ASD timestamps by comparing

time at server with ASD reporting time

Copyright Fall 2013, Rudra Dutta, NCSU 11

Page 12: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

SemanticsSemantics Further sensing management tasks

– Not all sensor readings may be “needed” by server at all times

– Sensor readings need not be collected unnecessarily– ASDs are heterogeneous – not all have similar sensing

capability

Must be able to exchange information about sensing capabilities– “Sensed quantity”– “Representation”

Code values in application logic – or config file– Similar to action code

Copyright Fall 2013, Rudra Dutta, NCSU 12

Page 13: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Sensing Management (SET)Sensing Management (SET) After rendezvous, interaction to setup recurrent sensing

– Client sends capabilities with every heartbeat (see next)

– Server sets requirements “SET” actions have soft state (decay over time)

– May also set reporting frequency

Copyright Fall 2013, Rudra Dutta, NCSU 13

Preamble Action Code ID Quantity Representation Max Sns. Freq.

Preamble Action Code ID Quantity Sens. Freq.

Preamble Action Code ID

(Multiple instances)

(Multiple instances)

Seq. Nbr.

Seq. Nbr.

Rep. Freq.

Page 14: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

State Maintenance (HeartBeat)State Maintenance (HeartBeat) ASD sends periodic “I am alive” messages to server

– Possibly broadcast

Reasonable to include capabilities of sensor, ID if available

Copyright Fall 2013, Rudra Dutta, NCSU 14

Preamble Action Code ID Quantity Representation Max Sns. Freq.

(Multiple instances)

Page 15: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Sensing ReportingSensing Reporting Client maintains timer(s), collects sensor readings Client maintains reporting timer, transmits sensor

readings Server transmits acknowledgement

Copyright Fall 2013, Rudra Dutta, NCSU 15

Preamble Action Code ID

Preamble Action Code ID

Quantity Representation Reading TimestampRep. Time

(Multiple instances)

Seq. Nbr.

Seq. Nbr.

Page 16: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

ASD Program DesignASD Program Design Multi-thread implementation possible

– One thread for each sensor – block on timer– One thread for server communication – block on read– One thread for transmitting – block on timer

Issues of concurrence– Different threads wake up at different times– May be “simultaneous”– Global memory to communicate state– Behavior of server communication thread

unpredictable

More demanding of platform capabilities

Copyright Fall 2013, Rudra Dutta, NCSU 16

Page 17: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

ASD Multi-thread DesignASD Multi-thread Design

Copyright Fall 2013, Rudra Dutta, NCSU 17

Idle Idle Idle Idle Idle

On Tx Timer

If buffer not empty Broadcast one packet

On Rx

If SET for this ASD, fresh Change settings Record sequence #If ACK Purge packet from buffer

On Sensor 1 Timer

Read Sensor 1, buffer

On Heartbeat Timer

Broadcast capabilities, ID, time, sequence number

Page 18: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

ASD Single-thread DesignASD Single-thread Design

Merge “idle” states into a single one Merge timers into a single one with variable alarm period

Copyright Fall 2013, Rudra Dutta, NCSU 18

Idle

On Tx Timer OR Flag is UP

If buffer not empty Broadcast one packet

On Heartbeat Timer

Broadcast capabilities, ID, time, sequence number

RX ACK for measurement

Discard top measurementFlag UP

On Measurement Timer

Take readings and bufferFlag UP

RX SET

If SET is for this ASD, new SEQ # Broadcast ACK/NACK Do SET action (change setting) Record SEQ #

Page 19: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

ASD Single-thread Program FlowASD Single-thread Program Flow

Copyright Fall 2013, Rudra Dutta, NCSU 19

x min (NxtTimes)-t

Block Receive with x second timeout

Rx

Discard top measurementFlag UP

Broadcast ACK / NACKTake SET actionRecord SEQ #

t > NxtMeasureme

nt Time?

t > NxtTx Time OR Flag UP ? If buffer not empty

broadcast one packetNxtTxTime += TxTimer

Take readings and bufferFlag UPNxtMeasurementTime += MeasurementTimer

t > NxtHeartBeat

Time?

YES

NO

Fresh SET for this ASD ACK

Timeout

Broadcast capabilities, ID, time, sequence numberNxtHeartBeatTime += HBTimer

YESNO

NO

NO

Other

Page 20: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

Server Program DesignServer Program Design

Copyright Fall 2013, Rudra Dutta, NCSU 20

Idle

RX Measurement from Client (From ASD)

Broadcast ACK (WiFi)Take Measurement Action

RX Heartbeat Timer (From ASD)

Process Heartbeat

RX User SET Command

Buffer SET command to be sent to allASDs

On ClientSETTxTimer

For each SET in the the SETbufferIf entry expired then remove it else broadcast it (to ASDs)

On ServerSETTxTimer

For each SET in the the SETbufferIf entry expired then remove it elseif Originating=TRUE then Bcast to all other mesh nodes

RX ClientSETACK (from ASD)

Broadcast SETACK to all mesh nodes

RX SETACK (from Mesh Nodes)

Remove SET from SETBuffer

RX SET (from other Mesh Node)

Buffer SET command to be sent to sensor node(s)

Buffer SET command to be sent to all other mesh nodes and the ASDsSet Originating=TRUE

Remove SET from buffer

Page 21: Rudra Dutta CSC 453-001, Fall, 2012 A Simple Sensing Program Structure

SummarySummary Even simple system requires some design Semantics and client-server management need

to be designed Sits on top of networking and communication

semantics

Copyright Fall 2013, Rudra Dutta, NCSU 21