本文へジャンプ

「並列オブジェクト」が仮想世界を渡り歩く

並列オブジェクトの応用についても教えてください。

Image from NASA Space Station Gallery

多体問題を扱う天体シミュレーションや、RNA(リボ核酸)の構造解析などに使われましたが、おもしろい応用としては、宇宙ステーションのシミュレーションがありますね。このプロジェクトは、メリーランド大学によばれて始めたのです。

宇宙ステーションは、大小さまざまな形の多数の部品が、パイプなどのコネクタでつながっています。何らかの原因で部品のどれかが振動をはじめると、止まらないんです。加えて、その力学的なところもわかっていないから、方程式で解析するわけにもいかない。そこでNASAは当時、安定化のために反作用モーターの利用を考えていたらしい。それで、並列オブジェクトに目を付けたようでした。

プロジェクトでは、物理モジュールとコネクタを並列オブジェクトで表現し、モジュールに動的に力を加えて姿勢制御する問題をモデル化しました。難しいN多体問題ですね。

その宇宙のシミュレーション、経済現象のシミュレーションより夢がふくらむ感じがします(笑)。

そう、そう(笑)。いっしょに仕事をしていた人(中国から米国に留学していた)が途中で帰国していなくなったりで、うまく進まないうちに立ち消えになってしまったのは、いまでも残念に思っています。

「モバイルオブジェクト」のほうはどうでしょう?

モバイルオブジェクトは、オブジェクトが自律的に移動して、移動先の状況に合わせて振舞いを変えるというモデルです。人間も、移動していくと場所によって頭が切り替わるでしょ。見える景色が変わって、知り合う人が変わってくると、知識や思考も変化する。そういう世界のシミュレーションをしてみようと思ったんだな。

プログラミング言語なら、名前とか、変数が何を指しているかが、自分の居場所——ロケーションによって変わってくるわけです。

たとえば、Javaのアプレットは、ダウンロードされた環境に合わせて動作を変えられます。そのような感じですか?

ええ、あの感じです。アプレットの場合はダウンロードするんですけど、モバイルオブジェクトのほうはネットワーク上のあちらからこちらへと自律的に動いていきます。

モバイルオブジェクトのアイデアは、「郵便局モデル」のときからあったけれど、手がける機会がなかった。90年代後半になってようやく、実装まで進められるようになったんです。研究室の関口龍郎さんに「こういうことをやりたいけれど、Javaでやれないか」と話したら、非常によい実装方法を考えてくれました。それをきっかけにできたのが、JavaGoです。

それが「セカンドライフ」に?

「並列オブジェクト」の概念に加えて、JavaGoのやり方の重要な部分が「セカンドライフ」に使われているんです。あの仮想世界で動くモノやアバターが、「モバイルオブジェクト」として実現されています。

Image from “EVOLVING NEMO” in New World Notes at Second Life Blog(http://secondlife.blogs.com/nwn/2005/06/evolving_nemo.html)「セカンドライフ」の仮想世界では、約200万個のモノやアバターがモーバイルオブジェクトとして動作し、参加者が作成したプログラムによって制御されている

楽しいアイデアですね。インパクトがあったのではないでしょうか?

もっと早くにやりたかったのだけれども(笑)。同じ研究室の橋本政朋さんが、これもやはりモーバイルオブジェクトのプログラミング言語MobileMLを設計・実装しています。

でも、モーバイルオブジェクトはしばらくの間、実用にはあまり使われなかったんです。多くの応用は、Javaアプレットのようなダウンロードのモデルで充分で、自律的な移動は必要がなかったんですね。

それが、Webが大量に出現して検索エンジン用のロボットが必要になったり、ネットワーク上に仮想世界ができて登場人物がたくさんの世界を渡り歩くという時代になって、利用されるようになったんです。

最後に、情報科学科をめざす学生にメッセージをお願いします。

計算機の分野には、急速に発達したいまだからこそ、テーマになることがたくさんある。そこら中にたくさんあるコンピュータをどうやって使うか、地理的に離れているコンピュータをどう活用するか、セキュリティをどうやって確保するか、われわれがよりよい暮らしを営んでいくためにコンピュータにできることは何なのか。

計算機には「賢さ」を埋め込むことができます。たった1人の人間がいままでにないことを考えれば、それを計算機に埋め込んで広め、世界中に埋め込むことができるんです。知恵を世界中で共有していくことができるんですよ。

ページトップへ戻る