JP5719487B2 - アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) - Google Patents
アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) Download PDFInfo
- Publication number
- JP5719487B2 JP5719487B2 JP2014560499A JP2014560499A JP5719487B2 JP 5719487 B2 JP5719487 B2 JP 5719487B2 JP 2014560499 A JP2014560499 A JP 2014560499A JP 2014560499 A JP2014560499 A JP 2014560499A JP 5719487 B2 JP5719487 B2 JP 5719487B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- runtime instance
- shared resources
- existing
- instance
- 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
Links
- 238000000034 method Methods 0.000 title claims description 32
- 238000009434 installation Methods 0.000 title claims description 23
- 238000004590 computer program Methods 0.000 title claims description 22
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 3
- 101150095109 AFR2 gene Proteins 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 101150025253 AFR1 gene Proteins 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 101150037250 Zhx2 gene Proteins 0.000 description 1
- 102100025093 Zinc fingers and homeoboxes protein 2 Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本発明は、アプリケーションをランタイム・インスタンスにインストールする方法およびシステムに関する。
「OSGi」は、Java(R)のモジュール・テクノロジである。OSGi内でバンドルは、モジュールの構成単位である。バンドルの一例は、バンドルの識別情報および外的情報を記述する付加的なバンドル・メタデータを備えたバイナリJava(R) jarファイルの未加工アーティファクト(raw artefact)である。本明細書では、バンドルは「バンドル・リソース」と呼ばれ、未加工アーティファクトは「アーティファクト・リソース」と呼ばれ、またバンドルのメタデータは「メタデータ・リソース」と呼ばれる。リソースは、オブジェクトとしても知られている。
Java(R)およびすべてのJava(R)ベースの商標およびロゴは、Oracleまたはその関連会社あるいはその両方の商標または登録商標である。
ソフトウェア・アプリケーションが個々のモジュールからなることは一般的である。Java(R) Enterprise Edition(EE)のEARファイルやOSGiアプリケーションなどの大抵のアプリケーション・モジュールは、再利用可能な機能を提供する1つまたは複数のユーティリティ・モジュールを活用するものである。通常、ユーティリティ・モジュールは、アプリケーション・モジュールの一部としてパッケージ化され、アプリケーション・モジュールの一部でもあるメタデータを使用してアプリケーション・モジュールによって参照される。アプリケーション・フレームワークへのアプリケーション・モジュールのインストールは、通常、アプリケーション・モジュールとユーティリティ・モジュールの両方をハード・ディスクの単一のディレクトリにコピーすることを必要とする。したがって、ユーティリティ・モジュールの共通セットを利用するいくつかの異なるアプリケーション・モジュールがインストールされる場合、同じユーティリティ・モジュールの複数のコピーがハード・ディスクに格納されることになり、アプリケーション・モジュールが同じアプリケーション・フレームワーク・ランタイム・インスタンスで実行されている場合、同様に、同じユーティリティ・モジュールのいくつかのバージョンがメモリにロードされることがある。これは、ディスクおよびメモリの使用に関して、またユーティリティ・モジュールのメモリへのロードに要する時間に関して、明らかな無駄である。
この問題に対する既知の解決策は、共有ライブラリ(Java(R) Platform, Enterprise EditionすなわちJava(R) EE(JEE)アプリケーション向け)、または共通のバンドル・リポジトリでの共有バンドル(OSGiアプリケーション向け)として知られている、共有リソースの概念を活用することである。いくつかのアプリケーション・モジュールに共通である可能性が高いユーティリティ・モジュールは、アプリケーション・モジュールから抜き出され、共有ライブラリまたは共通のバンドルとしてアプリケーション・フレームワーク・ランタイム・インスタンスにインストールされる。アプリケーション・モジュールのインストール時に、アプリケーション・モジュールは、必要な共有ライブラリまたは共有バンドルにリンク付けされる。このプロセスの結果として、複数のアプリケーション・モジュールが、ディスク上にある共有リソースのコピーが1つだけであるにしても、同じ共有リソースを利用することができる。アプリケーション・フレームワークに応じて、1つのバージョンの共有リソースのみがメモリにロードされる場合もある。
共有リソースの手法は、アプリケーション・モジュール開発者およびアプリケーション・フレームワーク管理者が、アプリケーション・インストールの前に、どのユーティリティ・モジュールを共通のリソースとして使用可能にすべきかを決定するために協力することができるときに、うまく機能する。しかし、アプリケーション・モジュールをPaaS(Platform as a Service)型クラウドを使用して提供されるアプリケーション・フレームワークに展開しようとする場合、共有可能なリソースをあらかじめ計画することは不可能である。
したがって、本技術分野において、上述の問題に対処する必要がある。
本発明の第1の態様によれば、アプリケーションをランタイム・インスタンスにインストールする方法が提供され、その方法は、アプリケーションのインストールを求める要求を受信するステップと、アプリケーションによって求められる共有リソースを定義するデータにアクセスするステップと、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスするステップと、アプリケーションによって求められる共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択するステップと、選択されたランタイム・インスタンスにアプリケーションをインストールするステップとを含む。
本発明の第2の態様によれば、アプリケーションをランタイム・インスタンスにインストールするためのシステムが提供され、そのシステムは、それぞれが1つまたは複数のランタイム・インスタンスを実行するように構成された複数のサーバと、サーバに接続され、アプリケーションのインストールを求める要求を受信し、アプリケーションによって求められる共有リソースを定義するデータにアクセスし、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスし、アプリケーションによって求められる共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択し、選択されたランタイム・インスタンスにアプリケーションをインストールするように構成された管理コンポーネントを備える。
本発明の第3の態様によれば、アプリケーションをランタイム・インスタンスにインストールするための、コンピュータ可読媒体上のコンピュータ・プログラム製品が提供され、その製品は、アプリケーションのインストールを求める要求を受信し、アプリケーションによって求められる共有リソースを定義するデータにアクセスし、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスし、アプリケーションによって求められる共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択し、選択されたランタイム・インスタンスにアプリケーションをインストールする命令を含む。さらに別の態様から見ると、本発明は、アプリケーションをランタイム・インスタンスにインストールするためのコンピュータ・プログラム製品を提供し、そのコンピュータ・プログラム製品は、処理回路によって読むことができかつ本発明のステップを実行するための方法を実行するために処理回路によって実行される命令を格納するコンピュータ可読記憶媒体を含む。
さらに別の態様によれば、本発明は、コンピュータ・プログラムがコンピュータ上で実行されるとき本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ可読媒体に格納されかつデジタル・コンピュータの内部メモリにロードできるコンピュータ・プログラムを提供する。
本発明の結果、アプリケーション・モジュールを、使用するユーティリティ・モジュールに基づいて、自動的にPaaS型クラウド内の個々のマシンおよびアプリケーション・フレームワーク・ランタイム・インスタンスに向けることができる方式を提供可能である。この手法は、各アプリケーション・モジュールを、そのアプリケーション・モジュールごとの任意のユーティリティ・モジュールのコピーとともにインストールする場合と比較して、ディスク領域、メモリ、および中央処理装置(CPU)サイクルを節約する。この節約は、クラウド内の個々のマシンとクラウド全体の両方の利益となる。これは、例えば、多くの異なるアプリケーションによって共有できる共通のロギング・ユーティリティなどの、一般に再利用されているサード・パーティ・モジュールの場合、特に有益である。
アプリケーション・モジュールは、PaaS型クラウドに展開されるとき、含まれるユーティリティ・モジュールを判定するためにクラウド管理ソフトウェアによって分析される。次いで、クラウド内の既存のアプリケーション・フレームワーク・ランタイム・インスタンスが、いずれかが、例えば、共有ライブラリやOSGiバンドル・リポジトリ内のバンドルとして既にインストールされている適合するユーティリティ・モジュールを備えていないかを把握するためにチェックされる。アプリケーション・モジュールは、アプリケーション・モジュールのユーティリティ・モジュールに適合する共有リソースが既にインストールされている既存のアプリケーション・フレームワーク・ランタイム・インスタンスに優先的にインストールされる。
インストール時に、新規アプリケーション・モジュールのすべてのユーティリティ・モジュールは、新規共有リソースに変換されるか、既存の共有リソースにリンク付けされる。アプリケーションは、要件のできるだけ多くを提供するクラウド内のサーバに向けられる。値によるユーティリティを含むアプリケーションから、参照によるユーティリティを含むアプリケーションにアプリケーションを変換することにより、より柔軟な展開が可能になる。この手法は、アプリケーション・モジュールが自動的に展開され、それによって既存のランタイム機能およびクラウド構成を最大限に活用できることを意味する。特に、ユーティリティ・モジュールの複数のコピーを単一の共有リソースに置き換えることができるので、ディスク領域およびプロセス・メモリが減少する。
好ましくは、方法は、既存のランタイム・インスタンスにインストールされた各共有リソースの識別子を格納するテーブルを維持することをさらに含み、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスするステップが、テーブルにアクセスすることを含む。コンピューティング・ネットワーク内の管理コンポーネントは、使用されている共有リソースのすべてを既存のランタイム・インスタンスのすべてにわたって記録する参照テーブルを維持することができる。これは、新規アプリケーションをクラウド内にインストールする必要があるときに、クラウド・コンピューティング環境に現在展開されている共有リソースを判定する簡単な方法を提供する。どの共有リソースが、どの特定のランタイム・インスタンスに、現在インストールされているかを把握するために、テーブルにアクセスすることができる。
先の段落で要約されているようなテーブルの使用に続いて、方法は、有利なことに、選択されたランタイム・インスタンスにアプリケーションをインストールするステップに続いて、選択されたランタイム・インスタンスにアプリケーションをインストールする間にインストールされた各新規共有リソースの識別子でテーブルを更新することをさらに含むことができる。アプリケーションのインストールを求める要求が出され、最良のランタイム・インスタンスがそのアプリケーションのために選択されるたびに、テーブルは、選択されたランタイム・インスタンスでインストールの結果として使用可能になる任意の新規共有リソースを反映するために更新することができる。このことは、この先のアプリケーション・インストールが、更新されたテーブルを反映するように構成されることにつながり得る、共有リソースのテーブルの持続的な更新を実現する。
理想的には、方法は、既存のランタイム・インスタンスで利用可能な空き容量を判定することをさらに含み、アプリケーションによって求められる共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択するステップが、アプリケーションをインストールするのに十分な空き容量を備えた既存のランタイム・インスタンスのみを選択することを含む。新規アプリケーションがインストールされるのに使用するランタイム・インスタンスの選択は、使用可能なランタイム・インスタンスのそれぞれに使用可能な空きメモリの量を考慮することもできる。適当なランタイム・インスタンスの選択は、この場合、十分な空きメモリを備えたランタイム・インスタンスのみに限定される場合がある。
有利なことに、選択されたランタイム・インスタンスにアプリケーションをインストールするステップは、アプリケーションから、選択されたランタイム・インスタンスに既に存在する共有リソースを取り除くことと、アプリケーションの残りのコンポーネントを、選択されたランタイム・インスタンスにインストールすることとを含む。アプリケーションのインストールは、選択されたランタイム・インスタンスに既に存在する共有リソースの他に必要なモジュールのみをインストールすることに限定することができる。これは、アプリケーションをインストールする最も効率的な方法であり、大抵のプロセッサおよび帯域幅の使用を節約することになる。
次に、本発明の好ましい実施形態を、単に例示を目的として、以下の図面を参照しながら説明する。
図1は、2つの特定のロケーション12および14を含むランタイム・インスタンス10の例を示す。アプリケーション固有モジュールがロケーション12にインストールされ、共有リソースがロケーション14にインストールされている。(AM1およびAM2のラベルの付いた)2つのアプリケーション16が、ロケーション12にインストールされている状態が示されている。各アプリケーション16は、1つまたは複数のアプリケーション固有モジュール18および1つまたは複数の共有リソース20を含む。アプリケーションAM1は、アプリケーション固有モジュールM1ならびに共有リソースR1およびR2を含む。同様に、アプリケーションAM2は、アプリケーション固有モジュールM2ならびに同じ共有リソースR1およびR2を含む。
アプリケーションAM1をランタイム・インスタンス10にインストールしたとき、アプリケーション固有モジュールM1がロケーション12にインストールされ、共有リソースR1およびR2がロケーション14にインストールされた。アプリケーションAM1内の実際の共有リソースは、共有リソースR1およびR2へのリンクに置き換えられた。次に、アプリケーションAM2をランタイム・インスタンス10にインストールしたとき、アプリケーション固有モジュールM2だけがロケーション12にインストールされ、アプリケーションAM2内の共有リソースR1およびR2は、既にロケーション14に存在するのでインストールされなかった。アプリケーションAM2は、前にインストールされた共有リソース20へのリンクを伴ってインストールされた。
同様に、新規アプリケーション16’をインストールしようとするとき、その新規アプリケーション16’内のモジュールは、ランタイム・インスタンス10のロケーション14内に既にインストールされている共有リソース20と比較してどうであるかを把握するために検査される。この場合、新規アプリケーションAM3は、アプリケーション固有モジュールM3および共有リソースR2(標準ライブラリなど)を含む。この新規アプリケーション16’をランタイム・インスタンスにインストールしようとするとき、アプリケーション固有モジュールM3だけがロケーション12にインストールされる必要があり、アプリケーションAM3内の共有リソースR2は、ロケーション14内に存在する、R2の既にインストールされているコピーへのリンクに置き換えることができる。
図2は、図でAM3のラベルの付いた第3の新規アプリケーション16’のインストール後のランタイム・インスタンス10を示す。M3のラベルの付いたアプリケーション固有モジュール18は、ロケーション12にインストールされ、R2のラベルの付いた共有リソース20は、ロケーション14にインストールされている、この特定の共有リソース20のコピーが既にあるので、インストールされないことになる。アプリケーションの共有リソースR2は、ロケーション14内の共有リソースR2のロケーションへのリンクに置き換えられる。すなわち、同じ共有リソースの重複するコピーは、同じランタイム・インスタンス10にインストールされない。新規共有リソースだけが、ロケーション14にインストールされることになる。
図1および図2に関して説明した手法は、アプリケーションをランタイム・インスタンス10にインストールするための効率的なプロセスを実現するとともに、ランタイム・インスタンス10で利用可能なリソースの有効利用も実現する。アプリケーションがインストールされるとき、メモリの使用は削減され、使用される帯域幅が抑えられる。同じランタイム・インスタンス10にインストールされるこの先のアプリケーションはすべて、ロケーション14にまだインストールされていない共有リソース20だけをインストールする同じプロセスを経るようになる。インストールしようとする各新規アプリケーション16’は、新規アプリケーション16’内の、アプリケーション固有のモジュール、および既に存在しているかもしれない共有リソースであるモジュールを識別するために、検査される。
ランタイム・インスタンス10は、クライアント・デバイスに、ランタイム・インスタンス10によってホストされたアプリケーション16へのアクセスを提供するサーバ上に存在する。クライアント・デバイスが、アプリケーション16の実行を要求すると、クライアント・デバイスのユーザにアプリケーション16へのアクセスを提供するために、利用可能なサーバ上のランタイム・インスタンス10にコピーがインストールされる。インストールされたアプリケーション16は、1つまたは複数のアプリケーション固有モジュール18および1つまたは複数の共有リソース20を含む。共有リソース20は、ライブラリなどのある意味で本質的に標準化されたコンポーネントであり、同じコンピューティング環境の様々なアプリケーションによって使用可能である。
図3は、本質的に、それぞれが1つまたは複数のランタイム・インスタンス10を提供するサーバのネットワークからなるクラウド22である、より複雑なコンピューティング環境を示す。クラウド22は、処理および記憶機能をクライアント・デバイスに提供するコンピューティング・リソースであり、それらは通常、利用可能なコンピューティング機能へアクセスするためにユーザが開始するセッションを介して提供される。管理コンポーネント28が、セッションの設定、およびユーザが自身のローカル・クライアント・デバイスを介してアクセスするアプリケーションのインストールを管理する。クラウド22を構成する基盤となるハードウェア・リソースはクライアント・デバイスには見えず、ユーザは、コンピューティング・リソースを提供する、基盤となるプロセスを意識していない。
この図では、クラウド22内のどこかにインストールする予定の新規アプリケーション16が示されている。このアプリケーション16は、既存のランタイム・インスタンス10にインストールされる必要がある、または新規インスタンスが、新規アプリケーション16専用に作成される必要がある。このアプリケーション16は、アプリケーション固有モジュール18や共有リソース20などのモジュールを含む。アプリケーション16からクラウド22への矢印上に示された疑問符は、どこにアプリケーション16をインストールするのが最善かという未解決の問題があることを示している。クラウド22内の管理コンポーネント28は、クラウド22内のランタイム・インスタンス10の分析を行わなければならない。
この分析は、新規アプリケーション16をクラウド22内にインストールするための最も論理的なロケーションを決定し、このプロセスについて、以下でより詳しく説明する。要約すれば、管理コンポーネント28は、アプリケーション16のインストールを求める要求を受信した後、アプリケーション16によって求められる共有リソース20を定義するデータにアクセスし、既存のランタイム・インスタンス10に既にインストールされている共有リソース20を定義するデータにアクセスする。管理コンポーネント28は、アプリケーション16によって求められる共有リソース20に共通の最大多数のインストール済み共有リソース20を備えた既存のランタイム・インスタンス10を選択し、選択されたランタイム・インスタンス10にアプリケーション16をインストールする。
図4は、既存のランタイム・インスタンス10にインストールされた各共有リソース20の識別子26を格納するために使用できる、共有リソースの参照テーブル(LUT)24を示す。本質的に、参照テーブル24は行を含み、各行は、その識別子26によって参照テーブル24に表される特定の共有リソース20に専用である。各行は、その行の特定の共有リソース20を含むランタイム・インスタンス10のリストも含む。図4の参照テーブル24は、各共有リソース20を単一のランタイム・インスタンス10に存在するだけのように示しているが、実際的な実装形態では、各共有リソース20が複数のランタイム・インスタンス10に存在することになる可能性が高い。
参照テーブル24内で使用される共有リソースの識別子26は、特定のテクノロジ環境で一般に使用される、ファイル、モジュール、またはライブラリの名前であってもよい。さらに、または代替方法として、同じ共有リソース20に使用される2つ以上の名前が存在するであろう場合、共有リソースの識別子26を、共有リソース20に基づく事前定義されたハッシュ関数を使用して作成することができる。これにより、管理コンポーネント28は、受信される新規アプリケーション16の一部をなす任意の共有リソース20を識別できるようになる。管理コンポーネント28は、共有リソースの識別子26を得るために、各新規共有リソースに基づくハッシュ関数を実行する。
管理コンポーネント28は、参照テーブル24の格納および維持を行い、また新規アプリケーション16がインストールされるとき、常に参照テーブル24を更新することができる。例えば、2つが特定のランタイム・インスタンス10に既に存在するが、2つが管理コンポーネントにとって完全に新しい4つの共有リソース20を含む新規アプリケーション16が、受信される場合がある。新規アプリケーション16は、既存の2つの共通の共有リソース20を既に備えた特定のランタイム・インスタンス10にインストールされ、参照テーブル24は、前もって認識されなかった2つの新規共有リソース20がその特定のランタイム・インスタンス10にインストールされたことを示すために更新されることになる。
図5は、新規アプリケーション16’をクラウド22内のどこかにインストールしようとするときにとられるプロセスの最初のステップを示す。ユーザは、アプリケーション・モジュールをクラウド22に展開する。展開時、管理コンポーネント28によって実行されるクラウド22制御ソフトウェアは、以下のステップを実行し、それは、501で、アプリケーション・モジュール・タイプを例えば、JEEのearファイルやOSGiのアプリケーション・ファイルとして検出することで始まる。クラウド22内に既にインストールされているランタイム・インスタンス10にインストールしようとする新規アプリケーション16’内に存在する様々なアプリケーション・モジュール・タイプを検出するために、ファイル拡張子、またはプログラミング環境の構造に関する知識が使用されてもよい。
アプリケーション・モジュール・タイプの知識を使用して、管理コンポーネント28は、502で、ユーティリティ・モジュール、例えば、earファイル内のEnterprise Java(R) Beans(EJB)jarファイルのマニフェストから参照されるjarファイルや、OSGiアプリケーション内に値によって含まれるバンドルを識別する。すべてのユーティリティ・モジュールは、たとえそれが単一のアプリケーション・モジュールのみによって使用される場合でも、変換されて共有ライブラリまたは共有バンドルになる。こうしたモジュールは、共有リソース20になることが考えられ得る。本質的に汎用的でその特定のアプリケーションに固有でない、新規アプリケーション16’内の任意のモジュールは、共有リソース20になる可能性がある。これらは、同じランタイム・インスタンス10内のアプリケーション16間で再利用できるモジュールである。
クラウド22向けの制御ソフトウェアを実行する管理コンポーネント28は、新規アプリケーション16’に使用されるプログラミング言語に関しては、中立的である。クラウド22にインストールされた任意の新規アプリケーション16’は、新規アプリケーション16’が、アプリケーション16間で2つ以上を共有できる個別のモジュールを含んでいる限り、本明細書で説明する手法で処理することができる。図5に示されているステップ1およびステップ2では、管理コンポーネント28が、新規アプリケーション16’をクラウド22内により効率的にインストールするために、新規アプリケーション16’を構成するモジュールを検査して、当該新規アプリケーション16’内の「ユーティリティ・モジュール」を識別する。
図6は、プロセスの次のステップを示す。管理コンポーネント28は、603で、新規アプリケーション16’内の各共有リソース20の識別子26を作成する。このリソースの識別子26は、同一性をチェックするために、他の共有リソース20との比較用に使用される。これは、ハッシュ関数によって生成されてもよく、名前ベースであっても、単に共有リソース20を構成するバイトであってもよい。管理コンポーネント28は、604で、既に少なくとも1つの共有リソース20がインストールされている、クラウド22内の、アプリケーション・フレームワークのすべてのランタイム・インスタンス10を、共有リソースの参照テーブル24を使用して検索する。参照テーブルは、例えば参照テーブル24を検索することで共有リソースがインストールされるランタイム・インスタンス10に、共有リソースの識別子26をマッピングする。こうしたランタイム・インスタンス10は、新規アプリケーション16’をインストールするための潜在的な候補と考えられる。
管理コンポーネント28は、次いで605で、アプリケーション固有モジュール18を、以下の基準セットを最も満たすランタイム・インスタンス10にインストールする。基準セットでは、ランタイム・インスタンスは、できるだけ多くの共通の共有リソース20を備えるとともに、アプリケーション固有モジュール18のパフォーマンス要件を満たすのに十分な空き容量を備えている。インストール時に、管理コンポーネント28は、必要に応じて、任意の新規共有リソース、またはアプリケーション固有モジュール18から既存の共有リソース20へのリンク、あるいはその両方を作成する。このように、管理コンポーネント28は、新規アプリケーション16’向けに最も効率的なロケーションを選択する。この効率性によって、インストールを要するデータ量が減少し、また管理コンポーネント28による追加作業が最小限となってインストール・プロセスの帯域幅要件も抑えられる。
図5および図6の例では、新規アプリケーション16’は、R1およびR2のラベルの付いた2つの共有リソース20を含む。参照テーブル24によれば、AFR1のラベルの付いたランタイム・インスタンス10は、既に存在する共有リソースR1を備えている。しかし、AFR2のラベルの付いたランタイム・インスタンス10は、同様に参照テーブル24から分かるように、既存の共有リソースR1とR2の両方を備えている。これは、このランタイム・インスタンスAFR2が、新規アプリケーション16’のインストールにより良いロケーションであり、したがって、図6の矢印によって示されているように、管理コンポーネント28は、新規アプリケーション16’をこのランタイム・インスタンス10にインストールすることを意味する。
新規アプリケーション16’のインストールに適合するランタイム・インスタンス10が見つからない場合、管理コンポーネント28は、通常どおりクラウド22の新規のランタイム・インスタンス10を準備し、アプリケーション固有モジュール18および新規共有リソース20がそこにインストールされる。最後に、管理コンポーネント28は、共有リソースの参照テーブル24を、新しく作成された任意の共有リソースの識別子26、および共有リソースがインストールされたランタイム・インスタンス10で更新する。これにより、新規アプリケーション16’がインストールされるたびに絶えず更新されるようになる動的な参照テーブル24が提供され、ランタイム・インストールの効率性が、アプリケーション16のクラウド22内へのインストールを求めるユーザ要求が受信されるとき、各新規アプリケーション16’に対して継続することになる。
図7は、クラウド22内のサーバとしての管理コンポーネント28を示す。管理コンポーネント28は、クラウド22を構成する他のサーバ30に通じている。多数の様々なマシンが、クラウド22内で複数のコンポーネントを提供する、サーバ30および専用記憶装置を含むクラウド22を構成することになる。管理コンポーネント28は、新規アプリケーション16のインストールに関連して、CD−ROM32などのコンピュータ可読媒体から提供できるコンピュータ・プログラム製品によって制御可能である。コンピュータ・プログラム製品に付随する命令は、新規アプリケーション16のインストールを処理するとき、管理コンポーネント28のプロセッサを制御するために使用される。
コンピュータ・プログラム製品の命令によって具体化されたプロセスが、図8の流れ図に要約されている。新規アプリケーション16をランタイム・インスタンス10にインストールする方法は、801で、アプリケーション16のインストールを求める要求を受信するステップと、802で、アプリケーション16によって求められる共有リソース20を定義するデータにアクセスするステップと、803で、既存のランタイム・インスタンス10に既にインストールされている共有リソース20を定義するデータ24にアクセスするステップと、804で、アプリケーション16によって求められる共有リソース20に共通の最大多数のインストール済み共有リソース20を備えた既存のランタイム・インスタンス10を選択するステップと、805で、選択されたランタイム・インスタンス10にアプリケーション16をインストールするステップとを含む。
本発明の好ましい実施形態では、共有リソースがどこで見つかるかの記録は参照テーブル24に格納されている。当業者であれば、そうした記録が、例えばリレーショナル・データベースになど、多数の様々なアーティファクトに格納でき、またそこからアクセスできることが理解されよう。
当業者であれば理解されようが、本発明の態様は、システム、方法、コンピュータ・プログラム製品、またはコンピュータ・プログラムとして具体化され得る。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアの態様とハードウェアの態様を組み合わせた一実施形態の形をとってもよい。それらはすべて、一般に本明細書で「回路」、「モジュール」、または「システム」と呼ばれる場合がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードをその上で具体化する1つまたは複数のコンピュータ可読媒体で具体化されるコンピュータ・プログラム製品の形をとってもよい。
1つまたは複数のコンピュータ可読媒体の任意の組合せが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体でも、またコンピュータ可読記憶媒体でもよい。コンピュータ可読記憶媒体は、例えば、それだけに限定されるものではないが、電子的、磁気的、光学式、電磁的、赤外線式、もしくは半導体式のシステム、装置、またはデバイス、あるいは以上の任意の適当な組合せであってもよい。コンピュータ可読記憶媒体のより具体的な例(非網羅的リスト)には、次のものが含まれる。すなわち、1つもしくは複数の配線を有する電気的な接続、携帯型のコンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラム可能読出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読出し専用メモリ(CD−ROM)、光学式記憶装置、磁気記憶装置、または以上の任意の適当な組合せである。本明細書の内容上、コンピュータ可読記憶媒体は、命令実行のシステム、装置、もしくはデバイスによって、またはこれらとともに使用するためのプログラムを収容、あるいは格納できる任意の有形の媒体であってもよい。
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが具体化された伝搬されるデータ信号を、例えばベースバンド内に、または搬送波の一部として含むことができる。そのような伝搬される信号は、それだけに限定されるものではないが、電磁的、光学式、またはこれらの任意の適切な組合せを含めて、様々な形のいずれかをとることができる。コンピュータ可読信号媒体は、命令実行のシステム、装置、もしくはデバイスによって、またはこれらとともに使用するためのプログラムを通信、伝搬、あるいは転送できる、コンピュータ可読記憶媒体ではない任意のコンピュータ可読媒体であってもよい。
コンピュータ可読媒体上で具体化されるプログラム・コードは、それだけに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RFなど、または以上の任意の適切な組合せを含めて、任意の適当な媒体を使用して伝送することができる。
本発明の態様の動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラム言語、および「C」プログラム言語もしくは類似のプログラム言語などの従来の手続き型プログラム言語を含む、1つまたは複数のプログラム言語の任意の組合せで記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的に、独立型のソフトウェア・パッケージとしてユーザのコンピュータ上で、部分的にユーザのコンピュータ上でまた部分的に遠隔のコンピュータ上で、または全体的に遠隔のコンピュータもしくはサーバ上で実行することができる。最後のシナリオの場合、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または外部のコンピュータへ(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)接続を行うこともできる。Java(R)およびすべてのJava(R)ベースの商標およびロゴは、Oracleまたはその関連会社あるいはその両方の商標または登録商標である。
以下で、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら、本発明の態様を説明する。流れ図またはブロック図あるいはその両方のそれぞれのブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ・プログラム命令によって実装され得ることが理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊用途コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供可能であり、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行された命令が、流れ図もしくはブロック図またはその両方のブロックあるいはブロック群で指定される機能/行為を実施するための手段を実現するようなマシンを形成する。
これらのコンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに特定の方法で機能するよう指示できるコンピュータ可読媒体に格納可能であり、これにより、コンピュータ可読媒体に格納された命令が、流れ図もしくはブロック図またはその両方のブロックあるいはブロック群で指定された機能/行為を実施する命令を含む製品を形成する。
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードでき、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させ、コンピュータまたは他のプログラム可能装置上で実行された命令が、流れ図もしくはブロック図またはその両方のブロックあるいはブロック群で指定された機能/行為を実施するためのプロセスを提供するようなコンピュータ実施プロセスを形成する。
図示された流れ図およびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品に対する可能な実装形態のアーキテクチャ、機能性、ならびに動作を示す。この点に関連して、流れ図またはブロック図における各ブロックは、特定の論理機能(複数可)を実装するための1つもしくは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を示すことができる。また、いくつかの別の実装形態において、ブロックに記された機能が、図に記された順序以外で発生し得ることにも留意されたい。例えば、関係する機能に応じて、連続して示されている2つのブロックは、実際には実質的に同時に実行されてもよく、またそのブロックは時には逆の順序で実行されてもよい。また、ブロック図または流れ図あるいはその両方のそれぞれのブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せが、特定の機能または行為を実行する特殊用途のハードウェア・ベースのシステムによって、あるいは特殊用途のハードウェアとコンピュータ命令の組合せによって実装され得ることにも留意されたい。
疑念を回避するために、「備える、含む(comprising)」という用語は、明細書および特許請求の範囲を通じて本明細書で使用されるとき、「のみからなる(consisting only of)」を意味するとみなされるべきではない。
Claims (12)
- アプリケーションのインストールを求める要求を受信するステップと、
前記アプリケーションによって求められる共有リソースを定義するデータにアクセスするステップと、
既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスするステップと、
前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択するステップと、
前記選択されたランタイム・インスタンスに前記アプリケーションをインストールするステップと
を含む、アプリケーションをランタイム・インスタンスにインストールする方法。 - 既存のランタイム・インスタンスにインストールされた各共有リソースの識別子を格納するテーブルを維持することをさらに含み、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスする前記ステップが、前記テーブルにアクセスすることを含む、請求項1に記載の方法。
- 前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする前記ステップに続いて、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする間にインストールされた各新規共有リソースの識別子で前記テーブルを更新することをさらに含む、請求項2に記載の方法。
- 既存のランタイム・インスタンスで利用可能な空き容量を判定することをさらに含み、前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択する前記ステップが、前記アプリケーションをインストールするのに十分な空き容量を備えた既存のランタイム・インスタンスのみを選択することを含む、請求項1、2、または3に記載の方法。
- 前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする前記ステップが、前記アプリケーションから、前記選択されたランタイム・インスタンスに既に存在する共有リソースを取り除くことと、前記アプリケーションの残りのコンポーネントを、前記選択されたランタイム・インスタンスにインストールすることとを含む、請求項1ないし4のいずれかに記載の方法。
- それぞれが1つまたは複数のランタイム・インスタンスを実行するように構成された複数のサーバと、
前記サーバに接続され、
アプリケーションのインストールを求める要求を受信し、
前記アプリケーションによって求められる共有リソースを定義するデータにアクセスし、
既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスし、
前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択し、
前記選択されたランタイム・インスタンスに前記アプリケーションをインストールするように構成された管理コンポーネント(28)と
を備えた、アプリケーションをランタイム・インスタンスにインストールするためのシステム。 - 前記管理コンポーネントが、既存のランタイム・インスタンスにインストールされた各共有リソースの識別子を格納するテーブルを維持するようにさらに構成され、前記管理コンポーネントが、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスするとき、前記テーブルにアクセスするように構成された、請求項6に記載のシステム。
- 前記管理コンポーネントが、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールすることに続いて、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする間にインストールされた各新規共有リソースの識別子で前記テーブルを更新するようにさらに構成された、請求項7に記載のシステム。
- 前記管理コンポーネントが、既存のランタイム・インスタンスで利用可能な空き容量を判定するように、また前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択するとき、前記アプリケーションをインストールするのに十分な空き容量を備えた既存のランタイム・インスタンスのみを選択するようにさらに構成された、請求項6、7、または8に記載のシステム。
- 前記管理コンポーネントが、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールするとき、前記アプリケーションから、前記選択されたランタイム・インスタンスに既に存在する共有リソースを取り除き、また前記アプリケーションの残りのコンポーネントを、前記選択されたランタイム・インスタンスにインストールするように構成された、請求項6ないし9のいずれか一項に記載のシステム。
- 処理回路によって読むことができかつ請求項1ないし5のいずれかに記載の方法を実行するために前記処理回路によって実行される命令を含む、
アプリケーションをランタイム・インスタンスにインストールするためのコンピュータ・プログラム。 - プログラムがコンピュータ上で実行されるとき請求項1ないし5のいずれかの方法を実行するためのソフトウェア・コード部分を含む、デジタル・コンピュータの内部メモリにロードできるコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1206824.3 | 2012-04-18 | ||
GB1206824.3A GB2501287A (en) | 2012-04-18 | 2012-04-18 | Installing applications at selected runtime instances |
PCT/IB2013/051765 WO2013156877A1 (en) | 2012-04-18 | 2013-03-06 | Application installation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015509638A JP2015509638A (ja) | 2015-03-30 |
JP5719487B2 true JP5719487B2 (ja) | 2015-05-20 |
Family
ID=46209264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014560499A Active JP5719487B2 (ja) | 2012-04-18 | 2013-03-06 | アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) |
Country Status (9)
Country | Link |
---|---|
US (1) | US9038059B2 (ja) |
EP (1) | EP2807556A4 (ja) |
JP (1) | JP5719487B2 (ja) |
KR (1) | KR20140129042A (ja) |
CN (1) | CN104220987B (ja) |
GB (1) | GB2501287A (ja) |
IL (1) | IL234244A (ja) |
IN (1) | IN2014CN04868A (ja) |
WO (1) | WO2013156877A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11666395B2 (en) | 2015-06-23 | 2023-06-06 | Covidien Lp | Robotic surgical assemblies |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2980867B1 (fr) * | 2011-10-04 | 2013-10-18 | Inside Secure | Procede et systeme pour executer une transaction sans contact autorisant de multiples applications et de multiples instances d'une meme application |
US9128792B2 (en) * | 2012-09-28 | 2015-09-08 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
GB2506596A (en) * | 2012-10-02 | 2014-04-09 | Ibm | Managing a set of software modules in a runtime environment |
US20140280957A1 (en) * | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Dynamic Assembly and Dispatch of Controlling Software |
US9652215B2 (en) * | 2014-12-30 | 2017-05-16 | Microsoft Technology Licensing, Llc | Application installation/uninstallation across multiple systems |
US10389850B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US10389794B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US10152516B2 (en) | 2015-05-21 | 2018-12-11 | International Business Machines Corporation | Managing staleness latency among application bundles |
US9888057B2 (en) | 2015-05-21 | 2018-02-06 | International Business Machines Corporation | Application bundle management across mixed file system types |
US10530660B2 (en) | 2015-05-21 | 2020-01-07 | International Business Machines Corporation | Application bundle preloading |
US9965262B2 (en) | 2015-05-21 | 2018-05-08 | International Business Machines Corporation | Application bundle pulling |
CN107066308A (zh) * | 2017-04-19 | 2017-08-18 | 深圳天珑无线科技有限公司 | 编译处理方法及装置 |
CN107463414B (zh) * | 2017-08-21 | 2020-10-30 | 北京小米移动软件有限公司 | 应用安装方法及装置 |
US10713029B2 (en) * | 2017-10-31 | 2020-07-14 | Accenture Global Solutions Limited | Manifest-enabled analytics platform deployment engine |
US11055087B2 (en) * | 2018-03-16 | 2021-07-06 | Google Llc | Leveraging previously installed application elements to install an application |
US11409569B2 (en) * | 2018-03-29 | 2022-08-09 | Xilinx, Inc. | Data processing system |
CN112764909B (zh) * | 2021-01-27 | 2022-10-11 | 联思智云(北京)科技有限公司 | 一种基于云架构工作站的共享方法及*** |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6117187A (en) * | 1997-09-30 | 2000-09-12 | Hewlett-Packard Company | Automatic generation of a software installation package |
US6442754B1 (en) * | 1999-03-29 | 2002-08-27 | International Business Machines Corporation | System, method, and program for checking dependencies of installed software components during installation or uninstallation of software |
US6938058B2 (en) * | 1999-08-23 | 2005-08-30 | Eisenworld, Inc. | Apparatus and method for transferring information between platforms |
US6948059B1 (en) * | 2000-09-28 | 2005-09-20 | Rockwell Automation Technologies, Inc. | Component loader for industrial control device providing resource search capabilities |
US7418700B2 (en) * | 2001-01-29 | 2008-08-26 | Microsoft Corporation | System and method to facilitate installation and/or removal of components |
US20030163807A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Weighted selection of target systems for distributed software installation |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
GB2394570A (en) * | 2002-10-21 | 2004-04-28 | Ncr Int Inc | Installing software components according to component characteristics |
CN100371922C (zh) * | 2004-02-25 | 2008-02-27 | 英特维数位科技股份有限公司 | 具远程遥控特性的操作***共享应用程序的架构及其方法 |
US7415704B2 (en) * | 2004-05-20 | 2008-08-19 | Sap Ag | Sharing objects in runtime systems |
US7590623B2 (en) * | 2005-01-06 | 2009-09-15 | International Business Machines Corporation | Automated management of software images for efficient resource node building within a grid environment |
JP4455403B2 (ja) * | 2005-05-17 | 2010-04-21 | キヤノン株式会社 | 管理方法及び管理装置 |
US8726233B1 (en) * | 2005-06-20 | 2014-05-13 | The Mathworks, Inc. | System and method of using an active link in a state programming environment to locate an element |
JP5395434B2 (ja) * | 2005-09-09 | 2014-01-22 | セールスフォース ドット コム インコーポレイティッド | マルチテナントデータベース環境において、オンデマンドアプリケーションをエクスポートし、公表し、ブラウズし、インストールするためのシステムおよび方法 |
US8024430B2 (en) * | 2005-10-14 | 2011-09-20 | Computer Associates Think, Inc. | System and method for installing software |
US9189291B2 (en) * | 2005-12-12 | 2015-11-17 | International Business Machines Corporation | Sharing a kernel of an operating system among logical partitions |
JP5014871B2 (ja) * | 2006-05-16 | 2012-08-29 | パナソニック株式会社 | プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路 |
KR100835269B1 (ko) * | 2006-12-07 | 2008-06-05 | 한국전자통신연구원 | 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 |
US8577937B1 (en) * | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US8170997B2 (en) | 2009-01-29 | 2012-05-01 | Microsoft Corporation | Unbundled storage transaction services |
JP2010225099A (ja) * | 2009-03-25 | 2010-10-07 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
US8296402B2 (en) * | 2009-04-07 | 2012-10-23 | National Instruments Corporation | Determining and downloading portions of a software application in a computer system |
US8375223B2 (en) | 2009-10-30 | 2013-02-12 | Red Hat, Inc. | Systems and methods for secure distributed storage |
TW201142709A (en) * | 2009-12-11 | 2011-12-01 | Ibm | A method, system and computer program for deciding whether to install a first application within one of a plurality of candiate environments |
US8984503B2 (en) | 2009-12-31 | 2015-03-17 | International Business Machines Corporation | Porting virtual images between platforms |
US20110258461A1 (en) | 2010-04-16 | 2011-10-20 | Twinstrata, Inc | System and method for resource sharing across multi-cloud arrays |
JP2011221597A (ja) * | 2010-04-05 | 2011-11-04 | Hitachi Solutions Ltd | クローンディスク作成方法およびプログラム |
US8627426B2 (en) * | 2010-04-26 | 2014-01-07 | Vmware, Inc. | Cloud platform architecture |
KR101008927B1 (ko) | 2010-07-15 | 2011-01-18 | 최승일 | 클라우드 방식의 디스크 공유 시스템 및 그 방법 |
CN102413246B (zh) * | 2011-11-29 | 2013-11-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种多***切换共享应用的方法及移动终端 |
-
2012
- 2012-04-18 GB GB1206824.3A patent/GB2501287A/en not_active Withdrawn
-
2013
- 2013-03-06 KR KR1020147023392A patent/KR20140129042A/ko not_active Application Discontinuation
- 2013-03-06 CN CN201380020014.3A patent/CN104220987B/zh active Active
- 2013-03-06 IN IN4868CHN2014 patent/IN2014CN04868A/en unknown
- 2013-03-06 JP JP2014560499A patent/JP5719487B2/ja active Active
- 2013-03-06 WO PCT/IB2013/051765 patent/WO2013156877A1/en active Application Filing
- 2013-03-06 EP EP13779073.9A patent/EP2807556A4/en not_active Withdrawn
- 2013-03-15 US US13/837,583 patent/US9038059B2/en active Active
-
2014
- 2014-08-21 IL IL234244A patent/IL234244A/en active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11666395B2 (en) | 2015-06-23 | 2023-06-06 | Covidien Lp | Robotic surgical assemblies |
Also Published As
Publication number | Publication date |
---|---|
CN104220987A (zh) | 2014-12-17 |
US20130283259A1 (en) | 2013-10-24 |
JP2015509638A (ja) | 2015-03-30 |
KR20140129042A (ko) | 2014-11-06 |
GB2501287A (en) | 2013-10-23 |
EP2807556A4 (en) | 2015-02-18 |
CN104220987B (zh) | 2017-04-05 |
US9038059B2 (en) | 2015-05-19 |
IL234244A (en) | 2017-07-31 |
EP2807556A1 (en) | 2014-12-03 |
WO2013156877A1 (en) | 2013-10-24 |
GB201206824D0 (en) | 2012-05-30 |
IN2014CN04868A (ja) | 2015-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5719487B2 (ja) | アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) | |
US10303466B1 (en) | Semantic annotations in source code | |
US10564959B2 (en) | Shared software libraries for computing devices | |
US8949853B2 (en) | Using stages to handle dependencies in parallel tasks | |
US11055180B2 (en) | Backup management of software environments in a distributed network environment | |
US9612946B2 (en) | Using linked data to determine package quality | |
US20170123777A1 (en) | Deploying applications on application platforms | |
US8959229B1 (en) | Intelligently provisioning cloud information services | |
US9275201B2 (en) | Execution-based license discovery and optimization | |
US20100299661A1 (en) | Load-Time Code Optimization In a Computing Environment | |
US10891309B2 (en) | Data duplication detection in an in memory data grid (IMDG) | |
US10558640B2 (en) | Dynamically adding custom data definition language syntax to a database management system | |
US9519592B2 (en) | Stale pointer detection with overlapping versioned memory | |
US20160062777A1 (en) | Managing middleware using an application manager | |
US8838571B2 (en) | Data-discriminate search engine updates | |
US9075844B1 (en) | Correlating and reconciling descriptor data associated with computing systems | |
US20130081007A1 (en) | Providing continuous application availability during application update | |
US20120150898A1 (en) | Dynamic Collection Of System Support Files In A Data Processing Environment | |
US11243939B1 (en) | Extended query families | |
CN105760341A (zh) | 一种获取***处理器内存资源拓扑方式的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150120 |
|
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: 20150303 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150320 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5719487 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |