(57)【特許請求の範囲】
【請求項１】
複数のノードを有するファイル並列ダウンロードシステムにおいて第１のノードにファイルをダウンロードする方法であって、
ネットワークのエンティティーとして動作するブローカー・サーバーにより、上記システムに接続された前記複数のノードに対するブロック可用性に関する情報を得る段階と；
前記複数のノードのうちのあるノードがファイルのダウンロードを要求した場合、前記ブローカー・サーバーが該ファイルを構成するブロックのうち最小のブロック可用性値を有するブロックを前記ノードにダウンロードする段階；
を有し、
最小ブロック可用性値を有するブロックを有する２以上のノードがある場合、前記ブローカー・サーバーは、前記ノードに、前記複数のノードのうち現在動作中のノードに接続するよう指示し、
前記ブロック可用性に関する情報は、
前記ファイルのどのブロックが前記複数のノードのうちのどのノードに属するかに関する情報と；
前記複数のノードのそれぞれのノード動作率に対する情報と；
前記ファイルを構成する各ブロックの可用性の計算値及び最小ブロック可用性値を有するブロックに関する情報；
のうちの少なくとも一つ以上を含み、
前記ブロックの可用性値は、前記ノードの動作率を用いることにより得られ、
前記ノードの動作率は、
Active(j)=ノードjが実際動作した期間／測定期間
により計算され、
Active(j)はノードjの動作率を表し、
前記ブロックの可用性値は、
Availblock(f,i)=１-Π(１-Active(j))、(j∈Sources(f，i))
により計算され、
Sources(f，i)はファイルfのブロックiを有するノードの集合を示し、
Availblock(f，i)はファイルfの断片であるブロックiの可用性を示す、
並列ダウンロード方法。
【請求項２】
複数のノードを有するファイル並列ダウンロードシステムにおいてファイルをダウンロードするために、該ファイルを構成するブロックを第１のノードにより選択するブロック選択方法であって、
(a)第１のノードにより、前記ファイルを構成するブロックを有する各ノードのノード動作率を用いて各該ブロックの可用性値を計算する段階と；
(b)第１のノードにより、前記計算された可用性値の中で最小可用性値を有するブロックを選択する段階と；
を有し、
前記(b)段階は、
前記計算された可用性値の中で最小可用性値を有するブロックの数が１個を超えているか否かを決定する段階、
を更に有し、
前記最小可用性値を有するブロックが１個を超えている場合、前記最小可用性値を有するブロックの中から一つのブロックが選択され、
前記最小可用性値を有するブロックの中から一つのブロックを選択する段階は、
前記最小可用性値のブロックを有するノードが動作するか否かを決定する段階、及び
動作中のノードのブロックを選択する段階、
を有し、
前記ノードの動作率は、
Active(j)=ノードjが実際動作した期間／測定期間
により計算され、
Active(j)はノードjの動作率を表し、
前記ブロックの可用性値は、
Availblock(f,i)=１-Π(１-Active(j))、(j∈Sources(f，i))
により計算され、
Sources(f，i)はファイルfのブロックiを有するノードの集合を示し、
Availblock(f，i)はファイルfの断片であるブロックiの可用性を示す、
ことを特徴とするブロック選択方法。
【請求項３】
前記(a)段階は、前記第１ノードが各前記ノードへファイル検索メッセージを伝送し、各前記ノードからノード情報、ノードの動作率に関する情報及び各前記ノードに格納されたファイルのブロック情報を含む応答メッセージを受信した後に、実行される、
ことを特徴とする請求項２に記載のブロック選択方法。
【請求項４】
ファイルの並列ダウンロード方法を実施するプログラムを記録した記録媒体であって、
デジタル処理装置により実行可能なコマンドのプログラムを有し、
該デジタル処理装置により読み取り可能なプログラムを記録し、
複数ノードを有するファイル並列ダウンロードシステムにおいて任意のノードによりファイルのダウンロード方法を実施するようにし、
当該並列ダウンロード方法は：
(A)ノードにより、ファイルを構成するブロックを有する各ノードのノード動作率を用いることにより各前記ブロックのブロック可用性値を計算する段階と；
(B)ノードにより、前記計算されたブロック可用性値のうち最小ブロック可用性値を有するブロックを選択する段階と；
(C)ノードにより、前記選択されたブロックを有するノードから前記選択されたブロックをダウンロードする段階と；
を有し、
前記(b)段階は、
前記計算された可用性値の中で最小可用性値を有するブロックの数が１個を超えているか否かを決定する段階、
を更に有し、
前記最小可用性値を有するブロックが１個を超えている場合、前記最小可用性値を有するブロックの中から一つのブロックが選択され、
前記最小可用性値を有するブロックの中から一つのブロックを選択する段階は、
前記最小可用性値のブロックを有するノードが動作するか否かを決定する段階、及び
動作中のノードのブロックを選択する段階、
を有し、
前記ノードの動作率は、
Active(j)=ノードjが実際動作した期間／測定期間
により計算され、
Active(j)はノードjの動作率を表し、
前記ブロックの可用性値は、
Availblock(f,i)=１-Π(１-Active(j))、(j∈Sources(f，i))
により計算され、
Sources(f，i)はファイルfのブロックiを有するノードの集合を示し、
Availblock(f，i)はファイルfの断片であるブロックiの可用性を示す、
ことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイルの並列ダウンロードに関し、特に、特定のファイルが多数のブロックに分割されて、その分割されたブロックが多数のクライアント(ノードまたはコンピューター)またはサーバーに別個に格納されている場合に、多数のクライアントまたはサーバーから上記ブロックを並列にダウンロードする方法に関する。
【背景技術】
【０００２】
現在インターネットだけでなく移動通信網などの多様な通信網を通じて多様な方法でファイル転送が実行されている。
【０００３】
ファイル並列ダウンロードは、クライアントへダウンロードされるべきファイルがサーバー又は通信網を通じて接続されたノードとして動作する他のクライアント内に存在する場合に、該ファイルを多数のブロックに分割し、複数のサーバーまたはクライアントからのブロックのダウンロードを同時に要求することで、ファイルのダウンロード時間を削減する。
【０００４】
このようなファイル並列ダウンロード方式は通信網の発達と一緒にファイルダウンロード時間を減らすことができるので、P２P(Peer  To  Peer)、グリッドコンピュータ(Grid  Computing)などで広く活用されている。
【０００５】
ファイル並列ダウンロード方式を実行するためにブロックを選択してダウンロードする従来の方法として、主に順次選択、ランダム選択及び最小頻度優先選択などの方法が利用される。
【０００６】
順次選択方法はファイルを構成するブロックを前から順に選択してブロックを有するノードにブロックのダウンロードを要求する方法である。
【０００７】
順次選択方法によれば、多数のノードが同一のファイルをダウンロードする場合、すべてのノードがダウンロードを完了するまでに、通信網上で、ファイルの後部分のブロックが複製される数は、ファイルの前部分のブロックが複製される数より少なくなる。したがってファイルの後部分のブロックをダウンロードすることは困難である。
【０００８】
ランダム選択方法は、ファイルを構成するブロックの中から一つをランダムに選択し、該ブロックを有するノードからの該ブロックのダウンロードを要求する方法である。
【０００９】
ランダム選択方法によれば、同一のファイルをダウンロードするすべてのノードの動作率を同じ場合、各ブロックの複製数は同じになると考えられる。
【００１０】
しかし、P２Pネットワークのようなアドホックネットワークでは、ノードの動作率は相異なり独立である。従って、ランダム選択方法はダウンロード中のファイルに対して各ブロックの複製数が同一であるという保証はない。
【００１１】
最小頻度優先選択方法は、ダウンロード中のファイルに対して通信網を通じて接続されたノードに属する各ブロックの個数を計算して、最小の複製数を有するブロックのダウンロードを要求する方法である。
【００１２】
最小頻度優先選択方法は、ダウンロード中のブロックの数が均一に維持されることを保証する利点はあるが、ブロックを有するノードの動作率が相異なるので、ファイルを構成する各ブロックを有するノードへのアクセスの可能性を均一に維持することが難しくなるという問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、ファイルとファイルを構成するブロックの位置に関係なくファイルを構成する各ブロックへのアクセスの可能性を高めることができるファイル並列ダウンロードでのブロック選択方法と、これを利用したファイル並列ダウンロード方法及び該方法を具現するためのプログラムを記録した記録媒体を提案することである。
【００１４】
本発明の別の目的は、ブロックの位置に関係なくファイルを構成する各ブロックへのアクセス可能性を高めることにより、ファイルのダウンロードがもっと正確で迅速に行なうことができるファイル並列ダウンロードにおけるブロック選択方法、これを利用したファイル並列ダウンロード方法及び該方法を具現するためのプログラムを記録した記録媒体を提案することである。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、複数のノードを有するファイル並列ダウンロードシステムにおいて第１のノードにファイルをダウンロードする方法が提供される。当該方法は、上記システムに接続された前記複数のノードに対するブロック可用性に対する情報を得る段階と；前記複数のノードのうちの前記第１のノードがファイルのダウンロードを要求した場合、該ファイルを構成するブロックのうち最小のブロック可用性値を有するブロックを前記第１のノードに優先的にダウンロードする段階；を有する。
【００１６】
一実施例において、前記ブロック可用性に関する情報は、前記ファイルのどのブロックが前記複数のノードのうちのどのノーに属するかに関する情報と；前記複数のノードのそれぞれのノード動作率に対する情報と；前記ファイルを構成する各ブロックの可用性の計算値及び最小ブロック可用性値を有するブロックに関する情報；のうちの少なくとも一つ以上を含む。
【００１７】
一実施例において、前記ブロックの可用性値は、前記ノードの動作率を用いることにより得られる。
【００１８】
一実施例において、前記ノードの動作率は次式により計算される。
【００１９】
Active(j)=ノードjが実際動作した期間／測定期間
ここで、Active(j)はノードjの動作率を表す。
【００２０】
一実施例において、前記ブロックの可用性値は次式により計算される。
Availblock(f，i)=１-Π(１-Active(j))、(j∈Sources(f、i))
ここで、Sources(f、i)はファイルfのブロックiを有するノードの集合を示し、Availblock(f、i)はファイルfの断片であるブロックiの可用性を示す。
【００２１】
一実施例において、前記ブロック可用性に関する情報は、ネットワークのエンティティーとして動作するブローカー・サーバーにより得られる。
【００２２】
本発明の他の態様は、複数のノードを有するファイル並列ダウンロードシステムにおいてファイルをダウンロードするために、該ファイルを構成するブロックを第１のノードにより選択するブロック選択方法を提供する。当該方法は、(a)前記ファイルを構成するブロックを有する各ノードのノード動作率を用いて各該ブロックの可用性値を計算する段階と；(b)前記計算された可用性値の中で最小可用性値を有するブロックを選択する段階と；を有する。
【００２３】
一実施例において、前記(a)段階は、前記第１ノードが各前記ノードへファイル検索メッセージを伝送し、各前記ノードからノード情報、ノードの動作率に関する情報及び各前記ノードに格納されたファイルのブロック情報を含む応答メッセージを受信した後に、実行される。
【００２４】
一実施例において、前記(b)段階は、前記計算された可用性値の中で最小可用性値を有するブロックの数が１個を超えているか否かを決定する段階、を更に有し、前記最小可用性値を有するブロックが１個を超えている場合、前記最小可用性値を有するブロックの中から一つのブロックが選択される。
【００２５】
一実施例において、前記最小可用性値を有するブロックの中から一つのブロックを選択する段階は、前記最小可用性値のブロックを有するノードが動作するか否かを決定する段階、及び動作中のノードのブロックを選択する段階、を有する。
【００２６】
本発明の他の態様は、ファイルの並列ダウンロード方法を実施するプログラムを記録した記録媒体を提供する。当該記録媒体は、デジタル処理装置により実行可能なコマンドのプログラムを有し、該デジタル処理装置により読み取り可能なプログラムを記録し、複数ノードを有するファイル並列ダウンロードシステムにおいて任意のノードによりファイルのダウンロード方法を実施するようにし、当該並列ダウンロード方法は：(A)ファイルを構成するブロックを有する各ノードのノード動作率を用いることにより各前記ブロックのブロック可用性値を計算する段階と；(B)前記計算されたブロック可用性値のうち最小ブロック可用性値を有するブロックを選択する段階と；(C)前記選択されたブロックを有するノードから前記選択されたブロックをダウンロードする段階と；を有する。
【００２７】
段階（Ａ）は、ファイル検索メッセージが各ノードへ送信され、ノード情報、ノード動作率に関する情報及び各ノードに格納されたファイルのブロック情報を含む応答メッセージが各ノードから受信された後に実行される。
【００２８】
段階（Ａ）で、ノード動作率は、次式により計算される。
Active(j)=ノードjが実際動作した期間／測定期間
ここで、Active(j)はノードjの動作率を表す。
【００２９】
段階（Ａ）で、前記ブロックの可用性値は、次式により計算される。
Availblock(f,i)=１-Π(１-Active(j))、(j∈Sources(f、i))
ここで、Sources(f，i)はファイルfのブロックiを有するノードの集合を示し、Availblock(f，i)はファイルfの断片であるブロックiの可用性を示す。
【００３０】
段階（Ｂ）は、計算された可用性値の中で最小可用性値を有するブロックの数が１を超えるか否かを決定し、最小可用性値を有するブロックの数が１を超えている場合に、最小可用性値を有するブロックのうちの１つが選択される。
【００３１】
最小可用性値を有するブロックのうちの１つの選択は、最小可用性値を有するブロックを有するノードが動作しているか否かを決定する段階；及び動作中のノードのブロックを選択する段階；を有する。
【発明の効果】
【００３２】
本発明によるファイル並列ダウンロード方法及びこれを具現するためのプログラムを記録した記録媒体は、ファイルとファイルを構成するブロックの位置に関係なくファイルを構成する各ブロックへのアクセス可能性を高めることができるという効果を奏する。
【００３３】
また、ブロックの位置に関係なくファイルを構成する各ブロックへのアクセス可能性を高めることにより、ファイルのダウンロードがもっと正確で迅速に行なうことができる。
【００３４】
本発明はノードの動作率とこれを利用したファイル及びブロックの可用性情報を用いてブロック可用性が低いブロックからダウンロードを実行することにより、最終的にファイル全体のダウンロードがもっと迅速に完了する。
【００３５】
また、ファイルを構成するブロックが優先してダウンロードされるので、全体的なファイルの可用性、すなわち対応するファイルへのアクセス可能性が向上する。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施例によるファイル並列ダウンロードシステムの構成図である。
【図２】本発明の一実施例によるファイル並列ダウンロードを説明する信号の流れ図である。
【図３】本発明の一実施例によるファイル並列ダウンロードシステムを示す図である。
【図４】本発明の一実施例によるブロック選択方法を具現するための、ブロック可用性とファイル可用性の計算の一例を示す並列ダウンロードシステの第１の例である。
【図５】本発明の一実施例によるブロック選択方法を具現するための、ブロック可用性とファイル可用性の計算の別の例を示す並列ダウンロードシステムの第２の例である。
【図６】本発明の一実施例によるファイル並列ダウンロード方法が具現される順序を示すフローチャートである。
【発明を実施するための形態】
【００３７】
本発明は多様な変更を加えることができるし、色々な実施例を有することができるところ、特定の実施例を図面に例示して詳細な説明に詳細に説明しようとする。しかし、これは本発明を特定の実施形態に対して限定しようとするのではなく、本発明の思想及び技術範囲に含まれるすべての変更、均等物ないし代替物を含むことが理解されなければならない。
【００３８】
各図面を説明して本発明を説明するために、類似の構成要素に類似の参照符号を付した。関連する公知技術の具体的な説明が本発明の概念を不明瞭にすると考えられる場合、その詳細な説明を省略する。
【００３９】
第１、第２等の用語は多様な構成要素を説明するのに使われるが、これらの構成要素はこれらの用語によって限定されない。上記用語は一つの構成要素を他の構成要素から区別することのみを目的として使われる。
【００４０】
例えば、本発明の権利範囲から逸脱することなく、第１構成要素は第２構成要素として表されてもよく、同様に第２構成要素も第１構成要素として表すことができる。
【００４１】
及び/またはという用語は複数の開示された項目の組み合わせまたは複数の項目のうちの１つを含むために用いられる。
【００４２】
ある構成要素が他の構成要素に「アクセスする」又は「接続する」という表現は、特定の構成要素が他の構成要素に直接的にアクセスするまたは接続すること、或いはある構成要素が複数の構成要素の間に存在することと理解される。
【００４３】
一方、特定の構成要素が他の構成要素に「直接接続する」又は「直接アクセスする」という表現は、中間に他の構成要素が存在しないことと理解される。
【００４４】
本出願で使った用語は特定の実施例を説明するためにのみ用いられ、本発明を限定しようとする意図ではない。
【００４５】
単数の表現は文脈上明示しない限り、複数を含む。本出願で、「含む」または「有する」などの用語は明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらの組み合わせが存在することを示す。また、一つまたはその以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらの組み合わせの存在または付加可能性をあらかじめ排除しないと理解される。
【００４６】
別に定められない限り、技術的や科学的な用語を含む、ここで使われるすべての用語は、本発明が属する技術分野で通常の知識を有する者によって一般的に理解されることと同じ意味を有する。
【００４７】
一般的に使われる辞書に定められているような用語は、関連技術の文脈上の意味と同一の意味を有することと解釈され、本出願で明白に定義しない限り、理想的又は過度に形式的な意味に解釈されない。
【００４８】
以下、本発明の説明のための前提事項及び技術的用語を説明する。
【００４９】
本発明の実施例は、複数のノードを有し、ファイルがブロック単位で各ノードに格納されている分散システムに基づく。しかし、本発明の技術的特徴は分散システムに限定されない。
【００５０】
本発明によるファイル並列ダウンロード実行方法は、ファイル単位でダウンロードが実行されるのではなく、特定ファイルが複数のブロックで構成されていることを前提にしてブロック単位で並列ダウンロードが実行される。
【００５１】
以下、本発明で使う用語を説明する。
【００５２】
１)「ノード動作率（又はノード稼働率）」とは、一定時間(測定時間)中に特定ノードが実際に動作した時間である。ノードの動作率は次式（１）によって計算できる。
【００５３】
Active(j)=ノードｊが実際動作した期間/測定期間      （１）
ここで、Active(j)はノードjの動作率であり、測定期間はあらかじめ設定された時間である。
【００５４】
一方、各ノードは自身の動作率を計算することができる。一方、ネットワークのエンティティー(所謂、ブローカーサーバー)が各ノードの動作率を計算してもよい。
【００５５】
２)「可用性」とは、複数のノードを有する分散システムでダウンロードするために、ファイルまたはブロックにアクセスできる確率をいう。可用性は「ファイル可用性」と「ブロック可用性」に分けられる。
【００５６】
２-１)「ブロック可用性」とは、分散システムにおける、ファイルを構成しているブロックへの全体的なアクセス可能性をいう。ここで、「全体」とは、分散システム内で対応するブロックを格納している全てのノードにアクセス可能な範囲をいう。
【００５７】
ブロックの可用性は次式（２）によって計算されうる。
【００５８】
Availblock(f，i)=１-Π(１-Active(j))、(j∈Sources(f，i))      （２）
ここでSources(f，i)はファイルfのブロックiを所有したノードの集合を示し、Availblock(f，i)はファイルfの断片であるブロックiの可用性を示す。
【００５９】
ブロック可用性はブロックをアップロードできるノードの動作に依存するので、ブロックをアップロードできるノードの動作率の倍数を用いて計算されうる。
【００６０】
２-２)「ファイル可用性」とは、分散システムにおける、ファイルへの全体的なアクセス可能性をいう。ここで、「全体」とは、分散システム内で、対応するファイルを格納している全てのノードにアクセス可能な範囲をいう。
【００６１】
そして、ブロックで構成されたファイルの可用性は次式（３）によって計算されうる。
【００６２】
Availfile(f)=Min{Availblock(f、k)}、(k:定数、０<k<m+１)      （３）
ここでAvailfile(f)はファイルfがm個のブロックに分割されるときのファイルfの可用性を示す。
【００６３】
ダウンロード中のファイル内のブロックが１つでもダウンロードできなければファイルのダウンロードは完了できないので、ファイルの可用性は、ファイルを構成するブロックの可用性の中で最小値に定めることができる。
【００６４】
４)本発明で、「ノード」はファイル(複数のブロックで構成されている)を構成する複数のブロックの一部を格納している装置を包括的に表すネットワークエンティティーである。また、ノードはクライアントとも表される。例えば、ノードはパーソナルコンピューター(PC)、携帯電話、パーソナルデジタルアシスタント(PDA)などの無線端末機だけでなく、他の端末にサービスを提供するコンピューター装置であるサーバーとして実施されてもよい。
【００６５】
５)本発明で、「ブローカー」は、ネットワークエンティティーとして、ノード(またはクライアント)がファイルのどのブロックを有しているかに関する情報を管理し、また各ノードの動作率の計算及び動作率に関する情報を管理する。また、ブローカーはノードが有するブロックに関する情報と各ノードの動作率に関する情報を用いて、ブロック可用性を計算する。
【００６６】
６)本発明で、「ファイルサーバー」は使用者がダウンロードしたいと望むファイルを提供するサーバーである。
【００６７】
以下、上記した本発明の技術的用語に基づき、本発明の基本概念及び具体的な実施例を説明する。
【００６８】
本発明の基本概念は、(１)ダウンロードされるべきファイルがいくつかのブロックを有し、多数のノードに格納されている場合、(２)各ノードの動作率及びブロック可用性に関する情報を用い、(３)低いブロック可用性を有するブロックからダウンロードを開始することで、ファイルのダウンロードを迅速に完了させる。(４)結果的に、対応するファイル(使用者がダウンロードを望むファイル)を構成するブロックを優先的にダウンロードさせることにより、ファイル可用性、すなわち、対応するファイルへのアクセス可能性が向上する。
【００６９】
以下、添付された図面を参照し、本発明による望ましい実施例を詳しく説明する。添付された図面で図面符号が同じ構成要素は、動作及び機能が同じなので重複する説明は省略する。
【００７０】
図１は、本発明の一実施例によるファイル並列ダウンロードシステムの構成図である。図１に図示されたように、通信網１１０を通じて、複数のノード(図１のクライアント)とブローカー(ネットワークのエンティティーとしてのサーバー)２００と、ファイルサーバー３００が接続されている。
【００７１】
図１のノード１００と、ブローカー２００と、ファイルサーバー３００のような構成要素の機能は既に説明した。
【００７２】
図１の通信網１１０は、インターネット及び移動通信網を含む。インターネットは、TCP/IPプロトコル及びその上位階層に存在する色々なサービス、すなわちHTTP(Hyper  Text  Transfer  Protocol)、Telnet、FTP(File  Transfer  Protocol)、DNS(Domain  Name  System)、SMTP(Simple  Mail  Transfer  Protocol)、SNMP(Simple  Network  Management  Protocol)、NFS(Network  File  Service)などを提供する全世界的な開放型ネットワーク構造を皆含む。また、移動通信網は基地局(BS)、移動電話交換局(MTSO:Mobile  Telephone  Switching  Office)、ホームメモリ局(HLR:Home  Location  Register)以外に、無線パッケトデータの送受信ができるようにするアクセスゲートウェー、パケットデータ処理ノード（PDSN：Packet  Data  Serving  Node)などのような構成要素も含む。
【００７３】
図１を参照する。例えば、ノード１(クライアント１)が特定ファイルをダウンロードしようと通信網のファイルサーバー３００に接続する場合、ブローカー２００はどのノード(クライアント)及び／またはどのサーバー(図示せず)がその特定ファイルのブロックを格納しているのかを示す、ファイルのブロック情報をノード１に提供する。また、ブローカー２００は各ノード(すなわち、クライアント２−４)の動作率に関する情報を提供する。一方、ブローカー２００は各ノードの動作率を用いてブロック可用性を計算してノード１に提供することもできる。また、他の実施例として、ノード１がブローカー２００から提供された各ノードの有していたブロック情報と各ノードの動作率に関する情報を用いて、ブロック可用性を直接計算することもできる。これは、ネットワークの作動負荷を軽減するという効果がある。
【００７４】
以下、図１で提案された概念を図２の信号の流れ図を参照して説明する。
【００７５】
図２は、本発明の一実施例によるファイル並列ダウンロードを説明する信号の流れ図である。図２は使用者がネットワークに接続して特定ファイルをダウンロードしようとする場合に、ネットワークがファイルを構成する各ブロックの可用性情報及びノードの動作率情報を提供する実施例を示す。ここで、ネットワークは図１の通信網１１０と、ブローカー２００と、ファイルサーバー３００を包括的に含むエンティティーである。
【００７６】
つまり、図２は複数のノードを有するファイル並列ダウンロードシステムにおいて、特定のノード１(すなわち、図２のノード１)にファイルをダウンロードする方法を示す。特に、ネットワークの観点から、システムに接続された複数のノードのブロック可用性に関する情報を得て；複数のノードの中で第１ノード(すなわち、図２のノード１)がファイルのダウンロードを要求した場合、ファイルを構成する複数のブロックの中で最小のブロック可用性値を有するブロックを優先的にノード１(すなわち、図２のノード１)にダウンロードする。
【００７７】
以下、図２を参照して更に詳しく説明する。ネットワーク(すなわち、ブローカー)はノードとの相互通信を通じて各ファイルを構成する複数ののうちのどのブロックがノードに格納されているのか認識し、各ノードに属するファイルのブロック情報を管理する。また、ネットワーク(すなわち、ブローカー)は各ノードの作動状態を監視し、式（１）を用いて各ノードの動作率を計算し、また、各ノードの動作率に関する情報を管理する(Ｓ１)。
【００７８】
ノード１が特定ファイルをダウンロードするために、ダウンロード要求メッセージをネットワークに送る(Ｓ２)。ネットワークがダウンロード要求メッセージを受けると、ブローカー２００が管理している情報、すなわち特定ファイルのどのブロックがどのノードに格納されているかに関する情報(便宜上、「第１情報」とする)と、ノードの動作率に関する情報(便宜上、「第２情報」とする)をノード１に提供する(Ｓ３)。段階Ｓ３で、ネットワーク(すなわち、ブローカー)はファイルのブロックに関する「ブロック可用性」に関連する情報を提供してもよい。「ブロック可用性」は既に説明したように、各ノードの動作率に基づき、式（２）から得ることができる。また、ネットワーク(すなわち、ブローカー)により計算された「ブロック可用性」の各値から、ノードに属するブロックの中で、最小のブロック可用性から最大のブロック可用性までの値をノード１に提供してもよい。したがって、ネットワークはノード１に最小の「ブロック可用性」を有するブロックを有しているノードから優先的にダウンロードさせる。一方、最小の「ブロック可用性」を有するブロックを有しているノードが二つ以上存在する場合、ネットワークはそれら２つのノードのうちの現在動作中のノードに接続するようにノード１に指示(命令)してよい。
【００７９】
段階Ｓ３は任意であってよい。また、他の実施例として、ネットワークは第１情報及び／又は第２情報をノード１に提供し、ノード１が該情報を用いてブロック可用性を計算し、ノード１が最小のブロック可用性に対応するブロックを有するノードに接続して該ブロックをダウンロードしてもよい。
【００８０】
また、段階Ｓ１は段階Ｓ２の後に実行されてもよい。
【００８１】
図３ないし図６を参照して、本発明の他の実施例を説明する。図３ないし図６は、説明の便宜上、ファイルをダウンロードしようとする特定のノード(すなわち、図３のノード１)の観点から説明する。しかし、最小の可用性値を有するブロックを特定のノードに優先的に提供(すなわち、ダウンロード)するネットワークは、図３ないし図６の実施例にも同じく適用できる。
【００８２】
図３は本発明の一実施例によるファイル並列ダウンロードを実行可能なファイル並列ダウンロードシステムの例を示す。図１との差異点は、図３の実施例では各ノード１００が自身の動作率を計算することである。
【００８３】
図３に示されたように、本発明の望ましい一実施例によるファイル並列ダウンロードシステムはノード１（１００a)、ノード２(１００b)、ノード３(１００c)、・・・、ノードn(１００n)のような複数のノードを有してよい。
【００８４】
ノード１００は通信網１１０に接続されたコンピューターとして実施され、通信機能を具備することにより通信網１１０に接続し他のノード(１００)に接続されるようにする限り如何なる種類の装置であってもよい。
【００８５】
ノード１００は例えば、パーソナルコンピューター(PC)、携帯電話、パーソナルデジタルアシスタント(PDA)などの無線端末機、他の端末にサービスを提供するコンピューター装置であるサーバーなどであってよい。以下では説明の便宜のためにファイル並列ダウンロードを要求するノード１００をノード１(１００a)と表し、ファイル転送を実行するノードを他のノード(ノード２(１００b)、ノード３(１００c)、・・・、ノードn(１００n))と表す。
【００８６】
各ノード１００は通信網１１０を通じて接続されている。本発明によるファイル並列ダウンロードを実行するために、ファイルの並列ダウンロードは、処理単位としてファイル自体ではなく、ブロック単位で実行されるように設定される。
【００８７】
次に、各ノード１００はノード１００自身の動作率を計算する。ノード１００の動作率とは、あらかじめ設定された測定時間中にノード１００自身が正常にファイル転送できる確率をいう。ノード１００の動作率は式（１）によって計算されうる。
【００８８】
一方、ファイルをダウンロードしようとするノード１(１００a)はダウンロードしようとするファイルを構成するブロックの可用性を計算する。ここで、ブロック可用性は式（２）によって計算されうる。
【００８９】
そしてブロックを有するファイルの可用性は式（３）によって計算されうる。
【００９０】
式（１）ないし式（３）を通じて、本発明はノード１００の動作率と、ファイル可用性及びファイルを構成するブロックの可用性に関する情報を得ることができる。ブロック可用性に関する情報に基づき、最小のブロック可用性値を有するブロックが認識され、該認識されたブロックを持っているノードからそのブロック(すなわち、最小の可用性値を有するブロック)を優先的にダウンロードする。結局、最小の可用性値を有するブロックが決まれば、そのブロック(すなわち、最小の可用性値を有するブロック)を有しているノード１００からブロックが伝送され、対応するファイルのダウンロードが実現される。
【００９１】
本発明によるファイル並列ダウンロードシステムにおけるファイルのダウンロードを図３を参照して説明した。上述のように、各ノード(１００a、１００b、１００c、…１００n)はノードの動作率を計算する。
【００９２】
このような状態で、ファイルのダウンロードを望むノード１(１００a)は、ダウンロードしようとするファイルに対するファイル検索メッセージを各ノード(１００b、１００c、…１００n)へ送信する。
【００９３】
ノード１(１００a)がダウンロードしようとするファイルに関連付けられた各ブロックを有する１又は複数のノード(１００b、１００c、・・・、１００n)はファイル検索メッセージに対する応答メッセージに自分のノード情報、ノードの動作率情報、そしてノードに格納されたファイルのブロック情報を含めてノード１(１００a)へ送信する。
【００９４】
ノード１(１００a)は受信したノード情報、ノードの動作率情報及びノードに格納されたファイルのブロック情報を用いてブロック可用性を計算し、最小可用性を有するブロックを有するノードからのダウンロードを要求することにより、対応するブロックをダウンロードする。
【００９５】
図４と図５は、ファイル可用性とブロック可用性の計算の例を示す。
【００９６】
図４は本発明の一実施例によるブロック選択方法を具現するためのブロック可用性とファイル可用性の計算の一例を示すファイル並列ダウンロードシステムの例である。
【００９７】
図４の例では、ファイルfが二つのブロックb１とb２に分割され、三つのノード、つまりノード１(１００a)、ノード２(１００b)及びノード３(１００c)の全てがブロックb１だけを格納している場合を仮定する。
【００９８】
図４の場合、ファイルfのダウンロード要求は完了できない。
【００９９】
ブロック可用性を計算するために用いた数式で表現すれば、ブロックb２を有するノードが存在しないので、ブロックb２の可用性は上述の式（２）からAvailblock(f，２)=０となる。
【０１００】
したがって、上述の式（３）からファイルfの可用性もAvailfile(f)=０になる。
【０１０１】
図５の例では、ファイルfが三つのブロックb１、b２及びb３に分割され、ノード１(１００a)がb１及びb３を、ノード２(１００b)がb２及びb３を、そしてノード３(１００c)がブロックb３を格納している場合を仮定する。
【０１０２】
そして、各ノードの動作率をActive(ノード１)=０．３、Active(ノード２)=０．３、Active(ノード３)=０．４と仮定する。
【０１０３】
この場合、ブロックb１、b２及びb３の可用性は上述の式（２）から次式（４）のように計算されうる。
【０１０４】
Availblock(f，b１)=１-(１-０．３)=０．３
Availblock(f，b２)=１-(１-０．３)=０．３
Availblock(f，b３)=１-((１-０．３)*(１-０．３)*(１-０．４))=０．７０６  （４）
計算された各ブロックの可用性値を用い、上述の式（３）によってファイルfの可用性は次式（５）のように計算されうる。
【０１０５】
Availfile(f)=Min{０．３、０．３、０．７０６}=０．３      （５）
これらの計算結果からファイルとそのファイルへのアクセス可能性（つまり可用性値）を計算することができ、本発明ではこのような可用性値を用いてファイルの並列ダウンロードを実行しうる。
【０１０６】
図６は、このような各ノードの動作率とファイル／ブロック可用性の計算によって、ファイルの並列ダウンロードが実行される過程を示す。
【０１０７】
図６は本発明の一実施例による、ファイル並列ダウンロードにおけるブロック選択方法が具現される順序を図示したフローチャートである。図６に図示されたように、並列ダウンロードが始まれば、ファイルを構成するすべてのブロックの受信が完了したか可否が確認される(Ｓ４００)。
【０１０８】
ダウンロードできなかったブロックが存在する場合、該ブロックを有するノードの動作率に関する情報を用いて、ダウンロードされていないブロックのブロック可用性が計算される(Ｓ４０２)。
【０１０９】
ノードの動作率とブロック可用性を計算する方法は上記の式（１）と式（２）を
用いてよい。
【０１１０】
計算されたブロック可用性の中で最小可用性値を有するブロックを選択する(Ｓ４０４)。
【０１１１】
そして選択された最小利用性値を有するブロックの数が１個を超過するのか否かを決定する(Ｓ４０６)。
【０１１２】
もし選択された最小利用性値を有するブロックの数が１個である場合、対応するブロックを有するノードは、選択されたブロックのダウンロードを要求される(Ｓ４０８)。
【０１１３】
一方、未だダウンロードされていないブロックが存在し、該ブロックを有するノードが現在通信網内動作しない場合、選択されたブロックを有するノードが通信網内で動作するまで待機し、対応するノードが動作したときに、選択されたブロックをダウンロードする。
【０１１４】
他方、選択された最小利用性値を有するブロックが１個を超過する場合、最小可用性値を有するブロック中一つのブロックをランダムに選択し、対応するブロックを有するノードは、選択されたブロックのダウンロードを要求される(Ｓ４１０)。
【０１１５】
一方、最小可用性値を有するブロックのうちの一つのブロックをランダムに選択するときに、対応するブロックを有するノードが現在動作しているか否かを決定し、対応するブロックを有するノードが動作している場合、該動作しているノードに属するブロックを優先的に選択してダウンロードする。
【０１１６】
本発明ではノードの動作率とこれを利用してブロック／ファイルの可用性を計算して、低いブロック可用性を有するブロックからダウンロードすることで、ファイル全体のダウンロードを迅速に行なう。
【０１１７】
また、対応するファイルを構成するブロックを優先してダウンロードするので、全体的なファイル可用性が増大する、すなわち対応するファイルへのアクセス可能性が向上する。
【０１１８】
以上、本発明は図面に示された実施例を参照して説明されたが、上述の実施例は例示に過ぎず、本発明の技術分野の通常の知識を有する者は多様な変形及び均等な他の実施例が可能だという点を理解する。したがって、本発明の真の技術的保護範囲は添付された特許請求の範囲の技術的思想によって定められなければならない。
【符号の説明】
【０１１９】
１１０    通信網
２００    ブローカー
３００    ファイルサーバー
１００ｂ  ノード２
１００ｃ  ノード３
１００ｄ  ノード４
１００ｎ  ノードｎ
【図１】
0005659016.tif 000002
【図２】
0005659016.tif 000003
【図３】
0005659016.tif 000004
【図４】
0005659016.tif 000005
【図５】
0005659016.tif 000006
【図６】
0005659016.tif 000007