実空間プログラミングフレームワークANTHの設計と実装

社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERS
信学技報
TECHNICAL REPORT OF IEICE.
実空間プログラミングフレームワーク ANTH の設計と実装
鹿島
拓也†
猿渡 俊介††
森川 博之††
青山
友紀†
† 東京大学大学院情報理工学系研究科
†† 東京大学大学院新領域創成科学研究科
E-mail: {kashima,saru,mori,aoyama}@mlab.t.u-tokyo.ac.jp
あらまし
本稿では,ユビキタスコンピューティング環境を構築するオブジェクトとしてユーザの身の回りの単機能的
なオブジェクトに注目し,これらがネットワークを介して相互接続することにより構築される空間としてのコンピュー
タを想定する.そして,コンピューティングにおける重要な要素である「プログラマブルである」という概念をこの
空間コンピュータに適用することにより,実空間上でのオブジェクトの機能同士の連携によるサービス構築をユーザ
が意のままに実現できる環境の構築を目指す.そのための基盤技術となるイベント駆動型アプリケーションフレーム
ワークとして,ユーザの身の回りにあるオブジェクトの機能同士の連携によるサービス構築を実現する実空間プログ
ラミングフレームワーク「ANTH(ANtennary THings)」を設計し,その詳細とプロトタイプ実装について述べる.
キーワード
ユビキタスコンピューティング,イベント駆動,アプリケーションフレームワーク
Design and Implementation of a Real-space Programming Framework ANTH
Takuya KASHIMA† , Shunsuke SARUWATARI†† ,
Hiroyuki MORIKAWA†† , and Tomonori AOYAMA†
† Graduate School of Information Science and Technologies, The University of Tokyo
†† Graduate School of Frontier Sciences, The University of Tokyo
E-mail: {kashima,saru,mori,aoyama}@mlab.t.u-tokyo.ac.jp
Abstract This paper describes design and implementation of a real-space programming framework named
ANTH(ANtennary THings). In the ubiquitous computing environment, all objects in our life space have a computing function and are connected to the network. ANTH enables a user to build various services using the functions
of the objects. ANTH is the application framework specified from the hardware composition to the user interface.
Key words Ubiquitous Computing, Event Driven, Application Framework
1. は じ め に
Mark Weiser の提唱したユビキタスコンピューティングとい
う概念では,通信機能を具備したコンピュータがわれわれの
生活の中に埋め込まれ,コンピュータ同士が連携することで
人々がコンピュータを意識することなくコンピュータの恩恵を
受けることができる世界が描かれている.またその中で Mark
Weiser は「書くこと」を比喩として「書くこと」と同じように
コンピュータを利用できる技術の確立を目指している [1].
この概念に鑑みたとき,コンピュータのネットワーク化とい
う観点では,今やパーソナルコンピュータのみならず携帯電話
から家電に至るまでが相互接続性を持つようになってきてお
り,Jini [2] や UPnP [3] といったサービス連携技術上でのデバ
イス同士の連携によるサービスの実現はそう遠くはないと言え
る.しかしながら一方で,これらの連携技術はパーソナルコン
ピューティング技術の延長線上に過ぎず,われわれの生活空間
内に環境としてコンピュータが埋め込まれているとは言い難く,
ユビキタスコンピューティングの概念とはまだ程遠いと言える.
コンピュータはわれわれの意識するところにあり,生活の中に
埋め込まれているというよりむしろわれわれがコンピュータの
中で生活しているという感は否めない.
コンピュータが意識下に存在しない環境を実現するには,生
活空間を大きく変化させることなくコンピュータが空間中に存
在しなければならない.そのためには,壁やドアや椅子,ライ
トや時計やペンといった,日常的に身の回りに多数存在するオ
ブジェクトに注目することが重要であると筆者らは考える.昨
今の組み込み技術の著しい進歩から考えるに,これらのオブ
ジェクトがコンピューティング機能を持ちネットワーク上で相
互に接続される環境を想像することは難しくない.このような
環境下では,個々の小さなコンピュータの持つ機能は制限され
た単純なものであれ,環境中に存在する多数の機能が相互に連
携することにより,人々が意識することのない次元でのサービ
スが実現されると考えられる.そしてこの空間上に存在する単
的な機能の集まりを,環境中でサービスを提供するひとつの大
きな空間としてのコンピュータとして捉えることができる.筆
者らはこの空間としてのコンピュータという概念こそが,Mark
Weiser の言うところの意識しないコンピュータであると考える.
—1—
このような空間としてのコンピュータを構築するためには,
その構成要素である個々のコンピュータの持つ機能を相互に連
携させる基盤技術が必要となる.多数のコンピュータの機能を
連携させる技術としては,主に情報家電などを対象とする Jini
や UPnP といった技術が存在するが,空間コンピュータの構成
要素は多数の単的な機能群であり,これらの計算資源の豊富な
デバイスを対象としたサービス連携技術は適さない.空間コン
ピュータ構築のための連携技術としてはより単純な機構が望ま
しいと言える.
また,このような空間コンピュータが構築された環境では,
「書くこと」と同じくらい容易にこの空間コンピュータを利用
できなくてはならない.すなわち,現在われわれがパーソナル
コンピュータ上のビジュアルツールにおいてドラッグアンドド
ロップといった直感的操作を行っているように,この空間コン
ピュータ上でもユーザにとってわかりやすい直感的な操作性を
実現しなければならない.そしてその操作による実空間上で
のサービス構築は,パーソナルコンピュータ上でのアプリケー
ション構築に相当し,空間コンピュータにおける「プログラミ
ング」操作を行っていると捉えるとができる.これは,空間コ
ンピュータがコンピュータの本来持つ「プログラマブル」であ
るという大きな特性を持ち,さまざまなサービスを生み出すこ
とが可能であることを示していると言える.
このような観点から,筆者らはライトや時計,ペンなどのわ
れわれの身の回りに日常的に存在するオブジェクトを対象と
し,これらのオブジェクト間の機能同士のつながりをプログ
ラマブルにすることでユーザ自身の手でさまざまなサービス
を構築することを可能にする実空間プログラミングフレーム
ワーク「ANTH(ANtennary THings)」の実現を目指している.
ANTH は,オブジェクトが環境中に置かれた瞬間に近隣にあ
るオブジェクトと自律的に無線アドホックネットワークを構築
することでサービス提供の一部となる「Place-and-Play」を実
現する.また,オブジェクトの持つ機能を簡潔に抽象化するこ
とで,イベント駆動型のサービスを構築するためのアプリケー
ションフレームワークを実現し,その基盤技術を具備した 1 つ
のハードウェアモジュールとして ANTH チップを提供する.
本稿では, 2. で ANTH で想定しているアプリケーションシ
ナリオを示し,そのシナリオから ANTH に求められる技術要
件を抽出する. 2. で抽出した技術要件を基に 3. で ANTH の
設計について述べる. 4. では,U3 を用いて行った ANTH の
部分的な実装について述べ,最後に 5. でまとめとする.
2. 設
計
筆者らは ANTH を設計するにあたり,その技術要件を明確
にするために次のようなアプリケーションシナリオを作成した.
2. 1 アプリケーションシナリオ
Bob は出張で東京に来ており,品川のホテルに予約をとって
いる.そのホテルの部屋にあるオブジェクトのほとんど全てに
ANTH チップが埋め込まれている.Bob は部屋に到着すると
携帯電話のメール受信通知機能と間接照明の点滅アクションを
結び付けることにした.携帯電話を照明にかざすと照明の持つ
アクションのリストが出てくる.いくつかクリックして試して
みたがどうも好みのものがない.携帯電話をインターネットに
つないで普段家で使っているアクションをダウンロードして照
明の ANTH チップへロードし,携帯電話のメール受信通知機
能と結び付けた.
Bob は夕食をまだとっていなかったので夕食にルームサービ
スを頼んだ.料理が来るまで Bob はヘッドホンで音楽を聴き
ながら読書をすることにした.ルームサービスが来たことに気
付かないとまずいので Bob はドアとヘッドホンのスイッチを
結び付けることにした.これは照明のときのような複雑な操作
はいらず,デスクトップ上でファイルのドラッグアンドドロッ
プを行うように,ドアに携帯電話を近づけてボタンをクリック
し,クリックしたままヘッドホンの側に携帯を持っていってボ
タンを離すだけで良い.Bob は頭にヘッドホンをつけて読書を
始めた.
読書に熱中しているとヘッドホンの音楽が突然止まり,ドア
をノックする音が聞こえた.ルームサービスが来たのだ.Bob
はヘッドホンをはずして夕食を受け取るためにドアを開けた.
Bob は夕食を取りながらテレビのニュースを見始めた.一通
りのニュースが終わった.Bob がふと部屋の角にある間接照明
に目を向けるとわずかに照明が明滅している.どうやらメール
が届いているようだ.Bob は携帯のバイブレーション機能や着
信メロディのような明示的なメール通知よりもわずかな照明の
明滅といった暗示的なメール通知を好んでいる.
Bob は夕食を食べ終わり携帯電話のメールの処理をしている
と眠気を感じてきたのでそろそろ寝ることにした.Bob は朝に
弱いので,携帯のアラームを部屋のライト,テレビの電源,部
屋据え置きの目覚まし時計のベル,そして風呂の蛇口のスイッ
)これで朝寝過ごす
チに結び付けた.
(Bob は朝風呂派なのだ.
ことはないだろう.Bob はテレビのボリュームを上げて電源を
落とし,ライトを消して眠りについた.
2. 2 技 術 要 件
このシナリオでまず特筆すべきことは,Bob は「品川のホ
テル」という自分が普段生活していない場所で自分の所望する
サービスを自分の手で構築していることである.ユーザが自分
のために設計された空間で生活するのではなく,ユーザがユー
ザ自身の手で身の回りにあるオブジェクトを使って自分の空間
を構築する.これが実空間プログラミングの最終的な目的で
ある.
2. 1 のシナリオ中の多くのサービスが機能と機能の連携によっ
て実現されている.例えば,携帯電話のメール受信機能と間接
照明の照明機能,ヘッドホンの電源機能とドアに組み込まれた
センサの振動検出機能,携帯のアラーム機能とテレビの電源機
能などが連携することによりサービスを実現している.このよ
うにユーザは機能と機能の関係を制御することで多くのサービ
スを生み出すことができる.このことを実現するため,連携さ
せるオブジェクトの機能をしぼりこむことで簡潔に抽象化し,
機能間の関係を単純に記述可能にする機構がアーキテクチャと
して要求される.
間接照明のシナリオでは,間接照明に Bob の欲しい機能が無
かったため,Bob が自分でインターネットから新しい機能をダ
ウンロードして間接照明に機能を追加している.前述した「機
能と機能を連携させる」という操作だけでなくこの「新しい機
能を追加する」操作が加わることで実現可能なサービスの幅が
大きく広がる.このような機能拡張の仕組みはシステムとして
サポートする必要がある.
またこのシナリオでは,間接照明やドアといった部屋の設備
の中に携帯電話やヘッドホンという Bob の所有物を新たに持
ち込んだ上で,それらの間での機能連携を実現している.前述
した「機能の追加」のみならず「オブジェクトの追加」にも対
応し,機能と機能の連携を実現しなければならない.そのため
には,オブジェクトが追加削除されてもネットワーク接続性を
保ち,機能から機能へと情報を伝達することができるインフラ
技術がなくてはならない.この点において,ANTH ではネット
ワークトポロジの変化が全体のシステムに影響しないような無
線アドホックネットワーク技術が求められる.
そして 2. 1 のシナリオにはパーソナルコンピュータは登場し
ない.Bob は自分の所有する携帯電話を用いた簡単な操作だけ
で次々とサービスを構築している.身の回りにあるオブジェク
トを利用することを考えると,わざわざパーソナルコンピュー
タを介してオブジェクトを指定した上で操作するのではなく,
このシナリオのように実空間上で直接的に操作した方が直感
的で簡単であることは明らかである.実空間プログラミング
を実現するためには,ユーザにとって使いやすく直感に沿った
ヒューマンインタフェースが必須である.
このシナリオにも見られるように,ANTH はヘッドホンや
目覚まし時計,ドアに組み込まれたセンサといったわれわれの
—2—
Proximity-based
User Interface
下,これら各コンポーネントの詳細について述べる.
身の回りに日常的に存在するオブジェクトを対象とする.この
ようなオブジェクトを対象とした場合,これらのオブジェクト
に組み込まれるコンピュータはサイズ,消費電力,価格の点で
次のような制約を受ける.日常的に存在するオブジェクトに組
Bind Control Model
み込むことを想定した場合,これらのオブジェクトが多様な形
状を持つことからサイズはできるだけ小型であることが望まし
Disposable Dynamic
い.また,消費電力は目覚まし時計のようなバッテリ駆動のオ
Addressing
Device
ブジェクトに組み込まれるコンピュータでは重要な問題である.
Network
Driver
少なくともバッテリを用いて数年単位で動作する低消費電力な
アーキテクチャが求められる.さらに,日常的に存在するオブ
Hardware
ジェクトは価格が数百円〜数千円で販売されているため,この
価格帯を大きく越えるようなコストが発生するアーキテクチャ
図 1 ANTH アーキテクチャの全体像
は望ましくない.このような観点から,ANTH では,小型,低
消費電力,低価格を実現するためにできるだけ省資源で構築可
能なアーキテクチャを目指す.
デバイス同士を連携させることを目的とした技術として,Jini
push
release
drag
や UPnP,Bluetooth といったものが存在する.しかしながら,
これらの技術は基本的には電源環境がある程度豊富である情報
Proximity-based
家電を対象としており,組み込まれるコンピュータに対する機
User Interface
action table
event table
能要件が多く,ANTH で対象としている日常的に存在するオブ
Bind
action1 = UUID7
event7 = UUID7
ジェクトで利用するのには適さない.その理由として,これら
action2 = NONE
Disposable
Disposable
の技術が多くの多様な機能を持つ情報家電の全ての技術を利用
action3 = UUID1
Addressing
Addressing
するために個々のサービスに「プロファイル」という概念を持
Network
add new
Network
ち込んでいることが挙げられる.プロファイルとは,あるサー
action module
ビスを構築するときにオブジェクトが利用する設定やプロトコ
Dynamic
action4
ルであり,同じ Jini や UPnP に対応したオブジェクトであっ
Device
Driver
ても同じプロファイルに対応していなければ連携することがで
event driver
event table
きない.結果として,全てのプロファイルに対応するには多く
event4
event1 = UUID1
event2 = UUID2
の計算資源が必要となり,ANTH の省資源の要求を満たすこと
replace new
event5
event3 = UUID3
event driver
event6
ができない.
それに対して ANTH ではこの要件を満たすため,現在の技
図 2 ANTH 動作の全体像
術水準で充分省資源といえる 8bit マイクロコントローラ技術及
び数 kbps 程度の微弱無線技術で提供することができるアーキ
3. 1 Bind Control Model
テクチャの設計を目指す.この設計方針により,組み込み技術
Bind Control Model は ANTH のコアとなるアーキテクチャ
がさらに発展した未来において,より安価で小型なデバイス上
であり,オブジェクトの機能と機能を制御するための仕組みで
においても同じアーキテクチャを動作させることができ,あら
ゆるオブジェクトに埋め込むことが容易になると考えられる. ある.Bind Control Model を基盤として Disposable Addressing Network,Dynamic Device Driver,Proximity-based User
ANTH はこのような省資源の要求を満たし,ハードウェアアー
Interface が構築される.
キテクチャからソフトウェアアーキテクチャ,さらにヒューマ
Bind Control Model の概略を図 3 に示す.ANTH は日用品
ンインタフェースまでを包括した基盤技術を提供する.
の持つ単的な機能群を対象としており,アーキテクチャの単純
最後に ANTH チップにおけるハードウェア要件も考えな
ければならない.現在,U3 [4] [5],Smart-Its [6],MICA [7], 化のため,Bind Control Model 上ではオブジェクトの全ての
機能を event と action とこれらの関連付けを行う controller に
Ubiquitous-Chip [8] など多くの小型デバイスがさまざまな研
抽象化して表現する.その抽象化において,event が「ある」
究機関によって開発されているが,ANTH はあらゆるハード
「ない」,action を「する」「しない」の 2 値に簡略化すること
ウェア上で動作可能であることが望ましい.そのため必要最小
で機能間の連携の実現を容易にしている.各機能の例としては,
限のハードウェア要件の定義のみを行うべきである.前述のオ
event としての「温度センサの値がある値を超えるか否か」や
ブジェクトに対する直接的な操作を実現するため,ANTH チッ
「目覚まし時計のタイマが時間になったかどうか」といったオブ
プでは近距離を検出するための機構が必要であり,電波強度に
ジェクトから発される機能,action としての「ライト照明が点
よって至近距離であるか至近距離でないかを判別できる無線モ
灯するか否か」や「目覚まし時計のベルが鳴るか否か」といっ
ジュールを搭載していることが望まれる.すなわち,ASK の
たオブジェクトが行う機能,controller としての「携帯電話の
変調方式のものは適さず,FSK や QPSK などの電波強度の取
れる無線モジュールが望まれる.さらに,多くの種類の入出力
デバイスを接続することを想定しているため豊富な I/O も必要
controller
となる.
UUID
3. ANTH アーキテクチャ
ANTH アーキテクチャの全体像を図 1 に,また,ANTH
における動作の全体像を図 2 に示す.ANTH は Bind Control
Model [9],Disposable Addressing Network,Dynamic Device
Driver,Proximity-based User Interface の 4 つの部分から構
成される.これら 4 つのコンポーネントを 1 つのハードウェア
モジュール ANTH チップとして提供し,ANTH チップを内蔵
したオブジェクト群により ANTH サービスが構築される.以
set UUID
get UUID
get UUID
Logical Link
event
UUID
event
action
Event Propagation
action
UUID
図 3 Bind Control Model
—3—
操作」などが相当する.これら event, action, controller の機
能はひとつのオブジェクトが同時に複数持つこともありうる.
例えば携帯電話が controller の機能とメール着信の event 機能,
そしてバイブレーションするという action 機能を全て担うこと
が可能である.
ANTH ではこの抽象化を基にサービスを event と action
の関連付けにより表す.例えば「目覚まし時計のタイマ機能
が発火したら(event)コーヒーメーカーの電源が ON になる
(action)」といった具合である.一般的にこのようなサービス
記述を行うには,例えば Jini や STONE [10] [11] のように機能
をメタデータとして記述する必要性が生じる.またシステムと
してその機能の存在の管理や機能の指定手段の提供の必要も生
じてくる.しかしながらこのようなサービス記述はシステムを
複雑にしてしまい,ANTH アーキテクチャの狙いとする簡易性
にそぐわない.そこで ANTH では event と action の関連付け
に UUID(Universary Unique IDentifier)[12] [13] を用いるこ
とでこの煩雑さを回避する.
ANTH におけるサービス記述では,ある action がある event
と同じ UUID を持つ場合,その event と action は関連付けら
れサービスが構成されていると定義する.event は各々ランダム
に生成した個別の UUID を初期値として持ち,UUID が確率的
に重ならないことにより各 event を区別する.action ではこの
event の UUID のみを保持すれば event と action の関連付け
の記述は完了する.その際 event の内容のメタデータを action
で保持する必要はない.また controller は event や action の持
つ UUID を操作したり,event に新しい UUID を生成すること
ができ,event と action の関連付けの作成や解除を実現する.
event と action の関連付けによるサービスの実行は,実際に
は Disposable Addressing Network 上を流れるパケットにより
実現される.すなわち,event が発生すると event の保持する
UUID を含んだパケットがネットワークに送出され,これが同
じ UUID を持つ action へと到達した際に event による action
の発火がなされサービスが実行される.Disposable Addressing
Network については後述する.
このような Bind Control Model の仕組みにより,非常に多
くのサービスが実現できる.Bind Control Model では関連付
ける event と action に制限が無いため,ネットワーク上に存
在する event の数を Ne ,action の数を Na とすると実現でき
るサービスの数 Ns は,Ns = Ne × Na であらわすことがで
きる.さらに Ne および Na は Dynamic Device Driver の仕組
みによってユーザの好みに応じてユーザの想像力の許す限り追
加することができる.すなわち,ANTH によって実現可能な
サービスは新しい event や action をデザインすると累積的に
増加するため実現可能なサービスの数に上限が無い.Dynamic
Device Driver については後述する.
1.
get UUID
0x237AB1
get
event:0x237AB1
action:0x237AB1
action:0xFFFFFF
drag
2.
0x237AB1
event:0x237AB1
action:0x237AB1
action:0xFFFFFF
3.
set UUID
event:0x237AB1
action:0x237AB1
図4
set
action:0x237AB1
Bind Control Model の例
図 4 に Bind Control Model の動作例を示す.例では目覚ま
し時計,ライト,携帯電話の 3 つのオブジェクトが存在する.
目覚まし時計は action としてベルの機能,event としてタイ
マ機能を具備しており,ライトは action としてライトの電源
ON の機能,携帯電話は controller の機能を具備している.初
期状態では目覚まし時計の event と action は同じ UUID を具
備している.すなわち,目覚まし時計のタイマの event が発生
すると目覚まし時計のベルが鳴る.図 4 では controller であ
る携帯電話を用いて目覚まし時計からライトへとドラッグア
ンドドロップの操作を行うことで目覚まし時計の event が具備
する UUID をライトの action へとコピーしている.この時の
controller を用いた UUID の取得や設定には Proximity-based
User Interface が使用される.Proximity-based User Interface
に関して 3. 4 で詳細に述べる.このようなメカニズムによって
目覚まし時計のタイマ機能とライトの電源機能が関連付けられ,
ユーザは目覚まし時計のタイマ時刻を操作することでライトの
点灯時間を設定することができる.
以上のように,Bind Control Model は機能の抽象化と UUID
による機能の関連付けという非常に単純な仕組みによって実現
され,計算資源が制限されたデバイスでも容易に実装が可能と
なっている.
3. 2 Dynamic Device Driver
Dynamic Device Driver はオブジェクトにおける event や
action を動的に変更することを実現する仕組みである.Bind
Control Model がオブジェクトとオブジェクトの関係をプロ
グラマブルにするのに対して,Dynamic Device Driver はオ
ブジェクトの機能をプログラマブルにする.Dynamic Device
Driver は event と action をどのように作成するかのフレーム
ワークを規定しており,ユーザがオブジェクトに対して新しい
event や action を追加できるようになる.
Action Manager
Replace
Event Driver
or
Action Module
Action Driver
Index
Caption
Action
Module
Action
0 Turn on the light
func1()
1 Ring the bell
func2()
:
:
Event Manager
Event Driver
Event Init
Event Program
•Timer is on/off.
•A/D is on/off.
•Interrupt1 is on/off.
:
Index
Caption
0 every 3 sec
Event conditions
are described.
1 the switch is pushed
2 The timer expires
:
図5
Dynamic Device Driver
図 5 に Dynamic Device Driver の全体像を示す.Dynamic
Device Driver は event の管理を行う Event Manager,実際の
event の条件が記述されている Event Driver,action の管理を
行う Action Manager,実際の action の動作が記述されている
Action Module から構成される.
Event Driver は複数の event を発することができるプログラ
ムである.event がどのデバイスを使用するかに応じ Event Init
内にてデバイスの ON/OFF を制御し,Event Program におい
て実際の event の条件の判断を行う.event が発生するとその
event の Index が Event Manager により検出され,その情報が
Bind Control Model へと伝達される.また,Proximity-based
User Interface により Event Driver の書き換えが可能になって
おり,Event Driver を書き換えることで新しい event の追加や
不要な event の削除が実現できる.
Action Module には個々の action が独立したプログラムと
して記述されている.そのため必要に応じて任意の action を
追加削除することが可能である.Bind Control Model により
—4—
action が発火する際は,実行すべき action の Index が Bind
Control Model より Action Manager に伝達され,その Index
に対応する Action Module 内のプログラムが実行される.
Dynamic Device Driver では以上のようなフレームワークを
定め,Bind Control Model や Proximity-based User Interface
との API を定義するのみであり,実際の実装については規定
しない.プログラムモジュールの動的書き換えの実装はマイコ
ンチップのアーキテクチャに依存する部分となる.
3. 3 Disposable Addressing Network
Disposable Addressing Network はオブジェクト同士が協調
して構築する無線アドホックネットワークの技術である.この
機構により各オブジェクトの自律性が保持され,オブジェクトを
その場に置いたらすぐに使えるという「Place-and-Play」が実
現される.Disposable Addressing Network レイヤでは event
から action へのパケットの転送を保障し,上位の Bind Control
Model レイヤにパケットのやり取りを行う API を提供する.
Disposable Addressing Network は基本的にアドホックネット
ワークの仕組みであるものの,ANTH における要求要件を考
慮した上で設計する必要があり,現在 MANET で盛んに議論
されている IP ベースのアドホックネットワーク [14] とは本質
的に異なるものとなる.
Disposable Addressing Network は機能を具備した複数のオ
ブジェクトにより構成されるが,実際にネットワーク上を転送
されるパケットの送信元と送信先は,event と action といった
オブジェクトの持つ機能自身である.そのため,既存のアド
ホックネットワークのようにオブジェクト個々の持つアドレス
を用いるのではなく,機能単位で保持している UUID をアドレ
スとして用いる方が適切となる.このような UUID ベースの
アドレス体系を用いることにより,ユーザによるオブジェクト
の追加削除の際,従来のアドホックネットワークにおけるアド
レス割り当て問題を意識することなく,
「Place-and-Play」の技
術を容易に実現することができる.また,Bind Control Model
における機能同士の関連付けや,Dynamic Device Driver にお
ける機能自身の変更により,UUID すなわちアドレスが変更さ
れることが容認されるため,Disposable Addressing Network
におけるアドレスは永続的なものではなくなる.以上のよう
な理由により,ANTH におけるネットワークは,Disposable
Addressing Network すなわち使い捨て可能なアドレス体系の
ネットワークとなる.
また,Disposable Addressing Network では,Bind Control
Model のサービス記述における関連付けの特徴により,そのパ
ケット転送は event から action への片方向通信が基本となる.
ある event が発生すると,その情報は複数の action へと伝達さ
れていくため,1 対多の非対称通信がパケット転送の中心とな
る.この点を考慮した上で効率的なルーティングプロトコルを
構築することが重要となる.また,ANTH ではユーザの身の
回りのオブジェクトが対象であり,現在無線センサネットワー
クで考えられているような [15] [16] ノード数が数千〜数万のス
ケーラビリティではなく,数十〜数百程度のネットワーク規模
を想定する.
Disposable Addressing Network は,以上のような特徴を実
現するレイヤであり,Bind Control Model との間の API に基
づいた上で適切なプロトコルを実装可能な構成となっている.
3. 4 Proximity-based User Interface
ANTH では実空間上でのユーザによるプログラミングすなわ
ちサービス構築の実現を目指している.そのため,プログラミ
ングを行う際には,実空間上でユーザが明示的に対象となるオ
ブジェクトを指し示すことのできる機構が望まれる.Proxmitybased User Interface は,この理念に基づき,オブジェクトが
ユーザの至近距離に存在することを判断した上で,オブジェク
トに対して Bind Control Model や Dynamic Device Driver に
よって定義された操作を行うためのユーザインタフェースを定
義している.
Proximity-based User Interface を 用 い て Bind Control
Model により実現される操作は図 4 に示したような操作で
ある.現在パーソナルコンピュータ上で実現されているドラッ
グアンドドロップの操作を実空間上で行うことでオブジェクト
の機能と機能を結びつける操作が可能となる.また,Dynamic
Device Driver によって実現される操作はオブジェクトの機能
のリストの取得や動的な機能の書き換えである.ユーザはイ
ンターネットから携帯電話などの操作端末にオブジェクトの
Event Driver や Action Module を取得し,近接しているオブ
ジェクトに対してロードすることが可能となる.
このように至近距離ベースのユーザインタフェースを用いる
ことで次の 2 つのことが実現される.1 つ目は直感的な操作で
ある.ユーザが利用したいオブジェクトに操作端末を近づける
という行為はユーザに対して直感的で分かりやすい操作を与え
ることができる.2 つ目はセキュリティの実現である.至近距
離にあるオブジェクトに対してしか操作を与えることができな
いという制限が逆に遠隔からの操作を禁止し,その場にいる人
しか操作できないというセキュリティを実現することができる.
Proximity-based User Interface で可能な操作には規定があ
るものの操作端末をどのように作るかといった規定はない.例え
ば,携帯電話のようにインターネットへの接続を持ち,QVGA
相当のリッチな画面を持つ端末を操作端末とした場合,event
と action の細かい関連付けの操作や,event や action の動的
な追加が可能となる.この場合,ドラッグアンドドロップのよ
うな簡潔な操作感は多少失われるものの,オブジェクトの持つ
全ての機能にアクセスし多種多様なサービス構築を実現できる
という利点を持つ.
また,ペン型操作端末も考えられる.図 6 にペン型操作端末
の操作例を示す.ペンはノックボタンをひとつ具備している以
外はユーザインタフェースを持っていない.ペンに ANTH チッ
プを埋め込み,関連付けたい event を具備するオブジェクトの
前でノックボタンを押し,ノックボタンを押したまま関連付け
たい action を具備したオブジェクトの近くへとペンを持って
行き,ノックボタンをリリースする.このような簡単な仕組み
のペン型操作端末と簡単な操作で機能と機能の関連付けが実現
される.この場合,指定できる機能は代表的な event と action
に限るといったようにオブジェクトの機能へのアクセスは制限
されるものの,簡単な機能の関連付けの操作には最も直感的で
適した操作になると言える.
Proximity-based User Interface において要求される技術的
要件は controller とオブジェクトが至近距離であることを検出
する機構である.この機構は実装依存であり,Proximity-based
User Interface としては至近距離か否かの判定結果を返す API
を用意するのみである.具体的には電波強度や赤外線を用いる
方法などが考えられるが,用いる手法は実際のハードウェア的
な要件に依存する部分となる.
1.
push
2.
drag
3.
release
図6
Proximity-based User Interface の例
—5—
4. 実
装
前節までに述べたアーキテクチャの動作検証のためプロトタ
イプ実装を行った.ANTH 実装概要を図 7 に示す.今回のプ
ロトタイプ実装では ANTH チップの代替として U3 を用いた.
U3 は筆者らの所属する研究室で開発した無線センサネットワー
ク開発用モジュールであり,デバイスボード,メインボード,通
信ボード,バッテリボードと,機能モジュール毎にハードウェ
アが物理的に分離し入れ替え可能な構成となっている.今回は
デバイスボード部にセンサ,ボタン,目覚まし時計,ライトな
どのデバイスを接続することにより ANTH オブジェクトを構
成した.各オブジェクトの持つ機能としては,センサの event,
ボタンの event,時刻が来たという event とベルを鳴らすとい
う action,ライトを光らせるという action が存在する.また
Proximity-based User Interface の操作を行う controller デバ
イスとしては PDA(HP iPAQ Pocket PC h5550) を使用した.
こ れ ら の ハ ー ド ウェア を 基 に ,Bind Control Model,
Dynamic Device Driver,Disposable Addressing Network,
Proximity-based User Interface の 4 つの ANTH アーキテク
チャを実現するソフトウェアを実装し,動作確認を行った.
Proximity-based User Interface における近距離検出には,U3
上の無線チップでは電波強度が取得できないため,U3 がメイ
ンボードに具備している IrDA により代替した.IrDA では,
IrDA デバイスの近距離に接近している際にのみ通信を行える
ことから,近距離検出とその上でのデータ通信を実現してい
る.Disposable Addressing Network においては,ノード数も
少なく動作検証という目的であることから,ルーティングプ
ロトコルとしてフラッディングを実装した.これらの実装をも
とに,controller である PDA を用いて,Bind Control Model
における各ノードの event と action の関連付けの作成と解
除,Dynamic Device Driver における新しい Event Driver と
Action Module の追加と削除を実際に行い,さまざまなサービ
スの構築を行った.例えば,
「目覚ましの時刻が来るとライトが
点滅する」,
「ボタンを押すとベルが 1 秒間鳴る」などといった
サービスである.これらのサービス構築を行った後に実際に動
作試験を行ったが,パケット転送における大きな遅延もなく動
作させることができた.これにより,ユーザの controller によ
る実空間上での操作で構築したサービスが実現されていること
を確認することができた.
Light
Alarm Clock
Internet
Internet
Action Module
Event
Event Driver
Download
Action
Event
Event
Action
Replace
Action Module
Replace
Event Driver
Sensor
Button
図7
Controller
ANTH 実装概要
5. お わ り に
本稿では実空間プログラミングフレームワーク「ANTH」の
設計と実装について述べた.ANTH は Bind Control Model,
Dynamic Device Driver,Disposable Addressing Network,
Proximity-based User Interface の 4 つの機構から構成され,
オブジェクトの持つ機能を event,action,controller という簡
潔な概念に抽象化することで,ユーザによるさまざまなサービ
スの構築を可能とするイベント駆動型アプリケーションフレー
ムワークを提供する.
現在 ANTH チップとして ANTH 専用のハードウェアの開
発を行っており,今後は電波強度を利用した Proximity-based
User Interface の開発,Bind Control Model における event と
action の抽象化の可能性についてさらに深く検討していきたい
と考えている.
文
献
[1] M. Weiser: “The Computer for the Twenty-First Century”,
Scientific American, pp. 94–104 (1991).
[2] Sun Microsystems, Inc.: “Jini Architecture Specification”
(2001).
[3] UPnP Forum: “UPnP Device Architecture 1.0” (2003).
[4] 鹿島拓也, 猿渡俊介, 川原圭博, 南正輝, 森川博之, 青山友紀:“セ
ンサネットワーク開発用モジュール U3 におけるソフトウェア
デザイン及びプロトタイプアプリケーションの実装”, 「マルチ
メディア,分散,協調とモバイル (DICOMO2003) シンポジウ
ム」 (2003).
[5] S. Saruwatari, T. Kashima, Y. Kawahara, M. Minami,
H. Morikawa and T. Aoyama: “PAVENET: A Hardware
and Software Framework for Wireless Sensor Networks”,
Proceedings of the First International Workshop on Networked Sensing Systems (INSS’04) (2004).
[6] L. E. Homquist, H.-W. Gellersen, G. Kortuem, S. Antifakos,
F. Michahelles, B. Schiele, M. Beigl and R. Maze: “Building
Intelligent Environments with Smart-Its”, IEEE Computer
Graphics and Applications, Vol. 24, pp. 56–64 (2004).
[7] J. Hill and D. Culler: “MICA: A Wireless Platform For
Deeply Embedded Networks”, IEEE Micro, Vol. 22, pp. 12–
24 (2002).
[8] T. Terada, M. Tsukamoto, K. Hayakawa, T. Yoshihisa,
Y. Kishino, A. Kashitani and S. Nishio: “Ubiquitous Chip:
a Rule-based I/O Control Device for Ubiquitous Computing”, Proceedings of 2nd International Conference on Pervasive Computing (Pervasive 2004), pp. 238–253 (2004).
[9] T. Kashima, S. Saruwatari, H. Morikawa and T. Aoyama:
“A Bind Control Model For Real-space Programming in
Ubiquitous Computing Environment”, The 6th International Conference on Ubiquitous Computing (UbiComp’04)
poster, Nottingham, England (2004).
[10] 南正輝, 森川博之, 青山友紀:“ユビキタス環境におけるサービス
合成支援のためのインタフェース指向ネームサービス”, 電子情
報通信学会論文誌, J86-B, 5, pp. 777–789 (2003).
[11] 南正輝, 杉田馨, 森川博之, 青山友紀:“ユビキタス環境に向けた
インターネットアプリケーションプラットフォーム”, 電子情報
通信学会論文誌, J85-B, 12, pp. 2313–2330 (2002).
[12] P. Leach, M. Mealling and R. Salz: “A UUID URN Namespace”, Technical report, IETF Internet-draft (2004).
[13] P. J. Leach and R. Salz: “UUIDs and GUIDs”, Technical
report, IETF Internet-draft (1998).
[14] E. M. Royer and C. K. Toh: “A Review of Current Routing
Protocols For Ad Hoc Mobile Wireless Networks”, IEEE
Personal Communications, 6, 2, pp. 46–55 (1999).
[15] J. M. Kahn, R. H. Katz and K. Pister: “Next century challenges: Mobile networking for smart dust”, Proceedings
of the 5th Annual ACM/IEEE Internation Conference on
Mobile Computing and Networking (MobiCom’99), Seattle,
Washington, ACM, pp. 483–492 (1999).
[16] D. Estrin, R. Govindan, J. Heidemann and S. Kumar:
“Next Century Challenges: Scalable Coordination in Sensor
Networks”, Proceedings of the Fifth Annual International
Conference on Mobile Computing and Networks (MobiCOM’99), Seattle, Washington, ACM, pp. 263–270 (1999).
—6—