26.04.2015 Views

Applications - Network and Systems Lab

Applications - Network and Systems Lab

Applications - Network and Systems Lab

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!