*エンドユーザのためのセンサ駆動サービス構築支援環境 [#z48130f1]

**背景 [#z33792d0]

近年,プロセッサ,ストレージやネットワーク技術の普及に伴い,家庭内のネット家電をもとに多様なサービスを提供するホームネットワークシステム(HNS)の開発が進みつつあります.HNSでは,ホームネットワークに接続された各種ネット家電がその機能を利用するためのAPIを公開しており,それらのAPIを組み合わせることで新たな付加価値を生み出すことができます.
 その中でも特に注目されているのがセンサと家電を組み合わせて実現されるセンサ駆動サービスです.一般にセンサ駆動サービスは,利用するセンサとセンサによって検知される環境プロパティに関するコンテキスト条件,その条件が満たされたときに駆動される振る舞いから構成されています.現在提供されているセンサ駆動サービスの多くは,利用されるセンサと機器の組み合わせやコンテキスト条件が固定されています.そのため,ユーザーを取り巻く家電構成や部屋の状況の変化に即してセンサ駆動サービスの内容を変更することは困難でした.
 そこで個々のセンサをサービスとして独立させ,任意のコンテキスト条件や振る舞いを開発者がその都度登録可能なセンササービス基盤を開発しました.センササービスを利用することで,センサやコンテキスト条件,駆動される振る舞いそれぞれを変更することが可能になり,センサ駆動サービスを容易に構築することが可能になりました.

**センサ駆動アプリケーションの例 [#rdd4fe4f]
**エンドユーザによるセンサ駆動サービス構築の問題点 [#k7bc9691]

例えば,ホームネットワークシステムやビル管理システムでは,センサと組み合わせて動作することを前提とした機器が数多く運用されています.人感センサを利用し,人が近くに来るとライトをつけるセンサライト,人が近づくとドアを開ける自動ドアや,温度センサを利用して空調を適度に保つエアコンの自動運転制御,手をかざすことで水道の蛇口が開く自動水栓(automatic sensor faucet)などが存在します.
また,より高度な例では,ユーザの血圧や薬を定期的に摂取しているか,倒れたりしていないか等のデータをセンサによって取得し,家族など介護を行っているユーザや救急車を呼ぶといった,ユーザの状態に適した行動を選択・決定し実行する生活支援システムなどが提案されています.
このように,ユーザの周囲に複数のセンサとそのセンサを利用する複数のユビキタスアプリケーションが配備されるようになりつつあります.
センササービスを利用することで,非常に容易にセンサ駆動サービスを開発できるようになりました.しかし,HNSを利用する一般的なエンドユーザーにとっては,ユーザーの意図する条件式を考え,駆動される振る舞いとして家電APIを指定しなければならないセンサ駆動サービス構築は,依然として困難であるといえます.

&ref(intro1.jpg);

**問題点 [#u736ac6f]

このようなセンサ駆動型アプリケーションにおいてよりきめ細やかなサービスをユーザに提供しようとした場合,機器に接続するセンサを増やし,周囲環境の情報を多数集めることで改良することができます.
しかし,現状では機器に接続するセンサを増やした場合,2つの問題点が発生するため,実現が難しくなっています.

-''問題1'' センサと機器が密に結合している~
~
センサを扱うアプリケーションがセンサの値を得ようとした場合,センサへのアクセス方法やセンサの値の解釈といったセンサ固有の処理をアプリケーション内に作り込む必要があります.
そのため,センサが増加するとアプリケーションの複雑さが増大し,センサの追加・変更時のアプリケーションの改修コストが大きくなってしまいます.

-''問題2'' 接続するセンサの数を増加させることに対するスケーラビリティが低い~
~
センサが検知する値は,環境の変化に伴って変化し続けます.
センサを利用するアプリケーションは絶えずその値を監視し続けている必要があるため,センサ数の増加に伴い,センサとアプリケーション間の通信量やセンサデータを処理するアプリケーションの負荷も増大します.

&ref(intro2.jpg);

**提案手法 [#eb505249]

そこで,本研究では多数のセンサを利用するようなユビキタスサービス実現において考慮が必要なこの密結合の問題(問題1)とスケーラビリティの問題(問題2)に対応したスケーラブルなセンサアプリケーションを構築可能にするフレームワークを提案します.
そこで本研究では,エンドユーザーでも簡単にセンサ駆動サービスの構築が行えるように,センサ駆動サービス構築支援GUI「Sensor Service Binder」を開発しました.「Sensor Service Binder」を利用したセンサ駆動サービス構築は以下の3つのPhaseにわけて行います.~

-まず''問題1''に対応するために,センサデバイスをサービスレイヤと呼ぶ層で包み込みます.
このサービスレイヤはセンサ固有のアクセス方法や値解釈に関するロジックをWebサービス技術を利用した標準的なAPIに変換するラッパーで,センサとアプリケーション間の疎結合を実現します.
ユビキタスサービスは,このサービスレイヤを通じて,各センサが検知可能なプロパティの情報と,そのプロパティの値を取得し,アプリケーション内でセンサ固有のロジックを記述することなく多様なプラットフォームから簡単に利用することが可能となります.
''Phase1:コンテキスト条件登録''~
Phase1では,センササービスの選択とコンテキスト条件の登録を行います.登録される条件はこれまでと同様にセンササービスが検知可能な環境プロパティの条件式として記述します.このとき,登録された条件式が意図する状態を平易なキーワードを用いて同時に登録します.~

-''問題2''に対しては,サービスを駆動するための条件がセンサの示す値の閾値から構成されるケースが多いことに着目し(例えば温度計の場合,温度が27度以上になったら冷房の電源を入れるなど),この種の条件判定をアプリケーションではなく各センサのサービスレイヤに委譲する仕組みを作成しました.
アプリケーションはサービスレイヤを通して,センサごとに条件を登録(subscribe)します.
各サービスレイヤは登録された条件にもとづいてセンサの値を監視し,条件が成立したとき,または不成立になったときのみ,それぞれ真/偽という返答をアプリケーションに通知(publish)します.
このようなPublish/Subscribe型のメッセージ交換パターンを応用したアーキテクチャにより,センサとアプリケーション間の通信が登録された条件が成立/不成立のときしか行われなくなります.
結果として,問題2で述べた通信コストの問題は大いに改善されます.
また,条件判定の部分がセンサに委譲されるため,アプリケーションの負荷も低減されます.
''Phase2:家電API登録''~
Phase2では,センサがコンテキスト条件を感知したときに呼び出す家電API候補の登録を行います.ここでもPhase1と同様に,登録する家電APIが何を行うものなのかを表すキーワードを入力します.~

&ref(intro3.jpg);
これらPhase1, 2は今までと同様に,センササービスおよび家電APIに関する専門知識を持ったユーザーが行います.~

さらに,提案するサービスレイヤを利用することで,複数のセンサの取る閾値を組み合わせた複雑な条件を検知する''メタセンサ''を容易に実装することが可能とまります.
例えばエアコンの自動運転制御では,「室温が28度以上かつ湿度が50%以上のときに強運転を行う」といった,複数のセンサをまたがった条件を記述することができます.
''Phase3:コンテキスト条件-家電API関連づけ''
Phase1, 2が事前に行っていれば,そこで登録されたコンテキスト条件や家電APIの関連づけを行います.このとき,登録されたコンテキスト条件と家電APIはそれぞれ,平易なキーワードで説明されています.エンドユーザーはそれらのキーワードをみて,自分の構築したいセンサ駆動サービスを簡単に作ることができます.

本研究では,提案するフレームワークを用いてセンサ機器と家電機器とを対象としたセンサ駆動サービスを提供するアプリケーションを開発し,センサの入れ替えやユーザ要求の変化,サービス内容の修正への対応が可能であることと,センサとアプリケーションとの間の通信量がどの程度削減されるかをケーススタディとして行いました.
CENTER:&attachref(SubscribeScreen.jpg);

**発表文献 [#l510378f]
松尾 周平, 井垣 宏, 中村 匡秀, ``エンドユーザーによるセンサー駆動サービスの構築支援環境の提案,'' 電子情報通信学会 OIS研究会, vol.OIS2008, no.82, pp.043-048, March 2009.

-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. [[[PDF]:http://www27.cs.kobe-u.ac.jp/achieve/data/pdf/289.pdf]]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS