(57)【要約】  本開示の実施形態は、データファイルの存在を判定するための方法、装置、及びシステムを提供する。方法は、第１ネットワークノードが、要求を第２ネットワークノードに送信する段階であって、要求はデータファイルの第１識別子を含む、段階と、第２ネットワークノードが、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する段階と、ローカルマッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得する段階と、第１位置を第１ネットワークノードに送信する段階と、第１ネットワークノードが、第１位置に従ってデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出する段階と、ファイルブロックの第２特性値を第２ネットワークノードに送信する段階と、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを第２ネットワークノードが判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する段階とを含む。
2018500650.tif 000002
【特許請求の範囲】
【請求項１】
第１ネットワークノードから第２ネットワークノードへデータファイルの要求を送信する段階であって、前記要求は前記データファイルの第１識別子を有する、段階と、
前記データファイルの前記第１識別子に基づいて前記第２ネットワークノードが、ローカルにマッチングしたデータファイルを検索する段階と、
前記ローカルにマッチングしたデータファイルからファイルブロックを選択し、前記ファイルブロックの第１位置を取得する段階と、
前記第２ネットワークノードから前記第１ネットワークノードへ前記第１位置を送信する段階と、
前記第１位置に基づいて前記第１ネットワークノードが、前記データファイルから対応するファイルブロックを選択し、前記選択されたファイルブロックの第２特性値を算出する段階と、
前記第１ネットワークノードから前記第２ネットワークノードへ前記第２特性値を送信する段階と、
前記第２特性値が前記選択されたファイルブロックの第３特性値とマッチングするか否かを前記第２ネットワークノードが判定し、マッチングする場合、前記データファイルが存在すると判定する段階と
を備える、データファイルの存在を判定するための方法。
【請求項２】
前記第２ネットワークノードが、前記データファイルが存在するか否かを示す情報を前記第１ネットワークノードに戻す段階を更に備える、請求項１に記載のデータファイルの存在を判定するための方法。
【請求項３】
データファイルの要求を第２ネットワークノードに送信する段階であって、前記要求は前記データファイルの第１識別子を含む、段階と、
前記第２ネットワークノードにより送信される第１位置を受信する段階と、
前記第１位置に従って前記データファイルから、対応する位置におけるファイルブロックを選択し、前記選択されたファイルブロックの第２特性値を算出する段階と、
前記第２特性値を前記第２ネットワークノードに送信する段階と
を備える、データファイルの存在を判定するための方法。
【請求項４】
前記データファイルが存在するか否かを示す、前記第２ネットワークノードにより戻される情報を受信する段階を更に備える、請求項３に記載のデータファイルの存在を判定するための方法。
【請求項５】
第１ネットワークノードにより送信されるデータファイルの要求を受信する段階であって、前記要求は前記データファイルの第１識別子を含む、段階と、
前記データファイルの前記第１識別子に従ってローカルマッチングデータファイルを検索する段階と、
前記ローカルマッチングデータファイルからファイルブロックを選択し、前記選択されたファイルブロックの第１位置を取得する段階と、
前記第１位置を前記第１ネットワークノードに送信する段階と、
前記第１ネットワークノードにより送信されるファイルブロックの第２特性値を受信する段階と、
前記選択されたファイルブロックの第３特性値に前記第２特性値がマッチングするか否かを判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定する段階と
を備える、データファイルの存在を判定するための方法。
【請求項６】
第３ネットワークノードが、データファイルの要求を第４ネットワークノードに送信する段階であって、前記要求は前記データファイルの第１識別子、前記データファイル内のファイルブロックの第１位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を含む、段階と、
前記第４ネットワークノードが、前記データファイルの前記第１識別子に従ってローカルマッチングデータファイルを検索する段階と、
前記第４ネットワークノードが、前記第１位置の情報に従って前記ローカルマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を算出する段階と、
前記対応する位置における前記ファイルブロックの前記第３特性値に前記第２特性値がマッチングするか否かを前記第４ネットワークノードが判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定する段階と
を備える、データファイルの存在を判定するための方法。
【請求項７】
前記第４ネットワークノードが、前記データファイルが存在するか否かを示す情報を前記第３ネットワークノードに戻す段階を更に備える、請求項６に記載のデータファイルの存在を判定するための方法。
【請求項８】
データファイルの要求を第４ネットワークノードに送信する段階を備え、
前記要求は前記データファイルの第１識別子、前記データファイル内のファイルブロックの第１位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を含む、データファイルの存在を判定するための方法。
【請求項９】
前記データファイルが存在するか否かを示す、前記第４ネットワークノードにより戻される情報を受信する段階を更に備える、請求項８に記載のデータファイルの存在を判定するための方法。
【請求項１０】
データファイルの要求を受信する段階であって、前記要求は、前記データファイルの第１識別子、前記データファイル内のファイルブロックの第１位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を含む、段階と、
前記データファイルの前記第１識別子に従ってローカルマッチングデータファイルを検索する段階と、
前記第１位置の情報に従って、対応する位置におけるファイルブロックの第３特性値を、前記ローカルマッチングデータファイルから取得する段階と、
前記対応する位置における前記ファイルブロックの前記第３特性値に前記第２特性値がマッチングするか否かを判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定する段階と
を備える、データファイルの存在を判定するための方法。
【請求項１１】
前記データファイルが存在するか否かを示す情報を第３ネットワークノードに戻す段階を更に備える、請求項１０に記載のデータファイルの存在を判定するための方法。
【請求項１２】
前記データファイルが存在するか否かを示す情報を前記第３ネットワークノードに戻す段階を更に備える、請求項１１に記載のデータファイルの存在を判定するための方法。
【請求項１３】
前記第１識別子は、ファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つを有する、請求項１から１２のいずれか一項に記載のデータファイルの存在を判定するための方法。
【請求項１４】
前記ファイルブロックの前記第１位置は、指定により取得される前記ファイルブロックの第１位置を有する、請求項１から１２のいずれか一項に記載のデータファイルの存在を判定するための方法。
【請求項１５】
前記ファイルブロックの前記第１位置は、ランダムアルゴリズムを用いた計算により取得される前記ファイルブロックの第１位置を更に有する、請求項１から１２のいずれか一項に記載のデータファイルの存在を判定するための方法。
【請求項１６】
前記ファイルブロックの前記第１位置は、前記データファイル内の前記ファイルブロックの開始位置及び終了位置、又は前記データファイル内の前記ファイルブロックの開始位置及び長さを有する、請求項１から１２のいずれか一項に記載のデータファイルの存在を判定するための方法。
【請求項１７】
第１ネットワークノードと、
第２ネットワークノードと
を備え、
前記第１ネットワークノードは、
データファイルの要求を前記第２ネットワークノードに送信し、前記要求は前記データファイルの第１識別子を含み、
前記第２ネットワークノードにより送信されるファイルブロックの第１位置に従って、伝送されるべき前記データファイルから、対応する位置におけるファイルブロックを選択し、前記選択されたファイルブロックの第２特性値を算出し、
前記ファイルブロックの前記第２特性値を前記第２ネットワークノードに送信する
ように構成され、
前記第２ネットワークノードは、
前記第１ネットワークノードにより送信された前記要求内の前記データファイルの前記第１識別子に従ってローカルマッチングデータファイルを検索し、
前記ローカルマッチングデータファイルからファイルブロックを選択し、前記選択されたファイルブロックの第１位置を取得し、
前記第１位置を前記第１ネットワークノードに送信し、
前記第１ネットワークノードにより送信された前記第２特性値に従って、前記選択されたファイルブロックの第３特性値に前記第２特性値がマッチングするか否かを判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定する
ように構成される、データファイルの存在を判定するためのシステム。
【請求項１８】
データファイルの要求を第２ネットワークノードに送信するように構成される第１要求ユニットであって、前記要求は前記データファイルの第１識別子を含む、第１要求ユニットと、
前記第２ネットワークノードにより送信された第１位置を受信するように構成される第１位置受信ユニットと、
前記第１位置に従って前記データファイルから、対応する位置におけるファイルブロックを選択し、前記選択されたファイルブロックの第２特性値を算出するように構成される第２特性値取得ユニットと、
前記第２特性値を前記第２ネットワークノードに送信するように構成される第２特性値送信ユニットと
を備える、データファイルの存在を判定するための装置。
【請求項１９】
前記データファイルが存在するか否かを示す、前記第２ネットワークノードにより戻される情報を受信するように構成される第１フィードバック情報受信ユニットを更に備える、請求項１８に記載のデータファイルの存在を判定するための装置。
【請求項２０】
第１ネットワークノードにより送信されるデータファイルの要求を受信するように構成される第１要求受信ユニットであって、前記要求は前記データファイルの第１識別子を含む、第１要求受信ユニットと、
前記データファイルの前記第１識別子に基づいてローカルマッチングデータファイルを検索するように構成される第１マッチングユニットと、
前記ローカルマッチングデータファイルからファイルブロックを選択し、前記選択されたファイルブロックの第１位置を取得するように構成される第１位置取得ユニットと、
全ての前記選択されたファイルブロックの第１位置を前記第１ネットワークノードに送信するように構成される第１位置送信ユニットと、
前記第１ネットワークノードにより送信されるファイルブロックの第２特性値を受信するように構成される第２特性値受信ユニットと、
前記選択されたファイルブロックファイルの第３特性値に前記第２特性値がマッチングするか否かを判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定するように構成される第１データファイル存在判定ユニットと
を備える、データファイルの存在を判定するための装置。
【請求項２１】
前記データファイルが存在するか否かを示す情報を前記第１ネットワークノードに戻すように構成される第１情報フィードバックユニットを更に備える、請求項２０に記載のデータファイルの存在を判定するための装置。
【請求項２２】
データファイルの要求を第４ネットワークノードに送信するように構成される第３ネットワークノードであって、前記要求は前記データファイルの第１識別子、前記データファイル内のファイルブロックの第１位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を含む、第３ネットワークノードと、
前記データファイルの前記第１識別子に従ってローカルマッチングデータファイルを検索し、次に、前記第１位置に従って前記ローカルマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得し、前記対応する位置における前記ファイルブロックの前記第３特性値に前記第２特性値がマッチングするか否かを判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定するように構成される前記第４ネットワークノードと
を備える、データファイルの存在を判定するためのシステム。
【請求項２３】
データファイルの要求を第４ネットワークノードに送信するように構成される第２要求ユニットを備え、
前記要求は前記データファイルの第１識別子、前記データファイル内のファイルブロックの第１位置、及び前記第１位置におおける前記ファイルブロックに対応する第２特性値を含む、データファイルの存在を判定するための装置。
【請求項２４】
前記データファイルが存在するか否かを示す、前記第４ネットワークノードにより戻される情報を受信するように構成される第２フィードバック情報受信ユニットを更に備える、請求項２３に記載のデータファイルの存在を判定するための装置。
【請求項２５】
データファイルの要求を受信するように構成される第２要求受信ユニットであって、前記要求は前記データファイルの第１識別子、前記データファイル内のファイルブロックの第１位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を含む、第２要求受信ユニットと、
前記データファイルの前記第１識別子に基づいてローカルマッチングデータファイルを検索するように構成される第２マッチングユニットと、
前記第１位置に従って前記ローカルマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得するように構成される第３特性値取得ユニットと、
前記対応する位置における前記ファイルブロックの前記第３特性値に前記第２特性値がマッチングするか否かを判定し、前記マッチングの結果に基づいて前記データファイルが存在するか否かを判定するように構成される第２データファイル存在判定ユニットと
を備える、データファイルの存在を判定するための装置。
【請求項２６】
前記データファイルが存在するか否かを示す情報を第３ネットワークノードに戻すように構成される第２情報フィードバックユニットを更に備える、請求項２５に記載のデータファイルの存在を判定するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信技術の分野、特に、データファイルの存在を判定するための方法、装置、及びシステムに関する。
【背景技術】
【０００２】
データファイルは、多くの場合、データ通信の分野においてネットワークノード間で伝送される必要がある。
【０００３】
いくつかのシナリオでは、伝送されるべきデータファイルがネットワークノードに既に格納されているか否かを判定することが求められる。例えば、ネットワークノードＡは、データファイルをネットワークノードＢに伝送する必要があるが、それにもかかわらず、このデータファイルがネットワークノードＢに既に格納されている。従って、ネットワークノードＡからデータファイルをアップロードすることは不要である。
【０００４】
前述のシナリオでは、反復伝送がネットワークリソースを無駄にする。従って、現在の技術を用いて、伝送されるべきデータファイルがネットワークノードに既に格納されているか否かを判定する。２つのネットワークノード間のデータ伝送についての段階は、
１）データファイルを伝送するための要求をネットワークノードＡがネットワークノードＢに送信する段階であって、要求はデータファイルの全体的な特性値を運ぶ、段階、
２）データファイルの全体的な特性値を取得した後に、ネットワークノードＢが、全体的な特性値がローカルに存在するか否かのクエリを行って、ネットワークノードＡが伝送することを要求するデータファイルが存在するか否かを判定する段階、及び
３）ネットワークノードＡがアップロードすることを要求するデータファイルが存在するとネットワークノードＢが判定したとき、高速伝送ポリシが開始される段階である。例えば、ネットワークノードＢは、ネットワークノードＡに成功した伝送を通知する。ネットワークノードＡが伝送することを要求するデータファイルが存在しないとネットワークノードＢが判定したとき、ネットワークノードＡは作成アップロードシナリオに入る。
【０００５】
現在の技術におけるデータファイルの存在を判定するための前述の方法では、用いられるデータファイルの全体的な特性値は、概してデータファイルの全体的なＭＤ５値又はデータファイルの全体的なＳＨＡ値である。
【０００６】
本明細書で開示される実施形態についての実装を通じて、本発明者は、現在の技術が少なくとも以下の問題を有することを見いだした。
【０００７】
現在の技術で頻繁に用いられるＭＤ５値の弱いアンチ衝突性能に起因して、２つの異なるデータファイルは、同一のＭＤ５値を生成しやすい。更に、ＭＤ５の深い理解に伴って、人々は、意図的にＭＤ５値を構築する可能性がある。ＳＨＡアルゴリズムは同様の問題を有する。結果として、現在の技術を用いて、データファイルが存在するか否かを正確に判定できない。
【発明の概要】
【０００８】
開示される実施形態の目的は、データファイルの存在を判定するための方法、装置、及びシステムを提供することであり、これにより、ファイルが存在するか否かをより正確に判定する。
【０００９】
前述の技術的問題を解決すべく、データファイルの存在を判定するための方法、装置、及びシステムが以下の実施形態において提供される。
【００１０】
データファイルの存在を判定するための方法は、第１ネットワークノードが、データファイルの要求を第２ネットワークノードに送信する段階であって、当該要求はデータファイルの第１識別子を含む、段階と、第２ネットワークノードが、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する段階と、マッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得する段階と、第２ネットワークノードが、第１位置を第１ネットワークノードに送信する段階と、第１ネットワークノードが、第１位置に従ってデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出する段階と、第１ネットワークノードが、ファイルブロックの第２特性値を第２ネットワークノードに送信する段階と、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを第２ネットワークノードが判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する段階とを含む。
【００１１】
データファイルの存在を判定するための方法は、データファイルの要求を第２ネットワークノードに送信する段階であって、当該要求はデータファイルの第１識別子を含む、段階と、第２ネットワークノードにより送信される第１位置を受信する段階と、第１位置に従ってデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出する段階と、第２特性値を第２ネットワークノードに送信する段階とを含む。
【００１２】
データファイルの存在を判定するための方法は、第１ネットワークノードにより送信されるデータファイルの要求を受信する段階であって、当該要求はデータファイルの第１識別子を含む、段階と、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する段階と、マッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得する段階と、第１位置を第１ネットワークノードに送信する段階と、第１ネットワークノードにより送信されるファイルブロックの第２特性値を受信する段階と、ローカルマッチングデータファイルから選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する段階とを含む。
【００１３】
データファイルの存在を判定するための方法は、第３ネットワークノードが、データファイルの要求を第４ネットワークノードに送信する段階であって、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む、段階と、第４ネットワークノードが、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する段階と、第４ネットワークノードが、第１位置の情報に従ってマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を算出する段階と、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを第４ネットワークノードが判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する段階とを含む。
【００１４】
データファイルの存在を判定するための方法は、データファイルの要求に第４ネットワークノードを送信する段階を含み、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【００１５】
データファイルの存在を判定するための方法は、データファイルの要求を受信する段階であって、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む、段階と、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する段階と、第１位置の情報に従って対応する位置におけるファイルブロックの第３特性値をマッチングデータファイルから取得する段階と、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する段階とを含む。
【００１６】
データファイルの存在を判定するためのシステムは、第１ネットワークノードと、第２ネットワークノードとを含み、第１ネットワークノードは、データファイルの要求を第２ネットワークノードに送信し、当該要求はデータファイルの第１識別子を含み、第２ネットワークノードにより送信されるファイルブロックの第１位置に従って、伝送されるべきデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出し、ファイルブロックの第２特性値を第２ネットワークノードに送信するように構成され、第２ネットワークノードは、第１ネットワークノードにより送信された要求内のデータファイルの第１識別子に従ってローカルマッチングデータファイルを検索し、マッチングデータファイルからファイルブロックを選択して、選択されたファイルブロックの第１位置を取得し、第１位置を第１ネットワークノードに送信し、第１ネットワークノードにより送信された第２特性値に従って、ローカルマッチングデータファイルから選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定して、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される。
【００１７】
データファイルの存在を判定するための装置は、データファイルの要求を第２ネットワークノードに送信するように構成される第１要求ユニットであって、当該要求はデータファイルの第１識別子を含む、第１要求ユニットと、第２ネットワークノードにより送信される第１位置を受信するように構成される第１位置受信ユニットと、第１位置に従ってデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出するように構成される第２特性値取得ユニットと、第２特性値を第２ネットワークノードに送信するように構成される第２特性値送信ユニットとを含む。
【００１８】
データファイルの存在を判定するための装置は、第１ネットワークノードにより送信されるデータファイルの要求を受信するように構成される第１要求受信ユニットであって、当該要求はデータファイルの第１識別子を含む、第１要求受信ユニットと、データファイルの第１識別子に基づいてローカルマッチングデータファイルを検索するように構成される第１マッチングユニットと、マッチングデータファイルからファイルブロックを選択して、選択されたファイルブロックの第１位置を取得するように構成される第１位置取得ユニットと、全ての選択されたファイルブロックの第１位置を第１ネットワークノードに送信するように構成される第１位置送信ユニットと、第１ネットワークノードにより送信されたファイルブロックの第２特性値を受信するように構成される第２特性値受信ユニットと、ローカルマッチングデータファイルから選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定して、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第１データファイル存在判定ユニットとを含む。
【００１９】
データファイルの存在を判定するためのシステムは、データファイルの要求を第４ネットワークノードに送信するように構成される第３ネットワークノードであって、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む、第３ネットワークノードと、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索し、次に、第１位置に従ってマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得し、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定して、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第４ネットワークノードとを含む。
【００２０】
データファイルの存在を判定するための装置は、データファイルの要求を第４ネットワークノードに送信するように構成される第２要求ユニットを含み、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【００２１】
データファイルの存在を判定するための装置は、データファイルの要求を受信するように構成される第２要求受信ユニットであって、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む、第２要求受信ユニットと、データファイルの第１識別子に基づいてローカルマッチングデータファイルを検索するように構成される第２マッチングユニットと、第１位置に従ってマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得するように構成される第３特性値取得ユニットと、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定して、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第２データファイル存在判定ユニットとを含む。
【００２２】
検索されるべきデータファイルの第１識別子に対してマッチングが実行され、次に、ファイルブロックの第２特性値との更なるマッチングのために第１位置に対応するファイルブロックの第３特性値がマッチングデータファイルから選択されており、たとえ第１識別子が衝突を起こすおそれがあったとしても、すなわち、検索されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減されることが、本開示の実施形態において提供される上記の技術的解決手段から理解され得る。更に、ファイルブロックの第１位置が予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、データファイルが既に存在しているか否かが正確に判定され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【図面の簡単な説明】
【００２３】
本開示の実施形態における技術的解決手段をより明確に説明すべく、実施形態の説明に用いられる図面が以下に簡潔に紹介される。以下で説明される図面は、開示される一部の実施形態に過ぎず、当業者は、創造的な努力なしにこれらの図面に従って他の図面を取得できる。
【００２４】
【図１】本開示におけるデータファイルの存在を判定するための方法の第１実施形態についてのフロー図である。
【００２５】
【図２】本開示におけるデータファイルの存在を判定するための方法の第２実施形態についてのフロー図である。
【００２６】
【図３】本開示におけるデータファイルの存在を判定するための方法の第３実施形態についてのフロー図である。
【００２７】
【図４】本開示におけるデータファイルの存在を判定するための方法の第４実施形態についてのフロー図である。
【００２８】
【図５】本開示におけるデータファイルの存在を判定するための方法の第５実施形態についてのフロー図である。
【００２９】
【図６】本開示におけるデータファイルの存在を判定するための方法の第６実施形態についてのフロー図である。
【００３０】
【図７】本開示におけるデータファイルの存在を判定するための方法の第８実施形態についてのフロー図である。
【００３１】
【図８】本開示におけるデータファイルの存在を判定するための方法の第９実施形態についてのフロー図である。
【００３２】
【図９】本開示におけるデータファイルの存在を判定するための方法の第１０実施形態についてのフロー図である。
【００３３】
【図１０】本開示におけるデータファイルの存在を判定するためのシステムの第１実施形態についての概略図である。
【００３４】
【図１１】本開示におけるデータファイルの存在を判定するための装置の第１実施形態についての概略図である。
【００３５】
【図１２】本開示におけるデータファイルの存在を判定するための装置の第２実施形態についての概略図である。
【００３６】
【図１３】本開示におけるデータファイルの存在を判定するためのシステムの第２実施形態についての概略図である。
【００３７】
【図１４】本開示におけるデータファイルの存在を判定するための装置の第４実施形態についての概略図である。
【発明を実施するための形態】
【００３８】
本開示の実施形態は、データファイルの存在を判定するための方法、装置、及びシステムを提供する。
【００３９】
当業者が本開示における技術的解決手段をより理解できるように、本開示の実施形態における技術的解決手段が図面に関連して以下に明確かつ十分に説明される。説明される実施形態は、本開示の実施形態の全てではなく、一部に過ぎない。本明細書に開示される実施形態に基づいて、創造的な努力なしに当業者により得られる全て他の実施形態が本開示の範囲内に含まれる。
【００４０】
本開示の実施形態についての具体的な実装は、いくつかの具体的な例を用いて以下に詳細に説明される。
【００４１】
本開示におけるデータファイルの存在を判定するための方法の第１実施形態が以下に紹介される。図１に関して、本実施形態は以下の段階を含む。
【００４２】
Ｓ１０１：第１ネットワークノードＭは、データファイルの要求を第２ネットワークノードＮに送信し、当該要求は、データファイルの第１識別子を含む。
【００４３】
ここで第１識別子はファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つであってよく、一実施形態において、少なくとも第１特性値を含む。第１特性値はデータファイルの全体的な特性値を指す。一実施形態において、特性値はメッセージダイジェスト５（ＭＤ５）値であってよい。
【００４４】
実際の適用では、データファイルの要求を第２ネットワークノードＮに送信する前に、第１ネットワークノードＭは、データファイルの第１特性値、すなわち、データファイルの全体的な特性値を算出する必要がある。第１ネットワークノードＭにより算出されるデータファイルの全体的な特性値は、第２ネットワークノードＮに格納されるデータファイルの特性値のタイプと同じタイプのものであってよい、又は、他の選択された特性値であってよい。
【００４５】
第２ネットワークノードＮに格納されるデータファイルの特性値のタイプと同じタイプの特性値の選択及び利用は、第１ネットワークノードＭにより用いられる他の特性値に切り替える必要性に起因して、格納されるデータに対して新たな特性値を第２ネットワークノードＮが再算出することを防ぐことができる。
【００４６】
加えて、本開示の実施形態における特性値は、ＭＤ５値に限定されることなく、他の形式、例えば、実際には、セキュアハッシュアルゴリズム（ＳＨＡ）値であってもよく、開示される実施形態がそれに限定されないことに更に留意されるべきである。
【００４７】
Ｓ１０２：第２ネットワークノードＮは、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【００４８】
第１ネットワークノードＭにより送信されたデータファイルの第１識別子を第２ネットワークノードＮが受信したとき、第２ネットワークノードＮはローカルデータファイルの第１識別子を取得し、第１識別子は、計算により取得されてよい、又は、ローカルに格納されるデータファイルの関連情報を検索することにより取得されてよい。次に、第１識別子にマッチングするローカルデータファイルの検索が行われる。
【００４９】
いくつかの実施形態において、マッチングデータファイルを見つけることができないとき、第２ネットワークノードＮは、第１ネットワークノードＭにより伝送されるべきデータファイルがローカルに存在しないと判定でき、第２ネットワークノードＮは、データファイルが存在しないことを示す情報を第１ネットワークノードＭに戻してよい。
【００５０】
Ｓ１０３：マッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得する。
【００５１】
いくつかの実施形態において、第２ネットワークノードＮがローカルにマッチングデータファイルを見つけたときに１つのマッチングデータファイルのみがある場合、このマッチングデータファイルからファイルブロックを取得することのみが求められており、複数のマッチングデータファイルがあるとき、各マッチングデータファイルからファイルブロックを選択することが求められている。１つのファイルブロック又は複数のファイルブロックがあってよく、ファイルブロックの選択は、ランダムアルゴリズムを用いて指定又は実行されてよい。次に、選択されたファイルブロックの第１位置が取得される。ここで第１位置は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置、及びファイルブロックの長さであってよく、又は、ファイルブロックが属するデータファイルの開始位置及び終了位置であってよく、複数のファイルブロックが選択されたとき、複数のファイルブロックの長さは同じ又は異なっていてよい。
【００５２】
更に、分散ストレージシナリオでは、データファイルは、ブロックに分けられてファイルブロックの形式で第２ネットワークノードＮに格納され、全てのファイルブロックは、最後のファイルブロックを除き、同じサイズを有しており、最後のファイルブロックのサイズは、他のファイルブロックのサイズより小さい又は等しいことが求められる。第２ネットワークノードＮは、格納されるデータファイルの関連情報、例えば、データファイルのファイル名、全体的な特性値、ファイルサイズ、及びファイル構成テーブルを格納し、ファイル構成テーブルは、データファイルの全てのファイルブロック構成テーブルを連続的に格納し、各ファイルブロック構成テーブルは、ファイルブロック識別子、先行するファイルブロック識別子、後続のファイルブロック識別子、ファイルブロック開始位置、ファイルブロックの長さ、及びファイルブロックの特性値を含む。
【００５３】
加えて、第２ネットワークノードＮにローカルに格納されるデータファイルの関連情報を検索することによりファイルブロックの第１位置が取得されたとき、ファイルブロックの第１位置は、第２ネットワークノードＮにローカルに格納される第１位置にマッチングする必要がある。
【００５４】
Ｓ１０４：第２ネットワークノードＮは第１位置を第１ネットワークノードＭに送信する。
【００５５】
Ｓ１０５：第１ネットワークノードＭは、第１位置に従ってデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出する。
【００５６】
実際には、ファイルブロックの第２特性値は、ここで、ファイルブロックが配置されるデータファイルの全体的な特性値と同じタイプの特性値であり、特性値は、ＭＤ５値であってよく、又は、他の形式、例えば、ＳＨＡ値であってよく、開示される実施形態はそれらに限定されない。
【００５７】
Ｓ１０６：第１ネットワークノードＭはファイルブロックの第２特性値を第２ネットワークノードＮに送信する。
【００５８】
Ｓ１０７：第２ネットワークノードＮは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【００５９】
一実施形態において、第２ネットワークノードＮは、計算により、選択されたファイルブロックの第３特性値を取得してよい、又は、第２ネットワークノードＮにローカルに格納されるデータファイルの関連情報を検索することにより、選択されたファイルブロックの第３特性値を取得してよい。第１ネットワークノードＭにより戻された第２特性値を受信した後、第２ネットワークノードＮは、戻された第２特性値を選択されたファイルブロックの第３特性値とマッチングする。
【００６０】
１つのファイルブロックのみがマッチングされる必要があるとき、ローカルマッチングデータファイル内の対応する選択されたファイルブロックの第３特性値にファイルブロックの第２特性値がマッチングするか否かを判定することのみが求められている。第２特性値が第３特性値にマッチングする場合、データファイルが存在することが確認され、第２特性値が第３特性値にマッチングしない場合、データファイルが存在しないことが確認される。
【００６１】
更に、複数のファイルブロックがマッチングされる必要があるとき、第２ネットワークノードＮは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に全てのファイルブロックの第２特性値がマッチングするか否かを判定する必要がある。当該第２特性値のうちの１つが第３特性値にマッチングしなかった場合、データファイルが存在しないと判定され、全ての第２特性値が第３特性値にマッチングした場合、データファイルが存在すると判定される。
【００６２】
更に、第２ネットワークノードＮは、データファイルが存在するか否かを示す情報を第１ネットワークノードＭに戻す。
【００６３】
上記で説明された実施形態における技術的解決手段によれば、検索されるべきデータファイルの第１識別子に対してマッチングが実行され、次に、ファイルブロックの第１位置がマッチングデータファイルから選択され、検索されるべきデータファイル内の第１位置における第２特性値が、データファイルが存在するか否かを見つけ出すのに用いられるネットワークノード内の対応する位置における第３特性値と更にマッチングされることが理解され得る。たとえ第１識別子が衝突を起こすおそれがあったとしても、すなわち、検索されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減される。更に、ファイルブロックの第１位置が予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低く、従って、検索されるべきデータファイルが存在するか否かが正確に判定され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【００６４】
第１ネットワークノードに着目すると、前述の第１方法の実施形態は、図２に関して、以下の段階を具体的に含む第２方法の実施形態において説明され得る。
【００６５】
Ｓ２０１：データファイルの要求を第２ネットワークノードに送信し、当該要求はデータファイルの第１識別子を含む。
【００６６】
Ｓ２０２：第２ネットワークノードにより送信された第１位置を受信する。
【００６７】
Ｓ２０３：第１位置に従ってデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出する。
【００６８】
Ｓ２０４：第２特性値を第２ネットワークノードに送信する。
【００６９】
更に、データファイルが存在するか否かを示す、第２ネットワークノードにより戻された情報が受信される。
【００７０】
上記で説明された実施形態における技術的解決手段によれば、検索されるべきデータファイルの第１識別子に対してマッチングが実行され、次に、マッチングデータファイルから選択されたファイルブロックの第１位置が取得され、検索されるべきデータファイル内の第１位置におけるファイルブロックに対応する第２特性値が取得され、更なるマッチングが実行されるので、検索されるべきデータファイルが存在するか否かが正確に判定され得ることが理解され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【００７１】
第２ネットワークノードに着目すると、前述の第１方法の実施形態は、図３に関して、以下の段階を具体的に含む第３方法の実施形態に関して説明され得る。
【００７２】
Ｓ３０１：第１ネットワークノードにより送信されたデータファイルの要求を受信し、当該要求はデータファイルの第１識別子を含む。
【００７３】
Ｓ３０２：データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【００７４】
Ｓ３０３：マッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得する。
【００７５】
Ｓ３０４：第１位置を第１ネットワークノードに送信する。
【００７６】
Ｓ３０５：第１ネットワークノードにより送信されたファイルブロックの第２特性値を受信する。
【００７７】
Ｓ３０６：ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【００７８】
更に、データファイルが存在するか否かを示す情報が第１ネットワークノードに戻される。
【００７９】
上記で説明された実施形態における技術的解決手段によれば、受信した要求内のデータファイルの第１識別子に対してマッチングが実行され、次に、マッチングデータファイルから複数のファイルブロックの第１位置が選択され、データファイル内の第１位置に対応する第２特性値が、対応するローカル位置における第３特性値と更にマッチングされるので、検索されるべきデータファイルがローカルに存在するか否かが正確に判定され得ることが理解され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【００８０】
いくつかの実施形態では、例えば、クラウドストレージシナリオでは、ユーザは、データファイルをクラウドストレージサーバにアップロードする必要があり、ユーザによりアップロードされるべきデータファイルがクラウドサーバに既に格納されている場合、ユーザは、データファイルを繰り返しアップロードする（ネットワークリソースの無駄を引き起こす）必要はないので、データファイルがクラウドストレージサーバに既に存在しているか否かをまず判定することが求められる。
【００８１】
上記で説明されたアップロードシナリオに適用されるように、図１と関連して説明される方法は、図４に関して、以下の段階を具体的に含む第４方法の実施形態に関して説明され得る。
【００８２】
Ｓ４０１：クライアントＡは、データファイルのアップロード要求をサーバＢに送信し、アップロード要求はデータファイルの第１識別子を含む。
【００８３】
ここで第１識別子はファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つであってよく、一実施形態において、少なくとも第１特性値を含む。第１特性値は、アップロードされるべきデータファイルの全体的な特性値を指す。一実施形態において、特性値はＭＤ５値であってよい。
【００８４】
いくつかの実施形態において、データファイルのアップロード要求をサーバＢに送信する前に、クライアントＡは、データファイルの第１特性値、すなわち、データファイルの全体的な特性値を算出する必要がある。クライアントＡにより算出されるデータファイルの全体的な特性値は、サーバＢに格納されるデータファイルの特性値のタイプと同じタイプであってよい、又は、他の選択された特性値であってよい。
【００８５】
サーバＢに格納されるデータファイルの特性値のタイプと同じタイプの特性値の選択及び利用は、クライアントＡにより用いられる他の特性値に切り替える必要性に起因して、格納されるデータに対して新たな特性値をサーバＢが再算出することを防ぐことができる。
【００８６】
Ｓ４０２：サーバＢは、クライアントＡにより送信されたデータファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【００８７】
クライアントＡにより送信されたデータファイルの第１識別子をサーバＢが受信したとき、サーバＢはローカルデータファイルの第１識別子を取得し、第１識別子は、計算により取得されてよい、又は、ローカルに格納されるデータファイルの関連情報を検索することにより取得されてよい。次に、第１識別子にマッチングするローカルデータファイルの検索が行われる。
【００８８】
いくつかの実施形態において、マッチングデータファイルを見つけることができないとき、サーバＢは、クライアントＡにより伝送されるべきデータファイルがローカルに存在しないと判定でき、サーバＢは、データファイルが存在しないことを示す情報をクライアントＡに戻してよい。
【００８９】
Ｓ４０３：サーバＢは、マッチングデータファイルからファイルブロックを選択し、ファイルブロックの第１位置を取得する。
【００９０】
いくつかの実施形態において、サーバＢがローカルにマッチングデータファイルを見つけたときに１つのマッチングデータファイルのみがある場合、このマッチングデータファイルからファイルブロックを取得することのみが求められており、複数のマッチングデータファイルがあるとき、各マッチングデータファイルからファイルブロックを選択することが求められている。１つのファイルブロック又は複数のファイルブロックがあってよく、ファイルブロックの選択は、ランダムアルゴリズムを用いて指定又は実行されてよい。次に、選択されたファイルブロックの第１位置が取得される。ここで第１位置は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置、及びファイルブロックの長さであってよく、又は、ファイルブロックが属するデータファイル内の開始位置及び終了位置であってよく、複数のファイルブロックの長さは同じ又は異なっていてよい。
【００９１】
加えて、サーバＢにローカルに格納されるデータファイルの関連情報を検索することによりファイルブロックの第１位置が取得されたとき、ファイルブロックの第１位置は、サーバＢにローカルに格納される第１位置にマッチングする必要がある。
【００９２】
Ｓ４０４：サーバＢは、マッチングデータファイルのファイルブロックの第１位置をクライアントＡに送信する。
【００９３】
Ｓ４０５：クライアントＡは、サーバＢにより送信されたファイルブロックの第１位置に従って、伝送されるべきローカルデータファイルから、対応する位置におけるファイルブロックを選択し、ファイルブロックの第２特性値を算出する。
【００９４】
実際には、ファイルブロックの第２特性値は、ファイルブロックが配置されるデータファイルの全体的な特性値と同じタイプの特性値であり、特性値は、ＭＤ５値であってよく、又は、他の形式、例えば、ＳＨＡ値であってよく、開示される実施形態はそれらに限定されない。
【００９５】
Ｓ４０６：クライアントＡは、ファイルブロックの第２特性値をサーバＢに送信する。
【００９６】
Ｓ４０７：サーバＢは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【００９７】
一実施形態において、サーバＢは、計算によりファイルブロックの第３特性値を取得してよい、又は、サーバＢにローカルに格納されるデータファイルの関連情報を検索することによりファイルブロックの第３特性値を取得してよい。戻された第２特性値は、選択されたファイルブロックの第３特性値とマッチングされる。１つのファイルブロックのみがマッチングされる必要があるとき、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定することのみが求められる。第２特性値が第３特性値にマッチングする場合、データファイルが存在することが確認され、第２特性値が第３特性値にマッチングしない場合、データファイルが存在しないことが確認される。
【００９８】
更に、複数のファイルブロックがマッチングされる必要があるとき、サーバＢは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に全てのファイルブロックの第２特性値がマッチングするか否かを判定する必要がある。当該第２特性値のうちの１つが第３特性値にマッチングしない場合、データファイルが存在しないと判定され、全ての第２特性値が第３特性値にマッチングする場合、データファイルが存在すると判定される。
【００９９】
Ｓ４０８：サーバＢは、データファイルが存在するか否かを示す情報をクライアントＡに送信する。
【０１００】
更に、データファイルが存在するとき、アップロードが成功したことを示す。データファイルが存在しないとき、フローはアップロード作成シナリオに入る。
【０１０１】
上記で説明された実施形態における技術的解決手段によれば、データファイルのアップロード中に、アップロードされるべきデータファイルの第１識別子に対してマッチングが実行され、次に、マッチングデータファイルからファイルブロックの第１位置が選択され、伝送されるべきデータファイル内の第１位置における第２特性値が、データファイルが伝送されるべきネットワークノード内の対応する位置における第３特性値と更にマッチングされるので、たとえ第１識別子が衝突を起こすおそれがあったとしても、つまり、伝送されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減されることが理解され得る。更に、ファイルブロックの開始位置及びファイルブロックの長さが予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、アップロードされるべきデータファイルがサーバに存在するか否かが正確に判定され得る。データファイルの特性値についての弱いアンチ衝突性能に起因して、アップロードシナリオにおいてアップロードを中止する、データファイルが既に存在しているとの誤判断により引き起こされるデータファイルの損失の問題が効果的に解決され、現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善され、データファイル伝送の有効性及び安全性が確保される。
【０１０２】
いくつかの実施形態において、ユーザがリソースサーバからデータファイルをダウンロードする必要があるとき、加速されたダウンロード権利を有するユーザに対し、リソースサーバは、加速サーバを通じてユーザにデータファイルを送信し、従って、ユーザによりダウンロードされるべきデータファイルを加速サーバが有しているか否かをまず判定することが求められる。もしデータファイルを有しているのであれば、加速サーバは、リソースサーバ内のデータファイルを加速サーバに送信し、次に、加速サーバによりデータファイルをユーザに送信する必要なく、ユーザによりダウンロードされるべきデータファイルをユーザに直接送信してよい。
【０１０３】
上記で説明されたダウンロードシナリオに適用されるように、図１と関連して説明される方法は、図５に関して、以下の段階を具体的に含む第５方法の実施形態に関して説明され得る。
【０１０４】
Ｓ５０１：クライアントＣはダウンロード要求を送信する。
【０１０５】
いくつかの実施形態において、第１サーバＥはリソースサーバＤの加速サーバと等価であり、クライアントＣは、ダウンロード要求をリソースサーバＤに送信してよい、又は、ダウンロード要求を第１サーバＥに送信してよい。一旦クライアントＣがダウンロード要求をリソースサーバＤ又は第１サーバＥに送信すると、リソースサーバＤは、クライアントＣによりダウンロードされるべきファイルを識別でき、方法はＳ５０２に進む。
【０１０６】
Ｓ５０２：リソースサーバＤは、データファイルのアップロード要求を第１サーバＥに送信し、アップロード要求はデータファイルの第１識別子を含む。
【０１０７】
ここで第１識別子はファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つであってよく、一実施形態において、少なくとも第１特性値を含む。第１特性値は、伝送されるべきデータファイルの全体的な特性値を指す。一実施形態において、特性値はＭＤ５値であってよい。
【０１０８】
いくつかの実施形態において、データファイルのアップロード要求を第１サーバＥに送信する前に、リソースサーバＤは、データファイルの第１特性値、すなわち、データファイルの全体的な特性値をまず取得する必要があり、全体的な特性値は、計算により取得されてよい、又は、ローカルに格納されるデータファイルの関連情報から直接的に取得されてよい。リソースサーバＤにより取得されるデータファイルの全体的な特性値は、第１サーバＥに格納されるデータファイルの特性値のタイプと同じタイプのものであってよい、又は、他の選択された特性値であってよい。
【０１０９】
Ｓ５０３：第１サーバＥは、リソースサーバＤにより送信されたデータファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【０１１０】
第１サーバＥはローカルデータファイルの第１識別子を取得し、第１識別子は、計算により取得されてよい、又は、第１サーバＥに格納されるデータファイルの関連情報から取得されてよい。次に、第１識別子にマッチングするローカルデータファイルの検索が行われる。
【０１１１】
いくつかの実施形態において、マッチングデータファイルを見つけることができないとき、第１サーバＥは、データファイルがローカルに存在しないと判定でき、第１サーバＥは、データファイルが存在しないことを示す情報をリソースサーバＤに戻す。
【０１１２】
Ｓ５０４：第１サーバＥは、マッチングデータファイルからファイルブロックを選択し、ファイルブロックの第１位置を取得する。
【０１１３】
いくつかの実施形態において、第１サーバＥがローカルにマッチングデータファイルを見つけたときに１つのマッチングデータファイルのみがある場合、このマッチングデータファイルからファイルブロックを取得することのみが求められており、複数のマッチングデータファイルがあるとき、各マッチングデータファイルからファイルブロックを選択することが求められている。１つのファイルブロック又は複数のファイルブロックがあってよく、ファイルブロックの選択は、ランダムアルゴリズムを用いることにより指定又は実行されてよい。次に、選択されたファイルブロックの第１位置が取得される。ここで第１位置は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置、及びファイルブロックの長さであってよく、又は、ファイルブロックが属するデータファイル内の開始位置及び終了位置であってよく、複数のファイルブロックが選択されたとき、複数のファイルブロックの長さは同じ又は異なっていてよい。
【０１１４】
加えて、第１サーバＥにローカルに格納されるデータファイルの関連情報を検索することによりファイルブロックの第１位置が取得されたとき、ファイルブロックの第１位置は、第１サーバＥにローカルに格納される第１位置にマッチングする必要がある。
【０１１５】
Ｓ５０５：第１サーバＥは、マッチングデータファイルのファイルブロックの第１位置をリソースサーバＤに送信する。
【０１１６】
Ｓ５０６：リソースサーバＤは、第１サーバＥにより送信されたファイルブロックの第１位置に従って、伝送されるべきローカルデータファイルから、対応する位置におけるファイルブロックを選択し、ファイルブロックの第２特性値を算出する。
【０１１７】
実際には、ファイルブロックの第２特性値は、ファイルブロックが配置されるデータファイルの全体的な特性値と同じタイプの特性値であってよく、特性値は、ＭＤ５値であってよく、又は、他の形式、例えば、ＳＨＡ値であってよく、開示される実施形態はそれらに限定されない。
【０１１８】
Ｓ５０７：リソースサーバＤは、ファイルブロックの第２特性値を第１サーバＥに送信する。
【０１１９】
Ｓ５０８：第１サーバＥは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【０１２０】
第１サーバＥは、計算によりローカルファイルブロックの第３特性値を取得してよい、又は、第１サーバＥに格納されるデータファイルの関連情報から第３特性値を取得してよい。
【０１２１】
戻された第２特性値は、選択されたファイルブロックの第３特性値とマッチングされる。１つのファイルブロックのみがマッチングされる必要があるとき、ローカルマッチングデータファイル内の対応する選択されたファイルブロックの第３特性値にファイルブロックの第２特性値がマッチングするか否かを判定することのみが求められる。第２特性値が第３特性値にマッチングする場合、データファイルが存在することが確認され、第２特性値が第３特性値にマッチングしない場合、データファイルが存在しないことが確認される。
【０１２２】
更に、複数のファイルブロックがマッチングされる必要があるとき、第１サーバＥは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に全てのファイルブロックの第２特性値がマッチングするか否かを判定する必要がある。当該第２特性値のうちの１つが第３特性値にマッチングしない場合、データファイルが存在しないと判定され、全ての第２特性値が第３特性値にマッチングする場合、データファイルが存在すると判定される。
【０１２３】
更に、データファイルがローカルに存在しないと第１サーバＥが判定した場合、第１サーバＥは、データファイルが存在しないことを示す情報をリソースサーバＤに戻す。
【０１２４】
Ｓ５０９：第１サーバＥは、データファイルが存在することを示す情報をリソースサーバＤに送信する。
【０１２５】
Ｓ５１０：第１サーバＥはデータファイルをクライアントＣに送信する。
【０１２６】
上記で説明された実施形態における技術的解決手段によれば、データファイルのダウンロード中に、ユーザによりダウンロードされるべきデータファイルの第１識別子に対してマッチングが実行され、次に、マッチングデータファイルからファイルブロックの第１位置が選択され、伝送されるべきデータファイル内の第１位置におけるファイルブロックに対応する第２特性値が取得され、リソースサーバの対応するローカルファイルブロックの第３特性値と更にマッチングされるので、たとえ第１識別子が衝突を起こすおそれがあったとしても、つまり、伝送されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減されることが理解され得る。更に、ファイルブロックの開始位置及びファイルブロックの長さが予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、伝送されるべきデータファイルが存在するか否かが正確に判定され得る。データファイルがユーザのダウンロードシナリオにおいてユーザによりダウンロードされるべきデータファイルであるとの誤判断に起因して、ユーザが悪意のあるソフトウェアをダウンロードするという問題が効果的に解決される。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善され、データファイル伝送の有効性及び安全性が確保される。
【０１２７】
データファイルの存在を判定するための方法の第６実施形態が以下に紹介される。図６に関して、本実施形態は以下の段階を含む。
【０１２８】
Ｓ６０１：第３ネットワークノードＰはデータファイルの要求を第４ネットワークノードＱに送信し、当該要求は、データファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【０１２９】
ここで第１識別子はファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つであってよく、一実施形態において、少なくとも第１特性値を含む。第１特性値はデータファイルの全体的な特性値を指す。第２特性値はデータファイル内のファイルブロックの特性値を指す。一実施形態において、特性値はＭＤ５値であってよい。
【０１３０】
データファイルの要求を第４ネットワークノードＱに送信する前に、第３ネットワークノードＰは、データファイルの第１特性値及び第２特性値を算出する必要がある。第３ネットワークノードＰにより算出される特性値は、第４ネットワークノードＱに格納されるデータファイルの特性値のタイプと同じタイプのものであってよい、又は、他の選択された特性値であってよい。
【０１３１】
第４ネットワークノードＱに格納されるデータファイルの特性値のタイプと同じタイプの特性値の選択及び利用は、第３ネットワークノードＰにより用いられる他の特性値に切り替える必要性に起因して、格納されるデータに対して新たな特性値を第４ネットワークノードＱが再算出することを防ぐことができる。
【０１３２】
一実施形態において、ファイルブロックの第１位置は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置及び終了位置であってよい、又は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置、及びファイルブロックの長さであってよい。ファイルブロックの第１位置は、指定により取得されてよい、又は、ランダムアルゴリズムを用いた計算により取得されてよい。
【０１３３】
ファイルブロックの第１位置の数は、１より多い又は等しく、かつ、伝送されるべきデータファイルが分けられ得るブロックの総数より少ない又は等しい。つまり、要求は１つのファイルブロックの第１位置又は複数のファイルブロックの位置を運んでよい。
【０１３４】
Ｓ６０２：第４ネットワークノードＱは、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【０１３５】
第３ネットワークノードＰにより送信されたデータファイルの第１識別子を第４ネットワークノードＱが受信したとき、第４ネットワークノードＱはローカルデータファイルの第１識別子を取得し、第１識別子は、計算により取得されてよい、又は、ローカルに格納されるデータファイルの関連情報を検索することにより取得されてよい。次に、第１識別子にマッチングするローカルデータファイルの検索が行われる。
【０１３６】
いくつかの実施形態において、マッチングデータファイルを見つけることができないとき、第４ネットワークノードＱは、第３ネットワークノードＰにより伝送されるべきデータファイルがローカルに存在しないと判定でき、第４ネットワークノードＱは、データファイルが存在しないことを示す情報を第３ネットワークノードＰに戻してよい。
【０１３７】
Ｓ６０３：第４ネットワークノードＱは、第１位置に従って、マッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得する。
【０１３８】
いくつかの実施形態において、第４ネットワークノードＱがローカルにマッチングデータファイルを見つけたときに１つのマッチングデータファイルのみがある場合、このマッチングデータファイルから第１位置を見つけ、計算により第１位置におけるファイルブロックの第３特性値を取得することのみが求められる。複数のマッチングデータファイルがあるとき、各マッチングデータファイルから第１位置を見つけ、第１位置におけるファイルブロックの第３特性値を取得することが求められる。
【０１３９】
更に、分散ストレージシナリオでは、データファイルは、ブロックに分けられてファイルブロックの形式で第４ネットワークノードＱに格納され、全てのファイルブロックは、最後のファイルブロックを除き、同じサイズを有しており、最後のファイルブロックのサイズは、他のファイルブロックのサイズより小さい又は等しいことが求められる。第４ネットワークノードＱは、格納されるデータファイルの関連情報、例えば、データファイルのファイル名、全体的な特性値、ファイルサイズ、及びファイル構成テーブルを格納し、ファイル構成テーブルは、データファイルの全てのファイルブロック構成テーブルを連続的に格納し、各ファイルブロック構成テーブルは、ファイルブロック識別子、先行するファイルブロック識別子、後続のファイルブロック識別子、ファイルブロック開始位置、ファイルブロックの長さ、及びファイルブロックの特性値を含む。要求内の特性値が第４ネットワークノードＱの特性値と一致し、かつ、データファイル内のファイルブロックの第１位置が第４ネットワークノードＱ内のファイルブロックの長さ情報と一致するとき、第３特性値は、計算により第３特性値を取得する必要なく、第４ネットワークノードＱに格納されるデータファイルの関連情報を検索することにより直接的に取得され得る。
【０１４０】
更に、マッチングデータファイルが第１位置を有していないことを第４ネットワークノードＱが見いだしたとき、第４ネットワークノードＱは、伝送されるべきデータファイルが存在しないと判定でき、次に、データファイルが存在しないことを示す情報を第３ネットワークノードＰに送信してよい。
【０１４１】
Ｓ６０４：第４ネットワークノードＱは、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【０１４２】
１つの第１位置、及び、第１位置におけるファイルブロックに対応する１つの第２特性値のみがある、つまり、１つのファイルブロックのみがマッチングされる必要があるとき、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値にファイルブロックの第２特性値がマッチングするか否かを判定することのみが求められる。第２特性値が第３特性値にマッチングするつまり、第２特性値が第３特性値と同一である場合、データファイルが存在することが確認され、第２特性値が第３特性値にマッチングしない、つまり、第２特性値が第３特性値とは異なる場合、データファイルが存在しないことが確認される。
【０１４３】
更に、複数の第１位置及び当該第１位置におけるファイルブロックに対応する複数の第２特性値がある、つまり、複数のファイルブロックがマッチングされる必要があるとき、第４ネットワークノードＱは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に全てのファイルブロックの第２特性値がマッチングするか否かを判定する必要がある。当該第２特性値のうちの１つが第３特性値にマッチングしない場合、データファイルが存在しないと判定され、全ての第２特性値が第３特性値にマッチングする場合、データファイルが存在すると判定される。
【０１４４】
更に、第４ネットワークノードＱは、データファイルが存在するか否かを示す情報を第３ネットワークノードＰに戻してよい。
【０１４５】
上記に開示された第６実施形態によれば、検索されるべきデータファイルの第１識別子に対してマッチングが実行され、次に、第１位置に従って、対応する位置におけるファイルブロックの第３特性値がマッチングデータファイルから取得され、第３特性値が第２特性値と更にマッチングされており、たとえ第１識別子が衝突を起こすおそれがあったとしても、すなわち、検索されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減されることが理解され得る。更に、ファイルブロックの開始位置及びファイルブロックの長さが予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、検索されるべきデータファイルが既に存在しているか否かが正確に判定され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【０１４６】
段階的に第３ネットワークノードに着目すると、前述の第６方法の実施形態は、データファイルの要求を第４ネットワークノードに送信する段階であって、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、第１位置におけるファイルブロックに対応する第２特性値を含む、段階を具体的に含む第７方法の実施形態に関して説明され得る。更に、データファイルが存在するか否かを示す、第４ネットワークノードにより戻された情報が受信される。
【０１４７】
前述の実施形態によれば、検索されるべきデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を、データファイルを検索するために用いられるネットワークノードに送信することにより、データファイルが既に存在しているか否かが正確に判定され得ることが理解され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【０１４８】
段階的に第４ネットワークノードに着目すると、前述の第６方法の実施形態は、図７に関して、以下の段階を具体的に含む第８方法の実施形態に関して説明され得る。
【０１４９】
Ｓ７０１：データファイルの要求を受信し、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【０１５０】
Ｓ７０２：データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【０１５１】
Ｓ７０３：第１位置に従って、マッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得する。
【０１５２】
Ｓ７０４：対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【０１５３】
更に、データファイルが存在するか否かを示す情報が第３ネットワークノードに戻される。
【０１５４】
上記の説明された実施形態によれば、検索されるべきデータファイルの第１識別子に対してマッチングが実行され、次に、第１位置に従って、対応する位置におけるファイルブロックの第３特性値が、マッチングデータファイルから取得され、第３特性値が第２特性値と更にマッチングされるので、検索されるべきデータファイルが既にローカルに格納されているか否かが正確に判定され得ることが理解され得る。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【０１５５】
いくつかの実施形態では、例えば、クラウドストレージシナリオでは、ユーザは、データファイルをクラウドストレージサーバにアップロードする必要があり、ユーザによりアップロードされるべきデータファイルがクラウドサーバに既に格納されている場合、ユーザは、データファイルを繰り返しアップロードし、ネットワークリソースを無駄にする必要はないので、データファイルがクラウドストレージサーバに既に存在しているか否かをまず判定することが求められる。
【０１５６】
アップロードシナリオに適用されると、前述の第６方法の実施形態は、図８に関して、以下の段階を具体的に含む第９方法の実施形態に関して説明され得る。
【０１５７】
Ｓ８０１：クライアントＦはデータファイルのアップロード要求をサーバＧに送信し、アップロード要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、第１位置におけるファイルブロックに対応する第２特性値を含む。
【０１５８】
ここで第１識別子はファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つであってよく、一実施形態において、少なくとも第１特性値を含む。第１特性値は、アップロードされるべきデータファイルの全体的な特性値を指し、第２特性値は、アップロードされるべきデータファイル内のファイルブロックの特性値を指す。一実施形態において、特性値はメッセージダイジェスト５（ＭＤ５）値であってよい。
【０１５９】
データファイルの要求をサーバＧに送信する前に、クライアントＦは、データファイルの第１特性値及び第２特性値を算出する必要がある。クライアントＦにより算出される特性値は、サーバＧに格納されるデータファイルの特性値のタイプと同じタイプのものであってよい、又は、他の選択された特性値であってよい。
【０１６０】
サーバＧに格納されるデータファイルの特性値のタイプと同じタイプの特性値の選択及び利用は、クライアントＦにより用いられる他の特性値に切り替える必要性に起因して、格納されるデータに対して新たな特性値をサーバＧが再算出することを防ぐことができる。
【０１６１】
一実施形態において、ファイルブロックの第１位置は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置及び終了位置であってよい、又は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置、及びファイルブロックの長さであってよい。ファイルブロックの第１位置は、指定により取得されてよい、又は、ランダムアルゴリズムを用いた計算により取得されてよい。
【０１６２】
ファイルブロックの第１位置の数は、１より多い又は等しく、かつ、伝送されるべきデータファイルが分けられ得るブロックの総数より少ない又は等しい。つまり、要求は１つのファイルブロックの第１位置又は複数のファイルブロックの位置を運んでよい。
【０１６３】
Ｓ８０２：サーバＧは、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【０１６４】
クライアントＦにより送信されたデータファイルの第１識別子をサーバＧが受信したとき、サーバＧはローカルデータファイルの第１識別子を取得し、第１識別子は、計算により取得されてよい、又は、ローカルに格納されるデータファイルの関連情報を検索することにより取得されてよい。次に、第１識別子にマッチングするローカルデータファイルの検索が行われる。
【０１６５】
いくつかの実施形態において、マッチングデータファイルを見つけることができないとき、サーバＧは、クライアントＦにより伝送されるべきデータファイルがローカルに存在しないと判定でき、サーバＧは、データファイルが存在しないことを示す情報をクライアントＦに戻してよい。
【０１６６】
Ｓ８０３：サーバＧは、第１位置に従って、マッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得する。
【０１６７】
いくつかの実施形態において、サーバＧがローカルにマッチングデータファイルを見つけたときに１つのマッチングデータファイルのみがある場合、このマッチングデータファイルから第１位置を見つけ、計算により第１位置におけるファイルブロックの第３特性値を取得することのみが求められる。複数のマッチングデータファイルがあるとき、各マッチングデータファイルから第１位置を見つけ、計算により第１位置におけるファイルブロックの第３特性値を取得することが求められる。
【０１６８】
更に、分散ストレージシナリオでは、データファイルは、ブロックに分けられてファイルブロックの形式でサーバＧに格納され、全てのファイルブロックは、最後のファイルブロックを除き、同じサイズを有しており、最後のファイルブロックのサイズは、他のファイルブロックのサイズより小さい又は等しいことが求められる。サーバＧは、格納されるデータファイルの関連情報、例えば、データファイルのファイル名、全体的な特性値、ファイルサイズ、及びファイル構成テーブルを格納し、ファイル構成テーブルは、データファイルの全てのファイルブロック構成テーブルを連続的に格納し、各ファイルブロック構成テーブルは、ファイルブロック識別子、先行するファイルブロック識別子、後続のファイルブロック識別子、ファイルブロック開始位置、ファイルブロックの長さ、及びファイルブロックの特性値を含む。要求内の特性値がサーバＧ内の特性値と一致し、かつ、データファイル内のファイルブロックの第１位置がサーバＧ内のファイルブロックの長さ情報と一致するとき、第３特性値は、計算により第３特性値を取得する必要なく、サーバＧに格納されるデータファイルの関連情報を検索することにより直接的に取得され得る。
【０１６９】
更に、マッチングデータファイルが第１位置を有していないことをサーバＧが見いだしたとき、サーバＧは、伝送されるべきデータファイルが存在しないと判定でき、次に、データファイルが存在しないことを示す情報をクライアントＦに送信してよい。
【０１７０】
Ｓ８０４：サーバＧは、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【０１７１】
１つの第１位置、及び第１位置におけるファイルブロックに対応する１つの第２特性値のみがある、つまり、１つのファイルブロックのみがマッチングされる必要があるとき、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値にファイルブロックの第２特性値がマッチングするか否かを判定することのみが求められる。第２特性値が第３特性値にマッチングする、つまり、第２特性値が第３特性値と同一である場合、データファイルが存在することが確認され、第２特性値が第３特性値にマッチングしない、つまり、第２特性値が第３特性値とは異なる場合、データファイルが存在しないことが確認される。
【０１７２】
更に、複数の第１位置及び当該第１位置におけるファイルブロックに対応する複数の第２特性値がある、つまり、複数のファイルブロックがマッチングされる必要があるとき、サーバＧは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に全てのファイルブロックの第２特性値がマッチングするか否かを判定する必要がある。当該第２特性値のうちの１つが第３特性値にマッチングしない場合、データファイルが存在しないと判定され、全ての第２特性値が第３特性値にマッチングする場合、データファイルが存在すると判定される。
【０１７３】
Ｓ８０５：サーバＧは、データファイルが存在するか否かを示す情報をクライアントＦに戻す。
【０１７４】
更に、データファイルが存在するとき、アップロードが成功したことを示す。データファイルが存在しないとき、フローはアップロード作成シナリオに入る。
【０１７５】
上記で開示された実施形態によれば、データファイルのアップロード中に、アップロードされるべきデータファイルの第１識別子に対してマッチングが実行され、次に、第１位置に従って、対応する位置におけるファイルブロックの第３特性値がマッチングデータファイルから取得され、第３特性値が第２特性値と更にマッチングされるので、たとえ第１識別子が衝突を起こすおそれがあったとしても、つまり、伝送されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減されることが理解され得る。更に、ファイルブロックの開始位置及びファイルブロックの長さが予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、アップロードされるべきデータファイルが既に存在しているか否かが正確に判定され得る。データファイルの特性値についての弱いアンチ衝突性能に起因して、アップロードシナリオにおけるアップロードを中止すべくデータファイルが既に存在しているとの誤判断により引き起こされるデータファイルの損失の問題が効果的に解決され、現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善され、データファイル伝送の有効性及び安全性が確保される。
【０１７６】
ダウンロードシナリオに適用されると、前述の第６方法の実施形態は、図９に関して、以下の段階を具体的に含む第１０方法の実施形態に関して説明され得る。
【０１７７】
Ｓ９０１：クライアントＨはダウンロード要求を送信する。
【０１７８】
いくつかの実施形態において、第２サーバＪはリソースサーバＩの加速サーバと等価であり、クライアントＨは、ダウンロード要求をリソースサーバＩに送信してよい、又は、ダウンロード要求を第２サーバＪに送信してよい。一旦クライアントＨがダウンロード要求をリソースサーバＩ又は第２サーバＪに送信すると、リソースサーバＩは、クライアントＨによりダウンロードされるべきファイルを識別でき、方法はＳ９０２に進む。
【０１７９】
Ｓ９０２：リソースサーバＩはデータファイルのアップロード要求を第２サーバＪに送信し、アップロード要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【０１８０】
ここで第１識別子はファイル名、ファイルサイズ、及び第１特性値のうちの少なくとも１つであってよく、一実施形態において、少なくとも第１特性値を含む。第１特性値は、アップロードされるべきデータファイルの全体的な特性値を指し、第２特性値は、アップロードされるべきデータファイル内のファイルブロックの特性値を指す。一実施形態において、特性値はメッセージダイジェスト５（ＭＤ５）値であってよい。
【０１８１】
データファイルの要求を第２サーバＪに送信する前に、リソースサーバＩは、データファイルの第１特性値及び第２特性値を取得する必要があり、特性値は、計算により取得されてよく、又は、ローカルに格納されるデータファイルの関連情報から直接的に取得されてよく、リソースサーバＩにより取得される特性値は、第２サーバＪに格納されるデータファイルの特性値のタイプと同じタイプであってよい、又は、他の選択された特性値であってよい。
【０１８２】
第２サーバＪに格納されるデータファイルの特性値のタイプと同じタイプの特性値の選択及び利用は、リソースサーバＩにより用いられる他の特性値に切り替える必要性に起因して、格納されるデータに対して新たな特性値を第２サーバＪが再算出することを防ぐことができる。
【０１８３】
一実施形態において、ファイルブロックの第１位置は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置及び終了位置であってよい、又は、ファイルブロックが属するデータファイル内のファイルブロックの開始位置、及びファイルブロックの長さであってよい。ファイルブロックの第１位置は、指定により取得されてよい、又は、ランダムアルゴリズムを用いた計算により取得されてよい。
【０１８４】
ファイルブロックの第１位置の数は、１より多い又は等しく、かつ、伝送されるべきデータファイルが分けられ得るブロックの総数より少ない又は等しい。つまり、要求は１つのファイルブロックの第１位置又は複数のファイルブロックの位置を運んでよい。
【０１８５】
Ｓ９０３：第２サーバＪは、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索する。
【０１８６】
リソースサーバＩにより送信されるデータファイルの第１識別子を第２サーバＪが受信したとき、第２サーバＪはローカルデータファイルの第１識別子を取得し、第１識別子は、計算により取得されてよい、又は、ローカルに格納されるデータファイルの関連情報を検索することにより取得されてよい。次に、第１識別子にマッチングするローカルデータファイルの検索が行われる。
【０１８７】
いくつかの実施形態において、マッチングデータファイルを見つけることができないとき、第２サーバＪは、リソースサーバＩにより伝送されるべきデータファイルがローカルに存在しないと判定でき、第２サーバＪは、データファイルが存在しないことを示す情報をリソースサーバＩに戻してよい。
【０１８８】
Ｓ９０４：第２サーバＪは、第１位置に従って、マッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得する。
【０１８９】
いくつかの実施形態において、第２サーバＪがローカルにマッチングデータファイルを見つけたときに１つのマッチングデータファイルのみがある場合、マッチングデータファイルから第１位置を見つけ、計算により第１位置におけるファイルブロックの第３特性値を取得することのみが求められる。複数のマッチングデータファイルがあるとき、各マッチングデータファイルから第１位置を見つけ、計算により第１位置におけるファイルブロックの第３特性値を取得することが求められる。
【０１９０】
更に、分散ストレージシナリオでは、データファイルは、ブロックに分けられてファイルブロックの形式で第２サーバＪに格納され、全てのファイルブロックは、最後のファイルブロックを除き、同じサイズを有しており、最後のファイルブロックのサイズは、他のファイルブロックのサイズより小さい又は等しいことが求められる。第２サーバＪは、格納されるデータファイルの関連情報、例えば、データファイルのファイル名、全体的な特性値、ファイルサイズ、及びファイル構成テーブルを格納し、ファイル構成テーブルは、データファイルの全てのファイルブロック構成テーブルを連続的に格納し、各ファイルブロック構成テーブルは、ファイルブロック識別子、先行するファイルブロック識別子、後続のファイルブロック識別子、ファイルブロック開始位置、ファイルブロックの長さ、及びファイルブロックの特性値を含む。要求内の特性値が第２サーバＪ内の特性値と一致し、かつ、データファイル内のファイルブロックの第１位置が第２サーバＪ内のファイルブロックの長さ情報と一致するとき、第３特性値は、計算により第３特性値を取得する必要なく、第２サーバＪに格納されるデータファイルの関連情報を検索することにより直接的に取得され得る。
【０１９１】
更に、マッチングデータファイルが第１位置を有していないことを第２サーバＪが見いだしたとき、第２サーバＪは、伝送されるべきデータファイルが存在しないと判定でき、次に、データファイルが存在しないことを示す情報をリソースサーバＩに送信してよい。
【０１９２】
Ｓ９０５：第２サーバＪは、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定する。
【０１９３】
１つの第１位置、及び第１位置におけるファイルブロックに対応する１つの第２特性値のみがある、つまり、１つのファイルブロックのみがマッチングされる必要があるとき、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値にファイルブロックの第２特性値がマッチングするか否かを判定することのみが求められる。第２特性値が第３特性値にマッチングする、つまり、第２特性値が第３特性値と同一である場合、データファイルが存在することが確認され、第２特性値が第３特性値にマッチングしない、つまり、第２特性値が第３特性値とは異なる場合、データファイルが存在しないことが確認される。
【０１９４】
更に、複数の第１位置及び当該第１位置におけるファイルブロックに対応する複数の第２特性値がある、つまり、複数のファイルブロックがマッチングされる必要があるとき、第２サーバＪは、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に全てのファイルブロックの第２特性値がマッチングするか否かを判定する必要がある。当該第２特性値のうちの１つが第３特性値にマッチングしない場合、データファイルが存在しないと判定され、全ての第２特性値が第３特性値にマッチングする場合、データファイルが存在すると判定される。
【０１９５】
更に、データファイルがローカルに存在しないと第２サーバＪが判定した場合、第２サーバＪは、データファイルが存在しないことを示す情報をリソースサーバＩに戻す。
【０１９６】
Ｓ９０６：第２サーバＪは、データファイルが存在することを示す情報をリソースサーバＩに戻す。
【０１９７】
Ｓ９０７：第２サーバＪはデータファイルをクライアントＨに送信する。
【０１９８】
前述の実施形態によれば、データファイルのダウンロード中に、伝送されるべきデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、第１位置におけるファイルブロックに対応する第２特性値は、データファイルが伝送されるネットワークノードに送信され、第１識別子に対してマッチングが実行され、次に、マッチングデータファイル内の第１位置に対応する第３特性値に対して更にマッチングが実行されるので、たとえ第１識別子が衝突を起こすおそれがあったとしても、つまり、伝送されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減されることが理解され得る。更に、ファイルブロックの開始位置及びファイルブロックの長さが予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、データファイルを伝送することを意図するネットワークノードに、伝送されるべきデータファイルが既に格納されているか否かが正確に判定され得る。データファイルがユーザのダウンロードシナリオにおいてユーザによりダウンロードされるべきデータファイルであるとの誤判断に起因して、ユーザが悪意のあるソフトウェアをダウンロードするという問題が効果的に解決される。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善され、データファイル伝送の有効性及び安全性が確保される。
【０１９９】
前述の第１方法の実施形態に対応するデータファイルの存在を判定するためのシステムの第１実施形態が図１０に示され得る。
【０２００】
システム１０００は、データファイルの要求を第２ネットワークノードに送信し、当該要求はデータファイルの第１識別子を含み、第２ネットワークノードにより送信されたファイルブロックの第１位置に従って、伝送されるべきデータファイルから、対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出し、ファイルブロックの第２特性値を第２ネットワークノードに送信するように構成される第１ネットワークノード１００１を含む。
【０２０１】
システム１０００は、第１ネットワークノードにより送信された要求内のデータファイルの第１識別子に従ってローカルマッチングデータファイルを検索し、マッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得し、第１位置を第１ネットワークノードに送信し、第１ネットワークノードにより送信された第２特性値に従って、ローカルマッチングデータファイルから選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第２ネットワークノード１００２を含む。
【０２０２】
前述の第２方法の実施形態に対応するデータファイルの存在を判定するための装置の第１実施形態が図１１に示され得る。
【０２０３】
装置１１００は、データファイルの要求を第２ネットワークノードに送信するように構成される第１要求ユニット１１０１を含み、当該要求はデータファイルの第１識別子を含む。
【０２０４】
装置１１００は、第２ネットワークノードにより送信された第１位置を受信するように構成される第１位置受信ユニット１１０２を含む。
【０２０５】
装置１１００は、第１位置に従ってデータファイルから対応する位置におけるファイルブロックを選択し、選択されたファイルブロックの第２特性値を算出するように構成される第２特性値取得ユニット１１０３を含む。
【０２０６】
装置１１００は、第２特性値を第２ネットワークノードに送信するように構成される第２特性値送信ユニット１１０４を含む。
【０２０７】
更に、装置は、データファイルが存在するか否かを示す第２ネットワークノードにより戻される情報を受信するように構成される第１フィードバック情報受信ユニットを更に含む。
【０２０８】
前述の第３方法の実施形態に対応するデータファイルの存在を判定するための装置の第２実施形態が図１２に示され得る。
【０２０９】
装置１２００は、第１ネットワークノードにより送信されたデータファイルの要求を受信するように構成される第１要求受信ユニット１２０１を含み、当該要求はデータファイルの第１識別子を含む。
【０２１０】
装置１２００は、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索するように構成される第１マッチングユニット１２０２を含む。
【０２１１】
装置１２００は、マッチングデータファイルからファイルブロックを選択し、選択されたファイルブロックの第１位置を取得するように構成される第１位置取得ユニット１２０３を含む。
【０２１２】
装置１２００は、全ての選択されたファイルブロックの第１位置を第１ネットワークノードに送信するように構成される第１位置送信ユニット１２０４を含む。
【０２１３】
装置１２００は、第１ネットワークノードにより送信されたファイルブロックの第２特性値を受信するように構成される第２特性値受信ユニット１２０５を含む。
【０２１４】
装置１２００は、ローカルマッチングデータファイル内の選択されたファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第１データファイル存在判定ユニット１２０６を含む。
【０２１５】
更に、装置は、データファイルが存在するか否かを示す情報を第１ネットワークノードに戻すように構成される第１情報フィードバックユニットを更に含む。
【０２１６】
前述の第６方法の実施形態に対応するデータファイルの存在を判定するためのシステムの第２実施形態が図１３に示され得る。
【０２１７】
システム１３００は、データファイルの要求を第４ネットワークノードに送信するように構成される第３ネットワークノード１３０１を含み、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【０２１８】
システム１３００は、データファイルの第１識別子に従ってローカルマッチングデータファイルを検索し、次に、第１位置に従ってマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得し、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第４ネットワークノード１３０２を含む。
【０２１９】
前述の第７方法の実施形態に対応するデータファイルの存在を判定するための装置の第３実施形態は、データファイルの要求を第４ネットワークノードに送信するように構成される第２要求ユニットを含み、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、第１位置におけるファイルブロックに対応する第２特性値を含む。
【０２２０】
更に、装置は、データファイルが存在するか否かを示す、第４ネットワークノードにより戻される情報を受信するように構成される第２フィードバック情報受信ユニットを更に含む。
【０２２１】
前述の第８方法の実施形態に対応するデータファイルの存在を判定するための装置の第４実施形態が図１４に示され得る。
【０２２２】
装置１４００は、データファイルの要求を受信するように構成される第２要求受信ユニット１４０１を含み、当該要求はデータファイルの第１識別子、データファイル内のファイルブロックの第１位置、及び第１位置におけるファイルブロックに対応する第２特性値を含む。
【０２２３】
装置１４００は、データファイルの第１識別子に基づいてローカルマッチングデータファイルを検索するように構成される第２マッチングユニット１４０２を含む。
【０２２４】
装置１４００は、第１位置に従ってマッチングデータファイル内の対応する位置におけるファイルブロックの第３特性値を取得するように構成される第３特性値取得ユニット１４０３を含む。
【０２２５】
装置１４００は、対応する位置におけるファイルブロックの第３特性値に第２特性値がマッチングするか否かを判定し、マッチングの結果に基づいてデータファイルが存在するか否かを判定するように構成される第２データファイル存在判定ユニット１４０４を含む。
【０２２６】
更に、装置は、データファイルが存在するか否かを示す情報を第３ネットワークノードに戻すように構成される第２情報フィードバックユニットを更に含む。
【０２２７】
実施形態において提供されるデータファイルの存在を判定するための方法、装置、及びシステムによれば、検索されるべきデータファイルの第１識別子に対してマッチングが実行され、次に、第１位置に対応するファイルブロックの第３特性値は、マッチングデータファイルから選択されて、第２特性値と更にマッチングされるので、たとえ第１識別子が衝突を起こすおそれがあったとしても、すなわち、検索されるべきデータファイルの識別子と同一の第１識別子が偽造されたとしても、衝突するデータファイル内で再度衝突を起こす可能性及びファイルブロックの同一の特性値を丹念に偽造する可能性が大幅に低減される。更に、ファイルブロックの開始位置及びファイルブロックの長さが予測不可能であるので、全ての選択されたファイルブロックの位置情報及び対応する特性値を首尾よく偽造する可能性は極めて低い。従って、データファイルが既に存在しているか否かが正確に判定され得る。いくつかの実施形態において、開示される実施形態において提供される技術的解決手段は、データファイルが既に存在していることを正確に判定して、反復伝送により引き起こされるネットワークリソースの無駄を回避できるだけでなく、データファイルの弱いアンチ衝突性能に起因してアップロードシナリオにおけるアップロードを中止すべくデータファイルが既に存在しているとの誤判断により引き起こされるデータファイルの損失を回避でき、又は、データファイルがダウンロードシナリオにおいてダウンロードされるべきソフトウェアであるとの誤判断に起因して、ユーザが悪意のあるソフトウェアをダウンロードするという問題を回避できる。現在の技術と比較して、データファイルの存在を判定する精度が大幅に改善される。
【０２２８】
１９９０年代では、技術的改善は、ハードウェア改善（例えば、ダイオード、トランジスタ、又はスイッチのような回路構成上の改善）であるか、又は、ソフトウェア改善（方法及び処理上の改善）であるかが明確に区別されていたかもしれない。しかしながら、技術の進歩ともに、今日では、多くの方法及び処理上の改善がハードウェア回路構成上の直接的な改善とみなされ得る。略全ての設計者は、改善された方法及び処理をハードウェア回路にプログラムして、対応するハードウェア回路構成を得る。従って、方法及び処理上の改善がハードウェアエンティティモジュールで実現できないとは言えない。例えば、プログラマブルロジックデバイス（ＰＬＤ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））は、論理機能がユーザのデバイスプログラミングにより決定される集積回路のようなものである。設計者は、彼ら自身でプログラムして、デジタルシステムをＰＬＤと「統合」してよく、特定用途向け集積回路チップ２を設計及び製造することをチップ製造業者に要請する必要がない。更に、集積回路チップを手動で製造する代わりに、そのようなプログラミングは多くの場合「論理コンパイラ」ソフトウェアにより実装され、「論理コンパイラ」ソフトウェアは、プログラム開発及びライティングにおいて用いられるソフトウェアコンパイラと同様であり、コンパイルの前に、オリジナルのコードが特定のプログラミング言語で書き込まれてよく、特定のプログラミング言語は、ハードウェア記述言語（ＨＤＬ）と称される。１つのタイプのＨＤＬだけでなく、例えば、ＡＢＥＬ（Ａｄｖａｎｃｅｄ  Ｂｏｏｌｅａｎ  Ｅｘｐｒｅｓｓｉｏｎ  Ｌａｎｇｕａｇｅ）、ＡＨＤＬ（Ａｌｔｅｒａ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、Ｃｏｎｆｌｕｅｎｃｅ、ＣＵＰＬ（Ｃｏｒｎｅｌｌ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅ）、ＨＤＣａｌ、ＪＨＤＬ（Ｊａｖａ（登録商標）  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、Ｌａｖａ、Ｌｏｌａ、ＭｙＨＤＬ、ＰＡＬＡＳＭ、ＲＨＤＬ（Ｒｕｂｙ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等、複数のタイプのＨＤＬがあり、これらは、ＶＨＤＬ（Ｖｅｒｙ-Ｈｉｇｈ-Ｓｐｅｅｄ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）及びＶｅｒｉｌｏｇ２の間で今日では最も一般に用いられる。当業者は、論理方法及び処理を実装するためのハードウェア回路が、そのような方法及び処理を論理プログラミング及び上記のハードウェア記述言語を用いて集積回路にプログラミングすることにより容易に得られてよいことも理解するはずである。
【０２２９】
コントローラは任意の適切な方式で実装されてよい。例えば、コントローラは、マイクロプロセッサ又はプロセッサの形式、及び（マイクロ）プロセッサ、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能な論理コントローラ、及び埋め込みマイクロコントローラにより実行可能なコンピュータ可読プログラムコード（例えば、ソフトウェア又はファームウェア）を格納するコンピュータ可読媒体の形式で用いられてよい。コントローラの例は、以下のマイクロコントローラ、ＡＲＣ６２５Ｄ、Ａｔｍｅｌ  ＡＴ９１ＳＡＭ、Ｍｉｃｒｏｃｈｉｐ  ＰＩＣ１８Ｆ２６ｋ２０、及びＳｉｌｉｃｏｎ  Ｌａｂｓ  Ｃ８０５１Ｆ３２０を含むが、これらに限定されない。メモリコントローラはメモリ制御論理の一部として実装されてもよい。
【０２３０】
当業者はまた、方法又は段階についての論理プログラミングを用いて、純粋コンピュータ可読プログラムコードによりコントローラを実装することに加えて、コントローラが、論理ゲート、スイッチ、特定用途向け集積回路、プログラム可能な論理コントローラ、埋め込みマイクロコントローラ等の形式で同一の機能を実現してよいことを知っている。従って、そのようなコントローラは、ハードウェアコンポーネントとみなされてよく、様々な機能を実現するためのその装置は、ハードウェアコンポーネントの内部構造とみなされてよい。様々な機能を実現するための装置は、更に、方法を実現するためのソフトウェアモジュール又はハードウェアコンポーネントの内部構造のいずれか一方とみなされてよい。
【０２３１】
上記の実施形態で説明されたシステム、装置、モジュール、又はユニットは、コンピュータチップ又はエンティティにより、又はある機能を有する製品により具体的に実装されてよい。
【０２３２】
説明の便宜上、上記の装置は、別々に表現される様々なユニットに機能的に分けられる。確かに、開示される実施形態を実装するとき、様々なユニットの機能は、ソフトウェア及び／又はハードウェアの１又は複数のインスタンスに実装されてよい。
【０２３３】
実施形態の説明に先立って、当業者は、開示される実施形態がソフトウェアに加え必須の汎用ハードウェアプラットフォームにより実装され得ることを明確に理解し得る。そのような理解に基づいて、本開示の技術的解決手段の本質、又は、従来技術に対して貢献する本開示の部分は、ソフトウェア製品の形式で具現化されてよい。典型的な構成において、コンピューティングデバイスは、１又は複数のプロセッサ（ＣＰＵ）、入力／出力インタフェース、ネットワークインタフェース、及びメモリを含む。コンピュータソフトウェア製品は、（パーソナルコンピュータ、サーバ、ネットワークデバイス等であってよい）コンピュータデバイスを有効にして実施形態又は本開示の実施形態の一部で説明された方法を実行させるいくつかの命令を含んでよい。コンピュータソフトウェア製品はメモリに格納されてよい。メモリは、非永続的なメモリ、ランダムアクセスメモリ（ＲＡＭ）及び／又は不揮発性メモリ等、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ（ｆｌａｓｈ  ＲＡＭ）のような形式でコンピュータ可読媒体を含んでよい。メモリはコンピュータ可読媒体の例である。コンピュータ可読媒体は、任意の方法及び技術を用いて情報ストレージを実現できる永続的並びに非永続的な、及び移動可能並びに非移動可能な媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムのモジュール、又は他のデータであってよい。コンピュータの記憶媒体の例は、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）若しくは他のタイプのランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ若しくは他のメモリ技術、リードオンリ・コンパクトディスク・リードオンリメモリ（ＣＤ‐ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気ストレージデバイス、又は、コンピューティングデバイスによりアクセス可能な情報を格納するために用いられることができる任意の他の非伝送媒体を含むが、これらに限定されない。ここでの定義を踏まえると、コンピュータ可読媒体は、変調されるデータ信号及び搬送波のような一時的なコンピュータ可読媒体（一時的な媒体）を含まない。
【０２３４】
本明細書における実施形態は、漸進的な方式で説明され、異なる実施形態間で同一又は同様の部分に対して、実施形態のそれぞれが他の実施形態との差異に焦点を当てるように互いに参照され得る。特に、システムの実施形態は、方法の実施形態と略同様なので比較的簡潔に説明され、関連する部分について、方法の実施形態を参照してよい。
【０２３５】
開示される実施形態は、環境において、又は、普遍的又は専門的なコンピュータシステムの構成において用いられ得る。例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス又はポータブルデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットアップボックス、プログラム可能なカスタマー電子デバイス、ネットワークＰＣ、小型コンピュータ、大型コンピュータ、及び上記の任意のシステム又はデバイスを含む分散コンピューティング環境を含む。
【０２３６】
開示される実施形態は、プログラムモジュールのようなコンピュータにより実行されるコンピュータ実行可能な命令の一般的なコンテキストで説明され得る。概して、プログラムモジュールは、特定のタスクを実行するために、又は、特定の抽象データ型を実装するために、ルーチン、プログラム、オブジェクト、モジュール、データ、構造等を含む。開示される実施形態は分散コンピューティング環境にも実装されてよい。分散コンピューティング環境では、タスクは、通信ネットワークを通じて接続されるリモート処理デバイスにより実行される。分散コンピューティング環境では、プログラムモジュールは、記憶媒体に配置されてよく、記憶媒体は、ローカル及びリモートコンピュータのストレージデバイスを含む。
【０２３７】
開示される実施形態は実施形態を通じて説明されるが、当業者は、開示の主旨から逸脱することなく本開示が変更及び変形され得ることを知っている。添付の特許請求の範囲は、開示の主旨から逸脱することなくこれらの修正及び変形を含むことが意図される。
【図１】
2018500650.tif 000003
【図２】
2018500650.tif 000004
【図３】
2018500650.tif 000005
【図４】
2018500650.tif 000006
【図５】
2018500650.tif 000007
【図６】
2018500650.tif 000008
【図７】
2018500650.tif 000009
【図８】
2018500650.tif 000010
【図９】
2018500650.tif 000011
【図１０】
2018500650.tif 000012
【図１１】
2018500650.tif 000013
【図１２】
2018500650.tif 000014
【図１３】
2018500650.tif 000015
【図１４】
2018500650.tif 000016
【手続補正書】
【提出日】平成29年6月29日(2017.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバデバイスにて、クライアントデバイスからデータファイルの要求を受信する段階であって、前記要求は前記データファイルの第１識別子を含む、段階と、
前記サーバデバイスにて、前記データファイルの前記第１識別子に基づいてローカルマッチングデータファイルを識別する段階と、
前記サーバデバイスにて、前記ローカルマッチングデータファイル内の第１位置における前記ローカルマッチングデータファイルからのファイルブロックを選択する段階と、
前記サーバデバイスにて、前記ファイルブロックの特性値を取得する段階と、
前記サーバデバイスにて、前記ファイルブロックの第２特性値に前記特性値がマッチングするか否かを判定し、マッチングする場合、前記サーバデバイスにて前記データファイルが存在すると判定する段階と
を備える方法。
【請求項２】
前記ファイルブロックの特性値を取得する段階は、前記第１位置を前記クライアントデバイスに伝送する段階を含む、請求項１に記載の方法。
【請求項３】
前記ファイルブロックの特性値を取得する段階は、
前記第１位置に基づいて前記クライアントデバイスが、前記データファイルから対応するファイルブロックを選択する段階と、
前記クライアントデバイスにて、前記ファイルブロックの前記特性値を算出する段階と、
前記サーバデバイスにて、前記クライアントデバイスから前記特性値を受信する段階と
を更に含む、請求項１又は２に記載の方法。
【請求項４】
前記サーバデバイスが、前記データファイルが存在することのインジケーションを前記クライアントデバイスに伝送する段階を更に備える、請求項１から３のいずれか一項に記載の方法。
【請求項５】
データファイルの前記要求は、前記データファイル内のファイルブロックの位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を更に含み、前記ファイルブロックの第１位置を取得する段階は、前記第１識別子から前記位置を抽出する段階を含み、前記ファイルブロックの特性値を取得する段階は、前記第１識別子から前記第２特性値を抽出する段階を含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記特性値はＭＤ５又はＳＨＡ値を有する、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記ファイルブロックの前記第１位置は、指定により取得される前記ファイルブロックの第１位置を有する、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記ファイルブロックの前記第１位置は、ランダムアルゴリズムを用いて取得される前記ファイルブロックの第１位置を更に有する、請求項１から６のいずれか一項に記載の方法。
【請求項９】
前記ファイルブロックの前記第１位置は、前記データファイル内の前記ファイルブロックの開始位置及び終了位置、又は前記データファイル内の前記ファイルブロックの開始位置及び長さを有する、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
１又は複数のプロセッサと、
コンピュータ実行可能な命令を格納する非一時的なメモリと
を備え、
前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサにより実行されるとき、
クライアントデバイスからデータファイルの要求を受信する手順であって、前記要求は前記データファイルの第１識別子を含む、手順と、
前記データファイルの前記第１識別子に基づいてローカルマッチングデータファイルを識別する手順と、
前記データファイル内の第１位置における前記ローカルマッチングデータファイルからファイルブロックを選択する手順と、
前記ファイルブロックの特性値を取得する手順と、
前記特性値が前記ファイルブロックの第２特性値にマッチングする場合、前記データファイルが存在すると判定する手順と
を実行する、装置。
【請求項１１】
前記命令は、前記ファイルブロックの前記第１位置を取得する手順の後に、前記第１位置を前記クライアントデバイスに伝送する手順を更に実行する、請求項１０に記載の装置。
【請求項１２】
前記命令は、前記データファイルが存在することのインジケーションを前記クライアントデバイスに伝送する手順を更に実行する、請求項１０又は１１に記載の装置。
【請求項１３】
データファイルの前記要求は、前記データファイル内のファイルブロックの位置、及び前記第１位置における前記ファイルブロックに対応する第２特性値を更に含み、前記ファイルブロックの第１位置を取得する手順は、前記第１識別子から前記位置を抽出する手順を含み、前記ファイルブロックの特性値を取得する手順は、前記第１識別子から前記第２特性値を抽出する手順を含む、請求項１０から１２のいずれか一項に記載の装置。
【請求項１４】
前記特性値はＭＤ５又はＳＨＡ値を有する、請求項１０から１３のいずれか一項に記載の装置。
【請求項１５】
前記ファイルブロックの前記第１位置は、指定により取得される前記ファイルブロックの第１位置を有する、請求項１０から１４のいずれか一項に記載の装置。
【請求項１６】
前記ファイルブロックの前記第１位置は、ランダムアルゴリズムを用いて取得される前記ファイルブロックの第１位置を更に有する、請求項１０から１４のいずれか一項に記載の装置。
【請求項１７】
前記ファイルブロックの前記第１位置は、前記データファイル内の前記ファイルブロックの開始位置及び終了位置、又は前記データファイル内の前記ファイルブロックの開始位置及び長さを有する、請求項１０から１６のいずれか一項に記載の装置。
【請求項１８】
１又は複数のプロセッサと、
コンピュータ実行可能な命令をそこに格納する非一時的なメモリと
を備え、
コンピュータ実行可能な命令は、前記１又は複数のプロセッサにより実行されるとき、
データファイルの要求をサーバに送信する手順であって、前記要求は前記データファイルの第１識別子を含む、手順と、
前記サーバにより送信された第１位置を受信する手順と、
前記第１位置に基づいて前記データファイルから、対応する位置におけるファイルブロックを選択する手順と、
前記選択されたファイルブロックの第２特性値を算出する手順と、
前記第２特性値を前記サーバに伝送する手順と
を実行する、装置。
【請求項１９】
前記命令は、前記データファイルが存在することを示す、前記サーバにより戻される情報を受信する手順を実行する、請求項１８に記載の装置。
【請求項２０】
クライアントデバイスと、
サーバデバイスと
を備え、
前記クライアントデバイスは、
データファイルの要求を前記サーバデバイスに送信し、前記要求は前記データファイルの第１識別子を含み、
前記サーバデバイスにより送信されるファイルブロックの第１位置に従って、伝送されるべき前記データファイルから、対応する位置におけるファイルブロックを選択し、
前記選択されたファイルブロックの第２特性値を算出し、
前記ファイルブロックの前記第２特性値を前記サーバデバイスに送信し、
前記サーバデバイスは、
前記クライアントデバイスにより送信された前記要求内の前記データファイルの前記第１識別子に従ってローカルマッチングデータファイルを検索し、
前記ローカルマッチングデータファイルからファイルブロックを選択し、前記選択されたファイルブロックの第１位置を取得し、
前記第１位置を前記クライアントデバイスに送信し、
前記選択されたファイルブロックの第３特性値に前記第２特性値がマッチングする場合、前記データファイルが存在すると判定する、システム。
【国際調査報告】
2018500650.tif 000017
2018500650.tif 000018
2018500650.tif 000019
2018500650.tif 000020