• 検索結果がありません。

J72 j IEICE 1999 2 最近の更新履歴 Hideo Fujiwara J72 j IEICE 1999 2

N/A
N/A
Protected

Academic year: 2018

シェア "J72 j IEICE 1999 2 最近の更新履歴 Hideo Fujiwara J72 j IEICE 1999 2"

Copied!
11
0
0

読み込み中.... (全文を見る)

全文

(1)

論 文

分散移動シ ステムのための前後関係保存放送プ ロト コル

大堀 力

†∗

井上美智子

増澤 利光

藤原 秀雄

A Causal Broadcast Protocol for Distributed Mobile Systems

Chikara OHORI†∗, Michiko INOUE, Toshimitsu MASUZAWA, and Hideo FUJIWARA

あらまし 本論文では ,分散移動シ ステムのための前後関係保存放送プ ロト コルを提案する.移動計算機は 一 般に 不特定多数であり,計算能力,通信能力が 固定計算機に 比べて著し く劣っているため ,複雑度が 移動計算機 数にできるだけ 依存せず,移動計算機の実行する計算量と通信量の小さいアルゴ リズムが 求められ る.また ,移 動計算機の移動に 伴うハンド オフへ対処するために 行われ る処理のより小さいアルゴ リズムが 求められ る.本論 文は 移動計算機と移動支援局の階層構造に 着目し た ,効率の良い前後関係保存放送アルゴ リズムを提案する.提 案手法は ,メッセージ オーバヘッド( 各 メッセージに 追加する情報量 )が 移動計算機数に依存し ていない.更に , 既知の手法に 比べて ,メッセージオーバヘッド が 小さく,移動端末移動時のハンド オフに 対処するための遅延時 間と メッセージ 数が 小さい点で優れている.

キーワード 分散アルゴ リズム,移動通信,放送,前後関係

1. ま え が

