26.04.2015 Views

Applications - Network and Systems Lab

Applications - Network and Systems Lab

Applications - Network and Systems Lab

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Data Quality-Centric<br />

Mode-Driven Development<br />

for WSN <strong>Applications</strong><br />

Ryo Shimizu<br />

(kiyo07@fuka.info.waseda.ac.jp)


Research Overview<br />

• WSN (Wireless Sensor <strong>Network</strong>) Application<br />

+ MDD (Model-Driven Development) Process<br />

developer<br />

Initial Modeling<br />

Application<br />

Logic<br />

Communications<br />

Communications<br />

Task<br />

Assignments<br />

Application<br />

Code<br />

Execute<br />

&<br />

Monitor<br />

&<br />

Analyze<br />

IPSN 2013 Ph.D. Forum<br />

Iterative Modeling<br />

developer<br />

Application<br />

Logic<br />

Task<br />

Assignments<br />

Application<br />

Code<br />

Rapid prototyping<br />

: automatic<br />

transformation<br />

: manual<br />

modeling<br />

Fine-grained tuning<br />

1


IPSN 2013 Ph.D. Forum<br />

WSN “Monitoring” <strong>Applications</strong><br />

• Most typical WSN application [Bai09] , e.g. building monitoring [Ceriotti09]<br />

• The data quality depends on the execution<br />

environment [Tilak02][Zhao03]<br />

• Data quality: quality of obtained data<br />

• data loss rate (reliability), data sensing span (lifetime), etc…<br />

lossy<br />

Data loss rate<br />

will increase<br />

developer<br />

Developers<br />

cannot grasp<br />

the qualities<br />

before<br />

execution<br />

The tuning for the data quality is important<br />

[Bai09] L. S. Bai et al. “Archetype-based design of sensor network programming for application experts, not just programming experts”, IPSN 2009.<br />

[Ceriotti09] M. Ceriotti et al. “Monitoring heritage buildings with wireless sensor networks: The Torre Aquila deployment” IPSN 2009.<br />

[Tilak02] S. Tilak et al. “Infrastructure tradeoffs for sensor networks”, WSNA 2002.<br />

[Zhao03] J. Zhao et al. “Underst<strong>and</strong>ing Packet Delivery Performance In Dense Wireless Sensor <strong>Network</strong>s”, SenSys 2003.<br />

2


Development Process<br />

• Prototyping & tuning & tuning & tuning…<br />

Execute the<br />

prototype<br />

IPSN 2013 Ph.D. Forum<br />

developer<br />

Modify<br />

Develop a<br />

prototype<br />

High data<br />

loss rate<br />

Obtain the Tune the<br />

quality<br />

quality<br />

Change the following:<br />

‣ task assignments<br />

‣ e.g. assign tasks to more nodes<br />

‣ communications<br />

‣ e.g. change a routing protocol<br />

Rapid prototyping & fine-grained tuning is important<br />

3


IPSN 2013 Ph.D. Forum<br />

WSN Application Development<br />

• Development with domain specific language (DSL)<br />

Node-level Group-level Dataflow-level<br />

trade-off between the feasibility of the rapid<br />

prototyping <strong>and</strong> the fine-grained tuning<br />

Aggregate<br />

data<br />

data<br />

•<br />

region = apmesh_region.create();<br />

while(true){<br />

SELECT temp, AVG(deformatin) …<br />

reading = get_sensor_reading(); FROM sensors<br />

send_to_basestation(avg);<br />

SAMPLE PERIOD 5<br />

sleep(periodic_delay);<br />

}<br />

e.g. NesC [Gay03] e.g. Abstract regions [Welsh04] e.g. TinyDB [Madden05]<br />

classified into three classes based on the level of abstraction [Mottola11] 4<br />

…<br />

event void Timer.fired(){ call Read.read(); }<br />

event void Read.readDone(error_t result,<br />

uint16_t data){<br />

msg->deform = data;<br />

call Collection.send(&msg,<br />

sizeof(deform_msg_t));<br />

}<br />

….<br />

[Gay ’ 03] “The nesC Language: A Holistic Approach to <strong>Network</strong>ed Embedded <strong>Systems</strong>”, D. Gay et al., PLDI 2003.<br />

[Welsh ’ 04] “Programming Sensor <strong>Network</strong>s Using Abstract Regions”, Matt Welsh <strong>and</strong> Geoff Mainl<strong>and</strong>, NSDI 2004.<br />

