(57)【要約】【課題】ネットワークシステムでのディレクトリ情報を用いたファイル管理において、他のノードにディレクトリ情報に関する問い合わせを行う場合、トラフィックの増大により、ファイル転送などの他の重要な処理が影響を受けて滞ることが生じないようにするディレクトリ情報の管理方法、及び管理システムを提供する。【解決手段】ディレクトリ情報に関する問い合わせに対して、問い合わせを受けた各ノードが、それぞれ時間平均の通信量が所定値を超えないように調整してデータ送信を行うことで、ネットワークに対する通信負荷が過剰にならないよう抑制する。【選択図】図９
2008304981.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード間でファイルを分散共有するネットワークシステムにおけるディレクトリ情報の管理方法であって、
前記ディレクトリ情報を保有する第１のノードが、該ノードの保有する前記ディレクトリ情報を更新するために、第２のノードに、該ノードの保有するファイルのリスト情報を要求するディレクトリ情報要求工程と、
前記第１のノードから要求を受けた前記第２のノードが、前記リスト情報を前記第１のノードに送信するディレクトリ情報送信工程と、
前記第２のノードから受信した前記リスト情報に基づき、前記第１のノードが前記ディレクトリ情報を更新するディレクトリ情報更新工程と、を有し、
前記ディレクトリ情報送信工程においては、
前記第２のノードは、要求された前記リスト情報を、その時間平均の通信量が所定値を超えないように調整しながら前記第１のノードに送信する
ことを特徴とするディレクトリ情報の管理方法。
【請求項２】
前記ディレクトリ情報送信工程では、
前記リスト情報は、送信する単位毎に、調整された所定の時間間隔で送信される
ことを特徴とする請求項１に記載のディレクトリ情報の管理方法。
【請求項３】
前記ディレクトリ情報送信工程では、
前記リスト情報のファイル項目毎に優先順位が付され、優先順位の高いファイル項目から順番に送信される
ことを特徴とする請求項１または２に記載のディレクトリ情報の管理方法。
【請求項４】
前記リスト情報のファイル項目毎の優先順位は、
当該ファイルを作成、あるいは更新した時刻に基づいて付される
ことを特徴とする請求項３に記載のディレクトリ情報の管理方法。
【請求項５】
前記リスト情報のファイル項目毎の優先順位は、
当該ファイルの参照された回数、あるいは頻度に基づいて付される
ことを特徴とする請求項３に記載のディレクトリ情報の管理方法。
【請求項６】
前記ディレクトリ情報要求工程では、ファイル項目の優先順位を決定するための情報を付加して、前記リスト情報を要求し、
前記ディレクトリ情報送信工程では、前記優先順位を決定するための情報に基づいて、前記リスト情報にファイル項目毎の優先順位が付される
ことを特徴とする請求項３に記載のディレクトリ情報の管理方法。
【請求項７】
前記ディレクトリ情報要求工程では、必要なファイル項目を決定するための優先順位条件を付加して、前記リスト情報を要求し、
前記ディレクトリ情報送信工程では、前記リスト情報において前記優先順位条件を満たす優先順位のファイル項目だけを順に送信する
ことを特徴とする請求項３に記載のディレクトリ情報の管理方法。
【請求項８】
前記ディレクトリ情報送信工程は、
前記ディレクトリ情報要求工程における前記リスト情報の要求に応答するものであり、ファイル自体に対する処理要求への応答を優先して実行される
ことを特徴とする請求項１乃至７の何れか１項に記載のディレクトリ情報の管理方法。
【請求項９】
前記ディレクトリ情報送信工程では、
前記リスト情報の送信を開始する前に、前記リスト情報の要求を受理した旨を送信する
ことを特徴とする請求項１乃至８の何れか１項に記載のディレクトリ情報の管理方法。
【請求項１０】
複数のノード間でファイルを分散共有するネットワークシステムにおけるディレクトリ情報の管理システムであって、
前記ディレクトリ情報を保有する第１のノードと、
自らの保有するファイルのリスト情報を保有する第２のノードとを有し、
前記第１のノードは、
前記ディレクトリ情報を更新するために、前記第２のノードに前記リスト情報を要求するディレクトリ情報要求手段と、
前記第２のノードから受信した前記リスト情報に基づき、前記ディレクトリ情報を更新するディレクトリ情報更新手段と、を有し、
前記第２のノードは、
前記第１のノードから要求を受けた前記リスト情報を、前記第１のノードに送信するディレクトリ情報送信手段を有し、
前記ディレクトリ情報送信手段は、
要求された前記リスト情報を、その時間平均の通信量が所定値を超えないように調整しながら、前記第１のノードに送信する
ことを特徴とするディレクトリ情報の管理システム。
【請求項１１】
前記ディレクトリ情報送信手段は、
前記リスト情報を、送信単位毎に、調整された所定の時間間隔で送信する
ことを特徴とする請求項１０に記載のディレクトリ情報の管理システム。
【請求項１２】
前記ディレクトリ情報送信手段は、
前記リスト情報のファイル項目毎に優先順位を付し、優先順位の高いファイル項目から順番に送信する
ことを特徴とする請求項１０または１１に記載のディレクトリ情報の管理システム。
【請求項１３】
前記リスト情報のファイル項目毎の優先順位は、
当該ファイルを作成、あるいは更新した時刻に基づいて付す
ことを特徴とする請求項１２に記載のディレクトリ情報の管理システム。
【請求項１４】
前記リスト情報のファイル項目毎の優先順位は、
当該ファイルの参照された回数、あるいは頻度に基づいて付す
ことを特徴とする請求項１２に記載のディレクトリ情報の管理システム。
【請求項１５】
前記ディレクトリ情報要求手段は、ファイル項目毎の優先順位を決定するための情報を付加して、前記リスト情報を要求し、
前記ディレクトリ情報送信手段は、前記優先順位を決定するための情報に基づいて、前記リスト情報にファイル項目毎の優先順位を付す
ことを特徴とする請求項１２に記載のディレクトリ情報の管理システム。
【請求項１６】
前記ディレクトリ情報要求手段は、必要なファイル項目を決定するための優先順位条件を付加して、前記リスト情報を要求し、
前記ディレクトリ情報送信手段は、前記リスト情報において前記優先順位条件を満たす優先順位のファイル項目だけを順に送信する
ことを特徴とする請求項１２に記載のディレクトリ情報の管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード間でファイルを分散共有するネットワークにおけるディレクトリ情報の管理方法、及びディレクトリ情報の管理システムに関する。
【背景技術】
【０００２】
近年、ネットワークを構成する任意のノード間で自由にデータの送受信を行うような通信形態を有するネットワークが盛んに利用されるようになってきた。
【０００３】
従来は、中央にホストの役目を担ったサーバなどがあり、クライアントとしての各端末が、それぞれホストサーバにアクセスし、端末間でやり取りが必要であれば、ホストサーバが仲介して行うというタイプの中央集中処理型のネットワークが主流であった。
【０００４】
これに対して、いわゆる分散処理型のネットワークが徐々に登場してきている。保存する情報を分散する、またその処理を分散するといった機構を実現するためには、ネットワークを構成する各ノード間で、自由にデータ通信が行われなければならない。
【０００５】
こういった分散処理のネットワーク形態を効率的に利用し、任意のノード間でデータファイルを分散共有し、その都度データ送受信を行うことで互いにファイルを利用することができるようなシステムが開発され、利用されてきている。
【０００６】
これらにより、ネットワークシステムの利用形態としての自由度は向上し、ユーザは大きな利便性を手に入れたが、一方では、各処理能力を分散して所有しなければならず、また効率という点からも、ノード間の通信量が増大し、ネットワークに過大な負担を与える場合も生じやすい。
【０００７】
例えば、データを分散して所有するとすれば、ネットワークの規模が大きければ大きいほど膨大なデータをユーザは共有することができるが、しかし従来のように特定のサーバにアクセスすれば、それを取得できるという訳にはいかない。まず、広いネットワーク上から必要なデータファイルがどのノードに保有されているかを探索しなければならない。そして、見つけ出したノードにアクセスして、求めるファイルを取得する必要がある。
【０００８】
求めるファイルを保有するノードを探索するための技術として、ファイルが必要になる度に、ネットワーク内のノードに対して、そのファイルを保有しているかどうかを問い合わせるといった方法が行われてきた。
【０００９】
しかしながら、こういった方法では探索の自由度は高いが、網羅的に多数のノードに問い合わせることになるため、ファイルアクセスの度に大きなトラフィックが発生する。処理に伴うネットワークへの負担が大きく、ファイルにアクセスできるまでに長い時間を要したり、その影響で他の重要な処理ができなくなったりすることも起こり得る。
【００１０】
これに対して、各ノード、あるいは一部のノードにディレクトリ情報（ファイルと保有ノードとの対応表など）を保持させ、分散共有している各ファイルの保有ノードを参照できるようにする管理方法が提案されている（特許文献、１、２参照）。
【００１１】
特許文献１では、データ集中管理システムが、ファイル集中管理テーブルを保持して、複数のデータ処理システムのデータファイルを集中管理する技術が提示されている。また特許文献２では、共有ファイルの存在先を示す情報を含む共有ファイル参照情報を各コンビュータ間で交換する技術が提示されている。
【００１２】
こういった技術においては、ファイルアクセスを求めるノードは、まずファイルの保有ノードを示すディレクトリ情報にアクセスし、参照することで必要なファイルを保有するノードを調べて、その後そのノードにアクセスし、所望のファイルを取得する。
【００１３】
もちろんディレクトリ情報は、最新のファイル保有状態を反映していることが必要であるが、こういった技術では一般に、各ノードに新しいファイルが追加されたときや、削除されたとき、その情報をディレクトリ情報を保有するノードに通知することで、ディレクトリ情報は速やかに更新される。
【特許文献１】特開平１１−３１２１１４号公報
【特許文献２】特開２００２−２４４９０６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述したようなディレクトリ情報を用いたファイル管理において、最新のディレクトリ情報が維持されるようにシステムが機能するのは、すべてのノードとネットワークが正常に動作している場合だけである。ネットワークが不通になった場合や、ノードが一時的にダウンするといった場合、その間に追加、削除されたファイルの情報は、ディレクトリ情報として速やかには反映されない。
【００１５】
このような場合、やはりディレクトリ情報を保持するノードは、改めて他のノードに、どのノードがどのファイルを保有しているかを示すファイルリストを問い合わせるといった動作が必要となる。
【００１６】
しかしながら前述したように、こういった問い合わせ作業は、ファイルを保有する多数のノードに網羅的に、しかも時を同じくして問い合わせ、かつデータの送信を受けることになり、その都度ファイルの追加、削除の通知を受けるのと比べて、膨大なネットワークトラフィックとなりかねない。
【００１７】
すなわち、ネットワークの規模、すなわちノード数やファイル数によっては、ディレクトリ情報を更新する作業に追われて、ファイルの転送など、他の重要な作業が滞ってしまうなどの本末転倒が起こる可能性もある。
【００１８】
さらには、悪意あるノードがファイル分散共有システムに参加し、ディレクトリ情報の更新を装ってファイルリストを頻繁に問い合わせ、トラフィックを増大させることにより、システムのパフォーマンスを低下させたり、ダウンさせるといった恐れもある。
【００１９】
本発明の目的は、上記の課題を解決し、ネットワークシステムでのディレクトリ情報を用いたファイル管理において、他のノードにディレクトリ情報に関する問い合わせを行う場合にも、トラフィックの増大により、ファイル転送などの他の重要な処理が影響を受けて滞ることが生じないようにするディレクトリ情報の管理方法、及び管理システムを提供することである。
【課題を解決するための手段】
【００２０】
上記の課題を解決するために、本発明は以下の特徴を有するものである。
【００２１】
１．  複数のノード間でファイルを分散共有するネットワークシステムにおけるディレクトリ情報の管理方法であって、前記ディレクトリ情報を保有する第１のノードが、該ノードの保有する前記ディレクトリ情報を更新するために、第２のノードに、該ノードの保有するファイルのリスト情報を要求するディレクトリ情報要求工程と、前記第１のノードから要求を受けた前記第２のノードが、前記リスト情報を前記第１のノードに送信するディレクトリ情報送信工程と、前記第２のノードから受信した前記リスト情報に基づき、前記第１のノードが前記ディレクトリ情報を更新するディレクトリ情報更新工程と、を有し、前記ディレクトリ情報送信工程においては、前記第２のノードは、要求された前記リスト情報を、その時間平均の通信量が所定値を超えないように調整しながら前記第１のノードに送信することを特徴とするディレクトリ情報の管理方法。
【００２２】
２．  前記ディレクトリ情報送信工程では、前記リスト情報は、送信する単位毎に、調整された所定の時間間隔で送信されることを特徴とする１に記載のディレクトリ情報の管理方法。
【００２３】
３．  前記ディレクトリ情報送信工程では、前記リスト情報のファイル項目毎に優先順位が付され、優先順位の高いファイル項目から順番に送信されることを特徴とする１または２に記載のディレクトリ情報の管理方法。
【００２４】
４．  前記リスト情報のファイル項目毎の優先順位は、当該ファイルを作成、あるいは更新した時刻に基づいて付されることを特徴とする３に記載のディレクトリ情報の管理方法。
【００２５】
５．  前記リスト情報のファイル項目毎の優先順位は、当該ファイルの参照された回数、あるいは頻度に基づいて付されることを特徴とする３に記載のディレクトリ情報の管理方法。
【００２６】
６．  前記ディレクトリ情報要求工程では、ファイル項目の優先順位を決定するための情報を付加して、前記リスト情報を要求し、前記ディレクトリ情報送信工程では、前記優先順位を決定するための情報に基づいて、前記リスト情報にファイル項目毎の優先順位が付されることを特徴とする３に記載のディレクトリ情報の管理方法。
【００２７】
７．  前記ディレクトリ情報要求工程では、必要なファイル項目を決定するための優先順位条件を付加して、前記リスト情報を要求し、前記ディレクトリ情報送信工程では、前記リスト情報において前記優先順位条件を満たす優先順位のファイル項目だけを順に送信することを特徴とする３に記載のディレクトリ情報の管理方法。
【００２８】
８．  前記ディレクトリ情報送信工程は、前記ディレクトリ情報要求工程における前記リスト情報の要求に応答するものであり、ファイル自体に対する処理要求への応答を優先して実行されることを特徴とする１乃至７の何れか１項に記載のディレクトリ情報の管理方法。
【００２９】
９．  前記ディレクトリ情報送信工程では、前記リスト情報の送信を開始する前に、前記リスト情報の要求を受理した旨を送信することを特徴とする１乃至８の何れか１項に記載のディレクトリ情報の管理方法。
【００３０】
１０．  複数のノード間でファイルを分散共有するネットワークシステムにおけるディレクトリ情報の管理システムであって、前記ディレクトリ情報を保有する第１のノードと、自らの保有するファイルのリスト情報を保有する第２のノードとを有し、前記第１のノードは、前記ディレクトリ情報を更新するために、前記第２のノードに前記リスト情報を要求するディレクトリ情報要求手段と、前記第２のノードから受信した前記リスト情報に基づき、前記ディレクトリ情報を更新するディレクトリ情報更新手段と、を有し、前記第２のノードは、前記第１のノードから要求を受けた前記リスト情報を、前記第１のノードに送信するディレクトリ情報送信手段を有し、前記ディレクトリ情報送信手段は、要求された前記リスト情報を、その時間平均の通信量が所定値を超えないように調整しながら、前記第１のノードに送信することを特徴とするディレクトリ情報の管理システム。
【００３１】
１１．  前記ディレクトリ情報送信手段は、前記リスト情報を、送信単位毎に、調整された所定の時間間隔で送信することを特徴とする１０に記載のディレクトリ情報の管理システム。
【００３２】
１２．  前記ディレクトリ情報送信手段は、前記リスト情報のファイル項目毎に優先順位を付し、優先順位の高いファイル項目から順番に送信することを特徴とする１０または１１に記載のディレクトリ情報の管理システム。
【００３３】
１３．  前記リスト情報のファイル項目毎の優先順位は、当該ファイルを作成、あるいは更新した時刻に基づいて付すことを特徴とする１２に記載のディレクトリ情報の管理システム。
【００３４】
１４．  前記リスト情報のファイル項目毎の優先順位は、当該ファイルの参照された回数、あるいは頻度に基づいて付すことを特徴とする１２に記載のディレクトリ情報の管理システム。
【００３５】
１５．  前記ディレクトリ情報要求手段は、ファイル項目毎の優先順位を決定するための情報を付加して、前記リスト情報を要求し、前記ディレクトリ情報送信手段は、前記優先順位を決定するための情報に基づいて、前記リスト情報にファイル項目毎の優先順位を付すことを特徴とする１２に記載のディレクトリ情報の管理システム。
【００３６】
１６．  前記ディレクトリ情報要求手段は、必要なファイル項目を決定するための優先順位条件を付加して、前記リスト情報を要求し、前記ディレクトリ情報送信手段は、前記リスト情報において前記優先順位条件を満たす優先順位のファイル項目だけを順に送信することを特徴とする１２に記載のディレクトリ情報の管理システム。
【発明の効果】
【００３７】
本発明のディレクトリ情報の管理方法、及び管理システムによれば、ネットワークシステムでのディレクトリ情報を用いたファイル管理において、他のノードにディレクトリ情報に関する問い合わせを行う場合にも、ネットワークに対する通信負荷が過剰にならないように抑制することができる。すなわち、問い合わせを受けたノードが、それぞれ時間平均の通信量が所定値を超えないように調整してデータ送信を行う。これにより、トラフィックの増大を抑制し、ファイル転送などの他のより重要な処理が影響を受けて滞ったりしないようにすることができる。
【発明を実施するための最良の形態】
【００３８】
以下に、図を参照して本発明に係る実施形態を説明する。
【００３９】
（ネットワークの全体構成）
図１はネットワーク１の全体的な構成の例を示す図である。図１を用いて本発明に係るディレクトリ情報の管理システムとして動作するネットワークの実施形態について、その物理的な全体構成を説明する。
【００４０】
本発明の実施形態に係るネットワーク１は、図１に示すように、複数台の端末装置２（２１、２２、…、２ｎ）、スイッチングハブ３、ルータ４、および認証サーバ５などのノードによって構成されるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。これらの端末装置２は、スイッチングハブ３にツイストペアケーブルによってスター型に繋がれている。
【００４１】
ネットワークを構成するノードとしての端末装置２は、情報処理装置であり、パーソナルコンピュータ、ワークステーション、またはプリンタなどのような、他の装置との間でデータの入出力の処理を実行する装置である。以下、ノードといえば単にこの端末装置のことを指し、情報処理装置としてのパーソナルコンピュータが用いられるものとして説明する。
【００４２】
また本実施形態では、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）と呼ばれる通信ネットワークの形態を採っている。Ｐ２Ｐは不特定多数のノード間で直接情報のやり取りを行なうネットワークの利用形態であり、技術的に中央サーバの媒介を要するものと、バケツリレー式にデータを運ぶものの２種類がある。中央サーバを要する場合にも、中央サーバはファイル検索データベースの提供とノードの接続管理のみを行っており、データ自体のやり取りはノード間の直接接続によって行われている。
【００４３】
また、バケツリレー式の場合には、物理的に隣接したノードとだけ通信する場合と、物理的な接続とは別に論理的に定義された接続関係の上で隣接したノード間でだけ通信する場合とがある。後者はオーバレイネットワークと呼ばれている。
【００４４】
図２にオーバレイネットワークの構造を模式的に示す。図の１１はノード間の物理的な接続関係を、１２は論理的な接続関係を示す。また前述の図１は物理的な接続関係を、後述の図４は論理的な接続関係を表している。ネットワークのノード間には、この両者の二面的な関係がある。
【００４５】
本実施形態では、すべてのノード２が互いに論理的に直接接続を行い、それぞれ任意の相手ノードと通信するものとする（以後、接続形態１とする）。また後で図４の接続トポロジーを説明するが、予め関連付けられたノード（端末装置）２間では直接接続を行い、通信するが、その他のノードとは、直接接続したノードを介して間接的に接続する形態についても考える（以後、接続形態２とする）。
【００４６】
認証サーバ５は認証のための証明書に関わる管理のみを担い、通信のための接続には直接関わらない。またルータ４もノード（端末装置）間の通信には直接関与しない。
【００４７】
ネットワークを構成するノード２のうち一部、あるいは全部のノードは、ネットワークの全ノードで保有されているすべてのファイルとその保有ノードの対応を示すディレクトリ情報を保持している（以降、第１のノードと呼ぶ）。また、すべてのノード２は、そのノードが保有するファイルのリスト情報としてファイルリストを保持している（以降、第２のノードと呼ぶ）。
【００４８】
以下、上記の観点から、本実施形態に係るディレクトリ情報の管理を行うネットワークにおいて、ディレクトリ情報によるファイルの管理、特にディレクトリ情報の更新のための各処理が行われる場合について説明する。
【００４９】
（ノードの構成）
図３はノード（端末装置）２のハードウェア構成の例を示す図である。
【００５０】
端末装置２は、図３に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、ハードディスク２０ｄ、通信インタフェース２０ｅ、画像インタフェース２０ｆ、入出力インタフェース２０ｇ、その他の種々の回路または装置などによって構成される。
【００５１】
通信インタフェース２０ｅは、例えばＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）であって、ツイストペアケーブルを介してスイッチングハブ３のいずれかのポートに繋がれている。画像インタフェース２０ｆは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。
【００５２】
入出力インタフェース２０ｇは、キーボード若しくはマウスなどの入力装置またはＣＤ−ＲＯＭドライブなどの外部記憶装置などと繋がれている。そして、ユーザが入力装置に対して行った操作の内容を示す信号を入力装置から入力する。または、ＣＤ−ＲＯＭなどの記録媒体に記録されているデータを外部記憶装置に読み取らせ、これを入力する。または、記録媒体に書き込むためのデータを外部記憶装置に出力する。
【００５３】
ハードディスク２０ｄには、後で機能ブロック図（図６）を用いて説明するが、ディレクトリ情報要求部１１１、ディレクトリ情報送信部１１２、ディレクトリ情報更新部１１３、ファイル要求部１１４、ファイル要求処理部１１５などの、制御部１０１の機能を実現するためのプログラムが格納されている。また、ファイルデータ部１２１、ファイルリスト部１２２、ディレクトリ部１２３などの記憶領域が保持され、各データが格納されている。これらのプログラムおよびデータは必要に応じてＲＡＭ２０ｂに読み出され、ＣＰＵ２０ａによってプログラムが実行される。
【００５４】
各ノード２には、それぞれ、他のノード２との識別のために、ホスト名（マシン名）、ＩＰアドレス、およびＭＡＣアドレスが与えられている。ホスト名は、ネットワーク１の管理者などが自由に付けることができる。ＩＰアドレスは、ネットワーク１の規則に従って与えられる。ＭＡＣアドレスは、そのノード２の通信インタフェース１０ｅに対して固定的に与えられているアドレスである。
【００５５】
本実施形態では、ノード（端末装置）２１、２２、…ごとに「ＰＣ１」、「ＰＣ２」、…のようなホスト名が付されているものとする。以下、これらのノード２をホスト名によって記載することがある。
【００５６】
（ノードの接続形態）
図４はノードの接続形態、すなわち端末装置２の論理的なトポロジーの例を示す図である。図４を用いて、前述したノード（端末装置）の接続形態２を説明する。
【００５７】
前述した接続形態１については、以下の説明においてすべてのノード間が直接接続であると見なせばよい。後述するが、接続形態１と２の違い、すなわち直接接続と間接接続の違いは、通信量のネットワークに与える負荷の違いとなって現れてくる。
【００５８】
ノード２は、図４に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも１台の他のノード２と関連付けられている。かつ、これらの関連付けによって、すべてのノード２が互いに直接的にまたは間接的に関連するようになっている。
【００５９】
なお、「直接的に関連」とは、図４において１本の点線で繋がれていること（例えば、図４のＰＣ１とＰＣ２またはＰＣ９とのような関係）を言い、「間接的に関連」とは、２本以上の点線および１つ以上のノードで繋がれていること（例えば、図４のＰＣ１とＰＣ４とのような関係）を言う。ノード２は、自らに直接的に関連付けられている他のノード２に対してデータを送信する。
【００６０】
図５は、図４のように関連付けられたノード２の接続テーブルＴＬの例を示す図である。各ノード２毎に、直接データ送信可能な、「直接的に関連」付けられている他のノード２との接続のための情報のリストをテーブル化して保持している。
【００６１】
例えば、図４におけるＰＣ１、ＰＣ２、ＰＣ６、ＰＣ７、ＰＣ８、およびＰＣ９には、それぞれ図５に示すような接続テーブルＴＬ１、ＴＬ２、ＴＬ６、ＴＬ７、ＴＬ８、およびＴＬ９が保持されている。
【００６２】
なお、後述するディレクトリ情報の管理のための各工程は、接続形態１と２を区別せず説明する。接続形態１と２の違いが生ずる通信量の調整についてのみ、両者を分けて説明する。
【００６３】
（ノードの機能構成）
図６（ａ）及び図６（ｂ）はノード（端末装置）２のディレクトリ情報によるファイル管理に関する機能的構成の例を示すブロック図である。図６（ａ）及び図６（ｂ）を用いてノード２の各部の処理機能について説明する。
【００６４】
図６（ａ）において、ノード２は制御部１０１，記憶部１０２、通信部１０３により機能構成される。
【００６５】
制御部１０１は処理装置（ＣＰＵ）と、プログラムを記憶したメモリと、一時的にデータを保持するためのメモリから構成される。プログラムが動作することによる各処理機能は、図６（ｂ）を参照して後述する。それらの各処理はマルチタスクで動作する。
【００６６】
通信部１０３は、ネットワークとのインタフェイス、送受信のためのバッファメモリなどからなる。制御部１０１によって実行される各処理によって、他のノードとの間で必要なデータ等の送受信が行われる。
【００６７】
記憶部１０２は、ハードディスクやフラッシュメモリなどの不揮発性メモリとその制御装置とから構成される。記憶部１０２は、次のような記憶領域を有する。
【００６８】
そのノードが保有するファイルのデータが記憶されるファイルデータ部１２１と、
そのノードが保有するファイルのリストが記憶されるファイルリスト部１２２と、
ネットワーク内のすべてのノードが保有しているファイルの一覧（対応する保有ノードを含む）が記憶されているディレクトリ部１２３、
但し、ファイルデータ部１２１とファイルリスト部１２２は、ファイルを保有しているすべてのノード（すなわち、第２のノード）でファイルデータ、ファイルリストが記憶されているが、ディレクトリ部１２３は、ディレクトリ情報を保持するノード（すなわち、第１のノード）だけでディレクトリ情報が記憶されている。
【００６９】
これらの記憶領域の記憶データは、制御部１０１により実行される各処理によって、適宜参照される、あるいは追加、削除など更新される。
【００７０】
図６（ｂ）は、制御部１０１によって実行される機能の内部構成を示す図である。図６（ｂ）を用いて制御部１０１の機能、すなわちディレクトリ情報を参照した、他のノードからのファイル取得や、ディレクトリ情報自体の更新、管理などの処理機能について説明する。
【００７１】
制御部１０１の処理機能には、ディレクトリ情報要求部１１１と、ディレクトリ情報送信部１１２と、ディレクトリ情報更新部１１３とが含まれる。
【００７２】
ディレクトリ情報要求部１１１は、ディレクトリ情報要求手段であり、ディレクトリを更新するためのファイルリスト問い合わせを行う。ディレクトリ情報送信部１１２は、ディレクトリ情報送信手段であり、ファイルリストの要求に応じて送信を行う。ディレクトリ情報更新部１１３は、ディレクトリ情報更新手段であり、受信した各ノードのファイルリストに応じてディレクトリ情報を更新する。
【００７３】
また制御部１０１の処理機能には、ディレクトリ情報を参照し、取得したいファイルの保有ノードを探索するファイル要求部１１４と、ファイルの要求に応じてファイル送信等を行うファイル要求処理部１１５とが含まれる。
【００７４】
制御部１０１の各部の機能の詳細については、以下の管理のための工程の説明で合わせて述べる。
【００７５】
（管理のための各工程）
図７は、ディレクトリ情報によるファイル管理、及びディレクトリ情報の管理のために必要な各工程を起動する処理の流れを示すフローチャートである。図７を用いて、管理のための各工程の処理の概要を説明する。
【００７６】
図７においては、ディレクトリ情報によるファイル管理、及びディレクトリ情報の管理のために、５種類のタスク（タスク１からタスク５）が起動している（ステップＳ１からステップＳ５）。
【００７７】
各タスクはマルチタスク、すなわち同時に起動している状態であり、起動後、それぞれのタスクがクライアントまたは他のノードからの要求待ち状態となっている（ステップＳ６）。
【００７８】
各タスクは、制御部１０１がそれぞれの処理に対応する実行手段を備え、処理要求を一時的に蓄えるためのキュー（バッファ）を備えている。各処理に対する要求の発生に応じて、それぞれのタスクが動作する。
【００７９】
これらのタスクが連係して動作することにより、次のような処理動作が実行される。
ａ．ディレクトリの初期化（タスク１、２、３）
ｂ．ファイル要求処理（タスク４、５）
ｃ．通知によるディレクトリ更新（タスク４、３）
ｄ．ディレクトリの再初期化（タスク１、２、３）
これらの処理の詳細については、後述する。
【００８０】
以下に、各タスクによって実行される処理工程について説明する。
【００８１】
＜タスク１：ディレクトリ情報要求工程＞
タスク１は、ディレクトリ情報要求部１１１がディレクトリ情報要求工程を実行する。図８にディレクトリ情報要求工程のフローチャートを示す。
【００８２】
ディレクトリ情報要求工程では、他のノードからの要求ではなく、クライアント、もしくは設定されたタイミングに応じて処理が発動する。処理は、保持しているディレクトリ情報の更新のための他ノードへのファイルリスト要求である。
【００８３】
従って、本工程はディレクトリ情報を保持する第１のノードのみが実行する処理であり、ファイルリストの要求先は、すべての第２のノードである。
【００８４】
図８において、まずステップＳ１１で、他のノード（第２のノード）に、それぞれのノードの保有するファイルのリスト情報であるファイルリストの要求を送信する。
【００８５】
また、場合によっては、ファイルリストの優先順位を決定するための情報、あるいは優先順位条件を付加して送信してもよい。これは後述するように、通信量調整による遅延を考慮して、送信してもらう順番を指定するためである。
【００８６】
ステップＳ１２では、まず要求受理の返信（後述のタスク２：ステップＳ２２）を受け取る。これでファイルリスト返信を受ける他のノードが特定できる。その後引き続いてファイルリストを（通常は何回かに分けて）受け取り、最後に要求処理終了の返信を受け取ることになる。
【００８７】
ステップＳ１３では、ファイルリストの返信（後述のタスク２：ステップＳ２４、ステップＳ２７）を受けたかどうかを判定する。返信がファイルリストの一部である場合（ステップＳ１３：ＹＥＳ）は、ステップＳ１７のディレクトリ情報更新工程（タスク３：詳細は後述する）を実行し、ステップＳ１２へ戻って次の返信を待つ。返信がファイルリストの一部ではない場合（ステップＳ１３：ＮＯ）は、ステップＳ１４を実行する。
【００８８】
ステップＳ１４では、そのノードからの要求処理終了の返信（後述のタスク２：ステップＳ２８）かどうかを判定する。要求処理終了の場合（ステップＳ１４：ＹＥＳ）は、ステップＳ１６ヘ進む。要求処理終了でない場合（ステップＳ１４：ＮＯ）は、ステップＳ１５ヘと進む。
【００８９】
ステップＳ１５では、返信がタイムアウトかどうかを判定する。タイムアウトの場合（ステップＳ１５：ＹＥＳ）は、ステップＳ１６ヘ進む。タイムアウトでない場合（ステップＳ１４：ＮＯ）は、ステップＳ１２ヘ戻り、次の返信を待つ。
【００９０】
ステップＳ１６では、ファイルリスト要求を送信した全ノードで回答終了かどうか、すなわち要求受理したすべてのノードから要求処理終了の返信を受信したかどうかを判定する。全ノード回答終了の場合（ステップＳ１６：ＹＥＳ）は、本工程は終了である。全ノード回答終了でない場合（ステップＳ１６：ＮＯ）は、ステップＳ１２ヘ戻り、次の返信を待つ。
【００９１】
本工程が終了すると、ネットワークの各ノードのファイルリストをすべて取得し、それに基づいて、ディレクトリ情報をすべて更新できる、すなわち最新のファイル保有状態を反映した初期化が達成できることになる。
【００９２】
＜タスク２：ディレクトリ情報送信工程＞
タスク２は、ディレクトリ情報送信部１１２がディレクトリ情報送信工程を実行する。図９にディレクトリ情報送信工程のフローチャートを示す。
【００９３】
ディレクトリ情報送信工程では、前述したディレクトリ情報要求工程における他のノード（第１のノード）からのファイルリスト要求（タスク１：ステップＳ１１）に応じて処理が発動する。
【００９４】
従って、本工程はすべての第２のノードが要求を受け、実行する処理であり、要求元ノード（第１のノード）へディレクトリ情報の更新のためファイルリストを送信する。
【００９５】
送信するファイルリストは、保有ファイル数によってはかなりのデータ量となる。しかもすべてのファイル保有ノード（第２のノード）から、ほぼ同時期に特定のノード（第１のノード）に対して送信されることになり、通常に実行するとネットワークトラフィックが増大し、過大な負担となる。
【００９６】
本実施形態では、それぞれのノードにおいてファイルリストが複数回に分けて送信される際に、その送信時間間隔を調整することで、時間平均での通信量が所定の値を超えないように処理している。これにより他の重要な作業のために通信容量を抑制して、それらの処理作業を遅延させたり、妨げたりしないようにしている。
【００９７】
図９において、まずステップＳ２１で、要求元のノード（第１のノード）から、ディレクトリ情報更新のために、ファイルリストの要求（タスク１：ステップＳ１１）を受信し、これにより本工程は開始される。また場合によっては、ファイルリストの要求とともに、リストの優先順位を決定するための情報や優先順位条件などを受け取る。これは、上記のように通信量を調整するため、遅延することを想定して、送信する順番を付与するためである。
【００９８】
ステップＳ２２では、まず要求受理の返信を送る。これで要求元は、ファイルリストを返信する相手ノードが特定できる。その後引き続いてファイルリストを（通常は何回かに分けて）送信し、最後に要求処理終了の返信を送る。
【００９９】
ステップＳ２３では、ファイルリストをソートする。上記のファイルリスト要求とともに受け取った優先順位条件、あるいは予め設定された条件などに基づいて、リストのファイル項目に優先順位を付与し、ソートする。また、場合によっては、条件に合致しないファイル項目は、ソート結果に残さないようにしてもよい。
【０１００】
上記のソート処理によって、通信量が制限された状態で、優先順に従って順次送信することができる。ソート処理の方法については、さらに詳細を後述する。
【０１０１】
ステップＳ２４では、送信の時間間隔を制御するために、タイマーをリセットするとともに、上述のソート結果の優先順に応じて、最初のＮ個のエントリ（ファイルリストのファイル項目、以下エントリとも呼称する）を要求元に返信する。
【０１０２】
ステップＳ２５では、まだ送信していないエントリがあるかどうかを判定する。残りエントリがある場合（ステップＳ２５：ＹＥＳ）は、ステップＳ２６を実行する。残りエントリがない場合（ステップＳ２５：ＮＯ）は、ステップＳ２８を実行し、要求処理終了を送信して、本工程を終了する。
【０１０３】
ステップＳ２６では、タイマーがＴ秒になるまで、次のエントリ送信を待つ。既に述べたように、時間平均の通信量が所定の値を超えないようにするためであり、所定の値に応じて、送信するエントリ数Ｎと送信時間間隔Ｔ秒との関係は定まる。その設定の詳細は後述する。
【０１０４】
ステップＳ２７では、前回の送信からＴ秒が経過したので、タイマーをリセットするとともに、次のＮ個のエントリを要求元ノードに返信する。
【０１０５】
その後ステップＳ２５に戻り、残りエントリがなくなる（ステップＳ２５：ＮＯ）まで、ステップＳ２５からステップＳ２７を繰り返す。残りエントリがなくなると、ステップＳ２８で要求処理終了を送信し、本工程を終了する。
【０１０６】
それぞれのノード（第２のノード）で本工程が終了すると、要求元の第１のノードにネットワークの各ノードのファイルリストがすべて送信されたことになり、それに基づいて、ディレクトリ情報をすべて更新することができる。
【０１０７】
なお、ファイルリストの送信処理において、上述したように送信時間間隔を調整することにより、時間平均の通信量を抑制しているため、ファイル転送などの他のより重要な処理作業を妨げたり、遅延させたりするような悪影響を排除することもできる。
【０１０８】
＜タスク３：ディレクトリ情報更新工程＞
タスク３は、ディレクトリ情報更新部１１３がディレクトリ情報更新工程を実行する。図１０にディレクトリ情報更新工程のフローチャートを示す。
【０１０９】
ディレクトリ情報更新工程では、前述したディレクトリ情報要求工程におけるファイルリスト取得（タスク１：ステップＳ１７）に応じて処理が発動する。
【０１１０】
従って、本工程はディレクトリ情報更新のためファイルリストを要求した第１のノードがファイルリストを受信して実行する処理であり、受信したファイルリストに基づきディレクトリ情報を更新する。
【０１１１】
また本ディレクトリ情報更新工程では、ファイルを保有する第２のノードからの、ファイルの追加や削除の通知（後述するタスク４：ステップＳ４６またはステップＳ４７）を受けた場合にも、ディレクトリ情報更新の処理が発動する。その場合本工程は、ディレクトリ情報更新のためファイル追加や削除の通知を受けて実行する処理であり、当該通知に基づきディレクトリ情報を更新する。
【０１１２】
図１０において、まずステップＳ３１で、第１のノードが、ディレクトリ情報更新用のファイルリストを受信した場合（タスク１：ステップＳ１７）、あるいはファイルの追加、削除の通知（後述するタスク４：ステップＳ４６またはステップＳ４７）を受け付けることにより本工程は開始される。
【０１１３】
ステップＳ３２では、まず受け付けたのがディレクトリ情報更新用のファイルリストであるかどうかを判定する。ファイルリストである場合（ステップＳ３２：ＹＥＳ）は、ステップＳ３４を実行する。ファイルリストでない場合（ステップＳ３２：ＮＯ）は、ステップＳ３３を実行する。
【０１１４】
ステップＳ３４では、ファイルリストに基づき、ディレクトリ部１２３のディレクトリ情報を更新する。これにより本工程は終了し、次の要求（ファイルリスト）待ちとなる。
【０１１５】
ステップＳ３３では、受け付けたのがファイルの追加の通知であるか、そうでない（削除の通知である）かを判定する。ファイル追加の通知である場合（ステップＳ３３：ＹＥＳ）は、ステップＳ３５を実行する。ファイル削除の通知である場合（ステップＳ３３：ＮＯ）は、ステップＳ３６を実行する。
【０１１６】
ステップＳ３５では、ファイル追加の通知に基づき、ディレクトリ部１２３のディレクトリ情報に該当するエントリを追加する。
【０１１７】
ステップＳ３６では、ファイル削除の通知に基づき、ディレクトリ部１２３のディレクトリ情報の該当するエントリを削除する。
【０１１８】
これにより本工程は終了し、次の要求（ファイル追加または削除の通知）待ちとなる。
【０１１９】
本工程が終了すると、ファイルリストやファイル追加、削除の通知に基づいたディレクトリ情報の更新ができる、すなわち最新のファイル保有状態を反映することができる。
【０１２０】
＜ファイル要求工程＞
タスク４は、ファイル要求部１１４がファイル要求工程を実行する。図１１にファイル要求工程のフローチャートを示す。
【０１２１】
ファイル要求工程では、クライアントや他のノードからのファイル取得要求、あるいはファイルの追加、削除の要求に応じて処理が発動する。
【０１２２】
従って、本工程はファイルを保有する第２のノードが実行する処理であり、保有するファイルの追加、削除を行う、あるいは第１のノードのディレクトリ情報を参照して、求めるファイルを保有するノードを探索し、アクセスして、ファイルを取得する。
【０１２３】
図１１において、まずステップＳ４１で、他のノードやクライアントから、ファイル取得、またはファイルの追加、削除の要求を受け付けて、本工程は開始する。
【０１２４】
ステップＳ４２では、要求がファイル取得要求であるかどうかを判定する。ファイル取得要求である場合（ステップＳ４２：ＹＥＳ）は、ステップＳ４８を実行する。ファイル取得要求でない場合（ステップＳ４２：ＮＯ）は、ステップＳ４３を実行する。
【０１２５】
ステップＳ４３では、要求がファイルの追加であるか、そうでない（削除要求である）かを判定する。ファイル追加の要求である場合（ステップＳ４３：ＹＥＳ）は、ステップＳ４４を実行する。ファイル削除の要求である場合（ステップＳ４３：ＮＯ）は、ステップＳ４５を実行する。
【０１２６】
ステップＳ４４では、ファイル追加の通知に基づき、指定のファイルをファイルデータ部１２１に追加し、ファイルリスト部１２２のリストにエントリを追加する。その後、ステップＳ４６で、ファイル追加の通知を、ディレクトリ情報を保持する第１のノードに送信する。これで本工程は終了する（次の要求待ち）。
【０１２７】
ステップＳ４５では、ファイル削除の通知に基づき、指定のファイルをファイルデータ部１２１から削除し、ファイルリスト部１２２のリストからもエントリを削除する。その後、ステップＳ４７で、ファイル削除の通知を、ディレクトリ情報を保持する第１のノードに送信する。これで本工程は終了する（次の要求待ち）。
【０１２８】
一方、ステップＳ４８では、ファイル取得要求に応じて、ディレクトリ情報を保持する第１のノードにアクセスし、ディレクトリ部１２３のディレクトリ情報を参照して、取得したいファィルを保有するノードを検索する。
【０１２９】
ステップＳ４９では、求めるファイルが検索して見つかったかどうかを判定する。求めるファイルがある場合（ステップＳ４９：ＹＥＳ）は、ステップＳ５０を実行する。求めるファイルがない場合（ステップＳ４９：ＮＯ）は、ステップＳ５２を実行する。
【０１３０】
ステップＳ５０では、検索して見つかった求めるファイルを保有するノードにアクセスして、ファイル要求する。
【０１３１】
ステップＳ５１では、そのアクセスしたノードにファイルがあったかどうかを判定する。ファイルがある場合（ステップＳ５１：ＹＥＳ）は、ステップＳ５６を実行する。ファイルがない場合（ステップＳ５１：ＮＯ）は、ステップＳ５２ヘと進む。
【０１３２】
ステップＳ５２では、求めるファイルが見つからないため、他のノード（第２のノードすべて）にアクセスして、ファイル保有の有無を問い合わせる。
【０１３３】
ステップＳ５３では、各ノードからの回答（後述するタスク５：ステップＳ６７またはステップＳ６８）により、そのファイルを保有するノードがあったかどうかを判定する。保有ノードがある場合（ステップＳ５３：ＹＥＳ）は、ステップＳ５４を実行する。保有ノードがない場合（ステップＳ５３：ＮＯ）は、ステップＳ５５ヘと進む。
【０１３４】
ステップＳ５４では、求めるファイルを保有するノードにアクセスして、ファイル要求する。
【０１３５】
ステップＳ５６では、ファイル要求先のノードからファイルを受信（後述するタスク５：ステップＳ６５）し、取得する。続くステップＳ５７で、取得したファイルを要求元に渡して、本工程は終了する（次の要求待ち）。
【０１３６】
またステップＳ５５では、どのノードにも求めるファイルが見つからないため、ファイルの要求元にファイルなしを示すエラー送信を行い、本工程を終了する（次の要求待ち）。
【０１３７】
＜タスク５：ファイル要求処理工程＞
タスク５は、ファイル要求処理部１１５がファイル要求処理工程を実行する。図１２にファイル要求処理工程のフローチャートを示す。
【０１３８】
ファイル要求処理工程では、他のノードからのファイル要求（タスク４：ステップＳ５０、ステップＳ５４）、あるいはファイルの有無の問い合わせ（タスク４：ステップＳ５２）に応じて処理が発動する。
【０１３９】
従って、本工程はファイルを保有する第２のノードが実行する処理であり、ファイル要求に応じて保有するファイルを送信する、あるいは指定ファイルの有無の問い合わせに応じて該当するファイルを保有しているかどうかを返信する。
【０１４０】
図１２において、まずステップＳ６１で、他のノードから、ファイル要求、またはファイルの有無の問い合わせを受け付けて、本工程は開始する。
【０１４１】
ステップＳ６２では、要求がファイル要求であるか、そうでない（ファイルの有無の問い合わせ）かを判定する。ファイル要求である場合（ステップＳ６２：ＹＥＳ）は、ステップＳ６３を実行する。ファイルの有無の問い合わせの場合（ステップＳ６２：ＮＯ）は、ステップＳ６４を実行する。
【０１４２】
ステップＳ６３では、要求されたファイルを保有しているかどうかを判定する。ファイルを保有している場合（ステップＳ６３：ＹＥＳ）は、ステップＳ６５を実行し、要求元ノードにファイルを返信する。ファイルを保有していない場合（ステップＳ６３：ＮＯ）は、ステップＳ６６を実行し、要求元ノードにファイルなしを示すエラーを返信する。
【０１４３】
ステップＳ６４では、ファイル有無の問い合わせに対し、指定のファイルを保有しているかどうかを判定する。ファイルを保有している場合（ステップＳ６４：ＹＥＳ）は、ステップＳ６７を実行し、要求元ノードにファイル保有ありを返信する。ファイルを保有していない場合（ステップＳ６４：ＮＯ）は、ステップＳ６８を実行し、要求元ノードにファイル保有なしを返信する。
【０１４４】
以上で本工程は終了する（次の要求待ち）。
【０１４５】
（ディレクトリ情報の管理）
ディレクトリ情報の管理、及びディレクトリ情報を利用するファイル管理のプロセスについて説明する。上述してきた各タスクの動作が連係することで、以下の各プロセスが実行される。
【０１４６】
＜ディレクトリの初期化＞
図１３は、第１のノードにおけるディレクトリ情報の初期化プロセス例を示す説明図である。図１３を参照して、第１のノードにおけるディレクトリ情報の初期化プロセスを説明する。
【０１４７】
本初期化プロセスは、ある第１のノードが始めてネットワークシステムに参加するときなど、出発点として、ディレクトリ部１２３（図６）にディレクトリ情報としてのエントリを全く保持していない状態を想定している。
【０１４８】
この場合は主に２通りのディレクトリ情報初期化プロセスが考えられる。
【０１４９】
一つは、他に既にディレクトリ情報を保持する第１のノードが存在する場合であり、この場合は、既にディレクトリ情報を保持しているノードを探索してアクセスし、そのディレクトリ情報をコピーして、ディレクトリの初期化状態とするという方法を用いることができる。図１３（ａ）にその様子を示す。
【０１５０】
図１３（ａ）では、第１のノードＰＣ１が、既にディレクトリ情報を保持している他の第１のノードＰＣ４にディレクトリ情報を要求し、ノードＰＣ４からディレクトリ情報のコピーを受けとっている。ノードＰＣ１は、そのディレクトリ情報を自らのディレクトリ部１２３にそのまま格納することでディレクトリを初期化する。
【０１５１】
但し、コピーしたディレクトリ情報が、システム全体のすべてのファイルのエントリを保持しているかどうかは、保証されない。速やかに、最新のシステム全体に渡るファイル保有状況を反映させる必要がある。
【０１５２】
もう一つは、ネットワークシステムのすべてのノードに、それぞれのノードの保有しているファイルのファイルリストを問い合わせる方法である。図１３（ｂ）にその様子を示す。
【０１５３】
図１３（ｂ）では、ノードＰＣ１がノードＰＣ２、ＰＣ３、ＰＣ４にファイルリストを要求し、各ノードからそれぞれのファイルリストの返信を受けている。ノードＰＣ１はそれらのファイルリストに基づき、順次自らのディレクトリに追加していくことでディレクトリを初期化する。それぞれのノードからのファイルリストは、一般に複数回に分割され、送信されてくるので、それぞれのノードから要求処理終了を受信するまで、繰り返して受信する。
【０１５４】
これらの手順は、第１のノードであるＰＣ１でタスク１（ディレクトリ情報要求工程）が実行され、ファイルリスト要求を受けて第２のノードであるＰＣ２、ＰＣ３、ＰＣ４でタスク２（ディレクトリ情報送信工程）が実行され、送信されたファイルリストに基づき、第１のノードであるＰＣ１でタスク３（ディレクトリ情報更新工程）が実行されて、ディレクトリの初期化が達成される。
【０１５５】
＜ファイル要求処理＞
図１４は、他の第２のノードが保有するファイルに対するファイル要求のプロセス例を示す説明図である。図１４を参照して、他の第２のノードに対するファイル要求プロセスを説明する。
【０１５６】
ファイル要求プロセスは、ファイルを分散共有しているネットワークシステムにおいて、ファイルを利用するに当たってまず必要となるプロセスであり、必要なファイルをどのノードが保有しているかを探索することが基本となる。そのために第１のノードの保持するディレクトリ情報が活用される。
【０１５７】
図１４（ａ）にその様子を示す。図１４（ａ）では、第２のノードＰＣ３が、ディレクトリ情報を保持している第１のノードＰＣ１にアクセスし、そのディレクトリ情報を参照して必要なファイルを保有するノードを検索している。ＰＣ３は、ＰＣ１から当該ファイルを保有するノード（ノードＰＣ４）の情報を取得し、ＰＣ４にファイル要求を送信し、ＰＣ４から当該ファイルを取得している。
【０１５８】
これらの手順は、第２のノードであるＰＣ３でタスク４（ファイル要求工程）が実行され、第１のノードＰＣ１のディレクトリ情報を参照して検索された保有ノードＰＣ２へのファイル要求を受けて、ＰＣ２でタスク５（ファイル要求処理工程）が実行され、指定されたファイルがＰＣ３に送信される。
【０１５９】
参照したディレクトリに指定のファイルのエントリがない場合、あるいは、ディレクトリのエントリを参照してアクセスしたノードが指定のファイルを保有していなかった場合は、ネットワークシステムのすべてのノードに、それぞれ指定のファイルを保有しているかどうかを問い合わせ、その回答に応じて指定ファイルを保有するノードにファイル要求する方法がある。図１４（ｂ）にその様子を示す。
【０１６０】
図１４（ｂ）では、第１のノードＰＣ１のディレクトリ情報を参照するだけでは、結果として指定ファイルの保有ノードを見つけられなかったノードＰＣ３が、他の第２のノードＰＣ２、ＰＣ４、ＰＣ１に指定ファイルの有無を問い合わせ、各ノードからそれぞれの回答を受けている。ノードＰＣ２から保有している旨の回答があり、それに基づきＰＣ３は、ＰＣ２にファイル要求し、ＰＣ２から指定のファイルを取得している。
【０１６１】
これらの手順は、やはり第２のノードであるＰＣ３でタスク４（ファイル要求工程）が実行され、第１のノードＰＣ１のディレクトリ情報を参照して検索された保有ノードＰＣ４へのファイル保有の問い合わせを受けて、ＰＣ２、ＰＣ４、ＰＣ１でタスク５（ファイル要求処理工程）が実行され、それらの回答に基づいて、ファイル保有ノード（ＰＣ２）に対するＰＣ３のファイル要求が行われる。
【０１６２】
＜通知によるディレクトリ更新＞
図１５は、第１のノードにおける他のノードからのファイル追加、削除の通知によるディレクトリの更新プロセス例を示す説明図である。図１５を参照して、第１のノードにおける他のノードからの通知によるディレクトリ更新プロセスを説明する。
【０１６３】
通知によるディレクトリ更新プロセスは、ディレクトリ情報を保持する第１のノードが、ネットワークシステムにおける各ノードでの最新のファイル保有状況を、ディレクトリ部１２３におけるディレクトリ情報のエントリとして反映させるために、各ノードからファイルの追加や削除の度に通知を受け、そのディレクトリ情報を更新するものである。
【０１６４】
図１５にその様子を示す。図１５では、第２のノードＰＣ４がファイルを追加し、ファイルリストを更新している。合わせてファイルを追加した旨の通知を第１のノードＰＣ１に送信している。また第２のノードＰＣ３がファイルを削除し、ファイルリストを更新している。合わせてファイルを削除した旨の通知を第１のノードＰＣ１に送信している。
【０１６５】
第１のノードＰＣ１は、第２のノードＰＣ４から受けたファイルを追加した旨の通知、またノードＰＣ３から受けたファイルを削除した旨の通知に基づき、ディレクトリ情報を更新している。すなわち、そのディレクトリ部１２３に、ＰＣ４から通知されたファイルのエントリを追加し、またＰＣ３から通知されたファイルのエントリを削除する。
【０１６６】
これらの手順は、第２のノードであるＰＣ３、ＰＣ４でファイルの追加削除に応じてタスク４（ファイル要求工程）が実行され、送信されたファイル追加、削除の通知を受けて第１のノードであるＰＣ１でタスク３（ディレクトリ情報更新工程）が実行され、受信した通知に基づいて、ディレクトリ情報の更新が達成される。
【０１６７】
＜ディレクトリの再初期化＞
図１６は、第１のノードにおけるディレクトリ情報の再初期化プロセス例を示す説明図である。図１６を参照して、第１のノードにおけるディレクトリ情報の再初期化プロセスを説明する。
【０１６８】
再初期化プロセスは、第１のノードが保持するディレクトリ情報の再初期化を行うものであり、前述した初期化プロセスと同様の処理を行うものである。
【０１６９】
第１のノードが保持するディレクトリ情報は、常に最新のファイル保有状況を反映している必要があり、そのため前述した他のノードからの通知によるディレクトリ更新プロセスが行われる。すなわち、ファイルの保有状態に変化がある度に通知を受け、更新することで、最新の保有状況を反映することができる。
【０１７０】
しかしながら、様々な事情で、通知によるディレクトリ更新プロセスが正常に機能しなくなるなど、ディレクトリ情報の再初期化が必要になることもある。
【０１７１】
ディレクトリ情報を保持する第１のノードは、以下に述べるような事情が発生した場合には、そのディレクトリを再初期化する。
ａ．設定された時間より長い間、ネットワークから離脱、あるいはネットワークがダウンしていることが検出され、その後復旧したとき。
ｂ．ディレクトリ情報に基づいてアクセスしたノードに、指定のファイルが保有されていないことが、設定値よりも高い頻度で起こっていることが検出されたとき。
ｃ．ユーザからの指定があったとき。
【０１７２】
ディレクトリの再初期化は、初期化プロセスの場合と同様に、第１のノードがネットワークシステムのすべてのノードに、それぞれのノードの保有しているファイルのファイルリストを問い合わせる。返信されてきたそれぞれのファイルリストを順次自らのディレクトリに追加更新していくことでディレクトリを再初期化する。
【０１７３】
図１６にその様子を示す。図１６では、第１のノードＰＣ１がノードＰＣ２、ＰＣ３、ＰＣ４にファイルリストを要求し、各ノードからそれぞれのファイルリストの返信を受けている。ノードＰＣ１はそれらのファイルリストに基づき、順次自らのディレクトリに追加更新していくことでディレクトリを再初期化する。それぞれのノードからのファイルリストは、一般に複数回に分割され、送信されてくるので、それぞれのノードから要求処理終了を受信するまで、繰り返して受信する。
【０１７４】
これらの手順は、第１のノードであるＰＣ１でタスク１（ディレクトリ情報要求工程）が実行され、ファイルリスト要求を受けて第２のノードであるＰＣ２、ＰＣ３、ＰＣ４でタスク２（ディレクトリ情報送信工程）が実行され、送信されたファイルリストに基づき、第１のノードであるＰＣ１でタスク３（ディレクトリ情報更新工程）が実行されて、ディレクトリの再初期化が達成される。
【０１７５】
（ファイルリスト送信の処理フロー）
本実施形態のファイル分散共有ネットワークシステムにおいては、すべてのノードで、それぞれ多数のファイルが保有されることが起こり得る。そのため、ディレクトリの初期化においても、またディレクトリの再初期化においても、ネットワークシステムのすべてのノードから、それぞれ多数のファイルからなるファイルリストを、ほぼ同時期に一斉に送信してもらうことが起こってしまう。
【０１７６】
これは、ネットワークトラフィックを増大させて、パフォーマンスを低下させ、ファイル要求やその処理などの他のより重要な処理を妨げたり、遅延させたりする。
【０１７７】
図９を参照して、ディレクトリ情報送信工程の説明で述べたように、本実施形態においては、それぞれのノードにおいてファイルリストが複数回に分けて送信される際に、その送信時間間隔を調整することで、時間平均での通信量が所定の値を超えないように処理している。
【０１７８】
また送信するファイルリストのファイル項目に優先順位を付与し、ソート処理することによって、通信量が制限された状態で、優先順位に従って順次送信する。ファイルリスト要求とともに受け取った優先条件などに基づいて、順位付けする、また場合によっては、条件に合致しないファイル項目は、ソート結果に残さないようにする。
【０１７９】
これらのファイルリストのソート処理（送信優先順位付け）、及び送信時の時間平均通信量調整について説明する。
【０１８０】
＜ファイルリストのソート、優先処理＞
ディレクトリ情報送信工程において、ファイルリストを送信する前にファイルリストのソートを行う（図９のステップＳ２３）。目的は上述したように、通信量が制限された状態で、優先順に従って順次送信するためである。
【０１８１】
以下にそれぞれ優先順位の付け方の異なるソート方法を示す。
【０１８２】
１．予め定めた優先順位
ファイル項目毎に予め優先順位を定めておく。ファイルリスト要求を受けたときには、その優先順位に基づいてファイルをソートしてから、要求元に順次送信する。
【０１８３】
２．更新日時順、アクセス日時順
ファイルには、作成された日時、あるいは最後に更新された日時を記録しておく。ファイルリスト要求を受けたときには、その日時に基づいてファイルをソートし、新しい順に順次送信する。また、最後にアクセスされた日時を記録しておき、その日時に基づいてファイルをソートし、新しい順に送信してもよい。
【０１８４】
３．アクセス回数順、頻度順
ファイルには、アクセスされた回数をカウンターにて記録しておく。ファイルリスト要求を受けたときには、カウンターに記録されている累積回数に基づいてファイルをソートし、回数の多い順に順次送信する。または、回数だけでなく時間をも記録しておき、アクセス頻度に基づいてファイルをソートし、頻度の多い順に送信してもよい。
【０１８５】
４．優先順位の指定
ファイルリスト要求時に、優先順位を決定するための情報としてソートするキー項目が指定される。その指定されたキーに基づいてファイルをソートし、指定された順に順次送信する。キー項目としては、更新日時、アクセス日時、アクセス頻度の他、ファイル名順、ファイルサイズ順、あるいはこれらの組み合わせなどが考えられる。
【０１８６】
５．優先順位条件の指定
ファイルリスト要求時に、必要なファイルを決定するための優先順位条件が指定される。優先順位条件は、優先順とともにソート対象を限定するものである。すなわち、指定された優先順にファイルをソートするとともに、指定された優先条件を満たすファイルのみをソート対象とする。従って、指定された優先順位条件よりも優先順位が低いファイルについては、順次送信するソート後の結果に含まれない。
【０１８７】
以上のような順位を付与するソート処理によって、ファイルリスト送信に際して、優先して送信されるエントリを順序づけて選ぶことができる。時間平均の送信量が抑制されても、より優先されるべきファイルが優先的に送信される。
【０１８８】
＜時間平均の通信量の調整＞
ディレクトリ情報送信工程において、ファイルリストを送信する際に時間平均の通信量を調整しながら送信する（図９のステップＳ２４からステップＳ２７）。具体的にはＮ個のエントリをＴ秒間隔で送信する。これによって、時間平均の通信量を所定値を超えないように抑制し、ネットワーク負荷増大による他のファイル転送処理などへの悪影響を防止することができる。
【０１８９】
時間平均通信量調整のための、上記ＮとＴの決め方について述べる。
【０１９０】
ネットワークを構成するノード数をＭ個、ディレクトリのエントリ１個当たりのデータ量をＫバイトとする。また１個のノードが記憶しているファイル数の平均値をＦとする。
【０１９１】
以下の例では、ファイルリスト送信に割り当てる時間平均通信量を固定値Ｃとするが、ネットワークのトラフィック状況によりＣは変動させてもよい。例えば、ネットワークが空いている場合は、Ｃを最大５Ｍバイト／秒とし、混雑しているときだけ１Ｍバイト／秒に抑えるといった処理も可能である。
【０１９２】
＜＜接続形態１の場合＞＞
以下にネットワークにおけるノードの接続形態１での通信量調整方法の例を説明する。ノードの接続形態１は、既述したように、どのノード間の通信も、直接接続で行われる接続形態である。
【０１９３】
１．最悪のケースを想定した場合
ネットワークを構成するＭ個のノードは、すべてディレクトリ情報を保持しており、任意のタイミングで他のノードに対してファイルリスト要求するものとする。
【０１９４】
Ｍ個のノードがほぼ同時にお互いのノードに対してファイルリスト要求すると、これらへのファイルリスト返信に必要な単位時間当たりの通信量は、
Ｍ×Ｍ×Ｋ×（Ｎ／Ｔ）
となるので、ファイルリスト送信に当てる時間平均通信量をＣとすれば、
Ｍ×Ｍ×Ｋ×（Ｎ／Ｔ）≦Ｃ
となる。従って、
（Ｎ／Ｔ）≦Ｃ／（Ｍ×Ｍ×Ｋ）
となる。
【０１９５】
例えば、Ｍを１００、Ｋを２５０バイト、Ｃを１Ｍバイト／秒とすると、
（Ｎ／Ｔ）≦１００００００／（１００×１００×２５０）＝０．４
すなわち、１０秒当たり４個のエントリを送信する限り、ネットワークの時間平均通信量は所定のデータ量（１Ｍバイト／秒）を超えることはない。
【０１９６】
２．十分に小さいファイル要求の頻度を想定した場合
ネットワークを構成するＭ個のノードは、すべてディレクトリ情報を保持しており、任意のタイミングで他のノードに対してファイルリスト要求するものとする。
【０１９７】
しかし１個のノードがファイル要求する頻度（毎秒Ｑ回）が、十分に小さく、１個のノードの１度のファイル要求に対するファイルリストの返信に必要な単位時間当たりのデータ量だけを想定すると、
Ｍ×Ｋ×（Ｎ／Ｔ）
となるので、ファイルリスト送信に割り当てる時間平均通信量をＣとすれば、
（Ｎ／Ｔ）≦Ｃ／（Ｍ×Ｋ）
となる。
【０１９８】
例えば、Ｍを１００、Ｋを２５０バイト、Ｃを１Ｍバイト／秒とすると、
（Ｎ／Ｔ）≦１００００００／（１００×２５０）＝４０
すなわち、１秒当たり４０個のエントリを送信する限り、ネットワークの時間平均通信量は所定のデータ量（１Ｍバイト／秒）を超えることはない。
【０１９９】
なお、Ｍ個のノードがそれぞれに毎秒Ｑ回の頻度でファイル要求すると想定すると、ファイルリストの返信に必要な単位時間当たりのデータ量は、
Ｑ×Ｍ×Ｍ×Ｋ×Ｆ
となるので、「頻度が十分に小さい」とは、
Ｑ×Ｍ×Ｍ×Ｋ×Ｆ≦Ｃ
でなければならない。
【０２００】
例えば、Ｍを１００、Ｋを２５０バイト、Ｃを１Ｍバイト／秒とすると、Ｆを１００００と考えて、
Ｑ≦１００００００／（１００×１００×２５０×１００００）＝１／２５０００
となる。
【０２０１】
すなわち、この場合の十分に小さいファイル要求頻度とは、約７時間に１回以下を意味する。
【０２０２】
＜＜接続形態２の場合＞＞
以下にノードの接続形態２でのネットワークにおける通信量調整方法の例を説明する。ノードの接続形態２とは、既に図４や図５を参照して説明したように、ノード間の通信が相手のノードによって直接接続で行われる場合と間接接続で行われる場合とがある接続形態である。
【０２０３】
すべてのノード間の通信が直接接続である接続形態１の場合は、フラットなネットワーク構成ということで、ネットワークシステム内のノード間の通信の総和を、ネットワークに対する通信負荷として通信量の調整方法を定めた。
【０２０４】
しかし、接続形態２の場合は、あるノード間の通信がネットワークに与える負荷は、通信を中継するノードの数（ホップ数と称する）に依存する。すなわち、間接接続で通信が行われると、途中で他のノード（ルーティング機能を果たす）を経由して通信することになり、その分ネットワークトラフィックへの影響が大きくなる。
【０２０５】
また、仮想的なネットワークトポロジーと物理的な接続形態との関係から、ネットワークに局所的に負荷を与えるか、全体的に負荷を与えるかの違いも生じてくる。
【０２０６】
これらの影響を単純に取り扱うため、平均ホップ数Ｈとネットワークセグメント数Ｓを導入する。
【０２０７】
セグメントとは、ネットワークを物理的に構成する単位であり、それ自体がサブネットワークである複数のセグメントが互い接続されて、全体のネットワークが構成される。従って、あるネットワークセグメント内でのノード間は、他のセグメントに影響を与えることなく通信できると考えられる。
【０２０８】
これらから、あるノード間のホップ数（経由するノード数）Ｈ０が大きいほど、通信回数が増え、直接接続（常にホップ数１）の通信と比べて、ネットワークに与える負荷は大きくなる（Ｈ０／１）。また、セグメント数Ｓが大きいほど、セグメントに分かれていない場合（Ｓ＝１）と比べて、直接接続のノード間の通信が与えるネットワーク全体への負荷は小さくなる（１／Ｓ）と見積もることができる。
【０２０９】
従って、接続形態２の場合のネットワークに対する通信量の負荷は、ネットワークにおけるすべてのノード間の平均ホップ数Ｈとセグメント数Ｓを用いて、直接接続のみの接続形態１の場合と比較して平均的にＨ／Ｓ倍と推定される。
【０２１０】
前述した接続形態１の場合の、所定の割り当て通信量に対する時間当たりのデータ量にＨ／Ｓを係数として掛けておけば、同様にして適切なＮ／Ｔの上限値を設定することができる。
【０２１１】
このように、本実施形態にかかるディレクトリ情報の管理方法、及び管理システムによれば、他のノードにディレクトリ情報に関する問い合わせを行う場合にも、ネットワークに対する通信負荷が過剰にならないように抑制することができる。すなわち、問い合わせを受けた各ノードが、それぞれ時間平均の通信量が所定値を超えないように調整してデータ送信を行う。これにより、トラフィックの増大を抑制し、ファイル転送などの他のより重要な処理が影響を受けて滞ったりしないようにすることができる。
【０２１２】
なお本発明の範囲は、上記実施形態に限定されるものではない。本発明の趣旨を逸脱しない限り、それらの変更された形態もその範囲に含むものである。
【図面の簡単な説明】
【０２１３】
【図１】ネットワーク１の全体構成例を示す図である。
【図２】オーバレイネットワークの構造（物理的及び論理的接続の二面性）を模式的に示す図である。
【図３】ネットワーク１を構成するノード（端末装置）２のハードウェア構成例を示す図である。
【図４】ネットワーク１を構成する各ノード２の接続形態、すなわちノードの論理的なトポロジーの例を示す図である。
【図５】図４のように関連付けられたノード２の接続テーブルＴＬ例を示す図である。
【図６】ノード（端末装置）２の機能構成例を示すブロック図（ａ）、および制御部１０１の機能の内部構成を示す図（ｂ）である。
【図７】ディレクトリ情報によるファイル管理、及びディレクトリ情報の管理のために必要な各工程を起動する処理の流れを示すフローチャートである。
【図８】ディレクトリ情報要求工程の処理例の流れを示すフローチャートである。
【図９】ディレクトリ情報送信工程の処理例の流れを示すフローチャートである。
【図１０】ディレクトリ情報更新工程の処理例の流れを示すフローチャートである。
【図１１】ファイル要求工程の処理例の流れを示すフローチャートである。
【図１２】ファイル要求処理工程の処理例の流れを示すフローチャートである。
【図１３】ディレクトリ情報の初期化プロセス例を示す説明図である。
【図１４】他のノードに対するファイル要求のプロセス例を示す説明図である。
【図１５】他のノードからのファイル追加、削除の通知によるディレクトリの更新プロセス例を示す説明図である。
【図１６】ディレクトリ情報の再初期化プロセス例を示す説明図である。るＰＣ７から復元データを取得する様子を示す図である。
【符号の説明】
【０２１４】
１  ネットワーク（Ｐ２Ｐ）
２  端末装置（ノード）
３  スイッチングハブ
４  ルータ
５  認証サーバ
１０１  制御部
１０２  記憶部
１０３  通信部
１１１  ディレクトリ情報要求部
１１２  ディレクトリ情報送信部
１１３  ディレクトリ情報更新部
１１４  ファイル要求部
１１５  ファイル要求処理部
１２１  ファイルデータ部
１２２  ファイルリスト部
１２３  ディレクトリ部
ＴＬ  接続テーブル
【図１】
2008304981.tif 000003
【図２】
2008304981.tif 000004
【図３】
2008304981.tif 000005
【図４】
2008304981.tif 000006
【図５】
2008304981.tif 000007
【図６】
2008304981.tif 000008
【図７】
2008304981.tif 000009
【図８】
2008304981.tif 000010
【図９】
2008304981.tif 000011
【図１０】
2008304981.tif 000012
【図１１】
2008304981.tif 000013
【図１２】
2008304981.tif 000014
【図１３】
2008304981.tif 000015
【図１４】
2008304981.tif 000016
【図１５】
2008304981.tif 000017
【図１６】
2008304981.tif 000018