小型計算機の高性能化と無線通信技術の進歩によっ て ,移動計算機が 無線通信を利用し てネット ワークに 接続す るこ とが 可能に なった .分散移動シ ステ ムは , 固定ネット ワー クに 移動計 算機(mobile host, MH を付加し たシ ステムである.MHは 計算の実行中に移 動することができ,無線機能をもつ固定計算機と無線 通信が 可能である.無線機能をもつ固定計算機を特に 移動支援局(mobile support station, MSS)と呼び ,MSSの地理的,あ るいは ,論理的な 無線通信可能 領域を そのMSSのセル と 呼ぶ .あ るMSSのセル 内 に 存在するMHが 別のMSSのセルに 移動すると ,移 動元のMSSMHとの間の無線通信チャネルが 切断 され ,移動先のMSSMHとの間に 無線通信チャネ ルが 開かれ る.この移動し たMHの無線通信チャネル の切換動作をMHのハンド オフと 呼ぶ.また ,移動元 のMSSから 移動先のMSSMHが ハンド オフされ るともい う.

MHを 含 まな い 分 散シ ステ ムで 問 題を 解 くプ ロト コル に ついて は ,これ まで 数 多 くの 研 究が な され て

奈良先端科学技術大学院大学情報科学研究科 ,生駒市

Graduate School of Information Science, Nara Institute of Science and Technology, Ikoma-shi, 630–0101 Japan

現在,( 株 )NTTデ ータ

いる[2][4], [6].し かし ,これらはハンド オフに 伴う ネット ワークの形状の動的な変化に 対応できず,分散 移動シ ステ ムに 適用で きな いこ とが 多い.そのた め , 分散移動シ ステムのためのプ ロト コルの設計が 必要で あり,さまざ まな 研究が 行われ ている[7][9].更に , 分散移動シ ステム上のプ ロトコルの設計には ,次の三 つの 目標を考慮し なければ ならない.

1. MSSに 比べ てMHは 性 能( 記 憶の 容 量と 信 頼 性 ,処理能 力 ,使用可能 電力量など )が 低い .更に , MH-MSS間の無線通信チャネルは ,MSS間の有線通

信チャネルに比べて通信帯域が 著し く小さい.よって, MHで 記憶する情報量,MHの計算量,MHの通信量

をできるだけ小さくする必要がある.

2.シ ステ ム 内に 存 在す るMHの 数はMSSの 数に

比べは るかに 大きいと 考えられ る.また ,MHの数が プ ロト コル 開始時に 既知でないことや ,実行中に 変化 することもある.よって ,プ ロト コル 全体のコストが MHの数にできるだけ 依存し ないことが 望まれ る.

3.ハンド オフ発生時に ,プ ロトコルの実行を正し く

継続するため特別の処理が 必要となる場合がある.ハ ンド オフに よって 引き 起こ され る特別な 情報交換や , プ ロト コル 実行の遅延操作など をできるだけ 少なくす る必要がある.

本論文では ,上記の三つの目標を達成する分散移動

(2)

シ ステム上の前後関係保存放送プ ロト コルを提案する. 任意の計算機から 送信され た メッセージ 間に 何らかの 因果関係がある場合,その順序に 従って受信するよう な メッセージ 交換を ,前後関係保存 メッセージ 交換と 呼ぶ .前後関係保存 メッセージ 交換は ,シ ステムの監 視,資源割当て ,電子ニュース,電子会議など ,分散 シ ステムのさまざ まな 場面において 利用され る.MH 間前後関係保存放送とは ,放送 メッセージ のあて 先が 常にすべての計算機である前後関係保存 メッセージ 交 換のことを指す.

しかし ,非同期式分散システムでは,計算機の処理の 非同期性と通信の非同期性から ,異なる計算機におけ る イベント の生起し た順序( 実時間に 基づいた前後関 係 )を決めることは不可能である.そこで ,Lamport は イベント 間の 因果関係に 基づいた前後関係(causal relation (→))を提案し ている[1].ここで ,任意の イ

ベント a,bについて ,a→ bが 成り立つのは 以下の いずれかの条件が 成り立つ場合である .(1)同一計算 機内でabの順に イベントが 生起し た .(2)あるメッ セージの送信と受信に対応する イベントがそれぞれa, bである .(3) a → cか つc→ bが 成り立つよ うな , ある イベント cが 存在する.

このLamportの前 後関係を 利用し て ,さまざ まな 前 後 関 係 保 存 メッセ ージ 交 換プ ロト コ ルが 提 案され ている.まず,MHを含まない分散シ ステムにおいて 前後関係保存マルチキャ スト( 任意の複数の計算機を あ て 先と す る メッセ ージ 交 換 )が 提 案され た[3].文 献[3]のプ ロト コルは 各 メッセ ージ に それ 以前に 送信 された メッセージを添付する方法を用いている.この, 各 メッセージに 何らかの情報を メッセージ ヘッダ とし て添付する方法は ,その 後のさまざ まな前後関係保存 メッセ ージ 交換プ ロト コル[4], [6], [7], [9]で も利 用さ れており,ヘッダ の大きさ( メッセージ オーバヘッド ) がプ ロト コル の重要な 評価尺度とな る.文献[3]のプ ロト コルは ,過去の メッセージをすべてヘッダに 含む ので 非常に メッセージ オーバヘッド が 大きい.そこで , RSTプ ロト コル[6]では ,ベクト ル 時計[2]のア イデ

アを利用し メッセージ オーバヘッド を削減し た.シ ス テム内の総計算機数をN とすると,RSTプ ロト コル で 使用する メッセ ージ ヘッダ は N 個のN 次ベ クト ルだけでよい.つまり,RSTプ ロト コルの メッセージ オーバヘッド はΘ(N2)である .また ,文献[4]では , RSTプ ロト コル を 放送に 特化することで ,使用す る

メッセージ ヘッダ は1個の N 次ベ クト ルとし ,メッ

セージ オーバヘッド をΘ(N )とし ている.

近年,分散移動シ ステムにおいても,ベクトル 時計 のア イデアを用いたMH間の前後関係保存メッセージ 交換プ ロト コルが 多数提案され ている.文献[7]では , メッセージ オーバヘッド が O(N2)である前後関係保 存マルチキャストプ ロト コルが 提案され ている.この プ ロト コルは ,メッセージのあて先MHの数が 多いほ ど 使用する メッセージヘッダ は 小さくなり,特に 放送 に適用し た場合,メッセージ オーバヘッド はΘ(N )と な る .また ,MHの 処理を そのMHと 接続し て いる MSSが 代理することで ,MHで 必要な 記憶量 ,計算

量,通信量を小さく抑えており,目標1を満たし てい る.し かし ,このプ ロト コルの メッセージ オーバヘッ ド は すべての計算機数N に 依存し ているため ,目標 2を満たさない.文献[9]では メッセージ オーバヘッド がMHの 数に 依存し な い目 標2を 満た す前後関係保 存マルチキャストプ ロト コルを提案し ている.シ ステ ム内のMSSの数を Nmssとすると ,このプ ロト コル の メッセージ オーバヘッド は ,Θ(Nmss2)である.ま た ,文献[7]と 同様にMHの 処理をMSSが 代理する ことで ,目標1も満たし ている.し かし ,このプ ロト コルでは ,前後関係を保証するために ,MHのハンド オフが 生じ たときに ,そのMHをあて先とする伝送中 の メッセージが あるかど うかをすべてのMSSに 問い 合わせる.このため ,ハンド オフ 発生時の処理に 必要 な メッセージ 数が 多く,その遅延時間も大きい.この ため ,目標3を満たし ているとはいえない.

本論文では ,分散 移動シ ステムに おけ るMH間の 前後関係保存放送を 実現するプ ロト コル を 提案する . 提案す るプ ロト コルは ,分散移動シ ステムのMHと MSSによる階層構造を利用し ,放送の メッセージオー

バヘッド をMHの数に 依存し ないΘ(Nmss)とし てい る.また ,文献[7], [9]と 同様に ,MHの 処理をMSS が 代理することで ,MHで 必要な記憶量,計算量,通 信量を小さく抑えている.ハンド オフが 発生し た場合, 提案するプ ロトコルでは ,MHをハンド オフする二つ のMSS間で 情 報を 伝 達す るの みで あ り,文 献[9]の プ ロト コルのよ うなMSS全体にかかわ る情報交換を 必要とし ない .更に ,文献[7], [9]のプ ロト コルでは , MHをハンド オフするMSS間でそのMHあての メッ

セージ を転送する必要がある.し かし ,提案するプ ロ ト コルは ,各MSSで 必要な 過去の メッセージ を 保存 することで ,このよ うなMSS間での メッセージ 転送 を不要とし ている.

(3)

2.では分散移動シ ステムのモデルとこのモデルにお ける前後関係保存放送を定義する.3.では 移動計算機 間におけ る前後関係保存放送を実現するプ ロトコルを 提案する.4.でプ ロト コルの正当性を示し ,最後に5. でプ ロト コルの評価を行う.

2.

2. 1 分散移動シ ステム

本 論 文で は ,分 散 移 動シ ステ ム の モデ ル とし て 文 献[8]の モデ ル を 用 い る .以 下 で は ,こ の モデ ル を 簡 単に 示す( 図 1).分 散 移 動シ ステ ム S3項 組 S = (MSS, MH, CH) と 定 義 す る .MSSは 移 動

支援局(MSS)と 呼ば れ るプ ロセ スの 集合,MHは 移動計算機(MH)と 呼ば れ るプ ロセ スの集 合,CH はMSS間の静的通信チャネル の集合である .本論文 で は 簡 単のた め に ,シ ステ ム 内に 存 在 す る 固 定 計 算 機は すべ てMSSで あ ると する .MSSの数を Nmss, MHの 数 を Nmh とし ,MSS = {s1,· · · , sNmss} MH= {h1,· · · , hN

mh}とする.各プ ロセスは固有の 識別子をもち ,簡単のために sihi の識 別子を 単に sihiと表す.

二つのMSS間に静的通信チャネルが 存在する場合, その 両端のMSSは 相互に 通信可能で あ る.MSSと CHから構成され るネット ワークは連結であるとする. つまり,任意のMSS間に 静的通信チャネルに よ る経 路が 少なくとも一つ存在する.各MHは 動的通信チャ ネル と 呼ば れ る通信チャネル を 用いて ,一つのMSS

1 分散移動シ ステム Fig. 1 A distributed mobile system.

と 相互に 通信可能で あ る .ハンド オフが 発生すると , MHが 動的通信チャネルで 接続し ているMSSが 変更

され る.例えば ,MH hMSS sに 接続し ていると きに ,sから別のMSS shのハンド オフが 発生し たとすると ,hsとの間の動的通信チャネルが 消失 し ,hと s との間に 新たに 動的通信チャネルが 生成 され る.このように ,動的通信チャネルはMHとど の MSSとの 間に 存在するか 決まって おら ず 動的に 変化

するため ,分散移動シ ステムのモデ ルにおいて動的通 信チャネルは ,その 両端のMSSの状態とMHの状態 の組とし て表され ているとする.つまり,各プ ロセ ス の状態には 接続状態とし て ,動的チャネルで 接続され ているプ ロセ スの識別子の 集合が 含まれ ている.MH のハンド オフ処理は 有限時間内に 終了し ,ハンド オフ 処理中を除いてすべてのMHはいずれかのMSSと接 続し ていると仮定する.

すべての静的・動的通信チャネルはFIFOキューで あるとする.すなわち,通信チャネルを用いて送信し た メッセージは 送信され た順に 相手に 受信され る.更 に ,チャネルを用いて 送信され た メッセージは紛失さ れないとする.文献[8]のモデルでは ,ハンド オフ時に 動的通信チャネルが 消失し た場合,そのFIFOキュー 内の メッセージは 紛失するとし ている.し かし 本論文 では ,簡単のために ,静的,動的にかかわらずすべて の通信チャネルに 入力され た メッセージは 有限時間内 に出力され ,メッセージの紛失は起きないと仮定する. ただし 本論文のプ ロト コルは ,動的通信チャネルにお け る メッセージの紛失に 対応できるように簡単に 拡張 できる.

分 散 移 動シ ステ ム の 状 況は ,シ ステ ム 内の すべ て のプ ロセ スの 状 態と すべ て の 通 信チャネル の 状 態か ら 構 成 され る .プ ロ セ スで イベント が 生 起す るこ と により,分散移動シ ステムの 状況が 変化する.一般性 を 失わず シ ステ ム 全 体で 同 時に 一つの イベントし か 生 起し な いと 仮 定で き る .状 況と イベント の 交 互 列 γ0, e1, γ1, e2, γ2,· · ·γieiはそれぞれ 状況,イベン

ト を表す )を分散移動シ ステムの実行と定義する.た だし ,e

