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