JP2009163549A - ネットワークシステム、共有データの同期方法およびプログラム - Google Patents
ネットワークシステム、共有データの同期方法およびプログラム Download PDFInfo
- Publication number
- JP2009163549A JP2009163549A JP2008001274A JP2008001274A JP2009163549A JP 2009163549 A JP2009163549 A JP 2009163549A JP 2008001274 A JP2008001274 A JP 2008001274A JP 2008001274 A JP2008001274 A JP 2008001274A JP 2009163549 A JP2009163549 A JP 2009163549A
- Authority
- JP
- Japan
- Prior art keywords
- data
- ownership
- node
- information processing
- data sharing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、新たな情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能なネットワークシステムを提供することである。
【解決手段】Node1〜Node4の各々は、新規参加の通知を受信することで、Node5の新規参加を検出してコネクションを確立するとともに、各自の共有データ保持部116に保持されているデータのうち、オーナー権が付与されているデータを抽出する。そして、Node1〜Node4の各々は、抽出したデータをNode5へ送信する
【選択図】図12
【解決手段】Node1〜Node4の各々は、新規参加の通知を受信することで、Node5の新規参加を検出してコネクションを確立するとともに、各自の共有データ保持部116に保持されているデータのうち、オーナー権が付与されているデータを抽出する。そして、Node1〜Node4の各々は、抽出したデータをNode5へ送信する
【選択図】図12
Description
この発明は、複数の情報処理装置の間で共有データを同期して保持可能なネットワークシステムならびに共有データの同期方法およびそれを実現するためのプログラムに関し、特に同期処理に係る負荷を分散させるための構成に関する。
複数のユーザの間でデータ共有を行なう場合には、従来、いわゆるサーバ・クライアント形式の構成が用いられてきた。このサーバ・クライアント形式は、少なくとも1台のファイルサーバに共有すべきデータ(ファイル)を格納するとともに、複数のクライアントが当該ファイルサーバにアクセスするという形式をとる。
このようなサーバ・クライアント形式に代えて、近年、いわゆるP2P(Peer to Peer)形式の構成が採用されることも多くなっている。このP2P形式は、複数の情報処理装置(各情報処理装置は「ピア(Peer)」あるいは「ノード」とも称される。)の間で随時ファイル交換を行なうことで、それぞれが同一のデータを同期して保持し、これによりデータ共有を行なうものである。このようなP2P形式を採用することで、ファイルサーバを配置し、さらにその管理を行なう必要がなくなる。また、情報処理装置がオフラインであってもデータ利用が可能となる。
一方、P2P形式では、各情報処理装置がデータを保持しているため、新たな情報処理装置がネットワークに参加し、すでに各情報処理装置で共有されているデータを取得しようとする場合(いわゆる、同期の確立)には、特定の情報処理装置から当該新規参加した情報処理装置宛てに多数のデータが送信されることになる。そのため、当該送信元の情報処理装置は、その送信処理の実行中に多大なリソースを消費するという課題が生じ得る。
このような課題に対する一つのアプローチとして、特開2006−195890号公報(特許文献1)には、同一のグループに属する各情報処理装置が各々保持する共有データの同期をとることを、トラフィックや負荷の増大を抑制しつつ実現するための構成が開示されている。
特開2006−195890号公報
しかしながら、特開2006−195890号公報(特許文献1)に開示の構成においても、共有データが更新された場合には、当該共有データを保持する特定の情報処理装置に他の情報処理装置からのアクセスが行なわれることになる。そのため、当該更新された共有データのデータ量が大きければ、特定の情報処理装置における負荷が増大するという問題点がある。また、特開2006−195890号公報(特許文献1)には、あるグループに新たな情報処理装置が参加する場合の同期方法について何ら開示されていない。
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、新たな情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能なネットワークシステムを提供することである。また、この発明の別の目的は、上述のようなネットワークシステムにおける共有データの同期方法およびそれを実現するためのプログラムを提供することである。
この発明のある局面に従えば、互いにデータ通信可能に接続された複数の情報処理装置を含むネットワークシステムを提供する。複数の情報処理装置のうち少なくとも一部の複数の情報処理装置は、少なくとも1つの共有データを同期して保持可能なデータ共有手段をそれぞれ含む。複数の情報処理装置のうち少なくとも1つは、共有データについていずれかのデータ共有手段に対してオーナー権を付与するオーナー権付与手段を含む。データ共有手段の各々は、共有データを保持可能な記憶部と、新規データが入力されると、当該新規データを、自身の記憶部に保持するとともに他のデータ共有手段に送信するデータ追加手段とを含む。オーナー権付与手段は、共有データについてのオーナー権を付与したデータ共有手段を示すオーナー権付与情報を保持しており、オーナー権付与手段は、複数のデータ共有手段のうち少なくとも1つを新規データについてのオーナー権の付与先に決定するオーナー権決定手段と、オーナー権の付与先として決定したデータ共有手段に対して当該オーナー権の付与を通知する通知手段と、オーナー権の付与先の決定に応じて、オーナー権付与情報を更新する第1更新手段とを含む。複数のデータ共有手段の各々は、ネットワークシステムに新規参加したデータ共有手段からの要求に応じて、記憶部に保持しているデータのうち、自身にオーナー権が付与されているデータを応答する同期手段をさらに含む。
好ましくは、オーナー権付与手段を含む情報処理装置は、データ共有手段も含む。
好ましくは、データ共有手段を含む複数の情報処理装置の各々は、オーナー権付与手段を含む。
好ましくは、データ共有手段を含む複数の情報処理装置の各々は、オーナー権付与手段を含む。
さらに好ましくは、複数のデータ共有手段についても、オーナー権付与情報を記憶部に保持しており、通知手段は、複数のデータ共有手段のすべてに対して新規データについてのオーナー権の付与先を通知し、通知手段の通知を受けたデータ共有手段は、当該通知に応じて自身のオーナー権付与情報を更新する第2更新手段を含み、同期手段は、各自のオーナー権付与情報を参照することで、オーナー権が付与されているデータを抽出して応答する。
好ましくは、オーナー権付与情報は、複数のデータ共有手段に対するオーナー権の付与順を示す情報を含み、オーナー権決定手段は、オーナー権付与情報に含まれるオーナー権の付与順に従って、オーナー権の付与先を決定する。
好ましくは、オーナー権決定手段は、複数のデータ共有手段のそれぞれにおける共有データの保持状態に応じて、オーナー権の付与先を決定する。
さらに好ましくは、オーナー権決定手段は、複数のデータ共有手段に共有データの保持状態を要求する手段を含み、複数のデータ共有手段の各々は、自身の記憶部に保持されている共有データを参照し、共有データの保持状態を応答する保持状態応答手段をさらに含む。
好ましくは、オーナー権付与情報を保持するいずれかのオーナー権付与手段またはデータ共有手段は、新規参加したデータ共有手段からの通知に応じて、オーナー権付与情報を応答する。
好ましくは、新規参加したデータ共有手段に送信された共有データに不足がある場合において、複数のデータ共有手段のうち予め設定されたデータ共有手段が、当該不足する共有データを新規参加したデータ共有手段に送信する。
この発明の別の局面に従えば、互いにデータ通信可能に接続された複数の情報処理装置を含むネットワークシステムにおいて、複数の情報処理装置のうち少なくとも一部の複数の情報処理装置が少なくとも1つの共有データを同期して保持可能なデータ共有手段をそれぞれ含むものであって、これら複数のデータ共有手段の間で共有データを同期する共有データの同期方法を提供する。複数のデータ共有手段の各々は、少なくとも1つの共有データを保持可能な記憶部を含んでいる。共有データの同期方法は、新規データがいずれかのデータ共有手段に入力されると、複数のデータ共有手段の各々が当該新規データを記憶部に格納するステップと、複数の情報処理装置のうち少なくとも1つの情報処理装置が、複数のデータ共有手段のうち少なくとも1つを新規データについてのオーナー権の付与先に決定するステップと、当該1つの情報処理装置が、オーナー権の付与先として決定されたデータ共有手段に対して当該オーナー権の付与を通知するステップと、当該1つの情報処理装置が、オーナー権の付与先の決定に応じて、オーナー権付与情報を更新するステップと、新たなデータ共有手段が新規参加した場合に、複数のデータ共有手段の各々が、各自の記憶部に保持しているデータのうち自身にオーナー権が付与されているデータを当該新規参加したデータ共有手段へ送信するステップとを含む。
この発明のさらに別の局面に従えば、互いにデータ通信可能に接続された複数の情報処理装置を含むネットワークシステムにおいて、複数の情報処理装置の間で少なくとも1つの共有データを同期するためのプログラムを提供する。情報処理装置は、少なくとも1つの共有データを保持可能な記憶部を含む。プログラムは、情報処理装置を、新規データが入力されると、当該新規データを、自身の記憶部に保持するとともに他の情報処理装置に送信するデータ追加手段と、複数の情報処理装置のうち少なくとも1つを新規データについてのオーナー権の付与先に決定するオーナー権決定手段と、オーナー権の付与先として決定された情報処理装置に対して当該オーナー権の付与を通知する通知手段と、オーナー権の付与先の決定に応じて、オーナー権付与情報を更新する手段と、新規参加した情報処理装置からの要求に応じて、記憶部に保持しているデータのうち自身にオーナー権が付与されているデータを応答する同期手段として機能させる。
この発明によれば、複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、新たな情報処理装置が参加した場合の同期処理に係る負荷を分散化することができる。
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[実施の形態1]
(ネットワークシステムの全体構成)
図1は、この発明の実施の形態1に従うネットワークシステムSYSの概略構成図である。
(ネットワークシステムの全体構成)
図1は、この発明の実施の形態1に従うネットワークシステムSYSの概略構成図である。
図1を参照して、本実施の形態に従うネットワークシステムSYSは、初期の状態として、ネットワークNWを介して、複数の情報処理装置PC1〜PC4が互いにデータ通信可能な状態に構成されているとする。本実施の形態では、情報処理装置の代表例として、パーソナルコンピュータを用いる場合について例示するが、いわゆるP2P(Peer to Peer)形式の通信プロトコルおよびアプリケーションを実装可能な装置であれば、どのような装置であってもよい。具体的には、情報処理装置の実現例としては、複写機能やファクシミリ機能などを搭載したMFP(Multi Function Peripheral)、携帯電話、PDA(Personal Digital Assistance)、ネットワークファクシミリなどを用いることができる。
また、情報処理装置PC1〜PC4は、論理的に互いにデータ通信可能な状態を形成できれば、必ずしも同一階層のネットワークに物理的に接続されている必要はない。
本実施の形態に従うネットワークシステムSYSでは、情報処理装置PC1〜PC4の各々は、少なくとも1つの共有データを同期して保持するように動作する。本明細書において「同期」とは、複数の情報処理装置(ノード)の各々が同一の共有データを過不足なく保持している状態を意味する。すなわち、各情報処理装置は、他の情報処理装置とデータ交換(データコピー)をすることで、不足する共有データを収集する。このような処理を繰返すことで、ネットワークシステムSYSに含まれる情報処理装置PC1〜PC4の各々が同一の共有データを過不足なく保持することができる。なお、共有データは、代表的にユーザがいずれのパーソナルコンピュータを用いて新規に生成し、あるいは作成済のデータを共有データとして指定することで定められる。
特に、本実施の形態に従うネットワークシステムSYSでは、各共有データに対して、当該共有データの同期処理を主として取り扱う情報処理装置を示す属性(以下、「オーナー権」とも称す。)が付与される。すなわち、情報処理装置PC1〜PC4の各々は、共有データとともに、各共有データについて、少なくともいずれか1つの情報処理装置に「オーナー権」が付与されていることを示すオーナー権付与情報を保持する。そして、ネットワークシステムSYSに情報処理装置が新規参加した場合には、情報処理装置PC1〜PC4の各々は、基本的に、自身が保持する共有データのうち、オーナー権が付与されている共有データのみを当該新規参加した情報処理装置へ送信する。なお、本明細書において「新規参加」とは、既存のネットワークシステムSYSにおいて同期されている共有データの全部または一部を持たない状態(非同期状態)にある情報処理装置(ノード)が、ネットワークシステムSYSに追加されることを意味する。より具体的には、共有データを全く保持しない情報処理装置(ノード)が新規に追加される場合のほか、過去にネットワークシステムSYSに所属していた情報処理装置(ノード)が、当該ネットワークシステムSYSを離脱してから所定期間経過後に、再度ネットワークシステムSYSに接続するような場合も含む。
特に本実施の形態では、後述するように、共有される複数のデータについてのオーナー権の付与先は、ネットワークシステムSYS全体で分散するように決定される。そのため、新規参加した情報処理装置が共有データの同期をとる場合には、ネットワークシステムSYSに所属する複数の情報処理装置が分散して共有データを送信することになり、同期処理に係る負荷を分散化させることができる。
(ハードウェア構成)
図2は、この発明の実施の形態1に従う情報処理装置PC1〜PC4の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
図2は、この発明の実施の形態1に従う情報処理装置PC1〜PC4の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
図2を参照して、本実施の形態に従う情報処理装置PC1〜PC4は、オペレーティングシステムを含む各種プログラムを実行するCPU200と、CPU200でのプログラムの実行に必要なデータを一時的に記憶するメモリ部212と、CPU200で実行されるプログラムを不揮発的に記憶するハードディスク部(HDD)210とを含む。このようなプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ214またはフレキシブルディスク(FD:Flexible Disk)ドライブ216によって、それぞれCD−ROM214aまたはフレキシブルディスク216aなどから読取られる。
CPU200は、キーボードやマウスなどからなる入力部208を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力をディスプレイ部204へ出力する。また、CPU200は、LANカードなどからなるネットワークインターフェイス(I/F)部206を介して、他の情報処理装置との間でデータ通信を行なう。なお、これらの部位は、内部バス202を介して互いに接続される。
(情報処理装置の機能構成)
図3は、この発明の実施の形態1に従う情報処理装置PC1〜PC4における制御構造を示す概略図である。図3に示す制御構造は、代表的に、CPU200(図2)がハードディスク部210(図2)に予め格納されたプログラムをメモリ部212(図2)に展開して実行することで実現される。
図3は、この発明の実施の形態1に従う情報処理装置PC1〜PC4における制御構造を示す概略図である。図3に示す制御構造は、代表的に、CPU200(図2)がハードディスク部210(図2)に予め格納されたプログラムをメモリ部212(図2)に展開して実行することで実現される。
図3を参照して、情報処理装置PC1〜PC4(以下、総称して「情報処理装置PC」とも記す。)の各々は、データ受信部102と、データ解析部104と、データ追加部106と、同期部108と、操作部110と、データ格納部120と、データ作成部122と、データ送信部124とをその機能として含む。
データ受信部102は、ネットワークNW上を伝送されるデータパケットを受信するとともに、分割送信されたデータパケットについては結合してデータ列に復元した上で、データ解析部104へ出力する。データ解析部104は、各データ列の内容(代表的に、ヘッダ部のアドレス情報)を解析し、当該データ列が自装置宛てのものであるか否かを判断する。そして、データ解析部104は、自装置宛てのものと判断したデータ列のみをデータ追加部106、同期部108、操作部110のいずれかに出力する。
データ追加部106は、当該情報処理装置PCにおいてユーザが新たにデータを生成した場合や、他の情報処理装置PCから新たなデータが送信された場合などに、当該データをデータ格納部120の共有データ保持部(DB)116へ格納するとともに、データ格納部120のオーナー権付与順リスト112の内容(後述する)を更新する。具体的には、データ追加部106は、オーナー権付与機能106aと、オーナー決定機能106bと、リスト更新機能106cとを含む。
オーナー決定機能106bとして、データ追加部106は、何らかの新たな共有データが入力または作成されると、データ格納部120のオーナー権付与順リスト112を参照して、当該新たな共有データに対するオーナーを決定する。そして、オーナー権付与機能106aとして、データ追加部106は、オーナーに決定された情報処理装置PC(自装置である場合を含む)に対して、オーナー権を付与して新たな共有データを送信する。一方、ネットワークシステムSYSに所属する残りの情報処理装置PCに対して、オーナー権を付与せずに新たな共有データを送信する。さらに、データ追加部106は、自装置に向けられる新たな共有データを共有データ保持部(DB)116に格納する。
また、データ追加部106は、他の情報処理装置PCから送信された(オーナー権が付与された、あるいは付与されていない)新たな共有データを自装置の共有データ保持部(DB)116に格納する。
リスト更新機能106cとして、データ追加部106は、他の情報処理装置PCから送信された新たな共有データ、あるいは自装置で生成された新たな共有データに対応させて、オーナー権付与順リスト112を更新する。
同期部108は、ネットワークシステムSYSに新規参加した情報処理装置PCから送信された同期要求に応答して、必要な共有データまたはオーナー権付与順リスト112をデータ格納部120から読み出して返送する。具体的には、同期部108は、その機能として、要求受信機能108aとデータ抽出機能108bとを含む。
要求受信機能108aとして、同期部108は、新規参加した情報処理装置PCなどから送信された同期要求を受信し、その内容を解析する。また、データ抽出機能108bとして、同期部108は、受信した同期要求に応じて、共有データ保持部116からオーナー権が付与された共有データを抽出して、当該同期要求の送信元の情報処理装置PCへ送信する。
操作部110は、ユーザ操作に応じてデータなどを作成したり、所定のコマンドを発生したりする。具体的には、操作部110は、その機能として、更新機能、依頼機能、選択機能、問い合わせ機能、計算機能などを含む。
データ追加部106、同期部108および操作部110が、他の情報処理装置PCなどにデータ送信を行なう場合には、各々が送信すべきメッセージを作成してデータ作成部122へ出力する。データ作成部122は、各部から送信されたメッセージを所定のデータパケットに整形し、データ送信部124へ出力する。
データ送信部124は、データ作成部122で順次生成されるデータパケットを、ネットワークNWを介して指定された宛先に送信する。
(共有データの同期処理)
以下では、図4〜図11を参照して、本実施の形態に従うネットワークシステムSYSにおける共有データの同期処理について説明する。理解を容易にするために、以下では各情報処理装置PCが共有データのすべてを同期して保持する場合について説明する。
以下では、図4〜図11を参照して、本実施の形態に従うネットワークシステムSYSにおける共有データの同期処理について説明する。理解を容易にするために、以下では各情報処理装置PCが共有データのすべてを同期して保持する場合について説明する。
なお、以下の説明では、論理的に形成される情報処理装置PC間の論理的なコネクションに着目して、情報処理装置PC1〜PC4をそれぞれ「Node(あるいは、ノード)1〜4」とも記す。
図4は、共有データが追加される場合の処理を示す概略図である。図4(a)は、共有データが存在しない初期状態を示し、図4(b)は、Node1でデータAが作成された場合を示す。
図5は、図4に対応するオーナー権付与順リスト112に格納される情報の一例を示す図である。図5(a)は、図4(a)の状態に対応する一例であり、図5(b)は、図4(b)に対応する一例である。
図4(a)に示すように、何らのデータも共有されていない初期状態では、Node1〜4は、それぞれオーナー権付与順リスト112−1〜112−4を保持している。ここで、オーナー権付与順リスト112−1〜112−4の各々には、図5(a)に示すような内容が共通に格納されている。すなわち、オーナー権付与順リスト112−1〜112−4(以下、総称して「オーナー権付与順リスト112」とも記す。)には、入力または作成される共有データの順序に対応して、オーナー権を付与すべきノードの順序が予め定められている。
より具体的には、図5(a)を参照して、オーナー権付与順リスト112には、「付与順」,「ノード名」,「ノードID」,「データ名」,「付与日時」が各エントリに対応付けて構成されている。「付与順」は、オーナー権を付与すべき順番のインデックスを規定する項目である。「ノード名」および「ノードID」は、オーナー権を付与すべきノードを特定するための項目である。「データ名」は、オーナー権が付与されたデータを特定するための項目であり、代表的にファイル名などが格納される。「付与日時」は、オーナー権が付与された上で共有データが格納された日時を格納するための項目である。なお、図5(a)に示す例では、ノードIDの順番に対応させてオーナー権を付与すべき順番が循環的に規定されているが、ネットワークNWに参加した順番や性能値の高い順番に従って、オーナー権を付与する順番を規定してもよい。
次に、図4(b)に示すように、ユーザがNode1において共有データとして「データA」を作成した場合を考える。Node1は、作成されたデータAを格納した後、図5(a)に示すようなオーナー権付与順リスト112を参照し、データAについてのオーナー権を付与すべきNodeを決定する。この場合には、Node1は、データAについてのオーナー権を付与すべきNodeは自身であると決定する。そして、Node1は、何らのオーナー権を付与することなくデータAを他のNode2〜Node4へ送信する。すると、他のNode2〜Node4の各々は、送信されたデータAを格納する。
続いて、Node1は、自身のオーナー権付与順リスト112の「データ名」欄に「データA」を格納するとともに、「付与日時」欄に現在の時刻を格納して、オーナー権付与順リスト112を更新する(図5(b)参照)。さらに、Node1は、他のNode2〜Node4に対して、データAのオーナー権がNode1に付与されたことを通知する。すると、他のNode2〜Node4の各々も、Node1と同様に、自身のオーナー権付与順リスト112を更新する(図5(b)参照)。なお、Node1からの通知は、変更部分を特定するメッセージでもよいし、Node1のオーナー権付与順リスト112そのものであってもよい。
このようにして、Node1で生成されたデータAのNode1〜4での同期処理が完了する。
なお、上述の説明では、Node1からNode2〜Node4に対してデータAが送信された後に、オーナー権がNode1に付与されたことの通知がなされる構成について例示したが、これらの処理の順序は逆でもよいし、これらの処理を同時に行なってもよい。
図6は、図4に示す同期処理に係るシーケンス図である。
図6を参照して、まず、ユーザがNode1に対して所定の操作を行なうことで、Node1においてデータAが作成される(ステップS102)。すると、Node1は、自身のオーナー権付与順リスト112を参照し、データAについてのオーナー権付与先を決定する(ステップS104)。この場合には、オーナー権付与先がNode1自身であるので、Node1は、何らのオーナー権も付与することなくデータAを他のNode2〜Node4へそれぞれ送信する(ステップS106,S108,S110)。Node2〜Node4の各々は、送信されたデータAを自身の共有データ保持部116(図3)へ格納する(ステップS112,S114,S116)。
図6を参照して、まず、ユーザがNode1に対して所定の操作を行なうことで、Node1においてデータAが作成される(ステップS102)。すると、Node1は、自身のオーナー権付与順リスト112を参照し、データAについてのオーナー権付与先を決定する(ステップS104)。この場合には、オーナー権付与先がNode1自身であるので、Node1は、何らのオーナー権も付与することなくデータAを他のNode2〜Node4へそれぞれ送信する(ステップS106,S108,S110)。Node2〜Node4の各々は、送信されたデータAを自身の共有データ保持部116(図3)へ格納する(ステップS112,S114,S116)。
さらに、Node1は、自身のオーナー権付与順リスト112を更新する(ステップS118)。すなわち、Node1は、データAのオーナー権を自身に付与する。また、Node1は、データAのオーナー権がNode1に付与されたことを、それぞれNode2〜Node4に通知する(ステップS120,S122,S124)。すると、Node2〜Node4の各々は、各自のオーナー権付与順リスト112を更新する(ステップS126,S128,S130)。
なお、上述の説明では、オーナー権付与順リスト112に格納されるデータとしてオーナー権を登録する構成について説明したが、これに代えて共有ファイルのタグ情報などにオーナー権を格納してもよい。この場合には、オーナー情報として、対象の共有データを示す情報(ファイル名やデータのハッシュ値など)を含ませることが好ましい。あるいは、オーナー権付与順リスト112とは別のファイルとしてオーナー権を登録してもよい。別ファイルとしてオーナー権を登録する場合には、対象のデータの保存場所やデータ情報についても当該ファイルに格納することが好ましい。
次に、Node1にさらにデータが追加される場合について説明する。
図7は、Node1でデータAに加えてデータBが生成される場合の処理を示す。図8は、図7に対応するオーナー権付与順リスト112に格納される情報の一例を示す図である。図9は、図7に示す同期処理に係るシーケンス図である。
図7は、Node1でデータAに加えてデータBが生成される場合の処理を示す。図8は、図7に対応するオーナー権付与順リスト112に格納される情報の一例を示す図である。図9は、図7に示す同期処理に係るシーケンス図である。
図7を参照して、データAが共有されている状態において、ユーザがNode1において新たな共有データとして「データB」を作成した場合を考える。図8に示すように、この場合には、データBについてのオーナー権付与先がNode1自身ではなく、Node2となる。そのため、Node1は、図4〜図6における処理とは異なる処理を実行する。
具体的には、図9を参照して、まず、ユーザがNode1に対して所定の操作を行なうことで、Node1においてデータBが作成される(ステップS202)。すると、Node1は、自身のオーナー権付与順リスト112を参照し、データBについてのオーナー権付与先を決定する(ステップS204)。
この場合には、オーナー権付与先がNode2であるので、Node1は、データBにオーナー権を付与してNode2へ送信する(ステップS206)。Node2は、送信されたデータBを自身の共有データ保持部116(図3)へ格納する(ステップS208)とともに、自身のオーナー権付与順リスト112を更新する(ステップS210)。すなわち、Node1は、データBのオーナー権をNode2に付与する。
また、Node1は、データBを他のNode3およびNode4へ送信する(ステップS212,S214)。Node3およびNode4の各々は、送信されたデータBを自身の共有データ保持部116(図3)へ格納する(ステップS216,S218)。さらに、Node1は、自身のオーナー権付与順リスト112を更新する(ステップS220)。ここで、Node1は、データBのオーナー権がNode2に付与されたことをオーナー権付与順リスト112に格納する。さらに、Node1は、データBのオーナー権がNode2に付与されたことを通知する(ステップS222,S224)。すると、Node3およびNode4の各々は、各自のオーナー権付与順リスト112を更新する(ステップS226,S228)。
このようにして、Node1で生成されたデータBのNode1〜4での同期処理が完了する。
次に、共有データとしてさらにデータが追加された場合について説明する。
図10は、共有データとして、データAおよびBに加えて、データC,D,Eが追加された場合の各Nodeの状態を示す図である。図11は、図10に対応するオーナー権付与順リスト112に格納される情報の一例を示す図である。
図10は、共有データとして、データAおよびBに加えて、データC,D,Eが追加された場合の各Nodeの状態を示す図である。図11は、図10に対応するオーナー権付与順リスト112に格納される情報の一例を示す図である。
図10を参照して、データA〜Eが順次生成されると、Node1〜Node4の各々でこれらのデータが同期して共有される。同時に、各データを生成したNodeは、自身のオーナー権付与順リスト112の内容に従って、生成したデータについてのオーナー権を対応するNodeへ順次付与する。なお、オーナー権はオーナー権付与順リスト112の内容に従って決定されるので、データA〜EがいずれのNodeで生成されたかに関わらず、データA〜Eが生成されると、図10に示すような同期状態になる。また、図10に示す状態におけるオーナー権付与順リスト112の内容は、図11のようになる。
図11を参照して、データA〜Eの各々は、Node1〜Node4のいずれかのNodeがオーナー権をもつように登録される。
(新規参加時の同期処理)
次に、図12〜図14を参照して、Node1〜Node4を含むネットワークシステムSYSに、Node5が新規参加する場合の同期処理について説明する。
次に、図12〜図14を参照して、Node1〜Node4を含むネットワークシステムSYSに、Node5が新規参加する場合の同期処理について説明する。
図12は、各Nodeが図10に示す状態にある場合に、Node5が新規参加したときの処理を示す概略図である。図12(a)は、Node5が新規参加した状態を示し、図12(b)は、Node5に送信されるデータを示す。なお、新規参加とは、新たなNodeが既存のNodeとの間に論理的なコネクションを確立することを意味し、代表的には、新たに参加したNodeから既存のNodeに対して接続要求がなされることで実現する。
上述したように、本実施の形態に従うネットワークシステムSYSでは、各Node1〜Node4が、各自の共有データ保持部116に保持されているデータのうち、オーナー権が付与されているデータを新規参加したNode5へ送信する。なお、各Node1〜Node4は、各自の保有するオーナー権付与順リスト112を参照することで、オーナー権が付与されているデータを特定する。
一方、新規参加したNode5は、既にネットワークに参加しているNode1〜Node4から共有データを分散的に受信することになるが、完全に同期を確立するためには、ネットワークシステムSYS全体で共有されているすべての共有データを受信したか否かを判断する必要がある。そこで、本実施の形態では、新規参加したNode5が、既にネットワークに参加しているNodeの少なくとも1つから、オーナー権付与順リスト112を取得する。そして、新規参加したNode5は、いずれかのNodeから取得したオーナー権付与順リスト112に基づいて、すべての共有データの受信が成功したか否かを判断し、いずれかのNodeの一時的なビジー状態やネットワークからの離脱などに起因して、受信されなかった共有データがあれば、当該不足する共有データを同一あるいは別のNodeに当該不足データの送信を要求する。このような手順によって、新規参加したNode5は同期処理を完了する。
この新規参加時の処理手順について、図12(b)および図13を参照して説明する。図13は、新規参加時の同期処理に係るシーケンス図である。
図13を参照して、ユーザがNode5に対して所定の操作を行なうことで、Node5がネットワークに論理的に接続される。このネットワークへの新規参加に伴って、Node5は、既にネットワークに接続しているNode1〜Node4に対して、新規参加の通知および同期要求を送信する(ステップS302)。なお、新規参加直後には、ネットワークに存在する他のNodeを特定できないので、ネットワークにブロードキャストすることが好ましい。
Node1〜Node4の各々は、新規参加の通知を受信することで、Node5の新規参加を検出してコネクションを確立するとともに、各自の共有データ保持部116に保持されているデータのうち、オーナー権が付与されているデータを抽出する(ステップS304,S306,S308,S310)。そして、Node1〜Node4の各々は、抽出したデータをNode5へ送信する(ステップS312,S314,S316,S318)。なお、図12(b)に示す例では、Node1がデータAおよびデータEをNode5へ送信し、Node2がデータBをNode5へ送信し、Node3がデータCをNode5へ送信し、Node4がデータDをNode5へ送信する。
また、Node1〜Node4の少なくとも1つのNodeがオーナー権付与順リスト112をNode5へ送信する。図13に示す例では、Node2がオーナー権付与順リスト112をNode5へ送信する(ステップS320)。なお、すべてのNodeがオーナー権付与順リスト112をNode5へ送信し、Node5が受信した複数のオーナー権付与順リスト112のうち1つを選択的に格納するようにしてもよい。この場合には、最も直近に受信した、すなわち最も新しいオーナー権付与順リスト112を用いることが好ましい。あるいは、Node5から特定のNodeへオーナー権付与順リスト112の送信を要求するようにしてもよい。
そして、Node5は、Node1〜Node4のそれぞれから受信した共有データと、オーナー権付与順リスト112の内容とを比較して、同期状態を確認する(ステップS322)。オーナー権付与順リスト112に記載されているすべての共有データが受信されている場合には、同期が完了しているものとして処理を終了する。一方、不足しているデータがある場合には、当該不足データ要求をいずれかのNodeへ送信する(ステップS324)。
次に、図14を参照して、新規参加Nodeにおいて同期すべきデータが不足している場合の処理について説明する。
図14は、図12(a)に示すNode5が新規参加した際に、Node4がネットワークから離脱していた場合の処理を示す概略図である。図14(a)は、Node5が新規参加した状態を示し、図14(b)は、Node5に追加的に送信されるデータを示す。
図12(a)および図14(a)を参照して、Node5がネットワークに新規参加すると、本来、Node1〜Node4のそれぞれから共有データがNode5へ送信される。しかしながら、Node4がネットワークから離脱している場合には、Node4が送信すべきであったデータDが送信されない。
Node5が、Node1〜Node3のそれぞれから受信した共有データとオーナー権付与順リスト112の内容とを比較することで、データDが受信されていないことがわかる。すると、Node5は、いずれかのNodeに対して不足しているデータDの送信を要求する。この不足しているデータの送信要求先は、たとえば、Node5からの同期要求に対して最も早くデータを送信したNodeとすることができる。これは、応答が最も早いNodeほど、ネットワークが近く、あるいはその能力に余裕があると考えることができるからである。図14(b)の場合には、Node5はNode2に対してデータDの送信を要求し、この要求に応じて、Node2が自身の保持するデータDをNode5へ送信する。
このような手順によって、Node5は、不足していたデータDを取得することができ、これにより同期が完了する。
なお、Node5が不足するデータの送信要求先を決定する方法として、複数のNodeに同一の要求をマルチキャストし、応答されるデータのうち適当なものを選択的に格納してもよい。この場合には、同一のデータであっても更新時間などが異なる場合には、最も新しく更新されたデータを選択することが好ましい。あるいは、不足するデータがある場合には、いずれのNodeに要求するかを予め設定しておいてもよい。
また、Node1〜Node4の各々は、Node5の新規参加に伴って、オーナー権付与順リスト112の内容を更新するようにしてもよい。この場合には、Node1〜Node4の各々は、更新後のオーナー権付与順リスト112を新規参加したNode5へ送信することが好ましい。
なお、上述の説明では、すべてのNodeが同一の内容が記載されたオーナー権付与順リスト112を保持する構成について例示したが、特定のNodeだけがオーナー権付与順リスト112を保持するようにしてもよい。この場合には、オーナー権付与順リスト112を保持しない他のNodeは、当該特定のNodeに問い合わせを行なうことで、オーナー権を付与するべきNodeを決定する。
本実施の形態と本願発明との対応関係については、情報処理装置PC1〜PC4(Node1〜4)の各々が「データ共有手段」および「オーナー権付与手段」を実現する。すなわち、本実施の形態では、情報処理装置PC1〜PC4のすべてが、「データ共有手段」および「オーナー権付与手段」として機能する。
(本実施の形態における効果)
この発明の実施の形態1によれば、複数の情報処理装置PC1〜PC4の間で共有データを同期しているネットワークシステムSYSに対して、情報処理装置が新規参加した場合には、情報処理装置PC1〜PC4の各々が自身にオーナー権が付与されているデータのみを分散して当該新規参加した情報処理装置へ送信する。そのため、特定の情報処理装置に同期処理に係る負荷が集中することを回避できる。
この発明の実施の形態1によれば、複数の情報処理装置PC1〜PC4の間で共有データを同期しているネットワークシステムSYSに対して、情報処理装置が新規参加した場合には、情報処理装置PC1〜PC4の各々が自身にオーナー権が付与されているデータのみを分散して当該新規参加した情報処理装置へ送信する。そのため、特定の情報処理装置に同期処理に係る負荷が集中することを回避できる。
[実施の形態2]
上述の実施の形態1では、オーナー権の付与順序が予め定められている構成について例示したが、共有されるデータのサイズや各Nodeの能力にバラツキが生じる場合もある。そこで、実施の形態2では、各Nodeの共有データの保持状態に応じて動的にオーナー権の付与先を決定する構成について例示する。
上述の実施の形態1では、オーナー権の付与順序が予め定められている構成について例示したが、共有されるデータのサイズや各Nodeの能力にバラツキが生じる場合もある。そこで、実施の形態2では、各Nodeの共有データの保持状態に応じて動的にオーナー権の付与先を決定する構成について例示する。
この発明の実施の形態2に従うネットワークシステムSYSの概略構成については、図1と同様であり、各Nodeを構成する情報処理装置PCの構成については、図2と同様であるので、詳細な説明は繰返さない。
(情報処理装置の機能構成)
図15は、この発明の実施の形態2に従う情報処理装置PC1〜PC4における制御構造を示す概略図である。図15に示す制御構造は、代表的に、CPU200(図2)がハードディスク部210(図2)に予め格納されたプログラムをメモリ部212(図2)に展開して実行することで実現される。
図15は、この発明の実施の形態2に従う情報処理装置PC1〜PC4における制御構造を示す概略図である。図15に示す制御構造は、代表的に、CPU200(図2)がハードディスク部210(図2)に予め格納されたプログラムをメモリ部212(図2)に展開して実行することで実現される。
図15に示す制御構造は、図3に示す実施の形態1に従う情報処理装置の制御構造において、データ追加部106およびデータ格納部120に代えて、それぞれデータ追加部106#およびデータ格納部120#を設けたものに相当する。
データ追加部106#は、オーナー権付与機能106a、オーナー決定機能106b、リスト更新機能106cに加えて、情報応答機能106dを含む。情報応答機能106dとして、データ追加部106#は、他の情報処理装置PCから保持データ情報の問い合わせを受けると、データ格納部120の共有データ保持部116に保持されている共有データのサイズなどの情報を応答する。
また、データ格納部120#は、共有データ保持部(DB)116およびデータリスト114を格納する。このデータリスト114は、オーナー権付与情報として、ネットワーク全体の共有データと、各データに付与されているオーナー権情報とを対応付けて格納する。本実施の形態に従うデータ追加部106#は、後述するように、共有データが追加される毎にデータリスト114を更新する。
その他の各機能については、図3と同様であるので詳細な説明は繰返さない。
(共有データの同期処理)
以下では、図16〜図22を参照して、本実施の形態に従うネットワークシステムSYSにおける共有データの同期処理について説明する。
(共有データの同期処理)
以下では、図16〜図22を参照して、本実施の形態に従うネットワークシステムSYSにおける共有データの同期処理について説明する。
図16は、データA〜データJが共有されている状態において、Node1でデータKが生成される場合の処理を示す。図17は、図16に対応するデータリスト114に格納される情報の一例を示す図である。
図16を参照して、まず、ネットワークシステムSYS全体として、データA〜データJが共有されている場合を考える。図16に示す状態では、Node1にデータA,E,Iについてのオーナー権が付与されており、Node2にデータB,F,Jについてのオーナー権が付与されており、Node3にデータC,Gについてのオーナー権が付与されており、Node4にデータD,Hについてのオーナー権が付与されているとする。また、Node1〜Node4は、それぞれデータリスト114−1〜114−4を保持している。ここで、データリスト114−1〜114−4(以下、総称して「データリスト114」とも記す。)の各々には、図17に示すような同一の内容が格納されている。すなわち、データリスト114には、共有データと、各共有データに付与されているオーナー権情報とが対応付けて格納されている。
より具体的には、図17を参照して、データリスト114には、「データ名」,「オーナーノード名」,「オーナーノードID」が各エントリに対応付けて構成されている。「データ名」は、共有データを特定するための項目であり、代表的にファイル名などが格納される。「オーナーノード名」および「オーナーノードID」は、オーナー権が付与されているノードを特定するための項目である。なお、図17に示す例では、上記の3項目を含む構成について例示したが、共有データと各共有データに付与されているオーナー権情報とが対応付けていれば、どのような形式であってもよい。
図17のデータリスト114に示すように、本実施の形態に従うネットワークシステムSYSでは、各Nodeの共有データの保持状態に応じて動的にオーナー権の付与先が決定されるので、上述の実施の形態1と異なり、オーナー権の付与順が予め定められていない。以下、本実施の形態に従うオーナー権の付与処理について説明する。
図18は、図16に示す同期処理に係るシーケンス図である。図19は、各Nodeが取得する保持データ情報の一例を示す図である。なお、図18に示す同期処理では、Node2が共有データのオーナー権の付与先を決定する「オーナー権付与Node」に予め設定されているものとする。
図18を参照して、図16に示すようにデータA〜データJが共有されている状態において、ユーザがNode1において新たな共有データとして「データK」を作成した場合を考える。
具体的には、まず、ユーザがNode1に対して所定の操作を行なうことで、Node1においてデータKが作成される(ステップS402)。すると、Node1は、オーナー権付与Nodeに設定されているNode2に対して、オーナー権決定要求を送信する(ステップS404)。
このオーナー権決定要求に応じて、Node2は、共有データ保持部116に保持されている共有データを確認し、データ別のデータサイズやデータ格納部120の保存容量などの情報を取得する(ステップS412)。同時に、Node2は、ネットワークに所属するNode1,Node3,Node4に対して、保持データ情報をそれぞれ問い合わせる(ステップS406,S408,S410)。この保持データ情報の問い合わせに応じて、Node1,Node3,Node4の各々は、Node2と同様に、自身の共有データ保持部116に保持されている共有データを確認し、データ別のデータサイズやデータ格納部120の保存容量などの保持データ情報を取得する(ステップS414,S416,S418)。そして、Node1,Node3,Node4の各々は、取得した保持データ情報をNode2に応答する(ステップS420,S422,S424)。
その度、Node2は、自身が取得した保持データ情報およびNode1,Node3,Node4からそれぞれ受信した保持データ情報に基づいて、データKについてオーナー権の付与先を決定する(ステップS426)。
図19を参照して、ステップS426におけるオーナー権の付与先の決定処理について説明する。図19(a)は、Node1における保持データ情報の一例を示し、図19(b)は、Node2における保持データ情報の一例を示し、図19(c)は、Node3における保持データ情報の一例を示し、図19(d)は、Node4における保持データ情報の一例を示す。
図19(a)〜図19(d)に示すように、各Nodeで取得される保持データ情報には、各Nodeを特定するための「ノード名」および「ノードID」の値が格納されている。そして、保持データ情報には、各ノードで保持される共有データのうち「オーナー権」が付与されたもののリスト、およびそれらのデータサイズが格納される。保持データ情報には、データサイズの合計値および各自の共有データ保持部116の保存容量も格納される。
図18のステップS426において、Node2はこれらの保持データ情報に基づいて、オーナー権を付与すべきNodeを決定する。本実施の形態では、一例として、共有データ保持部116における使用負荷率に基づいて、オーナー権を付与すべきNodeが判断される。具体的には、各保持データ情報に格納された共有データ保持部116の保存容量に対するオーナー権が付与されたデータの比率(データサイズ合計値/保存容量)に基づいて、最も比率の低いNodeに対してオーナー権が付与される。図19に示す例では、Node4における保持データ情報(図19(d))における比率が最も小さいので、Node2は、Node4をオーナー権の付与先に決定する。
このようなデータサイズの比率に基づいて判断するのは、同期処理における負荷がオーナー権の付与されたデータの大きさに比例すると予想されるからである。
なお、上述の処理手順に限られず、オーナー権が付与されたデータのデータサイズ合計値に基づいて判断してもよいし、オーナー権が付与されたデータの数に基づいて判断してもよい。いずれの場合にもより負荷の低い、すなわちデータサイズ合計値の小さい、あるいはデータの数が少ないNodeが優先的にオーナー権の付与先に決定される。
以上のように、各Nodeに付与されているオーナー権に応じた保持状態に基づいて、より負荷の小さいNodeにオーナー権を優先的に付与することで、ネットワークシステム全体として、特定のNodeに負荷が偏ることを抑制できる。これにより、同期処理に係る負荷を分散させることができる。
次に、上述のような処理によってオーナー権の付与先を決定した後の処理について、図20を参照して説明する。
図20は、図18に示すシーケンス図に引き続く処理を示すシーケンス図である。
図20を参照して、Node2がデータKのオーナー権付与先をNode4に決定する(ステップS426)と、Node4は、オーナー権をNode4へ送信する(ステップS428)。あわせて、Node2は、データKについてのオーナー権をNode4へ付与した旨を通知するためのオーナー情報をNode1およびNode3へそれぞれ送信する(ステップS430,S432)。
図20を参照して、Node2がデータKのオーナー権付与先をNode4に決定する(ステップS426)と、Node4は、オーナー権をNode4へ送信する(ステップS428)。あわせて、Node2は、データKについてのオーナー権をNode4へ付与した旨を通知するためのオーナー情報をNode1およびNode3へそれぞれ送信する(ステップS430,S432)。
Node4は、Node2からオーナー権を受信すると、自身のデータリストを更新する(ステップS434)。すなわち、Node4は、新たなエントリとして、オーナー権がNode4に付与されたことを自身のデータリストに追加する。
一方、Node1は、Node2からオーナー権を受信すると、自身のデータリストを更新する(ステップS436)。すなわち、Node1は、新たなエントリとして、オーナー権がNode4に付与されたことを自身のデータリストに追加する。同様に、Node3は、Node2からオーナー権を受信すると、自身のデータリストを更新する(ステップS438)。
さらに、Node2は、自身のデータリストを更新する(ステップS440)。すなわち、Node2は、新たなエントリとして、オーナー権がNode4に付与されたことを自身のデータリストに追加する。
各Nodeのデータリストが更新されると、Node1がデータKを他のNode2〜Node4へそれぞれ送信する(ステップS442,S444,S446)。Node2〜Node4の各々は、Node1からデータKを受信すると、それを各自の共有データ保持部116へ格納するとともに、データリストの内容を更新する(ステップS448,S450,S452)。具体的には、各データリストにおいて、Node4にオーナー権が付与されたエントリに対応するデータ名の欄に「データK」という値が格納される。また、Node1自身も、データリストの内容を更新する(ステップS454)。
このようにして、Node1で生成されたデータKのNode1〜Node4での同期処理が完了する。
図21は、Node1で生成されたデータKのNode1〜Node4での同期処理が完了した状態を示す図である。図22は、図21に対応するオーナー権付与順リスト112に格納される情報の一例を示す図である。
図21を参照して、Node1で生成されたデータKがNode2〜Node4へ分配された上、データKについてのオーナー権がNode4に付与されていることがわかる。この場合、データリスト114には、図22に示すようなデータが格納されることになる。
なお、上述の説明では、オーナー権付与Nodeが予め設定されている構成について例示したが、動的に変化させてもよい。一例として、最初にネットワークに参加したNodeをオーナー権付与Nodeに設定したり、オーナー権付与NodeとすべきNodeを所定期間毎に切り換えたりしてもよい。
あるいは、オーナー権付与Nodeが予め設定されている場合には、それ以外のNodeには、オーナー権の決定に係る機能を実装する必要はない。すなわち、ネットワークシステムSYSの少なくとも1つのNodeがオーナー権の付与機能を搭載していれば十分である。
(新規参加時の同期処理)
次に、図23および図24を参照して、Node1〜Node4からなるネットワークシステムSYSに、Node5が新規参加する場合の同期処理について説明する。
次に、図23および図24を参照して、Node1〜Node4からなるネットワークシステムSYSに、Node5が新規参加する場合の同期処理について説明する。
図23は、各Nodeが図21に示す状態にある場合に、Node5が新規参加したときの処理を示す概略図である。図23(a)は、Node5が新規参加した状態を示し、図23(b)は、Node5に送信されるデータを示す。図24は、新規参加時の同期処理に係るシーケンス図である。
本実施の形態に従うネットワークシステムSYSでは、新規参加したNodeが既存のいずれかのNodeからデータリスト114を取得する。そして、新規参加したNodeが当該データリスト114を参照することで、各共有データについてオーナー権が付与されているそれぞれのNodeを特定し、各Nodeに対して必要な共有データの送信を要求する。Node1〜Node4の各々は、当該要求を受けて、各自の共有データ保持部116に保持されているデータのうち、要求されたデータ(すなわち、自身にオーナー権が付与されているデータ)を新規参加したNode5へ送信する。
一方、新規参加したNode5は、Node1〜Node4から分散して送信される共有データをデータリスト114の内容と比較し、すべての共有データの受信が成功したか否かを判断する。そして、いずれかのNodeの一時的なビジー状態やネットワークからの離脱などに起因して、受信されなかった共有データがあれば、Node5は、当該不足している共有データの送信を同一あるいは別のNodeに要求する。このような手順によって、新規参加したNode5は同期処理を完了する。
この新規参加時の処理手順について、図23(b)および図24を参照して説明する。
図24を参照して、ユーザがNode5に対して所定の操作を行なうことで、Node5がネットワークに論理的に接続される。このネットワークへの新規参加に伴って、Node5は、既にネットワークに接続しているNode1〜Node4に対して、新規参加の通知およびデータリスト要求を送信する(ステップS502)。なお、新規参加直後には、ネットワークに存在する他のNodeを特定できないので、ネットワークにブロードキャストすることが好ましい。
図24を参照して、ユーザがNode5に対して所定の操作を行なうことで、Node5がネットワークに論理的に接続される。このネットワークへの新規参加に伴って、Node5は、既にネットワークに接続しているNode1〜Node4に対して、新規参加の通知およびデータリスト要求を送信する(ステップS502)。なお、新規参加直後には、ネットワークに存在する他のNodeを特定できないので、ネットワークにブロードキャストすることが好ましい。
Node1〜Node4の各々は、新規参加の通知を受信することで、Node5の新規参加を検出する。そして、Node1〜Node4のうちオーナー権付与Nodeに設定されているNode2は、データリスト要求に応答して、自身のデータリスト114をNode5へ送信する(ステップS504)。新規参加したNode5は、Node2からデータリスト114を受信すると、当該データリスト114に記載された各共有データについて、オーナー権が付与されているNodeを特定する(ステップS506)。さらに、Node5は、特定したNode別に必要な共有データの送信をそれぞれ要求する(ステップS508,S510,S512,S514)。
Node1〜Node4の各々は、共有データの送信要求に応じて、各自の共有データ保持部116に保持されているデータのうち要求されたデータ(オーナー権が付与されている共有データ)を抽出する(ステップS516,S518,S520,S522)。そして、Node1〜Node4の各々は、抽出したデータをNode5へ送信する(ステップS524,S526,S528,S530)。なお、図23(b)に示す例では、Node1がデータA,データE,データIをNode5へ送信し、Node2がデータB,データF,データJをNode5へ送信し、Node3がデータC,データGをNode5へ送信し、Node4がデータD,データH,データKをNode5へ送信する。
Node5は、各Nodeから受信した共有データと、データリスト114の内容とを比較して、同期状態を確認する(ステップS532)。データリスト114に記載されているすべての共有データが受信されている場合には、同期が完了しているものとして処理を終了する。
一方、不足しているデータがある場合には、当該不足データ要求をいずれかのNodeへ送信する(ステップS534)。なお、新規参加Nodeにおいて同期すべきデータが不足している場合の処理については、上述の実施の形態1と同様であるので、詳細な説明は繰返さない。
一方、不足しているデータがある場合には、当該不足データ要求をいずれかのNodeへ送信する(ステップS534)。なお、新規参加Nodeにおいて同期すべきデータが不足している場合の処理については、上述の実施の形態1と同様であるので、詳細な説明は繰返さない。
本実施の形態と本願発明との対応関係については、情報処理装置PC1〜PC4(Node1〜4)の各々が「データ共有手段」を実現するとともに、情報処理装置PC2(Node2)が「オーナー権付与手段」を実現する。すなわち、本実施の形態では、情報処理装置PC1〜PC4のすべてが「データ共有手段」として機能するとともに、情報処理装置PC2が「オーナー権付与手段」としても機能する。なお、本実施の形態では、「オーナー権付与手段」としてのみ機能する情報処理装置と、「データ共有手段」として機能する複数の情報処理装置とからなるネットワークシステムを構成してもよい。
(本実施の形態における効果)
この発明の実施の形態2によれば、複数の情報処理装置PC1〜PC4の間で共有データを同期しているネットワークシステムSYSに対して、情報処理装置が新規参加した場合には、情報処理装置PC1〜PC4の各々が自身にオーナー権が付与されているデータのみを分散して当該新規参加した情報処理装置へ送信する。そのため、特定の情報処理装置に同期処理に係る負荷が集中することを回避できる。
この発明の実施の形態2によれば、複数の情報処理装置PC1〜PC4の間で共有データを同期しているネットワークシステムSYSに対して、情報処理装置が新規参加した場合には、情報処理装置PC1〜PC4の各々が自身にオーナー権が付与されているデータのみを分散して当該新規参加した情報処理装置へ送信する。そのため、特定の情報処理装置に同期処理に係る負荷が集中することを回避できる。
また、この発明の実施の形態2によれば、各Nodeの共有データの保持状態に応じて動的にオーナー権の付与先が決定されるので、より負荷分散を効果的に行なうことができる。
[その他の実施の形態]
上述の実施の形態1および2における同期処理についての説明では、理解を容易にするために、各Nodeが一斉に共有データを送信する場合の構成を例示したが、必ずしも一斉に共有データを送信する必要はない。ネットワーク容量などに制限がある場合には、複数回に分割して送信することが望ましい。
上述の実施の形態1および2における同期処理についての説明では、理解を容易にするために、各Nodeが一斉に共有データを送信する場合の構成を例示したが、必ずしも一斉に共有データを送信する必要はない。ネットワーク容量などに制限がある場合には、複数回に分割して送信することが望ましい。
すでにオーナー権が付与されているNodeがネットワークから長期間に亘って離脱している場合には、共有データのうち実質的にオーナー権が付与されていないデータが存在することになる。このような場合には、別のNodeに対して当該データについてのオーナー権を付与するようにしてもよい。いずれのNodeに対して、代理のオーナー権を付与するかについては、予め定めておいてもよいし、上述したような処理を再度実行して、オーナー権の付与先Nodeを改めて決定してもよい。
上述のような場合においてネットワークを離脱していたNodeがネットワークに復帰した場合には、同一の共有データに対してオーナー権が重複して付与されていることになるので、代理のオーナー権が付与されたNodeは、定期的に元のオーナー権が付与されていたNodeの状態を問い合わせ、元のオーナー権が付与されていたNodeが復帰した場合には、代理のオーナー権を削除するようにすることが好ましい。あるいは、オーナー権付与Nodeが予め設定されているような場合には、オーナー権付与Nodeが重複したオーナー権の付与を定期的に監視し、必要に応じて削除することが好ましい。あるいは、ネットワークから離脱することが予め分かっている場合などには、当該離脱予定のNodeは、自身に付与されたオーナー権を別のNodeに譲渡した後に、ネットワークを離脱するように構成することが好ましい。あるいは、ネットワークを離脱していたNodeが復帰した場合に、オーナー権を再度分配するようにしてもよい。
上述の実施の形態1および2において、新たな共有データが作成された場合には、オーナー権の付与先が決定されるまで、当該新たな共有データを作成したNodeが一時的にオーナー権を保持しておき、正式にオーナー権の付与先が決定された後に、当該付与先にオーナー権を譲渡するようにしてもよい。これは、新たな共有データについてのオーナー権がいずれのNodeにも付与されていない状態を回避して、より安全なデータ同期を実現するためである。
上述の実施の形態1および2においては、ネットワークに新規参加したNodeにおける同期処理について例示したが、ユーザがいずれかのNodeに対して、保持する共有データの更新を指示した場合などにおいても、オーナー権を保有する各Nodeから共有データを取得するようにしてもよい。
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
102 データ受信部、104 データ解析部、106 データ追加部、106a オーナー権付与機能、106b オーナー決定機能、106c リスト更新機能、106d 情報応答機能、108 同期部、108a 要求受信機能、108b データ抽出機能、110 操作部、112 オーナー権付与順リスト、114 データリスト、116 共有データ保持部、120 データ格納部、122 データ作成部、124 データ送信部、202 内部バス、204 ディスプレイ部、206 ネットワークインターフェイス(I/F)部、208 入力部、210 ハードディスク部(HDD)、212 メモリ部、214 CD−ROMドライブ、214a CD−ROM、216 FDドライブ、216a フレキシブルディスク(FD)、NW ネットワーク、PC,PC1〜PC4 情報処理装置、SYS ネットワークシステム。
Claims (11)
- 互いにデータ通信可能に接続された複数の情報処理装置を含むネットワークシステムであって、
前記複数の情報処理装置のうち少なくとも一部の複数の情報処理装置は、少なくとも1つの共有データを同期して保持可能なデータ共有手段をそれぞれ含み、
前記複数の情報処理装置のうち少なくとも1つは、前記共有データについていずれかのデータ共有手段に対してオーナー権を付与するオーナー権付与手段を含み、
前記データ共有手段の各々は、
前記共有データを保持可能な記憶部と、
新規データが入力されると、当該新規データを、自身の前記記憶部に保持するとともに他の前記データ共有手段に送信するデータ追加手段とを含み、
前記オーナー権付与手段は、共有データについてのオーナー権を付与したデータ共有手段を示すオーナー権付与情報を保持しており、
前記オーナー権付与手段は、
前記複数のデータ共有手段のうち少なくとも1つを前記新規データについての前記オーナー権の付与先に決定するオーナー権決定手段と、
前記オーナー権の付与先として決定したデータ共有手段に対して当該オーナー権の付与を通知する通知手段と、
前記オーナー権の付与先の決定に応じて、前記オーナー権付与情報を更新する第1更新手段とを含み、
前記複数のデータ共有手段の各々は、前記ネットワークシステムに新規参加したデータ共有手段からの要求に応じて、前記記憶部に保持しているデータのうち、自身に前記オーナー権が付与されているデータを応答する同期手段をさらに含む、ネットワークシステム。 - 前記オーナー権付与手段を含む情報処理装置は、前記データ共有手段も含む、請求項1に記載のネットワークシステム。
- 前記データ共有手段を含む複数の情報処理装置の各々は、前記オーナー権付与手段を含む、請求項1に記載のネットワークシステム。
- 前記複数のデータ共有手段についても、前記オーナー権付与情報を前記記憶部に保持しており、
前記通知手段は、前記複数のデータ共有手段のすべてに対して前記新規データについてのオーナー権の付与先を通知し、
前記通知手段の通知を受けたデータ共有手段は、当該通知に応じて自身の前記オーナー権付与情報を更新する第2更新手段を含み、
前記同期手段は、各自の前記オーナー権付与情報を参照することで、前記オーナー権が付与されているデータを抽出して応答する、請求項1または2に記載のネットワークシステム。 - 前記オーナー権付与情報は、前記複数のデータ共有手段に対するオーナー権の付与順を示す情報を含み、
前記オーナー権決定手段は、前記オーナー権付与情報に含まれる前記オーナー権の付与順に従って、前記オーナー権の付与先を決定する、請求項1〜3のいずれか1項に記載のネットワークシステム。 - 前記オーナー権決定手段は、前記複数のデータ共有手段のそれぞれにおける共有データの保持状態に応じて、前記オーナー権の付与先を決定する、請求項1〜3のいずれか1項に記載のネットワークシステム。
- 前記オーナー権決定手段は、前記複数のデータ共有手段に共有データの保持状態を要求する手段を含み、
前記複数のデータ共有手段の各々は、自身の前記記憶部に保持されている共有データを参照し、前記共有データの保持状態を応答する保持状態応答手段をさらに含む、請求項6に記載のネットワークシステム。 - 前記オーナー権付与情報を保持するいずれかのオーナー権付与手段またはデータ共有手段は、新規参加したデータ共有手段からの通知に応じて、前記オーナー権付与情報を応答する、請求項1〜7のいずれか1項に記載のネットワークシステム。
- 前記新規参加したデータ共有手段に送信された共有データに不足がある場合において、前記複数のデータ共有手段のうち予め設定されたデータ共有手段が、当該不足する共有データを前記新規参加したデータ共有手段に送信する、請求項1〜8のいずれか1項に記載のネットワークシステム。
- 互いにデータ通信可能に接続された複数の情報処理装置を含むネットワークシステムにおいて、前記複数の情報処理装置のうち少なくとも一部の複数の情報処理装置が少なくとも1つの共有データを同期して保持可能なデータ共有手段をそれぞれ含むものであって、これら複数のデータ共有手段の間で前記共有データを同期する共有データの同期方法であって、
前記複数のデータ共有手段の各々は、前記少なくとも1つの共有データを保持可能な記憶部を含んでおり、
前記共有データの同期方法は、
新規データがいずれかの前記データ共有手段に入力されると、前記複数のデータ共有手段の各々が当該新規データを前記記憶部に格納するステップと、
前記複数の情報処理装置のうち少なくとも1つの情報処理装置が、前記複数のデータ共有手段のうち少なくとも1つを前記新規データについてのオーナー権の付与先に決定するステップと、
当該1つの前記情報処理装置が、前記オーナー権の付与先として決定されたデータ共有手段に対して当該オーナー権の付与を通知するステップと、
当該1つの前記情報処理装置が、前記オーナー権の付与先の決定に応じて、オーナー権付与情報を更新するステップと、
新たなデータ共有手段が新規参加した場合に、前記複数のデータ共有手段の各々が、各自の前記記憶部に保持しているデータのうち自身にオーナー権が付与されているデータを当該新規参加したデータ共有手段へ送信するステップとを備える、共有データの同期方法。 - 互いにデータ通信可能に接続された複数の情報処理装置を含むネットワークシステムにおいて、前記複数の情報処理装置の間で少なくとも1つの共有データを同期するためのプログラムであって、
前記情報処理装置は、前記少なくとも1つの共有データを保持可能な記憶部を含み、
前記プログラムは、前記情報処理装置を、
新規データが入力されると、当該新規データを、自身の前記記憶部に保持するとともに他の前記情報処理装置に送信するデータ追加手段と、
前記複数の情報処理装置のうち少なくとも1つを前記新規データについての前記オーナー権の付与先に決定するオーナー権決定手段と、
前記オーナー権の付与先として決定された情報処理装置に対して当該オーナー権の付与を通知する通知手段と、
前記オーナー権の付与先の決定に応じて、オーナー権付与情報を更新する手段と、
新規参加した情報処理装置からの要求に応じて、前記記憶部に保持しているデータのうち自身にオーナー権が付与されているデータを応答する同期手段として機能させる、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008001274A JP2009163549A (ja) | 2008-01-08 | 2008-01-08 | ネットワークシステム、共有データの同期方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008001274A JP2009163549A (ja) | 2008-01-08 | 2008-01-08 | ネットワークシステム、共有データの同期方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009163549A true JP2009163549A (ja) | 2009-07-23 |
Family
ID=40966089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008001274A Withdrawn JP2009163549A (ja) | 2008-01-08 | 2008-01-08 | ネットワークシステム、共有データの同期方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009163549A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015201027A (ja) * | 2014-04-08 | 2015-11-12 | 日本電信電話株式会社 | ノードおよびプログラム |
-
2008
- 2008-01-08 JP JP2008001274A patent/JP2009163549A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015201027A (ja) * | 2014-04-08 | 2015-11-12 | 日本電信電話株式会社 | ノードおよびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100621092B1 (ko) | P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치 | |
EP2058980B1 (en) | A method, system and device for establishing a peer to peer connection in a p2p network | |
AU2008334808B2 (en) | Method of establishing a connection | |
CN102449616B (zh) | 对象存储库在网络上的基于群的同步 | |
EP2723140B1 (en) | Communication apparatus | |
JP5866812B2 (ja) | 無線通信装置 | |
JP2010267084A (ja) | 通信装置および遠隔操作システム | |
CN100521603C (zh) | 集群模式下实现网络安全设备高可用性的方法 | |
CN112202877B (zh) | 网关联动方法、网关、云服务器及用户终端 | |
Do et al. | Robust video-on-demand streaming in peer-to-peer environments | |
US10091288B2 (en) | Ordered execution of tasks | |
JP5803904B2 (ja) | 情報共有方法および通信端末 | |
KR101612475B1 (ko) | 가십 기반의 p2p 서비스의 파트너쉽 형성 방법 및 장치 | |
JP2009230369A (ja) | 共有データの同期方法、共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステム | |
JP4815547B2 (ja) | データ同期システム、データ同期方法、及び同期管理サーバ | |
JP4958611B2 (ja) | 通信装置、ネットワークシステム、通信方法、及びプログラム | |
JP2009163549A (ja) | ネットワークシステム、共有データの同期方法およびプログラム | |
JP2011124710A (ja) | 接続先選択装置、接続先選択方法 | |
JP2005252596A (ja) | 物理的信頼度を用いたp2pネットワーク構成方法及び接続状態管理装置 | |
JP2009230686A (ja) | コンテンツ管理サーバ及びコンテンツ管理プログラム | |
JP3853697B2 (ja) | 無線通信システム及び無線管理装置並びに収容装置選定方法及びプログラム | |
JP5673268B2 (ja) | 通信装置、およびプログラム | |
JP2009230207A (ja) | 共有データの同期方法、共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステム | |
JP2004295652A (ja) | 分散処理システム、情報処理装置、分散処理支援装置、及び制御プログラム | |
JP2016004505A (ja) | 情報配信システム、情報配信方法、通信装置、及び、コンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110405 |