(57)【要約】【課題】コンピューティング・システムを前の状態に戻すための方法を提供する。【解決手段】一態様では、この方法は、第２のオペレーティング・システム・パーティションの第２のシステム状態をロードすることと、第２のオペレーティング・システム・パーティションの第２のシステム状態で動作している間に第１のオペレーティング・システム・パーティションの第１のシステム状態に戻すための要求を受信することを含む。また、この方法は、第１のオペレーティング・システム・パーティションの第１のシステム状態をロードすることも含む。システムおよび機械可読媒体も提供する。【選択図】図２
2015079478.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・システムを前の状態に戻すためのコンピュータによって実行される方法であって、
第２のオペレーティング・システム・パーティションの第２のシステム状態をロードすることと、
前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態で動作している間に、第１のオペレーティング・システム・パーティションの第１のシステム状態に戻すための要求を受信することと、
前記第１のオペレーティング・システム・パーティションの前記第１のシステム状態をロードすること
を含む、方法。
【請求項２】
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のシステム状態を生成するために前記第２のオペレーティング・システム・パーティションに変更を適用することをさらに含む、請求項１記載の方法。
【請求項３】
前記第２のオペレーティング・システム・パーティションに前記変更を適用する前に前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のオペレーティング・システム・パーティションに前記変更を適用するための第１の要求を受信することをさらに含む、請求項２記載の方法。
【請求項４】
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のオペレーティング・システム・パーティションに前記変更を適用するための第２の要求を受信することと、
前記変更の適用を制限すること
をさらに含む、請求項３記載の方法。
【請求項５】
前記第１のシステム状態に戻すための前記要求を受信したことに応答して、前記第２のシステム状態で動作している間に、前記第１のシステム状態に戻すための前記要求のインジケータを保管することをさらに含む、請求項３記載の方法。
【請求項６】
前記第１のシステム状態に前記変更を適用するための前記第１の要求および前記第２の要求のそれぞれを受信したことに応答して、前記第２のシステム状態で動作している間に前記第１のシステム状態に戻すための前記要求のインジケータが保管されたかどうかを判断することをさらに含む、請求項５記載の方法。
【請求項７】
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記変更または他の変更のうちの少なくとも１つが使用可能であるかどうかを定期的に判断することをさらに含む、請求項２記載の方法。
【請求項８】
前記第１のシステム状態に前記変更を適用するための第１の要求がサーバから受信され、
前記方法が、前記第１のシステム状態に戻すための前記要求を示す通知をサーバに送信することをさらに含む、請求項２記載の方法。
【請求項９】
前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態で動作している間に、前記第１のオペレーティング・システム・パーティションの前記第１のシステム状態に戻すための前記要求が、前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態で動作している間に、入力装置を使用するユーザから受信される、請求項１記載の方法。
【請求項１０】
前記第１のシステム状態が、前記第２のシステム状態ではアクセス不能な少なくとも１つの機能へのアクセスを可能にするように構成される、請求項１記載の方法。
【請求項１１】
コンピューティング・システムを前の状態に戻すためのシステムであって、
第１のシステム状態を含む第１のオペレーティング・システム・パーティションと、
第２のシステム状態を含む第２のオペレーティング・システム・パーティションと
を含むメモリと、
前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態をロードし、
前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態で動作している間に、入力装置を使用するユーザから、前記第１のオペレーティング・システム・パーティションの前記第１のシステム状態に戻すための要求を受信し、
前記第１のオペレーティング・システム・パーティションの前記第１のシステム状態をロードする
ように構成されるプロセッサと
を含む、システム。
【請求項１２】
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のシステム状態を生成するために前記第２のオペレーティング・システム・パーティションに変更を適用することをさらに含む、請求項１１記載のシステム。
【請求項１３】
前記第２のオペレーティング・システム・パーティションに前記変更を適用する前に前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のオペレーティング・システム・パーティションに前記変更を適用するための第１の要求を受信することをさらに含む、請求項１２記載のシステム。
【請求項１４】
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のオペレーティング・システム・パーティションに前記変更を適用するための第２の要求を受信することと、
前記変更の適用を制限すること
をさらに含む、請求項１３記載のシステム。
【請求項１５】
前記第１のシステム状態に戻すための前記要求を受信したことに応答して、前記第２のシステム状態で動作している間に前記第１のシステム状態に戻すための前記要求のインジケータを保管することをさらに含む、請求項１３記載のシステム。
【請求項１６】
前記第１のシステム状態に前記変更を適用するための前記第１の要求および前記第２の要求のそれぞれを受信したことに応答して、前記第２のシステム状態で動作している間に前記第１のシステム状態に戻すための前記要求のインジケータが保管されたかどうかを判断することをさらに含む、請求項１５記載のシステム。
【請求項１７】
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記変更または他の変更のうちの少なくとも１つが使用可能であるかどうかを定期的に判断することをさらに含む、請求項１２記載のシステム。
【請求項１８】
前記第１のシステム状態に前記変更を適用するための第１の要求がサーバから受信され、
前記システムが、前記第１のシステム状態に戻すための前記要求を示す通知をサーバに送信することをさらに含む、請求項１２記載のシステム。
【請求項１９】
前記第１のシステム状態が、前記第２のシステム状態ではアクセス不能な少なくとも１つの機能へのアクセスを可能にするように構成される、請求項１１記載のシステム。
【請求項２０】
コンピューティング・システムを前の状態に戻すための方法をプロセッサに実行させるための機械可読命令を含む機械可読記憶媒体であって、前記方法が、
第１のオペレーティング・システム・パーティション上で第１のシステム状態で動作している間に、第２のオペレーティング・システム・パーティションに変更を適用するための第１の要求を受信することと、
前記第１のオペレーティング・システム・パーティション上で前記第１のシステム状態で動作している間に、前記第２のオペレーティング・システム・パーティションの第２のシステム状態を生成するために前記第２のオペレーティング・システム・パーティションに変更を適用することと、
前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態をロードすることと、
前記第２のオペレーティング・システム・パーティションの前記第２のシステム状態で動作している間に、前記第１のオペレーティング・システム・パーティションの前記第１のシステム状態に戻すための要求を受信することと、
前記第１のオペレーティング・システム・パーティションの前記第１のシステム状態をロードすること
を含む、機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピューティング・デバイスに関し、詳細には、コンピューティング・デバイス上のデータの提供に関する。
【背景技術】
【０００２】
コンピューティング・システムは一般に、インストールしたアプリケーションを最新かつ安全な状態に保持するためにソフトウェア更新（ｓｏｆｔｗａｒｅ  ｕｐｄａｔｅ）をロード（たとえば、ダウンロード）する。多くの場合、コンピュータのオペレーティング・システムについて更新またはその他の変更をロードすることができる。特定のシステムでは、その更新またはその他の変更が非実質的である場合、システムを前の状態に戻すために、その更新またはその他の変更をアンインストールするかまたはその他の方法でアンロードすることを許可する。それにもかかわらず、このような非実質的な更新または変更をアンロードするために必要なプロセスおよび時間は一般に非常に長く、場合によっては、アンロードが失敗する可能性もある。システムに関する更新が実質的である場合、多くのシステムでは、更新の結果、システムが前の状態に戻ることができないほど大幅に変化しているので、その更新をアンインストールするかまたはその他の方法でアンロードすることを許可しない。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明の特定の諸実施形態により、コンピューティング・システムを前の状態に戻すためのコンピュータによって実行される方法が提供される。この方法は、第２のオペレーティング・システム・パーティション（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ  ｐａｒｔｉｔｉｏｎ）の第２のシステム状態（ｓｙｓｔｅｍ  ｓｔａｔｅ）をロードすることと、第２のオペレーティング・システム・パーティションの第２のシステム状態で動作している間に、第１のオペレーティング・システム・パーティションの第１のシステム状態に戻すための要求を受信することを含む。また、この方法は、第１のオペレーティング・システム・パーティションの第１のシステム状態をロードすることも含む。
【０００４】
本発明の特定の諸実施形態により、コンピューティング・システムを前の状態に戻すためのシステムが提供される。このシステムは、第１のオペレーティング・システム・パーティションと第２のオペレーティング・システム・パーティションとを含むメモリを含む。第１のオペレーティング・システム・パーティションは第１のシステム状態を含み、第２のオペレーティング・システム・パーティションは第２のシステム状態を含む。また、このシステムはプロセッサも含む。このプロセッサは、第２のオペレーティング・システム・パーティションの第２のシステム状態をロードし、第２のオペレーティング・システム・パーティションの第２のシステム状態で動作している間に、入力装置を使用するユーザから、第１のオペレーティング・システム・パーティションの第１のシステム状態に戻すための要求を受信するように構成される。また、このプロセッサは、第１のオペレーティング・システム・パーティションの第１のシステム状態をロードするように構成される。
【０００５】
本発明の特定の諸実施形態により、コンピューティング・システムを前の状態に戻すための方法をプロセッサに実行させるための機械可読命令を含む機械可読記憶媒体が提供される。この方法は、第１のオペレーティング・システム・パーティション上で第１のシステム状態で動作している間に、第２のオペレーティング・システム・パーティションに変更を適用するための第１の要求を受信することと、第１のオペレーティング・システム・パーティション上で第１のシステム状態で動作している間に、第２のオペレーティング・システム・パーティションの第２のシステム状態を生成するために第２のオペレーティング・システム・パーティションに変更を適用することを含む。また、この方法は、第２のオペレーティング・システム・パーティションの第２のシステム状態をロードすることと、第２のオペレーティング・システム・パーティションの第２のシステム状態で動作している間に、第１のオペレーティング・システム・パーティションの第１のシステム状態に戻すための要求を受信することも含む。この方法は、第１のオペレーティング・システム・パーティションの第１のシステム状態をロードすることをさらに含む。
【０００６】
主題技術の様々な構成が例示として示され記載されている以下の詳細な説明から主題技術のその他の構成が当業者にとって容易に明らかになることは言うまでもない。認識されるように、主題技術はその他の種々の構成が可能であり、そのいくつかの詳細は、いずれも主題技術の範囲を逸脱せずに、様々なその他の点で変更可能である。したがって、図面および詳細な説明は、限定的なものとしてではなく、本質的に例示的なものと見なすべきである。
【０００７】
さらに理解するために含まれ、本明細書に組み込まれ、本明細書の一部を構成する添付図面は、開示された諸実施形態を例示するものであり、その記述とともに、開示された諸実施形態の原理を説明するのに役立つものである。
【図面の簡単な説明】
【０００８】
【図１】コンピューティング・システムを前の状態に戻すためのアーキテクチャの一例を示す図である。
【図２】本発明の特定の諸態様により、図１のアーキテクチャからクライアントおよびサーバの一例を示すブロック図である。
【図３】図２のクライアントの例を使用してコンピューティング・システムを前の状態に戻すためのプロセスの一例を示す図である。
【図４】図３のプロセスの例に関連する例示の一例である。
【図５】図２のクライアントおよびサーバを実現できるコンピュータ・システムの一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明には、本発明を完全に理解するために多数の特定の詳細が明記されている。しかし、本発明の諸実施形態がこのような特定の詳細の一部がなくても実践可能であることは、当業者にとって明らかになるであろう。その他の事例では、本発明を曖昧にしないために、周知の構造および技法は詳細に示されていない。
【００１０】
開示されたシステムは、アクティブに実行中の初期オペレーティング・システムのための第１のオペレーティング・システム・パーティションと、初期オペレーティング・システムへの変更をロードするための第２のオペレーティング・システム・パーティションという少なくとも２つのオペレーティング・システム・パーティションを含む。その変更が第２のオペレーティング・システム・パーティション上で正常にロードされインストールされると、システムは第２のオペレーティング・システム・パーティションでリブートし、その結果、システムのユーザが第２のオペレーティング・システム・パーティションの変更済みオペレーティング・システムを使用することを許可する。しかし、たとえば、変更済みオペレーティング・システムが、初期オペレーティング・システムで前に使用可能であった機能またはアプリケーションを欠いているかまたはその他の点でその使用を許可しない場合、ユーザは初期オペレーティング・システムに戻すことを希望する可能性がある。このような場合、ユーザは、第２のオペレーティング・システム・パーティションのアクティブに実行中の変更済みオペレーティング・システム内のオプションを選択して、第１のオペレーティング・システム・パーティションでリブートし、第１のオペレーティング・システム・パーティションのアクティブに実行中の初期オペレーティング・システムに、システムのユーザにより使用されるオペレーティング・システムを戻すことができる。
【００１１】
第１のオペレーティング・システム・パーティションでリブートした後、システムは、ユーザが前にロードした変更を拒否したことを認識し続け、同じ変更がもう一度ロードされインストールされるのを制限する。しかし、そのシステムについて他の変更がその後、使用可能になった場合、システムは、第２のパーティションでもう一度リブートできるように、その変更を第２のパーティションにダウンロードしインストールすることを許可する。
【００１２】
図１は、コンピューティング・システムを前の状態に戻すためのアーキテクチャ１００の一例を示している。アーキテクチャ１００は、ネットワーク１５０により接続されたサーバ１３０およびクライアント１１０を含む。
【００１３】
クライアント１１０のそれぞれは、オペレーティング・システムなどのソフトウェアを実行するように構成され、少なくとも２つのパーティションを含む。これらのパーティションは、たとえば、オペレーティング・システム・パーティションにすることができる。クライアント１１０は、たとえば、デスクトップ・コンピュータ、モバイル・コンピュータ、タブレット・コンピュータ（たとえば、電子ブック・リーダを含む）、モバイル・デバイス（たとえば、スマートフォンまたはＰＤＡ）、セット・トップ・ボックス（たとえば、テレビ用）、ビデオ・ゲーム・コンソール、または、オペレーティング・システムなどのソフトウェアを実行するための適切なプロセッサ、メモリ、および通信機能を有する任意のその他のデバイスにすることができる。
【００１４】
クライアント１１０はネットワーク１５０によりサーバ１３０に接続される。ネットワーク１５０は、たとえば、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、キャンパス・エリア・ネットワーク（ＣＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、ブロードバンド・ネットワーク（ＢＢＮ）、インターネットなどのうちの任意の１つまたは複数を含むことができる。さらに、ネットワーク１５０は、バスネットワーク、星状ネットワーク、環状ネットワーク、網目状ネットワーク、星状バスネットワーク、木状または階層ネットワークなどを含むネットワーク・トポロジのうちの任意の１つまたは複数を含むことができるが、これらに限定されない。
【００１５】
多くのサーバ１３０のうちの１つは、クライアント１１０上のソフトウェアを更新するかまたはその他の変更を行うためのデータをホストとして処理するように構成される。たとえば、クライアント１１０のオペレーティング・システムについて、そのオペレーティング・システムを第１の状態から第２の状態に更新するための更新が使用可能である場合、それぞれのクライアント１１０は、ネットワーク１５０によりサーバ１３０から、非アクティブ（たとえば、アクティブ・オペレーティング・システムを実行するために現在使用されていないもの）オペレーティング・システム・パーティションにその更新をダウンロードすることができる。更新がダウンロードされると、それぞれのクライアント１１０は、その更新がダウンロードされたオペレーティング・システム・パーティションでリブートし、第２の（たとえば、更新済みの）状態のオペレーティング・システムを実行することができる。クライアント１１０のユーザが第２の状態のオペレーティング・システムを使用したくない場合、ユーザは、キーストロークまたはその他の入力を使用して、ユーザが第１の状態の（たとえば、更新なしの）オペレーティング・システムを使用しようとしていることを示すことができる。次にクライアント１１０は、第１のオペレーティング・システムが乗っているもう一方のオペレーティング・システム・パーティションでリブートし、リブート時に第１の状態のオペレーティング・システムに対して実質的に即時アクセス（たとえば、ソフトウェアをアンインストールする必要なしに）することができる。
【００１６】
ロード・バランシングのために、複数のサーバ１３０がソフトウェアを更新するためのデータをホストとして処理することができる。サーバ１３０は、クライアント１１０上で実行されるソフトウェアを更新するためのデータをホストとして処理するために適切なプロセッサ、メモリ、および通信機能を有する任意のデバイスにすることができる。
【００１７】
図２は、本発明の特定の諸態様により、図１のアーキテクチャ１００内のサーバ１３０およびクライアント１１０の一例を示すブロック図２００である。クライアント１１０およびサーバ１３０は、それぞれの通信モジュール２１８および２３８を介してネットワーク１５０により接続される。通信モジュール２１８および２３８は、ネットワーク１５０上の他のデバイスとの間でデータ、要求、応答、およびコマンドなどの情報を送受信するためにネットワーク１５０とのインターフェースを行うように構成される。通信モジュール２１８および２３８は、たとえば、モデムまたはイーサネット（登録商標）・カードにすることができる。
【００１８】
クライアント１１０は、プロセッサ２１２と、通信モジュール２１８と、ファームウェア２２１、構成情報２２３、第１のパーティション２２２（たとえば、第１のオペレーティング・システム・パーティション）、および第２のパーティション２２４（たとえば、第２のオペレーティング・システム・パーティション）を含むメモリ２２０とを含む。第１のパーティション２２２は（たとえば、オペレーティング・システムの）初期状態２２８（または「第１のシステム状態」）を含む。第２のパーティション２２４は、ネットワーク１５０によりサーバ１３０のメモリ２３２から提供されたソフトウェア更新２３４に基づいた（たとえば、オペレーティング・システムの）更新済み状態２２６（または「第２のシステム状態」）を含むように構成される。第１および第２のパーティション２２２および２２４について提供された例はオペレーティング・システム・パーティションであり、初期状態２２８および更新済み状態２２６の例はオペレーティング・システムの状態（各状態のオペレーティング・システム）を指しているが、クライアント１１０を前の状態に戻すために開示されたシステムにおいて使用するために、その他のタイプのソフトウェア（たとえば、その他のソフトウェア・アプリケーション）を構成することができる。
【００１９】
メモリ２２０内のファームウェア２２１は、クライアント１１０の基本入出力ソフトウェアまたは「ＢＩＯＳ」にすることができる。メモリ２２０内の設定２２３は、たとえば、ユーザ設定、ユーザ・プリファレンス、オペレーティング・システム設定を示す情報、ならびに第１のパーティション２２２と第２のパーティション２２４の両方にとってアクセス可能になるべきその他の情報を含む。また、クライアント１１０は、キーボードまたはマウスなどの入力装置２１６およびディスプレイなどの出力装置２１４も含む。
【００２０】
クライアント１１０のプロセッサ２１２は、クライアント１１０を前の状態に（たとえば、オペレーティング・システムの更新済み状態２２６からオペレーティング・システムの初期状態２２８に）戻すために、プロセッサ２１２内に物理的にコード化された命令、メモリ２４０内のソフトウェアから受信した命令、またはその両方の組み合わせなどの命令を実行するように構成される。たとえば、クライアント１１０のプロセッサ２１２は、（たとえば、第１のパーティション２２２の初期状態２２８から）第２のパーティション２２４の更新済み状態２２６をロード（たとえば、それにリブート）するための命令を実行する。これは、たとえば、更新済み状態２２６がロードされ、第２のパーティション２２４に適用されたことに応答して、第１のパーティション２２２の初期状態２２８で動作している間にリブートするようにクライアント１１０が指示された場合に行われる可能性がある。
【００２１】
クライアント１１０のプロセッサ２１２は、第１のパーティション２２２上で初期状態２２８で動作している間に、更新済み状態２２６を生成するためにソフトウェア更新２３４（または「変更」）を第２のパーティション２２４に適用することにより、更新済み状態２２６を第２のパーティション２２４にロード（たとえば、ダウンロード）することができる。たとえば、更新済み状態２２６は、サーバ１３０上で使用可能なソフトウェア更新２３４を現在第１のパーティション２２２に保管されているオペレーティング・システムのバージョンのコピーに適用することにより更新されるオペレーティング・システムの更新済みバージョンであることができる。
【００２２】
特定の諸態様では、クライアント１１０のプロセッサ２１２は、ソフトウェア更新２３４を第２のパーティション２２８に適用する前に第１のパーティション２２２上で初期状態２２８で動作している間に、ソフトウェア更新２３４を第２のパーティション２２４に適用するための第１の要求を受信したことに応答して、更新済み状態２２６を第２のパーティション２２４にロードするように構成される。たとえば、ソフトウェア更新２３４を第２のパーティション２２８に適用する前に第１のパーティション２２２上で初期状態２２８で動作している間に、クライアント１１０のプロセッサ２１２は、サーバ１３０をチェックして、初期状態２２８に関するソフトウェア更新が使用可能であるかどうかを確認することができ、初期状態２２８に関するソフトウェア更新２３４が使用可能である場合、サーバ１３０のプロセッサ２３６は、ソフトウェア更新２３４をクライアント１１０の第２のパーティション２２４に適用するための要求をクライアント１１０のプロセッサ２１２に送信することができる。クライアント１１０のプロセッサ２１２は、第１のパーティション２２２上で初期状態２２８で動作している間に、初期状態２２５に関するソフトウェア更新（たとえば、ソフトウェア更新２３４または任意のその他のソフトウェア更新）が使用可能であるかどうかを定期的に判断するようにスケジュールすることができる。たとえば、クライアント１１０のオペレーティング・システムは、１時間ごとにまたは一日ごとに、オペレーティング・システムに関する更新についてサーバ１３０をチェックすることができる。
【００２３】
クライアント１１０のプロセッサ２１２は、（たとえば、入力装置２１６を使用して）第２のパーティション２２４の更新済み状態２２６で動作している間に第１のパーティション２２２の初期状態２２８に戻すための要求を受信するように構成される。第２のパーティション２２４の更新済み状態２２６で動作している間に第１のパーティション２２２の初期状態２２８に戻すための要求は、第２のパーティション２２４の更新済み状態２２６で動作している間に入力装置２１６を使用するユーザから受信することができる。たとえば、クライアント１１０が第１のパーティション２２２の初期状態２２８から第２のパーティション２２４の更新済み状態２２６にリブートされた後に、クライアント１１０は、第１のパーティション２２２の初期状態２２８に戻すための要求を示す、キーストロークなど、入力装置２１６からの入力を受け取ることができる。このキーストロークは、たとえば、同時にあるいは連続してまたはその両方で押された複数ボタンの組み合わせにすることができる。また、入力装置２１６からの入力は、第１のパーティション２２２の初期状態２２８に戻すための要求を示す、出力装置２１４上に表示されたインターフェース（たとえば、ボタン）の選択にすることもできる。
【００２４】
第２のパーティション２２４の更新済み状態２２６で動作している間に第１のパーティション２２２の初期状態２２８に戻すための要求は、クライアント１１０のメモリ２２０内の設定２２３に記録することができる。更新済み状態２２６を生成するために適用されたソフトウェア更新２３４がサーバ１３０からダウンロードされた特定の諸態様では、プロセッサ２１２は、初期状態２２８に戻すための要求を示す通知をサーバ１３０に送信するように構成することができる。したがって、サーバ１３０は、クライアント１１０が「アンインストール」またはその他の方法でソフトウェア更新２３４の適用前の状態に復帰しようとしている場合を認識することができる。
【００２５】
第２のパーティション２２４の更新済み状態２２６で動作している間に第１のパーティション２２２の初期状態２２８に戻すための要求は、たとえば、更新済み状態２２６ではアクセス不能な少なくとも１つの機能へのアクセスを可能にするように初期状態２２８が構成されている場合に受信することができる。たとえば、初期状態２２８で実行中のクライアント１１０のオペレーティング・システムは、そのオペレーティング・システムが更新済み状態２２６に更新されたときに「壊れた」かまたはその他の点でアクセス不能になった機能または計算能力にアクセスすることができる。
【００２６】
クライアント１１０のプロセッサ２１２は、（たとえば、第１のパーティション２２２の初期状態２２８に戻すための要求に応答して）第１のパーティション２２２の初期状態２２８をロードするようにさらに構成される。たとえば、クライアント１１０のリブート時に、ファームウェア２２１は、第１のパーティション２２２の初期状態２２８に戻すための要求に応答して、第２のパーティション２２４の代わりに第１のパーティション２２２からブートするようプロセッサ２１２に指示する。
【００２７】
特定の諸態様では、プロセッサ２１２がその後、（たとえば、第２のパーティション２２４の更新済み状態２２６で動作している間に第１のパーティション２２２の初期状態２２８に戻すための要求がすでに受信された後に）第１のパーティション２２２上で初期状態２２８で動作している間にソフトウェア更新２３４を第２のパーティション２２４に適用するための第２の要求を受信した場合、プロセッサ２１２はソフトウェア更新２３４の適用を制限するように構成される。これは、更新済み状態２２６で動作している間に初期状態２２８に戻すための要求を示すインジケータがメモリ２２０内の設定２２３に保管されているかどうかに関するプロセッサ２１２による判断に基づいて行われる可能性がある。このような制限は、第１のパーティション２２２の初期状態２２８に戻すための要求が受信された更新済み状態２２６を再現してしまう同じソフトウェア更新２３４が初期状態２２８に対して再適用されるのを回避するために有用である。たとえば、第２のパーティション２２４の代わりに第１のパーティション２２２にリブートすることによってクライアント１１０が更新済み状態２２６から初期状態２２８に復帰した後に、クライアント１１０のオペレーティング・システムは、ソフトウェア更新についてサーバ１３０を規則正しくチェックし続けて、初期状態２２８に関する同じソフトウェア更新２３４が使用可能であることを検出するよう処理を進めることができる。次に、クライアント１１０は、設定２２３をチェックして、クライアント１１０がソフトウェア更新２３４に応答して前に初期状態２２８に復帰したと判断し、その後、他の異なるソフトウェア更新が使用可能になるまでソフトウェア更新２３４をダウンロードしないようにすることができる。
【００２８】
図３は、図２のクライアント１１０の例を使用してコンピューティング・システムを前の状態に戻すためのプロセス３００の一例を示している。図３は図２に関連して記載されているが、図３のプロセス・ステップはその他のシステムによって実行可能であることに留意されたい。プロセス３００は、クライアント１１０のメモリ２２０内の第１のパーティション２２２の初期状態２２８がクライアント１１０にロードされる開始ステップ３０１から、クライアント１１０が第１のパーティション２２２上で初期状態２２８で動作している間にクライアント１１０のメモリ２２０内の第２のパーティション２２４にソフトウェア更新２３４を適用するための第１の要求が受信されるステップ３０２に移行することによって始まる。次に、ステップ３０３では、第１のパーティション２２２上で初期状態２２８で動作している間に、第２のパーティション２２４の更新済み状態２２６を生成するために第２のパーティション２２６にソフトウェア更新２３４が適用される。ステップ３０４では、第２のパーティション２２４の更新済み状態２２６がロードされ、ステップ３０５では、第２のパーティション２２４の更新済み状態２２６で動作している間に、第１のパーティション２２２の初期状態２２８に戻すための要求が受信される。その後、ステップ３０６では、第１のパーティション２２２の初期状態２２８がロードされ、プロセス３００はステップ３０７で終了する。
【００２９】
図３は、図２のクライアント１１０の例を使用してコンピューティング・システムを前の状態に戻すためのプロセス３００の一例を明記している。次に、図３のプロセス３００の例と、デスクトップ・コンピュータであるクライアント１１０と、ＣｈｒＸというオペレーティング・システムに関するソフトウェア更新２３４と、ＣｈｒＸのバージョン１．０である初期状態２２８と、ＣｈｒＸのバージョン２．０である更新済み状態２２６と、ＣｈｒＸ用のオペレーティング・システム・パーティションである第１および第２のパーティション２２２および２２４とを使用する一例について説明する。
【００３０】
プロセス３００は、デスクトップ・コンピュータ１１０が、デスクトップ１１０のメモリ２２０内の第１のオペレーティング・システム・パーティション２２２を使用して、ＣｈｒＸのバージョン１．０  ２２８をブートする開始ステップ３０１から、ＣｈｒＸのバージョン１．０がサーバ１３０上の更新についてチェックし、デスクトップ・コンピュータ１１０のメモリ２２０内の第２のオペレーティング・システム・パーティション２２４にインストールすべきＣｈｒＸに関するソフトウェア更新２３４が使用可能であることを検出し、その後、デスクトップ・コンピュータ１１０が第１のオペレーティング・システム・パーティション２２２上でＣｈｒＸのバージョン１．０で動作している間にソフトウェア更新２３４をダウンロードするステップ３０２に移行することによって始まる。
【００３１】
次に、ステップ３０３では、デスクトップ・コンピュータ１１０が第１のパーティション２２２上でＣｈｒＸのバージョン１．０（２２８）で動作し続けている間に、ＣｈｒＸのバージョン２．０（２２６）を生成するために第２のオペレーティング・システム・パーティション２２６にソフトウェア更新２３４が適用される。ステップ３０４では、再始動時に、デスクトップ・コンピュータ１１０のファームウェア２２１が第２のオペレーティング・システム・パーティション２２６上のＣｈｒＸのバージョン２．０（２２６）でブートする。その後、ユーザは、ＣｈｒＸのバージョン２．０（２２６）を使用し始め、特定のソフトウェア・アプリケーションがＣｈｒＸのバージョン２．０（２２６）と互換性がないことを検出し、ステップ３０５では、ユーザは、ＣｈｒＸのバージョン２．０（２２６）を使用している間に、キーボード２１６を使用してキーストロークを入力することにより、ＣｈｒＸのバージョン１．０（２２８）に戻すようデスクトップ・コンピュータ１１０に要求する。
【００３２】
応答として、システムがＣｈｒＸのバージョン２．０（２２６）からＣｈｒＸのバージョン１．０（２２８）に復帰することを示す通知４０２が、図４の例示４００に提供されるように、出力装置２１４上に表示するために提供され、デスクトップ・コンピュータ１１０がＣｈｒＸのバージョン２．０（２２６）からＣｈｒＸのバージョン１．０（２２８）に復帰したというインジケータがデスクトップ・コンピュータ１１０のメモリ２２０内の構成ファイル２２３に保管される。その後、ステップ３０６では、デスクトップ・コンピュータ１１０がリブートし、再始動時に、デスクトップ・コンピュータ１１０のファームウェア２２１が、第２のオペレーティング・システム・パーティション２２４上のＣｈｒＸのバージョン２．０（２２６）の代わりに第１のオペレーティング・システム・パーティション２２２上のＣｈｒＸのバージョン１．０（２２８）でブートする。それにより、ソフトウェアをアンインストールするかまたはその他の時間のかかる作業を実行する必要なしに、ユーザをＣｈｒＸのバージョン１．０（２２８）に戻す。プロセス３００はステップ３０７で終了する。
【００３３】
図５は、それにより図２のクライアント１１０およびサーバ１３０を実現できるコンピュータ・システム５００の一例を示すブロック図である。特定の諸態様では、コンピュータ・システム５００は、ハードウェアまたはソフトウェアとハードウェアの組み合わせを使用して、専用サーバ内に、または他のエンティティ内に統合して、あるいは複数のエンティティ間に分散して、実現することができる。
【００３４】
コンピュータ・システム５００（たとえば、クライアント１１０およびサーバ１３０）は、情報を伝達するためのバス５０８またはその他の通信メカニズムと、情報を処理するためにバス５０８で結合されたプロセッサ５０２（たとえば、プロセッサ２１２および２３６）とを含む。一例として、コンピュータ・システム５００は１つまたは複数のプロセッサ５０２で実現することができる。プロセッサ５０２は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、書き替え可能ゲート・アレイ（ＦＰＧＡ）、プログラム可能論理デバイス（ＰＬＤ）、コントローラ、状態機械、ゲーテッド・ロジック、個別ハードウェア・コンポーネント、または計算あるいはその他の情報操作を実行できる任意のその他の適切なエンティティにすることができる。
【００３５】
コンピュータ・システム５００は、ハードウェアに加えて、当該コンピュータ・プログラムのための実行環境を作成するコード、たとえば、プロセッサ・ファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、または、プロセッサ５０２によって実行すべき命令および情報を保管するためにバス５０８に結合されたランダム・アクセス・メモリ（ＲＡＭ）、フラッシュ・メモリ、読み取り専用メモリ（ＲＯＭ）、プログラム可能読み取り専用メモリ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、レジスタ、ハードディスク、取り外し可能ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、あるいは任意の適切な記憶装置などの含まれているメモリ５０４（たとえば、メモリ２２０および２３２）に保管されているもののうちの１つまたは複数の組み合わせを構成するコードを含むことができる。プロセッサ５０２およびメモリ５０４は、特殊目的論理回路によって補足するかまたはそれに組み込むことができる。
【００３６】
命令は、メモリ５０４に保管し、データ指向言語（たとえば、ＳＱＬ、ｄＢａｓｅ）、システム言語（たとえば、Ｃ、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｃ＋＋、アセンブリ）、アーキテクチャ言語（たとえば、Ｊａｖａ（登録商標）、．ＮＥＴ）、およびアプリケーション言語（たとえば、ＰＨＰ、Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ）などのコンピュータ言語を含むがこれらの限定されない当業者にとって周知の任意の方法により、１つまたは複数のコンピュータ・プログラム製品、すなわち、コンピュータ・システム５００による実行のためにまたはその動作を制御するためにコンピュータ可読媒体上にコード化されたコンピュータ・プログラム命令からなる１つまたは複数のモジュールで実現することができる。また、命令は、配列言語、アスペクト指向言語、アセンブリ言語、オーサリング言語、コマンドライン・インターフェース言語、コンパイル済み言語、コンカレント言語、カーリーブラケット言語、データフロー型言語、データ構造化言語、宣言形言語、難解言語、拡張言語、第４世代言語、関数型言語、対話型言語、解釈済み言語、反復型言語、リストベース言語、リトル言語、ロジックベース言語、機械語、マクロ言語、メタプログラミング言語、マルチパラダイム言語、数値解析、非英語ベース言語、オブジェクト指向クラスベース言語、オブジェクト指向プロトタイプベース言語、オフサイドルール言語、手続き型言語、反射言語、ルールベース言語、スクリプト言語、スタックベース言語、同期言語、構文処理言語、ビジュアル言語、ヴィルト言語、埋め込み言語、およびＸＭＬベース言語などのコンピュータ言語で実現することもできる。また、メモリ５０４は、プロセッサ５０２によって実行すべき命令の実行中に一時変数またはその他の中間情報を保管するために使用することもできる。
【００３７】
本明細書で述べられているコンピュータ・プログラムは必ずしもファイル・システム内の１つのファイルに対応するわけではない。１つのプログラムは、その他のプログラムまたはデータを保持するファイルの一部分（たとえば、マークアップ言語文書に保管された１つまたは複数のスクリプト）に、当該プログラム専用の単一ファイル内に、あるいは複数の協調ファイル（たとえば、コードの１つまたは複数のモジュール、サブプログラム、または一部分を保管するファイル）内に保管することができる。コンピュータ・プログラムは、１つのコンピュータ上で、あるいは１つのサイトに位置するか複数のサイトに分散されて通信ネットワークによって相互接続されている複数のコンピュータ上で実行するように配備することができる。本明細書に記載されているプロセスおよび論理フローは、入力データについて操作し、出力を生成することにより機能を果たすために１つまたは複数のコンピュータ・プログラムを実行する１つまたは複数のプログラム可能プロセッサによって実行することができる。
【００３８】
コンピュータ・システム５００は、情報および命令を保管するためにバス５０８に結合された、磁気ディスクまたは光ディスクなどのデータ記憶装置５０６をさらに含む。コンピュータ・システム５００は、入出力モジュール５１０を介して様々な装置に結合することができる。入出力モジュール５１０は任意の入出力モジュールにすることができる。入出力モジュール５１０の例としては、ＵＳＢポートなどのデータ・ポートを含む。入出力モジュール５１０は通信モジュール５１２に接続するように構成される。通信モジュール５１２（たとえば、通信モジュール２１８および２３８）の例としては、イーサネット（登録商標）・カードおよびモデムなどのネットワーキング・インターフェース・カードを含む。特定の諸態様では、入出力モジュール５１０は、入力装置５１４（たとえば、入力装置２１６）あるいは出力装置５１６（たとえば、出力装置２１４）またはその両方などの複数の装置に接続するように構成される。入力装置５１４の例としては、それによりユーザがコンピュータ・システム５００に入力を提供することができるキーボードおよびポインティング・デバイス、たとえば、マウスまたはトラックボールを含む。ユーザとの対話も可能にするために、触覚入力装置、視覚入力装置、音声入力装置、またはブレインコンピュータ・インターフェース・デバイスなどのその他の種類の入力装置５１４を使用することができる。たとえば、ユーザに提供されるフィードバックは、任意の形の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックにすることができ、ユーザからの入力は、音響、音声、触覚、または脳波入力を含む、任意の形で受け取ることができる。出力装置５１６の例としては、ユーザに対して情報を表示するためのＬＥＤ（発光ダイオード）、ＣＲＴ（陰極線管）、またはＬＣＤ（液晶ディスプレイ）画面などの表示装置を含む。
【００３９】
本発明の一態様によれば、クライアント１１０およびサーバ１３０は、プロセッサ５０２がメモリ５０４内に含まれる１つまたは複数の命令からなる１つまたは複数のシーケンスを実行したことに応答してコンピュータ・システム５００を使用して実現することができる。このような命令は、データ記憶装置５０６などの他の機械可読媒体からメモリ５０４内に読み込むことができる。メイン・メモリ５０４内に含まれる命令のシーケンスを実行することは、本明細書に記載されているプロセス・ステップをプロセッサ５０２に実行させることである。メモリ５０４内に含まれる命令のシーケンスを実行するために、多重処理構成の１つまたは複数のプロセッサも使用することができる。代替態様では、本発明の様々な態様を実現するために、ソフトウェア命令の代わりにまたはそれと組み合わせて、ハードワイヤード回路を使用することができる。したがって、本発明の諸態様はハードウェア回路とソフトウェアの任意の特定の組み合わせに限定されない。
【００４０】
本明細書に記載されている主題の様々な態様は、バックエンド・コンポーネント、たとえば、データ・サーバを含むか、ミドルウェア・コンポーネント、たとえば、アプリケーション・サーバを含むか、あるいはフロントエンド・コンポーネント、たとえば、それによりユーザが本明細書に記載されている主題の一実現例と対話することができるグラフィカル・ユーザ・インターフェースまたはウェブ・ブラウザを有するクライアント・コンピュータを含むか、１つまたは複数のこのようなバックエンド・コンポーネント、ミドルウェア・コンポーネント、またはフロントエンド・コンポーネントの任意の組み合わせを含む、コンピューティング・システムで実現することができる。システムのコンポーネントは、任意の形または手段のデジタル・データ通信、たとえば、通信ネットワークによって相互接続することができる。通信ネットワーク（たとえば、ネットワーク１５０）は、たとえば、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、キャンパス・エリア・ネットワーク（ＣＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、ブロードバンド・ネットワーク（ＢＢＮ）、インターネットなどのうちの任意の１つまたは複数を含むことができる。さらに、通信ネットワークは、たとえば、バスネットワーク、星状ネットワーク、環状ネットワーク、網目状ネットワーク、星状バスネットワーク、木状または階層ネットワークなどを含むネットワーク・トポロジのうちの任意の１つまたは複数を含むことができるが、これらに限定されない。通信モジュールは、たとえば、モデムまたはイーサネット（登録商標）・カードにすることができる。
【００４１】
コンピューティング・システム５００はクライアントとサーバを含むことができる。クライアントとサーバは一般に相互に遠く離れており、典型的に通信ネットワークにより対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント・サーバの関係を有するコンピュータ・プログラムによって発生する。コンピュータ・システム５００は、たとえば、無制限に、デスクトップ・コンピュータ、ラップトップ・コンピュータ、またはタブレット・コンピュータにすることができる。また、コンピュータ・システム５００は、他のデバイス、たとえば、無制限に、携帯電話、携帯情報端末（ＰＤＡ）、モバイル・オーディオ・プレーヤ、全地球測位システム（ＧＰＳ）受信機、ビデオ・ゲーム・コンソール、あるいはテレビのセット・トップ・ボックス、またはこれらの組み合わせに埋め込むこともできる。
【００４２】
本明細書で使用する「機械可読記憶媒体」または「コンピュータ可読媒体」という用語は、実行のためにプロセッサ５０２への命令またはデータの提供に関与する任意の媒体またはメディアを指している。このような媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含むがこれらに限定されない多くの形を取ることができる。不揮発性媒体としては、たとえば、データ記憶装置５０６などの光ディスク、磁気ディスク、またはフラッシュ・メモリを含む。揮発性媒体としては、メモリ５０４などのダイナミック・メモリを含む。伝送媒体としては、バス５０８を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。機械可読媒体の一般的な形としては、たとえば、フロッピー（登録商標）・ディスク、フレキシブル・ディスク、ハードディスク、磁気テープ、任意のその他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、任意のその他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意のその他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、任意のその他のメモリ・チップまたはカートリッジ、あるいはそこからコンピュータが読み取ることができる任意のその他の媒体を含む。機械可読記憶媒体は、機械可読記憶装置、機械可読記憶基材、メモリ・デバイス、機械可読伝搬信号をもたらす物質の組成物、またはこれらのうちの１つまたは複数の組み合わせにすることができる。
【００４３】
本明細書で使用するように、一連の項目に続き、それらの項目のいずれかを分離するために「および（ａｎｄ）」または「または（ｏｒ）」という用語が付いている「のうちの少なくとも１つ（ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ）」という語句は、そのリストのそれぞれの構成要素（すなわち、それぞれの項目）ではなく、全体としてそのリストを修飾するものである。「のうちの少なくとも１つ」という語句は、少なくとも１つの項目の選択を要求するものではなく、むしろ、この語句は、それらの項目のうちのいずれか１つのうちの少なくとも１つ、あるいはそれらの項目の任意の組み合わせのうちの少なくとも１つ、あるいはそれらの項目のそれぞれのうちの少なくとも１つ、またはこれらの組み合わせを含むという意味を可能にするものである。一例として、「Ａ、Ｂ、およびＣのうちの少なくとも１つ」または「Ａ、Ｂ、またはＣのうちの少なくとも１つ」はいずれも、Ａのみ、Ｂのみ、またはＣのみ、Ａ、Ｂ、およびＣの任意の組み合わせ、あるいはＡ、Ｂ、およびＣのそれぞれのうちの少なくとも１つ、またはこれらの組み合わせを指す。
【００４４】
「含む（ｉｎｃｌｕｄｅ）」、「有する（ｈａｖｅ）」などの用語は、説明または特許請求の範囲において使用される範囲で、「含む（ｃｏｍｐｒｉｓｅ）」という単語が請求項内で移行語として使用されるときに解釈されるように、「含む（ｃｏｍｐｒｉｓｅ）」と同様に包括的なものである。単数形の要素に対する言及は、具体的に明記されない限り、「唯一のもの」を意味するのではなく、むしろ「１つまたは複数」を意味するものである。「いくつかの（ｓｏｍｅ）」という用語は１つまたは複数を指す。本発明全体を通して記載されている様々な構成の諸要素と構造上および機能上同等であって、当業者にとって既知であるかまたは後で既知のものになるものはいずれも、参照により明白に本明細書に組み込まれ、主題技術によって包含されるものである。その上、本明細書に開示されているものはいずれも、このような開示が上記の説明に明示的に列挙されているかどうかにかかわらず、世間一般に提供されたものではない。
【００４５】
本明細書は多くの詳細を含んでいるが、これらは請求可能なものの範囲に対する制限と解釈すべきではなく、むしろ主題の特定の実現例の記述と解釈すべきである。また、別々の実施形態の文脈で本明細書に記載されている特定の特徴は、単一の実施形態において組み合わせて実現することもできる。逆に言えば、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々に、または任意の適切な下位の組み合わせで実現することもできる。その上、諸特徴は特定の組み合わせで作用するものとして上記で説明し、このように最初に請求することができるが、請求された組み合わせのうちの１つまたは複数の特徴は、場合によっては、その組み合わせから削除することができ、請求された組み合わせは下位の組み合わせまたは下位の組み合わせの変形例に向けることができる。
【００４６】
本明細書の主題は特定の諸態様に関して記載されているが、その他の態様を実現することができ、それらは特許請求の範囲の範囲内である。たとえば、動作は特定の順序で図面内に描写されているが、これは、望ましい結果を達成するために、このような動作を示されている特定の順序でまたは連続した順序で実行することまたは例示されているすべての動作を実行することを要求しているものと理解すべきではない。特許請求の範囲に列挙されているアクションは、異なる順序で実行することができ、依然として望ましい結果を達成することができる。一例として、添付図面に描写されているプロセスは必ずしも、望ましい結果を達成するために、示されている特定の順序または連続した順序を要求するわけではない。特定の情況では、マルチタスクおよび並列処理の方が有利である可能性もある。その上、上記の諸態様内の様々なシステム・コンポーネントの分離は、すべての態様でこのような分離を要求しているものと理解すべきではなく、記載されたプログラム・コンポーネントおよびシステムを一般に単一ソフトウェア製品にまとめて統合するかまたは複数のソフトウェア製品内にパッケージ化することができることを理解されたい。その他の変形例は特許請求の範囲の範囲内である。
【符号の説明】
【００４７】
１１０  クライアント
１３０  サーバ
１５０  ネットワーク
２１２  プロセッサ
２１４  出力装置
２１６  入力装置
２１８  通信モジュール
２２０  メモリ
２２１  ファームウェア
２２２  第１のパーティション
２２３  構成
２２４  第２のパーティション
２２６  更新済み状態
２２８  初期状態
２３２  メモリ
２３４  ソフトウェア更新
２３６  プロセッサ
２３８  通信モジュール
【図１】
2015079478.tif 000003
【図２】
2015079478.tif 000004
【図３】
2015079478.tif 000005
【図４】
2015079478.tif 000006
【図５】
2015079478.tif 000007
【外国語明細書】
2015079478000001.pdf