Applications - Network and Systems Lab
Applications - Network and Systems Lab
Applications - Network and Systems Lab
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