JP2013544416A - プリヒート型ソフトウェアインストレーション - Google Patents

プリヒート型ソフトウェアインストレーション Download PDF

Info

Publication number
JP2013544416A
JP2013544416A JP2013542058A JP2013542058A JP2013544416A JP 2013544416 A JP2013544416 A JP 2013544416A JP 2013542058 A JP2013542058 A JP 2013542058A JP 2013542058 A JP2013542058 A JP 2013542058A JP 2013544416 A JP2013544416 A JP 2013544416A
Authority
JP
Japan
Prior art keywords
updates
computing system
update
user
installation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013542058A
Other languages
English (en)
Other versions
JP5796755B2 (ja
Inventor
ジャック アール マシュー
ランディ ディー サルディンガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2013544416A publication Critical patent/JP2013544416A/ja
Application granted granted Critical
Publication of JP5796755B2 publication Critical patent/JP5796755B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

プリヒート型ソフトウェアインストールのための方法及び装置の幾つかの実施形態が開示される。1つの実施形態において、コンピューティングシステムのコンピューティング環境の背景動作においてソフトウェアの更新のパッケージがリモートソースからコンピューティングシステムにダウンロードされる。更新のパッケージのインストールは、ソフトウェア更新にコミットすることなく分離された仕方で背景動作において自動的に開始される。
【選択図】 図4

Description

本発明は、コンピュータにソフトウェアをインストールすることに関するもので、より詳細には、ソフトウェアの新規バージョンでコンピューティングシステムを更新することに関する。
今日のコンピュータ社会では、コンピューティングシステム及び種々のソフトウェアアプリケーションに対する更新が実際上必要である。開発者は、我々が使用するコンピュータシステム及びアプリケーションのクオリティ、効率及びファンクションを改善するために研究を続けている。慣習的に、コンピューティングシステムに更新をインストールするには、時間がかかる。更に、更新をインストールする間に、コンピューティングシステムの他のアプリケーション又はプロセスが中断したり干渉を受けたりすることがある。従って、コンピューティングシステムのユーザは、仕事が長時間中断するのを回避するため、更新が促されたとき更新のインストールをしばしば延期する。
本発明の幾つかの実施形態は、ソフトウェアに対して利用可能な更新を自動的にダウンロードし、そしてそのダウンロードした更新のインストールを開始することを含む。1つの実施形態において、ソフトウェアに対する更新のパッケージが、コンピューティングシステムのコンピューティング環境の背景動作においてリモートソースからコンピューティングシステムへダウンロードされる。次いで、コンピューティングシステムをソフトウェア更新にコミットすることなく、背景において分離した仕方で、更新のパッケージのインストールが自動的に開始される。背景動作とは、最前のユーザインターフェイス要素(例えば、前部ウインドウ)をコントロールし且つ入力フォーカス(例えば、キーボード及びマウス又はタッチ入力は、ユーザが現在相互作用している最前のプロセスに向けられる)を有する他のプロセスと相互作用することがユーザに許される間に遂行される動作である。換言すれば、前景プロセス又は動作は、ユーザ入力(例えば、キーボード、マウス、タッチ入力、等)を受け取ることができる一方、背景動作は、そのようにならないが、ユーザにとって見ることができる。
本発明の幾つかの実施形態は、ソフトウェア更新をプリインストール(pre-installing)する方法を含む。1つの実施形態では、コンピューティングシステムのソフトウェアに対する更新のセットのインストールの一部分のみが、コンピューティングシステムで現在実行されているプロセスを妨げずに遂行される。次いで、コンピューティングシステムのユーザには、更新のセットが通知され、一方、更新の全セットのインストールの完了は、ユーザが更新の全セットを肯定的に許すか又は承認するまで延期される。
本発明の幾つかの実施形態は、ソフトウェア更新をプリインストールする装置を含む。1つの実施形態では、この装置は、ソフトウェアのインストラクション及びデータを記憶するためのコンピュータ読み取り可能な記憶装置と、ソフトウェアに対する更新をダウンロードするためにネットワークを経てコンピューティングマシンに通信結合するためのネットワークインターフェイスと、処理装置とを備えている。この処理装置は、ソフトウェアの既存のインストラクション及びデータにオーバーライトせずにコンピュータ読み取り可能な記憶装置の予約エリアに更新をプリインストールするように動作できる。
本発明の幾つかの実施形態は、ソフトウェア更新をプリインストールする方法を含む。1つの実施形態では、ソフトウェアに対する更新は、コンピューティングシステムの背景動作で実行されるプロセスを経てコンピューティングシステムに部分的にインストールされる。次いで、コンピューティングシステムのユーザには、更新が通知される。別の実施形態では、コンピューティングシステムは、背景動作の前又はその間に、背景動作をユーザに通知することができる。ユーザが更新を承認するのに応答して、コンピューティングシステムにおいて更新のインストールが完了となる。幾つかの実施形態では、ユーザは、更新の部分を承認する。それに応答して、更新をプリインストールするためにそれまで行われた作業は、アンドゥされ、承認された更新だけがインストールされる。
以上の方法の1つ以上を遂行する種々の装置、及び処理システムにより実行されたときにその処理システムがそれらの方法を遂行するようにさせるマシン読み取り可能な媒体についても説明する。
他の方法、装置及びコンピュータ読み取り可能な記憶装置についても説明する。
以下の説明は、本発明の実施形態の具現化を一例として示す添付図面の説明を含む。添付図面は、一例に過ぎず、それに限定されないことを理解されたい。ここに使用する1つ以上の「実施形態」とは、本発明の少なくとも1つの具現化に含まれる特定の特徴、構造又は特性を説明するものであると理解されたい。従って、ここに現れる「幾つかの実施形態」又は「別の実施形態」という句は、本発明の種々の実施形態及び具現化を説明するもので、必ずしも、全てが同じ実施形態を指すものではない。しかしながら、それらは、必ずしも相互に排他的でもない。
種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。 種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。 種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。 種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。 種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。 種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。 プリヒート型ソフトウェアインストールに使用できるコンピューティングシステムにおけるコンピュータ読み取り可能な記憶装置の1つの実施形態を示すブロック図である。 本発明の幾つかの実施形態に使用できるコンピューティング装置の1つの実施形態を示す。
ここに述べる実施形態では、新規ソフトウェア及び/又はソフトウェアの更新がコンピューティングシステムに容易にインストールされる。説明を明瞭に且つ簡略にするため、ここに述べる実施形態は、ソフトウェア(例えば、オペレーティングシステム、ユーザアプリケーション、等)に対する更新をインストールすることをしばしば参照する。しかしながら、それら実施形態は、更新をインストールすることに限定されない。ここに述べる方法、技術、システム、コンポーネント、等は、新規なアプリケーションについても使用することができる。
幾つかの実施形態において、コンピューティングシステムのソフトウェアに対する更新をインストールするプロセスは、コンピューティングシステムのユーザに更新を通知又は知らせる前に、できるだけ、コンピューティングシステムのソフトウェアの現在バージョンを妨げずに、開始され実行される。従って、実行されるインストールプロセスの前記部分は、更新のプリインストール(pre-installation)又は更新のインストールのプリヒーティング(pre-heating)とも称される。更新のインストールをプリヒーティングした後に、ユーザには、更新が通知され、そしてユーザが更新を承認するかどうか尋ねられる。ユーザが更新を承認する場合には、更新をコンピューティングシステムにコミットするためにインストールプロセスが完了される。さもなければ、ユーザが更新を拒絶する場合には、プリヒーティング中に行われた作業がアンドゥされる。
幾つかの実施形態において、ユーザが幾つかの更新を承認するが残りの更新は拒絶する場合には、プリヒーティング中に行われた作業がアンドゥされ、そして承認された更新だけをインストールするためにインストールプロセスが再スタートされる。別の実施形態では、プリヒーティングは、多数の所定の更新組み合わせをプリインストールすることを含む。ユーザにより承認された更新の組み合わせが、これらの所定の組み合わせの1つである場合には、この更新組み合わせのインストールを、ユーザ承認時に完了させることができる。さもなければ、所定の更新組み合わせのプリインストール中に行われた作業がアンドゥされ、承認された更新のみをインストールするようにインストールプロセスが再スタートされる。
ユーザに更新を通知する前に更新のインストールの少なくとも一部分を実行することにより、更新のユーザ承認時に行われたままである更新インストールのための作業が著しく減少される。その結果、ユーザにより認知される更新のインストールに費やされる時間が著しく短くなり、更新インストールでのユーザ経験を改善する。更に、更新インストールにより生じるユーザへの中断が減少される。というのは、インストールプロセスの一部分又はほぼ全部が、コンピューティングシステムで実行される他のプロセス又はユーザの妨げとなることなく、背景動作で実行されるからである。ユーザ認知のインストール時間が短くなり且つユーザの中断が減少された状態では、ユーザがコンピューティングシステムにおけるソフトウェアに対する更新を承認する見込みが高くなる。
図1A−1Bは、種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。このプロセスは、ソフトウェア、ハードウェア、ファームウェア、又はそれらのいずれかの組み合わせを含む処理ロジックにより遂行される。例えば、このプロセスは、以下に述べるように、図5に示すコンピューティング装置で具現化される処理ロジックにより遂行される。
図1Aを参照すれば、処理ロジックは、コンピューティングシステムを、コンピューティングシステムの背景でのソフトウェアに対する更新のためにリモートソースに接続する(処理ブロック110)。リモートソースは、ワイヤレスネットワーク及び/又はワイヤードネットワークを経てコンピューティングシステムに接続されたサーバー、パーソナルコンピュータ、等の別のコンピューティング装置である。ネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イーサネット(登録商標)、等を含む。ソフトウェアに対する更新は、ソフトウェア、ソフトウェアの新規バージョン、ソフトウェアのセキュリティパッチ、等に対するアップグレードを含む。処理ロジックは、コンピューティングシステムの背景において、ひいては、コンピューティングシステムで実行される現在プロセスを妨げることなく、コンピューティングシステムをリモートソースに接続することに注意されたい。それ故、コンピューティングシステムのユーザは、処理ロジックが何を行っているか気付かない。ある実施形態では、処理ロジックは、利用可能な更新を検出するためにリモート装置に周期的に問合せする。
リモートソースで得られる更新のメタデータに基づき、処理ロジックは、コンピューティングシステムにとってどの更新(1つ又は複数)が適切であるか決定する(処理ブロック112)。メタデータの幾つかの例は、バージョン番号、ライセンス又はエンタイトル情報、システム要件、等を含む。次いで、処理ロジックは、リモートソースからコンピューティングシステムへ適切な更新のパッケージをダウンロードする(処理ブロック114)。
幾つかの実施形態において、処理ロジックは、ダウンロードされたパッケージを、コンピューティングシステムのコンピュータ読み取り可能な記憶装置(例えば、ディスク)の一時的エリアにインストールし始める(処理ブロック116)。処理ロジックは、更新をインストールするためにディスク上のこの一時的エリアを予約している。更に、ディスク上のこの一時的エリアは、ディスクの他部分から分離されていて、この一時的エリアに部分的にインストールされる更新が、それら更新がコミットされる前にコンピューティングシステムのソフトウェアの現在バージョンにオーバーライトしたり又はそれを妨げたりしないようにする。従って、この一時的エリアは、サンドボックスと称され、そして部分的にインストールされた更新もサンドボックスと称される。インストールは、圧縮されたファイルをダウンロードして、これをインストールプロセスの一部分として解凍することを含み、更に、インストールプロセスは、実行可能なソフトウェアを含むファイルを、磁気ハードディスク又は不揮発性半導体メモリのような記憶装置に配列することも含む。又、インストールは、フォルダー又はディレクトリ、レジストリエントリー(例えば、マイクロソフトウインドウズの)、構成ファイルエントリー、リンク又はショートカット、及びそれらのアイテムのサブセットを生成し又は変更することも含む。処理ロジックは、一時的エリアにダウンロードされるパッケージを使用してシステムキャッシュを作り上げることができる(処理ブロック118)。幾つかの実施形態において、予め初期化された状態をコンポーズするコンピュータ読み取り可能な記憶装置のメモリのチャンクがセーブオフされ、次いで、読み戻され、そして早速使用することができる。ディスクへシリアル化されるメモリのこのチャンクは、キャッシュである。例えば、処理ロジックは、(圧縮され及び/又は暗号化された)更新のファイルをパッケージから抽出し、それらのファイルを必要に応じて解凍及び/又は解読し、次いで、それらのファイルを一時的エリアで所定のハイアラーキーに配列し、コンピューティングシステムに現在使用中のシステムキャッシュに同様のファイルのハイアラーキーを鏡像化する。
ある実施形態では、更新を必要とする2つの異なるキャッシュ、即ちカーネル/ケクスト(kext)キャッシュと、ディルド(dyld)共有キャッシュとがある。カーネル/ケクストキャッシュは、カーネルスペースで実行することが必要なドライバコード(コンピューティングシステムのオペレーティングシステムのベンダー及び/又は第三者によって与えられる)に関連している。ディルド共有キャッシュは、コンピューティングシステムのユーザスペースにおいてアプリケーションにより使用される共有コードライブラリに関連している。両キャッシュは、その後のブート又はアプリケーション起動サイクル中にシステムが従来の時間のかかる初期化プロセスを通して実行されるのを防止する。これらキャッシュに関する更なる詳細は、発明者ミッシェルスミス及びジョセフソコル二世による“Method for Booting an Operating System”と題する米国特許第7,607,000号に見られ、これは、参考としてここにそのまま援用される。
次いで、処理ロジックは、利用可能な更新をコンピューティングシステムのユーザに通知する(処理ブロック120)。前記プロセスは、更新のプリインストール、又は更新のインストールのプリヒーティングと称される。幾つかの実施形態において、処理ロジックは、利用可能な更新をユーザに通知するメッセージを表示するためにユーザインターフェイス(例えば、グラフィックユーザインターフェイス)を発生する。このユーザインターフェイスは、更に、ユーザが利用可能な更新を承認するか拒絶するか指示できるようにする。幾つかの実施形態において、ユーザインターフェイスは、ユーザが利用可能な更新のサブセットを承認又は拒絶について選択できるようにするユーザインターフェイスコントロール(例えば、ボタン、チェックボックス、ドロップダウンメニュー、等)を含む。換言すれば、全ての利用可能な更新を承認又は拒絶するのではなく、ユーザは、インストールすべき更新のみを選択することによりプロセスをカスタマイズすることができる。
更新をプリインストールしそして利用可能な更新をユーザに通知した後に、処理ロジックは、更新に関するユーザ入力を待機する(処理ブロック122)。ブロック124において、処理ロジックは、ユーザ入力が受け取られたかどうか決定する。そうでなければ、処理ロジックは、ブロック122へ戻り、ユーザ入力を待機する。さもなければ、処理ロジックは、図1Bのブロック126へ移行する。
図1Bを参照すれば、処理ロジックは、ユーザが全ての利用可能な更新のインストールを承認するかどうかチェックする(処理ブロック126)。もしそうであれば、処理ロジックは、全ての更新をコミットする(処理ブロック128)。例えば、処理ロジックは、一時的エリアに作られたシステムキャッシュをファイルシステムへとスワップして現在システムキャッシュに置き換わることにより、更新のインストールを終了し又は完了する。幾つかの実施形態において、処理ロジックは、現在システムキャッシュを指すポインタを変化させて、一時的エリアに新たに作られたシステムキャッシュを指すようにし、そして現在システムキャッシュを削除する。幾つかの実施形態において、処理ロジックは、単一のアトミックオペレーション(例えば、ショーブ(shove)オペレーション)を遂行して、現在システムキャッシュを削除し、そして新たに作られたシステムキャッシュを現在システムキャッシュの位置へ移動して、現在システムキャッシュに置き換わるようにする。ソフトウェアインストールの完了に関する更なる詳細が、発明者ジャックR.マッシュー及びジョンR.チャン氏による2008年9月30日出願の“Installation of Software onto Computer”と題する米国特許出願第12/242,348号に見られ、これは、参考としてここにそのまま援用される。任意であるが、処理ロジックは、更新を有効なものにするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック130)。
幾つかの実施形態において、ユーザがブロック126において利用可能な全ての更新のインストールを承認しない場合には、処理ロジックは、ユーザが利用可能な更新のサブセットのインストールを承認するかどうか更にチェックする(処理ブロック132)。ユーザが利用可能な更新のサブセットのインストールを承認する場合には、処理ロジックは、形成されたシステムキャッシュをアンドゥする(処理ブロック134)。例えば、処理ロジックは、ディスクの一時的エリアに形成されたシステムキャッシュを単に削除する。次いで、処理ロジックは、ユーザがどの更新を承認するかに基づいてシステムキャッシュを再形成する(処理ブロック136)。次いで、処理ロジックは、ユーザにより承認された更新のみをコミットする(処理ブロック138)。幾つかの実施形態において、処理ロジックは、一時的エリアにおける新たに形成されたシステムキャッシュを指すように現在システムキャッシュを指すポインタを変更し、そして現在システムキャッシュを削除する。幾つかの実施形態において、処理ロジックは、単一のアトミックオペレーション(例えば、ショーブオペレーション)を遂行して、現在システムキャッシュを削除し、そして新たに形成されたシステムキャッシュを現在システムキャッシュの位置へ移動して、現在システムキャッシュに置き換わるようにする。任意であるが、処理ロジックは、更新を有効なものにするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック140)。
ブロック132において、ユーザが利用可能な更新のサブセットすら承認せず、即ちユーザが利用可能な更新を全て拒絶することを処理ロジックが決定する場合には、処理ロジックは、形成されたシステムキャッシュをアンドゥする(処理ブロック142)。幾つかの実施形態において、処理ロジックは、ダウンロードされたパッケージを将来の使用のためにコンピューティングシステムに保持する(処理ブロック144)。例えば、処理ロジックは、更新を後で再びチェックし、そして更新の第2セットを見出す。更に、処理ロジックは、更新の第2セットをインストールするために、以前にダウンロードされたパッケージの幾つかが依然必要とされることを決定し、従って、これらの以前にダウンロードされたパッケージが使用される。
図2A−2Bは、種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。前記プロセスと同様に、このプロセスも、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせを含む処理ロジックにより遂行される。例えば、このプロセスは、図5に示して以下に述べるコンピューティング装置で具現化される処理ロジックにより遂行される。
図2Aを参照すれば、処理ロジックは、コンピューティングシステムの背景においてソフトウェアを更新するためにリモートソースにコンピューティングシステムを接続する(処理ブロック210)。リモートソースは、ワイヤレスネットワーク及び/又はワイヤードネットワークを経てコンピューティングシステムに接続されたサーバー、パーソナルコンピュータ、等の別のコンピューティング装置である。ネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イーサネット(登録商標)、等を含む。ソフトウェアに対する更新は、ソフトウェア、ソフトウェアの新規バージョン、ソフトウェアのセキュリティパッチ、等に対するアップグレードを含む。処理ロジックは、コンピューティングシステムの背景において、ひいては、コンピューティングシステムで実行される現在プロセスを妨げることなく、コンピューティングシステムをリモートソースに接続することに注意されたい。それ故、コンピューティングシステムのユーザは、処理ロジックが何を行っているか気付かない。
リモートソースで得られる更新のメタデータに基づき、処理ロジックは、コンピューティングシステムにとってどの更新(1つ又は複数)が適切であるか決定する(処理ブロック212)。メタデータの幾つかの例は、前記で述べた。次いで、処理ロジックは、リモートソースからコンピューティングシステムへ適切な更新のパッケージをダウンロードする(処理ブロック214)。
幾つかの実施形態において、処理ロジックは、ダウンロードされたパッケージを、コンピューティングシステムのコンピュータ読み取り可能な記憶装置の一時的エリアにインストールし始める(処理ブロック216)。更新の考えられる組み合わせごとに、処理ロジックは、一時的エリアにダウンロードされサンドボックス化されたパッケージを使用してシステムキャッシュを作り上げる(処理ブロック218)。システムキャッシュの幾つかの実施形態の詳細は、前記で述べた。更新の各組み合わせに対して形成されるシステムキャッシュもサンドボックス化され、即ち、システムキャッシュは、一時的エリアに形成された他のシステムキャッシュから分離される。これらのシステムキャッシュがインストール時に形成されるとき、コンピューティングシステムは、動的なものにされることに注意されたい。換言すれば、異なる配備にわたって異なるカーネル拡張及びライブラリが存在し得る。例えば、同じオペレーティングシステムのコピーを各々有する2つのシステムがあるが、一方のコピーは、ハードウェア製品をサポートするために第三者カーネル拡張を有し、他方のコピーは、それを有しない。別の例では、異なるディルド共有キャッシュを要求する1つ以上の予め選択されたユーザアプリケーションで生じるシステム共有ライブラリの新たなバージョンを両方とも有する2つのコンピューティングシステムがある。
その後に、処理ロジックは、コンピューティングシステムのユーザに利用可能な更新を通知する(処理ブロック220)。前記プロセスは、更新のプリインストール又は更新のインストールのプリヒーティングとも称される。幾つかの実施形態において、処理ロジックは、利用可能な更新をユーザに通知するメッセージを表示するためにユーザインターフェイス(例えば、グラフィックユーザインターフェイス)を発生する。ユーザインターフェイスの幾つかの実施形態の詳細は、前記で述べた。
更新をプリインストールしそして利用可能な更新をユーザに通知した後に、処理ロジックは、更新に関するユーザ入力を待機する(処理ブロック222)。ブロック224において、処理ロジックは、ユーザ入力が受け取られたかどうか決定する。そうでなければ、処理ロジックは、ブロック222へ戻り、ユーザ入力を待機し続ける。さもなければ、処理ロジックは、図2Bのブロック226へ移行する。
図2Bを参照すれば、処理ロジックは、ユーザが全ての利用可能な更新のインストールを承認するかどうかチェックする(処理ブロック226)。もしそうであれば、処理ロジックは、全ての更新をコミットする(処理ブロック228)。例えば、処理ロジックは、一時的エリアに作られたシステムキャッシュをファイルシステムへとスワップして現在システムキャッシュに置き換わることにより、更新のインストールを終了し又は完了する。幾つかの実施形態において、処理ロジックは、現在システムキャッシュを指すポインタを変化させて、一時的エリアに新たに作られたシステムキャッシュを指すようにし、そして現在システムキャッシュを削除する。幾つかの実施形態において、処理ロジックは、単一のアトミックオペレーション(例えば、ショーブ(shove)オペレーション)を遂行して、現在システムキャッシュを削除し、そして新たに作られたシステムキャッシュを現在システムキャッシュの位置へ移動して、現在システムキャッシュに置き換わるようにする。任意であるが、処理ロジックは、更新を有効にするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック230)。
幾つかの実施形態において、ユーザがブロック226において利用可能な全ての更新のインストールを承認しない場合には、処理ロジックは、ユーザが利用可能な更新のサブセットのインストールを承認するかどうか更にチェックする(処理ブロック232)。ユーザが利用可能な更新のサブセットのインストールを承認する場合には、処理ロジックは、ユーザにより承認された更新の組み合わせに一致する一時的エリアに形成されたシステムキャッシュを見出す(処理ブロック234)。次いで、処理ロジックは、現在システムキャッシュを、その見出したシステムキャッシュに置き換え、承認した更新の組み合わせをコミットする(処理ブロック236)。幾つかの実施形態において、処理ロジックは、一時的エリアにおいて見出したシステムキャッシュを指すように現在システムキャッシュを指すポインタを変更し、そして現在システムキャッシュを削除する。幾つかの実施形態において、処理ロジックは、単一のアトミックオペレーション(例えば、ショーブオペレーション)を遂行して、現在システムキャッシュを削除し、そして見出したシステムキャッシュを現在システムキャッシュの位置へ移動して、現在システムキャッシュに置き換わるようにする。処理ロジックは、更に、更新の他の組み合わせに対して一時的エリアに形成された残りのシステムキャッシュを削除し又は除去する。最終的に、処理ロジックは、更新を有効なものにするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック238)。システムキャッシュは、更新をユーザに通知する前に推論的に形成されるので、ユーザ認知更新時間(ユーザが、選択された更新を承認するときから、選択された更新をコミットするときまで)は、従来の更新インストール時間よりも短い。更に、更新のプリインストール中に推論的に形成されるシステムキャッシュは、異なるカーネル拡張及びライブラリが異なる配備にわたって存在できるようにもする。
ブロック232において、ユーザが利用可能な更新を1つも承認せず、即ちユーザが利用可能な更新を全て拒絶することを処理ロジックが決定する場合には、処理ロジックは、形成されたシステムキャッシュをアンドゥする(処理ブロック242)。幾つかの実施形態において、処理ロジックは、ダウンロードされたパッケージを将来の使用のためにコンピューティングシステムに保持する(処理ブロック244)。例えば、処理ロジックは、更新を後で再びチェックし、そして更新の第2セットを見出す。更に、処理ロジックは、更新の第2セットをインストールするために、以前にダウンロードされたパッケージの幾つかが依然必要とされることを決定し、従って、これらの以前にダウンロードされたパッケージが使用される。
図3A−3Bは、種々の実施形態に基づきコンピューティングシステムにおいてソフトウェア更新をプリヒート型インストールするプロセスを示すフローチャートである。前記プロセスと同様に、このプロセスも、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせを含む処理ロジックによって遂行される。例えば、このプロセスは、図5に示して以下に述べるコンピューティング装置で具現化される処理ロジックにより遂行される。
図3Aを参照すれば、処理ロジックは、コンピューティングシステムの背景においてソフトウェアを更新するためにリモートソースにコンピューティングシステムを接続する(処理ブロック310)。リモートソースは、ワイヤレスネットワーク及び/又はワイヤードネットワークを経てコンピューティングシステムに接続されたサーバー、パーソナルコンピュータ、等の別のコンピューティング装置である。ネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イーサネット(登録商標)、等を含む。ソフトウェアに対する更新は、ソフトウェア、ソフトウェアの新規バージョン、ソフトウェアのセキュリティパッチ、等に対するアップグレードを含む。処理ロジックは、コンピューティングシステムの背景において、ひいては、コンピューティングシステムで実行される現在プロセスを妨げることなく、コンピューティングシステムをリモートソースに接続することに注意されたい。それ故、コンピューティングシステムのユーザは、処理ロジックが何を行っているか気付かない。
リモートソースで得られる更新のメタデータに基づき、処理ロジックは、コンピューティングシステムにとってどの更新(1つ又は複数)が適切であるか決定する(処理ブロック312)。メタデータの幾つかの例は、前記で述べた。次いで、処理ロジックは、リモートソースからコンピューティングシステムへ適切な更新のパッケージをダウンロードする(処理ブロック314)。
幾つかの実施形態において、処理ロジックは、ダウンロードされたパッケージを、コンピューティングシステムのコンピュータ読み取り可能な記憶装置の一時的エリアにインストールし始める(処理ブロック316)。更新の考えられる組み合わせの所定セットごとに、処理ロジックは、一時的エリアにダウンロードされサンドボックス化されたパッケージを使用してそれら組み合わせの各々に対してシステムキャッシュを作り上げる(処理ブロック318)。システムキャッシュの幾つかの実施形態の詳細は、前記で述べた。典型的に、考えられる組み合わせの所定セットは、全ての適切な更新の組み合わせと、適切な更新の1つ以上の一般的な組み合わせとを含む。換言すれば、処理ロジックは、多数のシステムキャッシュを推論的に形成し、そして後でユーザにより承認される更新をコミットするためにそのうちの1つが選択される。更新の各組み合わせに対して形成されるシステムキャッシュもサンドボックス化され、即ち、システムキャッシュは、一時的エリアに形成された他のシステムキャッシュから分離される。次いで、処理ロジックは、コンピューティングシステムのユーザに利用可能な更新を通知する(処理ブロック320)。前記プロセスは、更新のプリインストール又は更新のインストールのプリヒーティングとも称される。幾つかの実施形態において、処理ロジックは、利用可能な更新をユーザに通知するメッセージを表示するためにユーザインターフェイス(例えば、グラフィックユーザインターフェイス)を発生する。ユーザインターフェイスの幾つかの実施形態の詳細は、前記で述べた。
更新をプリインストールしそして利用可能な更新をユーザに通知した後に、処理ロジックは、更新に関するユーザ入力を待機する(処理ブロック322)。ブロック324において、処理ロジックは、ユーザ入力が受け取られたかどうか決定する。そうでなければ、処理ロジックは、ブロック322へ戻り、ユーザ入力を待機し続ける。さもなければ、処理ロジックは、図3Bのブロック326へ移行する。
図3Bを参照すれば、処理ロジックは、ユーザが全ての利用可能な更新のインストールを承認するかどうかチェックする(処理ブロック326)。もしそうであれば、処理ロジックは、全ての更新をコミットする(処理ブロック328)。例えば、処理ロジックは、一時的エリアに作られたシステムキャッシュをファイルシステムへとスワップして現在システムキャッシュに置き換わることにより、更新のインストールを終了し又は完了する。幾つかの実施形態において、処理ロジックは、現在システムキャッシュを指すポインタを変化させて、一時的エリアに新たに作られたシステムキャッシュを指すようにし、そして現在システムキャッシュを削除する。幾つかの実施形態において、処理ロジックは、単一のアトミックオペレーション(例えば、ショーブオペレーション)を遂行して、現在システムキャッシュを削除し、そして新たに作られたシステムキャッシュを現在システムキャッシュの位置へ移動して、現在システムキャッシュに置き換わるようにする。任意であるが、処理ロジックは、更新を有効にするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック330)。
幾つかの実施形態において、ユーザがブロック326において利用可能な全ての更新のインストールを承認しない場合には、処理ロジックは、ユーザが利用可能な更新のサブセットのインストールを承認するかどうか更にチェックする(処理ブロック332)。ユーザが利用可能な更新のサブセットのインストールを承認する場合には、処理ロジックは、その承認されたサブセットが所定の組み合わせの1つであるかどうかチェックする(処理ブロック333)。もしそうであれば、処理ロジックは、ユーザにより承認された更新の組み合わせに一致する一時的エリアに形成されたシステムキャッシュを見出す(処理ブロック334)。次いで、処理ロジックは、現在システムキャッシュを、その見出したシステムキャッシュに置き換え、承認した更新の組み合わせをコミットする(処理ブロック336)。幾つかの実施形態において、処理ロジックは、一時的エリアにおいて見出したシステムキャッシュを指すように現在システムキャッシュを指すポインタを変更し、そして現在システムキャッシュを削除する。幾つかの実施形態において、処理ロジックは、単一のアトミックオペレーション(例えば、ショーブオペレーション)を遂行して、現在システムキャッシュを削除し、そして見出したシステムキャッシュを現在システムキャッシュの位置へ移動して、現在システムキャッシュに置き換わるようにする。処理ロジックは、更に、更新の他の組み合わせに対して一時的エリアに形成された残りのシステムキャッシュを削除し又は除去する。最終的に、処理ロジックは、承認された更新を有効なものにするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック338)。システムキャッシュは、更新をユーザに通知する前に推論的に形成されるので、ユーザ認知更新時間(ユーザが、選択された更新を承認するときから、選択された更新をコミットするときまで)は、従来の更新インストール時間よりも短い。更に、更新のプリインストール中に推論的に形成されるシステムキャッシュは、異なるカーネル拡張及びライブラリが異なる配備にわたって存在できるようにもする。
しかしながら、ブロック333において、承認されたサブセットが所定の組み合わせの1つでないと処理ロジックが決定する場合には、処理ロジックは、形成された全てのシステムキャッシュをアンドゥし(処理ブロック335)、ユーザがどの更新を承認するかに基づいてシステムキャッシュを再形成し(処理ブロック339)、そしてユーザにより承認された更新のみをコミットする(処理ブロック340)。最終的に、処理ロジックは、承認された更新を有効なものにするために必要に応じてコンピューティングシステムを再スタートする(処理ブロック338)。
ブロック332において、ユーザが利用可能な更新を1つも承認せず、即ちユーザが利用可能な更新を全て拒絶することを処理ロジックが決定する場合には、処理ロジックは、形成されたシステムキャッシュをアンドゥする(処理ブロック342)。幾つかの実施形態において、処理ロジックは、ダウンロードされたパッケージを将来の使用のためにコンピューティングシステムに保持する(処理ブロック344)。例えば、処理ロジックは、更新を後で再びチェックし、そして更新の第2セットを見出す。更に、処理ロジックは、更新の第2セットをインストールするために、以前にダウンロードされたパッケージの幾つかが依然必要とされることを決定し、従って、これらの以前にダウンロードされたパッケージが使用される。
図4は、本発明の幾つかの実施形態に基づきプリヒート型ソフトウェアインストールに使用できるコンピューティングシステムにおけるコンピュータ読み取り可能な記憶装置の1つの実施形態を示すブロック図である。コンピュータ読み取り可能な記憶装置400は、コンピューティングシステムのハードディスクを備えている。コンピュータ読み取り可能な記憶装置400は、コンピューティングシステムの現在ファイルシステム410を記憶する。更に、現在ファイルシステム410から分離された一時的エリア420は、更新をプリインストールするために予約される。更新のプリインストール中に、更新に関連したファイルをディレクトリのハイアラーキーにおいて編成し記憶して、現在ファイルシステム410のハイアラーキーを鏡像化することにより、一時的エリア420にシステムキャッシュ425を形成することができる。更新の異なる組み合わせに対して付加的なシステムキャッシュを一時的エリア420に形成することができる。
ユーザが全ての更新を承認する場合には、一時的エリア420に形成されたシステムキャッシュ425が現在ファイルシステム410へとスワップされる。ユーザが全ての更新を拒絶する場合には、形成されたシステムキャッシュ425が削除される。ユーザが更新のサブセットしか承認しない場合には、形成されたシステムキャッシュ425が削除され、そして更新の承認されたサブセットがスクラッチからインストールされる。更新の所定の組み合わせに対応する複数のシステムキャッシュが形成された幾つかの実施形態では、更新の承認されたサブセットが更新の所定の組み合わせの1つとなる場合に、形成されたシステムキャッシュの1つを使用して、更新の承認されたサブセットコミットする。ソフトウェア更新のプリインストールの幾つかの実施形態の詳細は、上述した。
図5は、ここに述べる種々の実施形態を具現化するための適当なコンピューティング環境を示すブロック図である。総体的に、これらのコンポーネントは、これに限定されないが、汎用コンピュータシステム(例えば、サーバー、パーソナルコンピュータ、ラップトップコンピュータ、等)、及び特殊なハンドヘルドコンピュータ装置(例えば、パーソナルデジタルアシスタント(PDA)、スマートホン、等)を含むハードウェアシステムの広いカテゴリーを表わすことを意図している。
コンピューティングシステム500は、プロセッサ510、I/O装置540、メインメモリ520、及びフラッシュメモリ530を備え、これらは、バス580を経て互いに結合される。システムメモリ(RAM)及び不揮発性記憶装置(例えば、磁気又は光学ディスク)の1つ以上を含むメインメモリ520は、プロセッサ510により使用するためのインストラクション及びデータを記憶する。更に、ネットワークインターフェイス570及びデータ記憶装置560がバス580を経て互いに結合される。データ記憶装置560は、ここに述べる構造化データ(例えば、連絡先情報、カレンダー、等)を記憶する。
コンピューティングシステム500の種々のコンポーネントは、種々の実施形態において再配列され、そして幾つかの実施形態は、全ての前記コンポーネントを要求もしないし含みもしない。更に、付加的なプロセッサ(例えば、デジタル信号プロセッサ、グラフィックプロセッサ、等)、記憶装置、メモリ、ネットワーク/通信インターフェイス、等の付加的なコンポーネントがシステム500に含まれてもよい。
幾つかの実施形態において、上述した本発明によるプリヒート型ソフトウェアインストレーション又はソフトウェア更新のプリインストレーションのための方法及び装置は、図5のコンピューティングシステム500により実行される一連のソフトウェアルーチンとして具現化される。これらのソフトウェアルーチンは、ハードウェアシステムの処理システム、例えば、プロセッサ510により実行される複数の又は一連のインストラクションを含む。最初に、一連のインストラクションがデータ記憶装置560、メモリ520及び/又はフラッシュ530に記憶される。
ここに述べる種々のコンポーネントは、ここに述べるファンクションを遂行する手段である。ここに述べる各コンポーネントは、ソフトウェア、ハードウェア、又はそれらの組み合わせを含む。コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特殊目的ハードウェア(例えば、特定用途向けハードウェア、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、等)、埋め込み型コントローラ、ハードワイヤード回路、等として具現化することができる。ソフトウェアコンテンツ(例えば、データ、インストラクション、構成、等)は、実行できるインストラクションを表わすコンテンツを与えるコンピュータ読み取り可能な媒体を含む製造物品を経て提供される。コンテンツは、コンピュータがここに述べる種々のファンクション/オペレーションを遂行するようにさせる。コンピュータ読み取り可能な(又はマシン読み取り可能な又は電子的にアクセス可能な)媒体は、コンピューティング装置(例えば、コンピュータ、PDA、電子システム、等)によりアクセス可能な形態の情報を与える(即ち、記憶し及び/又は送信する)メカニズム、例えば、記録可能/記録不能な媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、等)を含む。コンテンツは、直接実行可能(「オブジェクト」又は「実行可能」な形態)なもの、ソースコード、等である。又、コンピュータ読み取り可能な媒体は、コンテンツをダウンロードできるところの記憶装置又はデータベースも含む。又、コンピュータ読み取り可能な媒体は、販売時又は納入時にコンテンツが記憶される装置又は製品も含む。従って、コンテンツが記憶された装置を納入すること、又は通信媒体を経てダウンロードするためのコンテンツを提供することは、ここに述べるコンテンツを製造物品に設けるものであると理解される。
以上に本発明を説明したが、ここに開示した本発明の実施形態及び具現化に対し本発明の範囲から逸脱せずに種々の変更がなされ得る。それ故、ここに述べた実施形態は、例示に過ぎず、それに限定されるものではない。本発明の範囲は、特許請求の範囲のみにより限定される。
400:コンピュータ読み取り可能な記憶装置
410:現在ファイルシステム
420:一時的エリア
425:更新に対して形成されたシステムキャッシュ
500:コンピューティングシステム
510:プロセッサ
520:メインメモリ
530:フラッシュ
540:I/O
560:データ記憶装置
570:ネットワークインターフェイス
580:バス

