Nomos: 移動エージェント機構を用いる協調仮想環境の設計

(Nomos: A Design of Collaborative Virtual Environments with Mobile-Agent Architecture)

慶應義塾大学 政策・メディア研究科 ネットワークコミュニティプロジェクト

久保 裕也

研究テーマの変更について

変更の理由

旧研究提案は「W3C Jigsawの業務用途アプリケーションサーバとしての 拡張による次世代Webの開発」として提出していたが,以下に示す問題点から 方向性を修正し,上記テーマへと変更するものとした.

旧テーマとの関連性について

業務用システムのうち,グループウェアとしての利用や,エンターテイメントを 目的としたアプリケーションシステムのサーバを開発するためのシステムとして, 目的を明確化する.このとき,また,このとき,移動エージェントなどを用いた独自の 設計仕様と,その実装方式について研究する.

研究概要

Nomosシステム は,移動エージェントをアバターとして,エージェ ントが移動可能なサーバを協調仮想環境内の地理的領域として表現 する.また,エージェントが利用可能なリソースを,空間内に置か れたオブジェクトや,アバターが持ち運ぶオブジェクトとして表現 する.他ユーザが操作する移動エージェントは,自分以外のアバタ ーとして空間内でリアルタイムに表現される.ユーザ=アバター同士 は,テキストによるチャット,持ち物の交換,周囲のオブジェクトへの 操作などによって交流が可能である.本稿では,この ユーザ=アバター=エージェントによる多層的コミュニケーションチャネルを 備えたシステムを,分散・リアルタイム型のグループウェアの 新しいモデルとして提案する.

はじめに

協調仮想環境による移動エージェントのメタファー

移動エージェントのツールキット[Aglet][Plangent]の多くには, エージェントランチャなどと呼ばれるツールが添付されている.これは, それぞれのエージェントシステムにおける任意のエージェントを, 別のエージェントサーバに送り込んだり,その結果を受け取ったりするために 使われる.

筆者は,こうしたツールを拡張するものとして, 移動エージェントをアバターとし,エージェント実行環境を共有仮想環境 として表現する手法を開発中である.エージェントシステムの利用環境を, 分散・リアルタイム型のグループウェアとしての拡張することで, ユーザ=アバター=エージェント間のコミュニケーション支援を可能とする. また,このエージェントサーバとランチャの関係は, ハイパーリンクで相互に接続されたWebサーバと, そのネットワークを閲覧・利用するWebブラウザの関係に擬して捉える ことができる.

協調仮想環境のグループウェアとしての再検討

筆者は,協調仮想環境[Carlsson][Greenhalgh]と呼ばれる グループウェアの分野で,ユーザの化身としてのアバターを用いる 手法や,作業環境を仮想的に空間化するメタファーに着目し, その適用範囲を広げることについて研究している. ところで,グループウェアの利用を有益なものとするには, そのグループウェアのユーザを一定の人数以上集めること, すなわちクリティカルマス(critical mass)を確保することが重要となる. しかし,協調仮想環境の研究では,ヘッドマウントディスプレイや データグローブに象徴されるような特殊デバイスや, 広帯域・低遅延の通信環境といいうような,極めて メディアリッチな基盤が要求されるものが多い.このような 場面では,クリティカルマスの問題は度外視されがちである[Churchill]. メディアリッチな協調仮想環境を設計する際には特に, それを利用した体験の豊かさと,計算機に対する要求の程度との, トレードオフの関係について,慎重な配慮を行うべきである.

Nomos

協調仮想環境の構築用ツールキットの開発

