スケーラビリティを考慮したセンサ駆動アプリケーションフレームワーク†
組み込み技術,ネットワーク技術の進歩に伴い,多様な家電製品や電気機器が誕生し,人々の生活に深く浸透しています.
それらの機器はより高性能,高機能に進化しているだけでなく,複数の機器同士を連携させて動作する機能が普及してきています.
また,機器同士の連携に限らず,センサと機器を組み合わせてより知的に動作する連携機能の開発・普及が進んでいます.
ユビキタスコンピューティングの分野では特に,ユーザの挙動や環境の変化をセンサにより検知し,事前に登録された条件に適合した場合にサービスを駆動するセンサ駆動型のアプリケーションの開発が実際に行われています.
センサ駆動アプリケーションの例†
例えば,ホームネットワークシステムやビル管理システムでは,センサと組み合わせて動作することを前提とした機器が数多く運用されています.人感センサを利用し,人が近くに来るとライトをつけるセンサライト,人が近づくとドアを開ける自動ドアや,温度センサを利用して空調を適度に保つエアコンの自動運転制御,手をかざすことで水道の蛇口が開く自動水栓(automatic sensor faucet)などが存在します.
また,より高度な例では,ユーザの血圧や薬を定期的に摂取しているか,倒れたりしていないか等のデータをセンサによって取得し,家族など介護を行っているユーザや救急車を呼ぶといった,ユーザの状態に適した行動を選択・決定し実行する生活支援システムなどが提案されています.
このように,ユーザの周囲に複数のセンサとそのセンサを利用する複数のユビキタスアプリケーションが配備されるようになりつつあります.
[添付]
問題点†
このようなセンサ駆動型アプリケーションにおいてよりきめ細やかなサービスをユーザに提供しようとした場合,機器に接続するセンサを増やし,周囲環境の情報を多数集めることで改良することができます.
しかし,現状では機器に接続するセンサを増やした場合,2つの問題点が発生するため,実現が難しくなっています.
- 問題1 センサと機器が密に結合している
センサを扱うアプリケーションがセンサの値を得ようとした場合,センサへのアクセス方法やセンサの値の解釈といったセンサ固有の処理をアプリケーション内に作り込む必要があります.
そのため,センサが増加するとアプリケーションの複雑さが増大し,センサの追加・変更時のアプリケーションの改修コストが大きくなってしまいます.
- 問題2 接続するセンサの数を増加させることに対するスケーラビリティが低い
センサが検知する値は,環境の変化に伴って変化し続けます.
センサを利用するアプリケーションは絶えずその値を監視し続けている必要があるため,センサ数の増加に伴い,センサとアプリケーション間の通信量やセンサデータを処理するアプリケーションの負荷も増大します.
[添付]
提案手法†
そこで,本研究では多数のセンサを利用するようなユビキタスサービス実現において考慮が必要なこの密結合の問題(問題1)とスケーラビリティの問題(問題2)に対応したスケーラブルなセンサアプリケーションを構築可能にするフレームワークを提案します.
- まず問題1に対応するために,センサデバイスをサービスレイヤと呼ぶ層で包み込みます.
このサービスレイヤはセンサ固有のアクセス方法や値解釈に関するロジックをWebサービス技術を利用した標準的なAPIに変換するラッパーで,センサとアプリケーション間の疎結合を実現します.
ユビキタスサービスは,このサービスレイヤを通じて,各センサが検知可能なプロパティの情報と,そのプロパティの値を取得し,アプリケーション内でセンサ固有のロジックを記述することなく多様なプラットフォームから簡単に利用することが可能となります.
- 問題2に対しては,サービスを駆動するための条件がセンサの示す値の閾値から構成されるケースが多いことに着目し(例えば温度計の場合,温度が27度以上になったら冷房の電源を入れるなど),この種の条件判定をアプリケーションではなく各センサのサービスレイヤに委譲する仕組みを作成しました.
アプリケーションはサービスレイヤを通して,センサごとに条件を登録(subscribe)します.
各サービスレイヤは登録された条件にもとづいてセンサの値を監視し,条件が成立したとき,または不成立になったときのみ,それぞれ真/偽という返答をアプリケーションに通知(publish)します.
このようなPublish/Subscribe型のメッセージ交換パターンを応用したアーキテクチャにより,センサとアプリケーション間の通信が登録された条件が成立/不成立のときしか行われなくなります.
結果として,問題2で述べた通信コストの問題は大いに改善されます.
また,条件判定の部分がセンサに委譲されるため,アプリケーションの負荷も低減されます.
[添付]
さらに,提案するサービスレイヤを利用することで,複数のセンサの取る閾値を組み合わせた複雑な条件を検知するメタセンサを容易に実装することが可能とまります.
例えばエアコンの自動運転制御では,「室温が28度以上かつ湿度が50%以上のときに強運転を行う」といった,複数のセンサをまたがった条件を記述することができます.
本研究では,提案するフレームワークを用いてセンサ機器と家電機器とを対象としたセンサ駆動サービスを提供するアプリケーションを開発し,センサの入れ替えやユーザ要求の変化,サービス内容の修正への対応が可能であることと,センサとアプリケーションとの間の通信量がどの程度削減されるかをケーススタディとして行いました.
発表文献†
- Yoji Onishi, Hiroshi Igaki, Masahide Nakamura, and Ken-ichi Matsumoto.
``A Scalable Sensor Application Framework Based on Hierarchical Load-Balancing Architecture,'' In Proceedings of the IASTED International Conference on Software Engineering (IASTED SE 2008), pp.37-42, February 2008. File not found: "598-178.pdf" at page "Research/SOA/SensorApplicationFramework"[添付]