動的なブロックサイズ粒度を使用して、一の計算クラスタ内の異なるタイプのアプリケーションについて一のファイルシステムを最適化する方法であって、a前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約するステップを含み、各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックから成り、bローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用するステップと、c共用ストレージサブシステムの単一データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内のデータアクセス動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用するステップをさらに含む、方法。一の計算動作用のデータを、前記予約済みストレージ割り振り領域の少なくとも1つに割り振るステップをさらに含む、請求項1に記載の方法。前記計算クラスタ内の一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約するステップをさらに含む、請求項1又は請求項2に記載の方法。一の計算動作を前記計算クラスタ内の一の計算ノードに送信するステップをさらに含み、当該計算動作用のデータは、当該計算ノードのローカル接続ストレージに割り振られている、請求項1ないし請求項3の何れか1項に記載の方法。一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製するステップをさらに含む、請求項1ないし請求項4の何れか1項に記載の方法。一のデータアクセス動作用のデータを前記共用ストレージサブシステムに割り振るステップをさらに含む、請求項1ないし請求項5の何れか1項に記載の方法。前記共用ストレージサブシステム及びローカル接続ストレージに割り振り済みの各データブロックの前記ファイルシステム内の位置を追跡するステップをさらに含む、請求項1ないし請求項6の何れか1項に記載の方法。前記データアクセス動作は、記帳動作、データ転送動作、キャッシュ管理動作及びプリフェッチ動作から成るグループから選択される、請求項1ないし請求項7の何れか1項に記載の方法。一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開するステップをさらに含む、請求項6に記載の方法。前記計算クラスタは、一の遠隔クライアント用の計算サービスをホストする、請求項1ないし請求項9の何れか1項に記載の方法。一の計算クラスタを備え、動的なブロックサイズ粒度を使用して、当該計算クラスタ内の異なるタイプのアプリケーションについて一のファイルシステムを最適化するシステムであって、前記計算クラスタは、a複数の計算ノードを有し、前記複数の計算ノードの各々は、ローカル接続ストレージを含み、b前記複数の計算ノードの各々に結合された共用ストレージサブシステムと、c前記共用ストレージサブシステム及び前記複数の計算ノードの各々に結合されたファイルシステムマネージャをさらに有し、前記ファイルシステムマネージャcは、c1前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約し、各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックから成り、c2ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用し、c3前記共用ストレージサブシステムの単一データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内のデータアクセス動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用する、システム。前記ファイルシステムマネージャは、一の計算動作を前記計算クラスタ内の一の計算ノードに送信し、当該計算動作用のデータは、当該計算ノードのローカル接続ストレージに割り振られている、請求項11に記載のシステム。前記ファイルシステムマネージャは、一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約する、請求項11又は請求項12に記載のシステム。前記ファイルシステムマネージャは、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製し、前記一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開する、請求項11ないし請求項13の何れか1項に記載のシステム。請求項1ないし請求項10の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータプログラム。共用ストレージを使用する従来のクラスタファイルシステムは、データへの計算の配信、すなわち大規模データセットを処理するデータ集約型アプリケーション例えば、データ分析アプリケーションをサポートするのに必要な機能をサポートしない。また、共用ストレージを使用するクラスタファイルシステム用のデフォルトブロックサイズは、小さくなっており、そのため、1つのデータブロック当たり1つのタスクをスケジュールするデータ集約型アプリケーション用の高いタスクオーバーヘッドに結びつく。データ集約型アプリケーションを稼働させる基本的ストレージアーキテクチャは、インターネット規模のファイルシステムInternetscalefilesystemに基づいている。かかるインターネット規模のファイルシステムは、データ集約型アプリケーションに適した特殊なファイルシステムであるが、従来型アプリケーションの性能要件をサポートしない。従って、本発明は、第1の側面において、動的なブロックサイズ粒度を使用して、一の計算クラスタ内の異なるタイプのアプリケーションについて一のファイルシステムを最適化する方法を提供する。前記方法は、a前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域storageallocationregionを予約するステップを含み、各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックから成り、bローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度blockallocationgranularityとして使用するステップと、c共用ストレージサブシステムの単一データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内のデータアクセス動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用するステップをさらに含む。前記方法は、一の計算動作用のデータを、前記予約済みストレージ割り振り領域の少なくとも1つに割り振るステップをさらに含む。前記方法は、前記計算クラスタ内の一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約するステップをさらに含む。前記方法は、一の計算動作を前記計算クラスタ内の一の計算ノードに送信するステップをさらに含み、当該計算動作用のデータは、当該計算ノードのローカル接続ストレージに割り振られている。前記方法は、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製するステップをさらに含む。前記方法は、一のデータアクセス動作用のデータを前記共用ストレージサブシステムに割り振るステップをさらに含む。前記方法は、前記共用ストレージサブシステム及びローカル接続ストレージに割り振り済みの各データブロックの前記ファイルシステム内の位置を追跡するステップをさらに含む。好ましくは、前記データアクセス動作は、記帳bookkeeping動作、データ転送動作、キャッシュ管理動作及びプリフェッチ動作から成るグループから選択される。前記方法は、一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開するステップをさらに含む。好ましくは、前記計算クラスタは、一の遠隔クライアント用の計算サービスをホストする。第2の側面では、一の計算クラスタを備え、動的なブロックサイズ粒度を使用して、当該計算クラスタ内の異なるタイプのアプリケーションについて一のファイルシステムを最適化するシステムが提供される。前記計算クラスタは、a複数の計算ノードを有し、当該複数の計算ノードの各々は、ローカル接続ストレージを含み、b前記複数の計算ノードの各々に結合された共用ストレージサブシステムと、c前記共用ストレージサブシステム及び前記複数の計算ノードの各々に結合されたファイルシステムマネージャをさらに有し、前記ファイルシステムマネージャcは、c1前記計算クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約し、各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックから成り、c2ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用し、c3共用ストレージサブシステムの単一データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内のデータアクセス動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用する。好ましくは、前記ファイルシステムマネージャは、一の計算動作を前記計算クラスタ内の一の計算ノードに送信し、当該計算動作用のデータは、当計算ノードのローカル接続ストレージに割り振られている。好ましくは、前記ファイルシステムマネージャは、一の計算ノード用の前記予約済みストレージ割り振り領域の総数が前記所定数よりも小さいときは、当計算ノード用の予約済みストレージ割り振り領域の前記総数が当該所定数と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約する。好ましくは、前記ファイルシステムマネージャは、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製し、一の計算動作を有する前記第1の計算ノードに障害があるときは、前記第2の計算ノードに複製済みの当該計算動作に関連するデータを使用して、前記第2の計算ノード上で当該計算動作を再開する。好ましくは、前記ファイルシステムマネージャは、一の計算ノードのローカル接続ストレージに割り振り済みの1セットの連続データブロックを、前記計算クラスタ内の第2の計算ノードのローカル接続ストレージに複製し、前記一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開する。第3の側面では、第1の側面に係る前記方法の各ステップをコンピュータに実行させるためのコンピュータプログラムが提供される、本発明は、ファイルシステム内のフラグメント化を防止し、最適の順次読み取り及び書き込みを維持し、計算ノードレベルの局所性を可能にするという効果を奏する。また、本発明は、ストレージコストを最小化し、高度に並列式のアプリケーションが大量のデータを処理することができるように、計算クラスタを何千もの計算ノードまで拡大し、データ集約型アプリケーションにおいて一般的な大きなファイルを効率的にサポートすることができるという効果を奏する。さらに、本発明は、一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作を再開することができるという効果を奏する。以下の説明は、本発明の一般原理を説明することを目的とし、本明細書に開示した発明概念を限定することを目的とするものではない。さらに、本明細書に開示した特定の機能は、種々の可能な組み合わせの各々において本明細書に開示した他の機能と結合して使用することができる。本明細書において特別に定義しない限り、全ての用語は、本明細書から暗示される意味、当業者によって理解される意味及び/又は辞書等において定義される意味を含む、最も広義の意味を包含するように解釈されるべきである。以下の説明は、動的なブロックサイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイルシステムを最適化するための幾つかの好ましい実施形態を開示することに加えて、その動作及び/又は部分を開示する。以下の説明は、本発明の代表的実施形態に従った、ストレージ割り振りプロセス及びストレージ装置を記述することに向けられているが、本明細書に開示した請求項を含む教示内容は、クラウド計算環境内のシステム、装置及びアプリケーションを含む、他のタイプのシステム、装置及びアプリケーションに対する広範な応用を有し得ることに留意すべきである。本発明の実施形態は、動的なブロックサイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイルシステムを最適化することに係る。共用ストレージを使用するクラスタファイルシステムは、データへの計算の配信、すなわち大規模データセットを処理するデータ集約型アプリケーション例えば、データ分析アプリケーションをサポートするのに必要な機能をサポートしない。また、共用ストレージを使用するクラスタファイルシステム用のデフォルトブロックサイズは、小さくなっており、そのため、1つのデータブロック当たり1つのタスクをスケジュールするデータ集約型アプリケーション用の高いタスクオーバーヘッドに結びつく。データ集約型アプリケーションを稼働させる基本的ストレージアーキテクチャは、標準的なPOSIXPortableOperatingSystemInterfaceforUnixインタフェースを提供しない、インターネット規模のファイルシステムに基づいているUnixは登録商標。かかるインターネット規模のファイルシステムは、データ集約型アプリケーションに適した特殊なファイルシステムであるが、従来型アプリケーションの性能要件をサポートしない。一実施形態では、単一の計算クラスタ内で従来型アプリケーション及びデータ集約型アプリケーションをサポートするために、ファイルシステムのブロック割り振り方式に対する変更が提示される。例えば、POSIXストレージスタックが、POSIXベースの従来型クラスタファイルシステム上に構築されたクラウド分析をサポートすることができるように、ファイルシステムのデータ割り振りが変更されるということである。一実施形態では、計算クラスタのファイルシステムは、データ集約型アプリケーションの計算動作に関連するデータ用の大きなブロック粒度と、従来型アプリケーションのデータアクセス動作に関連するデータ用の小さなブロック粒度の何れか一方を選択することができる。代表的実施形態では、このファイルシステムのラウンドロビンブロック割り振り方式は、1セットの連続ブロック大きなブロックを、計算動作用のデータをストライプするための割り振り粒度として使用するように修正される。他の代表的実施形態では、このファイルシステムは、従来型アプリケーションの全てのデータアクセス動作用にデフォルトブロックサイズ粒度小さなブロックサイズを内部的に使用する。図1は、一実施形態に従った、動的なブロックサイズ粒度を使用して、異なるタイプのアプリケーションについて最適化されるファイルシステムを有する計算クラスタ102を示す。計算クラスタ102は、アプリケーションノードとも称する、複数の計算ノード104a~104nを含む。代表的実施形態では、計算クラスタ102は、何千もの計算ノード104a~104nに拡大することができるハードウェアアーキテクチャを含む。各計算ノード104a~104nは、ローカル接続ストレージ106a~106nに結合される。例えば、ローカル接続ストレージ106a~106nは、計算ノード104a~104nに対し物理的に内部のものであるか、又はディスクアレイ装置を使用して直接に接続された物理的に外部のものとすることができる。一実施形態では、ローカル接続ストレージ106a~106nは、標準インタフェースを通して、計算ノード104a~104nに直接的に接続されたストレージ装置を含む。例えば、標準インタフェースは、ファイバチャネルFC、小型コンピュータ用周辺機器インタフェースSCSI、統合ドライブエレクトロニクスIDE等を含む。代表的実施形態では、各計算ノード104a~104nは、ローカル接続ストレージ106a~106nとして、750ギガバイトGBの容量を有する4つのシリアルアドバンストテクノロジアタッチメントSATAドライブを含む。計算クラスタ102は、計算クラスタ102のファイルシステムを管理するように構成されたファイルシステムマネージャ108を含む。例えば、計算クラスタ102のファイルシステムは、IBMGeneralParallelFileSystemGPFSを含んでもよいIBMは登録商標、GeneralParallelFileSystem及びGPFSは商標。代表的実施形態では、ファイルシステムマネージャ108は、ソフトウェアの形式で具体化され、計算クラスタ102内の任意の独立の計算ノードから稼働させることができる。さらに、計算クラスタ102は、共用ストレージサブシステム114を含む。例えば、共用ストレージサブシステム114は、ストレージエリアネットワークSAN装置を含むことができる。共用ストレージサブシステム114は、ストレージスイッチ112に結合される。計算ノード104a~104nは、共用ストレージサブシステム114にアクセスするために、ストレージスイッチ112に結合される。ファイルシステムマネージャ108は、共用ストレージサブシステム114を使用して、計算クラスタ102のファイルシステムを管理するために、ストレージスイッチ112に結合される。共用ストレージサブシステム114は、計算ノード104a~104nに対し、同じデータへの同時アクセスを提供するように構成される。共用ストレージサブシステム114は、計算ノード104a~104nにわたって、書き込み帯域幅の共用を可能にする。一実施形態では、共用ストレージサブシステム114は、ハードウェア障害を回避するために、基本的なデータ保護技術を使用するように設計されている。例えば、共用ストレージサブシステム114は、データ保護を提供するために、新磁気ディスク制御機構RAIDの技術を使用することができる。さらに、計算クラスタ102は、スイッチネットワーク110を含む。スイッチネットワーク110は、ファイルシステム内の諸コンポーネント用の相互接続を提供するように構成される。一実施形態では、スイッチネットワーク110は、計算ノード104a~104n及びファイルシステムマネージャ108用の相互接続を提供するように構成される。代表的実施形態では、スイッチネットワーク110は、リナックス登録商標ソフトウェアで稼働する1ギガビット/秒gbpsのスイッチ間リンクを備えた、計算ノードラックごとのギガビットイーサネット登録商標スイッチである。他の実施形態では、スイッチネットワーク110は、ネットワーク116上のクライアントノード118へのアクセスを提供するようにさらに構成される。例えば、ネットワーク116は、広域ネットワークWAN等を含む。一実施形態では、計算クラスタ102は、遠隔クライアント118用のデータ及び計算サービスをホストする。例えば、計算クラスタ102は、遠隔クライアント用のデータ及び計算サービスを或るデータサイトにおいてホストするためのクラウド計算サービスを可能にする。代表的実施形態では、計算クラスタ102は、ネットワーク116上の遠隔クライアント118のために、データ分析アプリケーションの稼働及び当該データ分析アプリケーションに関連するデータの格納をホストするように構成される。従って、計算クラスタ102は、大きなデータセットについてデータ集約型アプリケーションを稼働させるために、クラウドにおいて並列性及びスケーラビリティを可能にする。例えば、データ集約型アプリケーションは、大きな計算タスクを1セットのより小さな並列化計算に分解する、データ分析アプリケーションを含む。図2は、一実施形態に従った、動的なブロックサイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイルシステムを最適化する方法200のフローチャートを示す。ステップ202では、ファイルシステムマネージャ108は、計算ノード104a~104nごとに所定数のストレージ割り振り領域を予約する。各ストレージ割り振り領域は、ローカル接続ストレージ106a~106nの単一ストレージディスク上にある1セットの連続データブロックから成る。一実施形態では、ファイルシステムマネージャ108は、計算ノード104a~104nごとに連続的なストレージ割り振り領域のプールをプリフェッチする。例えば、連続的なストレージ割り振り領域のプールをプリフェッチすると、ネットワーク待ち時間及びアプリケーション性能への影響を防止することができる。従って、各計算ノード104a~104nは、連続的なストレージ割り振り領域のプールを前もって準備しているから、入力/出力I/O要求のパス内にネットワーク待ち時間を招かないであろう。代表的実施形態では、前記所定数は10である。例えば、ファイルシステムマネージャ108は、計算ノード104a~104nごとに連続的な10個のストレージ割り振り領域のプールをプリフェッチする。他の実施形態では、前記所定数を5~200の範囲とすることができる。前記所定数は、データブロックについて使用される連続性のレベル、計算クラスタ102内でサポートされているアプリケーションのタイプ、使用されるファイルシステム及び計算クラスタ102内のアプリケーションの性能要件に基づいて、その範囲を定めることができる。ステップ204では、ファイルシステムマネージャ108は、ローカル接続ストレージ106a~106nの単一ストレージディスク上にある1セットの連続データブロックを、ファイルシステム内に格納すべき計算ノード104a~104nからの計算動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用する。一実施形態では、ファイルシステムマネージャ108は、ローカル接続ストレージ106a~106nの単一ストレージディスク上にある1セットの連続データブロック大きなデータブロック又は大きなブロックサイズ粒度を、ファイルシステム内に格納すべき計算動作用のデータをストライプするための割り振り粒度として使用する。例えば、ファイルシステムマネージャ108が、格納すべき計算動作用のデータを割り振るために大きなブロックサイズ粒度を使用するのは、小さなブロックサイズがデータ集約型アプリケーションについて高いタスクオーバーヘッドに帰着するという理由による。従って、ファイルシステムのデータ割り振り及び計算クラスタ12のデータレイアウト情報は、大きなブロックサイズ粒度を使用してデータ集約型アプリケーションの要件をサポートするように変更される。単一ブロックのブロックサイズ粒度は、変更することができる。単一ブロックのデフォルトブロックサイズは、性能要件及びトレードオフ、並びに使用されたファイルシステムに依存して、或る範囲で変更することができる。例えば、単一ブロックのブロックサイズ粒度は、8KB~16MBの範囲で変更することができる。代表的実施形態では、単一ブロックのブロックサイズ粒度は、1MBである。例えば、1MBの固定サイズを有するデータブロックは、ファイルシステム内のフラグメント化を防止し、最適の順次読み取り及び書き込みを維持し、計算ノードレベルの局所性を可能にする。他の代表的実施形態では、単一ブロックのブロックサイズ粒度は、256KB及び512KBである。一実施形態では、ファイルシステム内に格納すべき計算動作用のデータをストライプするためのストレージ割り振り領域は、所定のサイズで連続する。例えば、ファイルシステム内に格納すべき計算動作用のデータをストライプするためのストレージ割り振り領域は、8MB~256MBの範囲で連続し得る。代表的実施形態では、64個の1MBブロックは、ファイルシステム内に格納すべき計算動作用のデータをストライプするための64MBのストレージ割り振り領域にグループ化される。例えば、ファイルシステム内に格納すべき計算動作用のデータをストライプするための大きなブロック粒度は、64個の連続的な1MBデータブロックから成る64MBデータブロックである。他の実施形態では、ファイルシステム内に格納すべき計算動作用のデータをストライプするためのブロックサイズ粒度は、使用されるファイルシステム及びアプリケーションの性能要件に依存して、変更することができる。ファイルシステムマネージャ108は、計算動作用のデータを格納するために共用ストレージサブシステム114を使用するのではなく、ローカル接続ストレージ106a~106nを使用する。例えば、計算動作用のデータを格納するためにローカル接続ストレージ106a~106nを使用するのは、ローカル接続ストレージ106a~106nの低コスト及び共用ストレージサブシステム114の帯域幅制限という理由による。例えば、データ集約型アプリケーション用のストレージ層は、商品commodityコンポーネントであるローカル接続ストレージ106a~106n上に構築される。その結果、ストレージコストを最小化し、高度に並列式のアプリケーションが大量のデータを処理することができるように、計算クラスタ102を何千もの計算ノード104~104nに拡大することができる。さらに、ローカル接続ストレージ106a~106nを使用してデータ集約型アプリケーション用のストレージ層を構築すると、データを計算動作に配信するのではなく、計算動作をデータに配信することを可能にすることによって、データ集約型アプリケーションにおいて一般的な大きなファイルを効率的にサポートすることができる。代表的実施形態では、計算ノード104a~104nは、データ集約型クラスのアプリケーションを稼働及びサポートし、そこから計算動作が開始される。一実施形態では、データ集約型クラスのアプリケーションは、大きな計算タスクを1セットのより小さな並列化可能計算に分解するアプリケーション等を含む。データ集約型アプリケーションの共通の特徴は、それらが並列であり且つそれらのデータアクセス帯域幅要件が他の資源要件を支配するということである。例えば、データ集約型アプリケーションは、マップを使用して区分データセットに関するより小さな並行計算に分解されている1つ又はそれ以上の計算をサポートし、計算クラスタ内の大規模計算ノード104a~104n上で並列化及び実行可能なキー/値ペアに関する機能を減少させる。代表的実施形態では、データ集約型アプリケーションは、クラウド計算ベースの分析アプリケーションを含む。例えば、クラウド計算ベースの分析アプリケーションは、衛星イメージパターンマッチングアプリケーションを含む絶えず変化する大量のデータを処理するための科学アプリケーション、ゲノム配列から生物学的機能を発見するためのアプリケーション、望遠鏡画像から抽出される天文学データ及び磁気共鳴映像法MRIデータを使用する脳パターンのためのアプリケーション等を含む。他の実施形態では、データ集約型アプリケーションは、インターネット規模のデータ処理アプリケーション例えば、ウェブ検索アプリケーション、データインデックス付け兼マイニングアプリケーション等をさらに含む。ステップ206では、ファイルシステムマネージャ108は、計算動作用のデータを、少なくとも1つの予約済みストレージ割り振り領域に割り振る。一実施形態では、ファイルシステムマネージャ108は、ファイルシステムにわたってデータのストライピングを実装する。この場合、大きなファイルが等しいサイズの複数ブロックに分割され、そしてこれらの連続ブロックが異なるディスク上にラウンドロビン式に配置される。代表的実施形態では、ファイルシステムマネージャ108は、広いストライピングを使用して、1セットの連続データブロックをローカル接続ストレージ106a~106nにわたってラウンドロビン式にストライプする。例えば、ストライピング技術は、広いストライピング、狭いストライピング、ノーストライピング等を含む、ステップ208では、ファイルシステムマネージャ108は、計算ノード104a~104n用の予約済みストレージ割り振り領域の総数が所定のしきい値よりも小さいときは、計算ノード104a~104n用の予約済みストレージ割り振り領域の総数が当該所定のしきい値と等しくなるまで、少なくとも1つの追加のストレージ割り振り領域を予約する。一実施形態では、ファイルシステムマネージャ108は、計算ノード104a~104n用の予約済みストレージ割り振り領域の総数が前記所定のしきい値と等しくなるまで、計算ノード104a~104nのローカル接続ストレージ106a~106nの単一ストレージディスク上にある1セットの連続データブロックから成る、少なくとも1つの追加のストレージ割り振り領域を予約する。例えば、ファイルシステムマネージャ108は、計算ノード104a~104n用のプールの基数が10より小さいときは、計算ノード104a~104n用の1セットの連続データブロックから成る追加のストレージ割り振り領域を予約する。ステップ210では、ファイルシステムマネージャ108は、計算動作を計算ノード104a~104nに送信する。当該計算動作用のデータは、当該計算動作を受信する計算ノード104a~104nのローカル接続ストレージ106a~106nに割り振られている。一実施形態では、計算動作及びタスクは、当該計算動作用のデータが存在する計算ノード104a~104nに送信される。例えば、このように計算タスクをデータに配信すると、ネットワークオーバーヘッドが減少し、その結果、計算を速やかに処理することが可能となる。代表的実施形態では、ファイルシステムのブロック位置情報をファイルシステムの入力/出力制御を使用するアプリケーションに公開することにより、計算タスクは、ファイルシステム内のデータと同じ場所に配置される。従って、ファイルシステムマネージャ108は、このブロック位置情報を使用して、この計算タスクを計算ノード104a~104nに送信する。この計算タスクを受信する計算ノード104a~104nのローカル接続ストレージ106a~106nには、この計算タスクに関連するデータが存在する。ステップ212では、ファイルシステムマネージャ108は、計算ノード104a~104nのローカル接続ストレージ106a~106nに割り振られた連続データブロックの各セットを、少なくとも1つの追加の計算ノード104a~104nのローカル接続ストレージ106a~106nに複製する。例えば、データ集約型アプリケーションは、基礎となる商品コンポーネント内の障害から回復可能である必要がある。従って、データ集約型アプリケーションは、複数の計算ノード及びディスク障害が生ずる場合、かかる障害から回復可能であり且つ処理を続行可能である必要がある。このため、計算ノード又はディスク障害が生ずる場合には、異なる計算ノード上で計算を再開することができるように、データを複数の計算ノードにわたって複製することを必要とする。一実施形態では、一の計算動作を有する一の計算ノードに障害があるときは、当該計算動作に関連するデータが複製されている第2の計算ノード上で当該計算動作が再開される。この複製機構は、使用されるファイルシステム及びクラスタコンポーネントに基づいて、変更することができる。代表的実施形態では、ファイルシステムは、単一ソース複製モデルを使用して、書き込み機能によりコピーを全てのレプリカに転送する。他の代表的実施形態では、ファイルシステムは、パイプライン複製を使用する。この場合、書き込み機能におけるアウトバウンド帯域幅は、複数のストリームにわたって共用されず、書き込みデータは、そのデータが計算ノードに書き込まれている間に、パイプライン内の一の計算ノードから次の計算ノードまで順次にパイプライン化することができる。ステップ214では、ファイルシステムマネージャ108は、共用ストレージサブシステム114の単一データブロックを、ファイルシステム内に格納すべき計算ノード104a~104nからのデータアクセス動作用のデータをストライプするためのファイルシステムのブロック割り振り粒度として使用する。一実施形態では、ファイルシステムマネージャ108は、従来型アプリケーションのデータを割り振るためのブロック割り振り粒度として、共用ストレージサブシステム114の単一データブロック小さなブロックを使用する。代表的実施形態では、ファイルシステムマネージャ108は、同じファイルに対し並行書き込み機能を使用することにより、従来型アプリケーションについて複数の計算ノードにわたって書き込み帯域幅の共用を可能にする。代表的実施形態では、ファイルシステムマネージャ108は、共用ストレージサブシステム114の単一データブロックを、従来型アプリケーションのデータアクセス動作用に使用することにより、キャッシュ管理を有効にし且つプリフェッチオーバーヘッドを減少させる。というのは、複数のアプリケーションレコードが、異なるディスク上の複数のブロックにまたがることがあり得るからである。例えば、内部データアクセス動作は、記帳動作、データ転送動作、キャッシュ管理動作、プリフェッチ動作等を含んでもよい。従って、ファイルシステムマネージャ108は、従来型アプリケーションについて最適化されるディスクアクセス及びプリフェッチ動作用に、小さなブロック粒度を使用する。ステップ216では、ファイルシステムマネージャ108は、計算ノード104a~104nからのデータアクセス動作用のデータを、共用ストレージサブシステム114に割り振る。ステップ218では、ファイルシステムマネージャ108は、共用ストレージサブシステム114及びローカル接続ストレージ106a~106nに割り振り済みの各データブロックの、ファイルシステム内の位置を追跡する。一実施形態では、ファイルシステムマネージャ108は、共用ストレージサブシステム114及びローカル接続ストレージ106a~106nに割り振り済みの各データブロックの位置を追跡するために割り振りマップを使用する。一実施形態では、ファイルシステムマネージャ108は、各計算ノード104a~104nに対し、割り振りマップへのアクセスを提供する。例えば、計算ノード104a~104nは、割り振りマップを使用して、共用ストレージサブシステム114及びローカル接続ストレージ106a~106nに割り振り済みの各ブロックの位置を決定する。一実施形態では、割り振りマップは、当該割り振りビットマップへの並列更新を可能にするように、多数のロック有能な割り振り領域n個の計算ノードから成る計算クラスタ102の場合は、n個の領域に分割される。代表的実施形態では、割り振りマップ内の各領域は、計算クラスタ102内の全てのディスク上にあるディスクブロックの1/n番目の割り振りステータスを保持し、そして任意の時点において、全ての計算ノード104a~104nは、x個の領域の所有権を有しており且つこれらの領域を使用して全ての割り振り要求を満たそうと試みる。例えば、そのビットマップレイアウトは、ファイルシステムが一度に単一の割り振り領域だけにアクセスすることにより、全てのディスクにわたって適正にストライプされたディスク空間を割り振ることを可能にする。従って、計算ノード104a~104nが異なる領域から空間を割り振ることができるため、ロックの衝突が最小化される。図3は、一実施形態に従った、ファイルシステム内に格納すべき計算動作用のデータをストライプするためのブロック割り振り方式を示す。一実施形態では、ブロック割り振り方式は、ローカル接続ストレージ106a~106nの単一ストレージディスク上にある1セットの連続データブロックを、格納すべき計算ノード104a~104nからの計算動作用のデータを割り振るためのブロック割り振り粒度として使用する。図3は、ローカル接続ストレージ106a~106nの複数のストレージディスク302a~302nを示す。ファイル304は、固定サイズを有する複数のデータブロックに分割される。代表的実施形態では、ファイル304は、複数の1MBデータブロックに分割される。個別的な複数の1MBデータブロックは、複数の連続データブロックセットにグループ化される。例えば、64MBレベルの連続性については、1MBの固定サイズを有する64個の連続データブロックは、複数の64MBデータブロックセットにグループ化される。個別的な各64MBデータブロックセットは、ローカル接続ストレージ106a~106nの単一ストレージディスクにラウンドロビン式に割り振られる。例えば、1セットの連続データブロック306aは、ローカル接続ストレージ106a~106nの単一ストレージディスク302aに割り振られる。1セットの連続データブロック306bは、ローカル接続ストレージ106a~106nの単一ストレージディスク302bに割り振られる。1セットの連続データブロック306cは、ローカル接続ストレージ106a~106nの単一ストレージディスク302cに割り振られる。同様に、1セットの連続データブロック306nは、ローカル接続ストレージ106a~106nの単一ストレージディスク302nに割り振られる。1セットの連続データブロック308aは、ローカル接続ストレージ106a~106nの単一ストレージディスク302aに割り振られる。1セットの連続データブロック308bは、ローカル接続ストレージ106a~106nの単一ストレージディスク302bに割り振られる。1セットの連続データブロック308cは、ローカル接続ストレージ106a~106nの単一ストレージディスク302cに割り振られる。同様に、1セットの連続データブロック308nは、ローカル接続ストレージ106a~106nの単一ストレージディスク302nに割り振られる。1セットの連続データブロック310aは、ローカル接続ストレージ106a~106nの単一ストレージディスク302aに割り振られる。1セットの連続データブロック310bは、ローカル接続ストレージ106a~106nの単一ストレージディスク302bに割り振られる。1セットの連続データブロック310cは、ローカル接続ストレージ106a~106nの単一ストレージディスク302cに割り振られる。同様に、1セットの連続データブロック310nは、ローカル接続ストレージ106a~106nの単一ストレージディスク302nに割り振られる。図4は、一実施形態に従った、ファイルシステム内に格納すべきデータアクセス動作用のデータをストライプするためのブロック割り振り方式を示す。代表的実施形態では、ファイルシステムマネージャ108は、共用ストレージサブシステム114の単一ストレージディスク上にある単一ブロックを、従来型アプリケーションについて使用されるデータアクセス動作用のデータを割り振るためのブロック割り振り粒度として使用する。例えば、データアクセス動作は、従来型アプリケーションについて最適化される、内部記帳動作、データ転送動作、キャッシュ管理動作及びプリフェッチ動作を含む。ファイル404は、固定サイズを有する複数のデータブロックに分割される。代表的実施形態では、ファイル404は、複数の1MBデータブロックに分割される。個別的な各1MBデータブロックセットは、共用ストレージサブシステム114の単一ストレージディスクにラウンドロビン式に割り振られる。例えば、データブロック406aは、共用ストレージサブシステム114の単一ストレージディスク402aに割り振られ、同様に、データブロック406bは、単一ストレージディスク402bに割り振られ、データブロック406cは、単一ストレージディスクに402c割り振られ、データブロック406nは、単一ストレージディスク402nに割り振られる。データブロック408aは、共用ストレージサブシステム114の単一ストレージディスク402aに割り振られ、同様に、データブロック408bは、単一ストレージディスク402bに割り振られ、データブロック408cは、単一ストレージディスクに402c割り振られ、データブロック408nは、単一ストレージディスク402nに割り振られる。データブロック410aは、共用ストレージサブシステム114の単一ストレージディスク402aに割り振られ、同様に、データブロック410bは、単一ストレージディスク402bに割り振られ、データブロック410cは、単一ストレージディスク402cに割り振られ、データブロック410nは、単一ストレージディスク402nに割り振られる。データブロック412aは、共用ストレージサブシステム114の単一ストレージディスク402aに割り振られ、同様に、データブロック412bは、単一ストレージディスク402bに割り振られ、データブロック412cは、単一ストレージディスクに402cに割り振られ、データブロック412nは、単一ストレージディスク402nに割り振られる。データブロック414aは、共用ストレージサブシステム114の単一ストレージディスク402aに割り振られ、同様に、データブロック414bは、単一ストレージディスク402bに割り振られ、データブロック414cは、単一ストレージディスクに402cに割り振られ、データブロック414nは、単一ストレージディスク402nに割り振られる。データブロック416aは、共用ストレージサブシステム114の単一ストレージディスク402aに割り振られ、同様に、データブロック416bは、単一ストレージディスク402bに割り振られ、データブロック416cは、単一ストレージディスク402cに割り振られ、データブロック416nは、単一ストレージディスク402nに割り振られる。図5は、一実施形態に従った、動的なブロックサイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイルシステムを最適化するプロセスを実装することができる、システム500のブロック図を示す。システム500は、1つ以上のサーバコンピュータシステム以下サーバと略記530に接続された、1つ以上のクライアント装置501を含む。サーバ530は、バス502又は情報を通信するための他の通信機構と、情報を処理するためにバス502と結合されたプロセッサCPU504を含む。また、サーバ530は、情報及びプロセッサ504によって実行すべき命令を格納するためにバス502に結合された、ランダムアクセスメモリRAM又は他の動的ストレージ装置のような主メモリ506を含む。また、主メモリ506は、プロセッサ504による命令の実行中に、一時変数又は他の中間情報を格納するためにも使用することができる。さらに、サーバ530は、プロセッサ504用の静的情報及び命令を格納するためにバス502に結合された、読み取り専用メモリROM508又は他の静的ストレージ装置を含む。磁気ディスク又は光ディスクのようなストレージ装置510は、情報及び命令を格納するためにバス502に結合される。バス502は、例えば、ビデオメモリ又は主メモリ506をアドレス指定するために、32本のアドレス線を含むことができる。また、バス502は、例えば、プロセッサ504、主メモリ506、ビデオメモリ及びストレージ装置510のような諸コンポーネント間でデータを転送するために、32ビットのデータバスを含むことができる。代替的に、個別のデータ及びアドレス線の代わりに、多重データ/アドレス線を使用してもよい。サーバ530は、情報をコンピュータユーザに表示するために、バス502を介してディスプレイ512に結合することができる。英数字及び他のキーを含む入力装置514は、情報及びコマンドの選択をプロセッサ504に通信するために、バス502に結合される。他のタイプのユーザ入力装置は、方向情報及びコマンドの選択をプロセッサ504に通信したり、ディスプレイ512上のカーソル移動を制御するためのカーソル制御装置516例えば、マウス、トラックボール又はカーソル方向キーを含む。本発明の諸機能は、主メモリ506内に保持される1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ504に応答して、サーバ530によって実施される。かかる命令は、ストレージ装置510のような他のコンピュータ可読媒体から主メモリ506に読み取ることができる。主メモリ506内に保持される命令のシーケンスを実行する結果として、プロセッサ504は、本明細書に開示した諸プロセスステップを実施する。主メモリ506内に保持される命令のシーケンスを実行するために、マルチプロセッシングシステム内の1つ以上のプロセッサを使用してもよい。代替実施形態では、本発明を実装するために、諸ソフトウェア命令の代わりに又はこれらのソフトウェア命令と組み合わせて、ハードワイヤード回路を使用してもよい。従って、本発明の実施形態は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに制限されない。コンピュータ可読媒体の種々の形式は、実行のために1つ以上の命令の1つ以上のシーケンスをプロセッサ504に搬送することに関係してもよい。例えば、これらの命令は、最初は遠隔コンピュータの磁気ディスク上に保持されることがある。遠隔コンピュータは、これらの命令をその動的メモリにロードし、モデムを使用して、これらの命令を電話線を介して送信することができる。サーバ530に対しローカルのモデムは、この電話線上のデータを受信し、赤外線送信機を使用してこのデータを赤外線信号に変換することができる。バス502に結合された赤外線検出器は、この赤外線信号で搬送されるデータを受信し、このデータをバス502上に配置することができる。バス502は、このデータを主メモリ506に搬送し、主メモリ506からプロセッサ504は命令を検索し且つ実行する。主メモリ506から受信された命令は、プロセッサ504による実行の前又は実行の後に、ストレージ装置510上に格納してもよい。また、サーバ530は、バス502に結合された通信インタフェース518を含む。通信インタフェース518は、ネットワークリンク520に対する両方向のデータ通信結合を提供する。一方、ネットワークリンク520は、一般にインターネット528と称する、世界的規模のパケットデータ通信ネットワークに接続される。インターネット528は、電気、電磁気又は光信号を使用して、デジタルデータストリームを搬送する。サーバ530と授受されるデジタルデータを搬送するための、種々のネットワークを通過する信号、ネットワークリンク520上の信号及び通信インタフェース518を通過する信号は、情報を移送する搬送波の典型的な形式である。サーバ530の他の実施形態では、通信インタフェース518は、通信リンク520を介してローカルネットワークLAN522に接続される。例えば、通信インタフェース518は、ネットワークリンク520の一部を構成する、対応するタイプの電話線に対するデータ通信接続を提供するための、サービス総合デジタルネットワークISDNカード又はモデムとすることができる。他の例として、通信インタフェース518は、互換性のあるローカルエリアネットワークLANに対するデータ通信接続を提供するための、LANカードとすることができる。無線リンクも実装することができる。かかる任意の実装では、通信インタフェース518は、種々のタイプの情報を表すデジタルデータストリームを搬送するための、電気、電磁気又は光信号を送信/受信する。一般に、ネットワークリンク520は、1つ以上のネットワークを通して、他のデータ装置に対するデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522を通して、ホストコンピュータ524又はインターネットサービスプロバイダISP526によって動作されるデータ装置に対する接続を提供することができる。インターネットサービスプロバイダ526は、インターネット528を通して、データ通信サービスを提供する。ローカルネットワーク522及びインターネット528は、両方とも、キャリーデジタルデータストリームを搬送するための、電気、電磁気又は光信号を使用する。サーバ530と授受されるデジタルデータを搬送するための、種々のネットワークを通過する信号、ネットワークリンク520上の信号及び通信インタフェース518を通過する信号は、情報を移送する搬送波の典型的な形式である。サーバ530は、ネットワーク、ネットワークリンク520及び通信インタフェース518を通して、電子メール及びプログラムコードを含む、メッセージ及びデータを送信/受信することができる。さらに、通信インタフェース518は、ユニバーサルシリアルバス/チューナから構成することができる。ネットワークリンク520は、他のソースからメッセージ、データ及びプログラムコードを受信するために、サーバ530をケーブルプロバイダ、衛星プロバイダ又は他の地上伝送システムに接続するための、アンテナ又はケーブルとすることができる。本明細書に開示した本発明の例示的なバージョンは、サーバ530を含むシステム500のような分散処理システム内の論理動作として実装することができる。これらの論理動作は、サーバ530内で実行される諸ステップのシーケンスとして、またシステム500内の相互に結合されたマシンモジュールとして、実装することができる。その実装は、選択の問題であり、本発明を実装するシステム500の性能に依存することがある。そのため、本発明の前記例示的なバージョンを構成する論理動作は、例えば、動作、ステップ又はモジュールと呼ばれる。前述のサーバ530と同様に、クライアント装置501は、プロセッサ、メモリ、ストレージ装置、ディスプレイ、入力装置及びサーバ530との通信のために当該クライアント装置をインターネット528、インターネットサービスプロバイダ526又はローカルネットワーク522に接続するための通信インタフェース例えば、電子メールインタフェースを含むことができる。さらに、システム500は、クライアント装置501と同じ態様で動作するコンピュータ例えば、パーソナルコンピュータ、計算ノード505を含むことができる。その場合、ユーザは、1つ以上のコンピュータ505を利用して、サーバ530内のデータを管理することができる。一般に、本明細書では、コンピュータ可読媒体という用語は、実行のために諸命令をプロセッサ504に提供することに関係する任意の媒体を指す。かかる媒体は、不揮発性媒体、揮発性媒体及び伝送媒体等を含む、多くの形式を取ることができる。不揮発性媒体は、例えば、ストレージ装置510のような光又は磁気ディスクを含む。揮発性媒体は、主メモリ506のような動的メモリを含む。伝送媒体は、同軸ケーブル、銅線及びファイバオプティクスを含み、バス502を構成する線を含む。従って、本明細書は、動的なブロックサイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイルシステムを最適化することを開示する。当業者には明らかなように、本発明の諸側面は、システム、方法又はコンピュータプログラムとして具体化することができる。発明の1側面は、動的なブロックサイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイルシステムを最適化するためにコンピュータプログラムを含む。このコンピュータプログラムは、その内部にコンピュータ可読プログラムコードを具体化した、コンピュータ可読ストレージ媒体を含む。前記コンピュータ可読ストレージ媒体は、クラスタ内の計算ノードごとに所定数のストレージ割り振り領域を予約するように構成されたコンピュータ可読プログラムコードを含む。各ストレージ割り振り領域は、ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックから成る。前記コンピュータ可読ストレージ媒体は、ローカル接続ストレージの単一ストレージディスク上にある1セットの連続データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内の計算動作用のデータをストライプするための当該ファイルシステムのブロック割り振り粒度として使用するように構成されたコンピュータ可読プログラムコードをさらに含む。前記コンピュータ可読ストレージ媒体は、共用ストレージサブシステムの単一データブロックを、前記ファイルシステム内に格納すべき前記計算クラスタ内のデータアクセス動作用のデータをストライプするための前記ファイルシステムのブロック割り振り粒度として使用するように構成されたコンピュータ可読プログラムコードをさらに含む。従って、本発明の諸側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコード等を含む又はソフトウェア及びハードウェア要素の両方を含む実施形態の形式を取ることができ、これらの全てを一般に回路、モジュール又はシステムと呼ぶことができる。さらに、本発明の諸側面は、コンピュータ可読プログラムコードを1つ以上のコンピュータ可読媒体内に具体化した、コンピュータプログラムの形式を取ることができる。1つ以上のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体システム、装置若しくはデバイス、又はこれらの任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体の特定の例は、1つ以上の線を有する電気接続、フレキシブルディスク、ハードディスク、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラマブル読み取り専用メモリEPROM又はフラッシュメモリ、光ファイバ、読み取り専用CD-ROM、光ストレージ装置、磁気ストレージ装置、又はこれらの任意の適切な組み合わせとすることができる。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム又は装置に関連して又はこれらによって使用するためのプログラムを保持又は格納する、任意の有形的媒体とすることができる。コンピュータ可読信号媒体は、伝搬されるデータ信号を含むこともあるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ可読プログラムコードを具体化することができる。かかる伝搬される信号は、電磁気、光学、又はこれらの任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム又は装置に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送する、任意のコンピュータ可読媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラムコードは、無線、有線、光ファイバケーブル、RF、又はこれらの任意の適切な組み合わせ等を含む、適切な任意の媒体を使用して伝送することができる。本発明の諸側面に従った動作を実施するためのコンピュータプログラムコードは、Java登録商標、Smalltalk、C等のようなオブジェクト指向プログラミング言語及びCプログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、独立のソフトウェアパッケージとしてユーザコンピュータ上で完全に実行することができ、その一部をユーザコンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、又は遠隔コンピュータ若しくはサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、LAN又は広域ネットワークWANを含む任意のタイプのネットワークを通してユーザコンピュータに接続することができ、或いはその接続を例えば、インターネットサービスプロバイダを使用するインターネットを通して外部コンピュータに行うことができる。以上では、本発明の実施形態に従った、方法、装置システム及びコンピュータプログラムのフローチャート又はブロック図を参照して、本発明の諸側面を説明した。フローチャート又はブロック図の各ブロック、複数ブロックの組み合わせは、コンピュータプログラム命令によって実装することができる。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される諸命令は、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための手段を作成する。また、これらのコンピュータプログラム命令をコンピュータ可読媒体内に格納すると、当該コンピュータ可読媒体内に格納された諸命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための諸命令を含む製品を生産することを目的として、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置に対し特定の態様で機能するように指示することができる。また、これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装プロセスを生成するように当該コンピュータ、他のプログラム可能なデータ処理装置又は他のデバイス上で一連の動作ステップを実行させることができる。