本稿により,(1) 協調仮想環境の構築手段とその表現内容として 移動エージェント技術を応用すること (2)協調仮想環境をごく軽量なクライアント上で利用可能とすること という, 2つの着想からデザインされたグループウェアのモデル, Nomos(「人為」等の意味を表すギリシャ語) を提案する. 著者は現在,このモデルを適用して,WYSIWIS[Stefik] (What You See Is What I See) アプリケーションを開発するためのツールキットと,そうしたアプリケーションを 横断的に利用するブラウザを作成中である.本稿により, Nomosのデザインの抽象化的な仕様について示しつつ, ツールキットとして開発者に示された拡張の方向性を説明する.

メタファー間マッピング

Nomos は,移動エージェントをアバターとして表現し, 移動エージェントサーバを協調仮想環境内の地理的領域の一種として表現する. また,エージェントが利用可能なリソースを,空間内に置かれた オブジェクトや,アバターが持ち運ぶオブジェクトとして表現 する.他ユーザが操作する移動エージェントは,自分以外のアバタ ーとして空間内でリアルタイムに表現される.ユーザ=アバター同士 は,テキストによるチャット,持ち物の交換,周囲のオブジェクトへの 操作などによって交流が可能とする.

ここでは,ユーザ=アバター=エージェントという3つのメタファーが 動的にマッピングされた形で用いられる.これにより, システム内におけるコミュニケーションのチャネルとモードを 多様的・多層的に作り出すことができる(図1).

図1:ユーザ=アバター=エージェントの関係

Nomosの設計を用いることでの利点

Nomosの設計を用いることで,協調仮想環境の設計において, 移動エージェント技術を用いたアプリケーション内のメタファー間の 動的マッピング機構が導入される.これにより, クライアントの動作に必要なメモリ等の計算機資源を低く押さえる ことができ,また,狭帯域・高遅延・断続的な通信がなされる ネットワークにおいてシステムを安定的に運用するための基盤を 利用できる.

ユーザインターフェイス

アウェアネス支援

WYSIWISを実現するためには,他のユーザがシステム内に同時で作業を 行っていること,その作業内容がどのようなものか等を視覚的に表すことが 重要である.こうしたアウェアネス支援を行う基本的な部品として, テレポインタが知られている.これは,他者のマウスポインタの 位置を自分の画面上に表示させることで,お互いの編集作業を 認識できるようにするためのものである.

一方,協調仮想環境のシステムにおいては,3次元画像技術などで リアルな空間表現がなされた中に,ユーザ自身が入り込んだ状態を 模したアバターが利用される.多くのシステムでは,アバターを, 視覚的・非言語的なコミュニケーションやエンターテイメントを 目的として応用している.こうしたシステムをグループウェア として利用するならば,アバターは,WYSIWISシステムにおける テレポインタの発想を進化させたものと理解することができる. そこで,Nomosにおいては,知的生産活動を支援するテレポインタ的な アバターのデザインが模索される.

この一例として,Nomosのブラウザ内・GUIの画面上で,カーソル操作される マウスカーソルを追い掛けて動き回るキャラクターのアニメーションとして, アバター=テレポインタのデザインを行った. このアバターを用いて,空間内の移動や, 他アバターとのテキストによる会話を可能とした. これにより, テレポインタよりはメディアリッチで,アバターよりも軽量な ユーザエージェントを実現することができる.

開発者は,Nomosツールキットによって, こうした例の他にも様々なアバターの姿を表現する実装を追加できる.

図2: 開発中のクライアント画面

空間内のオブジェクト

アバターの機能として,空間内のオブジェクトに働き掛けたり, 自ら新しいオブジェクトを作成する仕組みを持たせることができる. 以下にその例を示す.

このようなオブジェクトが,エージェントサーバ上のリソースに 対するインターフェイスや,エージェント自身のインターフェイスとして, 利用可能となる.

開発者は,Nomosツールキットによって, このように様々なオブジェクトの実装を追加できる.このとき, 移動エージェントシステムが提供するエージェントやリソースと, Nomosが提供するインタラクティブな操作性を持つオブジェクト群との関連は, サーバ上の実装によって定義される.

複数の環境の同時・横断的な表示