i

γi−1 で 生起可能な イベントであり,γi−1e

i

が 生起し た後の状況がγ

i

である.実行は無限系 列であってもよく,有限の場合は 状況で 終わるものと する .ここで ,γ0 は 分散移動シ ステムの 初期状況で あり,初期状況では すべてのMHが いずれかのMSS と接続し ているとする.

プ ロセスで生起する イベント とし て次の7種類の イ

(4)

ベントを定義する.まず,(MHを含まない )従来の分 散シ ステムで 用いられている3種類の イベント を定義 する.

1. internal:プ ロセ スの内部計算を表す イベント. 2. send: メッセージ の送信を表す イベント. 3. receive: メッセージの受信を表す イベント.

次に ,分散移動シ ステム特有のハンド オフを扱うた めの4種類の イベントを定義する.これらは ,MH hiMSS sj からMSS skへ ハンド オフされ たときに , 4. 5. 6. 7.の順にそれぞれ1回ず つ生起する イベント

で ,ハンド オフにかかわるプ ロセ スの接続状態の変化 と ,移動情報の交換を表す.移動情報とは ,MHのハ ンド オフの際に ,ハンド オフにかかわるプ ロセス間で 交換され る情報で ,hiからsjへ ,sjからskへ ,sk からhi への順に 交換され る情報であ る.分散移動シ ステム上で 動作するプ ロト コルも,移動情報を利用し て情報交換可能であるものとする.

4. disconnectihiで 生起する イベント.hiの接続

状態が 空になることと,hiからsjへの移動情報fの 送信を表す.

5. removejsj で 生起する イベント.sj の 接続状

態からのhiの削除と ,hiから送信され た移動情報f の受信,skへの移動情報f

の送信を表す.

6. acceptkskで生起するイベント.skの接続状態

へのhi の追加と ,sjから 送信され た移動情報f の 受信,hiへの移動情報f′′の送信を表す.

7. connectihiで 生起する イベント.hi の 接続状

態が{sk}になることと,skから送信された移動情報 f′′の受信を表す.

2. 2 前後関係保存放送

あるプ ロセスからすべてのプ ロセ スへあるメッセー ジを伝達することを放送と呼び ,放送を実現するプ ロ ト コルを放送プ ロト コルと呼ぶ.プ ロセ スが メッセー ジ の 放 送を 行 うと き ,まず 放 送プ ロト コル へ 放 送 要 求を出す.放送要求を受けた放送プ ロト コルはすべて のプ ロセ スで放送要求され た メッセージ の配達処理を 行う.

プ ロ セ スpi に お け る 放 送 メッセ ージ m の 放 送 要 求と 配 達を ,それ ぞ れ pi の イベン ト cbcasti(m), deliveri(m)で表す.混乱が 生じ ない限り,imを省 略することがある.cbcastdeliverをまとめて放送イ ベント と呼ぶ.以後,簡単のために ,任意の実行にお いて 放送要求がなされ る放送メッセージは 相異なると 仮定する.

[ 定義1( 放送 イベント 間の前 後関係 )分散移動シ ス] テムにおけ る任意の実行をEE に 含まれ るすべての 放 送 イベント の 集合をEB と す る .EB 上の 前 後関 係(

B)は 以下のいずれかを満たす最小の2項関係で ある.

1.同じプ ロセ スの異なる二つの 放送 イベントe,e