[Madden ’ 05] “TinyDB: An Acqusitional Query Processing System for Sensor <strong>Network</strong>s”, S. Madden et al., TODS 2005.<br />

[Mottola11] L. Mottola et al. “Programming wireless sensor networks: Fundamental concepts <strong>and</strong> state of the art,” ACM Comput. Surv., 2011.


IPSN 2013 Ph.D. Forum<br />

Idea: Combine the strength of three levels<br />

How to use them in one development process?<br />

Application Logic<br />

Deterioration<br />

Deformation<br />

AVG<br />

Fusion<br />

Acceleration<br />

How to realize on<br />

the target network?<br />

Communications<br />

Compress?<br />

What<br />

topology?<br />

How to realize on<br />

each sensor node?<br />

Task Assignments<br />

How to<br />

assign?<br />

Base station role<br />

Leader role<br />

Member role<br />

5


IPSN 2013 Ph.D. Forum<br />

Data Quality-Centric MDD Process<br />

• Explicit usage of three abstraction levels<br />

• Combine the strength of three levels<br />

Prototyping<br />

Tuning<br />

Req.<br />

Dataflow-level<br />

Modeling<br />

Dataflowlevel<br />

Model<br />

Dataflowlevel<br />

Model<br />

Dataflow-level<br />

Modeling<br />

Dataflow-level<br />

Model (mod)<br />

Grouplevel<br />

Model<br />

Grouplevel<br />

Model<br />

Group-level<br />

Modeling<br />

Group-level<br />

Model (mod)<br />

Automatic<br />

Generation<br />

Node-level<br />

Model<br />

Node-level<br />

Model<br />

Node-level<br />

Modeling<br />

Node-level<br />

Model (mod)<br />

Application<br />

Code<br />

Application<br />

Code (mod)<br />

Execute<br />

Measure the<br />

performance<br />

Redesign<br />

Modification<br />

for design<br />

6


DataflowML<br />

IPSN 2013 Ph.D. Forum<br />

• Expresses data flow that application requires<br />

Example<br />

• <strong>Network</strong>-independent<br />

• Consists of data source, intermediate processing<br />

point (aggregation/fusion), data sink<br />

: DataSink<br />

: SpatialAggregationPoijnt<br />

function = AVERAGE<br />

inputDataType = TEMPERATURE<br />

Aggr<br />

Fusion<br />

: DataSource<br />

dataType = TEMPERATURE<br />

samplingCondition = 30sec<br />

transmissionCondition = 30sec<br />

location = ROOM1<br />

Data<br />

Data<br />

Data<br />

7


IPSN 2013 Ph.D. Forum<br />

Prototyping Phase<br />

• Design an application logic as a dataflow<br />

Prototyping<br />

Req.<br />

Automatic<br />

Generation<br />

Dataflow-level<br />

Modeling<br />

Grouplevel<br />

Model<br />

Node-level<br />

Model<br />

Dataflowlevel<br />

Model<br />

Application<br />

Code<br />

• DataflowML<br />

• to express the networkindependent<br />

dataflow<br />

• Transformation rules<br />

• generate an application<br />

code<br />

• generate corresponding<br />

models (group-level &<br />

node-level)<br />

Developers only need to design the application logic<br />

8


GroupML<br />

IPSN 2013 Ph.D. Forum<br />

• Expresses the behavior / configuration of node<br />

group(s) on the network<br />

Example<br />

• Consists of leader/member group,<br />

group configuration, group’s task<br />

: Group<br />

topology = TREE<br />

locationCondition = WHOLE<br />

L : Leader<br />

: Member<br />

M<br />

: Sink<br />

: Communication<br />

compress = NONE<br />

encryption = NONE<br />

: Group<br />

topology = TREE<br />

locationCondition = ROOM1<br />

: SpatialAggregationOperator<br />

inputDataType = TEMPERATURE<br />

function = AVERAGE<br />

: LeaderNode<br />

selectionPattern = ANY<br />

: Communication<br />

compress = NONE<br />

encryption = NONE<br />

: MemberNodes<br />

selectionPattern = ALL<br />

dataType = TEMPERATURE<br />

samplingCondition = 30sec<br />

transmissionCondition = 30sec<br />

L<br />

M<br />

M<br />

L<br />

M<br />

9


NodeML<br />

• Expresses the assigned role & task for<br />

individual node<br />

: Node<br />

id = 0<br />

location = ROOM1<br />

Example<br />

IPSN 2013 Ph.D. Forum<br />

: BaseStationRole<br />

deploymentCondition = id == 0<br />

: ReceivingTask<br />

protocol = CTP<br />

receiveDataType = TEMPERATURE<br />

compress = NONE<br />

encryption = NONE<br />

: Node<br />

id = 1<br />

location = ROOM1<br />

: LeaderRole<br />

deploymentCondition = ANY<br />

memberIds = {2, 3, 4}<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = TEMPERATURE<br />

transmissionCondition = 30sec<br />

compress = NONE<br />

encryption = NONE<br />

: SpatialAggregationTask<br />

inputDataType = TEMPERATURE<br />

function = AVERAGE<br />

: Node<br />

id = 2<br />

location = ROOM1<br />

: ReceivingTask<br />

protocol = CTP<br />

receiveDataType = TEMPERATURE<br />

compress = NONE<br />

encryption = NONE<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: SamplingTask<br />

dataType = TEMPERATURE<br />

samplingCondition = 30sec<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = TEMPERATURE<br />

transmissionCondition = 30sec<br />

compress = NONE<br />

encryption = NONE<br />

10


Tuning Phase<br />

• Re-design communication methods & task<br />

assignments<br />

Tuning<br />

Dataflowlevel<br />

Model<br />

Grouplevel<br />

Model<br />

Node-level<br />

Model<br />

Dataflow-level<br />

Modeling<br />

Group-level<br />

Modeling<br />

Node-level<br />

Modeling<br />

Dataflow-level<br />

Model (mod)<br />

Group-level<br />

Model (mod)<br />

Node-level<br />

Model (mod)<br />

Application<br />

Code (mod)<br />

• GroupML<br />

IPSN 2013 Ph.D. Forum<br />

• to express the<br />

configuration of the<br />

leader-member type node<br />

group<br />

• NodeML<br />

• to express the behavior of<br />

each node<br />

Developers can redesign the communication<br />

methods & task assignments<br />

11


Tool Implementation<br />

IPSN 2013 Ph.D. Forum<br />

As eclipse plugin<br />

with existing tools<br />

‣ Graphical Editing Framework<br />

(GEF)<br />

‣ GRoundTram System<br />

‣ Acceleo<br />

12


Case Studies<br />

IPSN 2013 Ph.D. Forum<br />

• Conducted seven case studies (Simulated app. developments)<br />

Application<br />

Reference<br />

Heritage building monitoring<br />

Clinical monitoring<br />

M. Ceriotti et al. “Monitoring heritage buildings with wireless sensor networks: The Torre<br />

Aquila deployment” IPSN 2009.<br />

O. Chipara et al. “Reliable Clinical Monitoring using Wireless Sensor <strong>Network</strong>s: Experiences in<br />

a Step-down Hospital Unit” SenSys 2010.<br />

Wildfire monitoring D. M. Doolin, N. Sitar. “Wireless sensors for wildfire monitoring” SPIE 2005.<br />

Weather monitoring<br />

Bridge monitoring<br />

C. Hartung et al. “Firewxnet: a multi-tiered portable wireless system for monitoring weather<br />

conditions in wildl<strong>and</strong> fire environments” MobiSys 2006.<br />

S. Kim et al. “Health monitoring of civil infrastructures using wireless sensor networks” IPSN<br />

2007.<br />

Volcano monitoring G. Werner-Allen et al. “Fidelity <strong>and</strong> yield in a volcano monitoring sensor network” OSDI 2006.<br />

Fence monitoring<br />

G. Wittenburg et al. “Fence monitoring: experimental evaluation of a use case for wireless<br />

sensor networks”, EWSN 2007.<br />

• Main focuses<br />

Q1. Can we model the application logic in the DataflowML?<br />

Q2. Can we model all design decisions related to the tuning of the<br />

data quality in our DSMLs?<br />

13


IPSN 2013 Ph.D. Forum<br />

Heritage building monitoring<br />

Purpose<br />

• to detect structural deterioration<br />

Deployment<br />

• a medieval tower in Italy<br />

• with 16 nodes<br />

• monitored over four months<br />

†<br />

Application logic<br />

• senses four types of data<br />

• acceleration, deformation, temperature,<br />

humidity<br />

• Bayesian algorithm processes these data<br />

