JP6192534B2 - 仮想アプリケーション拡張ポイント - Google Patents

仮想アプリケーション拡張ポイント Download PDF

Info

Publication number
JP6192534B2
JP6192534B2 JP2013503780A JP2013503780A JP6192534B2 JP 6192534 B2 JP6192534 B2 JP 6192534B2 JP 2013503780 A JP2013503780 A JP 2013503780A JP 2013503780 A JP2013503780 A JP 2013503780A JP 6192534 B2 JP6192534 B2 JP 6192534B2
Authority
JP
Japan
Prior art keywords
application
link
namespace
stored
virtual 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.)
Active
Application number
JP2013503780A
Other languages
English (en)
Other versions
JP2013524365A (ja
JP2013524365A5 (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 JP2013524365A publication Critical patent/JP2013524365A/ja
Publication of JP2013524365A5 publication Critical patent/JP2013524365A5/ja
Application granted granted Critical
Publication of JP6192534B2 publication Critical patent/JP6192534B2/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
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、アプリケーション仮想化に関する。
アプリケーション仮想化は、アプリケーションを、ホストオペレーティングシステムから、またはオペレーティングシステム内で動作可能な他のアプリケーションから独立させる技術である。アプリケーション仮想化は、その他の形では互換性のない2つ以上のアプリケーションを、同じオペレーティングシステム上で、サイドバイサイドで実行することを可能とするなど、多くの利点を有し得る。多くの場合、仮想アプリケーションを構成し、管理する方が、ホストアプリケーションをインストールするよりも遙かに簡単となり得る。
仮想アプリケーションは、ホストオペレーティングシステム内のいくつかの拡張ポイントで構成することができる。仮想アプリケーションは、プライベート名前空間で構成することができ、このプライベート名前空間内には、レジストリ設定、動的にリンクされたライブラリ、および他のコンポーネントなどの様々なコンポーネントを駐在させることができる。構成中、仮想アプリケーションのプライベート名前空間内のオブジェクトをポインティングする(point)ことができるリンクを、ホストオペレーティングシステム内に配置することができ、したがってオペレーティングシステム、および他のアプリケーションによって、仮想アプリケーションを起動、制御、またはその他の形で相互作用することができる。こうしたリンクは、ファイルシステム、レジストリ、または他の位置に配置することができ、他の仮想アプリケーションを含めて、他のアプリケーションからも利用可能となり得る。構成ルーチンによって、アプリケーションを構成し得る時点で、ホストオペレーティングシステム内にリンクを配置することができる。
この「概要」は、以下の「詳細な説明」でさらに説明する概念の抜粋を簡略化した形で示すものである。この「概要」は、特許請求する主題の重要な特徴または本質的な特徴を特定するためのものでも、特許請求する主題の範囲を限定するものでもない。
仮想化アプリケーションを備えたシステムを示す実施形態の図である。 仮想化アプリケーションをインストールする方法を示す実施形態の流れ図である。 プライベート名前空間へのリンクに応答する方法を示す実施形態の流れ図である。
仮想アプリケーションは、ホストオペレーティングシステムのパブリック名前空間から、仮想アプリケーションが使用するプライベート名前空間へのポインタを用いて、ホストオペレーティングシステムで実行することができる。ポインタは、例えば、ホストオペレーティングシステムのレジストリ、およびファイルシステム内に駐在させることができ、それによって他のアプリケーションおよびオペレーティングシステムが、仮想アプリケーションにアクセス、制御、および動作することが可能となり得る。
仮想アプリケーションは、ホストオペレーティングシステム内に、アプリケーションバーチャライザ内のプライベート名前空間へのリンクを構築することができるインストールプログラムによって構成し、利用することができる。インストールプログラムは、アプリケーションバーチャライザをインストールすることができ、したがってユーザまたは別のアプリケーションによって、仮想アプリケーションを起動し、相互作用することができるようになる。
多くの実施形態では、ユーザは、アプリケーションバーチャライザ内で動作する仮想アプリケーションが、あたかもその仮想アプリケーションが、ホストオペレーティングシステムでネイティブに(natively)実行しているかのように体感することができる。仮想アプリケーションは、グラフィカルユーザインタフェースを提示することができ、カットアンドペースト機能、および類似の他のグラフィカルユーザインタフェース要素など、ネイティブに実行しているアプリケーションと同様に相互作用することが可能となり得る。
仮想アプリケーションは、アプリケーションバーチャライザ内で動作することができ、プライベート名前空間、およびその仮想アプリケーションが利用可能なホストオペレーティングシステムの名前空間を有することができる。かかる構成によって、仮想アプリケーションは、仮想アプリケーション用の多くのデータソースを、プライベート名前空間内に保持しながら、ホストオペレーティングシステムのファイルシステム、レジストリ、および他の機能にアクセスすることが可能となり得る。
本明細書全体を通して、同じ参照番号は、図の説明全体を通して同じ要素を示す。
要素が「接続される」または「結合される」と称する場合、それらの要素は、互いに直接接続または結合されることがあり、または1つもしくは複数の介在要素が存在してもよい。一方、要素が「直接接続される」または「直接結合される」と称する場合、介在要素は存在しない。
主題は、デバイス、システム、方法、および/またはコンピュータプログラム製品として実施することができる。したがって、主題の一部または全ては、ハードウェア、および/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、ステートマシン、ゲートアレイ他を含む)として実施することができる。さらに、主題は、命令実行システムによって、または命令実行システムと共に使用される媒体において実施される、コンピュータ使用可能またはコンピュータ可読のプログラムコードを有するコンピュータ使用可能またはコンピュータ可読の記憶媒体上のコンピュータプログラム製品の形を取ることができる。本明細書において、コンピュータ使用可能またはコンピュータ可読の媒体とは、命令実行システム、装置、またはデバイスによって、またはそれらと共に使用されるプログラムを保存、記憶、通信、伝搬、または転送することができる任意の媒体でよい。
コンピュータ使用可能またはコンピュータ可読の媒体は、それだけに限られるものではないが、例えば、電子、磁気、光学、電磁、赤外線、または半導体システム、装置、デバイス、または伝搬媒体でよい。限定ではなく、例によって示すものであるが、コンピュータ可読媒体は、コンピュータ記憶媒体、および通信媒体を備えることができる。
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための、任意の方法または技術で実装される揮発性、および不揮発性の、取外し可能な媒体、および取外し不可能な媒体が含まれる。コンピュータ記憶媒体には、それだけに限られるものではないが、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、DVD(digital versatile disk)、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、かつ命令実行システムによってアクセスすることができる他の任意の媒体が含まれる。コンピュータ使用可能またはコンピュータ可読の媒体は、プログラムがその上に印刷された紙または他の適切な媒体でよいことに留意されたい。というのは、こうしたプログラムは、例えば、紙または他の適切な媒体の光学走査を介して電子的に取り込み、次いで、必要に応じてコンパイル、解釈、またはその他の適切な形で処理し、その後コンピュータメモリに記憶できるためである。
通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の転送機構などの変調されたデータ信号の形の他のデータを実施するものであり、いかなる情報伝達媒体も含まれる。用語「変調されたデータ信号」とは、1つまたは複数のその特性セット(characteristics set)を有する信号、または信号内の情報を符合化する形で変更された信号として定義することができる。限定ではなく、例によって示すものであるが、通信媒体には、有線ネットワーク、または直接有線接続などの有線媒体、およびアコースティック、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上述したもののいかなる組合せもやはり、コンピュータ可読媒体の範囲内に含まれるべきである。
主題がコンピュータ実行可能な命令の一般的な例として実施される場合、その実施形態は、1つまたは複数のシステム、コンピュータ、または他のデバイスによって実行されるプログラムモジュールを備えることができる。一般に、プログラムモジュールは、特定のタスクを実施する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能は、様々な実施形態において、必要に応じて、組み合わせる、または分散させることができる。
図1は、仮想化アプリケーションを備えたシステムを示す実施形態100の図である。実施形態100は、仮想化アプリケーションを、完全にインストールされた構成、またはストリーミング構成のいずれかで有することができるシステムの簡略化した例である。
図1の図は、システムの機能コンポーネントを示す。場合によって、コンポーネントは、ハードウェアコンポーネント、ソフトウェアコンポーネント、またはハードウェアとソフトウェアの組合せでよい。コンポーネントのいくつかは、アプリケーションレベルのソフトウェアでよく、他のコンポーネントは、オペレーティングシステムレベルのコンポーネントでよい。ある場合には、一コンポーネントを別のコンポーネントに接続するには、近距離接続でよく、その場合2つ以上のコンポーネントが単一のハードウェアプラットフォーム上で動作することになる。他の場合には、接続は、長距離に及ぶネットワーク接続を介して行うことができる。各実施形態で、異なるハードウェア、ソフトウェア、および相互接続アーキテクチャを用いて、上述の機能を実現することができる。
実施形態100は、あるアプリケーションを仮想化した形で実行することができるシステムの例である。仮想化した形では、アプリケーションを他のアプリケーションから、かつオペレーティングシステムから独立させることができる。アプリケーションバーチャライザは、仮想化アプリケーションがリファレンスすることができるプライベート名前空間を構築することによって、分離層(separation layer)を設けることができる。アプリケーションバーチャライザによって、アプリケーションは、プライベート名前空間をまずリファレンスすることが可能となり、プライベート名前空間にリファレンスが見当たらない場合、アプリケーションは、次いでパブリック名前空間内の項目をリファレンスすることが可能となり得る。
プライベート名前空間は、ファイル、ライブラリ、アセンブリ、レジストリ設定、および多くの異なる機能について仮想化アプリケーションが使用することができる他の変数などの項目を含むことができる。ある場合には、プライベート名前空間内の項目によって、仮想アプリケーションを起動することができ、時には、かかる起動項目は、仮想アプリケーションを実行する際にその仮想アプリケーションが消化することができる変数または他の情報と共に受け取ることができる。他の場合では、プライベート名前空間内の項目に、照会可能な値を含めることができる。
実施形態100のアプリケーション仮想化システムは、プライベート名前空間内の項目をポインティングすることができるリンクまたはリファレンスをパブリック名前空間内に含むことができる。こうしたリンクは、様々なアプリケーション向けの機構とすることができ、ユーザ入力を誘導して仮想アプリケーションにアクセスすることができる。ある場合には、かかるリンクを一仮想アプリケーションで用いて、別の仮想アプリケーションと通信する、または呼び出すことができる。
リンクの一使用例として、ファイルの種類の関連付けに使用することができる。いくつかのオペレーティングシステムでは、あるファイルの種類を特定のアプリケーションと関連付けることが可能となり得る。ファイルブラウザまたは他の機構を用いてファイルが「開」にされると、レジストリまたは他の位置にある、ファイルの種類を関連付けるエントリを照会して、もしあれば、どのアプリケーションをそのファイルの種類と関連付けることができるか判定することができる。仮想化アプリケーションの場合、プライベート名前空間内に、仮想アプリケーションをファイルの種類と関連付けるリンクを構築することができる。多くのオペレーティングシステムでは、かかるリンクは、オペレーティングシステムのレジストリ内に配置することができる。
こうしたリンクは、仮想アプリケーションのインストール工程中に構築することができる。インストール工程では、アプリケーションバーチャライザ、およびアプリケーションを実行するために使用することができる他のコンポーネントをインストールすることができ、また、仮想アプリケーション用のプライベート名前空間内の項目をリファレンスする様々なリンクをパブリック名前空間内に構成することができる。パブリックリンクは、他のアプリケーションからもアクセス可能とすることができ、リンクがリファレンスされると、アプリケーションバーチャライザによってインターセプトし、処理することができる。
アプリケーションバーチャライザは、プライベート名前空間内部のある位置へのリンクを受け取り、そのリンクに基づいていくつかの行為を実施することができる。ある場合には、アプリケーションバーチャライザは、アプリケーションを起動することができる。ある場合には、アプリケーションを起動し、リンクと共に受け取ったパラメータをアプリケーションに渡すことができる。さらに他の場合には、アプリケーションバーチャライザは、リンクの要求に基づいて、プライベート名前空間内の値を送り返すことができる。
仮想化アプリケーションは、ストリーム配信アプリケーション(streamed application)でもよい。ストリーム配信アプリケーションでは、アプリケーションを実行している際の要求に基づいて、アプリケーションの一部分をストリーミングサーバからダウンロードすることができる。クライアントデバイス上のストリーミングクライアントは、アプリケーションによって一部分をリファレンスする際に、その一部分をストリーミングサーバから要求することができる。
実施形態100は、ハードウェアコンポーネント104、およびソフトウェアコンポーネント106を含む従来のコンピューティングデバイスを表すことができるデバイス102を例示している。デバイス102は、デスクトップコンピュータ、サーバコンピュータ、ゲームコンソール、ネットワーク機器、または他のデバイスなど、任意の種類のコンピューティングデバイスでよい。ある場合には、デバイス102は、ラップトップコンピュータ、ネットブックコンピュータ、携帯情報端末、携帯電話、または他のデバイスなどの携帯式デバイスでよい。
ハードウェアコンポーネント104は、プロセッサ108、ランダムアクセスメモリ110、および不揮発性記憶装置112を含むことができる。ハードウェアコンポーネント104はまた、ネットワークインターフェイス114、およびユーザインターフェイス116を含むことができる。
ソフトウェアコンポーネント106は、パブリック名前空間120を含むことができるオペレーティングシステム118を含むことができる。パブリック名前空間120は、レジストリ122、およびファイルシステム124を含むことができる。
パブリック名前空間120は、オペレーティングシステムが追跡し、オペレーティングシステム内で実行するアプリケーションが利用可能な、様々な項目を含むことができる。多くの実施形態では、パブリック名前空間120へのアクセスは、ある場合に制限することができる。例えば、オペレーティングシステムは、ユーザ、デバイス、アプリケーション、または項目にアクセスしようとする他のエンティティによって提示される資格情報に基づいて、パブリック名前空間120のある部分へのアクセスを許可または拒否できるアクセス制限を有することができる。
パブリック名前空間120は、オペレーティングシステム118によって管理され、アクセス制限を条件として、異なるアプリケーションおよびユーザによって利用可能となり得るので、このパブリック名前空間120は「パブリック」と呼ばれる。仮想アプリケーションは、プライベート名前空間を有することができ、このプライベート名前空間は、その仮想アプリケーションには利用可能であるが、一般に、他のアプリケーションからは検索またはアクセスすることができないので、「プライベート」である。
ネイティブアプリケーション126は、オペレーティングシステム118のパブリック名前空間120内で実行するアプリケーションとすることができる。ネイティブアプリケーションは、従来の、非仮想化アプリケーションでよい。
インストールアプリケーション128を用いて、デバイス102上に仮想アプリケーションをインストールし、構成することができる。インストールアプリケーション128は、仮想アプリケーションをデバイス102上でうまく実行できるように、いくつかの異なる機能を実施することができ、こうした機能には、プライベート名前空間を構築するステップ、ならびにパブリック名前空間120の位置からプライベート名前空間へのリンク123および125を設けるステップが含まれる。リンク123および125は、パブリック名前空間のレジストリ122、およびファイルシステム124の内部にそれぞれ存在するように例示されており、これらのリンクは、仮想アプリケーションへのエントリポイントとなり得る。インストールアプリケーション128によって実施することができる工程の例については、本明細書の後半に示す実施形態200で理解できよう。
アプリケーションバーチャライザ130は、インストールアプリケーション128によってインストールすることができ、アプリケーションを仮想的な形で実行する機構でよい。アプリケーションバーチャライザ130は、プライベートファイルシステム134、ならびにレジストリ136用のプライベートエントリを含むことができるプライベート名前空間132を管理することができる。仮想アプリケーション138は、アプリケーションバーチャライザ130によって実行することができ、プライベート名前空間132にアクセスすることができる。
ストリーミング仮想化アプリケーションもやはり、インストールアプリケーション128によってインストールすることができる。ストリーミング版では、プライベートファイルシステム144、およびレジストリ146用のプライベートエントリを含むプライベート名前空間142を含むアプリケーションバーチャライザ140を含むことができる。仮想アプリケーションとは異なり、ストリーミングクライアント148は、アプリケーションまたはアプリケーションバーチャライザ140によってアプリケーションの一部分が要求されたときに、その部分をストリーミングサーバ168からフェッチすることができる。いくつかの実施形態では、ストリーミングクライアント148は、プライベートファイルシステム144内のファイル、およびレジストリ146用のプライベートエントリを含めて、プライベート名前空間142の一部分をフェッチすることができる。
プライベート名前空間132および142は、仮想アプリケーション138から、または仮想アプリケーション実行時に、ストリーミングクライアント148によって供給される仮想アプリケーションからアクセス可能となり得る。プライベート名前空間132および142はまた、プライベート名前空間132および142にポインティングできるリンク123および125を介してアクセス可能となり得、それによって他のアプリケーションが、仮想アプリケーション、その設定、および他の情報に直接アクセスすることが可能となり得る。
デバイス102は、ネットワーク150に接続されているとして例示され、このネットワーク150には、インストールサーバ152、およびストリーミングサーバ168を接続することができる。
インストールサーバ152は、異なる仮想アプリケーションをインストールするためにデバイス102によって使用できるいくつかのインストールパッケージ154を含むことができる。インストールパッケージ154は、インストールクライアント156を含むことができ、このインストールクライアント156は、クライアントデバイス102上で動作して、仮想アプリケーションを実行可能に構成する、実行可能なインストールアプリケーション128でよい。
インストールパッケージ154は、アプリケーションを仮想的な形で実行するために使用できるコンポーネントを全て含むことができる。例えば、インストールパッケージ154は、アプリケーションバーチャライザ158を含むことができる。アプリケーションバーチャライザ158は、クライアントデバイス上でネイティブに実行することができ、かつ仮想アプリケーション用のリソースとなり得るようにインストールすることができる。
インストールパッケージ154は、ファイル162、およびレジストリ164用のエントリを含むことができるプライベート名前空間160を含むことができる。プライベート名前空間160は、仮想アプリケーション166を表すファイルを全て含むことができるという点において、完全に組み込む(fully populate)ことができる。ある場合には、インストールパッケージ154内のプライベート名前空間160は、フレームワーク、または部分的に組み込まれた(sparsely populate)ファイル、レジストリ設定、および他の項目の組を含むことができ、このフレームワークは、アプリケーション166、またはアプリケーションバーチャライザ158によってさらに組み込むことができる。
インストールパッケージ154は、マニフェスト163を含むことができる。マニフェスト163は、パブリック名前空間内に配置されたリンクを含むことができ、プライベート名前空間160をポインティングすることができる。マニフェスト163は、インストール中にインストールクライアント156によって処理できる追加の項目を含むことができる。
インストールサーバ152は、仮想アプリケーションを、クライアントデバイス102上でインストールし、実行する前に、どのように準備することができるかの一例を示している。インストールサーバ152は、様々なクライアントデバイス上でダウンロードし、インストールできる多くの異なるパッケージ154を含むことができる。いくつかの実施形態では、インストールパッケージ154は、DVD(Digital Versatile Disk)、または他の記憶媒体に記憶することができ、クライアントデバイス102によって読み取って、そのアプリケーションをインストールすることができる。
インストールパッケージ154は、完全インストール用、ならびにストリーミングアプリケーション用に構築することができる。完全インストールでは、インストールパッケージ154は、実行可能なファイル、およびデータファイルを含めて、全てのファイルを含むことができ、また、仮想アプリケーションを実行可能にする他の任意のリソースも含むことができる。完全インストールでは、クライアントデバイス102は、例えばストリーミングサーバ168などの追加のいかなるリソースも必要なく、アプリケーションを完全に実行することが可能となり得る。
ストリーミングアプリケーションは、ストリーミングサーバ168から、仮想アプリケーション用の実行可能なファイル、およびデータファイルの大部分を取得することができる。ストリーミングアプリケーションは、アプリケーションバーチャライザ158、およびストリーミングクライアントを単にインストールするだけで、インストールすることができる。ストリーミングクライアントは、ストリーミングサーバ168と通信して、要求に応じて、アプリケーションの一部分を取得することができる。ある場合には、ストリーミングアプリケーションは、ローカルキャッシュに記憶することができ、アプリケーションを再度実行するときに、再度使用することができる。
ストリーミング実施形態では、アプリケーションを起動する度に、クライアントデバイス102とストリーミングサーバ168間で通信を行って、アプリケーションの最新版を特定し、取得することができる。ストリーミングサーバ168は、アプリケーションを実行開始できるように、アプリケーションの小部分をクライアントデバイス102に伝送することができ、その後、そのアプリケーションによって追加の部分が要求されると、その追加の部分を伝送することができる。ストリーミングクライアントは、どの部分が要求されているかを監視し、それらの部分をストリーミングサーバ168から取得することができる。
ストリーミングサーバ168は、いくつかのストリーミングパッケージ170を含むことができ、それぞれが異なるアプリケーションを表すことができる。アプリケーションストリーマ172は、ストリーミングクライアントと通信して、ストリーミングパッケージ170の、ストリーミングクライアントから要求され得る部分を、ダウンロードすることができる。
各ストリーミングパッケージ170は、ファイル176、およびレジストリ178用の設定を含むことができるプライベート名前空間174を含むことができる。ファイル176は、仮想化アプリケーション180用の実行可能なファイルの全て、または一部分を含むことができる。
図2は、仮想アプリケーションをインストールする方法を示す実施形態200の流れ図である。実施形態200は、インストールアプリケーションによって実施することができる方法の一例であり、このインストールアプリケーションは、オペレーティングシステム上でネイティブに実行して、コンポーネントをインストールし、構成することができ、それによって仮想アプリケーションを実行することができる。実施形態200は、実施形態100のインストールアプリケーション128または156などのインストールアプリケーションによって実施することができる工程の一例である。
他の実施形態では、異なる順序付け、追加のステップまたはより少ないステップ、および異なる呼称または用語を用いて、同様の機能を果たすことができる。いくつかの実施形態では、様々な動作または動作の組を、他の動作と同期して、または非同期の形で並行して実施することができる。本明細書で選択した諸ステップは、いくつかの動作の原理を簡略化した形で例示するために選択したものである。
実施形態200は、仮想アプリケーションをクライアントデバイス上で動作させるように構成することができる一機構を例示している。実施形態200の方法は、ネイティブに動作することができる実行可能なプログラムをインストールし、それによってアプリケーションを独立させ、次いで、そのアプリケーション用のプライベート名前空間に組み込むことができる。この方法はまた、パブリック名前空間からプライベート名前空間内の位置へのリンクを含むことができる。
ブロック202で、インストールパッケージを受け取ることができ、ブロック204で、インストールアプリケーションは、実行を開始することができる。インストールアプリケーションの動作は、実施形態200の残る部分に影響を及ぼし得る。
ブロック206で、インストールアプリケーションは、事前にインストールされたアプリケーションバーチャライザがあるかを検索することができる。ブロック208で、アプリケーションバーチャライザがインストールされていなかった場合、ブロック210で、アプリケーションバーチャライザをインストールする。
ブロック212で、プライベート名前空間の新しいインスタンスを生成することができる。事前にインストールされたアプリケーションバーチャライザがあった場合、プライベート名前空間の新しいインスタンスによって、一アプリケーションバーチャライザが2つ以上の仮想アプリケーションを実行することが可能となり、それぞれがそれ自体のプライベート名前空間を有することになる。いくつかの実施形態では、アプリケーションバーチャライザの第2のインスタンスを実行して、第2の仮想アプリケーションを支持することができ、他の実施形態では、アプリケーションバーチャライザの単一のインスタンスによって、2つ以上の仮想化アプリケーションを、独立に、しかし同時に実行可能とすることができる。
ブロック214で、マニフェスト内のリンクを処理することができる。マニフェストは、インストールアプリケーションによって処理すべき項目を含む、テキストファイルまたはXMLファイルなどの一覧でよい。ブロック214の各リンクについて、ブロック216で、リンクをパブリック名前空間内にインストールし、プライベート名前空間内のある位置にリンクさせることができる。リンクは、ポインタ、リファレンス、位置、またはパブリック名前空間からアクセスすることができ、プライベート名前空間へのアクセスを可能とする他の識別子でよい。
使用の一シナリオとして、仮想アプリケーションを、特定のファイルの種類と関連付けることができるアプリケーションとして登録することが可能である。多くのオペレーティングシステムでは、特定のファイル名拡張子を備えたファイルを、そのファイルを開き、処理することができる特定のアプリケーションに関連付けることができる。例えば、あるレジストリ設定は、ファイル名が「.docx」で終わる各ファイルを、特定のワードプロセッシングアプリケーションと関連付けるものとして定義することができる。ワードプロセッシングアプリケーションが仮想アプリケーションである場合、レジストリ内のリンクによって、仮想アプリケーションのプライベート名前空間をポインティングすることができ、それによって仮想化ワードプロセッシングアプリケーションを実行することができる。
ブロック216で確立されたいくつかのリンクによって、仮想アプリケーションを起動することができる。かかるリンクのいくつかは、パラメータ、または他の情報をそのアプリケーションに渡し、それによってアプリケーションがその情報を処理可能にすることができる。いくつかの例では、仮想アプリケーションは、コールに応答して値または他の情報を送り返すことができる。
ある場合には、ブロック216で確立されたリンクは、プライベート名前空間内のファイル、または設定に記憶することができる構成情報をポインティングすることができる。かかる場合、リンクは、ファイルまたは設定をトラバースして(traverse)調べ、その位置に記憶することができる値または他の情報を送り返すことができる。
ブロック214で、各リンクをインストールした後、アプリケーションを構成することができる。
ブロック218で、アプリケーションがストリーミングアプリケーションである場合、ブロック220で、ストリーミングクライアントをインストールし、ブロック222で、構成することができる。ストリーミングクライアントは、ストリーミングサーバと通信して、アプリケーションが一部分を要求するときに、アプリケーションのその部分をフェッチすることができる。ブロック222における構成には、ストリーミングサーバのアドレスをインストールするステップ、およびストリーミングクライアントによって使用できる他のパラメータを構成するステップが含まれ得る。ブロック222における構成後、ブロック228で、インストールを完了することができる。
ブロック218で、アプリケーションがストリーミングクライアントでない場合、ブロック224で、プライベート名前空間の全項目をインストールすることができ、ブロック226で、続いてアプリケーションをインストールすることができる。ブロック224および226の動作は、仮想アプリケーションの完全インストールを表すことができる。アプリケーションは完全にインストールすることができ、したがってこのアプリケーションは、あるデバイス上で、他のデバイスにアクセスすることなく実行することができる。ブロック226におけるインストール後、ブロック228で、インストールを完了することができる。
図3は、プライベート名前空間へのリンクに応答する方法を示す実施形態300の流れ図である。実施形態300は、パブリック名前空間からのリンクがプライベート名前空間に入る際にアプリケーションバーチャライザによって実施することができるいくつかの動作の簡略化した例である。
他の実施形態では、異なる順序付け、追加のステップまたはより少ないステップ、および異なる呼称または用語を用いて、同様の機能を果たすことができる。いくつかの実施形態では、様々な動作または動作の組を、他の動作と同期して、または非同期の形で並行して実施することができる。本明細書で選択した諸ステップは、いくつかの動作の原理を簡略化した形で例示するために選択したものである。
実施形態300は、アプリケーションバーチャライザによって実施することができる工程のいくつかの例である。アプリケーションバーチャライザは、パブリック名前空間内で利用可能なリンクからプライベート名前空間へのリファレンスを監視することができる。アプリケーションバーチャライザは、パブリック名前空間からのリンクをインターセプトすることができ、また、プライベート名前空間への接続を可能とする。
ブロック302で、パブリック名前空間内のリンクをリファレンスすることができる。リンクは、アプリケーションが、例えば、キーの値を求めるためにレジストリに照会を行う際にリファレンスすることができる。別の例では、ユーザが、スタートメニューにある、パブリック名前空間内からプライベート名前空間内の実行可能なファイルへのリンクをリファレンスするショートカットをクリックすることができる。
さらに別の実施形態では、ユーザが、コマンドシェルを用い、パイプラインコマンドによって、一アプリケーションの出力を仮想アプリケーションに接続することができる。仮想アプリケーションは、プライベート名前空間内の別の位置にリンクすることができるパブリック名前空間内の名前を用いてリファレンスすることができる。
ブロック304で、アプリケーションバーチャライザは、プライベート名前空間にリンクすることができるリファレンスを受け取ることができる。ブロック306で、リンクを求める要求を、プライベート名前空間の値を読み取ることによって扱うことができ、アプリケーションを起動しない場合、ブロック308で、その値を取得し、ブロック310で、その値を要求者に送り返すこと(return)ができる。
ブロック306で、仮想アプリケーションを起動することによって要求を満たすことができる場合、ブロック312で、仮想環境内でアプリケーションを起動することができる。ブロック304で受け取ったリファレンスに、パラメータ、値、または他の情報が含まれていた場合、ブロック314で、そうした情報をアプリケーションに渡すことができる。
いくつかのリファレンスによって、アプリケーションを起動し、値を受け取ることができる。例えば、オペレーティングシステムは、ファイルの種類の関連付けを用いて、開くべき特定のファイルの種類の選択をユーザから受け取ることができ、次いで、オペレーティングシステムは、パブリック名前空間内のファイルの種類の関連付けを探すことができる。ファイルの種類の関連付けは、プライベート名前空間にリンクさせることができ、その時点で、ブロック312で、アプリケーションバーチャライザがアプリケーションを起動し、ブロック314で、そのアプリケーションにファイル名を渡すことができる。その後、アプリケーションは、ファイルを開いて、動作を開始することができる。
かかる例では、仮想アプリケーションによって生成されたユーザインターフェイスをユーザに提示することができ、ユーザは、そのアプリケーションと相互作用し始めることができる。かかる例では、ブロック316で、アプリケーションから応答がないことが予測され得、仮想アプリケーションは、受け取った値を用いて実行することができる。
別の例では、仮想アプリケーションは、パイプラインコマンドを用いてコマンドシェル内においてリファレンスすることができる。パイプラインコマンドは、一アプリケーションの出力を別のアプリケーションの入力に誘導することができる。時には、2つ、3つ、またはより多くのアプリケーションをパイプラインで一体にすることができる。かかる例では、仮想アプリケーションは、一アプリケーションから入力を受け取り、別のアプリケーションによって消化することができる出力で応答することができる。かかる例では、ブロック316で、応答があることが予測され、ブロック320で、アプリケーションバーチャライザは、応答値を用いて応答することができる。
主題の前述の説明は、例示および説明の目的で提示してきたものである。主題を開示の厳密な形で網羅するものでも、またはそのように限定するものでもなく、上記の教示に照らして、他の改変形態、および変形形態が考えられ得る。諸実施形態は、本発明の原理、およびその実際的な応用例を最も良く説明し、それによって、他の当業者が、企図される特定の使用に適した様々な実施形態、および様々な改変形態において本発明を最も良く利用することができるようにするために選択し、説明したものである。添付の特許請求の範囲は、従来技術によって限定される場合を除き、他の代替的実施形態も含むものとして解釈されるものである。

Claims (20)

  1. デバイスで仮想アプリケーションを動作させるためにコンピュータプロセッサにより実施される方法であって、
    アプリケーションバーチャライザを前記デバイスにインストールするステップであって、前記アプリケーションバーチャライザは、前記仮想アプリケーションを実行し、該仮想アプリケーションに関する1つ又は複数の項目を記憶するプライベート名前空間を管理するように構成され、記憶された前記1つ又は複数の項目は、ファイルの種類の関連付けの定義を含み、該ファイルの種類の関連付けは、前記仮想アプリケーションを特定のファイルの種類に関連付け、該プライベート名前空間は、当該プライベート名前空間に記憶された前記項目は前記仮想アプリケーションにより概してアクセス可能であるが、前記デバイス上の他のアプリケーションは前記プライベート名前空間に記憶された前記項目にネイティブにアクセスすることを妨げられるように、前記仮想アプリケーションに対してプライベートである、ステップと、
    前記プライベート名前空間へのリンクを定めるステップであって、前記リンクは、記憶された前記1つ又は複数の項目から選択された、記憶されたある項目にアクセスするための拡張ポイントを提供し、前記リンクは、前記他のアプリケーションが前記仮想アプリケーションと、記憶された前記ある項目にアクセスすることによる特定の手法で相互作用可能なように構成され、前記相互作用は、前記他のアプリケーションが、前記ファイルの種類の関連付けにアクセスすることにより、前記仮想アプリケーションを起動することを含む、ステップと、
    前記他のアプリケーションによりアクセス可能な前記リンクを、該リンクを前記デバイスのホストオペレーティングシステムのパブリック名前空間に記憶することにより作成するステップと、
    前記リンクの選択を含むコマンドを前記アプリケーションバーチャライザで受けるステップであって、前記リンクは、前記パブリック名前空間から、前記他のアプリケーションのうちのあるアプリケーションによって選択されたものである、ステップと、
    前記リンクの選択を受けることに応答して、
    記憶された前記ある項目を前記リンクから識別し、
    前記あるアプリケーションが前記仮想アプリケーションと、記憶された前記ある項目へのアクセスを介した前記特定の手法で相互作用することを可能にする
    ステップと
    を含むことを特徴とする方法。
  2. 第2のリンクを前記プライベート名前空間に定めるステップであって、前記第2のリンクは、記憶された前記1つ又は複数の項目から選択された、記憶された第2の項目にアクセスするための拡張ポイントを提供し、前記第2のリンクは、前記他のアプリケーションが前記仮想アプリケーションと、記憶された前記第2の項目にアクセスすることによる特定の手法で相互作用することを可能にするように構成される、ステップと、
    前記他のアプリケーションによりアクセス可能な前記第2のリンクを、該第2のリンクを前記パブリック名前空間に記憶することによって作成するステップと、
    前記第2のリンクの選択を含む第2のコマンドを前記アプリケーションバーチャライザで受けるステップであって、前記第2のリンクは、前記パブリック名前空間から、前記他のアプリケーションのうちの第2のアプリケーションにより選択されたものである、ステップと、
    前記第2のリンクの選択を受けることに応答して、
    記憶された前記第2の項目を前記第2のリンクから識別し、
    前記第2のアプリケーションが前記仮想アプリケーションと、記憶された前記第2の項目へのアクセスを介した第2の特定の手法で相互作用することを可能にする
    ステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記第2のリンクは、ホストファイルシステム内に配置されることを特徴とする請求項2に記載の方法。
  4. 前記第2のリンクは、ホストレジストリ内に配置されることを特徴とする請求項2に記載の方法。
  5. 前記プライベート名前空間は、前記仮想アプリケーション用の実行可能なコードを備えることを特徴とする請求項1に記載の方法。
  6. 前記プライベート名前空間は、前記仮想アプリケーション用のレジストリ設定を備えることを特徴とする請求項5に記載の方法。
  7. 前記アプリケーションバーチャライザと、前記リンクとは、インストールパッケージ内に設けられることを特徴とする請求項1に記載の方法。
  8. 前記インストールパッケージは、
    前記リンクを備えるマニフェストを読み取り、
    前記ホストオペレーティングシステム内に前記リンクを構築する
    インストールプログラムを備えることを特徴とする請求項7に記載の方法。
  9. 前記リンクの選択を含むコマンドを受けるステップは、該コマンドを、前記デバイスの第2のアプリケーションバーチャライザ内で実行される第2の仮想アプリケーションから受けるステップを含むことを特徴とする請求項1に記載の方法。
  10. 前記仮想アプリケーションは、前記アプリケーションバーチャライザにストリーム配信されることを特徴とする請求項1に記載の方法。
  11. デバイスが、アプリケーションバーチャライザを前記デバイスにインストールするステップであって、前記アプリケーションバーチャライザは、仮想アプリケーションを実行し、該仮想アプリケーションに関する1つ又は複数の項目を記憶するプライベート名前空間を管理するように構成され、記憶された前記1つ又は複数の項目は、ファイルの種類の関連付けの定義を含み、該ファイルの種類の関連付けは、前記仮想アプリケーションを特定のファイルの種類に関連付け、前記プライベート名前空間は、当該プライベート名前空間に記憶された前記項目は前記仮想アプリケーションにより概してアクセス可能であるが、前記デバイス上の他のアプリケーションは前記プライベート名前空間に記憶された前記項目にネイティブにアクセスすることを妨げられるように、前記仮想アプリケーションに対してプライベートである、ステップと、
    前記デバイスが、前記プライベート名前空間へのリンクを定めるステップであって、前記リンクは、前記ファイルの種類の関連付けにアクセスするための拡張ポイントを提供し、前記リンクはマニフェストにおいて定義され、前記リンクは、前記他のアプリケーションが前記仮想アプリケーションを前記ファイルの種類の関連付けにアクセスすることにより起動することを可能にする、ステップと、
    前記デバイスが、前記他のアプリケーションによりアクセス可能な前記リンクを、該リンクを前記デバイスのホストオペレーティングシステムのレジストリに記憶することによって作成するステップであって、該ホストオペレーティングシステムのレジストリは前記デバイスのパブリック名前空間に配置された、ステップと、
    前記デバイスが、前記特定のファイルの種類を有するあるファイルを開く要求を受けるステップと、
    前記デバイスが、前記ホストオペレーティングシステムのレジストリから、前記リンクが前記特定のファイルの種類に関連付けられていることを判定するステップと、
    前記デバイスが、前記リンクに従い前記あるファイルを処理するための前記仮想アプリケーションを起動するステップと
    を含むことを特徴とする方法。
  12. 前記デバイスが、第2のリンクを前記プライベート名前空間に定めるステップであって、前記第2のリンクは、記憶された前記1つ又は複数の項目から選択された、記憶された第2の項目にアクセスするための拡張ポイントを提供し、前記第2のリンクは、前記他のアプリケーションが前記仮想アプリケーションと、記憶された前記第2の項目にアクセスすることによる特定の手法で相互作用することを可能にするように構成される、ステップと、
    前記デバイスが、前記他のアプリケーションによりアクセス可能な前記第2のリンクを、該第2のリンクを前記パブリック名前空間に記憶することによって作成するステップと、
    前記デバイスが、前記第2のリンクの選択を含む第2のコマンドを前記アプリケーションバーチャライザで受けるステップであって、前記第2のリンクは、前記パブリック名前空間から、前記他のアプリケーションのうちの第2のアプリケーションにより選択されたものである、ステップと、
    前記第2のリンクの選択を受けることに応答して、前記デバイスが、
    記憶された前記第2の項目を前記第2のリンクから識別し、
    前記第2のアプリケーションが前記仮想アプリケーションと、記憶された前記第2の項目へのアクセスを介した第2の特定の手法で相互作用することを可能にする
    ステップと
    をさらに含むことを特徴とする請求項11に記載の方法。
  13. 第2の要求は第2の仮想アプリケーションにより構築されることを特徴とする請求項12に記載の方法。
  14. 前記仮想アプリケーションは、前記アプリケーションバーチャライザにストリーム配信されることを特徴とする請求項13に記載の方法。
  15. デバイスで仮想アプリケーションを動作させるための方法を実装するためのコンピュータプログラムであって、該コンピュータプログラムは、1つ又は複数のコンピュータ記憶デバイスに記憶されたコンピュータ実行命令を含み、該コンピュータ実行命令がプロセッサにより実行されると前記方法が実行され、当該方法は、
    アプリケーションバーチャライザを前記デバイスにインストールするステップであって、前記アプリケーションバーチャライザは、前記仮想アプリケーションを実行し、該仮想アプリケーションに関する1つ又は複数の項目を記憶するプライベート名前空間を管理するように構成され、記憶された前記1つ又は複数の項目は、ファイルの種類の関連付けの定義を含み、該ファイルの種類の関連付けは、前記仮想アプリケーションを特定のファイルの種類に関連付け、該プライベート名前空間は、当該プライベート名前空間に記憶された前記項目は前記仮想アプリケーションにより概してアクセス可能であるが、前記デバイス上の他のアプリケーションは前記プライベート名前空間に記憶された前記項目にネイティブにアクセスすることを妨げられるように、前記仮想アプリケーションに対してプライベートである、ステップと、
    前記プライベート名前空間へのリンクを定めるステップであって、前記リンクは、記憶された前記1つ又は複数の項目から選択された、記憶されたある項目にアクセスするための拡張ポイントを提供し、前記リンクは、前記他のアプリケーションが前記仮想アプリケーションと、記憶された前記ある項目にアクセスすることによる特定の手法で相互作用可能なように構成され、前記相互作用は、前記他のアプリケーションが、前記ファイルの種類の関連付けにアクセスすることにより、前記仮想アプリケーションを起動することを含む、ステップと、
    前記他のアプリケーションによりアクセス可能な前記リンクを、該リンクを前記デバイスのホストオペレーティングシステムのパブリック名前空間に記憶することにより作成するステップと、
    前記リンクの選択を含むコマンドを前記アプリケーションバーチャライザで受けるステップであって、前記リンクは、前記パブリック名前空間から、前記他のアプリケーションのうちのあるアプリケーションによって選択されたものである、ステップと、
    前記リンクの選択を受けることに応答して、
    記憶された前記ある項目を前記リンクから識別し、
    前記あるアプリケーションが前記仮想アプリケーションと、記憶された前記ある項目へのアクセスを介した前記特定の手法で相互作用することを可能にする
    ステップと
    を含むことを特徴とするコンピュータプログラム。
  16. コンピュータ実行命令であって、実行されると、
    第2のリンクを前記プライベート名前空間に定めるステップであって、前記第2のリンクは、記憶された前記1つ又は複数の項目から選択された、記憶された第2の項目にアクセスするための拡張ポイントを提供し、前記第2のリンクは、前記他のアプリケーションが前記仮想アプリケーションと、記憶された前記第2の項目にアクセスすることによる特定の手法で相互作用することを可能にするように構成される、ステップと、
    前記他のアプリケーションによりアクセス可能な前記第2のリンクを、該第2のリンクを前記パブリック名前空間に記憶することによって作成するステップと、
    前記第2のリンクの選択を含む第2のコマンドを前記アプリケーションバーチャライザで受けるステップであって、前記第2のリンクは、前記パブリック名前空間から、前記他のアプリケーションのうちの第2のアプリケーションにより選択されたものである、ステップと、
    前記第2のリンクの選択を受けることに応答して、
    記憶された前記第2の項目を前記第2のリンクから識別し、
    前記第2のアプリケーションが前記仮想アプリケーションと、記憶された前記第2の項目へのアクセスを介した第2の特定の手法で相互作用することを可能にする
    ステップと
    を実行する前記コンピュータ実行命令をさらに含むことを特徴とする請求項15に記載のコンピュータプログラム。
  17. 前記あるアプリケーション及び前記第2のアプリケーションは同じアプリケーションであることを特徴とする請求項16に記載のコンピュータプログラム。
  18. 前記プライベート名前空間は第1のプライベート名前空間であり、前記あるアプリケーションは第2の仮想化アプリケーションであり、該第2の仮想化アプリケーションは、第2のプライベート名前空間に記憶された1つ又は複数の第2の項目に関係し、該第2のプライベート名前空間は前記第1のプライベート名前空間とは異なることを特徴とする請求項15に記載のコンピュータプログラム。
  19. 実行されると前記プライベート名前空間へのリンクを定めるステップを実行するコンピュータ実行命令は、実行されると、パラメータを前記仮想アプリケーションに渡すことと前記仮想アプリケーションに対する構成情報をトラバースすることのうちの一方を可能とする前記プライベート名前空間へのリンクを定めるステップを実行するコンピュータ実行命令を含むことを特徴とする請求項15に記載のコンピュータプログラム。
  20. 実行されると前記プライベート名前空間へのリンクを定めるステップを実行するコンピュータ実行命令は、実行されると、前記パブリック名前空間内のファイルシステムと前記パブリック名前空間内のレジストリのうちの一方から前記プライベート名前空間へのリンクを定めるステップを実行するコンピュータ実行命令を含むことを特徴とする請求項15に記載のコンピュータプログラム。
JP2013503780A 2010-04-06 2011-03-25 仮想アプリケーション拡張ポイント Active JP6192534B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/754,623 US8489708B2 (en) 2010-04-06 2010-04-06 Virtual application extension points
US12/754,623 2010-04-06
PCT/US2011/030053 WO2011126776A2 (en) 2010-04-06 2011-03-25 Virtual application extension points

Publications (3)

Publication Number Publication Date
JP2013524365A JP2013524365A (ja) 2013-06-17
JP2013524365A5 JP2013524365A5 (ja) 2014-05-15
JP6192534B2 true JP6192534B2 (ja) 2017-09-06

Family

ID=44710926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013503780A Active JP6192534B2 (ja) 2010-04-06 2011-03-25 仮想アプリケーション拡張ポイント

Country Status (8)

Country Link
US (3) US8489708B2 (ja)
EP (1) EP2556430A4 (ja)
JP (1) JP6192534B2 (ja)
KR (1) KR101793306B1 (ja)
CN (1) CN102822797B (ja)
AU (1) AU2011238676B2 (ja)
CA (1) CA2793588A1 (ja)
WO (1) WO2011126776A2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100936239B1 (ko) * 2007-12-18 2010-01-12 한국전자통신연구원 스트리밍 기반 이동형 소프트웨어 제공 시스템 및 방법
US9256496B1 (en) * 2008-12-15 2016-02-09 Open Invention Network, Llc System and method for hybrid kernel—and user-space incremental and full checkpointing
US8745442B1 (en) * 2011-04-28 2014-06-03 Open Invention Network, Llc System and method for hybrid kernel- and user-space checkpointing
US10019327B1 (en) 2008-12-15 2018-07-10 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US9354977B1 (en) * 2008-12-15 2016-05-31 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US8489708B2 (en) 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US11625307B1 (en) 2011-04-28 2023-04-11 International Business Machines Corporation System and method for hybrid kernel- and user-space incremental and full checkpointing
US11307941B1 (en) 2011-04-28 2022-04-19 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
KR101603290B1 (ko) * 2011-12-14 2016-03-25 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 연결된 장치들을 위한 시맨틱 캐쉬 클라우드 서비스
US8938550B2 (en) * 2011-12-15 2015-01-20 Microsoft Corporation Autonomous network streaming
CN102567078B (zh) * 2011-12-28 2014-12-24 华为数字技术(成都)有限公司 一种注册表虚拟化方法及装置
US9047107B2 (en) 2012-02-29 2015-06-02 Red Hat, Inc. Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment
US9038128B2 (en) 2012-02-29 2015-05-19 Red Hat, Inc. Applying security category labels to multi-tenant applications of a node in a platform-as-a-service environment
US9720668B2 (en) * 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9058198B2 (en) 2012-02-29 2015-06-16 Red Hat Inc. System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system
US9317325B2 (en) 2012-05-01 2016-04-19 Red Hat, Inc. Application idling in a multi-tenant cloud-based application hosting environment
US9245111B2 (en) 2012-05-01 2016-01-26 Red Hat, Inc. Owner command execution in a multi-tenant cloud hosting environment
US9665411B2 (en) 2012-05-01 2017-05-30 Red Hat, Inc. Communication between a server orchestration system and a messaging system
US8850514B2 (en) 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US10365953B2 (en) 2012-05-01 2019-07-30 Red Hat, Inc. Tracking and utilizing facts about a node of a multi-tenant cloud hosting environment
US9842002B2 (en) 2012-05-01 2017-12-12 Red Hat, Inc. Node selection for a new application in a multi-tenant cloud hosting environment
US9092235B2 (en) 2012-05-25 2015-07-28 Microsoft Technology Licensing, Llc Virtualizing integrated calls to provide access to resources in a virtual namespace
US8978035B2 (en) 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
CN104735030B (zh) * 2013-12-23 2019-04-16 广州华多网络科技有限公司 应用开启方法、装置和系统
US11132450B2 (en) 2016-02-26 2021-09-28 Red Hat, Inc. Accessing file systems in a virtual environment
CN109213950B (zh) * 2017-06-30 2021-05-18 中国电信股份有限公司 Iptv智能机顶盒浏览器应用的数据处理方法及装置
US20190158512A1 (en) * 2017-11-20 2019-05-23 Fortinet, Inc. Lightweight anti-ransomware system
CN110633048B (zh) * 2018-06-22 2022-11-08 慧荣科技股份有限公司 闪存存储装置的命名空间操作方法
US10990427B2 (en) * 2019-04-03 2021-04-27 Sap Se Extension application mechanisms through intra-process operation systems
US11669340B2 (en) 2021-02-23 2023-06-06 Microsoft Technology Licensing, Llc Syncing settings across incompatible operating systems
EP4141887A1 (en) * 2021-08-31 2023-03-01 Siemens Healthcare GmbH Methods, systems, computing devices for digital cooperation

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
US6085120A (en) 1997-11-17 2000-07-04 International Business Machines Corporation Data system processing and method for creating application extension
CN1157660C (zh) * 2000-02-03 2004-07-14 英业达集团(上海)电子技术有限公司 多用户的安全性操作文件方法
US7206819B2 (en) 2001-01-18 2007-04-17 Sun Microsystems, Inc. Method and apparatus for providing virtual namespaces for active computing environments
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7542988B1 (en) * 2006-01-03 2009-06-02 Symantec Corporation File type associative application layered system
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US7546607B2 (en) * 2002-11-19 2009-06-09 Microsoft Corporation Native code exposing virtual machine managed object
US7596782B2 (en) 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
US7827565B2 (en) * 2004-03-12 2010-11-02 Microsoft Corporation Integration architecture for non-integrated tools
CN100481013C (zh) * 2004-08-03 2009-04-22 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
US7506338B2 (en) 2004-08-30 2009-03-17 International Business Machines Corporation Method and apparatus for simplifying the deployment and serviceability of commercial software environments
US7690033B2 (en) * 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US20060277537A1 (en) 2005-06-01 2006-12-07 International Business Machines Corporation Deployment of containers and container extensions in a modular code runtime platform through a runtime platform extension point
US20070074191A1 (en) * 2005-08-30 2007-03-29 Geisinger Nile J Software executables having virtual hardware, operating systems, and networks
US20070088797A1 (en) * 2005-10-19 2007-04-19 Utilit Technologies, Inc. Information technology system with application portal control
US8280944B2 (en) * 2005-10-20 2012-10-02 The Trustees Of Columbia University In The City Of New York Methods, media and systems for managing a distributed application running in a plurality of digital processing devices
US20070233880A1 (en) * 2005-10-20 2007-10-04 The Trustees Of Columbia University In The City Of New York Methods, media and systems for enabling a consistent web browsing session on different digital processing devices
US8600836B2 (en) * 2005-11-08 2013-12-03 Qualcomm Incorporated System for distributing packages and channels to a device
US20070118615A1 (en) * 2005-11-23 2007-05-24 Utilit Technologies, Inc. Information technology system with multiple item targeting
US20070156913A1 (en) 2005-12-30 2007-07-05 Hiroyuki Miyamoto Method for enabling extension points through plug-ins
US7904880B2 (en) * 2006-03-17 2011-03-08 Microsoft Corporation Generating and binding web services to application components
US8091084B1 (en) * 2006-04-28 2012-01-03 Parallels Holdings, Ltd. Portable virtual machine
US8769528B2 (en) * 2006-07-14 2014-07-01 Moka5, Inc. Fixed-function consumer-electronics device providing general-computing functions with virtual machines
WO2008017001A2 (en) 2006-08-02 2008-02-07 Moka5, Inc. Sharing live appliances
US8037473B2 (en) 2006-10-20 2011-10-11 International Business Machines Corporation Method to share licensed applications between virtual machines
US7689566B1 (en) 2006-12-12 2010-03-30 Sun Microsystems, Inc. Method for defining non-native operating environments
US8166477B1 (en) * 2007-03-23 2012-04-24 Parallels IP Holdings GmbH System and method for restoration of an execution environment from hibernation into a virtual or physical machine
US8019812B2 (en) 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
US8060486B2 (en) * 2007-05-07 2011-11-15 Hewlett-Packard Development Company, L.P. Automatic conversion schema for cached web requests
US8862590B2 (en) * 2007-06-29 2014-10-14 Microsoft Corporation Flexible namespace prioritization
US8291438B2 (en) * 2007-06-29 2012-10-16 Microsoft Corporation Printing for virtualized applications
US8065404B2 (en) 2007-08-31 2011-11-22 The Invention Science Fund I, Llc Layering destination-dependent content handling guidance
US7941510B1 (en) * 2007-10-11 2011-05-10 Parallels Holdings, Ltd. Management of virtual and physical servers using central console
US7383327B1 (en) * 2007-10-11 2008-06-03 Swsoft Holdings, Ltd. Management of virtual and physical servers using graphic control panels
US8196137B2 (en) * 2007-10-15 2012-06-05 Microsoft Corporation Remote auto provisioning and publication of applications
US8276137B2 (en) * 2007-10-16 2012-09-25 International Business Machines Corporation Creating a virtual machine containing third party code
US8004988B2 (en) 2007-11-21 2011-08-23 Microchip Technology Incorporated Ethernet controller
US8078649B2 (en) 2008-04-07 2011-12-13 Installfree, Inc. Method and system for centrally deploying and managing virtual software applications
US8004998B2 (en) * 2008-05-23 2011-08-23 Solera Networks, Inc. Capture and regeneration of a network data using a virtual software switch
US8171118B2 (en) * 2008-06-13 2012-05-01 Microsoft Corporation Application streaming over HTTP
US10411975B2 (en) * 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US8392361B2 (en) * 2008-08-11 2013-03-05 Vmware, Inc. Centralized management of virtual machines
US8489708B2 (en) 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US20110276621A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Operating system and application virtualization for application execution
US8959511B2 (en) * 2010-12-14 2015-02-17 Microsoft Corporation Template virtual machines
JP2012186543A (ja) * 2011-03-03 2012-09-27 Ricoh Co Ltd 画像読取装置および画像読取装置の制御プログラム
US8863150B2 (en) * 2012-02-22 2014-10-14 Roundarch Corporation Device connectivity framework
US9390055B2 (en) * 2012-07-17 2016-07-12 Coho Data, Inc. Systems, methods and devices for integrating end-host and network resources in distributed memory
US9444896B2 (en) * 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
EP2799973B1 (en) * 2013-04-30 2017-11-22 iNuron NV A method for layered storage of enterprise data
EP2816481A1 (en) * 2013-06-19 2014-12-24 British Telecommunications public limited company Enforcing software compliance
US9766930B2 (en) * 2014-06-28 2017-09-19 Vmware, Inc. Using active/passive asynchronous replicated storage for live migration
US10061611B2 (en) * 2015-08-28 2018-08-28 Vmware, Inc. Virtual machine migration within a hybrid cloud system

Also Published As

Publication number Publication date
WO2011126776A2 (en) 2011-10-13
KR20130069555A (ko) 2013-06-26
KR101793306B1 (ko) 2017-11-20
US20130305264A1 (en) 2013-11-14
JP2013524365A (ja) 2013-06-17
AU2011238676A1 (en) 2012-09-27
US9880889B2 (en) 2018-01-30
US20110246617A1 (en) 2011-10-06
CA2793588A1 (en) 2011-10-13
CN102822797A (zh) 2012-12-12
CN102822797B (zh) 2017-09-12
WO2011126776A3 (en) 2012-02-02
EP2556430A2 (en) 2013-02-13
US9170855B2 (en) 2015-10-27
US8489708B2 (en) 2013-07-16
US20160034320A1 (en) 2016-02-04
EP2556430A4 (en) 2014-08-13
AU2011238676B2 (en) 2014-04-10

Similar Documents

Publication Publication Date Title
JP6192534B2 (ja) 仮想アプリケーション拡張ポイント
US11966771B2 (en) Dynamic image composition for container deployment
US20210349706A1 (en) Release lifecycle management system for multi-node application
US10284416B2 (en) Workload deployment with infrastructure management agent provisioning
Jacobsen et al. Contain this, unleashing docker for hpc
EP3035191B1 (en) Identifying source code used to build executable files
US9870372B2 (en) Fast application streaming using on-demand staging
US10838751B1 (en) Virtual machine configuration
US20220385532A1 (en) Adding host systems to existing containerized clusters
US11263297B2 (en) Dynamic insertion of variablized secrets in a pipeline integration system
US8924963B2 (en) In-process intermediary to create virtual processes
US11847611B2 (en) Orchestrating and automating product deployment flow and lifecycle management

Legal Events

Date Code Title Description
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: 20130717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140325

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150423

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150717

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160407

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160418

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170808

R150 Certificate of patent or registration of utility model

Ref document number: 6192534

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