(57)【要約】      （修正有）【課題】  同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現する。【解決手段】  ピアグループＡにピア１〜４が通信回線を介して接続され、かつ共有データを各々記憶しているＰ２Ｐネットワークにおいて、特定のピアに記憶されている共有データが更新された場合((A)参照)に、特定のピアは、共有データが更新されたことを通知する更新通知をピアグループＡ内の他の全てのピアへ送信し((B)参照)、更新通知を受信した個々のピアは、乱数を用いて決定した待機時間が経過した後に、共有データの取得要求を特定のピアへ送信し、送信した取得要求に基づいて特定のピアから送信された共有データを受信し、受信した共有データを既に記憶している共有データに上書きして記憶させる((C)〜(E)参照)。【選択図】        図７
2006195890.tif 000002
【特許請求の範囲】
【請求項１】
自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続された情報処理装置であって、
前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶する記憶手段と、
前記記憶手段に記憶されている前記共有データが更新された場合に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信する第１通知手段と、
前記第１通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第１送信手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記第１通知手段は、前記通知情報として、該通知情報を受信した個々の情報処理装置が、該個々の情報処理装置が保持している共有データが更新前のデータか否かを判断可能な情報を、任意の時間間隔で繰り返し送信することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記通知情報を受信した各情報処理装置が、該個々の情報処理装置が保持している共有データが更新前のデータか否かを判断可能な情報は、前記共有データのダイジェスト、前記共有データの更新日時、前記共有データの更新後の版数の何れかであることを特徴とする請求項２記載の情報処理装置。
【請求項４】
自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続された情報処理装置であって、
前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段と、
前記第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信する取得要求手段と、
前記取得要求手段が送信した取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させる受信手段と、
を含む情報処理装置。
【請求項５】
前記特定の情報処理装置からは、前記通知情報として、該通知情報を受信した個々の情報処理装置が、該個々の情報処理装置が保持している共有データが更新前のデータか否かを判断可能な情報が、任意の時間間隔で繰り返し送信され、
前記取得要求手段は、前記記憶手段に前記共有データが記憶されていない場合、及び、受信した通知情報に基づき、前記記憶手段に記憶されている前記共有データが更新前のデータであると判断した場合に、前記特定の情報処理装置へ前記取得要求を送信し、前記記憶手段に記憶されている前記共有データが更新後のデータであると判断した場合は前記取得要求を送信しないことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記情報処理装置は、前記第１グループを包含する第２グループにも属していると共に、前記第１グループに属さず前記第２グループに属する他の複数の情報処理装置とも通信回線を介して接続されており、
前記受信手段が前記第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを前記特定の情報処理装置から受信して前記記憶手段に記憶させた後に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属さず前記第２グループに属する他の全ての情報処理装置へ送信する第２通知手段と、
前記第２通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第２送信手段と、
を更に備えたことを特徴とする請求項４記載の情報処理装置。
【請求項７】
前記特定の情報処理装置で更新された共有データが、前記第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべきデータであった場合、前記特定の情報処理装置から送信される通知情報には、前記共有データが前記第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべきデータであることを表す識別情報が付加され、
前記第２通知手段は、前記特定の情報処理装置から受信した通知情報に前記識別情報が付加されていた場合にのみ、前記第１グループに属さず前記第２グループに属する他の全ての情報処理装置へ通知情報を送信する
ことを特徴とする請求項６記載の情報処理装置。
【請求項８】
同一の第１グループに属する複数台の情報処理装置が通信回線を介して接続されて成る情報処理システムであって、
前記複数台の情報処理装置の各々が、
前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段と、
前記記憶手段に記憶されている前記共有データが更新された場合に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信する第１通知手段と、
前記第１通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第１送信手段と、
前記第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信する取得要求手段と、
前記取得要求手段が送信した取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させる受信手段と、
を各々備えていることを特徴とする情報処理システム。
【請求項９】
同一の第１グループに属する複数台の情報処理装置が通信回線を介して接続されて成り、前記複数台の情報処理装置が、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段を各々備えた情報処理システムにおいて、
特定の情報処理装置の前記記憶手段に記憶されている前記共有データが更新された場合に、前記特定の情報処理装置は、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信し、
前記特定の情報処理装置から前記通知情報を受信した個々の情報処理装置は、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信し、
前記特定の情報処理装置は、前記通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記特定の情報処理装置の前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信し、
前記取得要求を送信した個々の情報処理装置は、前記取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させるデータ同期方法。
【請求項１０】
自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続され、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段を備えたコンピュータを、
前記記憶手段に記憶されている前記共有データが更新された場合に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信する第１通知手段、
前記第１通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第１送信手段、
前記第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信する取得要求手段、
及び、前記取得要求手段が送信した取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させる受信手段
として機能させるデータ同期プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、システム、データ同期方法及びプログラムに係り、特に、同一のグループに属する他の複数台の情報処理装置と通信回線を介して接続された情報処理装置、同一のグループに属する複数台の情報処理装置が通信回線を介して接続されて成る情報処理システム、前記情報処理システムに適用可能なデータ同期方法、及び、コンピュータを前記情報処理装置として機能させるためのデータ同期プログラムに関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置をネットワークを介して互いに接続するネットワークシステムの形態として、クライアント・サーバシステムとピアツーピア（以下、Ｐ２Ｐと称する）システムが従来より知られている。クライアント・サーバシステムは、サーバが各種情報資源を管理したり各種アプリケーションが提供するサービスを実行し、これをクライアントが利用するシステムであり、主従関係が固定されている。これに対してＰ２Ｐシステムでは、基本的には専用のサーバを設けず、ネットワークに接続された各ピア（例えばパーソナルコンピュータ等）が、あるときは他のピアに対して所定のサービスを提供してサーバのように動作し、あるときは他のピアが提供するサービスを利用してクライアントのように動作するシステムであり、各ピアが対等な関係にある。
【０００３】
ところで、クライアント・サーバシステムでは、各クライアントがアクセスする可能性のあるデータ（共有データ）がサーバで記憶・管理されるが、Ｐ２Ｐシステムでは各ピアが対等な関係にあるため、データ共有を実現するための方式として幾つかの方式が考えられる。例えば特許文献１には、Ｐ２Ｐネットワークにおいて、ファイル共有を行うコンピュータは共有ファイルに関する参照情報のみを保持し、共有ファイルが更新されると、各コンピュータが保持しているファイルの参照情報を最新のファイルを保持するコンピュータ（更新を行ったファイルを保持しているコンピュータ）を示す情報へ変更し、ユーザがファイルにアクセスする場合には、その参照情報を元にファイルを保持するネットワーク上の他のコンピュータにアクセスし、ファイルをダウンロード表示することにより、常に最新のファイルを表示させることを可能とする技術が開示されている。
【０００４】
また特許文献２には、データを共有するための転写メモリ領域を各々備えた複数の計算機がネットワークに接続され、各計算機が転写メモリ領域内の自計算機用領域のデータを周期的に他の計算機にブロードキャストし、ブロードキャストデータを受信した計算機が、該データを転写メモリ領域内の対応する計算機用領域に格納することで、計算機間で転写メモリ領域の内容の一致化を図ってデータを共有するシステムにおいて、ブロードキャストデータの受信回数をカウントし、予め定めた回数に達したときにのみ受信を通知し、それ以外の場合は受信データを破棄する等の処理を行うことで、周期的に受信するブロードキャストデータを間引く技術が開示されている。
【０００５】
また特許文献３には、コンピュータ間で共有される文書を、その文書のオリジナルを保持するコンピュータを示す識別子と更新履歴によって管理し、ネットワーク内で文書の更新が行われた場合には、更新された文書が当該文書のオリジナルを保持するコンピュータに送信され、更新履歴が格納されると同時に、その文書を保持する他のコンピュータに対して複製処理（再配信）が行われることにより、ネットワーク上の文書がどこで更新されてもネットワーク全体が最新の文書を共有することを実現する技術が開示されている。                 
【特許文献１】特開２００３−００６０３２号公報
【特許文献２】特開平０７−２１９９０２号公報
【特許文献３】特開２００３−２５６２５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術は、ユーザがアクセスしようとしている特定共有データを表示する処理を第１のコンピュータが行うタイミングで、この第１のコンピュータが、最新の特定共有データを保持している第２のコンピュータと通信可能な状態となっている必要があり、第１のコンピュータが特定共有データを表示する処理を行う際に、例えば通信回線の障害等により第１のコンピュータが第２コンピュータからの特定共有データのダウンロードを行えない状態であった場合には、ユーザが最新の共有データにアクセスすることができないという問題がある。
【０００７】
一方、特許文献２，３に記載の技術は、各コンピュータに最新の共有データが各々保持されるので、ユーザが共有データにアクセスする際に、必ずしも他のコンピュータと通信可能な状態になっている必要はない。しかし、この方式では、データを共有しているコンピュータのグループ（Ｐ２Ｐシステムではピアグループと称する）内の特定のコンピュータで共有データが更新された場合に、グループ内の特定のコンピュータ以外の各コンピュータが保持している共有データも更新後のデータへ書替えることで、共有データの同期をとる処理を行う必要がある。また、同期をとる処理を行うタイミングでグループ内の一部のコンピュータとの通信が途絶している可能性があることを考慮すると、共有データの同期をとる処理は定期的に行う必要がある。
【０００８】
これに対して特許文献２に記載の技術は、共有データ自体を周期的に送信するので、共有データの同期をとるためにシステム内のトラフィックが増大するという問題があり、特許文献３に記載の技術も共有データ自体を送受することで共有データの同期をとるので、この処理を定期的に行うことに伴ってシステム内のトラフィックが増大する。また、特許文献２，３に記載の技術では、共有データを受信する側のコンピュータにおいて、共有データ自体を受信する処理が周期的に行われることになるので、受信側のコンピュータの負荷が増大するという問題もある。更に、特許文献３に記載の技術では、更新された共有データが、当該共有データのオリジナルを保持するコンピュータを経由して再配信されるので、共有データのオリジナルを保持するコンピュータの負荷が増大する、という問題も有している。
【０００９】
本発明は上記事実を考慮して成されたもので、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することが可能な情報処理装置、情報処理システム、データ同期方法及びデータ同期プログラムを得ることが目的である。
【課題を解決するための手段】
【００１０】
上記目的を達成するために請求項１記載の発明に係る情報処理装置は、自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続された情報処理装置であって、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶する記憶手段と、前記記憶手段に記憶されている前記共有データが更新された場合に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信する第１通知手段と、前記第１通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第１送信手段と、を備えたことを特徴としている。
【００１１】
請求項１記載の発明に係る情報処理装置は、自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続されており、第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶する記憶手段を備えている。ここで、請求項１記載の発明では、記憶手段に記憶されている共有データが更新されると、第１通知手段により、記憶手段に記憶されている共有データが更新されたことを通知する通知情報が、第１グループに属する他の全ての情報処理装置へ送信される。そして第１送信手段は、第１通知手段が通知情報を送信した情報処理装置から共有データの取得要求を受信する毎に、記憶手段に記憶されている共有データを、取得要求送信元の情報処理装置へ送信する。
【００１２】
このように、請求項１記載の発明では、記憶手段に記憶されている共有データが更新された場合に、共有データ自体は送信せずに、まず通知情報を送信することで共有データが更新されたことを第１グループに属する他の情報処理装置へ通知し、通知情報を送信した情報処理装置から取得要求を受信する毎に取得要求送信元の情報処理装置へ共有データを送信することで、第１グループに属する各情報処理装置が各々保持する共有データの同期をとるので、第１グループに属する他の情報処理装置の中に、通知情報を送信した際に自装置との通信が途絶していた情報処理装置が存在している可能性があることを考慮して、共有データの同期をとることを試行する処理を定期的に繰り返す場合にも、通知情報のみを定期的に送信すればよく、第１グループに属する他の複数の情報処理装置の各々に対して共有データを複数回送信する必要がなくなる。
【００１３】
また、請求項１記載の発明に係る通知情報は、共有データが更新されたことを通知する情報であり、受信した情報処理装置が共有データが更新されたことを認識できる情報であれば目的を達成できるので、共有データ本体と比較してデータ量が大幅に小さくて済む。更に、更新された共有データが請求項１記載の発明に係る情報処理装置から他の情報処理装置へ直接送信されるので、例えば更新された共有データが、当該共有データのオリジナルを保持している別の情報処理装置へ一旦転送された後に、前記別の情報処理装置が共有データの配信を行う場合と比較して、前記別の情報処理装置に多大な負荷が加わることも回避することができる。従って、請求項１記載の発明によれば、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することができる。
【００１４】
なお、請求項１記載の発明において、第１通知手段は、例えば請求項２に記載したように、通知情報として、該通知情報を受信した個々の情報処理装置が、該個々の情報処理装置が保持している共有データが更新前のデータか否かを判断可能な情報を、任意の時間間隔で繰り返し送信するように構成することが好ましい。これにより、第１通知手段が通知情報を任意の時間間隔で繰り返し送信しても、この通知情報を受信した個々の情報処理装置において、自装置が保持している共有データが更新前のデータか否か、すなわち共有データの取得要求を送信すべきか否かを判断できるので、個々の情報処理装置が通知情報を受信する毎に共有データの取得要求を送信する必要がなくなり、トラフィックの増大を抑制することができる。
【００１５】
上述した請求項２記載の発明において、通知情報を受信した各情報処理装置が、該個々の情報処理装置が保持している共有データが更新前のデータか否かを判断可能な情報としては、例えば請求項３に記載したように、共有データのダイジェスト（このダイジェストは例えばハッシュ関数を用いて生成することができる）、共有データの更新日時、共有データの更新後の版数の何れかを適用することができる。また、請求項２記載の発明において、通知情報送信の時間間隔は一定であってもよいが、例えば共有データの更新直後は通知情報の送信時間間隔を短くし、共有データが更新されてからの経過時間が長くなるに従って通知情報の送信時間間隔を長くする等、通知情報の送信時間間隔を適宜変更するようにしてもよい。
【００１６】
請求項４記載の発明に係る情報処理装置は、自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続された情報処理装置であって、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段と、前記第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信する取得要求手段と、前記取得要求手段が送信した取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させる受信手段と、を含んで構成されている。
【００１７】
請求項４記載の発明に係る情報処理装置は、自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続されており、第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段を備えている。ここで、請求項４記載の発明では、第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している共有データが更新されたことを通知する通知情報を受信した場合に、取得要求手段により、ランダムに決定した待機時間、或いは第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、共有データの取得要求が特定の情報処理装置へ送信される。そして受信手段は、取得要求手段が送信した取得要求に基づいて特定の情報処理装置から送信された共有データを受信し、受信した共有データを記憶手段に記憶させる。これにより、請求項４記載の発明に係る情報処理装置の記憶手段に記憶されている共有データの同期をとる処理が完了することになる。
【００１８】
このように、請求項４記載の発明では、特定の情報処理装置が保持している共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、共有データの取得要求を特定の情報処理装置へ送信するので、共有データが更新された特定の情報処理装置が、第１グループに属する複数の情報処理装置へ通知情報を送信したとしても、特定の情報処理装置は、通知情報を送信した複数の情報処理装置から互いにずれたタイミングで通知情報を受信することになり、トラフィックや特定の情報処理装置に加わる負荷が一時期に集中して過大となることを防止することができる。従って、請求項４記載の発明によれば、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することができる。
【００１９】
なお、特定の情報処理装置が通知情報を送信した際に、特定の情報処理装置と他の情報処理装置の一部との通信が途絶している可能性があることを考慮すると、請求項４記載の発明においても、特定の情報処理装置からは、通知情報が任意の時間間隔で繰り返し送信されることが望ましく、この通知情報は、前述のように、該通知情報を受信した個々の情報処理装置が、該個々の情報処理装置が保持している共有データが更新前のデータか否かを判断可能な情報であることが望ましい。この場合、取得要求手段は、例えば請求項５にも記載したように、記憶手段に共有データが記憶されていない場合（例えば請求項４記載の発明に係る情報処理装置が第１グループへ新たに参加したために共有データを受信していない状態である等の場合）、及び、受信した通知情報に基づき、記憶手段に記憶されている共有データが更新前のデータであると判断した場合に、特定の情報処理装置へ取得要求を送信し、記憶手段に記憶されている共有データが更新後のデータであると判断した場合は取得要求を送信しないように構成することが好ましい。これにより、請求項４記載の発明に係る情報処理装置が、通知情報を受信する毎に共有データの取得要求を送信する必要がなくなるので、トラフィックの増大を抑制することができる。
【００２０】
また、請求項４記載の発明に係る情報処理装置が、第１グループを包含する第２グループにも属していると共に、第１グループに属さず第２グループに属する他の複数の情報処理装置とも通信回線を介して接続されている場合も考えられるが、この場合、例えば請求項６に記載したように、受信手段が第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを特定の情報処理装置から受信して記憶手段に記憶させた後に、共有データが更新されたことを通知する通知情報を、第１グループに属さず第２グループに属する他の全ての情報処理装置へ送信する第２通知手段と、第２通知手段が通知情報を送信した情報処理装置から共有データの取得要求を受信する毎に、記憶手段に記憶されている共有データを、取得要求送信元の情報処理装置へ送信する第２送信手段と、を更に設けることが好ましい。
【００２１】
例えば、特定グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データが、特定グループに属する特定の情報処理装置で更新された場合、該特定グループに多数の情報処理装置が属していたとすると、特定グループに属する特定の情報処理装置から通知情報を受信した各情報処理装置が、各々請求項４に記載したように、互いに異なる待機時間だけ待機した後に取得要求を送信したとしても、特定の情報処理装置に加わる負荷が一時期に集中して過大となる可能性がある。
【００２２】
これに対して請求項６記載の発明では、上記の特定グループに相当する第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データが、第２グループ（及び第２グループに包含される第１グループ）に属する特定の情報処理装置で更新された場合に、特定の情報処理装置が第１グループに属する情報処理装置（この情報処理装置には請求項６記載の情報処理装置も含まれる）に対してのみ通知情報の送信、取得要求に基づく共有データの送信（第１グループに属する各情報処理装置が保持する共有データを同期させるための処理）を行えば、請求項６記載の発明に係る情報処理装置によって、第１グループに属さず第２グループに属する情報処理装置に対して通知情報の送信、取得要求に基づく共有データの送信（第１グループに属さず第２グループに属する各情報処理装置が保持する共有データを同期させるための処理）が行われることになる。従って、請求項６記載の発明によれば、多数の情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データが更新された場合に、当該共有データの更新が行われた情報処理装置に多大な負荷が加わることを回避することができる。
【００２３】
なお、請求項６記載の発明において、第２通知手段は、第１グループに属する他の情報処理装置から通知情報を受信することで更新が通知された共有データについて、第１グループに属さず第２グループに属する他の情報処理装置へ常に通知情報を送信するように構成してもよいし、個々の共有データに、何れのグループ内で共有するデータかを表す属性情報を各々付加しておき、第１グループに属する他の情報処理装置から通知情報を受信することで更新が通知された共有データに、第２グループ内で共有するデータであることを表す属性情報が付加されていた場合にのみ、第１グループに属さず第２グループに属する他の情報処理装置へ通知情報を送信するように構成してもよいが、これに代えて、例えば請求項７に記載したように、特定の情報処理装置で更新された共有データが、第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべきデータであった場合、特定の情報処理装置から送信される通知情報には、共有データが第２グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべきデータであることを表す識別情報が付加され、第２通知手段は、特定の情報処理装置から受信した通知情報に前記識別情報が付加されていた場合にのみ、第１グループに属さず第２グループに属する他の全ての情報処理装置へ通知情報を送信するように構成してもよい。
【００２４】
請求項８記載の発明に係る情報処理システムは、同一の第１グループに属する複数台の情報処理装置が通信回線を介して接続されて成る情報処理システムであって、前記複数台の情報処理装置の各々が、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段と、前記記憶手段に記憶されている前記共有データが更新された場合に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信する第１通知手段と、前記第１通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第１送信手段と、前記第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信する取得要求手段と、前記取得要求手段が送信した取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させる受信手段と、を各々備えていることを特徴としている。
【００２５】
請求項８記載の発明に係る情報処理システムは、第１グループに属する複数台の情報処理装置の各々が、上記の記憶手段、第１通知手段と、第１送信手段、取得要求手段及び受信手段を各々備えているので、複数台の情報処理装置のうちの何れの情報処理装置で共有データが更新された場合にも、請求項１記載の発明及び請求項４記載の発明と同様に、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することができる。
【００２６】
請求項９記載の発明に係るデータ同期方法は、同一の第１グループに属する複数台の情報処理装置が通信回線を介して接続されて成り、前記複数台の情報処理装置が、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段を各々備えた情報処理システムにおいて、特定の情報処理装置の前記記憶手段に記憶されている前記共有データが更新された場合に、前記特定の情報処理装置は、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信し、前記特定の情報処理装置から前記通知情報を受信した個々の情報処理装置は、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信し、前記特定の情報処理装置は、前記通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記特定の情報処理装置の前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信し、前記取得要求を送信した個々の情報処理装置は、前記取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させるので、請求項１記載の発明及び請求項４記載の発明と同様に、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することができる。
【００２７】
請求項１０記載の発明に係るデータ同期プログラムは、自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続され、前記第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段を備えたコンピュータを、前記記憶手段に記憶されている前記共有データが更新された場合に、前記共有データが更新されたことを通知する通知情報を、前記第１グループに属する他の全ての情報処理装置へ送信する第１通知手段、前記第１通知手段が通知情報を送信した情報処理装置から前記共有データの取得要求を受信する毎に、前記記憶手段に記憶されている前記共有データを、前記取得要求送信元の情報処理装置へ送信する第１送信手段、前記第１グループに属する特定の情報処理装置から、該特定の情報処理装置が保持している前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは前記第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を前記特定の情報処理装置へ送信する取得要求手段、及び、前記取得要求手段が送信した取得要求に基づいて前記特定の情報処理装置から送信された前記共有データを受信し、受信した前記共有データを前記記憶手段に記憶させる受信手段として機能させる。
【００２８】
請求項１０記載の発明に係るデータ同期プログラムは、自装置と同一の第１グループに属する他の複数台の情報処理装置と通信回線を介して接続され、第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを記憶可能な記憶手段を備えたコンピュータを、上記の第１通知手段、第１送信手段、取得要求手段及び受信手段として機能させるためのプログラムであるので、上記のコンピュータが請求項１０記載の発明に係るデータ同期プログラムを実行することにより、コンピュータが請求項１に記載の情報処理装置及び請求項４に記載の情報処理装置として機能することになり、請求項１記載の発明及び請求項４記載の発明と同様に、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することができる。
【発明の効果】
【００２９】
以上説明したように本発明は、第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データが更新された場合に、該共有データが更新されたことを通知する通知情報を、第１グループに属する他の全ての情報処理装置へ送信し、通知情報を送信した情報処理装置から共有データの取得要求を受信する毎に、前記共有データを取得要求送信元の情報処理装置へ送信するようにしたので、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現できる、という優れた効果を有する。
【００３０】
また本発明は、第１グループに属する各情報処理装置が各々保持すべきでかつ互いに同期させるべき共有データを保持している特定の情報処理装置から、前記共有データが更新されたことを通知する通知情報を受信した場合に、ランダムに決定した待機時間、或いは第１グループに属する個々の情報装置装置毎に相違するように予め設定された待機時間が経過した後に、前記共有データの取得要求を特定の情報処理装置へ送信し、送信した取得要求に基づいて特定の情報処理装置から送信された共有データを受信し、受信した前記共有データを記憶手段に記憶させるようにしたので、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現できる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【００３２】
〔第１実施形態〕
以下では、まず本発明に好適なＰ２Ｐネットワーク（Ｐ２Ｐシステム）について説明する。図１に示すように、Ｐ２Ｐネットワーク１０は、仮想的には各ピア１２Ａ〜１２Ｇが相互に接続された構成であり、実際には、例えばピア１２Ａ〜１２Ｃがファイアウォール１４によるアクセス制限下にあるピアである場合もあれば、ピア１２Ｃ〜１２Ｅがインターネットに接続されたピアである場合もあれば、ピア１２Ｅ〜１２ＧがＮＡＴ(Network Address Translation)によってアドレス変換されるピアである場合もある。
【００３３】
ここで、ピアとは、例えばパーソナルコンピュータ等のコンピュータ、ＰＤＡ（Personal Digital Assistance）、携帯電話、プリンタ、コピー機、これらの機能を複数備えた複合機等のように、他の電子機器と通信を行う機能を備えた各種電子機器の何れであってもよく、個々のピアは、対応する電子機器のハードウェア又は対応する電子機器の機能を実現するソフトウェアを指す。また、各ピアは、同種の機器であるか異種の機器であるかに拘らずＰ２Ｐネットワークに参加することができる。また、各ピア同士の接続方法は様々であり、例えばＩＰｖ４(Internet Protocol version 4)やＩＰｖ６(Internet Protocol version 6)の機能を用いるＴＣＰ(Transmission Control Protocol)接続や、ＨＴＴＰ(HyperText Transfer Protocol)、ＳＭＴＰ(Simple Mail Transfer Protocol)を用ることができる。
【００３４】
Ｐ２Ｐネットワークの形態としては、図２に示すように、各ピア１４Ａ〜１４Ｋの全てが対等な関係にあるピュアＰ２Ｐと、図３に示すように、サーバ１４Ｓを設け、一部のサービスの提供をサーバ１４Ｓに委ね、その他のサービスの提供については各ピア１４Ａ〜１４Ｈが対等な関係において実現されるハイブリッドＰ２Ｐの形態があり、本発明は何れの形態にも適用可能である。
【００３５】
また、Ｐ２Ｐネットワークに参加する各ピアにログオンするユーザ又はピアは、例として図４に示すように、目的に応じたグループを構成することができる。図４では、ピア１２Ａ〜１２Ｇ全てがグループ１に属し、更にピア１２Ａ、１２Ｃ、１２Ｅ、１２Ｆがグループ２に属し、ピア１２Ｂ、１２Ｅ、１２Ｆ、１２Ｇがグループ３に属している。なお、各ユーザ又はピアは、単一のグループに属してもよいし、複数のグループに属していてもよい。また、ユーザ又はピアは必ずしもグループに属する必要はない。
【００３６】
図５にはＰ２Ｐネットワーク１０に参加する個々のピアの基本構成を示す。図５に示すように、ピア１２は、Ｐ２Ｐ基盤構成部１６、Ｐ２Ｐ基盤管理データ記憶部１８、アプリケーション実行部２０及びアプリケーションメモリ２２を含んで構成されており、Ｐ２Ｐ基盤構成部１６は、メッセージ制御部２４、データ管理部２６、送信部２８及び受信部３０を含んで構成されている。送信部２８は、メッセージ制御部２４から受け取ったメッセージをネットワーク３２へ向けて送信する。受信部３０は、Ｐ２Ｐネットワーク１０内で送受信されるデータのうち、自ピアにとって必要なデータを受信する。受信部３０は常に受信待機状態となっており、Ｐ２Ｐネットワーク１０の他ピアからの各種要求やデータを受信し、メッセージ制御部２４に受け渡す。なお、受信部３０は送信部２８とは独立かつ並列に動作する。
【００３７】
図６にはメッセージ制御部２４の概略構成を示す。メッセージ制御部２４は、図６に示すように、サービス実行部３４及びメッセージディスパッチ部３６を含んで構成されている。サービス実行部３４は、ピア探索サービス部３８、告知情報公開サービス部４０、告知情報取得サービス部４２、グループ管理サービス部４４、ユーザ管理サービス部４６、及びピア管理サービス部４８を含んで構成されており、各サービス部は相互に情報を送受しながら各サービスを実行する。ピア探索サービス部３８は、Ｐ２Ｐネットワークに参加しているピアを探索する機能及び自ピアが必要とするサービス（機能）を提供可能なピアを探索する機能を有する。なお、探索の範囲は、必要とするサービスの名称や属性、ホップ数の閾値等を指定することにより制御することができる。ここで、ホップ数とは、メッセージを送信する際に経由するピアの数である。
【００３８】
告知情報公開サービス部４０は、自ピアが提供可能なサービス等の情報を告知情報としてＰ２Ｐネットワーク上に公開する機能を有する。ここで、提供可能なサービスには、例えばアプリケーション実行部２０により実行されるアプリケーションの他、後述するグループ管理サービスやユーザ管理サービス等も含まれる。なお、告知情報の公開は、例えば他ピアから問い合わせがあった場合や自ピアの起動時に実行してもよいし、定期的に実行するようにしてもよい。このように各ピアの告知情報公開サービス部４０によって告知情報がＰ２Ｐネットワーク上に公開されることにより、Ｐ２Ｐネットワークに参加している各ピアは、Ｐ２Ｐネットワーク上でどのようなサービスを利用できるかを把握することができる。
【００３９】
告知情報取得サービス部４２は、ピア探索サービス部３８によって探索されたピアから送信された告知情報又は他ピアから自発的に送信された告知情報を取得し、データ管理部２６へ受け渡す。データ管理部２６では、取得した告知情報をピア情報としてＰ２Ｐ基盤管理データ記憶部１８に記憶させる。これにより、個々のピアは、Ｐ２Ｐネットワークに参加している他ピアがどのようなサービスを提供しているのかを把握することができる。また、グループ管理サービス部４４は、同じ目的を有するピア同士で構成されたグループへの参加や脱退、新たなグループの生成等をグループ情報に基づいて管理する機能を有する。グループ情報は、例えば少なくともグループＩＤとユーザＩＤとの対応関係を表す情報であり、Ｐ２Ｐ基盤管理データ記憶部１８に記憶される。このグループ情報を参照することにより、どのグループにどのユーザが属しているかを把握することができる。
【００４０】
ユーザ管理サービス部４６は、ユーザ情報を管理する機能を有する。ユーザ情報は、例えばピアＩＤとそのピアにログオンしているユーザＩＤとの対応関係を表すログオン情報や、ユーザの名前、メールアドレス等のユーザ自身に関する情報、そのユーザが属するグループのグループＩＤ等の情報を含み、Ｐ２Ｐ基盤管理データ記憶部１８に記憶される。また、ピア管理サービス部４８は、Ｐ２Ｐネットワークに参加しているピアのピア情報を管理する機能を有する。また、メッセージディスパッチ部３６は、アプリケーション実行部２０からのメッセージや他ピアとの間で送受信されるメッセージを解析し、サービス実行部３４のうち解析したメッセージに関する処理を行うべきサービス部へ制御を渡す。
【００４１】
一方、Ｐ２Ｐ基盤管理データ記憶部１８は、経路情報１８Ａ、グループ情報１８Ｂ、隣接情報１８Ｃ、ピア情報１８Ｄ、及びユーザ情報１８Ｅを記憶する。経路情報１８Ａは、Ｐ２Ｐネットワークにおける経路の情報、例えばスパニングツリー（ループのない木構造となるメッセージの転送経路）に関する情報を含む。グループ情報１８Ｂは、前述したように例えば少なくともグループＩＤとユーザＩＤとの対応関係を表す情報である。隣接情報１８Ｃは、自ピアに隣接するピアに関する情報、例えばピアＩＤ等の情報を含む。ここで、隣接するピアとは、例えば自ピアから送信したパケットに対する応答時間が予め定めた所定時間内のピアとすることができる。隣接情報は、例えば他ピアと通信する課程において得られる応答時間に基づいて生成することができるが、オペレータの操作等により手動で設定するようにしてもよい。ピア情報１８Ｄは、ピア探索サービス部３８によって探索されたピアに関する情報、例えばピアＩＤ等の情報や、告知情報取得サービス部４２によって取得したＰ２Ｐネットワーク上の各ピアが提供しているサービスに関する情報等を含む。ここで、ピアＩＤには、例えばＩＰアドレスやＵＲＩ(Uniform Resource Identifier)等を用いることができる。ユーザ情報１８Ｅは、前述したようにユーザのログオン情報やユーザ自身に関する情報等を含む。
【００４２】
アプリケーション実行部２０は、各種アプリケーションを実行するものであり、メッセージ制御部２４を介して他ピアとメッセージの送受信を行う。また、アプリケーションメモリ２２は、アプリケーション実行部２０の実行に関連する各種の情報を記憶するためのメモリである。
【００４３】
次に、アプリケーション実行の具体例として、或るピアグループ（便宜的にピアグループＡと称する）に属する各ピアが、各々同一のデータ（共有データ）を各ピアの不揮発性の記憶手段（例えばＨＤＤ(Hard Disk Drive)等）各々記憶している状態で、或るピアに記憶されている共有データが更新された場合に、各ピアのアプリケーション実行部２０で実行される処理（共有データを同期化する処理）について説明する。なお、共有データを同期化する処理は、共有データが更新されたピアのアプリケーション実行部２０で共有データ配信処理（図８）が実行されると共に、ピアグループＡに属する他のピアのアプリケーション実行部２０で共有データ同期処理（図９）が実行されることによって実現されるが、これらの処理を行うための共有データ配信プログラム及び共有データ同期プログラムは請求項１０に記載のデータ同期プログラムに対応しており、個々のピアに予めインストールされている。また、ピアグループＡに属する各ピアは本発明に係る情報処理装置に対応しており、ピアグループＡは請求項８に記載の情報処理システムに対応している。また、上記の不揮発性の記憶手段は本発明に係る記憶手段に対応しており、ピアグループＡは本発明に係る第１グループに対応している。
【００４４】
例として図７(Ａ)にも示すように、ピアグループＡ内の任意のピアで共有データが更新されると（図７では例として共有データの更新がピア２で発生した場合を示している）、当該ピアのアプリケーション実行部２０では、図８に示す共有データ配信処理が実行される。この共有データ配信処理は、共有データが更新された場合以外に、送信タイマがタイムアウトした場合及び他のピアから取得要求を受信した場合にも実行される。このため、ステップ１００では、まず今回の起動要因が共有データの更新か否か判定する。判定が肯定された場合はステップ１０２へ移行し、更新された共有データＸの送信回数ｉに１を代入し、次のステップ１０４において、更新された共有データＸの識別子ｘを取得する。
【００４５】
また、ステップ１０６ではハッシュ関数を用いて共有データＸのダイジェスト（ハッシュ値）を生成する。そしてステップ１０８では、ステップ１０４で取得した識別子ｘ、ステップ１０６で生成したダイジェスト、送信元情報（自ピアのＩＤ）を含む共有データＸの更新通知情報を生成し、アプリケーションメモリ２２に記憶させる。ステップ１１０ではＰ２Ｐ基盤管理データ記憶部１８に記憶されている情報を参照し、共有データＸを共有しているピアグループＡに属する全てのピア（自ピア以外のピア）を送信対象として認識する。そしてステップ１１２では、先のステップ１０８でアプリケーションメモリ２２に記憶させた共有データＸの更新通知情報を、ステップ１１２で認識した全てのピアへ送信する（図７(Ｂ)も参照）。
【００４６】
ステップ１１４ではｉ回目の更新通知情報送信における送信時間間隔を取り込み、次のステップ１１６では、取り込んだ送信時間間隔をタイマ値とする共有データＸの送信タイマをスタートさせ、処理を終了する。例として図９に示すように、本実施形態では、更新通知情報の送信回数が増加するに従って更新通知情報の通信時間間隔が長くなるように、更新通知情報の送信回数と通信時間間隔との関係が定められており、１回目の更新通知情報の送信では送信時間間隔が比較的短くされる。
【００４７】
ｉ回目の更新通知情報の送信を完了してからステップ１１４で取り込んだ送信時間間隔に相当する時間が経過することで、ステップ１１６でスタートさせた送信タイマがタイムアウトすると、共有データ配信処理が再度起動され、先のステップ１００の判定が否定されてステップ１２０へ移行し、今回の起動要因が送信タイマのタイムアウトか否か判定される。この場合は判定が肯定されてステップ１２２へ移行し、まずタイムアウトした送信タイマに対応する共有データＸを認識する。ステップ１２４では、共有データＸの送信回数ｉを１だけインクリメントし、次のステップ１２６ではアプリケーションメモリ２２に記憶されている共有データＸの更新通知情報を読み出してステップ１１０へ移行する。これにより、前述のように共有データＸの更新を通知する更新通知情報がピアグループＡに属する他の全てのピアへ再送信されると共に、共有データＸの送信タイマが現在の送信回数ｉに対応する新たなタイマ値で再スタートされることになる。この更新通知情報の再送信により、ピアグループＡ内の一部のピアとの通信が一時的に途絶していたとしても、共有データＸが更新されたことを前記一部のピアに確実に通知することができる。なお、上述したステップ１００〜１２６は本発明に係る第１通知手段（詳しくは請求項２に記載の第１通知手段）に対応している。
【００４８】
共有データ配信処理で送信する更新通知情報は、共有データＸが更新されたことを他のピアへ通知するための情報であり、識別子ｘやダイジェスト、送信元情報等の情報から構成されているので、共有データＸ自体と比較してデータ量は大幅に小さい。このため、ピアグループＡに属する他の全てのピアへ更新通知情報を定期的に送信しても、ピアグループＡ内におけるトラフィックの増加はごく僅かであると共に、更新通知情報を受信することで他のピアの負荷が大幅に増大することも回避できる。また、共有データ自体を送信する場合と比較してトラフィックや負荷に与える影響が僅かであることから、更新通知情報の送信時間間隔は、共有データ自体を送信する場合の送信時間間隔よりも短くすることも可能となる。これにより、ピアグループＡに属する他のピアの中に、通信回線の障害等の影響で最初に送信された更新通知情報を受信できなかったピアが含まれていたとしても、前記ピアが共有データが更新されたことを認識する迄の平均時間を短縮することが可能となる。
【００４９】
続いて、更新通知情報を受信する側のピアにおける処理を説明する。他のピアから更新通知情報を受信すると、当該ピアのアプリケーション実行部２０では、図１０に示す共有データ同期処理が実行される。この共有データ同期処理は、更新通知情報を受信した場合以外に、送信タイマがタイムアウトした場合及び他のピアから共有データを受信した場合にも実行される。このため、ステップ１５０では、まず今回の起動要因が更新通知情報の受信か否か判定する。判定が肯定された場合はステップ１５２へ移行し、受信した更新通知から更新された共有データの識別子ｘを抽出する。そしてステップ１５４では、ステップ１５２で抽出された識別子ｘに基づいて、対応する共有データＸが自ピアの不揮発性の記憶手段に既に記憶されているか否か判定する。
【００５０】
先にも説明したように、各ピアは新たなピアグループに参加したり、参加していたピアグループから脱退することが可能であり、自ピアがピアグループＡに参加した直後であった等の場合には、更新通知情報を受信した時点で共有データＸが自ピアの不揮発性の記憶手段に記憶されていない状態も生じ得る。この場合はステップ１５４の判定が否定されてステップ１６０へ移行する。一方、共有データＸが自ピアの不揮発性の記憶手段に記憶されていた場合には、ステップ１５４の判定が肯定されてステップ１５６へ移行し、ハッシュ関数を用いて自ピアの不揮発性の記憶手段に記憶されている共有データＸのダイジェスト（ハッシュ値）を生成する。また、ステップ１５８では受信した更新通知情報からダイジェストを抽出する。そしてステップ１５９では、ステップ１５６で生成したダイジェストをステップ１５８で抽出したダイジェストと照合し、両者が一致しているか否かを判定する。
【００５１】
ステップ１５９の判定が否定された場合、自ピアの不揮発性の記憶手段に記憶されている共有データＸは更新前のデータであると判断できるので、ステップ１６０へ移行し、更新通知情報送信元のピアに対して共有データＸの送信を要求するために、ステップ１５２で抽出した識別子ｘと、要求元情報（自ピアのＩＤ)を含む共有データＸの取得要求情報を生成する。またステップ１６２では、生成した共有データＸの取得要求情報を、受信した更新通知情報から抽出した送信元情報（更新通知情報送信元のピアのＩＤ）と対応付けてアプリケーションメモリ２２に記憶させる。そして、ステップ１６４では共有データＸの取得要求情報の送信を待機する時間を乱数によって決定し、次のステップ１６６において、ステップ１６４で決定した送信待機時間をタイマ値とする共有データＸの取得要求情報の送信タイマをスタートさせて処理を終了する。
【００５２】
ステップ１６４で決定した送信待機時間が経過することで、ステップ１６６でスタートさせた送信タイマがタイムアウトすると、共有データ同期処理が再度起動され、先のステップ１５０の判定が否定されてステップ１７０へ移行し、今回の起動要因が送信タイマのタイムアウトか否か判定される。この場合は判定が肯定されてステップ１７２へ移行し、まずタイムアウトした送信タイマに対応する共有データＸを認識する。ステップ１７４では、先のステップ１６２でアプリケーションメモリ２２に記憶させた共有データＸの取得要求情報と送信元情報を読み出し、次のステップ１７６では、読み出した共有データＸの取得要求情報を、読み出した送信元情報に対応するピア（更新通知情報送信元のピア）へ送信し、処理を終了する。なお、上述したステップ１５０〜ステップ１７６は本発明に係る取得要求手段（詳しくは請求項５に記載の取得要求手段）に対応している。
【００５３】
上記のようにして、更新通知情報を受信したピアから共有データＸの取得要求情報が送信され、この取得要求情報が更新通知情報送信元のピアで受信されると、更新通知情報送信元のピアで共有データ配信処理が再度起動され、ステップ１００，１２０の判定が各々否定されてステップ１３０へ移行する。ステップ１３０では、受信した取得要求情報から識別子ｘを抽出することで、取得対象の共有データＸを認識する。次のステップ１３２では、認識した共有データＸ（更新後のデータ）を自ピアの不揮発性の記憶手段から読み出す。そしてステップ１３４では、ステップ１３２で読み出した共有データＸを識別子ｘと共に取得要求送信元のピアへ送信し、処理を終了する。なお、上述したステップ１３０〜ステップ１３４は本発明に係る第１送信手段に対応している。
【００５４】
この共有データＸが取得要求送信元のピアで受信されると、取得要求送信元のピアで共有データ同期処理が再度起動され、ステップ１５０，１７０の判定が各々否定されてステップ１８０へ移行する。ステップ１８０では、共有データ送信元のピアから共有データＸと共に受信した識別子ｘに基づいて、対応する共有データＸが自ピアの不揮発性の記憶手段に既に記憶されているか否か判定する。判定が否定された場合はステップ１８２へ移行し、受信した共有データＸを自ピアの不揮発性の記憶手段に記憶させ、処理を終了する。また、ステップ１８０の判定が肯定された場合はステップ１８４へ移行し、受信した共有データＸを、自ピアの不揮発性の記憶手段に既に記憶されている共有データＸに上書きして記憶させ、処理を終了する。これにより、不揮発性の記憶手段に記憶されている共有データＸを最新のデータへ変更する同期化が完了する。なお、上述したステップ１８０〜ステップ１８４は本発明に係る受信手段に対応している。
【００５５】
本実施形態において、更新通知情報送信元のピアは、他のピアから取得要求情報を受信する毎に、取得が要求された共有データの送信（ステップ１３０〜１３４）を行うが、更新通知情報を受信した各ピアでは、乱数によって決定した送信待機時間が経過した後に取得要求情報を送信するので、例として図７(Ｃ)〜(Ｅ)にも示すように、更新通知情報を受信した各ピアからは互いに異なるタイミングで取得要求情報が送信され、これに伴い、更新通知情報送信元のピアから各ピアへ共有データＸが送信されるタイミングも互いに相違することになる。これにより、ピアグループＡ内のトラフィック、或いは更新通知情報送信元のピアに加わる負荷が一時期に集中して過大となることが防止され、ピアグループＡに属する各ピアが各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現することができる。
【００５６】
なお、本実施形態では共有データが更新されたピアが更新通知情報を定期的に送信するので、更新通知情報を受信する側のピアは、同一の更新通知情報を複数回受信することになるが、この場合、不揮発性の記憶手段に既に記憶されている共有データＸのダイジェスト（ステップ１５６で生成したダイジェスト）が、受信した更新通知情報から抽出したダイジェストに一致することになるので、ステップ１５９の判定が肯定されることで自ピアの不揮発性の記憶手段に記憶されている共有データＸは更新後のデータであると判断することができ、何ら処理を行うことなく処理を終了する。これにより、ピアグループＡ内のトラフィックを抑制することができ、更新通知情報を受信する側のピアに加わる負荷が増大することも回避することができる。
【００５７】
〔第２実施形態〕
次に本発明の第２実施形態について説明する。なお、本第２実施形態は第１実施形態と同一の構成であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第２実施形態における共有データを同期化する処理について、第１実施形態と異なる部分についてのみ説明する。
【００５８】
第１実施形態では、或るピアグループに属する各ピアに各々保持される共有データが何れかのピアで更新された場合に、共有データの更新が発生したピアが、同一のピアグループに属する他の全てのピアに対して更新通知情報の送信及び共有データの送信を行う例を説明したが、ピアグループに属するピアの数が多数になると、更新通知情報を受信した各ピアが取得要求情報を送信するタイミングが互いにずれていても、更新通知の送信及び共有データの送信を行うピアに多大な負荷が加わる可能性がある。
【００５９】
一方、Ｐ２Ｐネットワークでは、例として図１１(Ａ)に示すピアグループＡとサブピアグループａのように、或るピアグループに包含される別のピアグループが設定されることがある。本第２実施形態では、ピアグループＡに包含されるサブピアグループａを利用し、ピアグループＡ内の各ピアに保持される共有データの更新された場合に、共有データの更新が発生したピアはサブピアグループａ内の他のピアに対してのみ更新通知情報の送信及び共有データの送信を行い、更新通知情報を受信して共有データの更新（同期化）を完了したサブピアグループａ内の他のピアが、ピアグループＡに属しサブピアグループａに属していない他のピアへの更新通知情報の送信及び共有データの送信を行うことで、共有データの更新が発生したピアに加わる負荷を軽減している。なお、図１１において、ピア４〜ピア６が別のサブピアグループにも属していてもよいことは言うまでもない。また、上記のサブピアグループａは請求項６に記載の第２グループに対応している。
【００６０】
すなわち、本第２実施形態に係る共有データ配信処理では、図１２に示すように、共有データＸの更新が発生し（ステップ１００の判定が肯定）、共有データＸの送信回数ｉの初期化（ステップ１０２）、共有データＸの識別子の取得（ステップ１０６）、共有データＸのダイジェストの生成（ステップ１０６）を行った後に、次のステップ１０７において、Ｐ２Ｐ基盤管理データ記憶部１８に記憶されている情報を参照することで、共有データＸを共有しているピアグループＡを認識する。なお、ピアグループＡは、ピアグループＡに包含されるサブピアグループａが存在している場合（図１１(Ａ)参照）と、サブピアグループａが存在していない場合（図７(Ａ)参照）がある。次のステップ１０９では、識別子ｘ、ダイジェスト、送信元情報（自ピアのＩＤ）に、ステップ１０７で認識したピアグループを表すグループ識別情報（請求項７に記載の識別情報に相当）を加えた情報を含む共有データＸの更新通知情報を生成し、アプリケーションメモリ２２に記憶させる。
【００６１】
次のステップ１３６では、ステップ１０７で認識したピアグループＡに、当該ピアグループＡに包含されるサブピアグループａが存在しているか否か判定する。判定が否定された場合はステップ１３８へ移行し、第１実施形態で説明したステップ１１０と同様に、ピアグループＡに属する全てのピア（自ピア以外のピア）を送信対象として認識する。一方、ステップ１３６の判定が肯定された場合はステップ１４０へ移行し、Ｐ２Ｐ基盤管理データ記憶部１８に記憶されている情報に基づいて、ピアグループＡに包含されるサブピアグループａに属する全てのピア（ピアグループＡに属しかつサブピアグループａにも属している自ピア以外のピア）を送信対象として認識する。なお、本第２実施形態に係る共有データ配信処理において、上記以外のステップは第１実施形態に係る共有データ配信処理と同一であるので説明を省略する。
【００６２】
上記処理により、例えば図１１(Ａ)に示すように、ピア２で更新された共有データがピアグループＡ内で共有されている（ピアグループＡに属する各ピアが各々保持している）データであり、このピアグループＡに包含されるサブピアグループａが存在していた場合、例として図１１(Ｂ)にも示すように、ピア２からは、ピアグループＡに属しかつサブピアグループａにも属しているピア１及びピア３に対してのみ更新通知情報が送信されることになる。
【００６３】
続いて、本第２実施形態に係る共有データ同期処理について説明する。本第２実施形態に係る共有データ同期処理では、図１３に示すように、更新通知情報を受信すると（ステップ１５０の判定が肯定）ステップ１６７へ移行し、受信した更新通知情報からグループ識別情報と送信元情報を抽出する。ステップ１６８ではステップ１６７で抽出したグループ識別情報と送信元情報に基づいて、更新が通知された共有データＸが、サブピアグループａに属しかつピアグループＡに属するピアで更新されたデータであり、ピアグループＡで共有されているデータであるか否かを判断することで、ピアグループＡに属しかつサブピアグループａに属さない各ピアへ中継すべきデータか否かを識別する。
【００６４】
また、受信した更新通知情報によって更新が通知された共有データＸが、自ピアの不揮発性の記憶手段に記憶されていないデータである場合（ステップ１５４の判定が否定）、或いは自ピアの不揮発性の記憶手段に既に記憶されている共有データＸが更新前のデータであった場合（ステップ１５９の判定が否定）には、第１実施形態と同様に共有データＸの取得を要求するための取得要求情報を生成し（ステップ１６０）、生成した共有データＸの取得要求情報を、更新通知から抽出した送信元情報と対応付けてアプリケーションメモリ２２に記憶させる（ステップ１６３）が、本第２実施形態では、先のステップ１６８で更新が通知された共有データＸが中継対象のデータであると判断された場合、このステップ１６３において、共有データＸの取得要求情報を送信元情報及び中継識別情報と対応付けてアプリケーションメモリ２２に記憶させる。
【００６５】
また、本第２実施形態に係る共有データ同期処理では、ステップ１５０、１７０の判定が否定された場合にステップ１７８へ移行し、今回の起動要因が共有データの受信か否か判定するが、更新通知情報送信元のピアから共有データＸを受信することでステップ１７８の判定が肯定された場合、受信した共有データＸを自ピアの不揮発性の記憶手段に記憶させ（ステップ１８０〜１８４）た後に、先のステップ１６３でアプリケーションメモリ２２に記憶させた共有データＸの取得要求情報が、中継識別情報と対応付けられているか否か、すなわち共有データＸが中継対象のデータか否か判定する。判定が否定された場合は何ら処理を行うことなく処理を終了するが、判定が肯定された場合はステップ１８８へ移行し、先のステップ１５２で受信した更新通知情報から抽出した共有データＸの識別子ｘ、先のステップ１５８で同じく更新通知情報から抽出した共有データＸのダイジェスト、送信元情報（自ピアのＩＤ）を含む共有データＸの更新通知情報を生成し、アプリケーションメモリ２２に一時記憶させる。
【００６６】
またステップ１９０では、Ｐ２Ｐ基盤管理データ記憶部１８に記憶されている情報に基づいて、ピアグループＡに属しかつサブピアグループａに属していない全てのピアを認識する。そしてステップ１９２では、共有データＸの更新通知情報を、ステップ１９０で認識した全てのピアへ送信する。これにより、例として図１１(Ｃ),(Ｄ)にも示すように、ピアグループＡ及びサブピアグループａに各々属し、共有データＸの更新が発生したピア（図ではピア２）から最新の共有データＸの取得したピア（図ではピア３）により、ピアグループＡに属しかつサブピアグループａに属していない全てのピア（ピア４〜ピア６）に対して共有データＸの更新通知が配信されることになる。なお、上述したステップ１８８〜ステップ１９２は請求項６に記載の第２通知手段（詳しくは請求項７に記載の第２通知手段）に対応している。
【００６７】
更に、第１実施形態に係る共有データ同期処理では、他のピアから更新通知情報によって共有データＸの更新が通知されたものの、自ピアの不揮発性の記憶手段に最新の共有データＸが既に記憶されていた場合（ステップ１５９の判定が肯定された場合）に、何ら処理を行うことなく処理を終了していたが、本第２実施形態に係る共有データ同期処理では、ステップ１５９の判定が肯定された場合にステップ１６９へ移行し、ステップ１６８における認識結果に基づいて共有データＸが中継対象のデータか否か判定する。そして、判定が否定された場合は何ら処理を行うことなく処理を終了するが、判定が肯定された場合はステップ１８８へ移行し、ステップ１８８〜ステップ１９２において、ピアグループＡに属しかつサブピアグループａに属していない各ピアへの更新通知情報の再送信を行う。この更新通知情報の再送信により、ピアグループＡに属しかつサブピアグループａに属していない各ピアのうちの一部のピアとの通信が一時的に途絶していたとしても、共有データＸが更新されたことを前記一部のピアに確実に通知することができる。
【００６８】
そして本第２実施形態に係る共有データ同期処理では、更新通知情報を送信したピアから共有データＸの取得要求情報を受信すると、ステップ１７８の判定が否定されてステップ１９４へ移行し、共有データ配信処理（図８，１２）のステップ１３０〜ステップ１３４と同様に、受信した取得要求情報から識別子ｘを抽出することで取得対象の共有データＸを認識し（ステップ１９４）、認識した共有データＸ（更新後のデータ）を自ピアの不揮発性の記憶手段から読み出し（ステップ１９６）、読み出した共有データＸを識別子ｘと共に取得要求送信元のピアへ送信する（ステップ１９８）。これにより、取得要求情報送信元のピア（ピアグループＡに属しかつサブピアグループａに属していないピア）の不揮発性の記憶手段に記憶されている共有データＸも同期化されることになる（図１１(Ｅ),(Ｆ)も参照）。なお、上述したステップ１９４〜ステップ１９８は請求項６に記載の第２送信手段に対応している。
【００６９】
なお、上述した第２実施形態では、サブピアグループａに属し、共有データの更新が発生したピアから更新通知情報を受信した各ピアが、ピアグループＡに属しかつサブピアグループａに属していない各ピアへ更新通知情報を各々送信する態様を例に説明したが（例として図１１(Ｄ)ではピア３が各ピアへ更新通知情報を送信し、図１１(Ｅ)ではピア１が各ピアへ更新通知情報を送信している状態を示している）、これに限定されるものではなく、サブピアグループａに属し、共有データの更新が発生したピアから更新通知情報を受信したピアが複数存在している場合、ピアグループＡに属しかつサブピアグループａに属していない各ピアを複数のグループに分け、サブピアグループａに属し、共有データの更新が発生したピアから更新通知情報を受信した各ピアが、互いに異なるグループ内のピアに対してのみ更新通知情報を送信するようにしてもよい。
【００７０】
また、上記では個々のピアの不揮発性の記憶手段に記憶されている共有データが更新前のデータか否かを判断可能な情報として、共有データのダイジェスト（ハッシュ値）を例に説明したがこれに限定されるものではなく、共有データの更新が発生したピアが、更新通知情報として共有データの更新日時又は更新後の共有データの版数を含む情報を送信し、共有データを受信したピアは受信した共有データと共に通知された更新日時又は版数を記憶し、更新通知情報を受信する毎に、受信した更新通知情報に含まれる更新日時又は版数を、共有データと共に記憶している更新日時又は版数と比較することで、既に記憶している共有データが更新前のデータか否かを判断するようにしてもよい。
【００７１】
また、上記では更新通知情報を受信した各ピアが取得要求情報を送信する迄の待機時間を乱数によって決定することで、前記各ピアが取得要求情報を送信するタイミングを相違させるようにしていたが、これに限定されるものではなく、各ピアが取得要求情報を送信するタイミングが互いに相違するように、各ピアの送信待機時間を予め固定的に設定しておいてもよい。
【図面の簡単な説明】
【００７２】
【図１】Ｐ２Ｐネットワークのネットワーク構成図である。
【図２】ピュアＰ２Ｐのネットワーク構成図である。
【図３】ハイブリッドＰ２Ｐのネットワーク構成図である。
【図４】Ｐ２Ｐネットワークのグループについて説明するための概念図である。
【図５】ピアの基本的構成のブロック図である。
【図６】メッセージ制御部のブロック図である。
【図７】第１実施形態に係る共有データの同期化における各ピア間の情報の送受シーケンスの一例を示すイメージ図である。
【図８】第１実施形態に係る共有データ配信処理の内容を示すフローチャートである。
【図９】更新通知の送信回数と送信間隔の関係の一例を示す線図である。
【図１０】第１実施形態に係る共有データ同期処理の内容を示すフローチャートである。
【図１１】第２実施形態に係る共有データの同期化における各ピア間の情報の送受シーケンスの一例を示すイメージ図である。
【図１２】第２実施形態に係る共有データ配信処理の内容を示すフローチャートである。
【図１３】第２実施形態に係る共有データ同期処理の内容を示すフローチャートである。
【符号の説明】
【００７３】
１０  Ｐ２Ｐネットワーク
１２  ピア
１８  基盤管理データ記憶部
２０  アプリケーション実行部
２２  アプリケーションメモリ
【図１】
2006195890.tif 000003
【図２】
2006195890.tif 000004
【図３】
2006195890.tif 000005
【図４】
2006195890.tif 000006
【図５】
2006195890.tif 000007
【図６】
2006195890.tif 000008
【図７】
2006195890.tif 000009
【図８】
2006195890.tif 000010
【図９】
2006195890.tif 000011
【図１０】
2006195890.tif 000012
【図１１】
2006195890.tif 000013
【図１２】
2006195890.tif 000014
【図１３】
2006195890.tif 000015