IPA


IPAトップ





2005年度未踏ソフトウェア創造事業(未踏ユース)  採択案件評価書


 



1.担当PM


 竹内 郁雄   (東京大学大学院教授)



2.採択者氏名


 代表者

花岡 健介(早稲田大学 大学院 修士課程)

共同開発者

高木 綾子(同上)
田村 真浩(同上)



3.プロジェクト管理組織


 財団法人国際メディア研究財団


  4.委託支払金額


 2,990,606円



5.テーマ名


 センサリッチ携帯端末におけるミドル ウェア開発



6.関連Webサイト


 なし



7.プロジェクト概要

 近年の計算機の小型 化,高性能化は著しく,高機能な個人端末が我々にとって身近なものとなってきている.中にはセンサを搭載した個人端末も登場してきている.今後,様々なセ ンサを搭載した個人端末が普及することが予想される.それらの端末を用いれば高機能アプリケーションを提供できると考えられる.たとえば,センサから歩い ている速度を求め,それに応じて着信音を変更するようなアプリケーションを開発できる.
 しかし,センサを用いた状況認識の開発は,センサデータ解析など,アプリケーションの中身以外の開発に大きな負担がかかる.多種のセンサを利用すること でさらに詳しい状況認識を行なうことが可能となるが,開発の複雑さをさらに増すであろう.
 この問題を回避するため,センサデータを抽象化するレイヤを設け,アプリケーション開発者の負担を軽減するようなシステムが必要である.そこで,本プロ ジェクトにおいて,センサリッチ端末を用い,センサデータを抽象化し,管理する新たなミドルウェアを開発する.また,本ミドルウェアのための評価アプリ ケーションの実装も行なう.

本ミドルウェアの開発項目は以下である.
 
(1) センサデータを抽象化する解析モジュール
・センサデータを解析し,抽象化されたコンテキスト (ユーザの状況や環境情報) を生成する.
・ 生成されたコンテキストをさらに解析し,より抽象化されたコンテキストを生成する.

(2) コンテクストを管理するデータベース
・ 生成されたコンテキストを管理する.

(3) イベント通知システム
・ データベース内のコンテキストが指定した状態になったとき,アプリケーションにそのイベントを通知する.

 本ミドルウェアは,上記の機能により生成されたコンテキストを取得するインタフェースを提供することが最終目標である.本ミドルウェアにより,アプリ ケーションを開発するプログラマの負担が劇的に軽減されることが期待される.

 



8.採択理由


 叩けば叩くほどボロが 出てきたようなプレゼンテーションだったが,不思議なもので,逆に奥深い可能性 (未踏性) を感じさせるものがあった.プロジェクト期間内にみんなが使えるようなものは出てこないかもしれないが,センサがたくさんついた携帯端末で一体どんなソフ トウェアをつくれば面白いことが可能になるのかをとことん追求して,世の中に実験ソフトウェアとして示してくれればよいのではなかろうか.もちろん,機器 非依存のミドルウェアとしてある程度のものが完成すれば御の字である.力はあるはずだ.



9.成果概要


 本プロジェクトでは, センサデータを抽象化し,アプリケーション開発者の負担を軽減するミドルウェアを,センサリッチ携帯端末Muffinを用いて開発した.ミドルウェアは, ユーザの状況を表すコンテキストを取得するインタフェースを,(1) センサデータを抽象化する解析モジュール,(2) コンテキストを管理するデータベース,(3) イベント通知システムの3つのコンポーネントにより提供する.ミドルウェアはMuffinだけでなく,ウェアラブルデバイスCookieにも対応し,アー キテクチャ非依存型の設計になっているのが特徴である.図2.9.1 Muffinと図2.9.2 Cookie これを腕時計やベルトに埋め込む に,MuffinとCookieをそれぞれ示す.
 図2.9.1

 図 2.9.1 Muffin

図2.9.2

 2.9.2 Cookie これを腕時計やベルトに埋め込む

    

   

開発成果の詳細は以下の通りである.

(1) 全体およびAPIの設計
 ミドルウェアは大きく分けて3つのコンポーネントから構成される.(1) センサデータを解析しコンテキストを生成するWorker,(2) コンテキストを貯蓄するDatabase,そして (3) DatabaseとWorkerの通信を担い,アプリケーションにイベント通知を行なうDaemonである.図2.9.3 ミドルウェアのアーキテクチャにミドルウェアのアーキテクチャを示す.
図2.9.3

2.9.3 ミドルウェアのアーキテクチャ

(2) 解析モジュール (Worker)の開発
 各Workerは,センサ値や他のWorkerが生成したコンテキスト情報を用いてコンテキストを解析した結果をDaemonを介しデータベースに記録 する.
 本プロジェクトではユーザの行動コンテキストに着目し,個人端末を通じてコンテキストを取得するWorkerを複数種実装した.これらのWorkerは 図2.9.4 実装したWorkerの階層関係 に示すような階層関係をなす.これは解析Workerを実装する複雑さを軽減するために,1つのWorkerが行なう解析や出力結果をできるだけ単純化 し,コンテキストの抽象化を段階的に行なった結果である.
 段階的に抽象化を行なったWorkerの例は,図2.9.4に示した「ユーザがデバイスを見ているかどうか」を判定するSeeing Workerである.Seeing Workerは,「ユーザがデバイスを持っているかどうか」を解析するHolding Workerと,「デバイスの向き」を解析するTopside Workerの解析結果からコンテキストを判定する.Seeing Worker内で「ユーザがデバイスを持っているかどうか」と「デバイスの向き」という2つの解析を行なうことも可能だが,本プロジェクトでは2つの Workerに機能分割した.こうすることで各Workerの汎用性が高まり,実装の複雑さを軽減できる.
 また,図2.9.4を見てもわかるように同じ情報を得るセンサも複数用いた.こうすることにより各種センサをTPOに応じて適材適所で活用できるからで ある.たとえば,GPSを用いた解析Workerは精度と分解能は高いが,GPS衛星を受信できるときだけ有効である.Muffinのみを用いた解析で は,ユーザがMuffinから手を離した瞬間から解析結果に対する信頼性が低くなる.このときはウェアラブルデバイスCookieからセンサ値を入力され る解析Workerの重要性が増す.しかし,Cookieはユーザの雑多な動きを捉らえてしまうため,扱いが難しい.
 

 

  図2.9.4

