(57)【特許請求の範囲】
【請求項１】
ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有装置であって、
他の機器とのデータ転送を行うデータ転送手段と、
データのレプリカの登録及び参照するレプリカ登録・参照手段とを備え、
前記サービスグループ内の機器で新規データが作成された場合、前記レプリカ登録・参照手段で、前記新規データのレプリカを作成して、前記サービスグループ内の前記新規データを保持する機器以外の機器に登録して保持するとき、前記サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定することを特徴とするデータ共有装置。
【請求項２】
データ転送を一旦バッファリングするバッファと、
該バッファの監視及び判定を行なうバッファ監視・判定手段とを備え、
前記バッファ監視・判定手段は、データ転送中のバッファのバッファ量を監視し、前記バッファのアンダーフローにより、データ転送が滞ったら、同じデータを保持する別の機器に切り換えてデータ転送を再開することを特徴とする請求項１記載のデータ共有装置。
【請求項３】
前記データ転送手段は、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なうことを特徴とする請求項１又は２記載のデータ共有装置。
【請求項４】
規定されたデータコピー可能回数以上になる場合はデータ転送はできないため、データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断することを特徴とする請求項１〜３のいずれかに記載のデータ共有装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、最近急速に伸びているデジタルデータを扱った記憶装置、パソコン（ＰＣ）、サーバ、セットトップボックスなど特定用途用、コンシューマ用に限らずデジタルコンテンツを扱う広い範囲で利用することができる。
【０００２】
最近、パソコンが普及し、高速ＬＡＮ（Locl Area Network ）１００Ｍｂｐｓは当たり前で、１Ｇｂｐｓの速度を持つイーサネット（Ｅｔｈｅｒｎｅｔ）コントローラも手軽に手に入る価格帯になってきた。また家庭においてもネットワークインフラが整いはじめ、ＩＳＤＮ（Integrated Services Digital Network ）で６４ＫｂｐｓからＡＤＳＬ（Asymmetric Digital Subscriber Line）で１Ｍｂｐｓ、最近ではＦＴＴＨ（Fiber To The Home ）で１００Ｍｂｐｓ程度の回線速度が家庭で得られる時代がやってきた。
【０００３】
しかしながら、このようなネットワークインフラが整ってきたにも関わらず、ソフトウェアの構成は依然として従来型のクライアントモデルでの情報ネットワーク化が主流である。最近、サーバを必要としないピア・トゥ・ピアモデルのネットワーク共有の技術が注目されているが、ダイナミックなモデルであるが故に安定した共有ができない問題点があった。
【０００４】
本発明では、ピア・トゥ・ピアモデルでありながら安定したネットワーク共有を実現するものである。
【０００５】
【従来の技術】
従来のデータ共有の形態として、クライアント・サーバモデル（以下，クラサバモデル）による情報共有システムがあった。ウインドウズ（Ｗｉｎｄｏｗｓ）ネットワークによりファイル共有やＵＮＩＸ（ユニックス）によりＮＦＳ（Network File System ）などが有名である。しかし一般的にサーバは高い負荷に耐えれる高性能ＣＰＵ（Central Processing Unit ）とＩ/ Ｏ（Input-Output）スペックを持つことが要求され高価であった。また管理も複雑で熟練した管理者が必要であった。クライアントとサーバとの通信が何らかの理由で途絶えたら（最悪クラッシュ）、クライアントは全てのサービスを停止され無力であった。
【０００６】
近年、従来型のクラサバモデルと異なり、高価なサーバや熟練した管理者が必要なく、またネットワークに自由に参加、脱退（ＰＣの電源ＯＮ、ＯＦＦ）可能なダイナミックなネットワークモデル（ピア・トゥ・ピア）が注目されている。音楽配信で有名なＮａｐｓｔｅｒ（ナプスタ）やＧｎｕｔｅｌｌａ（グヌーテラ）がその例である。しかしながらピア・トゥ・ピアモデルでは、ダイナミックな通信モデルが基本であるが故に、ある特定のピアから目的のデータを検索した後、ダウンロードを開始した途中で送信元のピア（例えばＰＣ）との通信が突然途絶え（例えばルータが電源ＯＦＦ、ＰＣ自体がシャットダウン）、正常なファイルコピーが行われないことがしばしばあった。
【０００７】
図２８は従来例の説明図である。図２８において、ＰＣ等の機器であるピアＡ、ピアＢ、ピアＣがネットワークで接続されている。ピアＡには、制御部１１、データ転送部１２、データ検索・判定部１３、通信部１６が設けてある。このデータ検索・判定部１３で、検索するデータを通信部１６より各ピアＢ、Ｃに検索依頼し、ピアＢにデータを見つけたら、ピアＢからデータをダウンロードする。
【０００８】
このような、近年注目されているピア・トゥ・ピア（以下、Ｐ２Ｐ）では、クラサバモデルと違い、ピア間の通信が保証されていない。例えばデータ（圧縮方式の規格であるＭＰ３等）のダウンロード途中で送信元のピアＢ（例えばＰＣ）との通信が突然途絶える（ルータが電源ＯＦＦ、又はＰＣ自体がシャットダウン）ことがしばしばあった。
【０００９】
ダウンロードが途中で強制終了した場合は、以下に示す方法で救済することが考えられた。
【００１０】
▲１▼  同じピアから再実行（単純再実行、通信復旧時再実行）
▲２▼  他ピアを探して再実行（データを持つ他ピアがない場合もあるが、バックアップの存在もあった）
ＮａｐｓｔｅｒやＧｎｕｔｅｌｌａは、上記▲１▼、▲２▼の方法を取る。Ｎａｐｓｔｅｒはデータの所在だけはサーバが管理。実体（データ）は各ピアにある。Ｇｎｕｔｅｌｌａはデータの所在、実体（データ）も各ピア。完全なＰ２Ｐであった。
【００１１】
【発明が解決しようとする課題】
上記従来のものは、次のような課題があった。
【００１２】
（１）：ダウンロードが途中で強制終了した場合、前記▲１▼の同じピアから再実行（単純再実行、通信復旧時再実行）では、同じピアが即実行可能な状態に復帰しない場合があった。例えばピアがダウンロード途中にシャットダウンされたり、ブルースクリーン（復旧不可能な画面等）が出てパソコンが即起動できない状態に陥ってしまう場合である。この場合は、ある特定の時間を待っても再度実行可能にならず、この方法自体が実行できなかった。
【００１３】
（２）：前記▲２▼の他ピアを探して再実行（データを持つ他ピアがない場合もあるが、バックアップの存在もあった）では、他ピアを探すことは可能であるが、必ずしも目的のデータが他のピアに存在することが保証されていないので、見つからない場合があった。特に人気があったり、よく使用されるデータであれば存在する可能性が高いが、そうではない場合は、特定のピアにだけ存在する場合があった。このような場合は、この方法自体が実行不可能であった。
【００１４】
本発明では、上記に係る問題に鑑み、検索を確実に行えるようにする仕込みを作成するものである。即ち、サービスを受けるための共有化グループ（サービスグループ）を作成し、このグループ内での新規データの作成時に必ずレプリカも作成する。そして、データ検索後のダウンロード途中に終了した場合は、他ピアが自動でサービスを引継ぐ仕組みを設け、ユーザの利便性を高めることを目的とする。
【００１５】
【課題を解決するための手段】
図１は本発明の原理説明図であり、図１（ａ）はネットワークの説明、図１（ｂ）はデータ共有装置の説明である。図１中、１〜３は機器（ピアＡ〜Ｃ）、１０はデータ共有装置、１１ａは制御手段、１２ａはデータ転送手段、１３ａはデータ検索・判定手段、１４ａはレプリカ登録・参照手段、１５ａはバッファ監視・判定手段である。
【００１６】
本発明は、前記従来の課題を解決するため次のような手段を有する。
【００１７】
（１）：ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有装置であって、他の機器とのデータ転送を行うデータ転送手段１２ａと、データのレプリカの登録及び参照するレプリカ登録・参照手段１４ａとを備え、前記サービスグループ内の機器で新規データが作成された場合、前記レプリカ登録・参照手段１４ａで、前記新規データのレプリカを作成して登録する。このため、ネットワーク上に接続する複数の機器上にレプリカを作成し、データに冗長性をもたせ、ある特定の機器からデータの検索後、見つかった機器からのダウンロードの途中で通信不能に陥った場合に、他の機器からダウンロードを再開できる。また、特定の機器がクラッシュしても他の機器にある自分のレプリカデータからデータを復旧することができる。
【００１８】
（２）：前記（１）のデータ共有装置において、データ転送を一旦バッファリングするバッファと、該バッファの監視及び判定を行なうバッファ監視・判定手段１５ａとを備え、前記バッファ監視・判定手段１５ａは、データ転送中のバッファのバッファ量を監視し、データ転送が滞ったら、別の機器に切り換えてデータ転送を再開する。このため、転送バッファの量が通信に滞りがおこる量まで下がった場合は、次のダウンロード元にその旨通知し、ダウンロードを滞りなく継続することができる。
【００１９】
（３）：前記（１）又は（２）のデータ共有装置において、前記データ転送手段１２ａは、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なう。このため、ダウンロード時間を短縮することができる。
【００２０】
（４）：前記（１）又は（２）又は（３）のデータ共有装置において、データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断する。このため、コピー可能回数を制限して、コピーの増加を防止することができる。
【００２１】
（５）：前記（１）又は（２）のデータ共有装置において、前記サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定する。このため、機器での保有レプリカサイズの小さいものを優先させて選択することで各機器でのレプリカのサイズバランスをとり効率のよいデータ共有を行うことができる。
【００２２】
【発明の実施の形態】
本発明では，以下の手順で安定なネットワーク共有を実現するものである。
【００２３】
▲１▼  サービスグループをダイナミックに形成（ピア・トゥ・ピアベースの１対１通信を複数回行うかマルチキャスト（１対多）通信）する。
【００２４】
▲２▼  新規データがピアの何処かで作成すると複数のピアにレプリカを作る（他ピアでの存在を保証）。
【００２５】
▲３▼  データの検索はサービスグループ内で行われ、最も通信速度が速いピアからダウンロードする。
【００２６】
▲４▼  ダウンロードが中断した場合は、自動的に次に通信速度が速いピアからデータ途中から再開する。
【００２７】
▲５▼  データのダウンロード時は、いったんネットワーク上のバッファを通し、データの流れを監視する。
【００２８】
上記のことを実現するピア・トゥ・ピアでのデータ共有方法について次に詳しく記述する。
【００２９】
（１）：全体ブロックの説明
図２は全体ブロック図であり、図２（ａ）はＰ２Ｐネットワーク全体の構成の説明である。図２（ａ）において、ＰＣ等の機器であるピアＡ、ピアＢ、ピアＣ、ピアＤ、ピアＥの各ピアがネットワークで接続されている。ここでピアＡはデータ転送依頼元、ピアＤはレプリカを保有するデータのダウンロード元である。また、ピアＥはダウンロード時にバッファ的にダウンロード元とダウンロード先の間にはいりバッファになるもので、転送の状況を把握するために設けられるものである。
【００３０】
図２（ｂ）は各ピア内の構成の説明である。図２（ｂ）において、各ピア内には、制御部１１、データ転送部１２、データ検索・判定部１３、レプリカ登録・参照部１４、バッファ監視・判定部１５、通信部１６が設けてある。制御部１１は、全体の制御を行うものである。データ転送部１２は、データ転送の制御を行うものである。データ検索・判定部１３は、データの検索及び検索結果の判定を行うものである。レプリカ登録・参照部１４は、レプリカの複製であるレプリカの登録及び参照を行うものである。バッファ監視・判定部１５は、データ転送を一旦バッファリングする転送バッファの監視及び判定を行うものである。通信部１６は、ピア間の通信を行うものである。
【００３１】
特定のピアがデータ転送を依頼する場合、特定のピア（ここではピアＡ）から検索要求が全てのピアに対して発行される。ヒットしたピアの中で特定のピア（ここではピアＤ）が選択される。選択されたピアは、バッファ（ここではピアＥ）を経由して依頼元のピアにデータが転送される。
【００３２】
従来のデータ転送部１２、データ検索・判定部１３に加えて、レプリカ登録・参照部１４とバッファ監視・判定部１５を新たに加えている。レプリカは、新規データ作成時に他ピアに作成されるもので、ピアＥ（バッファ）は、ダウンロード時にバッファ的にダウンロード元とダウンロード先の間にはいるＰ２Ｐバッファになるもので、転送の状況を把握するために設けられている。
【００３３】
▲１▼：データ転送部の説明
データ転送部１２では、検索にヒットしたデータのダウンロード転送を管理するデータ転送手段である。
【００３４】
図３はデータ転送部の説明図である。図３において、データ転送部１２には、データ転送制御部２１、管理部２２、世代管理部２３、転送部２４が設けてある。データ転送制御部２１は、他ピアと通信部１６を介して行うデータ転送の制御を行うものである。管理部２２は、世代管理部２３及び転送部２４等の管理を行うものである。世代管理部２３は、コピー回数の管理を行うものである。転送部２４は、データ転送を行うものである。
【００３５】
▲２▼：データ検索・判定部の説明
データ検索・判定部１３は、検索するデータを検索依頼し、各ピアから戻ってきた応答に対し、時間やレプリカリストの内容を見て、どのピアからダウンロードするかを判定するデータ検索・判定手段である。
【００３６】
図４はデータ検索・判定部の説明図である。図４において、データ検索・判定部１３には、データ検索・判定制御部３１、管理部３２、検索結果判定部３３、検索部３４が設けてある。データ検索・判定制御部３１は、データ検索及び判定の制御を行うものである。管理部３２は、検索結果判定部３３及び検索部３４の管理を行うものである。検索結果判定部３３は、検索部３４で検索するデータを検索依頼し、各ピアから戻ってきた応答に対し、時間やレプリカリストの内容（例えば、保有するレプリカサイズ等）を見て、どのピアからダウンロードするかを判定するものである。検索部３４は、検索するデータを各ピアに検索依頼するものである。
【００３７】
▲３▼：レプリカ登録・参照部の説明
レプリカ登録・参照部１４は、レプリカの作成要求を受けると、３つのリストファイルを管理しながら、レプリカを作成するレプリカ登録・参照手段である。この３つのリストには、レプリカの全体サイズ、レプリカの数を管理するレプリカリスト、サービスグループを管理するグループリスト、データのコピー世代とオリジナルのピアを管理する世代管理リストとからなる。
【００３８】
図５はレプリカ登録・参照部の説明図である。図５において、レプリカ登録・参照部１４には、レプリカ登録・参照制御部４１、レプリカ管理部４２、レプリカ検索部４３、レプリカ作成部４４、リスト４５が設けてある。リスト４５には、レプリカリスト４６、グループリスト４７、世代管理リスト４８が設けてある。
【００３９】
レプリカ登録・参照制御部４１は、レプリカの登録・参照の制御を行うものである。レプリカ管理部４２は、レプリカ検索部４３、レプリカ作成部４４及びリストファイル４５の管理を行うものである。レプリカ検索部４３は、レプリカの検索を行うものである。レプリカ作成部４４は、レプリカの作成を行うものである。リスト４５は、蓄積媒体、例えばハードディスク（ＨＤＤ）６０に格納される３つのリストを持つものである。レプリカリスト４６は、レプリカの全体サイズ、レプリカの数を管理するものである。グループリスト４７は、サービスグループを管理するものである。世代管理リスト４８は、データのコピー世代とオリジナルのピアを管理するものである。
【００４０】
▲４▼：バッファ監視・判定部の説明
バッファ監視・判定部１５は、通信が滞りなく行われているかを確認するために設けられ、Ｐ２Ｐのバッファの流れがスムーズであるか（滞っていないか、アンダーフローしていないか）を確認するＰ２Ｐ監視部と結果によって次のピアにダウンロード元をスイッチするＰ２Ｐバッファ判定部からなるバッファ監視・判定手段である。
【００４１】
図６はバッファ監視・判定部の説明図である。図６において、バッファ監視・判定部１５には、バッファ監視・判定制御部５１、Ｐ２Ｐバッファ管理部５２、Ｐ２Ｐ監視部５３、Ｐ２Ｐバッファ判定部５４が設けてある。
【００４２】
バッファ監視・判定制御部５１は、Ｐ２Ｐバッファの監視・判定の制御を行うものである。Ｐ２Ｐバッファ管理部５２は、Ｐ２Ｐ監視部５３及びＰ２Ｐバッファ判定部５４の管理を行うものである。Ｐ２Ｐ監視部５３は、Ｐ２Ｐのバッファ（ＨＤＤ６０）の流れがスムーズであるかを確認するものである。Ｐ２Ｐバッファ判定部５４は、Ｐ２Ｐバッファ（ＨＤＤ６０）の監視結果によって次のピアにダウンロード元をスイッチするものである。
【００４３】
▲５▼：ＨＤＤの中身の説明
図７はＨＤＤの中身の説明図である。図７において、ＨＤＤ６０の中身には、リストファイル６１、レプリカ（データ）６２、Ｐ２Ｐバッファ６３の３種類のデータおよびリストがある。リストファイル６１は、図５で詳細に示すように３つのリスト（レプリカリスト４６、グループリスト４７、世代管理リスト４８）領域がある。レプリカ（データ）６２は、オリジナルのデータ及びレプリカのデータを保持する領域である。Ｐ２Ｐバッファ６３は、データ転送を一旦バッファリングする転送バッファ領域である。
【００４４】
（２）：サービスグループの変更の説明
▲１▼：サービスグループの説明
図８はサービスグループの説明図であり、図８（ａ）は論理的なネットワークの説明である。図８（ａ）において、ピアＡ〜ピアＦまでのグループを構成している。各ピアＡ〜ピアＦは、論理的なネットワーク（ＬＡＮ）で接続されている。
【００４５】
図８（ｂ）は物理的なネットワークの説明である。図８（ｂ）において、ピアＢは、ピアＡ、ピアＣ、ピアＤ、ピアＥと接続され、また、ピアＤはピアＦと接続されている。サービスグループは、論理的なもので、物理的なネットワークは、回線が途切れた場合などに関連する。図８（ｂ）でピアＢとピアＤの回線が途切れた場合ピアＦもピアＤ以外との接続が途切れることになる。
【００４６】
▲２▼：サービスグループの変更（追加）の説明
図９はサービスグループの変更（追加）の説明図であり、図９（ａ）はサービスグループが２の場合の説明である。図９（ａ）において、サービスグループが２の場合（ピアＢのＩＰ（Internet Protocol ）アドレスが「203.139.XXX.12」、ピアＣのＩＰアドレスが「203.139.XXX.10」）。ピアＢとピアＣはサービスグループを作成するときに、互いに自分自身のＩＰアドレスを交換する。それをグループリスト４７に登録する。例えば、ピアＢのグループリスト４７にはピアＣのＩＰアドレス「203.139.XXX.12」が保持される。
【００４７】
図９（ｂ）はピアＢとピアＣのグループにピアＥが参加する場合の説明である。図９（ｂ）において、ＩＰアドレス「203.139.XXX.13」のピアＥが、図９（ａ）のサービスグループに参加した図である。ピアＥが新に参加する場合、ピアＢのＩＰアドレスを知っていれば参加でき、ピアＢに参加の意思を伝える。ピアＢからグループリストをもらう。ピアＢは、ピアＥがあらたに参加したことを他の全てのグループに参加しているピアに通達する。ここでは、ピアＣのみ。これにより例えば、ピアＢのグループリスト４７には、ピアＣとピアＥのＩＰアドレス「203.139.XXX.12」と「203.139.XXX.13」が保持される。
【００４８】
図１０はサービスグループの参加処理フローチャートである。図１０は図９（ｂ）の状況をフローチャートに示したものである。以下、図１０の処理Ｓ１〜Ｓ３に従って説明する。
【００４９】
Ｓ１：ネットワークに接続されたピアＥが、サービスグループに既に参加しているピアＢに対して参加要求の通知を行なう。
【００５０】
Ｓ２：ピアＥから参加通知を受けたピアＢは、サービスグループの参加ピア（ここではピアＣ）に通達する。
【００５１】
Ｓ３：各ピア（ピアＢ、Ｃ、Ｅ）でグループリスト４７の更新を行いこの処理を終了する。
【００５２】
図１１はサービスグループの脱退処理フローチャートである。図１０の参加と同じ方法で更新する。以下、図１１の処理Ｓ１１〜Ｓ１２に従って説明する。
【００５３】
Ｓ１１：ネットワークに接続されたピア（脱退希望ピア）が、サービスグループに既に参加しているピアに対して脱退の通知を行なう。ピアから脱退受付の通知を受けたら脱退完了。（または、通知を受けたピアが、サービスグループの参加ピアに通達することもできる。）
Ｓ１２：サービスグループの各ピアは、グループリスト４７の更新を行いこの処理を終了する。
【００５４】
▲３▼：各ピアで保持するリストの説明
図１２は各ピアで保持するリスト（１）の説明図である。図１２において、ＩＰアドレス「203.139.XXX.10」のピアＢが、ＩＰアドレス「203.139.XXX.15」のピアＡとＩＰアドレス「203.139.XXX.12」のピアＣとＩＰアドレス「203.139.XXX.16」のピアＤと接続されている。各ピアは、リスト４５を保持しており、各リスト４５には、レプリカリスト４６とグループリスト４７がある。例えば、ピアＢのレプリカリスト４６は、レプリカの全体サイズとレプリカの数を保持している。このレプリカリスト４６は、レプリカを作成する場合の情報として用いる。グループリスト４７は、レプリカを作成するグループを保持するために用いる各ピア（Ａ、Ｃ、Ｄ）のアドレス（ＩＰアドレス「203.139.XXX.15」、「203.139.XXX.12」、「203.139.XXX.16」）を保持する。
【００５５】
図１３は各ピアで保持するリスト（２）の説明図である。図１３において、ピアＢが、ピアＡとピアＣとピアＤと接続されている。各ピアは、リスト４５を保持しており、リスト４５には、図１２のレプリカリスト４６とグループリスト４７に加え、世代管理リスト４８が保持されている。例えば、ピアＢの世代管理リスト４８は、レプリカを作成する場合のオリジナルのピア（Ａ、Ｂ、・・）。データファイル名（a.mpg 、b.mpg 、・・）、それとコピーを管理するためのコピー回数（１、２、・・）を保持する。自分自身でオリジナルを持っている場合も世代管理リストは同様な構成になる。オリジナルピアが自分自身のピア（ピアＢ）になる。他ピアにレプリカを作成した場合は、レプリカ作成終了通知を受けて、コピー回数をインクリメントする。レプリカ作成側と同期を取る。
【００５６】
（３）：レプリカの作成と検索の説明
図１４はレプリカの作成と検索の説明図であり、図１４（ａ）はピアＢで新規データを作成した場合の説明である。図１４（ａ）において、ピアＢで新規データを作成し、レプリカの作成をピアＡとピアＤで行う。作成先は、レプリカリストを確認してから行う（例えば、全体サイズが小さいピアの確認）。
【００５７】
図１４（ｂ）は検索とダウンロードの説明である。図１４（ｂ）において、検索とダウンロードを行う。ダウンロード先は、検索結果をもらったあとに、ＰＩＮＧ（ピングコマンド）の反応時間か、又は１Ｋバイト程度の小さいデータを通信して転送時間を確認して速度の速いピアからダウンロードする。図１４（ｂ）では、検索元のピアはＥで、ピアＢからダウンロードしている。
【００５８】
図１５はレプリカ作成処理フローチャート（１）である。図１５では、どこかのピアでデータを新規作成した場合のフローである。コピー世代の管理はしない。新規データを作成すると、グループリストを参照し、各ピアからレプリカリストをもらう。レプリカのサイズがバランスするようにレプリカの数Ｎ（任意で１個以上）だけのピアを選択する。選択したピアに対してレプリカ作成依頼を行い、各ピアでそれを受けてレプリカを作成する。そして、各ピアで各種リストを更新する。ピアの一部の電源が落ちている場合は、電源がおちている装置からの応答が返ってこないだけで、システム上問題ない。以下、図１５の処理Ｓ２１〜Ｓ２７に従って説明する。
【００５９】
Ｓ２１：サービスグループのどこかのピアで、データを新規作成し、処理Ｓ２２に移る。
【００６０】
Ｓ２２：新規データを作成したピアは、グループリスト４７を参照し、処理Ｓ２３に移る。
【００６１】
Ｓ２３：新規データを作成したピアは、グループリスト４７の各ピアからレプリカリスト４６を受信し、処理Ｓ２４に移る。
【００６２】
Ｓ２４：新規データを作成したピアは、受信したレプリカリスト４６から全体サイズの小さいピアをＮ個選択し、処理Ｓ２５に移る。
【００６３】
Ｓ２５：新規データを作成したピアは、選択したＮ個のピアにレプリカの作成を依頼し、処理Ｓ２６に移る。
【００６４】
Ｓ２６：レプリカの作成の依頼を受けたピアは、レプリカの作成を行い、処理Ｓ２７に移る。
【００６５】
Ｓ２７：各ピアは、各種リストを更新し、この処理を終了する。
【００６６】
図１６はレプリカ作成処理フローチャート（２）である。図１６では、どこかのピアでデータを新規作成した場合のフローである。コピー世代を管理してレプリカを作成するかどうかを決める。新規データを作成すると、グループリストを参照し、各ピアからレプリカリストをもらう。レプリカのサイズがバランスするようにレプリカの数Ｎ（任意で１個以上）だけのピアを選択する。選択したピアに対してレプリカ作成依頼を行う。しかし、コピー回数が規定回数以外であればレプリカの作成を拒否する。コピー回数が規定回数以内であれば、各ピアでそれを受けてレプリカを作成する。各ピアで各種リストを更新する。コピー回数の同期は、レプリカ作成をシーケンシャルに行なうことで、各ピアで同期を取る。自分自身のデータのレプリカ作成時には、必ず終了通知を受け、オリジナルノードのコピー回数をインクリメントする。規定回数を超えたらレプリカの作成ができなくなる。例えば、レプリカを作成したピアの電源がおちている場合でもオリジナルの世代管理リストにコピー回数が書き込まれているので、コピーが許可回数以上に増えることはない。ピアの一部の電源が落ちている場合は、電源がおちている装置からの応答が返ってこないだけで、システム上問題ない。以下、図１６の処理Ｓ３１〜Ｓ３９に従って説明する。
【００６７】
Ｓ３１：サービスグループのどこかのピアで、データを新規作成し、処理Ｓ３２に移る。
【００６８】
Ｓ３２：新規データを作成したピアは、グループリスト４７を参照し、処理Ｓ３３に移る。
【００６９】
Ｓ３３：新規データを作成したピアは、グループリスト４７の各ピアからレプリカリスト４６を受信し、処理Ｓ３４に移る。
【００７０】
Ｓ３４：新規データを作成したピアは、受信したレプリカリスト４６から全体サイズの小さいピアをＮ個選択し、処理Ｓ３５に移る。
【００７１】
Ｓ３５：新規データを作成したピアは、選択したＮ個のピアにレプリカの作成を依頼し、処理Ｓ３６に移る。
【００７２】
Ｓ３６：レプリカ作成依頼側（新規データを作成したピア）は、世代管理リストのコピー回数をチェックし、処理Ｓ３７に移る。
【００７３】
Ｓ３７：レプリカ作成依頼側は、コピー回数が許可回数より小さいかどうか判断する。この判断でコピー回数が許可回数より小さい場合は処理Ｓ３８に移り、もし、小さくない場合はレプリカ作成を禁止しこの処理を終了する。
【００７４】
Ｓ３８：レプリカの作成の依頼を受けたピアは、レプリカの作成を行い、処理Ｓ３９に移る。
【００７５】
Ｓ３９：各ピアは、各種リストを更新し、この処理を終了する。
【００７６】
図１７は新規データとレプリカの両方を他ピアで作成するフローチャートである。図１７では、新規作成データを自分のピアでなく、ほかのピアで保持する場合を示している。例えば、ピアＡの格納場所が一杯になった場合（まだ余裕がある場合でも可能とする）、自分のディスクが全くない場合も実現できる。また自分のＨＤＤがある場合でも自分のＨＤＤが容量不足で、サービスグループのほかのピアに容量があまっている場合は、データを作成することができる。以下、図１７の処理Ｓ４１〜Ｓ４８に従って説明する。
【００７７】
Ｓ４１：ピアＡで、新規データを作成し、処理Ｓ４２に移る。
【００７８】
Ｓ４２：新規データを作成したピアＡは、自分の格納領域が一杯のとき、処理Ｓ４３に移る（なお、この処理ブロックは省略することができる）。
【００７９】
Ｓ４３：新規データを作成したピアＡは、グループリスト４７を参照し、処理Ｓ４４に移る。
【００８０】
Ｓ４４：新規データを作成したピアＡは、各ピアからレプリカリスト４６を受信し、処理Ｓ４５に移る。
【００８１】
Ｓ４５：新規データを作成したピアＡは、受信したレプリカリスト４６から全体サイズの小さいピアをＮ個選択し、処理Ｓ４６に移る。
【００８２】
Ｓ４６：新規データを作成したピアＡは、選択したピアにオリジナル＋レプリカの作成を依頼し、処理Ｓ４７に移る。
【００８３】
Ｓ４７：レプリカ作成を依頼されたピアは、レプリカの作成を行い、処理Ｓ４８に移る（依頼されたＮ個のピアのいずれかのピアがオリジナルを保持することになる）。
【００８４】
Ｓ４８：各ピアは、各種リストを更新し、この処理を終了する。
【００８５】
（４）：あるピアがクラッシュした場合の説明
図１８はあるピアがクラッシュした場合の説明図である。図１８において、×で示したピアＣがクラッシュした場合を示している。Ｃがクラッシュした場合、他のピア（Ａ、Ｂ、Ｄ）からデータを復旧することになる。
【００８６】
図１９はあるピアがクラッシュした場合のフローチャートである。図１９では、あるピアがクラッシュ、もしくはデータが読めなくなった場合、他ピアからデータ復旧するフローチャートである。例えば、ピアＣがクラッシュしＨＤＤを交換し、再立ち上げが行われた場合、再度サービスグループに参加しようとする。参加した場合、ＩＰアドレスが同じであるか、ＧＵＩＤ（Global Unit ID）で同一ピアが参加したと認識する（この場合、グループリスト４７にＧＵＩＤも保持する必要がある）。ここで新規に最初から参加するか、データの復旧をするかを選択できる。新規の場合は、通常新規参加と変わらず。復旧を選択した場合は、各ピアからデータを集めて復旧する。各ピアの持つ世代管理リストからピアＣのデータをもっているピアから順次データをコピーバックし、データを復旧する。なお、ＧＵＩＤは、一意なＩＤで、例えばＥｔｈｅｒカードのＭＡＣアドレス（Ｅｔｈｅｒｎｅｔボードの持つハードウェアアドレスで全世界で一つのアドレスとなる）がある、他に１２８ビットのランダムな値を自動生成する場合がある。
以下、図１９の処理Ｓ５１〜Ｓ５８に従って説明する。
【００８７】
Ｓ５１：ピアＣがクラッシュした場合、処理Ｓ５２に移る。
【００８８】
Ｓ５２：ピアＣの再立ち上げ（ＨＤＤにデータなし）を行い、処理Ｓ５３に移る。
【００８９】
Ｓ５３：再立ち上げを行ったピアＣは、サービスグループ（既存参加者のピア）に参加を伝え、処理Ｓ５４に移る。
【００９０】
Ｓ５４：サービスグループに参加を伝えられたピアは、ＧＵＩＤを参照して、処理Ｓ５５に移る。
【００９１】
Ｓ５５：サービスグループに参加を伝えられたピアは、参加を希望する再立ち上げを行ったピアＣを、既存グループ員として認識し、ピアＣにデータを復旧するかどうか判断させる。この判断で、既存グループ員としてデータを復旧する場合は処理Ｓ５６に移り、復旧しない場合はこの処理を終了する。
【００９２】
Ｓ５６：サービスグループに参加を伝えられたピア（又はピアＣ）は、サービスグループのピアに通達し、ピアＣのファイルを持っているかを聞き、処理Ｓ５７に移る。
【００９３】
Ｓ５７：サービスグループに参加を伝えられたピア（又はピアＣ）は、ピアＣのファイルを持っている各ピアから順番にピアＣにコピーバックし、処理Ｓ５８に移る。
【００９４】
Ｓ５８：サービスグループに参加を伝えられたピア（又はピアＣ）は、全てのコピーが終了したか判断する。この判断で、全てのコピーが終了した場合はこの処理を終了し、コピーが終了していない場合は処理Ｓ５７に戻る。
【００９５】
（５）：データ検索方法の説明
目的のデータを検索する場合、各ピアに対し、データが存在するかどうかを確認する。データがある場合は、答えが戻る。ない場合は、答えはない。通信速度の速いピアを見つけるには、ＰＩＮＧの応答を見るか、データサイズの小さいダミーデータをダウンロードし通信速度を計測する。転送速度の速いピアからデータをダウンロードすると効率が良い。ダウンロードが途中で滞ったかどうかの判断は、図２１と図２２で示す２つの方法が考えられる。図２０はデータ検索処理フローチャートである。以下、図２０の処理Ｓ６１〜Ｓ７０に従って説明する。
【００９６】
Ｓ６１：データ検索を行うピアは、グループリスト４７を参照して、処理Ｓ６２に移る。
【００９７】
Ｓ６２：データ検索を行うピアは、検索条件（例えば、データファイル名a.mpg ）を通達して検索を行い、処理Ｓ６３に移る。
【００９８】
Ｓ６３：データ検索を行ったピアは、Ｎ個のピアから検索ヒットを受けると、処理Ｓ６４に移り、ヒットなしの場合はこの処理を終了する。
【００９９】
Ｓ６４：データ検索を行うピアは、ヒットしたＮ個のピアに対し、１Ｋバイト程度のデータを受信し通信速度を計り（もしくはＰＩＮＧの応答速度時間を見て）、処理Ｓ６５に移る。
【０１００】
Ｓ６５：データ検索を行ったピアは、ダウンロード先のランキングリストを作り（速度順）、処理Ｓ６６に移る。
【０１０１】
Ｓ６６：データ検索を行ったピアは、上位Ｎ個について、通信路を開いておき、処理Ｓ６７に移る。
【０１０２】
Ｓ６７：データ検索を行ったピアは、転送速度の速いピアからデータのダウンロードを開始し、処理Ｓ６８に移る。
【０１０３】
Ｓ６８：ダウンロード側のピア（又は２Ｐ２バッファを持つピア、又は次のランキングのピア）は、正常ダウンロードかどうか判断する。この判断で、正常ダウンロードの場合はこの処理を終了し、正常でない場合（途中で止まる（タイムアウト））は処理Ｓ６９に移る。
【０１０４】
Ｓ６９：ダウンロード側のピア（又は２Ｐ２バッファを持つピア、又は次のランキングのピア）は、次の候補（次に転送速度の速いピア）を選択し、処理Ｓ７０に移る。
【０１０５】
Ｓ７０：ダウンロード側のピア（又は２Ｐ２バッファを持つピア、又は次のランキングのピア）は、選択した次の候補がないかどうか判断する。この判断で、次の候補がない場合はこの処理を終了し、ある場合は処理Ｓ６７に戻る。
【０１０６】
▲１▼：ダウンロード側でタイムアウト判断する場合の説明
ダウンロード正常終了の判断方法（１）は、ダウンロード側でタイムアウト判断（ダウンロードが途中で止まったと判断）する方法である。ダウンロードが途中で止まった場合の通信の途絶えた時間をある特定の時間で計測し、その時間が過ぎた場合とする（タイムアウト）。ダウンロードの要求元は、タイムアウトを認識し、次のピアからのダウンロードを再度行う。図２１はダウンロード正常終了の判断方法（１）のフローチャートである。以下、図２１の処理Ｓ７１〜Ｓ７５に従って説明する。
【０１０７】
Ｓ７１：ダウンロード側のピアは、ダウンロードを開始し、処理Ｓ７２に移る。
【０１０８】
Ｓ７２：ダウンロード側のピアは、データ転送が継続しているかどうか判断する。この判断で、データ転送が継続している場合は処理Ｓ７１に戻り、継続していない場合は処理Ｓ７３に移る。
【０１０９】
Ｓ７３：ダウンロード側のピアは、データ転送完了かどうか判断する。この判断で、データ転送完了の場合はこの処理を終了し、完了でない場合は処理Ｓ７４に移る。
【０１１０】
Ｓ７４：ダウンロード側のピアは、タイムアウトかどうか判断する。この判断で、タイムアウトの場合は処理Ｓ７５に移り、タイムアウトでない場合は処理Ｓ７１に戻る。
【０１１１】
Ｓ７５：ダウンロード側のピアは、次候補ピアに転送開始依頼を行い、この処理を終了する。
【０１１２】
▲２▼：ダウンロード正常終了をＰ２Ｐバッファを用いて判断する場合の説明
ダウンロード正常終了の判断方法（２）の（ａ）は、Ｐ２Ｐバッファを持つピアが監視し次ピアに通達、（ｂ）は、次候補が監視し自分でスイッチするものである。Ｐ２Ｐバッファは、通信のバッファ的な役割をする。Ｐ２Ｐバッファは、各ピアのどこかにある。バッファのアンダーフロー（データの供給が滞る）を監視し、アンダーフローが起こりそうになったら、次の転送元にスイッチする。Ｐ２Ｐバッファは、ピアのどこかになる。Ｐ２Ｐバッファを監視するのは、Ｐ２Ｐバッファがあるピアの場合と次のダウンロード候補ピアの場合がある。
【０１１３】
図２２はダウンロード正常終了の判断方法（２）のフローチャートであり、図２２（ａ）はＰ２Ｐバッファをもつピアが監視する場合の説明である。以下、図２２（ａ）の処理Ｓ８１〜Ｓ８４に従って説明する。
【０１１４】
Ｓ８１：Ｐ２Ｐバッファをもつピアは、定期的にＰ２Ｐバッファ量を監視し、処理Ｓ８２に移る。
【０１１５】
Ｓ８２：Ｐ２Ｐバッファをもつピアは、データ転送が終了したかどうか判断する。この判断で、データ転送が終了している場合はこの処理を終了し、終了していない場合は処理Ｓ８３に移る。
【０１１６】
Ｓ８３：Ｐ２Ｐバッファをもつピアは、アンダーフローかどうか判断する。この判断で、アンダーフローの場合は処理Ｓ８４に移り、アンダーフローでない場合は処理Ｓ８１に戻る。
【０１１７】
Ｓ８４：Ｐ２Ｐバッファをもつピアは、次候補ピアに通信をスイッチし、この処理を終了する。
【０１１８】
図２２（ｂ）は次候補ピアが監視し自分でスイッチする場合の説明である。以下、図２２（ｂ）の処理Ｓ９１〜Ｓ９４に従って説明する。
【０１１９】
Ｓ９１：次候補のピアは、定期的にＰ２Ｐバッファ量を監視し、処理Ｓ９２に移る。
【０１２０】
Ｓ９２：次候補のピアは、データ転送が終了したかどうか判断する。この判断で、データ転送が終了している場合はこの処理を終了し、終了していない場合は処理Ｓ９３に移る。
【０１２１】
Ｓ９３：次候補のピアは、アンダーフローかどうか判断する。この判断で、アンダーフローの場合は処理Ｓ９４に移り、アンダーフローでない場合は処理Ｓ９１に戻る。
【０１２２】
Ｓ９４：次候補のピアは、通信を自分にスイッチし、この処理を終了する。
【０１２３】
このように、次候補のピアが監視するので、アンダーフローと判断した場合、直ぐにデータを送ることができる。
【０１２４】
（６）：ダウンロードの説明
図２３はピアＡからピアＤへのダウンロードの説明図である。図２３において、サービスグループを構成するピアＡ〜ピアＦがネットワークで接続されている。Ｐ２Ｐバッファは実際には各ピアに置かれるものでる。図２３では、Ｐ２Ｐバッファを含めた構成（Ａ→Ｄへのダウンロード）を示している。ピアＡからピアＤへのダウンロードがピアＢのＰ２Ｐバッファを経由している様子を示している。Ｐ２Ｐバッファは、一つのピアのどこかに存在し、実際には図のようにはならず、どこかのピアを経由することになる。
【０１２５】
図２４はＰ２Ｐバッファを用いたダウンロード元のスイッチの説明図である。図２４において、Ｐ２Ｐバッファ６３は、ピアＢに置かれており、ピアＡからピアＤへのダウンロードを示している。また、バッファ量（斜線部分）は、ピアＢ又は次候補ピアＣが監視する。
【０１２６】
即ち、図２２と対応しており、ピアＡがデータの供給元（ダウンロードデータの供給元）で、ピアＤがダウンロードを要求した側である。つまりＰ２Ｐバッファ６３へのデータの供給元は、ピアＡであり、Ｐ２Ｐバッファ６３のデータ消費ピアがピアＤである。Ｐ２Ｐバッファ６３は、ピアＢにある例を示している。ダウンロードの次候補は、ピアＣである。斜線で示している部分が、データの量であり、転送の終了前に斜線の部分がなくなってしまうとデータがアンダーフローしたことになる。アンダーフローを起こす前（バッファ量がある量以下の前）に次の候補ピアＣにスイッチする。アンダーフローを監視するのは、次候補ピアＣ（図２２（ａ）のフロー）かＰ２Ｐバッファを持つピアＢ（図２２（ｂ）のフロー）となる。
【０１２７】
（７）：データ通信の説明
図２５は通信インタフェースの説明図である。図２５において、クライアントサーバ間の通信であり、ＵＮＩＸで使用されるソケットインタフェースでの例を示している。ソケットインタフェースでは、通信は大きく分けて３つのフェーズがある。▲１▼コネクション接続フェーズ、▲２▼データ転送フェーズ、そして▲３▼コネクション開放フェーズである。コネクション接続フェーズ▲１▼には、エンドポイントを作成しソケット記述子を返す「socket()」、ソケット名前をつける「bind」、接続完了「listen()」、サーバが接続を待つ「accept()」、接続待ち「connect() 」がある。データ転送フェーズ▲２▼には、リード「read()」、ライト「write() 」がある。コネクション開放フェーズ▲３▼には、クローズソケット「closesocket() 」がある。
【０１２８】
本実施の形態でダウンロード途中で通信が途切れた場合に、即他のピアとの通信が開始できるように、コネクション接続フェーズ▲１▼までは終了させておきデータ転送フェーズ▲２▼に即移行できるようにしておく。
【０１２９】
図２６はファイアウォールの場合での通信の説明図である。図２６において、ピアＡ〜ピアＤ、ピアＦはインターネットで接続されており、ローカルアドレスを持つピアＥとピアＤはＮＡＴ機能を介して接続されている。この例では、ピアＤからルータ等のＮＡＴ機能を介してピアＥにダウンロードしている。このように、ダウンロード元もしくは、ダウンロード先のどちらか一方がファイアウォール元であった場合は、通信ができる。両方の場合はできない。最近ルータなどで利用されるＮＡＴ（The IP Network Address Translator ）機能を用いる。本来インターネットでは利用できないＩＰアドレス( ローカルアドレス) しか持たないパソコン（ＰＣ）でも、インターネット接続が行える。
【０１３０】
つまり、ＮＡＴ機能では、インターネット（外界のネットワーク）に接続可能なグローバルアドレスと、ファイアウォール内でしか使用できないローカルアドレスの変換を行なってくれる。ＮＡＴ機能をもったルータの下に複数代端末が接続しても、１台分のグローバルアドレスで接続できる。
【０１３１】
（８）：デジタルデータ共有装置の説明
図２７はデジタルデータ共有装置の説明図である。図２７において、デジタルデータ共有装置は、ネットワークで接続された機器間でデータ共有を行なうネットワーク共有装置である。デジタルデータ共有装置には、ＣＰＵブロック７１、ネットワークブロック７２、メモリブロック７３、インタフェースブロック７４、大容量蓄積ブロック７５が設けてある。
【０１３２】
ＣＰＵブロック７１は、全体を制御するものである。ネットワークブロック７２は、他装置と通信するためのものである。メモリブロック７３は、制御プログラムを格納するためのものである。インタフェースブロック７４は、ユーザからの要求を受けるものである。大容量蓄積ブロック７５は、レプリカや通信バッファを保持するもの（ＨＤＤやＤＶＤ、ＭＯ等）である。
【０１３３】
デジタルデータ共有装置では、新規データが作成された場合、ネットワーク上に接続する複数の他の機器（デジタルデータ共有装置）上にレプリカを作成依頼あるいは依頼を受け付けるものである。
【０１３４】
（９）：プログラムインストールの説明
制御手段１１ａ、制御部１１、データ転送手段１２ａ、データ転送部１２、データ検索・判定手段１３ａ、データ検索・判定部１３、レプリカ登録・参照手段１４ａ、レプリカ登録・参照部１４、バッファ監視・判定手段１５ａ、バッファ監視・判定部１５、通信部１６等は、プログラムで構成でき、主制御部（ＣＰＵ）が実行するものであり、主記憶に格納されているものである。このプログラムは、一般的な、コンピュータで処理されるものである。このコンピュータは、主制御部、主記憶（メモリブロック）、ファイル装置、表示装置、キーボード等の入力手段である入力装置などのハードウェアで構成されている。
【０１３５】
このコンピュータに、本発明のプログラムをインストールする。このインストールは、フロッピィ、光磁気ディスク等の可搬型の記録（記憶）媒体に、これらのプログラムを記憶させておき、コンピュータが備えている記録媒体に対して、アクセスするためのドライブ装置を介して、或いは、ＬＡＮ等のネットワークを介して、コンピュータに設けられたファイル装置にインストールされる。そして、このファイル装置から処理に必要なプログラムステップを主記憶に読み出し、主制御部が実行するものである。このプログラムをコンピュータにインストールすることで、ダウンロードの途中で通信不能に陥った場合に、他の機器からダウンロードを再開できるデータ共有装置を容易に提供することができる。
【０１３６】
以上、説明したように、本実施の形態で次のような効果がある。
【０１３７】
▲１▼  サービスグループをダイナミックに形成（ピア・トゥ・ピアベースの１対１通信を複数回行うかマルチキャスト（１対多）通信）する。
【０１３８】
これにより、データを共有するグループを形成することにより、自分以外の保持するデータ蓄積媒体を共有することが可能となる。またグループ外のピアからのアクセスを拒否するセキュリティを持つことができる。通達するべき相手を特定することができ、ネットワーク上に無駄なトラフィックを増やさない。
【０１３９】
▲２▼  新規データがピアの何処かで作成すると複数のピアにレプリカを作る（他ピアでの存在を保証）。
【０１４０】
これにより、データに冗長性を持たせ、複数のピアに同じデータがあることを保証できる。１ピアが通信不能でも他ピアが通信可能であればデータをダウンロードできる。特定のピアがクラッシュした場合は、他のピアにある自分のレプリカデータから自分のＨＤＤの復旧をすることができる。
【０１４１】
▲３▼  データの検索はサービスグループ内で行われ、最も通信速度が速いピアからダウンロードする。
【０１４２】
これにより、複数のピアに目的のデータがあることが保証されているので、複数のピアのどこからダウンロードするかを選択することができる。もっとも通信速度の速いピアを選択でき、データのダウンロード時間を節約できる可能性がある。レプリカは複数のピアに存在することが保証されているので、ダウンロード元に複数のピアを指定しての並列ダウンロードも可能である。
【０１４３】
▲４▼  ダウンロードが中断した場合は、自動的に次に通信速度が速いピアからデータ途中から再開する。
【０１４４】
これにより、複数のピアが同じデータを持つことを保証しているので、ひとつのピアの通信が途絶えた場合は、すぐに他のピアに変更することができる。一番目のピアを選ぶときに、通信速度を全てのピアで計測していれば、一番速いピアの通信が途絶えた場合は、次に速いピアをすぐ探すことができる。どこまでデータをダウンロードしたかをデータサイズで覚えておけば、他ピアに移行した場合も、途中から再開でき、全体のダウンロード時間をダウンロード元のピアを変更したとはいえ、増大させることがない。通常のバックアップの構成でも他ピアからダウンロードを行なうようなシステムも考えられるが、本発明では、通信路の途中にバッファ（Ｐ２Ｐバッファ）を設けて、通信をバッファ経由させ、バッファ量を監視し、バッファが少なくなったら他ピアにシームレスに移行させることができる。
【０１４５】
▲５▼  データのダウンロード時は、いったんネットワーク上のバッファを通し、データの流れを監視する。
【０１４６】
これにより、ダウンロードをネットワークバッファを通して実現することにより、ダウンロードの滞りを素早く検知することが可能となる。ダウンロード元のピアが何らかの原因で通信継続不能になった場合も、ダウンロード受け側に知られずに（タイムラグなしに）、ダウンロード元をスイッチすることが可能になる。つまり、シームレスな連携が可能になる。
【０１４７】
〔以下付記を記載する〕
（付記１）  ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有装置であって、
他の機器とのデータ転送を行うデータ転送手段と、
データのレプリカの登録及び参照するレプリカ登録・参照手段とを備え、
前記サービスグループ内の機器で新規データが作成された場合、前記レプリカ登録・参照手段で、前記新規データのレプリカを作成して登録することを特徴としたデータ共有装置。
【０１４８】
（付記２）  前記データ転送手段は、ダウンロードの途中で通信不能になった場合、別の機器に切り換えてダウンロードを再開することを特徴とする付記１記載のデータ共有装置。
【０１４９】
（付記３）  データ転送を一旦バッファリングするバッファと、
該バッファの監視及び判定を行なうバッファ監視・判定手段とを備え、
前記バッファ監視・判定手段は、データ転送中のバッファのバッファ量を監視し、データ転送が滞ったら、別の機器に切り換えてデータ転送を再開することを特徴とする付記１記載のデータ共有装置。
【０１５０】
（付記４）  バッファ量を監視する前記バッファ監視・判定手段は、前記データ転送が滞った場合に切り換えてデータ転送を再開する次の候補の機器又は前記バッファを持つ機器に備えることを特徴とした付記３記載のデータ共有装置。
【０１５１】
（付記５）  前記レプリカの登録場所及び前記バッファの場所は、各装置で保持しているリストに基づいてネットワークに接続された前記サービスグループ内の機器のどこかに置くことを特徴とした付記３記載のデータ共有装置。
【０１５２】
（付記６）  他の装置から前記サービスグループに参加あるいは脱退する旨の通知を受けたとき、グループリストに基づいて他の全ての参加者にその旨通知して前記グループリストを互いに更新することを特徴とする付記１〜４のいずれかに記載のデータ共有装置。
【０１５３】
（付記７）  前記データ転送手段は、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なうことを特徴とする付記１〜５のいずれかに記載のデータ共有装置。
【０１５４】
（付記８）  データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断することを特徴とする付記１〜５のいずれかに記載のデータ共有装置。
【０１５５】
（付記９）  前記サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定することを特徴とする付記１〜５のいずれかに記載のデータ共有装置。
【０１５６】
（付記１０）  ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有手段と、
他の機器とのデータ転送を行うデータ転送手段と、
前記サービスグループ内の機器で新規データが作成された場合、該新規データのレプリカを作成して登録するレプリカ登録・参照手段として、コンピュータを機能させるためのプログラム又はプログラムを記録したコンピュータ読取可能な記録媒体。
【０１５７】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
【０１５８】
（１）：サービスグループ内の機器で新規データが作成された場合、レプリカ登録・参照手段で、前記新規データのレプリカを作成して登録するため、ネットワーク上に接続する複数の機器上にレプリカを作成し、データに冗長性をもたせ、ある特定の機器からデータの検索後、見つかった機器からのダウンロードの途中で通信不能に陥った場合に、他の機器からダウンロードを再開でき、また、特定の機器がクラッシュしても他の機器にある自分のレプリカデータからデータを復旧することができる。
【０１５９】
（２）：バッファ監視・判定手段で、データ転送中のバッファのバッファ量を監視し、データ転送が滞ったら、別の機器に切り換えてデータ転送を再開するため、次のダウンロード元にその旨通知し、ダウンロードを滞りなく継続することができる。
【０１６０】
（３）：データ転送手段１２ａで、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なうため、ダウンロード時間を短縮することができる。
【０１６１】
（４）：データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断するため、コピー可能回数を制限して、コピーの増加を防止することができる。
【０１６２】
（５）：サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定するため、機器での保有レプリカサイズの小さいものを優先させて選択して各機器でのレプリカのサイズバランスをとり効率のよいデータ共有を行うことができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】実施の形態における全体ブロック図である。
【図３】実施の形態におけるデータ転送部の説明図である。
【図４】実施の形態におけるデータ検索・判定部の説明図である。
【図５】実施の形態におけるレプリカ登録・参照部の説明図である。
【図６】実施の形態におけるバッファ監視・判定部の説明図である。
【図７】実施の形態におけるＨＤＤの中身の説明図である。
【図８】実施の形態におけるサービスグループの説明図である。
【図９】実施の形態におけるサービスグループの変更（追加）の説明図である。
【図１０】実施の形態におけるサービスグループの参加処理フローチャートである。
【図１１】実施の形態におけるサービスグループの脱退処理フローチャートである。
【図１２】実施の形態における各ピアで保持するリスト（１）の説明図である。
【図１３】実施の形態における各ピアで保持するリスト（２）の説明図である。
【図１４】実施の形態におけるレプリカの作成と検索の説明図である。
【図１５】実施の形態におけるレプリカ作成処理フローチャート（１）である。
【図１６】実施の形態におけるレプリカ作成処理フローチャート（２）である。
【図１７】実施の形態における新規データとレプリカの両方を他ピアで作成するフローチャートである。
【図１８】実施の形態におけるあるピアがクラッシュした場合の説明図である。
【図１９】実施の形態におけるあるピアがクラッシュした場合のフローチャートである。
【図２０】実施の形態におけるデータ検索処理フローチャートである。
【図２１】実施の形態におけるダウンロード正常終了の判断方法（１）のフローチャートである。
【図２２】実施の形態におけるダウンロード正常終了の判断方法（２）のフローチャートである。
【図２３】実施の形態におけるピアＡからピアＤへのダウンロードの説明図である。
【図２４】実施の形態におけるＰ２Ｐバッファを用いたダウンロード元のスイッチの説明図である。
【図２５】実施の形態における通信インタフェースの説明図である。
【図２６】実施の形態におけるファイアウォールの場合での通信の説明図である。
【図２７】実施の形態におけるデジタルデータ共有装置の説明図である。
【図２８】従来例の説明図である。
【符号の説明】
１〜３  機器（ピアＡ〜Ｃ）
１０  データ共有装置
１１ａ  制御手段
１２ａ  データ転送手段
１３ａ  データ検索・判定手段
１４ａ  レプリカ登録・参照手段
１５ａ  バッファ監視・判定手段
【図１】
0004658412.tif 000002
【図２】
0004658412.tif 000003
【図３】
0004658412.tif 000004
【図４】
0004658412.tif 000005
【図５】
0004658412.tif 000006
【図６】
0004658412.tif 000007
【図７】
0004658412.tif 000008
【図８】
0004658412.tif 000009
【図９】
0004658412.tif 000010
【図１０】
0004658412.tif 000011
【図１１】
0004658412.tif 000012
【図１２】
0004658412.tif 000013
【図１３】
0004658412.tif 000014
【図１４】
0004658412.tif 000015
【図１５】
0004658412.tif 000016
【図１６】
0004658412.tif 000017
【図１７】
0004658412.tif 000018
【図１８】
0004658412.tif 000019
【図１９】
0004658412.tif 000020
【図２０】
0004658412.tif 000021
【図２１】
0004658412.tif 000022
【図２２】
0004658412.tif 000023
【図２３】
0004658412.tif 000024
【図２４】
0004658412.tif 000025
【図２５】
0004658412.tif 000026
【図２６】
0004658412.tif 000027
【図２７】
0004658412.tif 000028
【図２８】
0004658412.tif 000029