JP2015503812A - 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット - Google Patents

並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット Download PDF

Info

Publication number
JP2015503812A
JP2015503812A JP2014552230A JP2014552230A JP2015503812A JP 2015503812 A JP2015503812 A JP 2015503812A JP 2014552230 A JP2014552230 A JP 2014552230A JP 2014552230 A JP2014552230 A JP 2014552230A JP 2015503812 A JP2015503812 A JP 2015503812A
Authority
JP
Japan
Prior art keywords
version
successor
predecessor
computer application
application
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
JP2014552230A
Other languages
English (en)
Other versions
JP2015503812A5 (ja
JP6198229B2 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015503812A publication Critical patent/JP2015503812A/ja
Publication of JP2015503812A5 publication Critical patent/JP2015503812A5/ja
Application granted granted Critical
Publication of JP6198229B2 publication Critical patent/JP6198229B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

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)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

一実施形態において、アプリケーションアップデータは、システム又はプロセスの障害又は再起動を引き起こすことなく、コンピュータアプリケーションをクリーンに更新することができる。プロセッサは、コンピュータアプリケーションのプレデセサバージョンを実行することができる。プロセッサは、ユーザアカウントレベルで、コンピュータアプリケーションのサクセサバージョンをインストールすることができる。プロセッサは、コンピュータアプリケーションのサクセサバージョンを実行することができる。

Description

