修 士 論 文 概 要 書
Summary of Master’s Thesis
Date of submission: _1_/_31 / 2012 (MM/DD/YYYY)
専攻名(専門分野)Department
情報理工学専攻 氏 名Name
清水 遼指
導 教 員
Advisor
深澤 良彰 印
Seal
研究指導名Research guidance
ソフトウェア 開発工学研究
学籍番号
Student ID
number
CD
5110B061 – 1
研究題目Title
無線センサネットワークアプリケーション開発におけるデータ品質最適化に関する研究1. はじめに
無線センサネットワーク(WSN: Wireless Sensor
Network)とは,無線通信により実世界の計測データ
を伝搬するセンサネットワークであり,バッテリ駆動の小 型デバイス(センサノード)で構成される.WSNは無線 通信,バッテリ駆動という特徴から敷設時の制約が少 な く , より 多様 な場 所への 設 置 が可 能と な る. このWSN
上で動作するアプリケーションのデータ計測期 間などのデータに関わる品質は,障害物などの実行時 の物理環境に依存する.WSN
アプリケーションを開発する際の一般的な開 発プロセスは,まず実行時のデータ品質を計測するた めの実装(プロトタイプ)を開発し,プロトタイプの実行 結果に基づきデータ品質の調整を行う,というものであ る.これにより,対象環境におけるデータ品質を最適化 する.この開発プロセスには以下の3
点が求められる.要件
1.
品質調整により多くの工数を割くために,プ ロトタイプをなるべく少ない工数で開発可能であること 要件2.
データ品質への要求を満たすため,細かな 粒度での品質調整が可能であること要件
3.
開発の生産性を高めるため,成果物のシー ムレスな再利用が可能であること2. WSN アプリケーション開発上の問題
現在最も一般的な開発方法は,WSN 向けのプログ ラミング言語を用いて前述の開発プロセスに従う開発 を行うものである.WSN 向けのプログラミング言語は,
個々のセンサノードの動作を記述するノードプログラミ ングと,ノード集合あるいは
WSN
全体の動作を記述 するマクロプログラミングを行うものに大別される.ノードプログラミングを用いた場合,実現したい機能 を,個々のセンサノードの動作に落としこむ必要があり,
機能要求と実装との間の乖離が大きく要件
1
を満たす ことは難しい.また,マクロプログラミングを用いた場合,言語上からは変更不可能な,プログラムが実行される ミドルウェアなどで決定されている要素が存在するため 要件
2
を満たすことが難しい.更に,プロトタイプ開発 時にマクロプログラミングを,品質調整時にノードプロ グラミングを用いるハイブリッドな方法も考えられるが,異なる言語を用いるため開発したプロトタイプを品質調 整時にそのまま再利用できず要件
3
を満たせない.こ のように,既存の方法では前述の要件1~3
を同時に満たすことは困難である.
3. 提案する開発プロセス
本論文では,前述の
3
つの要件を満たすため,3 つ の抽象度の異なるドメイン特化モデリング言語(DSML:Domain Specific Modeling Language)
と , 各DSML
で記述されたモデル間の自動変換を実現する ための変換規則を定義し,これらを用いた開発プロセ スを提案する.定義した
DSML
は,ネットワーク非依存なアプリケ ーションのデータフローを表現するDataflow-level
DSML,WSN
全体をノードグループとして抽象化しグループの構成と動作を表現する
Group-level DSML,
個 々 の セ ン サ ノ ー ド が 担 う 役 割 と 動 作 を 表 現 す る
Node-level DSML
からなる.また,定義した変換規則 は,Dataflow-level からGroup-level,Group-level
からNode-level
のモデル変換を実現する規則である.各変換規則はモデル上の要素を対応付ける規則と,
変換後のモデルに新たに現れる要素に対し固定値を 与える規則からなる.
これらを用いる事により,開発者は,プロトタイプを開 発する際は
Dataflow-level DSML
を用いてネットワ ーク非依存なデータフローのみを決定するだけで,変 換規則により固定値が与えられたプロトタイプを得られ る.これにより要件1
を満たす.また,品質調整をする 際 は , グ ル ー プ 内 の 通 信 方 式 な ど を 記 述 可 能 なGroup-level DSML
や,個々のセンサノードに割り当 てる役割を決定可能なNode-level DSML
を用いるこ とにより細やかな品質調整が可能となり,要件2
を満た す . 更 に , プ ロ ト タ イ プ 開 発 時 の 成 果 物 で あ るDataflow-level
モ デ ル か ら は , 自 動 生 成 に よ りGroup-level,Node-level
モデルも生成され,これら のモデルはのちの品質調整時に再利用可能である.これにより要件
3
を満たす.この開発プロセスの全体像 を図1
に示す.4. ケーススタディ
提案する開発プロセスが前述の
3
つの要件を満た すことを検証するため,実世界で実行・運用された実 績を持つアプリケーションを用いたケーススタディを実 施した.対象としたアプリケーションは,歴史的建造物 の状態監視を行うアプリケーション[1]である.これは,加速度などの
4
種類のデータから建築物の状態異常を監視・検知するアプリケーションである.
Developer's View
Tuning PhaseAnalyzing PhasePrototyping Phase
System's view
: Functional Requirement
<<manual>>
<<process>>
Dataflow-level Modeling
<<physical>>
: Dataflow-levelModel
<<automatic>>
<<process>>
Dataflow2Group Transformation : Dataflow2Group
TransformationRule
<<physical>>
: Group-levelModel
<<automatic>>
<<process>>
Group2Node Transformation : Group2Node
TransformationRule
<<physical>>
: Node-levelModel
<<automatic>>
<<process>>
Code Generation : CodeGeneration
<<physical>> Rule : ApplicationCode
<<manual>>
<<process>>
Performance Analysis
<<manual>>
<<process>>
Performance Monitoring
: Requirement forDataQuality
: TuningFactor : QualityDatum
<<manual>>
<<process>>
Dataflow-level Tuning
<<manual>>
<<process>>
Group-level Tuning
<<manual>>
<<process>>
Node-level Tuning
<<physical>>
: Dataflow-levelModel
<<physical>>
: Group-levelModel
<<physical>>
: Node-levelModel
<<automatic>>
<<process>>
Dataflow2Group Transformation : Dataflow2Group
TransformationRule
<<automatic>>
<<process>>
Group2Node Transformation : Group2Node
TransformationRule
<<automatic>>
<<process>>
Code Generation : CodeGeneration
Rule
<<physical>>
: ApplicationCode
図 1 提案する開発プロセスの全体像
プロトタイプを開発する場合,開発者はアプリケーシ ョンに必要なデータの種類と,データに対して行う集 約・融合処理を決定し,Dataflow-level DSML を用 いてこれをモデル化する.その後,自動変換により開 発者はプロトタイプを得る.このように,開発者はネット ワーク非依存なデータフローの決定からプロトタイプを 得られるため,マクロプログラミングと同様少ない工数 でのプロトタイプ開発を実現しており,要件
1
を満たし ていた.また,品質調整について,データ計測期間をより長 くするために,
[1]では計測頻度の高いデータの通信
時にはデータ圧縮を行う通信方式を用いること,計測 頻度の高いデータを計測する役割とその他のデータを 計測する役割を異なるセンサノードに割り当てることを していた.これらの品質調整について,我々の開発プ ロセスでは,前者についてはGroup-level DSML
に て通信時のデータ圧縮を表現可能であった.また,後 者は,Noっxde-level DSMLにて,WSN内に存在す る各センサノードに割り当てる役割を記述可能であっ た.このように,我々の開発プロセスでは,ノードプログ ラミングと同様の品質調整が可能であり,要件2
を満た していた.更に,品質調整は,プロトタイプ開発時に自動生成 された
Group-level、Node-level
モデルに対して修正 を加えることで達成されるため,成果物の再利用が実 現しており,要件3
を満たしていた.このように本開発プロセスでは,実用性を持つ
WSN
アプリケーションを,WSN アプリケーション開発への3
つの要件を同時に満たしつつ開発可能であることを,ケーススタディを通して示した.
5. 関連研究
プロトタイプを用いた
WSN
アプリケーション開発を支 援 す る 研 究 と し てRaPTEX[2]
な ど が 存 在 す る .RaPTEX
では,開発者のMAC
プロトコルとルーティ ングプロトコルの選択支援に焦点を当てており,シミュ レーションなどを用いて選択したプロトコルの性能を推 定し,開発者に提示する.しかし,RaPTEX ではデー タの計測,集約,融合といったロジックに焦点を当てて おらず,これらの設計はサポートしていない.これに対 し本開発プロセスは,RaPTEX が対象としていないこ れらのロジックをデータフローとして設計可能であると 同時に,品質調整のためにルーティングプロトコルを 選択することも可能である.ただし,RaPTEXが対象と しているMAC
プロトコルについては,本論文では対象 外となっている.これは,MACプロトコルはOS
等のプ ラットフォームに依存する要素であり,プラットフォーム 上で動作するアプリケーションを開発する開発者が関 知するものではないと考えるためである.6. おわりに
WSN
アプリケーション開発において一般的な,プロ トタイプを用いた開発には3
つの要件が求められる.本論文では,3 つの抽象度の異なる
DSML
と,各DSML
で記述されたモデル間の自動変換を実現する 変換規則を定義することにより,3 つの要件を同時に 満たす開発プロセスを提案した.また,この開発プロセ スが実際に各要件を満たすことを,実世界での運用実 績のあるアプリケーションを用いたケーススタディにより 確認した.本開発プロセスでは,プロトタイプの実行結果から調 整すべきデータ品質が決定された後,どの抽象度のモ デルのどの部分を修正するかは開発者に任されており 属人性が強い.今後は,この属人性を緩和するため,
提案した