(57)【要約】一実施形態に従って、システムはメモリ及びプロセッサを有する。プロセッサは、インストールのためのパッチと、パッチがインストールされ得る前に満足されるべき一以上の要件とを含むメッセージを受信する。プロセッサはまた、収集された情報に基づき一以上の要件が満足されたと決定されるまで、一以上のセンサから繰り返し情報を収集する。一以上の要件が満足されたと決定されると、プロセッサは更に、コンピュータシステムにおいてパッチのインストール処理を行う。パッチのインストール処理が終了されると決定されると、プロセッサは更に、パッチのインストールが成功したかどうかを示す確認リポートを送信する。確認リポートは、コンピュータシステムに関連づけられる固有要素によって生成され署名される。
2014527677.tif 000002
【特許請求の範囲】
【請求項１】
自動車と、該自動車に組み込まれるコンピュータシステムとを有し、
前記コンピュータシステムは、
１又はそれ以上のリポートを生成し、前記コンピュータシステムに関連していると前記リポートを特定するように該リポートに署名するよう動作する固有要素と、
１又はそれ以上の命令を記憶するよう動作するメモリと、
前記１又はそれ以上の命令の実行時に、
インストールのための、前記コンピュータシステムを更新するよう構成されるパッチと、該パッチがインストールされ得る前に満足されるべき１又はそれ以上の要件とを含むメッセージを受信し、
収集された情報に基づき前記１又はそれ以上の要件が満足されたと決定されるまで、１又はそれ以上のセンサから繰り返し情報を収集し、
前記１又はそれ以上の要件が満足されたと決定されると、前記コンピュータシステムにおいて前記パッチのインストール処理を行い、
前記パッチのインストール処理が終了されると決定されると、前記パッチのインストールに成功したかどうかを示す、前記固有要素によって生成され署名された確認リポートを送信する
よう動作するプロセッサと
を有する、システム。
【請求項２】
コンピュータシステムを有し、該コンピュータシステムは、
１又はそれ以上のリポートを生成し、前記コンピュータシステムに関連していると前記リポートを特定するように該リポートに署名するよう動作する固有要素と、
１又はそれ以上の命令を記憶するよう動作するメモリと、
前記１又はそれ以上の命令の実行時に、
インストールのための、前記コンピュータシステムを更新するよう構成されるパッチと、該パッチがインストールされ得る前に満足されるべき１又はそれ以上の要件とを含むメッセージを受信し、
収集された情報に基づき前記１又はそれ以上の要件が満足されたと決定されるまで、１又はそれ以上のセンサから繰り返し情報を収集し、
前記１又はそれ以上の要件が満足されたと決定されると、前記コンピュータシステムにおいて前記パッチのインストール処理を行い、
前記パッチのインストール処理が終了されると決定されると、前記パッチのインストールに成功したかどうかを示す、前記固有要素によって生成され署名された確認リポートを送信する
よう動作するプロセッサと
を有する、システム。
【請求項３】
前記コンピュータシステムが組み込まれる装置
を更に有する請求項２に記載のシステム。
【請求項４】
前記装置は、
自動車、
携帯電話機、
デジタルバーサタイルディスク（ＤＶＤ）プレーヤ、
デジタルカメラ、
プリンタ、及び
電子医療機器
を含むグループから選択される、請求項３に記載のシステム。
【請求項５】
前記コンピュータシステムは、１又はそれ以上のバーチャルマシンを実行するクラウドサーバを有する、
請求項２に記載のシステム。
【請求項６】
製造業者に関連づけられる装置を更に有し、該装置は、
１又はそれ以上の第２の命令を記憶するよう動作する第２のメモリと、
前記１又はそれ以上の第２の命令の実行時に、
前記確認リポートを受信し、
前記パッチのインストールに成功したかどうかの証拠として前記確認リポートを記憶する
よう動作する第２のプロセッサと
を有する、請求項２に記載のシステム。
【請求項７】
前記プロセッサは更に、前記１又はそれ以上の命令の実行時に、
前記パッチのインストール処理が成功したと決定されると、前記コンピュータシステムに関する第１チェックポイントを生成し、
前記コンピュータシステムにおいて次のパッチのインストール処理を行う前に、前記コンピュータシステムに関する第２チェックポイントを生成し、
前記第１チェックポイントと前記第２チェックポイントとを比較し、
前記第１チェックポイントが前記第２チェックポイントと異なると決定されると、前記パッチのインストールの成功以後に前記コンピュータシステムでエラーが起きたことを示す、前記固有要素によって生成され署名された次の確認リポートを送信する
よう動作する、請求項２に記載のシステム。
【請求項８】
前記プロセッサは更に、前記１又はそれ以上の命令の実行時に、
前記メッセージを受信する前に、
前記１又はそれ以上のセンサから初期情報を収集し、
収集された前記初期情報を含む初期メッセージを、製造業者に関連づけられる装置へ送信する
よう動作し、
前記製造業者に関連づけられる前記装置は、
１又はそれ以上の第２の命令を記憶するよう動作する第２のメモリと、
前記１又はそれ以上の第２の命令の実行時に、
前記収集された初期情報に基づき、前記パッチとして前記コンピュータシステムへ送信する特定のパッチを選択し、
前記メッセージを前記コンピュータシステムへ送信する
よう動作する第２のプロセッサと
を有する、請求項２に記載のシステム。
【請求項９】
コンピュータシステムで、インストールのための、前記コンピュータシステムを更新するよう構成されるパッチと、該パッチがインストールされ得る前に満足されるべき１又はそれ以上の要件とを含むメッセージを受信し、
収集された情報に基づき前記１又はそれ以上の要件が満足されたと決定されるまで、１又はそれ以上のセンサから繰り返し情報を収集し、
前記１又はそれ以上の要件が満足されたと決定されると、前記コンピュータシステムにおいて前記パッチのインストール処理を行い、
前記パッチのインストール処理が終了されると決定されると、前記パッチのインストールに成功したかどうかを示す、前記コンピュータシステムに関連づけられる固有要素によって生成され署名された確認リポートを送信する
方法。
【請求項１０】
前記コンピュータシステムは装置に組み込まれる、
請求項９に記載の方法。
【請求項１１】
前記装置は、
自動車、
携帯電話機、
デジタルバーサタイルディスク（ＤＶＤ）プレーヤ、
デジタルカメラ、
プリンタ、及び
電子医療機器
を含むグループから選択される、請求項１０に記載の方法。
【請求項１２】
前記コンピュータシステムは、１又はそれ以上のバーチャルマシンを実行するクラウドサーバを有する、
請求項９に記載の方法。
【請求項１３】
更に、
製造業者に関連づけられる装置で、前記確認リポートを受信し、
前記パッチのインストールに成功したかどうかの証拠として前記確認リポートを記憶する
請求項９に記載の方法。
【請求項１４】
更に、
前記パッチのインストール処理が成功したと決定されると、前記コンピュータシステムに関する第１チェックポイントを生成し、
前記コンピュータシステムにおいて次のパッチのインストール処理を行う前に、前記コンピュータシステムに関する第２チェックポイントを生成し、
前記第１チェックポイントと前記第２チェックポイントとを比較し、
前記第１チェックポイントが前記第２チェックポイントと異なると決定されると、前記パッチのインストールの成功以後に前記コンピュータシステムでエラーが起きたことを示す、前記コンピュータシステムに関連づけられる前記固有要素によって生成され署名された次の確認リポートを送信する
請求項９に記載の方法。
【請求項１５】
更に、前記メッセージを受信する前に、
前記１又はそれ以上のセンサから初期情報を収集し、
収集された前記初期情報を含む初期メッセージを、製造業者に関連づけられる装置へ送信し、
前記収集された初期情報に基づき、前記製造業者に関連づけられる前記装置によって、前記パッチとして前記コンピュータシステムへ送信する特定のパッチを選択し、
前記メッセージを前記コンピュータシステムへ送信する
請求項９に記載の方法。
【請求項１６】
プロセッサによって実行される場合に、
コンピュータシステムで、インストールのための、前記コンピュータシステムを更新するよう構成されるパッチと、該パッチがインストールされ得る前に満足されるべき１又はそれ以上の要件とを含むメッセージを受信し、
収集された情報に基づき前記１又はそれ以上の要件が満足されたと決定されるまで、１又はそれ以上のセンサから繰り返し情報を収集し、
前記１又はそれ以上の要件が満足されたと決定されると、前記コンピュータシステムにおいて前記パッチのインストール処理を行い、
前記パッチのインストール処理が終了されると決定されると、前記パッチのインストールに成功したかどうかを示す、前記コンピュータシステムに関連づけられる固有要素によって生成され署名された確認リポートを送信する
よう動作するロジックを記憶した非一時的なコンピュータ可読媒体。
【請求項１７】
前記コンピュータシステムは装置に組み込まれる、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記装置は、
自動車、
携帯電話機、
デジタルバーサタイルディスク（ＤＶＤ）プレーヤ、
デジタルカメラ、
プリンタ、及び
電子医療機器
を含むグループから選択される、請求項１７に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記コンピュータシステムは、１又はそれ以上のバーチャルマシンを実行するクラウドサーバを有する、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記報告リポートは、前記パッチのインストールに成功したかどうかの証拠としての記憶のために、製造業者に関連づけられる装置へ送信される、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２１】
前記ロジックは更に、前記プロセッサによって実行される場合に、
前記パッチのインストール処理が成功したと決定されると、前記コンピュータシステムに関する第１チェックポイントを生成し、
前記コンピュータシステムにおいて次のパッチのインストール処理を行う前に、前記コンピュータシステムに関する第２チェックポイントを生成し、
前記第１チェックポイントと前記第２チェックポイントとを比較し、
前記第１チェックポイントが前記第２チェックポイントと異なると決定されると、前記パッチのインストールの成功以後に前記コンピュータシステムでエラーが起きたことを示す、前記コンピュータシステムに関連づけられる前記固有要素によって生成され署名された次の確認リポートを送信する
よう動作する、請求項１６に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピュータシステムの分野に関し、より具体的には、コンピュータシステムにパッチをインストールするシステム及び方法に関する。
【背景技術】
【０００２】
一般的に、コンピュータシステムは、最初にパッチが必要とされると決定（例えば、更新の確認）し、次いでコンピュータシステムでの即時インストールのためにパッチをインストールすることによって、パッチをインストールしてよい。代替的に、コンピュータシステムはまた、一般的に、コンピュータシステムのユーザが手動によりパッチをダウンロードすると選択し、それがダウンロードされると直ぐにパッチをインストールすることに基づき、パッチをインストールしてよい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
そのようなパッチのインストール処理は、しかしながら不完全なことがある。特に、そのような処理は、装置に組み込まれているコンピュータシステム（例えば、埋込型コンピュータ装置）及び／又はバーチャルマシンを実装するコンピュータシステムに関して問題をはらむことがある。
【課題を解決するための手段】
【０００４】
一実施形態に従って、システムはコンピュータシステムを有し、該コンピュータシステムは、１又はそれ以上のリポートを生成し、前記コンピュータシステムに関連していると前記リポートを特定するように該リポートに署名するよう動作する固有要素を有する。前記コンピュータシステムは、メモリ及びプロセッサを更に有する。前記プロセッサは、インストールのためのパッチと、該パッチがインストールされ得る前に満足されるべき１又はそれ以上の要件とを含むメッセージを受信する。前記パッチは、前記コンピュータシステムを更新するよう構成される。前記プロセッサはまた、収集された情報に基づき前記１又はそれ以上の要件が満足されたと決定されるまで、１又はそれ以上のセンサから繰り返し情報を収集する。前記１又はそれ以上の要件が満足されたと決定されると、前記プロセッサは更に、前記コンピュータシステムにおいて前記パッチのインストール処理を行う。前記パッチのインストール処理が終了されると決定されると、前記プロセッサは更に、前記パッチのインストールに成功したかどうかを示す確認リポートを送信する。前記確認リポートは、前記コンピュータシステムに関連づけられる固有要素によって生成され署名される。
【０００５】
本開示の特定の実施形態は、１又はそれ以上の技術的利点を提供してよい。例えば、パッチがコンピュータでインストールされる前に要件が満足されることを要求することで、パッチの作成者（及び／又は提供者）は、インストールが成功する可能性が高い場合、インストールが危険でない場合、及び／又はインストールがコンピュータシステムにとって適切である場合に、一度にパッチがコンピュータシステムにインストールされることを確かにすることができる。
【０００６】
他の例として、パッチがコンピュータシステムにインストールされる前に要件が満足されることを要求することで、パッチは、装置に組み込まれるコンピュータシステム、及び／又はバーチャルマシンを実装しているコンピュータシステムにインストールされてよい。更なる例として、パッチのインストールが成功したかどうかを示す確認リポートを送信することで、確認リポートは、コンピュータシステムでのパッチのインストールが成功したか否かの証拠として第三者（例えば、製造業者）によって記憶されてよい。
【０００７】
本開示の特定の実施形態は、上記の技術的利点の全て若しくは一部を含むか、又は空らを全く含まなくてもよい。一以上の他の技術的利点は、本願に含まれる図面、明細書、及び特許請求の範囲から当業者には容易に認識されるであろう。
【図面の簡単な説明】
【０００８】
【図１】装置に組み込まれるコンピュータシステムのようなコンピュータシステムにおけるパッチのインストールを提供するシステムを表す。
【図２】１又はそれ以上のバーチャルマシンを実装するコンピュータシステムにおけるパッチのインストールを提供するシステムを表す。
【図３】コンピュータシステムでパッチをインストールする方法を表す。
【図４】図３の方法におけるコンピュータシステムの特定の実施形態に関してチェックポイントを生成する方法を表す。
【図５】コンピュータシステムのためのパッチを選択する方法を表す。
【発明を実施するための形態】
【０００９】
本開示並びにその特徴及び利点のより完全な理解のために、添付の図面とともに検討される以下の説明が参照される。
【００１０】
本開示の実施形態は、図面の図１乃至５を参照することよって最も良く理解される。なお、同じ参照符号は、様々な図面の同じ又は対応する部分に使用される。
【００１１】
図１は、装置に組み込まれるコンピュータシステムのようなコンピュータシステムにおけるパッチのインストールを提供するシステム１０を表す。システム１０は装置１４を有し、装置１４は自身に組み込まれたコンピュータシステム１８を有する。コンピュータシステム１８は、製造業者装置５４からパッチ７８及び１又はそれ以上の要件８２を受信する。要件８２が満足されているとコンピュータシステム１８が決定すると、コンピュータシステム１８は、コンピュータシステム１８にパッチ７８をインストールするインストール処理を行ってよい。特定の実施形態において、これは、たとえコンピュータシステム１８が装置１４に組み込まれているとしても、コンピュータシステム１８がパッチ７８をインストールすることを可能にすることができる。
【００１２】
パッチ（例えば、パッチ７８）は、コンピュータシステムでのインストールのための命令、ロジック又はコードの組に相当してよい。パッチは、コンピュータシステムに付随する既知の問題を解決するよう設計されてよく、且つ／あるいは、コンピュータシステム、コンピュータシステムに関連する一以上のアプリケーション及び／又は命令、及び／又はコンピュータシステムを記憶し若しくは支持するあらゆるデータを更新するよう設計されてよい。特定の実施形態において、パッチをインストールすることによって、コンピュータシステムは、コンピュータシステムに付随する一以上の安全上の問題（例えば、コンピュータシステムにおける脆弱性）及び／又は一以上のバグを解決してよい。更に、パッチのインストールは、コンピュータシステムの有用性及び／又は性能、コンピュータシステムに関連する一以上のアプリケーション及び／又は命令、及び／又はコンピュータシステムを記憶し若しくは支持するあらゆるデータを更に改善してよい。パッチは、コンピュータシステムの一部又はコンピュータシステム全体を修正及び／又は更新するよう構成されてよい。更に、パッチは、数キロバイトから数百メガバイト又はそれ以上といった如何なるサイズを有してもよい。
【００１３】
要件は、パッチがコンピュータシステムにインストールされるために要求されることに関する情報に相当してよい。特定の実施形態において、パッチがコンピュータシステムでインストールされる前に要件が満足されることを要求することによって、パッチの作成者（及び／又は提供者）は、インストールが成功する可能性が高い場合、インストールが危険でない場合、及び／又はインストールがコンピュータシステムにとって適切である場合に、一度にパッチがコンピュータシステムにインストールされることを確かにすることができる。
【００１４】
一般的に、コンピュータシステムは、最初にパッチが必要とされると決定（例えば、更新の確認）し、次いでコンピュータシステムでの即時インストールのためにパッチをインストールすることによって、パッチをインストールしてよい。代替的に、コンピュータシステムはまた、一般的に、コンピュータシステムのユーザが手動によりパッチをダウンロードすると選択し、それがダウンロードされると直ぐにパッチをインストールすることに基づき、パッチをインストールしてよい。そのようなパッチのインストール処理は、しかしながら、様々なコンピュータシステムにとって不完全なことがある。例えば、装置に組み込まれているコンピュータシステムは、コンピュータシステムが組み込まれる装置が機能している（又は別なふうに何らかの他の方法で動作している）ので、そのような方法においてパッチをインストールすることができず、当該インストール処理を安全でなく及び／又は不成功とする。他の例として、他のコンピュータシステムは、第三者によって使用され得るバーチャルマシンを実装していることがあるので、通常の方法においてそのようなコンピュータシステムにパッチをインストールすることは、いつパッチがインストールの準備ができていようともコンピュータシステムがバーチャルマシンをシャットダウンすることができないことがあるので、問題をはらむことがある。
【００１５】
上記の欠陥に加えて、更なる問題が、コンピュータシステムにパッチをインストールする通常の処理に付随することがある。例えば、特定のコンピュータシステムは、企業体（例えば、装置の製造業者）によって設計及び／又は製造された装置に組み込まれ得るので、企業体は、パッチのインストールの証明を要求することがある。特に、そのような証明は、装置が誤動作し又は破壊される場合に企業体が一以上のクレームから自身を守ることを可能にする。残念なことに、通常のインストール処理は、そのような証明を企業体に提供することができない。そのようなものとして、コンピュータシステムのための通常のパッチインストール方法は更に不完全である。
【００１６】
装置１４は、装置に組み込まれるコンピュータシステム１８を有する如何なる装置も表す。装置１４は、自動車、携帯電話機、デジタルバーサタイルディスク（ＤＶＤ）プレーヤ、デジタルカメラ、プリンタ、電子医療機器、装置に組み込まれるコンピュータシステム１８を有する何らかの他の装置、又はそれらのあらゆる組み合わせを含んでよい。特定の実施形態において、装置１４は、様々な機能及び／又は能力を有してよく、コンピュータシステム１８は、そのような機能及び／又は能力の一部にのみ関与してよい。特定の実施形態において、コンピュータシステム１８に加えて、装置１４は、装置１４の様々な機能及び能力を提供する付加的なハードウェア、機械部品、電機部品、又はその他タイプの部品を更に有してよい。
【００１７】
上述されたように、コンピュータシステム１８は装置１４において組み込まれる。そのようなものとして、コンピュータシステム１８は「埋込型コンピュータシステム」と呼ばれることがある。埋込型コンピュータシステムは、それが組み込まれる装置の一以上の機能及び／又は能力に関与するよう設計されるコンピュータシステムを有してよい。例えば、埋込型コンピュータシステムは、それが組み込まれる装置の一以上の専用及び／又は特定の機能を行うよう設計されてよい。特定の実施形態において、埋込型コンピュータシステムは、装置１４のハードウェア、ソフトウェア、機械部品、及び／又は電機部品へ作用し及び／又は機能を提供してよい。特定の実施形態において、埋込型コンピュータシステムは装置において組み込まれるので、埋込型コンピュータシステムはスタンドアローン型の装置でなくてよい。特定の実施形態において、埋込型コンピュータシステムは装置において組み込まれるので、埋込型コンピュータシステムはユーザインターフェースを有さなくてよい（すなわち、極めて限られたユーザインターフェースを有してよい）。特定の実施形態において、埋込型コンピュータシステムは装置において組み込まれるので、埋込型コンピュータシステムは、いつパッチが利用可能であろうとパッチをインストールすることができないことがある。例えば、装置は機能している（又は別なふうに何らかの方法で動作している）ことがあるので、埋込型コンピュータシステムにおけるパッチのインストールは安全ないことがあり、及び／又は特定の時点で成功しないことがある。このように、埋込型コンピュータシステムは、装置がもはやインストール処理を妨げなくなるまで、パッチをインストールすることができないことがある。
【００１８】
コンピュータシステム１８は、装置１４の一以上の機能及び／又は能力に関与する如何なる装置も表す。例えば、装置１４が自動車である実施形態では、コンピュータシステム１８は、アンチロック・ブレーキング・システム（ＡＢＳ）の制御、電子安定制御（ＥＳＣ／ＥＳＰ）、トラクションコントロール（ＴＣＳ）、自動四輪駆動、自動車のモータの様々な側面、自動車に導入されているＤＶＤプレーヤ若しくはグローバル・ポジショニング・システム（ＧＰＳ）の様々な側面、又は自動車のその他機能及び／若しくは能力のような自動車の一以上の機能及び／又は能力に関与しうる何らかの装置に相当する。
【００１９】
コンピュータシステム１８は、装置１４の一以上の機能及び／又は能力に関与するよう動作するハードウェア、ソフトウェア、又はそれらの組み合わせを有してよい。コンピュータシステム１８の機能は、装置１４における１又はそれ以上の場所にある構成要素のいずれかの組み合わせによって実行されてよい。表される実施形態では、コンピュータシステム１８は、ネットワークインターフェース２２、プロセッサ２６、固有要素３０、１又はそれ以上のセンサ３４、及びメモリ３８を有する。
【００２０】
ネットワークインターフェース２２は、ネットワーク５０から情報を受信し、ネットワーク５０を通じて情報を送信し、情報の処理を実行し、他の装置と通信し、又はそれらの処理の如何なる組み合わせも行うよう動作する如何なる装置も表す。例えば、ネットワークインターフェース２２は、パッチ７８及び要件８２を含むメッセージを製造業者装置５４から受信する。他の例として、ネットワークインターフェース２２は、確認リポート８６を含むメッセージを製造業者装置５４へ送る。ネットワークインターフェース２２は、コンピュータシステム１８がセンサ３４、ネットワーク５０、製造業者装置５４、又はシステム１０の他の構成要素と情報をやりとりすることを可能にするローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、又は他の通信システムを通じて通信するよう、プロトコル変換及びデータ処理機能を備えた、あらゆる適切なハードウェア及び／又はソフトウェアを含む実際又は仮想の何らかのポート又は接続に相当する。
【００２１】
プロセッサ２６は、ネットワークインターフェース２２及びメモリ３８へ通信上結合し、ネットワークインターフェース２２及びメモリ３８から受信される情報を処理することによってコンピュータシステム１８の動作及び管理を制御する。プロセッサ２６は、情報を制御及び処理するよう動作する如何なるハードウェア及び／又はソフトウェアも有する。例えば、プロセッサ２６は、コンピュータシステム１８の動作を制御するようコンピュータシステム管理アプリケーション４２を実行し、更に、パッチ７８のインストールを制御するようコレクタ管理アプリケーション４４を実行する。プロセッサ２６は、プログラム可能ロジック装置、マイクロコントローラ、マイクロプロセッサ、あらゆる処理装置、又はそれらのあらゆる組み合わせであってもよい。
【００２２】
固有要素３０は、一意的にコンピュータシステム１８に関連付けられる如何なる構成要素も表す。特定の実施形態において、固有要素３０は、ハードウェアに基づく構成要素（例えば、コンピュータシステム１８と一意的に関連づけられるトラステッド・プラットフォーム・モジュール（ＴＰＭ）又はその他コンピュータチップ若しくは装置）、又はソフトウェアに基づく構成要素（例えば、コンピュータシステム１８と一意的に関連づけられる一以上の命令及び／又はアプリケーション）であってよい。特定の実施形態において、固有要素３０は、固有キー、固有製品識別子、その他の一意の識別子、又はそれらの如何なる組み合わせも有してよい。特定の実施形態において、一意の識別子は、固有要素３０が製造される場合に固有要素３０に盛り込まれる秘密の識別子であってよい。固有要素３０はそのような一意の識別子を有し且つ（例えば、コンピュータシステム１８に物理的に結合（又は束縛）されるか、又はコンピュータシステム１８にのみ設置されることによって）コンピュータシステム１８に関連づけられるので、固有要素３０はコンピュータシステム１８に一意的に関連づけられ得る。特定の実施形態において、固有要素３０はコンピュータシステム１８に一意的に関連づけられるので、メッセージ、リポート、又はその他通信における固有要素３０の署名（及び／又はそれらの生成）は、コンピュータシステム１８に関連づけられると当該通信を特定する。そのようなものとして、固有要素３０によって署名（及び／又は生成）される通信を受信する第三者は、当該通信がコンピュータシステム１８に関連すると信じることができる。特定の実施形態において、第三者はまた、固有要素３０によって署名（及び／又は生成）される通信を信じることができるので、固有要素３０は「トラストアンカー」と呼ばれることがある。
【００２３】
センサ３４は、装置１４及び／又はコンピュータシステム１８に関連する情報（例えば、コンテキスト情報４６）を集中することができる如何なる検知要素も表す。センサ３４は、温度に基づくセンサ（例えば、装置１４の中及び／又は外の温度に関連する情報を収集するもの）、自動車に基づくセンサ（例えば、エンジン監視センサ、速度計センサ、空燃比センサ、タイヤ圧監視センサ、及び／又は車両速度センサ）、化学物質に基づくセンサ（例えば、窒素酸化物センサ）、電気に基づくセンサ（例えば、電圧検出器）、環境に基づくセンサ（例えば、雨センサ）、ソフトウェアに基づくセンサ（例えば、処理システムの現在の作業負荷を示す情報を収集するセンサ）、その他センサ、又はそれらの如何なる組み合わせを有してもよい。特定の実施形態において、センサ３４は、装置１４及び／又はコンピュータシステム１８に関連する情報を収集してよく、それにより、コンピュータシステム１８は、パッチ７８がインストールされ得るかどうか決定してよい。特定の実施形態において、センサ３４は、装置１４及び／又はコンピュータシステム１８をモニタすることによって情報を収集してよい。
【００２４】
メモリ３８は、データ、動作ソフトウェア、又はプロセッサ２６に関する他の情報を恒久的に又は一時的に記憶する。メモリ３８は、情報を記憶するのに適した揮発性又は不揮発性の局所又は遠隔の装置のいずれか１つ又はそれらの組み合わせを有する。例えば、メモリ３８は、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、磁気記憶装置、光記憶装置、若しくはその他情報記憶装置、又はそれらの装置の組み合わせを有してよい。特定のモジュールを有するよう表されているが、メモリ３８は、コンピュータシステム１８の動作において使用される如何なる情報を有してもよい。
【００２５】
表される実施形態では、メモリ３８は、コンピュータシステム管理アプリケーション４２、コレクタ管理アプリケーション４４、及びコンテキスト情報４６を有する。コンピュータシステム管理アプリケーション４２は、コンピュータ可読記憶媒体において具現され且つコンピュータシステム１８の動作を助けるよう動作する如何なる適切な命令、ロジック又はコードも表す。例えば、コンピュータシステム管理アプリケーション４２は、装置１４の一以上の機能及び／又は能力に関与するようにコンピュータシステム１８の能力を助けるよう動作してよい。
【００２６】
コレクタ管理アプリケーション４４は、コンピュータ可読記憶媒体において具現され且つコンピュータシステム１８におけるパッチ７８のインストールを助けるよう動作する命令、ロジック又はコードの如何なる適切な組も表す。例えば、コレクタ管理アプリケーション４４は、センサ３４からコンテキスト情報４６を収集してよい。そのようなものとして、特定の実施形態において、コレクタ管理アプリケーション４４及びセンサ３４は集合的に「コンテキストコレクタ」と呼ばれることがある。特定の実施形態において、これ倉管理アプリケーション４４は更に、いつパッチ７８がコンピュータシステム１８にインストールされ得るのかを決定してよい。例えば、コレクタ管理アプリケーション４４は、パッチ７８がコンピュータシステム１８にインストールされ得るかどうかを決定するために、コンテキスト情報４６を要件８２と比較してよい。
【００２７】
コンテキスト情報４６は、センサ３４から収集される如何なる情報も表す。例えば、装置１４が自動車である実施形態では、コンテキスト情報４６は、自動車が８００００マイルを超えたこと、５年以上前に製造されたこと、現在エンジンがオフしていること、現在エンジンが室温にあること、及び／又はその他情報を示す情報を有してよい。コンテキスト情報４６は、要件８２に関連する如何なる情報を有してもよい。例えば、コンテキスト情報４６は、要件８２が満足されているかどうかを決定するために、要件８２と比較され得る如何なる情報を有してもよい。
【００２８】
ネットワーク５０は、装置１４、コンピュータシステム１８、及び製造業者装置５４のようなシステム１０の構成要素の間の通信を助けるよう動作する如何なるネットワークも表す。ネットワーク５０は、オーディオ、ビデオ、信号、データ、メッセージ、又はそれらの如何なる組み合わせも送信することができる如何なる相互接続システムを有してもよい。ネットワーク５０は、構成要素の間の通信を助けるよう動作する公衆交換電話網（ＰＳＴＮ）、公衆の若しくは私的なデータネットワーク、ＬＡＮ、ＭＡＮ、ＷＡＮ、インターネットのような局所、地域、若しくは地球規模の通信若しくはコンピュータネットワーク、優先若しくは無線ネットワーク、企業イントラネット、又はそれらの組み合わせを含むその他通信リンクの全て又は一部を有してよい。特定の実施形態において、ネットワーク５０は、衛星を使用可能な通信ネットワーク又はセルラーベース通信ネットワークの全て又は一部を有してよい。
【００２９】
製造業者装置５４は、インストールのためのコンピュータシステム１８へパッチ７８を送信することができる如何なる構成要素も表す。特定の実施形態において、製造業者装置５４は更に、確認リポート８６を受信し且つ確認リポート８６をパッチ７４のインストールが成功したかどうかの証拠として記憶することができる如何なる構成要素も表してよい。特定の実施形態において、製造業者装置５４は、装置１４の製造業者に関連する装置であってよい。例えば、装置１４が自動車である実施形態では、製造業者装置５４は、自動車の製造業者に関連づけられてよい。特定の実施形態では、製造業者装置５４は、コンピュータシステム１８（又はコンピュータシステム１８の一以上の構成要素）の製造業者に関連する装置であってよい。特定の実施形態において、製造業者装置５４は、コンピュータシステム１８のためのパッチ７８の製造業者に関連する装置であってよい。例えば、製造業者装置５４は、コンピュータシステム１８のためのパッチ７８を作成するソフトウェア会社に関連する装置であってよい。
【００３０】
製造業者装置５４は、ユーザと受け側との間のトランザクションを助けるよう動作するネットワークサーバ、あらゆる遠隔サーバ、メインフレーム、ホストコンピュータ、ワークステーション、ウェブサーバ、パーソナルコンピュータ、ファイルサーバ、又はその他装置を有してよい。製造業者装置５４の機能は、一以上の場所にある一以上のサーバ又は他の構成要素の如何なる組み合わせによっても実施されてよい。モジュールがサーバである実施形態では、サーバは私的サーバであってよく、サーバは仮想又は物理サーバであってよい。サーバは、同じか又は離れた場所で一以上のサーバを有してよい。また、製造業者装置５４は、サーバとして機能する如何なる構成要素を有してもよい。図１は、コンピュータシステム１８へパッチ７８を送信するもの及びコンピュータシステム１８から確認リポート８６を受信するものとして同じ製造業者装置５４を表すが、特定の実施形態において、異なる製造業者装置５４が製造業者装置５４の一以上の動作を行ってよい。表される実施形態では、製造業者装置５４はネットワークインターフェース５８、プロセッサ６２及びメモリ６６を有する。
【００３１】
ネットワークインターフェース５８は、ネットワーク５０から情報を受信し、ネットワーク５０を通じて情報を送信し、情報の処理を実行し、他の装置と通信し、又はそれらの処理の如何なる組み合わせも行うよう動作する如何なる装置も表す。例えば、ネットワークインターフェース５８は、確認リポート８６を含むメッセージをコンピュータシステム１８から受信する。他の例として、ネットワークインターフェース５８は、パッチ７８及び要件８２を含むメッセージをコンピュータシステム１８へ送る。ネットワークインターフェース５８は、製造業者装置５４がネットワーク５０、装置１４、コンピュータシステム１８、又はシステム１０の他の構成要素と情報をやりとりすることを可能にするＬＡＮ、ＭＡＮ、ＷＡＮ、又は他の通信システムを通じて通信するよう、プロトコル変換及びデータ処理機能を備えた、あらゆる適切なハードウェア及び／又はソフトウェアを含む実際又は仮想の何らかのポート又は接続に相当する。
【００３２】
プロセッサ６２は、ネットワークインターフェース５８及びメモリ６６へ通信上結合し、ネットワークインターフェース５８及びメモリ６６から受信される情報を処理することによって製造業者装置５４の動作及び管理を制御する。プロセッサ６２は、情報を制御及び処理するよう動作する如何なるハードウェア及び／又はソフトウェアも有する。例えば、プロセッサ６２は、製造業者装置５４の動作を制御するよう製造業者装置管理アプリケーション７０を実行する。プロセッサ６２は、プログラム可能ロジック装置、マイクロコントローラ、マイクロプロセッサ、あらゆる処理装置、又はそれらのあらゆる組み合わせであってもよい。
【００３３】
メモリ６６は、データ、動作ソフトウェア、又はプロセッサ６２に関する他の情報を恒久的に又は一時的に記憶する。メモリ６６は、情報を記憶するのに適した揮発性又は不揮発性の局所又は遠隔の装置のいずれか１つ又はそれらの組み合わせを有する。例えば、メモリ６６は、ＲＡＭ、ＲＯＭ、磁気記憶装置、光記憶装置、若しくはその他情報記憶装置、又はそれらの装置の組み合わせを有してよい。特定のモジュールを有するよう表されているが、メモリ６６は、製造業者装置５４の動作において使用される如何なる情報を有してもよい。
【００３４】
表される実施形態では、メモリ６６は、製造業者装置管理アプリケーション７０、装置情報７４、パッチ７８、要件８２、及び確認リポート８６を有する。製造業者装置管理アプリケーション７０は、コンピュータ可読記憶媒体において具現され且つ製造業者装置５４の動作を助けるよう動作する命令、ロジック又はコードの如何なる適切な組も表す。
【００３５】
装置情報７４は、装置１４、コンピュータシステム１８、装置１４の構成要素、及び／又はコンピュータシステム１８の構成要素を表す如何なる情報も表す。例えば、装置情報７４は、装置１４の所有者に関する情報、コンピュータシステム１８においてインストールされているあらゆるアプリケーションに関する情報、コンピュータシステム１８と通信するためのアドレス情報、コンピュータシステム１８の固有要素３０に関連する情報（例えば、特定のコンピュータシステム１８に関連すると特定の固有要素３０を特定する情報及び固有要素３０の一意の識別子を示す情報）、装置１４及び／又はコンピュータシステム１８と通信し及び／又はその所在を確認するのに必要とされるあらゆる情報、コンピュータシステム１８におけるパッチ７８のインストールに必要とされるあらゆる他の情報、あるいは、それらの如何なる組み合わせも含む。
【００３６】
パッチ７８は、コンピュータシステム１８におけるインストールのための命令、ロジック又はコードの組に相当する。パッチ７８は、コンピュータシステムに付随する既知の問題を解決するよう設計されてよく、且つ／あるいは、コンピュータシステム１８、コンピュータシステム１８に関連する一以上のアプリケーション及び／又は命令、及び／又はコンピュータシステム１８を記憶し若しくは支持するあらゆるデータを更新するよう設計されてよい。パッチ７８は、コンピュータシステム１８の一部又はコンピュータシステム１８の全体を修正及び／又は更新するよう構成されてよい。
【００３７】
要件８２は、パッチ７８がコンピュータシステム１８にインストールされるために要求されることに関する情報に相当してよい。例えば、装置１４が自動車である実施形態では、要件８２は、自動車のエンジンがオフされていること、自動車のエンジンが室温にあること、自動車が特定の状態を有すること、自動車が現在正規サービスセンターにあり且つ正規の整備士によって作業されていること、自動車のコンピュータシステム１８が特定のバージョンのソフトウェアにより動作していること、パッチのインストールが自動車の所有者若しくはユーザによって承認されていること、その他要件、又はそれらの組み合わせといった要件を含んでよい。他の例として、コンピュータシステム１８がクラウドベースのサーバである実施形態では、要件８２は、コンピュータシステム１８が特定の作業負荷を有して（例えば、ほとんど作業負荷がない状態で）動作していること、コンピュータシステム１８で実行されている一以上のバーチャルマシン（及び／又はアプリケーション）がバーチャルマシン（及び／又はアプリケーション）の性能に影響を及ぼすことなく他のコンピュータシステムへ転送され得ること、コンピュータシステム１８に実装されるバーチャルマシンが現在実行されていないこと、パッチのインストールがコンピュータシステム１８の所有者若しくはユーザによって及び／又は夫々のバーチャルマシンを用いる第三者によって承認されていること、その他要件、あるいは、それらの組み合わせといった要件を含んでよい。
【００３８】
特定の実施形態において、要件８２は、要件８２が満足されるまでパッチ７８がコンピュータシステム１８でインストールされないことを確かにするために、パッチ７８とともにコンピュータシステム１８へ供給されてよい。
【００３９】
確認リポート８６は、コンピュータシステム１８でのパッチ７８のインストール処理に関する如何なる情報も表す。例えば、確認リポート８６は、パッチ７８がコンピュータシステム１８にインストールされた日及び／又は時間を示す何らかの情報、要件８２を満たしたコンテキスト情報４６（例えば、コンテキスト情報４６のリスト）、パッチ７８のインストールの状態（例えば、成功又は失敗）、パッチ７８の識別、装置１４の識別、コンピュータシステム１８の識別、固有要素３０の識別、固有要素３０による何らかの署名、コンピュータシステム１８でのパッチ７８のインストールが成功したか否かの証拠を提供することができるその他情報、又はそれらの如何なる組み合わせを有してもよい。特定の実施形態において、確認リポート８６は、コンピュータシステム１８でのパッチ７８のインストールが成功したか否かの証拠として記憶される。特定の実施形態において、確認リポート８６は、コンピュータシステム１８でのパッチ７８のインストールが成功したか否かに関する否定しがたい証明であってよい。
【００４０】
動作の実施例において、コンピュータシステム１８がパッチ７８をインストールするために、製造業者装置５４は、パッチ７８及び要件８２を含むメッセージ１００をコンピュータシステム１８へ送信してよい。メッセージ１００の受信に応答して、コンピュータシステム１８は、コンピュータシステム１８がメッセージ１００を受信したことを示すメッセージ１０４を送信してよい。特定の実施形態において、メッセージ１０４は任意であってよい。メッセージ１００からの要件８２に基づき、コレクタ管理アプリケーション４４は、要件８２が満足されるかどうかを決定するために、センサ３４からコンテキスト情報４６を収集してよい。特定の実施形態において、コレクタ管理アプリケーション４４は、コンテキスト情報４６がパッチ７８をコンピュータシステム１８にインストールするために必要とされる要件８２のそれぞれを満足すると決定されるまで、センサ３４からコンテキスト情報４６を繰り返し収集し続けてよい。要件８２が満足されると、コレクタ管理アプリケーション４４は、コンピュータシステム１８でのパッチ７８のインストール処理を行ってよい。
【００４１】
パッチ７８のインストール処理が終了される場合（例えば、コンピュータシステム１８でのパッチ７８のインストールが成功若しくは失敗した場合、又はコレクタ管理アプリケーション４４がアプリケーション７８をコンピュータシステム１８にインストールしようとすることをやめた場合）に、確認リポート８６がコンピュータシステム１８の固有要素３０によって生成され署名されてよい。コンピュータシステム１８は、次いで、コンピュータシステム１８でのパッチ７８のインストールが成功したかどうかの証拠としての記憶のために、確認リポート８６を含むメッセージ１０８を製造業者装置５４へ送信してよい。
【００４２】
システム１０はネットワーク５０上で起こるメッセージ１００の伝送を表すが、特定の実施形態において、メッセージ１００は、コンピュータシステム１８のネットワークインターフェース２２へ結合され得る可搬型の記憶媒体に含まれてよい。そのようなものとして、パッチ７８及び要件８２がコンピュータシステム１８へ送信される時間である場合に、可搬型の記憶媒体は、装置１４の所有者に関連する住所へ送られてよい。次いで、可搬型の記憶媒体は、コンピュータシステム１８がパッチ７８及び要件８２を受信するために、コンピュータシステム１８へ結合されてよい。更に、コンピュータシステム１８は更に、可搬型の記憶媒体へ確認リポート８６を送信してよい。このように、可搬型の記憶媒体が製造業者装置５４へ返送される場合に、製造業者装置５４は、確認リポート８６を受け取り、それをパッチ７８のインストールが成功したかどうかの証拠として記憶してよい。
【００４３】
変更、付加、又は削除は、本開示の適用範囲から逸脱することなしにシステム１０に対してなされてよい。例えば、製造業者装置５４は、如何なる数のパッチ７８も、如何なる数の装置１４においても組み込まれる如何なる数のコンピュータシステム１８へも提供してよい。加えて、システム１０は、如何なる数の装置１４、コンピュータシステム１８、ネットワーク５０、及び／又は製造業者装置５４も有してよい。如何なる適切なロジックも、システム１０の機能及びシステム１０内の構成要素を実施してよい。
【００４４】
図１に関して上述された実施形態に加えて、更なる実施形態が以下で説明される。特に、図２は、１又はそれ以上のバーチャルマシンを実装するコンピュータシステムでのパッチのインストールを提供するシステムを表す。加えて、それらの実施形態の１又はそれ以上によって実施され得る様々な方法も以下で説明される。特に、図３は、コンピュータシステムでパッチをインストールする方法を例示し、図４は、コンピュータシステムの特定の実施形態に関してチェックポイントを生成する方法を例示し、図５は、コンピュータシステムのためのパッチを選択する方法を例示する。
【００４５】
図２は、１又はそれ以上のバーチャルマシン２０８を実装するコンピュータシステム２０４でのパッチのインストールを提供するシステム２００を表す。特定の実施形態において、コンピュータシステム２０４は、図１の装置１４及びコンピュータシステム１８の代替の実施形態であってよい。例えば、（装置１４において組み込まれる）コンピュータシステム１８が製造業者装置５４からメッセージ１００を受信し、パッチ７８のインストール処理を行い、且つメッセージ１０８を製造業者装置５４へ送信すること（図１参照）に代えて、図２では、コンピュータシステム２０４が、製造業者装置５４からメッセージ１００を受信し、パッチ７８のインストール処理を行い、且つメッセージ１０８を製造業者装置５４へ送信する。
【００４６】
通常、１又はそれ以上のバーチャルマシンを実装するコンピュータシステムにおいてパッチをインストールすることは、そのようなインストールがコンピュータシステムで実装されるバーチャルマシンの性能に影響を及ぼしうるので、問題をはらむことがある。第三者がいつでも如何なる期間でもコンピュータシステムに実装されるバーチャルマシンを利用している可能性があるので、バーチャルマシンの性能に影響を及ぼしうる如何なるインストール処理も実際的ではない。更に、バーチャルマシンはいつなんどきでも利用され得るので、通常の処理によりパッチがインストールされることを可能にするためにバーチャルマシンがシャットダウンされ得る時間をスケジューリングすることが更に問題となる。そのようなものとして、バーチャルマシンを実装するコンピュータシステムでパッチをインストールする通常の方法は不完全である。
【００４７】
表される実施形態に従って、システム２００は、１又はそれ以上のバーチャルマシン２０４を実装するコンピュータシステム２０４を有する。図１で表されたように、コンピュータシステム１８は、パッチ７８及び一以上の要件８２を製造業者装置５４から受信する。要件８２が満足されたとコンピュータシステム１８が決定すると、コンピュータシステム１８は、コンピュータシステム１８にパッチ７８をインストールするインストール処理を行ってよい。特定の実施形態において、これは、たとえコンピュータシステム２０４がいつでも第三者によって利用され得るバーチャルマシンを実装するとしても、コンピュータシステム１８がパッチ７８をインストールすることを可能にすることができる。
【００４８】
コンピュータシステム２０４は、バーチャルマシン２０８を実装することができる如何なる構成要素も表す。コンピュータシステム２０４は、バーチャルマシン２０８を実装するよう動作するクラウドサーバ、ネットワークサーバ、何らかの遠隔サーバ、メインフレーム、ホストコンピュータ、ワークステーション、ウェブサーバ、パーソナルコンピュータ、ファイルサーバ、又はその他装置を有してよい。コンピュータシステム２０４の機能は、一以上の場所にある一以上のサーバ又は他の構成要素の如何なる組み合わせによっても実施されてよい。サーバは、同じか又は離れた場所で一以上のサーバを有してよい。表される実施形態では、コンピュータシステム２０４はネットワークインターフェース２２、プロセッサ２６、固有要素３０、センサ３４、メモリ３８、コンピュータシステム管理アプリケーション４２、コレクタ管理アプリケーション４４、及びコンテキスト情報４６を有し、それらの夫々は図１において詳細に記載されている。
【００４９】
コンピュータシステム２０４はバーチャルマシン２０８を実装する。バーチャルマシン２０８は、仮想化された実行環境において実行又は動作することができる、コンピュータシステムのような装置の実行インスタンス化であってよい。例えば、バーチャルマシン２０８は、装置のハードウェア（例えば、マイクロプロセッサ又はコントローラ）をエミュレートしてよく、バーチャルマシン２０８にインストールされる一以上のアプリケーションを実行することができるオペレーティングシステムを更にエミュレートしてよい。特定の実施において、バーチャルマシン２０８は、装置の完全なハードウェアを完全にシミュレーションして、ゲストオペレーティングシステムがバーチャルマシン２０８に関連して実行され且つ１又はそれ以上のアプリケーションがゲストオペレーティングシステムに関連して実行されることを可能にする。
【００５０】
バーチャルマシン２０８は、タイプ１又はタイプ２のハイパーバイザを用いて実施可能である。タイプ１ハイパーバイザは、ハードウェアで直接に実行され、タイプ２ハイパーバイザはリナックス(登録商標)のような他のオペレーティングシステムで実行される。バーチャルマシン２０８は、バーチャルハードウェアによって支持される如何なるオペレーティングシステムも実行することができ、また如何なるアプリケーションも実行することができる。例えば、バーチャルマシン２０８は、１つの“ゲスト”オペレーティングシステム及び一以上のアプリケーションをホストしてよい。
【００５１】
動作の実施例（図１参照）において、コンピュータシステム１８がパッチ７８をインストールするために、製造業者装置５４は、パッチ７８及び要件８２を含むメッセージ１００をコンピュータシステム１８へ送信してよい。メッセージ１００の受信に応答して、コンピュータシステム１８は、コンピュータシステム１８がメッセージ１００を受信したことを示すメッセージ１０４を送信してよい。特定の実施形態において、メッセージ１０４は任意であってよい。メッセージ１００からの要件８２に基づき、コレクタ管理アプリケーション４４は、要件８２が満足されるかどうかを決定するために、センサ３４からコンテキスト情報４６を収集してよい。特定の実施形態において、コレクタ管理アプリケーション４４は、コンテキスト情報４６がパッチ７８をコンピュータシステム１８にインストールするために必要とされる要件８２のそれぞれを満足すると決定されるまで、センサ３４からコンテキスト情報４６を繰り返し収集し続けてよい。要件８２が満足されると、コレクタ管理アプリケーション４４は、コンピュータシステム１８でのパッチ７８のインストール処理を行ってよい。
【００５２】
パッチ７８のインストール処理が終了される場合（例えば、コンピュータシステム１８でのパッチ７８のインストールが成功若しくは失敗した場合、又はコレクタ管理アプリケーション４４がアプリケーション７８をコンピュータシステム１８にインストールしようとすることをやめた場合）に、確認リポート８６がコンピュータシステム１８の固有要素３０によって生成され署名されてよい。コンピュータシステム１８は、次いで、コンピュータシステム１８でのパッチ７８のインストールが成功したかどうかの証拠としての記憶のために、確認リポート８６を含むメッセージ１０８を製造業者装置５４へ送信してよい。
【００５３】
変更、付加、又は削除は、本開示の適用範囲から逸脱することなしにシステム２００に対してなされてよい。例えば、システム２００は、如何なる数のコンピュータシステム２０４及び如何なる数のバーチャルマシン２０８も有してよい。他の例として、パッチ及び要件を含むメッセージは、製造業者装置５４から送信されるのとは対照的に、コンピュータシステム２０４のそれぞれを制御する中央集権的なパッチコントローラからコンピュータシステム２０４へ送信されてよい。如何なる適切なロジックも、システム２００の機能及びシステム２００内の構成要素を実施してよい。
【００５４】
図３は、コンピュータシステムにパッチをインストールする方法３００を表す。特定の実施形態において、方法３００の１又はそれ以上のステップは、図１のコンピュータシステム１８（及び／又はコンピュータシステム１８の一以上の構成要素）、図２のコンピュータシステム２０４（及び／又はコンピュータシステム２０４の一以上の構成要素）、及び／又は図１の製造業者装置５４によって実行されてよい。
【００５５】
方法はステップ３０２で開始する。ステップ３０４で、メッセージが受信される。特定の実施形態において、メッセージはコンピュータシステムによって受信される。例えば、コンピュータシステムは、装置（例えば、自動車、携帯電話機、ＤＶＤプレーヤ、デジタルカメラ、プリンタ、電子医療機器、又はコンピュータシステムが組み込まれるその他装置）において組み込まれるコンピュータシステムであってよい。他の例として、コンピュータシステムは、１又はそれ以上のバーチャルマシンを実行するクラウドサーバのような、１又はそれ以上のバーチャルマシンを実装するコンピュータシステムであってよい。特定の実施形態において、受信されるメッセージは、インストールのためのパッチと、パッチがイントールされ得る前に満足されるべき１又はそれ以上の要件とを含んでよい。特定の実施形態において、パッチは、コンピュータシステムを更新するよう構成されてよい。
【００５６】
特定の実施形態において、メッセージは何らかの理由により受信されてよい。例えば、メッセージは、コンピュータシステムが新しいマッチを要求した、又はコンピュータシステムが新しいパッチを要求すると製造業者装置が決定したといった理由や、その他の理由により、受信されてよい。特定の実施形態において、コンピュータシステムは、利用可能な新しいパッチが存在するかどうかを決定するために、製造業者装置にアクセスしてよい。特定の実施形態において、新しいパッチを確認する処理は、周期的に、及び／又は所定のイベント（例えば、従前のパッチが２年以上前にインストールされたとコンピュータ装置が決定する場合）の発生時に、起こってよい。特定の実施形態において、利用可能な新しいパッチが存在するとコンピュータシステムが決定する場合は、コンピュータシステムは、パッチがダウンロードされてインストールされることを要求してよい。
【００５７】
特定の実施形態において、パッチが適切なコンピュータシステムにインストールされていることを保証するために、コンピュータシステムによって受信されるメッセージは暗号化されてよい。特定の実施形態において、暗号化されたメッセージは、コンピュータシステムに関連する固有要素によってのみ解読されてよい。例えば、パッチ及び要件を含むメッセージは、キー対における公衆キーに基づき暗号化されてよく、固有要素は、キー対のプライベートキーを有してよい。そのようなものとして、固有要素は、要件が満足される場合にコンピュータシステムがパッチをインストールすることができるように、メッセージを解読してよい。特定の実施形態において、メッセージを暗号化することによって、メッセージが不適切なコンピュータシステムによって受信される場合（例えば、メッセージが誤って不適切なコンピュータシステムに送られる場合）に、そのコンピュータシステムは、メッセージを解読する適切な固有要素を有さない。そのようなものとして、特定の実施形態において、コンピュータシステムは、不適切なパッチをインストールすることを防がれ得る。
【００５８】
特定の実施形態において、コンピュータシステムがステップ３０４でメッセージを受信した後、コンピュータシステムは、パッチ及び要件が受信されたことを示すメッセージを送信してよい。特定の実施形態において、そのようなメッセージは任意であってよい。
【００５９】
ステップ３０６で、情報が１又はそれ以上のセンサから収集される。特定の実施形態において、情報は、受信された要件に基づき収集されてよい。例えば、要件が満足されるかどうかを決定するために、コンピュータシステムは要件に関連する情報を収集してよい。特定の実施形態において、如何なる情報も収集されてよい。例えば、情報は、コンピュータシステム（又はコンピュータシステムが組み込まれる装置）に関連する情報、装置の環境に関する情報（例えば、温度）、コンピュータシステムの場所、ユーザによってコンピュータシステムに入力される情報（例えば、ユーザによるパッチの承認）、要件に関連するその他情報、又はそれらの如何なる組み合わせも有してよい。特定の実施形態において、情報は如何なるタイプのセンサからも収集されてよい。
【００６０】
ステップ３０８で、要件が満足されるかどうかが決定される。特定の実施形態において、要件は、要件のそれぞれが満足された場合に満足される。例えば、自動車のエンジンがオフされていることを要件が求める特定の実施形態では、要件は、エンジンがオフされる場合に満足され得る。要件が満足されない場合は、方法はステップ３０６に戻り、情報が１又はそれ以上のセンサから収集される。特定の実施形態において、これは、要件が満足されるまでセンサから繰り返し情報が収集されることを可能にすることができる。
【００６１】
要件が満足される場合は、方法はステップ３１０へ移動し、インストール処理が行われる。特定の実施形態において、インストール処理を行うことは、コンピュータシステムでパッチのインストール処理を行うことを指してよい。
【００６２】
ステップ３１２で、インストール処理が終了されるかどうかが決定される。特定の実施形態において、インストール処理は何らかの理由により終了されてよい。例えば、インストール処理は、インストールが成功した、インストールが失敗した、又はコンピュータシステムが何らかの理由によりインストール処理を中止したために、終了されてよい。インストール処理が終了されないと決定される場合は、方法は、インストール処理が終了されるまでインストール処理が終了されるかどうかを確認し続ける。
【００６３】
インストール処理が終了されると、方法はステップ３１４へ移動し、確認リポートが送信される。特定の実施形態において、確認リポートはコンピュータシステムによって製造業者装置へ送信される。特定の実施形態において、製造業者装置は、装置１４、コンピュータシステム１８、（及び／又はコンピュータシステム１８の一以上の構成要素）、及び／又はパッチ７８の製造業者のようなあらゆるタイプの製造業者と関連する如何なる装置も含んでよい。
【００６４】
特定の実施形態において、確認リポートは、パッチのインストール処理に関する如何なる情報も含んでよい。例えば、確認リポートは、パッチがコンピュータシステムにインストールされた日及び／又は時間を示す何らかの情報、要件を満たしたコンテキスト情報（例えば、コンテキスト情報のリスト）、パッチのインストールの状態（例えば、成功又は失敗）、パッチの識別、コンピュータシステムが組み込まれる装置の識別、コンピュータシステムの識別、コンピュータシステムに関連する固有要素の識別、固有要素による何らかの署名、コンピュータシステムでのパッチのインストールが成功したか否かの証拠を提供することができるその他情報、又はそれらの如何なる組み合わせを有してもよい。特定の実施形態において、確認リポートは、コンピュータシステムに関連する固有要素によって生成され署名されてよい。特定の実施形態において、固有要素は、如何なる方法においても確認リポートに署名してよい。例えば、固有要素は、その一意の識別子（例えば、その固有キー）を確認リポートに挿入してよい。特定の実施形態において、固有要素によって生成され署名された確認リポートを送信することによって、第三者（例えば、製造業者）は、確認リポートが特定のコンピュータシステムで起こったインストール処理に言及すると信じることができる。そのようなものとして、確認リポートは、インストール処理の証拠として記憶されてよい。
【００６５】
確認リポートがステップ３１４で送信された後、方法はステップ３１６へ移動し、確認リポートが受信される。特定の実施形態において、確認リポートは製造業者装置によって受信される。ステップ３１８で、確認リポートが記憶される。特定の実施形態において、確認リポートは製造業者装置によって記憶されてよい。特定の実施形態において、確認リポートは、パッチのインストールが成功したかどうかの証拠として記憶されてよい。例えば、確認リポートは、パッチのインストールが成功したこと、パッチのインストールが失敗したこと、又はインストール処理が何らかの理由により中止されたことの証拠として記憶されてよい。確認リポートが記憶された後、方法はステップ３２０へ移動し、方法は終了する。
【００６６】
変更、付加、又は削除が方法３００になされてよい。例えば、方法３００は、パッチ及び要件を送信するのと同じ製造業者装置へ送られる確認リポートを表すが、特定の実施形態において、確認リポートは異なる製造業者装置へ送信されてよい。加えて、図３の方法３００における１又はそれ以上のステップは、並行して、又は何らかの適切な順序において、実行されてよい。
【００６７】
図４は、図３の方法におけるコンピュータシステムの特定の実施形態に関してチェックポイントを生成する方法４００を表す。特定の実施形態において、方法４００の１又はそれ以上のステップは、図１のコンピュータシステム１８（及び／又はコンピュータシステム１８の一以上の構成要素）、及び／又は図２のコンピュータシステム２０４（及び／又はコンピュータシステム２０４の一以上の構成要素）によって実行されてよい。
【００６８】
方法はステップ４０２で開始する。ステップ４０４で、パッチのインストールが成功したかどうかが決定される。パッチのインストールが不成功であった場合は、方法はステップ４１８へ移動し、方法は終了する。他方で、インストールが成功した場合は、方法はステップ４０６へ移動する。
【００６９】
ステップ４０６で、第１チェックポイントが生成される。第１チェックポイントは、チェックポイントが生成された時点へコンピュータシステムが状態を戻されることを可能にするチェックポイントに相当してよい。特定の実施形態において、これは、チェックポイントが生成されてから起きた１又はそれ以上のエラーをコンピュータシステムが消去することを可能にすることができる。特定の実施形態において、第１チェックポイントは、パッチのインストールが成功したと決定された直後に生成されてよい。
【００７０】
ステップ４０８で、次のパッチがコンピュータシステムでのインストールのために準備できているかどうかが決定される。特定の実施形態において、次のパッチは、コンピュータシステムが製造業者装置から他のメッセージを受信しており且つ次のパッチの要件が満足されている場合に、インストールに備えてよい。次のパッチがインストールのために準備できていない場合は、方法は、次のパッチがインストールのために準備できているかどうかを確認し続けてよい。他方で、次のパッチがインストールのために準備できている場合は、方法はステップ４１０へ移動する。
【００７１】
ステップ４１０で、第２チェックポイントが生成される。特定の実施形態において、第２チェックポイントは、次のパッチがインストールされる前に生成されてよい。例えば、第２チェックポイントは、第２のパッチがインストールされる直前に生成されてよい。
【００７２】
ステップ４１２で、第１チェックポイントが第２チェックポイントと比較される。この比較に基づき、ステップ４１４で、２つのチェックポイントが異なるかどうかが決定される。特定の実施形態において、２つのチェックポイントは、第１チェックポイントの後にコンピュータシステムでエラーが起こった場合に相違しうる。他の例として、チェックポイントは、コンピュータシステムで未知の更新が起こった場合（例えば、未知のパッチがコンピュータシステムでインストールされた場合）、及び／又は悪質なソフトウェアがコンピュータシステムでインストールされた場合に、相違しうる。２つのチェックポイントが相違しないと決定される場合は、方法はステップ４１８へ移動し、方法は終了する。特定の実施形態において、２つのチェックポイントが相違しないと決定される場合は、方法４００は、方法４００が終了する前に、コンピュータシステムで次のパッチをインストールするステップを更に有してよい。
【００７３】
他方で、２つのチェックポイントが異なると決定される場合は、方法はステップ４１６へ移動する。ステップ４１６で、次の確認リポートが送信される。特定の実施形態において、次の確認リポートは、第１のパッチの成功したインストール以降にコンピュータシステムでエラーが起こったことを示してよい。特定の実施形態において、次の確認リポートは、コンピュータシステムに関連する固有要素によって生成され署名されてよい。次の確認リポートが送信されると、方法はステップ４１８へ移動し、方法は終了する。特定の実施形態において、次の確認リポートが送信された後、方法４００は、方法４００が終了する前に、コンピュータシステムを第１チェックポイントへ状態を戻すステップを更に有してよい。
【００７４】
変更、付加、又は削除が方法４００になされてよい。例えば、方法４００は、最後に成功したパッチのインストール以降にエラーが起こったかどうかを決定するために使用される第２チェックポイントについて記載するが、第２チェックポイント（又はパッチのインストールの直前に生成される何らかのチェックポイント）はまた、次のパッチのインストールが失敗する場合にフェイルセーフを提供してよい。特に、次のパッチが何らかの理由によりインストールすることができない場合に、コンピュータシステムはそのチェックポイントへ状態を戻されてよく、コンピュータシステムは依然として動作状態にあることを確かにしてよい。特定の実施形態において、これは、たとえパッチのインストールが失敗するとしてもコンピュータシステムが動作し続けることを可能にすることができる。更に、コンピュータシステムを前のチェックポイントへ戻すことに加えて、特定の実施形態において、インストールが何らかの理由により失敗する場合に、コンピュータシステムは更に失敗の理由を決定してよく、その理由を更に、製造業者装置へ送信される確認リポートに含めてよい。
【００７５】
加えて、図４の方法４００における１又はそれ以上のステップは、並行して、又は何らかの適切な順序において、実行されてよい。更に、図４の方法４００は、図３の方法３００と同時に行われてよい。例えば、図４の方法４００は、インストール処理が図３のステップ３１２で終了されると決定された後に開始してよい。然るに、図４の方法４００のステップは、図３の残りのステップの１又はそれ以上と同時に、又はその後に行われてよい。
【００７６】
図５は、コンピュータシステムのためのパッチを選択する方法５００を表す。特定の実施形態において、方法５００の１又はそれ以上のステップは、図１のコンピュータシステム１８（及び／又はコンピュータシステム１８の一以上の構成要素）、図２のコンピュータシステム２０４（及び／又はコンピュータシステム２０４の一以上の構成要素）、及び／又は図１の製造業者装置５４によって実行されてよい。
【００７７】
方法はステップ５０２で開始する。ステップ５０４で、初期情報が１又はそれ以上のセンサから収集される。特定の実施形態において、初期情報は如何なる情報も含んでよい。例えば、情報は、コンピュータシステム、コンピュータシステムが組み込まれる装置、コンピュータシステムによって実行される一以上のアプリケーション及び／又はバーチャルマシン、コンピュータシステムにインストールされた最後の更新及び／又はパッチ、コンピュータシステム及び／又はコンピュータシステムが組み込まれる装置に関するその他情報、あるいは、それらの如何なる組み合わせのインジケーションを有してもよい。特定の実施形態において、初期情報はコンピュータシステムによって収集されてよい。
【００７８】
ステップ５０６で、メッセージが送信される。特定の実施形態において、メッセージはコンピュータシステムによって製造業者装置へ送信されてよい。特定の実施形態において、メッセージは、収集された初期情報を含んでよい。特定の実施形態において、コンピュータシステムが収集された初期情報を送信するのみならず、収集された初期情報はまた固有要素によって署名されてよい。そのようなものとして、製造業者装置は、収集された情報がコンピュータシステムによって収集されたと決定することができる。特定の実施形態において、これは、他の装置が不適切なパッチのインストールを引き起こそうとしてコンピュータシステムに成り代わって偽の情報を提供することを妨げることができる。
【００７９】
ステップ５０８で、メッセージが受信される。特定の実施形態において、メッセージは製造業者装置によって受信される。ステップ５１０で、特定のパッチがコンピュータシステムへの伝送のために選択される。特定の実施形態において、特定のパッチは、収集された初期情報に基づき選択されてよい。例えば、収集された初期情報に基づき、製造業者装置は、コンピュータシステムがどのようなコンピュータシステムであるのか、どのようなアプリケーション及び／又はバーチャルマシンがコンピュータシステムで実行されているのか、いつ最後のパッチがコンピュータシステムにインストールされたのか、コンピュータシステム及び／又はコンピュータシステムが組み込まれる装置に関するその他情報、あるいは、それらの如何なる組み合わせも決定してよい。特定の実施形態において、収集された初期情報に基づき特定のパッチを選択することは、夫々の特定のコンピュータシステムについて最良のパッチの選択を可能にすることができる（例えば、異なるコンピュータシステムはパッチング処理の異なる段階にあることがあり、異なるパッチを必要とすることがあるため。）。特定の実施形態において、製造業者装置は、コンピュータシステムによるインストールのための何らかのパッチを選択してよい。例えば、製造業者装置は、コンピュータシステムに必要とされるパッチ、コンピュータシステムをより効率よくするパッチ、及び／又は如何なる他のパッチも選択してよい。特定の実施形態において、製造業者装置は更に、パッチがコンピュータシステムにインストールされる前に満足される必要がある特定の要件を選択してよい。
【００８０】
特定のパッチが選択されると、方法はステップ５１２へ移動する。ステップ５１２で、選択されたパッチを含むメッセージが送信される。特定の実施形態において、選択されたパッチを含むメッセージは、製造業者装置によってコンピュータシステムへ送信されてよい。
【００８１】
メッセージが送信された後、方法はステップ５１４へ移動し、方法は終了する。方法５００は、メッセージがコンピュータシステムへ送信された後に終了する方法５００を表すが、特定の実施形態において、方法は、代わりに、図３の方法３００へ移動してよい。
【００８２】
変更、付加、又は削除が方法５００になされてよい。加えて、図５の方法５００における１又はそれ以上のステップは、並行して、又は何らかの適切な順序において実行されてよい。
【００８３】
本開示は幾つかの実施形態により記載されてきたが、無数の変更、変形、代替、置換、及び改良が当業者に示唆され、本開示が添付の特許請求の範囲の適用範囲内にあるようにそのような変更、変形、代替、置換、及び改良を包含するよう意図される。
【図１】
2014527677.tif 000003
【図２】
2014527677.tif 000004
【図３】
2014527677.tif 000005
【図４】
2014527677.tif 000006
【図５】
2014527677.tif 000007
【国際調査報告】
2014527677.tif 000008
2014527677.tif 000009