(57)【要約】【課題】  ＴＣＰ／ＩＰネットワークなどの通信ネットワーク上に構成された物理的ネットワーク構成にとらわれないツリー構造の論理ネットワークにメッセージを送信する。【解決手段】  マルチキャストメッセージ送信方法であって、メッセージを受信したサーバントが、（１）論理ネットワークにおけるアップリンクの存否と、アップリンクのサーバントＩＤと、ダウンリンクの存否と、ダウンリンクのサーバントＩＤとを記憶するステップと、（２）受信したメッセージを上位アプリケーションにわたすステップと、（３）アップリンクの存否を読み取り（S503）、アップリンクが存在する場合はアップリンクにメッセージを送信するステップ（S505）と、（４）ダウンリンクの存否を読み取り（S507）、ダウンリンクが存在する場合はダウンリンクにメッセージを送信するステップ（S507）と、を有する。【選択図】      図８
2006222987.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを受信したサーバントが、
論理ネットワークにおけるアップリンクの存否と、前記アップリンクのサーバントＩＤと、ダウンリンクの存否と、前記ダウンリンクのサーバントＩＤとを記憶するステップと、
受信した前記メッセージを上位アプリケーションにわたすステップと、
前記アップリンクの存否を読み取り、前記アップリンクが存在する場合は前記アップリンクに前記メッセージを送信するステップと、
前記ダウンリンクの存否を読み取り、前記ダウンリンクが存在する場合は前記ダウンリンクに前記メッセージを送信するステップと、
を有するマルチキャストメッセージ送信方法。
【請求項２】
メッセージを受信したサーバントが、
自サーバントＩＤと、パーティションと、前記パーティションに含まれる各スロットと、アップサーバントと、前記各スロットに属するダウンサーバントが存在する場合は当該ダウンサーバントとを記憶するステップと、
受信した前記メッセージから宛先サーバントＩＤを読み取るステップと、
前記宛先サーバントＩＤと前記自サーバントＩＤとを比較するステップと、
前記宛先サーバントＩＤと前記自サーバントＩＤとが一致する場合に、前記メッセージを上位アプリケーションにわたすステップと、
前記宛先サーバントＩＤと前記自サーバントＩＤとが一致しない場合に、前記宛先サーバントＩＤのサーバントＩＤ値を求め、前記サーバントＩＤ値と前記パーティションとを比較し、
前記サーバントＩＤ値が前記パーティションの外の場合は、前記アップサーバントに前記メッセージを送信し、
前記サーバントＩＤ値が前記パーティション内である場合は、前記アップサーバントへ前記メッセージを送信することに加えて、前記サーバントＩＤ値と前記各スロットとを比較し、前記サーバントＩＤ値が属する前記スロットの前記ダウンサーバントに前記メッセージを送信するステップと、
を有するユニキャストメッセージ送信方法。
【請求項３】
メッセージを受信したコンピュータに、
論理ネットワークにおけるアップリンクの存否と、前記アップリンクのサーバントＩＤと、ダウンリンクの存否と、前記ダウンリンクのサーバントＩＤとを記憶するステップと、
受信した前記メッセージを上位アプリケーションにわたすステップと、
前記アップリンクの存否を読み取り、前記アップリンクが存在する場合は前記アップリンクに前記メッセージを送信するステップと、
前記ダウンリンクの存否を読み取り、前記ダウンリンクが存在する場合は前記ダウンリンクに前記メッセージを送信するステップと、
を実行させるためのマルチキャストメッセージ送信プログラム。
【請求項４】
メッセージを受信したコンピュータに、
自サーバントＩＤと、パーティションと、前記パーティションに含まれる各スロットと、アップサーバントと、前記各スロットに属するダウンサーバントが存在する場合は当該ダウンサーバントとを記憶するステップと、
受信した前記メッセージから宛先サーバントＩＤを読み取るステップと、
前記宛先サーバントＩＤと前記自サーバントＩＤとを比較するステップと、
前記宛先サーバントＩＤと前記自サーバントＩＤとが一致する場合に、前記メッセージを上位アプリケーションにわたすステップと、
前記宛先サーバントＩＤと前記自サーバントＩＤとが一致しない場合に、前記宛先サーバントＩＤのサーバントＩＤ値を求め、前記サーバントＩＤ値と前記パーティションとを比較し、
前記サーバントＩＤ値が前記パーティションの外の場合は、前記アップサーバントに前記メッセージを送信し、
前記サーバントＩＤ値が前記パーティション内である場合は、前記アップサーバントへ前記メッセージを送信することに加えて、前記サーバントＩＤ値と前記各スロットとを比較し、前記サーバントＩＤ値が属する前記スロットの前記ダウンサーバントに前記メッセージを送信するステップと、
を実行させるためのユニキャストメッセージ送信プログラム。
【請求項５】
メッセージを受信する受信手段と、
論理ネットワークにおけるアップリンクの存否と、前記アップリンクのサーバントＩＤと、ダウンリンクの存否と、前記ダウンリンクのサーバントＩＤとを記憶する記憶手段と、
受信した前記メッセージを上位アプリケーションにわたす手段と、
前記アップリンクの存否を読み取るアップリンク読み取り手段と、
前記アップリンクが存在する場合は前記アップリンクに前記メッセージを送信するアップリンク送信手段と、
前記ダウンリンクの存否を読み取るダウンリンク読み取り手段と、
前記ダウンリンクが存在する場合は前記ダウンリンクに前記メッセージを送信するダウンリンク送信手段と、
を有するマルチキャストメッセージ送信装置。
【請求項６】
メッセージを受信する受信手段と、
自サーバントＩＤと、パーティションと、前記パーティションに含まれる各スロットと、アップサーバントと、前記各スロットに属するダウンサーバントが存在する場合は当該ダウンサーバントとを記憶する記憶手段と、
受信した前記メッセージから宛先サーバントＩＤを読み取る読み取り手段と、
前記宛先サーバントＩＤと前記自サーバントＩＤとを比較する宛先サーバントＩＤ・自サーバントＩＤ比較手段と、
前記宛先サーバントＩＤと前記自サーバントＩＤとが一致する場合に、前記メッセージを上位アプリケーションにわたす手段と、
前記宛先サーバントＩＤと前記自サーバントＩＤとが一致しない場合に、前記宛先サーバントＩＤのサーバントＩＤ値を求め、前記サーバントＩＤ値と前記パーティションとを比較するサーバントＩＤ値・パーティション比較手段と、
前記サーバントＩＤ値が前記パーティションの外の場合は、前記アップサーバントに前記メッセージを送信するアップサーバント向け送信手段と、
前記サーバントＩＤ値が前記パーティション内である場合は、前記アップサーバントへ前記メッセージを送信することに加えて、前記サーバントＩＤ値と前記各スロットとを比較し、前記サーバントＩＤ値が属する前記スロットの前記ダウンサーバントに前記メッセージを送信するダウンサーバント向け送信手段と、
を有するユニキャストメッセージ送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想的な論理ネットワーク上にトランスポート層の機能を提供するプログラム、装置及び方法に関し、具体的には、ＴＣＰ／ＩＰ(Transmission Control Protocol / Internet Protocol)ネットワークなどの通信ネットワーク上に物理的ネットワーク構成にとらわれないツリー構造の論理ネットワークを自律的に構成し、その論理ネットワーク上でのユニキャスト通信やマルチキャスト通信を可能にするプログラム、装置及び方法に関する。
【背景技術】
【０００２】
ユニキャスト通信（１対１の通信）については、従来の技術においても問題なく利用できている。一方、マルチキャスト通信（１対ｎの同報通信）については、従来の技術はいくつかの課題を抱えている。以下に従来技術とその課題を示す。
【０００３】
ＩＰマルチキャスト（ネットワーク層）では、ルータなどのネットワーク機器がＩＰマルチキャスト通信をサポートしている必要がある。また、それらネットワーク機器の設定・維持のためのコストが発生する。
【０００４】
ＵＤＰブロードキャスト（トランスポート層）では、サブネット単位などの物理的なネットワーク構成に依存した範囲での同報しか行えない（例えば、非特許文献１参照）。
【０００５】
中継サーバを介した同報通信（アプリケーション層）では、中継サーバの導入・維持のためのコストが発生する。また、中継サーバの障害への対応が困難である。
【０００６】
ファイル共有等のＰ２Ｐ(Peer to Peer)アプリケーション（アプリケーション層）では、ノード間をアドホックな方法で接続することによって、論理ネットワークを構成する。よって、無秩序なネットワーク構成となり、通信効率が非常に悪く、リアルタイムな通信に適用できない。
【非特許文献１】竹下隆史他著「マスタリングＴＣＰ／ＩＰ入門  第２版」オーム社  平成１０年５月２５日発行  ８３頁
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のシステム構築においては、前記従来技術のデメリットについては不可避なものとして受け入れた上で、システム要件により合致する技術を選択して採用していた。
【０００８】
本発明は、ＴＣＰ／ＩＰ(Transmission Control Protocol / Internet Protocol)ネットワークなどの通信ネットワーク上に物理的ネットワーク構成にとらわれないツリー構造の論理ネットワークを自律的に構成し、その論理ネットワーク上でのユニキャスト通信やマルチキャスト通信を可能にするプログラム、装置及び方法の提供を目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の特徴は、マルチキャストメッセージ送信方法であって、メッセージを受信したサーバントが、（１）論理ネットワークにおけるアップリンクの存否と、前記アップリンクのサーバントＩＤと、ダウンリンクの存否と、前記ダウンリンクのサーバントＩＤとを記憶するステップと、（２）受信した前記メッセージを上位アプリケーションにわたすステップと、（３）前記アップリンクの存否を読み取り、前記アップリンクが存在する場合は前記アップリンクに前記メッセージを送信するステップと、（４）前記ダウンリンクの存否を読み取り、前記ダウンリンクが存在する場合は前記ダウンリンクに前記メッセージを送信するステップと、を有することにある。
【００１０】
本発明の第２の特徴は、ユニキャストメッセージ送信方法であって、メッセージを受信したサーバントが、（１）自サーバントＩＤと、パーティションと、前記パーティションに含まれる各スロットと、アップサーバントと、前記各スロットに属するダウンサーバントが存在する場合は当該ダウンサーバントとを記憶するステップと、（２）受信した前記メッセージから宛先サーバントＩＤを読み取るステップと、（３）前記宛先サーバントＩＤと前記自サーバントＩＤとを比較するステップと、（４）前記宛先サーバントＩＤと前記自サーバントＩＤとが一致する場合に、前記メッセージを上位アプリケーションにわたすステップと、（５）前記宛先サーバントＩＤと前記自サーバントＩＤとが一致しない場合に、前記宛先サーバントＩＤのサーバントＩＤ値を求め、前記サーバントＩＤ値と前記パーティションとを比較し、（５−１）前記サーバントＩＤ値が前記パーティションの外の場合は、前記アップサーバントに前記メッセージを送信し、（５−２）前記サーバントＩＤ値が前記パーティション内である場合は、前記アップサーバントへ前記メッセージを送信することに加えて、前記サーバントＩＤ値と前記各スロットとを比較し、前記サーバントＩＤ値が属する前記スロットの前記ダウンサーバントに前記メッセージを送信するステップと、を有することにある。
【発明の効果】
【００１１】
本発明の第１の特徴によれば、ネットワーク機器の種類や物理的なネットワーク構成に関わらず、マルチキャストメッセージの送信が可能となる。
【００１２】
本発明の第２の特徴によれば、ネットワーク機器の種類や物理的なネットワーク構成に関わらず、ユニキャストメッセージの送信が可能となる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態では、ＴＣＰリンクのみを用いて論理ネットワークを構成する。よって、ネットワーク機器の種類や物理的なネットワーク構成に関わらず、論理ネットワークの構成が可能である。また、この論理ネットワークはツリー構造となっており、効率的な通信を行うことができる。特に、従来のＰ２Ｐ技術では困難であったリアルタイム通信にも適用することができる。
【００１４】
本発明の実施形態の論理ネットワークは、ノードの参加・離脱に応じて自律的に構成される。従って、構成情報の管理などのコストが不要になる。また、障害発生時にも論理ネットワークの再構築が自動的に行われるため、耐障害性が高い。
【００１５】
（用語の定義）
本発明の実施形態を説明するために、下記の用語を定義する。
【００１６】
図１（ａ）に示すように、論理ネットワーク上の仮想的なノードを「サーバント」（Ｓｅｒｖｅｎｔ）１１と言う。アプリケーションはサーバントを生成し、これを介して通信を行う。
【００１７】
論理ネットワークの「種」となるサーバントを「シードサーバント」（ＳｅｅｄＳｅｒｖｅｎｔ）１２と言う。論理ネットワークを構成するためには、少なくともひとつのシードサーバントが存在する必要がある。シードサーバントは論理ネットワークの核となるもので、シードサーバントを中心にシードサーバント以外のサーバントが連続して接続することで論理ネットワークが構成される。
【００１８】
サーバントを一意に識別するための識別子を「サーバントＩＤ」と言う。サーバントＩＤは、物理ネットワークのアドレス（ＩＰアドレスとポート番号）から構成することができる。また、物理ネットワークのアドレスに、かかるアドレス以外の情報を付加して構成することもできる。
【００１９】
サーバントＩＤを０以上の一意の整数値に写像したものをサーバントＩＤ値と言う。サーバントＩＤ値から、サーバントＩＤへの逆変換が可能である必要はない。つまりサーバントＩＤ値から、サーバントＩＤを求めることは出来なくても良い。
【００２０】
本発明の実施形態においては、サーバントおよびサーバント間のＴＣＰリンクにより構成されるツリー構造の論理ネットワークを構築する。
【００２１】
図１（ｂ）に示すように、あるサーバント（図１（ｂ）では中央のサーバント）から見て根に近い側のリンクをアップリンク（ＵｐＬｉｎｋ）１４、葉に近い側のリンクをダウンリンク（ＤｏｗｎＬｉｎｋ）１５と呼ぶ。また、アップリンクの先のサーバントをアップサーバント（ＵｐＳｅｒｖｅｎｔ）１６、ダウンリンクの先のサーバントをダウンサーバント（ＤｏｗｎＳｅｒｖｅｎｔ）１７と呼ぶ。
【００２２】
本発明の実施形態においては、サーバントごとのダウンリンクの最大数を既定値とする。以下、この最大数をＮと表記する。以下の例では、特に指定の無い場合、Nを１０としている。
【００２３】
（パーティションとスロット）
ある部分木を取り出した時、この部分木に含まれる全てのサーバントのサーバントＩＤ値をカバーする値域を「パーティション」（Ｐａｒｔｉｔｉｏｎ）と呼ぶ。パーティションは、この部分木の頂点のサーバントにより管理・更新される。また、パーティションをＮ個の値域に分割したものを「スロット」（Ｓｌｏｔ）と呼ぶ。
【００２４】
頂点のサーバントは、各スロットにダウンリンクを割り当て、ダウンリンクの先のサーバントにそのスロットにあたるパーティションの管理をまかせる。このとき、各スロット内のダウンリンクは、最大１本となるように調整する。
【００２５】
（算出方法）
最小値、最大値により定義された値域を[最小値，最大値]として表記する。
【００２６】
部分木のサーバントＩＤ値の値域が[vmin, vmax]であるとき、
Nx × y ≦ vmin,  vmax ＜ Nx × (y + 1)
(x, yは整数  x ＞ 0,  0 ≦ y ＜ N)
を満たす最小のxを求める。
【００２７】
この部分木のパーティションは、[Nx × y , Nx × (y + 1) - 1]であり、パーティションの幅は、Nxとなる。また、スロットの幅は、Nx-1となる。
【００２８】
（計算例）
図２に、「サーバントＩＤ値の値域」の例を挙げて、その値域から算出された「パーティション」、「パーティションの幅」及び「スロット」を示す。なお、ダウンリンクの最大数Ｎは１０とする。
【００２９】
図３（ａ）及び（ｂ）にツリー全体でのパーティション計算例を示す。なお、ダウンリンクの最大数Ｎは１０とする。図中、○の中の数値はサーバントＩＤ値である。
【００３０】
（サーバントの参加）
論理ネットワークに接続する側のサーバントをコネクター（Ｃｏｎｎｅｃｔｏｒ）、接続を受ける側のサーバントをリスナー（Ｌｉｓｔｅｎｅｒ）と呼び、それぞれの処理を示す。あるサーバントは、アップ側に対する接続処理を行っている間にも、ダウン側からの接続要求を受け付けなければならない。よって、サーバントは、コネクターとしての処理とリスナーとしての処理を並行して行える必要がある。
【００３１】
（コネクターの処理）
図４に基づいて、コネクター処理の流れを説明する。まず、対象サーバントＩＤリストに、シードサーバントのサーバントＩＤリストの内容を代入する（Ｓ１０１）。
【００３２】
次に、対象サーバントＩＤリストからひとつずつ対象サーバントＩＤを取り出して、以下の処理を実行する（Ｓ１０３）。
【００３３】
そして、対象サーバントに接続する（Ｓ１０５）。
【００３４】
接続に成功しなかった場合はステップＳ１０３へ戻り、接続に成功した場合はステップＳ１０９へ進む（Ｓ１０７）。
【００３５】
自分のサーバントＩＤを添付した参加要求電文を、リスナーへ送信する（Ｓ１０９）。
【００３６】
参加応答電文をリスナーから受信する（Ｓ１１１）。
【００３７】
参加応答電文の応答区分が「ＯＫ」ならばコネクター処理を終了する（Ｓ１１３）。
【００３８】
参加応答電文の応答区分が「他のサーバントへの接続指示」であれば、参加応答電文から接続指示サーバントＩＤを取り出し、それを対象サーバントＩＤとして、ステップＳ１０５へ戻る（Ｓ１１５）。
【００３９】
（リスナーの処理）
図５に基づいて、リスナー処理の流れを説明する。
【００４０】
まず、参加要求電文をコネクターから受信する（Ｓ２０１）。
【００４１】
次に、参加要求電文からコネクターのサーバントＩＤを取り出す（Ｓ２０３）。
【００４２】
そして、コネクターのサーバントＩＤ値を使って部分木のサーバントＩＤ値の値域を更新する（Ｓ２０５）。
【００４３】
サーバントＩＤ値の値域が[ａ，ｂ]で、コネクターのサーバントＩＤ値がｃであるとする、そして
ｃ＜ａの場合、値域は[ｃ，ｂ]に更新され、
ｂ＜ｃの場合、値域は[ａ，ｃ]に更新され、
ａ≦ｃ≦ｂの場合は、値域は更新されない。
【００４４】
例えば、参加要求電文受信前のサーバントＩＤ値の値域が［１，２］で、参加要求電文から取り出されたサーバントＩＤ値が「９１」の場合、更新後のサーバントＩＤ値の値域は［１，９１］となる。また、参加要求電文受信前のサーバントＩＤ値の値域が［１８，１９］で、参加要求電文から取り出されたサーバントＩＤ値が「１０」の場合、更新後のサーバントＩＤ値の値域は［１０，１９］となる。
【００４５】
部分木のサーバントＩＤ値の値域からパーティションとスロットを再計算する（Ｓ２０７）。このときパーティションの拡張によって、スロット内に複数のダウンリンクが該当することがある。このときは２番目以降のあふれたダウンリンクを切断する。
【００４６】
前記のように、部分木のサーバントＩＤ値の値域が[vmin, vmax]であるとき、
Nx × y ≦ vmin,  vmax ＜ Nx × (y + 1)
(x, yは整数  x ＞ 0,  0 ≦ y ＜ N)
を満たす最小のxを求める。
【００４７】
この部分木のパーティションは、[Nx × y , Nx × (y + 1) - 1]であり、パーティションの幅は、Nxとなる。
【００４８】
この部分木のスロットは、
[Nx × y                      ,  Nx × y + Nx-1 - 1], 
[Nx × y + Nx-1              ,  Nx × y + Nx-1 ×2 - 1],
：
[Nx × y + Nx-1 ×(N - 1),  Nx × y + (Nx-1 ×N) - 1]
であり、スロットの幅は、Nx-1となる。
【００４９】
例えば、参加要求電文受信前のサーバントＩＤ値の値域が［１，２］、パーティションが［０，９］の場合、参加要求電文から取り出されたサーバントＩＤ値が「９１」であるなら、更新後のサーバントＩＤ値の値域は［１，９１］、再計算後のパーティションは［０，９９］、スロットは［０，９］，［１０，１９］，［２０，２９］，［３０，３９］，［４０，４９］，［５０，５９］，［６０，６９］，［７０，７９］，［８０，８９］，［９０，９９］となる。
【００５０】
例えば、参加要求電文受信前のサーバントＩＤ値の値域が［３，７］、パーティションが［０，９］、ダウンサーバントのサーバントＩＤ値が３，４，７の場合、参加要求電文から取り出されたサーバントＩＤ値が「９１」であるなら、更新後のサーバントＩＤ値の値域は［３，９１］、再計算後のパーティションは［０，９９］、スロットは［０，９］，［１０，１９］，［２０，２９］，［３０，３９］，［４０，４９］，［５０，５９］，［６０，６９］，［７０，７９］，［８０，８９］，［９０，９９］となる。
【００５１】
このとき、スロット［０，９］にはサーバントＩＤ値が３，４，７のダウンサーバントが存在することになるため、サーバントＩＤ値４，７のサーバントへのリンクは切断される。
【００５２】
コネクターのサーバントＩＤ値が属するスロットを求め（Ｓ２０９）、そのスロットが空かを判断し（Ｓ２１１）、そのスロットが空であれば、「ＯＫ」の応答区分を持った参加応答電文を送信して（Ｓ２１３）、処理を終了する。
【００５３】
スロットに別のサーバントが割り当てられていれば、「他のサーバントへの接続指示」の応答区分と、スロットに既に割り当てられているサーバントのサーバントＩＤを接続指示サーバントとして設定した参加応答電文を送信して（Ｓ２１５）、処理を終了する。
【００５４】
既に図３（ａ）に示す状態であるとして、図３（ａ）に基づいてステップＳ２０９〜Ｓ２１５を説明する。コネクターのサーバントＩＤ値が「６」の場合、このサーバントＩＤ値が属するスロットとしてスロット［０，９］が求まる（Ｓ２０９）。このスロットには別のサーバント（サーバントＩＤ値「５」）が既に割り当てられているので、「他のサーバントへの接続指示」の応答区分と、先行サーバントのサーバントＩＤ（サーバントＩＤ値「５」）を接続指示サーバントとして設定した参加応答電文を送信する（Ｓ２１５）。
【００５５】
一方、コネクターのサーバントＩＤ値が「２１」の場合、このサーバントＩＤ値が属するスロットとしてスロット［２０，２９］が求まる（Ｓ２０９）。このスロットは空なので、「ＯＫ」の応答区分を持った参加応答電文を送信する（Ｓ２１３）。
【００５６】
（サーバントの離脱・リンクの切断）
物理的なネットワークの障害は、リンクの切断としてサーバントに検知される。また、サーバントの離脱についても、リンクの切断としてアップリンク側およびダウンリンク側のサーバントに検知される。リンク切断を検知したときの処理を以下に示す。
【００５７】
（アップリンク切断時の処理）
図６に基づいて、アップリンク切断時の処理について説明する。
【００５８】
以下では、説明のためにサーバントＩＤ値ｎのサーバントのサーバントＩＤをＩＤｎと表記する。例えば、サーバントＩＤ値５のサーバントのサーバントＩＤをＩＤ５と表記する。
【００５９】
まず、シブリングサーバントＩＤリストを取り出す（Ｓ３０１）。シブリングサーバントＩＤリストとは、同一のアップサーバントを持った兄弟のサーバントのサーバントＩＤリストを意味する。このリストは、アップサーバントから随時送信されるものである。図３（ａ）の例では、サーバントＩＤ値「５」のサーバントのシブリングサーバントＩＤリストには、「ＩＤ５」と「ＩＤ１３」と「ＩＤ９０」が記されている。また、サーバントＩＤ値「９２」のサーバントのシブリングサーバントＩＤリストには、「ＩＤ９２」と「ＩＤ９５」と「ＩＤ９９」が記されている。
【００６０】
次に、シブリングサーバントＩＤリスト上の自サーバントの位置をもとめる（Ｓ３０３）。
【００６１】
そして、自サーバントが先頭のサーバントか調べる（Ｓ３０５）。
【００６２】
自サーバントがシブリングサーバントＩＤリストにおける先頭のサーバントであれば、コネクター処理を開始する（Ｓ３０７）。
【００６３】
自サーバントがシブリングサーバントＩＤリストにおける先頭のサーバントでなければ、シブリングサーバントＩＤリストを対象サーバントＩＤリストに代入し（Ｓ３０９）、コネクター処理を開始する（Ｓ３１１）。
【００６４】
既に図３（ａ）に示す状態であるとして、図３（ａ）に基づいてステップＳ３０１〜Ｓ３１１を説明する。まず、サーバントＩＤ値「９０」のサーバントが離脱し、サーバントＩＤ値「９２」のサーバントのアップリンクが切断された場合について説明する。サーバントＩＤ値「９２」のサーバントは、シブリングサーバントＩＤリストを取り出す（Ｓ３０１）。取り出されたリストには、「ＩＤ９２，ＩＤ９５，ＩＤ９９」のように記載されている。よって、サーバントＩＤ値「９２」のサーバントは、シブリングサーバントＩＤリスト上における「先頭のサーバントである」（Ｓ３０３，３０５）。このため、サーバントＩＤ値「９２」のサーバントは、サーバントＩＤ値「３」のシードサーバントを対象サーバントとしてコネクター処理を開始する（Ｓ３０７）。
【００６５】
次に、サーバントＩＤ値「９０」のサーバントが離脱し、サーバントＩＤ値「９５」のサーバントのアップリンクが切断された場合について説明する。サーバントＩＤ値「９５」のサーバントは、シブリングサーバントＩＤリストを取り出す（Ｓ３０１）。取り出されたリストには、「ＩＤ９２，ＩＤ９５，ＩＤ９９」のように記載されている。よって、サーバントＩＤ値「９５」のサーバントは、シブリングサーバントＩＤリスト上における位置は「先頭のサーバントではない」（Ｓ３０３，３０５）。このため、サーバントＩＤ値「９５」のサーバントは、シブリングサーバントＩＤリストを対象サーバントＩＤリストに代入し（Ｓ３０９）、サーバントＩＤ値「９２」のサーバントに対してコネクター処理を開始する（Ｓ３０７）。
【００６６】
図３（ｂ）にこれらの処理が完了した論理ネットワークの状態を示す。なお、サーバントＩＤ値「９９」のサーバントも、サーバントＩＤ値「９５」のサーバントと同様に、サーバントＩＤ値「９２」のサーバントに対してコネクター処理を行う。
【００６７】
このようにして、サーバントの離脱・リンクの切断が生じても、論理ネットワークは自律的に構成される。従って、構成情報の管理などのコストが不要になる。また、障害発生時にも論理ネットワークの再構築が自動的に行われるため、耐障害性が高い。
【００６８】
（ダウンリンク切断時の処理）
ダウンリンク切断時は、切断されたダウンリンクが割り当てられていたスロットを求めて、そのスロットの状態を空とする。
【００６９】
（論理ネットワークのツリー最適化）
本実施形態では、論理ネットワークのツリーが冗長となることを防止するために、論理ネットワーク構成処理と並行して、パーティションに基づいたツリー最適化処理を行う。ツリーの最適化処理は、ツリーの頂点となるシードサーバントとそれ以外のサーバントに分担して行われる。以下に各処理を説明する。
【００７０】
（頂点のシードサーバントのツリー最適化処理）
１．一定時間おきに以下の処理を実行する。
【００７１】
１．１自サーバントのパーティション情報を添付したツリー最適化電文を作成する。
【００７２】
１．２全てのダウンサーバントにツリー最適化電文を送信する。
【００７３】
（頂点以外のサーバントのツリー最適化処理）
図７に基づいて、頂点以外のサーバントのツリー最適化処理の流れを説明する。
【００７４】
アップサーバントからの電文が受信されるのを待つ（Ｓ４０１）。
【００７５】
受信電文がツリー最適化電文か判断する（Ｓ４０３）。
【００７６】
ステップＳ４０３で「ＹＥＳ」に分岐する場合、ツリー最適化電文からアップサーバントのパーティション情報を取り出す（Ｓ４０５）。
【００７７】
自サーバントのパーティションがアップサーバントのパーティションに含まれるか判断する（Ｓ４０７）。なお、自サーバントのパーティションがアップサーバントのパーティションと等しい場合は「含まれない」と判断する。
【００７８】
ステップＳ４０７で「ＹＥＳ」に分岐する場合、自サーバントのパーティション情報を添付したツリー最適化電文を作成する（Ｓ４０９）。
【００７９】
全てのダウンサーバントにツリー最適化電文を送信する（Ｓ４１１）。
【００８０】
ステップＳ４０７で「ＮＯ」に分岐する場合、全てのダウンサーバントにリセット電文を送信する（Ｓ４１３）。
【００８１】
全てのダウンリンクを切断する（Ｓ４１５）。
【００８２】
自サーバントの、部分木の値域、パーティション、スロットをすべてクリアする（Ｓ４１７）。
【００８３】
ステップＳ４０３で「ＮＯ」に分岐する場合、受信電文がリセット電文か判断する（Ｓ４２１）。
【００８４】
ステップＳ４２１で「ＹＥＳ」に分岐する場合、コネクター処理を開始する。
【００８５】
なお、リセット電文受信後、アップサーバントによってアップリンクが切断されるが、コネクター処理が重複して起動することを避けるために、アップリンク切断時の処理が起動しないように制御する。
【００８６】
（通信メッセージのルーティング）
通信メッセージのルーティングについて説明する。
【００８７】
宛先を指定しない同報メッセージをマルチキャストメッセージと呼び、宛先サーバントＩＤを指定するメッセージをユニキャストメッセージと呼ぶ。以下にそれぞれの通信メッセージのルーティング処理を示す。
【００８８】
（マルチキャストメッセージのルーティング）
図８に基づいて、マルチキャストメッセージのルーティング処理について説明する。
【００８９】
まず、アプリケーションにメッセージをわたす（Ｓ５０１）。
【００９０】
次に、アップリンクが存在するか判断し（Ｓ５０３）、アップリンクが存在すれば、アップリンクにメッセージを送信する（Ｓ５０５）。具体的には、ＴＣＰ／ＩＰソフトにアップサーバントのポート番号とＩＰアドレスを、宛先ポート番号と宛先ＩＰアドレスとして通知し、送信を依頼する。
【００９１】
そして、ダウンリンクが存在するか判断し（Ｓ５０７）、ダウンリンクが存在すれば、各ダウンリンクにメッセージを送信する（Ｓ５０９）。具体的には、ＴＣＰ／ＩＰソフトにダウンサーバントのポート番号とＩＰアドレスを、宛先ポート番号と宛先ＩＰアドレスとして通知し、送信を依頼する。
【００９２】
（ユニキャストメッセージのルーティング）
図９に基づいて、ユニキャストメッセージのルーティング処理について説明する。
【００９３】
まず、宛先が自分自身か判断する（Ｓ６０１）。具体的には、メッセージヘッダに含まれる宛先サーバントＩＤと、自分の記憶装置１０３に記憶されている自分のサーバントＩＤとを比較し、両サーバントＩＤが一致すれば宛先が自分自身であると判断する。
【００９４】
ステップＳ６０１で「ＹＥＳ」に分岐する場合、アプリケーションにメッセージを渡して（Ｓ６０３）、処理を終了する。
【００９５】
ステップＳ６０１で「ＮＯ」に分岐する場合、宛先サーバントＩＤのサーバントＩＤ値を求める（Ｓ６０５）。
【００９６】
求めたサーバントＩＤ値が自分のパーティションの外か判断する（Ｓ６０７）。
【００９７】
ステップＳ６０７で「ＹＥＳ」に分岐する場合、アップリンクにメッセージを送信する（Ｓ６０９）。
【００９８】
ステップＳ６０７で「ＮＯ」に分岐する場合、該当するスロットのダウンリンクにメッセージを送信し（Ｓ６１１）かつ、アップリンクにメッセージを送信する（Ｓ６１３）。
【実施例１】
【００９９】
本発明の適用システムとして「ニュース配信システム」を取り上げ、その実装方法および実施例について説明する。このニュース配信システムは、ニュース受信を待つ複数のコンピュータに、ニュース発信コンピュータからリアルタイムにニュース情報を配信するシステムである。
【０１００】
図１０に、ニュース配信システムのシステム構成を示す。
【０１０１】
本発明の手法を利用してニュース配信システムのための論理ネットワークを構築し、その論理ネットワーク上でのメッセージ通信を行うための通信ライブラリを「ＰＢＴＣ通信ライブラリ」（ＰＢＴＣ：Partition-Based Tree Construction）と言う。
【０１０２】
ニュース情報発信者の指示を受けて、ニュース情報の同報配信を行うプログラムを「ニュース発信プログラム」と言う。ニュース情報は、ＰＢＴＣ通信ライブラリを利用してマルチキャストメッセージとして送信される。
【０１０３】
ＰＢＴＣ通信ライブラリからのニュース情報の受信を待ち、受信時にコンピュータ画面にその情報を表示するプログラムを「ニュース受信プログラム」と言う。
【０１０４】
ＰＢＴＣ通信ライブラリが利用する定義データを「ネットワーク定義データ」と言う。論理ネットワークの構成に必要なシードサーバントのサーバントＩＤリストを含む。
【０１０５】
図１０に示すように、本実施形態で使用するサーバント１００は、全体を制御する主制御部（制御手段、以下「ＣＰＵ」とする）１０１に記憶装置１０３が接続されている。ＣＰＵ１０１には、また、入出力制御部１０５を介して送受信部１０７と表示装置１０９が接続されている。さらに、図示していないが、基本入出力システム（ＢＩＯＳ）などが記憶されるリードオンリーメモリ（ＲＯＭ）と、プログラム領域とデータ領域を有するランダムアクセスメモリ（ＲＡＭ）とがＣＰＵ１０１に接続されている。
【０１０６】
記憶装置１０３は、ハードディスク、フレキシブルディスク、光ディスク、光磁気ディスクなどのストレージ手段であり、ニュース送信プログラム１１１、ニュース受信プログラム１１３、ＰＢＴＣ通信ライブラリ１１５、ネットワーク定義データ１１７などが格納されている。
【０１０７】
図１６（ａ）にネットワーク定義データ１１７の内容を示す。図１６に示すように、ネットワーク定義データ１１７には、シードサーバントＩＤと、自サーバントＩＤと、サーバントＩＤ値の値域と、パーティション情報と、スロット情報と、アップ／ダウンサーバント情報とが含まれる。なお、ネットワーク定義データ１１７の全てを記憶装置１０３に格納しなくても良い。例えば、シードサーバントＩＤのみを記憶装置１０３に格納し、自サーバントＩＤ、サーバントＩＤ値の値域などはＲＡＭ上に保持するとしても良い。
【０１０８】
また、記憶装置１０３には、図示していないが、ＴＣＰ／ＩＰなどの通信プロトコルに従ってデータの送受信が可能なオペレーティングシステム（ＯＳ）などが格納されている。
【０１０９】
ニュース送信のみを行うサーバント１００ａ、ニュース受信及びニュース送信を行うサーバント１００ｂ並びにニュース受信のみを行うサーバント１００ｃは、ＴＣＰ／ＩＰネットワーク１２０を介してニュースを送受信する。ニュース送信のみを行うサーバント１００ａには、ニュース受信プログラム１１３は不要である。ニュース受信のみを行うサーバント１００ｃには、ニュース送信プログラム１１１は不要である。
【０１１０】
表示装置１０９は、ニュース受信プログラムが受信したニュースを表示する。表示装置１０９には、ＣＲＴ（陰極線管）ディスプレイ、ＴＦＴ液晶などの液晶ディスプレイが含まれる。
【０１１１】
以下に、各プログラムモジュールの処理の流れを示す。
【０１１２】
（ＰＢＴＣ通信ライブラリ）
１．サーバントの生成依頼を待つ。
【０１１３】
２．サーバントの生成依頼を受けると以下のスレッドを起動する。
【０１１４】
・コネクタースレッド
・リスナースレッド
・リンク切断検知スレッド
・ルーティングスレッド
３．ルーティングスレッドは、上位プログラムからのメッセージ送受信の依頼を待つ。
【０１１５】
（ニュース発信プログラム）
１．ＰＢＴＣ通信ライブラリにサーバント生成依頼を行う。
【０１１６】
２．利用者からのニュース配信指示を待つ。
【０１１７】
３．ニュース配信指示を受けたら、ニュース情報をマルチキャストメッセージとしてＰＢＴＣ通信ライブラリに送信を依頼する。
【０１１８】
（ニュース受信プログラム）
１．ＰＢＴＣ通信ライブラリにサーバント生成依頼を行う。
【０１１９】
２．ＰＢＴＣ通信ライブラリにメッセージ受信を依頼する。
【０１２０】
３．メッセージの受信を待つ。
【０１２１】
４．メッセージを受信したら、ニュース情報を取り出して、表示装置１０９の画面に表示する。
【０１２２】
５．「３．メッセージの受信を待つ。」へ戻る。
【０１２３】
ニュース配信システムの実施形態について、仮想的な事例を使って具体的に説明する。
【０１２４】
（実施例の内容）
X社では、社内横断的なニュースを従業員へ配信するために、ニュース配信システムを利用している。ニュース発信を専門とする部署Pから、受信部署Ｓ１、Ｓ２、・・・へニュース配信を行っている。受信部署の各従業員のコンピュータは、起動時にニュース受信プログラム１１３が起動するように設定されている。
【０１２５】
図１１に、ニュース配信システムに関わる部分のネットワークの構成を示す。図１１に示すように、発信部署Ｐのネットワークアドレスは192.168.1.0/24、受信部署Ｓ１のネットワークアドレスは192.168.11.0/24、受信部署Ｓ２のネットワークアドレスは192.168.12.0/24とする。
【０１２６】
また、発信部署Pでは、ニュース配信の確認を行うためのコンピュータを２台設置しており、常にニュース受信プログラムが起動した状態となっている。なお、以下では、ポート番号は省略して表記する。ニュース配信確認コンピュータのＩＰアドレスを以下に示す。
【０１２７】
192.168.1.1
192.168.1.2
これら2台のコンピュータには、論理ネットワークのシードサーバントの役割を持たせる。よって、ネットワーク定義データの内容は、以下のようになっている。
【０１２８】
ＳｅｅｄＳｅｒｖｅｎｔ
192.168.1.1
192.168.1.2
また、ＰＢＴＣは以下のように調整されている。ダウンリンクの最大数Ｎは「１６」、サーバントＩＤのＩＰアドレスとポート番号をそのまま６バイトの整数としてサーバントＩＤ値とする。
【０１２９】
図１２に、起動しているコンピュータの部署と、ＩＰアドレスと、用途とを示す。図１２に示すように、
発信部署ＰのＩＰアドレス192.168.1.1〜192.168.1.2のコンピュータは、ニュース受信コンピュータ兼シードサーバントであり、
発信部署ＰのＩＰアドレス192.168.1.3〜192.168.1.4のコンピュータは、ニュース発信コンピュータであり、
受信部署Ｓ１のＩＰアドレス192.168.11.1〜192.168.11.4のコンピュータは、ニュース受信コンピュータであり、
受信部署Ｓ２のＩＰアドレス192.168.12.1〜192.168.12.3のコンピュータも、ニュース受信コンピュータである。
【０１３０】
図１３に、図１２に示すコンピュータの論理ネットワークの構成を示す。図１３に示すように、
頂点のサーバントは、ＩＰアドレス192.168.1.1のコンピュータのサーバントであり、
ＩＰアドレス192.168.1.1のコンピュータのダウンサーバントは、ＩＰアドレス192.168.1.2, 192.168.11.4, 192.168.12.2のコンピュータのサーバントであり、
ＩＰアドレス192.168.1.2のコンピュータのダウンサーバントは、ＩＰアドレス192.168.1.3, 192.168.1.4のコンピュータのサーバントであり、
ＩＰアドレス192.168.11.4のコンピュータのダウンサーバントは、ＩＰアドレス192.168.11.1〜192.168.11.3のコンピュータのサーバントであり、
ＩＰアドレス192.168.12.2のコンピュータのダウンサーバントは、ＩＰアドレス192.168.12.1, 192.168.12.3のコンピュータのサーバントである。
【０１３１】
ニュース配信システムの動作を、以下のシナリオ１，２を例にとって説明する。以下では、図１３の論理ネットワークが構成されている状況を前提とする。
【０１３２】
（シナリオ１：ニュース受信コンピュータ[192.168.12.4]の起動）
ニュース受信部署S2に属するニュース受信コンピュータ[192.168.12.4]が起動し、論理ネットワークに参加するまでの動作の流れを以下に示す。
【０１３３】
１．ニュース受信プログラムが起動し、サーバント[192.168.12.4]が生成される。
【０１３４】
２．サーバント[192.168.12.4]は、対象サーバントリストに[192.168.1.1]と[192.168.1.2]を設定し（Ｓ１０１）、先頭のシードサーバントであるサーバント[192.168.1.1]のサーバントＩＤを取り出し（Ｓ１０３）、サーバント[192.168.1.1]に接続し（Ｓ１０５）、自サーバントＩＤ[192.168.12.4]を添付した参加要求を送信する（Ｓ１０９）。
【０１３５】
３．サーバント[192.168.1.1]は、サーバント[192.168.12.4]から参加要求を受信し（Ｓ２０１）、参加要求からサーバント[192.168.12.4]のサーバントＩＤを取り出し（Ｓ２０３）、サーバント[192.168.12.4]のサーバントＩＤ値を使って部分木を更新し（Ｓ２０５）、部分木の値域からパーティションとスロットを再計算し（Ｓ２０７）、サーバント[192.168.12.4]のサーバントＩＤ値が属するスロットを求め（Ｓ２０９）、求められたスロットが空か判断し（Ｓ２１１）、求められたスロットに割り当てられているサーバント[192.168.12.2]への接続指示を参加応答として返す（Ｓ２１５）。
【０１３６】
これによって、サーバント[192.168.1.1]のサーバントＩＤ値の値域は
[192.168.1.1, 192.168.12.3]
から
[192.168.1.1, 192.168.12.4]
へ更新される。
【０１３７】
サーバント[192.168.1.1]のパーティションは
[192.168.0.0, 192.168.15.255]
のままである。
【０１３８】
そして、図１６（ｂ）に示すスロット情報に基づいて、サーバント[192.168.12.4]が属するスロット[192.168.12.0, 192.168.12.255]を求める（Ｓ２０９）。図１６（ｂ）に示すように、スロット[192.168.12.0, 192.168.12.255]には既にサーバント[192.168.12.2]が存在する。よって、求められたスロットは空ではないと判断し（Ｓ２１１）、[192.168.12.2]への接続指示を参加応答として返す（Ｓ２１５）。
【０１３９】
サーバント[192.168.12.4]は、サーバント[192.168.1.1]から参加応答を受信する（Ｓ１１１）。
【０１４０】
参加応答の内容は「ＯＫ」ではないので、参加応答からサーバント[192.168.12.2]のサーバントＩＤを取り出し、このサーバントＩＤを新たな対象サーバントＩＤとし（Ｓ１１５）、サーバント[192.168.12.2]へ接続し（Ｓ１０５）、参加要求を送信する（Ｓ１０９）。
【０１４１】
サーバント[192.168.12.2]は、サーバント[192.168.12.4]から参加要求を受信し（Ｓ２０１）、参加要求からサーバント[192.168.12.4]のサーバントＩＤを取り出し（Ｓ２０３）、サーバント[192.168.12.4]のサーバントＩＤ値を使って部分木を更新し（Ｓ２０５）、部分木の値域からパーティションとスロットを再計算し（Ｓ２０７）、サーバント[192.168.12.4]のサーバントＩＤ値が属するスロットを求め（Ｓ２０９）、求められたスロットが空か判断する（Ｓ２１１）。
【０１４２】
具体的には、サーバント[192.168.12.2]のサーバントＩＤ値の値域は
[192.168.12.1, 192.168.12.3]
から
[192.168.12.1, 192.168.12.4]
へ更新される。
【０１４３】
サーバント[192.168.12.2]のパーティションは
[192.168.12.0, 192.168.12.15]
のままである。
【０１４４】
サーバント[192.168.12.4]が属するスロットは空なので、サーバント[192.168.12.2]は、接続OKの参加応答を返す（Ｓ２１３）。この結果、サーバント[192.168.12.4]はサーバント[192.168.12.2]のダウンサーバントとなる。
【０１４５】
図１４に、サーバント[192.168.12.4]がサーバント[192.168.12.2]のダウンサーバントとなった論理ネットワークを示す。
【０１４６】
このように、サーバントの参加に応じて、論理ネットワークが自律的に構成される。従って、論理ネットワーク全体の構成情報を管理するなどのコストは不要である。
【０１４７】
（シナリオ2：ニュース発信コンピュータ[192.168.1.4]からのニュース発信）
ニュース発信部署Pに属するニュース発信コンピュータ[192.168.1.4]（論理ネットワークに参加ずみ）から、ニュース発信を行った場合の動作の流れを以下に示す。
【０１４８】
ニュース発信プログラムはサーバント[192.168.1.4]を使って、ニュースをマルチキャストメッセージとして送信する。
【０１４９】
サーバント[192.168.1.4]は、自己の記憶装置１０３に格納されているアップ／ダウンサーバント情報（図１６（ｃ））に基づいてアップリンクが存在するか調べ（Ｓ５０３）、アップリンクが存在するので、アップサーバント[192.168.1.2]へニュースをマルチキャストメッセージとして送信し（Ｓ５０５）、さらにダウンリンクが存在するか調べ（Ｓ５０７）、ダウンリンクが存在しないので、処理を終了する。
【０１５０】
サーバント[192.168.1.2]は、ニュース受信プログラムにニュースを渡し（Ｓ５０１）、ローカルの記憶装置１０３に格納されているアップ／ダウンサーバント情報（図１６（ｄ））に基づいてアップリンクが存在するか調べ（Ｓ５０３）、アップリンクが存在するので、アップサーバント[192.168.1.1]へニュースをマルチキャストメッセージとして送信し（Ｓ５０５）、さらにダウンリンクが存在するか調べ（Ｓ５０７）、ダウンリンクが存在するので、ダウンサーバント[192.168.1.3]へニュースを送信する（Ｓ５０９）。
【０１５１】
なお、サーバント[192.168.1.4]もダウンサーバントに該当するが、サーバント[192.168.1.4]はサーバント[192.168.1.2]が受信したニュースの送信元であるから、当該ニュースを送信する必要はない。このため、サーバント[192.168.1.4]は送信先から除かれる。つまり、ニュースを受信したサーバント[192.168.1.2]は、アップ／ダウンサーバント情報（図１６（ｄ））から送信先候補となるサーバントＩＤを取得するが、その送信先候補から当該ニュースの送信元であるサーバント[192.168.1.4]を除いた残りのサーバントにニュースを送信する。
【０１５２】
サーバント[192.168.1.1]は、ニュース受信プログラムにニュースを渡し（Ｓ５０１）、ローカルの記憶装置１０３に格納されているアップ／ダウンサーバント情報（図１６（ｅ））に基づいてアップリンクが存在するか調べ（Ｓ５０３）、アップリンクが存在しないのでステップＳ５０７へ進み、ダウンリンクが存在するか調べ（Ｓ５０７）、ダウンリンクが存在するので、ダウンサーバントであるサーバント[192.168.11.4]とサーバント[192.168.12.2]へニュースを送信する（Ｓ５０９）。
【０１５３】
なお、サーバント[192.168.1.2]もダウンサーバントに該当するが、サーバント[192.168.1.2]はサーバント[192.168.1.1]が受信したニュースの送信元であるから、当該ニュースを送信する必要はない。このため、サーバント[192.168.1.2]は送信先から除かれる。つまり、ニュースを受信したサーバント[192.168.1.1]は、アップ／ダウンサーバント情報（図１６（ｅ））から送信先候補となるサーバントＩＤを取得するが、その送信先候補から当該ニュースの送信元であるサーバント[192.168.1.2]を除いた残りのサーバントにニュースを送信する。
【０１５４】
サーバント[192.168.11.4]は、ニュース受信プログラムにニュースを渡し（Ｓ５０１）、ローカルの記憶装置１０３に格納されているアップ／ダウンサーバント情報（図１６（ｆ））に基づいてアップリンクが存在するか調べ（Ｓ５０３）、アップリンクが存在するが、アップサーバント[192.168.1.1]はメッセージ送信元であるため、かかるアップサーバント[192.168.1.1]にメッセージを送信することなく、ステップＳ５０７へ進む。
【０１５５】
そして、ダウンリンクが存在するか調べ（Ｓ５０７）、ダウンサーバントであるサーバント[192.168.11.1]、[192.168.11.2]、及び[192.168.11.3]へニュースを送信する（Ｓ５０９）。
【０１５６】
サーバント[192.168.12.2]も、サーバント[192.168.11.4]と同様に、ダウンサーバントに該当するサーバント[192.168.12.1]、[192.168.12.3]、及びサーバント[192.168.12.4]へニュースを送信する（Ｓ５０９）。
【０１５７】
図１５に、マルチキャストメッセージの転送状況を示す。図１５に示すように、
サーバント[192.168.1.4]からサーバント[192.168.1.2]へ、
サーバント[192.168.1.2]からサーバント[192.168.1.1],[192.168.1.3]へ、
サーバント[192.168.1.1]からサーバント[192.168.11.4],[192.168.12.2]へ、
サーバント[192.168.11.4]からサーバント[192.168.11.1],[192.168.11.2],[192.168.11.3]へ、
サーバント[192.168.12.2]からサーバント[192.168.12.1],[192.168.12.3],[192.168.12.4]へ、
マルチキャストメッセージが順次、転送される。
【０１５８】
マルチキャストメッセージを受信した各ニュース受信プログラムは、ニュースを画面上に表示する。
【０１５９】
このようにして、ＩＰマルチキャスト通信をサポートしていないネットワーク機器であっても、設定・維持のためのコストをかけることなく、またサブネット単位などの物理的なネットワーク構成に依存することなく、マルチキャストが可能となる。
【図面の簡単な説明】
【０１６０】
【図１】（ａ）はサーバント、シードサーバントを説明するための図、（ｂ）はアップサーバント、ダウンサーバント、アップリンク、ダウンリンクを説明するための図である。
【図２】サーバントＩＤ値の値域、パーティション、パーティションの幅、スロットを説明するための図である。
【図３】（ａ）は論理ネットワーク構成とそれに対応するサーバントＩＤ値、パーティション、スロットを説明し、（ｂ）は一部のサーバントが離脱・リンクが切断した場合について説明するための図である。
【図４】コネクター処理の流れを説明するためのフローチャートである。
【図５】リスナー処理の流れを説明するためのフローチャートである。
【図６】アップリンク切断時の処理の流れを説明するためのフローチャートである。
【図７】ツリー最適化処理の流れを説明するためのフローチャートである。
【図８】マルチキャストメッセージのルーティング処理の流れを説明するためのフローチャートである。
【図９】ユニキャストメッセージのルーティング処理の流れを説明するためのフローチャートである。
【図１０】ニュース配信システムのシステム構成を示す図である。
【図１１】ニュース配信システムに関わる部分のネットワークの構成を示す図である。
【図１２】起動しているコンピュータの部署と、ＩＰアドレスと、用途とを示す図である。
【図１３】図１２に示すコンピュータの論理ネットワークの構成を示す図である。
【図１４】図１３に示す論理ネットワークに、サーバント[192.168.12.4]が参加して、サーバント[192.168.12.2]のダウンサーバントとなった論理ネットワークを示す図である。
【図１５】図１４に示す論理ネットワークにおけるマルチキャストメッセージの転送状況を示す図である。
【図１６】（ａ）はネットワーク定義データを説明し、（ｂ）はスロット情報を説明し、（ｃ）〜（ｆ）はアップ／ダウンサーバント情報を説明するための図である。
【符号の説明】
【０１６１】
１０１…主制御部（ＣＰＵ）
１０３…記憶装置
１０５…入出力制御部
１０７…送受信部
１０９…表示装置
１１１…ニュース送信プログラム
１１３…ニュース受信プログラム
１１５…ＰＢＴＣ通信ライブラリ
１１７…ネットワーク定義データ
【図１】
2006222987.tif 000003
【図２】
2006222987.tif 000004
【図３】
2006222987.tif 000005
【図４】
2006222987.tif 000006
【図５】
2006222987.tif 000007
【図６】
2006222987.tif 000008
【図７】
2006222987.tif 000009
【図８】
2006222987.tif 000010
【図９】
2006222987.tif 000011
【図１０】
2006222987.tif 000012
【図１１】
2006222987.tif 000013
【図１２】
2006222987.tif 000014
【図１３】
2006222987.tif 000015
【図１４】
2006222987.tif 000016
【図１５】
2006222987.tif 000017
【図１６】
2006222987.tif 000018