P2P掲示板の考察【後編】

さて、今度は広い範囲で掲示板の同期ができるシステムを検討します。
代表サーバ方式
これはブロードキャストエリアの中に、掲示板を集中管理するサーバを 立てる方式です。Winnyの方式とは違い、全てのスレッドが集中管理するサーバ に集められます。この集中管理をするサーバを掲示板サーバと呼ぶ事にしましょう。

まず、ユーザはブロードキャストして掲示板サーバを探します。掲示板サーバが そのブロードキャストエリアにない場合には、自分自身が掲示板サーバになります。 さて、掲示板を読み書きする場合には、掲示板サーバに対してアクセスし、そこで 読み書きをすることにします。下図をご覧になって下さい。

今、Aが掲示板サーバとなっています。後で解説しますが、掲示板サーバ はメインとサブの2つがあります。Aはいまメインサーバです。 Cが掲示板書き込みする場合にはBを介してAにアクセスする必要があります。

この方法では、メインサーバがダウンした場合、全ての掲示板サービス が使えなくなる可能性があります。そこで、サブサーバを立て、メイン サーバとサブサーバ間で掲示板データを同期する必要があります。 サブサーバを複数立てても構いません。サブサーバはメインサーバが エリア内のユーザから適当に指名する事によって作られます。

メインサーバとサブサーバは同期をすると共に定期的にHeart Beatします。 すなわち、メインサーバ及びサブサーバがお互い生きているか確認します。 仮にメインサーバが落ちた場合、サブサーバがメインサーバになります。 この時、メインサーバになると、その事をエリア内に周知させるために ブロードキャストします。また、新たなサブサーバを選出する必要があります。

このように、P2Pネットワークでサーバを自律的に立て、サーバがダウン によっても他のユーザが代わりにサーバとなり運用できるシステムを Floating Server Modelと呼ぶことにしましょう。この名前は ルーティングの概念であるFloating Static Routeから付けました。 Floating Server Modelという概念が既に世にあるか私は把握していません。 なお、このFloating Server Modelの概念は今後の説明にも使っていきます。

また、掲示板サーバが生きている事をユーザに伝えるために、その事を 掲示板サーバが定期的にブロードキャストします。詳しくは上図を 見てください。

さて、ブロードキャストエリア内での掲示板システムは上記の方法で うまく行きそうです。今度はエリア間の同期について考えて見ましょう。

先ほどの掲示板システムでは、掲示板サーバに書き込みができるのは 掲示板サーバからのブロードキャストができる範囲のユーザのみでした。 今、複数のブロードキャストエリアがある例を考えてみます。 下図をご覧になって下さい。エリア3はエリア1、エリア2のそれぞれの メインノードからブロードキャストできる範囲です。

エリア3にいるユーザ、例えばCはエリア2とエリア1の掲示板 サーバを認識することができます。そこでエリア3のように エリアが重なるユーザは、メインサーバに対して違うエリアの メインサーバの情報を定期的に送信します。これによって、 各エリア内のメインサーバは違うエリアのメインサーバの 存在に気が付きます。また、これによって エリアCを介して異なるエリア内のメインサーバの同期をすること が可能です。詳しくは下図をご覧になって下さい。今回の同期は バケツリレー方式で他エリアのメインサーバと同期しますが、 メインサーバ間で直接同期させることも考えられます。また、 メインサーバが把握している他エリア内のメインサーバ情報は メインサーバからサブサーバにえられます。

さて、このように広範囲で掲示板できるシステムの大枠ができあがりました。 このシステムの1番の問題点はサブサーバとメインサーバがどちらも一緒 にダウンした場合です。そうすると、エリア内の掲示板情報が飛んで しまう可能性があります。そのためにもあるエリア内 のサブサーバは複数存在した方が 良いでしょう。


(筆者注:)上記の事態を避けるために前章のキャッシュ方式と組み合わせた ハイブリット方式が考えられます。ここでの説明は割愛します。

次にP2P(オーバーレイヤネットワーク)でのルーティングを説明します。

NEXT

TOPページに戻る