• to determine the deterioration<br />

Design for tuning<br />

• task assignments based on physical position<br />

• Huffman data compression<br />

† http://d3s.disi.unitn.it/projects/torreaquila 14


IPSN 2013 Ph.D. Forum<br />

Modeling of Application Logic<br />

• In the heritage building monitoring application…<br />

• Sensor data: acceleration, deformation, temperature, humidity<br />

• Processing: a Bayesian algorithm<br />

Dataflow-level Model<br />

: DataSink<br />

: FusionPoint<br />

function = DeseaseDetection<br />

inputDataTypes = {ACCELERATION, DEFORMATION, TEMPERATURE, HUMIDITY}<br />

outputDataType = StracturalCondition<br />

: DataSource<br />

dataType = ACCELERATION<br />

samplingCondition = 0.005 sec<br />

transmissionCondition = 30 sec<br />

location = WHOLE<br />

: TemporalAggregationPoinnt<br />

function = AVERAGE<br />

inputDataType = DEFORMATION<br />

timeWindow = 100 min<br />

duration = 10 min<br />

: DataSource<br />

dataType = TEMPERATURE<br />

samplingCondition = 10 min<br />

transmissionCondition = 10 min<br />

location = WHOLE<br />

: DataSource<br />

dataType = HUMIDITY<br />

samplingCondition = 10 min<br />

transmissionCondition = 10 min<br />

location = WHOLE<br />

: DataSource<br />

dataType = DEFORMATION<br />

samplingCondition = 10 min<br />

transmissionCondition = 10 min<br />

location = WHOLE<br />

We could model five application<br />

logics with DataflowML<br />

15


IPSN 2013 Ph.D. Forum<br />

Modeling of Designs for Tuning (1)<br />

• In the heritage building monitoring application…<br />

• Req. : reduce the amount of communications<br />

• Design decision: adopt a data compression in<br />

communication<br />

: Group<br />

topology = TREE<br />

locationCondition = WHOLE<br />

: Sink<br />

: Communication<br />

compress = NONE<br />

encryption = NONE<br />

: Group<br />

topology = TREE<br />

locationCondition = WHOLE<br />

: FusionOperator<br />

HUFFMAN<br />

: Communication<br />

compress = NONE<br />

encryption = NONE<br />

function = DeseaseDetection<br />

inputDataTypes = {ACCELERATION, DEFORMATION, TEMPERATURE, HUMIDITY}<br />

outputDataType = StracturalCondition<br />

: Group<br />

topology = TREE<br />

locationCondition = WHOLE<br />

: LeaderNode<br />

selectionPattern = ANY<br />

: Communication<br />

compress = NONE<br />

encryption = NONE<br />

: MemberNodes<br />

selectionPattern = ALL<br />

dataType = TEMPERATURE<br />

samplingCondition = 10 min<br />

transmissionCondition = 10 min<br />

: MemberNodes<br />

selectionPattern = ALL<br />

dataType = HUMIDITY<br />

samplingCondition = 10 min<br />

transmissionCondition = 10 min<br />

: MemberNodes<br />

selectionPattern = ALL<br />

dataType = DEFORMATION<br />

samplingCondition = 10 min<br />

transmissionCondition = 10 min<br />

: TemporalAgg<br />

inputDataType<br />

function = AVE<br />

timeWindow =<br />

duration = 10 m<br />

: LeaderNode<br />

: MemberNodes<br />

selectionPattern = ANY<br />

: Communication<br />

selectionPattern = ALL<br />

dataType = ACCELERATION<br />

samplingCondition = 0.2 sec<br />

transmissionCondition = 30 sec<br />

16


IPSN 2013 Ph.D. Forum<br />

Modeling of Designs for Tuning (2)<br />

• In the heritage building monitoring application…<br />

Before<br />

: SamplingTask<br />

dataType = HUMIDITY<br />

samplingCondition = 10 min<br />

: SamplingTask<br />

dataType = TEMPERATURE<br />

samplingCondition = 10 min<br />

• Req. : detect early symptoms of deteriorations<br />

• Design decision: assign tasks based on the physical position<br />

of nodes<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = HUMIDITY<br />

transmissionCondition = 10 min<br />

compress = NONE<br />

encryption = NONE<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: Node<br />

id = 141<br />

location = 3F<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = TEMPERATURE<br />

transmissionCondition = 10 min<br />

