動的な依存関係による分散オブジェクトの協調機構 |
大木 幹雄† 坂本 康治† |
ネットワークを中心とした動作環境で分散オブジェクトが協調動作するには,他のオブジェクトの活動状態を監視し,情報を取得する能動的な機能が不可欠になる.現在のオブジェクト指向開発環境は,メッセージの着信によるイベント駆動であり,このような機構をもちあわせていない.そこでSmalltalk等で用いられている依存関係にもとづいたシグナルの伝播と起動の機構を拡張し,協調動作するための新たな機構として活用する概念を提案する.同時に文脈依存の協調動作機構やオブジェクト指向設計,コンポーネント合成等の一般的な枠組みとして,この機構の応用性について考察した結果を述べる.さらにこのような機構を用いたモバイルアプリケーションの開発構想と設計概要について述べる. |
The Cooperate Mechanism of Distributed Objects
based on Dynamic Dependencies |
Mikio Ohki Yasuharu Sakamoto |
The function which monitors active state of other objects and gets
information from the other
objects are indispensable for
the distributed cooperative object work in the
network environment. Current object-oriented developing environments do not
provide such kind of Mechanism. It provides event-driven
mechanism which triggers event when a message arrives. This paper
proposes the mechanism ,which extents the dynamic dependency concept, in order
to adapt the cooperative work. The mechanism has
monitor-expression-emigration
and signal transporting. In this paper we consider the possibility of
applying of contents-dependant cooperative work, object-oriented design and
the composition of components. We describe also design
outline for applying it to mobile applications. |
モバイルコンピュータや組み込み型コンピュータの普及に伴って,個々のコンピュータが独自の機能を果たしながら,同時に全体と協調して動作するような分散オブジェクトの研究が活発化している[1][2].協調動作を実現するには,メッセージ着信によるイベント起動といった受動的な機能のみならず,他のオブジェクトに積極的に作用し情報を入手する能動的な機能の必要性が認識されている.例えば,常時個人に携帯され他者との連携を前提としたネットワークコンピュータでは,メッセージ着信によるイベント起動のみの機構では不十分で,他者の状態を積極的にモニタするような能動的な機構が必要になってくる.すなわち,全体との協調関係を考慮して,個々のオブジェクトが行なう動作決定を支援する機構が必要となる.
本稿では,メッセージ送信とともにオブジェクト間の動作の整合性を保持する機構として利用されてきた依存性にもとづくシグナル送信機構に着目して,自律的なネットワークオブジェクトの協調動作を制御する機構について提案を行う.さらにこれを従来のオブジェクト指向の枠組みに埋め込んだときの有効性,課題等について考察した結果を述べる.
2. 分散オブジェクトの協調モデル
本稿では,モバイル環境を含むネットワーク空間内で自律的な動作をする分散オブジェクトを,自律オブジェクトと呼ぶことにする.ただし,ここで言う自律性とは,2.1に述べる協調行動の原則にしたがうことを意味する.またネットワーク空間上の自律オブジェクトとして,大きくネットワークを移動する実体[3][4]と固定的な実体の2つの考え方があるが,本稿で述べる自律オブジェクトは,ネットワーク空間上の特定のノードに固定して存在しながらも,機能を分散化させた実体を意味する.
2.1
協調行動の原則
自律オブジェクトがもつ基本的な協調行動として以下の5原則を考える.
(1)基準の同質性: 他者は自分と同じ行動基準をもつと想定して行動する.
(2)協調の対等性:互いに対等な立場で行動する.
(3)知識の共有性:相互に知識を共有するよう行動する.
(4)自己独立性:他者と存在意義を差別化するよう行動する.
(5)機能の交換性:自分のもつ機能の一部を他者と交換
する.
(5)は,自律オブジェクトが協調行動をとるとき,個々の自律オブジェクトのもつ機能を集団の特定の部位に集約し,集団内での役割分担を生じさせる原因となる原則である.これらの行動原理にもとづいた協調行動は,図1で示すモデルとして表現することができる.
ここで,集団を構成する各自律オブジェクトの情報を管理するために「共有情報の場(自律オブジェクトの一種.以後,単に場と呼ぶ)」の概念を導入する.「場」は,個々の自律オブジェクトと自律オブジェクト全体とのコミュニケーションを仲介する役割をもつ.
場には優先的に場の状態をモニタする権限をもつ自律オブジェクト,すなわち「コーディネータ」が存在する.場は協調行動の開始時に唯一生成され,必要に応じてコーディネータがインスタンスとして新たな場を生成する.各自律オブジェクトは,場との間で場を常時モニタする関係を築き,「全体と個」間でのオブジェクト(状態+機能)の交換を行う.協調のためのコミュニケーションは場のみを通して行ない,各自律オブジェクトは互いに対等な立場で知識を共有する.
機能の交換性によって,他の自律オブジェクトが自分の機能の一部(機能断片)を送信してきたとき,他オブジェクトとの存在意義を差別化するために,場があらかじめもつ基準にしたがって他との重複を判断する.その結果にもとづき,機能断片をさらに再送,あるいは消去する.状況に応じて新たに場が生成されると,既存の自律オブジェクト群は場に対してモニタリングを開始する.
2.2 動作モデル
協調動作を支援する目的で,自律オブジェクトは,複数の場に状態を監視するモニタ式を送り込み,一定のタイミングで評価し,監視条件が成立したとき通知シグナルを送信元に送り返すことができる機構をもつ.モニタ式は場のもつ状態変化を複合的に判断するルールに相当するものであり,このような判断ルール自体を送り込むことにより,送信先の状態監視のためのポーリングは不要になる.
この機構は概念的に図2のように示すことができる.本稿では,このような協調動作機構を目的としたモニタ式の送り込みとモニタ条件成立時の通知機構をMonitor-Function Emigrate and Notify(MOFEN)機構と呼ぶことにする.MOFEN機構は,送信元で機能するデモン(Demon)として捉えることもできる.なお,モニタ式の送信先は,場のみならず,個々の自律オブジェクトであってもよい.
MOFEN機構の原形は,Smalltalkなどで用いられている依存関係(dependencies)による変更シグナルの送信にさかのぼることができる[5].Smalltalkに組み込まれているシグナルによる変更通知機構は,オブジェクト間の整合性を保つ機構であるが,同時にこの機構はオブジェクトを協調的に動作させる制御機構として利用することができる.本稿で述べる提案は,この機構を拡張して,メッセージとは異なる能動的な協調制御を可能にすることにある.
2.3 内部構造
MOFEN機構をオブジェクト指向のもつ機構と融合させるには,オブジェクトのもつ内部構造を変更する必要が生じる.
(1) 基本概念
自律オブジェクトに能動的な機能をもたせ,かつ協調動作を自然な形式で行うために,メッセージ着信によるイベント起動に加えて,文脈に依存して生成された仮説の監視(仮説は一つの枠組みであり,場の一種の表現形であると想定している)や場のモニタ状態の制御機能が必要である.このような機能は,アプリケーションに応じて便宜的に導入する基本的な機能とは考えずに,本来協調活動すべきオブジェクトの基本機構として考えるべきである.すなわち,自律的な行動を行うために,自らの情報収集を可能にする基本機構の一部であるべきと考える.
そこで自律オブジェクトに図3で示すような内部構造をもたせる.図3では従来のオブジェクトの内部変数,メソッドに加え,監視モニタ式を送り込んだオブジェクトからの返信シグナルを総合的に判断するシグナル入力部,モニタ変数とモニタ式の操作部,および出力シグナル(出力シグナルの発火部分)が機構として追加されている.これは自律オブジェクトが図4に示すようにメッセージによる起動で結ばれたメッセージ空間と,モニタ式の送り込み関係で結ばれた監視シグナル通知空間の2つの空間にまたがって属することを意味する.
(2)メッセージ空間とシグナル空間
メッセージ空間は,メソッドの起動や内部変数の呼び出しや設定を行うためのメッセージ交換の場であり,メッセージ着信によって起動がかかる受け身的な動作連鎖の空間である.一方,シグナル空間は,能動的に相手オブジェクトの状態を監視するモニタ式をモニタメッセージ(5.で述べる)として送り込み,監視条件を満足したときにシグナルを返す能動的な動作連鎖の空間である.
(3)モニタ変数の定義
複数の自律オブジェクトから返信されたシグナルは,シグナル入力部で複合的に判断するためにフィルターがかけられ,オブジェクトの内部変数やモニタ変数に反映される.モニタ変数は,オブジェクトがもつパブリック変数のサブセットであり,明示的にオブジェクト内でモニタの用途に用いる変数であることを定義する.したがって,モニタ変数は,他のいかなる自律オブジェクトからもアクセスできる.
参考文献
[1]Paul
Robertson, Dynamic Object Technology,
Communications of the ACM , pp37-46,
MA’97(1997)
[2]塚本享治ほか,
クラスの共有と配送に基づくオブジェクト
指向分散システムの設計と実現, 情報処理学会論文誌
Vol.37,No.5
,pp 853 – 864(1996)
[3]山崎重一郎,津田宏編訳,Telescript言語入門,アスキー出版
[4]Peter
Domel, Interaction of Java and Telescript
Agents , Mobile Object pp295-311(1997)
[5]青木淳,Smalltalkイディオム,ソフトウェアリサーチセンタ
[6]J.A.シャープ,データフローコンピューティング,サイエ
ンス社
[7]塚本義昭,生天目
章:オブジェクト指向ニューラルネットワ
ークモデル,情報処理学会論文誌 vol.37,No.
8 ,pp 1525-
1533 (1996)
[8]大園忠親,新谷虎松,自律的エージェントのための制約論理型
言語RXFにおけるリフレクション機能の設計と実装,情報処
理学会論文誌Vol.38, No.7 ,pp 1361-1369(1997)
[9]鵜林尚靖,玉井哲雄:,コンテクスト概念に基づいたモジュー
ル化機構,ソフトウェア工学研究会117-8 1997・11・21(1997)
[10]来間啓伸,大須賀昭彦,本位田真一,協調アーキテクチャに
基くソフトウェア・モジュールの仕様記述モデル,情報処理
学会論文誌 Vol.37,No. 6 , pp 1171 –1186 (1996)
[11]丸山勝久,島健一,部品変更履歴に基く重み付き依存関係グラ
フを用いた部品の洗練,情報処理学会 論文誌 Vol.39,No.3
pp 725-739(1998)
[12]黄
長華,大木幹雄,坂本康治,仲介エージェントを用いたモ
バイル環境におけるサービスのアクセス手法,第56情処全
大 ネットワークエージェント(1)(1998)