で ,Eにおいてeがeより前に現れ るとき,e→ eB . 2.任意の放送メッセージ mと任意のプ ロセスpi

対し ,cbcast(m)

→ deliverB i(m) 3.次の推移律が 成り立つ.

∀e, e, e′′∈ EB[(e→ eB ) ∧ (e′ B→ e′′) ⇒ e→ eB ′′]

✷ 二つの 放送要求間に 前後関係がある場合,対応する 同一プ ロセ ス上の二つの 配達が その前後関係を保存す る放送を ,前後関係保存放送と呼ぶ .

[ 定義2( 前後関係保存放送 )分散移動シ ステムにおけ] る任意の実行Eについて ,以下の三つの性質を保証す る放送を前後関係保存放送と定義する.

1.cbcast(m)に 対し ,任 意のプ ロセ ス pi 上で deliveri(m)が 正確に1回生起する.

2.あ るプ ロセ スで deliver(m)が 生起するならば , cbcast(m)が 生起するあ るプ ロセ スが 存在する.

3.任意の二つの放送メッセージm1m2について , cbcast(m1)→ cbcast(mB 2)ならば ,任意のプ ロセスpi においてdeliveri(m1)

→ deliverB i(m2)である.

本論文では ,以下に定義するMH間前後関係保存放 送プ ロト コルを提案する.

[ 定義3(]MH間前後関係保存放送 )定義2の 条件1, 23の対象をすべてのプ ロセ スではなく,シ ステム上

のすべてのMHに限定し て定義し た前後関係保存放送 をMH間前後関係保存放送と定義する.

本論文では ,簡単のため ,定義3のよ うに ,MHの みが 放送要求を出し ,MHのみに メッセージを配達す ることを考え る.MSSも放送要求を出し ,MSSへの メッセ ージ 配達が 必要な 場合には ,MSS内に 一つの

( 移動し ない )MHを仮想的に 考え ,このMHの放送 要求,メッセージ 配達とし て処理することにより,本 論文のプ ロトコルを適用できる.

3. MH間前後関係保存放送プ ロト コル

3. 1 基本ア イデア

MH間前後関係保存放送を実現するプ ロトコルを提

案する.本プ ロトコルではシ ステム内に存在するMSS とその識別子が 全MSSで 利用可能とする.MHの総

(5)

数や識別子は利用可能である必要はない.ただし ,す べて のMHは ハンド オフを 行 う場合を 除いて いずれ かのMSSに 接続し ていると 仮定する.また ,ハンド オフは 有限時間内に 完了するものとする.つまり,あ るMHdisconnectが 生起し た 場合 ,有限時間内に 必ずconnectが そのMHで 生起すると 仮定する.

BirmanMHを含まない分散シ ステム上の前後関

係 保存 放送プ ロト コル を 提案し て いる[4].こ のプ ロ ト コルはベクト ル 時計[2]のア イデ アを 次のよ うに 利 用し て いる .シ ステ ム内のプ ロセ スを p1, p2,· · · , pN

N は総プ ロセス数 )とする.プ ロセスpiが 放送メッ セージmを放送するとき,ベクトル(v1, v2,· · · , vN) をヘッダ としてmに添付する.ここで ,各vj(j |= i) は ,pimの 放送要求を 行 う前に piで 配達され た pjの放送し た放送 メッセージの 個数であり,vim を 含めて piが 放送要求を 行った 放送 メッセージ の 個 数を 意味する .mを 受信し たプ ロセ スは ,piの 放送

し たvi− 1個,各プ ロセ スpj(j |= i)の放送し たvj 個の 放送 メッセージ を 配達するまでmの配達を 延期 することにより,前後関係保存放送を実現する.

Birmanのプ ロト コルをその まま分散移動シ ステム

上のMHへ適用すると,各メッセージに 付加するヘッ ダ はNmh 次ベクトルとなり,前後関係保存放送を 実 現するための通信オーバヘッド が 非常に大きい.また , MHのハンド オフを考慮し ていないためいくつかの問 題点が 発生する.そこで ,まずMHのハンド オフが 発 生し ない場合について ,メッセージのヘッダ サイズを 減らす方法を考案する.その後,MHのハンド オフに 伴う問題点とその対策法を示す.

分散移動シ ステムは ,MSSMHによる階層構造 をなし ている.すなわち,MHが 他のMHと メッセー ジを交換するときは,必ずMSSを介してのみ行う.更 に ,MHMSSの 間の 通信チャネルでは ,メッセー ジは 送信され た 順番に 受信され る.し たが って ,MH の ハンド オフが 発生し な い 場合は ,MSS間に おいて 前後関係保存放送を行うことで ,MH間の前後関係保 存放送を実現することができる( 図2).

MSS間前後関係保存放送に おいてMSS sj の放 送

メッセージmの放送要求イベントをmss cbcastj(m), 配 達 イベン ト を mss deliverj(m)と 表す.あ る二つMH h1h2 が それ ぞ れMSS s1s2 に 接 続し て い る と き に ,放 送 メッセ ー ジ m1m2 を そ れ ぞ れ 送 信し た と き ,cbcast1(m1)

→ cbcastB 2(m2)が 成 り 立 つな らば ,mss cbcast1(m1)

→ mss cbcastB 2(m2)

2 MSS 間前後関係保存放送の利用 Fig. 2 Application of causal broadcast on MSSs.

も 成 り 立 つ .こ の と き ,MSS間 前 後 関 係 保 存 放 送 は すべ て のMSS sj に つ いて mss deliverj(m1) →B mss deliverj(m2)を保証するため ,すべてのMH hi

についてdeliveri(m1)

→ deliverB i(m2)が保証され る. MSS間前後関係保存放送を実現するためにBirman

のプ ロト コルを用いると ,各放送 メッセージに付加す るベ クト ル の 次 元は Nmss と な り,ヘッダ サ イズが MHの数Nmhに依存し ないプ ロト コルを実現できる.

3. 2 ハンド オフ への対応

MHのハンド オフに 対応するために ,前節の基本ア

