JP2011529606A - カスタマイズを伴うコンピュータアプリケーションパッケージ - Google Patents

カスタマイズを伴うコンピュータアプリケーションパッケージ Download PDF

Info

Publication number
JP2011529606A
JP2011529606A JP2011521183A JP2011521183A JP2011529606A JP 2011529606 A JP2011529606 A JP 2011529606A JP 2011521183 A JP2011521183 A JP 2011521183A JP 2011521183 A JP2011521183 A JP 2011521183A JP 2011529606 A JP2011529606 A JP 2011529606A
Authority
JP
Japan
Prior art keywords
resource
version
application
resources
application package
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
JP2011521183A
Other languages
English (en)
Other versions
JP5373900B2 (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 JP2011529606A publication Critical patent/JP2011529606A/ja
Application granted granted Critical
Publication of JP5373900B2 publication Critical patent/JP5373900B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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
    • G06F9/44536Selecting among different versions

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)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

仮想環境内でオペレーションされるアプリケーションは、様々なソフトウェア構成要素を含むパッケージで構成することができる。各ソフトウェア構成要素またはリソースは、構成要素を上書きするかまたは修正するための指示子を含む、特定の名前及び他のメタデータを有することができる。ポリシーは、特定のソフトウェア構成要素に対するあらゆる変更を指示子に基づいて保存し、かつ取り出すことができる方法を定義することができる。1つまたは複数の変更された構成要素のセットを、生成し、保持し、再適用して、オリジナルのパッケージに基づくアプリケーションのカスタマイズされたバージョンを作成することができる。アプリケーションは、仮想アプリケーション環境内でまたは専用の仮想マシン環境内でオペレーションすることができる。

Description