ソフトウェア開発者は、ユーザデバイス上のコンピュータプログラムを継続的にアップグレードすることができる。ユーザデバイスは、ソフトウェア開発者により管理されるサーバにコンタクトして、アップグレードが利用可能であるかどうかを確認することができる。アップグレードが利用可能である場合、ユーザデバイスは、ソフトウェアの新たなセクションをダウンロードすることができ、ユーザデバイス上に現在インストールされている既存のプログラムにこうしたセクションを付加することができる。
この概要は、詳細な説明において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するよう使用されることを意図するものでもない。
以下で説明する実施形態は、システム又はプロセスの障害又は再起動を引き起こすことなく、コンピュータアプリケーションをクリーンに更新することに関する。プロセッサは、コンピュータアプリケーションのプレデセサバージョン(predecessor version)を実行することができる。プロセッサは、ユーザアカウントレベルで、コンピュータアプリケーションのサクセサバージョン(successor version)をインストールすることができる。プロセッサは、コンピュータアプリケーションのサクセサバージョンを実行することができる。
上述した利点及び他の利点、並びに特徴を得ることができる態様を説明するために、添付の図面に例示される特定の実施形態を参照することにより、より詳細な記載が説明され提供される。これらの図面は典型的な実施形態のみを表すに過ぎず、したがって、その範囲を限定するものとして考えられるべきではないことを理解されたい。添付の図面を使用することにより、実施例が、追加的な具体性及び詳細さをもって記載され説明される。
コンピュータネットワークの一実施形態のブロック図を示す。 コンピューティングデバイスの一実施形態のブロック図を示す。 更新サービスの一実施形態のデータフロー図を示す。 コンピュータアプリケーションの更新の一実施形態のブロック図を示す。 データストレージレイアウトの一実施形態のブロック図を示す。 コンピュータアプリケーションをアップグレードする方法の一実施形態のフローチャートを示す。
実施形態について、以下で詳細に説明する。特定の実施例について説明されるが、これは例示の目的で説明されるに過ぎないことを理解すべきである。当業者は、本開示の主題の精神及び範囲から逸脱することなく、他のコンポーネント及び構成を使用できることを認識するであろう。実施例は、マシンにより実施される方法であってもよいし、少なくとも1つのプロセッサのための、方法を詳述する命令のセットを記憶した有体のマシン読み取り可能な媒体であってもよいし、又は、コンピューティングデバイスのアプリケーションアップデータ(application updater)であってもよい。
コンピュータデバイスは、コンピュータデバイスの各ユーザについて、ユーザアカウントを維持することができる。ユーザアカウントは、コンピュータデバイスの他のユーザによるアクセスから、所定のデータファイルを保護することができる。アプリケーションアップデータは、従来のマシン単位に加えて、ユーザ単位で、コンピュータアプリケーションを更新することができる。ユーザ単位の更新では、マシンにおける他のユーザアカウントではなく、あるユーザアカウントについてコンピュータアプリケーションを更新することができる。ユーザアカウントは、マシンレベルでインストールするユーザアカウントのユーザ権限を引き上げることができる。
アプリケーションアップデータが起動するたびに、アプリケーションアップデータは、新たなディレクトリ及びデータストレージロケーションにおいて更新を抽出することができる。したがって、マシンの再起動を引き起こすファイル使用中問題(file-in-use problem)を取り除くことができる。さらに、マシン上に以前にインストールされたコンピュータアプリケーションの他のバージョンと干渉することなく、コンピュータアプリケーションの異なるバージョンを共存させてインストールすることができ、コンピュータアプリケーションのスムーズなパフォーマンスに対する問題を引き起こすことなく、コンピュータアプリケーションをサイレントに(silently)に更新させることが可能である。アプリケーションアップデータは、コンピュータアプリケーションの同一のバージョン又はより新しいバージョンを、現在のバージョンと干渉することなく、コンピュータアプリケーションのインストール、再インストール、又は修復の一部としてインストールすることができる。利用可能なバージョンがより古いバージョンである場合、アプリケーションアップデータは、コンピュータアプリケーションをダウングレードすることを防止するために、ヌル操作(null operation)を実行することができる。アプリケーションアップデータは、複数のコンピュータアプリケーションを並列的にインストールすることができる。
したがって、一実施形態において、アプリケーションアップデータは、システム又はプロセスの障害又は再起動を引き起こすことなく、コンピュータアプリケーションをクリーンに更新することができる。プロセッサは、コンピュータアプリケーションのプレデセサバージョンを実行することができる。プロセッサは、ユーザアカウントレベルで、コンピュータアプリケーションのサクセサバージョンをインストールすることができる。プロセッサは、コンピュータアプリケーションのサクセサバージョンを実行することができる。
図1は、コンピュータネットワーク100の一実施形態のブロック図を示している。ユーザデバイス110は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、又は他のコンピューティングデバイスとすることができる。ユーザデバイス110は、コンピュータアプリケーション112を実行することができる。コンピュータアプリケーション112は、ユーザデバイス110により実行される任意のソフトウェアプログラム又はファームウェアプログラムとすることができる。コンピュータアプリケーション112は、コンピュータアプリケーション112の反復(iteration)を示すバージョンを有することができる。コンピュータアプリケーション112は、データネットワーク接続130を介してアプリケーションサーバ120に接続されるアップデータモジュール114を有することができる。データネットワーク接続130は、ローカルエリアネットワーク接続であってもよいし、インターネット接続であってもよいし、モバイルネットワーク接続であってもよいし、又は、他のネットワーク接続であってもよい。アップデータモジュール114は、コンピュータアプリケーション112の新たなバージョンが利用可能であるかどうかを確認するために、アプリケーションサーバ120に問い合わせることができる。プレデセサバージョンが、ユーザデバイス上で現在実行されているコンピュータアプリケーション112のバージョンである。サクセサバージョンが、コンピュータアプリケーション112の新たなバージョンである。アップデータモジュール114は、プレデセサバージョンと置き換えるために、サクセサバージョンをダウンロードすることができる。
図2は、アプリケーションアップデータとして動作することができる例示的なコンピューティングデバイス200のブロック図を示している。コンピューティングデバイス200は、アプリケーションアップデータを実装するために、ハードウェア、ソフトウェア、ファームウェア、及びシステムオンチップ技術の1以上を組み合わせることができる。コンピューティングデバイス200は、バス210、プロセッサ220、メモリ230、リードオンリメモリ(ROM)240、ストレージデバイス250、入力デバイス260、出力デバイス270、及び通信インターフェース280を含み得る。バス210により、コンピューティングデバイス200のコンポーネント間での通信が可能となる。
プロセッサ220は、命令のセットを解釈し実行する少なくとも1つの従来型のプロセッサ又はマイクロプロセッサを含み得る。メモリ230は、ランダムアクセスメモリ(RAM)であってもよいし、又は、プロセッサ220により実行される情報及び命令を記憶する別のタイプの動的なストレージデバイスであってもよい。メモリ230は、プロセッサ220による命令の実行中に使用される一時変数又は他の中間情報を記憶することもできる。ROM240は、従来型のROMデバイス、又は、プロセッサ220のための静的な情報及び命令を別のタイプの静的なストレージデバイスを含み得る。ストレージデバイス250は、例えば、磁気記録媒体又は光記録媒体及びその対応するドライブといった任意のタイプの有体のマシン読み取り可能な媒体を含み得る。有体のマシン読み取り可能な媒体は、トランジトリな媒体又は信号ではなく、マシン読み取り可能なコード又は命令を記憶する物理媒体である。ストレージデバイス250は、方法を詳述した命令のセットを記憶することができ、命令のセットは、1以上のプロセッサにより実行されるときに、1以上のプロセッサに前述の方法を実行させる。
入力デバイス260は、キーボード、マウス、音声認識デバイス、マイクロフォン、ヘッドセットなど、ユーザが情報をコンピューティングデバイス200に入力することを可能にする1以上の従来型の機構を含み得る。出力デバイス270は、ディスプレイ、プリンタ、1以上のスピーカ、ヘッドセット、又は、メモリ若しくは磁気ディスク若しくは光ディスク及び対応するディスクドライブなどの媒体など、ユーザに情報を出力する1以上の従来型の機構を含み得る。通信インターフェース280は、コンピューティングデバイス200が他のデバイス又はネットワークと通信することを可能にするトランシーバのような機構を含み得る。通信インターフェース280は、ネットワークインターフェース又はトランシーバインターフェースを含み得る。通信インターフェース280は、無線インターフェースであってもよいし、有線インターフェースであってもよいし、又は光インターフェースであってもよい。
コンピューティングデバイス200は、例えば、メモリ230、磁気ディスク、又は光ディスクといったコンピュータ読み取り可能な媒体に含まれる一連の命令をプロセッサ220が実行することに応じて、そのような機能を実行することができる。そのような命令は、ストレージデバイス250などの別のコンピュータ読み取り可能な媒体からメモリ230に読み込まれてもよいし、または、通信インターフェース280を介して別個のデバイスからメモリ230に読み込まれてもよい。
図3は、コンピュータアプリケーション112に関する更新サービス300の一実施形態のデータフロー図を示している。開始時、コンピュータアプリケーション112の現在のバージョン302は、アップデータモジュール114に、アプリケーションサーバ120からの更新を要求するよう命令することができる。アプリケーションサーバ120は、更新パッケージをアップデータモジュール114に送信することができる。更新パッケージは、更新マニフェスト(update manifest)304と、コンピュータアプリケーション112の現在のバイナリ306とを有し得る。更新マニフェスト304は、インストールされるファイルのリストである。更新マニフェスト304は、ファイルパス、ファイルサイズ、任意のレジストリキー、及び各ファイルについての任意のエラーチェッキング機構を記述することができる。更新マニフェスト304は、拡張マークアップ言語(XML)フォーマットであってよい。現在のバイナリ306は、コンピュータアプリケーション112に関する実行可能ファイル、又は、デジタルリンクライブラリといった関連ファイルである。アップデータモジュール114は、更新パッケージを使用して、インストールのためのインストーラモジュール308を作成することができる。
図4は、コンピュータアプリケーションの更新400の一実施形態のブロック図を示している。アプリケーションサーバ120から送信される更新パッケージ402は、インストーラコード404、ニュートラルリソース(neutral resource)406のセット、ローカライズ可能なリソース408のセット、及びペイロード410を有し得る。インストーラコード404は、ユーザデバイス上にインストーラモジュール308をインスタンス化する。ニュートラルリソース406のセットは、インストール中に表示されるアイコン、ローカライズ不可能な文字列、及びローカライズ不可能な画像といった、インストール中に使用される一般的なリソースのセットである。ローカライズ可能なリソース408のセットは、メッセージ、プロンプト、及び音といった、インストール中に使用される言語固有のリソースのセットである。ペイロード410は、更新マニフェスト304及び現在のバイナリ306であり得る。
図5は、データストレージレイアウト500の一実施形態のブロック図を示している。ユーザデバイス100は、複数のユーザに対する複数のユーザアカウントをサポートし得る。ユーザアカウントは、他のユーザからパスワードで保護され得る。データストレージデバイス250は、複数のユーザに関する複数のアプリケーションプロファイルを記憶することができる。第1のユーザは、コンピュータアプリケーション112を更新することができるのに対し、第2のユーザは、更新をなしで済ませることができる。管理者502は、各ユーザアカウントについて、コンピュータアプリケーション112を更新することができる。プライマリユーザアカウント504は、コンピュータアプリケーションの更新を実行しているユーザアカウントである。セカンダリユーザアカウント506は、コンピュータアプリケーションの更新をアクティブには実行していないユーザアカウントである。セカンダリユーザアカウント506は、アクティブであってもよいし、又は、休眠状態であってもよい。
データストレージ250は、コンピュータアプリケーションのプレデセサバージョン508をプレデセサロケーション510に記憶することができる。プライマリユーザアカウント504は、プレデセサバージョン508を参照するプライマリファイルネーム512をプライマリネームデータストレージロケーション514に記憶することができる。ファイルネームは、データファイルへのハードリンクである。プライマリファイルネーム512は、プレデセサバージョン508へのハードリンクであり得る。プレデセサバージョン508は、管理者アカウント502により変更されない限り、不変なものであり得る。プライマリユーザアカウント504は、ユーザアカウントレベルで、コンピュータアプリケーション112のユーザサクセサバージョン516をインストールすることができる。ユーザアカウントレベルインストールでは、プライマリユーザアカウント504のためのユーザサクセサバージョン516をインストールするが、セカンダリユーザアカウント506に対する更新はなしで済ませる。プライマリユーザアカウント504は、ユーザサクセサバージョン516を、クリーンユーザサクセサデータストレージロケーション518に配置することができる。クリーンデータストレージロケーションは、その位置に記憶されたコンピュータアプリケーション112のバージョンを現在有していない。コンピュータアプリケーション112のバージョンがデータストレージロケーションに存在し、その後デレジスタリング(deregistering)などにより従来のように消去された場合であっても、データストレージロケーションは、クリーンであると考えられ得る。ユーザサクセサバージョン516は、コンピュータアプリケーション112の完全なサクセサバージョンであり得る。完全なサクセサバージョンは、プレデセサバージョンと比較されておらず、オーバーラッピングセクションが取り除かれていないサクセサバージョンである。プライマリファイルネーム512は、ユーザサクセサバージョン516へのハードリンクに上書きされ得る。
セカンダリユーザアカウント506は、コンピュータアプリケーション112のセカンダリファイルネーム520をセカンダリネームデータストレージロケーション522に記憶することができる。セカンダリファイルネーム520は、プレデセサバージョン508へのハードリンクであり得る。プライマリファイルネーム512が、ユーザサクセサバージョン516へのハードリンクになった場合でも、セカンダリファイルネーム520は、プレデセサバージョン508へのハードリンクを維持することができる。
管理者アカウント502は、マシンレベルで、プレデセサバージョン508をコンピュータアプリケーション112の管理者サクセサバージョン524と置き換えることができる。管理者アカウント502は、管理者サクセサバージョン524をクリーン管理者サクセサデータストレージロケーション526に配置することができる。オペレーティングシステムは、マシンレベルで更新するために、ユーザアカウントのユーザステータスを管理者権限に引き上げることができる。マシンレベルでの更新では、サクセサバージョンを、ユーザデバイス110上の各ユーザアカウントに対してインストールする。管理者アカウント502は、プライマリファイルネーム512及びセカンダリファイルネーム520を、管理者サクセサバージョン524へのハードリンクに再設定することができる。
図6は、コンピュータアプリケーション112をアップグレードする方法600の一実施形態のフローチャートを示している。アプリケーションアップデータは、コンピュータアプリケーション112のプレデセサバージョン508を実行することができる(ブロック602)。アプリケーションアップデータは、ユーザの目に見えないように、アップデータモジュール114を実行することができる(ブロック604)。アプリケーションアップデータは、プレデセサバージョン508を無視するアップデータモジュール114を用いて、完全なサクセサバージョン516をダウンロードすることができる(ブロック606)。インストールがマシン単位の場合(ブロック608)、アプリケーションアップデータは、ユーザステータスを管理者権限に引き上げることができる(ブロック610)。アプリケーションアップデータは、マシンレベルで、コンピュータアプリケーション112の完全なサクセサバージョン524をインストールすることができる(ブロック612)。インストールがユーザ単位の場合(ブロック608)、アプリケーションアップデータは、ユーザアカウントレベルで、コンピュータアプリケーションの完全なサクセサバージョン516をインストールすることができる(ブロック614)。アプリケーションアップデータは、完全なサクセサバージョン516のインストールが実行される間に、プレデセサバージョン508の実行を維持することができる(ブロック616)。アプリケーションアップデータは、完全なサクセサバージョン516をクリーンサクセサデータストレージロケーション514に配置することができる(ブロック618)。アプリケーションアップデータは、コンピュータアプリケーション112のプレデセサバージョン508及び完全なサクセサバージョン516を同時に実行することができる(ブロック620)。アプリケーションアップデータは、プレデセサバージョン508から完全なサクセサバージョン516への切り替えを実行することができる(ブロック622)。アプリケーションアップデータは、切り替えの間、コンピュータアプリケーション112のユーザインターフェースのプレゼンテーション(presentation)を維持することができる(ブロック624)。アプリケーションアップデータは、プレデセサバージョン508のアンインストール操作をスケジュールすることができる(ブロック626)。アンインストール操作がシステム再起動の間にスケジュールされている場合(ブロック628)、アプリケーションアップデータは、システム再起動の間に、プレデセサバージョン508をアンインストールすることができる(ブロック630)。そうでなければ、アプリケーションアップデータは、完全なサクセサバージョン516を実行している間に、プレデセサバージョン508をアンインストールすることができる(ブロック632)。
主題が、構造的特徴及び/又は方法論的動作に特有の言葉で説明されてきたが、添付の特許請求の範囲における主題は、上述した特定の特徴又は動作に必ずしも限定される必要はないことを理解すべきである。むしろ、上述した特定の特徴及び動作は、請求項を実施するための例示的な形態として開示されたものである。
本発明の範囲内にある実施形態はまた、記憶されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有する非トランジトリなコンピュータ読み取り可能な記憶媒体を含み得る。そのような非トランジトリなコンピュータ読み取り可能な記憶媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体とすることができる。限定ではなく、例として、そのような非トランジトリなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD−ROM、若しくは他の光ディスクストレージデバイス、磁気ディスクストレージデバイス、若しくは他の磁気ストレージデバイス、又は、コンピュータ実行可能命令又はデータ構造の形態の所望のプログラムコード手段を運ぶ又は記憶するために使用され得る任意の他の媒体を含み得る。上記の組合せもまた、非トランジトリなコンピュータ読み取り可能な記憶媒体の範囲内に含まれるべきでる。
実施形態はまた、タスクが通信ネットワークを介して(有線リンク、無線リンク、又はそれらの組合せにより)リンクされるローカル処理デバイス及びリモート処理デバイスにより実行される分散コンピューティング環境においても実行され得る。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに所定の機能又は機能の一群を実行させる命令及びデータを含む。コンピュータ実行可能命令はまた、スタンドアロン環境又はネットワーク環境におけるコンピュータにより実行されるプログラムモジュールも含む。一般に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、及びデータ構造などを含む。コンピュータ実行可能命令、関連するデータ構造、及びプログラムモジュールは、本明細書で開示した方法のステップを実行するプログラムコード手段の例を表す。特定の一連のそのような実行可能命令又は関連するデータ構造は、そのようなステップにおいて記載される機能を実装する対応する動作の例を表す。
上記の説明は、特定の詳細を含み得るが、そのような詳細は、請求項を限定するものとして解釈すべきではない。説明した実施形態の他の構成も、本開示の範囲の一部である。例えば、本開示の原理を各個別のユーザに適用することができ、各ユーザは、個別にそのようなシステムを展開することができる。多数の可能な用途のいずれか1つが本明細書で説明した機能を使用しない場合であっても、これにより、各ユーザは、本開示の利点を利用することが可能となる。電子デバイスの多くの例の各々が、様々な形で、本内容を処理することができる。実施例は、必ずしも、全てのエンドユーザにより使用される一システムに含まれる必要はない。したがって、提供された特定の例ではなく、添付の請求項及びその正当な均等な構成だけが、本発明を定めるべきである。

