"コンピュータ化された機器によってコンピュータプログラムを動作させることにより、前記コンピュータプログラムを検査するステップであって、前記コンピュータ化された機器が、前記コンピュータプログラムにリソースへのアクセスを提供するように動作する、ステップと、前記コンピュータプログラムによる前記リソースへのアクセス要求を遮断するステップとを含み、前記遮断するステップが、前記コンピュータプログラムに提供される応答を決定するステップと、前記要求に対する前記リソースからの応答の代わりに、前記決定された応答を前記コンピュータプログラムに提供するステップとを含む、コンピュータにより実装される方法。前記リソースがクロックであり、前記応答がクロックの時間である、請求項1に記載の方法。前記決定するステップが、以前に提供された時間を取得することと、以前に提供された時間の所定の範囲内で時間をランダム化することとを含み、前記ランダム化された時間が、前記決定された応答である、請求項2に記載の方法。ユーザから前記所定の範囲を受け取るステップをさらに含む、請求項3に記載の方法。前記決定するステップが、以前に提供された時間を取得することと、前記時間を、前記以前に提供された時間よりも前になるように決定することとを含む、請求項2に記載の方法。前記決定するステップが、前記クロックから現在時間を取得することと、前記時間を、該時間が前記現在時間から少なくとも所定の持続時間だけ後になるように決定することとを含む、請求項5に記載の方法。前記遮断するステップが、前記リソースに対する複数のアクセス要求に関して、複数回実施される、請求項1に記載の方法。前記検査するステップが、クラウドコンピューティング環境における前記コンピュータプログラムの動作の妥当性を検査することを含む、請求項1に記載の方法前記動作の妥当性を検査するステップの完了に応答して、前記コンピュータプログラムを前記クラウドコンピューティング環境にロードするステップをさらに含む、請求項8に記載の方法。前記コンピュータプログラムを前処理するステップと、前記リソースにアクセスするように動作する関数呼び出しを識別するステップとをさらに含む、請求項1に記載の方法。前記コンピュータプログラムを、前記関数呼び出しを置き換えるように動作するコードで計装化するステップをさらに含み、前記遮断するステップが、前記コードを実行するステップを含む、請求項10に記載の方法。プロセッサを有する、コンピュータ化された装置であって、コンピュータプログラムを動作させるように動作する検査モジュールであって、前記コンピュータプログラムにリソースへのアクセスを提供するように構成される、検査モジュールと、前記コンピュータプログラムによる前記リソースへのアクセス要求を遮断するように動作する遮断器であって、前記コンピュータプログラムに提供される応答を決定するように動作する応答決定器を含み、さらに、前記要求に対する前記リソースからの応答の代わりに、前記決定された応答を前記コンピュータプログラムに提供するように動作する、遮断器とを含む、装置。前記リソースがクロックであり、前記応答がクロックの時間である、請求項12に記載の装置。前記応答決定器がさらに、以前に提供された時間を取得するように動作し、前記応答決定器が、以前に提供された時間の所定の範囲内で時間をランダム化するように動作するランダム化モジュールに動作可能に結合され、前記ランダム化された時間が、前記決定された応答である、請求項13に記載の装置。ユーザから前記所定の範囲を受け取るように動作する入力モジュールをさらに含む、請求項14に記載の装置。前記応答決定器がさらに、以前に提供された時間を取得するように動作し、前記決定された応答が、前記以前に提供された時間よりも前の時間である、請求項13に記載の装置。前記応答決定器がさらに、前記クロックから現在時間を取得し、前記時間を、該時間が前記現在時間から少なくとも所定の持続時間だけ後になるように決定するように動作する、請求項13に記載の装置。前記検査モジュールが、クラウドコンピューティング環境における前記コンピュータプログラムの動作の妥当性を検査するように構成される、請求項12に記載の装置。前記コンピュータプログラムを前処理し、前記リソースにアクセスするように動作する関数呼び出しを識別する、アクセス識別器をさらに含む、請求項12に記載の装置。前記コンピュータプログラムを前処理することが、前記コンピュータプログラムを、前記関数呼び出しを置き換えるように動作するコードで計装化することを含む、請求項19に記載の装置。コンピュータプログラムであって、コンピュータ化された機器によってコンピュータプログラムを動作させることにより前記コンピュータプログラムを検査するための第1のプログラム命令であって、前記コンピュータ化された機器が、前記コンピュータプログラムにリソースへのアクセスを提供するように動作する、第1のプログラム命令と、前記コンピュータプログラムによる前記リソースへのアクセス要求を遮断するための第2のプログラム命令とを含み、前記第2のプログラム命令が、前記コンピュータプログラムに提供される応答を決定するための第3の命令と、前記要求に対する前記リソースからの応答の代わりに、前記決定された応答を前記コンピュータプログラムに提供するための第4の命令とを含む、コンピュータプログラム。前記応答が、クロックの時間である、請求項21に記載のコンピュータプログラム。本発明の目的は、コンピュータプログラムの動作中に第1のホストから第2のホストに移行することができるコンピュータプログラムの検査に関する、方法、装置及びコンピュータプログラムを提供することである。本発明の1つの例示的な実施形態は、コンピュータにより実装された方法であり、この方法は、コンピュータ化された機器によってコンピュータプログラムを動作させることにより該コンピュータプログラムを検査するステップであって、コンピュータ化された機器が、コンピュータプログラムにリソースへのアクセスを提供するように動作する、ステップと、コンピュータプログラムによるリソースへのアクセス要求を遮断するステップとを含み、遮断するステップは、コンピュータプログラムに提供される応答を決定するステップと、要求に対するリソースからの応答の代わりに、決定された応答をコンピュータプログラムに提供するステップとを含む。本発明の別の例示的な実施形態は、プロセッサを有するコンピュータ化された装置であり、この装置は、コンピュータプログラムを動作させるように動作する検査モジュールであって、コンピュータプログラムにリソースへのアクセスを提供するように構成される、検査モジュールと、コンピュータプログラムによるリソースへのアクセス要求を遮断するように動作する遮断器であって、コンピュータプログラムに提供される応答を決定するように動作する応答決定器を含み、さらに、要求に対するリソースからの応答の代わりに、決定された応答をコンピュータプログラムに提供するように動作する、遮断器とを含む。本発明のさらに別の例示的な実施形態は、コンピュータプログラムであり、このコンピュータプログラムは、コンピュータ化された機器によってコンピュータプログラムを動作させることにより該コンピュータプログラムを検査するための第1のプログラム命令であって、コンピュータ化された機器が、コンピュータプログラムにリソースへのアクセスを提供するように動作する、第1のプログラム命令と、コンピュータプログラムによる前記リソースへのアクセス要求を遮断するための第2のプログラム命令とを含み、前記第2のプログラム命令は、コンピュータプログラムに提供される応答を決定するための第3の命令と、要求に対するリソースからの応答の代わりに、決定された応答をコンピュータプログラムに提供するための第4の命令とを含む。本開示の主題は、以下の詳細な説明を図面と共に検討することでより良く理解され、認識され、図中、対応する又は同様の数字又は記号は、対応する又は同様の構成要素を示す。特に断りのない限り、図面は、本開示の例示的な実施形態又は態様を提供するものであって、本開示の範囲を限定するものではない。本発明を、主題の実施形態による、方法、装置システム及びコンピュータプログラムのフローチャート図及び又はブロック図を参照して、以下で説明する。フローチャート図及び又はブロック図の各々、並びにフローチャート図及び又はブロック図中のブロックの組合せは、コンピュータプログラム命令によって実装することができることが理解されるであろう。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータプログラム命令を、コンピュータ又は他のプログラム可能データ処理装置に特定の方式で機能するように指示することができるコンピュータ可読媒体に格納して、それにより、そのコンピュータ可読媒体に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令手段を含む製品を製造するようにさせることもできる。コンピュータプログラム命令を、コンピュータ又は他のプログラム可能データ処理装置にロードして、コンピュータ又は他のプログラム可能データ処理装置上で、コンピュータ実装プロセスを生成するための一連の動作ステップを実施させて、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにさせることもできる。本発明が取り組む1つの技術的課題は、クラウドによって動作されているときにコンピュータプログラムを検査することである。別の技術的課題は、ホスト間の移行が、コンピュータプログラムの動作を無効化することがあるかどうかを検査することである。さらに別の技術的課題は、コンピュータプログラムを単一のホスト上で又は別の非クラウド処理システムにより実行することによって、そのコンピュータプログラムをクラウド処理スキーマに関して検査することである。さらに他の技術的課題は、クラウドコンピューティング環境に特に関連していない、可能性のある移行に関して、コンピュータプログラムを検査することである。1つの技術的解決策は、コンピュータプログラムによるホストから要求へのリソース応答をシミュレートすることである。シミュレートされる応答は、移行が生じた場合に生じ得る応答をシミュレートするように構成することができる。別の技術的解決策は、リソース要求を遮断し、代替的なシミュレートされた応答を提供することである。さらに他の技術的解決は、ホストのクロックに向けられた時間要求を遮断すること、及び代替的な応答をシミュレートすることである。さらに他の技術的解決策は、以前に提供された応答の所定の範囲内の応答をランダムに選択することによって、代替的な応答をシミュレートすることである。例えば、06:32:16という時間が以前に提供されていた場合、シミュレートされた応答は、以前に提供された時間から1分間の範囲内すなわち、06:31:16と06:33:16との間の時間のランダムな時間とすることができる。本発明を使用することのひとつの技術的効果は、検査フェーズ中に実際の移行を行うことなく、移行の技術的効果をシミュレートすることである。検査環境は、比較的単純な処理環境とすることができ、クラウド処理環境とする必要はない。他の技術的効果は、単一ホスト環境においては予期されないがクラウド処理環境においては生じ得るリソース応答を、シミュレートすることである。例えば、時間は狭義単調増加関数であるので、第1に提供される時間は、その後で提供される、第2に提供される時間よりも必ず早くなるはずである。しかしながら、クラウドコンピューティング環境においては、第1の時間は第1のクロックに基づいて提供されることがあり、第2の時間は第2のクロックに基づいて提供されることがあるので、この提供される時間の固有の特徴に違反することがある。本発明は、このようなシナリオを、コンピュータプログラムを単一のホストで実行するときにシミュレートする、技術的効果をもたらす。さらに他の技術的特徴は、戻される時間が狭義単調増加関数によって表されないコンピュータプログラムの実行をシミュレートすることである。さらに他の技術的効果は、前方にスキップするクロックに関して、コンピュータプログラムの動作を検査することである。いくつかの例示的な実施形態において、前方にスキップするクロックにより、タイムアウト動作を起動することができ、タイムアウト値に対するそのコンピュータプログラムの感度を検査することができる。ここで、本主題のいくつかの例示的な実施形態による、本発明が用いられるコンピュータ化された環境を示す、図1を参照する。コンピュータ環境100は、コンピュータプログラム110を含むことができる。コンピュータプログラム110は、ホストとも呼ばれるプロセッサのような処理マシンを動作させるように動作する命令の集合とすることができる。コンピュータプログラム110は、コンピュータ可読媒体上に埋め込まれることができる。コンピュータプログラム110は、クラウド105によって動作させることできる。クラウド105は、ホスト106のような、複数のホストを含むことができる。クラウド105のホストは、LAN、WAN、WiFi、WiMAX、インターネット、イントラネット、それらの組合せ、又はその他の通信ネットワークのようなコンピュータネットワーク内で接続することができる。いくつかの例示的な実施形態において、コンピュータプログラム110は、クラウド105の具体的な実装の詳細には無関係であり得る。例えば、コンピュータプログラム110は、クラウド105のホストの数、そこで用いられているハードウェアの種類、ホストの接続様式などには無関係ではないものとすることができる。いくつかの例示的な実施形態において、コンピュータプログラム110は、仮想マシンVM図示せずを用いて実行することができる。VMを用いて、コンピュータプログラム110から実装の詳細を抽出することができる。VMは、クラウド105によって実行することが可能であり得る。コンピュータプログラム110の実行中に、クラウドは、VMを1つのホストから別のホストへと移行させることができる。コンピュータプログラム110は、そのような事象が生じていることに気づかないでいることができる。いくつかの例示的な実施形態において、移行は、VMが用いられていない例示的な実施形態において生じることもあり得る。いくつかの例示的な実施形態において、移行は、VMに割り当てられたメモリのスナップショットを取得すること、他のホストのメモリをこのスナップショットで設定すること、及び割り当てられたメモリを解放することを含むことができる。メモリは、コンピュータプログラム110の現在の状態を保持しているので、これをコピーすることは、コンピュータプログラム110が、1つのホストから他のホストに移行したものとみなすことができる。特定の状態例えば、ファイルハンドラ、又はセマフォなどにおけるオペレーションシステムOSエンティティの設定のような、追加動作を必要とすることがあることに留意されたい。当業者であれば、コンピュータプログラム110を仮想マシンあり又はなしでクラウド内の1つのホストからクラウド内の別のホストへと移行させることが可能である。移行は、非クラウドコンピューティング環境においても生じることがあることに留意されたい。例えば、プログラムのスナップショットを取得し、後でこれを用いて、リブート後に同じマシン内でコンピュータプログラムを再開することができる。別の例として、スナップショットは用いて、別のマシンこれは、必ずしもクラウドの一部である必要はない上でコンピュータプログラムの動作を再開することができる。いくつかの例示的な実施形態において、コンピュータプログラム110の実行を検査するように、検証装置120を構成することができる。検証装置120は、検査のベンチマーク内で保持するなど、コンピュータプログラム110の検査を実行するように構成することができる。検査は、ユーザからの入力、又はコンピュータプログラム110を実行する環境からの入力などのような、コンピュータプログラム110に対する刺激事象を定めることができる。検証装置120は、実行されているコンピュータプログラム110に対して計算能力及び/又はその他のリソースを提供する、実行ホスト130を含むことができる。いくつかの例示的な実施形態において、実行ホスト130は、106のような単一のホストとすることができる。他の例示的な実施形態において、実行ホスト130は、105のようなクラウドとすることができる。本発明の目的のためには、実行ホスト130の実装の詳細は、一般に特に重要ではない。いくつかの例示的な実施形態において、ユーザ140は、端末、ディスプレイ、キーボード、又は入力デバイスなどのようなマン-マシンインタフェースMMI145を用いて、検証装置120と対話することができる。ユーザ140は、コンピュータプログラム110に関して用いられる検査を定めることができる。ユーザ140は、検証装置120に対して、規則、コマンド、優先度、及びパラメータを提供することができる。ユーザ140は、検証装置120の出力を見ることができる。出力に基づいて、ユーザ140は、新たな検査を設計すること、又は検査又は、生成ベースの検査の場合、検査を生成するために利用される検査テンプレートを変更することなどを決定することができる。ユーザ140は、さらに、バグを識別し、識別されたバグを報告し、及び/又は識別されたバグを修正することができる。ここで、本発明のいくつかの例示的な実施形態による、装置を示す図2を参照する。図1の120のような装置200は、図1の110のようなコンピュータプログラムの機能的動作を検査するように構成することができる。いくつかの例示的な実施形態において、検査モジュール210は、図1の110のようなコンピュータプログラムを動作させるように構成することができる。検査モジュール210は、プログラムを実行することによりコンピュータプログラムの検査を促進するように構成することができる。いくつかの例示的な実施形態において、検査プログラムは、コンピュータプログラムを実行しているホストのリソースにアクセスするように構成される。いくつかの例示的なリソースは、性能の統計量例えば、フリーメモリ空間、実行されているプロセスの数、又はCPU使用量など、ホストに関連付けられたメモリのメモリ位置、又はクロックなどであり得る。いくつかの例示的な実施形態において、検査モジュール210は、クラウド処理環境において実行される場合のコンピュータプログラムの動作を検査するように動作する。いくつかの例示的な実施形態において、検査モジュール210は、検査プログラムをホスト又は複数のホスト上で実行し、コンピュータプログラムの検査に関連付けられた適切な刺激をホストに提供するように動作することができる。刺激例は、これに尽きないが、コンピュータプログラムに提供される入力、又はスレッドのような並行エンティティのスケジューリングなどを含むことができる。いくつかの例示的な実施形態において、アクセス識別器220は、コンピュータプログラムによるリソースに対するアクセス要求を識別するように構成することができる。アクセス識別器220は、リソース要求にフックを付加することによって、例えば、システムコール要求にフックアップすることによって、アクセスを識別することができる。いくつかの例示的な実施形態において、アクセス識別器220は、コンピュータプログラムのプログラムコードを精査し、関連のある関数呼び出しの起動を識別することによって、アクセスを識別することができる。いくつかの例示的な実施形態において、アクセス識別器220は、コンピュータプログラムが検査モジュール210によって実行される前に、該コンピュータプログラムを前処理するように構成することができる。前処理中に、リソースにアクセスするように動作する関数呼び出しが識別され、実行中のその起動を用いて、アクセス要求を識別することができる。いくつかの例示的な実施形態において、コード計装器225を使用して、関数の起動に関連して起動されるように動作するコードを計装することができる。例えば、コードは、関数の始めに計装することができる。別の例として、マクロ定義例えば、C言語における定義コマンドを用いて、計装されたコードの起動で関数呼び出しを置き換えることができる。いくつかの例示的な実施形態において、計装化は、ソースコードが利用可能ではないすなわちブラックボックスの検査場合のように、コンピュータプログラムの二進表現に関して行うことができる。二進数は、例えば、システムコール、又はアプリケーションプログラムインタフェースAPIなどの起動のような、アクセス要求の実施に関連付けられる部分として計装化することができる。当業者であれば、付加的又は代替的な方式で、アクセス識別器220による識別をイネーブルにすることができる。いくつかの例示的な実施形態において、クロックにアクセスし、時間を戻すように動作する関数、例えばC時間ライブラリの関数の起動を、アクセス識別器220によって識別することができる。いくつかの例示的な実施形態において、以下でさらに詳細に説明されるように、コード計装器225は、関数に対する関数呼び出しを、遮断器230に関連付けられた関数のような代替的な関数で置き換えるように動作することができる。いくつかの例示的な実施形態において、遮断器230は、アクセス識別器220によって識別されたようなアクセス要求を遮断し、その決定された応答を提供するように動作することができる。応答は、応答決定器240によって決定することができる。アクセス要求の遮断は、コード計装器225によって計装された計装化コードを用いて行うことができる。遮断器230は、実行ホストのリソースにアクセスし又はアクセスすることなく、応答を提供するように動作することができる。例えば、マシンのクロックに対するアクセス要求の場合、クロック自体にアクセスし又はアクセスすることなく、時間を戻すことができる。決定された応答は、クロックが戻すはずの時間とは異なる時間とすることができる。いくつかの例示的な実施形態において、応答決定器240は、アクセス要求に対する応答を決定するように構成することができる。いくつかの例示的な実施形態において、応答決定器240は、ランダムな応答を決定することができる。いくつかの例示的な実施形態において、応答決定器240は、以前に提供された応答に基づいた応答を決定することができる。いくつかの例示的な実施形態において、応答決定器240は、提供された応答を保持し、今後の応答決定のためにそれを利用するように動作することができる。いくつかの例示的な実施形態において、以前に提供された応答を基準値として用いることができ、決定された応答は、基準値の所定範囲内の値とすることができる。この範囲は、図1の140のようなユーザが決定することができ、205のような入力モジュールを用いて、随意に装置200に提供することができる。範囲は、種々の追加的な要因によって影響を受けることがある。例として、クロックというリソースを考えると、これは時間という応答を提供する。決定された時間は、基準点としての以前に提供された時間に基づいたものとすることができる。決定された時間は、以前の応答から2分間の範囲内とすることができる。1つの例示的な実施形態において、範囲は、以前の応答から経過した時間によって影響を受けることができる。いくつかの例示的な実施形態において、いくつかの決定された応答、例えば第1の応答は、実際のリソース例えば、ホストマシンのクロックにアクセスすることによって決定することができる。いくつかの例示的な実施形態において、応答決定器240は、以前に提供された時間より前の時間を提供するように動作することができる。時間は狭義単調増加関数なので、このような応答は、非クラウドコンピューティング環境においては、一般に妥当な応答ではない。しかしながら、クラウドコンピューティング環境においては、第1の応答は第1のホストの第1のクロックによって提供されることがあり、他方、第2の応答は第2のホストの第2のクロックによって提供されることがあるので、このような応答が生じることがある。いくつかの例示的な実施形態において、応答決定器240は、その時間と以前に提供された時間との間の差が、以前に提供された時間を提供したときとその時間との間の実際の時間差よりも長いような時間を提供するように動作することができる。このような方法で、クロックの前方へのスキップをシミュレートすることができる。あるいは、これを用いて、コンピュータプログラムを実行するコンピュータにより、動作の遅い性能のいくつかの態様をシミュレートすることができる。いくつかの例示的な実施形態において、コンピュータプログラムは、タイムアウト値に応答するものとすることができ、提供された時間を用いて、タイムアウト値に達したときのコンピュータプログラムの動作を検査することができる。いくつかの例示的な実施形態において、コンピュータプログラムは、動作の近似タイミングを潜在的に仮定していることがある。例えば、コンピュータプログラムのプログラマは、所定量の時間中にいくつかの並行動作が完了することを仮定しているので、所定量の時間が経つとスリープコマンドが起動されることがある。いくつかの例示的な実施形態において、応答決定器240は、クロックにアクセスして現在時間を決定することができる。決定された時間は、現在時間から少なくとも所定の持続時間だけ後の時間とすることができる。例えば、現在時間が09:10:20であって、所定の持続時間が1分間の場合、決定された時間は、09:11:22、09:20:00、10:00:00、又は23:00:00などとすることができる。いくつかの例示的な実施形態において、時間の最小シフトに加えて又はその代わりに、時間の最大シフトを予め定めることができる。例えば、時間は、2分間の最小シフトでシフトさせることができ、10分間の最大シフトでシフトさせることができる。いくつかの例示的な実施形態において、装置200は、第1の要求に応答して現在の時間を提供し、連続した要求に応答して、この段落に従う時間を提供するように構成することができ、それゆえ、高速クロックspeedyclockを有する場合のシミュレーションを提供する。高速クロックは、実質的にペースが速いものであり得る例えば、高速クロックは、1秒ごとに10秒スキップする。いくつかの例示的な実施形態において、報告される2つの連続した時間要求間の時間の経過が実際よりも長く/短く報告されるので、この応答は、遅い又は速い処理デバイスによるコンピュータプログラムの実行のシミュレーションを提供する。別の言い方をすれば、ある時間間隔の間に現実に実施される命令の数が、より短い/長い時間間隔の間に実施されたものとして報告される。いくつかの例示的な実施形態において、ランダム化モジュール245を利用して、ランダム又は擬似ランダムな方式で応答を決定することができる。ランダム化モジュール245を利用して、基準値の所定範囲内の応答を決定することができる。いくつかの例示的な実施形態において、装置200は、プロセッサ202を含むことができる。プロセッサ202は、中央処理装置CPU、マイクロプロセッサ、電子回路、又は集積回路ICなどとすることができる。プロセッサ202を利用して、装置200又はそのいずれかのサブコンポーネントによって要求される計算を実施することができる。本発明のいくつかの例示的な実施形態において、装置200は、入力/出力I/Oモジュール205を含むことができる。I/Oモジュール205を利用して、図1の140のようなユーザに出力を提供し、かつユーザから入力を受け取ることができる。いくつかの例示的な実施形態において、装置200は、記憶デバイス207を含むことができる。記憶デバイス207は、ハードディスクドライブ、フラッシュディスク、ランダムアクセスメモリROM、メモリチップなどとすることができる。いくつかの例示的な実施形態において、記憶デバイス207は、装置200のサブコンポーネントのいずれかに関連付けられた動作をプロセッサ202に行わせるよう動作する、プログラムコードを保持することができる。いくつかの例示的な実施形態において、記憶デバイス207は、以前に提供された応答を保持することができる。ここで、本発明のいくつかの例示的な実施形態による、方法のフローチャート図を示す図3を参照する。図3は、特に、アクセスされるリソースが、時間を戻すクロックである例に言及しているが、本発明は、この例に限定されない。ステップ300において、検査されるコンピュータプログラムを得ることができる。コンピュータプログラムの二進表現を得ることができる。ソースコード表現を得ることができる。コンピュータプログラムは、図2の205のような入力モジュールによって得ることができる。ステップ310において、コンピュータプログラムを、コンピュータ化された機器によって実行することができる。コンピュータプログラムは、その動作の検査を目的として実行することができる。コンピュータプログラムは、図2の210のような検査モジュールによって実行され、検査されることができる。ステップ320において、クロックに対するアクセス要求を識別することができる。識別は、図2の220のようなアクセス識別器によって行うことができる。いくつかの例示的な実施形態において、識別は、コンピュータプログラムを前処理すること、又はコンピュータプログラムをその実行の前に適切なコードで計装化することなどによって、イネーブルにすることができる。ステップ330において、アクセス要求を遮断することができる。いくつかの例示的な実施形態において、アクセス要求は遮断されることがあり、かつ、クロックは、アクセスされることも、されないこともある。いくつかの例示的な実施形態において、アクセス要求は、図2の225のようなコード計装器によって計装化されたコードを実行することによって遮断することができる。遮断は、図2の230のような遮断器によって行うことができる。ステップ340において、アクセスに応答して提供される時間を決定することができる。この時間は、図2の240のような応答決定器によって決定することができる。この時間を、コンピュータプログラムに提供することができる。決定と決定された時間の提供とが行われた後、さらなるアクセス要求を識別し、本発明に従ってこれに応答することができる。いくつかの例示的な実施形態において、提供される時間を決定することは、ステップ342及び344を含む。ステップ342において、以前に提供された時間を得ることができる。この時間は、図2の207のような記憶デバイスから得ることができる。ステップ344において、以前に提供された時間より前の時間をランダムに決定することができる。この決定は、図2の245のようなランダム化モジュールを用いて行うことができる。決定された時間は、以前に提供された時間よりも早い時間であり得るので、戻される時間が狭義単調増加関数であるという、クラウドコンピューティング環境においては正しくないことがある仮定を無効化することができる。決定される時間は、この時間と以前に提供された時間との間の時間差が、これらの2つの時間値の提供の間に実際に経過した時間よりも長くなるように、決定することができる。いくつかの例示的な実施形態において、提供される時間を決定することは、ステップ346及び348を含む。ステップ346において、ステップ342と同様の方法で、以前に提供された時間を得ることができる。ステップ348において、以前に提供された時間の所定の範囲内のランダムな時間を決定することができる。ランダムな時間は、図2の245のようなランダム化モジュールを用いて決定することができる。所定の範囲は、図1の140の様なユーザによって決定された範囲とすることができる。いくつかの例示的な実施形態において、コンピュータプログラムの十分な検査が例えば、カバレージメトリクスcoveragemetrics、又はQAスタッフメンバによる決定などに基づいて実行された後は、そのコンピュータプログラムは、クラウド上にロードしてそこで動作させるのに安全であるとみなすことができる。いくつかの例示的な実施形態において、クラウドの管理権限は、十分に検査されていないコンピュータプログラムのロードを禁止することができる。本発明は、コンピュータプログラムがクラウド上にロードされる前に、単独の検査又は追加検査として用いることができる。以下の実施例は、開示を明確にするためにのみ提供されるものであって、本発明の範囲を限定するものと解釈されるべきではない。以下のコード断片を考える:time1=gettime;time2=gettime;timersubtime1,time2,diff;assertdiff.tv_sec>=0;time1=gettimeここでtimersubは、time2からtime1を差し引くことによってtime1とtime2との間の時間差を求め、この時間差をdiffに代入するように動作する関数である。このコード断片は、非クラウドコンピューティング環境において検査される場合、time1が、設定time2に関連付けられたクロック読み取りの前に行われたクロック読み取りに基づいて設定されるので、安定である。しかしながら、クラウドコンピューティング環境においては、time1は、time2の後の時間を含むことができるので、この仮定は誤りである場合がある。本発明を利用して、このコード断片を検査し、クラウドコンピューティング環境におけるいくつかのシナリオにおいて、time2がtime1の後で設定されたとしても、time1の前の時間であり得ることを判定する。本発明を利用して、コンピュータプログラムを実行し、リソースに対するアクセス要求例えば、関数gettimeの呼び出しを識別し、アクセス要求を遮断し、戻りで提供すべき応答を決定することによって、このコード断片を含むコンピュータプログラムを検査することができる。本開示はクラウドコンピューティングに関する詳細な説明を含んでいるが、ここで述べられている教示の実装は、クラウドコンピューティング環境に限定されるものではないことを理解されたい。むしろ、本発明の実施形態は、現在公知の又は今後開発されるその他の任意の種類のコンピューティング環境に関連して実装することが可能である。便宜のため、以下の定義は、クラウドコンピューティング環境の完全な理解に備えて開示される。定義は、本出願と共に提出されたIDSにおいて引用され、その複写がここに添付される、非特許文献1に由来したものである。クラウドコンピューティングは、最小限の管理努力又はサービスのプロバイダとの対話で、迅速に供給及び解放されることができる、構成可能なコンピューティングリソース例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービスの共有プールへの便利なオンデマンドのネットワークアクセスを可能にする、サービスデリバリーのモデルである。このクラウドモデルは、少なくとも5つの特性と、少なくとも3つのサービスモデルと、少なくとも4つの配置モデルとを含むことができる。特性は、下記の通りである。オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間及びネットワークストレージといったコンピューティング能力を一方向に供給することができる。広範なネットワークアクセス:機能は、ネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム例えば、携帯電話、ラップトップ、及びPDAによる使用を促進する標準機構を通じてアクセスされる。リソースのプール:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを用いて複数のコンシューマに供され、異なる物理リソース及び仮想リソースが、要求に応じて動的に割当てされ、かつ再割当てされる。コンシューマは、一般に、提供されるリソースの正確な位置に関する制御又は知識を持たないが、より高次の抽象レベル例えば、国、州、又はデータセンタで位置を指定することができるという意味で、位置独立という概念がある。迅速な弾力性:機能は、すばやくスケールアウトするように、迅速かつ弾力的に、場合によっては自動的に供給されることが可能であり、かつ、すばやくスケールインするように、迅速に解放されることが可能である。コンシューマにとっては、供給のために利用可能な機能は多くの場合、無限に見え、いつでも任意の量で購入することができる。計測されるサービス:クラウドシステムは、サービスの種類例えば、ストレージ、処理、帯域幅、及びアクティブユーザアカウントに適したいくつかの抽象層における計量機能を強化することによって、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視し、制御し、報告することで、使用されているサービスのプロバイダ及びコンシューマの両方に対して透明性を提供することができる。サービスモデルは、以下の通りである。サービスとしてのソフトウェアSoftwareasaServiceSaaS:コンシューマに提供される機能は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ例えば、ウェブベースの電子メールのようなシンクライアントインタフェースを通じて、種々のクライアントデバイスからアクセス可能である。コンシューマは、限定されたユーザ特有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーションの機能さえ含む、基礎をなすクラウドインフラストラクチャを管理又は制御することはない。サービスとしてのプラットフォームPlatformasaServicePaaS:コンシューマに提供される機能は、プロバイダがサポートするプログラミング言語及びツールを用いて作成された、コンシューマが作成した又は獲得したアプリケーションをクラウドインフラストラクチャ上に配置することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御することはないが、配置されたアプリケーションと、可能であれば環境構成をホストするアプリケーションとに対する制御を有する。サービスとしてのインフラストラクチャInfrastructureasaServiceIaaS:コンシューマに提供される機能は、処理、ストレージ、ネットワーク、及びその他の基本的なコンピューティングリソースの提供であり、コンシューマは、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアを配置し、実行させることが可能である。コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御することはないが、オペレーティングシステム、ストレージ、配置されたアプリケーションに対する制御と、可能であれば選択ネットワーキングコンポーネント例えば、ホストのファイアウォールの限定された制御とを有する。配置モデルは、以下の通りである。プライベートクラウド:クラウドインフラストラクチャは、1つの組織のために単独で動作する。これは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された利害関係例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンスの考慮事項を有する特定のコミュニティをサポートする。これは、それらの組織又は第三者によって管理することができ、構内又は構外に存在することができる。パブリッククラウド:クラウドインフラストラクチャは、公衆又は大きな産業グループにとって利用可能なものとされ、クラウドサービスを販売する組織によって所有される。ハイブリッドクラウド:クラウドインフラストラクチャは、2つ又はそれ以上のクラウドプライベート、コミュニティ、又はパブリックの複合体であり、これらは、ユニークなエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は所有技術によって、互いに結合される例えば、クラウド間の負荷バランスのためのクラウドバースティング。クラウドコンピューティング環境は、サービス指向であり、国籍のないこと、低カップリング、モジュール性、及び意味論的相互運用性に焦点を合わせている。クラウドコンピューティングの核心は、相互接続されたノードのネットワークを含む、インフラストラクチャである。ここで、図1の105のような例証的なクラウドコンピューティング環境50が描かれた、図4を参照する。図示されているように、クラウドコンピューティング環境50は、例えば、携帯型情報端末PDA又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び又は自動車コンピュータシステム54Nのようなクラウドコンシューマによって使用されるローカルコンピューティング機器が通信する、1つ又は複数のクラウドコンピューティングノードを含む。ノード10は、互いに通信することができる。これらは、例えば、上述のようなプライベート、コミュニティ、パブリック、又はハイブリッドクラウド又はそれらの組合せのような1つ又は複数のネットワークに、物理的又は仮想的にグループ化することができる図示せず。これにより、クラウドコンピューティング環境50は、クラウドコンシューマがローカルコンピューティング機器上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム及び又はソフトウェアを提供することが可能になる。図4に示されるコンピューティング機器54A-Nの種類は、例示のみを意図していること、並びに、コンピューティングノード10及びクラウドコンピューティング環境50は、任意の種類のネットワーク及び又はネットワークアドレス可能な接続を介して例えば、ウェブブラウザを用いて、任意の種類のコンピューティング機器と通信することができることを理解されたい。ここで、図5を参照すると、クラウドコンピューティング環境50図4によって提供される機能的抽象層の集合が示される。図5に示されるコンポーネント、層、及び機能は、例示のみを意図しており、本発明の実施形態は、それらに限定されないことを、予め理解されたい。図示されているように、以下の層及び対応する機能が提供される。ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、一例としてIBM登録商標zSeries登録商標システムがある、メインフレーム、一例としてIBMpSeries登録商標システムがある、RISC縮小命令セットコンピュータアーキテクチャベースのサーバ、IBMxSeries登録商標、IBMBladeCenter登録商標システム、ストレージ、ネットワーク及びネットワーキングコンポーネントが含まれる。ソフトウェアコンポーネントの例には、一例としてIBMWebSphere登録商標アプリケーションサーバソフトウェアがある、ネットワークアプリケーションサーバソフトウェア、及び、一例としてIBMDB2登録商標データベースソフトウェアがあるデータベースソフトウェアが含まれる。IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere及びDB2は、世界中の多数の管轄において登録された、インターナショナルビジネスマシーンズコーポレーションの商標である仮想化層62は、以下の仮想エンティティの例、すなわち、仮想サーバ、仮想ストレージ、仮想私設ネットワークを含めた仮想ネットワーク、仮想アプリケーション及びオペレーションシステム、並びに仮想クライアントがそこから提供される、抽象層を提供する。一例において、管理層64は、以下で説明される機能を提供することができる。リソース提供は、クラウドコンピューティング環境内でタスクを実施するために利用される、コンピューティングリソース及びその他のリソースの動的な調達を提供する。計量及び価格決定は、リソースがクラウドコンピューティング環境内で利用されているときのコスト追跡、及び、これらのリソースの消費についての請求書作成又はインボイス送付を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含むことができる。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザポータルは、コンシューマ及びシステム管理者に対して、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理は、要求されるサービスレベルに合致するように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベル同意SLA計画及び遂行は、SLAに従って将来的な要求が予期されるクラウドコンピューティングリソースのための、事前準備及び調達を提供する。作業負荷層66は、クラウドコンピューティング環境を利用することができる目的となる機能の例を提供する。この層から提供される作業負荷及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及び寿命サイクル管理、仮想教室教育配信、データ解析処理、及びトランザクション処理などが含まれる。図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及び動作を例証する。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理関数を実装するための1つ又は複数の実行可能な命令を含む、モジュール、セグメント、又はプログラムコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で生じることがあることにも留意されたい。例えば、連続して図示された2つのブロックが、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又は、これらのブロックは、ときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図内の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェアベースのシステム、又は専用のハードウェアとコンピュータ命令との組合せによって実装することができることにも留意されたい。当業者であれば分かるように、本発明は、システム、方法又はコンピュータプログラム製品として具体化することができる。従って、本発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、本明細書においてはこれらの全てを一般に、回路、モジュール又はシステムと呼ぶことできる。さらに、本発明の態様は、コンピュータ可読プログラムコードが組み入れられたいずれかの有形の表現媒体内で具体化されたコンピュータプログラム製品の形を取ることができる。1つ又は複数のコンピュータ使用可能媒体又はコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム、装置、デバイス若しくは伝搬媒体とすることができるが、これらに限定されるものではない。コンピュータ可読媒体のより具体的な例非網羅的なリストとして、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能プログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリCDROM、光記憶デバイス、インターネット又はイントラネットをサポートする伝送媒体、又は磁気記憶デバイスが挙げられる。プログラムが印刷された紙又は他の適切な媒体でさえも、そのプログラムを例えば、その紙又は他の媒体の光学スキャンによって電子的にキャプチャし、次いで、必要に応じて、コンパイルし、解釈し、又はそれ以外の適切な手法で処理し、その後、コンピュータメモリ内に格納することができるので、コンピュータ使用可能媒体又はコンピュータ可読媒体とすることができることに留意されたい。本明細書の文脈では、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスによって又はこれらと関連して用いるためのプログラムを収納し、格納し、通信し、伝搬し又は輸送することができる任意の媒体とすることができる。コンピュータ使用可能媒体は、コンピュータ使用可能なプログラムコードが、ベースバンド内で又は搬送波の一部としてその中で具体化された、伝搬されるデータ信号を含むものとすることができる。コンピュータ使用可能プログラムコードは、これらに限定されるものではないが、無線、有線、光ファイバケーブル、及びRFなどを含むいずれかの適切な媒体を用いて伝送することができる。本発明の動作を実行するためのコンピュータプログラムコードは、Java、SmallTalk、Cなどのようなオブジェクト指向型プログラミング言語、及び、Cプログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語のいずれかの組合せで記述することができる。プログラムコードは、全体をユーザのコンピュータ上で実行することができ、スタンドアロン型のソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行することができ、一部をユーザのコンピュータ上で実行し、一部をリモートコンピュータ上で実行することができ、又は、全体をリモートコンピュータ若しくはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワークLAN又は広域ネットワークWANを含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続することができ、又は、例えば、インターネットサービスプロバイダを用いるインターネットを通じて外部コンピュータに対する接続を行うこともできる。以下の特許請求の範囲における全ての手段又はステップと機能との組合せミーンズ又はステッププラスファンクション要素の対応する構造、材料、動作及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は動作をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかである。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に適したものとして理解することを可能にするために、選択及び記載された。"