本発明は、カスタマイズを伴うコンピュータアプリケーションパッケージに関する。
アプリケーションは、機能またはサービスを実行するどのようなタイプのコンピュータソフトウェアとすることができる。多くの場合、アプリケーションは、ユーザが作業を実行できるようにするソフトウェアシステムとすることができる。該作業には、例えば、ワードプロセッシング、プレゼンテーションの準備及び表示、または会計の追跡及び分析などがある。かかるソフトウェアシステムは、いくつかの異なる種類のファイル及び他のリソースを有することができる。これらには、実行ファイル、スクリプト、動的にリンクされたライブラリ、メタデータ、レジストリ設定、及び該アプリケーションのサービスまたは機能を提供するために協働する他のリソースが含まれる。
多くのアプリケーションは、カスタマイズすることができる要素を有する。例えば、ユーザインタフェースは、特定のルックアンドフィールで構成することができ、特定の機能は、特定の方法で動作できてもよいし、特定の方法で動作できなくてもよいし、または特定の方法で動作するよう構成されていてもよい。
仮想環境内でオペレーションされるアプリケーションは、様々なソフトウェア構成要素を含むパッケージで構成することができる。各ソフトウェア構成要素は、リソースを上書きまたは修正するための指示子を含み、具体的な名前及び他のメタデータを有することができる。ポリシーは、具体的なソフトウェア構成要素に対するあらゆる変更を該指示子に基づいて保存し、かつ取り出すことができる方法を定義することができる。1つまたは複数の変更された構成要素のセットを、生成し、保持し、再適用して、本来のパッケージに基づいてアプリケーションのカスタマイズされたバージョンを作成することができる。アプリケーションは、仮想アプリケーション環境内でまたは専用の仮想マシン環境内でオペレーションすることができる。
この概要は、以下の詳細な説明で更に説明される単純化された形式の概念の選択を導くために提供されている。この概要は、請求された本発明の重要な特徴または基本的特徴を識別することを意図していないし、請求された本発明の範囲を限定するために用いられることも意図していない。
アプリケーションパッケージを実行するシステムを示す実施形態の図である。 アプリケーションパッケージを実行するシステムの機能要素を示す実施形態の図である。 変更を追跡する方法を示す実施形態のフローチャートである。 アプリケーションパッケージを更新する方法を示す実施形態のフローチャートである。
アプリケーションは、仮想環境において実行されるパッケージとして作成することができる。パッケージは、アプリケーションを形成することができる様々なファイルまたは他のリソースの全てを含むことができる。パッケージ内の各ファイルまたは各リソースは、該パッケージに対する変更を追跡するために用いることができるメタデータのセットを有することができる。該変更は、変更されたファイルの修正されたバージョンを含むことができる修正パッケージに組み込むことができる。
修正されたファイルは、アプリケーションパッケージの修正されたバージョンを作成するためにオリジナルのアプリケーションパッケージと関連して用いることができる。ある実施形態では、修正されたファイルがアプリケーションパッケージのオリジナルのファイルの代わりに含まれている、カスタマイズされたアプリケーションパッケージを作成することができる。
パッケージ内の各ファイルは、変更を加えることができるようにし、保持することができるようにし、後で用いることができるようにする上書きビットまたは他の何らかのメタデータを有することができる。パッケージ内の他のファイルは、かかるメタデータを有していない場合もあり、変更されない場合もある。いくつかのファイルは、変更が認められる場合もあるが、該変更が保持されない場合もある。
ポリシーのセットは、特定の変更タイプまたは特定のファイルに対する変更を保持することができる方法を決定するために用いることができる。場合によっては、ポリシーは、変更をシステム固有の変更としてシステムの他のユーザに適用させるようにすることができる。使用されているマシンに関係なくユーザがカスタマイゼーションを経験するように、ポリシーがユーザに適用されてもよい。ポリシーの他の応用の可能性としては、変更をシステムのグループまたはユーザグループに伝搬することができる場合もあり、変更を特定の状況でまたは他の定義で適用することができる場合もある。
アプリケーションパッケージが更新されるときに、パッケージの異なるバージョンを作成することができる。アプリケーションが仮想環境において実行されると、パッケージの最新バージョンを読み出して実行することができる。更新マネージャは、個々のファイルに関連付けられたメタデータに基づいて、更新されたアプリケーションパッケージと変更されたファイルのセットを統合することができる。例えば、アプリケーションパッケージのいくつかの更新されたファイルは、ユーザによってカスタマイズされたかまたは修正されたファイルに上書きするよう設定することができる。一方、他の更新されたファイルは、上書きするよう設定することができる。
本明細書を通じて、同様の参照番号は、図の説明の全体にわたって同じ要素を表す。
要素が「接続される」かまたは「結合される」といわれる場合、該要素は直接接続することができ、一緒に結合することができ、または、1つまたは複数の介在している要素とすることができる。一方、要素が「直接接続されている」かまたは「直接結合されている」といわれる場合、介在している要素はない。
本発明は、デバイス、システム、方法、及び/またはコンピュータプログラム製品として具体化することができる。従って、本発明のいくつかまたは全ては、ハードウェア及び/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、状態機械、ゲートアレイ等を含む)で具体化することができる。更に、本発明は、コンピュータ使用可能な記憶媒体またはコンピュータ可読の記憶媒体上のコンピュータプログラム製品の形をとることができる。コンピュータ使用可能な記憶媒体またはコンピュータ可読の記憶媒体は、命令実行システムによってまたは命令実行システムに関連して使用するための、媒体において具体化されたコンピュータ使用可能なプログラムコードまたはコンピュータ可読のプログラムコードを有している。本明細書の内容において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスが使用するための、または命令実行システム、装置、またはデバイスに関連して使用するためのプログラムを含むことができ、保存することができ、通信することができ、伝搬することができ、または搬送することができるあらゆる媒体であってもよい。
コンピュータ使用可能媒体またはコンピュータ可読媒体は、例えば、電子、磁気、光学、電磁、赤外線、または、半導体のシステム、装置、デバイス、または伝播媒体であってもよいが、これらに限定されない。例であって限定ではないが、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体含むことができる。
コンピュータ記憶媒体は、例えばコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を保存するためのいずれかの方法または技術で実施される揮発性及び不揮発性、着脱可能及び固定式の媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、または所望の情報を保存するために用いることができかつ命令実行システムがアクセスすることができる他のあらゆる媒体を含むが、これらに限定されるものではない。コンピュータ使用可能媒体またはコンピュータ可読媒体は、プログラムを、例えば紙または他の媒体の光学式走査を介して、電子的にとらえて、コンパイルして、インタプリタして、そうでなければ必要に応じて適切な方法で処理し、次にコンピュータのメモリに保存することができるように、プログラムを印刷する紙または適切な別の媒体であってもよいことに留意する。
通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは搬送波または他の輸送メカニズムのような変調されたデータ信号の他のデータを具体化し、あらゆる情報送達媒体を含む。用語「変調されたデータ信号」手段は、信号内の情報をコード化するような方法で設定または変更されたその特徴のうちの1つまたは複数を有する信号を意味する。例であって限定ではないが、通信媒体は、有線のネットワークまたは直接配線接続のような有線の媒体並びに例えば音響、RF、赤外線及び他の無線媒体などの無線媒体を含む。上記のうちのいずれかの組合せも、コンピュータ可読媒体の範囲に含まれることになっている。
本発明がコンピュータ実行可能命令の一般的な内容で具体化されている場合、実施形態は、1つまたは複数のシステム、コンピュータ、または他のデバイスによって実行されるプログラムモジュールを含むことができる。通常、プログラムモジュールは、ルーチン、プログラム、オブジェクト、構成要素、リソース、データ構造等を含む。これらは、特定のタスクを実行するかまたは特定の抽象データ型を実施する。一般的に、プログラムモジュールの機能は、様々な実施形態において所望通りに組み合わせることができるかまたは分散することができる。
図1は、アプリケーションパッケージを実行するためのシステムを示す実施形態100の図である。実施形態100は、アプリケーションがアプリケーション開発者によって更新されるのと同様にユーザによってカスタマイズされるときに、アプリケーションパッケージを管理することができるシステムの例である。アプリケーションは、パッケージとして構成することができて、仮想環境内で実行することができる。変更が、アプリケーションに関連付けられたリソースに対して行われるときに、これらの変更は、リソースに関連付けられたメタデータ及び変更を処理する方法を定義しているポリシーのセットに基づいて保存するかまたは放棄することができる。
図1は、システムの機能的な構成要素を示す図である。場合によっては、構成要素は、ハードウェア構成要素、またはソフトウェア構成要素、またはハードウェアとソフトウェアとの組合せとすることができる。いくつかの構成要素は、アプリケーションレベルのソフトウェアであってもよい。一方、他の構成要素は、オペレーティングシステムレベルの構成要素とすることができる。場合によっては、ある構成要素から別の構成要素への接続は、2つ以上の構成要素が単一のハードウェアプラットフォームでオペレーションしている緊密な接続であってもよい。別の場合では、長距離にわたるネットワーク接続を介して接続されていてもよい。各実施形態は、異なるハードウェア、ソフトウェア、及び相互接続アーキテクチャを使用して、説明される機能を実現することができる。
実施形態100は、パッケージングされたアプリケーションを管理するシステムのためのいくつかの構成要素及び一般的なアーキテクチャを示す機能図である。該アーキテクチャは、ネットワーク106を介してクライアント102に接続することができるパッケージ配布サーバ104から成ることができる。多くの実施形態において、パッケージ配布サーバ104は、コンピュータサーバとすることができ、クライアント102は、ローカルエリアネットワークを介して接続されるパーソナルコンピュータとすることができる。他の実施形態において、サーバ104及びクライアント102は、インターネットまたは他の広域ネットワークを含むネットワーク106を介して接続することができる。
実施形態100に示したアーキテクチャは、典型的なクライアントサーバ構造タイプであって、ビジネス企業または他の企業で見られる。他の実施形態は、サーバ104について説明されている機能をクライアント102が実行することができまたその逆も実行することができる異なるアーキテクチャのタイプを使用することができる。
クライアント102は、いかなるタイプのコンピューティングプラットフォームとすることができる。コンピューティングプラットフォームは、パーソナルコンピュータ、携帯機器、携帯電話、携帯スキャナ、ラップトップコンピュータまたは他のポータブルコンピュータ、ネットワークアプライアンス、ネットワーク使用可能計測器、ユーザインタフェース112を有することができる他のデバイスを含む。
実施形態100は、パッケージ配布サーバ104がアプリケーションパッケージ108をクライアント102に供給することができるシステムを示す。その結果、アプリケーションパッケージ108を、仮想環境110内で実行することができる。多くの実施形態において、該パッケージを、クライアント102のための仮想環境110において実行することができる。
例えば、ワードプロセッサアプリケーションは、アプリケーションパッケージ108として構成することができて、クライアント102に送信され、クライアント102はワードプロセッサアプリケーションを実行させることができる。ユーザインタフェース112は、ワードプロセッサの動作を示すことができ、アプリケーションを使用するユーザのためのメカニズムとすることができる。
ある実施形態では、アプリケーションパッケージ108は、別のコンピュータとインタフェースすることができるサービスまたは他のアプリケーションのためであってもよい。かかるアプリケーションは、ユーザインタフェース112を使用してもよいしまたは使用しなくてもよい。
クライアント102は、アプリケーションパッケージ108を仮想環境110内で実行させることができる。仮想環境110は、仮想マシン環境または仮想アプリケーション環境とすることができる。仮想マシン環境は、アプリケーションパッケージを実行することができるオペレーティングシステム環境をシミュレーションするソフトウェア構成とすることができるい。
仮想アプリケーション環境は、他のアプリケーションを妨げずにアプリケーションを実行することができるメカニズムである。アプリケーションの仮想化は、共有リソースのアプリケーション固有のコピーを作成することができる。各アプリケーションは、例えばレジストリエントリ、動的にリンクされたライブラリ、及びアプリケーションとともにパッケージングすることができる他のオブジェクトなどの潜在的に共有されたリソースの別個の構成を有することができる。パッケージは、キャッシュにおいて実行することができ、仮想アプリケーションを作成する。仮想アプリケーションが配備されると、該仮想アプリケーションはこれらの共有リソースについての自身のコピーを使用する。
アプリケーションは仮想環境内で実行することができるので、アプリケーションは、共有リソースを使用することができる他のアプリケーションを妨げずに変更し、修正し、かつ更新することができる。仮想環境によって、他のアプリケーション同士の間の分離が可能になり、各アプリケーションを別個に構成できるようになる。
アプリケーションパッケージ108は、アプリケーションを実行するために使用される全てのファイル及びリソースを含むことができる。かかるリソースまたは構成要素は、実行可能ファイル、スクリプト、構成ファイル、動的にリンクされたライブラリ、データファイル、テンプレート、レジストリ設定、メタデータ、及び、他のファイルタイプ、データまたは他の要素を含むことができる。
各アプリケーションパッケージ108は、各リソースについてのメタデータを含むことができ、メタデータは、特に、リソースを更新することができるかどうかとこれらの更新が処理される方法とを記述することができる。例えば、メタデータは、ユーザがリソースを変更することができるかどうかかつ当該変更を保持することができるかどうかを定義することができる。別の例において、メタデータはまた、アプリケーションの新バージョンが利用可能な場合に、リソースを更新することができる方法を定義することができる。また別の例において、メタデータは、変更が保持されるメカニズム及び変更が他のユーザまたは他のデバイスに伝搬される方法を定義することができる。メタデータはアプリケーションパッケージの新バージョンの最初の構築の間使用される情報及びパッケージが完了して実行されている後に使用することができる異なった情報を含むことができる。
アプリケーションパッケージ108内のリソースが更新、修正または構成される場合、変更を保持して、アプリケーションパッケージが類似した内容で再開される時に再び使用することができる。変更は、いくつかの異なるメカニズムを介して保持されかつ再利用することができる。
アプリケーションパッケージ108は、変更を追跡して保存することができるファイル及び他のリソースを含むことができる。本明細書を通じて、用語リソースは、実行可能ファイル、データファイル、構成ファイル、レジストリエントリ、COMリソース、IPアドレス、メタデータ、構成要素、設定、及び他のリソースを含むことができ、これらのリソースを例示するために用いられる。リソースについてのあらゆる記述は、いずれかのタイプのリソースを含むことができ、上記したリソースを含む。
第1のメカニズムにおいて、行われた変更は、カスタマイズされたリソース114の別個のセットに保存される。アプリケーションパッケージ108が起動されると、カスタマイズされたリソース114のセットは、アプリケーションパッケージ108内の対応するリソースをカスタマイズされたリソース114と置き換えることによって実行時にアプリケーションパッケージ108に組み込むことができる。
かかる実施形態は、顕著ないくつかの特徴を有している。アプリケーションパッケージ108は、アプリケーション内のリソースの不変のバージョンの全てを含んでいる初期のパッケージとすることができる。アプリケーションの構成に行われるあらゆる変更は、カスタマイズされたリソース114のグループに別個に保存することができる。カスタマイズされたリソース114をアプリケーションパッケージ108に組み入れることができるように、かかる実施形態は、より複雑なスタートアップルーチンを有する。
第2のメカニズムにおいて、変更は、アプリケーションパッケージのカスタマイズされたバージョン116を作成するために用いることができる。アプリケーションパッケージ116のいくつかの異なるカスタマイズされたバージョンは、各々、異なるユーザまたは異なる状況のため作成することができる。アプリケーションパッケージのカスタマイズされたバージョン116は、アプリケーションを形成する様々なリソースの全てを含む完全なアプリケーションパッケージとすることができる。
かかる実施形態は、顕著ないくつかの特徴を有している。アプリケーションパッケージ116は、各々非常に大きくてもよく、多くの異なる構成が存在する場合、アプリケーションパッケージ116によって使用される記憶容量は大きくてもよい。しかしながら、アプリケーションパッケージ116は、実行のために使用されるリソースの全てを含む完全な独立型アプリケーションであってもよい。完全なアプリケーションパッケージであるとして、該完全なアプリケーションパッケージは、第1のメカニズムを使用するより素早く起動して実行開始することができる。
他の実施形態は、カスタマイズされたリソースまたは修正されたリソースを管理し、保存し、取り出す異なるメカニズムを有することができる。ある実施形態では、パッケージに対するいくつかの変更タイプが、カスタマイズされたリソース114に保存することができかつ他の変更はアプリケーションパッケージ116のカスタマイズされたバージョンを作成するために用いられたと判断するためにメタデータまたはポリシーを用いることができる。いくつかの変更は、本質的に局所的であってもよくて、特定のクライアント102のユーザだけに影響を及ぼしてもよい。他の変更は、より広く配備されてもよく、パッケージ配布サーバ104によって、アプリケーションパッケージ116のカスタマイズされたバージョンを介して他のクライアントデバイスと共有することができる。
時々、更新サーバ118は、更新情報パッケージ120をパッケージ配布サーバ104に配布することができる。更新情報パッケージ120は、アプリケーションパッケージ108に対するバグ修正、更新、新機能、または他の変更を含むことができる。パッケージ配布サーバ104は、更新マネージャを有し、更新マネージャは、パッケージ更新情報120を使用して新しいアプリケーションパッケージ108を作成することができることができる。
パッケージ更新情報120は、完全なパッケージの形とすることができ、または、リソースの差分のセットなどの修正されたリソースまたは更新されたリソースのグループの形とすることができる。いずれにせよ、カスタマイズされたリソース114を更新されたパッケージに組み入れる方法に関して決定することができる。場合によっては、更新サーバ118からのリソースは、該リソースにあらゆる既存のリソースに上書きさせるメタデータを有し、既存のリソースは、ユーザが生成することができるかまたは修正することができるアプリケーションパッケージ108の前のバージョンまたはカスタマイズされたリソース114のオリジナルのリソースとすることができる。
パッケージ更新情報120のメタデータは、更新されたリソースが、いずれかの既存のリソースの代わりに使用すべきであるかどうかを判断することができる。かかるメタデータは、更新されたリソースをいずれかの前のバージョンの代わりに使用することになっていると示すことができるかまたは、更新されたリソースを前のバージョンの代わりに使用することができるがユーザによってカスタマイズされたバージョンでないことを示すことができる。メタデータは、リソースに対する修正がユーザによって行われたかどうかかつこれらの修正を保持することができる方法を別個に定義することができる。
図2は、アプリケーションパッケージを実行することのためのシステムを示す実施形態200の図である。実施形態200は、アプリケーションがアプリケーション開発者によって更新されるのと同様にユーザによってカスタマイズされるアプリケーションパッケージを管理することができるシステムの機能構成要素の例である。
図2は、システムの機能構成要素を示す。場合によっては、構成要素は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェアとソフトウェアとの組合せであってもよい。構成要素のいくつかはアプリケーションレベルのソフトウェアであってもよい。一方、他の構成要素はオペレーティングシステムレベルの構成要素であってもよい。場合によっては、ある構成要素から別の構成要素への接続は、2つ以上の構成要素が単一のハードウェアプラットフォームで動作している緊密な接続であってもよい。別の場合では、長距離にわたるネットワーク接続を介して接続されていてもよい。各実施形態は、異なるハードウェア、ソフトウェア、及び相互接続アーキテクチャを使用して説明される機能を実現することができる。
実施形態200は、実行可能なアプリケーションパッケージに対する更新情報を管理するために用いることができる機能構成要素の例である。機能構成要素は、1つまたは複数のデバイス上でかつ多くの異なる構成において実行することができる様々な機能であってもよい。場合によっては、様々な機能は、ローカルエリアネットワークまたはインターネットなどの広域ネットワークを介して接続される異なる物理的なデバイスによって実行されてもよい。他の場合では、様々な機能のうちの2つ以上またはおそらく全てを、単一のデバイスで実行することができる。
実施形態200において説明される機能は、アプリケーションパッケージを様々な更新周期で管理することができる1つのメカニズムを示す。場合によっては、パッケージの更新されたバージョンは、アプリケーション開発者またはソフトウェア製造会社によって作成されてもよい。更新されたバージョンは、アプリケーションパッケージの現在のバージョンを作成するために用いることができる。他の場合では、修正またはカスタマイゼーションは、ユーザ、システム管理者、または他のエンティティによって行われてもよく、これらのカスタマイゼーションは、保持されて、アプリケーションパッケージに組み入れられてもよい。
修正されたリソースまたはカスタマイズされたリソースは、追跡することができて、ソフトウェア製造会社によって作成される更新情報と別個に処理することができる。アプリケーションパッケージ内のメタデータは、更新情報が処理されるべき方法を定義することができる。メタデータは、更新情報を利用可能してもよいしまたは無効にしてもよく、更にいくつかの更新情報が保持されてもよいし、いくつかの更新情報が他の更新情報を上書きしてもよいし、多くの他のオプションを与えられてもよい。
ポリシーのセットは、カスタマイズされたリソースを保持して適用する方法を定義するために用いることができる。ポリシーは、デバイスの全てのユーザに対して、様々なユーザグループに対して、または個々のユーザに対して、保持または適用することになっているいくつかの更新情報またはカスタマイゼーションを定義することができる。ポリシーは、特定のタイプの更新情報を分類することができて、異なる方法でこれらの更新情報を適用することができる。
更新マネージャ204は、実行エンジン210に実行のためのアプリケーションパッケージを与えることができる。アプリケーションパッケージは、いくつかのカスタマイズされたリソースのセット206とともにパッケージ202の現在のバージョンからのリソースを含むことができる。更新マネージャ204は、パッケージの現在のバージョン202及びカスタマイズされたリソースのセット206のグループを統合することによってカスタマイズされたアプリケーションパッケージを作成することができる。
場合によっては、更新マネージャは、ポリシー216に基づいて2つ以上のカスタマイズされたリソースのセット206を適用することができる。カスタマイズされたリソースのセット206は、様々なタイプの変更についてのポリシー216に基づいて作成することができる。いくつかの変更は、会社全体または企業全体に適用することができる。一方、他の変更は、企業内の部門、部門内のグループ、または特定のユーザもしくはデバイスに適用することができる。いくつかの変更は、ユーザに関係なく、異なるタイプのデバイスに適用することができる。一方、他の変更は、使用されているデバイスに関係なく、異なるタイプのユーザに適用することができる。
場合によっては、カスタマイズされたリソースの特定のセットは、ある特定の環境向けに作成することができる。例えば、建物をモニタするために警備員によって使用されるアプリケーションは、建物の夜間監視のために定義されたカスタマイゼーションを有することができ、昼間の建物オペレーションについて定義されたカスタマイゼーションのセットを切り離すことができる。別の例において、会計アプリケーションは、年度末会計について定義された特定の特徴またはカスタマイゼーションのセット及び法廷会計のために定義された別個のカスタマイゼーションのセットを有することができる。
2つ以上のカスタマイズされたリソースのセット206が使用される場合では、カスタマイズされたリソースは、適用された最後のセットが優先権を持っているといった特定の順番で適用することができる。例えば、会社全体のカスタマイゼーションのセットが最初に適用され、次に、部門全体のカスタマイゼーションのセットが適用され、最後にユーザ特定のカスタマイゼーションのセットが適用されてもよい。他の実施形態は、複数のカスタマイゼーションのセットを取り入れるための異なる技術またはメカニズムを有することができる。
カスタマイズされたリソースのセット206は、構成リソースのセット、データファイルのセット、またはアプリケーションのいずれかの部分を修正することができる他のタイプのリソースを含むことができる。場合によっては、カスタマイズされたリソースは、アプリケーションのルックアンドフィールまたはユーザインタフェースを変更する項目を含むことができる。例えば、会社全体のカスタマイズされたリソースのセットは、会社ロゴ及び、会社内部のヘルプデスクについての電話番号または電子メールアドレスを含むことができる。ユーザが作成したカスタマイズされたリソースのセットは、フォントサイズ及びカラースキームについて設定を含むことができる。別の例において、構成リソースのセットは、ネットワーク設定及びアドレスを含むことができ、ネットワーク設定及びアドレスは、アプリケーションが、ローカルエリアネットワーク内に設けられたかまたはインターネットを介して利用可能なサーバにホストされる遠隔サービスに接続できるようにしてもよい。アプリケーションが起動される時、装置の物理的な位置またはネットワークの位置によって決まる異なる構成リソースが用いられてもよい。
他の場合には、カスタマイズされたリソースは、アプリケーションの機能または性能を変更する項目を含むことができる。例えば、カスタマイズされたリソースのセット206は、特定のタスクを実行することができるスクリプト、マクロ、もしくは実行可能ファイル、アプリケーションプラグインモジュール、特定の機能を使用可能または無効にする構成リソース、またはアプリケーションに対する他の機能的な変更を含むことができる。別の例において、カスタマイズされたリソースのセット206は、アプリケーションが特定のネットワークアドレスで提供される特定のサービスに接続できるようにするネットワークアドレス及び接続パラメータを含むことができる。一方、異なるカスタマイズされたリソースのセット206は、異なるサーバ上の類似したサービスに接続するために用いられもよい。
また他の場合において、カスタマイズされたリソースは、アプリケーションが使用することができるデータを含むことができる。例えば、ワードプロセッシングプログラムは、社用箋または名前入りのステーショナリを含むカスタマイズされたリソースのセットを有することができる。いくつかのかかるカスタマイズされたリソースは、様々な機能またはオペレーションにおいて使用されるデータのテンプレート、フォーマットまたはデフォルトのセットを含むことができる。
カスタマイズされたリソースのセット206は、異なるタイプのユーザによって作成されてもよいしまたは異なるやり方で分類されてもよい。カスタマイゼーションのタイプ及び特定のリソースを修正する特定のタイプのユーザの能力は、リソース及びポリシー216に関連付けられたメタデータにおいて定義することができる。例えば、いくつかのタイプの企業規模のカスタマイゼーションは、管理上の特権をもつユーザが実行することができる。例えば、アプリケーションパッケージは、ライセンシングに関する制限または一般的な会社ポリシーに基づいて使用可能にされてもよいしまたは無効にされてもよい特定の特徴を有することができる。かかる変更は、管理者に認められてもよいが、一般ユーザに認められない。
グループ管理者として定義されるユーザがいて、会社内の部門などのユーザグループによって使用されるカスタマイゼーションを追加するかまたは修正することができてもよいが、他の部門またはグループにおいて使用されている変更を開始することはできない。
ある実施形態では、ユーザがカスタマイズされたリソースを作成するのを認めるかかまたは既存のリソースを変更して当該変更が伝播される方法を定義するのを認める。例えば、ユーザは、アプリケーションパッケージ内で既存のリソースに変更を加えることができる。ユーザは、アプリケーションの他のインスタンスにわたって該変更を適用することができる方法についてのオプションのセットを示されてもよい。ユーザは、例えば、変更を他の個人またはユーザグループが使用できるようにすることができる。変更を適用することができる方法を選択することによって、変更をカスタマイズされたリソース206の異なるセットに保存することができる。
ポリシー216は、異なるメカニズムを用いて変更が保持されるのを認めることができる。例えば、いくつかの変更は、ローカルの記憶装置に保持されてもよく、アプリケーションがローカルデバイスで実行されると使用される。他の変更は、ネットワークサーバで保持されてもよく、他のユーザ及び他のデバイスにわたって共有されてもよい。
いくつかのポリシーは、カスタマイズされたリソースのセット206をユーザベースでかつデバイスベースまたは機能ベースで適用できるようにしてもよい。ユーザベースとは、特定のユーザまたはユーザグループなどのユーザ識別に基づいて、カスタマイズされたリソースのセットを適用することを言うことができる。ユーザグループは、例えば管理者、パワーユーザ、一般的なユーザ、またはゲストユーザなどのユーザのタイプによって定義することができる。他のユーザグループは、プログラムマネージャまたは管理スタッフなどの機能によって定義することができる。更に、他のユーザグループは、マーケティング部のメンバまたは自転車クラブのメンバなどの所属で定義することができる。
カスタマイズされたリソースのセットを適用するためのデバイスベースは、特定のデバイスの識別またはデバイスグループに基づいてもよい。いくつかのデバイスグループは、デバイスが例えば特定の能力または取り付けられた周辺デバイスを有しているかどうかといった様々な機能的特徴によって識別することができる。いくつかのデバイスグループは、特定のサブネット内のデバイスなどのネットワークアドレスを用いて識別することができる。デバイスグループはまた、経理部などの会社部門に関連付けられたデバイスを含むことができる。いくつかのデバイスは、例えばラップトップコンピュータ、デスクトップコンピュータ、サーバコンピュータ、携帯スキャナ、携帯電話、または他のタイプのデバイスなどのタイプで分類されてもよい。
カスタマイズされたリソースのセットを適用するための機能ベースは、アプリケーションを用いて実行することができる特定の機能に基づくことができる。例えば、インベントリ管理アプリケーションは、出荷機能及び受け入れ機能が実行されることになっているときに選択されるカスタマイズされたリソースのセットを有することができる。実地インベントリ機能が実行されることになっている場合に、異なるカスタマイズされたリソースのセットを選択することができる。
ある実施形態では、ポリシー216は、カスタマイズされたリソースのセット206を選択してアプリケーションパッケージ202の現在のバージョンに適用するための複合的な基準のセットを認めることができる。例えば、特定のデバイス上の特定の機能を実行しているユーザは、会社全体のカスタマイゼーション、部門に特有のカスタマイゼーション、機能に特有のカスタマイゼーション、デバイスに特有のカスタマイゼーション、及びユーザに特有のカスタマイゼーションを含むカスタマイゼーションのセットを使用することができる。アプリケーションパッケージがすっかりカスタマイズされて見えるが多くのユーザ、デバイス、及び機能にわたって使用されるアプリケーションパッケージ202の単一の現在のバージョンから生じることができるように、各カスタマイゼーションのセットは、アプリケーションパッケージに様々な要素を加えることができるかまたはアプリケーションパッケージから様々な要素を取り除くことができる。
カスタマイズされたリソースのセット206内のカスタマイズされたリソースのいくつかは、既存のリソースの修正態様であってもよいしまたは他のリソースに無関係な別個のリソースであってもよい。既存のリソースの修正態様は、アプリケーションパッケージ内の標準のリソースの更新バージョンであってもよい。
例えば、構成リソースは、アプリケーションパッケージにおいて定義されてもよいし、該構成リソースに関連付けられたメタデータは、ユーザに構成リソースを変更するのを認めてもよい。場合によっては、メタデータは、ユーザが構成リソースの特定の部分を変更するのを制限することができる。一方、他の場合では、メタデータは、構成リソースに対するいずれかのタイプの変更を認めることができる。更新された構成リソースは、カスタマイズされたリソースのセット206のカスタマイズされたリソースとして保存することができる。
アプリケーションパッケージから取られた更新されたリソースは、アプリケーションパッケージ内の更新されたリソースとびオリジナルのリソースとの間に定義された関係と共に保存することができる。場合によっては、更新されたリソースは、アプリケーションパッケージ内のオリジナルのリソースと同じ名前を共有することができる。他の場合では、グローバル一意識別子(GUID)は、オリジナルのリソースについて定義することができる。2つのリソースが関連しているように、更新されたリソースは、いくつかのやり方でオリジナルのリソースのGUIDを参照することができる。場合によっては、GUIDは更新されたリソースについて定義することができ、関係表を定義してオリジナルのリソースとカスタマイズされたリソースとの間の関係を保存して追跡することができる。
更新マネージャ204は、アプリケーションパッケージ202の現在のバージョン及び様々なカスタマイズされたリソースのセット206を統合することができる。ある実施形態では、更新マネージャ204は、実行エンジン210が仮想環境212内で実行することができる完全なリソースのセットを含むカスタマイズされたアプリケーションパッケージを作成することができる。他の場合では、更新マネージャ204は、特定の状況に適用できるカスタマイズされたリソースのセット206とともに、アプリケーションパッケージ202を送信することができる。
アプリケーションパッケージ202の現在のバージョンは、アプリケーションの不変のバージョン、即ち「ゴールデン」バージョンであってもよい。アプリケーションパッケージ202は、他のカスタマイゼーションを適用することができる標準コピーまたは基本バージョンであってもよい。アプリケーションの企業配備において、アプリケーションの単一のゴールデンバージョンは、企業全体にわたって全て使用することができるが、各部門、各ユーザ、または各グループは、異なるバージョンを経験することができる。各ユーザはアプリケーションの特定の部分をカスタマイズすることが可能であってもよく、ユーザがアプリケーションを起動するたびにこれらのカスタマイゼーションを出現させてもよい。
しかしながら、ユーザ見地から、各ユーザは、ソフトウェア管理見地と異なった異なるアプリケーションを経験することができ、単一のアプリケーションパッケージは多くの異なるユーザにわたって管理されかつ配備されてもよい。
実行エンジン210は、アプリケーションパッケージを受信することができて、アプリケーションパッケージを仮想環境内で実行させることができる。いくつかの例では、仮想環境212は、アプリケーションのために特に実行エンジン210が作成しかつ構成することができる。
仮想環境212は、いずれかのタイプの構成のいずれかのタイプの仮想環境であってもよい。多くの場合、仮想環境は、仮想アプリケーション環境であってもよい。他の場合では、仮想環境は、仮想マシン環境であってもよい。場合によっては、仮想環境は、実行エンジン210と同じ物理的なデバイス上に作成することができる。一方、他の場合では、実行エンジン210は、例えばサーバなどの、異なる物理的デバイスでオペレーション可能な仮想環境212を使用することができる。
ユーザインタフェース208は、カスタマイゼーションとともにアプリケーションを選択して起動するために用いることができる。デスクトップコンピュータのシナリオでは、ユーザはアイコンをクリックしてアプリケーションを起動することができる。デスクトップコンピュータは、アプリケーションパッケージの現在のバージョン202及びカスタマイズされたリソースのセット206を得ることができるサーバデバイスに接続することができる。デスクトップコンピュータ内で、実行エンジン210は、仮想環境212を構成することができて、アプリケーションに実行を開始させることができる。ある実施形態では、アプリケーションがデスクトップコンピュータのオペレーティングシステムで自然に実行されていたかのように、アプリケーションをユーザインタフェース208に示すことができる。
いくつかのかかる実施形態において、ユーザは、アプリケーションを起動するときに様々な選択オプションを有することができる。かかるオプションは、更新マネージャ204が適当なカスタマイゼーションリソースのセット206を選択して特定の例にあてはめることができるようにする。場合によっては、ユーザはメニューまたはオプションのセットから適当なカスタマイゼーションリソースのセット206のために選択することが可能であり、他の場合では、かかる選択は自動的に行うことができる。例えば、ラップトップコンピュータが更新マネージャ204を備えたサーバを有するローカルエリアネットワークに接続されると、ラップトップコンピュータは1つのカスタマイゼーションリソースのセットを用いてアプリケーションを実行することができる。ラップトップコンピュータがインターネットを介して同じサーバに接続されている場合、ラップトップコンピュータは、異なるカスタマイゼーションリソースのセットを用いて同じアプリケーションを実行することができる。
実行時変更マネージャ214は、いつアプリケーションパッケージ内のリソースに変更が行われたかを検出することができて、ポリシー216を用いてカスタマイズされたリソースのセット206に対する変更を類別し、分類し、構成することができる。場合によっては、実行時変更マネージャ214は、バックグラウンドでオペレーションすることができて、ユーザインタフェースなしに当該機能を実行することができる。他の場合では、実行時変更マネージャ214は、変更を管理すべき方法について決定するためにユーザとインタラクションすることができる。
更新マネージャ204はまた、アプリケーションパッケージの新バージョン218を管理することができる。アプリケーションパッケージの新バージョン218を受信すると、更新マネージャ204は、更新された「ゴールデン」アプリケーションパッケージを作成することができ、これは次にアプリケーションパッケージの現在のバージョン202として設定される。
更新マネージャ204は、更新されたパッケージ218の個々のリソースに関連付けられたメタデータに基づいて、アプリケーションパッケージの現在のバージョン202内で、様々なリソースを更新することができる。場合によっては、メタデータは、パッケージの新バージョン218のリソースにパッケージの現在のバージョン202の対応するリソースを上書きさせることができる。場合によっては、メタデータは、カスタマイズされたリソースのセット206の対応するリソースを削除させかつ、場合によっては、パッケージの新バージョン218のリソースに置き換えさせる。メタデータは、ユーザによる新しいリソースに対する次の変更を可能にしてもよいしまたは止めてもよい。
図3は、アプリケーションパッケージのリソースに対する変更を追跡する方法を示す実施形態300のフローチャートである。実施形態300は、更新マネージャ204及び実行エンジン210が実行するいくつかのオペレーションに加えて、実行時変更マネージャ214が主に実行することができる様々なオペレーションの例である。
他の実施形態は、異なる優先順位付け、追加のステップまたは少ないステップ、及び同様の機能を実現する異なる技術用語または技術を使用することができる。ある実施形態では、様々なオペレーションまたはオペレーションのセットは、他のオペレーションと並行して、同期したやり方または非同期のやり方のどちらででも実施することができる。本明細書で選択されたステップは、単純化された形式のオペレーションのいくつかの原理を示すように選択された。
実施形態300は、アプリケーションパッケージに行われたリソースに対する変更を検出して処理する方法を示す。変更はリソース及びポリシーに関連付けられたメタデータに基づいて処理することができる。
ブロック302においてアプリケーションパッケージを作成することができ、ブロック306において仮想環境で実行することができる。
アプリケーションパッケージは、様々なメカニズムを用いてブロック302において作成することができる。場合によっては、アプリケーションパッケージは、現在のアプリケーションパッケージをカスタマイズされたリソースのセットと統合することで更新マネージャが作成することができる。場合によっては、アプリケーションパッケージは、追加のカスタマイズされたリソースなしで実行することができる。
アプリケーションパッケージは、例えば仮想マシン環境または仮想アプリケーション環境などのいずれかのタイプの仮想環境を用いてブロック304において実行することができる。
ブロック308においてリソースの変更が検出されると、リソースに関連付けられたメタデータは、ブロック310において変更を認め、変更はブロック312においてポリシー毎に保存することができる。メタデータがブロック310において変更を認めない場合、変更は保存されず、プロセスはブロック306に戻る。
実行時変更マネージャ214は、アプリケーションの実行を監視することができて、アプリケーションパッケージ内のリソースに行われるあらゆる変更を検出することができる。実行時変更マネージャは、実行アプリケーションと同じ仮想環境内部でオペレーションする機能であってもよいし、または仮想環境外部でオペレーションする機能であってもよい。場合によっては、実行時変更マネージャは、アプリケーションパッケージとともに実行エンジンによって起動される機能であってもよい。異なる実施形態は、各々異なる機能のアーキテクチャを有することができる。
ブロック310において使用されるメタデータは、個々のリソースに関連付けられたメタデータであってもよいし、アプリケーションパッケージの一部であるメタデータであってもよい。場合によっては、各リソースは、メタデータの別個の異なったセットを有することができる。他の場合には、メタデータのセットは、リソースのグループに適用することができる。
ブロック310のメタデータは、特定のリソースまたはリソースのグループに対する変更を認めることができるかまたは拒否することができる。メタデータは、変更することができないアプリケーションパッケージ内の特定のリソースを定義することができる。かかるリソースは、変更された場合、アプリケーションが適切に機能することができないリソースを含むことができる。該リソースは、実行可能ファイル、動的にリンクされたライブラリ、レジストリ設定、COMオブジェクト、IPアドレス、及び他のリソースなどである。
アプリケーションパッケージ内のいくつかのリソースは、修正可能であってもよい。かかるリソースは、ユーザが構成可能な設定、デフォルトのテンプレート、または他のリソースを含むことができる構成ファイルであってもよい。ブロック310のメタデータは、ソフトウェア製造会社が定義することができて、アプリケーション設計の基本的な構造の一部であってもよい。
ブロック312のポリシーは、変更を企業環境内で保存して管理することができる方法を定義することができる。ポリシーは、会社または企業の内部手順及びビジネスモデルに合わせて調整することができる局所的に定義されかつ局所的に管理された規則のセットであってもよい。
ポリシーは、アプリケーションに対する変更についての異なる分類を定義することができ、変更を保存するための状況及びメカニズムを定義することができる。例えば、いくつかの変更は局所的なユーザ固有の変更と特定することができ、デスクトップコンピュータに保存することができる。他の変更は、異なるコンピュータにわたって共有することができる変更と特定することができ、かかる変更をサーバデバイスに保存することができる。
場合によっては、メタデータが変更を認めることができる場合でも、ポリシーは、特定の状況において変更の保存を拒否することができる。例えば、ユーザはリソースの変更されたバージョンを作成することができるが、変更を保存するためのポリシーにおいて定義されているような権限を有することができない。
図4は、アプリケーションパッケージを更新する方法を示す実施形態400のフローチャートである。実施形態400は、アプリケーションパッケージ218の新バージョンが受信される場合に、更新マネージャ204が実行することができる様々なオペレーションの例である。
他の実施形態は、異なる優先順位付け、追加のステップまたは少ないステップ、及び同様の機能を実現する異なる技術用語または技術を使用することができる。ある実施形態では、様々なオペレーションまたはオペレーションのセットは、他のオペレーションと並行して、同期したやり方または非同期のやり方のどちらででも実施することができる。本明細書で選択されたステップは、単純化された形式のオペレーションのいくつかの原理を示すように選択された。
実施形態400は、更新されたアプリケーションパッケージのリソースに関連付けられたメタデータを用いてアプリケーションパッケージの新バージョンを作成する方法の例である。実施形態400は、アプリケーションパッケージの旧バージョンの各リソースの分析を実行する。他の実施形態は、アプリケーションパッケージの新バージョンの各リソースを分析して類似する結果をもたらすことができる。実施形態400は、アプリケーションパッケージ内の個々のリソースを更新して、カスタマイズされたリソースが更新情報を阻害する場合、これらのカスタマイズされたリソースを削除するといった一般的なプロセスの例にすぎない。
実施形態400は、アプリケーションパッケージの各リソースを介してステップを行い、新バージョンが存在する場合、リソースの旧バージョンを新バージョンで置き換える。古いリソースの修正されたバージョンが存在する場合、新しいリソースに関連付けられたメタデータは、修正されたバージョンが更新されたアプリケーションパッケージと互換性を持たないことを示すことができ、修正されたリソースまたはカスタマイズされたリソーを取り除くことができる。リソースの修正されたバージョンが互換性を持つ場合、修正されたバージョンを保持することができる。
ブロック402において、アプリケーションパッケージの旧バージョンを受信することができ、同様に、ブロック404においてアプリケーションパッケージの新バージョンをかつブロック406においてパッケージについてのあらゆる修正されたリソースを受信することができる。
ブロック404においてアプリケーションパッケージの新バージョンは、完全なアプリケーションパッケージの形であってもよいしまたはアプリケーションパッケージについての変更されたリソースまたは更新されたリソースの形であってもよい。多くの場合、アプリケーションパッケージの更新されたバージョンは、ソフトウェア製造会社が作成して、例えば、更新サービスの加入者に配布することができる。
ブロック408において、アプリケーションパッケージの旧バージョンの各リソースについて、リソースの分析を行い、リソースを更新し、対応するカスタマイズされたリソースを処分することができる。
アプリケーションパッケージの新バージョンの対応するリソースは、ブロック410において特定することができる。異なる実施形態は、どのリソースが互いに関連しているかについて判断する異なるメカニズムを有することができる。場合によっては、各リソースは、グローバル一意識別子(GUID)またはいくつかの他の一意の名前を割り当てられてもよい。パッケージの旧バージョンのリソースが新バージョンのリソースと同じGUIDを有する場合、ブロック412においてリソースは同一である。GUIDが異なる場合、リソースはブロック412において異なっていてもよく、古いリソースはブロック414において新しいリソースに置き換えることができる。
ある実施形態では、参照表または他のいくつかの参照を使用して、アプリケーションパッケージの新バージョンのどのリソースがアプリケーションパッケージの旧バージョンのリソースを置き換えるかについて判断することができる。
新しいアプリケーションパッケージが完全なリソースのセットとして配備される実施形態において、ブロック412及び414のオペレーションは省略されてもよい。
ブロック416において現在のリソースの修正されたバージョンがない場合、プロセスは次のリソースを処理するためにブロック408に戻ることができる。
ブロック416においてリソースの修正されたバージョンがある場合、リソースの新バージョンに関連付けられたメタデータは、ブロック418において分析される。リソースの新バージョンに関連付けられたメタデータは、修正されたリソースの旧バージョンが更新されたアプリケーションパッケージと互換性を持つかどうかを示すフラグまたは定義を有することができる。
メタデータによって、修正されたリソースをブロック420において使用できると示されている場合、修正されたバージョンはブロック424において保持することができる。メタデータによって、修正されたリソースをブロック420において使用することになっていないと示されている場合、リソースの修正されたバージョンはブロック422において削除することができる。
ある実施形態では、リソースの修正されたバージョンは、いくつかの異なるカスタマイズされたリソースのセットにおいて見出すことができる。かかる実施形態において、修正されたリソースの各インスタンスは、削除することができる。ある実施形態では、修正されたリソースは非アクティブとしてフラグを立てて異なる位置へ移動することができるかまたは、そうでなければリソースを削除することの代わりに使用不可にされてもよい。
本発明の前述の説明は、説明のために提示されてきた。該説明は、網羅的であることまたは開示された正確な形に本発明を限定することを意図しておらず、他の変更態様及び変化形が上記の示唆を考慮して可能であるかもしれない。本発明の原理及びその実際のアプリケーションを最もよく説明して、意図された特定の使用に適した様々な実施形態及び様々な変更態様において本発明を当業者が最もよく利用できるようにするために、該実施形態は選択されて説明された。添付の特許請求の範囲は、従来技術によって限定される場合を除いては他の代替実施形態を含むと解釈されることを意図している。

