JP5726212B2 - webアプリケーション等のサーバーアプリケーションのための仮想環境 - Google Patents

webアプリケーション等のサーバーアプリケーションのための仮想環境 Download PDF

Info

Publication number
JP5726212B2
JP5726212B2 JP2012556226A JP2012556226A JP5726212B2 JP 5726212 B2 JP5726212 B2 JP 5726212B2 JP 2012556226 A JP2012556226 A JP 2012556226A JP 2012556226 A JP2012556226 A JP 2012556226A JP 5726212 B2 JP5726212 B2 JP 5726212B2
Authority
JP
Japan
Prior art keywords
application
web
applications
server
virtualization
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
JP2012556226A
Other languages
English (en)
Other versions
JP2013521578A5 (ja
JP2013521578A (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 JP2013521578A publication Critical patent/JP2013521578A/ja
Publication of JP2013521578A5 publication Critical patent/JP2013521578A5/ja
Application granted granted Critical
Publication of JP5726212B2 publication Critical patent/JP5726212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/4555Para-virtualisation, i.e. guest operating system has to be modified
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

[背景技術]
仮想化とは物理ハードウエアによって仮想マシーンを実行し、次に仮想マシーン上でオペレーティングシステム及びアプリケーションを動作させることを指している。仮想マシーンはハードウエアの機能の共通点を表しても良く、又はオペレーティングシステム(OS)とアプリケーションを準備するのが容易なよく知られた構成を表しても良い。リソースの要求が増加したとき仮想マシーンを新しい物理ハードウエアに容易に移動させることを可能とするため、、メンテナンスサイクルのために、そして物理サーバーの負荷をバランスさせるために、多数のデータセンターが仮想化を用いている。仮想化は多くの状況で有用であるが、多くの仮想マシーンが(例えば、中央処理装置(CPU)、メモリー、及びネットワークインターフェースカード(NIC)等の)同一のリソースを取り合うために制限もある。
アプリケーションの仮想化は、仮想マシーンが下層に有るハードウエアからOSを隔離するのと似た方法でアプリケーションを下層にあるOSから隔離する単一アプリケーションレベルでの仮想環境を提供する。例えば、オペレーティングシステムは幾つかのアプリケーションをネーティブで(本来のものとして)動作させる一方、他のアプリケーションを動作させる仮想環境を提供することができる。このことは、例えばオペレーティングシステムが異なるオペレーティングシステムのために設計されたアプリケーションを動作させることを可能にし得る。アプリケーションの仮想化はユーザーにとってホストオペレーティングシステム内でネーティブで動作しているアプリケーションと仮想環境内で動作しているアプリケーションとの区別を曖昧にする。例えば、両方の種類のアプリケーションがタスクバー又はオペレーティングシステムシェルによって提供されたメニュー内に並ぶことも可能である。例えば、マイクロソフト(登録商標)のアプリケーション仮想化(APP−V)は、アプリケーションを中央管理された仮想サービスに変換する。仮想サービスは、インストールされず、アプリケーションと競合しない。物理環境において、全てのアプリケーションはメモリーの割り当て、デバイスドライバー、及びもっと多くのものを含む種々のサービスをそのオペレーティングシステム(OS)に依存している。アプリケーションとそのOSとの間の非互換性はサーバーの仮想化又はプレゼンテーションの仮想化のどちらかによって扱うことができるが、1つのOSの同一の実体にインストールされた2つのアプリケーションの間の非互換性はアプリケーションの仮想化によって解決される。
通常、サーバーアプリケーションを仮想化することは他のアプリケーションより難しい。専用の実行ファイルを動作させることによってオペレーティングシステムシェルからユーザーによって開始することが多いクライアントアプリケーションとは異なり、サーバーアプリケーションは要求に応じて、或いはスケジュールにしたがって動作するオペレーティングシステムサービス、ワーカープロセス、およびデーモンを含むことができる。管理者たちはサーバーアプリケーションを仮想化し、パッケージ又はファイルのグループをコンピューターシステムにコピーすることと同じ位容易に配置(deploy)できるようにする(例えば、xcopyで配置可能にする)ことを望んでいる。マイクロソフトインターネット情報サーバー(IIS)等のサーバーコンポーネントはそのコンポーネントを使用して動作するアプリケーションのためのアプリケーション仮想化をネーティブではサポートしていない。企業はIISアプリケーション等のサーバーアプリケーションを仮想化してよりダイナミックにし、アプリケーションをその都度再インストールすること無しにアプリケーションをマシーンからマシーンに持って行きたいと望んでいる。この方法は負荷をバランスさせることができるか又はより低いオーバーヘッドで彼等のサーバーをメンテナンスできるため企業にとって生産性を守ることになる。IISはwebアプリケーションの概念(例えば、webサイト)を有しており、これらのwebアプリケーションはアプリケーションプールの内部で動作する。IISはwebサイトのために要求に応答するワーカープロセスを作成するときにこのアプリケーションプール名を指定する。1つの問題点はアプリケーションの名称が競合する可能性が有るということである。例えば、管理者は幾つかのIISアプリケーションを、各アプリケーション(又はアプリケーションプール)が標準名「デフォルト(Default)」を有する単一のサーバー上で仮想化したいと考える可能性が有る。現在これを実行すると競合が生じ、第1のそのようなwebアプリケーションのみが正しく動作することになる。
webアプリケーション等のサーバーアプリケーションを容易に配置することができ、アプリケーション及びその状態をシステムから分離し、アプリケーションを容易に他のサーバーに移動させることが可能になるアプリケーション仮想化システムが本明細書に記述されている。アプリケーション仮想化システムはwebサーバーアプリケーションプール名等の競合を隔離する方法を提供し、競合情報を提供する複数のアプリケーションが独立して動作し、競合を避けること可能にする。アプリケーション仮想化システムはアプリケーション準備セッションの報知を受け取り、セッションを監視してアプリケーションがクライアント上で動作するために使用する環境設定情報を収集する。アプリケーション仮想化システムは収集された情報を仮想化されるべきアプリケーションが配置されるまで格納する。後に管理者がアプリケーションを配置するとき、システムは格納された情報を取り出し、この情報及びクライアントからの情報を使用してメタデータを再構成し、アプリケーションを仮想化する。アプリケーション仮想化システムはパッケージ化の時に要求を抽出し、アプリケーションのアプリケーションプールの名称などのwebアプリケーションについてのメタデータを格納する。後にwebアプリケーションを配置する際にシステムは格納されたメタデータを参照し、webアプリケーションを仮想環境に関連した正しいアプリケーションプールに収める。
この概要は以下に詳細な説明の欄で更に説明された選択された概念を簡略化した形で導入するために設けられたものある。この概要は請求項に記載された主題の主要な特徴又は必須な特徴を特定することを意図したものでもなく、請求項に記載された主題の範囲を限定するために用いられることを意図したものでもない。
図1は一実施形態におけるアプリケーション仮想化システムのコンポーネントを示すブロック図である。 図2は一実施形態における仮想化のためのサーバーアプリケーションを準備するためのアプリケーション仮想化システムの処理を示すフロー図である。 図3は一実施形態におけるサーバーアプリケーションを配置し、仮想化するアプリケーション仮想化システムの処理を示すフロー図である。 図4は一実施形態におけるアプリケーション仮想化システムの動作環境及び実装コンポーネントを示すブロック図である。
webアプリケーション等のサーバーアプリケーションを容易に配置できるようにし、アプリケーション及びその状態をシステムから分離できるようにし、アプリケーションが容易に他のサーバーに移動できるようにするアプリケーション仮想化システムが本明細書に記述されている。アプリケーション仮想化システムはwebサーバーアプリケーションプール名等の競合を隔離し、競合した情報を提供する複数のアプリケーションが独立に動作し、衝突を回避する方法を提供している。通常アプリケーションを仮想化することは、通常、メタデータ抽出、メタデータの格納及び再構成、及び実行時の要求の管理の3つのステップが関係している。メタデータ抽出はアプリケーションが何時仮想化の準備ができたかを知り、コンフィグレーション情報を抽出するためにアプリケーションを監視するプロセスである。環境設定情報はアプリケーションがそれ自身をオペレーティングシステム又は他のアプリケーションに結びつけるどの様な方法を含むことも可能である。
アプリケーション仮想化システムは、アプリケーション準備セッションの報知を受けとり、アプリケーションがクライアント上で動作するために使用する環境設定情報を収集するためにセッションを監視する。例えば、システムはアプリケーションのインストール前後の環境設定情報のスナップショットを取得し、それらの差をアプリケーションメタデータとして格納するようにしても良い。アプリケーション仮想化システムは収集された情報を仮想化されるべきアプリケーションが配置されるまで格納する。管理者が後でアプリケーションを配置するとき、システムは格納された情報を取りだし、その情報とクライアントからの情報を使用してメタデータを再構成してアプリケーションを仮想化する。例えば、マイクロソフト IIS(商標)に対して、システムはIISがアプリケーションを割り当てるアプリケーションプール名を獲得し、アプリケーションプール名をアプリケーションについてのメタデータとして格納し、配置のときに使用し、場合によって変更するようにしても良い。後にwebアプリケーションを配置するときに、システムは格納されたメタデータを参照してwebアプリケーションを仮想環境に関係した正しいアプリケーションプール内に収める。このようにしてアプリケーション仮想化システムは同一の物理コンピューターハードウエア及びオペレーティングシステム上で複数のサーバーアプリケーションが仮想化されて並行して動作することを可能にしている。
NTサービス(NT services)、COM+アプリケーション、WMIプロバイダ、シェアポイント(SharePoint)アプリケーション、及びweb(例えば、IIS)アプリケーション等のように多くの異なるタイプのサーバーアプリケーションが存在している。そのそれぞれが仮想化のために独自の取り組みを行っている。特にWebアプリケーションは明細書で述べたような幾つかの具体的な取り組みを行っている。
第1の取り組みはwebサーバーが、webアプリケーションがいつ開始するかを制御し、webアプリケーションを動作させるために作成されたプロセスがネーティブ(本来の)環境で実行可能にインストールされることである。NTサービスに対しては、そのファイルパスに基いてサービスが仮想化されるべきか否かを容易に判断することができる。もしファイルパスが仮想パッケージA内に有れば、仮想化レイヤーはそのパッケージのための仮想環境内でNTサービスを開始することができる。もしパスが仮想パッケージB内に有れば、仮想化レイヤーはその仮想環境内にでNTサービスを開始することができる、等である。もしパスがどの仮想パッケージにも当て嵌まらない場合には、サービスは仮想化されない。マイクロソフト(TM)IISなどの典型的なwebサーバーについては、実行可能なパスは全てのwebサイト又はサーバーによってホストされるwebアプリケーションに対して同一であり、具体的にはIISのための w3wp.exe 等のワーカープロセスへのパスである。しかしながらワーカープロセスへのパラメーターはアプリケーションプール名を含んでいる、等のように異なっていても良い。アプリケーション仮想化システムは仮想化すべきwebアプリケーションを検出し、どのようにかかるアプリケーションが仮想化されるかを変更するためにこの情報を使用するように仮想化レイヤーを変更する。例えば、システムはアプリケーションプール名が重複せず、アプリケーションプール名と仮想パッケージとの間のマップが維持されることを保証する。ワーカープロセスが作成されたとき、システムはマップ内のアプリケーションプール名を参照してワーカープロセスが仮想化されるべきであるか否かを決定する。
他の取組みは、どの様にして(webアプリケーションとは異なり)それに関連したアプリケーションプールを持たないwebサーバー仮想ディレクトリを仮想化するかということに関している。システムは仮想ディレクトリをwebアプリケーションに変換し、アプリケーションプールをwebアプリケーションに関連づけることでこの取組みを解決している。
他の取組みはwebアプリケーションを配置するときにどのようにして環境設定の競合を防止するかということに関している。Web環境設定はIISと他のwebサーバーにおいて異なるレベルで適用することができる。環境設定は、サーバー、webサイト、webアプリケーション及び階層内でwebサイトから下の仮想ディレクトリに適用することができる。Webアプリケーションインストーラはwebサーバーをどのレベルで構成することも自由である。もしアプリケーション仮想化システムがこの環境設定をそのままで捕捉し、同一レベルに配置すると、システムは競合を生じ、ローカルにインストールされた仮想webアプリケーション又は他の仮想webアプリケーションを壊す可能性がある。この問題に対する解決策は我々が問題にしているwebアプリケーションの上で行われた環境設定の変更を捕捉し、それらを配置中のwebアプリケーションレベルに適用してシステム上の他のwebアプリケーションに影響を与えないようにすることである。
これらの詳細及び他の詳細は本明細書で更に記述する。
アプリケーション仮想化サブシステムの主な役割は監視、視覚化、登録、及び実行時仮想化である。これらの各々は明細書において別々に記述されている。
監視は、コンピューターシステムに加えられた変更を検出するためにインストールプロセスをワッチすることに関している。幾つかの実施形態において、シーケンサー(Sequencer)と呼ばれるアプリケーションがアプリケーション仮想化の監視段階を担当する。幾つかのサブシステムがインストールを監視するためにアプリケーションプログラミングインターフェース(APIs)をフックし、他のサブシステムがインストール前後のコンピューターシステムの状態のスナップショットを比較して変化を検出するようにしても良い。前者の例は仮想サービスサブシステムがクリエートサービス()API(CreateService()API)をフックして、いつインストーラによって新しいオペレーティングシステムサービスが追加されたかを検出することである。一方、前の例において記述されたIISサブシステムがインストール前後のIIS環境設定を比較することによって、それが使用する情報を収集することが可能である。例えば、マイクロソフトツールのMSDeploy(MSDeploy)はユーザーが特定のwebサーバーに結合したWhat−ifデプロイメント(what−if deployments)を動作させることを可能にしている。スナップショットを比較し、拡張可能なマークアップ言語ファイル(例えば、sav_providers.xml)等のマシーンから独立したメタデータ片を生成するために同一のツールをアプリケーション仮想化システムと共に使用することができる。監視の終了時にシステムはグローバルレベルで設定された全てのwebサーバー環境設定を削除し、環境設定を個々のwebアプリケーションに適用してデプロイメント(配置)中の競合の防止に寄与する。加えて、もし監視の間に最上レベルweb仮想ディレクトリが生成されていたならば、システムはそれらをアプリケーションプールに関連したwebアプリケーションに変換し、配置時にその仮想ディレクトリが仮想化されることを可能にしている。
視覚化は、管理者にアプリケーションによって行われた変更の視覚的表示を仮想化するためのアプリケーションを準備することを示すことに関している。シーケンサーが監視中に検出した変化を一連のタブで表示する。アプリケーション仮想化システムは特定のアプリケーションタイプを仮想化するためのサブシステムを呼び出しても良く、各サブシステムが視覚化のためのそのサブシステムにとって適当なユーザーインターフェースを提供しても良い。これによってシーケンサーが視覚化段階の間に各サブシステムの明確な知識を有している必要が無くなる。サブシステムの視覚化インターフェースはアプリケーション仮想化システムの視覚化アプリケーションによってそれらのために作成されたウインドウ内にそれらの結果を表示することを担当する。
登録は、仮想アプリケーションを動作させるターゲットコンピューターシステムを準備することに関している。仮想アプリケーションはクライアント上にはインストールされないけれども、幾つかの情報がシームレスなユーザーエクスペリエンスを提供(例えば、アプリケーションがスタートメニュー内に現れるように、又はwebアプリケーションがwebサーバーメタベース内で利用できるように)するためにクライアントに公開される。アプリケーション仮想化システムは、監視の間にサブシステムによって収集された情報をクライアント上の適当な設定位置に公開する。例えば、仮想webアプリケーションはそれらのアプリケーション環境設定及びアプリケーションプール情報をwebサーバーに登録させる。加えて、登録プロセスの一部はアプリケーションプール名を特定の仮想アプリケーションに関係付けることに関している。webアプリケーションがクライアント上にインストールされたとき、クライアントは新しいwebサーバーワーカープロセスを生成する要求を傍受し、もしワーカープロセスのアプリケーションプール名が仮想アプリケーションのためのものと一致していれば、ワーカープロセスが適当な仮想環境内に作成される。
登録に密接に関係したサブシステムの他の責任は環境設定である。登録は一度実行される。しかしながら、環境設定はシステムがそのコンポーネントを登録した後に何回も行われる可能性がある。登録の一例は、本明細書に記述されたwebサイト、アプリケーション、及びアプリケーションプールを生成することである。環境設定項目の一例はデータベース接続ストリングである。この値は、アプリケーションのためのバックエンドデータベースが移動したときにはアプリケーションが登録された後に変更することが必要となる可能性がある。適用可能なサブシステムは、例えばサブシステムの特定の知識の適用を必要とする(例えば、特定のAPIを呼び出すことによって設定される必要が有る)環境設定等のサブシステム特有の環境設定値を適用することを担当する。
実行時仮想化は、仮想化されたアプリケーションの実行時に機能をフックし、アプリケーションがクライアント上にローカルにインストールされたかのようにそのリソースにアクセスすることが可能になるように機能の動作を変更することを指している。実行時仮想化はまた、或るシステムプロセス(即ち、仮想アプリケーションのパッケージの一部ではないプロセス)が仮想化されるべきであるか否かの判断を行うことを指している。例えば、IISサブシステムはコマンドライン上に渡されたアプリケーションプール名に基づいてIISワーカープロセス(例えば、w3wp.exe)が仮想化されるべきであるか否かを決定する。
図1は一実施形態におけるアプリケーション仮想化システムのコンポーネントを示すブロック図である。システム100は監視コンポーネント110、パッケージ作成コンポーネント120、アプリケーションパッケージストア130、アプリケーション配置コンポーネント140、コンフリクト管理コンポーネント150、及びアプリケーション実行環境160を含んでいる。これらのコンポーネントの各々については本明細書に更に詳細に説明されている。
監視コンポーネント110は、仮想化のために準備されつつあるアプリケーションを監視してアプリケーションに関係した環境設定データを検出する。監視コンポーネント110は、サブシステムが現在のアプリケーションを操作することに興味があるか否かについて登録されたサブシステム全体を通して各サブシステムに質問することを繰り返すようにしても良い。コンポーネント110はアプリケーションプロセスに興味を示した1つ以上のサブシステムを呼び出し、サブシステムがアプリケーションによって行われたサブシステム特有の環境設定変化を監視することを可能にする。監視コンポーネント110はまたアプリケーションによって行われた環境設定の変更を検出するために監視の前後のアプリケーションのスナップショットを取得するスナップショットサービスを提供するようにしても良い。
パッケージ作成コンポーネント120は、仮想化のために準備されつつあるアプリケーションに関係した環境設定データを格納するためのパッケージを作成する。パッケージは、圧縮、認証、暗号化、又はパッケージを小さくするか又はパッケージの作者のセキュリティ又は確実性を提供するなどの他の処理が含まれる種々のコンテナファイルフォーマットを含んでも良い。例えば、パッケージはZIP、CAB、又は多くのファイルと設定を単一のファイルに格納するのに適したアーカイブファイルフォーマットとすることができる。パッケージ作成コンポーネント120は新しいアプリケーションが仮想化のために準備されているときにパッケージを作成し、一般的な環境設定情報とカスタム仮想化サブシステムによって検出されるもの等のアプリケーション特有の環境設定情報を格納しても良い。
アプリケーションパッケージストア130は、仮想化のために準備されつつあるアプリケーションの監視と仮想化されたアプリケーションの1つ以上の目標コンピューターシステムへの配置との間にアプリケーションパッケージを格納する。アプリケーションパッケージストア130はファイルシステム、ネットワークベースストレージ、クラウドベースストレージサービス、データベース等の種々の記憶媒体を含むことができる。
アプリケーション配置コンポーネント140は、目標とするコンピューターシステム(ターゲットコンピューターシステム)が仮想化されたアプリケーションを呼び出すことができるように、アプリケーションパッケージを目標とするコンピューターシステムに配置する。コンポーネント140が目標とするシステム上で、ファイルタイプ関連付けの追加、アプリケーションパッケージへのリンクの追加、オペレーティングシステムサービス環境設定の実行、及びwebサーバー環境設定情報の追加などのアプリケーション特有の環境設定を実行するようにしても良い。アプリケーション配置コンポーネント140がアプリケーションパッケージに関連したサブシステムを呼び出してサブシステム特有の登録タスクを実行し、仮想化されたアプリケーションが目標とするコンピューターシステム上で動作するための準備をするようにしても良い。
コンフリクト管理コンポーネント150は、仮想化されたアプリケーションに関連した環境設定データを検出し、目標とするコンピューターシステム上で動作するように構成された他の仮想アプリケーションまたは非仮想アプリケーションとの競合を避けるように環境設定データを変更する。例えばコンポーネント150が、その中で実行する名前付きアプリケーションプールを指定しているwebサーバーアプリケーションについて、名前の競合を検出する。コンポーネント150はまた、競合に対処する動作を決定する管理者からの情報も受け取るようにしても良い。例えば、管理者は、webアプリケーションの名前に競合が生じた際に標準の動作を無効にしてwebアプリケーションに対して特定の名前を指定するようにしても良い。
アプリケーション実行環境160は、仮想化されたアプリケーションと目標とするコンピューターシステムのホストオペレーティングシステムの間に1段の間接参照を提供する。ラッパー(wrapper)は非常に薄く、アプリケーションがホストオペレーティングシステム上で動作するように設計されているときのようにアプリケーションが殆どネーティブ状態で動作することが可能である。その代わりに、又はそれに加えて、ラッパーはAPIを提供し、他のオペレーティングシステム又はオペレーティングシステムの他のバージョンのために設計されたアプリケーションに予期されるような他の制約を満足するようにしてもよい。このようにしてアプリケーション実行環境160が仮想アプリケーションに、そのためにアプリケーションがホストオペレーティングシステムの利用可能なリソースを使用するように設計された環境を提供する。アプリケーション実行環境160はまた実行時にサブシステム特有の仮想化されたアプリケーションの操作を提供するための適当なサブシステム(又は複数のサブシステム)を呼び出す。
アプリケーション仮想化システムが実装されるコンピューティング装置は、中央処理装置、メモリー、入力装置(例えば、キーボード及びポインティング装置)、出力装置(例えば、表示装置)、及び記憶装置(例えばディスクドライブ又は他の不揮発性記憶媒体)を含んでも良い。メモリー及び記憶装置はシステムを実現又は可能化するコンピュータにより実行可能な命令(例えば、ソフトウエア)でエンコードされていても良いコンピュータにより読取り可能な記録媒体である。更に、データ構造及びメッセージ構造は通信リンク上の信号等のデータ伝送媒体を介して格納又は伝送することができる。インターネット、ローカルエリアネットワーク、広域ネットワーク、ポイント間ダイヤルアップ接続、携帯電話ネットワーク等の種々の通信リンクが使用可能である。
システムの実施形態はパーソナルコンピューター、サーバーコンピューター、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラム可能な個人用電化製品、デジタルカメラ、ネットワークPC,ミニコンピューター、メインフレームコンピューター、上記のシステム又は装置の何れかを含む分散コンピューティング環境、等を含む種々の動作環境で実現することが可能である。コンピューターシステムは携帯電話、パーソナルデジタルアシスタント、スマートフォン、パーソナルコンピューター、プログラム可能な個人用電化製品、デジタルカメラ、等であっても良い。
システムはプログラムモジュール等の、一以上のコンピューター又は他の装置によって実行されるコンピューターにより実行可能な命令の一般的な文脈で記述することができる。通常プログラムモジュールは特定のタスクを実行するか特定の抽象的なデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。通常、プログラムモジュールの機能は種々の実施形態において必要に応じて組み合わされるか又は分散されていても良い。
図2は一実施形態におけるアプリケーション仮想化システムの仮想化のためのサーバーアプリケーションを準備する処理を示すフロー図である。処理はブロック210において開始し、システムは仮想化されるべきサーバーアプリケーションの監視を開始する指示を受け取る。例えば、管理者はwebアプリケーションをテストサーバーにインストールする前に本明細書に記述されたシーケンサーを開始するようにしても良い。システムはインストール中にサーバーアプリケーションによって行われた環境設定の変化を検出するためにインストール後に取られた終了スナップショットと比較するためのサーバーアプリケーションのインストールの前のテストサーバーの状態を格納するための開始スナップショットを取るようにしても良い。
続くブロック220において、システムがサーバーアプリケーションのインストールを開始する。管理者がセットアッププログラムを動作させ、システムが新しいプロセスの作成を検出し、コア仮想化システムをプロセスに注入するようにしても良い。例えば、もし管理者が監視を作動させ、サーバーアプリケーションを開始すると、次にシステムがサーバーアプリケーションに関連したワーカープロセスの開始を検出し、コア仮想化エンジンをスタートさせ、コア仮想化システムをワークプロセスに注入し、それによって例えばシステムがプロセスのAPIコール及び他の動作を監視できるようにしても良い。続くブロック230において、システムがサーバーアプリケーションのインストールの間の環境設定データを捕捉する。例えば、サーバーアプリケーションはweb又は他のアプリケーションに関連したアプリケーション名を提供し、その名称及び他の情報でwebサーバーメタベースを構成する、等を行っても良い。サブシステムがプロセスによって変更されたファイル及びレジストリーキー、及びマイクロソフトアクティブディレクトリー(ACTIVE DIRECTORY)又はIISメタベースの変更、等の他の環境設定の変更を検出するようにしても良い。
続くブロック240において、システムはサーバーアプリケーションのインストールの監視を終了する。例えば、管理者が本明細書に記述されたシーケンサーにインストールが終了したことを報知するか、又はシステムが自動的にインストールが終了したことを検出するようにしても良い。システムはサーバーアプリケーション及び関連したデータの終了スナップショットを取って、前に取った開始スナップショットと比較するようにしても良い。続くブロック250において、システムは続いて行われるサーバーアプリケーションの配置の間に使用するために捕捉した環境設定データを格納する。例えば、システムがXMLファイル又は他のデータストアを作成し、後で取り出すために環境設定データをデータストアで維持するようにしても良い。
続くブロック260において、システムはサーバーアプリケーションを配置するために、格納された環境設定データを含めてパッケージにする。例えば、システムはアプリケーションのアーカイブファイル又は管理者がXCOPY又は他のファイル複写ツール等のツールを用いて容易に他のサーバーに配置できる他のコンパクトな表現を作成しても良い。ブロック260の後にこれらのステップは終了する。
図3は一実施形態におけるアプリケーション仮想化システムのサーバーアプリケーションを配置し仮想化する処理を示すフロー図である。処理はブロック310において開始し、システムはサーバーアプリケーションを目標とするコンピューターに配置するための環境設定データを含むアプリケーションパッケージを受け取る。例えば、アプリケーションパッケージは本明細書に記述されたようなアプリケーションの監視の間に検出された環境設定データのXML又は他のデータストアを含むファイルのディレクトリ又はアーカイブファイルを含んでいても良い。続くブロック320において、システムは受け取ったアプリケーションパッケージ内の、目標とするコンピューター上で動作する他のアプリケーションと競合する可能性のある環境設定データを検出する。例えば、もしサーバーアプリケーションがwebアプリケーションであれば、システムが環境設定データによって指定されたアプリケーションプール名が目標とするコンピューター上の他のwebアプリケーションと競合するか又は競合する可能性があるか否かを検出するようにしても良い。
続くブロック330において、システムはサーバーアプリケーションが目標とするコンピューター上で目標とするコンピューター上の他のアプリケーションとの競合せずに動作することを可能にするアプリケーションインストールパラメーターを設定する。例えば、システムが前のステップにおいて競合する名称を検出した場合、システムは競合を避けるために修正した名称を有するインストールパラメーターを設定しても良い。幾つかの実施形態において、システムは同一の名称を有する他のアプリケーションプールとの競合を避けためにアプリケーションプール名にグローバル一意識別子(GUID)を付加する。システムはまた、管理者又は他のソースからアプリケーションの環境設定のために使用する代替インストールパラメーターを指定する指定変更情報を受け取るようにしても良い。
続くブロック340において、システムは設定されたアプリケーションインストールパラメーターでサーバーアプリケーションを動作させるために目標とするコンピューターシステムを環境設定する。例えば、システムはアプリケーションを環境設定するために環境設定データを環境設定データベース、1つ以上のファイル、webサーバーメタベース等に書き込んでも良い。アプリケーションを環境設定することはアプリケーションが目標とするコンピューター上で動作するように準備することである。例えば、webアプリケーションについては、環境設定はwebアプリケーションのための仮想ディレクトリ、ポート、及びファイル位置をwebサーバーアプリケーションマネージャー(例えば、IISマネージャー)に提供することを含んでも良い。
続くブロック350において、システムは環境設定されたサーバーアプリケーションを開始するための要求を指示するアプリケーション実行指示を受け取る。例えば、その指示はネットワーク(例えば、サーバーによってホストされるwebページへのアクセスによる)又は他のソースを介して受け取った要求から到来するものであっても良い。幾つかの実施形態において、システムはサーバーアプリケーションを開始するコールを傍受するためにサーバーアプリケーション管理コンポーネントにコンポーネントを注入する。例えば、webサーバーはサーバー上でホストされる各webサイトを操作するためのワーカープロセスを開始する管理アプリケーションを含んでいることが多い。システムはシステムによって管理された仮想環境が管理アプリケーションの本来の動作の代わりになるようにワーカープロセスを呼び出すコールを傍受するようにしても良い。
続くブロック360において、システムは受け取ったアプリケーション実行指示に関連したアプリケーションパッケージをロードし、仮想環境中でアプリケーションを実行する。システムがアプリケーション仮想化システムに関連したモジュール又は他の実行可能なコードをロードして、そのためにアプリケーションが設計された環境を模した仮想環境をアプリケーションに提供するためにコールのリダイレクト、APIフック、及び他の仮想化の動作を可能にするようにしても良い。システムはまたファイルアクセス要求、レジストリアクセス要求、webサーバー特有の要求、等のアプリケーションが作成する可能性のある種々のタイプの要求を処理する1つ以上の仮想化サブシステムを呼び出すようにしても良い。アプリケーションが実行されるにつれて、仮想化サブシステムによって配置されたフックや他の間接指定処理によって、仮想化によって提供された独立性を容認するリダイレクト又は他の処理を必要とするアプリケーションの要求をシステムが処理することが可能になる。ブロック360の後に、これらのステップは終了する。
図4は一実施形態におけるアプリケーション仮想化システムの動作環境及び実装コンポーネントを示すブロック図である。幾つかの実施形態において、アプリケーション仮想化システムはアプリケーションを仮想するためにオペレーティングシステムドライバー430及び幾つかのユーザーモードコンポーネントを使用する。仮想化ドライバー430(例えば、sftplay.sys)がatオペレーティングシステムのカーネルレベルで仮想環境を管理する。ドライバーのプロセスマネージャーコンポーネントが仮想環境マッピングへのプロセスIDを維持している。プロセスが作成されるにつれて、プロセスマネージャーコンポーネントが親プロセスの仮想環境に自動的に子プロセスを追加する。プロセスマネージャーコンポーネントはまた、仮想プロセスの作成と終了及び仮想環境内で動作するプロセスが無くなった時点についてユーザーモード仮想化ライブラリー420に報知する。
ドライバー430の役割の1つはレジストリとファイルシステムの仮想化を実行することである。レジストリ及びファイルマッピング情報は仮想環境が仮想化ライブラリー420を使用して最初に作成されたときにドライバー430にアップロードされる。ドライバー430はこの情報をレジストリ及びファイルシステムAPIの動作を仮想アプリケーション440にとってはアプリケーションが目標とするコンピューターシステムにローカルにインストールされたかのように見えるように変更するのに使用する。
ユーザーモード仮想化ライブラリー420(例えば、osguard.lib)は仮想環境及びプロセスを管理するAPIを含み、ユーザーモードと仮想化ドライバー430の間のインターフェースである。仮想化ライブラリー420はまた、種々のアプリケーションサブシステムにわたって使用される仮想ファイルシステム及び仮想レジストリを含む仮想サブシステムを有しており、内蔵している。仮想化ライブラリー420は実行時と同様に仮想アプリケーションをパッケージにするときに使用される。シーケンサー410はインストールプロセスを監視することによって仮想アプリケーションをパッケージ化するために管理者によって使用されるアプリケーションであり、リスナー(図示せず)は実行時に仮想アプリケーションを管理するオペレーティングシステムサービスである。
仮想化実行時モジュール(例えば、sftldr.dll)は子プロセスを作成するときに仮想化ライブラリー420又はそれ自身によって各仮想プロセスに注入されたライブラリーである。迂回ライブラリーが仮想アプリケーション440プロセス内のファンクションをフックするために用いられる。レジストリ及びファイルシステムの仮想化のために幾つかのコールは仮想化ドライバー430にリダイレクトされ、その他のものはそれぞれのサブシステムの仮想化を実行するために仮想化ライブラリー420内にRPCコールを行う。
その初期化の間、仮想化ライブラリー420はレジストリ内にリストされたサブシステムモジュールの各々を動的にロードし、それらのファクトリーインターフェースにポインタを格納する。シーケンサー410またはリスナーが仮想環境を作成するために仮想環境マネージャーを使用している場合ば、ファクトリーが各サブシステムの実体を作成するために使用される。サブシステムの実体は仮想環境オブジェクト内に格納されており、シーケンサー又はリスナーによって取り込むことが可能である。
多くのサブシステムが仮想ファイルシステムへのアクセス及びそれらの仮想化を実行するレジストリを必要とする。例えば、仮想COM及び仮想サービスサブシステムの両方がそれぞれ仮想COMオブジェクトを作成し、仮想サービスを開始するために仮想レジストリーキーへのアクセスを必要とする。従って、幾つかの実施形態においては、仮想レジストリ及びファイルシステムサブシステムは汎用化されず、寧ろ主要なコンポーネントである。サブシステムはそれらの監視及び実行時インターフェースを介してそれらに渡された仮想環境オブジェクトを通してこれらのコアサブシステムにアクセスすることが可能である。
監視インターフェースが、検出したサブシステムの変更をマニフェスト450ファイル内に格納する。このマニフェスト450はこの情報を表示し編集することを可能にする視覚化インターフェース、コンポーネントを登録するのにこの情報を使用する登録インターフェースを含む他のインターフェースに渡される。
幾つかの実施形態において、アプリケーション仮想化システムが管理者が仮想化されたwebアプリケーションのためにアプリケーションプール名を指定変更することを可能にする。例えば、管理者が同一プール内で二つのwebアプリケーションが動作するように環境設定することを欲するかも知れない。この場合には、webアプリケーションが或る名称を使用するように設計されている場合があり、管理者はそのアプリケーションプール名を使用するために sav_provider.xml 又は他のロケーションをアプリケーションメタデータを格納する為に変更し、それによってwebアプリケーションが正しく機能し続けるようにすることができる。
幾つかの実施形態において、アプリケーション仮想化システムは単一の仮想環境内で複数のサーバーアプリケーションを動作させる。
多くの場合、本明細書に記述されたアプリケーション毎に別々の仮想環境が望ましいけれども、システムは単一の環境内でアプリケーションを仮想化することもできる。例えば、管理者が目標とするコンピューターシステムのリソースを維持することを望むかもしれず、関連したアプリケーションが、複数の仮想環境の分離によっては許されない方法で互いに通信することを望むかも知れない。
以上の内容から、アプリケーション仮想化システムの特定の実施形態が説明のために本明細書に記述されてきたけれども、本発明の趣旨及び範囲から逸脱することなく種々の変更が可能であることが理解される筈である。従って、発明は添付された請求項による以外には限定されない。

Claims (20)

  1. 仮想化のためのwebサーバーアプリケーションを準備するためのコンピューターにより実現される方法であって、
    仮想化すべきwebサーバーアプリケーションの監視を開始する指示を受取るステップであり、前記アプリケーションは特定のwebアプリケーションを指定するパラメーターを有するwebサーバーのネーティブの仮想化されていないプロセスを使用して呼び出される、前記ステップと、
    前記webアプリケーションのインストールを開始するステップと、
    前記webアプリケーションのインストールの間に前記webアプリケーションを呼び出すパラメーターを含む環境設定データを捕捉するステップと、
    前記webアプリケーションのインストールの監視を終了するステップと、
    前記webアプリケーションを後に配置する間に使用するために前記捕捉した環境設定データを格納するステップと、
    前記格納された環境設定データを含めて前記webアプリケーションを配置するためのパッケージにするステップと
    を備え、
    上記のステップは少なくとも一つのプロセッサーにより実行される、ことを特徴とする方法。
  2. 前記監視の開始の指示を受取るステップは、管理者がアプリケーション監視ツールを開始させたことを検出することを含むことを特徴とする請求項1に記載の方法。
  3. 前記監視は、インストールの後に取られた終了スナップショットと比較するために前記webアプリケーションのインストールの前にテストサーバーの状態を格納する開始スナップショットを取り、インストールの間に前記webアプリケーションによって行われた環境設定の変更を検出することを含むことを特徴とする請求項1に記載の方法。
  4. 前記インストールを開始するステップは、新しいプロセスの作成を検出し、コア仮想化システムをプロセスに入れることを含むことを特徴とする請求項1に記載の方法。
  5. 前記環境設定データを捕捉するステップは、webアプリケーションに関連したアプリケーションプール名を検出することを含むことを特徴とする請求項1に記載の方法。
  6. 前記環境設定データを捕捉するステップは、インストールの間にwebアプリケーションによって変更された1つ以上のファイル、レジストリ値、又はアプリケーション特有の環境設定を検出することを含むことを特徴とする請求項1に記載の方法。
  7. 前記監視を終了するステップは、インストールの前に取られた開始スナップショットと比較するためにwebアプリケーションの終了スナップショット及び関連したデータを取ることを含むことを特徴とする請求項1に記載の方法。
  8. 前記捕捉した環境設定データを格納するステップは、XMLファイルを作成し、後に取り出すために環境設定データをXMLファイルに存続させることを含むことを特徴とする請求項1に記載の方法。
  9. 前記webアプリケーションをパッケージ化するステップは、前記webアプリケーションに関連した1つ以上のファイル及び環境設定データを含むアーカイブファイルを作成することを含むことを特徴とする請求項1に記載の方法。
  10. ホストプロセス内でホストされたサーバーアプリケーションを仮想化するコンピューターシステムであって、
    ソフトウエア命令を実行するように構成されたプロセッサー及びメモリーと、
    ホストプロセス内でホストされたアプリケーションを監視するように構成された監視コンポーネントであって、ホストされたアプリケーションは仮想化のために準備されつつ、ホストされたアプリケーションに関連した環境設定データを検出するよう監視される、監視コンポーネントと、
    仮想化のために準備されつつあるホストされたアプリケーションに関連した環境設定データを格納するためのパッケージを生成するように構成されたパッケージ作成コンポーネントと、
    仮想化のために準備されつつあるホストされたアプリケーションの監視と、仮想化されたアプリケーションを1つ以上のターゲットコンピューターシステムへの配置との間にアプリケーションパッケージを格納するように構成されたアプリケーションパッケージストアと、
    ターゲットコンピューターシステムが仮想化されたアプリケーションを呼び出すことができるようにアプリケーションパッケージをターゲットコンピューターシステムに配置するように構成されたアプリケーション配置コンポーネントと、
    仮想化されたアプリケーションに関連した環境設定データを検出し、ターゲットコンピューターシステム上で動作するように構成された他の仮想アプリケーション又は非仮想アプリケーションとの競合を回避するように環境設定データを変更するように構成されたコンフリクト管理コンポーネントと、
    仮想化されたアプリケーションとターゲットコンピューターシステムのホストオペレーティングシステムとの間に一段の間接参照を提供するように構成されたアプリケーション実行環境と
    を備えたことを特徴とするコンピューターシステム。
  11. 前記監視コンポーネントは、アプリケーションプログラミングインターフェース(API)をフックして、変更が要求されたのに応じてアプリケーションによって環境設定に加えられた変更を検出するように更に構成されていることを特徴とする請求項10に記載のシステム。
  12. 前記パッケージ作成コンポーネントは、新しいアプリケーションが仮想化のために準備されつつあるときにパッケージを作成し、パッケージに関連するアプリケーション特有の環境設定情報を格納するように更に構成されることを格納すること特徴とする請求項10に記載のシステム。
  13. 前記アプリケーション配置コンポーネントは、アプリケーションをwebアプリケーション管理コンポーネントに登録することを含む、ターゲットコンピューターシステム上でのアプリケーション特有の環境設定を実行するように更に構成されていることを特徴とする請求項10に記載のシステム。
  14. 前記アプリケーション配置コンポーネントは、前記アプリケーションパッケージに関連したサブシステムを呼び出し、サブシステム特有の登録タスクを実行し、仮想化されたアプリケーションがターゲットコンピューターシステム上で動作するための準備をするよう更に構成されていることを特徴とする請求項10に記載のシステム。
  15. 前記コンフリクト管理コンポーネントは、その中で実行するための名前付きアプリケーションプールを指定するwebサーバーアプリケーションのために名称の競合を検出し、他のアプリケーションと競合しないように名称を変更するように更に構成されていることを特徴とする請求項10に記載のシステム。
  16. 前記競合管理コンポーネントは、コンポーネントのデフォルトの動作を上書きする情報を管理者から受け取り、特定のアプリケーションプール名を指定してwebアプリケーションのために名称の競合を避けるように更に構成されていることを特徴とする請求項10に記載のシステム。
  17. 前記アプリケーション実行環境は、実行時にサブシステム特有の仮想化されたアプリケーションの操作を提供するための適当なサブシステムを呼び出すよう更に構成されていることを特徴とする請求項10に記載のシステム。
  18. 前記アプリケーション実行環境は、ターゲットコンピューターシステム上のワーカープロセス内でのアプリケーションの開始を検出することを特徴とする請求項10に記載のシステム。
  19. サーバーアプリケーションを配置し仮想化するためのコンピューターシステムを制御する命令を備えるコンピューター読取り可能記録媒体であって、該命令は、実行されると、
    ターゲットコンピュータに配置するための、ホストプロセス内でホストされるサーバーアプリケーションに関する環境設定データを含むアプリケーションパッケージを受け取るステップと、
    ホストプロセスを変更するために、受け取ったアプリケーションパッケージ内の、ターゲットコンピュータ上で動作する他のアプリケーションと競合する可能性のあるパラメーターを有する環境設定データを検出するステップと、
    サーバーアプリケーションがターゲットコンピュータ上でターゲットコンピュータ上の他のアプリケーションとの競合せずに動作することを可能にするアプリケーションインストールパラメータを設定するステップと、
    設定されたアプリケーションインストールパラメータでサーバーアプリケーションを動作させるためにターゲットコンピューターシステムを環境設定するステップと、
    環境設定されたサーバーアプリケーションを開始するために要求を指示するアプリケーション実行指示を受け取るステップと、
    受け取ったアプリケーション実行指示に関連したアプリケーションパッケージをロードし、かつ仮想環境中でアプリケーションを実行するステップと、
    を含む動作をプロセッサーに実行させることを特徴とする媒体。
  20. 前記環境設定データを検出するステップは、サーバーアプリケーションがwebアプリケーションであることを判定し、環境設定データによって指定されたアプリケーションプール名がターゲットコンピュータ上の他のwebアプリケーションと競合するか否かを検出するステップを含むことを特徴とする、請求項19に記載の媒体。
JP2012556226A 2010-03-04 2011-03-02 webアプリケーション等のサーバーアプリケーションのための仮想環境 Active JP5726212B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/717,146 US8468542B2 (en) 2010-03-04 2010-03-04 Virtual environment for server applications, such as web applications
US12/717,146 2010-03-04
PCT/US2011/026928 WO2011109562A2 (en) 2010-03-04 2011-03-02 Virtual environment for server applications, such as web applications

Publications (3)

Publication Number Publication Date
JP2013521578A JP2013521578A (ja) 2013-06-10
JP2013521578A5 JP2013521578A5 (ja) 2014-04-10
JP5726212B2 true JP5726212B2 (ja) 2015-05-27

Family

ID=44532392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012556226A Active JP5726212B2 (ja) 2010-03-04 2011-03-02 webアプリケーション等のサーバーアプリケーションのための仮想環境

Country Status (5)

Country Link
US (2) US8468542B2 (ja)
EP (1) EP2542966B1 (ja)
JP (1) JP5726212B2 (ja)
CN (1) CN102782648B (ja)
WO (1) WO2011109562A2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060167838A1 (en) * 2005-01-21 2006-07-27 Z-Force Communications, Inc. File-based hybrid file storage scheme supporting multiple file switches
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8364794B2 (en) * 2010-03-11 2013-01-29 International Business Machines Corporation Admission control framework method and system
US8793650B2 (en) 2010-06-11 2014-07-29 Microsoft Corporation Dynamic web application notifications including task bar overlays
US8863001B2 (en) 2010-06-11 2014-10-14 Microsoft Corporation Web application home button
US8429546B2 (en) 2010-06-11 2013-04-23 Microsoft Corporation Creating task sessions
US8671384B2 (en) 2010-06-11 2014-03-11 Microsoft Corporation Web application pinning including task bar pinning
US9164671B2 (en) 2010-06-11 2015-10-20 Microsoft Technology Licensing, Llc Web application navigation domains
US8595551B2 (en) * 2010-06-11 2013-11-26 Microsoft Corporation Web application transitioning and transient web applications
US8434135B2 (en) 2010-06-11 2013-04-30 Microsoft Corporation Creating and launching a web application with credentials
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US9354852B2 (en) 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US20130283273A1 (en) * 2011-01-05 2013-10-24 Hirohisa Miyazaki Service reservation management method, virtual machine system and storage medium
US10423509B2 (en) * 2011-08-05 2019-09-24 Entit Software Llc System and method for managing environment configuration using snapshots
US8978015B2 (en) * 2011-08-15 2015-03-10 Red Hat, Inc. Self validating applications
US20130091197A1 (en) 2011-10-11 2013-04-11 Microsoft Corporation Mobile device as a local server
US8935375B2 (en) * 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US9092247B2 (en) * 2012-03-29 2015-07-28 Microsoft Technology Licensing, Llc Persistent and resilient worker processes
CN103716347B (zh) * 2012-09-29 2017-06-23 国际商业机器公司 建立虚拟机的方法、装置和云服务器
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US9781118B2 (en) 2013-03-14 2017-10-03 Intel Corporation Differentiated containerization and execution of web content based on trust level and other attributes
EP3608818B1 (en) * 2013-03-15 2021-10-27 James Carey Self-healing video surveillance system
WO2014144504A1 (en) 2013-03-15 2014-09-18 James Carey Investigation generation in an observation and surveillance system
US11032520B2 (en) * 2013-03-15 2021-06-08 James Carey Self-healing video surveillance system
US10657755B2 (en) 2013-03-15 2020-05-19 James Carey Investigation generation in an observation and surveillance system
US9811364B2 (en) * 2013-06-13 2017-11-07 Microsoft Technology Licensing, Llc Thread operation across virtualization contexts
US9811447B2 (en) 2013-06-20 2017-11-07 Entit Software Llc Generating a fingerprint representing a response of an application to a simulation of a fault of an external service
US10078314B2 (en) * 2014-01-29 2018-09-18 Siemens Aktiengesellschaft Method for providing functions within an industrial automation system, and industrial automation system
CN104156662B (zh) * 2014-08-28 2017-10-27 北京奇虎科技有限公司 进程监控的方法、装置和智能终端
JP2016071562A (ja) 2014-09-29 2016-05-09 富士通株式会社 判定プログラム、方法及び装置
CN104461893B (zh) * 2014-12-16 2017-12-01 用友软件股份有限公司 数据处理方法与数据处理装置
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
CN106469154A (zh) * 2015-08-17 2017-03-01 阿里巴巴集团控股有限公司 一种用于发布网页应用的方法与设备
US11709799B2 (en) * 2015-08-29 2023-07-25 Vmware, Inc. Content or file based application virtualization using a cache
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11113937B2 (en) 2016-03-01 2021-09-07 James Carey Theft prediction and tracking system
US11417202B2 (en) 2016-03-01 2022-08-16 James Carey Theft prediction and tracking system
GB2601081B (en) * 2016-10-24 2022-09-28 Fisher Rosemount Systems Inc Systems and methods for merging modular control systems into a process plant
AU2018208489A1 (en) * 2017-01-11 2019-08-29 Mz Ip Holdings, Llc System and method for managing dynamic design data for a virtual environment
CN109491336B (zh) 2017-09-13 2023-11-28 费希尔-罗斯蒙特系统公司 用于模块化控制系统的助理应用
US10884895B2 (en) * 2019-01-30 2021-01-05 International Business Machines Corporation Capture of software element state changes during software application runtime and application modification based on state changes
JP7028300B2 (ja) * 2020-10-15 2022-03-02 株式会社リコー 情報処理装置、Webアプリケーション管理方法及び情報処理システム
JP7235147B2 (ja) * 2020-10-15 2023-03-08 株式会社リコー 情報処理装置、プログラム、Webアプリケーション管理方法及び情報処理システム
CN113419746B (zh) * 2021-05-21 2022-11-08 济南浪潮数据技术有限公司 一种Cinder-CSI插件安装方法、系统、存储介质及设备
US20230205932A1 (en) * 2021-12-28 2023-06-29 Rakuten Mobile, Inc. Method, apparatus, and computer readable medium

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256031B1 (en) * 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
US7257705B2 (en) * 2002-11-18 2007-08-14 Sparta Systems, Inc. Method for preserving changes made during a migration of a system's configuration to a second configuration
US7210125B2 (en) * 2003-07-17 2007-04-24 International Business Machines Corporation Method and system for application installation and management using an application-based naming system including aliases
US7383535B1 (en) * 2003-08-25 2008-06-03 Unisys Corporation System and method for implementing code hooks in a web-based environment
US20050289538A1 (en) * 2004-06-23 2005-12-29 International Business Machines Corporation Deploying an application software on a virtual deployment target
TWI242376B (en) * 2004-06-24 2005-10-21 Via Tech Inc Method and related system for detecting advertising by integrating results based on different detecting rules
US7958506B2 (en) * 2006-06-22 2011-06-07 Intel Corporation Time sliced interrupt processing on virtualized platform
US8862590B2 (en) * 2007-06-29 2014-10-14 Microsoft Corporation Flexible namespace prioritization
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
KR100927442B1 (ko) 2007-08-16 2009-11-19 주식회사 마크애니 가상 응용프로그램 생성 시스템, 가상 응용프로그램 설치방법, 네이티브 api 호출 처리 방법 및 가상응용프로그램 수행 방법
US8635611B2 (en) * 2007-11-16 2014-01-21 Microsoft Corporation Creating virtual applications
US20090187726A1 (en) * 2008-01-22 2009-07-23 Serebrin Benjamin C Alternate Address Space to Permit Virtual Machine Monitor Access to Guest Virtual Address Space
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server
US20090199178A1 (en) * 2008-02-01 2009-08-06 Microsoft Corporation Virtual Application Management
US9086901B2 (en) * 2008-03-07 2015-07-21 Sap Se Migration of applications from physical machines to virtual machines
US9141934B2 (en) * 2008-04-07 2015-09-22 Blackberry Limited Techniques for deploying virtual software applications on desktop computers
US8434093B2 (en) * 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) * 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
GB2480784A (en) * 2009-01-29 2011-11-30 Wms Gaming Inc Configuring and controlling wagering game compatibility
US20110238796A1 (en) * 2010-03-29 2011-09-29 Faulk Jr Robert L Electronic device and method

Also Published As

Publication number Publication date
US8839265B2 (en) 2014-09-16
CN102782648A (zh) 2012-11-14
WO2011109562A2 (en) 2011-09-09
US8468542B2 (en) 2013-06-18
WO2011109562A3 (en) 2012-01-05
EP2542966B1 (en) 2022-06-29
EP2542966A4 (en) 2018-03-21
US20130275978A1 (en) 2013-10-17
EP2542966A2 (en) 2013-01-09
CN102782648B (zh) 2015-11-25
JP2013521578A (ja) 2013-06-10
US20110219385A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
JP5726212B2 (ja) webアプリケーション等のサーバーアプリケーションのための仮想環境
JP5785564B2 (ja) 拡張可能なアプリケーション仮想化サブシステム
US10225335B2 (en) Apparatus, systems and methods for container based service deployment
US10284416B2 (en) Workload deployment with infrastructure management agent provisioning
US10365909B2 (en) Method and system for deploying virtualized applications
US9996374B2 (en) Deployment and installation of updates in a virtual environment
US9684502B2 (en) Apparatus, systems, and methods for distributed application orchestration and deployment
US20180039507A1 (en) System and method for management of a virtual machine environment
US10713183B2 (en) Virtual machine backup using snapshots and current configuration
US8990809B1 (en) Creating a virtual appliance using existing installation manifest
US7774762B2 (en) System including run-time software to enable a software application to execute on an incompatible computer platform
US8448219B2 (en) Securely hosting workloads in virtual computing environments
US10140145B1 (en) Displaying guest operating system statistics in host task manager
US20080222160A1 (en) Method and system for providing a program for execution without requiring installation
US20130232463A1 (en) System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US8347071B2 (en) Converting virtual deployments to physical deployments to simplify management
US20080295110A1 (en) Framework for Startup of Local Instance of Remote Application
WO2018099226A1 (zh) 跨云服务器的镜像管理方法、装置及服务器
US11403147B2 (en) Methods and apparatus to improve cloud 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: 20140219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150331

R150 Certificate of patent or registration of utility model

Ref document number: 5726212

Country of ref document: JP

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

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