JP4658412B2 - Data sharing device - Google Patents

Data sharing device Download PDF

Info

Publication number
JP4658412B2
JP4658412B2 JP2001286041A JP2001286041A JP4658412B2 JP 4658412 B2 JP4658412 B2 JP 4658412B2 JP 2001286041 A JP2001286041 A JP 2001286041A JP 2001286041 A JP2001286041 A JP 2001286041A JP 4658412 B2 JP4658412 B2 JP 4658412B2
Authority
JP
Japan
Prior art keywords
data
peer
replica
buffer
download
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.)
Expired - Fee Related
Application number
JP2001286041A
Other languages
Japanese (ja)
Other versions
JP2003099337A (en
Inventor
泰彦 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001286041A priority Critical patent/JP4658412B2/en
Publication of JP2003099337A publication Critical patent/JP2003099337A/en
Application granted granted Critical
Publication of JP4658412B2 publication Critical patent/JP4658412B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、最近急速に伸びているデジタルデータを扱った記憶装置、パソコン(PC)、サーバ、セットトップボックスなど特定用途用、コンシューマ用に限らずデジタルコンテンツを扱う広い範囲で利用することができる。
【0002】
最近、パソコンが普及し、高速LAN(Locl Area Network )100Mbpsは当たり前で、1Gbpsの速度を持つイーサネット(Ethernet)コントローラも手軽に手に入る価格帯になってきた。また家庭においてもネットワークインフラが整いはじめ、ISDN(Integrated Services Digital Network )で64KbpsからADSL(Asymmetric Digital Subscriber Line)で1Mbps、最近ではFTTH(Fiber To The Home )で100Mbps程度の回線速度が家庭で得られる時代がやってきた。
【0003】
しかしながら、このようなネットワークインフラが整ってきたにも関わらず、ソフトウェアの構成は依然として従来型のクライアントモデルでの情報ネットワーク化が主流である。最近、サーバを必要としないピア・トゥ・ピアモデルのネットワーク共有の技術が注目されているが、ダイナミックなモデルであるが故に安定した共有ができない問題点があった。
【0004】
本発明では、ピア・トゥ・ピアモデルでありながら安定したネットワーク共有を実現するものである。
【0005】
【従来の技術】
従来のデータ共有の形態として、クライアント・サーバモデル(以下,クラサバモデル)による情報共有システムがあった。ウインドウズ(Windows)ネットワークによりファイル共有やUNIX(ユニックス)によりNFS(Network File System )などが有名である。しかし一般的にサーバは高い負荷に耐えれる高性能CPU(Central Processing Unit )とI/ O(Input-Output)スペックを持つことが要求され高価であった。また管理も複雑で熟練した管理者が必要であった。クライアントとサーバとの通信が何らかの理由で途絶えたら(最悪クラッシュ)、クライアントは全てのサービスを停止され無力であった。
【0006】
近年、従来型のクラサバモデルと異なり、高価なサーバや熟練した管理者が必要なく、またネットワークに自由に参加、脱退(PCの電源ON、OFF)可能なダイナミックなネットワークモデル(ピア・トゥ・ピア)が注目されている。音楽配信で有名なNapster(ナプスタ)やGnutella(グヌーテラ)がその例である。しかしながらピア・トゥ・ピアモデルでは、ダイナミックな通信モデルが基本であるが故に、ある特定のピアから目的のデータを検索した後、ダウンロードを開始した途中で送信元のピア(例えばPC)との通信が突然途絶え(例えばルータが電源OFF、PC自体がシャットダウン)、正常なファイルコピーが行われないことがしばしばあった。
【0007】
図28は従来例の説明図である。図28において、PC等の機器であるピアA、ピアB、ピアCがネットワークで接続されている。ピアAには、制御部11、データ転送部12、データ検索・判定部13、通信部16が設けてある。このデータ検索・判定部13で、検索するデータを通信部16より各ピアB、Cに検索依頼し、ピアBにデータを見つけたら、ピアBからデータをダウンロードする。
【0008】
このような、近年注目されているピア・トゥ・ピア(以下、P2P)では、クラサバモデルと違い、ピア間の通信が保証されていない。例えばデータ(圧縮方式の規格であるMP3等)のダウンロード途中で送信元のピアB(例えばPC)との通信が突然途絶える(ルータが電源OFF、又はPC自体がシャットダウン)ことがしばしばあった。
【0009】
ダウンロードが途中で強制終了した場合は、以下に示す方法で救済することが考えられた。
【0010】
▲1▼ 同じピアから再実行(単純再実行、通信復旧時再実行)
▲2▼ 他ピアを探して再実行(データを持つ他ピアがない場合もあるが、バックアップの存在もあった)
NapsterやGnutellaは、上記▲1▼、▲2▼の方法を取る。Napsterはデータの所在だけはサーバが管理。実体(データ)は各ピアにある。Gnutellaはデータの所在、実体(データ)も各ピア。完全なP2Pであった。
【0011】
【発明が解決しようとする課題】
上記従来のものは、次のような課題があった。
【0012】
(1):ダウンロードが途中で強制終了した場合、前記▲1▼の同じピアから再実行(単純再実行、通信復旧時再実行)では、同じピアが即実行可能な状態に復帰しない場合があった。例えばピアがダウンロード途中にシャットダウンされたり、ブルースクリーン(復旧不可能な画面等)が出てパソコンが即起動できない状態に陥ってしまう場合である。この場合は、ある特定の時間を待っても再度実行可能にならず、この方法自体が実行できなかった。
【0013】
(2):前記▲2▼の他ピアを探して再実行(データを持つ他ピアがない場合もあるが、バックアップの存在もあった)では、他ピアを探すことは可能であるが、必ずしも目的のデータが他のピアに存在することが保証されていないので、見つからない場合があった。特に人気があったり、よく使用されるデータであれば存在する可能性が高いが、そうではない場合は、特定のピアにだけ存在する場合があった。このような場合は、この方法自体が実行不可能であった。
【0014】
本発明では、上記に係る問題に鑑み、検索を確実に行えるようにする仕込みを作成するものである。即ち、サービスを受けるための共有化グループ(サービスグループ)を作成し、このグループ内での新規データの作成時に必ずレプリカも作成する。そして、データ検索後のダウンロード途中に終了した場合は、他ピアが自動でサービスを引継ぐ仕組みを設け、ユーザの利便性を高めることを目的とする。
【0015】
【課題を解決するための手段】
図1は本発明の原理説明図であり、図1(a)はネットワークの説明、図1(b)はデータ共有装置の説明である。図1中、1〜3は機器(ピアA〜C)、10はデータ共有装置、11aは制御手段、12aはデータ転送手段、13aはデータ検索・判定手段、14aはレプリカ登録・参照手段、15aはバッファ監視・判定手段である。
【0016】
本発明は、前記従来の課題を解決するため次のような手段を有する。
【0017】
(1):ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有装置であって、他の機器とのデータ転送を行うデータ転送手段12aと、データのレプリカの登録及び参照するレプリカ登録・参照手段14aとを備え、前記サービスグループ内の機器で新規データが作成された場合、前記レプリカ登録・参照手段14aで、前記新規データのレプリカを作成して登録する。このため、ネットワーク上に接続する複数の機器上にレプリカを作成し、データに冗長性をもたせ、ある特定の機器からデータの検索後、見つかった機器からのダウンロードの途中で通信不能に陥った場合に、他の機器からダウンロードを再開できる。また、特定の機器がクラッシュしても他の機器にある自分のレプリカデータからデータを復旧することができる。
【0018】
(2):前記(1)のデータ共有装置において、データ転送を一旦バッファリングするバッファと、該バッファの監視及び判定を行なうバッファ監視・判定手段15aとを備え、前記バッファ監視・判定手段15aは、データ転送中のバッファのバッファ量を監視し、データ転送が滞ったら、別の機器に切り換えてデータ転送を再開する。このため、転送バッファの量が通信に滞りがおこる量まで下がった場合は、次のダウンロード元にその旨通知し、ダウンロードを滞りなく継続することができる。
【0019】
(3):前記(1)又は(2)のデータ共有装置において、前記データ転送手段12aは、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なう。このため、ダウンロード時間を短縮することができる。
【0020】
(4):前記(1)又は(2)又は(3)のデータ共有装置において、データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断する。このため、コピー可能回数を制限して、コピーの増加を防止することができる。
【0021】
(5):前記(1)又は(2)のデータ共有装置において、前記サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定する。このため、機器での保有レプリカサイズの小さいものを優先させて選択することで各機器でのレプリカのサイズバランスをとり効率のよいデータ共有を行うことができる。
【0022】
【発明の実施の形態】
本発明では,以下の手順で安定なネットワーク共有を実現するものである。
【0023】
▲1▼ サービスグループをダイナミックに形成(ピア・トゥ・ピアベースの1対1通信を複数回行うかマルチキャスト(1対多)通信)する。
【0024】
▲2▼ 新規データがピアの何処かで作成すると複数のピアにレプリカを作る(他ピアでの存在を保証)。
【0025】
▲3▼ データの検索はサービスグループ内で行われ、最も通信速度が速いピアからダウンロードする。
【0026】
▲4▼ ダウンロードが中断した場合は、自動的に次に通信速度が速いピアからデータ途中から再開する。
【0027】
▲5▼ データのダウンロード時は、いったんネットワーク上のバッファを通し、データの流れを監視する。
【0028】
上記のことを実現するピア・トゥ・ピアでのデータ共有方法について次に詳しく記述する。
【0029】
(1):全体ブロックの説明
図2は全体ブロック図であり、図2(a)はP2Pネットワーク全体の構成の説明である。図2(a)において、PC等の機器であるピアA、ピアB、ピアC、ピアD、ピアEの各ピアがネットワークで接続されている。ここでピアAはデータ転送依頼元、ピアDはレプリカを保有するデータのダウンロード元である。また、ピアEはダウンロード時にバッファ的にダウンロード元とダウンロード先の間にはいりバッファになるもので、転送の状況を把握するために設けられるものである。
【0030】
図2(b)は各ピア内の構成の説明である。図2(b)において、各ピア内には、制御部11、データ転送部12、データ検索・判定部13、レプリカ登録・参照部14、バッファ監視・判定部15、通信部16が設けてある。制御部11は、全体の制御を行うものである。データ転送部12は、データ転送の制御を行うものである。データ検索・判定部13は、データの検索及び検索結果の判定を行うものである。レプリカ登録・参照部14は、レプリカの複製であるレプリカの登録及び参照を行うものである。バッファ監視・判定部15は、データ転送を一旦バッファリングする転送バッファの監視及び判定を行うものである。通信部16は、ピア間の通信を行うものである。
【0031】
特定のピアがデータ転送を依頼する場合、特定のピア(ここではピアA)から検索要求が全てのピアに対して発行される。ヒットしたピアの中で特定のピア(ここではピアD)が選択される。選択されたピアは、バッファ(ここではピアE)を経由して依頼元のピアにデータが転送される。
【0032】
従来のデータ転送部12、データ検索・判定部13に加えて、レプリカ登録・参照部14とバッファ監視・判定部15を新たに加えている。レプリカは、新規データ作成時に他ピアに作成されるもので、ピアE(バッファ)は、ダウンロード時にバッファ的にダウンロード元とダウンロード先の間にはいるP2Pバッファになるもので、転送の状況を把握するために設けられている。
【0033】
▲1▼:データ転送部の説明
データ転送部12では、検索にヒットしたデータのダウンロード転送を管理するデータ転送手段である。
【0034】
図3はデータ転送部の説明図である。図3において、データ転送部12には、データ転送制御部21、管理部22、世代管理部23、転送部24が設けてある。データ転送制御部21は、他ピアと通信部16を介して行うデータ転送の制御を行うものである。管理部22は、世代管理部23及び転送部24等の管理を行うものである。世代管理部23は、コピー回数の管理を行うものである。転送部24は、データ転送を行うものである。
【0035】
▲2▼:データ検索・判定部の説明
データ検索・判定部13は、検索するデータを検索依頼し、各ピアから戻ってきた応答に対し、時間やレプリカリストの内容を見て、どのピアからダウンロードするかを判定するデータ検索・判定手段である。
【0036】
図4はデータ検索・判定部の説明図である。図4において、データ検索・判定部13には、データ検索・判定制御部31、管理部32、検索結果判定部33、検索部34が設けてある。データ検索・判定制御部31は、データ検索及び判定の制御を行うものである。管理部32は、検索結果判定部33及び検索部34の管理を行うものである。検索結果判定部33は、検索部34で検索するデータを検索依頼し、各ピアから戻ってきた応答に対し、時間やレプリカリストの内容(例えば、保有するレプリカサイズ等)を見て、どのピアからダウンロードするかを判定するものである。検索部34は、検索するデータを各ピアに検索依頼するものである。
【0037】
▲3▼:レプリカ登録・参照部の説明
レプリカ登録・参照部14は、レプリカの作成要求を受けると、3つのリストファイルを管理しながら、レプリカを作成するレプリカ登録・参照手段である。この3つのリストには、レプリカの全体サイズ、レプリカの数を管理するレプリカリスト、サービスグループを管理するグループリスト、データのコピー世代とオリジナルのピアを管理する世代管理リストとからなる。
【0038】
図5はレプリカ登録・参照部の説明図である。図5において、レプリカ登録・参照部14には、レプリカ登録・参照制御部41、レプリカ管理部42、レプリカ検索部43、レプリカ作成部44、リスト45が設けてある。リスト45には、レプリカリスト46、グループリスト47、世代管理リスト48が設けてある。
【0039】
レプリカ登録・参照制御部41は、レプリカの登録・参照の制御を行うものである。レプリカ管理部42は、レプリカ検索部43、レプリカ作成部44及びリストファイル45の管理を行うものである。レプリカ検索部43は、レプリカの検索を行うものである。レプリカ作成部44は、レプリカの作成を行うものである。リスト45は、蓄積媒体、例えばハードディスク(HDD)60に格納される3つのリストを持つものである。レプリカリスト46は、レプリカの全体サイズ、レプリカの数を管理するものである。グループリスト47は、サービスグループを管理するものである。世代管理リスト48は、データのコピー世代とオリジナルのピアを管理するものである。
【0040】
▲4▼:バッファ監視・判定部の説明
バッファ監視・判定部15は、通信が滞りなく行われているかを確認するために設けられ、P2Pのバッファの流れがスムーズであるか(滞っていないか、アンダーフローしていないか)を確認するP2P監視部と結果によって次のピアにダウンロード元をスイッチするP2Pバッファ判定部からなるバッファ監視・判定手段である。
【0041】
図6はバッファ監視・判定部の説明図である。図6において、バッファ監視・判定部15には、バッファ監視・判定制御部51、P2Pバッファ管理部52、P2P監視部53、P2Pバッファ判定部54が設けてある。
【0042】
バッファ監視・判定制御部51は、P2Pバッファの監視・判定の制御を行うものである。P2Pバッファ管理部52は、P2P監視部53及びP2Pバッファ判定部54の管理を行うものである。P2P監視部53は、P2Pのバッファ(HDD60)の流れがスムーズであるかを確認するものである。P2Pバッファ判定部54は、P2Pバッファ(HDD60)の監視結果によって次のピアにダウンロード元をスイッチするものである。
【0043】
▲5▼:HDDの中身の説明
図7はHDDの中身の説明図である。図7において、HDD60の中身には、リストファイル61、レプリカ(データ)62、P2Pバッファ63の3種類のデータおよびリストがある。リストファイル61は、図5で詳細に示すように3つのリスト(レプリカリスト46、グループリスト47、世代管理リスト48)領域がある。レプリカ(データ)62は、オリジナルのデータ及びレプリカのデータを保持する領域である。P2Pバッファ63は、データ転送を一旦バッファリングする転送バッファ領域である。
【0044】
(2):サービスグループの変更の説明
▲1▼:サービスグループの説明
図8はサービスグループの説明図であり、図8(a)は論理的なネットワークの説明である。図8(a)において、ピアA〜ピアFまでのグループを構成している。各ピアA〜ピアFは、論理的なネットワーク(LAN)で接続されている。
【0045】
図8(b)は物理的なネットワークの説明である。図8(b)において、ピアBは、ピアA、ピアC、ピアD、ピアEと接続され、また、ピアDはピアFと接続されている。サービスグループは、論理的なもので、物理的なネットワークは、回線が途切れた場合などに関連する。図8(b)でピアBとピアDの回線が途切れた場合ピアFもピアD以外との接続が途切れることになる。
【0046】
▲2▼:サービスグループの変更(追加)の説明
図9はサービスグループの変更(追加)の説明図であり、図9(a)はサービスグループが2の場合の説明である。図9(a)において、サービスグループが2の場合(ピアBのIP(Internet Protocol )アドレスが「203.139.XXX.12」、ピアCのIPアドレスが「203.139.XXX.10」)。ピアBとピアCはサービスグループを作成するときに、互いに自分自身のIPアドレスを交換する。それをグループリスト47に登録する。例えば、ピアBのグループリスト47にはピアCのIPアドレス「203.139.XXX.12」が保持される。
【0047】
図9(b)はピアBとピアCのグループにピアEが参加する場合の説明である。図9(b)において、IPアドレス「203.139.XXX.13」のピアEが、図9(a)のサービスグループに参加した図である。ピアEが新に参加する場合、ピアBのIPアドレスを知っていれば参加でき、ピアBに参加の意思を伝える。ピアBからグループリストをもらう。ピアBは、ピアEがあらたに参加したことを他の全てのグループに参加しているピアに通達する。ここでは、ピアCのみ。これにより例えば、ピアBのグループリスト47には、ピアCとピアEのIPアドレス「203.139.XXX.12」と「203.139.XXX.13」が保持される。
【0048】
図10はサービスグループの参加処理フローチャートである。図10は図9(b)の状況をフローチャートに示したものである。以下、図10の処理S1〜S3に従って説明する。
【0049】
S1:ネットワークに接続されたピアEが、サービスグループに既に参加しているピアBに対して参加要求の通知を行なう。
【0050】
S2:ピアEから参加通知を受けたピアBは、サービスグループの参加ピア(ここではピアC)に通達する。
【0051】
S3:各ピア(ピアB、C、E)でグループリスト47の更新を行いこの処理を終了する。
【0052】
図11はサービスグループの脱退処理フローチャートである。図10の参加と同じ方法で更新する。以下、図11の処理S11〜S12に従って説明する。
【0053】
S11:ネットワークに接続されたピア(脱退希望ピア)が、サービスグループに既に参加しているピアに対して脱退の通知を行なう。ピアから脱退受付の通知を受けたら脱退完了。(または、通知を受けたピアが、サービスグループの参加ピアに通達することもできる。)
S12:サービスグループの各ピアは、グループリスト47の更新を行いこの処理を終了する。
【0054】
▲3▼:各ピアで保持するリストの説明
図12は各ピアで保持するリスト(1)の説明図である。図12において、IPアドレス「203.139.XXX.10」のピアBが、IPアドレス「203.139.XXX.15」のピアAとIPアドレス「203.139.XXX.12」のピアCとIPアドレス「203.139.XXX.16」のピアDと接続されている。各ピアは、リスト45を保持しており、各リスト45には、レプリカリスト46とグループリスト47がある。例えば、ピアBのレプリカリスト46は、レプリカの全体サイズとレプリカの数を保持している。このレプリカリスト46は、レプリカを作成する場合の情報として用いる。グループリスト47は、レプリカを作成するグループを保持するために用いる各ピア(A、C、D)のアドレス(IPアドレス「203.139.XXX.15」、「203.139.XXX.12」、「203.139.XXX.16」)を保持する。
【0055】
図13は各ピアで保持するリスト(2)の説明図である。図13において、ピアBが、ピアAとピアCとピアDと接続されている。各ピアは、リスト45を保持しており、リスト45には、図12のレプリカリスト46とグループリスト47に加え、世代管理リスト48が保持されている。例えば、ピアBの世代管理リスト48は、レプリカを作成する場合のオリジナルのピア(A、B、・・)。データファイル名(a.mpg 、b.mpg 、・・)、それとコピーを管理するためのコピー回数(1、2、・・)を保持する。自分自身でオリジナルを持っている場合も世代管理リストは同様な構成になる。オリジナルピアが自分自身のピア(ピアB)になる。他ピアにレプリカを作成した場合は、レプリカ作成終了通知を受けて、コピー回数をインクリメントする。レプリカ作成側と同期を取る。
【0056】
(3):レプリカの作成と検索の説明
図14はレプリカの作成と検索の説明図であり、図14(a)はピアBで新規データを作成した場合の説明である。図14(a)において、ピアBで新規データを作成し、レプリカの作成をピアAとピアDで行う。作成先は、レプリカリストを確認してから行う(例えば、全体サイズが小さいピアの確認)。
【0057】
図14(b)は検索とダウンロードの説明である。図14(b)において、検索とダウンロードを行う。ダウンロード先は、検索結果をもらったあとに、PING(ピングコマンド)の反応時間か、又は1Kバイト程度の小さいデータを通信して転送時間を確認して速度の速いピアからダウンロードする。図14(b)では、検索元のピアはEで、ピアBからダウンロードしている。
【0058】
図15はレプリカ作成処理フローチャート(1)である。図15では、どこかのピアでデータを新規作成した場合のフローである。コピー世代の管理はしない。新規データを作成すると、グループリストを参照し、各ピアからレプリカリストをもらう。レプリカのサイズがバランスするようにレプリカの数N(任意で1個以上)だけのピアを選択する。選択したピアに対してレプリカ作成依頼を行い、各ピアでそれを受けてレプリカを作成する。そして、各ピアで各種リストを更新する。ピアの一部の電源が落ちている場合は、電源がおちている装置からの応答が返ってこないだけで、システム上問題ない。以下、図15の処理S21〜S27に従って説明する。
【0059】
S21:サービスグループのどこかのピアで、データを新規作成し、処理S22に移る。
【0060】
S22:新規データを作成したピアは、グループリスト47を参照し、処理S23に移る。
【0061】
S23:新規データを作成したピアは、グループリスト47の各ピアからレプリカリスト46を受信し、処理S24に移る。
【0062】
S24:新規データを作成したピアは、受信したレプリカリスト46から全体サイズの小さいピアをN個選択し、処理S25に移る。
【0063】
S25:新規データを作成したピアは、選択したN個のピアにレプリカの作成を依頼し、処理S26に移る。
【0064】
S26:レプリカの作成の依頼を受けたピアは、レプリカの作成を行い、処理S27に移る。
【0065】
S27:各ピアは、各種リストを更新し、この処理を終了する。
【0066】
図16はレプリカ作成処理フローチャート(2)である。図16では、どこかのピアでデータを新規作成した場合のフローである。コピー世代を管理してレプリカを作成するかどうかを決める。新規データを作成すると、グループリストを参照し、各ピアからレプリカリストをもらう。レプリカのサイズがバランスするようにレプリカの数N(任意で1個以上)だけのピアを選択する。選択したピアに対してレプリカ作成依頼を行う。しかし、コピー回数が規定回数以外であればレプリカの作成を拒否する。コピー回数が規定回数以内であれば、各ピアでそれを受けてレプリカを作成する。各ピアで各種リストを更新する。コピー回数の同期は、レプリカ作成をシーケンシャルに行なうことで、各ピアで同期を取る。自分自身のデータのレプリカ作成時には、必ず終了通知を受け、オリジナルノードのコピー回数をインクリメントする。規定回数を超えたらレプリカの作成ができなくなる。例えば、レプリカを作成したピアの電源がおちている場合でもオリジナルの世代管理リストにコピー回数が書き込まれているので、コピーが許可回数以上に増えることはない。ピアの一部の電源が落ちている場合は、電源がおちている装置からの応答が返ってこないだけで、システム上問題ない。以下、図16の処理S31〜S39に従って説明する。
【0067】
S31:サービスグループのどこかのピアで、データを新規作成し、処理S32に移る。
【0068】
S32:新規データを作成したピアは、グループリスト47を参照し、処理S33に移る。
【0069】
S33:新規データを作成したピアは、グループリスト47の各ピアからレプリカリスト46を受信し、処理S34に移る。
【0070】
S34:新規データを作成したピアは、受信したレプリカリスト46から全体サイズの小さいピアをN個選択し、処理S35に移る。
【0071】
S35:新規データを作成したピアは、選択したN個のピアにレプリカの作成を依頼し、処理S36に移る。
【0072】
S36:レプリカ作成依頼側(新規データを作成したピア)は、世代管理リストのコピー回数をチェックし、処理S37に移る。
【0073】
S37:レプリカ作成依頼側は、コピー回数が許可回数より小さいかどうか判断する。この判断でコピー回数が許可回数より小さい場合は処理S38に移り、もし、小さくない場合はレプリカ作成を禁止しこの処理を終了する。
【0074】
S38:レプリカの作成の依頼を受けたピアは、レプリカの作成を行い、処理S39に移る。
【0075】
S39:各ピアは、各種リストを更新し、この処理を終了する。
【0076】
図17は新規データとレプリカの両方を他ピアで作成するフローチャートである。図17では、新規作成データを自分のピアでなく、ほかのピアで保持する場合を示している。例えば、ピアAの格納場所が一杯になった場合(まだ余裕がある場合でも可能とする)、自分のディスクが全くない場合も実現できる。また自分のHDDがある場合でも自分のHDDが容量不足で、サービスグループのほかのピアに容量があまっている場合は、データを作成することができる。以下、図17の処理S41〜S48に従って説明する。
【0077】
S41:ピアAで、新規データを作成し、処理S42に移る。
【0078】
S42:新規データを作成したピアAは、自分の格納領域が一杯のとき、処理S43に移る(なお、この処理ブロックは省略することができる)。
【0079】
S43:新規データを作成したピアAは、グループリスト47を参照し、処理S44に移る。
【0080】
S44:新規データを作成したピアAは、各ピアからレプリカリスト46を受信し、処理S45に移る。
【0081】
S45:新規データを作成したピアAは、受信したレプリカリスト46から全体サイズの小さいピアをN個選択し、処理S46に移る。
【0082】
S46:新規データを作成したピアAは、選択したピアにオリジナル+レプリカの作成を依頼し、処理S47に移る。
【0083】
S47:レプリカ作成を依頼されたピアは、レプリカの作成を行い、処理S48に移る(依頼されたN個のピアのいずれかのピアがオリジナルを保持することになる)。
【0084】
S48:各ピアは、各種リストを更新し、この処理を終了する。
【0085】
(4):あるピアがクラッシュした場合の説明
図18はあるピアがクラッシュした場合の説明図である。図18において、×で示したピアCがクラッシュした場合を示している。Cがクラッシュした場合、他のピア(A、B、D)からデータを復旧することになる。
【0086】
図19はあるピアがクラッシュした場合のフローチャートである。図19では、あるピアがクラッシュ、もしくはデータが読めなくなった場合、他ピアからデータ復旧するフローチャートである。例えば、ピアCがクラッシュしHDDを交換し、再立ち上げが行われた場合、再度サービスグループに参加しようとする。参加した場合、IPアドレスが同じであるか、GUID(Global Unit ID)で同一ピアが参加したと認識する(この場合、グループリスト47にGUIDも保持する必要がある)。ここで新規に最初から参加するか、データの復旧をするかを選択できる。新規の場合は、通常新規参加と変わらず。復旧を選択した場合は、各ピアからデータを集めて復旧する。各ピアの持つ世代管理リストからピアCのデータをもっているピアから順次データをコピーバックし、データを復旧する。なお、GUIDは、一意なIDで、例えばEtherカードのMACアドレス(Ethernetボードの持つハードウェアアドレスで全世界で一つのアドレスとなる)がある、他に128ビットのランダムな値を自動生成する場合がある。
以下、図19の処理S51〜S58に従って説明する。
【0087】
S51:ピアCがクラッシュした場合、処理S52に移る。
【0088】
S52:ピアCの再立ち上げ(HDDにデータなし)を行い、処理S53に移る。
【0089】
S53:再立ち上げを行ったピアCは、サービスグループ(既存参加者のピア)に参加を伝え、処理S54に移る。
【0090】
S54:サービスグループに参加を伝えられたピアは、GUIDを参照して、処理S55に移る。
【0091】
S55:サービスグループに参加を伝えられたピアは、参加を希望する再立ち上げを行ったピアCを、既存グループ員として認識し、ピアCにデータを復旧するかどうか判断させる。この判断で、既存グループ員としてデータを復旧する場合は処理S56に移り、復旧しない場合はこの処理を終了する。
【0092】
S56:サービスグループに参加を伝えられたピア(又はピアC)は、サービスグループのピアに通達し、ピアCのファイルを持っているかを聞き、処理S57に移る。
【0093】
S57:サービスグループに参加を伝えられたピア(又はピアC)は、ピアCのファイルを持っている各ピアから順番にピアCにコピーバックし、処理S58に移る。
【0094】
S58:サービスグループに参加を伝えられたピア(又はピアC)は、全てのコピーが終了したか判断する。この判断で、全てのコピーが終了した場合はこの処理を終了し、コピーが終了していない場合は処理S57に戻る。
【0095】
(5):データ検索方法の説明
目的のデータを検索する場合、各ピアに対し、データが存在するかどうかを確認する。データがある場合は、答えが戻る。ない場合は、答えはない。通信速度の速いピアを見つけるには、PINGの応答を見るか、データサイズの小さいダミーデータをダウンロードし通信速度を計測する。転送速度の速いピアからデータをダウンロードすると効率が良い。ダウンロードが途中で滞ったかどうかの判断は、図21と図22で示す2つの方法が考えられる。図20はデータ検索処理フローチャートである。以下、図20の処理S61〜S70に従って説明する。
【0096】
S61:データ検索を行うピアは、グループリスト47を参照して、処理S62に移る。
【0097】
S62:データ検索を行うピアは、検索条件(例えば、データファイル名a.mpg )を通達して検索を行い、処理S63に移る。
【0098】
S63:データ検索を行ったピアは、N個のピアから検索ヒットを受けると、処理S64に移り、ヒットなしの場合はこの処理を終了する。
【0099】
S64:データ検索を行うピアは、ヒットしたN個のピアに対し、1Kバイト程度のデータを受信し通信速度を計り(もしくはPINGの応答速度時間を見て)、処理S65に移る。
【0100】
S65:データ検索を行ったピアは、ダウンロード先のランキングリストを作り(速度順)、処理S66に移る。
【0101】
S66:データ検索を行ったピアは、上位N個について、通信路を開いておき、処理S67に移る。
【0102】
S67:データ検索を行ったピアは、転送速度の速いピアからデータのダウンロードを開始し、処理S68に移る。
【0103】
S68:ダウンロード側のピア(又は2P2バッファを持つピア、又は次のランキングのピア)は、正常ダウンロードかどうか判断する。この判断で、正常ダウンロードの場合はこの処理を終了し、正常でない場合(途中で止まる(タイムアウト))は処理S69に移る。
【0104】
S69:ダウンロード側のピア(又は2P2バッファを持つピア、又は次のランキングのピア)は、次の候補(次に転送速度の速いピア)を選択し、処理S70に移る。
【0105】
S70:ダウンロード側のピア(又は2P2バッファを持つピア、又は次のランキングのピア)は、選択した次の候補がないかどうか判断する。この判断で、次の候補がない場合はこの処理を終了し、ある場合は処理S67に戻る。
【0106】
▲1▼:ダウンロード側でタイムアウト判断する場合の説明
ダウンロード正常終了の判断方法(1)は、ダウンロード側でタイムアウト判断(ダウンロードが途中で止まったと判断)する方法である。ダウンロードが途中で止まった場合の通信の途絶えた時間をある特定の時間で計測し、その時間が過ぎた場合とする(タイムアウト)。ダウンロードの要求元は、タイムアウトを認識し、次のピアからのダウンロードを再度行う。図21はダウンロード正常終了の判断方法(1)のフローチャートである。以下、図21の処理S71〜S75に従って説明する。
【0107】
S71:ダウンロード側のピアは、ダウンロードを開始し、処理S72に移る。
【0108】
S72:ダウンロード側のピアは、データ転送が継続しているかどうか判断する。この判断で、データ転送が継続している場合は処理S71に戻り、継続していない場合は処理S73に移る。
【0109】
S73:ダウンロード側のピアは、データ転送完了かどうか判断する。この判断で、データ転送完了の場合はこの処理を終了し、完了でない場合は処理S74に移る。
【0110】
S74:ダウンロード側のピアは、タイムアウトかどうか判断する。この判断で、タイムアウトの場合は処理S75に移り、タイムアウトでない場合は処理S71に戻る。
【0111】
S75:ダウンロード側のピアは、次候補ピアに転送開始依頼を行い、この処理を終了する。
【0112】
▲2▼:ダウンロード正常終了をP2Pバッファを用いて判断する場合の説明
ダウンロード正常終了の判断方法(2)の(a)は、P2Pバッファを持つピアが監視し次ピアに通達、(b)は、次候補が監視し自分でスイッチするものである。P2Pバッファは、通信のバッファ的な役割をする。P2Pバッファは、各ピアのどこかにある。バッファのアンダーフロー(データの供給が滞る)を監視し、アンダーフローが起こりそうになったら、次の転送元にスイッチする。P2Pバッファは、ピアのどこかになる。P2Pバッファを監視するのは、P2Pバッファがあるピアの場合と次のダウンロード候補ピアの場合がある。
【0113】
図22はダウンロード正常終了の判断方法(2)のフローチャートであり、図22(a)はP2Pバッファをもつピアが監視する場合の説明である。以下、図22(a)の処理S81〜S84に従って説明する。
【0114】
S81:P2Pバッファをもつピアは、定期的にP2Pバッファ量を監視し、処理S82に移る。
【0115】
S82:P2Pバッファをもつピアは、データ転送が終了したかどうか判断する。この判断で、データ転送が終了している場合はこの処理を終了し、終了していない場合は処理S83に移る。
【0116】
S83:P2Pバッファをもつピアは、アンダーフローかどうか判断する。この判断で、アンダーフローの場合は処理S84に移り、アンダーフローでない場合は処理S81に戻る。
【0117】
S84:P2Pバッファをもつピアは、次候補ピアに通信をスイッチし、この処理を終了する。
【0118】
図22(b)は次候補ピアが監視し自分でスイッチする場合の説明である。以下、図22(b)の処理S91〜S94に従って説明する。
【0119】
S91:次候補のピアは、定期的にP2Pバッファ量を監視し、処理S92に移る。
【0120】
S92:次候補のピアは、データ転送が終了したかどうか判断する。この判断で、データ転送が終了している場合はこの処理を終了し、終了していない場合は処理S93に移る。
【0121】
S93:次候補のピアは、アンダーフローかどうか判断する。この判断で、アンダーフローの場合は処理S94に移り、アンダーフローでない場合は処理S91に戻る。
【0122】
S94:次候補のピアは、通信を自分にスイッチし、この処理を終了する。
【0123】
このように、次候補のピアが監視するので、アンダーフローと判断した場合、直ぐにデータを送ることができる。
【0124】
(6):ダウンロードの説明
図23はピアAからピアDへのダウンロードの説明図である。図23において、サービスグループを構成するピアA〜ピアFがネットワークで接続されている。P2Pバッファは実際には各ピアに置かれるものでる。図23では、P2Pバッファを含めた構成(A→Dへのダウンロード)を示している。ピアAからピアDへのダウンロードがピアBのP2Pバッファを経由している様子を示している。P2Pバッファは、一つのピアのどこかに存在し、実際には図のようにはならず、どこかのピアを経由することになる。
【0125】
図24はP2Pバッファを用いたダウンロード元のスイッチの説明図である。図24において、P2Pバッファ63は、ピアBに置かれており、ピアAからピアDへのダウンロードを示している。また、バッファ量(斜線部分)は、ピアB又は次候補ピアCが監視する。
【0126】
即ち、図22と対応しており、ピアAがデータの供給元(ダウンロードデータの供給元)で、ピアDがダウンロードを要求した側である。つまりP2Pバッファ63へのデータの供給元は、ピアAであり、P2Pバッファ63のデータ消費ピアがピアDである。P2Pバッファ63は、ピアBにある例を示している。ダウンロードの次候補は、ピアCである。斜線で示している部分が、データの量であり、転送の終了前に斜線の部分がなくなってしまうとデータがアンダーフローしたことになる。アンダーフローを起こす前(バッファ量がある量以下の前)に次の候補ピアCにスイッチする。アンダーフローを監視するのは、次候補ピアC(図22(a)のフロー)かP2Pバッファを持つピアB(図22(b)のフロー)となる。
【0127】
(7):データ通信の説明
図25は通信インタフェースの説明図である。図25において、クライアントサーバ間の通信であり、UNIXで使用されるソケットインタフェースでの例を示している。ソケットインタフェースでは、通信は大きく分けて3つのフェーズがある。▲1▼コネクション接続フェーズ、▲2▼データ転送フェーズ、そして▲3▼コネクション開放フェーズである。コネクション接続フェーズ▲1▼には、エンドポイントを作成しソケット記述子を返す「socket()」、ソケット名前をつける「bind」、接続完了「listen()」、サーバが接続を待つ「accept()」、接続待ち「connect() 」がある。データ転送フェーズ▲2▼には、リード「read()」、ライト「write() 」がある。コネクション開放フェーズ▲3▼には、クローズソケット「closesocket() 」がある。
【0128】
本実施の形態でダウンロード途中で通信が途切れた場合に、即他のピアとの通信が開始できるように、コネクション接続フェーズ▲1▼までは終了させておきデータ転送フェーズ▲2▼に即移行できるようにしておく。
【0129】
図26はファイアウォールの場合での通信の説明図である。図26において、ピアA〜ピアD、ピアFはインターネットで接続されており、ローカルアドレスを持つピアEとピアDはNAT機能を介して接続されている。この例では、ピアDからルータ等のNAT機能を介してピアEにダウンロードしている。このように、ダウンロード元もしくは、ダウンロード先のどちらか一方がファイアウォール元であった場合は、通信ができる。両方の場合はできない。最近ルータなどで利用されるNAT(The IP Network Address Translator )機能を用いる。本来インターネットでは利用できないIPアドレス( ローカルアドレス) しか持たないパソコン(PC)でも、インターネット接続が行える。
【0130】
つまり、NAT機能では、インターネット(外界のネットワーク)に接続可能なグローバルアドレスと、ファイアウォール内でしか使用できないローカルアドレスの変換を行なってくれる。NAT機能をもったルータの下に複数代端末が接続しても、1台分のグローバルアドレスで接続できる。
【0131】
(8):デジタルデータ共有装置の説明
図27はデジタルデータ共有装置の説明図である。図27において、デジタルデータ共有装置は、ネットワークで接続された機器間でデータ共有を行なうネットワーク共有装置である。デジタルデータ共有装置には、CPUブロック71、ネットワークブロック72、メモリブロック73、インタフェースブロック74、大容量蓄積ブロック75が設けてある。
【0132】
CPUブロック71は、全体を制御するものである。ネットワークブロック72は、他装置と通信するためのものである。メモリブロック73は、制御プログラムを格納するためのものである。インタフェースブロック74は、ユーザからの要求を受けるものである。大容量蓄積ブロック75は、レプリカや通信バッファを保持するもの(HDDやDVD、MO等)である。
【0133】
デジタルデータ共有装置では、新規データが作成された場合、ネットワーク上に接続する複数の他の機器(デジタルデータ共有装置)上にレプリカを作成依頼あるいは依頼を受け付けるものである。
【0134】
(9):プログラムインストールの説明
制御手段11a、制御部11、データ転送手段12a、データ転送部12、データ検索・判定手段13a、データ検索・判定部13、レプリカ登録・参照手段14a、レプリカ登録・参照部14、バッファ監視・判定手段15a、バッファ監視・判定部15、通信部16等は、プログラムで構成でき、主制御部(CPU)が実行するものであり、主記憶に格納されているものである。このプログラムは、一般的な、コンピュータで処理されるものである。このコンピュータは、主制御部、主記憶(メモリブロック)、ファイル装置、表示装置、キーボード等の入力手段である入力装置などのハードウェアで構成されている。
【0135】
このコンピュータに、本発明のプログラムをインストールする。このインストールは、フロッピィ、光磁気ディスク等の可搬型の記録(記憶)媒体に、これらのプログラムを記憶させておき、コンピュータが備えている記録媒体に対して、アクセスするためのドライブ装置を介して、或いは、LAN等のネットワークを介して、コンピュータに設けられたファイル装置にインストールされる。そして、このファイル装置から処理に必要なプログラムステップを主記憶に読み出し、主制御部が実行するものである。このプログラムをコンピュータにインストールすることで、ダウンロードの途中で通信不能に陥った場合に、他の機器からダウンロードを再開できるデータ共有装置を容易に提供することができる。
【0136】
以上、説明したように、本実施の形態で次のような効果がある。
【0137】
▲1▼ サービスグループをダイナミックに形成(ピア・トゥ・ピアベースの1対1通信を複数回行うかマルチキャスト(1対多)通信)する。
【0138】
これにより、データを共有するグループを形成することにより、自分以外の保持するデータ蓄積媒体を共有することが可能となる。またグループ外のピアからのアクセスを拒否するセキュリティを持つことができる。通達するべき相手を特定することができ、ネットワーク上に無駄なトラフィックを増やさない。
【0139】
▲2▼ 新規データがピアの何処かで作成すると複数のピアにレプリカを作る(他ピアでの存在を保証)。
【0140】
これにより、データに冗長性を持たせ、複数のピアに同じデータがあることを保証できる。1ピアが通信不能でも他ピアが通信可能であればデータをダウンロードできる。特定のピアがクラッシュした場合は、他のピアにある自分のレプリカデータから自分のHDDの復旧をすることができる。
【0141】
▲3▼ データの検索はサービスグループ内で行われ、最も通信速度が速いピアからダウンロードする。
【0142】
これにより、複数のピアに目的のデータがあることが保証されているので、複数のピアのどこからダウンロードするかを選択することができる。もっとも通信速度の速いピアを選択でき、データのダウンロード時間を節約できる可能性がある。レプリカは複数のピアに存在することが保証されているので、ダウンロード元に複数のピアを指定しての並列ダウンロードも可能である。
【0143】
▲4▼ ダウンロードが中断した場合は、自動的に次に通信速度が速いピアからデータ途中から再開する。
【0144】
これにより、複数のピアが同じデータを持つことを保証しているので、ひとつのピアの通信が途絶えた場合は、すぐに他のピアに変更することができる。一番目のピアを選ぶときに、通信速度を全てのピアで計測していれば、一番速いピアの通信が途絶えた場合は、次に速いピアをすぐ探すことができる。どこまでデータをダウンロードしたかをデータサイズで覚えておけば、他ピアに移行した場合も、途中から再開でき、全体のダウンロード時間をダウンロード元のピアを変更したとはいえ、増大させることがない。通常のバックアップの構成でも他ピアからダウンロードを行なうようなシステムも考えられるが、本発明では、通信路の途中にバッファ(P2Pバッファ)を設けて、通信をバッファ経由させ、バッファ量を監視し、バッファが少なくなったら他ピアにシームレスに移行させることができる。
【0145】
▲5▼ データのダウンロード時は、いったんネットワーク上のバッファを通し、データの流れを監視する。
【0146】
これにより、ダウンロードをネットワークバッファを通して実現することにより、ダウンロードの滞りを素早く検知することが可能となる。ダウンロード元のピアが何らかの原因で通信継続不能になった場合も、ダウンロード受け側に知られずに(タイムラグなしに)、ダウンロード元をスイッチすることが可能になる。つまり、シームレスな連携が可能になる。
【0147】
〔以下付記を記載する〕
(付記1) ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有装置であって、
他の機器とのデータ転送を行うデータ転送手段と、
データのレプリカの登録及び参照するレプリカ登録・参照手段とを備え、
前記サービスグループ内の機器で新規データが作成された場合、前記レプリカ登録・参照手段で、前記新規データのレプリカを作成して登録することを特徴としたデータ共有装置。
【0148】
(付記2) 前記データ転送手段は、ダウンロードの途中で通信不能になった場合、別の機器に切り換えてダウンロードを再開することを特徴とする付記1記載のデータ共有装置。
【0149】
(付記3) データ転送を一旦バッファリングするバッファと、
該バッファの監視及び判定を行なうバッファ監視・判定手段とを備え、
前記バッファ監視・判定手段は、データ転送中のバッファのバッファ量を監視し、データ転送が滞ったら、別の機器に切り換えてデータ転送を再開することを特徴とする付記1記載のデータ共有装置。
【0150】
(付記4) バッファ量を監視する前記バッファ監視・判定手段は、前記データ転送が滞った場合に切り換えてデータ転送を再開する次の候補の機器又は前記バッファを持つ機器に備えることを特徴とした付記3記載のデータ共有装置。
【0151】
(付記5) 前記レプリカの登録場所及び前記バッファの場所は、各装置で保持しているリストに基づいてネットワークに接続された前記サービスグループ内の機器のどこかに置くことを特徴とした付記3記載のデータ共有装置。
【0152】
(付記6) 他の装置から前記サービスグループに参加あるいは脱退する旨の通知を受けたとき、グループリストに基づいて他の全ての参加者にその旨通知して前記グループリストを互いに更新することを特徴とする付記1〜4のいずれかに記載のデータ共有装置。
【0153】
(付記7) 前記データ転送手段は、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なうことを特徴とする付記1〜5のいずれかに記載のデータ共有装置。
【0154】
(付記8) データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断することを特徴とする付記1〜5のいずれかに記載のデータ共有装置。
【0155】
(付記9) 前記サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定することを特徴とする付記1〜5のいずれかに記載のデータ共有装置。
【0156】
(付記10) ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有手段と、
他の機器とのデータ転送を行うデータ転送手段と、
前記サービスグループ内の機器で新規データが作成された場合、該新規データのレプリカを作成して登録するレプリカ登録・参照手段として、コンピュータを機能させるためのプログラム又はプログラムを記録したコンピュータ読取可能な記録媒体。
【0157】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
【0158】
(1):サービスグループ内の機器で新規データが作成された場合、レプリカ登録・参照手段で、前記新規データのレプリカを作成して登録するため、ネットワーク上に接続する複数の機器上にレプリカを作成し、データに冗長性をもたせ、ある特定の機器からデータの検索後、見つかった機器からのダウンロードの途中で通信不能に陥った場合に、他の機器からダウンロードを再開でき、また、特定の機器がクラッシュしても他の機器にある自分のレプリカデータからデータを復旧することができる。
【0159】
(2):バッファ監視・判定手段で、データ転送中のバッファのバッファ量を監視し、データ転送が滞ったら、別の機器に切り換えてデータ転送を再開するため、次のダウンロード元にその旨通知し、ダウンロードを滞りなく継続することができる。
【0160】
(3):データ転送手段12aで、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なうため、ダウンロード時間を短縮することができる。
【0161】
(4):データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断するため、コピー可能回数を制限して、コピーの増加を防止することができる。
【0162】
(5):サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定するため、機器での保有レプリカサイズの小さいものを優先させて選択して各機器でのレプリカのサイズバランスをとり効率のよいデータ共有を行うことができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】実施の形態における全体ブロック図である。
【図3】実施の形態におけるデータ転送部の説明図である。
【図4】実施の形態におけるデータ検索・判定部の説明図である。
【図5】実施の形態におけるレプリカ登録・参照部の説明図である。
【図6】実施の形態におけるバッファ監視・判定部の説明図である。
【図7】実施の形態におけるHDDの中身の説明図である。
【図8】実施の形態におけるサービスグループの説明図である。
【図9】実施の形態におけるサービスグループの変更(追加)の説明図である。
【図10】実施の形態におけるサービスグループの参加処理フローチャートである。
【図11】実施の形態におけるサービスグループの脱退処理フローチャートである。
【図12】実施の形態における各ピアで保持するリスト(1)の説明図である。
【図13】実施の形態における各ピアで保持するリスト(2)の説明図である。
【図14】実施の形態におけるレプリカの作成と検索の説明図である。
【図15】実施の形態におけるレプリカ作成処理フローチャート(1)である。
【図16】実施の形態におけるレプリカ作成処理フローチャート(2)である。
【図17】実施の形態における新規データとレプリカの両方を他ピアで作成するフローチャートである。
【図18】実施の形態におけるあるピアがクラッシュした場合の説明図である。
【図19】実施の形態におけるあるピアがクラッシュした場合のフローチャートである。
【図20】実施の形態におけるデータ検索処理フローチャートである。
【図21】実施の形態におけるダウンロード正常終了の判断方法(1)のフローチャートである。
【図22】実施の形態におけるダウンロード正常終了の判断方法(2)のフローチャートである。
【図23】実施の形態におけるピアAからピアDへのダウンロードの説明図である。
【図24】実施の形態におけるP2Pバッファを用いたダウンロード元のスイッチの説明図である。
【図25】実施の形態における通信インタフェースの説明図である。
【図26】実施の形態におけるファイアウォールの場合での通信の説明図である。
【図27】実施の形態におけるデジタルデータ共有装置の説明図である。
【図28】従来例の説明図である。
【符号の説明】
1〜3 機器(ピアA〜C)
10 データ共有装置
11a 制御手段
12a データ転送手段
13a データ検索・判定手段
14a レプリカ登録・参照手段
15a バッファ監視・判定手段
[0001]
BACKGROUND OF THE INVENTION
INDUSTRIAL APPLICABILITY The present invention can be used in a wide range of digital contents such as storage devices, personal computers (PCs), servers, set-top boxes, and the like, which are handling digital data, which has been growing rapidly. .
[0002]
Recently, personal computers have become widespread, and high-speed LAN (Locl Area Network) 100 Mbps has become commonplace, and an Ethernet controller having a speed of 1 Gbps has become a price range that can be easily obtained. In addition, the network infrastructure has begun to be established at home, and a line speed of 64 Mbps with ISDN (Integrated Services Digital Network) to 1 Mbps with ADSL (Asymmetric Digital Subscriber Line), and recently about 100 Mbps with FTTH (Fiber To The Home) can be obtained at home. The time has come.
[0003]
However, despite the establishment of such a network infrastructure, the software configuration is still mainstream in the information network using the conventional client model. Recently, a peer-to-peer model network sharing technique that does not require a server has attracted attention, but there is a problem that stable sharing is not possible due to the dynamic model.
[0004]
In the present invention, stable network sharing is realized while being a peer-to-peer model.
[0005]
[Prior art]
As a conventional form of data sharing, there has been an information sharing system based on a client-server model (hereinafter referred to as a “crasaba model”). File sharing by the Windows network and NFS (Network File System) by UNIX are famous. However, generally, a server is required to have a high-performance CPU (Central Processing Unit) capable of withstanding a high load and I / O (Input-Output) specifications, and is expensive. In addition, management is complicated and requires a skilled administrator. If communication between the client and server was interrupted for some reason (worst crash), the client was shut down and helpless.
[0006]
In recent years, unlike conventional Kurazaba models, a dynamic network model (Peer-to-Peer) that does not require expensive servers and skilled administrators, and that can freely join and leave the network (PC power ON / OFF) ) Is attracting attention. Examples are Napster and Gnutella, which are famous for music distribution. However, since the peer-to-peer model is based on a dynamic communication model, communication with a transmission source peer (for example, a PC) is performed while searching for target data from a specific peer and starting download. Often suddenly stopped (for example, the router was turned off and the PC itself was shut down), and normal file copying was often not performed.
[0007]
FIG. 28 is an explanatory diagram of a conventional example. In FIG. 28, peer A, peer B, and peer C, which are devices such as PCs, are connected by a network. The peer A is provided with a control unit 11, a data transfer unit 12, a data search / determination unit 13, and a communication unit 16. The data search / determination unit 13 requests the peers B and C to search for data to be searched from the communication unit 16. When the data is found in the peer B, the data is downloaded from the peer B.
[0008]
In such peer-to-peer (hereinafter referred to as P2P), which has attracted attention in recent years, communication between peers is not guaranteed unlike the Kurazaba model. For example, communication with the transmission source peer B (for example, a PC) suddenly stops during downloading of data (such as MP3 which is a compression method standard) (the router is turned off, or the PC itself is often shut down).
[0009]
If the download was forcibly terminated in the middle, it was considered to rescue it by the following method.
[0010]
(1) Re-execute from the same peer (simple re-execution, re-execution when communication is restored)
(2) Search for another peer and re-execute (There may be no other peer with data, but there was also a backup)
Napster and Gnutella take the above methods (1) and (2). Napster is managed by the server only for data location. The entity (data) is at each peer. Gnutella is the location of data and the entity (data) is also each peer. It was complete P2P.
[0011]
[Problems to be solved by the invention]
The conventional device has the following problems.
[0012]
(1): If download is forcibly terminated in the middle, re-execution from the same peer in (1) above (simple re-execution, re-execution upon communication recovery) may not return the same peer to an immediately executable state. It was. For example, when a peer is shut down during download, or when a blue screen (an unrecoverable screen, etc.) appears, the personal computer cannot be started immediately. In this case, even if it waited for a certain specific time, it was not able to be performed again, and this method itself was not able to be performed.
[0013]
(2): In the above (2), searching for another peer and re-execution (there may be no other peer with data, but there was also a backup), it is possible to search for another peer, but not necessarily Since the target data is not guaranteed to exist in other peers, it could not be found. If it is particularly popular or frequently used data, it is likely to exist, but if not, it may exist only at a specific peer. In such a case, this method itself was not feasible.
[0014]
In the present invention, in view of the above-described problems, a preparation is made to ensure that a search can be performed. That is, a shared group (service group) for receiving services is created, and a replica is always created when new data is created in this group. And when it ends in the middle of the download after data search, it aims at improving the convenience of a user by providing a mechanism in which other peers automatically take over the service.
[0015]
[Means for Solving the Problems]
FIG. 1 is a diagram for explaining the principle of the present invention, FIG. 1 (a) is a description of a network, and FIG. 1 (b) is a description of a data sharing apparatus. In FIG. 1, 1 to 3 are devices (peers A to C), 10 is a data sharing device, 11a is control means, 12a is data transfer means, 13a is data search / determination means, 14a is replica registration / reference means, 15a Is a buffer monitoring / determination means.
[0016]
The present invention has the following means in order to solve the conventional problems.
[0017]
(1): A data sharing apparatus for configuring a service group for sharing data between devices connected via a network, and data transfer means 12a for transferring data with other devices, and registration of data replicas And replica registration / reference means 14a for referencing. When new data is created by a device in the service group, the replica registration / reference means 14a creates and registers a replica of the new data. For this reason, when replicas are created on multiple devices connected to the network, the data is made redundant, and after searching for data from a specific device, communication fails during download from the found device In addition, downloads can be resumed from other devices. In addition, even if a specific device crashes, data can be recovered from its own replica data in another device.
[0018]
(2): In the data sharing apparatus of (1), a buffer for temporarily buffering data transfer and a buffer monitoring / determination unit 15a for monitoring and determining the buffer are provided, and the buffer monitoring / determination unit 15a includes The buffer amount of the buffer during data transfer is monitored, and if the data transfer is delayed, the data transfer is resumed by switching to another device. For this reason, when the amount of the transfer buffer decreases to an amount that causes a stagnation in communication, it is notified to the next download source, and the download can be continued without stagnation.
[0019]
(3): In the data sharing device according to (1) or (2), the data transfer means 12a first measures the transfer rate at the time of data transfer, and downloads from a device with a high speed. Do. For this reason, download time can be shortened.
[0020]
(4): In the data sharing apparatus of (1), (2) or (3), before data transfer, grasp the number of times data can be copied to create a replica and determine whether transfer is possible. . For this reason, it is possible to prevent an increase in copying by limiting the number of times that copying is possible.
[0021]
(5): In the data sharing apparatus according to (1) or (2), after new data is created in the service group, the total size and number of replicas already existing in the devices connected to the network are referred to. Then, the replica creation destination is determined so that the replica sizes in each device are balanced. For this reason, it is possible to perform efficient data sharing by balancing the size of replicas in each device by preferentially selecting a device having a small replica size.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
In the present invention, stable network sharing is realized by the following procedure.
[0023]
(1) A service group is dynamically formed (peer-to-peer based one-to-one communication is performed a plurality of times or multicast (one-to-many) communication).
[0024]
{Circle around (2)} When new data is created somewhere on the peer, replicas are created on multiple peers (guaranteed to exist at other peers).
[0025]
(3) Data search is performed within the service group and downloaded from the peer with the fastest communication speed.
[0026]
(4) If the download is interrupted, it automatically restarts from the peer with the next highest communication speed in the middle of the data.
[0027]
(5) When downloading data, the data flow is monitored once through a buffer on the network.
[0028]
Next, a peer-to-peer data sharing method for realizing the above will be described in detail.
[0029]
(1): Description of entire block
FIG. 2 is an overall block diagram, and FIG. 2A is a diagram illustrating the configuration of the entire P2P network. 2A, peers A, Peer B, Peer C, Peer D, and Peer E, which are devices such as PCs, are connected by a network. Here, peer A is a data transfer request source, and peer D is a data download source having a replica. Further, the peer E becomes a buffer between the download source and the download destination as a buffer at the time of download, and is provided for grasping the transfer status.
[0030]
FIG. 2B illustrates the configuration within each peer. In FIG. 2B, a control unit 11, a data transfer unit 12, a data search / determination unit 13, a replica registration / reference unit 14, a buffer monitoring / determination unit 15, and a communication unit 16 are provided in each peer. . The control unit 11 performs overall control. The data transfer unit 12 controls data transfer. The data search / determination unit 13 performs data search and search result determination. The replica registration / reference unit 14 performs registration and reference of a replica that is a replica of the replica. The buffer monitoring / determination unit 15 monitors and determines a transfer buffer that temporarily buffers data transfer. The communication unit 16 performs communication between peers.
[0031]
When a specific peer requests data transfer, a search request is issued to all peers from a specific peer (here, peer A). Among the hit peers, a specific peer (here, peer D) is selected. The selected peer transfers the data to the requesting peer via the buffer (here, peer E).
[0032]
In addition to the conventional data transfer unit 12 and data search / determination unit 13, a replica registration / reference unit 14 and a buffer monitoring / determination unit 15 are newly added. The replica is created by other peers when new data is created, and the peer E (buffer) is a P2P buffer that acts as a buffer between the download source and the download destination at the time of download. Is provided to do.
[0033]
(1) Description of data transfer unit
The data transfer unit 12 is a data transfer unit that manages download transfer of data hit in the search.
[0034]
FIG. 3 is an explanatory diagram of the data transfer unit. In FIG. 3, the data transfer unit 12 includes a data transfer control unit 21, a management unit 22, a generation management unit 23, and a transfer unit 24. The data transfer control unit 21 controls data transfer performed with other peers via the communication unit 16. The management unit 22 manages the generation management unit 23, the transfer unit 24, and the like. The generation management unit 23 manages the number of copies. The transfer unit 24 performs data transfer.
[0035]
(2) Explanation of data search / determination unit
The data search / determination unit 13 requests to search for data to be searched, and in response to the response returned from each peer, the data search / determination unit determines the peer to download from the time and the contents of the replica list. It is.
[0036]
FIG. 4 is an explanatory diagram of the data search / determination unit. In FIG. 4, the data search / determination unit 13 includes a data search / determination control unit 31, a management unit 32, a search result determination unit 33, and a search unit 34. The data search / determination control unit 31 controls data search and determination. The management unit 32 manages the search result determination unit 33 and the search unit 34. The search result determination unit 33 requests to search for data to be searched by the search unit 34, and in response to a response returned from each peer, looks at the time and the contents of the replica list (for example, the replica size held), and which peer From which to download. The search unit 34 requests each peer to search for data to be searched.
[0037]
(3) Explanation of replica registration / reference unit
Upon receiving a replica creation request, the replica registration / reference unit 14 is replica registration / reference means for creating a replica while managing three list files. These three lists include a replica list for managing the overall size of replicas, the number of replicas, a group list for managing service groups, a data copy generation, and a generation management list for managing original peers.
[0038]
FIG. 5 is an explanatory diagram of the replica registration / reference unit. 5, the replica registration / reference unit 14 includes a replica registration / reference control unit 41, a replica management unit 42, a replica search unit 43, a replica creation unit 44, and a list 45. In the list 45, a replica list 46, a group list 47, and a generation management list 48 are provided.
[0039]
The replica registration / reference control unit 41 controls replica registration / reference. The replica management unit 42 manages the replica search unit 43, the replica creation unit 44, and the list file 45. The replica search unit 43 searches for replicas. The replica creation unit 44 creates a replica. The list 45 has three lists stored in a storage medium, for example, a hard disk (HDD) 60. The replica list 46 manages the total size of replicas and the number of replicas. The group list 47 manages service groups. The generation management list 48 manages data copy generations and original peers.
[0040]
(4) Explanation of buffer monitoring / determination unit
The buffer monitoring / determination unit 15 is provided to confirm whether communication is performed without any delay, and checks whether the flow of the P2P buffer is smooth (whether it is not delayed or underflowed). Buffer monitoring / determination means comprising a P2P monitoring unit and a P2P buffer determining unit that switches the download source to the next peer according to the result.
[0041]
FIG. 6 is an explanatory diagram of the buffer monitoring / determination unit. 6, the buffer monitoring / determination unit 15 includes a buffer monitoring / determination control unit 51, a P2P buffer management unit 52, a P2P monitoring unit 53, and a P2P buffer determination unit 54.
[0042]
The buffer monitoring / determination control unit 51 performs monitoring / determination control of the P2P buffer. The P2P buffer management unit 52 manages the P2P monitoring unit 53 and the P2P buffer determination unit 54. The P2P monitoring unit 53 checks whether the flow of the P2P buffer (HDD 60) is smooth. The P2P buffer determination unit 54 switches the download source to the next peer based on the monitoring result of the P2P buffer (HDD 60).
[0043]
(5) Description of HDD contents
FIG. 7 is an explanatory diagram of the contents of the HDD. In FIG. 7, the content of the HDD 60 includes three types of data and a list, that is, a list file 61, a replica (data) 62, and a P2P buffer 63. The list file 61 has three list areas (replica list 46, group list 47, and generation management list 48) as shown in detail in FIG. The replica (data) 62 is an area for holding original data and replica data. The P2P buffer 63 is a transfer buffer area that temporarily buffers data transfer.
[0044]
(2): Explanation of service group change
(1): Explanation of service group
FIG. 8 is an explanatory diagram of a service group, and FIG. 8A is an explanatory diagram of a logical network. In FIG. 8A, a group from peer A to peer F is configured. Each peer A to peer F is connected by a logical network (LAN).
[0045]
FIG. 8B illustrates a physical network. In FIG. 8B, peer B is connected to peer A, peer C, peer D, and peer E, and peer D is connected to peer F. The service group is logical, and the physical network is related to a case where the line is interrupted. In FIG. 8B, when the line between the peer B and the peer D is interrupted, the connection with the peer F other than the peer D is also interrupted.
[0046]
(2): Explanation of service group change (addition)
FIG. 9 is an explanatory diagram of changing (adding) a service group, and FIG. 9A is an explanation when the service group is two. In FIG. 9A, when the service group is 2, the IP (Internet Protocol) address of peer B is “203.139.XXX.12” and the IP address of peer C is “203.139.XXX.10”. Peer B and peer C exchange their own IP addresses with each other when creating a service group. It is registered in the group list 47. For example, the peer B group list 47 holds the IP address “203.139.XXX.12” of peer C.
[0047]
FIG. 9B illustrates a case where peer E participates in a group of peer B and peer C. FIG. 9B is a diagram in which the peer E having the IP address “203.139.XXX.13” has joined the service group in FIG. 9A. When Peer E newly joins, if he / she knows the IP address of Peer B, he / she can join and inform Peer B of his / her intention to join. Get a group list from peer B. Peer B notifies peers participating in all other groups that peer E has newly joined. Here, only peer C. Accordingly, for example, the peer B group list 47 holds the IP addresses “203.139.XXX.12” and “203.139.XXX.13” of the peer C and the peer E.
[0048]
FIG. 10 is a service group participation process flowchart. FIG. 10 is a flowchart showing the situation of FIG. Hereinafter, a description will be given according to the processes S1 to S3 of FIG.
[0049]
S1: The peer E connected to the network notifies the participation request to the peer B already participating in the service group.
[0050]
S2: Peer B that has received the participation notification from peer E notifies the participating peer (here, peer C) of the service group.
[0051]
S3: The group list 47 is updated at each peer (peers B, C, E), and this process is terminated.
[0052]
FIG. 11 is a flowchart of a service group withdrawal process. Update in the same way as the participation in FIG. In the following, description will be given according to processing S11 to S12 of FIG.
[0053]
S11: A peer connected to the network (a peer who wants to leave) notifies the peer already participating in the service group of the withdrawal. When you receive a notice of withdrawal from the peer, the withdrawal is complete. (Alternatively, the notified peer can notify the participating peers of the service group.)
S12: Each peer in the service group updates the group list 47 and ends this process.
[0054]
(3): Explanation of the list held by each peer
FIG. 12 is an explanatory diagram of the list (1) held by each peer. In FIG. 12, peer B with IP address “203.139.XXX.10” is peer A with IP address “203.139.XXX.15”, peer C with IP address “203.139.XXX.12”, and IP address “203.139.XXX”. .16 "is connected to peer D. Each peer maintains a list 45, and each list 45 includes a replica list 46 and a group list 47. For example, the replica list 46 of the peer B holds the total size of replicas and the number of replicas. The replica list 46 is used as information for creating a replica. The group list 47 includes addresses (IP addresses “203.139.XXX.15”, “203.139.XXX.12”, “203.139.XXX”) of each peer (A, C, D) used to hold a group for creating a replica. .16 ”).
[0055]
FIG. 13 is an explanatory diagram of the list (2) held by each peer. In FIG. 13, peer B is connected to peer A, peer C, and peer D. Each peer holds a list 45, and the list 45 holds a generation management list 48 in addition to the replica list 46 and the group list 47 of FIG. For example, the generation management list 48 of the peer B is an original peer (A, B,...) When a replica is created. The data file name (a.mpg, b.mpg,...) And the number of copies (1, 2,...) For managing the copy are held. Even if you have your own original, the generation management list has the same structure. The original peer becomes its own peer (Peer B). When replicas are created in other peers, a copy creation end notification is received and the number of copies is incremented. Synchronize with the replica creator.
[0056]
(3): Explanation of replica creation and search
FIG. 14 is an explanatory diagram of creation and search of replicas, and FIG. 14 (a) is an explanation when new data is created by the peer B. FIG. In FIG. 14A, new data is created by peer B, and replicas are created by peer A and peer D. The creation destination is confirmed after the replica list is confirmed (for example, confirmation of a peer having a small overall size).
[0057]
FIG. 14B is an explanation of search and download. In FIG. 14B, search and download are performed. After receiving the search results, the download destination communicates the PING (ping command) reaction time or small data of about 1 Kbyte to check the transfer time, and downloads it from a peer with high speed. In FIG. 14B, the search source peer is E, which is downloaded from peer B.
[0058]
FIG. 15 is a replica creation processing flowchart (1). FIG. 15 is a flow when data is newly created at some peer. Does not manage copy generation. When new data is created, the group list is referred to and a replica list is obtained from each peer. As many replicas as the number of replicas N (optionally one or more) are selected so that the replica sizes are balanced. A replica creation request is made to the selected peer, and a replica is created at each peer. Then, various lists are updated at each peer. If some of the peers are powered down, there is no system problem, as only the response from the powered-down device is not returned. Hereinafter, a description will be given according to processing S21 to S27 of FIG.
[0059]
S21: Data is newly created at some peer in the service group, and the process proceeds to S22.
[0060]
S22: The peer that created the new data refers to the group list 47, and proceeds to the process S23.
[0061]
S23: The peer that has created new data receives the replica list 46 from each peer in the group list 47, and proceeds to the process S24.
[0062]
S24: The peer that created the new data selects N peers with a small overall size from the received replica list 46, and proceeds to processing S25.
[0063]
S25: The peer that has created new data requests the N selected peers to create a replica, and proceeds to processing S26.
[0064]
S26: The peer that has received the request for replica creation creates the replica, and proceeds to processing S27.
[0065]
S27: Each peer updates various lists and ends this process.
[0066]
FIG. 16 is a replica creation processing flowchart (2). FIG. 16 is a flow when data is newly created at some peer. Decide whether to create a replica by managing the copy generation. When new data is created, the group list is referred to and a replica list is obtained from each peer. As many replicas as the number of replicas N (optionally one or more) are selected so that the replica sizes are balanced. Request replica creation for the selected peer. However, if the number of copies is other than the specified number, creation of the replica is rejected. If the number of copies is within the specified number, each peer receives it and creates a replica. Update various lists at each peer. The number of copies is synchronized with each peer by performing replica creation sequentially. When creating a replica of its own data, it always receives an end notification and increments the number of copies of the original node. If the specified number of times is exceeded, replicas cannot be created. For example, even when the power of the peer that created the replica is dropped, the number of copies is written in the original generation management list, so that the number of copies does not increase more than the permitted number. If some of the peers are powered down, there is no system problem, as only the response from the powered-down device is not returned. Hereinafter, a description will be given according to processing S31 to S39 in FIG.
[0067]
S31: Data is newly created at any peer in the service group, and the process proceeds to S32.
[0068]
S32: The peer that created the new data refers to the group list 47, and proceeds to processing S33.
[0069]
S33: The peer that created the new data receives the replica list 46 from each peer in the group list 47, and proceeds to the process S34.
[0070]
S34: The peer that has created new data selects N peers with a small overall size from the received replica list 46, and proceeds to processing S35.
[0071]
S35: The peer that has created new data requests the N selected peers to create a replica, and proceeds to processing S36.
[0072]
S36: The replica creation requesting side (peer that created new data) checks the number of copies of the generation management list, and proceeds to processing S37.
[0073]
S37: The replica creation requesting side determines whether the number of copies is smaller than the permitted number. If it is determined that the number of copies is smaller than the permitted number, the process proceeds to step S38. If not, the replica creation is prohibited and the process is terminated.
[0074]
S38: The peer that has received the request for replica creation creates a replica, and proceeds to processing S39.
[0075]
S39: Each peer updates various lists and ends this process.
[0076]
FIG. 17 is a flowchart for creating both new data and a replica at another peer. FIG. 17 shows a case where newly created data is held not by its own peer but by another peer. For example, when the storage location of the peer A is full (even if there is still room), it is possible to realize the case where there is no own disk. Also, even if there is an own HDD, data can be created if the capacity of the own HDD is insufficient and other peers in the service group have capacity. Hereinafter, a description will be given according to processing S41 to S48 in FIG.
[0077]
S41: New data is created at peer A, and the process proceeds to step S42.
[0078]
S42: The peer A that has created new data moves to the processing S43 when its storage area is full (this processing block can be omitted).
[0079]
S43: The peer A that has created the new data refers to the group list 47, and proceeds to the process S44.
[0080]
S44: The peer A that has created new data receives the replica list 46 from each peer, and proceeds to processing S45.
[0081]
S45: Peer A that has created new data selects N peers with a small overall size from the received replica list 46, and proceeds to processing S46.
[0082]
S46: Peer A that has created new data requests the selected peer to create an original + replica and proceeds to process S47.
[0083]
S47: The peer requested to create the replica creates the replica and proceeds to processing S48 (one of the requested N peers holds the original).
[0084]
S48: Each peer updates various lists and ends this process.
[0085]
(4): Explanation when a certain peer crashes
FIG. 18 is an explanatory diagram when a certain peer crashes. FIG. 18 shows a case where the peer C indicated by x has crashed. If C crashes, it will recover data from the other peers (A, B, D).
[0086]
FIG. 19 is a flowchart when a certain peer crashes. FIG. 19 is a flowchart of data recovery from another peer when a certain peer crashes or data cannot be read. For example, when peer C crashes and the HDD is replaced and restarted, it tries to join the service group again. When participating, it is recognized that the IP address is the same or that the same peer has joined with a GUID (Global Unit ID) (in this case, the GUID also needs to be held in the group list 47). Here, you can choose to join from scratch or restore data. In the case of new, it is not different from normal new participation. When recovery is selected, data is collected from each peer and recovered. Data is sequentially copied back from the peer having the data of peer C from the generation management list of each peer, and the data is restored. Note that the GUID is a unique ID, for example, when there is an Ethernet card MAC address (the hardware address of the Ethernet board is one address all over the world), and other 128-bit random values are automatically generated. There is.
Hereinafter, a description will be given according to processing S51 to S58 of FIG.
[0087]
S51: If peer C crashes, the process proceeds to process S52.
[0088]
S52: Re-start up peer C (no data in HDD), and proceed to processing S53.
[0089]
S53: Peer C that has re-started up notifies the service group (the peer of the existing participant) of participation, and proceeds to processing S54.
[0090]
S54: The peer notified of participation in the service group refers to the GUID, and proceeds to process S55.
[0091]
S55: The peer that has been notified of participation in the service group recognizes the peer C that has been restarted to participate as an existing group member, and causes the peer C to determine whether to restore data. If it is determined that the data is to be restored as an existing group member, the process proceeds to step S56. If the data is not restored, the process is terminated.
[0092]
S56: The peer (or peer C) notified of participation in the service group notifies the peer of the service group, asks if it has the file of peer C, and proceeds to processing S57.
[0093]
S57: The peer (or peer C) notified of participation in the service group copies back to the peer C in order from each peer having the file of the peer C, and proceeds to processing S58.
[0094]
S58: The peer (or peer C) notified of participation in the service group determines whether all copying has been completed. If it is determined that all copies have been completed, the process ends. If the copy has not been completed, the process returns to step S57.
[0095]
(5): Explanation of data search method
When searching for the target data, each peer is checked to see if it exists. If there is data, the answer is returned. If not, there is no answer. In order to find a peer having a high communication speed, a response to PING is seen or dummy data having a small data size is downloaded and the communication speed is measured. It is efficient to download data from peers with fast transfer speeds. Two methods shown in FIGS. 21 and 22 can be used to determine whether or not the download has been interrupted. FIG. 20 is a data search processing flowchart. Hereinafter, a description will be given according to processing S61 to S70 of FIG.
[0096]
S61: The peer that performs the data search refers to the group list 47 and proceeds to the process S62.
[0097]
S62: The peer that performs the data search notifies the search condition (for example, data file name a.mpg), performs the search, and moves to the process S63.
[0098]
S63: When a peer that has performed a data search receives a search hit from N peers, the process proceeds to process S64, and if there is no hit, this process ends.
[0099]
S64: The peer that performs the data search receives data of about 1 Kbyte for the hit N peers, measures the communication speed (or sees the response speed time of the PING), and moves to process S65.
[0100]
S65: The peer that has performed the data search creates a download destination ranking list (in order of speed), and proceeds to processing S66.
[0101]
S66: The peer that has performed the data search opens the communication path for the top N pieces, and proceeds to step S67.
[0102]
S67: The peer that has performed the data search starts downloading data from a peer with a high transfer rate, and proceeds to step S68.
[0103]
S68: The download-side peer (or the peer having the 2P2 buffer or the next ranking peer) determines whether the download is normal. If it is determined that the download is normal, the process ends. If the download is not normal (stops halfway (timeout)), the process proceeds to step S69.
[0104]
S69: The download-side peer (or the peer with the 2P2 buffer or the peer with the next ranking) selects the next candidate (the peer with the next highest transfer rate), and proceeds to the process S70.
[0105]
S70: The download-side peer (or the peer with the 2P2 buffer or the peer with the next ranking) determines whether there is a next candidate selected. If it is determined that there is no next candidate, this process ends. If there is, the process returns to step S67.
[0106]
(1): Explanation when the download side determines timeout
The download normal end determination method (1) is a method of determining a timeout on the download side (determining that the download has stopped midway). The time when the communication was interrupted when the download stopped halfway was measured at a specific time, and that time passed (timeout). The download requester recognizes the timeout and performs the download from the next peer again. FIG. 21 is a flowchart of the method (1) for determining whether download is normally completed. Hereinafter, a description will be given according to processing S71 to S75 of FIG.
[0107]
S71: The peer on the download side starts downloading, and proceeds to process S72.
[0108]
S72: The download-side peer determines whether data transfer is continuing. If it is determined that the data transfer is continued, the process returns to the process S71. If the data transfer is not continued, the process proceeds to the process S73.
[0109]
S73: The download peer determines whether the data transfer is complete. If it is determined that the data transfer is completed, the process is terminated. If the data transfer is not completed, the process proceeds to S74.
[0110]
S74: The download-side peer determines whether a timeout has occurred. If it is determined that a timeout has occurred, the process proceeds to step S75. If not, the process returns to step S71.
[0111]
S75: The download-side peer makes a transfer start request to the next candidate peer, and ends this process.
[0112]
{Circle over (2)}: Explanation in the case of determining the normal end of download using the P2P buffer
(A) of the method (2) for determining the normal termination of download is that the peer having the P2P buffer monitors and notifies the next peer, and (b) is that the next candidate monitors and switches by itself. The P2P buffer serves as a communication buffer. The P2P buffer is somewhere on each peer. Monitors the buffer underflow (data supply stagnation) and switches to the next transfer source when an underflow is likely to occur. The P2P buffer will be somewhere on the peer. The P2P buffer may be monitored by a peer having a P2P buffer or a next download candidate peer.
[0113]
FIG. 22 is a flowchart of the method (2) for determining whether download is normally completed, and FIG. 22 (a) is an explanation when a peer having a P2P buffer monitors. In the following, description will be given in accordance with steps S81 to S84 in FIG.
[0114]
S81: The peer having the P2P buffer periodically monitors the amount of the P2P buffer, and proceeds to step S82.
[0115]
S82: The peer having the P2P buffer determines whether the data transfer is completed. If it is determined that the data transfer has been completed, the process ends. If not, the process proceeds to step S83.
[0116]
S83: The peer having the P2P buffer determines whether it is underflow. If it is determined that there is an underflow, the process proceeds to step S84. If not, the process returns to step S81.
[0117]
S84: The peer having the P2P buffer switches communication to the next candidate peer, and ends this process.
[0118]
FIG. 22B illustrates the case where the next candidate peer monitors and switches by itself. Hereinafter, a description will be given according to processing S91 to S94 in FIG.
[0119]
S91: The next candidate peer periodically monitors the amount of P2P buffer, and proceeds to step S92.
[0120]
S92: The next candidate peer determines whether the data transfer is completed. If it is determined that the data transfer has been completed, the process ends. If not, the process proceeds to step S93.
[0121]
S93: The next candidate peer determines whether it is underflow. If it is determined that there is an underflow, the process proceeds to step S94. If not, the process returns to step S91.
[0122]
S94: The next candidate peer switches communication to itself and ends this process.
[0123]
In this way, since the next candidate peer monitors, data can be sent immediately if it is determined that there is an underflow.
[0124]
(6): Download explanation
FIG. 23 is an explanatory diagram of downloading from peer A to peer D. In FIG. 23, peer A to peer F constituting the service group are connected by a network. A P2P buffer is actually placed at each peer. FIG. 23 shows a configuration including a P2P buffer (download from A to D). A state in which download from peer A to peer D is via the peer B P2P buffer is shown. The P2P buffer exists somewhere in one peer and actually does not look like the figure, but goes through some peer.
[0125]
FIG. 24 is an explanatory diagram of a download source switch using a P2P buffer. In FIG. 24, a P2P buffer 63 is located at peer B, indicating a download from peer A to peer D. Also, the buffer amount (shaded portion) is monitored by the peer B or the next candidate peer C.
[0126]
That is, corresponding to FIG. 22, peer A is a data supply source (download data supply source), and peer D is a side requesting download. That is, the data supply source to the P2P buffer 63 is the peer A, and the data consuming peer of the P2P buffer 63 is the peer D. The P2P buffer 63 shows an example in the peer B. The next candidate for download is peer C. The hatched portion is the amount of data. If the hatched portion disappears before the transfer is completed, the data has underflowed. Switch to the next candidate peer C before underflow occurs (before the buffer amount is below a certain amount). Underflow is monitored by the next candidate peer C (the flow in FIG. 22A) or the peer B having the P2P buffer (the flow in FIG. 22B).
[0127]
(7): Explanation of data communication
FIG. 25 is an explanatory diagram of a communication interface. FIG. 25 shows an example of a socket interface used in UNIX, which is communication between client and server. In the socket interface, communication is roughly divided into three phases. (1) Connection connection phase, (2) Data transfer phase, and (3) Connection release phase. In the connection connection phase (1), “socket ()” that creates an endpoint and returns a socket descriptor, “bind” that names the socket, connection completion “listen ()”, and the server waits for connection “accept ()” ”And“ connect () ”waiting for connection. The data transfer phase {circle over (2)} includes read “read ()” and write “write ()”. In the connection release phase {circle over (3)}, there is a close socket “closesocket ()”.
[0128]
In this embodiment, when communication is interrupted during downloading, the connection connection phase {circle over (1)} can be completed and the data transfer phase {circle over (2)} can be immediately transferred so that communication with other peers can be started immediately. Keep it like that.
[0129]
FIG. 26 is an explanatory diagram of communication in the case of a firewall. In FIG. 26, peers A to D and peer F are connected via the Internet, and peer E and peer D having local addresses are connected via the NAT function. In this example, downloading is performed from peer D to peer E via a NAT function such as a router. In this way, communication is possible when either the download source or the download destination is the firewall source. Not both cases. The NAT (The IP Network Address Translator) function recently used in routers is used. Even a personal computer (PC) that has only an IP address (local address) that cannot be used on the Internet can be connected to the Internet.
[0130]
In other words, the NAT function converts a global address that can be connected to the Internet (an external network) and a local address that can be used only within a firewall. Even if multiple generations of terminals are connected under the router having the NAT function, they can be connected with one global address.
[0131]
(8): Description of digital data sharing device
FIG. 27 is an explanatory diagram of a digital data sharing apparatus. In FIG. 27, a digital data sharing apparatus is a network sharing apparatus that performs data sharing between devices connected via a network. The digital data sharing apparatus is provided with a CPU block 71, a network block 72, a memory block 73, an interface block 74, and a large capacity storage block 75.
[0132]
The CPU block 71 controls the whole. The network block 72 is for communicating with other devices. The memory block 73 is for storing a control program. The interface block 74 receives a request from the user. The large-capacity storage block 75 holds a replica and a communication buffer (HDD, DVD, MO, etc.).
[0133]
In the digital data sharing apparatus, when new data is created, a replica creation request or request is accepted on a plurality of other devices (digital data sharing apparatus) connected to the network.
[0134]
(9): Explanation of program installation
Control unit 11a, control unit 11, data transfer unit 12a, data transfer unit 12, data search / determination unit 13a, data search / determination unit 13, replica registration / reference unit 14a, replica registration / reference unit 14, buffer monitoring / determination The means 15a, the buffer monitoring / determination unit 15, the communication unit 16, and the like can be configured by a program, which is executed by the main control unit (CPU) and stored in the main memory. This program is generally processed by a computer. This computer includes hardware such as an input device which is an input unit such as a main control unit, a main memory (memory block), a file device, a display device, and a keyboard.
[0135]
The program of the present invention is installed on this computer. In this installation, these programs are stored in a portable recording (storage) medium such as a floppy disk or a magneto-optical disk, and a drive device for accessing the recording medium provided in the computer is used. Alternatively, it is installed in a file device provided in the computer via a network such as a LAN. Then, the program steps necessary for processing are read from the file device into the main memory and executed by the main control unit. By installing this program in a computer, it is possible to easily provide a data sharing apparatus that can resume download from another device when communication is impossible during download.
[0136]
As described above, the present embodiment has the following effects.
[0137]
(1) A service group is dynamically formed (peer-to-peer based one-to-one communication is performed a plurality of times or multicast (one-to-many) communication).
[0138]
As a result, by forming a group for sharing data, it becomes possible to share a data storage medium other than itself. It can also have security to deny access from peers outside the group. It is possible to identify the person to be notified, and does not increase unnecessary traffic on the network.
[0139]
{Circle around (2)} When new data is created somewhere on the peer, replicas are created on multiple peers (guaranteed to exist at other peers).
[0140]
Thereby, redundancy can be given to data and it can be assured that the same data exists in a plurality of peers. Even if one peer cannot communicate, data can be downloaded if another peer can communicate. If a specific peer crashes, it is possible to recover its own HDD from its own replica data in another peer.
[0141]
(3) Data search is performed within the service group and downloaded from the peer with the fastest communication speed.
[0142]
Thereby, since it is guaranteed that there are target data in a plurality of peers, it is possible to select from which of the plurality of peers to download. The peer with the fastest communication speed can be selected, which may save data download time. Since replicas are guaranteed to exist at a plurality of peers, parallel downloading is possible by specifying a plurality of peers as download sources.
[0143]
(4) If the download is interrupted, it automatically restarts from the peer with the next highest communication speed in the middle of the data.
[0144]
As a result, it is guaranteed that a plurality of peers have the same data. Therefore, when communication of one peer is interrupted, it can be changed to another peer immediately. If the communication speed of all peers is measured when the first peer is selected, if the communication of the fastest peer is interrupted, the next fastest peer can be found immediately. If you remember how far the data has been downloaded by the data size, even if you move to another peer, you can resume from the middle, and the total download time will not increase, even though you have changed the download source peer. In a normal backup configuration, a system that downloads data from another peer is also conceivable. However, in the present invention, a buffer (P2P buffer) is provided in the middle of the communication path so that communication is performed via the buffer, and the buffer amount is monitored. When the buffer is low, it can be seamlessly transferred to other peers.
[0145]
(5) When downloading data, the data flow is monitored once through a buffer on the network.
[0146]
As a result, download stagnation can be quickly detected by realizing the download through the network buffer. Even when the download source peer becomes unable to continue communication for some reason, the download source can be switched without being notified to the download receiver (without a time lag). In other words, seamless cooperation is possible.
[0147]
[Additional notes are described below]
(Appendix 1) A data sharing apparatus for configuring a service group for sharing data between devices connected via a network,
Data transfer means for transferring data with other devices;
A replica registration / reference means for registering and referring to replicas of data;
A data sharing apparatus, wherein when new data is created by a device in the service group, the replica registration / reference means creates and registers a replica of the new data.
[0148]
(Supplementary note 2) The data sharing apparatus according to supplementary note 1, wherein the data transfer means switches to another device and resumes download when communication becomes impossible during the download.
[0149]
(Supplementary note 3) A buffer that temporarily buffers data transfer;
Buffer monitoring / determination means for monitoring and determining the buffer,
2. The data sharing apparatus according to claim 1, wherein the buffer monitoring / determination unit monitors the buffer amount of the buffer during data transfer, and when data transfer is delayed, switches to another device to restart data transfer.
[0150]
(Supplementary Note 4) The buffer monitoring / determination means for monitoring the buffer amount is provided in a next candidate device or a device having the buffer which is switched when the data transfer is delayed and resumes the data transfer. The data sharing apparatus according to attachment 3.
[0151]
(Supplementary note 5) Supplementary note 3 is characterized in that the registration location of the replica and the location of the buffer are placed somewhere in the device in the service group connected to the network based on a list held in each device. The data sharing apparatus described.
[0152]
(Supplementary Note 6) When receiving a notification to join or leave the service group from another device, all other participants are notified based on the group list and the group list is updated mutually. The data sharing apparatus according to any one of appendices 1 to 4, which is characterized by
[0153]
(Supplementary note 7) The data transfer means first measures how much the transfer speed is at the time of data transfer, and downloads from a device with a high speed. Data sharing device.
[0154]
(Supplementary note 8) The data sharing apparatus according to any one of supplementary notes 1 to 5, characterized in that, before data transfer, the number of times data can be copied to create a replica is ascertained to determine whether transfer is possible. .
[0155]
(Additional remark 9) After new data is created in the service group, the arrangement is such that the size of the replicas in each device is balanced by referring to the total size and number of replicas already existing in the devices connected to the network. The data sharing apparatus according to any one of appendices 1 to 5, wherein a replica creation destination is determined so as to satisfy the requirement.
[0156]
(Additional remark 10) The data sharing means for comprising the service group which shares data between the apparatuses connected by the network,
Data transfer means for transferring data with other devices;
When new data is created by a device in the service group, as a replica registration / reference means for creating and registering a replica of the new data, a program for causing the computer to function or a computer-readable record recording the program Medium.
[0157]
【The invention's effect】
As described above, the present invention has the following effects.
[0158]
(1): When new data is created by a device in the service group, the replica registration / reference means creates and registers a replica of the new data, so that replicas are created on a plurality of devices connected to the network. Create and provide data redundancy, and after searching for data from one particular device, if communication fails during download from the found device, download from another device can be resumed. Even if a device crashes, you can recover data from your own replica data on other devices.
[0159]
(2): The buffer monitoring / determination means monitors the buffer amount of the buffer that is currently transferring data. If the data transfer is delayed, it switches to another device and restarts the data transfer. And downloads can continue without delay.
[0160]
(3): The data transfer means 12a first measures how much the transfer speed is at the time of data transfer and downloads from a device with a high speed, so the download time can be shortened.
[0161]
(4): Before data transfer, in order to grasp the number of times data can be copied for creating a replica and determine whether it can be transferred, the number of times that data can be copied can be limited to prevent an increase in the number of copies. it can.
[0162]
(5): After new data is created in the service group, refer to the total size and number of replicas that already exist in the devices connected to the network, so that the replica sizes in each device are balanced. In order to determine the replica creation destination, it is possible to prioritize and select a replica having a small replica size in the device and balance the size of the replica in each device, thereby performing efficient data sharing.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the principle of the present invention.
FIG. 2 is an overall block diagram in the embodiment.
FIG. 3 is an explanatory diagram of a data transfer unit in the embodiment.
FIG. 4 is an explanatory diagram of a data search / determination unit according to the embodiment.
FIG. 5 is an explanatory diagram of a replica registration / reference unit according to the embodiment.
FIG. 6 is an explanatory diagram of a buffer monitoring / determination unit according to the embodiment.
FIG. 7 is an explanatory diagram of the contents of the HDD in the embodiment.
FIG. 8 is an explanatory diagram of a service group in the embodiment.
FIG. 9 is an explanatory diagram of changing (adding) a service group in the embodiment.
FIG. 10 is a service group participation process flowchart according to the embodiment;
FIG. 11 is a service group withdrawal processing flowchart according to the embodiment;
FIG. 12 is an explanatory diagram of a list (1) held by each peer in the embodiment;
FIG. 13 is an explanatory diagram of a list (2) held by each peer in the embodiment.
FIG. 14 is an explanatory diagram of replica creation and search in the embodiment;
FIG. 15 is a replica creation process flowchart (1) in the embodiment;
FIG. 16 is a flowchart (2) of replica creation processing in the embodiment.
FIG. 17 is a flowchart for creating both new data and a replica by another peer in the embodiment;
FIG. 18 is an explanatory diagram when a certain peer in the embodiment crashes;
FIG. 19 is a flowchart when a certain peer in the embodiment crashes;
FIG. 20 is a flowchart of data search processing in the embodiment.
FIG. 21 is a flowchart of a download normal end determination method (1) in the embodiment;
FIG. 22 is a flowchart of a method (2) for determining a normal download end according to the embodiment;
FIG. 23 is an explanatory diagram of download from peer A to peer D in the embodiment;
FIG. 24 is an explanatory diagram of a download source switch using a P2P buffer in the embodiment;
FIG. 25 is an explanatory diagram of a communication interface in the embodiment;
FIG. 26 is an explanatory diagram of communication in the case of the firewall according to the embodiment.
FIG. 27 is an explanatory diagram of a digital data sharing apparatus according to an embodiment.
FIG. 28 is an explanatory diagram of a conventional example.
[Explanation of symbols]
1-3 Equipment (Peers A to C)
10 Data sharing device
11a Control means
12a Data transfer means
13a Data retrieval / determination means
14a Replica registration / reference means
15a Buffer monitoring / determination means

