WISS2009

複製計算モデルにもとづく可用性の高いオブジェクト共有手法
A Highly-Available Object Sharing Method based on Replicated Computation

市川 泰宏

山本 佑樹

高橋 利幸

植田 亘

玉井 祐輔

野口 尚吾

高田 秀志∗

Summary. コンピュータを用いて行うリアルタイムな協調作業では，ユーザ間のインタラクションを支援するために，端末間でのリアルタイムなデータ共有が重要となる．データ共有のための手法として，1 つの端末に存在するデータを他端末が参照するモデルがある．このモデルでは，データの参照やそれに対する処理が 1 つの端末に集中するため，その端末がシステムにとっての単一障害点となる．そのため，ネットワークの信頼性が低い環境では，可用性が低くなる可能性がある．そこで本稿では，各端末がオブジェクトの複製をそれぞれ保持し，その複製オブジェクトのふるまいを同期するための手法であるオブジェクトミラーリングを提案する．オブジェクトミラーリングは，ある端末上で起こった複製オブジェクトへのメッセージパッシングを他の端末に伝播し，実行することによって，各端末上の複製オブジェクトの状態を同一に保つ．これにより，端末間でのリアルタイムなデータ共有を実現する．また，このオブジェクトミラーリングの適用例として，マインドマップ型のインタフェースを通して複数人でのコミュニケーションを可能とするアプリケーション “C-MAC”について述べる．C-MAC はユーザが行った操作や，マインドマップデータの同期機構にオブジェクトミラーリングを利用している．そのため，学会発表の場など参加者が多く，ネットワークの信頼性が低い環境においても，高い可用性を実現することができる．

1

はじめにリアルタイムな協調作業を支援するシステムが，企業での会議や学校でのグループワークなど，様々な場面で取り入れられている．こうしたシステムでは，ユーザ間のインタラクションを支援するため，端末間でリアルタイムにデータを共有することが重要となる．データの共有手法として，ある端末に存在するデータを他端末が参照する参照型モデルがある[1]．しかし，こうしたモデルでは，データの参照やそれに対する処理が 1 つの端末に集中するため，その端末がシステムにとっての単一障害点となる．そのため，ネットワークの信頼性が低い環境では，可用性が低くなる可能性がある．本稿では，複製計算
モデル [2] にもとづき，対象となるオブジェクトの状態を各端末で同一に保つ手法である オブジェクト
ミラーリング を提案する．本手法では，オブジェクトのふるまいを同期することで端末間でオブジェクトの共有を可能とする．また，適用例として，複数人でマインドマップを共有するコミュニケーショ
ンツール C-MAC について述べる．

2

複製計算モデル

複製計算モデルは，オブジェクトのメッセージパッシングを複製することで，各端末間でオブジェクトの状態を同一に保つことを可能とする．図 1 に複製計算モデルの仕組みを示す．まず，対象となるオブジェクトの複製が各端末上に配置される．その複製オブジェクトに対するメッセージパッシングが発生したとき，そのメッセージパッシングは複製され，他端末の複製オブジェクトに伝播される．その後，伝播されたメッセージパッシングは，他端末の対応する複製オブジェクトに対して実行される．このように，メッセージパッシングを端末間で共有することによって，各端末上に配置されている複製オブジェクトの状態を常に同一に保つ．
」〇䛥䜜䛯䝯䝑䝉䞊䝆䝟䝑䝅䞁䜾䝯䝑䝉䞊䝆䝟䝑䝅䞁䜾ఏ᧛

Object B➃ᮎB

Object B

Object A

Object A」〇䛥䜜䛯䝯䝑䝉䞊䝆䝟䝑䝅䞁䜾➃ᮎAఏ᧛Object A

Object B➃ᮎC

図 1. 複製計算モデルの仕組み∗Copyright is held by the author(s).
Yasuhiro Ichikawa, 立命館大学 情報理工学部, Yuki
Yamamoto, 立命館大学 情報理工学部, Toshiyuki Takahashi, 立命館大学 情報理工学部, Wataru Ueda, 立命館大学大学院 理工学研究科, Yusuke Tamai, 立命館大学大学院 理工学研究科, Shogo Noguchi, 立命館大学大学院 理工学研究科, Hideyuki Takada, 立命館大学 情報理工学部

3

オブジェクトミラーリング

