(57)【特許請求の範囲】
【請求項１】
仮想マシンインテグリティを監視する装置であって、
第１のプロセッサ素子と、
第１のロジックであり、
第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、
第２のプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、
前記第２のプロセッサ素子が、ＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、且つ
前記決定のインジケーションをコンピューティング装置に送信する
第１のロジックと、
を有する装置。
【請求項２】
前記第１のロジックは、
前記第２のプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、割込コントローラの状態を監視し、且つ
前記第２のプロセッサ素子が前記割込コントローラを再び有効化したかを決定する、
請求項１に記載の装置。
【請求項３】
前記第１のロジックは、
前記第２のプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ
前記第２のプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定する、
請求項１に記載の装置。
【請求項４】
前記第１のロジックは、
健全性検出部と前記第１及び第２のプロセッサ素子とを有するサーバの前記健全性検出部を監視し、且つ
前記サーバの健全性のインジケーションを前記コンピューティング装置に送信する、
請求項１に記載の装置。
【請求項５】
当該装置は前記第２のプロセッサ素子及び割込コントローラを有し、前記ＶＭＭウォッチャーは第２のロジックを有し、
前記第２のロジックは、
前記割込コントローラのレジスタに書き込むことで、前記割込コントローラを再び有効化し、
前記ＶＭＭウォッチャーの実行を止め、且つ
前記ＶＭＭを実行する、
請求項１に記載の装置。
【請求項６】
当該装置は前記第２のプロセッサ素子を有し、前記ＶＭＭウォッチャーは第２のロジックを有し、
前記第２のロジックは、
前記ＶＭＭの実行中に前記ＶＭＭのインテグリティの検証の結果を指し示す結果データが前記コンピューティング装置に送信される準備を整え、且つ
前記ＶＭＭウォッチャーの実行の停止と前記ＶＭＭの実行の開始とを生じさせる、
請求項１に記載の装置。
【請求項７】
当該装置は前記第１のタイマーを有し、前記第１のタイマーは、前記第１の期間の継続時間をランダムに選択するランダム化タイマーを有する、請求項１に記載の装置。
【請求項８】
当該装置は前記第２のプロセッサ素子を有し、前記ＶＭＭウォッチャーは、前記ＶＭＭに埋め込まれたデジタル署名をキーを用いて検証する第２のロジックを有する、請求項１に記載の装置。
【請求項９】
当該装置は前記第２のプロセッサ素子を有し、前記ＶＭＭウォッチャーは、前記第２のタイマーのレジスタに書き込んで前記第２のタイマーを停止させることで前記ＶＭＭウォッチャーの完了を指し示す第２のロジックを有する、請求項１に記載の装置。
【請求項１０】
仮想マシンインテグリティを監視する装置であって、
プロセッサ素子と、
前記プロセッサ素子をサーバに結合する第１のインタフェースと、
ロジックであり、
前記サーバの第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、
ＶＭＭのインテグリティを検証するＶＭＭウォッチャーが、前記サーバの第２のタイマーが第２の期間の終わりに到達する前に、前記サーバのプロセッサ素子によって実行されたか、を指し示す第１の結果データを受信し、且つ
前記検証の結果を指し示す第２の結果データの受信を待つ
ロジックと、
を有する装置。
【請求項１１】
前記ロジックは、前記サーバからの前記第２の結果データの受信がないことに応答して、少なくとも前記第１の結果データを分析して、前記第２の結果データの受信がないことの原因を決定する、請求項１０に記載の装置。
【請求項１２】
前記ロジックは、前記サーバのコンポーネントの温度、前記サーバへの電力の供給の電圧レベル、前記サーバのバスの活動のインジケーション、未修正のアレイ／ロジックエラーのインジケーション、及び前記サーバのクロック信号の存在若しくは不存在のインジケーション、のうちの少なくとも１つを有する前記サーバの健全性のインジケーションを受信する、請求項１１に記載の装置。
【請求項１３】
前記ロジックは、前記サーバを再始動させるように前記サーバのコントローラに信号伝達すべきかを決定する、請求項１２に記載の装置。
【請求項１４】
前記ロジックは、前記サーバの前記健全性の前記インジケーションに応答して、前記サーバを修理する必要性のインジケーションを提示する、請求項１２に記載の装置。
【請求項１５】
当該装置はディスプレイを有し、前記ロジックは、前記ＶＭＭのインテグリティが前記ＶＭＭウォッチャーによって検証されないことを指し示す前記第２の結果データの受信に応答して、損なわれている前記ＶＭＭのインテグリティのインジケーションを視覚的に提示する、請求項１０に記載の装置。
【請求項１６】
仮想マシンインテグリティを監視するコンピュータ実行される方法であって、
サーバの第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、
前記サーバのメインプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、
前記メインプロセッサ素子が、前記サーバのＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、前記サーバの第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、
前記サーバの健全性状態の少なくとも１つの検出部を監視し、且つ
前記健全性状態及び前記決定を指し示す結果データをコンピューティング装置に送信する、
ことを有するコンピュータ実行される方法。
【請求項１７】
前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記サーバの割込コントローラの状態を監視し、且つ
前記メインプロセッサ素子が前記割込コントローラを再び有効化したかを決定する、
ことを有する請求項１６に記載のコンピュータ実行される方法。
【請求項１８】
前記ＶＭＭのインテグリティの検証後に、前記割込コントローラのレジスタに書き込んで前記割込コントローラを再び有効化する、ことを有する請求項１７に記載のコンピュータ実行される方法。
【請求項１９】
前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ
前記メインプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定する、
ことを有する請求項１６に記載のコンピュータ実行される方法。
【請求項２０】
前記第２のタイマーのレジスタに書き込んで前記第２のタイマーを停止させることで、前記ＶＭＭウォッチャーの完了を指し示す、ことを有する請求項１９に記載のコンピュータ実行される方法。
【請求項２１】
前記ＶＭＭに埋め込まれたデジタル署名をキーを用いて検証する、ことを有する請求項１６に記載のコンピュータ実行される方法。
【請求項２２】
命令を有する少なくとも１つの機械可読記憶媒体であって、前記命令は、コンピューティング装置によって実行されるときに、前記コンピューティング装置に、
前記コンピューティング装置の第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、
前記コンピューティング装置のメインプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、
前記メインプロセッサ素子が、前記コンピューティング装置のＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、前記コンピューティング装置の第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、且つ
前記決定を指し示す結果データを別のコンピューティング装置に送信する
ことを行わせる、少なくとも１つの機械可読記憶媒体。
【請求項２３】
前記コンピューティング装置は、
前記コンピューティング装置の健全性状態の少なくとも１つの検出部を監視し、且つ
前記健全性状態のインジケーションを前記結果データに含める
ことを行うようにされる、請求項２２に記載の少なくとも１つの機械可読記憶媒体。
【請求項２４】
前記コンピューティング装置は、
前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記コンピューティング装置の割込コントローラの状態を監視し、且つ
前記メインプロセッサ素子が前記割込コントローラを再び有効化したかを決定する
ことを行うようにされる、請求項２２に記載の少なくとも１つの機械可読記憶媒体。
【請求項２５】
前記コンピューティング装置は、
前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ
前記メインプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定する
ことを行うようにされる、請求項２２に記載の少なくとも１つの機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記載される実施形態は、概して、複数のハードウェア及びソフトウェアコンポーネントを用いて、仮想マシンのインテグリティの階層化されたモニタリングを提供することに関する。
【背景技術】
【０００２】
サーバベースのコンピューティングサービス（例えば、所謂“クラウド”コンピューティング）の使用がよりいっそう普及するにつれ、それらのサービスを提供するために使用されるサーバの安全性がますます重要になっている。また、そのようなサーバによって提供されるサービスの種類が多様に増加している。結果として、他人に提供されるそのようなサービス、及びそれらのサービスを提供するサーバに不正アクセスしようとする者による試み（例えば、所謂“ハッキング”又は“サイバー攻撃”）が、数において増えているとともに、特徴において変わってきている。
【０００３】
そのようなサーバの安全性を危うくする初期の試みは、大きくは、特定種類又は特定範囲のサービスを提供するためにサーバによって使用される特定のアプリケーションソフトウェアを危険にさらすことに注目していた。例として、そのような初期の試みは、特定種類のサービスを提供するためにサーバのプロセッサによって実行されるデータベース管理アプリケーション、検索エンジンアプリケーション、データ保管アプリケーション、通貨取引若しくは金融取引アプリケーションなどを危険にさらすことに注目していた。目的は、多くの場合、機密データを取り扱うアプリケーションの安全性を危うくすることによって、機密データへのアクセスを得ることであった。
【０００４】
しかしながら、より最近の、サーバの安全性を危うくする試みは、オペレーティングシステム、又はサーバ自体のかなり基本的な機能を提供するのに使用されるその他の中核ソフトウェアを危険にさらすことに注目するようになっている。そのような、より最近流行の標的となる中核ソフトウェアの中に、このようなサーバのサービスを使用する顧客がその上で多様な異なるアプリケーションソフトウェア又は組み合わせに係るアプリケーションソフトウェアの何れかの実行を生じさせ得る複数の異なるアカウントに関して別々の仮想マシンの作成及び管理を行う仮想マシンモニタ（ＶＭＭ）がある。
【０００５】
この変わりゆくセキュリティ脅威に応えて、危険にさらされていること及び／又はその他の問題を指し示すインジケーションのために、サーバ上でアクティブな各仮想マシンを常に見張るべく、ＶＭＭソフトウェアの様々なピースが考案されてきている。しかしながら、仮想マシンを危険にさらす試みは、ますます高度になり続けており、今や、ＶＭＭソフトウェア自体を危険にさらす試みを含んでいる。これら及びその他の検討に関して、ここに記載される実施形態が必要とされる。
【図面の簡単な説明】
【０００６】
【図１】コンピューティング装置間でのインタラクションの第１の実施形態を例示する図である。
【図２】図１の実施形態の一部を例示する図である。
【図３】図１の実施形態の一部を例示する図である。
【図４】図１の実施形態の一部を例示する図である。
【図５】図３の部分の一変形例を示す図である。
【図６】第１の論理フローの一実施形態を例示する図である。
【図７】第２の論理フローの一実施形態を例示する図である。
【図８】第３の論理フローの一実施形態を例示する図である。
【図９】処理アーキテクチャの一実施形態を例示する図である。
【発明を実施するための形態】
【０００７】
様々な実施形態は概して、様々なハードウェアコンポーネント及びソフトウェアコンポーネントの提供及び使用によって、多層化された仮想マシンモニタリング（ＶＭＭ）ソフトウェアコンポーネントの状態を監視することに向けられる。より具体的には、アクセスが制限されたハードウェアベースのタイマーの組み合わせと、独立したプロセッサ素子及びストレージを含んだコントローラと、管理装置への補助的な通信チャネルとが協働して、ＶＭＭソフトウェアを監視するウォッチャー（見張り）ソフトウェアを監視する。ＶＭＭソフトウェアは、複数の仮想マシンセッションを監視している。
【０００８】
サーバの少なくともプロセッサ素子とストレージとによって定められるサーバの主動作環境において、各々内でアプリケーションソフトウェアの１つ以上のピース（断片）がプロセッサ素子をして実行される複数の仮想マシンの動作を、ＶＭＭコンポーネントが監視して制御する。ＶＭＭコンポーネントは、１つの仮想マシンから別の仮想マシンへのアクセスに対して制約を強制する。ＶＭＭは、仮想マシン間での不正アクセスの試みに対して、該不正アクセスがその中から試みられている仮想マシンを無効化あるいは除去することによって応答し得る。
【０００９】
主動作環境のストレージのハードウェア保護領域内で、ＶＭＭウォッチャーが、ＶＭＭコンポーネントが正しく機能していること及びそのインテグリティが危険にさらされていないことを確かにするために、ＶＭＭコンポーネントの周期的状態チェックを実行する。周期的状態チェックは、状態チェックをトリガーする各インスタンス間で時間間隔がランダムに変化し得るランダム化ハードウェアタイマーによって引き起こされ得る。このようなＶＭＭコンポーネントの状態チェックの結果を指し示すインジケーションが、ＶＭＭウォッチャーによって、サーバとは別であり且つ異なる管理装置へと送信させられる。
【００１０】
主動作環境とは別であり且つ異なるコントローラ環境において、コントローラストレージに格納され且つコントローラプロセッサ素子によって実行されるウォッチャー検証部が、ＶＭＭウォッチャーが正しく機能していること及びそのインテグリティが危険にさらされていないことを確かにするために、ＶＭＭウォッチャーをチェックする。ＶＭＭウォッチャーのこれらのチェックは、ＶＭＭウォッチャーによって行われるＶＭＭの状態チェックの進捗をウォッチャー検証部が監視することを伴う。このようなＶＭＭウォッチャーのチェックの結果を指し示すインジケーションが、ウォッチャー検証部によって、ＶＭＭウォッチャーによって行うようにされる送信とは別に管理装置へと送信される。
【００１１】
管理装置は、ＶＭＭ及びＶＭＭウォッチャーの状態のこれら別々のインジケーションを受信し、これらのインジケーションを使用して、現在のサーバ全体の状態を決定する。管理装置は、サーバの状態の１つ以上の特定の決定に、サーバを再起動させるように且つ／或いは例えばオペレータに警告インジケーションを提供するなどのその他の管理アクションを取るように、コントローラプロセッサ素子にコマンドを送信することによって応答し得る。なお、説明の中心が主に単一のサーバ内であることにかかわらず、ここに開示される技術が複数のサーバに適用されること及び管理装置がこのような状態情報を複数のサーバから受信することが想定される。
【００１２】
ここで使用される表記及び用語体系を全般的に参照するに、以下に続く詳細な説明は、コンピュータ上又はコンピュータのネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順に関する記述及び表現は、自身の仕事の内容を他の当業者に非常に効果的に伝えるために当業者によって使用されるものである。手順はここでは、一般に、所望の結果につながる首尾一貫した一連の処理であると考えられる。それらの処理は、物理量の物理的な操作を必要とするものである。通常、必ずしもそうではないが、それらの量は、格納され、伝送され、結合され、比較され、及びその他の方法で操作されることが可能な電気的、磁気的、又は光学的な信号の形態をとる。主として一般的用法という理由で、これらの信号をビット、値、要素、記号、文字、項、数、又はこれらに類するものとして参照することが、往々にして都合が良いことが分かっている。なお、しかしながら、これら及び同様の用語の全てが適当な物理量と関連付けられるが、これらは単に、それらの量に付与される都合の良いラベルに過ぎない。
【００１３】
また、これらの操作はしばしば、人間オペレータによって実行される知的活動に一般的に付随する例えば加算又は比較などの用語で参照される。しかしながら、人間オペレータのこのような能力は、１つ以上の実施形態の一部を形成するここに記載の処理の何れにおいても、大抵の場合、必要でないか望まれないかである。むしろ、これらの処理は機械処理である。様々な実施形態の処理を実行するのに有用な機械は、ここでの教示に従って書かれて格納されるコンピュータプログラムによって選択的に起動あるいは構成される汎用デジタルコンピュータを含み、且つ／或いは要求される目的に合わせて特別に構築される装置を含む。様々な実施形態はまた、これらの処理を実行する装置又はシステムに関する。これらの装置は、要求される目的に合わせて特別に構築されてもよいし、あるいは、汎用コンピュータを組み入れてもよい。多様なこれら機械のために必要とされる構造が、与えられる記載から明らかになる。
【００１４】
以下、図面を参照する。図面においては、全体を通して、似通った参照符号を用いて同様の要素を参照する。以下の記載においては、説明の目的で、その完全な理解を提供するために、数多くの具体的詳細事項が説明される。しかしながら、明らかなように、これら新規な実施形態は、これらの具体的詳細事項を用いずに実施されることができる。また、周知の構造及び装置は、その記述を容易にするためにブロック図の形態で示す。意図することには、請求項の範囲内の全ての実施形態、均等形態、及び代替形態をカバーすることである。
【００１５】
図１は、サーバベースのコンピューティングサービスを利用しようとするオペレータのインタラクション装置１００ａ−ｃのうちの１つ以上と、そのようなサービスを提供するサーバ３００と、サーバ３００の動作を監視する管理装置６００と、を有するコンピューティングサービスシステム１０００のコンピューティング装置間でのインタラクションのブロック図を示している。これらのコンピューティング装置１００ａ−ｃ、３００及び６００の各々は、限定することなく、デスクトップコンピュータシステム、データ入力端末、ラップトップコンピュータ、ノートブックコンピュータ、ウルトラブックコンピュータ、タブレットコンピュータ、手持ち式の携帯情報端末、スマートフォン、デジタルカメラ、モバイル装置、衣服に組み込まれた装着式コンピューティング装置、車両に統合されたコンピューティング装置、サーバ、一群のサーバ、サーバファームなどを含む多様な種類のコンピューティング装置のうちの何れかとし得る。
【００１６】
図示のように、これらのコンピューティング装置１００ａ−ｃ、３００及び６００は、システム１０００のネットワーク９９９を介して、サーバベースのサービスを提供することの状態のインジケーションを表すデータを伝える信号を交換する。しかしながら、これらのコンピューティング装置のうちの１つ以上が、そのようなサービスの提供とは全く無関係なその他のデータを交換してもよい。様々な実施形態において、ネットワーク９９９は、単一の建物若しくはその他比較的限られた領域の中で延在することに制限され得る単一のネットワークであってもよいし、相当な距離を延在し得る複数の接続ネットワークの組み合わせであってもよいし、及び／又はインターネットを含んでいてもよい。故に、ネットワーク９９９は、限定することなく、電気的及び／又は光学的な伝導ケーブルを使用する有線技術や、赤外線、無線周波数又はその他の形態の無線伝送を使用する無線技術を含め、それによって信号が交換され得る多様な通信技術（又は組み合わせ）のうちの何れかに基づき得る。
【００１７】
なお、３個という数のインタラクション装置１００ａ−ｃが具体的に図示されていることにかかわらず、多様な個数のうちの何らかの個数のインタラクション装置が、サーバ３００によって提供されるサービスを利用しようとする何らかの人数のオペレータによって使用され得る。故に、３つのインタラクション装置というこの具体的な図示は、所与の時点で複数のインタラクション装置（それらの正確な数がいくらであろうと）にサービスを提供するようにサーバ３００が使用され得ることが想定されるということを伝えるための単なる一例である。なお、また、インタラクション装置１００ａ−ｃ、サーバ３００、及び管理装置６００の間で単一のネットワーク９９９が共有されるという図示にかかわらず、理解されるように、例えばインタラクション装置１００ａ−ｃなどのインタラクション装置にサーバ３００を結合するために使用されるネットワークとは完全に別個のネットワーク（又は、その他の形態のリンク）を介して、管理装置６００がサーバ３００及び／又はネットワーク内のその他のサーバに結合されるという代替実施形態も可能である。
【００１８】
様々な実施形態において、サーバ３００は、プロセッサ素子３５０（サーバ３００のメインプロセッサとしての役割を果たす）、ストレージ３６０、ランダム化タイマー３１２、タイマー３１３、割込コントローラ３１５、コントローラ４００、及びサーバ３００をネットワーク９９９に結合するインタフェース３９０のうちの１つ以上を組み込んでいる。プロセッサ素子３５０は、ストレージ３６０内の保護されるロケーション（保護ロケーション）３６７を規定し、ひいては、その中に格納されてそこからプロセッサ素子３５０によって実行される命令のインテグリティに関するハードウェアベースの保護を提供する。ストレージ３６０は、保護ロケーション３６７の中に制御ルーチン３７０、キー３３７、及び状態データ３３９を格納する。しかしながら、複数の仮想マシン（ＶＭ）セッション３３１ｘ−ｚ及び制御ルーチン３４０は、保護ロケーション３６７の外のストレージ３６０内に格納される。コントローラ４００は、プロセッサ素子４５０（サーバ３００のコントローラ４００のコントローラプロセッサとしての役割を果たす）、ストレージ４６０、及び１つ以上の健全性検出部（ヘルスディテクタ）４１７のうちの１つ以上を組み込んでいる。ストレージ４６０は、制御ルーチン４４０及び状態データ４３９を格納する。
【００１９】
なお、３個という数のＶＭセッション３３１ｘ−ｚが具体的に図示されていることにかかわらず、プロセッサ素子３５０及びストレージ３６０のキャパシティによって潜在的に制限されるのみであって、多様な個数のうちの何らかの個数のＶＭセッションが制御ルーチン３４０によってインスタンス化されて管理され得る。故に、３つのＶＭセッションというこの具体的な図示は、サーバ３００内で所与の時点に多数のＶＭセッションがインスタンス化されて管理され得ることが想定されるということを伝えるための単なる一例である。なお、また、図示された３つのインタラクション装置１００ａ−ｃと、図示された３つのＶＭセッション３３１ｘ−ｚとの間に何らかの特定の対応関係が存在するという意味はない。実際に、所与の時点に所与のＶＭセッションが置かれる使用の性質及び度合いに応じて、何れかの所与のＶＭセッションが、複数のインタラクション装置と関連付けられたり、サーバ３００に結合された何れのインタラクション装置とも関連付けられなかったりすることが、全くもって可能である。ＶＭセッション３３１ｘ−ｚの各々は、多様なアプリケーションソフトウェアの何れか、又は複数のアプリケーションソフトウェアの組み合わせの実行において使用され得る。
【００２０】
割込コントローラ３１５は、プロセッサ素子３５０に提示されるハードウェア及び／又はソフトウェア割込みに関する中央収集ポイント及びルックアップ機能を提供し、当業者が容易に認識するように、プロセッサ素子３５０による１つの命令シーケンスの実行を、別のシーケンスを実行するために一時的に停止させる。ランダム化タイマー３１２は、ランダムに選択された時間量の終わりに到達したことを受けて割込みを発する（及び／又は、何らかのその他の機構を介してプロセッサ素子３５０にシグナリングする）。換言すれば、選択される時間量は、ランダム化タイマー３１２が使用される度に変化する。対照的に、タイマー３１３は、特定的に選択された時間量の終わりに到達したことを受けて割込みを発する（及び／又は、何らかのその他の機構を介してプロセッサ素子３５０にシグナリングする）。より詳細に後述するように、ランダム化タイマー３１２及びタイマー３１３は、時間量の終わりに到達した一方が、他方が計時を開始することのトリガーとして作用し得るようにして協働させられることになる。サーバ３００の始動を受けて（例えば、電源投入又はリセットされることに続いて）、規定された選択時間がタイマー３１３に提供されることができ、且つ／或いは、これら２つのタイマーが、一方が他方をトリガーするように協働すべき手法を指し示すインジケーションを提供され得る。一部の実施形態において、サーバ３００の始動を受けて、時間量のランダム選択のパラメータがランダム化タイマー３１２に提供されて、トリガーされる都度にカウントすべき新たなランダム期間をランダム化タイマー３１２が自立的に導出することが可能にされ得る。他の実施形態において、（保護ロケーション３６７内の）制御ルーチン３７０が、ランダム化タイマー３１２がトリガーされる都度にカウントすべき各新たなランダム期間を導出してもよい。代わりに、あるいは加えて、制御ルーチン３７０は、ランダム化タイマー３１２に、ランダム化タイマー３１２によるカウントの終了を別のイベントと一致させるように選択された期間を提供して、少なくとも時折、ランダム化タイマー３１２によってカウントされる期間が実際にはランダムでないことがあるようにしてもよい。コントローラ４００（及び／又は別の機構）によって実行され得るような、ランダム化タイマー３１２及びタイマー３１３の一方又は双方のこのような設定は、サーバ３００の始動に続いて一度だけ行われることが許され、その設定はその後、サーバ３００の更なる始動が起こるまで変更不可能にされる。
【００２１】
健全性検出部４１７は、サーバ３００の動作状態の複数の異なる観点がそれ（それら）によって監視され得る１つ以上のコンポーネントで構成される。より具体的には、健全性検出部４１７は、サーバ３００の様々なコンポーネントの温度を監視する熱センサ、サーバ３００のコンポーネント群のうちの１つ以上が電力を供給される際の電圧を監視する電圧レベルセンサ、バス活動モニタ、クロック信号モニタ、プロセッサスレッド実行モニタ、等々のうちの１つ以上を含み得る。
【００２２】
保護ロケーション３６７は、比較的厳しいアクセス制限に掛けられるようにプロセッサ素子３５０によって定められる１つ以上のアドレス範囲で構成され得る。これらの制限は、保護ロケーション３６７内に格納された実行可能命令が、ストレージ３６０全体の他のアドレスにあるデータ及び／又は実行可能命令に比較的自由にアクセスできることを許可されながら、保護ロケーション３６７の外からの他の実行可能命令によるアクセスが大幅に制限されたり全く許されなかったりし得ることを含み得る。代わりに、あるいは加えて、保護ロケーション３６７内に格納された実行可能命令は、様々なアドレスロケーションにある比較的広い選択範囲のサーバ３００のコンポーネントにアクセスできることを許可され得るが、保護ロケーション３６７の外の他の実行可能命令によるアクセスは、比較的限られた選択範囲のコンポーネントに対してであり得る。サーバ３００の始動を受けて（例えば、電源投入又はリセットされることに続いて）、プロセッサ素子３５０は、保護ロケーション３６７が占有するストレージ３６０内のアドレスロケーション、及び／又は保護ロケーション３６７の内側と外側の双方の実行可能命令の相対的なアクセス特権の範囲を定めるように設定され得る。このような設定は、コントローラ４００によって実行されることができ、且つ／或いは、その設定がその後、サーバ３００の更なる始動が起こるまで変更不可能（プロセッサ素子３５０及び／又は他のハードウェアによって）にされるようにして、一度だけ行われることが許され得る。斯くして、悪意あるソフトウェアによって保護ロケーション３６７が密かに不安全にされることはない。
【００２３】
制御ルーチン３４０は、様々な機能を実行するようにロジックを実装するサーバ３００のメインプロセッサ素子としての役割にあるプロセッサ素子３５０上で動作する一連の命令（命令シーケンス）を組み込んでいる。制御ルーチン３４０の命令シーケンスを実行する際、プロセッサ素子３５０は、ＶＭセッション３３１ｘ−ｚの各々をインスタンス化し、維持管理し、且つモニタするようにさせられる。基本的に、制御ルーチン３４０は、ＶＭモニタ（ＶＭＭ）のロジックを実装する。ＶＭセッション３３１ｘ−ｚの各々内で、アプリケーションソフトウェア又は複数のアプリケーションソフトウェアの組み合わせが、ＶＭセッション３３１ｘ−ｚのうちの異なるものに関連してインタラクション装置１００ａ−ｃのうちの異なるものにサーバベースのコンピューティングサービスを提供する部分として、プロセッサ素子３５０によって実行される。制御ルーチン３４０は、プロセッサ素子３５０に、ＶＭセッション３３１ｘ−ｚの各々間で或る程度の分離（アイソレーション）を維持させ、それにより、これらのＶＭセッションのうちの１つ内でプロセッサ素子３５０によって実行されるアプリケーションソフトウェアが、これらのＶＭセッションのうちの別の１つ内のデータ又はアプリケーションソフトウェアに対してプロセッサ素子３５０にアクセスさせることが、制御ルーチン３４０によって禁止されるようにされる。プロセッサ素子３５０にこのような許されないアクセスをさせようとするこれらＶＭセッションのうちの１つ内の実行可能命令による試みを検出すると、制御ルーチン３４０は、プロセッサ素子３５０をして、許されないアクセスがその中から試みられたＶＭセッションを無効にさせ、そのＶＭセッションを除去させ、且つ／或いは多様なその他のアクションのうちの何れかをとらせ得る。制御ルーチン３４０は、プロセッサ素子３５０に、ＶＭセッション間のある度合いの分離の実現を介して或る程度の安全性を提供させる。
【００２４】
制御ルーチン３７０も、様々な機能を実行するようにロジックを実装するプロセッサ素子３５０上で動作する一連の命令を組み込んでいる。プロセッサ素子３５０による制御ルーチン３７０の実行は、ランダム化タイマー３１２が、ランダムに選択された期間の終わりまでのカウント（例えば、カウントダウン）を完了し、そして、制御ルーチン３４０の実行を一時的に停止して制御ルーチン３７０の実行を開始するようにプロセッサ素子３５０にシグナリングすることによって引き起こされる。制御ルーチン３７０の命令シーケンスを実行する際、プロセッサ素子３５０は、割込コントローラ３１５を介してプロセッサ素子３５０に伝えられ得るような少なくとも一部の種類の割込みによって制御ルーチン３７０の実行を停止させてしまうことが起きないように、（少なくとも部分的に）割込コントローラ３１５を一時的に無効にするようにされる。プロセッサ素子３５０は、次いで、多様な取り得る手法のうちの何れかで制御ルーチン３４０の少なくとも一部のインテグリティを検査するようにされる。基本的に、制御ルーチン３７０は、ＶＭＭウォッチャーのロジックを実装する。取り得る一実施形態において、制御ルーチン３４０の少なくとも一部はデジタル署名されており、プロセッサ素子３５０は、制御ルーチン３７０によって、合致する暗号鍵すなわちキー３３７を用いてそのデジタル署名を暗号的に検証するようにされ得る。故に、制御ルーチン３７０は、プロセッサ素子３５０をして、制御ルーチン３４０のインテグリティをテストすることを介して別の或る程度の安全性を提供させ、制御ルーチン３４０が危険にさらされて（悪意あるソフトウェアによって改変、増補、あるいは置換されて）いないことが確かにされる。
【００２５】
プロセッサ素子３５０が（どんな手法によってであろうと）制御ルーチン３４０の少なくとも一部のインテグリティを検証することができようとできなかろうと、プロセッサ素子３５０は、制御ルーチン３７０によって、その検査の結果を状態データ３３９にて指し示すようにされ、そして、状態データ３３９をネットワーク９９９を介して管理装置６００に送信するようにされる。一部の実施形態において、制御ルーチン３７０の中断されない実行を可能にするように割込コントローラ３１５を無効化することの結果として、制御ルーチン３７０は、過度に長きにわたって割込みへの応答がなくなることを回避するために、割込コントローラ３１５の比較的迅速な再有効化を可能にするのに十分な迅速さで実行可能であるように、比較的コンパクトなサイズでなければならない。故に、このような実施形態において、制御ルーチン３７０は、管理装置６００に状態データ３３９を送信するために直接的にプロセッサ素子３５０にインタフェース３９０を動作させるのに必要な命令を含んでいなくてもよい。従って、そのような実施形態において、制御ルーチン３７０は、制御ルーチン３７０の実行の完了及び制御ルーチン３４０の実行の再開を受けてから、プロセッサ素子３５０にこのような状態データ３３９に送信を実行させ得る。
【００２６】
制御ルーチン３４０のインテグリティを少なくとも検査することの完了を受けて、プロセッサ素子３５０は、制御ルーチン３７０によって、割込コントローラ３１５を再び有効化し、制御ルーチン３７０の実行を止め、そして、制御ルーチン３４０を実行することを再開するようにされる。また、ちょうど説明したように、プロセッサ素子３５０は、この段階で、管理装置６００に状態データ３３９を送信することを、制御ルーチン３４０に組み込まれた命令を用いて、そうするようにインタフェース３９０を動作させることによって行ってもよい。しかしながら、言及しておくべきことには、制御ルーチン３４０が実際に危険にさらされていたり、その他で正常に機能していなかったりする場合には、管理装置６００への状態データ３３９の送信をプロセッサ素子３５０に実行させるために制御ルーチン３４０が頼られるということは、状態データ３３９が決して送信されず、それ故に管理装置６００がそれを受信しないということをもたらし得る。
【００２７】
制御ルーチン４４０は、様々な機能を実行するようにロジックを実装するコントローラ４００のコントローラプロセッサとしての役割にあるプロセッサ素子４５０上で動作する一連の命令を組み込んでいる。プロセッサ素子４５０による制御ルーチン４４０の実行も、ランダム化タイマー３１２が、ランダムに選択された期間の終わりまでのカウント（例えば、カウントダウン）を完了することによって引き起こされる。故に、ランダム化タイマー３１２によるカウントの完了は、割込コントローラ３１５を介して、及び／又はその他の機構により、制御ルーチン３７０及び４４０双方の実行の開始をトリガーするトリガーイベントとして取り扱われる。ランダム化タイマー３１２によるカウントの完了はまた、その間にプロセッサ素子３５０が制御ルーチン３７０の実行を完了させることが期待される比較的短い期間を反映するように選択される比較的短い期間の終わりまでのタイマー３１３によるカウントを始めることをトリガーする。想定されることには、タイマー３１３は、例えば何十ミリ秒又は何百ミリ秒の期間など、１秒より遥かに短い時間量に合わせて設定される。対照的に、ランダム化タイマー３１２に想定されることは、何分から何日といった期間をランダム化タイマー３１２にランダムに選択させるパラメータで設定されるか、何分から何日といった期間であるランダムに選択させた期間を提供されるかの何れかである。ランダム化タイマー３１２によるカウントの完了はまた、制御ルーチン４４０の実行を開始するようにプロセッサ素子４５０がシグナリングされることをもたらす。制御ルーチン４４０の命令シーケンスを実行するに際し、プロセッサ素子４５０は、タイマー３１３がその選択期間の終わりまでのカウントを完了する前にプロセッサ素子３５０が制御ルーチン３７０の実行を完了したか否かを決定するようにされる。基本的に、制御ルーチン４４０は、ＶＭＭウォッチャー検証機能を実装する。
【００２８】
タイマー３１３がカウントを完了する前にプロセッサ素子３５０が制御ルーチン３７０の実行を完了する場合、プロセッサ素子３５０上での制御ルーチン３７０のＶＭＭウォッチャー機能の動作が正しく機能しているという推測が（一部の実施形態において）為され得る。結果として、プロセッサ素子３５０をして状態データ３３９にて管理装置６００に送信された結果のインジケーションがどのようなものであろうと、それが制御ルーチン３４０のインテグリティの正確な評価であることの推測が為され得る。しかしながら、プロセッサ素子３５０が制御ルーチン３７０の実行を完了する前にタイマー３１３がカウントを完了する場合、機能不良（ハードウェア又はソフトウェア）が起こっているか、制御ルーチン３７０のインテグリティが損なわれているかの何れかの推測が為され得る。一部の実施形態において、カウントを完了することが許されると、タイマー３１３は、自身を自動的に再トリガーするように構成されてもよく、これは、再び制御ルーチン３７０を実行するようにプロセッサ素子３５０を再トリガーするトリガーイベントとして取り扱われ得る。タイマー３１３によるカウントの完了前に制御ルーチン３７０の実行を完了させてしまった先の失敗の原因次第では、このように、タイマー３１３がカウントを完了することによって、制御ルーチン３７０を実行するようにプロセッサ素子３５０を再トリガーすることは、問題を是正することがある。さもなければ、タイマー３１３は繰り返しカウントを完了して、再びカウントするように自身を繰り返し再トリガーし、これがプロセッサ素子４５０によって検出されて、管理装置６００に報告され得る。
【００２９】
プロセッサ素子３５０が、タイマー３１３がカウントを完了する前に制御ルーチン３７０の実行を完了することができようとできなかろうと、プロセッサ素子４５０は、制御ルーチン４４０によって、そうするためのプロセッサ素子３５０の努力の結果を状態データ４３９にて指し示すようにされる。制御ルーチン４４０は、状態データ４３９を管理装置６００に送信するようにインタフェース３９０を動作させることを、プロセッサ素子３５０からの支援なしでプロセッサ素子４５０が行うことを可能にするのに必要な命令を組み込んでおり、制御ルーチン４４０はプロセッサ素子４５０にそれを行わせる。結果として、ランダム化タイマー３１２が、ランダムに選択された期間の終わりまでのカウントを完了する都度、管理装置６００が状態データ３３９を受信することができないような制御ルーチン３４０又は３７０の何れかの状態にかかわらず、管理装置６００はなおも状態データ４３９を受信するはずである。
【００３０】
プロセッサ素子４５０及びストレージ４６０は、少なくともプロセッサ素子３５０及びストレージ３６０によって定められる動作環境から実質的に分離された、コントローラ４００内の動作環境の部分を定める。この別個の動作環境は、プロセッサ素子３５０によって実行されることがあるその他のあまり信用できないソフトウェアによって危険にさらされるリスクを大いに低減して、制御ルーチン４４０が実行されることを可能にする。ストレージ４６０内の状態データ４３９のうちの１つ以上を記憶することは更に、制御ルーチン４４０の実行のインテグリティを確保することに役立つ。故に、大いに起こり得ると想定されることには、制御ルーチン３４０及び３７０の双方が損ねられている場合、又はプロセッサ素子３５０が命令（例えば、マシンチェック）を効果的に実行しなくなるような機能不良の場合であっても、コントローラ４００は、管理装置６００に状態データ４３９を提供するのに十分に機能したままのはずである。
【００３１】
様々な実施形態において、管理装置６００は、プロセッサ素子６５０と、ストレージ６６０と、管理装置６００をネットワーク９９９に結合するインタフェース６９０とを組み込んでいる。ストレージ６６０は、制御ルーチン６４０と、サーバ３００から受信される状態データ３３９及び４３９の一方又は双方とを格納する。制御ルーチン６４０は、様々な機能を実行するようにロジックを実装するプロセッサ素子６５０上で動作する一連の命令を組み込んでいる。制御ルーチン６４０の命令シーケンスを実行する際、プロセッサ素子６５０は、それぞれプロセッサ素子３５０及び４５０による制御ルーチン３７０及び４４０の実行結果のインジケーションを評価して、サーバ３００の状態を決定するようにされる。例えば、状態データ３３９が制御ルーチン３４０のインテグリティの検証成功を指し示す場合、プロセッサ素子６５０は、サーバ３００が正常且つ安全に機能していると決定するようにされる。
【００３２】
代わりに、状態データ３３９が全く受信されずに、状態データ４３９が受信される場合、プロセッサ素子６５０は、どうして状態データ３３９が受信されなかったのかを決定することを試みるために、状態データ４３９に指し示されていることを調べるようにされる。状態データ４３９が、タイマー３１３がカウントを完了する前にプロセッサ素子３５０が制御ルーチン３４０のインテグリティを評価すべく制御ルーチン３７０の実行を首尾よく完了していたことを指し示す場合、プロセッサ素子６５０は、制御ルーチン３４０が損ねられていたか、あるいは状態データ３３９の送信を阻止するのに十分なほどに機能不良であったかの何れかであることを決定するようにされ得る。状態データ４３９が、タイマー３１３がカウントを完了する前にプロセッサ素子３５０が制御ルーチン３７０の実行を首尾よく完了しなかった（例えば、タイマー３１３が繰り返し再トリガーされて、その度にカウントを完了した）ことを指し示す場合、プロセッサ素子６５０は、少なくとも制御ルーチン３７０が損ねられていること、又はプロセッサ素子３５０若しくはその他のコンポーネントが機能不良であることを決定するようにされ得る。
【００３３】
プロセッサ素子３５０が機能不良であるか否かをはっきりさせるため、プロセッサ素子６５０は、状態データ４３９に含まれ得るサーバ３００の健全性の１つ以上のインジケーションを評価し得る。より具体的には、制御ルーチン３７０の実行を監視するためにランダム化タイマー３１２のカウントダウンによってトリガーされるインスタンス間で、プロセッサ素子４５０は、サーバ３００の健全性の様々な観点を監視するために健全性検出部４１７のうちの１つ以上を動作させるように、そして、サーバ３００の健全性に関して検出されたことのインジケーションを（恐らくは、状態データ４３９の追加のものとして）管理装置６００に反復的に送信するようにされ得る。故に、プロセッサ素子４５０は、ランダム化タイマー３１２がカウントを完了するときに常に生成されるトリガーイベントより頻繁な時間間隔で、サーバ３００の健全性に関する複数の異なる状態データ４３９を管理装置６００に送信するようにされ得る。
【００３４】
このようなサーバ３００の健全性のインジケーションは、プロセッサ素子３５０が、一般に可能性として、そこからリカバーできない未定義状態に入ることの結果として、前に命令を実行しなくなっていたことを指し示し得る。他の例では、サーバ３００への電力供給の電圧レベルを規定の許容度に範囲内に維持できず、それ故に、プロセッサ素子３５０及び／又はその他のコンポーネントが間欠的又は予測不能に機能していることのインジケーションが存在し得る。サーバ３００の様々なコンポーネントの健全性のこのようなインジケーションを含めることで、プロセッサ素子６５０によって、機能不良がセキュリティ侵害のインスタンスから区別され得る。サーバ３００内で起こっている正しくない挙動の原因に関してプロセッサ素子６５０がどのような決定を為したかに応じて、プロセッサ素子６５０は、シャットダウン若しくはリセットするためのコマンドをサーバ３００に送信するようにされることができ、且つ／或いは、サーバ３００の動作に責任を負う人物に問題を指し示すインジケーションを提示するようにされ得る。
【００３５】
様々な実施形態において、プロセッサ素子３５０、４５０及び６５０の各々は、限定することなくＡＭＤ（登録商標）のＡｔｈｌｏｎ（登録商標）、Ｄｕｒｏｎ（登録商標）若しくはＯｐｔｅｒｏｎ（登録商標）プロセッサ、ＡＲＭ（登録商標）アプリケーション埋込若しくはセキュアプロセッサ、ＩＢＭ（登録商標）及び／又はＭｏｔｏｒｏｌａ（登録商標）のＤｒａｇｏｎＢａｌｌ（登録商標）若しくはＰｏｗｅｒＰＣ（登録商標）プロセッサ、ＩＢＭ及び／又はＳｏｎｙ（登録商標）のＣｅｌｌプロセッサ、又はＩｎｔｅｌ（登録商標）のＣｅｌｅｒｏｎ（登録商標）、Ｃｏｒｅ（２）Ｄｕｏ（登録商標）、Ｃｏｒｅ（２）Ｑｕａｄ（登録商標）、Ｃｏｒｅ  ｉ３（登録商標）、Ｃｏｒｅ  ｉ５（登録商標）、Ｃｏｒｅ  ｉ７（登録商標）、Ａｔｏｍ（登録商標）、Ｉｔａｎｉｕｍ（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）、Ｘｅｏｎ（登録商標）若しくはＸＳｃａｌｅ（登録商標）プロセッサを含む多様な商業的に入手可能なプロセッサのうちの何れかを含み得る。また、これらのプロセッサ素子のうちの１つ以上が、マルチコアプロセッサ（複数のコアが同じダイ上に共存していようと別々のダイ上に共存していようと）、及び／又は、複数の物理的に分離したプロセッサを結び付けたようにする他の変形に係るマルチプロセッサアーキテクチャを含んでいてもよい。
【００３６】
様々な実施形態において、ストレージ３６０、４６０及び６６０の各々は、多様な情報記憶テクノロジの何れかに基づくことができ、場合により、電力の不断の供給を必要とする揮発性テクノロジを含み、また場合により、取り外し可能であっても、そうでなくてもよい機械読み取り可能記憶媒体の使用を伴うテクノロジを含む。故に、これらのストレージの各々は、限定することなく読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレート型ＤＲＡＭ（ＤＤＲ−ＤＲＡＭ）、同期型ＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、ポリマーメモリ（例えば、強誘電性ポリマーメモリ）、オボニックメモリ、相変化メモリ若しくは強誘電性メモリ、シリコン−酸化膜−窒化膜−酸化膜−シリコン（ＳＯＮＯＳ）メモリ、磁気カード若しくは光カード、１つ以上の個々の強磁性ディスクドライブ若しくは１つ以上のアレイに編成された複数の記憶装置（例えば、ＲＡＩＤ（Redundant  Array  of  Independent  Disks）アレイに編成された複数の強磁性ディスクドライブ）を含む多様な種類（又は、複数種類の組み合わせ）の記憶装置のうちの何れかを含み得る。なお、これらのストレージの各々は単一のブロックとして図示されているが、これらのうちの１つ以上が、相異なるストレージテクノロジに基づき得る複数の記憶装置を含んでいてもよい。故に、例えば、これら図示されたストレージの各々の１つ以上が、それによってプログラム及び／又はデータが格納されて何らかの形態の機械読み取り可能記憶媒体上に伝えられ得るフラッシュメモリカードリーダ若しくは光ドライブと、比較的長期にわたってプログラム及び／又はデータをローカルに格納する強磁性ディスクドライブと、プログラム及び／又はデータへの比較的早いアクセスを可能にする１つ以上の揮発性半導体メモリデバイス（例えば、ＳＲＡＭ若しくはＤＲＡＭ）との組み合わせを表してもよい。なおまた、これらのストレージの各々は、同じストレージテクノロジに基づくが、使用における専用化の結果として別々に管理され得る複数のストレージ部品で構成されてもよい（例えば、一部のＤＲＡＭデバイスが主記憶として使用される一方で、他のＤＲＡＭデバイスがグラフィックコントローラの別個のフレームバッファとして使用される）。
【００３７】
様々な実施形態において、インタフェース３９０及び６９０の各々は、上述のようにコンピューティング装置３００及び６００の各々がネットワーク９９９を介して結合されることを可能にする多様なシグナリングテクノロジのうちの何れかを使用する。これらのインタフェースの各々は、そのような結合を可能にするのに必要な機能のうちの少なくとも一部を提供する回路を含む。しかしながら、これらのインタフェースの各々はまた、少なくとも部分的に、プロセッサ素子３５０、４５０及び６５０のうちの対応するプロセッサ素子によって実行される命令シーケンスで実装されてもよい（例えば、プロトコルスタック又はその他の機構を実装するように）。ネットワーク９９９の１つ以上の部分が電気伝導ケーブル及び／又は光伝導ケーブルを使用する場合、インタフェース３９０及び６９０のうちの対応するインタフェースは、限定することなくＲＳ−２３２Ｃ、ＲＳ−４２２、ＵＳＢ、Ｅｔｈｅｒｎｅｔ（登録商標）（ＩＥＥＥ−８０２．３）又はＩＥＥＥ−１３９４を含む多様な工業規格のうちの何れかに従うシグナリング及び／又はプロトコルを使用し得る。代わりに、あるいは加えて、ネットワーク９９９の１つ以上の部分が無線信号伝送の使用を伴う場合、これらのインタフェースのうちの対応するものは、限定することなくＩＥＥＥ８０２．１１ａ、８０２．１１ｂ、８０２．ｌｌｇ、８０２．１６、８０２．２０（これらは、“モバイルブロードバンド無線アクセス”として広く参照されている）；Ｂｌｕｅｔｏｏｔｈ（登録商標）；ＺｉｇＢｅｅ；又は例えばジェネラル・パケット・ラジオ・サービス（ＧＰＲＳ）を伴うＧＳＭ（登録商標）（ＧＳＭ／ＧＰＲＳ）、ＣＤＭＡ／１ｘＲＴＴ、エンハンスト・データレート・フォー・グローバル・エボリューション（ＥＤＧＥ）、エボリューション・データ・オンリー／オプティマイズド（ＥＶ−ＤＯ）、エボリューション・フォー・データ・アンド・ボイス（ＥＶ−ＤＶ）、ハイ・スピード・ダウンリンク・パケット・アクセス（ＨＳＤＰＡ）、ハイ・スピード・アップリンク・パケット・アクセス（ＨＳＵＰＡ）、４Ｇ  ＬＴＥなどのセル式無線電話サービスを含む多様な工業規格のうちの何れかに従うシグナリング及び／又はプロトコルを使用し得る。なお、インタフェース３９０及び６９０の各々は単一のブロックとして図示されているが、これらのうちの１つ以上が、相異なるシグナリングテクノロジに基づき得る複数のインタフェースを含んでいてもよい。これは、特に、これらのインタフェースのうちの１つ以上が、コンピューティング装置１００及び３００のうちの対応するものを、各々が異なる通信テクノロジを採用する２つ以上のネットワークに結合する場合に云えることである。
【００３８】
図２は、サーバ３００のコンポーネント間でのハンドシェイキングの取り得る実装を更に詳細に示している。具体的には、１つ以上のレジスタを含めることが可能なことが示されており、これらによって、プロセッサ素子３５０及び４５０、及び／又はタイマー３１２及び３１３の間である度合いの協調が可能にされ得る。
【００３９】
具体的には、一部の実施形態において、ランダム化タイマー３１２はレジスタ３２２を組み込むことができ、それにより、プロセッサ素子３５０及び４５０の一方又は双方がその状態を監視することができるようになり得る。プロセッサ素子３５０は、ランダム化タイマー３１２がランダムに選択された期間のカウントを完了することによってトリガーされる割込みを介して、制御ルーチン３４０を実行することから制御ルーチン３７０を実行することに移行させられることが想定されるが、代替的な一実施形態において、制御ルーチン３４０によって、プロセッサ素子３５０が、反復的にレジスタ３２２を読み取ることでランダム選択された期間のカウントが完了したかを決定することによって、ランダム化タイマー３１２の状態を反復的にチェックするようにされてもよい。実際、制御プログラム３４０及び３７０の一方又は双方を危険にさらすことに成功したものであり得る悪意あるソフトウェアにランダム化タイマー３１２の状態の情報を提供してしまうことを回避するためには、プロセッサ素子３５０がその情報をチェックすることができないことが望ましいと考えられ得る。
【００４０】
プロセッサ素子３５０がレジスタ３２２を読み取ることができるか否かにかかわらず、プロセッサ素子４５０は、制御ルーチン４４０により、レジスタ３２２を読み取ることによってランダム化タイマー３１２の状態を反復的にチェックするようにさせられ得る。これは場合により、プロセッサ素子４５０が制御ルーチン３７０の実行を監視する準備を行うことを可能にするために、ランダム化タイマー３１２がいつカウントを完了し得るかを決定するために行われ得る。代わりに、あるいは加えて、プロセッサ素子４５０は、自身が管理装置６００に送信する状態データ４３９に、ランダム化タイマー３１２の現在状態のインジケーションを含めるようにされ得る。
【００４１】
一部の実施形態において、タイマー３１３は、レジスタ３２３を組み込むことができ、それにより、プロセッサ素子３５０及び４５０の一方又は双方がその状態の監視及び／又は制御を行うことができるようになり得る。プロセッサ素子４５０は、タイマー３１３がカウントを完了する前にプロセッサ素子３５０が制御ルーチン３７０の実行を首尾よく完了するかを決定するために、レジスタ３２３を反復的にモニタするようにされ得る。より具体的には、プロセッサ素子３５０は、制御ルーチン３７０の完了成功を受けてタイマー３１３によるカウントを停止させるよう、レジスタ３２３に書き込むようにされ得る。プロセッサ素子４５０は、プロセッサ素子３５０が実際に制御ルーチン３７０の実行を完了したことを指し示すインジケーションとして、タイマーがカウントを完了する前に行われるプロセッサ素子３５０によるこのような書き込み処理のレジスタ３２３内のインジケーションを反復的にチェックし得る。
【００４２】
一部の実施形態において、割込コントローラ３１５は、レジスタ３２５を組み込むことができ、それにより、プロセッサ素子３５０及び４５０の一方又は双方がその状態の監視及び／又は制御を行うことができるようになり得る。先述のように、制御ルーチン３７０の不断の実行を可能にするために、制御ルーチン３７０によって、プロセッサ素子３５０が割込コントローラ３１５を少なくとも部分的に無効化するようにされることが想定される。レジスタ３２５は、当該レジスタによってこれが行われる機構となり得る。レジスタ３２５は、制御ルーチン３４０は危険にさらされているが制御ルーチン３７０はそうでない場合に割込コントローラ３１５の操作に対する保護のために、保護ロケーション３６７内に格納された実行可能命令（例えば、制御ルーチン３７０など）にアクセス可能であるが、保護ロケーション３６７の外に格納された実行可能命令（例えば、制御ルーチン３４０又はＶＭセッション）にはアクセス可能でないコンポーネントの中とし得る。レジスタ３２５はまた、プロセッサ素子３５０による制御ルーチンの実行をプロセッサ素子４５０が監視するときにプロセッサ素子４５０によって読み取られ得る。割込コントローラ３１５を無効にすることは、制御ルーチン３７０の実行を開始する際のプロセッサ素子３５０の最初のアクションのうちの１つとして想定され、且つ割込コントローラ３１５を再び有効にすることは、制御ルーチン３７０を実行することを止める際の最後のアクションのうちの１つとして想定されるので、プロセッサ素子４５０は、状態データ４３９に含めるために集められる情報の部分として、レジスタ３２５をモニタすることで、割込コントローラ３１５の無効化又は再有効化の何れが起こっているかを決定し得る。
【００４３】
一部の実施形態において、制御ルーチン３４０及び３７０の一方又は他方を実行するインスタンス間で情報を交換する機構の部分として、サーバ３００内（可能性としてプロセッサ素子３５０内）にレジスタ３２６が組み込まれ得る。具体的には、プロセッサ素子３５０は、制御ルーチン３４０の実行を再開するときに管理装置６００への状態データ３３９の送信を可能にするために当該プロセッサ素子が状態データ３３９の位置を特定することができるように、制御ルーチン３７０の実行により、状態データ３３９が格納されるアドレスロケーションを指し示す値をレジスタ３２６に書き込むようにされ得る。
【００４４】
一部の実施形態において、インタフェース３９０は、レジスタ３２９を組み込むことができ、それにより、プロセッサ素子３５０及び４５０の一方又は双方がその状態の監視及び／又は制御を行うことができるようになり得る。具体的には、プロセッサ素子４５０は、制御ルーチン４４０により、制御ルーチン３４０の実行の再開を受けて管理装置６００に状態データ３３９を送信することを制御ルーチン３４０がプロセッサ素子３５０に少なくとも試みさせたか否かのインジケーションに関して、レジスタ３２９を読み取るようにされ得る。
【００４５】
図３は、図１のブロック図の一部のブロック図を更に詳細に例示している。より具体的には、プロセッサ素子３５０及び４５０が、制御ルーチン３４０、３７０及び４４０のうちの対応するものの実行により、上述の機能を実行するようにされた、コンピューティング装置３００及びコントローラ４００の動作環境の態様が図示されている。当業者によって認識されることになるように、これらの制御ルーチンの各々は、各々が有するコンポーネントを含め、これらのプロセッサ素子の各々のうちの対応するものを実装するためにどのような種類のプロセッサが選択されようと、それら１つ以上のプロセッサの上で動作するように選択される。
【００４６】
様々な実施形態において、制御ルーチン３４０、３７０及び４４０の各々は、オペレーティングシステム、デバイスドライバ、及び／又はアプリケーションレベルのルーチン（例えば、ディスク媒体上で提供される所謂“ソフトウェアスイート”、リモートサーバから取得される“アプレット”、等々）の組み合わせを含み得る。オペレーティングシステムが含められる場合、そのオペレーティングシステムは、限定することなくＷｉｎｄｏｗｓ（登録商標）、ＯＳ  Ｘ（登録商標）、Ｌｉｎｕｘ（登録商標）、又はＡｎｄｒｏｉｄ  ＯＳ（登録商標）を含む利用可能な多様なオペレーティングシステムのうちの何れであってもよい。１つ以上のデバイスドライバが含められる場合、それらのデバイスドライバは、コンピューティング装置３００及びコントローラ４００の、ハードウェアコンポーネントであろうとソフトウェアコンポーネントであろうと、多様なその他のコンポーネントのうちの何れかのサポートを提供し得る。
【００４７】
制御ルーチン３４０及び４４０は各々、上述のように、それぞれインタフェース３９０及び４９０を動作させ、ネットワーク９９９（又は、その他のリンク）を介して信号の送信及び受信を行うように、プロセッサ素子３５０及び４５０によって実行可能な、通信コンポーネント３４９及び４４９を含んでいる。当業者によって認識されることになるように、これらの通信コンポーネントの各々は、これらのインタフェースのうちの対応するものを実装するためにどのような種類のインタフェーステクノロジが選択されようと、それをともに動作可能であるように選択される。
【００４８】
制御ルーチン３４０は、ＶＭセッション（例えば、ＶＭセッション３３１ａ−ｃ）のインスタンス化、管理、及び監視を行うようにプロセッサ素子３５０によって実行可能なＶＭＭコンポーネント３４１を含んでいる。ＶＭＭコンポーネント３４１は、異なるＶＭセッションの中でのアプリケーションソフトウェアの実行間で、それら間のアクセスを許さないことによって、ある度合いの安全性を提供する。また、ＶＭＭコンポーネント３４１は、そのような許されないアクセスを行うことの試みを検出したことに対して、上述のように、そこからそのアクセスが試みられたＶＭセッションを無効化あるいは除去することによって応答し得る。
【００４９】
制御ルーチン３７０は、ランダム化タイマー３１２がランダムに選択された期間の終わりまでそのカウントダウンを完了するトリガーイベントに応答して、制御ルーチン３４０の少なくとも一部（例えば、ＶＭＭコンポーネント３４１）のインテグリティをチェックするようにプロセッサ素子３５０によって実行可能なＶＭＭウォッチャー３７１を含んでいる。そうするためにＶＭＭウォッチャー３７１が採用し得る数ある技術の中で、ＶＭＭウォッチャー３７１は、キー３７１を使用して、制御ルーチン３４０の少なくともその部分に埋め込まれたデジタル署名をチェックし得る。保護ロケーション３６７内に格納されたＶＭＭウォッチャー３７１及びキー３３７を用いることで、保護ロケーション３６７の外に格納される悪意あるソフトウェアによって危険にさらされることからの或る度合いの保護が提供される。
【００５０】
制御ルーチン４４０は、ランダム化タイマー３１２がランダムに選択された期間の終わりまでそのカウントダウンを完了するトリガーイベントに応答して、（やはりランダム化タイマー３１２のカウントダウン完了によってトリガーされる）タイマー３１３がカウントダウンを完了する前に制御ルーチン３７０がプロセッサ素子３５０によって首尾よく実行されるかを決定するために制御ルーチン３７０の実行をモニタするよう、プロセッサ素子４５０によって実行可能なウォッチャー検証部４４１を含んでいる。その後、ウォッチャー検証部４４１は、その結果（それがどのようなものであろうと）を、管理装置６００に送信されることになる状態データ４３９内に記録する。
【００５１】
制御ルーチン４４０は、健全性センサ４１７のうちの１つ以上を反復的に動作させてサーバ３００の健全性（動作状態）のインジケーションを検出するようにプロセッサ素子４５０によって実行可能な健全性モニタ４４７を含んでいる。上述のように、想定されることには、サーバ３００の健全性を指し示すインジケーションは、プロセッサ素子３５０が制御ルーチン３７０を実行することのモニタリングに結び付けられた機会ではない時に送信される複数の異なる状態データ４３９に記録され、それ故に、管理装置６００は或る程度の頻度でサーバ３００の健全性のインジケーションを受信することになる。
【００５２】
図４は、図３に示した制御ルーチン３４０及び３７９の一変形例のブロック図を示している。図示及び説明の明瞭化のため、図４においては、図３には描かれているサーバ３００の数多くのその他のコンポーネントの図示を省略している。図４の制御ルーチンの変形例においては（図３中のその対応部分と比較して）、ＶＭＭコンポーネントが更に、埋込ウォッチャー３４４及びキー３３４を組み込んでいる。また、図４の制御ルーチン３７０の変形例では、ＶＭＭウォッチャー３７１が、埋込ウォッチャー３４４（及び恐らくはキー３３４）のインテグリティをチェックして、埋込ウォッチャー３４４が危険にさらされていないかを検証する。埋込ウォッチャー３４４がそのように検証されると仮定すると、実行される埋込ウォッチャー３４４に関するインジケーションが、プロセッサ素子が制御ルーチン３７０を実行することと制御ルーチン３４０を実行することとの間の移行に跨って伝達される。プロセッサ素子３５０によって実行されているとき、埋込ウォッチャー３４４は、場合により、埋め込まれたデジタル署名の暗号チェックにおいてキー３３４を用いて、制御ルーチン３４０の別の部分（恐らくは、ＶＭＭコンポーネント３４１の残りの部分）についてインテグリティチェックを実行する。これは、制御ルーチン３７０の実行に利用可能な時間量が、制御ルーチン３４０及び／又はそのＶＭＭコンポーネント３４１のインテグリティの実効的な検証を行うことができないほどに短い場合に行われ得る。このような場合にも、制御ルーチン３４０の比較的小さい埋込ウォッチャーの検証は実現可能であり得る。埋込ウォッチャー３４４のインテグリティの検証成功は、より多くの制御ルーチン３４０のインテグリティチェックを実行するのに十分に信用できるものであると埋込ウォッチャー３４４を見なすことを可能にし得る。
【００５３】
図５は、図１のブロック図のうちの一部の別のブロック図を更に詳細に例示している。より具体的には、プロセッサ素子６５０が、制御ルーチン６４０の実行により、上述の機能を実行するようにされた、コンピューティング装置６００の動作環境の態様が図示されている。当業者によって認識されることになるように、この制御ルーチンは、それを構成するコンポーネントを含め、このプロセッサ素子を実装するためにどのような種類のプロセッサが選択されようと、それら１つ以上のプロセッサの上で動作するように選択される。
【００５４】
様々な実施形態において、制御ルーチン６４０は、オペレーティングシステム、デバイスドライバ、及び／又はアプリケーションレベルのルーチン（例えば、ディスク媒体上で提供される所謂“ソフトウェアスイート”、リモートサーバから取得される“アプレット”、等々）の組み合わせを含み得る。オペレーティングシステムが含められる場合、そのオペレーティングシステムは、限定することなくＷｉｎｄｏｗｓ（登録商標）、ＯＳ  Ｘ（登録商標）、Ｌｉｎｕｘ（登録商標）、又はＡｎｄｒｏｉｄ  ＯＳ（登録商標）を含む利用可能な多様なオペレーティングシステムのうちの何れであってもよい。１つ以上のデバイスドライバが含められる場合、それらのデバイスドライバは、コンピューティング装置６００の、ハードウェアコンポーネントであろうとソフトウェアコンポーネントであろうと、多様なその他のコンポーネントのうちの何れかのサポートを提供し得る。
【００５５】
制御ルーチン６４０は、上述のように、インタフェース６９０を動作させ、及び場合によりインタフェース７９０をも動作させ、コンピューティング装置３００と６００との間でネットワーク９９９及び／又はその他のリンクを介して信号の送信及び受信を行うようにプロセッサ素子６５０によって実行可能な、通信コンポーネント６４９を含んでいる。上述のように、サーバ３００のコントローラ４００は、管理装置６００との通信のために別個のインタフェース４９０を使用してもよく、図５に示すように、管理装置６００は、そのインタフェース４９０との完全に別個のリンクを介したそのような通信をサポートする別個のインタフェース７９０を使用してもよい。当業者によって認識されることになるように、この通信コンポーネントは、これらのインタフェースのうちの一方又は双方を実装するためにどのような種類のインタフェーステクノロジが選択されようと、それをともに動作可能であるように選択される。
【００５６】
制御ルーチン６４０は、状態データ３３９（受信した場合）及び状態データ４３９を分析するようにプロセッサ素子６５０によって実行可能な評価コンポーネント６４５を含んでいる。プロセッサ素子が制御ルーチン３４０のインテグリティを検証すること試みる際のトラブルのインジケーションを受信することに応答して、評価コンポーネント６４５は、状態データ４３９にてコントローラ４００から受信したサーバ３００の健全性のインジケーションを検査する。評価コンポーネント６４５はまた、受信した場合に状態データ３３９にて何が指し示されているかを検査する。さらに、評価コンポーネント６４５は、コントローラ４００から受信されて履歴データ６３５にて格納された、サーバ３００の健全性の過去のインジケーションを検査してもよい。そして、評価コンポーネント６４５は、サーバ３００を再始動させることによって修正されることが可能な機能不良が起こっているか、サーバ３００の修理を要する機能不良が起こっているか、又は、制御ルーチン３４０（ＶＭＭコンポーネント３４１を含む）及び３７０の一方又は双方のインテグリティが損なわれているかを決定する。
【００５７】
図６は、論理フロー２１００の一実施形態を例示している。論理フロー２１００は、ここに記載される１つ以上の実施形態によって実行される処理の一部又は全ての代表的なものであり得る。より具体的には、論理フロー２１００は、少なくとも制御ルーチン３４０及び／又は３７０を実行する際にプロセッサ素子３５０によって実行される処理、及び／又はサーバ３００のその他のコンポーネントによって実行される処理を例示したものであり得る。
【００５８】
２１１０にて、サーバのメインプロセッサ素子（例えば、サーバ３００のプロセッサ素子３５０）が、サーバのランダム化タイマーがランダムに選択された期間の終わりに到達した（例えば、該期間の全体をカウントダウンした）ことのインジケーションを受信する。上述のように、サーバの始動を受けて（例えば、電源投入又はリセットされることに続いて）、ランダム化タイマーは、新たな期間の各々の長さをランダムに選択するためのパラメータを与えられることができ、それらの設定が、サーバの再始動なしでは変更されることができないように設定されることでロックされ得る。
【００５９】
２１２０にて、このタイマーイベントに応答して、メインプロセッサ素子は、ＶＭＭ（例えば、制御ルーチン３４０のＶＭＭ３４１）を実行することを止め、そして、ＶＭＭウォッチャー（例えば、制御ルーチン３７０のＶＭＭウォッチャー３７１）の実行を開始して、少なくともＶＭＭのインテグリティをチェックする。上述のように、ランダム化タイマーによる期間の終わりへの到達は、この実行における変化を行うようにメインプロセッサ素子をトリガーする機構として割込みをトリガーし得る。代わりに、ランダム化タイマーのレジスタがメインプロセッサ素子によってモニタされてもよい。
【００６０】
２１３０にて、メインプロセッサ素子は、実質的に不断のＶＭＭウォッチャーの実行を可能にするために、サーバの割込コントローラを少なくとも部分的に無効化する。２１４０にて、メインプロセッサ素子は、場合によりＶＭＭ内に埋め込まれたデジタル署名をチェックすべく暗号鍵の使用を介して、ＶＭＭのインテグリティをチェックし、そのチェックの結果を指し示すインジケーションを、管理装置（例えば、管理装置６００）への送信用の結果データとして格納する。
【００６１】
メインプロセッサ素子がＶＭＭウォッチャーを実行することを止めてＶＭＭを実行することを再開すると、２１５０にて、メインプロセッサ素子は、ＶＭＭが結果データを管理装置に送信する準備を整える。上述のように、場合によりレジスタを介した、結果データが格納された位置を指し示すインジケーションがＶＭＭウォッチャー及びＶＭＭの実行間に渡されるハンドシェイク機構が使用されてもよい。
【００６２】
２１６０にて、メインプロセッサ素子は、割込コントローラを再び有効化し、２１７０にて、カウントを止めるよう別のタイマーにシグナリングする。上述のように、ランダム化タイマーによるランダムに選択された期間への到達が、ＶＭＭを実行することからＶＭＭウォッチャーを実行することへとメインプロセッサに切り替えさせるトリガーイベントとしての役割を果たすのと同様に、これはまた、別のタイマーによる別の期間のカウントダウンを始めるトリガーとしての役割を果たす。この別のタイマーは、メインプロセッサがＶＭＭウォッチャーの実行を首尾よく完了するのに要する時間量の“番犬（ウォッチドッグ）タイマー”として機能する。カウントを止めるよう別のタイマーにシグナリングすることにより、メインプロセッサ素子は、自身がＶＭＭウォッチャーの実行を完了したことのインジケーションを伝達する。
【００６３】
２１８０にて、メインプロセッサ素子は、ＶＭＭウォッチャーの実行を止めてＶＭＭの実行を再開する。上述のように、結果データの送信が行われるべきなのはこの時点であり、それは、結果データを管理装置に送信するようにインタフェースを動作させる実行可能命令を自身で組み込んでおらず、このような時間制約内でＶＭＭウォッチャーが実行されなければならないことに因り得る。
【００６４】
図７は、論理フロー２２００の一実施形態を例示している。論理フロー２２００は、ここに記載される１つ以上の実施形態によって実行される処理の一部又は全ての代表的なものであり得る。より具体的には、論理フロー２２００は、少なくとも制御ルーチン４４０を実行する際にプロセッサ素子４５０によって実行される処理、及び／又はコントローラ４００のその他のコンポーネントによって実行される処理を例示したものであり得る。
【００６５】
２２１０にて、サーバのコントローラプロセッサ素子（例えば、サーバ３００のコントローラ４００のプロセッサ素子４５０）が、サーバのランダム化タイマーがランダムに選択された期間の終わりに到達した（例えば、該期間の全体をカウントダウンした）ことのインジケーションを受信する。上述のように、サーバの始動を受けて（例えば、電源投入又はリセットされることに続いて）、ランダム化タイマーは、新たな期間の各々の長さをランダムに選択するためのパラメータを与えられることができ、それらの設定が、サーバの再始動なしでは変更されることができないように設定されることでロックされ得る。
【００６６】
２２２０にて、コントローラプロセッサが、サーバのメインプロセッサ素子によるＶＭＭウォッチャーの実行（例えば、プロセッサ素子３５０による制御ルーチン３７０のＶＭＭウォッチャー３７１の実行）をモニタする。上述のように、コントローラプロセッサは、このような実行をモニタするために様々な技術を使用することができ、それらの技術は、以下に限られないが、割込コントローラ及び／又はインタフェースのレジスタをモニタして、一方又は他方の状態が変化される段階に到達したかを決定するものを含む。２２３０にて、コントローラプロセッサはまた、メインプロセッサ素子によるＶＭＭウォッチャーの実行を計時する“番犬タイマー”として機能する別のタイマーのカウントダウンをモニタする。
【００６７】
２２４０にて、コントローラプロセッサ素子は、別のタイマーがカウントダウンを完了する前にメインプロセッサ素子によるＶＭＭウォッチャーの実行が完了したか否かのインジケーションを、管理装置（例えば、管理装置６００）に送信する。２２５０にて、コントローラプロセッサ素子はまた、サーバの健全性のインジケーションを管理装置に送信する。上述のように、サーバの健全性のインジケーションは、別のタイマーがカウントダウンを完了する前にＶＭＭウォッチャーが実行されたか否かのインジケーションよりも頻繁に、管理装置に送信され得る。また、ＶＭＭウォッチャーの実行の結果が送信される機会に、それらの結果は、サーバの健全性のインジケーションの送信と組み合わされ得る。
【００６８】
図８は、論理フロー２３００の一実施形態を例示している。論理フロー２３００は、ここに記載される１つ以上の実施形態によって実行される処理の一部又は全ての代表的なものであり得る。より具体的には、論理フロー２３００は、少なくとも制御ルーチン６４０を実行する際にプロセッサ素子６５０によって実行される処理、及び／又は管理装置６００のその他のコンポーネントによって実行される処理を例示したものであり得る。
【００６９】
２３１０にて、管理装置（例えば、管理装置６００）が、サーバのランダム化タイマー（例えば、サーバ３００のランダム化タイマー３１２）がランダムに選択された期間の終わりに到達した（例えば、該期間の全体をカウントダウンした）ことのインジケーションを受信する。２３２０にて、管理装置は、サーバの別のタイマー（例えば、タイマー３１３）がカウントダウンを完了する前にサーバのメインプロセッサ素子（例えばプロセッサ素子３５０）がＶＭＭウォッチャー（例えば、制御ルーチン３７０のＶＭＭウォッチャー３７１）の実行を首尾よく完了したかのインジケーションを受信する。２３３０にて、管理装置６００は、サーバの健全性のインジケーションを受信する。これら様々なインジケーションは、共通の結果データ（例えば、結果データ４３９）の中で共に受信されてもよいし、あるいは、サーバのコントローラ（例えば、コントローラ４００）によってネットワーク又はそれらの間のリンクを介して行われる別々の伝送にて受信されてもよい。上述のように、コントローラは、管理装置に結合され得る。コントローラは、そのネットワークによってサーバのメインプロセッサ素子が管理装置と通信し得るネットワーク、とは完全に別個のネットワーク若しくはその他のリンクを介して、このようなインジケーションを送信するように管理装置に結合され得る。
【００７０】
２３４０にて、メインプロセッサ素子によるＶＭＭコンポーネント（例えば、制御ルーチン３４０のＶＭＭコンポーネント３４１）のインテグリティのチェックの望ましい結果を指し示す結果データが受信されたか否かについてのチェックが行われる。結果データ（望ましいもの又はそうでないもの）が受信されないか、望ましくない結果を指し示す結果データが受信されるか、の何れかの場合、２３５０にて、管理装置は、そのメインプロセッサ素子又はそのコントローラの何れかから受信された情報を分析する。
【００７１】
２３５０での分析に続いて、２３６０にて、管理装置は、何が起こったかの更なる分析を可能にするため、例えば現在のレジスタ設定や特定のロケーションにおけるストレージのコンテンツなどのインジケーションなど、サーバからの更なる状態情報を要求すべきかを決定する。２３７０にて、管理装置は、再始動するコマンドをサーバに送信すべきかを決定する。サーバの健全性のインジケーションが、サーバの修理を要する問題の発生（例えば、正常に機能しない冷却、又は仕様の範囲外の電圧を有する電力の継続的な供給）を示さない場合、サーバを再起動することで現在の問題が解消され得る。２３８０にて、管理装置は、サーバに関する問題を指し示すインジケーションを個人に提示（例えば、ディスプレイ上でインジケーションを視覚的に提示）すべきかを決定する。
【００７２】
図９は、先述の様々な実施形態を実装するのに好適な代表的な処理アーキテクチャ３０００の一実施形態を例示している。より具体的には、処理アーキテクチャ３０００（又はその変形）は、コンピューティング装置３００及び６００のうちの１つ以上の部分として実装され得る。なお、処理アーキテクチャ３０００のコンポーネントには、下２桁が、コンピューティング装置３００及び６００の各々の部分として先に図示及び記載されたコンポーネントの参照符号の下２桁に対応する参照符号を付している。こうしたのは、様々な実施形態においてコンピューティング装置３００及び６００のどちらがこの例示の処理アーキテクチャを使用しようとも、そのコンポーネントと相互に関連付けることの支援としてである。
【００７３】
処理アーキテクチャ３０００は、限定することなく、１つ以上のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、計時装置、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント、電源などを含む、デジタル処理において一般的に使用される様々な要素を含む。本出願にて使用されるとき、用語“システム”及び“コンポーネント”は、デジタル処理が実行されるコンピューティング装置のエンティティであって、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は、実行中のソフトウェアであるエンティティを意味し、それらの例が、この図に示す例示のアーキテクチャによって提示されている。例えば、コンポーネントは、以下であることに限られないが、プロセッサ素子上で実行されるプロセス、プロセッサ素子それ自体、光記憶媒体及び／又は磁気記憶媒体を採用し得る記憶装置（例えば、ハードディスクドライブ、アレイ状の複数の記憶装置など）、ソフトウェアオブジェクト、実行可能な命令シーケンス、実行のスレッド、プログラム、及び／又はコンピューティング装置全体（例えば、コンピュータ全体）とし得る。例示として、サーバ上で実行されるアプリケーションとサーバとのどちらもコンポーネントであり得る。１つ以上のコンポーネントは、プロセス及び／又は実行のスレッドの中にあり、また、コンポーネントは、１つのコンピューティング装置上に局在されることができ、及び／又は２つ以上のコンピューティング装置間で分散されることができる。さらに、複数のコンポーネントが、様々な種類の通信媒体によって互いに通信的に結合されて、動作を連係させ得る。この連係は、単方向又は双方向の情報交換を伴い得る。例えば、それらコンポーネントは、通信媒体上で通信される信号の形態で情報を通信し得る。情報は、１つ以上の信号ラインに割り振られる信号として実装され得る。各メッセージは、１つの信号、又は、シリアル若しくは実質的にパラレルの何れかで送信される複数の信号とし得る。
【００７４】
図示のように、処理アーキテクチャ３０００を実装するにあたり、コンピューティング装置は少なくとも、プロセッサ素子９５０、ストレージ９６０、その他の装置へのインタフェース９９０、及びカップリング（結合）９５５を組み込んでいる。処理アーキテクチャ３０００を実装するコンピューティング装置の様々な態様に応じて、それが意図する用途及び／又は使用条件を含め、このようなコンピューティング装置は更に、限定することなく例えば、ランダム化タイマー９１２、タイマー９１３、及び／又は割込コントローラ９１５などの、更なるコンポーネントを組み込み得る。
【００７５】
カップリング９５５は、１つ以上のバス、二点間インターコネクト、トランシーバ、バッファ、クロスポイントスイッチ、及び／又は、少なくともプロセッサ素子９５０をストレージ９６０に通信的に結合するその他の導電体及び／又はロジックを組み込んでいる。カップリング９５５は更に、プロセッサ素子９５０を、インタフェース９９０及びディスプレイインタフェース９８５のうちの１つ以上に結合し得る（これらのうちのどちら及び／又はその他のコンポーネントも存在するかに応じて）。プロセッサ素子９５０がカップリング９５５によってそのように結合されて、プロセッサ素子９５０は、コンピューティング装置３００及び６００のどちらが処理アーキテクチャ３０００を実装しようとも、詳細に上述したタスクのうちの様々なものを実行することができる。カップリング９５５は、それにより信号が光学的及び／又は電気的に伝達される多様な技術の何れか又は複数の技術の組み合わせで実装され得る。また、カップリング９５５の少なくとも一部は、限定することなく、アクセラレーテッドグラフィクスポート（ＡＧＰ）、カードバス、拡張業界標準アーキテクチャ（Ｅ−ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、ＮｕＢｕｓ、ペリフェラルコンポーネントインターコネクト（エクステンディド）（ＰＣＩ−Ｘ）、ＰＣＩエクスプレス（ＰＣＩ−Ｅ）、パーソナルコンピュータメモリーカード国際協会（ＰＣＭＣＩＡ）バス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（登録商標）、ＱｕｉｃｋＰａｔｈ、及びこれらに類するものを含む、多様な工業規格のうちの何れかに準拠するタイミング及び／又はプロトコルを使用し得る。
【００７６】
先述のように、プロセッサ素子９５０（プロセッサ素子３５０、４５０、６５０及び７５０のうちの１つ以上に対応）は、多様な技術のうちの何れかを使用して、多様な手法のうちの何れかで物理的に結合された１つ以上のコアを用いて実装される、多様な商業的に入手可能なプロセッサのうちの何れかを含み得る。
【００７７】
先述のように、ストレージ９６０（ストレージ３６０、４６０及び６６０のうちの１つ以上に対応）は、多様な技術のうちの何れか又は複数の技術の組み合わせに基づく１つ以上の区別可能な記憶装置を含み得る。より具体的には、図示のように、ストレージ９６０は、揮発性ストレージ９６１（例えば、１つ以上の形態のＲＡＭテクノロジに基づく半導体ストレージ）、不揮発性ストレージ９６２（例えば、コンテンツを失わないようにするために電力の絶え間ない供給を必要とする半導体、強磁性又はその他のストレージ）、及び取り外し可能（リムーバブル）メディアストレージ９６３（例えば、それによりコンピューティング装置間で情報が伝達され得るリムーバブルなディスク又は半導体メモリカードストレージ）のうちの１つ以上を含み得る。複数の異なる種類のストレージを有し得るとするこのストレージ９６０の描写は、１つの種類が、プロセッサ素子９５０によるいっそう高速なデータ操作を可能にする比較的速い読出し及び書込み能力を提供する（しかし、場合により、絶えず電力を必要とする“揮発性”テクノロジを用いる）一方で、別の１つの種類が、比較的高密度の不揮発性ストレージを提供する（しかし、比較的遅い読出し及び書込み能力を提供しがちである）という、コンピューティング装置における一般的な２種類以上の記憶装置の使用を認識してのものである。
【００７８】
異なる技術を使用する異なる記憶装置のしばしば異なる特性を所与として、やはり一般的なこととして、このような異なる記憶装置は、それらの異なる記憶装置に異なるインタフェースを介して結合される異なるストレージコントローラによってコンピューティング装置のその他の部分に結合される。例として、揮発性ストレージ９６１が存在し且つＲＡＭテクノロジに基づく場合、揮発性ストレージ９６１は、恐らくは行（ロウ）及び列（カラム）のアドレス指定を使用する揮発性ストレージ９６１に適したインタフェースを提供するストレージコントローラ９６５ａを介してカップリング９５５に通信的に結合されることができ、ストレージコントローラ９６５ａは、揮発性ストレージ９６１内に記憶された情報を失わないようにすることを助けるよう、ロウのリフレッシュ及び／又はその他の維持タスクを実行し得る。他の一例として、不揮発性ストレージ９６２が存在し且つ１つ以上の強磁性及び／又は半導体のディスクドライブを含む場合、不揮発性ストレージ９６２は、恐らくは情報ブロック及び／又はシリンダ及びセクタのアドレス指定を使用する不揮発性ストレージ９６２に適切したインタフェースを提供するストレージコントローラ９６５ｂを介してカップリング９５５に通信的に結合され得る。更なる他の一例として、リムーバブルメディアストレージ９６３が存在し、且つリムーバブル機械可読記憶媒体９６９の１つ以上のピースを使用する１つ以上の光学及び／又は半導体ディスクドライブを含む場合、リムーバブルメディアストレージ９６３は、恐らくは情報ブロックのアドレス指定を使用するリムーバブルメディアストレージ９６３に適したインタフェースを提供するストレージコントローラ９６５ｃを介してカップリング９５５に通信的に結合されることができ、ストレージコントローラ９６５ｃは、機械可読記憶媒体９６９の寿命を延ばすことに特有の手法で、読出し、消去、及び書込みの動作を調整し得る。
【００７９】
揮発性ストレージ９６１又は不揮発性ストレージ９６２の一方又は他方は、各々が基づく技術に応じて、プロセッサ素子９５０によって実行可能な命令シーケンスを有するルーチンが格納され得る、機械可読記憶媒体の形態の製品を含み得る。例として、不揮発性ストレージ９６２が強磁性に基づくディスクドライブ（例えば、所謂“ハードドライブ”）を含む場合、そのようなディスクドライブは各々、典型的に、１つ以上の回転する円盤状記憶媒体を使用し、その上に、磁気的に応答する粒子を含むコーティングが堆積され、例えばフロッピー（登録商標）ディスクなどのリムーバブル記憶媒体と類似の手法で様々なパターンに磁気的に方向付けられることで、例えば命令シーケンスなどの情報が記憶される。他の一例として、不揮発性ストレージ９６２は、コンパクトフラッシュ（登録商標）カードと類似の手法で例えば命令シーケンスなどの情報を記憶する半導体記憶デバイスの複数のバンクで構成され得る。ここでも、実行可能ルーチン及び／又はデータを記憶するために、異なるときにコンピューティング装置内で異なる種類の記憶装置を使用することは一般的なことである。故に、プロセッサ素子９５０によって実行される命令シーケンスを有するルーチンは、当初、機械可読記憶媒体９６９に格納されることができ、その後、機械可読記憶媒体９６９が継続的に存在することを要さずに長期記憶のために不揮発性ストレージ９６２にコピーする際、及び／又はそのルーチンが実行されるときにプロセッサ素子９５０によるいっそう高速なアクセスを可能にするために揮発性ストレージ９６１にコピーする際に、リムーバブルメディアストレージ９６３が使用され得る。
【００８０】
先述のように、インタフェース９９０（インタフェース３９０、４９０、６９０及び７９０のうちの１つ以上に対応）は、コンピューティング装置を１つ以上のその他の装置に通信可能に結合するために使用され得る多様な通信技術のうちの何れかに対応する多様なシグナリングテクノロジのうちの何れかを使用し得る。ここでも、様々な形態の有線シグナリング又は無線シグナリングの一方又は双方を使用して、プロセッサ素子９５０が、場合によりネットワーク（例えば、ネットワーク９９９）又は相互接続された一組のネットワークを介して、入力／出力装置（例えば、図示した例のキーボード９２０又はプリンタ９２５）及び／又はその他のコンピューティング装置とインタラクトすることが可能にされ得る。しばしば大いに異なる特性の複数種類のシグナリング及び／又はプロトコルが、何れか１つのコンピューティング装置によってサポートされなければならないことが多いという認識の下、インタフェース９９０は、複数の異なるインタフェースコントローラ９９５ａ、９９５ｂ及び９９５ｃを有するものとして図示されている。インタフェースコントローラ９９５ａは、例えば図示したキーボード９２０などのユーザ入力装置からシリアル伝送されるメッセージを受信するために、多様な種類の有線式デジタルシリアルインタフェース又は無線周波数ワイヤレスインタフェースのうちの何れかを使用し得る。インタフェースコントローラ９９５ｂは、図示したネットワーク９９９（恐らくは、１つ以上のリンクを有するか、より小さい複数のネットワークを有するか、又は場合によりインターネットを有するかであるネットワーク）を介してその他のコンピューティング装置にアクセスするために、多様なケーブルベース若しくはワイヤレスのシグナリング、タイミング、及び／又はプロトコルのうちの何れかを使用し得る。インタフェースコントローラ９９５ｃは、図示したプリンタ９２５にデータを伝達するためにシリアル又はパラレルの何れかの信号伝送の使用を可能にする多様な導電ケーブル配線のうちの何れかを使用し得る。インタフェース９９０の１つ以上のインタフェースコントローラを介して通信可能に結合され得る装置のその他の例は、限定することなく、マイクロフォン、リモートコントローラ、スタイラスペン、カードリーダ、指紋リーダ、仮想現実インタラクショングローブ、グラフィック入力タブレット、ジョイスティック、その他のキーボード、網膜スキャナ、タッチスクリーンのタッチ入力部、トラックボール、様々なセンサ、レーザプリンタ、インクジェットプリンタ、機械式ロボット、フライス盤などを含む。
【００８１】
コンピューティング装置がディスプレイ（例えば、図示した例のディスプレイ９８０）に通信可能に結合される（あるいは場合により、実際には組み込んでいる）場合、処理アーキテクチャ３０００を実装するそのようなコンピューティング装置はまた、ディスプレイインタフェース９８５を組み込み得る。より一般化された種類のインタフェースがディスプレイに通信可能に結合して使用されてもよいが、ディスプレイ上に様々な形態のコンテンツを視覚的に表示する際にしばしば要求される幾らか特化された追加処理と、使用されるケーブルベースのインタフェースの幾らか特化された性質とが、しばしば、独特なディスプレイインタフェースを設けることを望ましくする。ディスプレイ９８０の通信結合にてディスプレイインタフェース９８５によって使用され得る有線及び／又は無線のシグナリングテクノロジは、限定することなく、多様なアナログビデオインタフェースのうちの何れか、デジタルビデオインタフェース（ＤＶＩ）、ＤｉｓｐｌａｙＰｏｒｔなどを含む多様な工業規格のうちの何れかに準拠するシグナリング及び／又はプロトコルを使用し得る。
【００８２】
より一般的には、コンピューティング装置３００及び６００の様々な要素は、様々なハードウェア要素、ソフトウェア要素、又はこれら双方の組み合わせを含み得る。ハードウェア要素の例は、デバイス、論理デバイス、部品、プロセッサ、マイクロプロセッサ、回路、プロセッサ素子、回路素子（例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース（ＡＰＩ）、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、記号、又はこれらの組み合わせを含み得る。しかしながら、実施形態がハードウェア要素及び／又はソフトウェア要素を用いて実装されるかの決定は、例えば、所望の、計算速度、電力レベル、熱の許容範囲、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、及び所与の実装に対して望ましいその他の設計上若しくは性能上の制約などの、幾つもの要因に従って異なるものとなり得る。
【００８３】
一部の実施形態は、表現“一実施形態”又は“或る実施形態”やこれらの派生形を用いて記述されることがある。これらの用語は、その実施形態に関連して記述される特定の機構、構造又は特徴が、少なくとも１つの実施形態に含まれることを意味する。本明細書中の様々な箇所に“一実施形態において”という言い回しが現れることは、必ずしも全てが同じ実施形態に言及しているわけではない。また、一部の実施形態は、表現“結合され”及び“接続され”やこれらの派生形を用いて記述されることがある。これらの用語は必ずしも互いの同義語であることを意図するものではない。例えば、一部の実施形態は、２つ以上の要素が互いに物理的あるいは電気的に直接的に接触していることを指し示すために、用語“接続され”及び／又は“結合され”を用いて記述されることがある。しかしながら、用語“結合され”はまた、２つ以上の要素が互いに直接的には接触していないが、なおも互いに協働あるいは相互作用することをも意味し得る。
【００８４】
強調しておくことには、本開示の要約書は、読者がすぐに技術的開示の本質を確かめることを可能にするために提供されるものである。要約書は、請求項の範囲又は意味を解釈あるいは限定することには使用されないとの理解の下で提出されている。また、以上の詳細な説明においては、理解され得るように、本開示を効率化する目的で、様々な機構を単一の実施形態内にまとめている。この開示手法は、特許請求に係る実施形態が各請求項に明示的に記載されるものよりも多くの機構を必要とするといった意図を映すものとして解釈されるべきでない。むしろ、以下の請求項が映し示すように、発明的事項は、単一の開示実施形態の全機構より少ない部分にある。故に、以下の請求項はここで詳細な説明に組み入れられ、各請求項が別個の実施形態として自立したものとなる。添付の請求項において、用語“含む”及び“そこで”は、それぞれ、プレインイングリッシュにおいて“有する”及び“ここで”と等価なものとして使用される。また、用語“第１”、“第２”、“第３”などは、単にラベルとして使用されており、数に関する要件をそれらのものに課すことは意図されていない。
【００８５】
上述したものは、開示のアーキテクチャの例を含んでいる。当然ながら、考え得る全てのコンポーネント及び／又は方法の組み合わせを記述することは不可能であり、当業者が認識し得るように、数多くの更なる組み合わせ及び変形が可能である。従って、この新規なアーキテクチャは、添付の請求項の精神及び範囲に入るような全ての改変、変更及び変形を包含するよう意図される。本詳細開示は、ここで、更なる実施形態に関する例を提示することに取り掛かる。以下に提示される例は、限定的であることを意図していない。
【００８６】
仮想マシンインテグリティを監視する装置の一例は、第１のプロセッサ素子と、第１のロジックであり、第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、第２のプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、前記第２のプロセッサ素子が、ＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、且つ前記決定のインジケーションをコンピューティング装置に送信する第１のロジックとを含む。
【００８７】
上述の装置例において、前記第１のロジックは、前記第２のプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、割込コントローラの状態を監視し、且つ前記第２のプロセッサ素子が前記割込コントローラを再び有効化したかを決定する。
【００８８】
上述の装置例の何れかにおいて、前記第１のロジックは、前記第２のプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ前記第２のプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定する。
【００８９】
上述の装置例の何れかにおいて、前記第１のロジックは、健全性検出部と前記第１及び第２のプロセッサ素子とを有するサーバの前記健全性検出部を監視し、且つ前記サーバの健全性のインジケーションを前記コンピューティング装置に送信する。
【００９０】
上述の装置例の何れかにおいて、前記健全性検出部は、熱センサ、電圧センサ、バス活動モニタ、及びクロック信号モニタのうちの１つを含む。
【００９１】
上述の装置例の何れかにおいて、当該装置は前記第２のプロセッサ素子及び割込コントローラを含み、前記ＶＭＭウォッチャーは第２のロジックを含み、前記第２のロジックは、前記割込コントローラのレジスタに書き込むことで、前記割込コントローラを再び有効化し、前記ＶＭＭウォッチャーの実行を止め、且つ前記ＶＭＭを実行する。
【００９２】
上述の装置例の何れかにおいて、当該装置は前記第２のプロセッサ素子を含み、前記ＶＭＭウォッチャーは第２のロジックを含み、前記第２のロジックは、前記ＶＭＭの実行中に前記ＶＭＭのインテグリティの検証の結果を指し示す結果データが前記コンピューティング装置に送信される準備を整え、且つ前記ＶＭＭウォッチャーの実行の停止と前記ＶＭＭの実行の開始とを生じさせる。
【００９３】
上述の装置例の何れかにおいて、当該装置は前記第１のタイマーを含み、前記第１のタイマーは、前記第１の期間の継続時間をランダムに選択するランダム化タイマーを含む。
【００９４】
上述の装置例の何れかにおいて、当該装置は前記第２のプロセッサ素子を含み、前記ＶＭＭウォッチャーは、前記ＶＭＭに埋め込まれたデジタル署名をキーを用いて検証する第２のロジックを含む。
【００９５】
上述の装置例の何れかにおいて、当該装置は前記第２のプロセッサ素子を含み、前記ＶＭＭウォッチャーは、前記第２のタイマーのレジスタに書き込んで前記第２のタイマーを停止させることで前記ＶＭＭウォッチャーの完了を指し示す第２のロジックを含む。
【００９６】
仮想マシンインテグリティを監視する他の装置の一例は、プロセッサ素子と、前記プロセッサ素子をサーバに結合する第１のインタフェースと、ロジックであり、前記サーバの第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、ＶＭＭのインテグリティを検証するＶＭＭウォッチャーが、前記サーバの第２のタイマーが第２の期間の終わりに到達する前に、前記サーバのプロセッサ素子によって実行されたか、を指し示す第１の結果データを受信し、且つ前記検証の結果を指し示す第２の結果データの受信を待つロジックとを含む。
【００９７】
上述の他の装置例において、前記ロジックは、前記サーバからの前記第２の結果データの受信がないことに応答して、少なくとも前記第１の結果データを分析して、前記第２の結果データの受信がないことの原因を決定する。
【００９８】
上述の他の装置例の何れかにおいて、前記ロジックは、前記サーバのコンポーネントの温度、前記サーバへの電力の供給の電圧レベル、前記サーバのバスの活動のインジケーション、未修正のアレイ／ロジックエラーのインジケーション、及び前記サーバのクロック信号の存在若しくは不存在のインジケーション、のうちの少なくとも１つを有する前記サーバの健全性のインジケーションを受信する。
【００９９】
上述の他の装置例の何れかにおいて、前記ロジックは、前記サーバを再始動させるように前記サーバのコントローラに信号伝達すべきかを決定する。
【０１００】
上述の他の装置例の何れかにおいて、前記ロジックは、前記サーバの前記健全性の前記インジケーションに応答して、前記サーバを修理する必要性のインジケーションを提示する。
【０１０１】
上述の他の装置例の何れかにおいて、当該装置はディスプレイを含み、前記ロジックは、前記ＶＭＭのインテグリティが前記ＶＭＭウォッチャーによって検証されないことを指し示す前記第２の結果データの受信に応答して、損なわれている前記ＶＭＭのインテグリティのインジケーションを視覚的に提示する。
【０１０２】
仮想マシンインテグリティを監視するコンピュータ実行される方法の一例は、サーバの第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、前記サーバのメインプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、前記メインプロセッサ素子が、前記サーバのＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、前記サーバの第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、前記サーバの健全性状態の少なくとも１つの検出部を監視し、且つ前記健全性状態及び前記決定を指し示す結果データをコンピューティング装置に送信することを含む。
【０１０３】
上述のコンピュータ実行される方法例において、当該方法は、前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記サーバの割込コントローラの状態を監視し、且つ前記メインプロセッサ素子が前記割込コントローラを再び有効化したかを決定することを含む。
【０１０４】
上述のコンピュータ実行される方法例の何れかにおいて、当該方法は、前記ＶＭＭのインテグリティの検証後に、前記割込コントローラのレジスタに書き込んで前記割込コントローラを再び有効化することを含む。
【０１０５】
上述のコンピュータ実行される方法例の何れかにおいて、当該方法は、前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ前記メインプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定することを含む。
【０１０６】
上述のコンピュータ実行される方法例の何れかにおいて、当該方法は、前記第２のタイマーのレジスタに書き込んで前記第２のタイマーを停止させることで、前記ＶＭＭウォッチャーの完了を指し示すことを含む。
【０１０７】
上述のコンピュータ実行される方法例の何れかにおいて、当該方法は、前記サーバのコンポーネントの温度、前記サーバへの電力の供給の電圧レベル、前記サーバのバスの活動のインジケーション、未修正のアレイ／ロジックエラーのインジケーション、及び前記サーバのクロック信号の存在若しくは不存在のインジケーション、のうちの少なくとも１つを含む。
【０１０８】
上述のコンピュータ実行される方法例の何れかにおいて、当該方法は、前記ＶＭＭに埋め込まれたデジタル署名をキーを用いて検証することを含む。
【０１０９】
仮想マシンインテグリティのための装置の一例は、上述のコンピュータ実行される方法例の何れかを実行する手段を含む。
【０１１０】
少なくとも１つの機械可読記憶媒体の一例は、コンピューティング装置によって実行されるときに、前記コンピューティング装置に、前記コンピューティング装置の第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、前記コンピューティング装置のメインプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、前記メインプロセッサ素子が、前記コンピューティング装置のＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、前記コンピューティング装置の第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、且つ前記決定を指し示す結果データを別のコンピューティング装置に送信することを行わせる命令を含む。
【０１１１】
上述の少なくとも１つの機械可読記憶媒体の例において、前記コンピューティング装置は、前記コンピューティング装置の健全性状態の少なくとも１つの検出部を監視し、且つ前記健全性状態のインジケーションを前記結果データに含めることを行うようにされる。
【０１１２】
上述の少なくとも１つの機械可読記憶媒体の例の何れかにおいて、前記健全性状態は、前記コンピューティング装置のコンポーネントの温度、前記コンピューティング装置への電力の供給の電圧レベル、前記コンピューティング装置のバスの活動のインジケーション、未修正のアレイ／ロジックエラーのインジケーション、及び前記コンピューティング装置のクロック信号の存在若しくは不存在のインジケーション、のうちの少なくとも１つを含む。
【０１１３】
上述の少なくとも１つの機械可読記憶媒体の例の何れかにおいて、前記コンピューティング装置は、前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記コンピューティング装置の割込コントローラの状態を監視し、且つ前記メインプロセッサ素子が前記割込コントローラを再び有効化したかを決定することを行うようにされる。
【０１１４】
上述の少なくとも１つの機械可読記憶媒体の例の何れかにおいて、前記コンピューティング装置は、前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ前記メインプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定することを行うようにされる。
【０１１５】
仮想マシンインテグリティを監視する更なる他の装置の一例は、コンピューティング装置の第１のタイマーが第１の期間の終わりに到達したことのインジケーションを受信し、前記コンピューティング装置のメインプロセッサ素子による仮想マシンモニタ（ＶＭＭ）ウォッチャーの実行を監視し、前記メインプロセッサ素子が、前記コンピューティング装置のＶＭＭのインテグリティを検証するための前記ＶＭＭウォッチャーの実行を、前記コンピューティング装置の第２のタイマーが第２の期間の終わりに到達する前に完了したかを決定し、且つ前記決定を指し示す結果データを別のコンピューティング装置に送信する手段を含む。
【０１１６】
上述の更なる他の装置例において、当該装置は、前記コンピューティング装置の健全性状態の少なくとも１つの検出部を監視し、且つ前記健全性状態のインジケーションを前記結果データに含める手段を含む。
【０１１７】
上述の更なる他の装置例の何れかにおいて、前記健全性状態は、前記コンピューティング装置のコンポーネントの温度、前記コンピューティング装置への電力の供給の電圧レベル、前記コンピューティング装置のバスの活動のインジケーション、未修正のアレイ／ロジックエラーのインジケーション、及び前記コンピューティング装置のクロック信号の存在若しくは不存在のインジケーション、のうちの少なくとも１つを含む。
【０１１８】
上述の更なる他の装置例の何れかにおいて、当該装置は、前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記コンピューティング装置の割込コントローラの状態を監視し、且つ前記メインプロセッサ素子が前記割込コントローラを再び有効化したかを決定する手段を含む。
【０１１９】
上述の更なる他の装置例の何れかにおいて、当該装置は、前記メインプロセッサ素子による前記ＶＭＭウォッチャーの実行を監視するために、前記第２のタイマーの状態を監視し、且つ前記メインプロセッサ素子が前記第２のタイマーを停止させて前記ＶＭＭウォッチャーの実行の完了を指し示したかを決定する手段を含む。
【図１】
0006017709.tif 000002
【図２】
0006017709.tif 000003
【図３】
0006017709.tif 000004
【図４】
0006017709.tif 000005
【図５】
0006017709.tif 000006
【図６】
0006017709.tif 000007
【図７】
0006017709.tif 000008
【図８】
0006017709.tif 000009
【図９】
0006017709.tif 000010