イデ アを以下のよ うに 拡張する.

a.配達 メッセージ の重複・欠落の回避:MH hiが MSS sj か ら MSS sk へ ハンド オ フ され た と す る . MSS間に おけ る メッセージ 交換は 非同期であ るため ,

ある時点においてMSS sjMSS skの配達済み放送 メッセージは 一般に 異なる.このため,hiが 放送 メッ セージ msjから 受信し た 後,ハンド オフ先の sk から も更に mを 受信し てし ま うと,himを 重複 し て配達し てし まうことがある( 配達 メッセージの重 複 ).また ,ある放送 メッセージ m

sjで 未配達で あり,hiのハンド オフ 先のskで 既に mが 配達済み であるとき,hiは永久にmを受信・配達ができない

( 配達 メッセージの欠落 )ことがある.

配達 メッセージの重複,欠落を回避するために ,各 MSS sjsjに接続している各MH hiで配達済みの放

送メッセージ 数を表すNmss次ベクトルRECVj[hi] を 管理する .ここで ,RECVj[hi][sk] (sk∈ MSS)MSS skから放送された メッセージのうち,既にhi へ送信された放送メッセージの数を表す.RECVj[hi] を用いることにより,hiで配達され るメッセージの重

(6)

複,欠落は 容易に 回避できる.ただし ,メッセージの 欠落を回避するために ,各MSS sjで 配達済みの 放送 メッセージをキューDELIV MESjに配達順に保存 する.

b.メッセージ の 前後関係非保存の回避:MH hiが MSS sjからskへハンド オフされたとする.また,hi

sjへ放送メッセージm1を送信した後,skへハンド オフされ ,更にskへ放送メッセージm2を送信したと する( 図3).このとき ,cbcasti(m1)

→ cbcastB i(m2)

という前後関係が 成り立つため ,m1m2 より先に 各MSSで 配達され なければ ならない .し かし ,基本 ア イデアにおけ る放送メッセージに添付するヘッダは , MSS間放送における前後関係のみ表し ており,同一の MHが 異な るMSSに 対し て送信し た放送 メッセージ

間の 前後関係を 表し て いな い .そのた め ,別のMSS ではm1 より前にm2が 配達され ることがある.

上記の問題を回避するために ,次のようにプロトコル を拡張する.各MSS sjは次に送信する放送メッセージ に先行する放送メッセージ数をNmss次のベクトルによ ってMSSごとに管理している.このベクトルをSENTj とする.MkMSS skの送信し た放送メッセージの 集合とすると,sjmss cbcastj(m)が 生起し たとき には ,各MSS slに 対し て ,SENTj[sl] = |{m

|m∈ Ml∧ mss cbcastl(m)→ mss cbcastB j(m)}|が 成り 立つものとする.hiがハンド オフの前後で送信し た放 送メッセージの前後関係を保存するためには,各MSS sl に 対し ,hi の ハンド オフ 直後の SENTk[sl]の 値

が ,hiのハンド オフ 直前の SENTj[sl]以上となれば 十分である.そこで ,ハンド オフ 時に 移動情報を用い てSENTjの値をskへ伝え ,skは ,各MSS slに対 し て,SENTk[sl] := max(SENTk[sl], SENTj[sl]) 実行し SENTkを更新する( 図3).

この よ うにMSS sk に おいて SENTkを 更新する

3 ハンド オフ時のSENT の転送 Fig. 3 Transfer of SENT in the handoff procedure.

と,例えば ,MSS sjで配達済みの メッセージがsk

未配達の場 合 ,SENTksk で 配達済みの 放送 メッ セ ージ 数より も 大き く な るこ とが あ る .そこ で ,sk で 配 達 済み の メッセ ージ 数を 管 理 す る 別のベ クト ル DELIVkを用意し て,配達の実行・延期の判断に使用

する.

3. 3 配達済みキューからの放送メッセージ の削除 配 達 メッセ ージ の 欠 落 を 避け るた め に 各MSS sj にDELIV MESjを導入し たが ,すべての放送 メッ セージ をすべてのMSSで 保存するためには 膨大な 記 憶容量を必要とする.そこで ,提案するプ ロトコルで は ,各メッセージのヘッダに 更に Nmss次ベクトルを

加えることで ,すべてのMHで配達済みと 確認された 放送 メッセ ージ を キューDELIV MESから 効率良 く削除する.

MSS sjは新たな放送メッセージを他のMSSへ送 信する際に ,接続し ているすべてのMHで配達済みの 放送メッセージを表すNmss次ベクトルREDUCEを 放送メッセージに添付する.ここで,REDUCE[sk]は, sjに 接続し ているすべてのMHで 受信済みの ,MSS skから 送信され た 放送 メッセージ 数を 表す.各MSS sjは受信したREDUCEを配列RECV RDCj[MSS]

で管理する.RECV RDCj[sk]sjMSS skから 受 信し たREDUCEの 最 大 ベ クト ル と す る .sj は sk が 送 信し た 放 送 メッセ ー ジ を 配 達 す る と き に , RECV RDCj[sk] を 更 新し ,す べ て のMHで 配 達

済みと 確認できた放送 メッセージ をDELIV MESj から 削除する.ただし ,MH hiMSS sjからMSS sk へ ハンド オフされ ると き ,hi で 配達済み放送 メッ セージを表すRECViが 移動情報を用いてsjからsk へ送られ るが ,RECVisjにもskにも存在し ない 瞬間が 生じ るため,hiの配達済み放送メッセージの情 報が sjsk のど ちらの メッセージ のREDUCEに も反映されず,hiで未配達の放送 メッセージが 削除さ れ てし ま う可能性が ある .そこで ,sjRECVi を skへ送った後,skRECViを受け 取ったこと(sk

上のacceptの 生 起 )を 確認し てから ,sjRECVi を 削除する .以上の手法に より,すべて のMSSが 適 当な頻度で 放送 メッセージ を送信することが 保証され ていれば ,すべてのMHで配達済みの放送メッセージ をDELIV MESから 削除できる.