Nomos では,3次元データやビットマップ画像と比べて処理の軽い, 2次元ベクトルデータを利用した画面構成を基本とする点に 特色がある.これは,画面サイズや描画機能の制約の大きい環境での 利用を可能とするためである. 2次元ベクトルデータを利用することにより,表示される情報の自由な 縮小表示が可能となり,視野の俯瞰性と詳細性を連続的に切り替える インターフェイスが実現される.また,このインターフェイスは, 複数の空間を移動しながら作業を行う場合の認知性にも優れる. なお,類似の目的について実装・検証した先行研究にRosemanらのGroupKit[Roseman]がある.

Nomosツールキットでは,ローエンドの表示デバイスにまで対応した インターフェイスの開発が可能である.

空間の構成

Nomosは,仮想空間の中で,ある空間の範囲を表現し, またその空間の範囲を管理をサーバごとに分散処理する単位として, 静的に設定された地理的境界を用いている.以下,この範囲をゾーンと呼ぶ. ゾーンは,その空間内のアバターやオブジェクトを保持する器として機能する. 仮想空間上の移動により,あるゾーンの境界を越えたアバターやオブジェクトは, エージェントサーバのメモリ上でも別のゾーンへと移動される. ゾーンは,ネットワーク分散的に配置することができるので, 仮想空間上の移動が,エージェントサーバ間の移動に対応することもある. このとき,ゾーンを利用して,アバター群を地理的にグループ化することで, Benford[Benford]らのauraの交わりによるイベント送受信関係の最適化方式を 単純化して適用することができる.

一般に,先行研究のシステムがメモリ上で扱う空間の粒度は粗い (DIVE[Carlsson][Hagsand], ぞれぞれのクライアントがシーン情報の完全なコピーを保持する). Nomosでは,ゾーンを単位として空間を細粒度にキャッシュする 機能を備えることで,メモリ制約の大きなデバイス上でクライアントを 実行できるようにしている. また,先行研究にの多くは,空間を部屋のメタファーとするなど[Roseman]して, 管理権限を分割しており,各部屋ごとに不連続な座標系を用いているのに対し, Nomosでは,複数の管理主体によって提供される空間範囲を連続的な座標系の中に マッピングして提示することで, シームレスな視野の移動性・連続性が実現される.

実装の詳細

動作基盤

%Nomosの実装は,特定の基盤的実装に依存しないように, %抽象化されたインターフェイスを介して動作するように書かれている.

現在開発に使用している言語は Sun Microsystems社 の Java2 SDK 1.2.2である.利用するエージェントシステムは, 本研究で独自に開発中のものと,ObjectSpace社の Voyager3.0[ObjectSpace] とを併用している. このとき,抽象化されたインターフェイスを介することで, 将来に異なるエージェント基盤にも対応可能となるよう 配慮している[MASIF]. エージェントやエージェントサーバ上のオブジェクトの永続化は, Java言語組み込みのシリアライザによって実現されている. また,通信の際のオブジェクトの外部表現形式としても, シリアライザを利用している.これらについては,XMLなどの言語中立な 表現方式への変更を予定している.

表:実装状況(開発中の値)
ソースコード クラス数 jarサイズ
クライアント部 2256行 10 28 KB
サーバ部 1308行 11 21 KB
共用部 7807行 76 123 KB

ネットワーク構成

Nomosを構成するネットワークを,図3で示す.

まず,クライアントについて述べる. クライアントは,Webブラウザなどの中でJavaAppletとして実装される. 通信方式としては,プライベートIP上からも利用可能なように, クライアント発呼によるTCPのソケット通信のみを用いる (RMI callbackなどの機構は用いない). このAppletクライアントが直接に通信するサーバをホームサーバと呼ぶ. ホームサーバは複数のクライアントによってローカルに共有される.