Claims (24)

  1. データ処理システムにより実行されたときに、データ処理システムが、
    コンピューティングシステムのソフトウェアに対する更新のパッケージを、コンピューティングシステムのコンピューティング環境の背景動作においてリモートソースからコンピューティングシステムへダウンロードし、
    前記更新のパッケージのインストールを、前記更新にコミットすることなく分離された仕方で前記背景動作において自動的に開始する、
    ことを含む方法を遂行するようにさせる実行可能なプログラムインストラクションを記憶するコンピュータ読み取り可能な記憶媒体。
  2. 前記方法は、更に、前記更新のユーザ承認の際に、前記更新のパッケージのインストールを完了させることにより前記ソフトウェア更新にコミットすることを含む、請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  3. 前記方法は、更に、
    前記更新のユーザ拒絶の際に、それまでに遂行された更新のパッケージのインストールをアンドゥし、
    前記ダウンロードされた更新のパッケージをコンピューティングシステムに保持する、
    ことを含む請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  4. 前記方法は、更に、
    前記更新のパッケージを解凍し、
    前記解凍されたパッケージを使用して前記コンピューティング環境の背景動作において一時的キャッシュを形成する、
    ことを含む請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  5. 前記更新のパッケージのインストールは、前記コンピューティングシステムのユーザに通知せずに開始される、請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  6. 前記更新のパッケージのインストールは、前記コンピューティングシステムのソフトウェアの現在バージョンを妨げることなく開始される、請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  7. コンピューティングシステムで現在実行されているプロセスを妨げることなくコンピューティングシステムのソフトウェアに対する更新のセットのインストールの一部分のみを遂行し、
    前記更新のセットのインストールの一部分を遂行した後にコンピューティングシステムのユーザに前記更新のセットを通知し、
    ユーザが前記更新のセットを承認するまでコンピューティングシステムの前記更新の全セットのインストールの完了を延期する、
    ことを含む、コンピュータで実施される方法。
  8. ユーザが、前記更新の全セットをインストールするのではなく、コンピューティングシステムにインストールすべき更新のセットのサブセットを選択するのを許し、
    インストールすべき更新のセットのサブセットをユーザが選択するのに応答して、それまで遂行されたインストールをアンドゥし、
    コンピューティングシステムで選択された更新のセットのサブセットのみを再インストールする、
    ことを更に含む請求項7に記載の方法。
  9. ユーザが更新の全セットを拒絶する場合には、それまで遂行されたインストールをアンドゥする、ことを更に含む請求項7に記載の方法。
  10. 前記更新のセットのインストールの一部分を遂行することは、
    前記コンピューティングシステムのコンピュータ読み取り可能な記憶装置の一時的エリアに前記更新のセットのためのシステムキャッシュを形成し、
    前記形成されたシステムキャッシュを、ユーザに応答して前記コンピューティングシステムの現在システムキャッシュとスワップする、
    ことを含む請求項7に記載の方法。
  11. ユーザが更新の全セットを許すのに応答して、コンピューティングシステムの現在システムキャッシュに置き換わるように、形成されたシステムキャッシュをスワップする、ことを更に含む請求項10に記載の方法。
  12. 前記ソフトウェアは、コンピューティングシステムの1つ以上のユーザアプリケーションを含む、請求項7に記載の方法。
  13. ソフトウェアのインストラクション及びデータを記憶するためのコンピュータ読み取り可能な記憶装置と、
    前記コンピュータ読み取り可能な記憶媒体に結合され、ネットワークを経てコンピューティングマシンに通信結合して、そのコンピューティングマシンからソフトウェアに対する更新をダウンロードするネットワークインターフェイスと、
    前記ネットワークインターフェイスに結合され、ソフトウェアの既存のインストラクション及びデータにオーバーライトすることなく、コンピュータ読み取り可能な記憶装置の予約エリアに更新をプリインストールする処理装置と、
    を備えた装置。
  14. 前記ダウンロードされた更新は、圧縮フォーマットの複数のパッケージを含み、前記処理装置は、前記複数のパッケージを解凍し、そして前記複数のパッケージをコンピュータ読み取り可能な記憶装置の予約エリアに記憶する、請求項13に記載の装置。
  15. 前記処理装置は、更に、前記コンピュータ読み取り可能な記憶装置の予約エリアにおける複数のパッケージを使用して複数のシステムキャッシュを形成し、それら複数のシステムキャッシュの各々は、1つ以上の更新の所定の組み合わせに対応する、請求項14に記載の装置。
  16. ディスプレイ装置を更に備え、前記処理装置は、このディスプレイ装置により表示されるユーザインターフェイスを発生して、ユーザに更新を通知する、請求項13に記載の装置。
  17. 更新のインストールを部分的又は全体的に承認するか或いは全ての更新を拒絶するユーザインストラクションを受け取るユーザ入力装置を更に備えた、請求項16に記載の装置。
  18. コンピューティングシステムの背景動作で実行されるプロセスを経てコンピューティングシステムのソフトウェアに対する更新を部分的にインストールし、
    前記更新を部分的にインストールした後にコンピューティングシステムのユーザに前記更新を通知し、
    ユーザが前記更新を承認するのに応答して、前記コンピューティングシステムの更新のインストールを完了する、
    ことを含む、コンピュータで実施される方法。
  19. 前記更新を部分的にインストールすることは、
    前記更新に関連したファイルを、リモートソースからダウンロードした複数のパッケージから抽出し、
    前記コンピューティングシステムのソフトウェアの現在バージョンのファイルから分離された1つ以上のディレクトリを一時的エリアに生成し、前記1つ以上のディレクトリのハイアラーキーが前記ソフトウェアの現在バージョンのファイルのハイアラーキーを鏡像化するようにし、
    前記更新に関連したファイルを前記1つ以上のディレクトリへコピーする、
    ことを含む請求項18に記載の方法。
  20. ユーザが前記更新の少なくとも1つを拒絶するのに応答して、その拒絶された更新に関連したファイルの1つ以上を削除する、ことを含む請求項19に記載の方法。
  21. ユーザが前記更新の全部を拒絶するのに応答して、それらの更新に関連した全てのファイル及び1つ以上のディレクトリを削除する、ことを含む請求項19に記載の方法。
  22. ユーザが前記更新の全部を承認するのに応答して、1つ以上のディレクトリを、記憶された更新に関連したファイルと共に、コンピューティングシステムの活動中ファイルシステムへ移動して、コンピューティングシステムのソフトウェアの現在バージョンに置き換わることを更に含む、請求項19に記載の方法。
  23. コンピューティングシステムに利用できるようになるソフトウェアに対する更新を検出する手段と、
    前記コンピューティングシステムのための更新を得る手段と、
    前記コンピューティングシステムへの更新のインストールに対するユーザの認知時間を短縮する手段と、
    を備えた装置。
  24. コンピューティングシステムへの更新のインストールに対するユーザの認知時間を短縮する前記手段は、
    コンピューティングシステムの背景動作中にコンピューティングシステムへ更新をプリインストールする手段と、
    前記更新のプリインストールの後にコンピューティングシステムのユーザに更新を通知する手段と、
    を含む請求項23に記載の装置。
JP2013542058A 2010-12-01 2011-11-22 プリヒート型ソフトウェアインストレーション Active JP5796755B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/958,236 2010-12-01
US12/958,236 US9378007B2 (en) 2010-12-01 2010-12-01 Pre-heated software installation
PCT/US2011/061908 WO2012074848A1 (en) 2010-12-01 2011-11-22 Pre-heated software installation

Publications (2)

Publication Number Publication Date
JP2013544416A true JP2013544416A (ja) 2013-12-12
JP5796755B2 JP5796755B2 (ja) 2015-10-21

Family

ID=45418769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013542058A Active JP5796755B2 (ja) 2010-12-01 2011-11-22 プリヒート型ソフトウェアインストレーション

Country Status (9)

Country Link
US (2) US9378007B2 (ja)
EP (1) EP2646907B1 (ja)
JP (1) JP5796755B2 (ja)
KR (2) KR101575695B1 (ja)
CN (2) CN103229144B (ja)
AU (1) AU2011336953B2 (ja)
BR (1) BR112013013286A2 (ja)
MX (1) MX336862B (ja)
WO (1) WO2012074848A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8505003B2 (en) 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US20130055234A1 (en) * 2011-08-30 2013-02-28 Verizon Patent And Licensing Inc. Media manager upgrading
US8826264B1 (en) * 2012-06-28 2014-09-02 Emc Corporation Non-disruptive upgrade of applications
US8855605B2 (en) 2012-09-25 2014-10-07 Dropbox Inc. Associating a particular account configuration during the out of box experience for a mobile device
US9727326B2 (en) 2013-03-15 2017-08-08 Apple Inc. Providing customized notifications for security software updates
US9672023B2 (en) 2013-03-15 2017-06-06 Apple Inc. Providing a unified update center for security software updates and application software updates
EP2827275A1 (en) * 2013-07-16 2015-01-21 Gemalto SA Method for transferring user data between two instances of an application
JP2015103105A (ja) 2013-11-26 2015-06-04 株式会社リコー 通信装置、通信システム、及び通信プログラム
JP2015103106A (ja) * 2013-11-26 2015-06-04 株式会社リコー 通信装置、及び通信プログラム
CN104092555B (zh) * 2013-12-04 2017-09-12 腾讯数码(天津)有限公司 一种更新参数值的方法、装置和系统
KR101651854B1 (ko) * 2013-12-26 2016-08-30 주식회사 엘지유플러스 푸시 메시지를 이용한 소프트웨어 업그레이드 방법 및 장치
CN104932916A (zh) * 2015-05-18 2015-09-23 杭州魔品科技有限公司 苹果应用快速安装方法
CN106557379B (zh) * 2015-09-30 2021-05-18 北京奇虎科技有限公司 一种静默安装包的生成方法和装置
US10067757B2 (en) * 2015-11-20 2018-09-04 Google Llc Dynamic update of an application in compilation and deployment with hot-swapping
US10209976B2 (en) 2015-12-30 2019-02-19 Dropbox, Inc. Automated application installation
WO2017139956A1 (zh) * 2016-02-18 2017-08-24 吴伟东 手机软件更新方法及系统
US10362013B2 (en) 2016-05-27 2019-07-23 Dropbox, Inc. Out of box experience application API integration
US10613849B2 (en) * 2016-09-23 2020-04-07 Visa International Service Association Update migration system and method
CN108733391A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 一种资源动态配置的方法和装置
US11379414B2 (en) * 2017-07-11 2022-07-05 Okera, Inc. Generation of data configurations for a multiple application service and multiple storage service environment
US10437580B2 (en) 2017-09-11 2019-10-08 Apple Inc. Software updating methods and systems
CN109413186B (zh) * 2018-10-31 2021-07-30 Oppo广东移动通信有限公司 应用程序更新方法、终端、服务器及系统
EP3915912A1 (en) * 2020-05-29 2021-12-01 KONE Corporation A people conveyor system and a method for updating software of a people conveyor component in a people conveyor system
CN112052022A (zh) * 2020-09-02 2020-12-08 深圳创维-Rgb电子有限公司 智能电视系统更新方法、装置、智能电视和可读存储介质
AU2022427252A1 (en) * 2021-12-31 2024-05-23 Lg Electronics Inc. Method for upgrading home appliance, and device for implementing same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148656A (ja) * 2005-11-25 2007-06-14 Fuji Xerox Co Ltd 情報処理装置、プログラム更新方法
JP2010191786A (ja) * 2009-02-19 2010-09-02 Fujitsu Ten Ltd 車載装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6437621A (en) * 1987-07-20 1989-02-08 Ibm Updating of program
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6282709B1 (en) 1997-11-12 2001-08-28 Philips Electronics North America Corporation Software update manager
US6167567A (en) 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6353926B1 (en) 1998-07-15 2002-03-05 Microsoft Corporation Software update notification
US6397385B1 (en) 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
EP1096374A2 (en) * 1999-11-01 2001-05-02 Citicorp Development Center, Inc. Method and system for simultancous and unattended installation of software on a self-service financial transaction terminal
EP1160666A3 (en) 2000-04-27 2005-03-23 Ncr International Inc. Switching versions of software in a system background
US7574481B2 (en) 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US7523142B2 (en) * 2001-12-17 2009-04-21 Sap Ag Systems, methods and articles of manufacture for upgrading a database with a shadow system
US7210143B2 (en) * 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
US7814476B2 (en) * 2002-10-31 2010-10-12 Oracle America, Inc. Systems and methods for updating software
US7607000B1 (en) 2003-05-13 2009-10-20 Apple Inc. Method for booting an operating system
US8555271B2 (en) * 2003-10-29 2013-10-08 Qualcomm Incorporated Method, software and apparatus for application upgrade during execution
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US20060075001A1 (en) 2004-09-30 2006-04-06 Canning Jeffrey C System, method and program to distribute program updates
US20060130045A1 (en) * 2004-11-19 2006-06-15 Jonathan Wesley Systems and methods for dynamically updating computer systems
US7716660B2 (en) * 2004-12-14 2010-05-11 Microsoft Corporation Method and system for downloading updates
US7581029B2 (en) * 2005-06-20 2009-08-25 Intel Corporation Updating machines while disconnected from an update source
CN1892587A (zh) * 2005-07-08 2007-01-10 福菱电子股份有限公司 一种嵌入式控制器及其更新固件的方法
US7970017B2 (en) 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
US8286159B2 (en) * 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US8578332B2 (en) * 2007-04-30 2013-11-05 Mark Murray Universal microcode image
US20080301667A1 (en) 2007-05-30 2008-12-04 Google Inc. Dynamically Updating Software Applications on a Device
CN101222534A (zh) * 2007-11-28 2008-07-16 连云港杰瑞深软科技有限公司 零售信息终端
US20090193409A1 (en) 2008-01-24 2009-07-30 Microsoft Corporation Per User Updates
JP2009217656A (ja) 2008-03-12 2009-09-24 Hitachi Ltd 情報機器におけるソフトウェア更新システム
US8694550B2 (en) 2008-06-06 2014-04-08 Apple Inc. Merging file directories
US8341384B2 (en) 2008-06-06 2012-12-25 Apple Inc. Installation of software onto a computer
US8200634B2 (en) * 2008-10-08 2012-06-12 Sap Ag Zero downtime maintenance using a mirror approach
US8484728B2 (en) * 2009-06-03 2013-07-09 Apple Inc. Managing securely installed applications
US8949737B2 (en) * 2009-10-28 2015-02-03 Red Hat, Inc. Centralized application package distribution
US20110265072A1 (en) 2010-04-27 2011-10-27 Jack Matthew Dynamic Installation of Files for Running Programs
US20110289499A1 (en) * 2010-05-19 2011-11-24 Microsoft Corporation Techniques to automatically update software applications
CN101895873B (zh) * 2010-07-14 2015-08-12 中兴通讯股份有限公司 移动终端的Java应用的更新方法、服务器和移动终端

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148656A (ja) * 2005-11-25 2007-06-14 Fuji Xerox Co Ltd 情報処理装置、プログラム更新方法
JP2010191786A (ja) * 2009-02-19 2010-09-02 Fujitsu Ten Ltd 車載装置

Also Published As

Publication number Publication date
EP2646907B1 (en) 2019-11-13
US10489146B2 (en) 2019-11-26
BR112013013286A2 (pt) 2016-09-06
US20160306621A1 (en) 2016-10-20
CN106201613A (zh) 2016-12-07
KR20130085052A (ko) 2013-07-26
CN103229144B (zh) 2016-06-01
WO2012074848A1 (en) 2012-06-07
AU2011336953A1 (en) 2013-05-09
CN103229144A (zh) 2013-07-31
KR101575695B1 (ko) 2015-12-08
US20120144382A1 (en) 2012-06-07
MX2013005599A (es) 2013-06-13
AU2011336953B2 (en) 2015-12-24
KR20150143871A (ko) 2015-12-23
JP5796755B2 (ja) 2015-10-21
EP2646907A1 (en) 2013-10-09
CN106201613B (zh) 2020-04-14
KR101723763B1 (ko) 2017-04-05
MX336862B (es) 2016-02-04
US9378007B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
JP5796755B2 (ja) プリヒート型ソフトウェアインストレーション
US10067835B2 (en) System reset
JP4901095B2 (ja) 不揮発性ストレージにカスタム・ソフトウェア・イメージ・アップデートを適用するフェイルセーフな方法
JP2001521254A (ja) モバイル・デバイスのアプリケーション・インストール管理システムおよび方法
US10282186B2 (en) Managing software suite component versions
TW201415365A (zh) 作業系統更新的方法及手持電子裝置
US20190340083A1 (en) Configurable recovery states
WO2019182797A1 (en) Free space pass-through
CN109960522B (zh) 一种软件升级方法及装置
JP7289940B2 (ja) プログラムのセット、記憶媒体、及び情報処理方法
JPH0793276A (ja) コンピュータの立ち上げ方式
US20220100480A1 (en) Repository dependency management
US20120284491A1 (en) Startup/shutdown sequence
WO2022182457A1 (en) Operating system partitioning of different users for single-user applications
Halsey et al. Installing Windows 10 on Your Computer
JP2014002600A (ja) プログラム、通信装置及びインストール方法
Halsey et al. Installing Windows 8.1 on Your Computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140826

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150512

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150805

R150 Certificate of patent or registration of utility model

Ref document number: 5796755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250