Claims (10)

  1. マシンにより実施される方法であって、
    コンピュータアプリケーションのプレデセサバージョンを実行するステップと、
    ユーザアカウントレベルで、前記コンピュータアプリケーションのサクセサバージョンをインストールするステップと、
    前記コンピュータアプリケーションの前記サクセサバージョンを実行するステップと、
    を含む、方法。
  2. アップデータモジュールを用いて、完全なサクセサバージョンをダウンロードするステップと、
    ユーザの目に見えないように、前記アップデータモジュールを実行するステップと、
    をさらに含む、請求項1記載の方法。
  3. 前記サクセサバージョンのインストールが実行される間に、前記プレデセサバージョンの実行を維持するステップ
    をさらに含む、請求項1記載の方法。
  4. 前記プレデセサバージョンから前記サクセサバージョンへの切り替えを実行するステップと、
    前記切り替えの間、前記コンピュータアプリケーションのユーザインターフェースのプレゼンテーションを維持するステップと、
    をさらに含む、請求項1記載の方法。
  5. 前記プレデセサバージョン及び前記サクセサバージョンを同時に実行するステップ
    をさらに含む、請求項1記載の方法。
  6. システム再起動の間に、前記プレデセサバージョンのアンインストール操作をスケジュールするステップ
    をさらに含む、請求項1記載の方法。
  7. 前記サクセサバージョンを実行している間に、前記プレデセサバージョンをアンインストールするステップ
    をさらに含む、請求項1記載の方法。
  8. 方法を詳述した命令のセットを記憶した有体のマシン読み取り可能な媒体であって、前記命令のセットが1以上のプロセッサにより実行されるときに、前記命令のセットは前記1以上のプロセッサに前記方法を実行させ、前記方法は、
    コンピュータアプリケーションのプレデセサバージョンを実行するステップと、
    前記プレデセサバージョンを無視するアップデータモジュールを用いて、完全なサクセサバージョンをダウンロードするステップと、
    前記コンピュータアプリケーションの前記完全なサクセサバージョンをクリーンサクセサデータストレージロケーションに配置するステップと、
    を含む、有体のマシン読み取り可能な媒体
  9. コンピュータアプリケーションの完全なサクセサバージョンをダウンロードする通信インターフェースと、
    前記コンピュータアプリケーションのプレデセサバージョンをプレデセサデータストレージロケーションに記憶し、前記完全なサクセサバージョンをクリーンサクセサデータストレージロケーションに記憶するデータストレージと、
    前記プレデセサバージョンを実行し、ユーザアカウントレベルで、前記コンピュータアプリケーションの前記完全なサクセサバージョンをインストールするプロセッサと、
    を備えた、アプリケーションアップデータ。
  10. 前記完全なサクセサバージョンのインストールが実行される間に、前記プロセッサは、前記プレデセサバージョンの実行を維持する、請求項9記載のアプリケーションアップデータ。