Claims (15)

  1. 複数のリソースを含む第1のアプリケーションパッケージを作成するステップ(302)であって、前記複数のリソースの各々は、少なくともユーザ設定の指定及び一意の識別子を定義するリソースのメタデータを有し、前記第1のアプリケーションパッケージは、第1のバージョンを有する、ステップと、
    仮想環境において前記第1のアプリケーションパッケージを実行するステップ(306)と、
    前記実行するステップの間に第1のリソースに対する変更を検出するステップ(308)であって、前記第1のリソースは、前記複数のリソースのうちの1つである、ステップと、
    前記第1のリソースに関連付けられた前記メタデータを評価して前記変更を保存すべきであると判断するステップ(310)と、
    変更されたリソースに前記変更を保存するステップ(312)であって、前記変更されたリソースは、前記変更されたリソースは、前記第1のアプリケーションが実行されると前記第1のリソースの代わりに用いられるように前記第1のリソースと関連している、ステップと
    を含むことを特徴とする方法。
  2. 第2の複数のリソースを含む前記アプリケーションパッケージの第2のバージョンを受信するステップであって、前記リソースの各々は、上書きメタデータを含むメタデータを有する、ステップをさらに含み、
    前記アプリケーションパッケージの前記第2のバージョンは、前記アプリケーションパッケージの前記第2のバージョンの前記複数のリソース内の、前記第1のリソースに対応している第2のリソースについて、
    前記メタデータを評価して、前記第2のリソースが前記変更されたリソースを上書きすることになると判断し、
    前記アプリケーションパッケージの前記第2のバージョンが実行されると、前記変更されたリソースの代わりに前記第2のリソースを用いることを特徴とする請求項1に記載の方法。
  3. 仮想環境において前記アプリケーションパッケージの前記第2のバージョンを実行するステップと、
    前記実行の間、前記第2のリソースに対する変更を検出するステップと、
    前記第2のリソースに関連付けられた前記メタデータを評価して前記変更を保存すべきであると判断するステップと、
    第2の変更されたリソース内に前記変更を保存するステップであって、前記第2の変更されたリソースは、前記第2の変更されたリソースは、前記アプリケーションパッケージの前記第2のバージョンが実行されると前記第2のリソースの代わりに用いられるように前記第2のリソースと関連している、ステップと
    をさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記アプリケーションパッケージの前記第2のバージョンは、前記第1のアプリケーションパッケージのサブセットについての更新されたリソースを含むリソースの差分のセットを含むことを特徴とする請求項2に記載の方法。
  5. 前記アプリケーションパッケージの前記第2のバージョンは、前記アプリケーションの第2のバージョンを形成する前記リソースの完全なセットを含むことを特徴とする請求項2に記載の方法。
  6. 前記対応は、リソース名を比較することによって判断されることを特徴とする請求項2に記載の方法。
  7. 前記対応は、参照表を用いて判断されることを特徴とする請求項2に記載の方法。
  8. 前記参照表は、グローバル一意識別子を含むことを特徴とする請求項7に記載の方法。
  9. 第2の複数のリソースを含む前記アプリケーションパッケージの第2のバージョンを受信するステップであって、前記リソースの各々は、上書きメタデータを含むメタデータを有する、ステップをさらに含み、
    前記アプリケーションパッケージの前記第2のバージョンは、
    前記アプリケーションパッケージの前記第2のバージョンの前記複数のリソース内の前記第1のリソースに対応している第2のリソースについて、
    前記メタデータを評価して前記変更されたリソースは前記第2のリソースを上書きすることになっていると判断し、
    前記アプリケーションパッケージの前記第2のバージョンが実行されると、前記第2のリソースの代わりに前記変更されたリソースを使用することを特徴とする請求項1に記載の方法。
  10. 前記仮想環境は、仮想マシン環境であることを特徴とする請求項1に記載の方法。
  11. 前記仮想環境は、仮想アプリケーション環境であることを特徴とする請求項1に記載の方法。
  12. 前記アプリケーションの前記第1のバージョンのユーザが修正したバージョンを作成するステップを更に含むことを特徴とする請求項1に記載の方法。
  13. 前記ユーザが修正したバージョンは、ユーザが修正したリソースのセット及び前記アプリケーションパッケージの前記第1のバージョンを含むことを特徴とする請求項12に記載の方法。
  14. 前記ユーザが修正したバージョンは、前記アプリケーションパッケージの前記第1のバージョンのユーザが修正したパッケージを含むことを特徴とする請求項12に記載の方法。
  15. 仮想環境において第1のアプリケーションパッケージを実行するように構成された実行エンジン(210)であって、前記第1のアプリケーションパッケージは、前記アプリケーションの第1のバージョンと、複数のリソース上書きメタデータとを含む、実行エンジンと、
    実行時変更マネージャ(214)とを含むシステムであって、
    実行時変更マネージャ(214)は、
    前記第1のアプリケーションパッケージの前記複数のリソースのうちの1つである第1のリソースで変更が生じたと判断し(308)、
    前記第1のリソースに関連付けられた前記メタデータを評価して前記変更を保存すべきであると判断し(310)、
    変更されたリソースに前記変更を保存し(312)、前記変更されたリソースは前記第1のアプリケーションが実行されると、前記変更されたリソースは、前記第1のリソースの代わりに用いられるように前記第1のリソースと関連していることを特徴とするシステム。