2.9.4 実装した Worker の階層関係

(3) データベースの開発
 データベースには組み込み用データベースSQLiteを用いた.SQLiteはC言語で記述されており,サイズが小さいのが特徴である.複数の WorkerからのSQLiteへのアクセス衝突を回避するために,アクセスはすべてDaemon経由とした.

(4) イベント通知システム (Daemon) の開発
 Daemonはデータベースへのアクセス制御を行なうと同時に,コンテキストに変化があった際にアプリケーションに通知する役割を担う.このためのプロ セス間通信には名前付パイプを用いた.

(5) 評価アプリケーションの開発
 IM (インスタントメッセンジャー) における仲間の状態変更通知と,メディアプレイヤの操作にコンテキストを活かす2つのアプリケーションを作成した.後者についてここで紹介する.
 既存のメディアプレイヤであるTotemを改良し,ミドルウェアから得られるコンテキストを利用して,メディアプレイヤ操作の補助を行なえるようにし た.このアプリケーションはSeeingとWalkingというコンテキストを利用する.Seeingを利用することで,ユーザが端末を見ているときには 再生の状態に,そして,ユーザが端末から目を放すと一時停止の状態になる.また,Walkingを利用することで,ユーザが歩いている状態では,聞こえや すくするために音量を大きくする.このアプリケーションの開発では,Workerの階層構造がコード量の節約に役立つことが実証された.
 これに加えて,獲得したコンテキスト変化をウィジェットの操作にマッピングするGUIウィジェットを開発した.これにより,コンテキストの変化であたか も自動的にボタンが押されたような振舞をメディアプレイヤにさせることができる.ここでもミドルウェアにしたことによるメリットが顕著である.つまりメ ディアプレイヤのアプリケーションにとっては,実際にボタンが押されたのか,コンテキスト変化でボタンが押されたように見えたのか区別する必要がないから である.図2.9.5 コンテキストに応じてボタンが「押される」メディアプレイヤ に実装したメディアプレイヤの写真を示す.このメディアプレイヤは水平にすると一時停止するが,見ているような角度に立てると再生になる.また右に傾けれ ば早送り,左に傾ければ巻き戻しになる.
 このほかにも最終報告会では,Muffinと4個のCookie (Workerは全部で9個) をフル装備した女性が椅子に座っていて「読んでいる」,「デバイスを見ている」,「寝ている」,「単に座っている」のコンテキストを判別するビデオデモが 披露された (図2.9.6 この女性は仕事をちゃんとしているか?).
 

  図2.9.5

2.9.5 コンテキストに応じてボタンが「押される」メディアプレイヤ

図2.9.6

2.9.6 この女性は仕事をちゃんとしているか?

 

  

 






 



10. PM評価とコメント


 どこまで行けるのか実 は心配していたプロジェクトであるが,Muffinだけでなく,Cookieという小型のウェアラブルセンサを活用することで,ミドルウェアとしての恰好 がちゃんとついて着地することができた.機能の安定性はともかく,このようなことが可能であることを計画書通りに実証することができたことは素晴らしい.
 すなわち,本プロジェクトの最大の成果は,アーキテクチャに依存しないミドルウェアにより,コンテキストアウェアなアプリケーションの開発効率が向上す ることを実際に示したことである.これを示すために,3人の分業体制はとてもうまく機能していたように見える.階層関係にない(?)3人のワーカーの協調 がうまくいったということだ.Workerの開発指針を示すことで,新たなセンサ端末にも容易に対応できるようにしたことも良い成果である.
 花岡君たちも認めているように,基本動作とメリットは確認できたが,これを製品として世の中に出すための道のりはそう短くはない.センサ技術はまだまだ 開発途上であり,安定して良いデータが得られるかどうかというと現状は心許ない.またセンサも現状では相当に高価なものらしい.とうとうMuffinも Cookieも価格は不明であった.というか,MuffinもCookieも市販品ではない.
 しかし,ソフトウェアはハードウェアに先行してどんどんリファインすることが可能である.階層化されたWorkerのようなソフトウェアアーキテクチャ を,機能面でも性能面でもどんどん上げていくことが必要である.実際,このようなソフトウェアが載る機械は小型携帯機器であろう.組込みソフト的な,しか し,抽象化の本質を外さない正しいソフトウェアアーキテクチャができあがってくることを期待したい.
 花岡君の報告書にも指摘があったが,Workerをたくさんインストールしておいても,それらを実際に起動させるかどうかはきめ細かく制御したほうがよ い.無駄にWorkerが走っていたら性能を落すだけだからである.でも,こんなのは機能改善の序の口である.まだまだ面白い問題が一杯転がっていると思 うので,さらに挑戦を続けてほしい.3人とも修士1年なので,もう1年はたっぷりと楽しめるはず.

 PMが期待したレベルの実証を行なうことができたという意味でなんらかの称号を差し上げたいが,3人の比較的平等なチームワークによる合作なので全員 スーパークリエータというわけにもいかない.もちろん,花岡君1人をスーパークリエータとするのも変だ.そこで,3人とも準スーパークリエータということ にしたい.



  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004