JP2014552230A 2012-01-15 2013-01-07 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット Active JP6198229B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/350,810 US8893116B2 (en) 2012-01-15 2012-01-15 Installation engine and package format for parallelizable, reliable installations
US13/350,810 2012-01-15
PCT/US2013/020519 WO2013106276A1 (en) 2012-01-15 2013-01-07 Installation engine and package format for parallelizable, reliable installations

Publications (3)

Publication Number Publication Date
JP2015503812A true JP2015503812A (ja) 2015-02-02
JP2015503812A5 JP2015503812A5 (ja) 2016-02-18
JP6198229B2 JP6198229B2 (ja) 2017-09-20

Family

ID=48780903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014552230A Active JP6198229B2 (ja) 2012-01-15 2013-01-07 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット

Country Status (11)

Country Link
US (2) US8893116B2 (ja)
EP (1) EP2805233B1 (ja)
JP (1) JP6198229B2 (ja)
KR (1) KR102052776B1 (ja)
CN (1) CN104040495A (ja)
AU (1) AU2013208296B2 (ja)
BR (1) BR112014017283B1 (ja)
CA (1) CA2860657C (ja)
MX (1) MX337871B (ja)
RU (1) RU2635891C2 (ja)
WO (1) WO2013106276A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2508599A (en) * 2012-12-04 2014-06-11 Ibm Software version management when downgrading software
US9639342B2 (en) * 2013-05-01 2017-05-02 Starkey Laboratories, Inc. Unobtrusive firmware updates for hearing assistance devices
CN103442077A (zh) * 2013-09-04 2013-12-11 珠海金山网络游戏科技有限公司 一种软件客户端通过网络进行更新的方法及系统
CN108733517A (zh) * 2018-06-05 2018-11-02 深圳忆联信息系统有限公司 Ssd固件升级保护方法及装置
CN109933465B (zh) * 2019-03-12 2021-12-10 北京同城必应科技有限公司 异常处理方法、装置、服务器和存储介质
CN111769966B (zh) * 2020-05-08 2023-06-23 厦门亿联网络技术股份有限公司 一种克隆升级方法、系统和应用
WO2024010177A1 (ko) * 2022-07-04 2024-01-11 삼성전자 주식회사 보안 회로의 애플릿을 갱신하기 위한 전자 장치 및 그의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954734A (ja) * 1995-08-17 1997-02-25 Fujitsu Ltd ネットワークを活用したソフトウェア流通・保守システムおよび方法
JPH1145179A (ja) * 1997-07-25 1999-02-16 Digital Vision Lab:Kk プログラム管理方法
US20090193409A1 (en) * 2008-01-24 2009-07-30 Microsoft Corporation Per User Updates
WO2009153917A1 (ja) * 2008-06-18 2009-12-23 富士通株式会社 仮想計算機システム、仮想計算機システムを提供する情報処理装置およびプログラム

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835911A (en) * 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
US5764992A (en) * 1995-06-06 1998-06-09 Apple Computer, Inc. Method and apparatus for automatic software replacement
US5966715A (en) * 1995-12-29 1999-10-12 Csg Systems, Inc. Application and database security and integrity system and method
US5732275A (en) * 1996-01-11 1998-03-24 Apple Computer, Inc. Method and apparatus for managing and automatically updating software programs
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US6141683A (en) * 1998-01-30 2000-10-31 Lucent Technologies, Inc. Method for remotely and reliably updating of the software on a computer with provision for roll back
US6463352B1 (en) * 1999-01-21 2002-10-08 Amada Cutting Technologies, Inc. System for management of cutting machines
US6385623B1 (en) * 1999-11-12 2002-05-07 Dell Usa, L.P. System and method for ensuring proper execution of scheduled file updates
US7287259B2 (en) * 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US6711557B1 (en) * 2000-08-14 2004-03-23 Adobe Systems Incorporated Client-based background update monitoring
US20040003266A1 (en) 2000-09-22 2004-01-01 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US20040133606A1 (en) * 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
TW518513B (en) * 2001-03-28 2003-01-21 Synq Technology Inc System and method to update an executing application software by modular way
US7100158B2 (en) * 2002-04-30 2006-08-29 Toshiba Tec Kabushiki Kaisha Program management apparatus, program management system, and program management method
US20040010786A1 (en) * 2002-07-11 2004-01-15 Microsoft Corporation System and method for automatically upgrading a software application
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7089548B2 (en) * 2003-01-13 2006-08-08 Taiwan Semiconductor Manufacturing Company, Ltd. Method and system for nondisruptive deployment during upgrading of enterprise systems
US7228541B2 (en) * 2003-01-17 2007-06-05 National Instruments Corporation Creation of application system installer
US7546594B2 (en) * 2003-12-15 2009-06-09 Microsoft Corporation System and method for updating installation components using an installation component delta patch in a networked environment
JP2005301500A (ja) * 2004-04-08 2005-10-27 Fujitsu Ltd 情報処理装置
US7664834B2 (en) * 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US20060075001A1 (en) * 2004-09-30 2006-04-06 Canning Jeffrey C System, method and program to distribute program updates
JP2006119901A (ja) 2004-10-21 2006-05-11 Toshiba Corp 携帯可能電子装置および携帯可能電子装置のアプリケーション更新方法
US20110197114A1 (en) * 2004-12-08 2011-08-11 John Martin Electronic message response and remediation system and method
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US7774195B2 (en) * 2005-03-08 2010-08-10 Microsoft Corporation Method and system for creating, storing, managing and consuming culture specific data
JP2006268752A (ja) * 2005-03-25 2006-10-05 Seiko Epson Corp 複数のバージョンに対応したモジュールの起動
US20060271926A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Split download for electronic software downloads
US7516422B2 (en) * 2005-07-21 2009-04-07 International Business Machines Corporation Graphical display of hierarchical hardlinks to files in a file system
SE529676C2 (sv) * 2006-03-02 2007-10-23 Abb Ab En metod för att utvärdera en applikation, ett automationssystem och en styrenhet
US8726267B2 (en) * 2006-03-24 2014-05-13 Red Hat, Inc. Sharing software certification and process metadata
JP4946141B2 (ja) * 2006-04-11 2012-06-06 ブラザー工業株式会社 構成変更プログラム、および情報処理装置
US8769522B2 (en) * 2006-08-21 2014-07-01 Citrix Systems, Inc. Systems and methods of installing an application without rebooting
US20080301660A1 (en) * 2007-05-30 2008-12-04 Google Inc. Maintaining Multiple Versions of a Software Application on a Device
US20090259999A1 (en) * 2008-04-11 2009-10-15 Oracle International Corporation Method and system for applying a patch during application execution
US8561087B2 (en) * 2008-07-16 2013-10-15 Sandisk Il Ltd. Methods for enabling software in storage-capable devices
US20100058321A1 (en) * 2008-09-04 2010-03-04 Anderson Greg L Approach for deploying software to network devices
JP2010198383A (ja) * 2009-02-25 2010-09-09 Fujitsu Ltd ストレージ装置、ソフトウェア更新方法およびソフトウェア更新プログラム
US20100242037A1 (en) 2009-03-17 2010-09-23 Microsoft Corporation Software Deployment over a Network
WO2010116676A1 (ja) * 2009-03-30 2010-10-14 日本電気株式会社 サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム
WO2010141922A1 (en) * 2009-06-04 2010-12-09 Abbott Diabetes Care Inc. Method and system for updating a medical device
US20110289499A1 (en) * 2010-05-19 2011-11-24 Microsoft Corporation Techniques to automatically update software applications
CN102299940A (zh) * 2010-06-25 2011-12-28 龚华清 一种不间断网络服务的软件升级方法
US20120137278A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Generating a customized set of tasks for migration of a deployed software solution
US8726103B2 (en) 2010-12-07 2014-05-13 At & T Intellectual Property I, Lp Visual outage management tool
US9733921B1 (en) * 2014-01-23 2017-08-15 NetSuite Inc. System and methods for management of cloud application extensions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954734A (ja) * 1995-08-17 1997-02-25 Fujitsu Ltd ネットワークを活用したソフトウェア流通・保守システムおよび方法
JPH1145179A (ja) * 1997-07-25 1999-02-16 Digital Vision Lab:Kk プログラム管理方法
US20090193409A1 (en) * 2008-01-24 2009-07-30 Microsoft Corporation Per User Updates
WO2009153917A1 (ja) * 2008-06-18 2009-12-23 富士通株式会社 仮想計算機システム、仮想計算機システムを提供する情報処理装置およびプログラム

