(57)【要約】【課題】複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、新たな情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能な共有データの同期方法、共有データを同期するためのプログラムおよびネットワークシステムを提供する。【解決手段】Ｎｏｄｅ５は、Ｎｏｄｅ１から取得した一時リストを、共有データを取得すべき順序に並び替える。一例として、Ｎｏｄｅ５は、各共有データが重要度の順序で配列されるように一時リストの内容を並び替え、この並び替え後の一時リストの内容に基づいて、不足している共有データの各々についての取得先を決定する。一例として、Ｎｏｄｅ５は、並び替え後の一時リストにおける各共有データの順序に対応して、不足している共有データの送信を、ネットワークシステムＳＹＳを構成するＮｏｄｅ１〜Ｎｏｄｅ４のＩＤ順に依頼する。【選択図】図６
2009230207.tif 000002
【特許請求の範囲】
【請求項１】
互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持するための共有データの同期方法であって、
前記複数の情報処理装置は、共有データと当該共有データを管理するためのリストとを各自の記憶部に保持しており、
前記共有データの同期方法は、
前記共有データを同期して保持するために新規参加する情報処理装置が、既に前記リストを保持している既存の情報処理装置の少なくとも１つから前記リストを取得するステップと、
前記新規参加する情報処理装置が、取得したリストに基づいて、不足している共有データを取得すべき複数の既存の情報処理装置を負荷が分散されるように決定し、それら既存の情報処理装置からそれぞれに分担された共有データを取得するステップと、
前記新規参加する情報処理装置が、取得した共有データを自己の記憶部に格納するステップとを含む、共有データの同期方法。
【請求項２】
前記共有データを取得するステップは、
取得先の前記既存の情報処理装置の別に、取得対象の共有データを規定した依頼リストを生成するステップと、
前記依頼リストを対応する前記既存の情報処理装置にそれぞれ送信するステップとを含み、
前記共有データの同期方法は、前記依頼リストを受信した前記既存の情報処理装置の各々が、当該依頼リストの内容に従って、対象の共有データを前記新規参加する情報処理装置へ送信するステップをさらに含む、請求項１に記載の共有データの同期方法。
【請求項３】
前記依頼リストは、対象の共有データについての送信タイミングを示す指示情報を含み、
前記依頼リストを受信した前記既存の情報処理装置の各々は、当該依頼リストに規定された前記指示情報に従って、所定のタイミングで対象の共有データを前記新規参加する情報処理装置へ送信する、請求項２に記載の共有データの同期方法。
【請求項４】
前記リストは、前記共有データの各々についての属性情報を含み、
前記共有データを取得するステップは、前記リストに含まれる前記属性情報に基づいて、前記共有データの取得先を決定するステップを含む、請求項１〜３のいずれか１項に記載の共有データの同期方法。
【請求項５】
前記属性情報は、前記共有データの各々についての重要度を含む、請求項４に記載の共有データの同期方法。
【請求項６】
前記リストを取得するステップは、前記新規参加する情報処理装置が前記既存の情報処理装置に対して参加を通知するステップを含み、
前記共有データを取得するステップは、
前記参加を通知した後、前記既存の情報処理装置からのリストをそれぞれ受信するまでの時間に基づいて、前記既存の情報処理装置のランク付けを行なうステップと、
前記既存の情報処理装置のランクに基づいて、前記不足している共有データの取得先を決定するステップを含む、請求項１〜５のいずれか１項に記載の共有データの同期方法。
【請求項７】
互いにデータ通信可能に接続された複数の情報処理装置の間で共有データを同期するためのプログラムであって、
前記複数の情報処理装置は、共有データと当該共有データを管理するためのリストとを各自の記憶部に保持しており、
前記プログラムは、前記情報処理装置に、
他の情報処理装置から前記リストを取得するステップと、
取得したリストに基づいて、不足している共有データを取得すべき複数の既存の情報処理装置を負荷が分散されるように決定し、それら既存の情報処理装置からそれぞれに分担された共有データを取得するステップと、
取得した共有データを自己の記憶部に格納するステップとを実行させる、共有データを同期するためのプログラム。
【請求項８】
互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持可能なネットワークシステムであって、
前記複数の情報処理装置は、共有データと当該共有データを管理するためのリストとを各自の記憶部に保持している複数の第１の情報処理装置と、前記第１の情報処理装置が保持する前記共有データを完全には保持していない第２の情報処理装置とを含み、
前記第２の情報処理装置は、
前記第１の情報処理装置から前記リストを取得する手段と、
取得したリストに基づいて、不足している共有データを取得すべき複数の第１の情報処理装置を負荷が分散されるように決定し、それら第１の情報処理装置からそれぞれに分担された共有データを取得する手段と、
取得した共有データを自己の記憶部に格納する手段とを含む、共有データを同期して保持可能なネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、共有データの同期方法、複数の情報処理装置の間で共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステムに関し、特に同期処理に係る負荷を分散させるための構成に関する。
【背景技術】
【０００２】
複数のユーザの間でデータ共有を行なう場合には、従来、いわゆるサーバ・クライアント形式の構成が用いられてきた。このサーバ・クライアント形式は、少なくとも１台のファイルサーバに共有すべきデータ（ファイル）を格納するとともに、複数のクライアントが当該ファイルサーバにアクセスするという形式をとる。
【０００３】
このようなサーバ・クライアント形式に代えて、近年、いわゆるＰ２Ｐ（Peer to Peer）形式の構成が採用されることも多くなっている。このＰ２Ｐ形式は、複数の情報処理装置（各情報処理装置は「ピア（Peer）」あるいは「ノード」とも称される。）の間で随時ファイル交換を行なうことで、それぞれが同一のデータを同期して保持し、これによりデータ共有を行なうものである。このようなＰ２Ｐ形式を採用することで、ファイルサーバを配置し、さらにその管理を行なう必要がなくなる。また、情報処理装置がオフラインであってもデータ利用が可能となる。
【０００４】
一方、Ｐ２Ｐ形式では、各情報処理装置がデータを保持しているため、新たな情報処理装置がネットワークシステムに参加し、すでに各情報処理装置で共有されているデータを取得しようとする場合（いわゆる、同期の確立）には、特定の情報処理装置から当該新規参加した情報処理装置宛てに多数のデータが送信されることになる。そのため、当該送信元の情報処理装置は、その送信処理の実行中に多大なリソースを消費するという課題が生じ得る。
【０００５】
特開２００４−８６８０００号公報（特許文献１）には、一度のデータ同期で大量の情報を送受信することのないように、適当なデータ送信量でデータ同期を自動的に開始することにより、通信時間の増大やデータ同期中にエラーの起こる可能性を抑えるための構成が開示されている。
【特許文献１】特開２００４−８６８０００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特開２００４−８６８０００号公報（特許文献１）に開示の構成は、主として、サーバ・クライアント形式に適用されるものである。また、この構成では、サーバがデータベースの更新内容を更新履歴として保存し、更新履歴の件数がしきい値より大きい時にデータ同期を開始する構成を採用するため、Ｐ２Ｐ形式のシステムに適用したとしても、特定のサーバにデータ同期に係る処理が集中してしまうという課題は解決されない。
【０００７】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、新たな情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能な共有データの同期方法を提供することである。また、この発明の別の目的は、上述のような共有データを同期するためのプログラムおよび共有データを同期して保持可能なネットワークシステムを提供することである。
【課題を解決するための手段】
【０００８】
この発明のある局面に従えば、互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持するための共有データの同期方法を提供する。複数の情報処理装置は、共有データと当該共有データを管理するためのリストとを各自の記憶部に保持している。共有データの同期方法は、共有データを同期して保持するために新規参加する情報処理装置が、既にリストを保持している既存の情報処理装置の少なくとも１つからリストを取得するステップと、新規参加する情報処理装置が、取得したリストに基づいて、不足している共有データを取得すべき複数の既存の情報処理装置を負荷が分散されるように決定し、それら既存の情報処理装置からそれぞれに分担された共有データを取得するステップと、新規参加する情報処理装置が、取得した共有データを自己の記憶部に格納するステップとを含む。
【０００９】
好ましくは、共有データを取得するステップは、取得先の既存の情報処理装置の別に、取得対象の共有データを規定した依頼リストを生成するステップと、依頼リストを対応する既存の情報処理装置にそれぞれ送信するステップとを含み、共有データの同期方法は、依頼リストを受信した既存の情報処理装置の各々が、当該依頼リストの内容に従って、対象の共有データを新規参加する情報処理装置へ送信するステップをさらに含む。
【００１０】
さらに好ましくは、依頼リストは、対象の共有データについての送信タイミングを示す指示情報を含み、依頼リストを受信した既存の情報処理装置の各々は、当該依頼リストに規定された指示情報に従って、所定のタイミングで対象の共有データを新規参加する情報処理装置へ送信する。
【００１１】
好ましくは、リストは、共有データの各々についての属性情報を含み、共有データを取得するステップは、リストに含まれる属性情報に基づいて、共有データの取得先を決定するステップを含む。
【００１２】
さらに好ましくは、属性情報は、共有データの各々についての重要度を含む。
好ましくは、リストを取得するステップは、新規参加する情報処理装置が既存の情報処理装置に対して参加を通知するステップを含み、共有データを取得するステップは、参加を通知した後、既存の情報処理装置からのリストをそれぞれ受信するまでの時間に基づいて、既存の情報処理装置のランク付けを行なうステップと、既存の情報処理装置のランクに基づいて、不足している共有データの取得先を決定するステップを含む。
【００１３】
この発明の別の局面に従えば、互いにデータ通信可能に接続された複数の情報処理装置の間で共有データを同期するためのプログラムを提供する。複数の情報処理装置は、共有データと当該共有データを管理するためのリストとを各自の記憶部に保持している。プログラムは、情報処理装置に、他の情報処理装置からリストを取得するステップと、取得したリストに基づいて、不足している共有データを取得すべき複数の既存の情報処理装置を負荷が分散されるように決定し、それら既存の情報処理装置からそれぞれに分担された共有データを取得するステップと、取得した共有データを自己の記憶部に格納するステップとを実行させる。
【００１４】
この発明のさらに別の局面に従えば、互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持可能なネットワークシステムを提供する。複数の情報処理装置は、共有データと当該共有データを管理するためのリストとを各自の記憶部に保持している複数の第１の情報処理装置と、第１の情報処理装置が保持する共有データを完全には保持していない第２の情報処理装置とを含む。第２の情報処理装置は、第１の情報処理装置からリストを取得する手段と、取得したリストに基づいて、不足している共有データを取得すべき複数の第１の情報処理装置を負荷が分散されるように決定し、それら第１の情報処理装置からそれぞれに分担された共有データを取得する手段と、取得した共有データを自己の記憶部に格納する手段とを含む。
【発明の効果】
【００１５】
この発明によれば、複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、新たな情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能な共有データの同期方法を提供することである。
【発明を実施するための最良の形態】
【００１６】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１７】
［実施の形態１］
（ネットワークシステムの全体構成）
図１は、この発明の実施の形態１に従うネットワークシステムＳＹＳの概略構成図である。
【００１８】
図１を参照して、本実施の形態に従うネットワークシステムＳＹＳは、初期の状態として、ネットワークＮＷを介して、複数の情報処理装置ＰＣ１〜ＰＣ４が互いにデータ通信可能な状態に構成されているとする。そして、複数の情報処理装置ＰＣ１〜ＰＣ４は、Ｐ２Ｐ（Peer to Peer）形式の通信プロトコルに従って、少なくとも１つの共有データを同期して保持する。
【００１９】
本明細書において「同期」とは、複数の情報処理装置の各々が同一の共有データを過不足なく保持している状態を意味する。すなわち、各情報処理装置は、他の情報処理装置とデータ交換（データコピー）をすることで、不足する共有データを収集する。このような処理を繰返すことで、ネットワークシステムＳＹＳに含まれる情報処理装置ＰＣ１〜ＰＣ４の各々が同一の共有データを過不足なく保持することができる。なお、共有データは、代表的にユーザがいずれのパーソナルコンピュータを用いて新規に生成し、あるいは生成済のデータを共有データとして指定することで定められる。
【００２０】
本実施の形態では、主として、上記のような初期状態のネットワークシステムＳＹＳに対して、情報処理装置ＰＣ５が新規参加した場合の共有データの同期処理について説明する。なお、本明細書において「新規参加」とは、ネットワークシステムＳＹＳにおいて既に同期状態にある共有データの全部またはその一部を保持しない情報処理装置、すなわち同期状態にある共有データを完全には保持していない情報処理装置が、ネットワークシステムＳＹＳに追加されることを意味する。より具体的には、共有データを全く保持しない情報処理装置がネットワークシステムＳＹＳに新規に接続する場合のほか、過去にネットワークシステムＳＹＳに所属していたことがあり、その時に取得した一部の共有データを保持している情報処理装置が、当該ネットワークシステムＳＹＳを離脱した後に、再度ネットワークシステムＳＹＳに接続するような場合も含む。
【００２１】
本実施の形態では、情報処理装置ＰＣ１〜ＰＣ５（以下「情報処理装置ＰＣ」とも総称する。）の代表例として、パーソナルコンピュータを用いる構成について例示するが、Ｐ２Ｐ形式の通信プロトコルおよびアプリケーションを実装可能な装置であれば、どのような装置であってもよい。より具体的には、情報処理装置ＰＣとして、複写機能やファクシミリ機能などを搭載したＭＦＰ（Multi Function Peripheral）、携帯電話、ＰＤＡ（Personal Digital Assistance）、ネットワークファクシミリなどを採用することができる。
【００２２】
また、情報処理装置ＰＣは、論理的に互いにデータ通信可能な状態を形成できれば、必ずしも同一階層のネットワークに物理的に接続されている必要はない。
【００２３】
（ハードウェア構成）
図２は、この発明の実施の形態１に従う情報処理装置ＰＣ１〜ＰＣ５の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００２４】
図２を参照して、本実施の形態に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２００と、ＣＰＵ２００でのプログラムの実行に必要なデータを一時的に記憶するメモリ部２１２と、ＣＰＵ２００で実行されるプログラムを不揮発的に記憶するハードディスク部（ＨＤＤ）２１０とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ２１４またはフレキシブルディスク（ＦＤ：Flexible Disk）ドライブ２１６によって、それぞれＣＤ−ＲＯＭ２１４ａまたはフレキシブルディスク２１６ａなどから読取られる。
【００２５】
ＣＰＵ２００は、キーボードやマウスなどからなる入力部２０８を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力をディスプレイ部２０４へ出力する。また、ＣＰＵ２００は、ＬＡＮカードなどからなるネットワークインターフェイス（Ｉ／Ｆ）部２０６を介して、他の情報処理装置との間でデータ通信を行なう。なお、これらの部位は、内部バス２０２を介して互いに接続される。
【００２６】
（情報処理装置の機能構成）
図３は、この発明の実施の形態１に従う情報処理装置ＰＣ１〜ＰＣ５における制御構造を示す概略図である。図３に示す制御構造は、代表的に、ＣＰＵ２００（図２）がハードディスク部２１０（図２）に予め格納されたプログラムをメモリ部２１２（図２）に展開し、各コマンドを実行することで提供される。
【００２７】
図３を参照して、情報処理装置ＰＣの各々は、データ受信部１０２と、データ解析部１０４と、データ操作部１０６と、リスト管理部１０８と、認証部１１０と、ネットワーク申請部１１２と、接続テーブル管理部１１４と、データ格納部１２０と、データ作成部１２２と、データ送信部１２４とをその機能として含む。なお、データ格納部１２０は、ハードディスク部２１０（図２）に所定領域を確保することで実現される。
【００２８】
データ受信部１０２は、ネットワークＮＷ上を伝送されるデータパケットを受信するとともに、分割送信されたデータパケットについては結合してデータ列に復元した上で、データ解析部１０４へ出力する。データ解析部１０４は、各データ列の内容（代表的に、ヘッダ部のアドレス情報）を解析し、当該データ列が自装置宛てのものであるか否かを判断する。そして、データ解析部１０４は、自装置宛てのものと判断したデータ列のみをデータ操作部１０６と、リスト管理部１０８と、認証部１１０と、ネットワーク申請部１１２と、接続テーブル管理部１１４のいずれかに出力する。
【００２９】
データ操作部１０６は、自情報処理装置ＰＣにおいてユーザが新たにデータを生成した場合や、他情報処理装置ＰＣから新たなデータが送信された場合などに、当該データをデータ格納部１２０の共有データ保持部（ＤＢ）１１６へ格納するとともに、当該共有データの追加や削除といった変更内容をリスト管理部１０８へ通知する。また、データ操作部１０６は、他情報処理装置ＰＣからの要求に応じて、共有データ保持部１１６に格納している共有データを提供する。
【００３０】
また、データ操作部１０６は、自情報処理装置ＰＣがネットワークシステムＳＹＳに新規参加した場合には、後述するリスト管理部１０８の指示に従って、指定された他情報処理装置ＰＣに指定された共有データについてのデータ送信依頼を送信する。さらに、データ操作部１０６は、他情報処理装置ＰＣから当該データ送信依頼に応じて送信される共有データを受信すると、当該データをデータ格納部１２０の共有データ保持部（ＤＢ）１１６へ格納するとともに、当該共有データの受信および格納をリスト管理部１０８へ通知する。
【００３１】
リスト管理部１０８は、上述のデータ操作部１０６から共有データの変更の通知を受けると、その内容に基づいてデータ格納部１２０のリスト１３４を更新する。また、リスト管理部１０８は、ネットワークシステムＳＹＳへ新規参加した情報処理装置ＰＣからの新規参加通知を後述するネットワーク申請部１１２を介して受信すると、データ格納部１２０に格納しているリスト１３４を当該新規参加した情報処理装置ＰＣへ送信する。
【００３２】
ここで、リスト１３４は、データ格納部１２０の共有データ保持部１１６へ格納されている共有データを管理するためのデータを含む。より具体的には、リスト１３４は、共有データ保持部１１６に格納されている共有データの別に、当該共有データのデータ名（または、ファイル名）、サイズ、更新日時、作成日時、重要度、ファイル種別、データ作成者、アクセス可能ユーザ（または、アクセスコントロール情報）、およびその他の属性情報などを含む。なお、リスト１３４の一例については後述する。
【００３３】
また、リスト管理部１０８は、自情報処理装置ＰＣがネットワークシステムＳＹＳに新規参加した場合には、他情報処理装置ＰＣが送信したリスト１３４を受信し、一時リスト１３６としてデータ格納部１２０に格納する。さらに、リスト管理部１０８は、当該一時リスト１３６の情報に基づいて、必要な共有データを取得するための指示をデータ操作部１０６へ与える。すなわち、リスト管理部１０８は、他情報処理装置ＰＣが保持するリスト１３４（自情報処理装置ＰＣの一時リスト１３６）に基づいて、ネットワークシステムＳＹＳに属する情報処理装置ＰＣとの間で共有データを同期する。
【００３４】
認証部１１０は、他情報処理装置ＰＣからの新規参加通知に対して接続拒否を判断する。より具体的には、認証部１１０は、他情報処理装置ＰＣの新規参加通知に付属するユーザＩＤやパスワード、または他情報処理装置ＰＣの装置ＩＤなどに基づいて、認証処理を行なうことで接続拒否を判断する。あるいは、予めブラックリストおよび／またはホワイトリストを格納しておき、ブラックリストに該当しない、またはホワイトリストに該当する場合に限って、新規参加通知の送信元の情報処理装置ＰＣに対する接続を許可するようにしてもよい。
【００３５】
ネットワーク申請部１１２は、ユーザ操作などに応じて、自情報処理装置ＰＣがネットワークシステムＳＹＳに新規参加しようとする場合に、新規参加通知を当該ネットワークシステムＳＹＳに属する他の情報処理装置ＰＣへ新規参加通知を送信する。また、ネットワーク申請部１１２は、ユーザ操作などに応じて、自情報処理装置ＰＣがネットワークシステムＳＹＳから離脱しようとする場合に、新規参加通知を当該ネットワークシステムＳＹＳに属する他の情報処理装置ＰＣへ離脱通知を送信する。
【００３６】
データ作成部１２２は、データ操作部１０６が読み出した共有データ、リスト管理部１０８が読み出したリスト１３４、ネットワーク申請部１１２が発行した新規参加通知などを、所定のデータパケットに整形し、データ送信部１２４へ出力する。
【００３７】
データ送信部１２４は、データ格納部１２０の接続テーブル１３２を参照して、各データパケットの送信先を特定するためのユニークな情報（代表的に、ＩＰアドレスなどのネットワークアドレス）を取得し、ネットワークＮＷを介して送信する。
【００３８】
接続テーブル１３２は、少なくともＰ２Ｐ形式のネットワークシステムＳＹＳを構成する情報処理装置の別に、ＩＰアドレス、ＭＡＣアドレス、ネットマスクなどを含む。
【００３９】
接続テーブル管理部１１４は、ネットワークシステムＳＹＳにいずれかの情報処理装置ＰＣが新規参加した場合、およびネットワークシステムＳＹＳからいずれかの情報処理装置ＰＣが離脱した場合には、データ格納部１２０の接続テーブル１３２の内容を更新する。
【００４０】
（新規参加時の同期処理）
以下では、図４〜図９を参照して、本実施の形態に従うネットワークシステムＳＹＳに情報処理装置が新規参加した場合の共有データの同期処理について説明する。なお、以下の説明では、論理的に形成される情報処理装置ＰＣ間の論理的なコネクションに着目して、情報処理装置ＰＣ１〜ＰＣ５をそれぞれ「Ｎｏｄｅ（あるいは、ノード）１〜Ｎｏｄｅ５」とも記す。
【００４１】
図４は、Ｎｏｄｅ５が新規参加する直前のネットワークシステムＳＹＳの状態を示す図である。
【００４２】
図４を参照して、初期状態として、Ｎｏｄｅ１〜Ｎｏｄｅ４の各々がデータＡ〜データＦを同期して保持しているとする。また、上述したように、Ｎｏｄｅ１〜Ｎｏｄｅ４の各々は、これらのデータＡ〜データＦを管理するためのリストも保持しているものとする。
【００４３】
一方、新規参加するＮｏｄｅ５は、データＡ〜データＦを完全には保持していない（この例では、何らの共有データも保持していない）ものとする。また、Ｎｏｄｅ５は、初期状態においては、共有データを管理するためのリストも保持していないものとする。
【００４４】
図５は、図４に示すＮｏｄｅ１〜Ｎｏｄｅ４の各々が保持するリストの内容の一例を示す図である。なお、Ｎｏｄｅ１〜Ｎｏｄｅ４が保持するリストの内容は、原則的に互いに同一である。
【００４５】
図５を参照して、リストには、同期して保持されているデータＡ〜データＦの別に、「データ名」、「サイズ」、「更新日時」、「重要度」といった属性情報が規定されているとする。これらの属性情報は、同期対象の共有データが追加される際に生成または追加される。たとえば、「重要度」については、共有データの内容（テキスト）から特定の文字を抽出することで、判断することもできる。なお、リストに格納される属性情報は、これらの情報に限られることなく、他の属性情報を含むようにしてもよい。
【００４６】
本実施の形態では、新規参加ノードが上記リストに規定された各共有データの属性情報に基づいて、必要な共有データの取得先を分散的に決定することで、特定のＮｏｄｅへの処理集中を回避する。特に、以下に説明する例では、各共有データに対応付けられた「重要度」に基づいて、共有データの取得先を決定する構成について例示する。
【００４７】
図６は、この発明の実施の形態１に従う新規参加時の同期処理に係るシーケンス図である。
【００４８】
図５および図６を参照して、ユーザが、ネットワークシステムＳＹＳに新規参加させるようにＮｏｄｅ５を操作する（ステップＳ１００）と、Ｎｏｄｅ５は、ネットワークシステムＳＹＳに所属するＮｏｄｅに対して、新規参加通知を送信する（ステップＳ１０２）。より具体的には、Ｎｏｄｅ５は、自己が接続しているネットワークＮＷ上に新規参加通知をブロードキャストする。
【００４９】
この新規参加通知に応答して、ネットワークシステムＳＹＳを構成するいずれかのＮｏｄｅ（図６に示す例では、Ｎｏｄｅ１）は、当該Ｎｏｄｅが保持するリストをＮｏｄｅ５へ送信（返信）する（ステップＳ１０４）。なお、ブロードキャストされる新規参加通知に応答して最も早くリストを返信したＮｏｄｅ以外のＮｏｄｅは、リストの返信を行なわないようにしてもよい。すなわち、新規参加通知を受けたＮｏｄｅは、他のＮｏｄｅが当該新規参加通知に応答してリストを返信していない場合に限って、自己の保持するリストを返信するようにしてもよい。このような構成によれば、１つのＮｏｄｅのみがリストを返信するので、ネットワーク上のデータ量の増加を抑制できる。また、予めＮｏｄｅ間で優先順位を決定しておき、最も優先順位の高いＮｏｄｅから先に自己のリストを応答するようにしてもよい。
【００５０】
あるいは、ネットワークシステムＳＹＳを構成するＮｏｄｅが予め既知である場合には、新規参加するＮｏｄｅがネットワークシステムＳＹＳを構成するＮｏｄｅをランダムに選択し、当該選択したＮｏｄｅに対してのみ新規参加通知を送信するようにしてもよい。このような場合には、特定のＮｏｄｅのみが新規参加通知を受信するので、ネットワーク上のデータ量の増加を抑制できる。
【００５１】
上記のようなステップＳ１００〜Ｓ１０４に示す処理によって、Ｎｏｄｅ５は、既存のＮｏｄｅ１からリストを取得する。さらに、Ｎｏｄｅ５は、Ｎｏｄｅ１から取得したリストを一時リストとして格納する（ステップＳ１０６）。続いて、Ｎｏｄｅ５は、不足している共有データの取得先を決定するために、ステップＳ１０６において格納した一時リストを並び替える（ステップＳ１０８）。
【００５２】
図７は、図５に示すリストの受信後に並び替え処理を実行した後の一時リストの内容を示す図である。
【００５３】
図７を参照して、Ｎｏｄｅ５は、不足している共有データの取得先を決定するために、共有データを取得すべき順序に並び替える。一例として、Ｎｏｄｅ５は、各共有データが重要度の順序で配列されるように一時リストの内容を並び替える。Ｎｏｄｅ５は、このような並び替え処理によって、Ｎｏｄｅ１から受信したリストを図７に示すような一時リストに並び替える。
【００５４】
続いて、Ｎｏｄｅ５は、この並び替え後の一時リストの内容に基づいて、不足している共有データの各々についての取得先を決定する。一例として、Ｎｏｄｅ５は、並び替え後の一時リストにおける各共有データの順序に対応して、不足している共有データの送信を、ネットワークシステムＳＹＳを構成するＮｏｄｅ１〜Ｎｏｄｅ４のＩＤ順に依頼する。すなわち、Ｎｏｄｅ５は、並び替え後の一時リストにおいて、最も重要度の高いデータＢについては、Ｎｏｄｅ１を依頼先として決定し、次に重要度の高いデータＦについては、Ｎｏｄｅ２を依頼先として決定し、その次に重要度の高いデータＥについては、Ｎｏｄｅ３を依頼先として決定し、といった具合である。
【００５５】
このように、不足している共有データが複数である場合に、当該不足している共有データの一部の取得先と、当該不足している共有データの残部の取得先とを異なったものとすることで、特定のＮｏｄｅにデータ同期に係る処理が集中してしまうことを回避する。
【００５６】
再度、図６を参照して、Ｎｏｄｅ５は、このように決定した依頼先に対して、対応の共有データの送信依頼を生成（ステップＳ１１０）し、当該データ送信依頼を依頼先のＮｏｄｅへ送信する（ステップＳ１１２）。なお、ネットワーク上のデータ量の増加を抑制する観点からは、Ｎｏｄｅ５からのデータ送信依頼は、一括送信ではなく、順次送信することが好ましい。
【００５７】
このデータ送信依頼を受信したＮｏｄｅは、自己の保持する指定された共有データを読み出し（ステップＳ１１４）、当該読み出した共有データをＮｏｄｅ５へ送信する（ステップＳ１１６）。
【００５８】
上記のようなステップＳ１０６〜Ｓ１１６に示す処理によって、Ｎｏｄｅ５は、不足している共有データをＮｏｄｅ１〜Ｎｏｄｅ４のそれぞれから分散的に取得する。さらに、Ｎｏｄｅ５は、当該共有データを自己の共有データ保持部１１６（図３）に格納する（ステップＳ１１８）とともに、共有データを管理するためのリストの内容を更新または生成する（ステップＳ１２０）。１つの共有データを取得するための一連の処理（ステップＳ１１０〜ステップＳ１２０）が完了した後、さらに取得すべき共有データがある場合には、Ｎｏｄｅ５は、別の共有データについて、ステップＳ１１０〜ステップＳ１２０に示す処理を再度実行する。
【００５９】
一方、対象となる共有データをすべて取得すると、共有データの同期処理は終了する。このとき、Ｎｏｄｅ５は、一時リストを消去または無効化する。
【００６０】
このような手順によって、新規参加したＮｏｄｅ５は共有データの同期処理を完了する。
【００６１】
図８は、図４に示すネットワークシステムＳＹＳにおいてＮｏｄｅ５が新規参加した後に共有データの同期処理が実行されている状態を示す図である。図９は、図４に示すネットワークシステムＳＹＳにおいてＮｏｄｅ５についての共有データの同期処理が完了した状態を示す図である。
【００６２】
図８を参照して、上述したように、並び替え後の一時リストの内容に基づいて、データＢの依頼先がＮｏｄｅ２に決定されると、Ｎｏｄｅ５は、データＢの送信依頼をＮｏｄｅ２へ送信する。すると、Ｎｏｄｅ２からは、この送信依頼に応答してデータＢが返信される。Ｎｏｄｅ５は、Ｎｏｄｅ２から受信したデータＢを格納するとともに、共有データを管理するためのリストを更新する。このような共有データの取得処理が繰返されて、最終的には、図９に示すような同期処理の完了状態になる。
【００６３】
図９に示すように、Ｎｏｄｅ５についての共有データの同期処理が完了すると、Ｎｏｄｅ５は、他のＮｏｄｅ１〜Ｎｏｄｅ４が保持する共有データと同じ共有データを保持するようになる。なお、共有データの同期処理が完了すると、一時リストは削除されるため、Ｎｏｄｅ５は一時リストを保持していない。
【００６４】
なお、図６のステップＳ１０８においては、共有データの送信依頼先をＮｏｄｅのＩＤ順に決定する構成について例示したが、各Ｎｏｄｅの能力に応じて決定してもよい。より具体的には、各ＮｏｄｅのＣＰＵ性能やデータ伝送性能などに応じて、依頼先を決定してもよい。あるいは、各ＮｏｄｅがネットワークシステムＳＹＳに参加した順序などに従って、依頼先を決定してもよい。
【００６５】
また、図６のステップＳ１０８においては、共有データの取得先を決定するために、重要度に基づいて並び替える構成について例示したが、他の属性情報（項目）に基づいて並び替えを行ってもよい。あるいは、共有データの取得順序が予め定まっている場合、ユーザの指示に従って共有データを取得するモードの場合、ランダムに決定された取得順序に従って共有データを取得するモードの場合、などでは、共有データの並び替えを行なわなくてもよい。
【００６６】
また、図６のステップＳ１１０〜ステップＳ１１６では、共有データの送信を１つずつ依頼する構成について例示したが、データの属性情報（サイズなど）に応じて、複数の共有データの送信をまとめて依頼してもよい。
【００６７】
また、図６のステップＳ１１０〜ステップＳ１１６では、共有データの別に送信依頼先のＮｏｄｅを順次切替えるようにした構成について例示したが、所定の時間毎に送信依頼先のＮｏｄｅを順次切替えるようにしてもよい。
【００６８】
（共有データ追加処理）
次に、図１０を参照して、本実施の形態に従うネットワークシステムＳＹＳで保持される共有データを追加するための処理について説明する。
【００６９】
以下の説明では、一例として、ネットワークシステムＳＹＳが図４に示すような状態にある場合に、共有データとしてデータＧがＮｏｄｅ１に追加される場合について例示する。
【００７０】
図１０は、この発明の実施の形態１に従う共有データ追加処理に係るシーケンス図である。
【００７１】
図１０を参照して、ユーザ操作などによって、Ｎｏｄｅ１でデータＧが生成され、またはＮｏｄｅ１にデータＧが与えられると、Ｎｏｄｅ１は、当該データＧを自己の共有データ保持部１１６（図３）に格納する（ステップＳ２００）するとともに、共有データを管理するためのリストを更新または生成する（ステップＳ２０２）。すなわち、Ｎｏｄｅ１は、自己のリストにデータＧのエントリを追加する。さらに、Ｎｏｄｅ１は、他のＮｏｄｅ２〜Ｎｏｄｅ４のそれぞれに対して更新メッセージを送信し（ステップＳ２０４）、共有データが追加されたことを通知する。
【００７２】
この更新メッセージを受信したＮｏｄｅ２〜Ｎｏｄｅ４の各々は、当該更新されたデータの送信依頼を生成（ステップＳ２０６）し、生成したデータ送信依頼をＮｏｄｅ１へ送信する（ステップＳ２０８）。Ｎｏｄｅ１は、Ｎｏｄｅ２〜Ｎｏｄｅ４のいずれかからデータ送信依頼を受信すると、自己の共有データ保持部１１６（図３）に格納しているデータＧを読み出すとともに、データＧに相当するリストの差分を生成する（ステップＳ２１０）。さらに、Ｎｏｄｅ１は、データ送信依頼の送信元のＮｏｄｅ（Ｎｏｄｅ２〜Ｎｏｄｅ４）に対して、データＧおよびリスト差分を送信する（ステップＳ２１２）。
【００７３】
データＧおよびリスト差分を受信したＮｏｄｅ（Ｎｏｄｅ２〜Ｎｏｄｅ４）は、データＧを自己の共有データ保持部１１６（図３）に格納する（ステップＳ２１４）するとともに、共有データを管理するためのリストをリスト差分に従って更新する（ステップＳ２１６）。ステップＳ２１４およびステップＳ２１６が完了した各Ｎｏｄｅは、データ更新完了通知をＮｏｄｅ１に送信する（ステップＳ２１８）。
【００７４】
上述のステップＳ２０４およびステップＳ２０８において、送信Ｎｏｄｅ（Ｎｏｄｅ１）から受信Ｎｏｄｅ（Ｎｏｄｅ２〜Ｎｏｄｅ４）へ更新メッセージを送信し、さらに受信Ｎｏｄｅから送信Ｎｏｄｅがデータ送信依頼を受信した場合に限って、追加された共有データの送信を開始するのは、受信Ｎｏｄｅが高負荷状態であったときなどのように、新たな共有データを追加できない場合に、共有データを受信Ｎｏｄｅに無理に送信しないためである。そのため、Ｎｏｄｅ１から更新メッセージを送信した後、データ送信依頼を受信できなかった他のＮｏｄｅについては、Ｎｏｄｅ１が更新メッセージ送信からの経過時間を管理し、相当時間経過後もデータ送信依頼を受信できないＮｏｄｅについては、Ｎｏｄｅ１が更新メッセージを再送する（ステップＳ２２０）。
【００７５】
なお、上述のステップＳ２２０のように更新メッセージを再送する構成に代えて、Ｎｏｄｅ１がすべての他Ｎｏｄｅからデータ送信依頼を受信するまで待ち続けるようにしてもよい。
【００７６】
また、上述のステップＳ２１０およびＳ２１２では、Ｎｏｄｅ１が追加された共有データについてのリスト差分を他Ｎｏｄｅへ送信する構成について例示するが、更新後のリスト、すなわちデータＧが追加された後のＮｏｄｅ１が保持するリスト自体を他Ｎｏｄｅへ送信するようにしてもよい。あるいは、Ｎｏｄｅ１から追加されたデータＧを受信する各Ｎｏｄｅにおいて、当該共有データについてのリストの内容を更新する場合には、リスト差分やリスト自体を送信する必要はない。本実施の形態では、共有データの重要度をリストの項目として含む構成を採用するので、このような場合には、Ｎｏｄｅ１からデータＧを送信する際に、当該共有データの属性情報（重要度）をデータＧに付加して各Ｎｏｄｅへ送信すればよい。そして、データＧを受信した各Ｎｏｄｅにおいて、データＧに付加された属性情報に基づいてリストを更新すればよい。
【００７７】
（新規参加時の同期処理と共有データ追加処理との競合）
上述の新規参加時の同期処理についての説明では、同期処理中に共有データが追加されないことを前提としたが、これらの処理が競合する場合もある。すなわち、図４に示すネットワークシステムＳＹＳにおいて、Ｎｏｄｅ５が新規参加した後に共有データの同期処理を実行している場合に、図１０のステップＳ２０４に示すような更新メッセージをＮｏｄｅ５が受信した場合の処理について説明する。
【００７８】
このように競合した場合の処理の例として、Ｎｏｄｅ５は、更新メッセージ受信前に取得していた一時リストに基づいて、共有データの同期処理を完了させた後、図１０のステップＳ２０８に示すようなデータ送信依頼をＮｏｄｅ１に送信する。Ｎｏｄｅ１からはリスト差分が送信されるので、Ｎｏｄｅ５は当該リスト差分に基づいて、必要な共有データを取得する。
【００７９】
このように競合した場合の処理の別の例として、Ｎｏｄｅ５は、更新メッセージを受信すると、可能な限り早い時期にデータ送信依頼をＮｏｄｅ１に送信する。そして、Ｎｏｄｅ５は、更新メッセージ受信前に取得していた一時リストと、Ｎｏｄｅ１から受信するリスト差分とに基づいて、必要な共有データを並行的に取得する。このとき、ネットワークの状況やデータ送信依頼先のＮｏｄｅの負荷状況に応じて、他Ｎｏｄｅに送信依頼するデータ量を調整することが好ましい。また、リスト差分に基づいて一時リストを更新した上で、共有データの取得を行なう場合には、更新後の一時リストをさらに並び替えて、送信依頼先を再決定することが好ましい。
【００８０】
（実施の形態１における効果）
この発明の実施の形態１によれば、複数の情報処理装置ＰＣ１〜ＰＣ４の間で共有データを同期しているネットワークシステムＳＹＳに対して、新たな情報処理装置ＰＣ５が新規参加する場合において、当該情報処理装置ＰＣ５は、情報処理装置ＰＣ１〜ＰＣ４のいずれかから取得したリストに基づいて、情報処理装置ＰＣ１〜ＰＣ４に対して、不足している共有データの送信を分散的に依頼する。そのため、特定の情報処理装置に同期処理に係る負荷が集中することを回避できる。
【００８１】
また、この発明の実施の形態１によれば、共有データの優先度といった属性情報に基づいて、共有データの取得先を順々に決定するので、一部の情報処理装置に優先度の高い共有データの依頼が集中することを抑制することもできる。
【００８２】
［実施の形態２］
以下に示す実施の形態２においては、各Ｎｏｄｅの負荷状況に応じて共有データの取得先を動的に決定する構成について例示する。
【００８３】
この発明の実施の形態２に従うネットワークシステムＳＹＳは、図１と同様であるので詳細な説明は繰返さない。また、情報処理装置ＰＣ１〜ＰＣ５の各々のハードウェア構成および制御構造については、それぞれ図２および図３と同様であるので、詳細な説明は繰返さない。
【００８４】
いずれかのＮｏｄｅがネットワークシステムＳＹＳに新規参加した場合に、各Ｎｏｄｅの負荷状況を反映した上で、不足している共有データの送信の依頼先を決定することが好ましい。一方、共有データにも、その重要度が相対的に高いものと低いものとがあり、重要度が相対的に高いものを早く取得することが好ましい場合が多い。そのため、優先的に取得することが好ましい共有データの送信を処理能力に余裕のあるＮｏｄｅに依頼し、その他の共有データをそれ以外のＮｏｄｅに依頼することが、ネットワークシステム全体としては合理的といえる。
【００８５】
そこで、本実施の形態では、新規参加したＮｏｄｅが、既存のＮｏｄｅからのレスポンスの早さに基づいて各Ｎｏｄｅについてのランクを決定し、この決定したランクに従って、不足している共有データの取得先を分散的に決定する。
【００８６】
（新規参加時の同期処理）
本実施の形態においても、図４に示すネットワークシステムＳＹＳにＮｏｄｅ５が新規参加する場合の処理について例示する。
【００８７】
図１１は、この発明の実施の形態２に従う新規参加時の同期処理に係るシーケンス図である。なお、図１１に示す各ステップのうち、図６に示す各ステップと同じ処理については、同じ参照番号を付している。
【００８８】
図１１を参照して、ユーザが、ネットワークシステムＳＹＳに新規参加させるようにＮｏｄｅ５を操作する（ステップＳ１００）と、Ｎｏｄｅ５は、ネットワークシステムＳＹＳに所属するＮｏｄｅに対して、新規参加通知を送信する（ステップＳ１０２）。より具体的には、Ｎｏｄｅ５は、自己が接続しているネットワークＮＷ上に新規参加通知をブロードキャストする。
【００８９】
この新規参加通知に応答して、ネットワークシステムＳＹＳを構成するＮｏｄｅ１〜Ｎｏｄｅ４の各々は、当該Ｎｏｄｅが保持するリストをＮｏｄｅ５へ送信（返信）する（ステップＳ１０５）。特に、本実施の形態では、後述するように、新規参加通知を通知した後、既存Ｎｏｄｅからのリストをそれぞれ受信するまでの時間に基づいて、既存Ｎｏｄｅのランクを判断するため、ネットワークシステムＳＹＳを構成するすべてのＮｏｄｅからリストを受信する。
【００９０】
Ｎｏｄｅ５は、それぞれのＮｏｄｅから送信されるリストのうちいずれかを一時リストとして格納する（ステップＳ１０６）。なお、Ｎｏｄｅ５に一時リストとして格納されるリストとしては、それぞれのＮｏｄｅから送信されるリストのうち、その更新日時が最新のものを選択するようにしてもよい。同時に、Ｎｏｄｅ５は、当該リストの受信順に基づいて、他Ｎｏｄｅのランクを判断する（ステップＳ１０９）。すなわち、Ｎｏｄｅ５は、新規参加通知をブロードキャストした後、最も早くリストを送信してきたＮｏｄｅを第１位のランク、２番目にリストを送信してきたＮｏｄｅを第２位のランク、といった具合にランクを判断する。
【００９１】
さらに、Ｎｏｄｅ５は、ステップＳ１０６において格納した一時リストの内容と、ステップＳ１０９において決定した他Ｎｏｄｅのランクとに基づいて、Ｎｏｄｅ別の送信依頼リストを生成する（ステップＳ１１１）。
【００９２】
図１２は、図１１のステップＳ１１１において生成される送信依頼リストの一例を示す図である。なお、Ｎｏｄｅ５がリストを受信した順序は、Ｎｏｄｅ１、Ｎｏｄｅ２、Ｎｏｄｅ３の順であったとし、ステップＳ１０９のランク判断処理において、Ｎｏｄｅ１、Ｎｏｄｅ２、Ｎｏｄｅ３、Ｎｏｄｅ４の順にランク付けが行われたものとする。また、各Ｎｏｄｅから送信されたリストの内容は、図５と同様であったものとする。
【００９３】
図１２を参照して、Ｎｏｄｅ５は、まず、図５に示すリストに記述された共有データを「重要度」に基づいて分類する。具体的に一例として、Ｎｏｄｅ５は、リストの内容を、「重要度」が「高」であるデータＢおよびデータＦを含むグループ、「重要度」が「標準」であるデータＡおよびデータＥを含むグループ、「重要度」が「低」であるデータＣおよびデータＤを含むグループの３つに分類する。
【００９４】
そして、Ｎｏｄｅ５は、「重要度」が「高」であるデータＢおよびデータＦについては、最も高いランクをもつＮｏｄｅ１に依頼することとして、図１２（ａ）に示すようなＮｏｄｅ１用送信依頼リストを生成する。次に、Ｎｏｄｅ５は、「重要度」が「標準」であるデータＡおよびデータＥについては、次に高いランクをもつＮｏｄｅ２に依頼することとして、図１２（ｂ）に示すようなＮｏｄｅ２用送信依頼リストを生成する。さらに、Ｎｏｄｅ５は、「重要度」が「低」であるデータＣおよびデータＤについては、次に高いランクをもつＮｏｄｅ３に依頼することとして、図１２（ｃ）に示すようなＮｏｄｅ３用送信依頼リストを生成する。なお、図１２に示す例では、取得すべき共有データの数がそれほど多くないので、最もランクの低いＮｏｄｅ４には送信依頼を行なわない。
【００９５】
以上のように、新規参加したＮｏｄｅ５は、取得すべき共有データの優先順位と、共有データの送信先となるＮｏｄｅの負荷状態を反映したランクとに基づいて、各共有データの送信を依頼するＮｏｄｅを決定する。
【００９６】
なお、上述のように不足している共有データの「重要度」および各Ｎｏｄｅの「ランク」を用いる方法に限定されるものではなく、特定のＮｏｄｅにデータ送信依頼が集中しないようにすれば、いずれ分配方法を採用してもよい。各Ｎｏｄｅの「ランク」判断の指標としては、上述したような各Ｎｏｄｅのレスポンスの早さ以外にも、新規参加したＮｏｄｅと各Ｎｏｄｅとの間の距離（ホップ数）順や各Ｎｏｄｅの処理能力順を用いてもよい。また、各Ｎｏｄｅに割り当てる共有データの数および種類については、「各Ｎｏｄｅの処理能力」、「各Ｎｏｄｅの稼動状況」、「データ数」、「データの合計サイズ」、「共有データの更新日時」などに基づいて判断することができる。
【００９７】
また、上述の送信依頼リストには、複数の共有データの送信を依頼する構成について例示したが、当然のことながら１の共有データの送信を依頼してもよい。さらに、ネットワークシステムＳＹＳを構成するすべてのＮｏｄｅに対して、送信依頼リストを送信する必要もない。
【００９８】
再度、図１１を参照して、Ｎｏｄｅ５は、ステップＳ１１１において生成した送信依頼リストを依頼先のＮｏｄｅ（図１１の例では、Ｎｏｄｅ１〜Ｎｏｄｅ３）へ送信する（ステップＳ１１３）。
【００９９】
送信依頼リストを受信した各Ｎｏｄｅは、当該送信依頼リストを一旦格納した上で、当該送信依頼リストに内容に従って、自己の保持する共有データを読み出す（ステップＳ１１５）。さらに、各Ｎｏｄｅは、当該読み出した共有データをＮｏｄｅ５へそれぞれ送信する（ステップＳ１１７）。各Ｎｏｄｅから共有データを受信したＮｏｄｅ５は、当該共有データを自己の共有データ保持部１１６（図３）に格納する（ステップＳ１１８）とともに、共有データを管理するためのリストを更新または生成する（ステップＳ１２０）。このような手順によって、新規参加したＮｏｄｅ５は共有データの同期処理を完了する。
【０１００】
なお、図１２に示すような送信依頼リストにおいて、対応のＮｏｄｅが対象の共有データについての送信タイミングを示す指示情報を含むようにしてもよい。これは、共有データを受信するＮｏｄｅの負荷を平準化させるためである。たとえば、最もランクの高いＮｏｄｅ１に送信する送信依頼リストには、共有データを即座に送信する旨の指示情報を付加し、次にランクの高いＮｏｄｅ２に送信する送信依頼リストには、共有データを送信依頼リストの受信から１５分後に送信する旨の指示情報を付加し、共有データを送信依頼リストの受信から３０分後に送信する旨の指示情報を付加する、といった具合である。
【０１０１】
図１３は、図４に示すネットワークシステムＳＹＳにおいてＮｏｄｅ５が新規参加した後に共有データの同期処理が実行されている状態を示す図である。図１４は、図４に示すネットワークシステムＳＹＳにおいてＮｏｄｅ５についての共有データの同期処理を実行中の状態を示す図である。
【０１０２】
図１３を参照して、新規参加したＮｏｄｅ５は、新規参加通知に対するレスポンスの早さに基づいて各Ｎｏｄｅのランク付けを行った上で、少なくとも１つの共有データの送信を依頼するための送信依頼リストをＮｏｄｅ別に生成する。そして、新規参加したＮｏｄｅ５は、生成した送信依頼リストを対象のＮｏｄｅ（図１２の例では、Ｎｏｄｅ１〜Ｎｏｄｅ３）へ送信する。
【０１０３】
図１４に示すように、新規参加したＮｏｄｅ５から送信依頼リストを受信したＮｏｄｅ１〜Ｎｏｄｅ３は、それぞれ自己に向けられた送信依頼リストを一時的に格納するとともに、指定された共有データを読み出してＮｏｄｅ５へ順次送信する。
【０１０４】
図１４には、最もランクの高いＮｏｄｅ１では、既にデータＢおよびデータＦのデータ送信が完了しており、次にランクの高いＮｏｄｅ２では、データＡの送信のみが完了した状態が示されている。なお、データ送信の完了したＮｏｄｅ１では、送信依頼リストが消去または無効化する。
【０１０５】
以上のような一連の処理が完了すると、ネットワークシステムＳＹＳは、上述の図９に示すような状態になる。
【０１０６】
（共有データ追加処理）
本実施の形態に従うネットワークシステムＳＹＳで保持される共有データを追加するための処理については、上述の実施の形態１と同様であるので、詳細な説明は繰返さない。
【０１０７】
（新規参加時の同期処理と共有データ追加処理との競合）
新規参加時の同期処理と共有データ追加処理とが競合した場合の処理としては、上述の実施の形態１と同様の処理を実行することが可能である。あるいは、共有データが追加された場合には、当該共有データの追加後の状態を反映したリストに基づいて、新規参加ノードが送信依頼リストを再度生成してもよい。
【０１０８】
（実施の形態２における効果）
この発明の実施の形態２によれば、複数の情報処理装置ＰＣ１〜ＰＣ４の間で共有データを同期しているネットワークシステムＳＹＳに対して、新たな情報処理装置ＰＣ５が新規参加する場合において、当該情報処理装置ＰＣ５は、情報処理装置ＰＣ１〜ＰＣ４の負荷状況に応じて不足している共有データの取得先を分散的に決定する。そのため、同期処理が実行される時点における負荷状況に応じて、同期処理に係る負荷を効率的に分散化させることができる。
【０１０９】
また、この発明の実施の形態２によれば、各情報処理装置の負荷状況などを考慮したランクと、共有データの優先度といった属性情報とに基づいて、総合的に共有データの取得先を決定するので、共有データの同期処理をより効率的に行なうことができる。
【０１１０】
また、この発明の実施の形態２によれば、各情報処理装置に送信される送信依頼リストにおいて、対象の共有データについての送信タイミングを指定することができるので、共有データの送信側における処理の分散化に加えて、共有データの受信側における処理の分散化も同時に実現できる。
【０１１１】
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１１２】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１１３】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１１４】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１１５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１１６】
【図１】この発明の実施の形態１に従うネットワークシステムの概略構成図である。
【図２】この発明の実施の形態１に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態１に従う情報処理装置における制御構造を示す概略図である。
【図４】Ｎｏｄｅが新規参加する直前のネットワークシステムの状態を示す図である。
【図５】図４に示すＮｏｄｅの各々が保持するリストの内容の一例を示す図である。
【図６】この発明の実施の形態１に従う新規参加時の同期処理に係るシーケンス図である。
【図７】図５に示すリストの受信後に並び替え処理を実行した後の一時リストの内容を示す図である。
【図８】図４に示すネットワークシステムにおいてＮｏｄｅ５が新規参加した後に共有データの同期処理が実行されている状態を示す図である。
【図９】図４に示すネットワークシステムにおいてＮｏｄｅ５についての共有データの同期処理が完了した状態を示す図である。
【図１０】この発明の実施の形態１に従う共有データ追加処理に係るシーケンス図である。
【図１１】この発明の実施の形態２に従う新規参加時の同期処理に係るシーケンス図である。
【図１２】図１１のステップＳ１１１において生成される送信依頼リストの一例を示す図である。
【図１３】図４に示すネットワークシステムおいてＮｏｄｅ５が新規参加した後に共有データの同期処理が実行されている状態を示す図である。
【図１４】図４に示すネットワークシステムＳＹＳにおいてＮｏｄｅ５についての共有データの同期処理を実行中の状態を示す図である。
【符号の説明】
【０１１７】
１０２  データ受信部、１０４  データ解析部、１０６  データ操作部、１０８  リスト管理部、１１０  認証部、１１２  ネットワーク申請部、１１４  接続テーブル管理部、１１６  共有データ保持部、１２０  データ格納部、１２２  データ作成部、１２４  データ送信部、１３２  接続テーブル、１３４  リスト、１３６  一時リスト、２００  ＣＰＵ、２０２  内部バス、２０４  ディスプレイ部、２０６  ネットワークインターフェイス（Ｉ／Ｆ）部、２０８  入力部、２１０  ハードディスク部（ＨＤＤ）、２１２  モリ部、２１４  ＣＤ−ＲＯＭドライブ、２１４ａ  ＣＤ−ＲＯＭ、２１６  ＦＤドライブ、２１６ａ  フレキシブルディスク、ＮＷ  ネットワーク、ＰＣ，ＰＣ１〜ＰＣ５  情報処理装置、ＳＹＳ  ネットワークシステム。
【図１】
2009230207.tif 000003
【図２】
2009230207.tif 000004
【図３】
2009230207.tif 000005
【図４】
2009230207.tif 000006
【図５】
2009230207.tif 000007
【図６】
2009230207.tif 000008
【図７】
2009230207.tif 000009
【図８】
2009230207.tif 000010
【図９】
2009230207.tif 000011
【図１０】
2009230207.tif 000012
【図１１】
2009230207.tif 000013
【図１２】
2009230207.tif 000014
【図１３】
2009230207.tif 000015
【図１４】
2009230207.tif 000016