Claims (4)

ネットワークで接続された機器間でデータを共有するサービスグループを構成するためのデータ共有装置であって、
他の機器とのデータ転送を行うデータ転送手段と、
データのレプリカの登録及び参照するレプリカ登録・参照手段とを備え、
前記サービスグループ内の機器で新規データが作成された場合、前記レプリカ登録・参照手段で、前記新規データのレプリカを作成して、前記サービスグループ内の前記新規データを保持する機器以外の機器に登録して保持するとき、前記サービスグループ内で新規データが作成された後に、ネットワークに接続された機器に既に存在するレプリカの全体サイズおよび数を参照し、各機器でのレプリカのサイズがバランスするような配置にするようレプリカ作成先を決定することを特徴とするデータ共有装置。
A data sharing device for configuring a service group for sharing data between devices connected via a network,
Data transfer means for transferring data with other devices;
A replica registration / reference means for registering and referring to replicas of data;
When new data is created in a device in the service group, the replica registration / reference means creates a replica of the new data and registers it in a device other than the device that holds the new data in the service group When new data is created in the service group, the total size and number of replicas already existing in the devices connected to the network are referred to so that the replica sizes in each device are balanced. A data sharing apparatus, characterized in that a replica creation destination is determined so as to achieve a proper arrangement .
データ転送を一旦バッファリングするバッファと、
該バッファの監視及び判定を行なうバッファ監視・判定手段とを備え、
前記バッファ監視・判定手段は、データ転送中のバッファのバッファ量を監視し、前記バッファのアンダーフローにより、データ転送が滞ったら、同じデータを保持する別の機器に切り換えてデータ転送を再開することを特徴とする請求項1記載のデータ共有装置。
A buffer that once buffers the data transfer;
Buffer monitoring / determination means for monitoring and determining the buffer,
The buffer monitoring / determination means monitors the buffer amount of the buffer during data transfer, and if the data transfer is delayed due to an underflow of the buffer, it switches to another device holding the same data and restarts the data transfer. The data sharing apparatus according to claim 1.
前記データ転送手段は、データ転送時に、転送速度がどの程度でるかを最初に計測し、速度の速い機器からのダウンロードを行なうことを特徴とする請求項1又は2記載のデータ共有装置。  3. The data sharing apparatus according to claim 1, wherein the data transfer means first measures the transfer rate at the time of data transfer and performs download from a device having a high speed. 規定されたデータコピー可能回数以上になる場合はデータ転送はできないため、データ転送の前に、レプリカを作成するデータのデータコピー可能回数を把握し、転送可能であるかを判断することを特徴とする請求項1〜3のいずれかに記載のデータ共有装置。 Since data transfer is not possible when the number of times the specified number of data copies can be exceeded, it is possible to grasp the number of times data can be copied of the data for creating a replica and determine whether transfer is possible before data transfer. The data sharing apparatus according to claim 1.
JP2001286041A 2001-09-20 2001-09-20 Data sharing device Expired - Fee Related JP4658412B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001286041A JP4658412B2 (en) 2001-09-20 2001-09-20 Data sharing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001286041A JP4658412B2 (en) 2001-09-20 2001-09-20 Data sharing device