JP2011521183A 2008-07-28 2009-07-16 カスタマイズを伴うコンピュータアプリケーションパッケージ Active JP5373900B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/181,303 2008-07-28
US12/181,303 US8572580B2 (en) 2008-07-28 2008-07-28 Computer application packages with customizations
PCT/US2009/050891 WO2010014430A2 (en) 2008-07-28 2009-07-16 Computer application packages with customizations

Publications (2)

Publication Number Publication Date
JP2011529606A true JP2011529606A (ja) 2011-12-08
JP5373900B2 JP5373900B2 (ja) 2013-12-18

Family

ID=41569787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011521183A Active JP5373900B2 (ja) 2008-07-28 2009-07-16 カスタマイズを伴うコンピュータアプリケーションパッケージ

Country Status (10)

Country Link
US (1) US8572580B2 (ja)
EP (1) EP2307981A4 (ja)
JP (1) JP5373900B2 (ja)
KR (1) KR101619557B1 (ja)
CN (1) CN102105874B (ja)
AU (1) AU2009276850B2 (ja)
BR (1) BRPI0915330A2 (ja)
CA (1) CA2727521C (ja)
RU (1) RU2507570C2 (ja)
WO (1) WO2010014430A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014502396A (ja) * 2010-11-23 2014-01-30 マイクロソフト コーポレーション 効果的な仮想アプリケーションのアップデート
KR101720158B1 (ko) * 2016-07-25 2017-03-27 주식회사 티맥스 소프트 그래피컬 사용자 인터페이스 환경에서 애플리케이션 ui 개발을 지원하는 방법 및 이를 이용한 서버

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177755A1 (en) * 2007-11-13 2009-07-09 Freeman Kevin B Script serving apparatus and method
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8315996B2 (en) * 2008-08-13 2012-11-20 International Business Machines Corporation Efficient management of customized functionality within shared data objects
CN102177501B (zh) * 2008-08-25 2015-08-12 宝威电源意大利股份公司 电子设备及其管理方法
GB0820427D0 (en) * 2008-11-07 2008-12-17 Inq Entpr Ltd Mobile communication device and method
US8612994B1 (en) * 2009-03-30 2013-12-17 Symantec Corporation Methods and systems for activating and deactivating virtualization layers
US8881140B1 (en) 2009-09-04 2014-11-04 Symantec Corporation Systems and methods for virtualizing software associated with external computer hardware devices
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) * 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US20110219365A1 (en) * 2010-03-05 2011-09-08 Microsoft Corporation High and low value application state
US8826268B2 (en) 2010-03-08 2014-09-02 Microsoft Corporation Virtual software application deployment configurations
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US20110321022A1 (en) * 2010-06-25 2011-12-29 Mitel Networks Corporation Code generation through metadata programming for mobile devices and web platforms to ease access to web services
US9178766B2 (en) 2010-06-28 2015-11-03 Amazon Technologies, Inc. Provisioning multiple network resources
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
JP5618137B2 (ja) * 2010-09-08 2014-11-05 日本電気株式会社 仮想クライアントサーバ及び仮想クライアントサーバの制御方法
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9645839B2 (en) * 2010-10-27 2017-05-09 Microsoft Technology Licensing, Llc Stateful applications operating in a stateless cloud computing environment
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
US8756611B2 (en) * 2010-12-07 2014-06-17 International Business Machines Corporation Delayed expansion of values in context
US20120246634A1 (en) * 2011-03-23 2012-09-27 Dell Products L.P. Portable virtual applications
US9383985B2 (en) * 2011-06-10 2016-07-05 Unisys Corporation Automated modification of pre-generated MSI packaged applications
US8997085B2 (en) * 2011-06-24 2015-03-31 International Business Machines Corporation Image delta-based upgrade of complex stack in software appliance
KR20130067340A (ko) * 2011-12-13 2013-06-24 삼성전자주식회사 파일 관리 방법 및 장치
US9077756B1 (en) * 2012-03-05 2015-07-07 Symantec Corporation Limiting external device access to mobile computing devices according to device type and connection context
US8949930B1 (en) 2012-03-19 2015-02-03 Amazon Technologies, Inc. Template representation of security resources
US10089152B1 (en) 2012-03-19 2018-10-02 Amazon Technologies, Inc. Using scripts to bootstrap applications with metadata from a template
US8825817B1 (en) 2012-03-19 2014-09-02 Amazon Technologies, Inc. Using a template to update a stack of resources
CN102854968B (zh) * 2012-05-04 2015-04-08 北京邮电大学 一种虚拟机实时能耗计量方法
US9058219B2 (en) 2012-11-02 2015-06-16 Amazon Technologies, Inc. Custom resources in a resource stack
US20140129532A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Packaging, storing and distributing guidance packages
US20140129934A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Dynamic model-based management tooling
US9934482B2 (en) * 2013-05-24 2018-04-03 Sap Se Content maintenance optimization
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9766870B2 (en) * 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
US20140359605A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package signing
US9916157B2 (en) 2013-09-20 2018-03-13 Oracle International Corporation Workbook composer for application development framework
WO2015041829A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Runtime customization infrastructure
US20150112739A1 (en) * 2013-10-18 2015-04-23 Agreeya Mobility, Inc. Method and system for monetization of applications and services in communication devices
WO2015069912A1 (en) * 2013-11-06 2015-05-14 Improvement Interactive, LLC Dynamic application version selection
JP2015103105A (ja) * 2013-11-26 2015-06-04 株式会社リコー 通信装置、通信システム、及び通信プログラム
US10476968B2 (en) * 2014-04-01 2019-11-12 Microsoft Technology Licensing, Llc Providing a shared user experience of facilitate communication
US9959560B1 (en) 2014-08-26 2018-05-01 Intuit Inc. System and method for customizing a user experience based on automatically weighted criteria
CN104199695A (zh) * 2014-08-27 2014-12-10 浪潮软件股份有限公司 一种web应用自动升级方法
US11354755B2 (en) 2014-09-11 2022-06-07 Intuit Inc. Methods systems and articles of manufacture for using a predictive model to determine tax topics which are relevant to a taxpayer in preparing an electronic tax return
US20160098804A1 (en) * 2014-10-07 2016-04-07 Intuit Inc. Method and system for using interchangeable analytics modules to provide tax return preparation systems
US10255641B1 (en) 2014-10-31 2019-04-09 Intuit Inc. Predictive model based identification of potential errors in electronic tax return
US10096072B1 (en) 2014-10-31 2018-10-09 Intuit Inc. Method and system for reducing the presentation of less-relevant questions to users in an electronic tax return preparation interview process
US20160132314A1 (en) * 2014-11-10 2016-05-12 Amazon Technologies, Inc. Remote configuration management of applications
US20160148322A1 (en) * 2014-11-26 2016-05-26 Intuit Inc. Method and system for selecting interchangeable analytics modules to provide customized tax return preparation interviews
US10628894B1 (en) 2015-01-28 2020-04-21 Intuit Inc. Method and system for providing personalized responses to questions received from a user of an electronic tax return preparation system
US10572449B2 (en) * 2015-03-02 2020-02-25 Walmart Apollo, Llc Systems, devices, and methods for software discovery using application ID tags
US10275440B2 (en) 2015-03-16 2019-04-30 Microsoft Technology Licensing Llc Setup data extraction for deploying a solution package
US9684802B2 (en) * 2015-03-16 2017-06-20 Microsoft Technology Licensing, Llc Verification and access control for industry-specific solution package
US10176534B1 (en) 2015-04-20 2019-01-08 Intuit Inc. Method and system for providing an analytics model architecture to reduce abandonment of tax return preparation sessions by potential customers
CN106161402B (zh) * 2015-04-22 2019-07-16 阿里巴巴集团控股有限公司 基于云环境的加密机密钥注入系统、方法及装置
US10740853B1 (en) 2015-04-28 2020-08-11 Intuit Inc. Systems for allocating resources based on electronic tax return preparation program user characteristics
CN104820602A (zh) * 2015-05-18 2015-08-05 北京瑞星信息技术有限公司 软件包发布方法、装置及系统
US10191728B2 (en) * 2015-10-12 2019-01-29 Samsung Electronics Co., Ltd. System and method to reduce storage area usage of android application
US10740854B1 (en) 2015-10-28 2020-08-11 Intuit Inc. Web browsing and machine learning systems for acquiring tax data during electronic tax return preparation
US11340893B2 (en) * 2015-12-31 2022-05-24 Kony, Inc. Mobile application update preserving changes to the application made by a client
US10937109B1 (en) 2016-01-08 2021-03-02 Intuit Inc. Method and technique to calculate and provide confidence score for predicted tax due/refund
CN107077379B (zh) * 2016-04-25 2019-03-15 深圳前海达闼云端智能科技有限公司 一种虚拟机创建方法和装置
US10410295B1 (en) 2016-05-25 2019-09-10 Intuit Inc. Methods, systems and computer program products for obtaining tax data
EP3258320A1 (en) * 2016-06-17 2017-12-20 Ricoh Company, Ltd. Image forming apparatus and image forming method
WO2018016843A1 (ko) * 2016-07-20 2018-01-25 안강석 사용자 맞춤식 가치 정보 검색 및 소셜 네트워크 구성 시스템 및 그 방법
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
CN108319460B (zh) * 2018-01-24 2021-09-17 广东小天才科技有限公司 应用程序安装包的生成方法、装置、电子设备及存储介质
US10713028B2 (en) * 2018-06-05 2020-07-14 Microsoft Technology Licensing, Llc On-demand installer for resource packages
CN109189663B (zh) * 2018-07-12 2021-10-29 武汉精测电子集团股份有限公司 一种插件调试方法、测试方法及微内核架构系统
PL3836672T3 (pl) * 2018-09-17 2022-09-12 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Sposób komunikacji, urządzenie końcowe i urządzenie sieciowe
US12026056B2 (en) * 2020-03-26 2024-07-02 EMC IP Holding Company LLC Snapshot capability-aware discovery of tagged application resources
US11561672B1 (en) * 2020-07-24 2023-01-24 Tableau Software, LLC Compatibility-based feature management for data prep applications
US11288041B1 (en) * 2020-12-03 2022-03-29 International Business Machines Corporation Efficient defect location in new code versions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US20040019662A1 (en) * 2002-07-25 2004-01-29 Sridatta Viswanath Dynamic administration framework for server systems
US6697849B1 (en) * 1999-08-13 2004-02-24 Sun Microsystems, Inc. System and method for caching JavaServer Pages™ responses

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5423003A (en) * 1994-03-03 1995-06-06 Geonet Limited L.P. System for managing network computer applications
WO1998040807A2 (en) * 1997-02-27 1998-09-17 Siebel Systems, Inc. Migrating to a successive software distribution level
US5950001A (en) * 1997-06-03 1999-09-07 Sun Microsystems, Inc. Method and apparatus for customizing a software component
US6115719A (en) * 1998-11-20 2000-09-05 Revsoft Corporation Java compatible object oriented component data structure
US6675382B1 (en) * 1999-06-14 2004-01-06 Sun Microsystems, Inc. Software packaging and distribution system
US7882501B1 (en) * 1999-08-13 2011-02-01 Oracle America, Inc. System and method for enabling dynamic modifed class reloading in an application server environment
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US7051319B1 (en) * 2001-03-27 2006-05-23 Siebel Systems, Inc. Method, system, and product for upgrading software objects using inherency
US7080092B2 (en) * 2001-10-18 2006-07-18 Bea Systems, Inc. Application view component for system integration
EP1497721B1 (en) * 2002-04-11 2015-04-01 International Business Machines Corporation A software distribution method and system
CA2451164C (en) * 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
US7130863B2 (en) * 2003-09-24 2006-10-31 Tablecode Software Corporation Method for enhancing object-oriented programming through extending metadata associated with class-body class-head by adding additional metadata to the database
US7376945B1 (en) * 2003-12-02 2008-05-20 Cisco Technology, Inc. Software change modeling for network devices
US20070169045A1 (en) * 2005-12-01 2007-07-19 Microsoft Corporation Component tagging
US7735090B2 (en) * 2005-12-15 2010-06-08 International Business Machines Corporation On demand software contract modification and termination in running component assemblies
US20070180433A1 (en) * 2006-01-27 2007-08-02 International Business Machines Corporation Method to enable accurate application packaging and deployment with optimized disk space usage
US7913252B2 (en) * 2006-04-11 2011-03-22 Installfree, Inc. Portable platform for executing software applications in a virtual environment
JP4864557B2 (ja) * 2006-06-15 2012-02-01 富士通株式会社 ソフトウェアの更新処理プログラム及び更新処理装置
US8601467B2 (en) * 2006-10-03 2013-12-03 Salesforce.Com, Inc. Methods and systems for upgrading and installing application packages to an application platform
WO2008042984A2 (en) * 2006-10-03 2008-04-10 Salesforce.Com, Inc. Methods and systems for upgrading and installing application packages to an application platform
CN101038545A (zh) * 2006-11-10 2007-09-19 清华大学 操作系统内核构件跨域运行的方法
US8578350B2 (en) * 2006-11-30 2013-11-05 Ncr Corporation System and method for interpreting a specification language file to implement a business system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6697849B1 (en) * 1999-08-13 2004-02-24 Sun Microsystems, Inc. System and method for caching JavaServer Pages™ responses
US20040019662A1 (en) * 2002-07-25 2004-01-29 Sridatta Viswanath Dynamic administration framework for server systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNA200201865001; Microsoft Windows NT DRMSplus V1.1 使用手引書 FM-Server 第1版, 19970131, 第2頁-第26頁, 富士通株式会社 *
JPN6013010560; Microsoft Windows NT DRMSplus V1.1 使用手引書 FM-Server 第1版, 19970131, 第2頁-第26頁, 富士通株式会社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014502396A (ja) * 2010-11-23 2014-01-30 マイクロソフト コーポレーション 効果的な仮想アプリケーションのアップデート
KR101720158B1 (ko) * 2016-07-25 2017-03-27 주식회사 티맥스 소프트 그래피컬 사용자 인터페이스 환경에서 애플리케이션 ui 개발을 지원하는 방법 및 이를 이용한 서버