次にサーバについて述べる. サーバでは,ユーザ認証,アプレットやエージェントのアーカイブの ダウンロードサービスを行うための,JavaServletが実行可能なWebサーバと, 移動エージェントサーバの2つのデーモンが起動されている. サーバには,初期設定として近傍のサーバへのリンクが設定される. 通信相手のサーバに設定された自分以外へのリンクを検索して, 新しいサーバのアドレスを得ることで,リンクを増やすこともできる. エージェントは,このリンクを通じて移動させることができる. こうしたリンクのネットワークによって,Nomosの世界が 構成されことになる.このNomosのサーバはインターネット上で 公開されるべきものであるので,グローバルIPを持つホストで 運用する必要がある.

以上のようにして構成されたネットワークの上に, 位置透明・移動透明可能なオブジェクトリポジトリサービスの インターフェイスが実現される.クライアントは, 自分のホームサーバの仲介によって,各地のサーバに間接的にアクセスし, そのリポジトリ内のオブジェクトを利用することができる. Nomosシステムの基幹的部分は,こうしたオブジェクトリポジトリの インターフェイスレイヤ上で動作することになる.

network 図3: ネットワーク構成の摸式図

通信方式

Nomosのエージェント間通信は, 非同期で全順序性の保証された通信イベントの列である. クライアント・サーバ間では,以下のようなやりとりがなされる (このとき,実際にイベントの情報を転送する下位層の実装手法は問わない).

  1. ユーザは,通常は複数のゾーン(協調仮想環境内の地理的区分) の状況を subscribe しており,そのゾーンの中のオブジェクトを 表示用にキャッシュしている.
  2. ユーザがマウス等の操作を行うことにより, アバターから何らかの行動予定イベントが作成される. このイベントは,アバターが現在所属しているゾーンを管理するサーバに 送られる.
  3. サーバは,各クライアントからのイベントを受けて,処理を行う. このとき,ゾーン上での複数のアバターが互いに矛盾した行動を 取ろうとしていた場合には,単純に早い者勝ち方式で競合の調整を行い, 実現された行動内容をゾーンごとのイベントキューに積み込む.
  4. サーバ上のクライアントのスタブは,subscribe しているゾーンの キューに新しいイベントを見つけた場合には,それをクライアントに 送信する.
  5. それぞれのクライアントが,ゾーン内に起こったイベントを受信し, その内容に応じてオブジェクトのキャッシュを更新する.

このほか,クライアントが視点・視野を変更した場合には, 新しいゾーンの subscribe,古いゾーンの unsubscribe のイベントが 発生する.また,アバターがゾーンの境界を越えて移動した場合には, アバターの管理権限の委譲に関して,2相コミットを用いたやり取りが なされ,その変更結果がゾーンの subscriber に通知される.

Nomosツールキットによって,開発者は,新しいイベントのクラスを 定義することができる.ちなみに,イベントの内容は,それぞれの受信主体ごとに 解釈され,受信主体にとって未知のイベントは無視されるものとする.

参照解決機構

表現を,オブジェクトの実体を参照するためのタグとして定義する. また,分散透明・移動透明な参照を実現するためには, 代理オブジェクトによって表現をメタ表現する手法が用いられる. このとき,Nomosにおけるアバターやゾーンという表現は, 移動エージェントやエージェントサーバを参照するためのものとして説明できる. また,アバターやゾーンという表現を,分散透明・移動透明とするためには, 代理オブジェクトを用いることで,アバターやゾーンを表現する必要がある. このとき,アバターやゾーンは,移動エージェントやエージェントサーバに 対して2度の参照解決によってアドレスされる実体ということになる.

