(57)【要約】【課題】データ・アーカイブ管理スケジューリングを継続的に最適化するシステムおよび関連する方法を提供する。【解決手段】ジョブ・スケジューラは、アーカイブ管理システムから、タスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データの入力を受領する。ジョブ・スケジューラは、受領された入力に従って、様々なレベルの頂点においてアーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を表すフロー・ネットワークをモデル化する。モデル化されたフロー・ネットワーク内の最適パスが、初期スケジュールとして計算され、アーカイブ管理システムは、初期スケジュールに従ってタスクを実行する。スケジュールされたタスクの動作が監視され、ジョブ・スケジューラは、監視された動作のフィードバックおよび所定のヒューリスティクスに基づき、新たなスケジュールを作り出す。【選択図】図３
2013513150.tif 000002
【特許請求の範囲】
【請求項１】
データ・アーカイブ管理スケジューリングを継続的に最適化する方法であって、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化するステップと、
コンピュータ・システムのプロセッサが、前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送するステップであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記ステップと、
を含む方法。
【請求項２】
前記方法は、
前記アーカイブ管理システムのコンポーネントから前記入力を収集して、前記ジョブ・スケジューラに提供するステップと、
前記計算された最適初期スケジュールを、前記計算された最適初期スケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
データおよび制御が、実際の通信パスを介して転送されることができるよう、ユーザ・インターフェイスと、前記受領されたスケジュール上の構成要素リソースとの間に、前記実際の通信パスを作成するステップと、
前記ワーカ・プログラムを実行する仮想マシンを展開し、続いて、前記受領されたスケジュールを前記展開された仮想マシン上で開始して前記タスクを実行することによって、前記受領されたスケジュールを実行するステップと、
前記実行されたスケジュールの動作を監視することによって前記監視結果を生成して、前記監視結果を前記ジョブ・スケジューラに提供するステップと、
前記調節済みスケジュールを、前記調節済みスケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
をさらに含み、
前記収集、前記計算された最適初期スケジュールの前記受領、前記実際の通信パスの前記作成、前記受領されたスケジュールの前記実行、前記生成、および前記調節済みスケジュールの前記受領は、前記アーカイブ管理システムによって実行される、請求項１に記載の方法。
【請求項３】
前記フロー・ネットワークの前記モデル化は、
ＬＥＶＥＬ＿０、ＬＥＶＥＬ＿１、ＬＥＶＥＬ＿２、ＬＥＶＥＬ＿３、ＬＥＶＥＬ＿４、ＬＥＶＥＬ＿５、ＬＥＶＥＬ＿６、およびＬＥＶＥＬ＿７を含む８つのレベルに編成された頂点を作成するステップであって、
ＬＥＶＥＬ＿０は、ソース頂点を含み、
ＬＥＶＥＬ＿１は、前記少なくとも１つの前記アーカイブ管理タスクに関連する少なくとも１つのタスク頂点を含み、
ＬＥＶＥＬ＿２は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なストレージ・デバイス・ボリュームに関連する少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿３は、ＬＥＶＥＬ＿２の前記少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿４は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なコンピューティング・サーバに関連する少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿５は、ＬＥＶＥＬ＿４の前記少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿６は、前記少なくとも１つの前記アーカイブ管理タスクを実行する少なくとも１つのワーカ・プログラムに関連する少なくとも１つのワーカ頂点を含み、
ＬＥＶＥＬ＿７は、シンク頂点を含む、
前記ステップと、
ＥＤＧＥ＿０１、ＥＤＧＥ＿１２、ＥＤＧＥ＿２３、ＥＤＧＥ＿３４、ＥＤＧＥ＿４５、ＥＤＧＥ＿５６、およびＥＤＧＥ＿６７を含む７つのタイプに編成された辺を作成するステップであって、
第１のタイプＥＤＧＥ＿０１は、ＬＥＶＥＬ＿０の前記ソース頂点からＬＥＶＥＬ＿１の第１のタスク頂点へ向かう第１の辺を含み、前記第１の辺は、前記第１のタスク頂点に関連する第１のタスクが、前記ジョブ・スケジューラによってスケジュールされることを示し、
第２のタイプＥＤＧＥ＿１２は、ＬＥＶＥＬ＿１の前記第１のタスク頂点からＬＥＶＥＬ＿２の第１のボリューム頂点へ向かう第２の辺を含み、前記第２の辺は、前記第１のボリューム頂点に関連する第１のストレージ・デバイス・ボリュームが、前記第１のタスクを実行するために必要な最新のデータを記憶していることを示し、
第３のタイプＥＤＧＥ＿２３は、ＬＥＶＥＬ＿２の前記第１のボリューム頂点からＬＥＶＥＬ＿３の前記第１のボリューム頂点へ向かう第３の辺を含み、
第４のタイプＥＤＧＥ＿３４は、ＬＥＶＥＬ＿３の前記第１のボリューム頂点からＬＥＶＥＬ＿４の第１のサーバ頂点へ向かう第４の辺を含み、前記第４の辺は、前記第１のサーバ頂点に関連する第１のコンピューティング・サーバが、前記第１のストレージ・デバイス・ボリュームに物理的に結合されていることを示し、
第５のタイプＥＤＧＥ＿４５は、ＬＥＶＥＬ＿４の前記第１のサーバ頂点からＬＥＶＥＬ＿５の前記第１のサーバ頂点へ向かう第５の辺を含み、
第６のタイプＥＤＧＥ＿５６は、ＬＥＶＥＬ＿５の前記第１のサーバ頂点からＬＥＶＥＬ＿６の第１のワーカ頂点へ向かう第６の辺を含み、前記第６の辺は、前記第１のサーバ頂点に関連する前記第１のコンピューティング・サーバが、前記第１のワーカ頂点に関連する第１のワーカ・プログラムをホストすることを示し、
第７のタイプＥＤＧＥ＿６７は、ＬＥＶＥＬ＿６の前記第１のワーカ頂点からＬＥＶＥＬ＿７の前記シンク頂点へ向かう第７の辺を含み、前記第７の辺は、前記第１のワーカ・プログラムが、前記ジョブ・スケジューラによってスケジュールされた動作を完了することを示す、
前記ステップと、
前記作成された辺の重みを割り当てるステップであって、
前記第１のタイプＥＤＧＥ＿０１の前記第１の辺は、前記第１のタスクを実行するための時間単位と等しい第１の重みを有し、
前記第２のタイプＥＤＧＥ＿１２の前記第２の辺は、前記第１のタスクのボリューム使用と等しい第２の重みを有し、
前記第３のタイプＥＤＧＥ＿２３の前記第３の辺は、前記第１のストレージ・デバイス・ボリュームが同時にサポートできるタスクの数を示し前記第１のストレージ・デバイス・ボリュームのボリューム・スループットと等しい第３の重みを有し、
前記第４のタイプＥＤＧＥ＿３４の前記第４の辺は、前記第１のストレージ・デバイス・ボリュームと、前記第１のコンピューティング・サーバとの間の通信チャネルの容量と等しい第４の重みを有し、
前記第５のタイプＥＤＧＥ＿４５の前記第５の辺は、前記第１のコンピューティング・サーバの処理スループットと等しい第５の重みを有し、
前記第６のタイプＥＤＧＥ＿５６の前記第６の辺および前記第７のタイプＥＤＧＥ＿６７の前記第７の辺はそれぞれ、前記アーカイブ管理システム内の極めて大きな数と等しい無限の重みを有する、
前記ステップと、
作成された辺に従って、前記ソース頂点から前記シンク頂点への少なくとも１つのパスを作成するステップであって、前記パス内の少なくとも１つのストレージ・デバイス・ボリュームおよび少なくとも１つのコンピューティング・サーバを用いて、前記パス内の少なくとも１つのワーカ・プログラムによって実行される、前記パス内のタスクに関する個別のジョブ・スケジュールを、前記作成された少なくとも１つのパスが表すよう、前記作成するステップであって、前記最適パスは、前記パス内の辺の重みの最小和を有するパスである、前記ステップと、
を含む、請求項１または２に記載の方法。
【請求項４】
前記最適初期スケジュールの前記計算は、
前記第３のタイプＥＤＧＥ＿２３、前記第４のタイプＥＤＧＥ＿３４、および前記第５のタイプＥＤＧＥ＿４５のすべての辺を含むリソース辺の個別の重みに時間の係数を乗算し、続いて、前記乗算された個別の重みを、それぞれ最も近い整数値に切り捨てる結果として、前記リソース辺の、時間を考慮した個別の重みを算出するステップと、
前記リソース辺の、前記時間を考慮した個別の重みを備える前記フロー・ネットワークに対して一連の最大フロー計算を実行することによって、少なくとも１つの最大フローを得るステップと、
前記得られた少なくとも１つの最大フローから、少なくとも１つの候補最大フローを選択するステップであって、前記少なくとも１つの候補最大フローは、前記フロー・ネットワークの前記少なくとも１つの最大フロー内のタスクの総数と等しい、前記ステップと、
前記選択された少なくとも１つの候補最大フローを用いて、少なくとも１つの候補スケジュールを生成するステップと、
前記少なくとも１つの候補スケジュールの中で、前記候補スケジュール内のすべての重みの最小和を備える候補スケジュールとして、前記最適初期スケジュールを選択するステップと、
を含む、請求項３に記載の方法。
【請求項５】
前記調節済みスケジュールの作成は、
前記転送されたスケジュールの前記動作の前記受領された監視結果を分析するステップであって、前記受領された監視結果は、前記転送されたスケジュール内のリソースの個別の量、ファイルの個別のサイズ、およびタスクの個別のスループットを含む、前記ステップと、
前記分析の結果を、所定のヒューリスティック・メトリックに適用するステップであって、前記所定のヒューリスティック・メトリックは、各タスクの容量、各タスクの出次数、総ボリューム負荷、および最小ボリューム負荷から成る群、並びにその組み合わせから選択される、前記ステップと、
前記転送されたスケジュール内のタスクのスケジューリング順序を、前記適用の結果に基づき動的に調節することによって、前記転送されたスケジュールを最適化するステップと、
を含む、先行するいずれかの請求項に記載の方法。
【請求項６】
コンピュータ可読ストレージ媒体において具現化されたコンピュータ可読プログラム・コードを有する前記コンピュータ可読ストレージ媒体
を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードは、データ・アーカイブ管理スケジューリングの継続的な最適化を実行する命令を含み、前記最適化は、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領すること、
前記受領された入力からフロー・ネットワークをモデル化することであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化すること、
前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算すること、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送すること、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領すること、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成すること、並びに
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送することであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記転送すること、
を含む、コンピュータ・プログラム製品。
【請求項７】
前記最適化は、
前記アーカイブ管理システムのコンポーネントから前記入力を収集して、前記ジョブ・スケジューラに提供すること、
前記計算された最適初期スケジュールを、前記計算された最適初期スケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領すること、
データおよび制御が、実際の通信パスを介して転送されることができるよう、ユーザ・インターフェイスと、前記受領されたスケジュール上の構成要素リソースとの間に、前記実際の通信パスを作成すること、
前記ワーカ・プログラムを実行する仮想マシンを展開し、続いて、前記受領されたスケジュールを前記展開された仮想マシン上で開始して前記タスクを実行することによって、前記受領されたスケジュールを実行すること、
前記実行されたスケジュールの動作を監視することによって前記監視結果を生成して、前記監視結果を前記ジョブ・スケジューラに提供すること、並びに
前記調節済みスケジュールを、前記調節済みスケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領すること、
をさらに含み、
前記収集、前記計算された最適初期スケジュールの前記受領、前記実際の通信パスの前記作成、前記受領されたスケジュールの前記実行、前記生成、および前記調節済みスケジュールの前記受領は、前記アーカイブ管理システムによって実行される、請求項６に記載のコンピュータ・プログラム製品。
【請求項８】
前記フロー・ネットワークの前記モデル化は、
ＬＥＶＥＬ＿０、ＬＥＶＥＬ＿１、ＬＥＶＥＬ＿２、ＬＥＶＥＬ＿３、ＬＥＶＥＬ＿４、ＬＥＶＥＬ＿５、ＬＥＶＥＬ＿６、およびＬＥＶＥＬ＿７を含む８つのレベルに編成された頂点を作成することであって、
ＬＥＶＥＬ＿０は、ソース頂点を含み、
ＬＥＶＥＬ＿１は、前記少なくとも１つの前記アーカイブ管理タスクに関連する少なくとも１つのタスク頂点を含み、
ＬＥＶＥＬ＿２は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なストレージ・デバイス・ボリュームに関連する少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿３は、ＬＥＶＥＬ＿２の前記少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿４は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なコンピューティング・サーバに関連する少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿５は、ＬＥＶＥＬ＿４の前記少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿６は、前記少なくとも１つの前記アーカイブ管理タスクを実行する少なくとも１つのワーカ・プログラムに関連する少なくとも１つのワーカ頂点を含み、
ＬＥＶＥＬ＿７は、シンク頂点を含む、
前記作成すること、
ＥＤＧＥ＿０１、ＥＤＧＥ＿１２、ＥＤＧＥ＿２３、ＥＤＧＥ＿３４、ＥＤＧＥ＿４５、ＥＤＧＥ＿５６、およびＥＤＧＥ＿６７を含む７つのタイプに編成された辺を作成することであって、
第１のタイプＥＤＧＥ＿０１は、ＬＥＶＥＬ＿０の前記ソース頂点からＬＥＶＥＬ＿１の第１のタスク頂点へ向かう第１の辺を含み、前記第１の辺は、前記第１のタスク頂点に関連する第１のタスクが、前記ジョブ・スケジューラによってスケジュールされることを示し、
第２のタイプＥＤＧＥ＿１２は、ＬＥＶＥＬ＿１の前記第１のタスク頂点からＬＥＶＥＬ＿２の第１のボリューム頂点へ向かう第２の辺を含み、前記第２の辺は、前記第１のボリューム頂点に関連する第１のストレージ・デバイス・ボリュームが、前記第１のタスクを実行するために必要な最新のデータを記憶していることを示し、
第３のタイプＥＤＧＥ＿２３は、ＬＥＶＥＬ＿２の前記第１のボリューム頂点からＬＥＶＥＬ＿３の前記第１のボリューム頂点へ向かう第３の辺を含み、
第４のタイプＥＤＧＥ＿３４は、ＬＥＶＥＬ＿３の前記第１のボリューム頂点からＬＥＶＥＬ＿４の第１のサーバ頂点へ向かう第４の辺を含み、前記第４の辺は、前記第１のサーバ頂点に関連する第１のコンピューティング・サーバが、前記第１のストレージ・デバイス・ボリュームに物理的に結合されていることを示し、
第５のタイプＥＤＧＥ＿４５は、ＬＥＶＥＬ＿４の前記第１のサーバ頂点からＬＥＶＥＬ＿５の前記第１のサーバ頂点へ向かう第５の辺を含み、
第６のタイプＥＤＧＥ＿５６は、ＬＥＶＥＬ＿５の前記第１のサーバ頂点からＬＥＶＥＬ＿６の第１のワーカ頂点へ向かう第６の辺を含み、前記第６の辺は、前記第１のサーバ頂点に関連する前記第１のコンピューティング・サーバが、前記第１のワーカ頂点に関連する第１のワーカ・プログラムをホストすることを示し、
第７のタイプＥＤＧＥ＿６７は、ＬＥＶＥＬ＿６の前記第１のワーカ頂点からＬＥＶＥＬ＿７の前記シンク頂点へ向かう第７の辺を含み、前記第７の辺は、前記第１のワーカ・プログラムが、前記ジョブ・スケジューラによってスケジュールされた動作を完了することを示す、
前記作成すること、
前記作成された辺の重みを割り当てることであって、
前記第１のタイプＥＤＧＥ＿０１の前記第１の辺は、前記第１のタスクを実行するための時間単位と等しい第１の重みを有し、
前記第２のタイプＥＤＧＥ＿１２の前記第２の辺は、前記第１のタスクのボリューム使用と等しい第２の重みを有し、
前記第３のタイプＥＤＧＥ＿２３の前記第３の辺は、前記第１のストレージ・デバイス・ボリュームが同時にサポートできるタスクの数を示し前記第１のストレージ・デバイス・ボリュームのボリューム・スループットと等しい第３の重みを有し、
前記第４のタイプＥＤＧＥ＿３４の前記第４の辺は、前記第１のストレージ・デバイス・ボリュームと、前記第１のコンピューティング・サーバとの間の通信チャネルの容量と等しい第４の重みを有し、
前記第５のタイプＥＤＧＥ＿４５の前記第５の辺は、前記第１のコンピューティング・サーバの処理スループットと等しい第５の重みを有し、
前記第６のタイプＥＤＧＥ＿５６の前記第６の辺および前記第７のタイプＥＤＧＥ＿６７の前記第７の辺はそれぞれ、前記アーカイブ管理システム内の極めて大きな数と等しい無限の重みを有する、
前記割り当てること、並びに
作成された辺に従って、前記ソース頂点から前記シンク頂点への少なくとも１つのパスを作成することであって、前記パス内の少なくとも１つのストレージ・デバイス・ボリュームおよび少なくとも１つのコンピューティング・サーバを用いて、前記パス内の少なくとも１つのワーカ・プログラムによって実行される、前記パス内のタスクに関する個別のジョブ・スケジュールを、前記作成された少なくとも１つのパスが表すよう、前記作成することであって、前記最適パスは、前記パス内の辺の重みの最小和を有するパスである、前記作成すること、
を含む、請求項６または７に記載のコンピュータ・プログラム製品。
【請求項９】
前記最適初期スケジュールの前記計算は、
前記第３のタイプＥＤＧＥ＿２３、前記第４のタイプＥＤＧＥ＿３４、および前記第５のタイプＥＤＧＥ＿４５のすべての辺を含むリソース辺の個別の重みに時間の係数を乗算し、続いて、前記乗算された個別の重みを、それぞれ最も近い整数値に切り捨てる結果として、前記リソース辺の、時間を考慮した個別の重みを算出すること、
前記リソース辺の、前記時間を考慮した個別の重みを備える前記フロー・ネットワークに対して一連の最大フロー計算を実行することによって、少なくとも１つの最大フローを得ること、
前記得られた少なくとも１つの最大フローから、少なくとも１つの候補最大フローを選択することであって、前記少なくとも１つの候補最大フローは、前記フロー・ネットワークの前記少なくとも１つの最大フロー内のタスクの総数と等しい、前記選択すること、
前記選択された少なくとも１つの候補最大フローを用いて、少なくとも１つの候補スケジュールを生成すること、並びに
前記少なくとも１つの候補スケジュールの中で、前記候補スケジュール内のすべての重みの最小和を備える候補スケジュールとして、前記最適初期スケジュールを選択すること、
を含む、請求項８に記載のコンピュータ・プログラム製品。
【請求項１０】
前記調節済みスケジュールの作成は、
前記転送されたスケジュールの前記動作の前記受領された監視結果を分析することであって、前記受領された監視結果は、前記転送されたスケジュール内のリソースの個別の量、ファイルの個別のサイズ、およびタスクの個別のスループットを含む、前記分析すること、
前記分析の結果を、所定のヒューリスティック・メトリックに適用することであって、前記所定のヒューリスティック・メトリックは、各タスクの容量、各タスクの出次数、総ボリューム負荷、および最小ボリューム負荷から成る群、並びにその組み合わせから選択される、前記適用すること、並びに
前記転送されたスケジュール内のタスクのスケジューリング順序を、前記適用の結果に基づき動的に調節することによって、前記転送されたスケジュールを最適化すること、
を含む、請求項６〜９のいずれかに記載のコンピュータ・プログラム製品。
【請求項１１】
プロセッサと、前記プロセッサに結合されたコンピュータ可読メモリ・ユニットとを含むコンピュータ・システムであって、前記コンピュータ可読メモリ・ユニットは、前記プロセッサによって実行されるとデータ・アーカイブ管理スケジューリングを継続的に最適化する方法を実装する命令を含み、前記方法は、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化するステップと、
前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送するステップであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記ステップと、
を含む、コンピュータ・システム。
【請求項１２】
前記方法は、
前記アーカイブ管理システムのコンポーネントから前記入力を収集して、前記ジョブ・スケジューラに提供するステップと、
前記計算された最適初期スケジュールを、前記計算された最適初期スケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
データおよび制御が、実際の通信パスを介して転送されることができるよう、ユーザ・インターフェイスと、前記受領されたスケジュール上の構成要素リソースとの間に、前記実際の通信パスを作成するステップと、
前記ワーカ・プログラムを実行する仮想マシンを展開し、続いて、前記受領されたスケジュールを前記展開された仮想マシン上で開始して前記タスクを実行することによって、前記受領されたスケジュールを実行するステップと、
前記実行されたスケジュールの動作を監視することによって前記監視結果を生成して、前記監視結果を前記ジョブ・スケジューラに提供するステップと、
前記調節済みスケジュールを、前記調節済みスケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
をさらに含み、
前記収集、前記計算された最適初期スケジュールの前記受領、前記実際の通信パスの前記作成、前記受領されたスケジュールの前記実行、前記生成、および前記調節済みスケジュールの前記受領は、前記アーカイブ管理システムによって実行される、請求項１１に記載のコンピュータ・システム。
【請求項１３】
前記フロー・ネットワークの前記モデル化は、
ＬＥＶＥＬ＿０、ＬＥＶＥＬ＿１、ＬＥＶＥＬ＿２、ＬＥＶＥＬ＿３、ＬＥＶＥＬ＿４、ＬＥＶＥＬ＿５、ＬＥＶＥＬ＿６、およびＬＥＶＥＬ＿７を含む８つのレベルに編成された頂点を作成するステップであって、
ＬＥＶＥＬ＿０は、ソース頂点を含み、
ＬＥＶＥＬ＿１は、前記少なくとも１つの前記アーカイブ管理タスクに関連する少なくとも１つのタスク頂点を含み、
ＬＥＶＥＬ＿２は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なストレージ・デバイス・ボリュームに関連する少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿３は、ＬＥＶＥＬ＿２の前記少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿４は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なコンピューティング・サーバに関連する少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿５は、ＬＥＶＥＬ＿４の前記少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿６は、前記少なくとも１つの前記アーカイブ管理タスクを実行する少なくとも１つのワーカ・プログラムに関連する少なくとも１つのワーカ頂点を含み、
ＬＥＶＥＬ＿７は、シンク頂点を含む、
前記ステップと、
ＥＤＧＥ＿０１、ＥＤＧＥ＿１２、ＥＤＧＥ＿２３、ＥＤＧＥ＿３４、ＥＤＧＥ＿４５、ＥＤＧＥ＿５６、およびＥＤＧＥ＿６７を含む７つのタイプに編成された辺を作成するステップであって、
第１のタイプＥＤＧＥ＿０１は、ＬＥＶＥＬ＿０の前記ソース頂点からＬＥＶＥＬ＿１の第１のタスク頂点へ向かう第１の辺を含み、前記第１の辺は、前記第１のタスク頂点に関連する第１のタスクが、前記ジョブ・スケジューラによってスケジュールされることを示し、
第２のタイプＥＤＧＥ＿１２は、ＬＥＶＥＬ＿１の前記第１のタスク頂点からＬＥＶＥＬ＿２の第１のボリューム頂点へ向かう第２の辺を含み、前記第２の辺は、前記第１のボリューム頂点に関連する第１のストレージ・デバイス・ボリュームが、前記第１のタスクを実行するために必要な最新のデータを記憶していることを示し、
第３のタイプＥＤＧＥ＿２３は、ＬＥＶＥＬ＿２の前記第１のボリューム頂点からＬＥＶＥＬ＿３の前記第１のボリューム頂点へ向かう第３の辺を含み、
第４のタイプＥＤＧＥ＿３４は、ＬＥＶＥＬ＿３の前記第１のボリューム頂点からＬＥＶＥＬ＿４の第１のサーバ頂点へ向かう第４の辺を含み、前記第４の辺は、前記第１のサーバ頂点に関連する第１のコンピューティング・サーバが、前記第１のストレージ・デバイス・ボリュームに物理的に結合されていることを示し、
第５のタイプＥＤＧＥ＿４５は、ＬＥＶＥＬ＿４の前記第１のサーバ頂点からＬＥＶＥＬ＿５の前記第１のサーバ頂点へ向かう第５の辺を含み、
第６のタイプＥＤＧＥ＿５６は、ＬＥＶＥＬ＿５の前記第１のサーバ頂点からＬＥＶＥＬ＿６の第１のワーカ頂点へ向かう第６の辺を含み、前記第６の辺は、前記第１のサーバ頂点に関連する前記第１のコンピューティング・サーバが、前記第１のワーカ頂点に関連する第１のワーカ・プログラムをホストすることを示し、
第７のタイプＥＤＧＥ＿６７は、ＬＥＶＥＬ＿６の前記第１のワーカ頂点からＬＥＶＥＬ＿７の前記シンク頂点へ向かう第７の辺を含み、前記第７の辺は、前記第１のワーカ・プログラムが、前記ジョブ・スケジューラによってスケジュールされた動作を完了することを示す、
前記ステップと、
前記作成された辺の重みを割り当てるステップであって、
前記第１のタイプＥＤＧＥ＿０１の前記第１の辺は、前記第１のタスクを実行するための時間単位と等しい第１の重みを有し、
前記第２のタイプＥＤＧＥ＿１２の前記第２の辺は、前記第１のタスクのボリューム使用と等しい第２の重みを有し、
前記第３のタイプＥＤＧＥ＿２３の前記第３の辺は、前記第１のストレージ・デバイス・ボリュームが同時にサポートできるタスクの数を示し前記第１のストレージ・デバイス・ボリュームのボリューム・スループットと等しい第３の重みを有し、
前記第４のタイプＥＤＧＥ＿３４の前記第４の辺は、前記第１のストレージ・デバイス・ボリュームと、前記第１のコンピューティング・サーバとの間の通信チャネルの容量と等しい第４の重みを有し、
前記第５のタイプＥＤＧＥ＿４５の前記第５の辺は、前記第１のコンピューティング・サーバの処理スループットと等しい第５の重みを有し、
前記第６のタイプＥＤＧＥ＿５６の前記第６の辺および前記第７のタイプＥＤＧＥ＿６７の前記第７の辺はそれぞれ、前記アーカイブ管理システム内の極めて大きな数と等しい無限の重みを有する、
前記ステップと、
作成された辺に従って、前記ソース頂点から前記シンク頂点への少なくとも１つのパスを作成するステップであって、前記パス内の少なくとも１つのストレージ・デバイス・ボリュームおよび少なくとも１つのコンピューティング・サーバを用いて、前記パス内の少なくとも１つのワーカ・プログラムによって実行される、前記パス内のタスクに関する個別のジョブ・スケジュールを、前記作成された少なくとも１つのパスが表すよう、前記作成するステップであって、前記最適パスは、前記パス内の辺の重みの最小和を有するパスである、前記ステップと、
を含む、請求項１１または１２に記載のコンピュータ・システム。
【請求項１４】
前記最適初期スケジュールの前記計算は、
前記第３のタイプＥＤＧＥ＿２３、前記第４のタイプＥＤＧＥ＿３４、および前記第５のタイプＥＤＧＥ＿４５のすべての辺を含むリソース辺の個別の重みに時間の係数を乗算し、続いて、前記乗算された個別の重みを、それぞれ最も近い整数値に切り捨てる結果として、前記リソース辺の、時間を考慮した個別の重みを算出するステップと、
前記リソース辺の、前記時間を考慮した個別の重みを備える前記フロー・ネットワークに対して一連の最大フロー計算を実行することによって、少なくとも１つの最大フローを得るステップと、
前記得られた少なくとも１つの最大フローから、少なくとも１つの候補最大フローを選択するステップであって、前記少なくとも１つの候補最大フローは、前記フロー・ネットワークの前記少なくとも１つの最大フロー内のタスクの総数と等しい、前記ステップと、
前記選択された少なくとも１つの候補最大フローを用いて、少なくとも１つの候補スケジュールを生成するステップと、
前記少なくとも１つの候補スケジュールの中で、前記候補スケジュール内のすべての重みの最小和を備える候補スケジュールとして、前記最適初期スケジュールを選択するステップと、
を含む、請求項１３に記載のコンピュータ・システム。
【請求項１５】
前記調節済みスケジュールの作成は、
前記転送されたスケジュールの前記動作の前記受領された監視結果を分析するステップであって、前記受領された監視結果は、前記転送されたスケジュール内のリソースの個別の量、ファイルの個別のサイズ、およびタスクの個別のスループットを含む、前記ステップと、
前記分析の結果を、所定のヒューリスティック・メトリックに適用するステップであって、前記所定のヒューリスティック・メトリックは、各タスクの容量、各タスクの出次数、総ボリューム負荷、および最小ボリューム負荷から成る群、並びにその組み合わせから選択される、前記ステップと、
前記転送されたスケジュール内のタスクのスケジューリング順序を、前記適用の結果に基づき動的に調節することによって、前記転送されたスケジュールを最適化するステップと、
を含む、請求項１１〜１４のいずれかに記載のコンピュータ・システム。
【請求項１６】
コンピュータ・インフラストラクチャをサポートするプロセスであって、前記プロセスは、コンピューティング・システムにおけるコンピュータ可読コードの作成、統合、ホスト、維持、および展開のうちの少なくとも１つに関して少なくとも１つのサポート・サービスを提供することを含み、前記コードは、前記コンピューティング・システムとともに、データ・アーカイブ管理スケジューリングを継続的に最適化する方法を実行することができ、前記方法は、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化するステップと、
前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送するステップであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記ステップと、
を含む、プロセス。
【請求項１７】
前記方法は、
前記アーカイブ管理システムのコンポーネントから前記入力を収集して、前記ジョブ・スケジューラに提供するステップと、
前記計算された最適初期スケジュールを、前記計算された最適初期スケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
データおよび制御が、実際の通信パスを介して転送されることができるよう、ユーザ・インターフェイスと、前記受領されたスケジュール上の構成要素リソースとの間に、前記実際の通信パスを作成するステップと、
前記ワーカ・プログラムを実行する仮想マシンを展開し、続いて、前記受領されたスケジュールを前記展開された仮想マシン上で開始して前記タスクを実行することによって、前記受領されたスケジュールを実行するステップと、
前記実行されたスケジュールの動作を監視することによって前記監視結果を生成して、前記監視結果を前記ジョブ・スケジューラに提供するステップと、
前記調節済みスケジュールを、前記調節済みスケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
をさらに含み、
前記収集、前記計算された最適初期スケジュールの前記受領、前記実際の通信パスの前記作成、前記受領されたスケジュールの前記実行、前記生成、および前記調節済みスケジュールの前記受領は、前記アーカイブ管理システムによって実行される、請求項１６に記載のプロセス。
【請求項１８】
前記フロー・ネットワークの前記モデル化は、
ＬＥＶＥＬ＿０、ＬＥＶＥＬ＿１、ＬＥＶＥＬ＿２、ＬＥＶＥＬ＿３、ＬＥＶＥＬ＿４、ＬＥＶＥＬ＿５、ＬＥＶＥＬ＿６、およびＬＥＶＥＬ＿７を含む８つのレベルに編成された頂点を作成するステップであって、
ＬＥＶＥＬ＿０は、ソース頂点を含み、
ＬＥＶＥＬ＿１は、前記少なくとも１つの前記アーカイブ管理タスクに関連する少なくとも１つのタスク頂点を含み、
ＬＥＶＥＬ＿２は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なストレージ・デバイス・ボリュームに関連する少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿３は、ＬＥＶＥＬ＿２の前記少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿４は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なコンピューティング・サーバに関連する少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿５は、ＬＥＶＥＬ＿４の前記少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿６は、前記少なくとも１つの前記アーカイブ管理タスクを実行する少なくとも１つのワーカ・プログラムに関連する少なくとも１つのワーカ頂点を含み、
ＬＥＶＥＬ＿７は、シンク頂点を含む、
前記ステップと、
ＥＤＧＥ＿０１、ＥＤＧＥ＿１２、ＥＤＧＥ＿２３、ＥＤＧＥ＿３４、ＥＤＧＥ＿４５、ＥＤＧＥ＿５６、およびＥＤＧＥ＿６７を含む７つのタイプに編成された辺を作成するステップであって、
第１のタイプＥＤＧＥ＿０１は、ＬＥＶＥＬ＿０の前記ソース頂点からＬＥＶＥＬ＿１の第１のタスク頂点へ向かう第１の辺を含み、前記第１の辺は、前記第１のタスク頂点に関連する第１のタスクが、前記ジョブ・スケジューラによってスケジュールされることを示し、
第２のタイプＥＤＧＥ＿１２は、ＬＥＶＥＬ＿１の前記第１のタスク頂点からＬＥＶＥＬ＿２の第１のボリューム頂点へ向かう第２の辺を含み、前記第２の辺は、前記第１のボリューム頂点に関連する第１のストレージ・デバイス・ボリュームが、前記第１のタスクを実行するために必要な最新のデータを記憶していることを示し、
第３のタイプＥＤＧＥ＿２３は、ＬＥＶＥＬ＿２の前記第１のボリューム頂点からＬＥＶＥＬ＿３の前記第１のボリューム頂点へ向かう第３の辺を含み、
第４のタイプＥＤＧＥ＿３４は、ＬＥＶＥＬ＿３の前記第１のボリューム頂点からＬＥＶＥＬ＿４の第１のサーバ頂点へ向かう第４の辺を含み、前記第４の辺は、前記第１のサーバ頂点に関連する第１のコンピューティング・サーバが、前記第１のストレージ・デバイス・ボリュームに物理的に結合されていることを示し、
第５のタイプＥＤＧＥ＿４５は、ＬＥＶＥＬ＿４の前記第１のサーバ頂点からＬＥＶＥＬ＿５の前記第１のサーバ頂点へ向かう第５の辺を含み、
第６のタイプＥＤＧＥ＿５６は、ＬＥＶＥＬ＿５の前記第１のサーバ頂点からＬＥＶＥＬ＿６の第１のワーカ頂点へ向かう第６の辺を含み、前記第６の辺は、前記第１のサーバ頂点に関連する前記第１のコンピューティング・サーバが、前記第１のワーカ頂点に関連する第１のワーカ・プログラムをホストすることを示し、
第７のタイプＥＤＧＥ＿６７は、ＬＥＶＥＬ＿６の前記第１のワーカ頂点からＬＥＶＥＬ＿７の前記シンク頂点へ向かう第７の辺を含み、前記第７の辺は、前記第１のワーカ・プログラムが、前記ジョブ・スケジューラによってスケジュールされた動作を完了することを示す、
前記ステップと、
前記作成された辺の重みを割り当てるステップであって、
前記第１のタイプＥＤＧＥ＿０１の前記第１の辺は、前記第１のタスクを実行するための時間単位と等しい第１の重みを有し、
前記第２のタイプＥＤＧＥ＿１２の前記第２の辺は、前記第１のタスクのボリューム使用と等しい第２の重みを有し、
前記第３のタイプＥＤＧＥ＿２３の前記第３の辺は、前記第１のストレージ・デバイス・ボリュームが同時にサポートできるタスクの数を示し前記第１のストレージ・デバイス・ボリュームのボリューム・スループットと等しい第３の重みを有し、
前記第４のタイプＥＤＧＥ＿３４の前記第４の辺は、前記第１のストレージ・デバイス・ボリュームと、前記第１のコンピューティング・サーバとの間の通信チャネルの容量と等しい第４の重みを有し、
前記第５のタイプＥＤＧＥ＿４５の前記第５の辺は、前記第１のコンピューティング・サーバの処理スループットと等しい第５の重みを有し、
前記第６のタイプＥＤＧＥ＿５６の前記第６の辺および前記第７のタイプＥＤＧＥ＿６７の前記第７の辺はそれぞれ、前記アーカイブ管理システム内の極めて大きな数と等しい無限の重みを有する、
前記ステップと、
作成された辺に従って、前記ソース頂点から前記シンク頂点への少なくとも１つのパスを作成するステップであって、前記パス内の少なくとも１つのストレージ・デバイス・ボリュームおよび少なくとも１つのコンピューティング・サーバを用いて、前記パス内の少なくとも１つのワーカ・プログラムによって実行される、前記パス内のタスクに関する個別のジョブ・スケジュールを、前記作成された少なくとも１つのパスが表すよう、前記作成するステップであって、前記最適パスは、前記パス内の辺の重みの最小和を有するパスである、前記ステップと、
を含む、請求項１６または１７に記載のプロセス。
【請求項１９】
前記最適初期スケジュールの前記計算は、
前記第３のタイプＥＤＧＥ＿２３、前記第４のタイプＥＤＧＥ＿３４、および前記第５のタイプＥＤＧＥ＿４５のすべての辺を含むリソース辺の個別の重みに時間の係数を乗算し、続いて、前記乗算された個別の重みを、それぞれ最も近い整数値に切り捨てる結果として、前記リソース辺の、時間を考慮した個別の重みを算出するステップと、
前記リソース辺の、前記時間を考慮した個別の重みを備える前記フロー・ネットワークに対して一連の最大フロー計算を実行することによって、少なくとも１つの最大フローを得るステップと、
前記得られた少なくとも１つの最大フローから、少なくとも１つの候補最大フローを選択するステップであって、前記少なくとも１つの候補最大フローは、前記フロー・ネットワークの前記少なくとも１つの最大フロー内のタスクの総数と等しい、前記ステップと、
前記選択された少なくとも１つの候補最大フローを用いて、少なくとも１つの候補スケジュールを生成するステップと、
前記少なくとも１つの候補スケジュールの中で、前記候補スケジュール内のすべての重みの最小和を備える候補スケジュールとして、前記最適初期スケジュールを選択するステップと、
を含む、請求項１８に記載のプロセス。
【請求項２０】
前記調節済みスケジュールの作成は、
前記転送されたスケジュールの前記動作の前記受領された監視結果を分析するステップであって、前記受領された監視結果は、前記転送されたスケジュール内のリソースの個別の量、ファイルの個別のサイズ、およびタスクの個別のスループットを含む、前記ステップと、
前記分析の結果を、所定のヒューリスティック・メトリックに適用するステップであって、前記所定のヒューリスティック・メトリックは、各タスクの容量、各タスクの出次数、総ボリューム負荷、および最小ボリューム負荷から成る群、並びにその組み合わせから選択される、前記ステップと、
前記転送されたスケジュール内のタスクのスケジューリング順序を、前記適用の結果に基づき動的に調節することによって、前記転送されたスケジュールを最適化するステップと、
を含む、請求項１６、１７、１８、または１９に記載のプロセス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・アーカイブ管理スケジューリングを継続的に最適化するシステムおよび関連する方法を提供する。
【背景技術】
【０００２】
従来のタスク最適化方法は、ソフトウェア／データ・コンテンツまたはハードウェア・リソースのいずれかに基づく管理情報を用いる。サービスのパフォーマンス要件、膨大なデータ量、およびメンテナンスに利用可能な時間の制限が理由で、データ・センタなどのエンタープライズ・コンピューティング環境には、管理タスクの継続的かつ動的な最適化が必要である。
【０００３】
企業組織（エンタープライズ）におけるデータ・フットプリントは増大している。多くの企業組織では、アーカイビングとデータ・リカバリとが別々のタスクとして考えられている。前者は、後から参照するため、ビジネス上の洞察を得るため、または法規制遵守に関する監査に役立つ可能性があるデータを保持することを目的とし、コンテンツ中心である。例えば、大手保険会社は、アーカイブ・データをビジネス上の洞察を得るために使用することが増えており、より小さな会社に対する競争に有利なビジネス上の強みとして使用している。他方、データ・リカバリは、ウイルスおよびワーム攻撃、人による誤設定、ハードウェア障害、洪水、台風などの自然災害のような障害が発生した場合に、最小限のシステム・ダウンタイムでデータの可用性を確保することを目指している。安価なテープベースのバックアップから、リモート・サイトへのデータの準リアルタイム・レプリケーションまで、様々なデータ・リカバリをサポートする技術がある。企業組織は、その予算並びにリカバリ・ポイント目標（ＲＰＯ）、リカバリ時間目標（ＲＴＯ）などに最も適合するデータ・リカバリ構成オプションを選択している。
【０００４】
典型的な企業組織においては、ＩＴシステムは、日中は作動状態であり、夜間は軽負荷である。この軽負荷の期間中にスケジュールされるアクティビティが以下のようにいくつかある。
１）キーワード探索などでコンテンツを構文解析することに基づく、新たに生成されたデータのインデックスの更新。
２）非アクティブ・データを低コスト・ストレージ層に移動する階層型ストレージ管理（ＨＳＭ）。
３）企業組織によって使用されるデータ・リカバリ技術に基づき異なるバックアップ動作。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フットプリント・サイズが増大し、アーカイビング、バックアップ、およびその他のアクティビティの日々の時間ウィンドウが縮小しており、こうしたタスクを適時な形で遂行することはますます難しくなっている。さらに顧客は、より大きな時間ウィンドウを必要とし得る、データ・マイニングのためのビジネス・インテリジェンスなどのタスクの実行を望んでいる。本発明は、こうした問題に対処することを志向している。
【課題を解決するための手段】
【０００６】
本発明の様々な側面が、以下参照されるべき特許請求の範囲において定義される。
【０００７】
本発明の一実施形態によれば、データ・アーカイブ管理スケジューリングを継続的に最適化する方法は、ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、受領された入力からフロー・ネットワークをモデル化するステップであって、アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量をフロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクからアーカイブ管理システムのワーカ・プログラムへの、フロー・ネットワークの最適パスが、ワーカ・プログラムがタスクを実行する最適初期スケジュールを表すよう、モデル化するステップと、コンピュータ・システムのプロセッサが、フロー・ネットワークにおける最適パスから最適初期スケジュールを計算するステップと、計算された最適初期スケジュールを、最適初期スケジュールを実行するためにアーカイブ管理システムに転送するステップと、転送された最適初期スケジュールの動作の監視結果を、アーカイブ管理システムから受領するステップと、受領された監視結果に基づいて最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、調節済みスケジュールを実行するために、調節済みスケジュールをアーカイブ管理システムに転送するステップであって、その結果、アーカイブ管理システムは、転送された調節済みスケジュールの動作の新たな監視結果を生成する、ステップとを含む。
【０００８】
本発明の好適な実施形態は、統合されたコンテンツ・リソース管理に基づくタスクの継続的な最適化を可能にする。本発明の好適な実施形態は、データ・センタのＩＴリソースの使用を最適化し、付加価値のあるアプリケーションがデータに対して動作できるようにするために、リソース管理分析と、コンテンツ分析との組み合わせを可能にする。
【０００９】
本発明の一実施形態によれば、コンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを具現化するコンピュータ可読メモリ・ユニットを含む。コンピュータ可読プログラム・コードは、コンピュータ・システムのプロセッサによって実行されるとデータ・アーカイブ管理スケジューリングを継続的に最適化する方法を実装する、命令を含む。
【００１０】
本発明の一実施形態によれば、コンピュータ・システムは、プロセッサと、プロセッサに結合されたコンピュータ可読メモリ・ユニットとを含み、コンピュータ可読メモリ・ユニットは、プロセッサによって実行されるとデータ・アーカイブ管理スケジューリングを継続的に最適化する方法を実装する、命令を含む。
【００１１】
本発明の一実施形態によれば、コンピュータ・インフラストラクチャをサポートするプロセスであって、前記プロセスは、コンピューティング・システムにおけるコンピュータ可読コードの作成、統合、ホスト、維持、および展開のうちの少なくとも１つに関して少なくとも１つのサポート・サービスを提供することを含み、コードは、コンピューティング・システムとともに、データ・アーカイブ管理スケジューリングを継続的に最適化する方法を実行することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態による、データ・アーカイブ管理スケジューリングを継続的に最適化するアーカイブ管理システム１０を示す。
【図２】本発明の実施形態による、図１のアーカイブ管理システムのジョブ・スケジューラによって作成されるコンテンツ・リソース分析モデルのフロー・ネットワーク１１０Ｅの実施形態を示す。
【図３】本発明の実施形態による、図１のアーカイブ管理システムによって実行される、データ・アーカイブ管理スケジューリングを継続的に最適化する方法を示すフローチャートである。
【図４】本発明の実施形態による、アーカイブ管理システムのジョブ・スケジューラによって実行される、最適化されたデータ・アーカイブ管理スケジュールを作成する方法を示すフローチャートである。
【図５】本発明の実施形態による、図４のステップ２１０においてジョブ・スケジューラによって実行される、コンテンツ・リソース分析モデルの実施形態としてのフロー・ネットワークを作成する方法を示すフローチャートである。
【図６】本発明の実施形態による、データ・アーカイブ管理スケジューリングを継続的に最適化するために使用されるコンピュータ・システム９０を示す。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施形態による、データ・アーカイブ管理スケジューリングを継続的に最適化するアーカイブ管理システム１０を示す。
【００１４】
アーカイブ管理システム１０は、データ・アーカイブ５０、アーカイブ管理タスク６０、ジョブ・スケジューラ入力７０、およびジョブ・スケジューラ１００を含む。アーカイブ管理システム１０は、データ・アーカイブ５０を利用して企業組織のユーザにデータ／コンピューティング・サービスを提供する企業組織において用いられる。企業組織の例は、特に、データ・センタなどとされ得る。データ／コンピューティング・サービスの例は、特に、データ・アーカイバルおよびプロビジョニング、データ・バックアップ、ビジネス・インテリジェンス（ＢＩ：ｂｕｓｉｎｅｓｓ  ｉｎｔｅｌｌｉｇｅｎｃｅ）のデータ・マイニングなどとされ得る。本明細書では、「コンテンツ」という用語は、アーカイブ管理システム１０のソフトウェア／データ・コンポーネントを示す。管理情報において、コンテンツ管理は主として、データ・アーカイブ５０内の大量のデータの保持および利用に関する。
【００１５】
本明細書では、「リソース」という用語は、アーカイブ管理システム１０の物理的デバイス／ハードウェアを示す。管理情報において、リソース管理の主な目的は、リソースをフォールト・トラレントに保つことによって、サービスの可用性を最大化することである。従来のディザスタ・リカバリ（ＤＲ：ｄｉｓａｓｔｅｒ  ｒｅｃｏｖｅｒｙ）技術が、リカバリ・ポイント目標（ＲＰＯ）、リカバリ時間目標（ＲＴＯ）などのサービス要件による様々なリソース構成に利用される。リソースの例は、特に、サーバ、ストレージ・デバイス、ネットワーク帯域幅をサポートする通信機器などとされ得る。アーカイブ管理システム１０において用いられるサーバは、高度な仮想化、管理、および信頼性サービスをサポートするエンタープライズ・レベル・サーバである。サーバの一例は、特に、ＶＭｗａｒｅ（Ｒ）ＥＳＸ／ＥＳＸｉサーバ・インフラストラクチャなどとされ得る（ＶＭｗａｒｅは、ＶＭｗａｒｅ，Ｉｎｃ．の米国における登録商標）。アーカイブ管理システム１０において用いられるストレージ・デバイスは、データ・コンテンツ、仮想化カーネル、および関連のあるファイルを記憶する永続ストレージ・デバイスである。
【００１６】
エンタープライズ・データ／コンピューティング・サービスは、ユーザによって要求される実際のデータ／コンピューティング・サービスに加えて実行されなければならない、大量のメンテナンス・アクティビティを必要とする。データ／コンピューティング・サービスは、ユーザと企業組織との間のサービス取り決めに規定された特定のパフォーマンス要件レベルを満たさなければならないため、メンテナンス・アクティビティは通常、ユーザからのサービス需要がより低い期間中に実行される。しかし、企業組織は、サービスをユーザに長時間利用可能にすることも要求されるため、サービスをユーザに提供しないメンテナンス・アクティビティ専用の時間ウィンドウを設定することは、現実的ではない。データ・アーカイブ５０内のますます増大するデータ量に対し必要なメンテナンス・アクティビティを限られた時間内で実行することは、アーカイブ管理システム１０に必須である。
【００１７】
データ・アーカイブ５０は、データ／コンピューティング・サービス用のソフトウェア・アプリケーションおよびデータ・コンテンツを記憶する。
【００１８】
アーカイブ管理タスク６０は、ジョブ・スケジューラ１００によってスケジュールされる通りにアーカイブ管理／メンテナンス・アクティビティを実行するプロセスである。アーカイブ管理／メンテナンス・アクティビティの例は、特に、プロビジョニング、ディザスタ・リカバリ（ＤＲ）メンテナンス、サービス要件順守、様々なＤＲ技術のバックアップ動作、コンテンツ構文解析およびキーワード・ルックアップを必要とする新たに生成されたデータ・コンテンツのインデックスの更新、非アクティブ・データを低コスト・ストレージ層に移動する階層型ストレージ管理（ＨＳＭ）などとされ得る。
【００１９】
ジョブ・スケジューラ入力７０は、タスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む。
【００２０】
タスク情報は、タスクを実行するために必要なオブジェクトへの個別のアクセス・パス、オブジェクトに対して実行される個別の動作、およびオブジェクト・サイズなどのタスク・スケジューリングに有用なシステム属性を含む。タスクは、特に、コンテンツ・アーカイビング、インデックス付け、ビジネス・インテリジェンス（ＢＩ）を目的としたデータ・マイニングの機能を、プライマリ・データ、並びにディザスタ・リカバリのために作成されるレプリカに関して、利用可能なストレージ・サーバ・ネットワーク・リソースを用いて実行する。すべてのタスクは、比較的均一な量のリソースを必要とする。
【００２１】
レプリカ配置データは、ディザスタ・リカバリの目的で作成された、データ・アーカイブ５０内のプライマリ・データのレプリカのアドレスを含む。
【００２２】
インフラストラクチャ・トポロジ・データは、サーバがどのようにデータ・アーカイブ５０内のストレージ・デバイス・ボリュームに接続されているかを表し、これは、データ・アーカイブ５０の構成要素を介する、サーバとストレージ・デバイス・ボリュームとの間のパスである。インフラストラクチャ・トポロジ・データは、管理データを収集および維持する、データ・アーカイブ５０の一部によって収集される。インフラストラクチャ・トポロジ・データは、５つ組＜ホスト名，イニシエータ・ポートＷＷＮ，ファブリックＷＷＮ，ターゲット・ポートＷＷＮ，ボリューム＞で表され、ホスト名は、サーバに関する第１の識別子であり、イニシエータ・ポートＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ：ワールド・ワイド・ネーム）は、初期ポートに関する第２の識別子であり、ファブリックＷＷＮは、ネットワーク・ファブリックに関する第３の識別子であり、ターゲット・ポートＷＷＮは、ターゲット・ポートに関する第４の識別子であり、ボリュームは、ストレージ・デバイス・ボリュームに関する第５の識別子である。ワールド・ワイド・ネーム（ＷＷＮ）またはワールド・ワイド識別子（ＷＷＩＤ）は、ファイバ・チャネルまたはＳＣＳＩストレージ・ネットワークにおける一意の識別子である。各ＷＷＮは、電気電子技術者協会（ＩＥＥＥ）の組織的に一意な識別子（ＯＵＩ）から得られる先頭の三（３）バイトと、ベンダ提供情報から得られる次の五（５）バイトとを組み合わせた八（８）バイト数である。ＷＷＮは、イーサネット（Ｒ）媒体アクセス制御（ＭＡＣ）アドレスと似て、デバイスに組み込まれている。ネットワーク・ファブリックは、電気通信の分野で使用されるように、ネットワーク・ノードが１つ以上のネットワーク・スイッチを介して相互に接続されるネットワーク・トポロジを示す。
【００２３】
リソース・パフォーマンス・データは、クロック速度、タスク・パー・セカンド、バイト・パー・セカンドなどのリソースのパフォーマンス・メトリックを含む。個別のパフォーマンス・データの絶対的精度よりも、ストレージ・デバイスとサーバとの間の相対的パフォーマンスに関するリソース・パフォーマンス・データの精度の方が、最適スケジューリング・ソリューション１５０の精度に影響する。
【００２４】
ジョブ・スケジューラ１００は、ジョブ・スケジューラ入力７０からコンテンツ・リソース分析モデル１１０を作成し、コンテンツ・リソース分析モデル１１０を用いて最適スケジューリング・ソリューション１５０を動的かつ継続的に生成する。ジョブ・スケジューラ１００によって実行されるステップの詳細に関しては、下記図４の記載を参照されたい。本明細書では「スケジューリング・ソリューション」、「スケジュール」、および「ジョブ・スケジュール」という用語は、置き換え可能なように使用される。
【００２５】
コンテンツ・リソース分析モデル１１０は、ジョブ・スケジューラ１００内にある、アーカイブ管理システム１０の分析モデルである。コンテンツ・リソース分析モデル１１０は、ジョブ・スケジューラ１００が、アーカイブ管理タスク６０の動作を継続的に最適化して、初期スケジュールおよび少なくとも１つの動的に調節されたスケジュールを含む最適スケジューリング・ソリューション１５０を生成できるようにする。
【００２６】
従来のシステム分析モデリングでは、リソースおよびコンテンツは別々にモデル化および管理される。従来のリソース管理情報はシステムのデバイスに焦点を合わせ、デバイスの過去のパフォーマンス統計を利用して、総ワークロードの関数としてデバイスの飽和を予測する。従来のコンテンツ管理情報は、ソフトウェア・アプリケーションおよび関連データに焦点を合わせ、アーカイブ管理タスク６０の意思決定プロセスを単純化する。
【００２７】
従来のシステム分析モデリングとは対照的に、本発明の方法は、コンテンツ・リソース分析モデル１１０においてリソースおよびコンテンツ両方を統合して、ディザスタ・リカバリおよびデータ保護を可能にし、リソース利用と、コンテンツ中心のアーカイブ管理タスク６０との両方を最適化する。本発明の方法は、従来のデータ集中型のジョブ・スケジューリングのように新たなレプリカを作成せずに、存在するレプリカの中の既存のデータ冗長性およびストレージ・パスを利用する。本発明の一実施形態では、本発明の方法は、全体的なパフォーマンス向上のために、アーカイブ管理システム１０全体にわたりアーカイブ管理タスク６０を動的に最適化するようシステム・パラメータを操作する。本発明の別の実施形態では、本発明の方法は、パフォーマンスがアーカイブ管理システム１０の全般的なパフォーマンスに重要である選択されたメンテナンス・タスクに、アプリケーション特有のパラメータを利用する。
【００２８】
本発明の方法は、アーカイビング、コンプライアンス、ビジネス・インテリジェンス・クエリのデータ演算および計算を並列化するため、アプリケーション・コンテンツ情報を発見してブロック・レベル・スナップショットおよびミラーリング詳細と相互に関連付けるため、プライマリ・データを他の従来のブックキーピング動作に利用可能にすることによってプライマリ・データに対するアーカイビング・ワークロードを制限するため、並びにローカル・サイトおよびリモート・サイトの両方に存在するレプリカを活用するために利用される。
【００２９】
図２は、本発明の実施形態による、上記図１のアーカイブ管理システムのジョブ・スケジューラによって作成されるコンテンツ・リソース分析モデルのフロー・ネットワーク１１０Ｅの実施形態を示す。
【００３０】
フロー・ネットワーク１１０Ｅは、個別の頂点グループを示す八（８）つのレベルを含む。フロー・ネットワーク１１０Ｅはさらに、ＬＥＶＥＬ＿ｋからＬＥＶＥＬ＿ｋ＋１への有向辺を含み、ｋ＝０．．６である。
【００３１】
ソース・レベルＬＥＶＥＬ＿０  Ｌ０は、フロー・ネットワーク１１０Ｅのソース頂点を含む。第１のレベルＬＥＶＥＬ＿１  Ｌ１は、個別のタスクまたはタスク・セットを表す少なくとも１つのタスク頂点（ｔａｓｋ  ｖｅｒｔｅｘ）を含む。Ｌ１の各タスク頂点は、ソース頂点から入ってくる個別の辺（ｅｄｇｅ）を有する。
【００３２】
ＬＥＶＥＬ＿０のソース頂点からＬＥＶＥＬ＿１のタスク頂点Ｖ１１への第１の辺Ｅ０１は、タスク頂点Ｖ１１に関連するタスクを実行するのに必要な時間の単位を示す時間容量（ｔ）を有する。本発明の一実施形態では、時間容量（ｔ）は、ＬＥＶＥＬ＿１のすべてのタスクに関して均一に１に割り当てられる。本発明の別の実施形態では、時間容量（ｔ）は、個別のタスクを処理するのに必要な様々な時間を反映するために、ＬＥＶＥＬ＿１の各タスクに関連する個別の処理時間に割り当てられる。
【００３３】
第２のレベルＬＥＶＥＬ＿２  Ｌ２は、ストレージ・デバイスの個別のボリュームを表す少なくとも１つのボリューム頂点（ｖｏｌｕｍｅ  ｖｅｒｔｅｘ）を含む。第３のレベルＬＥＶＥＬ＿３  Ｌ３は、前記少なくとも１つのボリューム頂点を含む。ボリュームは、ボリューム頂点の対であるＬＥＶＥＬ＿２のＶ２１およびＬＥＶＥＬ＿３のＶ３１によって表される。
【００３４】
ＬＥＶＥＬ＿１のタスク頂点Ｖ１１から第１のボリューム頂点Ｖ２１への第２の辺Ｅ１２は、そのボリュームが、タスク頂点Ｖ１１によって表されるタスクを実行するのに必要なファイルの最新のコピーを記憶することを示す。第２の辺Ｅ１２は、タスク頂点Ｖ１１によって表されるタスクのボリューム使用の単位を示す、一（１）の容量を有する。
【００３５】
第１のボリューム頂点Ｖ２１から第２のボリューム頂点Ｖ３１への第３の辺Ｅ２３は、頂点Ｖ２１およびＶ３１の対によって表されるボリュームがサポートできるタスクの数を示す、ボリューム・スループット容量を有する。
【００３６】
第４のレベルＬＥＶＥＬ＿４  Ｌ４は、個別のサーバを表す少なくとも１つのサーバ頂点（ｓｅｒｖｅｒ  ｖｅｒｔｅｘ）を含む。第５のレベルＬＥＶＥＬ＿５  Ｌ５は、前記少なくとも１つのサーバ頂点を含む。サーバは、サーバ頂点の対であるＬＥＶＥＬ＿４のＶ４１およびＬＥＶＥＬ＿５のＶ５１によって表される。
【００３７】
第２のボリューム頂点Ｖ３１から第１のサーバ頂点Ｖ４１への第４の辺Ｅ３４は、Ｖ２１およびＶ３１のボリュームが、Ｖ４１およびＶ５１のサーバに、通信チャネルを介して物理的に接続されていることを示す。第４の辺Ｅ３４は、Ｖ２１およびＶ３１のボリュームと、Ｖ４１およびＶ５１のサーバとの間の通信チャネルのスループットを示す通信容量を有する。通信チャネルは、ファブリック、ネットワーク、およびその組み合わせとされ得る。第４の辺Ｅ３４はさらに、迅速なストレージ・エリア・ネットワーク（ＳＡＮ：Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）パス構成を可能にするために、Ｖ２１およびＶ３１のボリュームと、Ｖ４１およびＶ５１のサーバとの間の通信チャネルのパス情報を有する。
【００３８】
第１のサーバ頂点Ｖ４１から第２のサーバ頂点Ｖ５１への第５の辺Ｅ４５は、Ｖ４１およびＶ５１のサーバの計算スループットを示すサーバ・スループット容量を有し、これには利用可能な処理サイクルおよびメモリが含まれる。
【００３９】
第６のレベルＬＥＶＥＬ＿６  Ｌ６は、ワーカ若しくはソフトウェア・アプリケーションまたはその両方を表すワーカ頂点（ｗｏｒｋｅｒ  ｖｅｒｔｅｘ）Ｖ６１を含む少なくとも１つのワーカ頂点を含む。
【００４０】
第２のサーバ頂点Ｖ５１からワーカ頂点Ｖ６１への第６の辺Ｅ５６は、Ｖ４１およびＶ５１のサーバが、ワーカ頂点６１によって表されるワーカをホストすることを示す。第６の辺Ｅ５６は、Ｖ４１およびＶ５１のサーバ上で実行されるワーカの数を示すホスト容量を有する。
【００４１】
シンク・レベルＬＥＶＥＬ＿７  Ｌ７は、フロー・ネットワーク１１０Ｅのシンク頂点（Ｓｉｎｋ  Ｖｅｒｔｅｘ）を含む。第６のレベルＬＥＶＥＬ＿６の各ワーカ頂点は、第７の辺Ｅ６７と類似した、シンク頂点へと出ていく辺を有する。ワーカ頂点Ｖ６１からシンク頂点への第７の辺Ｅ６７は、無限容量を有する。
【００４２】
定義に従ってフロー・ネットワークを作成するステップに関しては、下記図５の説明を参照されたい。
【００４３】
図３は、本発明の実施形態による、上記図１のアーカイブ管理システムによって実行されるデータ・アーカイブ管理スケジューリングを継続的に最適化する方法を示すフローチャートである。
【００４４】
ステップ１１において、アーカイブ管理システムは、スケジューリングに必要な情報を収集して、収集された情報をジョブ・スケジューラ入力としてジョブ・スケジューラに提供する。本明細書では、「ジョブ・スケジューラ入力」および「入力」という用語は、置き換え可能なように使用される。入力は、集合的にコンテンツと呼ばれるアプリケーションおよびデータと、アーカイブ管理システムの計算および通信リソースとを記述する。入力は、タスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む。インフラストラクチャ・トポロジ・データの詳細に関しては、上記図１の説明を参照されたい。
【００４５】
図３のステップ１１に応答してジョブ・スケジューラによって実行される動作に関しては、下記図４のステップ２０５〜２２０の説明を参照されたい。ステップ１１を実行した後、アーカイブ管理システムはステップ１２に移る。
【００４６】
本発明の一実施形態では、アーカイブ管理システムは、ＩＢＭ（Ｒ）文書解析・認識（ＤＡＲＥ）システムである。レプリカ配置データは、ディザスタ・リカバリ（ＤＲ）オーケストレータによって収集され、インフラストラクチャ・トポロジ・データは、ＴｏｔａｌＳｔｏｒａｇｅ（Ｒ）プロダクティビティ・センタ（ＴＰＣ）データベースから読み出される。ＤＲオーケストレータおよびＴＰＣデータベースは、ＩＢＭ（Ｒ）文書解析・認識（ＤＡＲＥ）システムのデータ・アーカイブのコンポーネントである。（ＩＢＭおよびＴｏｔａｌＳｔｏｒａｇｅは、米国におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である）。
【００４７】
ステップ１２において、アーカイブ管理システムは、下記図４のステップ２２０に応答して、ジョブ・スケジューラから初期スケジュールを受領する。続いて、アーカイブ管理システムはステップ１３に移る。
【００４８】
ステップ１３〜ステップ１７を含むアーカイブ管理システムのループが、アーカイブ管理システムがジョブ・スケジューラから受領した各スケジュールに関して実行される。
【００４９】
ステップ１３において、アーカイブ管理システムは、少なくとも１つの実際のストレージ・エリア・ネットワーク（ＳＡＮ）パスを作成して、ユーザ・インターフェイスとリソースとの間のデータおよび制御パスを確立する。アーカイブ管理システムは、下記図４のステップ２１０においてジョブ・スケジューラによって作成されるフロー・ネットワークのパスから、前記少なくとも１つのＳＡＮパスを作成し、これはリソースの物理的接続性を示す。続いて、アーカイブ管理システムはステップ１４に移る。
【００５０】
本発明の一実施形態では、ＳＡＮパスは、ＩＢＭ（Ｒ）文書解析・認識（ＤＡＲＥ）システムのサーバ・ストレージ・ネットワーク・リソースから、ＩＢＭ  ＴｏｔａｌＳｔｏｒａｇｅ（Ｒ）プロダクティビティ・センタ（ＴＰＣ）ウェブ・アプリケーション・プログラミング・インターフェイス（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）へ作成される。同じ実施形態において、上記図２のフロー・ネットワーク内のＬＥＶＥＬ＿２〜ＬＥＶＥＬ＿６のパスが、ゾーニングおよびマスキングを用いて、ボリューム・サーバ・ワーカＳＡＮパスへと変換される。ＴＰＣ  Ｗｅｂ  ＡＰＩを介して提供されるユーザ入力は、ゾーニング・パラメータ＜イニシエータ・ポートＷＷＮ，ファブリックＷＷＮ，ターゲット・ポートＷＷＮ＞およびマスキング・パラメータ＜イニシエータ・ポートＷＷＮ，ターゲット・ポートＷＷＮ，ボリューム＞を含む。
【００５１】
ステップ１４において、アーカイブ管理システムは、仮想マシンを展開し、受領されたスケジュールを実行する。受領されたスケジュールは、ループの第１の反復では、ステップ１２において受領された初期スケジュールであり、ループの後の反復では、ステップ１７において受領された調節済みスケジュールである。受領されたスケジュール内の各アーカイブ管理タスクは、動作のために個別の仮想マシンに割り当てられる。本発明の一実施形態において、ＩＢＭ（Ｒ）文書解析・認識（ＤＡＲＥ）システムは、受領されたスケジュールを、インデックス付けする仮想マシンをＶＭｗａｒｅ（Ｒ）制御に展開することによって仮想化する。アーカイブ管理システムは、ステップ１５に移る。
【００５２】
ステップ１５において、アーカイブ管理システムは、受領されたスケジュールを開始して、アーカイブ管理タスクを実行する。続いて、アーカイブ管理システムはステップ１６に移る。
【００５３】
ステップ１６において、アーカイブ管理システムは、受領されたスケジュールに従ってアーカイブ管理タスクを実行する間、アーカイブ管理タスクの動作を監視する。アーカイブ管理システムは、監視結果をジョブ・スケジューラに提供する。図３のステップ１６に応答してジョブ・スケジューラによって実行される動作に関しては、下記図４のステップ２２５〜２３５の説明を参照されたい。ステップ１６を実行した後、アーカイブ管理システムはステップ１７に移る。
【００５４】
ステップ１７において、アーカイブ管理システムは、下記図４のステップ２３５に応答して、動的に調節されたスケジュールをジョブ・スケジューラから受領する。続いて、アーカイブ管理システムは、ステップ１３に戻り、調節済みスケジュールを処理する。
【００５５】
図４は、本発明の実施形態による、アーカイブ管理システムのジョブ・スケジューラによって実行される、最適化されたデータ・アーカイブ管理スケジュールを作成する方法を示すフローチャートである。
【００５６】
ステップ２０５において、ジョブ・スケジューラは、上記図３のステップ１１に応答して、アーカイブ管理システムの情報収集コンポーネントから、タスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含むスケジューリング情報を入力として受領する。インフラストラクチャ・トポロジ・データは、サーバのホスト名と、ストレージ・デバイスのボリュームとの間の個別の可能なパスを表す、少なくとも１つの５つ組＜ホスト名，イニシエータ・ポートＷＷＮ，ファブリックＷＷＮ，ターゲット・ポートＷＷＮ，ボリューム＞である。リソース・パフォーマンス・データは、サーバ・クロック速度、ストレージ・デバイス・クロック速度、およびサーバとストレージ・デバイスとの間のデータ転送レートを含む。続いて、ジョブ・スケジューラはステップ２１０に移る。
【００５７】
本発明の一実施形態では、ジョブ・スケジューラは、アーカイブ管理システムに対しスケジュールされるべきタスクのセットを含むジョブの処理の準備が整うと、ウェブ・サービス・コールを呼び出して、そのタスクのセットに関するタスク情報をリクエストする。タスク情報の構成要素に関しては、上記図１の説明を参照されたい。
【００５８】
ステップ２１０において、ジョブ・スケジューラは、入力を用いてフロー・ネットワークを作成する。フロー・ネットワークは、アーカイブ管理システムのコンテンツおよびリソースの両方を表す、上記図１のコンテンツ・リソース分析モデルの実施形態である。フロー・ネットワークは、均一であり無関連である並列マシンをモデル化する。フロー・ネットワークにおける最適なマッピングは、アーカイブ管理タスクを実行する時間に関して最適なスケジューリング・ソリューションに対応する。フロー・ネットワークを作成するステップに関しては、下記図５のステップ３０５〜３２０を参照されたい。続いて、ジョブ・スケジューラはステップ２１５に移る。
【００５９】
本発明の一実施形態では、ジョブ・スケジューラは、３つの基本的な前提を用いる。第１の前提は、各タスクは、個別のタスクのワークロードの特徴にかかわらず、或る単位量の処理時間がかかるということであり、これは、計算バウンドまたはデータ演算バウンドのいずれかとされ得る。第１の前提は、すべてのタスクが均一なスループットを有するということを意味する。第１の前提は、以下ステップ２１５の最大フロー計算が任意にタスク・グループを分けることを防ぐ。第２の前提は、すべてのパフォーマンス入力が、単位時間当たりのタスクの静的な達成可能スループットとして合計されることが可能であるということである。第３の前提は、各タスクが、タスクがレプリケートされたボリュームにて処理可能か否かを示す２進値を有するということである。
【００６０】
ステップ２１５では、ジョブ・スケジューラが、最大フロー計算を用いて、フロー・ネットワークにおける最適な静的マッピングである初期スケジュールを計算する。最適な静的マッピングは、フロー・ネットワーク内の最小容量値を備えるＬＥＶＥＬ＿１からＬＥＶＥＬ＿６のパスである。ステップ２１５の後、ジョブ・スケジューラはステップ２２０に移る。
【００６１】
ステップ２１５は、複数のサブ・ステップを含む。第１に、ジョブ・スケジューラは、各辺、Ｅｄｇｅ（ＬＥＶＥＬ＿２，ＬＥＶＥＬ＿３）、Ｅｄｇｅ（ＬＥＶＥＬ＿３，ＬＥＶＥＬ＿４）、またはＥｄｇｅ（ＬＥＶＥＬ＿４，ＬＥＶＥＬ＿５）の、リソースのスループットを表す個別の重みに、Ｔとして示される時間の係数を乗算する。第２に、ジョブ・スケジューラは、乗算の各結果を最も近い整数値に切り捨て、前記各辺の容量を調節する。第３に、ジョブ・スケジューラは、前記各辺の調節された容量を備えるフロー・ネットワークに対して一連の最大フロー計算を実行する。最大フロー計算の結果の最大フローが、Ｎとして示されるタスクの総数と等しければ、Ｎのタスクすべてが、時間Ｔ内で完了可能である。第４に、ジョブ・スケジューラは、フロー・ネットワークのパスから候補スケジュールを生成する。第５に、ジョブ・スケジューラは、Ｎのタスクすべてを同じく完了できる候補スケジュールを探し、最適スケジュールである、最小の時間値Ｔ＊を備えるスケジュールを発見する。
【００６２】
本発明の一実施形態では、ジョブ・スケジューラは、エドモンズ・カープのアルゴリズムを用いて最大フローを計算する。同じ実施形態において、ジョブ・スケジューラは、二分検索を用いて最適スケジュールの候補スケジュールを探す。
【００６３】
本発明の一実施形態において、最適スケジュールを計算する時間の上限値は、タスクの総数にプライマリ・ボリューム容量を乗算したもの、すなわち（Ｎ×容量プライマリ）であり、それに基づき、すべてのタスクが、個別のタスクのプライマリ・ボリューム上で実行可能である。本発明の別の実施形態では、最適スケジュールを計算する時間の上限は、タスクの総数にボリューム容量を乗算したのと等しい値の中の最大値、すなわち、ＭＡＸｋ＝１．．Ｎ（Ｎ×容量ｖｏｌｕｍｅ＿ｋ）であり、これは、タスク用に選択され得る任意のボリュームを一般化する。
【００６４】
ジョブ・スケジューラは、様々な技術を用いてステップ２１５を最適化し得る。第１の最適化技術は、タスク集約であり、この場合、ＬＥＶＥＬ＿１の各頂点が、個別のタスクではなくタスク・セットを表す。ｅｄｇｅ（ＬＥＶＥＬ＿１，ＬＥＶＥＬ＿２）およびｅｄｇｅ（ＬＥＶＥＬ＿２，ＬＥＶＥＬ＿３）すべてを含むＬＥＶＥＬ＿１〜ＬＥＶＥＬ＿３の個別の辺の容量は、タスク・セット内のタスクの数と等しい値にセットされる。ＬＥＶＥＬ＿２およびＬＥＶＥＬ＿３の各ボリュームは、前記各ボリュームが、個別のタイム・スタンプの時間より前に変更されたすべてのファイルの最新のコピーを保持するよう、個別のタイム・スタンプを有する。タスク集約およびボリューム・タイムスタンプに関し、タスク・セットの数はボリュームの数と等しい。タスク・セットおよびボリュームの両方が、各タスク・セットを完了するための処理時間によって順序付けられる場合、第ｉのタスク・セットからは（ｊ≦ｉ）の第ｊのボリュームのみに対するマッピングがあり、ｉおよびｊは正の整数である。タスク集約は、頂点および辺の数を減らすため、ジョブ・スケジューラがステップ２１５において最適スケジュールを計算するのに費やす時間がより短くなる。
【００６５】
ステップ２１５の第２の最適化は、最小数のワーカ・ボリューム・マッピングを備えるスケジュールが最適スケジュールとして選択される、最小コスト法である。最小時間値Ｔ＊を得た後に、ジョブ・スケジューラが、最小コスト最大フロー・アルゴリズムを実行し、ＬＥＶＥＬ＿２のボリューム頂点に入ってくる辺それぞれが、コスト値を有する。結果として、ジョブ・スケジューラは、最小時間値Ｔ＊および最小数のワーカ・ボリューム・マッピングの両方を満たす最適スケジュールを発見する。
【００６６】
ステップ２２０において、ジョブ・スケジューラは、展開のためにアーカイブ管理システムに初期スケジュールを提供する。図４のステップ２２０に応答して実行されるアーカイブ管理システムの動作に関しては、上記図３のステップ１２〜１６の説明を参照されたい。続いて、ジョブ・スケジューラはステップ２２５に移る。
【００６７】
ステップ２２５〜ステップ２３５を含むジョブ・スケジューラのループは、継続的な最適化のためにジョブ・スケジューラが作成する各スケジュールに関して実行される。
【００６８】
ステップ２２５において、ジョブ・スケジューラは、現在のスケジュールによって実行された動作の監視結果を受領する。現在のスケジュールとは、ループの第１の反復では、ステップ２１５において計算された初期スケジュールであり、ループの後の反復では、ステップ２３５において計算された調節済みスケジュールである。続いて、ジョブ・スケジューラはステップ２３０に移る。
【００６９】
ステップ２３０において、ジョブ・スケジューラは、ステップ２２５において受領された監視結果に従って現在のスケジュールを調節し、パフォーマンスを最適化する。続いて、ジョブ・スケジューラはステップ２３５に移る。
【００７０】
アーカイブ管理システムの挙動についての３つの基本的な前提に基づき静的かつ最適であるステップ２１５の初期スケジュールとは対照的に、ジョブ・スケジューラはステップ２３０において、ヒューリスティクスを利用し、現在のスケジュールの実際のパフォーマンス監視結果に従って現在のスケジュールを動的に最適化する。ジョブ・スケジューラは、タスク内のファイルのサイズなどのパフォーマンス監視データから得られたメトリックに基づき、タスクを実行するのに必要なリソースの量、タスクのスループットなどに関して、ＬＥＶＥＬ＿１の各タスクの特性を反映するために、個別の容量を前記各タスクに割り当てる。アーカイブ管理システムの過去の挙動を表す監視結果は、アーカイブ管理システムの将来の挙動を予測するには不十分であるため、ジョブ・スケジューラは、最適化にヒューリスティクスを用いる。
【００７１】
初期スケジュールを調節するループの第１の反復では、ジョブ・スケジューラは、静的である初期スケジュールを、アーカイブ管理システムの現在の状態に従って動作の動的なセットへと変換する。ジョブ・スケジューラは、タスクのグループを中央リポジトリに入れ、ワーカが利用可能なリソースを有するときに、オンデマンドで各タスクをスケジュールする。ワーカに割り当てられるグループ内のタスクは、所定のヒューリスティック・メトリック（ｈｅｕｒｉｓｔｉｃ  ｍｅｔｒｉｃ）に従って順序付けられ、ワーカがタスクを実行するのに必要なリソースを得て新たなタスクを要求すると、最高のヒューリスティック・メトリックを備える第１のタスクがスケジュールされる。ヒューリスティック・メトリックの例は、特に、タスクの容量、タスクの出次数、総ボリューム負荷、最小ボリューム負荷などとされ得る。タスクの容量は、ファイル長を含むメトリックに従って動的または静的に計算される。タスクの出次数は、タスクの実行に用いることが可能なボリュームの数を示す。第１のタスクが第２のタスクよりも大きな出次数を有する場合、ジョブ・スケジューラが、第２のタスクよりも先に第１のタスクを選ぶ可能性がより高くなる。総ボリューム負荷は、タスクを処理し得るすべてのボリュームに対する累積負荷を示す。総ボリューム負荷は、フロー・ネットワークにおいてタスクと接続されているすべてのボリュームの入次数の合計と同じである。第１のタスクが第２のタスクよりも小さな総ボリューム負荷を有する場合、ジョブ・スケジューラが、第２のタスクよりも先に第１のタスクを選ぶ可能性がより高くなる。最小ボリューム負荷は、タスクを処理し得る、負荷が最小のボリュームに対する負荷を示す。最小ボリューム負荷は、フロー・ネットワークにおいてタスクと接続されているすべてのボリュームの最小入次数と同じである。第１のタスクが第２のタスクよりも小さな最小ボリューム負荷を有する場合、ジョブ・スケジューラが、第２のタスクよりも先に第１のタスクを選ぶ可能性がより高くなる。ヒューリスティック・メトリックおよびシステム・パフォーマンスは、システムからのフィードバックに従って動的に更新されることが可能である。
【００７２】
ステップ２３５において、ジョブ・スケジューラは、ステップ２３０からの調節済みスケジュールをアーカイブ管理システムに提供する。次にジョブ・スケジューラは、ステップ２２５に戻り、継続的かつ動的に、調節済みスケジュールのパフォーマンスを最適化する。
【００７３】
図５は、本発明の実施形態による、上記図４のステップ２１０においてジョブ・スケジューラによって実行される、コンテンツ・リソース分析モデルの実施形態としてのフロー・ネットワークを作成する方法を示すフローチャートである。
【００７４】
フロー・ネットワークは、各辺を通過するフローの量を制限する容量を各辺が有する、有向グラフとして定義される。フロー・ネットワークの頂点は、出ていくフローのみを有するソースと、入ってくるフローのみを有するシンクとを含む。ソースとシンクとの間の任意の頂点は、個別の入ってくるフローおよび出ていくフローを有する。フロー・ネットワークは、典型的には、道路交通システム、管内の流体、電気回路内の電流、ノードのネットワーク中のデータ・トラフィックの進行などをモデル化するために使用される。本発明の一実施形態では、エドモンズ・カープの最大フロー計算などの計算アルゴリズムをサポートする従来のグラフ・ライブラリが、フロー・ネットワーク・モデリングに利用される。従来のグラフ・ライブラリの例は、特に、Ｊａｖａ（Ｒ）ユニバーサル・ネットワーク／グラフ（ＪＵＮＧ：Ｊａｖａ  Ｕｎｉｖｅｒｓａｌ  Ｎｅｔｗｏｒｋ／Ｇｒａｐｈ）フレームワーク、ＬＥＭＯＮオープン・ソース・グラフ・ライブラリ、およびＢｏｏｓｔグラフ・ライブラリ（ＢＧＬ：Ｂｏｏｓｔ  Ｇｒａｐｈ  Ｌｉｂｒａｒｙ）などとされ得る（Ｊａｖａは、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．の米国における登録商標である）。
【００７５】
ステップ３０５において、ジョブ・スケジューラは、上記図２の定義に従い、ＬＥＶＥＬ＿１〜ＬＥＶＥＬ＿６の個別の頂点定義の通りにフロー・ネットワーク・モデルの各レベルにおけるセットアップされた頂点を作成する。続いて、ジョブ・スケジューラはステップ３１０に移る。
【００７６】
ステップ３１０において、ジョブ・スケジューラは、個別の辺定義Ｅｄｇｅ（ＬＥＶＥＬ＿ｋ，ＬＥＶＥＬ＿ｋ＋１）、ｋ＝１．．５の通りに、ＬＥＶＥＬ＿ｋの頂点からＬＥＶＥＬ＿ｋ＋１の頂点への有向辺を作成する。続いて、ジョブ・スケジューラはステップ３１５に移る。
【００７７】
ステップ３１５において、ジョブ・スケジューラは、Ｅｄｇｅ（ＬＥＶＥＬ＿ｋ，ＬＥＶＥＬ＿ｋ＋１）、ｋ＝１．．５それぞれの容量定義の通りに、ステップ３１０において作成されたすべての辺に対して個別の辺の容量を割り当てる。続いて、ジョブ・スケジューラはステップ３２０に移る。
【００７８】
ステップ３２０において、ジョブ・スケジューラは、ＬＥＶＥＬ＿１のタスクからＬＥＶＥＬ＿６のワーカまで、フロー・ネットワーク内のパスを作成し、これは、ＬＥＶＥＬ＿１のタスクを、ＬＥＶＥＬ＿２およびＬＥＶＥＬ＿３のボリューム、ＬＥＶＥＬ＿４およびＬＥＶＥＬ＿５のサーバ、並びにＬＥＶＥＬ＿６のワーカを用いて実行するためのジョブ・スケジュールを表す。
【００７９】
図６は、本発明の実施形態による、データ・アーカイブ管理スケジューリングを継続的に最適化するために使用されるコンピュータ・システム９０を示す。
【００８０】
コンピュータ・システム９０は、プロセッサ９１、プロセッサ９１に結合された入力デバイス９２、プロセッサ９１に結合された出力デバイス９３、並びにプロセッサ９１にそれぞれ結合されたメモリ・デバイス９４および９５を含むコンピュータ可読メモリ・ユニットを含む。入力デバイス９２は、特に、キーボード、マウス、キーパッド、タッチ・スクリーン、音声認識デバイス、センサ、ネットワーク・インターフェイス・カード（ＮＩＣ）、ボイス／ビデオ・オーバ・インターネット・プロトコル（ＶＯＩＰ）アダプタ、ワイヤレス・アダプタ、電話アダプタ、専用回線アダプタなどであってもよい。出力デバイス９３は、特に、プリンタ、プロッタ、コンピュータ画面、磁気テープ、リムーバブル・ハード・ディスク、フレキシブル・ディスク、ＮＩＣ、ＶＯＩＰアダプタ、ワイヤレス・アダプタ、電話アダプタ、専用回線アダプタ、可聴信号若しくは視覚信号またはその両方のジェネレータ、発光ダイオード（ＬＥＤ）などであってもよい。メモリ・デバイス９４および９５は、特に、キャッシュ、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハード・ディスク、フレキシブル・ディスク、磁気テープ、コンパクト・ディスク（ＣＤ）またはデジタル・ビデオ・ディスク（ＤＶＤ）などの光学式ストレージなどであってもよい。メモリ・デバイス９５は、コンピュータ・コード９７を含み、これは、コンピュータ実行可能命令を含むコンピュータ・プログラムである。コンピュータ・コード９７は、特に、本発明に従ってデータ・アーカイブ管理スケジューリングを継続的に最適化するために使用されるアルゴリズムを含む。プロセッサ９１は、コンピュータ・コード９７を実行する。メモリ・デバイス９４は、入力データ９６を含む。入力データ９６は、コンピュータ・コード９７によって必要とされる入力を含む。出力デバイス９３は、コンピュータ・コード９７からの出力を表示する。メモリ・デバイス９４および９５のいずれかまたは両方（または図６に示されていない１つ以上のさらなるメモリ・デバイス）は、コンピュータ可読プログラムが具現化されている、若しくは他のデータが記憶されている、またはその両方のコンピュータ使用可能ストレージ媒体（またはコンピュータ可読ストレージ媒体若しくはプログラム・ストレージ・デバイス）として使用されてもよく、コンピュータ可読プログラムは、コンピュータ・コード９７を含む。概して、コンピュータ・システム９０のコンピュータ・プログラム製品（または代わりに製造品）は、前記コンピュータ使用可能ストレージ媒体（または前記プログラム・ストレージ・デバイス）を含むとよい。
【００８１】
本発明のコンポーネントはいずれも、本発明のデータ収集ルールの通りにウェブ・インターフェイスを動的に構築するプロセスに関してコンピューティング・インフラストラクチャを展開または統合することを提案するサービス・プロバイダによる、展開、管理、サービス提供などが可能である。したがって、本発明は、コンピュータ可読コードをコンピューティング・システム（例えばコンピューティング・システム９０）に統合、ホスト、維持、および展開することを含む、コンピュータ・インフラストラクチャをサポートするプロセスを開示し、コードは、コンピューティング・システムとともに、データ・アーカイブ管理スケジューリングを継続的に最適化する方法を実行することができる。
【００８２】
別の実施形態では、本発明は、契約、宣伝、若しくは手数料、またはそのいずれかの組み合わせに基づき本発明のプロセス・ステップを実行するビジネス方法を提供する。すなわち、ソリューション・インテグレータなどのサービス・プロバイダは、本発明のデータ・アーカイブ管理スケジューリングを継続的に最適化するプロセスの、作成、維持、サポートなどを行うことを提案することができる。この場合、サービス・プロバイダは、１以上の顧客に対して本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャの作成、維持、サポートなどを行うことができる。見返りとして、サービス・プロバイダは、契約若しくは手数料の取り決め若しくはその両方に従って顧客（単数または複数）から支払いを受領すること、若しくは１つ以上のサード・パーティに対する宣伝コンテンツの販売からの支払いを受領すること、またはその両方を行うことができる。
【００８３】
図６は、コンピュータ・システム９０を、ハードウェアおよびソフトウェアの特定の構成として示すが、当業者には周知であると考えられるハードウェアおよびソフトウェアの任意の構成が、図６の特定のコンピュータ・システム９０と関連して上記に記載された目的のために利用され得る。例えば、メモリ・デバイス９４および９５は、独立したメモリ・デバイスではなく、単一のメモリ・デバイスの一部であってもよい。
【００８４】
当業者であれば当然のことであるが、本発明は、システム、方法またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本願明細書においてすべて概して「回路」、「モジュール」若しくは「システム」と呼ばれることもある、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとり得る。さらに、本発明は、任意の有形の表現媒体において具現化されたコンピュータ使用可能プログラム・コードを有する該媒体において具現化された、コンピュータ・プログラム製品の形態をとってもよい。
【００８５】
１つ以上のコンピュータ使用可能またはコンピュータ可読媒体（単数または複数）９４、９５の任意の組み合わせが利用され得る。コンピュータ使用可能媒体またはコンピュータ可読媒体という用語は、コンピュータ使用可能／可読ストレージ媒体９４、９５を集合的に指す。コンピュータ使用可能またはコンピュータ可読媒体９４、９５は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、若しくは半導体システム、装置、デバイス、または前述のものの任意の適切な組み合わせとすることもできる。コンピュータ可読媒体９４、９５のより具体的な例（包括的でないリスト）には、１つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学式ストレージ・デバイス、磁気ストレージ・デバイス、または前述のものの任意の適切な組み合わせが含まれるであろう。なお、プログラムは、例えば紙または他の媒体の光学式走査により電子的に獲得され、続いて必要に応じコンパイル、解釈、または適切な方法により別の形で処理され、続いてコンピュータ・メモリに記憶されることが可能であるため、コンピュータ使用可能またはコンピュータ可読媒体９４、９５は、プログラムが印刷される紙または別の適切な媒体とすることさえもできる。この文書の文脈では、コンピュータ使用可能またはコンピュータ可読媒体９４、９５は、命令実行システム、装置またはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の媒体としてよい。
【００８６】
本発明の動作を実行するコンピュータ・コード９７は、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋または同様のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語若しくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。コンピュータ・コード９７は、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されることも、部分的にユーザのコンピュータ上で実行されることも、または部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されることも、または完全にリモート・コンピュータ若しくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、または、（例えば、インターネット・サービス・プロバイダを使用しインターネットを介して）外部コンピュータに接続されてもよい。
【００８７】
本発明は、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図若しくはブロック図またはその両方を参照して記載されている。当然のことながら、フローチャート図若しくはブロック図またはその両方の各ブロック、およびフローチャート図若しくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。「コンピュータ・プログラム命令」という用語は、本明細書では「コンピュータ・コード９７」という用語と置き換え可能である。マシンを生じるよう、当該コンピュータ・プログラム命令が、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサにより実行されて、フローチャート若しくはブロック図またはその両方のブロック若しくは複数ブロックにおいて指定された機能／動作を実装する手段を作り出すようにすることもできる。
【００８８】
さらに、特定の形で機能するようコンピュータまたはその他のプログラム可能データ処理装置に指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読媒体９４、９５に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャート若しくはブロック図またはその両方のブロック若しくは複数ブロックにおいて指定された機能／動作を実装する命令手段を含む製品を生じるようにすることもできる。
【００８９】
さらに、コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能データ処理装置にロードされて、コンピュータまたはその他のプログラム可能装置上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャート若しくはブロック図またはその両方のブロック若しくは複数ブロックにおいて指定された機能／動作を実装するためのプロセスを提供するようにすることもできる。
【００９０】
各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性および動作を示す。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能（単数または複数）を実装する１つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すこともできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている２つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図若しくはフローチャート図またはその両方の各ブロック、およびブロック図若しくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能若しくは動作を実行する専用ハードウェア・ベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
【００９１】
特許請求の範囲のミーンズ・プラス・ファンクション構成要素またはステップ・プラス・ファンクション構成要素すべての対応する構造、材料、動作、および等価物は、明確に請求されている他の請求される構成要素とともに機能を実行する任意の構造、材料、または動作を含むものとする。本発明の記載は、例証および説明のために示されたものであるが、包括的であることも、開示された形態の発明に限定されることも目的としていない。当業者には、本発明の範囲から逸脱することのない、多数の変更および変形が明らかであろう。実施形態は、本発明の原理および実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。
【図１】
2013513150.tif 000003
【図２】
2013513150.tif 000004
【図３】
2013513150.tif 000005
【図４】
2013513150.tif 000006
【図５】
2013513150.tif 000007
【図６】
2013513150.tif 000008
【手続補正書】
【提出日】平成24年7月26日(2012.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ・アーカイブ管理スケジューリングを継続的に最適化する方法であって、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表す、ステップと、
コンピュータ・システムのプロセッサが、前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送するステップであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記ステップと、
を含む方法。
【請求項２】
前記方法は、
前記アーカイブ管理システムのコンポーネントから前記入力を収集して、前記ジョブ・スケジューラに提供するステップと、
前記計算された最適初期スケジュールを、前記計算された最適初期スケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
データおよび制御が、実際の通信パスを介して転送されることができるよう、ユーザ・インターフェイスと、前記受領されたスケジュール上の構成要素リソースとの間に、前記実際の通信パスを作成するステップと、
前記ワーカ・プログラムを実行する仮想マシンを展開し、続いて、前記受領されたスケジュールを前記展開された仮想マシン上で開始して前記タスクを実行することによって、前記受領されたスケジュールを実行するステップと、
前記実行されたスケジュールの動作を監視することによって前記監視結果を生成して、前記監視結果を前記ジョブ・スケジューラに提供するステップと、
前記調節済みスケジュールを、前記調節済みスケジュールの前記転送に応答して、前記ジョブ・スケジューラから受領するステップと、
をさらに含み、
前記収集、前記計算された最適初期スケジュールの前記受領、前記実際の通信パスの前記作成、前記受領されたスケジュールの前記実行、前記生成、および前記調節済みスケジュールの前記受領は、前記アーカイブ管理システムによって実行される、請求項１に記載の方法。
【請求項３】
前記フロー・ネットワークの前記モデル化は、
ＬＥＶＥＬ＿０、ＬＥＶＥＬ＿１、ＬＥＶＥＬ＿２、ＬＥＶＥＬ＿３、ＬＥＶＥＬ＿４、ＬＥＶＥＬ＿５、ＬＥＶＥＬ＿６、およびＬＥＶＥＬ＿７を含む８つのレベルに編成された頂点を作成するステップであって、
ＬＥＶＥＬ＿０は、ソース頂点を含み、
ＬＥＶＥＬ＿１は、前記少なくとも１つの前記アーカイブ管理タスクに関連する少なくとも１つのタスク頂点を含み、
ＬＥＶＥＬ＿２は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なストレージ・デバイス・ボリュームに関連する少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿３は、ＬＥＶＥＬ＿２の前記少なくとも１つのボリューム頂点を含み、
ＬＥＶＥＬ＿４は、前記少なくとも１つの前記アーカイブ管理タスクを実行するために必要なコンピューティング・サーバに関連する少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿５は、ＬＥＶＥＬ＿４の前記少なくとも１つのサーバ頂点を含み、
ＬＥＶＥＬ＿６は、前記少なくとも１つの前記アーカイブ管理タスクを実行する少なくとも１つのワーカ・プログラムに関連する少なくとも１つのワーカ頂点を含み、
ＬＥＶＥＬ＿７は、シンク頂点を含む、
前記ステップと、
ＥＤＧＥ＿０１、ＥＤＧＥ＿１２、ＥＤＧＥ＿２３、ＥＤＧＥ＿３４、ＥＤＧＥ＿４５、ＥＤＧＥ＿５６、およびＥＤＧＥ＿６７を含む７つのタイプに編成された辺を作成するステップであって、
第１のタイプＥＤＧＥ＿０１は、ＬＥＶＥＬ＿０の前記ソース頂点からＬＥＶＥＬ＿１の第１のタスク頂点へ向かう第１の辺を含み、前記第１の辺は、前記第１のタスク頂点に関連する第１のタスクが、前記ジョブ・スケジューラによってスケジュールされることを示し、
第２のタイプＥＤＧＥ＿１２は、ＬＥＶＥＬ＿１の前記第１のタスク頂点からＬＥＶＥＬ＿２の第１のボリューム頂点へ向かう第２の辺を含み、前記第２の辺は、前記第１のボリューム頂点に関連する第１のストレージ・デバイス・ボリュームが、前記第１のタスクを実行するために必要な最新のデータを記憶していることを示し、
第３のタイプＥＤＧＥ＿２３は、ＬＥＶＥＬ＿２の前記第１のボリューム頂点からＬＥＶＥＬ＿３の前記第１のボリューム頂点へ向かう第３の辺を含み、
第４のタイプＥＤＧＥ＿３４は、ＬＥＶＥＬ＿３の前記第１のボリューム頂点からＬＥＶＥＬ＿４の第１のサーバ頂点へ向かう第４の辺を含み、前記第４の辺は、前記第１のサーバ頂点に関連する第１のコンピューティング・サーバが、前記第１のストレージ・デバイス・ボリュームに物理的に結合されていることを示し、
第５のタイプＥＤＧＥ＿４５は、ＬＥＶＥＬ＿４の前記第１のサーバ頂点からＬＥＶＥＬ＿５の前記第１のサーバ頂点へ向かう第５の辺を含み、
第６のタイプＥＤＧＥ＿５６は、ＬＥＶＥＬ＿５の前記第１のサーバ頂点からＬＥＶＥＬ＿６の第１のワーカ頂点へ向かう第６の辺を含み、前記第６の辺は、前記第１のサーバ頂点に関連する前記第１のコンピューティング・サーバが、前記第１のワーカ頂点に関連する第１のワーカ・プログラムをホストすることを示し、
第７のタイプＥＤＧＥ＿６７は、ＬＥＶＥＬ＿６の前記第１のワーカ頂点からＬＥＶＥＬ＿７の前記シンク頂点へ向かう第７の辺を含み、前記第７の辺は、前記第１のワーカ・プログラムが、前記ジョブ・スケジューラによってスケジュールされた動作を完了することを示す、
前記ステップと、
前記作成された辺の重みを割り当てるステップであって、
前記第１のタイプＥＤＧＥ＿０１の前記第１の辺は、前記第１のタスクを実行するための時間単位と等しい第１の重みを有し、
前記第２のタイプＥＤＧＥ＿１２の前記第２の辺は、前記第１のタスクのボリューム使用と等しい第２の重みを有し、
前記第３のタイプＥＤＧＥ＿２３の前記第３の辺は、前記第１のストレージ・デバイス・ボリュームが同時にサポートできるタスクの数を示し前記第１のストレージ・デバイス・ボリュームのボリューム・スループットと等しい第３の重みを有し、
前記第４のタイプＥＤＧＥ＿３４の前記第４の辺は、前記第１のストレージ・デバイス・ボリュームと、前記第１のコンピューティング・サーバとの間の通信チャネルの容量と等しい第４の重みを有し、
前記第５のタイプＥＤＧＥ＿４５の前記第５の辺は、前記第１のコンピューティング・サーバの処理スループットと等しい第５の重みを有し、
前記第６のタイプＥＤＧＥ＿５６の前記第６の辺および前記第７のタイプＥＤＧＥ＿６７の前記第７の辺はそれぞれ、前記アーカイブ管理システム内の極めて大きな数と等しい無限の重みを有する、
前記ステップと、
作成された辺に従って、前記ソース頂点から前記シンク頂点への少なくとも１つのパスを作成するステップであって、前記パス内の少なくとも１つのストレージ・デバイス・ボリュームおよび少なくとも１つのコンピューティング・サーバを用いて、前記パス内の少なくとも１つのワーカ・プログラムによって実行される、前記パス内のタスクに関する個別のジョブ・スケジュールを、前記作成された少なくとも１つのパスが表すよう、前記作成するステップであって、前記最適パスは、前記パス内の辺の重みの最小和を有するパスである、前記ステップと、
を含む、請求項１または２に記載の方法。
【請求項４】
前記最適初期スケジュールの前記計算は、
前記第３のタイプＥＤＧＥ＿２３、前記第４のタイプＥＤＧＥ＿３４、および前記第５のタイプＥＤＧＥ＿４５のすべての辺を含むリソース辺の個別の重みに時間の係数を乗算し、続いて、前記乗算された個別の重みを、それぞれ最も近い整数値に切り捨てる結果として、前記リソース辺の、時間を考慮した個別の重みを算出するステップと、
前記リソース辺の、前記時間を考慮した個別の重みを備える前記フロー・ネットワークに対して一連の最大フロー計算を実行することによって、少なくとも１つの最大フローを得るステップと、
前記得られた少なくとも１つの最大フローから、少なくとも１つの候補最大フローを選択するステップであって、前記少なくとも１つの候補最大フローは、前記フロー・ネットワークの前記少なくとも１つの最大フロー内のタスクの総数と等しい、前記ステップと、
前記選択された少なくとも１つの候補最大フローを用いて、少なくとも１つの候補スケジュールを生成するステップと、
前記少なくとも１つの候補スケジュールの中で、前記候補スケジュール内のすべての重みの最小和を備える候補スケジュールとして、前記最適初期スケジュールを選択するステップと、
を含む、請求項３に記載の方法。
【請求項５】
前記調節済みスケジュールの作成は、
前記転送されたスケジュールの前記動作の前記受領された監視結果を分析するステップであって、前記受領された監視結果は、前記転送されたスケジュール内のリソースの個別の量、ファイルの個別のサイズ、およびタスクの個別のスループットを含む、前記ステップと、
前記分析の結果を、所定のヒューリスティック・メトリックに適用するステップであって、前記所定のヒューリスティック・メトリックは、各タスクの容量、各タスクの出次数、総ボリューム負荷、および最小ボリューム負荷から成る群、並びにその組み合わせから選択される、前記ステップと、
前記転送されたスケジュール内のタスクのスケジューリング順序を、前記適用の結果に基づき動的に調節することによって、前記転送されたスケジュールを最適化するステップと、
を含む、先行するいずれかの請求項に記載の方法。
【請求項６】
データ・アーカイブ管理スケジューリングの継続的な最適化のためのコンピュータ・プログラムであって、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化するステップと、
前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送することであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記転送するステップと、
をコンピュータ・システムに実行させる、コンピュータ・プログラム。
【請求項７】
プロセッサと、前記プロセッサに結合されたコンピュータ可読メモリ・ユニットとを含むコンピュータ・システムであって、前記コンピュータ可読メモリ・ユニットは、前記プロセッサによって実行されるとデータ・アーカイブ管理スケジューリングを継続的に最適化する方法を実装する命令を含み、前記方法は、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化するステップと、
前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送するステップであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記ステップと、
を含む、コンピュータ・システム。
【請求項８】
コンピュータ・インフラストラクチャをサポートするプロセスであって、前記プロセスは、コンピューティング・システムにおけるコンピュータ可読コードの作成、統合、ホスト、維持、および展開のうちの少なくとも１つに関して少なくとも１つのサポート・サービスを提供することを含み、前記コードは、前記コンピューティング・システムとともに、データ・アーカイブ管理スケジューリングを継続的に最適化する方法を実行することができ、前記方法は、
ジョブ・スケジューラがタスク情報、レプリカ配置データ、インフラストラクチャ・トポロジ・データ、およびリソース・パフォーマンス・データを含む入力をアーカイブ管理システムから受領するステップと、
前記受領された入力からフロー・ネットワークをモデル化するステップであって、前記アーカイブ管理システムのデータ・コンテンツ、ソフトウェア・プログラム、物理的デバイス、および通信容量を前記フロー・ネットワークが表すよう、かつ少なくとも１つのアーカイブ管理タスクのタスクから前記アーカイブ管理システムのワーカ・プログラムへの、前記フロー・ネットワークの最適パスが、前記ワーカ・プログラムが前記タスクを実行する最適初期スケジュールを表すよう、前記モデル化するステップと、
前記フロー・ネットワークにおける前記最適パスから前記最適初期スケジュールを計算するステップと、
前記計算された最適初期スケジュールを、前記最適初期スケジュールを実行するために前記アーカイブ管理システムに転送するステップと、
前記転送された最適初期スケジュールの動作の監視結果を、前記アーカイブ管理システムから受領するステップと、
前記受領された監視結果に基づいて前記最適初期スケジュールを動的に調節する結果として、調節済みスケジュールを作成するステップと、
前記調節済みスケジュールを実行するために、前記調節済みスケジュールを前記アーカイブ管理システムに転送するステップであって、その結果、前記アーカイブ管理システムは、前記転送された調節済みスケジュールの動作の新たな監視結果を生成する、前記ステップと、
を含む、プロセス。
【請求項９】
請求項１乃至５のいずれか一項に記載された方法の各ステップをコンピュータに実行させる、プログラム。
【請求項１０】
請求項１乃至５のいずれか一項に記載された方法の各ステップを実行するための手段を備える、システム。
【国際調査報告】
2013513150.tif 000009
2013513150.tif 000010
2013513150.tif 000011