JP5719487B2 - アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) - Google Patents

アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) Download PDF

Info

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
Application number
JP2014560499A
Other languages
English (en)
Other versions
JP2015509638A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015509638A publication Critical patent/JP2015509638A/ja
Application granted granted Critical
Publication of JP5719487B2 publication Critical patent/JP5719487B2/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5055Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

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に記載の方法。
  3. 前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする前記ステップに続いて、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする間にインストールされた各新規共有リソースの識別子で前記テーブルを更新することをさらに含む、請求項2に記載の方法。
  4. 既存のランタイム・インスタンスで利用可能な空き容量を判定することをさらに含み、前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択する前記ステップが、前記アプリケーションをインストールするのに十分な空き容量を備えた既存のランタイム・インスタンスのみを選択することを含む、請求項1、2、または3に記載の方法。
  5. 前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする前記ステップが、前記アプリケーションから、前記選択されたランタイム・インスタンスに既に存在する共有リソースを取り除くことと、前記アプリケーションの残りのコンポーネントを、前記選択されたランタイム・インスタンスにインストールすることとを含む、請求項1ないし4のいずれかに記載の方法。
  6. それぞれが1つまたは複数のランタイム・インスタンスを実行するように構成された複数のサーバと、
    前記サーバに接続され、
    アプリケーションのインストールを求める要求を受信し、
    前記アプリケーションによって求められる共有リソースを定義するデータにアクセスし、
    既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスし、
    前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択し、
    前記選択されたランタイム・インスタンスに前記アプリケーションをインストールするように構成された管理コンポーネント(28)と
    を備えた、アプリケーションをランタイム・インスタンスにインストールするためのシステム。
  7. 前記管理コンポーネントが、既存のランタイム・インスタンスにインストールされた各共有リソースの識別子を格納するテーブルを維持するようにさらに構成され、前記管理コンポーネントが、既存のランタイム・インスタンスに既にインストールされている共有リソースを定義するデータにアクセスするとき、前記テーブルにアクセスするように構成された、請求項6に記載のシステム。
  8. 前記管理コンポーネントが、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールすることに続いて、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールする間にインストールされた各新規共有リソースの識別子で前記テーブルを更新するようにさらに構成された、請求項7に記載のシステム。
  9. 前記管理コンポーネントが、既存のランタイム・インスタンスで利用可能な空き容量を判定するように、また前記アプリケーションによって求められる前記共有リソースに共通の最大多数のインストール済み共有リソースを備えた既存のランタイム・インスタンスを選択するとき、前記アプリケーションをインストールするのに十分な空き容量を備えた既存のランタイム・インスタンスのみを選択するようにさらに構成された、請求項6、7、または8に記載のシステム。
  10. 前記管理コンポーネントが、前記選択されたランタイム・インスタンスに前記アプリケーションをインストールするとき、前記アプリケーションから、前記選択されたランタイム・インスタンスに既に存在する共有リソースを取り除き、また前記アプリケーションの残りのコンポーネントを、前記選択されたランタイム・インスタンスにインストールするように構成された、請求項6ないし9のいずれか一項に記載のシステム。
  11. 処理回路によって読むことができかつ請求項1ないし5のいずれかに記載の方法を実行するために前記処理回路によって実行される命令を含む、
    アプリケーションをランタイム・インスタンスにインストールするためのコンピュータ・プログラム。
  12. プログラムがコンピュータ上で実行されるとき請求項1ないし5のいずれかの方法を実行するためのソフトウェア・コード部分を含む、デジタル・コンピュータの内部メモリにロードできるコンピュータ・プログラム。
JP2014560499A 2012-04-18 2013-03-06 アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール) Active JP5719487B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1206824.3A GB2501287A (en) 2012-04-18 2012-04-18 Installing applications at selected runtime instances
GB1206824.3 2012-04-18
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US9888057B2 (en) 2015-05-21 2018-02-06 International Business Machines Corporation Application bundle management across mixed file system types
US10152516B2 (en) 2015-05-21 2018-12-11 International Business Machines Corporation Managing staleness latency among application bundles
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
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
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)

* Cited by examiner, † Cited by third party
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
US7949684B2 (en) * 2005-09-09 2011-05-24 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
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 宇龙计算机通信科技(深圳)有限公司 一种多系统切换共享应用的方法及移动终端

Cited By (1)

* Cited by examiner, † Cited by third party
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
KR20140129042A (ko) 2014-11-06
IL234244A (en) 2017-07-31
EP2807556A4 (en) 2015-02-18
EP2807556A1 (en) 2014-12-03
WO2013156877A1 (en) 2013-10-24
IN2014CN04868A (ja) 2015-09-18
US9038059B2 (en) 2015-05-19
GB201206824D0 (en) 2012-05-30
GB2501287A (en) 2013-10-23
US20130283259A1 (en) 2013-10-24
CN104220987A (zh) 2014-12-17
CN104220987B (zh) 2017-04-05
JP2015509638A (ja) 2015-03-30

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
US9230069B2 (en) Execution-based license discovery and optimization
US9264309B2 (en) Enabling cluster scaling
US20100299661A1 (en) Load-Time Code Optimization In a Computing Environment
US10891309B2 (en) Data duplication detection in an in memory data grid (IMDG)
US9400663B2 (en) Managing middleware using an application manager
US9075845B1 (en) Correlating and reconciling descriptor data associated with computing systems
US10558640B2 (en) Dynamically adding custom data definition language syntax to a database management system
US9519592B2 (en) Stale pointer detection with overlapping versioned memory
US9075844B1 (en) Correlating and reconciling descriptor data associated with computing systems
US8838571B2 (en) Data-discriminate search engine updates
US20130081007A1 (en) Providing continuous application availability during application update
US11620208B2 (en) Deployment of variants built from code
US20210240596A1 (en) Source code file retrieval
US11243939B1 (en) Extended query families
US9501229B1 (en) Multi-tiered coarray programming
US9600525B1 (en) Method for joining tables using a limited amount of memory
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