Also Published As

Publication number Publication date
AU2009276850A1 (en) 2010-02-04
US8572580B2 (en) 2013-10-29
EP2307981A2 (en) 2011-04-13
WO2010014430A3 (en) 2010-04-01
CN102105874B (zh) 2014-02-12
KR101619557B1 (ko) 2016-05-10
WO2010014430A2 (en) 2010-02-04
KR20110038053A (ko) 2011-04-13
CA2727521C (en) 2016-11-01
BRPI0915330A2 (pt) 2015-10-27
CA2727521A1 (en) 2010-02-04
RU2011103059A (ru) 2012-08-10
US20100023934A1 (en) 2010-01-28
JP5373900B2 (ja) 2013-12-18
AU2009276850B2 (en) 2014-05-22
RU2507570C2 (ru) 2014-02-20
CN102105874A (zh) 2011-06-22
EP2307981A4 (en) 2013-01-23

Similar Documents

Publication Publication Date Title
JP5373900B2 (ja) カスタマイズを伴うコンピュータアプリケーションパッケージ
US8543641B2 (en) Method and system of application delivery through application template to client device
US9880889B2 (en) Virtual application extension points
US9779111B2 (en) Method and system for configuration of virtualized software applications
US8316120B2 (en) Applicability detection using third party target state
US7530079B2 (en) Managing application customization
EP2668586B1 (en) State-based provisioning of a client
US8078649B2 (en) Method and system for centrally deploying and managing virtual software applications
US8346854B2 (en) Method and system of operating system independence
US8578367B2 (en) Method for enabling the installation of software applications on locked-down computers
US8640121B2 (en) Facilitating multi-installer product installations
US11775475B2 (en) Deferred path resolution during container deployment
JP2008507775A (ja) ソフトウェアアプリケーションリポジトリ内のアプリケーションメタ情報の抽出と作成のためのシステムおよび方法
US10101915B2 (en) Methods and apparatus to manage inter-virtual disk relations in a modularized virtualization topology using virtual hard disks
US20100169881A1 (en) Method and system for efficient image customization for mass deployment
US9459859B2 (en) Template derivation for configuration object management
US9804789B2 (en) Methods and apparatus to apply a modularized virtualization topology using virtual hard disks
US20050091259A1 (en) Framework to build, deploy, service, and manage customizable and configurable re-usable applications
US20070234359A1 (en) Isolation of application execution
JP5951002B2 (ja) 選択的ポリシーによるホストと複数のゲストとの間での構成要素伝播の実現
US9917922B2 (en) Extensibility bundles for a cloud and devices suite
US20200358874A1 (en) Persisting user configuration settings on write filter enabled devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130718

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20130718

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130919

R150 Certificate of patent or registration of utility model

Ref document number: 5373900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250