3. 4 プ ロト コルの詳細

前後関係保存放送プ ロト コルを ,MSSMHのそ れぞれについて ,イベント 駆動型のプ ログ ラムで 記述

(7)

する.あるイベントに 対するプ ログ ラムの実行中に 別 の イベント が 生 起し た 場 合 ,実 行 中のプ ログ ラ ムが 終 了し てか ら それ ら の イベント に 対す るプ ログ ラ ム が イベント の 生 起 順に 実 行され る .プ ログ ラ ム 中の wait(e)という記述は ,wait(e)が 呼び 出され てから

イベント eが 生起するまで ,そのプ ログ ラムの実行が 停止することを表す.プ ログ ラム中の演算maxmin が 配列に 対し て 適用され た 場合 ,配列の要 素ご とに , 最 大 値 ,最 小 値を 選ぶ 演 算で あ ると す る .また ,プ ログ ラム中の任意の二つのNmss 次配列( ベクトル ) V1V2 に ついて ,∀s ∈ MSS[V1[s] <= V2[s]] ∧ ∃s∈ MSS[V1[s] < V2[s]]が 成り立つとき,V1< V2であ るとする .更に ,プ ログ ラムではMSS間の放送を 行 うマクロ命令を利用できるとする.このマクロ命令は , メッセージ の受信順には 何の保証もし ないが ,送信さ れ た メッセージ は 有限時間内に すべてのMSSで 正確 に1回受信され ることを保証するものとする.

分 散 移 動 シ ス テ ム に お け る7種 の イ ベ ン ト の う ち ,プ ロト コ ル 中 で プ ロ グ ラ ム の 駆 動 に 利 用 す る イベン ト は internalreceivedisconnectremove, acceptconnect 6 種 類 で あ る .特 に MHで 生

起 す る イ ベ ン ト internalの う ち ,放 送 メッセ ー ジ m の 放 送 要 求 が 出 さ れ た こ と を 表 すMHの 内 部 イベ ン ト を cbcast(m) とし てプ ログ ラ ム の 駆 動 に 利 用 す る .receive(p, m) は ,プ ロ セ ス(MH 又 は MSSpか ら m と い う メッセ ージ を 受 信し た こ と

を 表 す.disconnect(old)remove(new, mh, P U T ) accept(old, mh, GET )connect(new)MH mh MSS oldからMSS newへ ハンド オフ され たと きに

この 順番で 生起する イベントである .ここで ,P U T, GET oldからnewへ送受信され る移動情報を 表

す.以下に ,MH hi の 実 行するプ ログ ラム 中で 使用 する変数を説明する.ここで ,変数の添字はその変数 をもつMHの添字に 等し い.

• TELEPOINTihi が 接 続 中のMSSを 指 す. ただし ,ハンド オフ 処理中で 接続するMSSが 存在し ないときは 値とし てnullを使用する. 以下に ,MSS sjで 実行するプ ログ ラム中で 使用す る変数を 説明する.ここで ,MSSはシ ステム内に 存 在するすべてのMSSの識別子の集合を表す.また,変 数の添字はその変数をもつMSSの添字に 等し い.

• MHjMSS sj が 接 続 中 のMHの 識 別 子 の 集合.

• DELIVj[MSS]DELIVj[sk]MSS skから

の 放送 メッセージ の うちsjで 配達済みの 放送

メッセージ 数( 初期値:すべての要素が0).

• SENTj[MSS]:放送メッセージの前後関係の管 理に使用.MSS間で交換する メッセージのヘッ ダ となる( 初期値:すべての要素が0).

• RECVj[MHj][MSS]RECVi[hi][sk]MSS sjと 接続中のMH hiで 配達され た ,MSS sk

から 送信され た放 送 メッセージ の 数( 初期値: すべての要素が0).

• DELIV MESjMSS sj で 配 達 済 みの 放 送

メッセージを ,配達順に 保存するキュー( 初期 値:空キュー ).要素の順序を保存し たまま,任 意のキューの 要素を削除可能であるとする.

• WAITINGjMSS sjで 受信され たが ,前後 関係を 保存するためにsjでの配達を 延期し て いる放送 メッセージ を保存するバッファ.

• MOVINGjMSS sjから別のMSSへハンド オフされ たが ,ハンド オフ 先のMSSとの 接続 を 確認し ていな いMHの識 別子と そのMHに 対するRECV2項組を 要素とする集合( 初 期値:).

• RECV RDCj[MSS] RECV RDCj[sk] MSS sjMSS skから受信し たベクトルRE- DUCE( 削除可能な放送 メッセージ の情報 )を 表す( 初期値:すべての要素が 零ベクトル ).

 MSS sjで 実行するアルゴ リズム 1. receive(hi, m): /∗ hiからm の放送要求∗/

SENTj[sj] := SENTj[sj] + 1; REDUCE:= DELIVj;

foreach(mh, RECV ) ∈ MOVINGj do REDUCE:= min(REDUCE, RECV ); (SENTj,REDUCE, m) をすべての MSS へ放送; 2. receive(sk,(S, R, m)) :

/∗ Deliver Check 開始 ∗/ if S[sk] = DELIVj[sk] + 1 and

∀mss ∈ (MSS − {sk})[S[mss] <= DELIVj[mss]] then begin/∗ 配達処理 ∗/

foreach mh∈ MHj do

ifRECVj[mh][sk] = DELIVj[sk] then begin m を mh へ送信;

RECVj[mh][sk] := RECVj[mh][sk] + 1; end;

DELIVj[sk] := S[sk];

SENTj[sk] := max(SENTj[sk], S[sk]); (sk, S, m) を DELIV MESjの最後尾に 追加; foreach(s, S, m)]) ∈ WAITINGj do

(s, S, m) を WAITINGjから

       取り出し てDeliver Check

( 配達すれば(s, S, m) を WAITINGjから削除 ); end else

WAITINGj:= WAITINGj∪ {(sk, S, m)};

(8)

/∗ Deliver Check 終了 ∗/

