JP2014501410A - アプリケーション従属性を満たすこと - Google Patents

アプリケーション従属性を満たすこと Download PDF

Info

Publication number
JP2014501410A
JP2014501410A JP2013546400A JP2013546400A JP2014501410A JP 2014501410 A JP2014501410 A JP 2014501410A JP 2013546400 A JP2013546400 A JP 2013546400A JP 2013546400 A JP2013546400 A JP 2013546400A JP 2014501410 A JP2014501410 A JP 2014501410A
Authority
JP
Japan
Prior art keywords
application
computer
dependencies
dependency
virtualized
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
JP2013546400A
Other languages
English (en)
Other versions
JP6081925B2 (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 JP2014501410A publication Critical patent/JP2014501410A/ja
Application granted granted Critical
Publication of JP6081925B2 publication Critical patent/JP6081925B2/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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

アプリケーションによって行われるアプリケーションプログラミングインターフェース呼出しをインターセプトすることによって、アプリケーションの従属性が識別される。次いで、アプリケーションの従属性が存在するかどうかに関して、アプリケーションの実行時に判定が行われる。従属性が存在しない場合、その上でアプリケーションが実行しているクライアントデバイスは、従属性が存在し、許可されたアプリケーションのみに使用可能にされるように、構成される。従属性が存在し、アプリケーションが従属性と対話することを許可された場合、アプリケーションは実行することを許される。

Description

本発明は、アプリケーション従属性を満たすことに関する。
コンピュータアプリケーションプログラム(「アプリケーション」)は、通常は、アプリケーションを成功裏に展開および実行するために必要とされる一連の従属性を有する。これらの従属性は、データベース、アプリケーション、ハードウェア構成要素、ネットワーク接続、および同様のものなどの資源へのアクセスを含み得る。デバイスが企業の企業ネットワーク内で局所的に動作している間、これらの従属性の多数は、企業ネットワークに接続されているという理由で存在する。しかし、たとえば、デバイスが企業の敷地を出たときなど、デバイスがもはや企業ネットワークに接続されなくなった後は、デバイスは企業ネットワークにもはや接続することはできない。結果として、デバイスが企業ネットワークに接続されているという理由で存在したアプリケーションの従属性の多数は、もはや存在しない。したがって、アプリケーションは、従属性が復元されるまで、デバイス上で展開または実行することはできない。
アプリケーション従属性を復元するための1つの機構は、企業ネットワークと接続が確立されることを必要とする。たとえば、自宅から作業している企業ユーザは、従属性を再確立するために、仮想プライベートネットワーク(VPN)を介して企業ネットワークに接続する必要があり得る。しかし、この方式で接続を使用することは、煩雑であることがあり、または、企業ネットワークをセキュリティ脅威にさらすことがある。
これらのおよび他の考慮すべき事項に関して、本明細書で行われる開示は提示される。
米国特許第7225264号明細書 米国特許第7200632号明細書 米国特許第7451451号明細書 米国特許第7797372号明細書
仮想化されたアプリケーションの従属性を満たすための技術が、本明細書に記載される。本明細書で提示される概念および技術の実装を介して、アプリケーション従属性が、アプリケーション実行時に識別および復元され得る。結果として、クライアントデバイスは、デバイスと企業ネットワークの間のバックエンド接続を確立する必要なしに、アプリケーションを成功裏に展開および実行することができる。本明細書では、「従属性」という用語は、アプリケーションが実行のために必要とする任意の資源を示す。従属性は、構成設定、ハードウェア構成要素、ネットワーク接続、アクセス特権、または任意の他のタイプの資源を含み得るが、これらに限定されない。
本明細書で提供される一態様によれば、仮想化されたアプリケーションのすべての従属性が存在するようにクライアントデバイスを構成することによって、仮想化されたアプリケーションを実行することができるアプリケーション仮想化環境が提供される。本開示の範囲は、アプリケーション仮想化環境内の使用に限定されるものではないことを理解されたい。そうではなくて、本明細書で開示される実施形態は、仮想化されたまたは仮想化されない環境において実行する任意のタイプのアプリケーションの従属性を満たすために使用され得る。
もう1つの態様によれば、要求が、仮想化されたアプリケーションを展開するために受信されるとき、アプリケーション仮想化クライアント構成要素は、仮想化されたアプリケーションを展開するために不可欠な従属性が存在するかどうかを判定する。アプリケーション仮想化クライアント構成要素が、従属性が存在しないと判定した場合、アプリケーション仮想化クライアント構成要素は、従属性が存在するようにクライアントデバイスを構成する。アプリケーション仮想化クライアント構成要素が、従属性が存在すると判定した場合、アプリケーション仮想化クライアント構成要素は、実行のために仮想化されたアプリケーションを展開する。
もう1つの態様によれば、アプリケーション仮想化クライアント構成要素はまた、仮想化されないアプリケーションがある種の資源にアクセスすることができないように、仮想化されたアプリケーションと仮想化されないアプリケーションの間にセキュリティ境界を提供するように構成される。たとえば、一実施形態で、アプリケーション仮想化クライアント構成要素は、クライアントデバイスに使用可能な資源にアクセスするための要求など、資源にアクセスするための仮想化されたアプリケーションによって行われるアプリケーションプログラミングインターフェース(API)呼出しをインターセプトする。アプリケーション仮想化クライアント構成要素は、次いで、資源が新しい場所でアクセス可能であるように、要求された資源の名前空間を修正する。いくつかの実施形態で、アプリケーション仮想化クライアント構成要素はまた、資源と関連するアクセス制御リスト(ACL)を修正し、API呼出しを新しい場所で記憶された資源に渡すことができる。資源にアクセスするための仮想化されないアプリケーションからの要求は、資源に新しい場所でアクセスすることはできない。
もう1つの態様によれば、アプリケーション従属性は、アプリケーションに静的解析を実行することによって、実行時より前に識別される。一実施例で、仮想化されたアプリケーションは、仮想化されたアプリケーションのすべての従属性が存在する環境を提供する監視局にインストールされる。監視局の従属性解析エンジンは、仮想化されたアプリケーションのインストールおよび実行中に監視局に行われる変更を監視して、従属性を識別する。仮想化されたアプリケーションを監視したとき、従属性解析エンジンは、従属性解析データベース内で従属性を識別するデータを記憶する。従属性解析データベースは、アプリケーションの実行時に使用されて、すべての必要な従属性が存在することを確保することができる。
本概要は、本特許請求の対象の重要な特徴または本質的特徴を識別するものではなく、本概要が本特許請求の対象の範囲を限定するために使用されることを意図しない。さらに、本特許請求の対象は、本開示のいずれかの部分で指摘されたいずれかのまたはすべての欠点を解決する実施例に限定されない。
本明細書で開示される実施形態の1つの例示的動作環境を示すソフトウェアおよびネットワークアーキテクチャ図である。 本明細書で提示される一実施形態による、仮想化されたアプリケーションの従属性を識別するための1つのプロセスを示す概略図である。 本明細書で提示される一実施形態による、学習モードの動作において仮想化されたアプリケーションの従属性を識別するための本明細書で開示される1つの例示的プロセスの態様を示すフロー図である。 本明細書で提示される一実施形態による、仮想化されたアプリケーションの従属性を満たすために本明細書で開示される1つの例示的プロセスの態様を示すフロー図である。 本明細書で提示される一実施形態による、セキュリティ境界を提供して、外部の仮想化されないアプリケーションが資源にアクセスすることを防ぐための1つのプロセスを示す概略図である。 本明細書で提示される一実施形態による、外部アプリケーションが資源と対話することを防ぐために一方向のセキュリティ境界を提供するための本明細書で開示される1つの例示的プロセスの態様を示すフロー図である。 本明細書で提示される様々な実施形態を実装することができる計算システムの例示的コンピュータハードウェアおよびソフトウェアアーキテクチャを示す、コンピュータアーキテクチャ図である。
以下の詳細な説明は、アプリケーションの従属性を満たすための技術を対象とする。前記で簡潔に論じられたように、本明細書で開示される方式で構成されたクライアントデバイスは、アプリケーション従属性を識別し、それらの従属性をアプリケーション実行時に使用可能にすることができる。この方式では、クライアントデバイスは、VPNに接続することなど、従属性を満たすための手動の動作を必要としない、アプリケーションの実行のために構成可能である。
本明細書に記載される対象は、コンピュータシステム上のオペレーティングシステムおよびアプリケーションプログラムの実行と連動して実行するプログラムモジュールの一般的な文脈において提示されるが、他の実施例が他のタイプのプログラムモジュールとの組合せで実行され得ることが、当業者には理解されよう。一般に、プログラムモジュールは、ルーチン、プログラム、構成要素、データ構造体、および、特定のタスクを実行するまたは特定の抽象データタイプを実装する他のタイプの構造体を含む。さらに、本明細書に記載される対象は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくもしくはプログラマブルな家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、および、同様のものを含む、他のコンピュータシステム構成で実施され得ることが、当業者には理解されよう。
以下の詳細な説明で、本明細書の一部を形成し、例として特定の実施形態または例が示される、添付の図面が参照される。ここで、図面を参照すると、同様の数字はいくつかの図を通して同様の要素を表し、アプリケーション従属性を満たすための計算システムおよび方法論の態様が説明される。
図1は、本明細書で開示される実施形態の1つの例示的動作環境100を示すソフトウェアおよびネットワークアーキテクチャ図である。図1に示す例示的動作環境100は、ネットワーク106を経由してサーバ104と通信するように構成されたクライアントデバイス102を含む。クライアントデバイス102は、オペレーティングシステム108Aおよびアプリケーション仮想化クライアント構成要素110を実行するように構成された計算デバイスである。クライアントデバイス102は、標準デスクトップもしくはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、または、仮想化されたアプリケーションの従属性を満たすための本明細書で提示される動作を実行する能力のある任意の他のタイプの計算デバイスでもよい。クライアントデバイス102はまた、本明細書で開示される機能性を提供するように構成されたサーバコンピュータでもよい。
サーバ104は、オペレーティングシステム108Bおよびアプリケーション仮想化サーバ構成要素120を実行するように構成された計算システムである。サーバ104は、アプリケーション仮想化サーバ構成要素110を実行するように構成された実際のサーバコンピュータでもよく、または、サーバ104によって実行されるものとして本明細書に記載された機能性を実行するように構成された別のタイプのコンピュータシステムを含み得ることを理解されたい。
図1に示すネットワーク106は、ワイドエリアネットワークまたはローカルエリアネットワークを含み得る。たとえば、ネットワーク106は、企業ローカルエリアネットワーク、インターネットなどのワイドエリアネットワーク、または、複数のワイドエリアネットワークおよびローカルエリアネットワークの組合せでもよい。単一のネットワーク106が図1に示されているが、多数の他のネットワークが使用され得ることを理解されたい。単一のクライアントデバイス102およびサーバ104が図1に示されているが、多数のそのようなデバイスが本明細書で開示される実施形態によって使用され得ることも理解されたい。
上記で簡潔に論じられたように、クライアントデバイス102は、アプリケーション仮想化クライアント構成要素110を実行するように構成される。アプリケーション仮想化クライアント構成要素110は、アプリケーション仮想化環境を提供するように構成されたソフトウェア構成要素である。この関連で、アプリケーション仮想化クライアント構成要素110は、仮想化されたアプリケーション112を展開および実行するように構成される。
アプリケーション仮想化クライアント構成要素110は、オペレーティングシステム108Aからの仮想化されたアプリケーション112の実行をカプセル化するための機能性を提供する。アプリケーション仮想化クライアント構成要素110はまた、クライアントデバイス102の他のアプリケーションプログラムおよびシステム資源からの仮想化されたアプリケーション112の実行をカプセル化するための機能性も提供することができる。たとえば、アプリケーション仮想化クライアント構成要素110は、オペレーティングシステム108Aまたはクライアントデバイス102の資源を仮想化することができる。仮想化されたアプリケーション112が物理資源にアクセスしようと試みるとき、アプリケーション仮想化クライアント構成要素110は、仮想化された資源をアプリケーション112に提示する。この方式で、仮想化されたアプリケーション112は、オペレーティングシステム108Aまたはクライアントデバイス102によってさらされる実際の資源に影響を及ぼさない方式で実行することができる。
他の態様によれば、アプリケーション仮想化クライアント構成要素110はまた、要求に応じて仮想化されたアプリケーション112の部分をロードするための機能性を提供する。具体的には、アプリケーション仮想化クライアント構成要素110は、アプリケーション仮想化サーバ構成要素120と連動して動作してサーバ104からクライアントデバイス102に仮想化されたアプリケーション112の必要とされる部分を流すことができる。この方式では、仮想化されたアプリケーション112は、要求に応じてクライアントデバイス102でアクセス可能である。さらに、仮想化されたアプリケーション112の必要とされる部分のみがサーバ104からクライアントデバイス102に流され得るので、仮想化されたアプリケーション112へのアクセスは、サーバ104からクライアントデバイス102にアプリケーション112全体を流すことなしに、提供可能である。
仮想化されたアプリケーション112の実行をカプセル化するためのおよびサーバ104からクライアントデバイス102に仮想化されたアプリケーション112を流すためのアプリケーション仮想化クライアント構成要素110によって提供される機能に関するさらなる詳細は、それぞれが参照により本明細書に全体が組み込まれている、2007年5月29日に出願した米国特許第7225264号明細書「Systems and Methods for Delivering Content over a Computer Network」、2007年4月3日に出願した米国特許第7200632号明細書「Method and System for Serving Software Applications to Client Computers」、2008年11月11日に出願した米国特許第7451451号明細書「Operating System Abstraction and Protection Layer」、および、2010年9月14日に出願した米国特許第7797372号明細書「Serving Software Applications from Servers for Client Computers」で見ることができる。
本明細書でさらに詳しく説明するように、アプリケーション仮想化クライアント構成要素110はまた、仮想化されたアプリケーション112の1つまたは複数の従属性114がアプリケーション112の実行時に満たされることを確保するように構成され得る。本明細書では、「従属性」という用語は、アプリケーション112が実行のために必要とする任意の資源を指す。従属性は、構成設定、ハードウェア構成要素、ネットワーク接続、アクセス特権、特定の場所での特定のファイルの存在、アンチウイルスソフトウェアのインストールなどのアプリケーション資源、モニタまたは他のデバイスなどのハードウェア構成要素、必要メモリ、処理機能などを含み得るがこれらに限定されない。
以下にさらに詳しく論じるように、従属性114は、アプリケーション112のインストール中に、アプリケーション112の実行時より前に、またはアプリケーション112の実行時に、識別することができる。たとえば、仮想化されたアプリケーション112を実行するための要求が受信されるとき、アプリケーション仮想化クライアント構成要素110は、仮想化されたアプリケーション112を展開するおよび/または実行するために不可欠な従属性114が存在するかどうかを判定する。アプリケーション仮想化クライアント構成要素110が、従属性114が存在しないと判定した場合、アプリケーション仮想化クライアント構成要素110は、従属性114のすべてが存在するように、クライアントデバイス102を構成する。従属性114のすべてが存在するまたは満たされた後は、仮想化されたアプリケーション112が展開可能である。本明細書では、「展開する」という用語は、アプリケーション112を実行のために使用可能にすることを意味する。従属性114のすべてが存在するようなクライアントデバイス102の構成に関するさらなる詳細は、図2〜図4に関して以下で提供される。
クライアントデバイス102はまた、オペレーティングシステム108Aで実行され得る仮想化されない外部アプリケーション118を含み得ることを理解されたい。以下にさらに詳しく説明するように、アプリケーション仮想化クライアント構成要素110は、外部アプリケーション118が仮想化されたアプリケーション112によって使用される資源にアクセスすることができないことを確保するための一実施形態における機能性を提供する。たとえば、アプリケーション仮想化クライアント構成要素110は、資源が存在しない場所に資源にアクセスするための要求を転送することができる。この方法では、オペレーティングシステムは、要求された資源が存在しないまたは見つけることができないことを示す要求に応答することができる。このプロセスに関するさらなる詳細は、図5〜図6に関して以下で提供される。
前述のように、サーバ104は、仮想化されたアプリケーション112、アプリケーション仮想化サーバ構成要素110、およびオペレーティングシステム108Bを含み得る。加えて、サーバ104は、従属性解析エンジン122と、従属性114を識別する従属性データ126を記憶するための従属性解析データベース124とを含み得る。従属性データ126を含む従属性解析データベース124はまた、クライアントデバイス102のアプリケーション仮想化クライアント構成要素110に記憶するおよび/またはアクセス可能にすることができることを理解されたい。実施形態によれば、サーバ104は、仮想化されたアプリケーション112をインストールおよび実行するようにならびに仮想化されたアプリケーション112の従属性114を識別するように構成された、監視局として動作することができる。様々な実施形態によれば、従属性解析エンジン122は、仮想化されたアプリケーション112の従属性114を識別し、従属性解析データベース124内に従属性114を識別する従属性データ126を記憶することができる。ユーザインターフェース130もまた、データベース124の内容を見るおよび編集するために提供され得る。従属性114を識別するための本明細書で提供される様々なプロセスに関するさらなる詳細は、図2および図3に関して以下で提供される。
本明細書に記載の実施形態は、単に例示を目的とし、本明細書に記載される実施形態に本願の範囲を限定するものではないことを理解されたい。本明細書に記載の技術は、様々なタイプのアプリケーションとともに適用され得ること、および本明細書で開示される実施形態は、仮想化されたアプリケーション112の従属性を満たすことに限定されないことが、当業者には理解されよう。本明細書に記載の概念は、仮想化されたおよび仮想化されない環境で実行する仮想化されたおよび仮想化されないアプリケーションを含むがこれらに限定されない、任意のタイプのアプリケーションに適用され得ることもまた理解されたい。
図2は、本明細書で提示される一実施形態による、仮想化されたアプリケーション112が1つの環境において実行している間に、仮想化されたアプリケーション112の従属性を識別するための1つのプロセスを示す、概略図である。具体的には、図2は、従属性114を識別するために使用される動作の学習モードの態様を示す。学習モードの動作では、API呼出しインターセプタ202が、資源にアクセスするためのアプリケーション112によって行われるAPI呼出しをインターセプトする。以下に論じるように、API呼出しは、アプリケーション112の実行時中またはアプリケーション112がインストールされるときに行われ得る。
仮想化されたアプリケーション112が、クライアントデバイス102などのデバイスにインストールされるとき、アプリケーション112のインストーラは、デバイス102に変更を行うことができる。たとえば、仮想化されたアプリケーション112に関する様々なファイルが記憶可能であり、または、レジストリファイルが作成もしくは修正可能である。従属性解析エンジン122が、アプリケーション112のインストールを監視して、仮想化されたアプリケーション112のインストールの結果として行われる任意の構成変更を検出する。従属性解析エンジン122はまた、仮想化されたアプリケーション112がインストールされるのより前の従属性解析エンジン122が実行しているコンピュータの構成を仮想化されたアプリケーション112がインストールされた後の構成と比較することもできる。従属性解析エンジン122は、次いで、検出された変更を使用して従属性114を識別することができる。従属性114を識別する従属性データ126が、次いで、従属性解析データベース124内に記憶される。
学習モードの動作の一部として、従属性解析エンジン122はさらに、実行時中に仮想化されたアプリケーション112を監視することができる。仮想化されたアプリケーション112が実行しているとき、仮想化されたアプリケーション112は、API呼出しを行って資源にアクセスすることができる。API呼出しインターセプタ202は、仮想化されたアプリケーション112によって行われるAPI呼出しをフックし、呼出しを従属性解析エンジン122に渡し、そこで、API呼出しは、仮想化されたアプリケーション112の追加の従属性114に関する情報を収集するために検査される。API呼出しは、ファイル、データベースなどの特定の資源にアクセスするための要求を含み得る。加えて、API呼出しは、特定のアプリケーションにアクセスするための要求を含み得る。
従属性解析エンジン122は、インターセプトされたAPI呼出しを検査して、仮想化されたアプリケーション112の実行時従属性114を識別する。従属性解析エンジン122は、従属性解析データベース124内に実行時従属性114を識別するデータを記憶することができる。加えて、データは、識別された従属性114がオペレーティングシステム108によって提供されるかどうかを指示するデータベース124内に記憶され得る。代替的実施形態で、実行時従属性114を識別するデータが、サーバ104からクライアントデバイス102に流され得る。そのような実施形態で、従属性を識別するデータは、クライアントデバイス102に流されるように構成され得るアプリケーションパッケージ内にパッケージ化され得る。以下にさらに詳しく説明するように、学習モードの動作中に生成されたデータは、アプリケーション112の実行時に使用されて、従属性114のすべてがアプリケーション112に使用可能であることを確保する。たとえば、データベース124内に記憶された従属性データ126は、アプリケーションの実行が、オペレーティングシステムによって提供されないいずれかの資源に従属するかを判定するために、使用され得る。そうである場合、資源は、アプリケーションに使用可能にされ得る。
すべての資源がアプリケーションに使用可能にされないことがあることを理解されたい。そのような状況で、アプリケーションは、それらの資源が使用可能にされ、アプリケーションの従属性のすべてが適切に満たされるまで、デバイス上で展開することはできないことがある。たとえば、企業は、企業のビル内からのみアクセス可能な文書を有し得る。企業ビルの外側のユーザが、それらの文書と対話するアプリケーションを走らせるとき、アプリケーション仮想化クライアント構成要素110は、アプリケーションが文書にアクセスすることを防ぐことができる。この場合、従属性は、ユーザが企業ビル内にいることを示す企業IPアドレスの存在でもよい。ユーザが企業ビル内にいない場合、企業IPアドレスの存在に対応する従属性は満たされないので、仮想化されたアプリケーション112は展開され得ない。
図3は、前述の学習モードで仮想化されたアプリケーション112の従属性114を識別するための本明細書で開示される1つの例示的プロセスの態様を示す、フロー図である。図3、図4、および図6に関して本明細書に記載される論理的動作は、(1)コンピュータ実装された行動もしくは計算システム上で走るプログラムモジュールのシーケンスとして、および/または、(2)計算システム内の相互接続された機械論理回路もしくは回路モジュールとして、実装されることを理解されたい。実装は、計算システムの性能および他の要件に依存する選択の問題である。したがって、本明細書に記載の論理的動作は、動作、構造的デバイス、行動、またはモジュールとして様々に称される。これらの動作、構造的デバイス、行動およびモジュールは、ソフトウェアに、ファームウェアに、特定目的デジタル論理に、およびそれらの組合せに実装することができる。図示されたおよび本明細書に記載されたものより多くのまたは少ない動作が実行され得ることもまた理解されたい。これらの動作はまた、本明細書に記載されるものとは異なる順序で実行することができる。
図3は、図2に示すおよび前述の動作の学習モードで実行される動作を説明するルーチン300を示す。ルーチン300は、仮想化されたアプリケーション112がサーバ104などの監視システムでインストールされる、動作302で開始する。サーバ104は、仮想化されたアプリケーション112の従属性114を識別するための前述の機能性を提供する従属性解析エンジン122を含む。サーバ104はまた、仮想化されたアプリケーション112の適切なインストールおよび実行のために不可欠なすべての従属性114を含み得る。この方式では、仮想化されたアプリケーション112は、学習モードでサーバ104上で動作することができる。サーバ104以外の別のコンピュータが、本明細書に記載の学習プロセスを実行するための監視局として使用され得ることを理解されたい。
一実施例によれば、サーバ104が学習モードで動作しているとき、従属性解析エンジン122は、仮想化されたアプリケーション112の従属性114を識別し、従属性114を識別する従属性データ126を従属性解析データベース124で記憶するサーバ104に行われる変更を監視するように構成される。従属性114は、アプリケーション112のインストールおよび構成を分析することによって識別される従属性、ならびに、実行時に仮想化されたアプリケーション112によって行われるAPI呼出しをインターセプトすることによって識別される従属性を含み得る。
動作302から、ルーチン300は動作304に進み、そこで、従属性解析エンジン122が、仮想化されたアプリケーション112のインストール中に行われる変更について監視する。従属性解析エンジン122は、仮想化されたアプリケーション112のインストールより前のシステムの構成設定と仮想化されたアプリケーション112がインストールされた後のシステムの構成設定を比較することによって、変更を監視することができる。さらに、従属性解析エンジン122は、レジストリに行われた変更、または、仮想化されたアプリケーション112のインストールに関連する追加ファイルおよびフォルダの作成など、システムの様々な資源を監視して従属性114を識別することができる。
動作304から、ルーチン300は動作306に進み、そこで、仮想化されたアプリケーション112が実行される。実行中、従属性解析エンジン122は、資源にアクセスするために仮想化されたアプリケーション112によって行われるAPI呼出し、ならびに、仮想化されたアプリケーション112の実行の結果として行われる任意の構成変更について、仮想化されたアプリケーション112を継続的に監視する。
動作306から、ルーチン300は動作308に進み、そこで、API呼出しインターセプタ202が、仮想化されたアプリケーション112によって行われるAPI呼出しをインターセプトする。API呼出しインターセプタ202は、次いで、これらのAPI呼出しを従属性解析エンジン122に提供することができる。動作308から、ルーチン300は、動作310に進み、そこで、従属性解析エンジン122は、インターセプトされたAPI呼出しのパラメータを検査して、仮想化されたアプリケーション112の従属性114を識別する。前述のように、API呼出しは、ファイル、アプリケーション、または、スピーカもしくはディスプレイなどのハードウェア構成要素など、特定の資源にアクセスするための要求を含み得る。そのようなものとして、従属性解析エンジン122は、インターセプトされたAPI呼出しのフォーマットおよび内容を検査することによって、仮想化されたアプリケーション112の実行時従属性を判定する能力を有する。
動作310から、ルーチン300は動作312に進み、そこで、従属性解析エンジン122が、従属性解析データベース124内で従属性114を識別する、仮想化されたアプリケーション112のインストールおよび実行中に収集された従属性データ126を記憶する。一実施例によれば、従属性解析データベース124は、サーバ104、または、ネットワーク106を介してクライアントデバイス102もしくはサーバ104によってアクセス可能な任意の他の場所に記憶され得る。
動作312から、ルーチン300は動作314に進み、そこで、仮想化されたアプリケーション112の従属性114の各々が仮想化されたアプリケーション112のインストールまたは展開中に追加または構成されるかどうかに関して、決定が行われる。これは、たとえば、オペレーティングシステム提供のレジストリを調べることによって達成され得る。あるいは、これは、API呼出しを従属性にマップするマッピングテーブルを調べることによって達成される。マッピングテーブルは、各従属性がオペレーティングシステムによって提供されるかどうかを示す情報を含み得る。
動作314から、従属性がアプリケーションのインストールまたは展開中に追加または構成された場合、ルーチン300は、動作316に進む。動作316で、データは、仮想化されたアプリケーション112のインストールまたは展開中に追加または構成された従属性114が、クライアントデバイス102で仮想化されたアプリケーション112を無事に展開するために、実行時にクライアントデバイス102に存在する必要があることになることを示す従属性解析データベース124に記憶される。動作314で、従属性114が、仮想化されたアプリケーション112のインストールまたは展開中に追加または構成されないと判定された場合、ルーチン300は動作318に進み、そこで、ルーチン300は終了する。同様に、動作316から、ルーチン300はまた、動作318に進み、そこでルーチン300は終了する。
仮想化されたアプリケーション112の従属性114が識別され、従属性114を識別する従属性データ126が従属性解析データベース124に記憶された後は、仮想化されたアプリケーション112は、クライアントデバイス102で展開することができる。しかし、仮想化されたアプリケーション112をクライアントデバイス102上で展開することに先立って、仮想化されたアプリケーション112を展開するために必要とされる従属性114が、クライアントデバイス102によってアクセス可能である必要があり得る。一実施例で、従属性114を識別する従属性データ126は、クライアントデバイス102で記憶され、アプリケーション仮想化クライアント構成要素110によって使用されて、仮想化されたアプリケーション112の従属性114がクライアントデバイス102での仮想化されたアプリケーション112の展開の実行時に存在することを確保する。本プロセスに関するさらなる詳細が、図4に関して以下で提供される。
図4は、本明細書で提示される一実施形態による、クライアントデバイス102上の仮想化されたアプリケーション112の従属性を満たすための本明細書で開示される1つの例示的プロセスの態様を示す、フロー図である。具体的には、図4は、アプリケーション112の実行時に実行される動作を説明するルーチン400を示す。具体的には、ルーチン400は、動作402で開始し、そこで、アプリケーション仮想化クライアント構成要素110が、仮想化されたアプリケーション112をクライアントデバイス102上で展開するための要求を受信する。一実施例によれば、クライアントデバイス102のユーザは、仮想化されたアプリケーション112をクライアントデバイス102上で展開するための要求を提出することができる。
動作402から、ルーチン400は動作404に進み、そこで、アプリケーション仮想化クライアント構成要素110が、従属性解析データベース124に問い合わせることによって、仮想化されたアプリケーション112の従属性114を判定する。アプリケーション仮想化クライアント構成要素110はまた、従属性解析データベース124に問い合わせて、識別された従属性が動作システム108によって提供されるかどうかを判定することができる。そうである場合、従属性は、アプリケーション仮想化クライアント構成要素110によって実行時に復元される必要はない。
動作404から、ルーチン400は動作406に進み、そこで、アプリケーション仮想化クライアント構成要素110は、従属性114のすべてが存在するかを判定する。いくつかの実施例によれば、アプリケーション仮想化クライアント構成要素110は、学習モード中に従属性解析エンジン122によって判定される従属性114をクライアントデバイス102に存在する従属性と比較することによって、それを行うことができる。アプリケーション仮想化クライアント構成要素110が、従属性114のすべてが存在すると判定した場合、ルーチン400は動作414に進み、そこで、アプリケーション仮想化クライアント構成要素110が、仮想化されたアプリケーション112をクライアントデバイス102上で展開する。
しかし、動作406で、アプリケーション仮想化クライアント構成要素110が、従属性114のすべてがクライアントデバイス102上に存在しないと判定した場合、ルーチン400は、動作406から動作408に進み、そこで、アプリケーション仮想化クライアント構成要素110は、欠落した従属性を識別する。欠落した従属性は、存在しないまたは適切に構成されない資源であることがある。たとえば、従属性114のうちの1つが、クライアントデバイス102でファイアウォールを作動させることを含む場合、アプリケーション仮想化クライアント構成要素110は、クライアントデバイス102を検査して、ファイアウォールが作動されているかを確認することができる。ファイアウォールが作動されていない場合、次いで、アプリケーション仮想化クライアント構成要素110は、ファイアウォールを欠落した従属性として識別する。
動作408から、ルーチン400は動作410に進み、そこで、アプリケーション仮想化クライアント構成要素110は、欠落した従属性が満たされるように、クライアントデバイス102を構成する。アプリケーション仮想化クライアント構成要素110は、仮想化されたアプリケーション112がサーバ104でインストールおよび実行されるときにクライアントデバイス102の構成設定がサーバ104の構成設定と一致するような方法でクライアントデバイス102を構成することによって、それを行うことができる。前述の例を使用し、アプリケーション仮想化クライアント構成要素110は、クライアントデバイス102のファイアウォール設定を変更することによって、ファイアウォールを自動的に作動させることができる。いくつかの実施形態で、アプリケーション仮想化クライアント構成要素110はまた、資源を使用可能にすることができる。この方法で、アプリケーション仮想化クライアント構成要素110は、アプリケーションを展開および/または実行するために不可欠な従属性114が満たされるように、クライアントデバイス102を構成することができる。
動作410から、ルーチン400は動作412に進み、そこで、アプリケーション仮想化クライアント構成要素110は、欠落した従属性114がもうないかを判定する。アプリケーション仮想化クライアント構成要素110が、欠落した従属性114がまだあると判定した場合、ルーチン400は動作406に戻り、そこで、ルーチン400は、別の欠落した従属性を識別する。しかし、アプリケーション仮想化クライアント構成要素110が、欠落した従属性114はもうないと判定した場合、ルーチン400は動作414に進み、そこで、アプリケーション仮想化クライアント構成要素110は、仮想化されたアプリケーション112を展開する。動作414から、ルーチン400は動作416に進み、そこで、ルーチン400は終了する。アプリケーション仮想化クライアント構成要素110は、仮想化されたアプリケーション112を展開するために必要とされるあらゆる従属性を満たすことができないことがあることを理解されたい。たとえば、前述の例で、アプリケーション仮想化クライアント構成要素110は、企業ビル内で動作するデバイスにのみ提供される企業IPアドレスの存在などの従属性を満たすことができないことがある。
図5は、セキュリティ境界を提供して外部アプリケーションがアプリケーション112に使用可能な資源にアクセスすることを防ぐためのプロセスを示す、概略図である。いくつかの実施例によれば、外部アプリケーション118など、クライアントデバイス102上にインストールされた非企業アプリケーションが、仮想化されたアプリケーション112によって使用される資源へのアクセス権を得ようと試みることがある。これはセキュリティ脅威をもたらすことがあり、したがって、外部アプリケーション118が資源と対話することを防ぐための努力が行われ得る。一実施例で、クライアントデバイス102は、外部アプリケーション118が資源にアクセスすることを防ぐために、外部アプリケーションによって行われるAPI呼出しを転送するための機能性を提供する。いくつかの実施例で、この転送は、資源の名称を修正することによって生じ得る(本明細書では、「名前空間難号化(namespace mangling)」と称する場合がある)。図5は、この機能性を実行するために本明細書で提供される1つのプロセスを示す。
仮想化されたアプリケーション112が、外部の資源にアクセスまたはそれを修正するためにAPI呼出しを行うとき、経路指定レイヤ502は、API呼出しをインターセプトし、2つの機能を実行する。第1に、経路指定レイヤ502は、元の資源504の名前を修正させ、それによって、改名された資源506を作成する。結果として、アプリケーション仮想化クライアント構成要素110の外で実行する外部アプリケーション118は、資源の予期される場所の中を見ることができない。この方法で、奇異なアプリケーションは、資源へのアクセス権を得ようとするのを阻まれる。しかし、判定された外部アプリケーション118は、まだ、元の資源504を開き、アクセスすることができる。任意の判定された外部アプリケーションが資源にアクセスすることを防ぐために、アプリケーション仮想化クライアント構成要素110はまた、外部アプリケーション118が資源504を開くまたはそれにアクセスすることができないように、元の資源504のアクセス制御リスト(ACL)をカスタマイズされたACLに修正することもできる。図6は、このプロセスの追加の態様を説明する。
アプリケーション仮想化クライアント構成要素110は、資源の複数のコピーを有することができ、異なるプロセスを転送して、資源の異なるバージョンを見ることができることを理解されたい。たとえば、クライアントデバイス102は、「foo」の名前を付けられたレジストリ値の2つのコピーを有することができ、一方のコピーは0にセットされ、もう一方は1にセットされる。1つのプロセスが、レジストリ値にアクセスするとき、クライアントデバイス102は、0にセットされた資源のコピーにプロセスを透過的に転送する。他のプロセスが、それが同レジストリ値であると考えるものにアクセスするとき、クライアントデバイス102は、1にセットされた資源のコピーにこのプロセスを透過的に転送する。両方のプロセスは、同資源にアクセスしようと試みているが、クライアントデバイス102は、それらに気付かれることなしに、資源の異なる名前を付けられたインスタンスにそれらを転送している。この方法では、これらの2つのプロセスは異なる入力値を受信しているので、2つのプロセスは2つの別個の動作を実行し得る。結果として、クライアントデバイス102は、許可されたアプリケーションに正しい入力値を提供し、一方で、無許可のアプリケーションには誤った入力値を提供することができ、クライアントデバイス102にセキュリティを提供することができる。
もう1つの例では、2つのプロセスが同ファイルにアクセスしようと試みるとき、クライアントデバイス102は、それらのうちの1つをファイルの有効なコピーに転送することができ、他の1つにファイルが存在しなかったと知らせることができ、あるいは、ファイルが存在しない場所にそれを転送し、オペレーティングシステムが応答できるようにすることができる。結果として、無許可のプロセスは、ファイルへのアクセス権を提供され得ない。
図6は、セキュリティ境界を提供するために本明細書で開示される1つの例示的プロセスの態様を示すフロー図である。具体的には、図6は、図5を参照して前述された方式でセキュリティ境界を提供するための一実施形態で実行される動作を説明するルーチン600を示す。
ルーチン600は動作602で開始し、そこで、経路指定レイヤ502が、資源にアクセスするために仮想化されたアプリケーション112によって行われるAPI呼出しをインターセプトする。前述のように、経路指定レイヤ502は、仮想化されたアプリケーション112によって行われるAPI呼出しのみをインターセプトすることができる。動作602から、ルーチン600は動作604に進み、そこで、経路指定レイヤ502は、仮想化されたアプリケーション112によって行われるAPI呼出しが転送されることになる先の資源のコピーを選択する。資源のコピーは、前に、オペレーティングシステムによって保存しておくことができる。動作604から、ルーチン600は動作606に進み、そこで、オペレーティングシステム108Aはさらに、資源がアプリケーション仮想化クライアント構成要素110の外側で動作する外部アプリケーションにアクセス可能でないように、資源と関連するACLを再構成する。動作606から、ルーチン600は動作608に進み、そこで、インターセプトされたAPI呼出しが、改名された資源506に経路指定される。
動作608から、ルーチン600は動作610に進み、そこで、オペレーティングシステム108Aは、外部アプリケーション118から資源へのアクセスを要求するAPI呼出しを受信する。実施形態によれば、外部アプリケーション118はアプリケーション仮想化クライアント構成要素110を経由することなしにオペレーティングシステム108Aと直接通信するので、オペレーティングシステム108Aは、外部アプリケーション118からAPI呼出しを受信する。しかし、外部アプリケーションはアプリケーション仮想化クライアント構成要素110を介してAPI呼出しを送信することができることを理解されたい。そのような実施形態で、アプリケーション仮想化クライアント構成要素110は、転送のいずれも行わないが、代わりに、オペレーティングシステム108Aが処理するために元のAPI呼出しをオペレーティングシステム108Aに渡す。
動作610から、ルーチン600は動作612に進み、そこで、オペレーティングシステム108Aは、API呼出しを外部アプリケーション118から元の資源504に経路指定する。この方法で、外部アプリケーション118などの非企業アプリケーションから行われるAPI呼出しは、資源506にアクセスすることはできない。動作612から、ルーチン600は動作614に進み、そこで、ルーチン600は終了する。
図7は、本明細書で提示される様々な実施形態を実装する能力のある計算システムの例示的コンピュータハードウェアおよびソフトウェアアーキテクチャを示すコンピュータアーキテクチャ図である。図7に示すコンピュータアーキテクチャは、従来のデスクトップ、ラップトップコンピュータ、またはサーバコンピュータを図示し、本明細書に記載の様々なソフトウェア構成要素を実行するために使用され得る。
図7に示すコンピュータアーキテクチャは、中央処理装置702(「CPU」)と、ランダムアクセスメモリ714(「RAM」)および読取り専用メモリ(「ROM」)716を含むシステムメモリ708と、メモリをCPU702に連結させるシステムバス704とを含む。起動中など、コンピュータ700内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(「BIOS」)は、ROM716内で記憶される。コンピュータ700は、以下でさらに詳しく説明される、オペレーティングシステム718、アプリケーションプログラム、および他のプログラムモジュールを格納するための大容量記憶デバイス710をさらに含む。
大容量記憶デバイス710は、バス704に接続された大容量記憶コントローラ(図示せず)を介してCPU702に接続される。大容量記憶デバイス710および関連コンピュータ可読記憶媒体は、コンピュータ700のための非揮発性記憶装置を提供する。本明細書に含まれるコンピュータ可読媒体の説明は、ハードディスクまたはCD−ROMドライブなどの大容量記憶デバイスを示すが、コンピュータ可読記憶媒体は、コンピュータ700によってアクセスすることができる任意の使用可能なコンピュータ記憶媒体でもよいことが、当業者には理解されよう。
例として、そして限定ではなく、コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュールまたは他のデータなどの情報の記憶のための任意の方法または技術で実装された、揮発性および非揮発性の、取外し可能なおよび取外し不可能な媒体を含み得る。たとえば、コンピュータ可読記憶媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリもしくは他の固体状態メモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、HD−DVD、BLU−RAY(登録商標)、もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置デバイス、または、所望の情報を記憶するために使用することができるおよびコンピュータ700によってアクセスすることができる任意の他の非一時的媒体を含むが、これらに限定されない。
本明細書で開示されるコンピュータ可読媒体はまた、通信媒体を包含することを理解されたい。通信媒体は通常は、コンピュータ可読命令、データ構造体、プログラムモジュール、または、搬送波もしくは他の移送機構などの変調されたデータ信号内の他のデータを実施し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、特性集合のうちの1つまたは複数を有する、または、信号内の情報を符号化することなどの形で変更した、信号を意味する。例として、そして限定ではなく、通信媒体は、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体と、音波、RF、赤外線および他のワイヤレス媒体などのワイヤレス媒体とを含む。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲内に含まれよう。コンピュータ可読記憶媒体は、通信媒体を包含しない。
様々な実施形態によれば、コンピュータ700は、ネットワーク720などのネットワークを介する遠隔コンピュータへの論理的接続を使用するネットワーク化された環境で動作することができる。コンピュータ700は、バス704に接続されたネットワークインターフェースユニット706を介してネットワーク720に接続することができる。ネットワークインターフェースユニット706はまた、他のタイプのネットワークおよび遠隔コンピュータシステムに接続するためにも使用され得ることを理解されたい。コンピュータ700はまた、キーボード、マウス、または電子スタイラス(図7に示さず)を含む複数の他のデバイスから入力を受信および処理するための入力/出力コントローラ712も含み得る。同様に、入力/出力コントローラは、表示画面、プリンタ、または他のタイプの出力デバイス(やはり図7に示さず)に出力を提供することができる。
簡潔に前述したように、複数のプログラムモジュールおよびデータファイルは、ネットワーク化されたデスクトップ、ラップトップ、またはサーバコンピュータの動作を制御するのに適したオペレーティングシステム718を含むコンピュータ700の大容量記憶デバイス710およびRAM714内に記憶され得る。大容量記憶デバイス710およびRAM714はまた、1つまたは複数のプログラムモジュールも記憶することができる。具体的には、大容量記憶デバイス710およびRAM714は、仮想化されたアプリケーション112、アプリケーション仮想化クライアント構成要素110、および/または、前述の他のソフトウェア構成要素を記憶することができる。大容量記憶デバイス710およびRAM714はまた、従属性114など、他のプログラムモジュールおよびデータも記憶することができる。
概して、ソフトウェアアプリケーションまたはモジュールは、CPU702にロードされ実行されるとき、CPU702およびコンピュータ700全体を汎用計算システムから本明細書で提示される機能性を実行するようにカスタマイズされた特定目的計算システムに変形することができる。CPU702は、任意の数の状態を個別にまたは集合的に仮定することができる任意の数のトランジスタまたは他のディスクリート回路要素から構築され得る。より具体的には、CPU702は、ソフトウェアまたはモジュール内に含まれる実行可能命令に応答して、1つまたは複数の有限状態機械として動作することができる。これらのコンピュータ実行可能命令は、CPU702が状態間でどのように遷移するかを指定することによって、CPU702を変形し、それによって、CPU702を構成するトランジスタまたは他のディスクリートハードウェア要素を物理的に変形することができる。
大容量記憶デバイス上にソフトウェアまたはモジュールを符号化することはまた、大容量記憶デバイスまたは関連コンピュータ可読記憶媒体の物理構造を変形し得る。物理構造の具体的な変形は、本明細書の異なる実施例において、様々な要因に依存し得る。そのような要因の例は、コンピュータ可読記憶媒体が1次記憶装置または2次記憶装置などとして特徴付けられるかどうかにかかわらず、コンピュータ可読記憶媒体を実装するために使用される技術を含み得るが、これに限定されない。たとえば、コンピュータ可読記憶媒体が半導体ベースのメモリとして実装される場合、ソフトウェアまたはモジュールは、ソフトウェアが半導体メモリの中で符号化されるときに、半導体メモリの物理状態を変形することができる。たとえば、ソフトウェアは、トランジスタ、コンデンサ、または、半導体メモリを構成する他のディスクリート回路要素の状態を変形することができる。
もう1つの例として、コンピュータ可読記憶媒体は、磁気または光技術を使用して、実装することができる。そのような実装例で、ソフトウェアまたはモジュールは、ソフトウェアがそこで符号化されるときに、磁気または光媒体の物理状態を変形することができる。これらの変形は、所与の磁気媒体内の特定の場所の磁気特性を変更することを含み得る。これらの変形はまた、それらの場所の光特性を変更するために、所与の光媒体内の特定の場所の物理的特徴または特性を変更することを含み得る。物理媒体の他の変形は、本論を円滑に進めるためのみに提供される前述の例で、本明細書の範囲および趣旨を逸脱することなしに可能である。
前述に基づいて、アプリケーション従属性が実行時に満たされることを確保するための技術が本明細書で提示されていることを理解されたい。本明細書で提示される対象は、コンピュータ構造的特徴、方法論的行動、およびコンピュータ可読媒体に特有の言語で説明されているが、添付の特許請求の範囲で定義される本発明は、本明細書に記載の特定の特徴、行動、または媒体に必ずしも限定されないことが理解されよう。そうではなくて、これらの特定の特徴、行動および媒体は、本特許請求の範囲を実装する例示的形として開示される。
前述の対象は、例としてのみ提供され、限定として解釈されるべきではない。様々な修正および変更が、図示および記載される例示的実施形態および適用例に従うことなしに、そして、以下の特許請求の範囲に記載の本発明の真の趣旨および範囲を逸脱することなしに、本明細書に記載の対象に行われ得る。

Claims (15)

  1. コンピュータ実装された方法であって、
    クライアントデバイスでアプリケーションを展開するための要求を受信するステップと、
    前記アプリケーションを展開するために不可欠な1つまたは複数の従属性の各々が前記クライアントデバイスに存在するかどうかを判定するステップと、
    前記アプリケーションを展開するために不可欠な前記1つまたは複数の従属性の各々が存在しないと判定したとき、前記従属性が存在するように前記クライアントデバイスを構成するステップと
    のコンピュータ実装された動作を実行することを含むことを特徴とするコンピュータ実装された方法。
  2. 前記アプリケーションを展開するために不可欠な前記1つまたは複数の従属性の各々が存在すると判定したとき、前記クライアントデバイスで前記アプリケーションを展開するステップをさらに含むことを特徴とする請求項1に記載のコンピュータ実装された方法。
  3. 前記クライアントデバイスで前記アプリケーションを展開したとき、前記アプリケーションからの資源へのアクセスを要求するアプリケーションプログラミングインターフェース(API)呼出しをインターセプトするステップと、
    前記API呼出しが転送されることになる先の前記資源のコピーを選択するステップと、
    前記資源と関連するアクセス制御リスト(ACL)を有する専用の場所を保護するステップと、
    前記専用の場所で記憶された前記資源に前記API呼出しを転送するステップと
    をさらに含むことを特徴とする請求項2に記載のコンピュータ実装された方法。
  4. 前記アプリケーションを展開するのに先立って、
    監視局で前記アプリケーションをインストールするステップと、
    前記アプリケーションの前記インストール中に前記監視局に行われる変更を監視して前記従属性を識別するステップと、
    従属性解析データベース内で前記従属性を識別するデータを記憶するステップと
    をさらに含むことを特徴とする請求項1に記載のコンピュータ実装された方法。
  5. 前記仮想化されたアプリケーションを展開するのに先立って、
    前記監視局で前記仮想化されたアプリケーションを実行するステップと、
    前記仮想化されたアプリケーションの前記実行中に前記監視局に行われる変更を監視して前記従属性を識別するステップと、
    前記従属性解析データベース内で前記従属性を識別するデータを記憶するステップと
    をさらに含むことを特徴とする請求項4に記載のコンピュータ実装された方法。
  6. 前記アプリケーションの前記実行中に前記監視局に行われる変更を監視するステップは、
    実行中に前記アプリケーションによって行われるAPI呼出しをインターセプトするステップと、
    前記API呼出しに含まれるパラメータを検査して前記従属性を識別するステップと
    を含むことを特徴とする請求項5に記載のコンピュータ実装された方法。
  7. 前記1つまたは複数の従属性の各々が前記アプリケーションの前記インストールまたは展開中に追加または構成されるかどうかを判定するステップと、
    前記1つまたは複数の従属性の各々が前記アプリケーションの前記インストールまたは展開中に追加または構成されると判定したとき、前記アプリケーションの前記インストールまたは展開中に追加または構成される前記1つまたは複数の従属性が前記アプリケーションの実行時に存在する必要があることになることを指示するデータを記憶するステップと
    をさらに含むことを特徴とする請求項6に記載のコンピュータ実装された方法。
  8. 前記1つまたは複数の従属性の各々が前記アプリケーションの前記インストールまたは展開中に追加または構成されるかどうかを判定するステップは、前記オペレーティングシステムによって提供されるレジストリを問い合わせるステップを含むことを特徴とする請求項7に記載のコンピュータ実装された方法。
  9. 前記1つまたは複数の従属性の各々が前記アプリケーションの前記インストールまたは展開中に追加または構成されるかどうかを判定するステップは、従属性にAPI呼出しを突き合わせる内部マッピングテーブルを問い合わせるステップを含むことを特徴とする請求項7に記載のコンピュータ実装された方法。
  10. コンピュータ可読記憶媒体であって、
    コンピュータによって実行されるときに、前記コンピュータに
    仮想化されたアプリケーションを展開するための要求を受信させ、
    前記仮想化されたアプリケーションを展開するために必要とされる1つまたは複数の従属性の各々が存在するかどうかを判定させ、
    前記1つまたは複数の従属性の各々が存在しないと判定したとき、その上で前記仮想化されたアプリケーションが実行しているクライアントデバイスを前記従属性が存在するように構成させる
    コンピュータ実行可能命令がコンピュータ可読記憶媒体に記憶されることを特徴とするコンピュータ可読記憶媒体。
  11. 前記コンピュータによって実行されるときに、前記コンピュータに、前記仮想化されたアプリケーションを展開するために不可欠な前記1つまたは複数の従属性の各々が存在すると判定することに応答して前記クライアントデバイスで前記仮想化されたアプリケーションを展開させる、コンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令をさらに有することを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
  12. 前記コンピュータによって実行されるときに、前記コンピュータに、
    前記クライアントデバイス上で前記仮想化されたアプリケーションを展開したとき、資源へのアクセスを要求する前記仮想化されたアプリケーションからのアプリケーションプログラミングインターフェース(API)呼出しをインターセプトさせ、
    前記API呼出しが転送されることになる先の前記資源のコピーを選択させ、
    前記資源と関連するアクセス制御リスト(ACL)を有する専用の場所を保護させ、
    前記専用の場所で記憶された前記資源に前記API呼出しを転送させる、
    コンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令をさらに有することを特徴とする請求項11に記載のコンピュータ可読記憶媒体。
  13. 前記コンピュータによって実行されるときに、前記コンピュータに、
    監視局で前記仮想化されたアプリケーションをインストールさせ、
    前記仮想化されたアプリケーションの前記インストール中に前記監視局に行われる変更を監視して前記従属性を識別させ、
    前記クライアントデバイスに流されるために構成されるアプリケーションパッケージ内に前記従属性を識別するデータをパッケージ化させる、
    コンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令をさらに有することを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
  14. 前記コンピュータによって実行されるときに、前記コンピュータに、
    前記監視局にインストールされた前記仮想化されたアプリケーションを実行させ、
    前記仮想化されたアプリケーションの前記実行中に前記監視局に行われる変更を監視して前記従属性を識別させ、
    前記クライアントデバイスに流されるために構成される前記アプリケーションパッケージ内に前記従属性を識別するデータをパッケージ化させる
    コンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令をさらに有することを特徴とする請求項13に記載のコンピュータ可読記憶媒体。
  15. 前記仮想化されたアプリケーションの前記実行中に前記監視局に行われる変更を監視して前記従属性を識別するステップは、
    実行中に前記仮想化されたアプリケーションによって行われるAPI呼出しをインターセプトするステップと、
    前記API呼出し内に含まれるパラメータを検査して前記従属性を識別するステップと、
    前記資源に関連するアクセス制御リスト(ACL)を有する前記専用の場所を保護するステップと、
    前記専用の場所で記憶された前記資源に前記API呼出しを転送するステップと
    を含むことを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
JP2013546400A 2010-12-23 2011-12-22 アプリケーション従属性を満たすこと Active JP6081925B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/977,095 US9354852B2 (en) 2010-12-23 2010-12-23 Satisfying application dependencies
US12/977,095 2010-12-23
PCT/US2011/066688 WO2012088364A2 (en) 2010-12-23 2011-12-22 Satisfying application dependencies

Publications (2)

Publication Number Publication Date
JP2014501410A true JP2014501410A (ja) 2014-01-20
JP6081925B2 JP6081925B2 (ja) 2017-02-15

Family

ID=46314918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013546400A Active JP6081925B2 (ja) 2010-12-23 2011-12-22 アプリケーション従属性を満たすこと

Country Status (8)

Country Link
US (3) US9354852B2 (ja)
EP (2) EP2656211B1 (ja)
JP (1) JP6081925B2 (ja)
CN (1) CN102567055B (ja)
ES (1) ES2710873T3 (ja)
HK (1) HK1172420A1 (ja)
TW (1) TWI540455B (ja)
WO (1) WO2012088364A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190058610A (ko) * 2016-10-20 2019-05-29 후아웨이 테크놀러지 컴퍼니 리미티드 애플리케이션 기동 제어 방법 및 제어 장치

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756293B2 (en) * 2007-04-23 2014-06-17 Nholdings Sa Providing a user with virtual computing services
US9354852B2 (en) * 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9052961B2 (en) * 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9292299B2 (en) * 2012-10-16 2016-03-22 Yahoo! Inc. Methods and systems for package management
US9183120B1 (en) * 2013-06-04 2015-11-10 The Mathworks, Inc. Functional dependency analysis
US9773070B2 (en) * 2014-06-30 2017-09-26 Microsoft Technology Licensing, Llc Compound transformation chain application across multiple devices
US9824136B2 (en) * 2014-09-19 2017-11-21 Microsoft Technology Licensing, Llc Dynamic application containers
US11438278B2 (en) * 2015-06-29 2022-09-06 Vmware, Inc. Container-aware application dependency identification
US9588745B1 (en) * 2015-10-13 2017-03-07 Bank Of America Corporation Customizable service delivery system with scalable workflow
US10432471B2 (en) 2015-12-31 2019-10-01 Microsoft Technology Licensing, Llc Distributed computing dependency management system
CN108351792A (zh) * 2016-01-15 2018-07-31 谷歌有限责任公司 使用应用容器管理代码和依赖性数据的传递
CN108228248A (zh) * 2016-12-14 2018-06-29 阿里巴巴集团控股有限公司 一种依赖关系的确定方法和装置
US10360082B2 (en) * 2017-01-19 2019-07-23 International Business Machines Corporation Analysis of application programming interface usage for improving a computer system
US10656927B2 (en) * 2017-10-27 2020-05-19 Intuit Inc. Methods, systems, and computer program products for automating releases and deployment of a softawre application along the pipeline in continuous release and deployment of software application delivery models
US10599486B1 (en) 2018-09-21 2020-03-24 Citrix Systems, Inc. Systems and methods for intercepting and enhancing SaaS application calls via embedded browser
US10956145B2 (en) * 2019-01-22 2021-03-23 Saudi Arabian Oil Company System and method for determining dynamic dependencies for enterprise it change management, simulation and rollout
US11379292B2 (en) * 2019-06-27 2022-07-05 Capital One Services, Llc Baseline modeling for application dependency discovery, reporting, and management tool
US10642719B1 (en) 2019-06-27 2020-05-05 Capital One Services, Llc Intelligent services for application dependency discovery, reporting, and management tool
US11093378B2 (en) 2019-06-27 2021-08-17 Capital One Services, Llc Testing agent for application dependency discovery, reporting, and management tool
US10747544B1 (en) 2019-06-27 2020-08-18 Capital One Services, Llc Dependency analyzer in application dependency discovery, reporting, and management tool
US11354222B2 (en) * 2019-06-27 2022-06-07 Capital One Services, Llc Discovery crawler for application dependency discovery, reporting, and management tool
US10915428B2 (en) 2019-06-27 2021-02-09 Capital One Services, Llc Intelligent services and training agent for application dependency discovery, reporting, and management tool
US10521235B1 (en) 2019-06-27 2019-12-31 Capital One Services, Llc Determining problem dependencies in application dependency discovery, reporting, and management tool
US11687803B2 (en) 2020-06-04 2023-06-27 Capital One Services, Llc Response prediction for electronic communications
CN112882763A (zh) * 2020-12-17 2021-06-01 济南浪潮数据技术有限公司 一种访问控制方法、装置、设备及可读存储介质
CN114826904A (zh) * 2021-01-21 2022-07-29 北京金山云网络技术有限公司 服务依赖信息获得方法、装置及电子设备
US11677810B2 (en) 2021-07-23 2023-06-13 International Business Machines Corporation Configuration tool for deploying an application on a server

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051837A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd 情報システム、プログラム管理サーバ装置及びコンピュータ読み取り可能な記録媒体
JP2005339070A (ja) * 2004-05-25 2005-12-08 Sony Corp インストール方法,情報処理装置,プログラム
JP2008310610A (ja) * 2007-06-15 2008-12-25 Hitachi Ltd システム構成管理方法
WO2009042327A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Software deployment in large-scale networked systems
WO2009052003A2 (en) * 2007-10-15 2009-04-23 Microsoft Corporation Remote auto provisioning and publication of applications
US20100064284A1 (en) * 2008-09-10 2010-03-11 Microsoft Corporation Satisfying Missing Dependencies on a Running System

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721824A (en) 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US20020007347A1 (en) * 1996-10-10 2002-01-17 Michael S. Blumenthal Secured electronic information delivery system having a metering device
US6067558A (en) * 1997-09-18 2000-05-23 Wendt; James Gordon Method and apparatus for providing increased content from a resource constrained device
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6427208B1 (en) * 1998-10-20 2002-07-30 Gateway, Inc. Image file change capture method and apparatus
US7017188B1 (en) 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US7225264B2 (en) 1998-11-16 2007-05-29 Softricity, Inc. Systems and methods for delivering content over a computer network
US6763370B1 (en) 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US7200632B1 (en) 1999-04-12 2007-04-03 Softricity, Inc. Method and system for serving software applications to client computers
US7730169B1 (en) 1999-04-12 2010-06-01 Softricity, Inc. Business method and system for serving third party software applications
US7370071B2 (en) 2000-03-17 2008-05-06 Microsoft Corporation Method for serving third party software applications from servers to client computers
US7111060B2 (en) * 2000-03-14 2006-09-19 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser
GB0011020D0 (en) * 2000-05-09 2000-06-28 Ibm Intercepting system API calls
US7219304B1 (en) 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6918113B2 (en) * 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications
US20020087883A1 (en) * 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
US7028305B2 (en) 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7096491B2 (en) * 2001-07-20 2006-08-22 Hewlett-Packard Development Company, L.P. Mobile code security architecture in an application service provider environment
US20030037030A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corporation Method and system for storage, retrieval and execution of legacy software
US7779405B2 (en) * 2003-03-14 2010-08-17 At&T Intellectual Property I, L.P. Run-time determination of application delivery
US7340739B2 (en) 2003-06-27 2008-03-04 International Business Machines Corporation Automatic configuration of a server
US20050114870A1 (en) * 2003-11-21 2005-05-26 Song Dong H. System and method for executing an application on a secured run-time environment
US7590743B2 (en) 2003-12-23 2009-09-15 Softricity, Inc. Method and system for associating a process on a multi-user device with a host address unique to a user session associated with the process
US7539686B2 (en) 2004-03-12 2009-05-26 Microsoft Corporation Tag-based schema for distributing update metadata in an update distribution system
EP1779245B1 (en) 2004-07-20 2018-06-13 Microsoft Technology Licensing, LLC Method and system for minimizing loss in a computer application
US8001527B1 (en) 2004-12-21 2011-08-16 Zenprise, Inc. Automated root cause analysis of problems associated with software application deployments
US20060161582A1 (en) 2005-01-18 2006-07-20 Microsoft Corporation Application object as primitive of operating system
US7802294B2 (en) 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
US7624086B2 (en) 2005-03-04 2009-11-24 Maxsp Corporation Pre-install compliance system
US8949388B2 (en) 2005-04-25 2015-02-03 Dell Products L.P. System and method for information handling system image network communication
US8549172B2 (en) * 2005-08-19 2013-10-01 International Business Machines Corporation Distribution of software based on scheduled time to deploy software dynamic resource state of systems involved in deployment of software and based upon environmental conditions
CN1936849A (zh) 2005-09-19 2007-03-28 国际商业机器公司 资源动态调整方法及设备
US20070083610A1 (en) * 2005-10-07 2007-04-12 Treder Terry N Method and a system for accessing a plurality of files comprising an application program
US8199900B2 (en) * 2005-11-14 2012-06-12 Aspect Software, Inc. Automated performance monitoring for contact management system
WO2007111751A2 (en) 2005-12-20 2007-10-04 Springett John C Architecture for a smart enterprise framework and methods thereof
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
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20070255798A1 (en) * 2006-04-26 2007-11-01 Sap Ag Brokered virtualized application execution
US20080059631A1 (en) * 2006-07-07 2008-03-06 Voddler, Inc. Push-Pull Based Content Delivery System
US7856654B2 (en) * 2006-08-11 2010-12-21 Novell, Inc. System and method for network permissions evaluation
US8296758B2 (en) 2006-09-20 2012-10-23 Sap Ag Deployment and versioning of applications
WO2008131456A1 (en) * 2007-04-24 2008-10-30 Stacksafe, Inc. System and method for managing an assurance system
US8132247B2 (en) 2007-08-03 2012-03-06 Citrix Systems, Inc. Systems and methods for authorizing a client in an SSL VPN session failover environment
US8418138B2 (en) * 2007-11-07 2013-04-09 International Business Machines Corporation Method, system and computer-usable medium for tracking and recording modifications to a software solution
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
US9753712B2 (en) * 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US8434093B2 (en) * 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
GB2465784B (en) 2008-11-28 2012-07-11 Vmware Inc Computer system and method for configuring an application program in a computer system
US8930953B2 (en) * 2009-01-16 2015-01-06 International Business Machines Corporation Dynamic checking of hardware resources for virtual environments
US8533151B2 (en) * 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US8484728B2 (en) * 2009-06-03 2013-07-09 Apple Inc. Managing securely installed applications
US8285949B2 (en) * 2009-06-03 2012-10-09 Apple Inc. Secure software installation
US20110041124A1 (en) * 2009-08-17 2011-02-17 Fishman Neil S Version Management System
US20110088011A1 (en) * 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US9477531B2 (en) * 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
US8468542B2 (en) * 2010-03-04 2013-06-18 Microsoft Corporation Virtual environment for server applications, such as web applications
US8782106B2 (en) * 2010-07-02 2014-07-15 Code Systems Corporation Method and system for managing execution of virtual applications
US20120102103A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Running legacy applications on cloud computing systems without rewriting
US9354852B2 (en) * 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9826049B2 (en) * 2011-03-03 2017-11-21 Life In Mobile Innovations, Inc. Method and apparatus for dynamically presenting content using an interface for setting conditional network destinations
US9015188B2 (en) * 2011-09-28 2015-04-21 Bmc Software, Inc. Methods and apparatus for monitoring execution of a database query program
US8949923B2 (en) * 2012-02-21 2015-02-03 Time Warner Cable Enterprises Llc Remote media streaming
US10666533B2 (en) * 2012-07-20 2020-05-26 Oracle International Corporation Tag latency monitoring and control system for enhanced web page performance

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051837A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd 情報システム、プログラム管理サーバ装置及びコンピュータ読み取り可能な記録媒体
JP2005339070A (ja) * 2004-05-25 2005-12-08 Sony Corp インストール方法,情報処理装置,プログラム
JP2008310610A (ja) * 2007-06-15 2008-12-25 Hitachi Ltd システム構成管理方法
WO2009042327A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Software deployment in large-scale networked systems
WO2009052003A2 (en) * 2007-10-15 2009-04-23 Microsoft Corporation Remote auto provisioning and publication of applications
US20100064284A1 (en) * 2008-09-10 2010-03-11 Microsoft Corporation Satisfying Missing Dependencies on a Running System

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190058610A (ko) * 2016-10-20 2019-05-29 후아웨이 테크놀러지 컴퍼니 리미티드 애플리케이션 기동 제어 방법 및 제어 장치
KR102247384B1 (ko) 2016-10-20 2021-04-30 후아웨이 테크놀러지 컴퍼니 리미티드 애플리케이션 기동 제어 방법 및 제어 장치
US11474831B2 (en) 2016-10-20 2022-10-18 Huawei Technologies Co., Ltd. Application startup control method and control device

Also Published As

Publication number Publication date
TW201229807A (en) 2012-07-16
CN102567055B (zh) 2016-01-27
JP6081925B2 (ja) 2017-02-15
EP2656211A2 (en) 2013-10-30
WO2012088364A2 (en) 2012-06-28
US9977665B2 (en) 2018-05-22
US10402182B2 (en) 2019-09-03
TWI540455B (zh) 2016-07-01
WO2012088364A3 (en) 2012-11-29
ES2710873T3 (es) 2019-04-29
EP2656211B1 (en) 2018-11-21
EP3166018B1 (en) 2019-01-30
EP2656211A4 (en) 2015-03-04
CN102567055A (zh) 2012-07-11
US9354852B2 (en) 2016-05-31
HK1172420A1 (zh) 2013-04-19
EP3166018A1 (en) 2017-05-10
US20180260205A1 (en) 2018-09-13
US20160328224A1 (en) 2016-11-10
US20120166597A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
US10402182B2 (en) Satisfying application dependencies
US10229283B2 (en) Managing applications in non-cooperative environments
US11138030B2 (en) Executing code referenced from a microservice registry
JP4880269B2 (ja) セキュリティポリシーをマージするための方法およびシステム
US20170052807A1 (en) Methods, apparatuses, and computer program products for deploying and managing software containers
US10114779B2 (en) Isolating a redirected USB device to a set of applications
WO2012087991A2 (en) Policy-based application delivery
US9804789B2 (en) Methods and apparatus to apply a modularized virtualization topology using virtual hard disks
US20140250069A1 (en) Systems and methods for selectively synchronizing files
US10466991B1 (en) Computing instance software package installation
JP5951002B2 (ja) 選択的ポリシーによるホストと複数のゲストとの間での構成要素伝播の実現
US8881291B2 (en) System and method for inhibiting the processing of new code modules by an outdated runtime environment
EP4155994A1 (en) Automated generation of objects for kubernetes services
US8924963B2 (en) In-process intermediary to create virtual processes
JP6781126B2 (ja) 仮想マシン設定投入システム、仮想マシン設定投入方法、及びプログラム
WO2020029995A1 (en) Application upgrading through sharing dependencies
US20240061960A1 (en) Remote management over security layer
WO2024044005A1 (en) Remote management over security layer

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130905

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130909

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141125

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170119

R150 Certificate of patent or registration of utility model

Ref document number: 6081925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250