このように,メタ化された参照解決の機構を採用していることには, エージェント間通信における通信の遅延を削減するために, 参照元のソフトウェアの複雑性を維持したまま, 参照先を自由に移動できるようにする意図がある.これは,たとえば, あるゾーン上でのイベントを処理する機能が,特定のサーバ上で提供される必要は 必ずしもないということを提示することで説明できる. あるゾーン上でのイベントを処理する代理オブジェクトを移動エージェントとして 実装することで,そのコンポーネントを利用頻度の高いクライアントの近くに 移動することができる.また,複数のユーザがゾーンを同時に利用する状況では, それぞれのクライアントとの遅延時間の平均の値が低く, 分散の値が小さいノードを探して,代理オブジェクトを移動することができる.

また,サーバへの負荷の集中に応じて,サーバ間のイベント送信を レプリケーションするサービスを動的に起動する仕組みを 提供するために,参照オブジェクトを発展して複数の参照オブジェクトを 代表する代表オブジェクトの利用を導入することもできよう.

このように,Nomosでは,クライアントが遠く離れたホスト上に位置する エージェントサーバと通信する際のパフォーマンスを改善するための, 技術的基盤を備えている.Nomosツールキットによって,開発者は, 上に述べたようなエージェントの移動戦略を実装することができる.

network 図4: 移動エージェント機構によるサーバ間のゾーン・アバターの移住

今後の課題

WYSIWIGツールキットとして

ツールキットの抽象化が不完全であり, 現状ではまだクラス構造やインターフェイスが安定化していない. そのため,ツールキットのサンプルとして提供されるクラスのセットについても, 質量共に不十分である.開発を継続してこれらを堅牢化・充実させる必要がある.

エージェントシステムとして

通信を可能とするための,通信環境のモニタリングとエージェント移動に 関する方式について,検討を行う必要がある.特に,代理オブジェクトの 移動戦略の基本的なセットの開発と評価が求められる.

利用性の拡充について

クリティカルマス問題への対応として, 現在利用中の動作基盤であるVoyagerから, 再配布自由な移動エージェントの実装に切り替えるべきことを 予定している.これにより,運用と普及がより自由な形で 支援できるようになる.

また,クライアントの実装として,現在のAppletクライアントの表示部分を 代替するものとして,Webブラウザの通常の画面上に,直接的にアバターを オーバーレイ表示するという方式を検討中である. これは,HTTP Proxyによって,HTMLを中継する際にHTML内にJavaScript イベントのトリガを埋め込み,これを用いてCSS(Cascading Style Sheet)や SVG(Scalable Vector Graphics)のノード内容を動的に書き換えることにより, アニメーションを表示するというものである.

また, Palm Pilotもしくは SHARP Zaurusなどの携帯情報端末上で クライアントを動作させることを予定している.このとき, GPSを利用して,現実の地理情報をNomosの仮想的地理空間と対応させることでの, 拡張現実システムとしての応用アプリケーションの実現を予定している.

おわりに

本稿では,(1) 協調仮想環境の構築手段とその表現内容として移動エージェント技術を応用 すること,(2)協調仮想環境をごく軽量なクライアント上で利用可能とすること,という, 2つの着想からデザインされたグループウェアのモデルとして,Nomos を提案した.

一般の開発者がこのデザインを利用するために, 本研究では協調仮想環境のツールキットを提供している. このツールキットは,移動エージェント技術を用いたアプリケーション内 のメタファー間の動的なマッピングの機構を持つ.この機構の支援により, クライアントの動作に必要なメモリ等の計算機資源の要求は低く押さえられ, また,狭帯域・高遅延・断続的な通信がなされるネットワークにおいて システムを安定的に運用することができる.

本稿は, Nomos のモデルを適用したアプリケーションを開発するための ツールキットの構成と,その仕組みについて説明した. 説明中で,先行研究との比較を適宜行うことで, 本システムの設計の合理性について論じた.

ソフトウェアツールキットの配布について

http://alex.mag.keio.ac.jp/~hiroya/GNUNomos/ より,クライアント用ライブラリをGPL,サーバ側・共用ライブラリをLGPLの 条件にて,平成13年4月中に配布を開始する予定である.

本研究に関連する学会活動

参考文献