Publications (2)

Publication Number Publication Date
JP2003099337A JP2003099337A (en) 2003-04-04
JP4658412B2 true JP4658412B2 (en) 2011-03-23

Family

ID=19109086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001286041A Expired - Fee Related JP4658412B2 (en) 2001-09-20 2001-09-20 Data sharing device

Country Status (1)

Country Link
JP (1) JP4658412B2 (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
WO2005015407A1 (en) 2003-08-08 2005-02-17 Onkyo Corporation Network av system
JP4701643B2 (en) 2004-07-08 2011-06-15 ブラザー工業株式会社 PROCESSING DEVICE, PROCESSING METHOD, PROCESSING PROGRAM, AND RECORDING MEDIUM
US7584220B2 (en) * 2004-10-01 2009-09-01 Microsoft Corporation System and method for determining target failback and target priority for a distributed file system
US7953794B2 (en) 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
JP4635682B2 (en) * 2005-03-29 2011-02-23 ブラザー工業株式会社 Information processing apparatus, information processing method, and information processing program
JP4707137B2 (en) * 2005-04-19 2011-06-22 株式会社日立ソリューションズ Data communication method, system and apparatus
JP2006319909A (en) * 2005-05-16 2006-11-24 Konica Minolta Holdings Inc Data communication method, peer-to-peer network, and information processing apparatus
US7774010B2 (en) * 2005-07-06 2010-08-10 Nokia Corporation Peer-to-peer group management framework and methodology
JP4544072B2 (en) 2005-07-20 2010-09-15 ブラザー工業株式会社 Node device, computer program, information distribution system, and network participation method
JP4661429B2 (en) 2005-07-26 2011-03-30 ブラザー工業株式会社 Information distribution system, information processing apparatus, information processing program, and information processing method
JP4670604B2 (en) 2005-11-21 2011-04-13 ブラザー工業株式会社 Information distribution system, information processing apparatus, information processing program, and information processing method
JP2007148545A (en) 2005-11-24 2007-06-14 Brother Ind Ltd Information delivery system, information delivery method, node device and node processing program
JP2007193626A (en) 2006-01-20 2007-08-02 Brother Ind Ltd Content distribution system, node device, information processing method therefor and program therefor
JP4862463B2 (en) 2006-04-11 2012-01-25 ブラザー工業株式会社 Information communication system, content catalog information search method, node device, etc.
JP4655986B2 (en) 2006-04-12 2011-03-23 ブラザー工業株式会社 Node device, storage control program, and information storage method
JP2008234445A (en) * 2007-03-22 2008-10-02 Brother Ind Ltd Content distributed storage system, duplicate data acquisition method, node device, and node processing program
JP5574080B2 (en) * 2009-03-31 2014-08-20 サクサ株式会社 IP telephone system and IP telephone terminal
TW201209595A (en) * 2010-08-26 2012-03-01 Walton Advanced Eng Inc Storage device with data sharing function
JP6630478B2 (en) * 2015-02-27 2020-01-15 株式会社メガチップス Software distribution system, software distribution method, program and server
JP6786234B2 (en) * 2016-03-22 2020-11-18 ステラプラス株式会社 Distributed storage system, distributed storage program and distributed storage method
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092699A (en) * 1999-09-20 2001-04-06 Nippon Telegr & Teleph Corp <Ntt> File storing device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3420255B2 (en) * 1991-11-02 2003-06-23 富士通株式会社 Distributed resource management controller
JPH1155645A (en) * 1997-08-07 1999-02-26 Mitsubishi Electric Corp Multimedia distribution operation management system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092699A (en) * 1999-09-20 2001-04-06 Nippon Telegr & Teleph Corp <Ntt> File storing device

Also Published As

Publication number Publication date
JP2003099337A (en) 2003-04-04

Similar Documents

Publication Publication Date Title
JP4658412B2 (en) Data sharing device
US10289338B2 (en) Multi-class heterogeneous clients in a filesystem
JP5016063B2 (en) Consistent fault-tolerant distributed hash table (DHT) overlay network
JP5211235B2 (en) Storage device for transferring redundant data
US20030145093A1 (en) System and method for peer-to-peer file exchange mechanism from multiple sources
JP2004246632A (en) Data distributing server, program, and network system
JP2005502096A (en) File switch and exchange file system
WO2010105505A1 (en) Method, user node and server for requesting position information of resource on network
WO2008085672A1 (en) Wide area peer-to-peer syncing in a decentralized environment
JP2003248611A (en) Storage management integration system and its storage management control method
WO2008131653A1 (en) A system and method for realizing network subscribing store and a subscribe server
JP2007293843A (en) Method of supporting synchronizing multiple content directory service devices, content directory service device using the method and system thereof
JP3792707B2 (en) Data communication load distribution control program and data load distribution control method
Yu et al. Granary: A sharing oriented distributed storage system
US20130054691A1 (en) Flexible rule based multi-protocol peer-to-peer caching
JP2008304981A (en) Management method for directory information, and management system for directory information
KR101041092B1 (en) Effective p2p system by using web folder
Sacha et al. A service-oriented peer-to-peer architecture for a digital ecosystem
US20060041620A1 (en) Method and system for co-joining computational spacecells in a networked environment
Min et al. Dynamic storage resource management framework for the grid
Skadsem et al. DeLight: A Peer-to-Peer Storage and Processing System
Samsudin et al. The Ranking Peer for Hybrid Peer-to-Peer Real Time Video Streaming
Schultz et al. A Distributed Media Player and Content Distribution System
Bak et al. The content streaming method with the partial content replication in SMART server
CN117785800A (en) Distributed file content management method, device, system and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100622

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100622

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees