【誤訳訂正書】
【提出日】平成26年9月30日(2014.9.30)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】０００５
【訂正方法】変更
【訂正の内容】
【０００５】
本発明は、コンピューティング環境でソフトウェアを監視する技術を提供する。本明細書に開示した一実施形態では、複数のコンポーネントを有するアプリケーションを計測するための方法は、コンピュータに実装される次のステップを含む。ステップは、（ａ）どのコンポーネントの内部に複数のプローブを配置するかを判定するためにアプリケーションを自動的に解析すること；（ｂ）ステップは、判定されたコンポーネントに複数のプローブを自動的に付加することを含み；（ｃ）アプリケーションが実行している間に複数のプローブからデータを受信すること；（ｄ）データに基づいて第１のコンポーネント内の第１のプローブに対して１以上のメトリックを決定すること；（ｅ）第１のプローブの１以上のメトリックに基づいて、第１のプローブを修正するか否かを判定すること；および（ｆ）１以上のメトリックの決定、及び、付加的な複数のプローブに対する修正を行うか否かの判定を繰り返すこと、を含む。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００２５
【訂正方法】変更
【訂正の内容】
【００２５】
ステップ４１０では、ステップ４０８で受信したデータに基づいて、１以上のメトリックが第１のプローブに対して判定される。説明のために、第１のプローブは、アプリケーション１５１内の第１のコンポーネント（例えばメソッド）に、元々配置されている。メトリックは、第１のプローブによって収集されたパフォーマンスデータに基づいており、また同様に他の複数のプローブによって収集されたパフォーマンスデータにも基づくものでもある。しかし、一般的に、メトリックは、第１のコンポーネントの実行に関与する。あるメトリックは、第１のコンポーネントが呼び出される頻度である。この情報は、アプリケーションからプローブを削除するか、またはアプリケーション内の別のコンポーネントにプローブを移動するか、のどちらを行うかを判定するのに役立つ。別のメトリックは、同時実行性に関与する。例えば、同時実行中のスレッドの数を１つのメトリックと決めることができる。換言すると、第１のコンポーネントに関係付けられている同時実行のスレッド数を決めることが可能となる。あるメトリックは、平均実行時間に関与することがある。例えば、第１のコンポーネントが実行するための平均時間を決めることができる。マネージャ１２０、エージェント１１２の１つまたは別のエンティティが、メトリックを決める。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００２６
【訂正方法】変更
【訂正の内容】
【００２６】
ステップ４１２では、１以上のメトリックの解析に基づいて第１のプローブが修正されるべきか否かの判定が行われる。一例として、第１のコンポーネントの呼出し率が高すぎる場合には、第１のプローブは修正されるべきである。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００２７
【訂正方法】変更
【訂正の内容】
【００２７】
第１のプローブが修正されるべきであると判定された場合、ステップ４１４において第１のプローブがいくつかの方法で修正される。修正の例としては、アプリケーション１５１から第１のプローブを削除し、アプリケーション１５１内の別の場所（例えば、コンポーネント）に第１のプローブを移動することを含むが、これに限定されない。異なるタイプまたはレベルの計測を提供することも可能で、例えば、コンポーネントの実行について多くの側面が追跡される高レベルの計測や、コンポーネントの実行についてほんの一部の側面しか追跡されない低レベルの計測などがある。したがって、その修正は、プローブがコンポーネント内でどのように実装されているかを修正するものとなり得る。一例として、プローブがプログラムループ内に命令を持つ場合、それらの命令は削除され得る。いくつかの実施例では、アプリケーション１５１が実行されているときには、修正が動的に行われる。したがって、アプリケーション１５１は、プローブを修正するためにシャットダウンされる必要はない。ステップ４１０〜４１４のさらなる詳細が図５の説明に関連して説明される。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００２８
【訂正方法】変更
【訂正の内容】
【００２８】
第１のプローブが修正されているか否かに関わらず、ステップ４２０で、付加されたプローブが存在するか否かについての判定が行われることによって処理が継続する。もしそうであれば、処理４００は、次のプローブのために１以上のメトリックを判定するため、ステップ４１０に戻る。すべてのプローブが解析されるまで処理は継続する。あるプローブはアプリケーションから削除され、またあるプローブはアプリケーション内の他のコンポーネントへ移動されて、他のプローブは変更されないという結果となる。他の修正がプローブに行われ得る。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００３２
【訂正方法】変更
【訂正の内容】
【００３２】
プローブが別のコンポーネントに移動される場合、これはプローブが厳密に同じ状態を維持していることを意味しないことに留意されたい。本明細書で使用する「プローブを別のコンポーネントに移動する」または類似のフレーズは、第１のコンポーネントにプローブが存在する、というよりも、プローブが他のコンポーネントに挿入される、ということを意味する。他のコンポーネントは、当然、異なる命令を持っていることから、新しいプローブはその新しいコンポーネントに合うように調整される。例えば、いくつかの実施形態では、プローブはコンポーネントのエントリポイントにおける開始タイマーおよび各出口における終了タイマーを有する。そのため、プローブを移動した後には終了タイマーの数が異なる場合がある。いくつかの実施形態で、プローブは、コンポーネント内のプログラムループの近くに配置された命令を有する。そのため、新しいコンポーネントが異なる数のループを有する場合には、プローブを実装するために使用される命令に影響を与えることがある。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００８３
【訂正方法】変更
【訂正の内容】
【００８３】
本明細書に開示される一実施形態は、複数のコンポーネントを有するアプリケーションを計測するためのコンピュータに実装される方法を含む。この方法は、どのコンポーネントの内部に複数のプローブを配置するかを判定するためにアプリケーションを自動的に解析すること；判定されたコンポーネントに自動的に複数のプローブを付加すること；アプリケーションが実行している間に複数のプローブからデータを受信すること；データに基づいて第１のコンポーネント内の第１のプローブに対して１以上のメトリックを決定すること；第１のプローブの１以上のメトリックに基づいて、第１のプローブを修正するか否かを判定すること；１以上のメトリックの決定と付加的なプローブに対する修正を行うか否かの判定とを繰り返す、マシンに実装されたステップを含む。
【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】００８４
【訂正方法】変更
【訂正の内容】
【００８４】
本明細書に開示される一実施形態では、アプリケーションを計測するための方法を実行する、少なくとも１つのプロセッサをプログラムするためのコンピュータで読み込み可能な格納された命令を有する、コンピュータで読み取り可能な記憶装置を含む。この方法は：複数のプローブを配置するためのアプリケーション内の場所を判定するためアプリケーションを静的に解析すること；アプリケーションの判定された場所にプローブを静的に付加すること；アプリケーションが実行している間にプローブ複数のによってデータを収集すること；データに基づいて第１のプローブの１以上のメトリックを判定すること；第１のプローブの１以上のメトリックに基づいて、アプリケーションから第１のプローブを削除するか否かを判定すること；第１のプローブの１以上のメトリックに基づいて、第１のプローブをアプリケーション内の別の場所に移動するか否かを判定すること；１以上のメトリックの判定、アプリケーションからプローブを削除するか否かの判定および付加的なプローブのためにプローブを別の場所に移動するか否かの判定、を繰り返すること、を含む。
【誤訳訂正９】
【訂正対象書類名】明細書
【訂正対象項目名】００８５
【訂正方法】変更
【訂正の内容】
【００８５】
本明細書に開示される一実施形態は、１以上のプロセッサを有するシステム；および１以上のプロセッサに結合されているコンピュータで読み取り可能は記憶装置を含む。コンピュータで読み取り可能な記憶装置は、コンピュータで読み取り可能な格納された命令を有し、１以上のプロセッサ上で実行すると、この１以上のプロセッサに複数のコンポーネントを有するアプリケーションを計測させる。１以上のプロセッサは：ａ）どのコンポーネントの内部に複数のプローブを静的に配置するかを判定するためにアプリケーションを自動的に解析し；ｂ）アプリケーションが実行していない間に、判定されたコンポーネントのアプリケーションに複数のプローブを自動的に付加し；ｃ）アプリケーションが実行されている間に複数のプローブからデータを受信し；ｄ）データに基づいて、第１のコンポーネント内の第１のプローブに対して１以上のメトリックを判定し；ｅ）第１のプローブの１以上のメトリックに基づいて、アプリケーション内の別のコンポーネントに第１のプローブを移動するか否かを判定し；ｆ）前記ｅ）の判定がそのように示す場合、アプリケーションが実行している間にアプリケーション内の別のコンポーネントに第１のプローブを移動し；ｇ）第１のプローブの１以上のメトリックに基づいて、アプリケーションから第１のプローブを削除するか否かを判定し；ｈ）前記ｇ）の判定がそのように示す場合、アプリケーションが実行している間にアプリケーションから第１のプローブを削除し；およびｉ）付加的なプローブのために前記ｄ）から前記ｈ）を繰り返す。
【誤訳訂正１０】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
複数のコンポーネントを有するアプリケーションを計測する方法であり、コンピュータに実装される以下のステップ：
どのコンポーネントの内部に複数のプローブを配置するかを判定するためにアプリケーションを自動的に解析すること（４０２）；
判定されたコンポーネントに複数のプローブを自動的に付加すること（４０４）；
アプリケーションが実行されている間に複数のプローブからデータを受信すること（４０８）；
前記データに基づいて第１のコンポーネント内の第１のプローブに対する１以上のメトリックを決定すること（４１０）；
前記第１のプローブに対する前記１以上のメトリックに基づいて前記第１のプローブを修正するか否かを判定すること（４１４）；および
１以上のメトリックの決定、及び、付加的なプローブに対する修正を行うか否かの判定を繰り返すこと（４２０）、
を備える方法。
【請求項２】
請求項１の方法であり、
前記第１のプローブを修正するか否かの判定に基づいて、アプリケーションが実行されている間に前記第１のプローブを修正することをさらに含む。
【請求項３】
請求項１または２の方法であり、
前記第１のプローブに対する前記１以上のメトリックに基づいて前記第１のプローブを修正するか否かを判定することは、前記第１のコンポーネント内に前記第１のプローブをとどめるか、前記アプリケーションから前記第１のプローブを削除するか、あるいは、前記第１のプローブを前記アプリケーション内の別のコンポーネントへ移動するか、を決定することを含む。
【請求項４】
請求項１から３のいずれかの方法であり、
前記第１のプローブに対する前記１以上のメトリックに基づいて前記第１のプローブを修正するか否かを判定することは、
前記第１のコンポーネントの呼出し率が閾値よりも大きいか否かを判定すること；および
前記呼出し率が閾値よりも大きいとの判定に応答して以下のいずれか：
前記アプリケーションから前記第１のプローブを削除すること；
前記アプリケーション内の別のコンポーネントへ前記第１のプローブを移動すること；または
前記第１のコンポーネントよりコールグラフの上位のコンポーネントに前記第１のプローブを移動すること；
を実行すること、を含む。
【請求項５】
請求項１から３のいずれか１項の方法であり、
前記第１のプローブに対する前記１以上のメトリックに基づいて前記第１のプローブを修正するか否かを判定することは、
前記第１のコンポーネントの呼出し率が閾値よりも小さいか否かを判定すること；および
前記呼出し率が閾値より小さいとの判定に応答して以下のいずれか：
前記アプリケーションから前記第１のプローブを削除すること；
前記アプリケーション内の別のコンポーネントへ前記第１のプローブを移動すること；または
前記第１のコンポーネントよりコールグラフの下位のコンポーネントに前記第１のプローブを移動すること；
を実行すること、を含む。
【請求項６】
請求項１から３のいずれか１項の方法であり、
前記第１のプローブに対する前記１以上のメトリックに基づいて前記第１のプローブを修正するか否かを判定することは、
前記第１のコンポーネントに関連したスレッドの同時実行性が閾値よりも大きいか否かを判定すること；および
前記第１のコンポーネントに関連したスレッドの同時実行性が閾値よりも大きい場合、前記第１のコンポーネントよりコールグラフの下位のコンポーネントへ前記第１のプローブを移動することを決定すること、を含む。
【請求項７】
請求項１から３のいずれか１項の方法であり、
前記第１のプローブに対する前記１以上のメトリックに基づいて前記第１のプローブを修正するか否かを判定することは、
前記第１のコンポーネントの実行時間が閾値よりも大きいか否かを判定すること；および
前記第１のコンポーネントの実行時間が閾値よりも大きい場合、前記第１のコンポーネントよりコールグラフの下位のコンポーネントへ前記第１のプローブを移動することを決定すること、を含む。
【請求項８】
請求項１から７のいずれか１項の方法であり、
前記アプリケーションを自動的に解析することは静的に実行され、少なくともいくつかのコンポーネントに複数のプローブを自動的に付加することは、前記アプリケーションが実行されていない間に行われる。
【請求項９】
複数のコンポーネントを有するアプリケーションを計測する１以上のプロセッサ（２３０）を備えるシステムであり、その１以上のプロセッサは：
ａ）どのコンポーネントの内部に複数のプローブを静的に配置するかを判定するためにアプリケーションを自動的に解析し；
ｂ）前記アプリケーションが実行していない間に、判定されたコンポーネントの前記アプリケーションに複数のプローブを自動的に付加し；
ｃ）前記アプリケーションの実行している間に前記複数のプローブからデータを受信し；
ｄ）前記データに基づいて第１のコンポーネント内の第１のプローブに対する１以上のメトリックを決定し；
ｅ）前記第１のプローブに対する前記１以上のメトリックに基づいて前記アプリケーション内の別のコンポーネントへ前記第１のプローブを移動するか否かを判定し；
ｆ）前記ｅ）の判定がそのように示す場合、前記アプリケーションが実行されている間に前記アプリケーション内の別のコンポーネントへ前記第１のプローブを移動し；
ｇ）前記第１のプローブに対する前記１以上のメトリックに基づいて前記アプリケーションから前記第１のプローブを削除するか否かを判定し；
ｈ）前記ｇ）の判定がそのように示す場合、前記アプリケーションが実行されている間に前記アプリケーションから前記第１のプローブを削除し；および
ｉ）付加的なプローブのために前記ｄ）から前記ｈ）を繰り返す。
【請求項１０】
請求項９のシステムであり、
前記１以上のプロセッサは、前記第１のプローブを前記アプリケーション内の別のコンポーネントに移動するか否かの判定の一部として、前記第１のコンポーネントの呼出し率が閾値よりも大きいか否かを判定する。
【請求項１１】
請求項１０のシステムであり、
前記１以上のプロセッサは、前記第１のコンポーネントの呼出し率が閾値よりも大きい場合、前記第１のコンポーネントよりコールグラフの下位のコンポーネントに前記第１のプローブを移動する。
【請求項１２】
請求項９のシステムであり、
前記１以上のプロセッサは、前記第１のプローブを前記アプリケーション内の別のコンポーネントに移動するか否かの判定の一部として、前記第１のコンポーネントの呼出し率が閾値よりも小さいか否かを判定する。
【請求項１３】
請求項１２のシステムであり、
前記１以上のプロセッサは、前記第１のコンポーネントの呼出し率が閾値よりも小さい場合、前記第１のコンポーネントよりコールグラフの上位のコンポーネントに前記第１のプローブを移動する。
【請求項１４】
請求項９のシステムであり、
前記１以上のプロセッサは、前記第１のプローブを前記アプリケーション内の別のコンポーネントに移動するか否かの判定の一部として、前記第１のコンポーネントに関連したスレッドの同時実行性が閾値よりも大きいか否かを判定し、前記１以上のプロセッサは、前記第１のコンポーネントに関連したスレッドの同時実行性が閾値よりも大きい場合、前記第１のコンポーネントよりコールグラフの下位のコンポーネントに前記第１のプローブを移動する。
【請求項１５】
請求項９のシステムであり、
前記１以上のプロセッサは、前記第１のプローブを前記アプリケーション内の別のコンポーネントに移動するか否かの判定の一部として、前記第１のコンポーネントの実行時間が閾値よりも大きいか否かを判定し、前記１以上のプロセッサは、前記第１のコンポーネントの実行時間が閾値よりも大きい場合、前記第１のコンポーネントよりコールグラフの下位のコンポーネントに前記第１のプローブを移動する。