(57)【要約】  クライアント・コンピュータ及びダウンロード管理システムとネットワーク通信する複数のダウンロード・サーバを有するグリッド・コンピュータ・システムにおいて、複数のダウンロード・サーバからクライアントへデータを並行してダウンロードするため、クライアントはダウンロード管理システムからダウンロード・プランを要求する。クライアントは、ダウンロード・プランにより識別されたダウンロード・サーバからデータのチャンクを要求する。クライアントは、チャンクをダウンロードするダウンロード・サーバの性能を監視し、チャンクのダウンロードを完了する性能を改善するためにダウンロード・サーバ間でチャンクの一部分を再割り当てる。ダウンロード・データのチャンクはデータの複数のファイル、１つのファイルまたはファイルの一部分である。
2008502061.tif 000002
【特許請求の範囲】
【請求項１】
グリッド・コンピューティング・インフラストラクチャにおいてデータ・ダウンロードを最適化する方法であって、前記方法が、（ａ）管理サービスからダウンロード・プランを獲得するステップであって、前記ダウンロード・プランが、所望のダウンロード・データを有する複数のダウンロード・サーバの最適化リストを含み、前記複数のダウンロード・サーバがグリッド・インフラストラクチャに配備されるステップと、（ｂ）前記ダウンロード・プランに指定された前記ダウンロード・サーバの２つ以上にコンタクトするステップと、（ｃ）ダウンロード・データのそれぞれのチャンクを並行してダウンロードするため、前記ダウンロード・データのチャンクを、前記ダウンロード・プランに指定された前記ダウンロード・サーバの前記２つ以上のそれぞれのダウンロード・サーバに割り当てるステップと、（ｄ）コンタクトされた前記２つ以上のダウンロード・サーバのダウンロード・サーバから前記ダウンロード・データの前記チャンクの並列ダウンロードを開始するステップであって、前記チャンクが、前記ダウンロード・サーバから並行してダウンロードされるステップと、（ｅ）前記チャンクをダウンロードする前記２つ以上のダウンロード・サーバのダウンロード性能を監視するステップと、（ｆ）前記チャンクの前記並列ダウンロード中、ダウンロード・サーバによりダウンロードされるチャンクの数を、前記２つ以上のダウンロード・サーバの前記監視されたダウンロード性能に基づいて調整するステップと、（ｇ）前記２つ以上のダウンロード・サーバの前記監視されたダウンロード性能を前記管理サービスに報告するステップとを含む方法。
【請求項２】
前記ステップａ〜ｇが、クライアント・エージェント、管理サービス・エージェントまたはサーバ・エージェントのいずれか１つにより実行される、請求項１に記載の方法。
【請求項３】
前記ダウンロード・プランに対する要求を前記管理サービスに送信する更なるステップであって、前記要求がＱｏＳ要件を指定する更なるステップを含む、請求項１に記載の方法。
【請求項４】
前記ＱｏＳ要件が、前記ダウンロードのダウンロード速度または所望の完了時間のいずれか１つの仕様を含む、請求項３に記載の方法。
【請求項５】
ダウンロードを開始する前記ステップが、（ａ）コンタクトされた前記２つ以上のダウンロード・サーバの第１サーバから前記ダウンロード・データの第１チャンクのダウンロードを開始する更なるステップと、（ｂ）現在ダウンロードしているダウンロード・チャンクの前記ダウンロード性能の指示を保管する更なるステップと、（ｃ）次に、コンタクトされた前記２つ以上のダウンロード・サーバの新規サーバからダウンロード・データの新規チャンクのダウンロードを開始する更なるステップと、（ｄ）次に、現在ダウンロードしている前記ダウンロード・チャンクのダウンロード性能を監視する更なるステップと、（ｅ）次に、前記監視されたダウンロード性能が、前記保管されたダウンロード性能の指示より大きく、前記監視されたダウンロード性能が、予め判別された最大性能より小さく、コンタクトされた前記２つ以上のダウンロード・サーバのすべてが開始されなかったならば、ステップｂ〜ｅを反復する更なるステップとを含む、請求項１に記載の方法。
【請求項６】
現在ダウンロードしている第１チャンクのダウンロードされる第１部分を判別する更なるステップであって、前記第１チャンクが、開始された前記２つ以上のダウンロード・サーバの第１サーバからダウンロードしている更なるステップと、前記ダウンロード・サーバからチャンクを並行してダウンロードしながら、現在ダウンロードしている第１チャンクの前記ダウンロードされる第１部分の並列ダウンロードを前記２つ以上のダウンロード・サーバの第２サーバから開始する更なるステップとを含む、請求項１に記載の方法。
【請求項７】
現在ダウンロードしている第１チャンクの前記ダウンロードされる第１部分のサイズが、開始された前記２つ以上のダウンロード・サーバの達成されたダウンロード性能に比例するか、前記第１部分に比例するか、または、前記第１部分のほぼ半分である、請求項６に記載の方法。
【請求項８】
前記ダウンロードの終了で前記ダウンロード・データの完全性を検査する更なるステップと、前記完全性の検査の指示を前記管理サービスに送信する更なるステップとを含む、請求項１に記載の方法。
【請求項９】
各サーバからダウンロードされたチャンクのサイズ、または、各サーバの前記ダウンロード性能、または、前記要求に応答しなかった前記サーバのＩＤのいずれか１つに関する情報を記録する更なるステップと、前記記録された情報を前記管理サービスに送信する更なるステップとを含む、請求項１に記載の方法。
【請求項１０】
前記ダウンロード・データが関連のアクセス制御リストを有し、前記アクセス制御リストに指定されたエンド・ユーザのみ前記ダウンロード・データをダウンロードすることができる、請求項１に記載の方法。
【請求項１１】
ダウンロード・データがストアされ、暗号化形式で分散されて、ファイルの最終暗号化解除が、前記管理サービスから安全に獲得されたキーを用いて前記クライアント・エージェントにより実行される、請求項１に記載の方法。
【請求項１２】
チャンクが、複数のファイル、１つのファイルまたはファイルの一部分のいずれか１つである、請求項１に記載の方法。
【請求項１３】
前記ダウンロード・データをコンテンツ・プロバイダから受信するステップと、前記ダウンロード・データをインフラストラクチャに分散するステップであって、前記インフラストラクチャが前記複数のダウンロード・サーバを含むステップと、前記ダウンロード・データをクライアントにダウンロードするため、前記ダウンロード・プランに対して前記クライアントから要求を受信するステップと、ダウンロード・プランを作成するステップであって、前記ダウンロード・プランが、前記ダウンロード・データを有する２つ以上のダウンロード・サーバの前記リストを含み、前記２つ以上のダウンロード・サーバの性能情報を更に含むステップと、前記作成されたダウンロード・プランを前記クライアントに送信するステップと、次に、前記２つ以上のダウンロード・サーバの新規ダウンロード性能情報を受信するステップと、前記新規ダウンロード性能情報に基づいて前記２つ以上のダウンロード・サーバの前記性能情報を更新するステップとを更に含む、請求項１に記載の方法。
【請求項１４】
ダウンロード・グリッド・インフラストラクチャにおいてダウンロード・データをアップロードし、分散し、管理し、制御する方法であって、前記方法が、前記ダウンロード・データをコンテンツ・プロバイダから受信するステップと、前記ダウンロード・データをインフラストラクチャに分散するステップであって、前記インフラストラクチャが複数のダウンロード・サーバを含むステップと、前記ダウンロード・データをクライアントにダウンロードするため、ダウンロード・プランに対して前記クライアントから要求を受信するステップと、ダウンロード・プランを作成するステップであって、前記ダウンロード・プランが、前記ダウンロード・データを有する２つ以上のダウンロード・サーバのリストを含み、前記２つ以上のダウンロード・サーバの性能情報を更に含むステップと、前記作成されたダウンロード・プランを前記クライアントに送信するステップと、次に、前記２つ以上のダウンロード・サーバの新規ダウンロード性能情報を前記クライアントから受信するステップであって、前記新規ダウンロード性能情報が、前記ダウンロード・プランに従ってダウンロードを実行した際に前記クライアントにより達成された前記２つ以上のダウンロード・サーバのダウンロード・サーバ性能を示すステップと、次に、前記新規ダウンロード性能情報に基づいて前記２つ以上のダウンロード・サーバの前記性能情報を更新するステップとを含む方法。
【請求項１５】
ダウンロード・データをコンテンツ・プロバイダから受信する前記ステップが、コンテンツ・プロバイダが、適切な信任状を有する管理サービスにコンタクトする更なるステップと、前記コンテンツ・プロバイダが特定の属性で前記ダウンロード・データを特徴付ける更なるステップと、前記コンテンツ・プロバイダが前記特定の属性を管理システムに送信する更なるステップと、前記コンテンツ・プロバイダが、前記ダウンロード・データを前記ダウンロード・グリッドの単一サーバにアップロードする更なるステップとを含む、請求項１４に記載の方法。
【請求項１６】
前記特定の属性が、優先順位、前記ダウンロード・データに対する所望の地理的な隣接性、または、前記ダウンロード・データをダウンロードする権限を許可するクライアントに関する制限のいずれか１つを含む、請求項１５に記載の方法。
【請求項１７】
前記管理サービスが、アップロードするダウンロード・データを受信する前記単一サーバを選択するステップ、前記２つ以上のダウンロード・サーバのサーバをアクティブにするステップ、前記２つ以上のダウンロード・サーバのサーバを非アクティブにするステップ、または、前記２つ以上のダウンロード・サーバのサーバを更新するステップのいずれか１つを動的に実行する、請求項１５に記載の方法。
【請求項１８】
前記コンテンツ・プロバイダが前記ダウンロード・データに対する暗号化解除キーを生成する更なるステップと、前記コンテンツ・プロバイダが前記ダウンロード・データを暗号化する更なるステップと、前記コンテンツ・プロバイダが前記暗号化解除キーを前記管理サービスに安全に送信する更なるステップとを含む、請求項１５に記載の方法。
【請求項１９】
前記ダウンロード・プランを作成する前記ステップが、前記クライアントのロケーション、前記２つ以上のダウンロード・サーバの状況及び使用率情報、ＱｏＳ要件、前記クライアントに対する前記２つ以上のダウンロード・サーバのネットワーク隣接性、前記クライアントに対する前記２つ以上のダウンロード・サーバの地理的な隣接性、前記２つ以上のダウンロード・サーバのサーバの前記ネットワークのアウトバウンド帯域幅、前記２つ以上のダウンロード・サーバの前記サーバによりサポートされたチャンク・ダウンロードの現在数、または、許可される最大並行チャンク・ダウンロードのいずれか１つに基づく、請求項１４に記載の方法。
【請求項２０】
前記クライアントの前記ロケーションが、前記クライアントのネットワーク・アドレスに基づいて、または、前記クライアントにより供給された情報を介して自動的に判別される、請求項１９に記載の方法。
【請求項２１】
命令を含むコンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システムで実行されると、前記命令が、請求項１〜２０のいずれか一項に記載の方法の前記ステップのすべてを行うコンピュータ・プログラム。
【請求項２２】
請求項１〜２１のいずれか一項に記載の方法の前記ステップのすべてを行うのに適する手段を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・データ処理に関する。特に、本発明は、グリッド・コンピューティング環境におけるデータのダウンロードに関する。
【背景技術】
【０００２】
グリッド・コンピューティングは、巨大なＩＴ機能にシームレスにアクセスする単一システム・イメージ、許可ユーザ及びアプリケーションを作成する処理能力、ネットワーク帯域幅及びストレージ容量のような分散型コンピューティング・リソースの仮想化である。グリッド・コンピューティングに関するより多くの情報のソースは、「ｗｗｗ．ｇｌｏｂｕｓ．ｏｒｇ／ｒｅｓｅａｒｃｈ／ｐａｐｅｒｓ／ｏｇｓａ．ｐｄｆ」のワールド・ワイド・ウェブで公開されているＦｏｓｔｅｒ、Ｋｅｓｓｅｌｍａｎ、Ｎｉｃｋ及びＴｕｅｃｋｅ氏による「Ｔｈｅ  Ｐｈｙｓｉｏｌｏｇｙ  ｏｆ  ｔｈｅ  Ｇｒｉｄ  ‐ａｎ  ｏｐｅｎ  ｇｒｉｄ  ｓｅｒｖｉｃｅｓ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｄｉｓｔｒｉｂｕｔｅｄ  ｓｙｓｔｅｍｓ  ｉｎｔｅｇｒａｔｉｏｎ」で見られる。
【０００３】
チャルマース工科大学のＬｌｅｖｉｓｔ及びＢｅｎｇｓｓｏｎ氏による文書「Ｇｒｉｄ  Ｃｏｍｐｕｔｉｎｇ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｕｓｉｎｇ  Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒｓ」はグリッド・コンピューティングを論じている。この文書は、コード及びデータの両方をネットワークのノード（グリッド）に分散する新規コンピューティング・モデルの提案に焦点を合わせている。ネットワークのルータは、コードを実行するのに選択すべきノードを、ルータにより収集された知識に基づいて判別する。
【０００４】
米国特許第６３３９７８５号（Ｆｅｉｇｅｎｂａｕｍ氏）による「Ｍｕｌｔｉ‐Ｓｅｒｖｅｒ  Ｆｉｌｅ  Ｄｏｗｎｌｏａｄ」では、サーバからのダウンロードの速度が、予め定義された期待速度から落ちる場合、Ｆｅｉｇｅｎｂａｕｍ氏はサーバを除去する。サーバがデータ・チャンクの一部分を完了し、必要なければ（他のすべてのサーバが、予め定義された期待速度より上であれば）、Ｆｅｉｇｅｎｂａｕｍ氏はこのサーバをこれ以上用いない。注目に値すべきは、Ｆｅｉｇｅｎｂａｕｍ氏による明細書では、２つのサーバが１０ｋ／ｓにランクされる状態があるということである。その結果、ダウンロードが全く同じ２つのチャンク（ｃｈａｎｋ）から始まる。第１サーバは、期待速度を順守するように１０ｋ／ｓでダウンロードする。（ネットワークが動的であるので）第２サーバは１０００ｋ／ｓでダウンロードし、チャンクを直ちに完了する。Ｆｅｉｇｅｎｂａｕｍ氏は、完了するまで第１チャンクを１０ｋ／ｓに保持する（「サーバの性能が、予め定義されたレベルを下回るならば、リンクは中断される」）。１０ｋ／ｓチャンクを１０００ｋ／ｓサーバに再割り当てる方法がないので、我々はこのプロセスを進めていく。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
グリッド・ネットワークにおいてサーバからデータをインテリジェントにダウンロードする必要がある。
【課題を解決するための手段】
【０００６】
本発明は、請求項１及び請求項１４に請求された方法と、対応のコンピュータ・プログラム及びシステムとを提供する。
【０００７】
グリッド・コンピューティングは、巨大なＩＴ機能にシームレスにアクセスする単一システム・イメージ、許可ユーザ及びアプリケーションを作成する処理能力、ネットワーク帯域幅及びストレージ容量のような分散型コンピューティング・リソースの仮想化である。この開示では、グリッド・コンピューティング環境内でのダウンロード・サービスを記述する。
【０００８】
従来型／クライアント・サーバまたはピアツーピア・モデルを用いるよりはむしろ、本発明は、サービス・プロバイダ、コンシューマ及びブローカのモデルを用いる。ブローカは、サービスのロードマップを提供し、アプリケーションを保護し、レコードを維持する責務を有する。コンシューマはサービス・プロバイダにコンタクトし、ブローカから必要な許可及び信任状を得た後だけサービス・プロバイダからサービスを受信することができる。更に、ブローカは、複数のサービス・プロバイダから並行してサービスを受信するようにコンシューマを誘導することができる。ダウンロード・グリッドの状況では、ブローカは管理サービスとして実装され、サービス・プロバイダはダウンロード・サーバとして実装され、コンシューマはクライアント・エージェントとして実装される。エージェントは、エンド・ユーザの代わりにファイル・ダウンロードを開始し、処理する。このモデルを様々なグリッド・アプリケーションに適用することができる。
【０００９】
本発明は、ネットワーク・リソースを効率的に管理し、分散型アセットへのアクセスを制御しながら、高スループット・ダウンロード・サービスを提供する。
【００１０】
好ましくは、本発明は、最適化プランに基づいて複数のサーバから並列データ転送（ダウンロード）をサポートするために複数の並行データ・ストリームを供給する。最適化は、（１）サービス要求ノード（またはクライアント）のネットワーク・アクセス・ポイント、（２）サーバのトポロジ、（３）サービスを要求するモーメントのネットワーク・トラフィック、及び、（４）クライアントに対するサービス・レベル契約に基づくのが好ましい。
【００１１】
好ましくは、本発明は、信任状及び最適化プランの両方をカプセル化するのにＸ．５０９プロキシを用いる。
【００１２】
好ましくは、クライアントに仕えるサーバの初期数を計算することによりクライアントの最大許容帯域幅を理解する。サーバの数を、レプリケーション・プロセスの最大性能に達するように調整することができる。
【００１３】
好ましくは、クライアントの最大許容帯域幅の従来知識が使用可能でなければ、サーバの初期数は１から開始し、システムは、最大レプリケーション速度に達するサーバの数を検出するように調整する。
【００１４】
好ましくは、本発明は、最適化プランのより良い品質を可能にするため、レプリケーション・プロセスのフィードバックを行う。
【００１５】
好ましくは、本発明は、フィードバック・システム及びグリッド・コンピューティング・インフラストラクチャを用いてグリッドからのサービスを非アクティブにし、要求時、再度アクティブにする。
【００１６】
好ましくは、本発明は、データ（またはファイル）の所定部分に対して、サービス要求のアクセス・ポイントの分散に基づいて、広域トラフィックを削減するため、または他の基準を最適化するため、ネットワーク・トポロジ上のサーバの分散を最適化する。
【００１７】
本発明と見なされる対象は、請求項に特に指摘され、はっきりと請求されている。本発明の前述及びその他の目的、特徴及び利点は、添付図面と一緒に理解する以下の詳細な説明から明らかとなる。
【００１８】
詳細な説明は、図面を参照し、一例として本発明の好適な実施形態を利点及び特徴と一緒に説明する。
【発明を実施するための最良の形態】
【００１９】
好ましくは、本発明は、グリッド・コンピューティング環境内のダウンロード・サービスを提供する。従来型／クライアント・サーバまたはピアツーピア・モデルを用いるよりはむしろ、好適な実施形態は、サービス・プロバイダ、コンシューマ及びブローカのモデルを用いる。ブローカは、サービスのロードマップを提供し、アプリケーションを保護し、レコードを維持する責務を有する。コンシューマはサービス・プロバイダにコンタクトし、ブローカから必要な許可及び信任状を得た後だけサービス・プロバイダからサービスを受信することができる。更に、ブローカは、複数のサービス・プロバイダから並行してサービスを受信するようにコンシューマを誘導することができる。ダウンロード・グリッドの状況では、ブローカは管理サービスとして実装され、サービス・プロバイダはダウンロード・サーバとして実装され、コンシューマはクライアント・エージェントとして実装される。エージェントは、エンド・ユーザの代わりにファイル・ダウンロードを開始し、処理する。このモデルを様々なグリッド・アプリケーションに適用することができる。
【００２０】
ダウンロード・グリッドを拡張容易性、信頼性、安全性、適応性及び高効率のあるものにする必要がある。
【００２１】
拡張容易性：本発明は、グリッドに属する任意のリソース・セットを用いるべきである。ダウンロード・グリッドは動的ダウンロード・サーバ・セットを用いる。従って、本発明は拡張容易性を有する。
【００２２】
信頼性：単一サーバに依存するよりはむしろ、ダウンロード・グリッドは多くのサーバを有する。個別サーバの故障はダウンロード・サービスを使用不可にしない。従って、本発明は信頼性を有する。
【００２３】
安全性：本発明は、セキュリティ・インフラストラクチャとしてプライベート・キー・インフラストラクチャ（ＰＫＩ）及びＸ．５０９証明書を用いる。従って、本発明は安全性を有する。
【００２４】
適応性：ダウンロード・グリッドは、複数のサーバから並行してダウンロードされるファイルの一部分を動的に割り当てることができる。割り当てが、各特定サーバの認知される性能に基づくので、本発明は適応性を有する。
【００２５】
効率：管理サービスは、特定ダウンロードに使用できるリソースのサブセットを制御する。管理サービスは、ネットワーク・リソースの全体の使用率（帯域幅使用率）を最小化することを目標としてこの選択を実行する。従って、本発明は高効率を有する。
【００２６】
好ましくは、本発明は、ネットワーク・リソースを効率的に管理し、分散型アセットへのアクセスを制御しながら、高スループット・ダウンロード・サービスを提供する。
【００２７】
図１には、本発明を実行できる典型的なワークステーションまたはサーバ・ハードウェア・システムを示す。図１のシステム１００は、任意の周辺装置を含むパーソナル・コンピュータ、ワークステーションまたはサーバのような典型的なコンピュータ・システム１０１を含む。ワークステーション１０１は、１つ以上のプロセッサ１０６と、既知の技術に従って（複数の）プロセッサ１０６とシステム１０１の他のコンポーネントとの間に通信を接続し、使用可能にするのに用いられるバスとを含む。バスは、例えばハード・ドライブ、ディスケット・ドライブまたは磁気テープ・ドライブを含むことができる長期ストレージ１０７及びメモリ１０５にプロセッサ１０６を接続する。システム１０１は、バスを介してプロセッサ１０６をキーボード１０４、マウス１０３、プリンタ／スキャナ１１０のような１つ以上のインターフェース・デバイス、または、タッチ検知画面、デジタル化入力パッドなどのような任意のユーザ・インターフェース・デバイスとすることができる他のインターフェース・デバイス、あるいはその両方に接続するユーザ・インターフェース・アダプタをも含むことができる。バスは、ディスプレイ・アダプタを介してＬＣＤ画面またはモニタのようなディスプレイ装置１０２をもマイクロプロセッサ１０６に接続する。
【００２８】
システム１０１は、ネットワーク１０９と通信できるネットワーク・アダプタを介して他のコンピュータまたはコンピュータのネットワークと通信することができる。ネットワーク・アダプタの例として、通信チャネル、トークン・リング、イーサネット（Ｒ）またはモデムが挙げられる。あるいはまた、ワークステーション１０１は、ＣＤＰＤ（セルラー・デジタル・パケット・データ）カードのような無線インターフェースを用いて通信することができる。ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）においてこのような他のコンピュータとワークステーション１０１を関連付けることができる。または、別のコンピュータなどを有するクライアント／サーバ配置においてワークステーション１０１をクライアントとすることができる。適切な通信ハードウェア及びソフトウェアと同様に、これら構成のすべても、当該技術分野において既知である。
【００２９】
図２には、本発明を実行できるデータ処理ネットワーク２００を示す。データ処理ネットワーク２００は、複数の個別ワークステーション１０１を各々が含むことができる無線ネットワーク及び有線ネットワークのような複数の個別ネットワークを含むことができる。更に、当業者が認識するように、１つ以上のＬＡＮを含むことができ、ＬＡＮは、ホスト・プロセッサに結合された複数のインテリジェント・ワークステーションを含むことができる。
【００３０】
更に図２を参照するに、ネットワークは、ゲートウェイ・コンピュータ（クライアント・サーバ２０６）またはアプリケーション・サーバ（データ・レポジトリにアクセスできるリモート・サーバ２０８）のようなメインフレーム・コンピュータまたはサーバをも含むことができる。ゲートウェイ・コンピュータ２０６は、各ネットワーク２０７内へのエントリ点としての役割をする。１つのネットワーク・プロトコルを別のネットワーク・プロトコルに接続する場合にゲートウェイが必要とされる。好ましくは、ゲートウェイ２０６を通信リンクにより別のネットワーク（例えば、インターネット２０７）に結合することができる。また、通信リンクを用いてゲートウェイ２０６を１つ以上のワークステーション１０１に直接に結合することができる。ＩＢＭ社から入手できるｅＳｅｒｖｅｒ（ＩＢＭ社の商標）ｚＳｅｒｖｅｒ９００サーバを使用してゲートウェイ・コンピュータを実装することができる。
【００３１】
本発明を具体化するソフトウェア・プログラミング・コードは、ＣＤ‐ＲＯＭドライブまたはハード・ドライブのような長期ストレージ・メディア１０７からシステム１０１のプロセッサ１０６により典型的にアクセスされる。ディスケット、ハード・ドライブまたは、ＣＤ‐ＲＯＭのようなデータ処理システムと用いるため、様々な既知のメディアのいずれでもソフトウェア・プログラミング・コードを具体化することができる。コードをこのようなメディアに分散することができ、または、１つのコンピュータ・システムのメモリまたはストレージから、他のコンピュータ・システムのユーザにより用いられるこのような他のコンピュータ・システムへネットワークを介してユーザに分散することができる。
【００３２】
あるいはまた、プログラミング・コード１１１をメモリ１０５で具体化することができ、プロセッサ・バスを用いてプロセッサ１０６によりアクセスすることができる。このようなプログラミング・コードは、様々なコンピュータ・コンポーネント及び１つ以上のアプリケーション・プログラムの機能及び相互作用を制御するオペレーティング・システムを含む。プログラム・コードは、通常、高密度のストレージ・メディア１０７から、プロセッサ１０６により処理するのに使用可能である高速メモリ１０５にページングされる。メモリ内、物理メディア上、及び、ネットワークを介して分散するソフトウェア・コードのいずれか１つまたは任意の組み合わせにおいてソフトウェア・プログラミング・コードを具体化する技術及び方法は周知であり、本明細書では、これ以上論じない。
【００３３】
好適な実施形態では、本発明は１つ以上のコンピュータ・ソフトウェア・プログラム１１１として実装される。要求に応じて呼び出される１つ以上のモジュールまたはアプリケーション１１１（コード・サブルーチンまたは、オブジェクト指向プログラミングにおいて「オブジェクト」とも称する）のように本発明のソフトウェアの実装をユーザのワークステーションで操作することができる。あるいはまた、ソフトウェアは、ネットワーク内のサーバで、または、本発明を実装するプログラム・コードを実行できる任意のデバイス内で操作することができる。本明細書で開示された発明概念から逸脱することなく、本発明を実装するロジックをアプリケーション・プログラムのコード内に組み込むことができ、または、このロジックを、アプリケーションにより呼び出される１つ以上の分離するユーティリティ・モジュールとして実装することができる。ウェブ・サーバが、インターネットを介して接続されたクライアントからの要求に応答してサービスを提供するウェブ環境でアプリケーション１１１を実行することができる。別の実施形態では、企業イントラネットまたはエクストラネットで、あるいは、その他のネットワーク環境でアプリケーションを実行することができる。環境の構成は、多層環境と同様に、クライアント／サーバ・ネットワーク、（クライアントが、クライアント機能及びサーバ機能の両方を実行することにより直接に相互作用する）ピアツーピアネットワークを含む。これら環境及び構成は当該技術分野において既知である。
【００３４】
図３には、ネットワーク・ファブリック３１３を介して通信するサーバ３０１〜３１２の従来技術のグリッド構造の高レベル表現を示す。サーバ３０９は、ローカル・ネットワークによりサーバ３１０及び３１１と接続されている。サーバ３０８はグリッド・ブローカ・サービスを提供する。グリッド・ブローカは、ｗｗｗ．ｇｒｉｄｂｕｓ．ｏｒｇ／ｂｒｏｋｅｒの「Ｇｒｉｄ  Ｓｅｒｖｉｃｅ  Ｂｒｏｋｅｒ  Ａ  Ｇｒｉｄ  Ｓｃｈｅｄｕｌｅｒ  ｆｏｒ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  ａｎｄ  Ｄａｔａ  Ｇｒｉｄｓ」、及び、ｗｗｗ．ｇｒｉｄｂｕｓ．ｏｒｇ／ｐａｐｅｒｓ／ｇ．ＰＤＦの「Ａ  Ｇｒｉｄ  ｓｅｒｖｉｃｅ  ｆｏｒ  Ｓｃｈｅｄｕｌｉｎｇ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ‐Ｏｒｉｅｎｔｅｄ  Ａｐｐｅｌｌａｔｉｏｎｓ  ｏｎ  ｌｏｃａｌ  Ｇｒｉｄｓ」で論じられている。
【００３５】
図４には、ダウンロード・グリッド・システムの高レベル・アーキテクチャを示す。管理サービス４０２は４つのモジュール及びリポジトリ・データベース４０６を含むのが好ましい。４０８及び４０９により表される多数のサーバがグリッド・システムにあり、これらサーバは管理サービス・センタ４０２に登録されている。更に、ダウンロードを許可されたファイルのすべては管理センタに登録されている。４つのモジュールの機能は以下の通りである。
【００３６】
オプティマイザ４０５は、（サーバの最適化リストを含む）最適化ダウンロード・プランを判別し、クライアントに供給する。
【００３７】
登録システム４０７はサーバ及びファイルの登録を行う。
【００３８】
フィードバック・システム４０３は、サーバの状況及び性能に関するフィードバックをクライアント４０１から収集する。
【００３９】
統計システム４０４は、フィードバック・システムからのアプリケーション使用率情報を分析し、レポートを作成する。
【００４０】
図５には、複数のダウンロード・サーバからチャンクを並行してダウンロードするのに用いるセッションの数をクライアントが判別するのに用いる好適なプロセスを示す。クライアントは最初に最適化リスト内のサーバの１つとセッションを開始する（５０１）。クライアントは、それぞれのサーバからのチャンクの各部分のダウンロード速度を継続的に監視する。クライアントは、監視した速度をＬＯＯＰ＿ＴＩＭＥＯＵＴ秒ごとに分析する。第１ＬＯＯＰ＿ＴＩＭＥＯＵＴ期間５０２の終わりでは、ＱｏＳ（サービス品質）要件が満たされなければ、クライアントはリストの未使用のサーバの１つと第２セッションを開始する（５０３）。
【００４１】
後続する反復では、クライアントは以下の通りに進行する。
【００４２】
（Ｎ＝２  ５０５、またはＮ＝３  ５０６）であり、且つ、現在数のセッションで達成された最大ダウンロード速度（ｍａｘ＿ｄｏｗｎｌｏａｄ＿ｒａｔｅ）が、予め定義されたしきい値（ＴＨＲＥＳＨＯＬＤ＿｛Ｎ｝）より上であれば、クライアントは別のサーバと第（Ｎ＋１）セッションを開始しようとする。
【００４３】
その他の場合、Ｎ＞３であれば、クライアントは、最後の加算から得られた相対ゲイン及び絶対ゲインの両方を検査し、それに応じて作用する。（５０７）であれば、すなわち、
【００４４】
ＭＡＸ＿ＲＡＴＥ（Ｎ  ｓｅｒｖｅｒｓ）−ＭＡＸ＿ＲＡＴＥ（Ｎ−１  ｓｅｒｖｅｒｓ）＞ＴＨＲＥＳＨＯＬＤ＿ＩＮＣ
または
（ＭＡＸ＿ＲＡＴＥ（Ｎ  ｓｅｒｖｅｒｓ）−ＭＡＸ＿ＲＡＴＥ（Ｎ−１  ｓｅｒｖｅｒｓ））／ＭＡＸ＿ＲＡＴＥ（Ｎ−１  ｓｅｒｖｅｒｓ）＞ＩＮＣ＿ＦＡＣＴＯＲであって、
【００４５】
ここで、ＭＡＸ＿ＲＡＴＥ（Ｎ  ｓｅｒｖｅｒｓ）が、Ｎ個のセッションで達成された最大ダウンロード速度であり、ＭＡＸ＿ＲＡＴＥ（Ｎ−１  ｓｅｒｖｅｒｓ）が、Ｎ−１個のサーバと達成された最大速度であり、ＴＨＲＥＳＨＯＬＤ＿ＩＮＣ及びＩＮＣ＿ＦＡＣＴＯＲがそれぞれ、予め定義された絶対しきい値及び相対しきい値であれば、
【００４６】
クライアントは別のサーバと第（Ｎ＋１）セッションを開始する（５０９）。
【００４７】
初期ＴＨＲＥＳＨＯＬＤ＿Ｎ制限は、低いダウンロード速度での多すぎるセッションを回避するための調整である。例示的な実装態様では、様々なパラメータの値は以下の通りである。
【００４８】
ＴＨＲＥＳＨＯＬＤ＿２＝４０ｋバイト／ｓ
ＴＨＲＥＳＨＯＬＤ＿３＝７５ｋバイト／ｓ
ＩＮＣ＿ＦＡＣＴＯＲ＝２０％
ＴＨＲＥＳＨＯＬＤ＿ＩＮＣ＝３０ｋバイト／ｓ
ＬＯＯＰ＿ＴＩＭＥＯＵＴ＝０．１５０秒
【００４９】
この方式の多数の変形が可能である。例えば、２つのファイルを含むバンドルをサーバからクライアントにダウンロードするものとし、各サーバは両方のファイルを有する。１つのファイルの一部分のダウンロードはサーバの第１グループから開始され、もう１つのファイルの一部分のダウンロードは第２グループから開始される。第１グループのサーバがその一部分のダウンロードを完了したら、クライアントは、サーバ上の１つのファイルまたはもう１つのファイルの一部分のダウンロードを開始することを選択することができる。
【００５０】
別の例に対して、各ステップでサーバをランダムに選択する代わりに、管理サービスにより指定された順序にサーバを選択することができる。同様に、単一サーバから開始する代わりに、複数のサーバから開始することも可能である。同様に、Ｎ＝２及びＮ＝３の場合を別々に処理する代わりに、これより多くのＮまたは、これより少ないＮの場合を別々に処理することも可能である。更なる別の変形は、ＩＮＣ＿ＦＡＣＴＯＲをＮ自体に依存させることである。これらは、これら方式の考えられる変形の単なる一例に過ぎず、包括的なリストを表していない。当該技術分野において既知であるその他の変形を本発明の範囲内で用いることができる。
【００５１】
図６には、ダウンロード中に発生する調整を詳細に示す。新規ダウンロードが開始されると、チャンクは、異なるサーバに割り当てられる。チャンクは、特定のサーバからダウンロードされるように割り当てられたファイルの一部分または全部である。ダウンロード要件が複数のファイルの一グループに対するものであるならば、チャンクはグループ内のファイル全体に対応する必要がある。各チャンクのサイズは、最適化プランにリストされた属性サーバ速度に依存する。ネットワークが動的であるので、幾つかのチャンクは、期待されるよりも早く完了される。図６は、チャンク再割り当てアルゴリズムを示す。
【００５２】
サーバＸがチャンクを完了したら（６０１）、クライアントは各アクティブ・ダウンロードを検査し、各々に対して期待された残りの時間をチャンクの残りのサイズ及び現在のダウンロード速度に基づいて計算する。次に、クライアントは、完了するのに最も長い時間を有する可能性を秘めているチャンクをサーバＹから選択する（６０２）。選択したチャンクが図７の６５３として表される。選択したチャンク６５３のサイズが、予め指定されたしきい値よりも小さければ（６０３）、更なるアクションを取らない。その他の場合（６０４）、クライアントは、サーバＸ及びサーバＹで達成されたダウンロード速度を判別する。サーバＸ及びサーバＹの両方からのダウンロードが同時に完了するように、クライアントは、サーバＸ及びサーバＹの実際の速度、及び他のパラメータを考慮する調整係数によりチャンクの残りのサイズを分割する（ステップ６０５）。対応のチャンクは、図７の６５４及び６５５により表されている。言い換えれば、サーバＹがチャンク６５４（ｅｎｄ＿ｙ）を完了すると同時にサーバＸは新規チャンク６５５（ｂｅｇｉｎ＿ｘ−ｅｎｄ＿ｘ）を完了する。次に、サーバＹが６５７に至るまでチャンクのダウンロードを完了するが、クライアントはサーバＸからチャンク６５５をダウンロードし始める（６０６）。
【００５３】
チャンクの相対サイズを判別するのに速度以外のパラメータも考慮される。これらパラメータは、セッション確立時間及び残りのチャンク・サイズのような係数を含むことができる。チャンキング・アルゴリズムは、小さすぎるチャンクを再割り当てることが意味をなさなければ、これを回避するのが好ましい。
【００５４】
このアルゴリズムには、多くの変形がある。これは、本発明を教示するための単なる例示的な実装態様である。
【００５５】
好適な実施形態（図８）では、ファイル・プロバイダは、適切な信任状を有する管理サービスにコンタクトし（７０１）、ファイル・プロバイダは特定の属性７０４でダウンロード・データのチャンクを特徴付け（７０２）、ファイル・プロバイダは特定の属性７０４を管理システムに送信し（７０３）、チャンクをダウンロード・グリッドの単一サーバにアップロードする（７０５）。属性７０４は、優先順位、ファイルに対する所望の地理的な隣接性、または、ファイルをダウンロードする権限を許可するクライアントに関する制限のいずれか１つを含む。ファイル・プロバイダは暗号化解除キーを生成し、ファイルを暗号化し、暗号化解除キーを管理サービスに安全に送信する。
【００５６】
管理サービスは、コンテンツ・プロバイダからダウンロード・データを受信し（図１０）９０１、ダウンロード・データをインフラストラクチャに分散する（７０６）。インフラストラクチャは複数のダウンロード・サーバを含む。管理サービスが、ダウンロード・データをクライアントにダウンロードするため、ダウンロード・プランに対するクライアントからの要求（要求はＱｏＳ要件を指定し、ＱｏＳ要件はダウンロードのダウンロード速度または所望の完了時間の仕様を含む）を受信すると（９０２）、ダウンロード・プランを生成する（９０３）。ダウンロード・プランは、ダウンロード・データを有する２つ以上のダウンロード・サーバのリストを含み、２つ以上のダウンロード・サーバの性能情報９０５を更に含む。次に、ダウンロード・プランをクライアントに送信する（９０４）。（ダウンロード・プランは、グリッド・インフラストラクチャに配備された複数のダウンロード・サーバの最適化リストを含む。）
【００５７】
クライアントは、ダウンロード・データに対する要求をアプリケーション・プログラムから受信する（図９）８０１。次に、クライアントは、管理サービスからダウンロード・プランを要求し（８０２）、次に、ダウンロード・プランに指定されたダウンロード・サーバにコンタクトし、その後、ダウンロード・データのダウンロード・チャンクのダウンロードを、コンタクトした２つ以上のダウンロード・サーバの各々から開始する（８０３）。クライアントはダウンロード・サーバのダウンロード性能を監視し（８０５，８０６）、２つ以上のダウンロード・サーバのダウンロード性能に基づいて、ダウンロードされるダウンロード・チャンクの数を調整する（８０４）。次に、クライアントは２つ以上のダウンロード・サーバのダウンロード性能を管理サービスに報告する（８０７）。
【００５８】
クライアントがダウンロードし終えたら（８０８）、管理サービスは、サーバの新規ダウンロード性能情報をクライアントから受信する（９０７）。管理サービスは、新規ダウンロード性能情報に基づいてダウンロード・サーバの性能情報を更新する（９０６）。
【００５９】
管理サービスは、アップロードするファイルを受信する単一サーバを選択するか、２つ以上のダウンロード・サーバのサーバをアクティブにするか、２つ以上のダウンロード・サーバのサーバを非アクティブにするか、または、２つ以上のダウンロード・サーバのサーバを更新するような活動を動的に実行する。
【００６０】
管理サービスは、クライアントのロケーション、ダウンロード・サーバの状況及び使用率情報、ＱｏＳ要件、クライアントに対する選択されたダウンロード・サーバのネットワーク隣接性、クライアントに対する選択されたダウンロード・サーバの地理的な隣接性、サーバのネットワークのアウトバウンド帯域幅、サーバによりサポートされたチャンク・ダウンロードの現在数、または、許可される最大並行チャンク・ダウンロードに基づいてダウンロード・プランを作成する（クライアント・エージェントのネットワーク・アドレスに基づいて、または、クライアント・エージェントにより供給された情報を介してクライアント・エージェントのロケーションが自動的に判別される）。
【００６１】
好ましくは、ダウンロードの開始が以下のステップを含む。
【００６２】
ａ．  コンタクトした２つ以上のダウンロード・サーバの第１サーバからダウンロード・データのダウンロード・チャンクの第１部分のダウンロードを開始する。
【００６３】
ｂ．  ダウンロード・チャンク部分のダウンロード性能の指示を保管する。
【００６４】
ｃ．  コンタクトした２つ以上のダウンロード・サーバの新規サーバからダウンロード・データのダウンロード・チャンクの新規部分のダウンロードを開始する。
【００６５】
ｄ．  ダウンロード・チャンク部分のダウンロード性能を監視する。
【００６６】
ｅ．  監視されたダウンロード性能が、ダウンロード性能の保管された指示より大きく、ダウンロード性能が、予め判別された最大性能より小さく、コンタクトした２つ以上のダウンロード・サーバのすべてが開始されなかったならば、ステップｂ〜ｅを反復する。
【００６７】
クライアントは、開始された各ダウンロード・サーバからのダウンロード・データのダウンロード・チャンク部分のダウンロード性能を監視し、第１サーバのチャンク部分の副部分を第２サーバに再割り当てし、再割り当てられた副部分のサイズが、開始された２つ以上のダウンロード・サーバの達成されたダウンロード性能に比例するか、第１サーバによりダウンロードされることになっているチャンク部分に比例するか、第１サーバによりダウンロードされることになっているチャンク部分のほぼ半分である。クライアントは、ダウンロードの終了でファイルの完全性を検査し、完全性検査の指示を管理サービスに送信する。
【００６８】
クライアントは、各サーバからダウンロードされたチャンクのサイズ、または、各サーバのダウンロード性能、または、要求に応答しなかったサーバのＩＤに関する情報を記録し、記録された情報を管理サービスに送信する。好ましくは、チャンクが関連のアクセス制御リストを有し、アクセス制御リストに指定されたエンド・ユーザのみファイルをダウンロードすることができる。チャンクはストアされ、暗号化形式で分散される。ファイルの最終暗号化解除は、管理サービスから安全に獲得したキーを用いてクライアント・エージェントにより実行される。
【００６９】
好ましくは、ウェブ・サービスを用いて現在のダウンロード・グリッド・システムを実装する。ダウンロード操作は、クライアントとサーバとの間に独自プロトコルで実装される。管理サービスは、サン・マイクロシステムズ社からのＪＡＶＡ（同社の商標）を用いて実装される。リポジトリはリレーショナル・データベースである。
【００７０】
好ましくは、ダウンロード・グリッド・サーバをＪＡＶＡで実装する。サーバは標準のＴＣＰ／ＩＰプロトコルを用い、ファイル転送速度を動的に調整するアルゴリズムを有する。
【００７１】
好ましくは、独立のＪＡＶＡアプリケーション及びウェブ・ブラウザ・ベースのＪＡＶＡアプレットのどちらかとしてクライアントを実装する。
【００７２】
セキュリティー・メカニズムは、アクセスを制御するのにＧｌｏｂｕｓ２．２グリッド・セキュリティ・インフラストラクチャ（ＧＳＩ）インプリメンテーションを用いるのが好ましい。ＧＳＩは、ｗｗｗ−ｕｎｉｘ．ｇｌｏｂｕｓｏｒｇ／ｓｅｃｕｒｉｔｙの「Ｇｒｉｄ  Ｓｅｃｕｒｉｔｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ」及びｗｗｗ−ｕｎｉｘ．ｇｌｏｂｕｓｏｒｇ／ｓｅｃｕｒｉｔｙ／ｏｖｅｒｖｉｅｗｈｔｍｌの「Ｏｖｅｒｖｉｅｗ  ｏｆ  ｔｈｅ  Ｇｒｉｄ  Ｓｅｃｕｒｉｔｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ」に記述されている。管理サービスは、ｗｗｗ−ｕｎｉｘ．ｇｌｏｂｕｓ．ｏｒｇ／ｔｏｏｌｋｉｔ／ｄｏｃｓ／３．２／ｇｓｉ／ｋｅｙ／ｉｎｄｅｘ．ｈｔｍｌの「ＧＳＩ  Ｋｅｙ  Ｃｏｎｃｅｐｔｓ」で論じられているような既存のグリッドの認証局（ＣＡ）センタにより発行された証明書を有する。
【００７３】
すべてのダウンロード・サーバ及びクライアントはこの証明書を信頼する。クライアント認証を可能にし、ダウンロード・サーバから直接にダウンロードするように管理サービスの権限を代行するのにＸ．５０９プロキシが用いられる。Ｘ．５０９はＩＴＵ‐Ｔ勧告Ｘ．５０９バージョン３（１９９７），「Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｈｎｏｌｏｇｙ  ‐  Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  ‐  Ｔｈｅ  Ｄｉｒｅｔｏｒｙ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ」，ＩＳＯ／ＥＥＣ，９５９４‐８（１９９７年）に記述されている。
【００７４】
好適な実装態様では、最適化プランの判別は、クライアントと候補ダウンロード・サーバとの間の地理的距離に基づいて計算される。この判別を基にしてクライアントのＩＰアドレスとサーバのＩＰアドレスとは、ＩＰアドレスを地理的ロケーションにマッピングするテーブルと一緒に用いられる。最適化プランは、ＸＭＬフォーマットでＸ．５０９プロキシ証明書の内部にカプセル化される。
【００７５】
本発明の機能をソフトウェア、ファームウェア、ハードウェアまたはそれらの幾つかの組み合わせに実装することができる。
【００７６】
一例として、例えばコンピュータ使用可能メディアを有する製品（例えば、１つ以上のコンピュータ・プログラム製品）に本発明の１つ以上の態様を含むことができる。このメディアは、例えば、本発明の機能を行い、容易にするコンピュータ可読プログラム・コード手段で具体化されている。コンピュータ・システムの一部分として製品を含むことができ、または、別々に販売することができる。
【００７７】
更に、本発明の機能を実行するため、マシンにより実行可能である命令の少なくとも１つのプログラムを明白に具体化するマシンにより読み取り可能である少なくとも１つのプログラム・ストレージ・デバイスを備えることができる。
【００７８】
本明細書で記述したフロー・ダイアグラムは単なる一例である。本発明の精神から逸脱することなく、本明細書で記述したこれらダイアグラムまたはステップ（または操作）に多くの変形が可能である。例えば、これらステップを異なる順序で実行することができる。または、これらステップを追加するか、削除するか、または変更することができる。これら変形のすべては、請求された本発明の一部分と見なされる。
【図面の簡単な説明】
【００７９】
【図１】コンピュータ・システムのコンポーネントを示す図である。
【図２】従来技術のクライアント／サーバ・ネットワークを示す図である。
【図３】従来技術のグリッド・ネットワークを示す図である。
【図４】例示的な高レベル・ダウンロード・グリッド・アーキテクチャ図である。
【図５】並行ダウンロード・セッションの数を制御するプロセスの一例を示すフローチャートである。
【図６】ダウンロード再調整の例示的なプロセスを示すフローチャートである。
【図７】例示的なチャンク再割り当てプロセスを示す図形による描写である。
【図８】本発明によるグリッド・ダウンロード・システムへのコンテンツの供給を示すフローチャートである。
【図９】本発明によるグリッド・ダウンロード・システムへのコンテンツのダウンロードを示すフローチャートである。
【図１０】本発明によるグリッド・ダウンロードの開始を示すフローチャートである。
【図１】
2008502061.tif 000003
【図２】
2008502061.tif 000004
【図３】
2008502061.tif 000005
【図４】
2008502061.tif 000006
【図５】
2008502061.tif 000007
【図６】
2008502061.tif 000008
【図７】
2008502061.tif 000009
【図８】
2008502061.tif 000010
【図９】
2008502061.tif 000011
【図１０】
2008502061.tif 000012
【国際調査報告】
2008502061.tif 000013
2008502061.tif 000014