オブジェクトミラーリングは，複製計算モデルにもとづき，オブジェクトを共有する仕組みを提供する．また，代理オブジェクトを用いることで複製に必要な処理を隠蔽するインタフェースを提供する．

WISS 20093.1

オブジェクトミラーリングの仕組み

図 2 にオブジェクトミラーリングの仕組みについて示す．オブジェクトミラーリングでは，オブジェクトのメッセージパッシングを複製するために代理オブジェクトを用いる．代理オブジェクトは，複製の対象となるオブジェクト (ミラーオブジェクト) と共通のインタフェースを保持しており，ミラーオブジェクトと同様にメソッドを呼び出すことができる．
この代理オブジェクトを通して，メソッドが呼び出されたとき，代理オブジェクトが対応するミラーオブジェクトのメソッドを呼び出し，それと同時に他端末にメソッド呼び出しを伝播する．各端末には，オブジェクトマネージャが存在し，他端末からのメソッド呼び出しを受け取る．また，オブジェクトマネージャが，受け取ったメソッド呼び出しをミラーオブジェクトに実行させ，状態を同一に保つ．

図 2. オブジェクトミラーリングの仕組み

3.2

オブジェクトミラーリングの特徴

オブジェクトミラーリングでは，各端末がミラーオブジェクトを保持している．そのため，各端末が単一障害点になることがなく，システム全体として高い可用性を実現することができる．しかし，その一方でミラーオブジェクト間の一貫性を保持することが難しくなる．そのため，オブジェクトミラーリングの特徴を活かせる環境として，ネットワークの信頼性が確保しにくい環境や，厳密な一貫性を必要としない環境が考えられる．

4

適用例

オブジェクトミラーリングの適用例として学会会場などでの使用を想定したマインドマップ型コミュ
ニケーションツール C-MAC を開発した．図 3 に，C-MAC の画面イメージを示す．C-MAC は，マインドマップを構成するノードや，それに対する意思を表現するマーカといったコンポーネントに対する操作をユーザ間でリアルタイムに共有する．これにより，ユーザは同じビューを共有しながら，ひとつのマインドマップを作成することができる．こうした協調作業を通して，ユーザは発表に対する理解を深めるとともに，発表中においてもユーザ間のコミュニケーションをとることが可能となる．

図 3. C-MAC の画面イメージ

4.1

学会会場に見られる特徴

学会会場では，しばしば多数の参加者に対応できるネットワーク環境を提供できず，通信障害が起こる場合がある．このような環境では，ある端末が単一障害点となるシステムを利用することは難しい．
本手法を適用したシステムは，各端末がオブジェクトの複製を保持しているため，このような環境においても，高い可用性を維持することができる．
4.2 オブジェクトミラーリングによる操作の共有

C-MAC では，コンポーネントに対するユーザの操作の共有を，オブジェクトミラーリングによって実現する．コンポーネントは，各端末でミラーオブジェクトとして保持されている．そのため，コンポーネントの生成や移動を行うメッセージパッシングが各端末に伝播され，実行されることによって，端末間でコンポーネントの状態が同一に保たれる．

5

おわりに

本稿では，複数の端末間でのデータ共有の仕組みとして，各端末上にオブジェクトの複製を配置し，それらの状態を同一に保つオブジェクトミラーリングを提案した．また，その適用例について述べた．
今後は，本手法を，我々が開発している協調システムのためのフレームワークである “CUBE”[3] へ実装を行う．また，すべての端末で確実なオブジェクトのふるまい同期を可能とするために，一貫性を保持するための仕組みを検討する．

参考文献[1] 前田 直人, 上田 和紀, “オブジェクト共有空間を利用した分散プログラミング支援フレームワーク
SOR,” 第 2 回プログラミングおよび応用のシステムに関するワークショップ (SPA’99), 日本ソフトウェア科学会, 1999.
[2] David A. Smith, Alan Kay, Andreas Raab, DavidP. Reed, “Croquet - a collaboration system architecture,” First Conference on Creating, Connecting and Collaborating Through Computing 2003
(C5 2003), pp. 2-9, 2003.
[3] Shogo Noguchi, Hideyuki Takada, “CUBE: A
Synchronous Collaborative Applications Platform Based on Replicated Computation,” TheFifth International Conference on Collaboration
Technologies (CollabTech 2009), 2009.