Also Published As

Publication number Publication date
WO2013106276A1 (en) 2013-07-18
EP2805233B1 (en) 2022-11-16
RU2014128842A (ru) 2016-02-10
MX2014008561A (es) 2014-09-26
CA2860657A1 (en) 2013-07-18
AU2013208296A1 (en) 2014-07-31
US20130185709A1 (en) 2013-07-18
KR102052776B1 (ko) 2019-12-05
EP2805233A1 (en) 2014-11-26
BR112014017283B1 (pt) 2021-08-17
MX337871B (es) 2016-03-22
AU2013208296B2 (en) 2018-03-15
KR20140113685A (ko) 2014-09-24
US8893116B2 (en) 2014-11-18
CA2860657C (en) 2020-10-13
EP2805233A4 (en) 2015-08-26
JP6198229B2 (ja) 2017-09-20
US20150067668A1 (en) 2015-03-05
BR112014017283A8 (pt) 2017-12-12
RU2635891C2 (ru) 2017-11-16
BR112014017283A2 (pt) 2017-06-13
CN104040495A (zh) 2014-09-10

Similar Documents

Publication Publication Date Title
US20210349706A1 (en) Release lifecycle management system for multi-node application
JP6198229B2 (ja) 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット
US9471365B2 (en) Techniques for performing virtual machine software upgrades using virtual disk swapping
AU2012276003B2 (en) Virtual machine migration tool
US8336043B2 (en) Dynamic deployment of custom code
US20160274896A1 (en) System and method for upgrading kernels in cloud computing environments
US9690567B2 (en) Runtime detection of software configurations and upgrades
CA2875828C (en) Auto-update while running client interface with handshake
US8667486B2 (en) Automatic provisioning of a software platform to a device ecosystem
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
US10394619B2 (en) Signature-based service manager with dependency checking
CN116069366A (zh) 客户端应用程序更新方法及装置、存储介质及电子设备
US20170293504A1 (en) Dynamically provisioning, managing, and executing tasks
CN105912352A (zh) 一种移动终端升级的方法和终端
US11442710B2 (en) Repository dependency management
JP2014002600A (ja) プログラム、通信装置及びインストール方法
CN113608773A (zh) 升级更新组件的方法、装置及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170303

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: 20170718

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20170815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170816

R150 Certificate of patent or registration of utility model

Ref document number: 6198229

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