RECV RDCj[sk] := max(RECV RDCj[sk], R); M IN R:= min{RECV RDCj[s]|s ∈ MSS}; foreach(s, S, m) ∈ DELIV MESj do

/∗ キューの先頭要素から順に選択 ∗/ if S<= MIN R then

(s, S, m) を DELIV MESjから削除; else

break foreach;

3. remove(sk, hi,(RECVj[hi], SENTj)): MHj:= MHj− {hi};

MOVINGj:= MOVINGj∪ {(hi,RECVj[hi])}; 4. accept(sk, hi,(RECVj[hi], S)):

MHj:= MHj∪ {hi}; SENTj:= max(SENTj, S);

foreach(s, S, m) ∈ DELIV MESj do /∗ キューの先頭要素から順に選択 ∗/

ifRECVj[hi][s] < S[s] then mhiへ送信;

RECVj[hi] := max(RECVj[hi], DELIVj); (accept, hi) を skに 送信;

5. receive(sk,(accept, hi)):

MOVINGj:= MOVINGj− {(hi,∗)};

 MH hiで 実行するアルゴ リズム 1. cbcast(m):

m をTELEPOINTiへ送信; 2. receive(mss, m):

deliver(m); 3. disconnect(mss):

TELEPOINTi:= null wait(connect); 4. connect(mss):

TELEPOINTi:= mss

4. 正当性の証明