compress = NONE<br />

encryption = NONE<br />

: Node<br />

id = 146<br />

location = 3F<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = ACCELERATION<br />

transmissionCondition = 30 sec<br />

compress = Huffman<br />

encryption = NONE<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: Node<br />

id = 153<br />

location = 3F<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = DEFORMATION<br />

transmissionCondition = 10 min<br />

compress = NONE<br />

encryption = NONE<br />

After<br />

: SamplingTask<br />

dataType = ACCELERATION protocol = CTP<br />

samplingCondition = 0.2 sec sendDataType = HUMIDITY<br />

transmissionCondition = 10 min<br />

compress = NONE<br />

encryption = NONE<br />

: SamplingTask<br />

dataType = HUMIDITY<br />

samplingCondition : SamplingTask = 10 min<br />

dataType = DEFORMATION<br />

samplingCondition = 10 min<br />

: TemporalAggregationTask<br />

inputDataType = DEFORMATION<br />

function = AVERAGE<br />

:<br />

timeWindow<br />

SamplingTask<br />

= 100 min<br />

dataType duration = TEMPERATURE<br />

= 10 min<br />

samplingCondition = 10 min<br />

: SendingTask<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: Node<br />

id = 141<br />

location = 3F<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: SendingTask<br />

: Node<br />

id = 146<br />

location = 3F<br />

: SendingTask<br />

protocol = CTP<br />

sendDataType = ACCELERATION<br />

transmissionCondition = 30 sec<br />

compress = Huffman<br />

encryption = NONE<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: Node<br />

id = 153<br />

location = 3F<br />

: MemberRole<br />

deploymentCondition = ALL<br />

: SendingTask<br />

: SamplingTask<br />

dataType = ACCELERATION<br />

samplingCondition = 0.2 sec<br />

: SamplingTask<br />

dataType = DEFORMATION<br />

samplingCondition = 10 min<br />

: TemporalAggregationTask<br />

protocol = CTP<br />

protocol = CTP<br />

sendDataType = TEMPERATURE sendDataType = DEFORMATION<br />

transmissionCondition = 10 min transmissionCondition = 10 min<br />

We could model task assignments compress = NONE & compress communication<br />

= NONE<br />

encryption = NONE<br />

encryption = NONE<br />

methods adopted in realistic applications<br />

inputDataType = DEFORMATION<br />

function = AVERAGE<br />

timeWindow = 100 min<br />

duration = 10 min<br />

17


Summary of Case Studies<br />

• We conducted seven case studies with our MDD<br />

process<br />

Q1:Can we model the<br />

application logic in the<br />

DataflowML?<br />

Q2. Can we model all<br />

design decisions related<br />

to the tuning of the data<br />

quality in our DSMLs?<br />

O<br />

K<br />

N<br />

G<br />

O<br />

K<br />

N<br />

G<br />

IPSN 2013 Ph.D. Forum<br />

Application logics of periodic WSN<br />

applications<br />

Application logics of event-based<br />

applications<br />

Designs of the applications<br />

(communications & task<br />

assignments)<br />

Designs for tuning related to OS-level<br />

functions<br />

We could model realistic monitoring WSN applications<br />

from the aspect of application designer<br />

with our MDD by using multiple abstraction level<br />

18


Summary<br />

Goal<br />

IPSN 2013 Ph.D. Forum<br />

• Satisfy rapid prototyping & fine-grained tuning for<br />

the data quality<br />

Solution<br />

• propose MDD process defines explicit usage of<br />

three abstraction levels<br />

Prototyping Phase<br />

developer<br />

Dataflowlevel<br />

Dataflowlevel<br />

Group-level<br />

Node-level<br />

Application<br />

Code<br />

Execute<br />

&<br />

Monitor<br />

&<br />

Analyze<br />

developer<br />

Tuning Phase<br />

Group-level<br />

Node-level<br />

Application<br />

Code<br />

19


IPSN 2013 Ph.D. Forum<br />

Future Direction<br />

Conduct experiment<br />

• through a complete application development<br />

• extend DSMLs to express the event-based application<br />

logic & more variability for the tuning of the data<br />

quality<br />

Consistency checking<br />

• to keep consistency between models at multiple<br />

abstraction levels<br />

• because we assume manual modifications for models<br />

in the development process<br />

20


IPSN 2013 Ph.D. Forum<br />

THANK YOU.<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!