(57)【要約】【課題】  コンピュータ・ネットワークにおいて電子文書のレプリカを検索及び／又はデポジットする方法を提供すること。【解決手段】  コンピュータ・ネットワークにおいて電子文書を検索又はデポジットする方法が導入される。少なくとも１つのレプリカ番号を選択した後、所定の関数が適用される。この関数は、入力としてレプリカ番号及び文書識別子を必要とする。この関数は、各々がレプリカを提供できるネットワーク内のエンティティを表す、少なくとも１つのエンティティ識別子を結果として戻す。次のステップにおいて、文書関連要求が、識別されたエンティティの少なくとも１つにアドレス指定される。【選択図】      図１
2007520778.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・ネットワークにおいて電子文書のレプリカを検索する方法であって、
少なくとも１つのレプリカ番号を選択するステップと、
入力として前記レプリカ番号及び文書識別子を必要とする所定の関数を適用することによって、各々が前記レプリカを提供できる前記ネットワーク内のエンティティを表す、少なくとも１つのエンティティ識別子を求めるステップと、
文書関連要求を前記識別されたエンティティの少なくとも１つにアドレス指定するステップと、
を含むことを特徴とする方法。
【請求項２】
Ｎがレプリカの最大数であるものとして、ｋ＝Ｎ個のレプリカ番号を選択するステップと、
前記所定の関数をｋ回適用することによって、ｋ個のエンティティ識別子を求めるステップと、
を含む、請求項１に記載の方法。
【請求項３】
ｋ＜Ｎであるものとして、レプリカの最大数Ｎからｋ個のレプリカ番号を選択するステップと、
前記所定の関数をｋ回適用することによって、ｋ個のエンティティ識別子を求めるステップと、
を含む、請求項１に記載の方法。
【請求項４】
ｋ＜＝５である、請求項３に記載の方法。
【請求項５】
ｋ＝１である、請求項３に記載の方法。
【請求項６】
前記文書関連要求を識別されたエンティティの全てにアドレス指定するステップを含む、請求項１乃至請求項５のいずれか１項に記載の方法。
【請求項７】
前記文書関連要求を前記識別されたエンティティの選択されたものにだけアドレス指定するステップを含む、請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項８】
前記文書関連要求を前記識別されたエンティティから選択された１つのエンティティだけにアドレス指定するステップを含む、請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項９】
前記ｋ個のエンティティの各々についてコスト関数を計算するステップを含み、前記コスト関数は、結果として前記関連するエンティティをアドレス指定するためのコストを示すコスト値を提供する、請求項１乃至請求項５いずれか１項に記載の方法。
【請求項１０】
関連付けられた前記コスト値によって、アドレス指定される各エンティティが前記識別されたエンティティから選択される、請求項７又は請求項８と組み合わされた請求項９に記載の方法。
【請求項１１】
前記アドレス指定された１つのエンティティ／複数のエンティティが、最も低いコスト値を示すものである、請求項１０に記載の方法。
【請求項１２】
前記アドレス指定されたエンティティについてのコスト値が、これらのエンティティとの通信から得られる、請求項６又は請求項７に記載の方法。
【請求項１３】
前記アドレス指定されたエンティティについてのコスト値が、コスト・データベースから得られる、請求項６又は請求項７に記載の方法。
【請求項１４】
前記アドレス指定されたエンティティの各々から、「レプリカが見当たらない」という応答を受信したとき、前記文書関連要求をアドレス指定するために、別のエンティティが前記識別されたエンティティから選択される、請求項１乃至請求項１３のいずれか１項に記載の方法。
【請求項１５】
前記前の要求がアドレス指定された前記１つのエンティティ／複数のエンティティに関連付けられた前記レプリカ番号より低い関連付けられたレプリカ番号を選択することによって、他の前記エンティティが前記識別されたエンティティから選択される、請求項１４に記載の方法。
【請求項１６】
前記レプリカが見当たらず、かつ、該レプリカがそこにないという表示を、前記アドレス指定された１つのエンティティ／複数のエンティティから受け取ったとき、前記文書関連要求をアドレス指定するために、別のエンティティが前記識別されたエンティティから選択される、請求項１乃至請求項１５のいずれか１項に記載の方法。
【請求項１７】
関連付けられたコスト値に基づいて、他の前記エンティティが選択される、請求項１６に記載の方法。
【請求項１８】
前記識別されたエンティティから少なくとも１つの最も好ましいエンティティを選択するステップと、
前記文書関連要求を最も好ましいエンティティの各々にアドレス指定するステップと、
を含む、請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項１９】
最も好ましいエンティティの各々が、前記エンティティからの距離に従って選択される、請求項１８に記載の方法。
【請求項２０】
エンティティの前記距離が、前記関連付けられたエンティティ識別子から得られる、請求項１９に記載の方法。
【請求項２１】
前記アドレス指定されたエンティティから「レプリカが見当たらない」という応答を受信したとき、前記文書関連要求をアドレス指定するために、少なくとも１つの他のエンティティが第２番目に好ましいエンティティとして１組の識別されたエンティティから選択され、この組の識別されたエンティティは、前記最も好ましいエンティティ識別子に関連付けられた前記レプリカ番号より低い対応するレプリカ番号を有するエンティティに制限される、請求項１８乃至請求項２０のいずれか１項に記載の方法。
【請求項２２】
前記第２番目に好ましいエンティティが、前記検索エンティティからの距離に従って前記組の識別されたエンティティから選択される、請求項２１に記載の方法。
【請求項２３】
請求項１乃至請求項２２のいずれか１項に記載された方法の各ステップをコンピュータに実行させるプログラム。
【請求項２４】
コンピュータ・ネットワークにおいて電子文書のレプリカをデポジットする方法であって、
レプリカ番号を選択するステップと、
入力として前記レプリカ番号及び文書識別子を必要とする所定の関数を適用することによって、前記ネットワーク内のエンティティを表すエンティティ識別子を求めるステップと、
レプリカをデポジットするために、前記識別されたエンティティをアドレス指定するステップと、
を含むことを特徴とする方法。
【請求項２５】
請求項２４に記載された方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・ネットワークにおいてレプリカにアクセスすることに関する。より具体的には、本発明は、コンピュータ・ネットワークにおける電子文書のレプリカの検索及び／又はデポジットに関する。
【背景技術】
【０００２】
電子文書及びデータにすぐにアクセスできることは、日常の業務活動にとって、ますます重要になってきている。その結果、格納部は、局所的な物理的損傷を含む故障に対して信頼性が高く、弾力的なものである必要がある。コンピュータ・ネットワーク上の分散した複製格納が、唯一の解決法のように思われる。
【０００３】
不幸なことに、今日の分散／複製システムは、典型的には、異なる位置にある少なくとも２つのデータセンタである関連するコンピュータ・エンティティの間に完全に同一の複製を必要とするか、又は分散型ストレージの場合には、レプリカの分散を追跡し続ける集中コントローラを必要とする。１つより多いレプリカにアクセスしようとする人は、レプリカの完全なリストを知る必要があるか、或いは、この情報を、全ての文書について全体的に又は文書毎に戻すディレクトリ・サービスにアクセスする必要がある。
【０００４】
既存の安価な機械を用いてコンテンツを供給することができるので、分散型格納がますます重要になってきている。分散型ハッシュ・テーブル（ＤＨＴ）技術の出現で、自己組織型格納ネットワークが実現可能になり、コミュニティに重要な関心を提起した。インターネット「上に」あるとき、これらの拡張可能なオーバーレイ・ネットワークは、基礎をなすネットワークの転送能力を用いるが、これに価値を加える。ＤＨＴ技術は、一般にリソース名からリソースＩＤへのマッピング（Ｎ→Ｄ）に先行して、リソースＩＤからホストへのマッピング（Ｄ→Ｈ）を提供する。このことは、各ノードにおける最小の経路指定情報を用いて達成される。ＤＨＴは、一般に、ホスト可用性及びネットワーク接続性の変化に対処するようにされている。
【０００５】
ＤＨＴは、種々の経路指定フレーバーの形で提供されるが、オーバーレイ・ネットワークの構成要素ノードの中で、メッセージがホップバイホップ・ベースで転送されるという特性を共有する。各ホップは、要求されたＩＤをそれ自体のものであるとクレームし、要求に従って動作するノードに最終的に到達するまで、どのように宛先に接近するかを知っている。
【０００６】
一部のＤＨＴは、非特許文献１に記載されるような、間隔リング・トポロジーに基づいて作動し、一部は、ハイパースペースを非特許文献２又は非特許文献３に記載されるような、処理しやすいチャンクに分割し、他のものは、非特許文献４又は非特許文献５に記載されるような、ルートのないツリーを実装する。
【０００７】
これらのＤＨＴシステムの多くは、基礎となるネットワークの局所性を利用することが可能である。局所性の側面は、一般に地理的配置及び接近性に分離され、出典非特許文献６からのカテゴリーを転送する。
【０００８】
非特許文献７は、局所性パターンへの別の手法を示す。
【０００９】
ロード・バランシングの側面が、非特許文献８においてカバーされる。
【００１０】
ＤＨＴのリンク及びキャッシングの手法が、非特許文献９に示される。そこでは、その経路に沿って文書のキャッシュを見つけることができる高可用性があるときに、ＤＨＴを転送する照会が、減衰ブルーム・フィルタ（Ａｔｔｅｎｕａｔｅｄ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ，ＡＢＦ）によって再指向される。誤検知の機会に加えて、ＡＢＦ更新トラフィックが連続的であるにもかかわらず、必要性が生じたときに文書の発信元が選択されたレプリカをアドレス指定する方法はない。
【００１１】
非特許文献１０は、ＤＨＴに加えて、リソース・ディスカバリ／ディレクトリ・サービスの例を示す。
【００１２】
特許文献１は、集中コントローラ／コーディネータを用いる、ピアツーピアのエンタープライズ格納技術を示す。
【００１３】
本出願人の特許文献２は、第１のストリームによって読み取られるファイルの一部を第２の装置に複製し、アクセスすることができる第２のストリームを用いてその部分を読み取ることによる、ロード・バランシングのための方法及びシステムを開示する。この従来技術は、完全集中型システムを処理するものである。
【００１４】
特許文献３、特許文献４、及び特許文献５の各々は、ストレージ・ネットワーク・データ・レプリケータを紹介している。あるインスタンスから他のインスタンスに複製する方法についてのアルゴリズムが開示されている。さらなる複製のために、どの既存のレプリカをソースとして選択するかが記載される。
【００１５】
特許文献６も特許文献７も、コンピュータ・システムにおいて複製されたデータベースのコピーを自動的に分散させるためのシステム及び方法を示す。信頼性を向上させるために、レプリカの配置を決定するためのホスト及びディスクが列挙される。
【００１６】
特許文献８は、耐故障性コンピュータ・システムのための分散型耐故障性デジタル・データ格納サブシステムを示す。基本的にネットワークＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）として、多数の冗長コンピュータが、多数の冗長ディスクに対するフロントエンドとして用いられる。
【００１７】
特許文献９によると、データ転送要求を処理するために、複数のアドレス指定可能なストレージ・デバイスの１つを指定する方法が提案される。クライアントは、単一の要求を全てのレプリカにマルチキャストし、これらが協働して応答すべきものを選択する。
【００１８】
特許文献１０は、格納デバイスの分散型ファイル・システムにおける情報の追跡のためのメタデータを提供するシステム及び方法を示す。
【００１９】
特許文献１１において、ファイル・システムの災害時回復のための方法及び装置が示される。
【００２０】
本出願人の別の特許である特許文献１２によると、論理ボリューム・マネージャと、ストレージの動的割り当て及びメタデータ情報の最小量格納を用いて向上した更新能力を有するための対応する方法とが示される。メタデータの複製が提供され、これは、知る必要がある格納提供者に制限されている。
【００２１】
特許文献１３において、動的データ管理を用いる、モジュール式格納サーバ・アーキテクチャが説明される。この文書は、局所性アクセス・パターン及び階層型ストレージ管理に従った複製を示す。
【００２２】
特許文献１４によると、同時平行処理間のロッキングを提供する、ファイル・データの効率的な複製のための製造業者／消費者ロッキング・システムが示される。
【００２３】
特許文献１５によると、文書を複製するためのログ・ファイル機構を用いる複製機能が記載される。
【００２４】
複製及び分散型格納についてなされた労力にもかかわらず、現在のところ、単一障害点の存在に悩まされない完全分散型技術の上の複製機構が不足している。レプリカが可用性を改善するだけでなくロードのバランスを取ることができるので、キャッシングのための分散型機構も存在した。信頼性に加えて、キャッシング・システムもまた、更新の問題を生じさせる。情報がキャッシュされる場所が明確でないので、元の位置の状態を連続的に追跡しない場合には、キャッシュが陳腐化することがある。このことは、拡張性に難問を生じさせ、キャッシングが提供するオフロードを取り消すことになる。
【００２５】
【特許文献１】米国特許第２００２０１１４３４１Ａ１号明細書
【特許文献２】米国特許第６，２２３，２０６号明細書
【特許文献３】米国特許第２００３００１４５２３Ａ１明細書
【特許文献４】米国特許第２００３００１４４３３Ａ１明細書
【特許文献５】米国特許第２００３００１４４３２Ａ１明細書
【特許文献６】米国特許第６，４６７，０４６号明細書
【特許文献７】欧州特許第８０７，８８５号明細書
【特許文献８】米国特許第５，８１５，６４９号明細書
【特許文献９】米国特許第６，４７０，４２０号明細書
【特許文献１０】国際公開第０３／０１２６９９  Ａ１号パンフレット
【特許文献１１】米国特許第６，１６３，８５６号明細書
【特許文献１２】米国特許第５，８９７，６６１号明細書
【特許文献１３】国際公開第０２／０９３２９８  Ａ３号パンフレット
【特許文献１４】米国特許第２００３００２８６９５Ａ１明細書
【特許文献１５】米国特許第５，５８８，１４７号明細書
【非特許文献１】Ｉｏｎ  Ｓｔｏｉｃａ他著、「Ｃｈｏｒｄ：Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−ｐｅｅｒ  Ｌｏｏｋｕｐ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ａｐｐｌｉｃａｔｉｏｎｓ」、ＡＣＭ  ＳＩＧＣＯＭＭ２００１予稿集、２００１年８月、ページ１４９−１６０
【非特許文献２】Ｓｙｌｖｉａ  Ｒａｔｎａｓａｍｙ他著、「Ａ  Ｓｃａｌａｂｌｅ  Ｃｏｎｔｅｎｔ−Ａｄｄｒｅｓｓａｂｌｅ  Ｎｅｔｗｏｒｋ」、ＡＣＭ  ＳＩＧＣＯＭＭ予稿集、２００１年９月
【非特許文献３】Ｍａｒｃｅｌ  Ｗａｌｄｖｏｇｅｌ及びＲｏｂｅｒｔｏ  Ｒｉｎａｌｄｉ著、「ＥｆｆｉｃｉｅｎｔＴｏｐｏｌｏｇｙ−Ａｗａｒｅ  Ｏｖｅｒｌａｙ  Ｎｅｔｗｏｒｋ」、ＡＣＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｒｅｖｉｅｗ、２００３年１月、第３３巻第１、ページ１０１−１０６
【非特許文献４】Ａｎｔｈｏｎｙ  Ｒｏｗｓｔｒｏｎ及びＰｅｔｅｒ  Ｄｒｕｓｃｈｅｌ著、「Ｐａｓｔｒｙ：Ｓｃａｌａｂｌｅ、Ｄｏｓｔｒｉｂｕｔｅｄ  ｏｂｊｅｃｔ  ｌｏｃａｔｉｏｎ  ａｎｄ  ｒｏｕｔｉｎｇ  ｆｏｒ  ｌａｒｇｅ−ｓｃａｌｅ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｓｙｓｔｅｍｓ」、ＩＦＩＰ／ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｔｅｍｓ  Ｐｌａｔｆｏｒｍｓ（Ｍｉｄｄｌｅｗａｒｅ）」、２００１年１１月、ページ３２９−３５０
【非特許文献５】Ｂｅｎ  Ｙ．Ｚｈａｏ他著、「Ｔａｐｅｓｔｒｙ：Ａｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ｆｏｒ  Ｆａｕｌｔ−ｔｏｌｅｒａｎｔ  Ｗｉｄｅ−ａｒｅａ  Ｌｏｃａｔｉｏｎ  ａｎｄ  Ｒｏｕｔｉｎｇ」、Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｌｉｆｏｒｎｉａ、Ｂｅｒｃｌｅｙ、ＵＣＢ／ＣＳＤ−０１−１１４１、２００１年４月
【非特許文献６】Ｍｉｇｕｅｌ  Ｃａｓｔｒｏ他著、「Ｅｘｐｌｏｉｔｉｎｇ  Ｎｅｔｗｏｒｋ  Ｐｒｏｘｉｍｉｔｙ  ｉｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅｓ」、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｆｕｔｕｒｅ  Ｄｉｒｅｃｔｉｏｎｓ  ｉｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔｉｎｇ（ＦｕＤｉＣｏ）」、Ｏｚａｌｐ  Ｂａｂａｏｇｌｕ、Ｋｅｎ  Ｂｉｒｍａｎ、及びＫｅｉｔｈ  Ｍａｒｚｕｌｌｏ編、２００２年６月、ページ５２−５５
【非特許文献７】Ｃ．Ｇｒｅｇ  Ｐｌａｘｔｏｎ他著、「Ａｃｃｅｓｓｉｎｇ  Ｎｅａｒｂｙ  Ｃｏｐｉｅｓ  ｏｆ  Ｒｅｐｌｉｃａｔｅｄ  Ｏｂｊｅｃｔｓ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｅｎｖｉｒｏｎｍｅｎｔ」、ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｐａｒａｌｌｅｌ  Ａｌｇｏｒｉｔｈｍｓ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ」、１９９７年、ページ３１１−３２０
【非特許文献８】Ｊｏｈｎ  Ｂｙｅｒｓ、Ｊｅｆｆｒｅｙ  Ｃｏｎｓｉｄｉｎｅ、Ｍｉｃｈａｅｌ  Ｍｉｔｚｅｎｍａｃｈｅｒ著、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｓｙｍｐｏｓｉｕｍ（ＩＰＴＰＳ）、２００３年２月
【非特許文献９】Ｊｏｈｎ  Ｋｕｂｉａｔｏｗｉｃｚ他著、「ＯｃｅａｎＳｔｏｒｅ：Ａｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｇｌｏｂａｌ−Ｓｃａｌｅ  Ｐｅｒｓｉｓｔｅｎｔ  Ｓｔｏｒａｇｅ」、ＡＣＭ  ＡＳＰＬＯＳ予稿集、２０００年１１月
【非特許文献１０】Ｍａｇｄａｌｅｎａ  Ｂａｌａｚｉｎｓｋａ他著、「ＵＮＳ／Ｔｗｉｎｅ：Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｎｔｅｎｔｉｏｎａｌ  Ｒｅｓｏｕｒｃｅ  Ｄｉｓｃｏｖｅｒｙ」、Ｐｅｒｖａｓｉｖｅ２００２−Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｐｅｒｖａｓｉｖｅ  Ｃｏｍｐｕｔｉｎｇ、２００２年８月
【非特許文献１１】Ｍａｒｃｅｌ  Ｗａｌｄｖｏｇｅｌ及びＲｏｂｅｒｔｏ  Ｒｉｎａｌｄｉ著、「Ｅｆｆｉｃｉｅｎｔ  Ｔｏｐｏｌｏｇｙ−Ａｗａｒｅ  Ｏｖｅｒｌａｙ  Ｎｅｔｗｏｒｋ」、ＡＣＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｒｅｖｉｅｗ、２００３年１月、第３３巻第１、ページ１０１−１０６
【非特許文献１２】Ｊ．Ｂｙｅｒｓ他著、「Ｓｉｍｐｌｅ  Ｌｏａｄ  Ｂａｌａｎｃｉｎｇ  ｆｏｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅｓ」、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｓｙｍｐｏｓｉｕｍ（ＩＰＴＰＳ）、２００３年２月
【発明の開示】
【発明が解決しようとする課題】
【００２６】
したがって、コンピュータ・ネットワークにおいてレプリカを管理するための機構であって、コンピュータ・ネットワークにおいてレプリカを検索及び／又はデポジットするための適切な方法、コンピュータ・エンティティ、コンピュータ・プログラム要素に反映される機構を提供することが望ましい。
【課題を解決するための手段】
【００２７】
本発明は、コンピュータ・ネットワークにおいて電子文書のレプリカを検索する方法を提供するものである。少なくとも１つのレプリカ番号が選択され、所定の関数が適用される。この関数は、入力として電子文書に関連したレプリカ番号及び文書識別子を必要とする。入力としてｋ個の異なるレプリカ番号を用いて関数をｋ回適用することによって、ｋ個の識別子を求め、ここで、各々のエンティティ識別子は、レプリカを提供できるネットワーク内のコンピューティング・エンティティを表す。ｋは、１以上の整数である。次に、文書関連要求を識別されたエンティティの少なくとも１つにアドレス指定する。
【００２８】
この方法は、ネットワークへのアクセスを有する検索コンピューティング・エンティティ上で自動的に実行されることが好ましい。
【００２９】
本発明の別の側面によると、コンピュータ・ネットワークにおいて電子文書のレプリカをデポジットする方法が提供される。同様に、レプリカ番号が選択され、所定の関数が適用され、この関数は、入力としてレプリカ番号及び文書識別子を必要とする。この関数の出力は、ネットワーク内のコンピューティング・エンティティを表し、選択されたレプリカ番号を有するレプリカをデポジットすることができるエンティティ識別子を表す。次に、識別されたエンティティは、レプリカのデポジット又は改定のためにアドレス指定される。この方法は、文書関連の改定をデポジットするためにも用いることができる。
【００３０】
この方法は、ネットワークへのアクセスを有するデポジット又は改定コンピューティング・エンティティ上で実行されることが好ましい。
【００３１】
この手法の考えは、コンピュータ・ネットワークにおける予め定義されたアドレスにだけ、電子文書のレプリカを格納できるというものである。こうしたアドレスは、本文脈においてはエンティティ識別子とも呼ばれる。アドレスは、文書毎のレプリカ番号の各々について、特定のレプリカを見つけ出す又は格納することができるコンピューティング・エンティティに関連付けられたアドレスを提供する関数によって予め定義される。
【００３２】
好ましい実施形態において、この関数は、擬似ランダム・ハッシュ関数であり、ここでは、各々のアドレス／識別子が、分散型ハッシュ・テーブルを用いてネットワーク内のマシン／エンティティの１つにマッピングされる。
【００３３】
この関数によって、ネットワークのどこにでも、レプリカをランダムに付加又は削除することができる。レプリカは、ネットワーク内のまさに定められた位置／エンティティにおいてのみアクセス又はデポジットすることができ、エンティティは、入力としてレプリカ番号を有する関数を適用することによって求められる。それにもかかわらず、擬似ランダム・ハッシュ関数を適用する場合には、ハッシュ関数の擬似ランダム特性が、レプリカを均一に分散させることを保証する。しかしながら、別の規則又は関数に従う他のレプリカをネットワーク内のエンティティ上にデポジットすることもできる。このシステムが故障した場合は、関数によってデポジットされたレプリカが、例えば、集中管理システムのためのフォールバック解決法として働くこともできる。
【００３４】
関数は、ネットワーク内のどのエンティティでレプリカを見つけることができるか、又はネットワーク内のどのエンティティにレプリカをデポジットできるかについて、各々の電子文書について情報を提供する。この関数をサポートするために、番号付けシステムが、検索又は格納される各文書についてのレプリカ番号を導入することが好ましく、レプリカ番号は、１からＮまでの間の範囲であることが好ましく、Ｎは、最も高いレプリカ番号及び許容されるレプリカの最大数の場合であると特徴付けられる。文書識別子ｙ及び選択されたこの文書識別子についてのレプリカ番号ｘを有した後、関数は、文書ｙのレプリカ番号ｘについて選択されるエンティティを示すエンティティ識別子を求める。書き込みプロセスにおいて、文書ｙのレプリカｘをこのエンティティに送信し、このエンティティに格納することができる。アクセス・プロセスにおいては、文書ｙのレプリカｘをこの特定のエンティティで見つけることができるが、必ずしもそこで見つける必要はない。例えば、これまで、ｘより小さいレプリカ番号は、検索エンティティからの要求を供給するのに十分なものであったので、これまでのところ、関連付けられたエンティティに文書ｙのレプリカｘをデポジットする必要性はなかった。
【００３５】
同じ文書のレプリカをデポジットするための関数が同じである場合には、関数によって定められるネットワーク内の特定のアドレスにおいて、文書のレプリカの検索だけを行うことができる。
【００３６】
好ましくは、ネットワーク内で許容されるレプリカ番号についての制限を設定することによって、計算に基づくために、必要な場合は調べるために、検索エンティティが制限された領域のレプリカ番号を有するので、検索プロセスが最適化される。これまで非常に大きい数を有するレプリカを格納するのに誰もこのエンティティを使用しなかったので、最大数のレプリカを設定しないこと又は過剰な最大数のレプリカを設定することによって、実際にレプリカが格納されていないエンティティにアクセスしようとすることによる検索時間の損失が生じる。
【００３７】
提案される方法に関して、元の文書自体といずれかのレプリカとの間の用語上の差はないことが理解される。元の文書自体は、いずれかのレプリカ番号のもとで格納されることが好ましく、よってこのレプリカ番号のもとでアドレス指定することができる。
【００３８】
基礎となるネットワークは、ピアツーピア・ネットワーク又は階層ネットワークとすることができる。
【００３９】
電子文書は、いずれかの種類の電子ファイル又はデータ、若しくはデータベースとすることができ、そのコピーは、コンピュータ・ネットワーク内の異なる位置に、レプリカとして格納することができる。ここに示されるような電子文書は、アクセスされたときに格納動作を行う、コンピュータ・プログラムのようなアクティブ・リソースとすることもでき、又はストレージ・ユニット、セクタ、或いはセクタのクラスタのような電子ファイルのフラグメントとすることもできる。例えばバックアップのために、レプリカを非常に特定的な場所に恒久的に格納することができる。或いは、例えばキャッシングのために、レプリカを一時的に格納し、特に多くのユーザが基礎となる文書にアクセスする必要があるときに、ネットワーク又は元の文書ストアを含む他のレプリカにかかる負荷を減少させることができる。本発明は、分散型ストレージ・アプリケーション又は文書リポジトリ・ストレージ・アプリケーション、及び分散型コンピューティング・アプリケーションをサポートする。したがって、ユーザの利益になるように、ネットワークにわたってレプリカを確立し、格納エンティティにおける多くのコンピューティング能力及び多くのネットワーク能力を提供することによって、元のリソースだけに比べて多くのアクセス点を有することが好ましい。レプリカは、ラップトップ型コンピュータ、手持ち式コンピュータ、携帯電話、又はディスクトップ型コンピュータのような多くの異なるコンピューティング・エンティティ上で自分の電子文書をアクセス可能にすることを望む単一のユーザの観点からも有利である。本発明は、電子文書を複製するこれらの全てのアプリケーションに適用できるが、これらに制限されるものではない。
【００４０】
本発明と併せて説明されるエンティティの能力は、使用目的によって決まる。一般に、コンピューティング・エンティティは、ネットワークにアクセスし、ネットワーク上で通信することができる何らかのユニットとすることができる。一部のエンティティは、主として文書／レプリカのためのデポジット場所として働き、よって、膨大な量のデータを格納する準備ができている。こうしたエンティティは、特にサーバ・コンピュータとすることができる。しかしながら、ネットワーク及び何らかの種類のストレージへのインターフェースを含む他の全てのコンピューティング・エンティティは、レプリカを提供するためのエンティティとして働くことができる。検索エンティティは、クライアント・コンピュータ、又は、例えば上述のような他のいずれかのタイプのコンピューティング・エンティティとして具体化することができ、或いは文書管理者のコンピュータとすることもできる。コンピュータが、レプリカの検索及びデポジットの両方を行えることが好ましい。
【００４１】
電子文書のレプリカを検索する即ち突き止める方法によると、レプリカを提供できる識別されたエンティティのアドレス指定を様々な方法で行うことができる。エンティティにアドレス指定された要求により、アドレス指定されたエンティティは、このレプリカが実際に利用可能であるかどうかを検索し、その結果を検索エンティティに伝えることだけが可能になる。別の実施形態において、要求は、レプリカを検索デバイスに直ちに送信するか、或いは、送られたデータを付加し、又は改定し、又は更新し、又は修正して、要求とともに、識別されたエンティティにおけるレプリカに送信することができる。
【００４２】
識別されたエンティティにレプリカをデポジットする場合、要求は、アドレス指定されたエンティティがいつでもレプリカを格納できる状態になっているかどうかの応答だけをトリガし、よってアドレス指定されたエンティティにおいて内部チェックを開始することができる。しかしながら、要求はまた、アドレス指定されたエンティティに直ちに格納できる状態になっているレプリカ自体を含むこともできる。
【００４３】
グローバルな視野から、レプリカを突き止めるために、レプリカを検索する方法は、検索エンティティとも呼ばれるクライアントに僅かな数のメッセージだけを送信させる。以下の実施形態から分かるように、クライアントは、近くのレプリカ又は最も近いレプリカを突き止めることができる。このことを実行するために、レプリカの選択が制限されていることが好ましい。このようにレプリカを列挙し、直接アドレス指定することができるので、クライアントが文書を迅速に見つけることが可能になる。しかしながら、文書が更新されたか又は文書を更新する必要がある場合、或いは文書のコンテンツを検証するか又は他の方法で処理する必要がある場合、文書の所有者が全てのレプリカを迅速に見つけることも有利である。
【００４４】
さらに、各々のレプリカは、文書ＩＤ及び文書コンテンツのタプルだけを格納する必要がある。文書コンテンツは、例えばテキスト又はグラフィクスのような文書自体のコンテンツとすることができるが、代わりに文書を実際に格納するノードへの（１組の）ポインタ、及び（１組の）レプリカ索引又はレプリカ・エンティティＩＤとすることもできる。エンティティ識別子をランダムに分散して２つ又はそれ以上のエンティティ識別子が単一のノードによってカバーされる範囲内に入るようにするハッシュ関数等の関数の場合におけるように、同じエンティティが同じ文書の多数のレプリカを担当することができる場合には、エンティティ、したがってレプリカは、レプリカ索引又はレプリカ・エンティティＩＤの形態の付加的な情報を提供することができ、このことにより、同じエンティティ上の異なるレプリカが区別される。
【００４５】
レプリカ番号の制限の実施形態を考慮すると、どの関数が、選択された文書の特定のレプリカ番号に関連付けられたエンティティの識別子を決定できるかに基づいて、レプリカ番号の選択を様々な方法で処理することができる。この選択は、ｋ個のレプリカ番号のランダム選択とすることができる。しかしながら、この選択は、Ｎ個のレプリカ番号の全てをカバーすることもでき、ここで、Ｎは、レプリカの最大数であり、好ましい範囲の数は、例えば［１．．．．Ｎ］又は［０．．．．Ｎ−１］とすることができる。この好ましい実施形態において、関連する文書のレプリカにアクセスを提供できるｋ個のエンティティ識別子を求めるために、所定の関数をｋ＝Ｎ回適用する。
【００４６】
この実施形態は、各々がレプリカを提供できる最大数のエンティティにアクセスするため、或いはアドレス指定するための幾つかの識別されたエンティティ又は１つだけの識別されたエンティティを選択するために、検索エンティティに完全な自由を与えるものである。選択スキームは、異なる識別されたエンティティの評価に従うことができる。
【００４７】
しかしながら、リソースが制限されるか、Ｎが大きな数であるとき、別の手法が好ましい。すなわち、ｋ＜Ｎであるものとして、最大Ｎ個のレプリカからｋ個のレプリカ番号だけを選択することができる。その結果、こうしたエンティティ識別子を求めるための関数によって、ｋ個のエンティティ識別子だけが与えられる。
【００４８】
この手法は、エンティティ識別子の量であり、最終的にはアドレス指定する価値があると考えられるエンティティの量である、データの量を制限するのに有利である。
【００４９】
ｋは、５以下になるように選択できることが好ましい。このことは、特に、この目的のためにエンティティのサブセットを選択することなく、識別されたエンティティの全てが直接アドレス指定されるときに、レプリカを検索するためにアドレス指定することができるエンティティの適切な範囲を表す。この戦略の理論的根拠が、以下により詳細に説明される。
【００５０】
ｋ＝１である別の好ましい実施形態において、よってこの手法において、最初から識別される１つだけの宛先があり、要求は、この１つのエンティティだけにアドレス指定される。一実施形態において、レプリカ番号をランダムに選択することができる。別の実施形態において、レプリカ番号が上がるようにレプリカがネットワーク上に分散される場合、レプリカ番号は、許容されるレプリカ番号の範囲の低い数の範囲内で選択される。したがって、低いレプリカ番号を有するレプリカを提供するエンティティにおけるレプリカを探すとき、最初のショットでレプリカに達するように可能性が増大される。しかしながら、このレプリカは、検索エンティティから遠く離れて配置することもできる。
【００５１】
さらに同様の手法において、文書関連要求が、全ての識別されたエンティティにアドレス指定される。この実施形態は、必ずしも、全ての識別されたエンティティが実際に利用可能な要求されたレプリカを有する必要はないという事実を示す。関数によって特定のレプリカ番号に割り当てられたエンティティは、このレプリカ番号がレプリカのデポジットのために用いられる場合に、このレプリカ番号を有するレプリカをデポジットしなければならない場所を求めるだけであることに注意されたい。しかしながら、例えば、使用中のこれまでのレプリカの数が過去の要求をカバーするのに十分なものであったことから、この特定の場所／エンティティにおいて、ネットワーク内のいずれかのエンティティが、これまで実際にこの数を有するレプリカをデポジットする必要性を有していた必要はない。
【００５２】
しかしながら、要求を１つより多い識別されたエンティティにアドレス指定するとき、当該レプリカが利用可能であり、ダウンロードする準備が出来ているアドレス指定されたエンティティの少なくとも１つから情報を受信する可能性が高い。
【００５３】
別の好ましい実施形態において、識別されたエンティティの選択されたものだけが、文書関連要求を用いてアドレス指定される。この実施形態は、アドレス指定のために、識別されたエンティティの限定された選択を可能にする。文書のレプリカを提供するエンティティを識別するためのプロセスは、過剰のリソースを必要とせず、よって最大Ｎのレプリカ番号又は少なくともその大部分に対して行われるので、多くのエンティティを用いて通信を処理するのは、面倒であり、時間とリソースの無駄使いになる。識別されたエンティティに送信される要求の数を最小にするために、評価スキームを適用し、識別されたエンティティから大部分の有望なエンティティだけを求めることができる。エンティティが有望であると考えられるかどうかの評価は、異なる基準に基づくことができる。
【００５４】
特に、何らかの理由でエンティティに対する密な通信が好まれないとき、評価／選択プロセスは、１つだけの好ましいエンティティを選択し、文書関連要求をアドレス指定することになる。
【００５５】
特に好ましい評価スキームは、エンティティに関連したコスト値を計算するためのコスト関数を含むことができる。こうしたコスト値は、エンティティをアドレス指定するため、及び／又はこのエンティティと通信するため、及び／又はこのエンティティからのダウンロードを実行するためのコストを示すことができ、ここで、コストは、例えば、時間、及び／又は必要とされるリソース、及び／又は関連するエンティティへのアクセスに関する好み又は欠点を示す別のパラメータとして定義することもできる。ｋ個の識別されたエンティティの各々についてコスト値を計算することが好ましい。次のステップにおいて、計算されたコスト値に従って、アドレス指定されるエンティティが、識別されたエンティティから選択される。低いコスト値を示すエンティティだけが、アドレス指定されるように選択されることが好ましい。低いコスト値を示すエンティティを求めるために、しきい値を導入することができる。或いは、多数の評価されたエンティティから最も低いコスト値を示すエンティティが選択される。
【００５６】
好ましい実施形態において、コスト関数は、コスト・データベースから、エンティティについてのコスト値を検索する又は得ることができる。こうしたデータベースは、局所的データベース（例えば、キャッシュ）、集中データベース、又は分散データベースとすることができる。
【００５７】
エンティティについてのコスト値を得るために他の手段が見当たらないとき、こうしたコスト値をこれらのエンティティとの通信から直接取得できることが好ましい。好ましい実施形態において、識別されたエンティティは、アドレス指定され、呼び出されて応答を送信し、そこで、例えば要求の発行と検索エンティティにおける応答の到着との間の時間が測定され、アドレス指定されたエンティティについてのコスト値に翻訳される。アドレス指定されたエンティティがより遠隔に配置されている程往復の時間が長いので、このコスト値を、検索エンティティの位置及びアドレス指定されたエンティティの位置に関連付けることができる。しかしながら、特に、非常に大きなファイルを表すレプリカをダウンロードする前に、このように事前にコスト値を求めることは妥当なことである。次に、期せずして非常に遅いダウンロード速度を提供することがある、任意に選択した識別されたエンティティからのダウンロードを用いて直ちに開始する代わりに、コストを推定するための短いメッセージを有する多数の識別されたエンティティをアドレス指定することは、より時間を節約する手法となる。
【００５８】
一般に、当該エンティティについての絶対値によって又はコストを検索エンティティに関連したコストとみなす相対値によって、コスト値を表すことができる。
【００５９】
「レプリカが見当たらない」という応答をアドレス指定されたエンティティの各々から受信した場合には、文書関連要求をアドレス指定するために、別のエンティティが識別されたエンティティから選択される。「レプリカが見当たらない」という応答は、実際に、こうしたレプリカが関連するエンティティに格納されていないことを示す。
【００６０】
ネットワークにおいて、応答がレプリカ番号の昇順に格納されるならば、「レプリカが見当たらない」という応答は、この特定のレプリカ番号を有するこのエンティティにレプリカが格納されていないことを示す。さらに、ネットワーク内のどこにもレプリカがエンティティに格納されていず、これらのエンティティが、この特定のものでなくいずれかのより大きいレプリカ番号に割り当てられることを、適切なシステム規則から得ることができる。このことは、より大きなレプリカ番号を有する同じ文書のレプリカを格納することが予想されるエンティティをアドレス指定することを約束するものでないことを意味する。失敗したレプリカ番号より低いレプリカ番号を示す１組のエンティティに新しい要求をアドレス指定するために少なくとも１つのエンティティを選択することが好ましい。このことは、一般にアドレス指定する価値があるエンティティの量の制限を大きく助ける。
【００６１】
上記の規則を全ての応答に繰り返し順に適用する必然的な結果として、１つより多いエンティティにアクセスされ、全ての応答が「レプリカが見当たらない」ことを示す場合には、これらのアドレス指定されたレプリカ番号からの最も低いレプリカ番号が、新しい組のレプリカ番号の上限を設定し、そこから、要求を用いてアドレス指定されるように別のエンティティが選択される。
【００６２】
残りのエンティティのこの組の内部で、コスト値に従って、次にアドレス指定される１つのエンティティ／複数のエンティティを再び選択することができる。このことは、残りのエンティティの組の内部で、低いコストが選択基準である場合に最も低いコストを示すのも、更なるステップにおいてアドレス指定される１つのエンティティ／複数のエンティティであることを意味する。こうした要求についての応答のいずれも、要求されるレプリカを提供するエンティティを開示しない場合、これらの要求に含まれる最も低いレプリカ番号が、レプリカ番号の上限を再設定し、これにより、更なるステップにおいて関連付けられたエンティティをアドレス指定できるようになる。
【００６３】
識別されアドレス指定されたエンティティのうち、レプリカを提供することができない識別子を順番に繰り返し排除し、既にアドレス指定されたものより大きい割り当てられたレプリカ番号を有する他のエンティティに到達することが、レプリカを検索するためのネットワーク上の通信の大きさを減少させる。
【００６４】
しかしながら、レプリカが見当たらず、かつ、該レプリカがそこにないという表示を、アドレス指定された１つのエンティティ／複数のエンティティから受け取ったとき、失敗したものより大きいレプリカ番号によって求められる他のいずれのエンティティも、通常、当該レプリカを提供できないことを導き出すことはできない。したがって、更なる要求をアドレス指定することにより、こうしたエンティティを排除することができる。少なくともこの照会時間中に到達できないままなので、差し当たり、アドレス指定された１つのエンティティ／複数のエンティティだけを排除することができる。代わりに、識別されたエンティティから選択される残りのエンティティの別のものに要求をアドレス指定することが好ましく、好ましくは、このことが次の次善のコスト値を示す。
【００６５】
本発明の別の実施形態によると、１つ又はそれ以上の最も好ましいエンティティが、識別されたエンティティから選択され、文書関連要求が、最も好ましいエンティティの各々にアドレス指定される。この実施形態において、最も好ましいエンティティの各々が検索エンティティからの短い距離を示す場合、アドレス指定されたエンティティは、検索エンティティからの距離に従って選択され、そこで、しきい値を絶対的に適用することによって、又は検知された距離を相対的に比較することによって、短い距離を定めることができる。例えば、ｇ個のエンティティが選択されるとき、ｇ個のエンティティが、識別されたエンティティからの検察エンティティに対する最短距離を示すものであることが好ましい。幾つかのネットワークにおいて、特に幾つかのエンティティ識別子表記において、位置、よって距離の測定値を、関連付けられたエンティティ識別子から得ることができる。こうした距離は、コスト値とみなすことができ、選択プロセスのための基準として、コスト値を用いることができる。
【００６６】
同様に、この実施形態において、アドレス指定されたエンティティから「レプリカが見当たらない」というメッセージを受信したとき、少なくとも１つの他のエンティティが、文書関連要求をアドレス指定するための次善の好ましいエンティティとして１組の識別されたエンティティから選択されることが好ましく、この識別されたエンティティの組は、最も好ましいエンティティ識別子に関連付けられた最も低いレプリカ番号より低い対応するレプリカ番号を有するエンティティに制限される。第２の好ましいエンティティは、検索エンティティからの距離に従って、識別されたエンティティの組から選択されることが好ましく、最も近い距離は、関連付けられたエンティティ識別子からのエンティティの組の中から得られる。
【００６７】
本発明の他の側面によると、コンピューティング・エンティティのプロセッサ・ユニットに読み込まれたとき、特許請求の範囲記載の方法をコンピュータに実行させるプログラムが提供される。
【００６８】
さらに、コンピュータ・ネットワークにおいて電子文書のレプリカを検索する方法を実行するように設計された制御ユニットを含む、コンピュータ・ネットワークにおいて電子文書のレプリカを検索するためのコンピューティング・エンティティが提供される。
【００６９】
また、コンピュータ・ネットワークにおいて電子文書のレプリカをデポジットする方法を実行するように設計された制御ユニットを含む、コンピュータ・ネットワークにおいて電子文書のレプリカをデポジットするためのコンピューティング・エンティティが提供される。
【００７０】
コンピュータ・ネットワーク上でレプリカを検索又はデポジットする方法を参照して説明された利点及び実施形態は、ここに前述されたコンピューティング・エンティティ及びコンピュータ・プログラム要素のための実施形態にもそれぞれ有利であると考えられる。
【発明を実施するための最良の形態】
【００７１】
ここで、添付の図面を参照して、一例として本発明の好ましい実施形態を説明する。
【００７２】
異なる数字が、類似又は同様のコンテンツを有する要素を表す同一の参照を示すことができる。
【００７３】
図１は、コンピュータ・ネットワーク１の一部である、ノードとも呼ばれるコンピューティング・エンティティ１００、１２０、１４０、１６０、１８０、２００、２２０、２４０、２６０、２８０、３００、３２０、３４０、３６０、３８０、４００、４２０、４４０、４６０、４８０、５００、５２０、５４０、５６０、５８０、６００、６２０、６４０、６６０、６８０を示す。コンピューティング・エンティティに与えられた番号は、最終的にエンティティのアドレスとなるか又はエンティティのアドレスを表すエンティティ識別子である。
【００７４】
文書識別子を有する文書Ｄ１は、極めて一般的な文書である。したがって、この文書の多くのレプリカが、ネットワーク１全体にわたって格納されている。ネットワーク上に分散されたレプリカの最大数は、Ｎ＝６であり、ここで、この数は、例証のために比較的小さい数として選択される。したがって、文書毎に、システム全体にわたってＮ個のレプリカが提供される。以下の表記を導入する。すなわち、Ｄ１：１は、文書Ｄ１のレプリカ番号１を表し、Ｄ１：２は、文書Ｄ１のレプリカ番号２を表し、以下同様である。
【００７５】
図１から得られるように、文書Ｄ１のｋ＝Ｎ個のレプリカは、エンティティ識別子１００、２００、３００、４００、５００、６００を有する位置／エンティティにおいて、ネットワーク１にわたって分散されている。他方、別の文書Ｄ２もまた、例証のためにＮ＝６個のレプリカの形態で利用可能であり、これらは、エンティティ２２０、３２０、４２０、５２０、６２０に配置される。
文書Ｄ１及びＤ２は、関数
ｈ（ｉ，Ｄｘ）＝１００＋（（（ｘ−１）＊２０）＋（（ｉ−１）＊１００）ｍｏｄｕｌｏ６００）
に従ってネットワーク１上に配置され、
ここで、ｉはレプリカ番号で、ｉ＝〔１．．．．．Ｎ〕であり、Ｄｘは、ｘが数１、２である文書識別子である。
【００７６】
図１に示されるエンティティの１つ、又は図１に示されるネットワークの範囲の外部にある別のエンティティが、文書Ｄ１及びＤ２のレプリカをデポジットするために、この関数ｈ（ｉ，Ｄｘ）を適用し、実際に、ネットワーク上の各文書の６個のレプリカの全てをデポジットした。
【００７７】
例証のためだけに、例えば、ｈ（ｉ，Ｄｘ）＝１００＋（（ｘ＊２０＋ｉ＊（１２０−２０＊ｘ）−１２０）ｍｏｄｕｌｏ６００）のような関数に従う、ネットワーク上にデポジットされる他の文書もあり、例えば、エンティティ３００において異なる文書のレプリカのデポジットが重複する。
【００７８】
より一般的に言うと、各々の文書Ｄｘについて、Ｄｘについて存在する数ｋのレプリカがある。これらのレプリカは、アドレスｈ（ｉ，ｄ）（１＜＝ｉ＜ｋ）に格納される。ｈ（）は、擬似ランダム・ハッシュ関数として実施されることが好ましい。このことは、各アドレスが、ＤＨＴを用いてネットワーク内のマシンの１つにマッピングされることを意味する。
【００７９】
通常、コスト（すなわち、実際の要求）を支配する演算の平均数をｌｏｇ（Ｎ＋１）に制限できるので、非常に大きい数となるように許容されるレプリカの最大数Ｎを選択することができる。例えば、Ｎ＝１０２３を選択することにより、平均１０又はそれより少ないメッセージがもたらされ、最も近いレプリカを見つけ出し、ダウンロードを開始する。
【００８０】
ここで、例えば、識別子１４０を有するエンティティとすることができる検索エンティティが、Ｄ１として識別される文書のレプリカにアクセスすることを望む。コンピューティング・エンティティ１４０は、文書１のレプリカが利用可能な場合にエンティティを求めるために、同じ関数ｈ（ｉ，Ｄｘ）＝１００＋（（（ｘ−１）＊２０）＋（（ｉ−１）＊１００）ｍｏｄｕｌｏ６００）を利用することができる。全てのレプリカ番号ｉに対してこの関数を適用するとき、検索エンティティ１４０は、結果として、エンティティ識別子１００、２００、３００、４００、５００を得ることになる。
【００８１】
文書Ｄ１のレプリカがダウンロードに応じられるこれらの位置を決定すると、検索エンティティ１４０は、コスト関数を適用する。少なくとも識別子の「百の位の」数字だけを考慮し、ネットワークのまさしく右側部分の自らの位置を認識するとき、エンティティ１４０によって適用されるコスト関数は、関数ｈ（ｉ，Ｄｘ）によって与えられる全てのエンティティ識別子の比較とすることができる。その結果、１００＜２００＜３００＜４００＜５００＜６００の関係になる。この結果によると、識別子１００を有するエンティティは、ランク内の第１のものとして最も低いコスト値を示し、エンティティ６００は、ランク内の最後のものとして最も高いコスト値を示す。書き言葉に翻訳すると、コスト値は、エンティティ１００として識別されるエンティティが、恐らく検索エンティティ１４０に最も近いものであることを示す。検索エンティティは迅速なダウンロードを期待するので、エンティティ１００は、通信、よってダウンロードのために最も費用効率が高いと思われる。
【００８２】
結果として、検索エンティティは、要求を文書Ｄ１のエンティティ１００にアドレス指定し、エンティティ１００は、肯定的な応答（「ここでＤ１のレプリカが利用可能である」で応答するか、或いは代替的な実施形態においては、連続的にレプリカＤ１を伝送する。
【００８３】
図２は、エンティティ１４０においてコスト関数を提供した後、識別されたＤ１のレプリカの各々に関連付けられたコストのダイアグラムである。コストは、ネットワーク内の検索エンティティ１４０の位置に関連して求められ、上記に説明されたようなネットワーク構造の知識に基づいた該検索エンティティ１４０への距離の評価を表す。
【００８４】
別の実施形態において、エンティティ４２０が、今や、文書Ｄ１のレプリカを探し、こうしたレプリカの可能な提供者としてエンティティ１００、２００、３００、４００、５００、６００を識別する検索エンティティであると仮定される。エンティティ４２０において内在するコスト関数を適用すると、レプリカを得るのに、恐らくエンティティ４００が検索エンティティ４２０に最も近いエンティティであることが、結果として与えられる。図４は、エンティティ４２０においてコスト関数を適用した後、Ｄ１の識別されたレプリカの各々に関連付けられたコストのダイアグラムを示す。コストは、ネットワーク内の検索エンティティ４２０の位置に関連して求められ、上記に説明されたようなネットワーク構造の知識に基づいた検索エンティティ４２０への距離の評価を表す。
【００８５】
しかしながら、これらのレプリカ番号に対してハッシュ関数をまだ適用しないことで、文書Ｄ１の管理者は、レプリカをさらにエンティティ４００、５００、及び６００に分散することができなかったので、ここでは、エンティティ１００、２００、３００だけが、実際に文書Ｄ１のレプリカを提供することができる。
【００８６】
したがって、ここで検索エンティティ４２０が、最も近いエンティティ４００に要求を送信するとき、エンティティ４００は、エンティティ４００には、文書Ｄ１のレプリカが見当たらないと応答する。ここで、要求中のエンティティ４２０は、次に好ましく且つ次に近いエンティティとして、別の要求をエンティティ５００にアドレス指定し、そこからレプリカを得ようと試みることができる。しかしながら、レプリカ番号を増やすことによって、ネットワーク内のエンティティがレプリカで満たされた場合、エンティティ４００がレプリカ番号ｉ＝４を提供できないときに、より高いレプリカ番号を有するいずれかのレプリカが、割り当てられたエンティティにおいて利用できなくなることは明らかである。このように、識別されたエンティティ１００から６００までの範囲内のエンティティ４００と違った別のエンティティに向けられた何らかの要求は、ｉ＝４より小さいレプリカ番号を有するレプリカを提供できるエンティティに向けなければならない。したがって、エンティティ１００、２００、３００は、格納された文書Ｄ１のレプリカを実際に有することができる、ｉ＝４より小さいレプリカに関連付けられるエンティティの組を形成することができる。エンティティ３００は、残りのエンティティの中で最も低いコストを示すので、次にエンティティ３００を検索エンティティ４２０から、首尾よく接近させることができる。しかしながら、エンティティ３００が利用可能な文書Ｄ１のレプリカを有していない場合でも、次に接近したエンティティの組がさらに制限される。このスキームを繰り返し適用することによって、他のエンティティへの通信の多くを節約することができる。
【００８７】
既に上記に触れたように、幾つかの分散型ハッシュ・テーブル（ＤＨＴ）は、局所性を保存しており、すなわち、２つのアドレスが類似していることを知ることによって、これらのアドレスを供給するエンティティも近くにあるという判断を下すことができる。この特性を用いて、ＤＨＴによって用いられるメトリックに従って測定される、別のエンティティまでの距離を推測することができる。こうしたシステムをサポートするＤＨＴが、例えば、非特許文献１１であり、これを引用によりここに組み入れる。しかしながら、他のコスト関数を適用することもできる。こうしたコスト関数は、ネットワーク自体又はネットワーク上の一部とすることも、或いは各エンティティの一部としての個人とすることもできる。
【００８８】
本発明の別の実施形態によると、クライアントが、ＩＤｄを有する文書を見つけ出したいと望むとき、先験的にＮ、レプリカの最大数、及び用いられるハッシュ関数だけを知る必要がある。プロセスは、次のとおりである。
１．ｒ：＝Ｎ
２．クライアントは、レプリカ番号ｉ（１＜＝ｉ＜ｒ）の全ての可能な値について、供給文書の距離を調べることによって、文書を複製するノードのどれが最も近いかを判断する。クライアントは、最も近いものを選び（これがノードｇであると仮定する）、ノードｇに文書を求める。適切なＤＨＴ又は適切な局所データベースによる増大において、このことには、いずれのメッセージの送信も必要でない。
３．求められたノードが文書で応答する場合には、全てが良好であり、さもなければｒ：＝ｇ−１であり、ステップ２においてアルゴリズムが継続する（距離の計算をキャッシングすることが推奨される）。
【００８９】
検索は最も近いノードで開始するので、これが、できるだけ近いレプリカに戻る方法である。それが実際にレプリカである場合には、最も近いレプリカが見つけられた。レプリカが見つけられなかった場合には、レプリカ番号が連続しており、１から始まることをレプリカ割り当てポリシーが保証するので、ｇ又はそれより大きい番号が付けられた全てのレプリカを検索から排除することができる。
【００９０】
ＬｏｇＮステップの後に停止することが予想される。ハッシュ関数は擬似ランダムなので、各間隔における最も近いノードは、平均して中心にある。したがって、候補者ノードの５０％の平均値を排除することができる。少なくとも１つのノードが常に排除されるので、進行が保証される。また、少なくとも１つのレプリカ（１と番号が付けされた）が存在する場合には、文書を見つけ出すことが保証される。それ以上の情報は必要としない。
【００９１】
本実施形態の検索方法は、ピボット選択の観点からのランダム化バイナリ検索として特徴付けることができる。この検索方法は、ｋ個の最も近いノードを同時に調べることによって、（ｋ＋１）に関する検索に拡張することができる。次いで、検索ノードは、識別されたノード、及び適用可能な場合にはコスト選択されたノードに文書を直接求めたいと思わないが、該ノードが文書を有しているかどうかだけを尋ね、多数の送信を防止することができる。図１に戻ると、周知であり、システム全体の不変性であるパラメータは、レプリカの最大数Ｎであり、用いられるハッシュ関数ｈ（）である。
【００９２】
提案されたような、コンピュータ・ネットワークにおいてレプリカを検索及び／又はデポジットするための手法は、レプリカ管理のための集中ディレクトリ構造に基づいた、サイト又は組織全体にわたって複製されたネットワーク化ストレージ・システムのためのバックアップ・システムとして用いることもできる。こうしたシナリオにおいて、ディレクトリ・サーバは、単一障害点を提供する。この場合、上記のシステムに従って、レプリカのサブセットだけを配置する必要がある。所望であれば、局所性パターン（例えば、保証されたオフサイト・ストレージ）又はアクセス・パターン（例えば、クライアントに近い）に基づいて、他のレプリカを配置することもできる。次に、集中ディレクトリが故障するか、又は他の点でアクセス不能になった場合でも、本発明に従って格納されたデータは、依然としてアクセス可能である。本発明に従って割り当てられたレプリカのサブセットのサイズ及び配置によって、性能を低減させ得るが、データへのアクセスは依然として保証される。
【００９３】
全てのシステムが基本的に等しく良好にアクセス可能である、非常に局所化されたシステム／ネットワークにおいて、すなわち単一の建物又はサイト内で、距離関数をランダム関数と置き換え、有効なロード・バランシングを達成することができる。
【００９４】
本発明の別の実施形態によると、上述のような、エンティティ識別子自体から得ることができる情報に基づいた距離推定関数によって表されるコスト関数は、利用できない。レプリカのデポジットとして識別されるエンティティから最も近いエンティティを選択する代わりに、識別されたエンティティから、ランダム・エンティティを選択し、アドレス指定することができる。こうした要求についての応答は、レプリカの負荷又は往復時間のような情報を伝えることができ、このことは、多数が一致する場合に最良の一致の選択を助けることができる。コスト推定と協働するこのランダム選択は、最も近いノードの検知を保証するものでないが、検索エンティティをレプリカの最終的位置に導くことができる。アドレス指定されたエンティティの数ｋを比較的多くすることは、より多くの探査をもたらし、したがって、すぐ近くのエンティティに到達する高い可能性をもたらす。
【００９５】
上述のように、距離推定関数のようなコスト関数は費用がかかるものの、いずれにせよ識別されたエンティティからエンティティにメッセージを送信するより安い場合、それぞれの原価価値を計算するためにエンティティのサブセットだけを選択することができる。次に、要求を送信するための原価価値の観点から、最良のエンティティを選択する。
【００９６】
上記の両方の実施形態において、必ずしも、レプリカを保有している全てのＮエンティティを識別する必要はない。代わりに、関連したエンティティを求めるために、より小さな数ｋ＜Ｎのレプリカ番号を選択することができる。
【００９７】
接近したエンティティが到達不能であるか、又は「現在のところ、文書を供給することができません。別のレプリカを選んでください。」と解釈できる「過負荷」メッセージを戻すか、或いは接近後に時間切れになった場合に、ノードが利用可能なレプリカを有しているのかどうか、又はノードが、利用可能なレプリカを有するものの、何らかの理由で現在それを送信できないのかどうかを推定するのは不可能である。レプリカをデポジットする方法に関して、可能な戻りメッセージは、アドレス指定されたエンティティが、実際にレプリカを伝える必要があるものの、不十分なストレージも利用可能であることを示すこともできる。アルゴリズムは、その性能に最小の影響を与える状態で、依然として正確に働く。したがって、アドレス指定されたエンティティのいずれも、文書を送るためのエンティティのコミットメント、又は該エンティティが文書を有していないという表示を戻さない場合には、更に別の要求をアドレス指定するための検索範囲を制限することはできない。代わりに、例えば、いずれかの種類のコスト推定を用いて、現在のエンティティ範囲から次善のエンティティが選択され、次にこれらのエンティティに接近する。
【００９８】
図３は、本発明によるレプリカを検索する側面を具体化する２つのフローチャートを示す。図３（ａ）は、トポロジー認識ネットワークのための方法を示し、図３（ｂ）は、トポロジーを認識しないネットワークのための方法を示す。この文脈におけるトポロジー認識とは、エンティティの位置を、そのアドレス／識別子から少なくとも大ざっぱに得ることができるか、或いは付加的で相対的に安価な探査又は測定から得ることができることを意味する。
【００９９】
両方のチャートについて、次の表記が適用される。
・Ｎは、レプリカの最大数である。
・ｈ（ｍ，ｄ）は、レプリカ番号ｍ及び文書ＩＤｄについてのハッシュ関数である。
・ｃ（ａ）は、アドレスａにコストを与えるコスト関数である。
・ｋは、ステップごとの探査数である。
【０１００】
図３（ａ）に関しては、ステップＳ１において、文書についての可能なレプリカの最大有効数としてのｒが、Ｎに初期化される。ステップＳ２において、［１，Ｎ］における全てのｍについて、ａ＿ｍ＝ｈ（ｍ，ｄ）を計算する。ステップＳ３において、［１，Ｎ］における全てのｍについて、ｃ＿ｍ＝ｃ（ａ＿ｍ）を計算する。ステップＳ４において、組［１，ｒ］からｍ＿１．．．ｍ＿ｋを索引付けするｋが選択されるので、対応するｃ＿ｍ＿ｉが最小になる。ステップＳ５において、ａ＿ｉアドレスを調べる。探査は、ｋ−ｓ応答後に任意に終了する。ステップＳ６において、探査のいずれかが文書の可用性［１］を戻した場合、ステップＳ７において、いずれかのメトリックに従って最良の探査／アドレスを求め、ステップＳ８において、この最良のアドレスからレプリカを戻す。
【０１０１】
ステップＳ６において、アドレス指定されたエンティティのいずれも文書［２］を戻さなかった場合、ステップＳ９において、ｒが、ｍｉｎ（ｍ＿ｉ）−１に設定され、ステップＳ４において方法が継続される。
【０１０２】
図３（ｂ）に関しては、ステップＲ１において、文書についての可能なレプリカの最大有効数としてのｒが、Ｎに設定される。ステップＲ２において、ｍ＿１．．．ｍ＿ｋを索引付けするｋを、組［１，ｒ］からランダムに選択する。ステップＲ３において、ａ＿ｉ＝ｈ（ｍ＿ｉ，ｄ）を計算することによって調べられるレプリカのアドレス指定されたａ＿ｉを求める。ステップＲ４において、ａ＿ｉアドレスを調べる。アドレス指定されたノードが機能停止しているか又は到達不能であることがあるので、到達しないこともある最後の幾つかの応答を待つ時間を無駄にしないように、探査は、ｋ−ｓ応答後に任意に終了する。このことは、全てのノードを聞いていないという代償を払って性能を改善することができる。応答が遅い理由はネットワーク又はレプリカ自体の過負荷によるものである可能性が高いため、待たせられなかったノードが、良好な候補者レプリカであると思われる。
【０１０３】
ステップＲ５において、探査のいずれかが文書の可用性［１］を戻した場合には、ステップＲ６において、いずれかのメトリックに従って最良の探査／アドレスを求め、ステップＲ７において、この最良のアドレスによる最良のものにレプリカが戻される。アドレス指定されたエンティティのいずれも文書［２］を戻さなかった場合には、ステップＲ８において、ｒが、ｍｉｎ（ｍ＿ｉ）−１に設定され、ステップＲ２において方法が継続される。
【０１０４】
次の段落において、本発明の全ての側面に関する幾つかのより多くの実施形態を説明する。
【０１０５】
文書関連要求がコスト推定に従って識別されたエンティティの１つにだけ送られる場合、このマシンの負荷が非常に高い場合に、こうしたエンティティは、応答に長い時間を必要とすることがある。識別されたエンティティの中から少なくとも１つの他の付加的なエンティティをランダムに選択し、この少なくとも１つのエンティティに別の要求を送ることによって、こうしたアドレス指定機構をさらに改善させることができる。このように、近くにあり、よって導入されたスキームに従ってアドレス指定されるように選択されるものの、過負荷状態であり、よって応答しないか又は非常にゆっくりとしか応答しないエンティティを検知し、将来の照会によって自動的にオフロードすること、すなわち将来の要求を考慮しないことが可能である。他方、こうした場合に、ランダムに選択されるエンティティが、新しい要求をアドレス指定するためにすぐ近くの新しいエンティティを選択する必要なく、遅かれ早かれ要求される応答を提供することができる。
【０１０６】
別の実施形態によると、発せられた要求の数、よって検索時間の可能性を制限し、小さな組のノードを選択プロセスから排除することができる。したがって、最適なサブ隣接者を選択することができ、或いは極めて不良なコスト関数と組み合わせられた大規模なネットワークの停止の場合は、全ての可能なレプリカを検索することはできない。予想される性能は、送出されるｌｏｇ（Ｎ）ステップ／要求であり、ここで、Ｎは、レプリカの最大数である。さらに、最悪の事態は、Ｎステップ、すなわちコスト関数がレプリカ番号の単調減少関数の場合である。予想されるように、こうしたコスト関数の効果は、各ステップが、レプリカの半分ではなく単一の可能なレプリカだけを排除することである。この問題に対する解決法は、各ステップについて保証された最小の進歩を有することである。最小の進歩を保証するために用い得る関数の可能なクラスは、最大限でもＮ／ｂａｓｅ＾（ｓｔｅｐｓ−ｄｅｌｔａ）によるバウンドｒ（可能な探査の窓）を含み、ここで、ｂａｓｅは、２のような指数の底であり、ｓｔｅｐｓは、これまで行われたステップの数であり、ｄｅｌｔａは、最悪の場合の速度である。ｂａｓｅ＝２、ｄｅｌｔａ＝２を選択することによって、最大限でもｅｌｔａの付加的なステップを必要とし、範囲は、バイナリ検索（ステップごとの探査の数、ｋ＝１）を想定する予想される場合のｂａｓｅ＾ｄｅｌｔａの因数以上に広くはならない。依然として、見つけられるノードの品質は、底の係数によって制限される。品質係数は、次のように定義される。すなわち、実際のｒ＿ｄレプリカが与えられた場合には、コストを増大させることによってこれらを並べ替える。修正されていない（バインドされていない）検索は、常にこれらの第１（＝最良）のものを見つけ出す。修正された場合は、第１のｒ＿ｄ＊（１−１／ｂａｓｅ）項目の中で並べ替えられたものを見つけ出すので、これは、ｒ＿ｄ＊（１−１／ｂａｓｅ）項目より決して悪いものにならない。
【０１０７】
非特許文献１２は、負荷をうまく分散するので、ＤＨＴ内に２つの探査を用いることが歓迎すべきことであることを示す。一般に、項目は、負荷がより少ない２つ（又はそれ以上）の可能な位置に格納される。
【図面の簡単な説明】
【０１０８】
【図１】分散型ストレージの一部としてネットワークの一部を示す。
【図２】コスト関数のダイアグラムを示す。
【図３】本発明の一実施形態による、コンピュータ・ネットワークにおいてレプリカを検索する方法のフローチャートを示す。
【図４】本発明の一実施形態による、コンピュータ・ネットワークにおいてレプリカを検索する方法のフローチャートを示す。
【図１】
2007520778.tif 000003
【図２】
2007520778.tif 000004
【図３】
2007520778.tif 000005
【図４】
2007520778.tif 000006
【手続補正書】
【提出日】平成19年5月1日(2007.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ・ネットワークにおいて電子文書のレプリカを検索する方法であって、
少なくとも１つのレプリカ番号を選択するステップと、
入力として前記レプリカ番号及び文書識別子を必要とする所定の関数を適用することによって、各々が前記レプリカを提供できる前記ネットワーク内のエンティティを表す、少なくとも１つのエンティティ識別子を求めるステップと、
文書関連要求を前記識別されたエンティティの少なくとも１つにアドレス指定するステップと、
を含むことを特徴とする方法。
【請求項２】
Ｎがレプリカの最大数であるものとして、ｋ＝Ｎ個のレプリカ番号を選択するステップと、
前記所定の関数をｋ回適用することによって、ｋ個のエンティティ識別子を求めるステップと、
を含む、請求項１に記載の方法。
【請求項３】
ｋ＜Ｎであるものとして、レプリカの最大数Ｎからｋ個のレプリカ番号を選択するステップと、
前記所定の関数をｋ回適用することによって、ｋ個のエンティティ識別子を求めるステップと、
を含む、請求項１に記載の方法。
【請求項４】
ｋ＜＝５である、請求項３に記載の方法。
【請求項５】
ｋ＝１である、請求項３に記載の方法。
【請求項６】
前記文書関連要求を識別されたエンティティの全てにアドレス指定するステップを含む、請求項１乃至請求項５のいずれか１項に記載の方法。
【請求項７】
前記文書関連要求を前記識別されたエンティティの選択されたものにだけアドレス指定するステップを含む、請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項８】
前記文書関連要求を前記識別されたエンティティから選択された１つのエンティティだけにアドレス指定するステップを含む、請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項９】
前記ｋ個のエンティティの各々についてコスト関数を計算するステップを含み、前記コスト関数は、結果として前記関連するエンティティをアドレス指定するためのコストを示すコスト値を提供する、請求項１乃至請求項５いずれか１項に記載の方法。
【請求項１０】
関連付けられた前記コスト値によって、アドレス指定される各エンティティが前記識別されたエンティティから選択される、請求項７又は請求項８と組み合わされた請求項９に記載の方法。
【請求項１１】
前記アドレス指定された１つのエンティティ／複数のエンティティが、最も低いコスト値を示すものである、請求項１０に記載の方法。
【請求項１２】
前記アドレス指定されたエンティティについてのコスト値が、これらのエンティティとの通信から得られる、請求項６又は請求項７に記載の方法。
【請求項１３】
前記アドレス指定されたエンティティについてのコスト値が、コスト・データベースから得られる、請求項６又は請求項７に記載の方法。
【請求項１４】
前記アドレス指定されたエンティティの各々から、「レプリカが見当たらない」という応答を受信したとき、前記文書関連要求をアドレス指定するために、別のエンティティが前記識別されたエンティティから選択される、請求項１乃至請求項１３のいずれか１項に記載の方法。
【請求項１５】
前記前の要求がアドレス指定された前記１つのエンティティ／複数のエンティティに関連付けられた前記レプリカ番号より低い関連付けられたレプリカ番号を選択することによって、他の前記エンティティが前記識別されたエンティティから選択される、請求項１４に記載の方法。
【請求項１６】
前記レプリカが見当たらず、かつ、該レプリカがそこにないという表示を、前記アドレス指定された１つのエンティティ／複数のエンティティから受け取ったとき、前記文書関連要求をアドレス指定するために、別のエンティティが前記識別されたエンティティから選択される、請求項１乃至請求項１５のいずれか１項に記載の方法。
【請求項１７】
関連付けられたコスト値に基づいて、他の前記エンティティが選択される、請求項１６に記載の方法。
【請求項１８】
請求項１乃至請求項１７のいずれか１項に記載された方法の各ステップをコンピュータに実行させるプログラム。
【請求項１９】
コンピュータ・ネットワークにおいて電子文書のレプリカをデポジットする方法であって、
レプリカ番号を選択するステップと、
入力として前記レプリカ番号及び文書識別子を必要とする所定の関数を適用することによって、前記ネットワーク内のエンティティを表すエンティティ識別子を求めるステップと、
レプリカをデポジットするために、前記識別されたエンティティをアドレス指定するステップと、
を含むことを特徴とする方法。
【請求項２０】
請求項１９に記載された方法の各ステップをコンピュータに実行させるプログラム。
【国際調査報告】
2007520778.tif 000007
2007520778.tif 000008