証明のために ,まず 分散移動シ ステムの実行に 現れ るすべての イベント 間の前後関係(

L[8]を定義する. MHでは ,放送 メッセージの放送要求と同時にその

放送 メッセージの送信が 行われ ,放送 メッセージの受 信と同時に 受信し た放送 メッセージの配達が 行われ る ので ,MH hiの放送メッセージmに 関する イベント に ついて ,cbcasti(m)sendi(m)deliveri(m)と receivei(m)はそれぞれ 同一の イベントとし て扱う.

MSS間の放送に 関する イベント を 次のよ うに 表す. MSS sjにおける放送メッセージmの放送要求イベン

ト をmss bcastj(m)とする.mの放送要求と同時に mの送信が 行われ るので ,mss bcastj(m)と ,mの あて先がMSSである送信 イベント sendj(m)を同一 とし て扱う.あるMSSから 送信され た メッセージ mMSS sjにおける受信イベントreceivej(m)を特に mss recvj(m)と 呼ぶ .また ,放送 メッセージ m

MSS sj におけ る配達 イベント(sj の内部 イベント )

mss delivj(m)とする.

[ 定義4( イベントの前後関係 )分散移動シ ステムにお] ける任意の実行をEとし ,Eに現れ るすべての イベン ト の集合をEとする.E上の前後関係(

L)は以下

の条件を満たす最小の2項関係である. 1.同じ プ ロセ スの異な る二つの イベント ee

で , Eにおいて eeより前に 現れ るとき,e

→ eL

2.任意のメッセージmに関する送受信イベントをそ

れぞれsend(m)receive(m)とすると ,send(m)

L

receive(m)

3.任意のハンド オフに 対応する四つの イベントにつ

いて ,disconnect

→ removeL → acceptL → connectL 4. ∀e, e, e′′∈ E[(e→ eL ) ∧ (e′ L→ e′′) ⇒ e→ eL ′′]

✷ MSS間で交換され る放送 メッセージmに 添付され

るベクトルをSENT(m)と 表す.SENT(m)に つい て ,次の補題が 成り立つ.

[ 補題1]任意の実行において以下の性質が 成り立つ.

( 性 質1sj を 任 意 の MSSm1m2sj が 放 送 し た 任 意 の 放 送 メッセ ー ジ と す る .こ の と き , mss bcastj(m1) →L mss bcastj(m2) な ら ば SENT(m1)[sj] < SENT (m2)[sj]が 成り立つ.

( 性 質2sj を 任意のMSSm1 を 任 意の 放送 メッ セージとする.このとき,1 <= a <= SENT (m1)[sj]な る 任 意の aに 対し ,MSS sj が 放 送し た メッセージ m2が 存在し ,SENT(m2)[sj] = aが 成り立つ.

( 性 質 3m1m2 を 相 異 な る 放 送 メッセ ー ジ , sk m1 を 放 送 し た MSS と す る .こ の と き ,SENT(m1)[sk] <= SENT (m2)[sk] な ら ば, SENT(m1) < SENT (m2)が 成り立つ.

[ 補 題 2mm

を 任 意 の 放 送 メッセ ー ジ と す る .cbcast(m)

→ cbcast(mB )ならば ,SENT(m) < SENT(m)が 成り立つ.

( 証明 )cbcast(m)

→ cbcast(mB )より,放送メッセー

ジ の 連鎖 m1 (= m), m2,· · · , mq (= m) が 存 在し , 各p(1 <= p < q)に 対し て次のいずれかを満たすMH hiが 存在し ている.

1. cbcasti(mp)→ cbcastB i(mp+1) 2. deliveri(mp)→ cbcastB i(mp+1)

いずれ の 場合に も ,SENT(mp) < SENT (mp+1) 成り立つことを示せば 十分である.

1の 場 合 )himpMSS sj へ ,mp+1 を MSS sk へ 放 送し た と す る .sj = sk の 場 合 ,sj

(9)

は mpmp+1 の 順 に hi か ら メッセ ージ を 受 信 す る の で ,mss bcastj(mp)

→ mss bcastL j(mp+1)

あ り,性 質 1よ り SENT[mp] < SENT [mp+1] 成 り 立 つ .sj = s| k の 場 合 ,sjmp を 放 送し て か ら skmp+1 を 放 送 す る ま で に ,sj か ら sk ま で ,hi の ハ ン ド オ フ の 連 鎖 が あ る .hi

σ1(= sj), σ2,· · · , σb(= sk)の順にハンド オフされた とする .ここで ,σa (1 <= a <= b)MSSであ りσa のもつSENTSENTσ(a)と表す.各a(1 <= a < b) に 対し て,hiσaからσa+1へハンド オフされ ると き,σa+1は移動情報としてσaからSENTσ(a)を受け 取り,SENTσ(a+1):= max(SENTσ(a),SENTσ(a+1)) とし て SENTσ(a+1) を 更 新 す る .よって ,hisk へ ハンド オフされ たとき,SENT(mp) <= SENTk で あ る .こ の 後 ,skSENTk[sk]1増やし てから mp+1を放送するので ,SENT(mp) < SENT (mp+1)

が 成り立つ.

2 の 場 合 )1 の 場 合 と 同 様 に ,SENT(mp) < SENT(mp+1)が 成り立つ.

RECVj[h]は ,MH hが 接続中のMSS sjが もつ

変数であるが ,hが 別のMSS skに ハンド オフされ る とRECVj[h]の値はそのままRECVk[h]とし て引き 継がれ ,RECVj[h]は 破棄され る.つまり,hの接続 中のMSS sjのみが RECVj[h]をもつため ,この 変 数を単にRECV[h]と表す.

[ 補 題3m を 任 意の 放 送 メッセ ージ ,hを 任 意の MHとする.このと き,hはmをたかだか1回受信

する.

[ 補 題4m を 任 意の 放 送 メッセ ージ ,hを 任 意の MHとする.このと き,hmを少な くとも1回受

信する.

補題4を証明するために 次の補題5を示す.

[ 補 題5mを 任 意の 放 送 メッセ ージ ,s を 任 意の MSSとすると ,sはいずれmを配達する.

( 補 題5の 証 明 )あ るMSS sj で 配 達 され な い 放 送 メッセ ージ mが 存 在す ると 仮 定し ,矛 盾を 導 く. 一 般 性を 失 うこ とな く,sj が 配達し な い メッセ ージ の 中 で ,m が 極 小 の ヘッダ SENT(m)を も つ と す る .m を 放 送し たMSSsk とし た と き ,永 久に SENT(m)[sk] > DELIVj[sk] + 1,あ るいは ,∃s ∈ (MSS − {sk})[SENT (m)[s] > DELIVj[s]]が 成 り 立つ.いずれ の場合も性質23より,SENT(m

) <

SENT(m)なる放送メッセージmが 存在する.m 極小性よりSENT(m

) < SENT (m)なるsjが 配達

し ない放送 メッセージmが 存在することが 示せ,m のヘッダ の極小性に 矛盾する.

( 補題4の証 明 ) MH hは 永久に 放送 メッセージ m を 受信し ていな いと 仮定し て矛盾を 導く.MSS sjで mの配達が 行われたときにhsjと接続し ている場

合,hはsj からmを 受信する.よって ,hがMSS sj と 接 続し て い ると きに sj m の 配 達は 行われ

ていな い.ここで ,補題5よりすべてのMSSはいず れ mを 配達す るので ,hは まだ mを 配達し ていな いMSS skから ,既にmを配達済みのMSS slへハ ンド オフされ る .mhで 配 達され な いこ とか ら , こ の ハンド オフの 完 了時 点で ,slの 保持す るキュー

DELIV MESlからmは削除されている.つまり,m を放送したMSSspとするとすべてのMSS sjから SENT(m)[sp] <= REDUCEj[sp]な るREDUCEj

受信している.skSENT(m)[sp] <= REDUCEj[sp] が 成り立つた めにはskで 既に mが 配達され て いな ければ な ら な い .hの ハンド オフ 直 前の 時 点で ,skmを まだ 配 達し て い な いの で ,hの ハンド オ フ 発 生 後に skm を 配 達し たこ とに な る .し かし , hの ハンド オ フが 開 始し てか ら ,ハンド オフが 完 了

し た こ と を 伝え る メッセ ージ を sl か ら 受 信 す る ま で は ,sk の 保 持 す る MOVINGk に は RECV[h] が 存 在 す る .hm を 受 信し て い な い こ と か ら RECV[h][sp] < SENT (m)[sp]が 成り立つため ,sk

hのハンド オフ中にslへ送信し たREDUCEkに ついて ,REDUCEk[sp] < SENT (m)[sp]であること が いえ る.これは ,slhのハンド オフ 完了時点で mをキューDELIV MESlから 削除し て いる 条 件

に 反し ている.

[ 定理1mm を 任意の放送 メッセージ ,hiを 任 意のMHとする.cbcast(m)

→ cbcast(mB )が 成り立 つならば ,deliveri(m)

→ deliverB i(m)が 成り立つ.

( 証明)まず,任意のMSS sjに対し ,mss deliverj(m)

→ mss deliverL j(m)が 成り立つこ とを 示す.補題2

よ り SENT(m) < SENT (m) が 成 り 立 つ .補 題5 よ り,sjmm

を い ず れ 配 達 す る .こ の と き , mss deliverj(m)→ mss deliverL j(m)とな るのはプ ロトコルより明らか.補題34より,各MHはすべて の放送メッセージを正確に1度配達する.あるMH h でより前にmが 配達されたと仮定し て,矛盾を導く. すべてのMSS sjm

の配達前にmを配達するため, これらの メッセージはキューDELIV MESjにおい て,mm

の順に1回ずつ現れ る.hがあるMSS sj

Fig. 1 A distributed mobile system.
Fig. 2 Application of causal broadcast on MSSs.
図 3 ハンド オフ時の SENT の転送

参照

関連したドキュメント

一階算術(自然数論)に議論を限定する。ひとたび一階算術に身を置くと、そこに算術的 階層の存在とその厳密性

チューリング機械の原論文 [14]

事業セグメントごとの資本コスト(WACC)を算定するためには、BS を作成後、まず株

(問5-3)検体検査管理加算に係る機能評価係数Ⅰは検体検査を実施していない月も医療機関別係数に合算することができる か。

が作成したものである。ICDが病気や外傷を詳しく分類するものであるのに対し、ICFはそうした病 気等 の 状 態 に あ る人 の精 神機 能や 運動 機能 、歩 行や 家事 等の

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

操作は前章と同じです。但し中継子機の ACSH は、親機では無く中継器が送信する電波を受信します。本機を 前章①の操作で

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船