特許第6382834号(P6382834)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ドイッチェ テレコム アーゲーの特許一覧

特許6382834計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品
<>
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000002
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000003
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000004
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000005
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000006
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000007
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000008
  • 特許6382834-計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6382834
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品
(51)【国際特許分類】
   G06F 8/60 20180101AFI20180820BHJP
   G06F 9/50 20060101ALI20180820BHJP
【FI】
   G06F8/60
   G06F9/50 120Z
【請求項の数】17
【全頁数】26
(21)【出願番号】特願2015-546911(P2015-546911)
(86)(22)【出願日】2013年11月8日
(65)【公表番号】特表2015-537320(P2015-537320A)
(43)【公表日】2015年12月24日
(86)【国際出願番号】EP2013073423
(87)【国際公開番号】WO2014090488
(87)【国際公開日】20140619
【審査請求日】2016年10月7日
(31)【優先権主張番号】12008253.2
(32)【優先日】2012年12月11日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】597149146
【氏名又は名称】ドイッチェ テレコム アーゲー
(74)【代理人】
【識別番号】100094112
【弁理士】
【氏名又は名称】岡部 讓
(74)【代理人】
【識別番号】100106183
【弁理士】
【氏名又は名称】吉澤 弘司
(74)【代理人】
【識別番号】100114915
【弁理士】
【氏名又は名称】三村 治彦
(74)【代理人】
【識別番号】100120363
【弁理士】
【氏名又は名称】久保田 智樹
(74)【代理人】
【識別番号】100125139
【弁理士】
【氏名又は名称】岡部 洋
(72)【発明者】
【氏名】ルエル,ステファン トビアス
(72)【発明者】
【氏名】ヴェルクラス,ステファン
【審査官】 多賀 実
(56)【参考文献】
【文献】 RUEHL, T. Stefan et al.,Toward Realization of Deployment Variability for Software-as-a-Service Applications,Cloud Computing(CLOUD), 2012 IEEE 5th International Conference on [online],IEEE,2012年 8月 2日,p.622-629,[平成29年7月25日検索], インターネット,URL,http://ieeexplore.ieee.org/document/6253559
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60
G06F 9/445
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
アプリケーション(1)を計算リソース(2)上に展開するためのコンピューター実施方法であって、前記アプリケーション(1)は、ユーザーの複数のテナント(3)にリモートで提供され、前記アプリケーション(1)は、複数のアプリケーションコンポーネント(10)を備え、該コンピューター実施方法は、
前記複数のテナント(3)をカテゴリー化するためのテナント(31、32、...、35)のグループセット(4)を定義することと、
前記複数のテナント(3)のうちの各テナント(31、32、...、35)を、前記テナント(31、32、...、35)の前記グループセット(4)の、テナント(31、32、...、35)の少なくとも1つのグループ(410、411、...、412)に割り当てることと、
展開モデル(51、52、53、54、55)を、
前記複数のアプリケーションコンポーネント(10)のうちのアプリケーションコンポーネント(11、12、...、16)と、
前記複数のテナント(3)のうちのテナント(31、32、...、35)と、
の組み合わせごとに準備することと、
前記展開モデル(51、52、53、54、55)に応じて、アプリケーションコンポーネント(11、12、...、16)とテナント(31、32、...、35)との組み合わせごとに制約情報を決定することであって、前記展開モデル(51、52、53、54、55)は、前記複数のテナント(3)のうちの各テナント(31、32、...、35)が、1つ又は複数のアプリケーションコンポーネント(11、12、...、16)及び/又は前記計算リソース(2)のインフラストラクチャを共有することから、テナント(31、32、...、35)のグループ(4)全体を包含すること、及び/又は排除することを可能にするように構成されていることと、
前記複数のアプリケーションコンポーネント(10)のうちの各アプリケーションコンポーネント(11、12、...、16)に関連付けられた前記制約情報に応じて、前記計算リソース(2)上での前記アプリケーション(1)の有効な展開構成を決定することと、
前記決定された有効な展開構成に応じて前記計算リソース(2)上に前記アプリケーション(1)を展開することと、
を含み、前記有効な展開構成は、最適化方法によって決定され、前記最適化方法の第1のステップにおいて、前記複数のアプリケーションコンポーネント(10)のうちのアプリケーションコンポーネント(11、12、...、16)ごとに、複数の初期展開ユニット(U01、U02、U03、U01’、U02’、U03’)のうちの少なくとも1つの初期展開ユニットが生成され、前記複数の初期展開ユニット(U01、U02、U03、U01’、U02’、U03’)は、一連の展開レベル(DL0、DL1、DL2、DL3)の初期展開レベル(DL0)に関連付けられ、前記最適化方法の第2のステップにおいて、更なる展開レベル(DL1)に関連付けられた複数の更なる展開ユニット(U11、U12、U13、U14)が生成され、該複数の更なる展開ユニット(U11、U12、U13、U14)は、前記一連の展開レベル(DL0、DL1、DL2、DL3)における先行展開レベル(DL0)に関連付けられた複数の先行展開ユニット(U01、U02、U03、U01’、U02’、U03’)に応じて生成される、コンピューター実施方法。
【請求項2】
アプリケーションコンポーネント(11、12、...、16)とテナント(31、32、...、35)との組み合わせごとに制約情報を決定することは、
前記アプリケーションコンポーネント(11、12、...、16)に関連付けられた前記制約情報を、前記複数のアプリケーションコンポーネント(10)のうちの更なるアプリケーションコンポーネントに関連付けられた更なる制約情報から導出することであって、前記更なるアプリケーションコンポーネントは、前記アプリケーションコンポーネント(11、12、...、16)と階層関係にあること、又は
前記アプリケーションコンポーネント(11、12、...、16)に関連付けられた前記複数のテナント(3)のうちの前記テナント(31、32、...、35)から前記制約情報を受信すること、
を含む、請求項1に記載のコンピューター実施方法。
【請求項3】
前記最適化方法の前記第2のステップは、前記複数の先行展開ユニット(U01、U02、U03、U01’、U02’、U03’)を前記制約情報に応じて前記更なる展開レベル(DL1)において展開するための最小数の更なる展開ユニット(U11、U12、U13、U14)を決定することを含む、請求項1に記載のコンピューター実施方法。
【請求項4】
前記アプリケーション(1)の前記有効な展開構成は、全ての展開レベル(DL0、DL1、DL2、DL3)に関連付けられた展開ユニット(U01、U02、U03、U01’、U02’、U03’、U11、U12、U13、U14、U21、U22、U23、U24、U31)の総数を最小にすることによって最適化される、請求項1〜3のいずれか1項に記載のコンピューター実施方法。
【請求項5】
前記コンピューター実施方法は、
前記複数のテナント(3)のうちの各テナント(31、32、...、35)が、前記複数のアプリケーションコンポーネント(10)のうちの個々のアプリケーションコンポーネント(11、12、...、16)のモジュールを包含及び/又は排除することを可能にすることを含み、特に、前記モジュールは、前記個々のアプリケーションコンポーネント(11、12、...、16)に関連付けられたデータの暗号化及び/又は解読のための暗号モジュールである、請求項1〜4のいずれか1項に記載のコンピューター実施方法。
【請求項6】
前記コンピューター実施方法は、
前記複数のテナント(3)のうちの各テナント(31、32、...、35)が、前記複数のアプリケーションコンポーネント(10)のうちの前記アプリケーションコンポーネント(11、12、...、16)を包含及び/又は排除することを可能にすることを含む、請求項1〜5のいずれか1項に記載のコンピューター実施方法。
【請求項7】
有効な展開構成を決定することは、前記複数のアプリケーションコンポーネント(10)のうちの各アプリケーションコンポーネント(11、12、...、16)の複数のインスタンス(110、111、...、142)を前記制約情報に応じて生成することを含む、請求項1〜6のいずれか1項に記載のコンピューター実施方法。
【請求項8】
前記計算リソース(2)は、計算環境における複数の計算機(20)を含み、前記アプリケーション(1)を前記計算リソース(2)上に展開することは、前記複数のアプリケーションコンポーネント(10)のうちの各アプリケーションコンポーネント(11、12、...、16)の前記複数のインスタンス(110、111、...、142)のうちの少なくとも1つのインスタンス(110、111、...、142)を前記複数の計算機(20)のうちの少なくとも1つの計算機(21、22)上で実行することを含む、請求項7に記載のコンピューター実施方法。
【請求項9】
有効な展開構成を決定することは、前記少なくとも1つのアプリケーションコンポーネント(11、12、...、16)の前記複数のインスタンス(110、111、...、142)のうちの各インスタンス(110、111、...、142)を、前記制約情報に応じて前記複数の計算機(20)のうちの正確に1つの計算機(21、22)に割り当てることを含む、請求項8に記載のコンピューター実施方法。
【請求項10】
有効な展開構成を決定することは、各テナント(31、32、...、35)を、前記制約情報に応じて前記複数のインスタンス(110、111、...、142)のうちの正確に1つのインスタンス(110、111、...、142)に割り当てることを含む、請求項8又は9に記載のコンピューター実施方法。
【請求項11】
展開モデル(51、52、53、54、55)を、テナント(31、32、...、35)とアプリケーションコンポーネント(11、12、...、16)との組み合わせごとに準備することは、
前記テナント(31、32、...、35)に展開モデルセット(5)を準備することと、
前記テナント(31、32、...、35)が、前記展開モデルセット(5)の正確に1つの展開モデル(51、52、53、54、55)を前記複数のアプリケーションコンポーネント(10)のうちの各アプリケーションコンポーネント(11、12、...、16)に割り当てることを可能にすることと、
前記テナント(31、32、...、35)が、前記複数のアプリケーションコンポーネント(10)のうちのアプリケーションコンポーネント(11、12、...、16)ごとに、前記割り当てられる展開モデル(51、52、53、54、55)のための制約情報を決定することを可能にすることと、
を含む、請求項1〜10のいずれか1項に記載のコンピューター実施方法。
【請求項12】
前記テナント(31、32、...、35)が、正確に1つの展開モデル(51、52、53、54、55)を前記複数のアプリケーションコンポーネント(10)のうちの各アプリケーションコンポーネント(11、12、...、16)に割り当てることを可能にすることは、プライベート展開モデル(51)、パブリック展開モデル(52)、ホワイト展開モデル(53)、ブラック展開モデル(54)、及び/又はグレイ展開モデル(55)のうちの1つを割り当てることを含み、前記プライベート展開モデル(51)は、前記アプリケーションコンポーネント(11、12、...、16)を他の全てのテナント(31、32、...、35)と共有することを不可能にするように構成され、前記パブリック展開モデル(52)は、前記アプリケーションコンポーネント(11、12、...、16)を他の全てのテナント(31、32、...、35)と共有することを可能にするように構成され、前記ホワイト展開モデル(53)は、前記アプリケーションコンポーネント(11、12、...、16)を、前記テナント(31、32、...、35)によって指定されたホワイトリストの他の全てのテナント(31、32、...、35)と共有することを可能にするように構成され、前記ブラック展開モデル(54)は、前記アプリケーションコンポーネント(11、12、...、16)を、前記テナント(31、32、...、35)によって指定されたブラックリストの他の全てのテナント(31、32、...、35)と共有することを不可能にするように構成され、前記グレイ展開モデル(55)は、前記アプリケーションコンポーネント(11、12、...、16)を、前記テナント(31、32、...、35)によって指定された別のテナント(31、32、...、35)と共有することを可能又は不可能にするように構成されている、請求項11に記載のコンピューター実施方法。
【請求項13】
前記有効な展開構成を決定することは、前記複数のテナント(3)のうちのテナント(31、32、...、35)ごとに、前記複数のアプリケーションコンポーネント(10)のうちの各アプリケーションコンポーネント(11、12、...、16)のための必要とされるリソースを指定することを含み、前記必要とされるリソースは、特にメモリのサイズ及び/又はプロセッサの数を含む、請求項1〜12のいずれか1項に記載のコンピューター実施方法。
【請求項14】
前記有効な展開構成を決定することは、前記アプリケーション(1)を実行するための利用可能な計算リソースを指定することを含み、前記利用可能な計算リソースは、特にメモリのサイズ及び/又はプロセッサの数を含む、請求項1〜13のいずれか1項に記載のコンピューター実施方法。
【請求項15】
前記有効な展開構成は、前記制約情報に応じて必要とされるリソースを最小にすることによって、前記必要とされるリソース及び利用可能な計算リソースに応じて決定される、請求項1〜14のいずれか1項に記載のコンピューター実施方法。
【請求項16】
アプリケーション(1)を計算リソース(2)上に展開するためのシステムであって、前記アプリケーション(1)は、ユーザーの複数のテナント(3)にリモートで提供され、前記アプリケーション(1)は、複数のアプリケーションコンポーネント(10)を備え、該システムは、
前記計算リソース(2)と統合された少なくとも1つのプログラマブルプロセッサと、
前記計算リソース(2)と統合された機械可読媒体であって、少なくとも1つのプログラマブルプロセッサによって実行されると、該少なくとも1つのプログラマブルプロセッサに、請求項1〜15のいずれか1項に記載のコンピューター実施方法の動作を実行させる命令を記憶している、機械可読媒体と、
を備える、アプリケーションを計算リソース上に展開するためのシステム。
【請求項17】
アプリケーション(1)を計算リソース(2)上に展開するためのコンピュータープログラムであって、前記アプリケーション(1)は、ユーザーの複数のテナント(3)にリモートで提供され、前記アプリケーション(1)は、複数のアプリケーションコンポーネント(10)を備え、該コンピュータープログラムは、少なくとも1つのプロセッサによって可読である非一時的な記憶媒体であって、請求項1〜15のいずれか1項に記載のコンピューター実施方法の動作を実行するための、少なくとも1つのプロセッサによって実行される命令を記憶する非一時的な記憶媒体に記憶される、アプリケーションを計算リソース上に展開するためのコンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算リソース上にアプリケーションを展開するためのコンピューター実施方法、システム、及びコンピュータープログラム製品に関する。
【背景技術】
【0002】
ソフトウェアアズアサービス(SaaS)は、その基本アイデアがインターネットを介してアプリケーションを顧客にオンデマンドで提供することである配信モデルである。類似しているがそれよりも古い手法とは対照的に、SaaSは、規模の経済を利用するツールとしてマルチテナントを促進する。これは、アプリケーションの単一のインスタンスが複数の顧客を受け持つことを意味する。これらの顧客は、テナントとも呼ばれ、例えば、このアプリケーションを用いるためにサインアップした企業、クラブ、又は個人である。複数の顧客が同じインスタンスを用いるにもかかわらず、それらの顧客のそれぞれは、そのインスタンスが、それらの顧客にのみ指定されているという印象を有する。これは、テナントのデータを互いから分離することによってアーカイブされる。シングルテナントとは対照的に、マルチテナントは、同じインスタンス上で複数のテナントをホストする。
【0003】
しかしながら、マルチテナントアプリケーションの主な欠点のうちの1つは、顧客が、インフラストラクチャ、アプリケーションコード、又はデータを他のテナントと共有することを躊躇することである。これは、顧客が、他のテナントがシステムエラー、機能不良、又は破壊的行為に起因して自身のデータにアクセスするおそれがあることを恐れることに起因している。これまで、この問題は、単一のインスタンス上でテナントの分離を実施及び改善することによってのみ取り組まれてきた。
【発明の概要】
【0004】
本発明の目的は、ソフトウェアサービスを提供するための技術的にシンプルで、効果的で、特に費用効果が高い解決策であって、アプリケーションの情報セキュリティが業界標準と比較して高く、それによって、計算リソースの利用効率が最適化される解決策を提供することである。
【0005】
本発明の目的は、アプリケーションを計算リソース上に展開するためのコンピューター実施方法であって、前記アプリケーションは、ユーザーの複数のテナントにリモートで提供され、前記アプリケーションは、複数のアプリケーションコンポーネントを備え、該コンピューター実施方法は、
前記複数のテナントをカテゴリー化するためのテナントのグループセットを定義することと、
前記複数のテナントのうちの各テナントを、前記テナントの前記グループセットの、テナントの少なくとも1つのグループに割り当てることと、
展開モデルを、
前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントと、
前記複数のテナントのうちのテナントと、
の組み合わせごとに準備することと、
前記展開モデルに応じて、アプリケーションコンポーネントとテナントとの組み合わせごとに制約情報を決定することであって、前記展開モデルは、前記複数のテナントのうちの各テナントが、1つ又は複数のアプリケーションコンポーネント、及び/又は前記計算リソースのインフラストラクチャを共有することから、テナントのグループ全体を包含すること、及び/又は排除することを可能にするように構成されていることと、
前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに関連付けられた前記制約情報に応じて、前記計算リソース上での前記アプリケーションの有効な展開構成を決定することと、
前記決定された有効な展開構成に応じて前記計算リソース上に前記アプリケーションを展開することと、
を含む、アプリケーションを計算リソース上に展開するためのコンピューター実施方法によっても達成される。
【0006】
本発明の目的は、アプリケーションを計算リソース上に展開するためのコンピューター実施方法であって、前記アプリケーションは、ユーザーの複数のテナントにリモートで提供され、前記アプリケーションは、複数のアプリケーションコンポーネントを備え、該コンピューター実施方法は、
前記複数のテナントをカテゴリー化するためのテナントグループセットを定義することと、
前記複数のテナントのうちの各テナントを前記テナントグループセットの少なくとも1つのテナントグループに割り当てることと、
前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントごとに、該アプリケーションコンポーネントに関連付けられた展開モデルを前記複数のテナントのうちの各テナントに準備することと、
前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントごとに、該アプリケーションコンポーネントに関連付けられた前記展開モデルに応じて、前記複数のテナントのうちの各テナントから制約情報を受信することと、
前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに関連付けられた前記制約情報に応じて、前記計算リソース上での前記アプリケーションの有効な展開構成を決定することと、
前記決定された有効な展開構成に応じて、前記アプリケーションを前記計算リソース上に展開することと、
を含む、コンピューター実施方法によっても達成される。
【0007】
それによって、本発明によれば、有利には、混合型テナント(mixed-tenancy)とも呼ばれる、マルチテナントとシングルテナントとの間のハイブリッドな解決策によって、アプリケーションの動作コストを、複数のテナント間で計算リソースを共有することによって減少させることが可能である。アプリケーションのプロバイダーは、本明細書においては、オペレーター又はサービスプロバイダーと呼ばれる。例えば、データ分離、性能分離、又は性能構成を含むマルチテナントアウェアSaaSアプリケーションのための枠組みとは対照的に、本発明のコンピューター実施方法は、テナントが、自身のアプリケーションコンポーネントがどのように展開されるのか及び誰とともに展開されるのかの入力を与えることを可能にする。それによって、テナントは、同じアプリケーションコンポーネントインスタンスを共有しないので、同等の高いデータセキュリティが達成される。この混合型テナント展開は、インフラストラクチャ、特に計算リソースが、シングルテナント展開と比較して、より効率的に用いられるという利点を有する。計算リソースの効率的な使用は、アプリケーションを実行するのに必要な計算リソース、例えば、メモリの必要とされるサイズ及び/又はプロセッサの数が最小になることを意味する。同時に、マルチテナント展開と比較して、はるかに良好な情報セキュリティが達成される。特に、マルチテナントアプリケーションは、サービス指向型アーキテクチャの概念に基づいて構築されており、いわゆるコンポジットSaaSアプリケーションは、それぞれが原子的機能を提供する複数のアプリケーションコンポーネントからなる。代替的に、特に、モノリシックマルチテナントアプリケーションを提供することも可能である。特に、モノリシックソフトウェアシステムは、機能的に区別可能なコンポーネントが、アプリケーションからアーキテクチャ的に分離されるのではなく、アプリケーションと混交されることを意味する。例えば、本発明による方法は、顧客又はテナントが、特定のアプリケーションコンポーネントを共有したいか否か、又は複数のテナントのうちの他のどのテナントと共有したいのかを選ぶことを可能にすることを含む。このように、テナントは、自身のアプリケーションバリアントの展開に対する自身の要件を宣言することができる。テナントから受信された制約情報に基づくと、有利には、アプリケーションのための最も効率的な展開構成を同等の高速な方法で決定することが可能であり、それによって、必要とされる計算リソースが削減される。その上、本方法は、特に、複数のテナントのうちの各テナントが、同じ計算リソースを共有することからテナントグループ全体を包含すること及び/又は排除することを可能にすることを含む。特に、グループセットの定義は、特定の業界、例えば、情報技術(IT)業界、電気通信業界、及び/又は製薬業界の企業を表すグループの作成を含む。定義されたグループセットは、その後、テナントが操業する業界に従ってそれらのテナントを割り当てるのに用いることができる。グループセットは、例えば、業界の階層がそれらのグループセット上にマッピングされるように定義される。例えば、銀行業及び保険業はともに、金融業界の一部分であり、それによって、テナントは、銀行業界のみ又は金融業界全体を、同じ計算リソース又はアプリケーションを共有することから排除することが可能になる。特に、グループへのテナントの割り当ては、テナント自体が操業する全ての業界を排除することによって、ITインフラストラクチャ又は計算リソースを競争相手と共有することに関するテナントの制約要件の実現を可能にする。テナントが、アプリケーションのテナントにまだなっていない他のテナントを明示的に包含又は排除することを可能にすることが更に好ましく、顧客ベースが秘密に保たれる。特に、仮想テナントは、実際に存在するが、アプリケーションのテナントにはまだなっていないテナントであり、本方法は、この仮想テナントを、アプリケーションが展開された後に当該アプリケーションのテナントになる企業に置き換えることを含む。例えば、仮想テナントは、他の全てのテナントによって事前に指定された全ての制約を有効にしておくことによってテナントに変換される。それによって、有利には、プロバイダーは、自身の顧客(customers)又はテナントのアイデンティティについての情報が開示されることを回避することが可能である。好ましくは、展開モデルは、テナントが自身の展開又は特定のアプリケーションコンポーネント及び/又は展開レベルのための自身の展開制約を表すことが可能であるか否か、又はどのように可能であるのかを規定する展開制約の青写真である。例えば、展開モデルは、テナント、アプリケーションコンポーネント、及び/又は展開レベルの特定の組み合わせに関連付けられた制約情報を受信するためのインターフェースである。
【0008】
展開制約は、本明細書では制約情報と呼ばれ、計算リソースのインフラストラクチャを共有することができるか否か、又は他のどの単数若しくは複数のテナント及び/又はグループと共有することができるのかのテナントの記述である。テナントがアプリケーション全体の展開のための複数の展開制約を与えることが必要である。
【0009】
展開構成は、全てのテナントによって定義された全ての展開制約に当てはまる場合に有効である。
【0010】
好ましくは、展開モデルは、アプリケーションコンポーネント、テナント、及び一連の展開レベルのうちの展開レベルの組み合わせごとに準備され、この場合、制約情報は、アプリケーションコンポーネント、テナント、及び展開レベルのそのような組み合わせごとに決定される。
【0011】
好ましくは、計算リソースは、マルチテナントアプリケーション(インフラストラクチャ)の展開のための1つ又は複数のハードウェアリソース及び/又はソフトウェアリソースを含む。特に、この状況では、計算リソースの異なるレイヤは、インフラストラクチャのスタック又は計算リソースのインフラストラクチャスタックとして理解することもできる。
【0012】
好ましくは、制約情報は、アプリケーションコンポーネント、テナント、及び展開レベルの組み合わせごとに、展開モデルを用いることによって決定される。好ましくは、展開モデルは、複数のテナントのうちの各テナントが、1つ又は複数のアプリケーションコンポーネント及び/又は展開レベル(計算リソースのインフラストラクチャスタックのレベル)を共有することから、テナントグループ全体を包含し、及び/又は排除することを可能にするように構成されている。特に、展開レベル(DL)は、オペレーターのインフラストラクチャスタックのスライス又はレベルとも呼ばれるインフラストラクチャスタックの一部分として定義される。そのようなスライスは、好ましくは、インフラストラクチャスタックの1つ又は複数のレイヤをカプセル化する。本発明によれば、好ましくは、テナントが、アプリケーションコンポーネントの共有に関係した制約だけでなく、基礎を成すインフラストラクチャのための制約も表すことが可能である。そのような共有の一例は、セキュリティ意識の非常に高いテナントが、アプリケーションコンポーネントの指定されたインスタンスを必要とするが、基礎を成す仮想機械及び物理サーバーを特定の地理的領域からの他の顧客と共有する気はあるが、競争相手と共有する気はないというものである。
【0013】
本発明の好ましい実施形態によれば、アプリケーションコンポーネントとテナントとの組み合わせごとに制約情報を決定することは、
前記アプリケーションコンポーネントに関連付けられた前記制約情報を、前記複数のアプリケーションコンポーネントのうちの更なるアプリケーションコンポーネントに関連付けられた更なる制約情報から導出することであって、前記更なるアプリケーションコンポーネントは、前記アプリケーションコンポーネントと階層関係にあること、又は
前記アプリケーションコンポーネントに関連付けられた前記複数のテナントのうちの前記テナントから前記制約情報を受信すること、
を含む。
【0014】
それによって、有利には、全ての展開制約を記述するのに必要な作業を最小にすることが可能である。特に、テナントは、アプリケーションコンポーネントと階層関係にある更なるアプリケーションコンポーネントの制約情報を定義するだけでよい。好ましくは、複数のアプリケーションコンポーネント間の階層関係は、サイクルを有しない有向グラフに対応する。好ましくは、更なるアプリケーションコンポーネントは、アプリケーションコンポーネントよりも上位レベルに関連付けられ、例えば、更なるアプリケーションコンポーネントは、有向グラフの最上部により近い位置に対応する。本発明によれば、更なる制約情報は、階層内でトップダウン方向の継承によって制約情報から導出されることが好ましい。それによって、有利には、下位レベルのアプリケーションコンポーネント(子アプリケーションコンポーネント)に関連付けられた制約情報を更なる制約情報から導出する前に、上位レベルの更なるアプリケーションコンポーネント(親アプリケーションコンポーネント)が更なる制約情報に既に関連付けられていることを保証することが可能である。好ましくは、制約情報は、更なる制約情報に対して、等しい制限的な展開制約又はより制限的な展開制約に関係している。
【0015】
本発明の更に好ましい実施形態によれば、前記有効な展開構成は、最適化方法によって決定され、前記最適化方法の第1のステップにおいて、前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントごとに、複数の初期展開ユニットのうちの少なくとも1つの初期展開ユニットが生成され、前記複数の初期展開ユニットは、一連の展開レベルの初期展開レベルに関連付けられ、前記最適化方法の第2のステップにおいて、前記一連の展開レベルの更なる展開レベルごとに、更なる展開レベルに関連付けられた複数の更なる展開ユニットが生成され、該複数の更なる展開ユニットは、前記一連の展開レベルにおける先行展開レベルに関連付けられた複数の先行展開ユニットに応じて生成される。
【0016】
それによって、有利には、最適化されたマルチテナントアプリケーションをオペレーター及びテナントの双方に実現することが可能である。好ましくは、オペレーターにとっては、特に計算リソースのインフラストラクチャの利用に関するコスト及び作業が削減される。好ましくは、テナントにとっては、データセキュリティが同時に改善される。展開構成が作成されると、あらゆる展開レベルの1つ又は複数のインスタンスが存在する。これらのインスタンスは、展開ユニット(DU)と呼ばれる。展開構成は、アプリケーションコンポーネントインスタンスの最小数のユニット及び基礎を成すインフラストラクチャレイヤのみを利用することによって、最小コストのみをもたらす場合に最適である。好ましくは、第2のステップは、一連の展開レベル全体について繰り返される。
【0017】
本発明の更に好ましい実施形態によれば、前記最適化方法の前記第2のステップは、前記複数の先行展開ユニットを前記制約情報に応じて前記更なる展開レベルにおいて展開するための最小数の更なる展開ユニットを決定することを含む。
【0018】
それによって、有利には、最適化方法を用いることによって効率的な方法で最適なマルチテナントアプリケーションを実現することが可能である。好ましくは、複数の先行展開ユニットは、更なる展開レベルに関係した、又は更なる展開レベルと先行展開レベルのうちの1つ若しくは複数とに関係したアプリケーションコンポーネント及びテナントの全ての組み合わせに関連付けられた全ての展開制約又は制約情報に応じて、更なる展開レベルにおいて展開される。
【0019】
本発明の更に好ましい実施形態によれば、前記アプリケーションの前記有効な展開構成は、全ての展開レベルに関連付けられた展開ユニットの総数を最小にすることによって最適化される。
【0020】
それによって、有利には、比較的短い時間期間内に最適な展開構成を提供することが可能であり、この展開構成においてはテナントの全ての制約が考慮される。
【0021】
本発明の好ましい実施形態によれば、前記コンピューター実施方法は、
前記複数のテナントのうちの各テナントが、前記複数のアプリケーションコンポーネントのうちの個々のアプリケーションコンポーネントのモジュールを包含及び/又は排除することを可能にすることを含み、特に、前記モジュールは、前記アプリケーションコンポーネントに関連付けられたデータの暗号化及び/又は解読のための暗号モジュールである。
【0022】
それによって、有利には、テナントが、例えば、異なるモジュール又は技術的解決策を包含及び/又は排除することによって、異なる技術的実施態様間で選択を行うことを可能にすることができる。モジュールは、例えば、アプリケーションコンポーネントのインスタンス又はアプリケーションコンポーネントの選択可能な特徴である。暗号モジュールを設けることによって、有利には、テナント又はテナントグループが、データに安全にアクセスすること、アプリケーションコンポーネントを安全に用いること、及び/又は互いに安全に通信することを可能にすることができる。特に、暗号モジュールを用いると、未認可のアクセスに対する情報セキュリティを更に高めることが可能である。例えば、暗号強度を高めることによって、テナントの情報又はデータへのアクセスを得る可能性を非常に低くするか又は技術的に不可能にさえするように、未認可の人の計算リソースの需要を増加させることが可能である。
【0023】
本発明の更に好ましい実施形態によれば、前記コンピューター実施方法は、
前記複数のテナントのうちの各テナントが、前記複数のアプリケーションコンポーネントのうちの前記個々のアプリケーションコンポーネントを包含及び/又は排除することを可能にすることを含む。
【0024】
それによって、有利には、複数のテナントのうちの各テナントに、各テナントの要件を個々に満たすような方法で展開されるソフトウェアアプリケーションを提供することが可能である。
【0025】
本発明の更に好ましい実施形態によれば、有効な展開構成を決定することは、前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントの複数のインスタンスを前記制約情報に応じて生成することを含む。
【0026】
それによって、有利には、複数のテナントのうちの各テナントが、アプリケーションの複数のアプリケーションコンポーネントのうちの或るアプリケーションコンポーネントが共有されるか否か、及び/又は他のどのテナント若しくはテナントグループと共有されるのかを個々に指定することを可能にすることができる。
【0027】
本発明の更に好ましい実施形態によれば、前記計算リソースは、計算環境における複数の計算機を含み、前記アプリケーションを前記計算リソース上に展開することは、前記複数の計算機のうちの各アプリケーションコンポーネントの前記複数のインスタンスのうちの少なくとも1つのインスタンスを前記複数の計算機のうちの少なくとも1つの計算機上で実行することを含む。有効な展開構成を決定することは、前記少なくとも1つのアプリケーションコンポーネントの前記複数のインスタンスのうちの各インスタンスを、前記制約情報に応じて前記複数の計算機のうちの正確に1つの計算機に割り当てることを含む。
【0028】
それによって、有利には、決定された展開構成に従って、計算環境の異なる計算機にわたって、アプリケーションコンポーネントインスタンスを多くの異なる方法で分散させることが可能である。特に、必要とされる計算リソース、例えば、プロセッサの数及び/又はメモリの量を最小にするように、複数の有効な展開構成から1つの特定の展開構成が選択される。計算機は、物理的な計算機又は仮想的な計算機のうちの少なくとも一方であり、それによって、計算環境は、物理的な計算環境又は仮想的な計算環境のうちの少なくとも一方である。
【0029】
本発明の更に好ましい実施形態によれば、有効な展開構成を決定することは、各テナントを、前記制約情報に応じて前記複数のインスタンスのうちの正確に1つのインスタンスに割り当てることを含む。
【0030】
それによって、有利には、各テナントを、アプリケーションコンポーネントの複数のインスタンスのうち、そのテナントがそのアプリケーションコンポーネント用に指定した制約を満たすインスタンスに個々に割り当てることが可能である。複数のインスタンスは、特に、1つの特定のアプリケーションコンポーネントに割り当てられ、更なるアプリケーションコンポーネントは、更なる複数のインスタンスを有する。
【0031】
本発明の好ましい実施形態によれば、展開モデルを、テナントとアプリケーションコンポーネントとの組み合わせごとに準備することは、
前記テナントに展開モデルセットを準備することと、
前記テナントが、前記展開モデルセットの正確に1つの展開モデルを前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに割り当てることを可能にすることと、
前記テナントが、前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントごとに、前記割り当てられる展開モデルのための制約情報を決定することを可能にすることと、
を含む。
【0032】
本発明の代替の実施形態によれば、前記複数のテナントのうちの各テナントに、前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントごとに、該アプリケーションコンポーネントに関連付けられた展開モデルを準備することは、
前記テナントが、前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに正確に1つの展開モデルを割り当てることを可能にすることと、
前記テナントが、前記複数のアプリケーションコンポーネントのうちのアプリケーションコンポーネントごとに、前記割り当てられた展開モデルのための制約情報を決定することを可能にすることと、
を含む。
【0033】
それによって、有利には、複数のテナントのうちの各テナントが、アプリケーションの複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに対する制約を個々に記述することを可能にすることができる。特に、展開モデルを用いると、テナントは、他のテナント、テナントグループ、及び/又は或るテナントのユーザーを、特定のアプリケーションコンポーネントを用いることから包含し、及び/又は排除することが可能になる。テナントのユーザーは、例えば、暗黙的にテナントを包含若しくは排除することによって、又はテナントを通じて包含又は排除される。例えば、テナントは、アプリケーションコンポーネントごとに、テナントがアプリケーションコンポーネントのアプリケーションインスタンスを実行させたい正確に1つの展開モデルを選択する。それによって、テナントは、2つの展開レベルのための展開モデルを定義するために、2つのそのような選択を行うことが好ましい。これらの2つの展開レベルは、インスタンスレベルと、計算機レベル、特に仮想機械レベルとを含む。展開モデルは、複数又は全てのアプリケーションコンポーネントに適用することができ、テナントは、非常に機微なデータを処理する1つ又は複数の特定のアプリケーションコンポーネントを除いて、アプリケーション全体が他のテナントと共有されることを指定することが可能になる。非常に機微なデータを処理するアプリケーションコンポーネントは、好ましくは、以下の展開モデルの別のもので展開される。展開レベルの数は、上記で説明したような2つの展開レベルに限定されるものではない。例えば、本発明の別の好ましい実施形態によれば、展開レベルの数は、計算リソースのサービスプロバイダー又はオペレーターによって選択される。それによって、有利には、例えば、テナントに提供されるサービスを制限することが可能であり、例えば、1つの展開レベルのみ、具体的には仮想機械レベルを提供することが可能である。
【0034】
本発明の好ましい実施形態によれば、前記複数の展開モデルのうちの正確に1つの展開モデルを前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに割り当てることは、プライベート展開モデル、パブリック展開モデル、ブラック展開モデル、ホワイト展開モデル、及び/又はグレイ展開モデルのうちの1つを割り当てることを含み、前記プライベート展開モデルは、前記アプリケーションコンポーネントを他の全てのテナントと共有することを不可能にするように構成され、前記パブリック展開モデルは、前記アプリケーションコンポーネントを他の全てのテナントと共有することを可能にするように構成され、前記ブラック展開モデルは、前記アプリケーションコンポーネントを、前記テナントによって指定されたブラックリストの他の全てのテナントと共有することを不可能にするように構成され、前記ホワイト展開モデルは、前記アプリケーションコンポーネントを、前記テナントによって指定されたホワイトリストの他の全てのテナントと共有することを可能にするように構成され、前記グレイ展開モデルは、前記アプリケーションコンポーネントを、前記テナントによって指定された別のテナントと共有することを可能又は不可能にするように構成されている。
【0035】
それによって、有利には、複数のテナントのうちの各テナントが、アプリケーションの複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントに対する制約を個々に記述することを可能にすることができる。例えば、テナント又は顧客の要件は、いわゆるウェブオントロジー言語(OWL)モデル及びリソース記述フレームワーク(RDF)に基づいてモデル化されるか、又は代替的に、顧客が5つの異なる展開モデル間で選択を行うことを可能にする情報科学におけるオントロジーの他の概念に基づいてモデル化される。各展開モデルは、テナントが、他のどのテナント若しくはテナントグループと展開されることを所望しているのか、及び/又はどのような方法で展開されることを望んでいるのかを指定することを可能にする。特に、展開は、別のテナント又は他のテナントグループの排除又は包含を含む。各テナントグループは、複数の他のグループをカプセル化することができる。特に、グループ化は、例えば、情報セキュリティにおいて、テナントの要件を記述する一般的な方法として用いられ、異なる顧客要件は、グループ化に基づいて実現することができる。展開モデルは、各テナント又は各顧客が、他のどのテナント又はテナントグループとアプリケーションコンポーネント及び/又は計算リソース、例えば、物理的な計算機、仮想的な計算機の共有を所望しているのか又は所望していないのかを明示的に指定することを可能にする。
【0036】
本発明の更に好ましい実施形態によれば、前記有効な展開構成を決定することは、前記複数のテナントのうちのテナントごとに、前記複数のアプリケーションコンポーネントのうちの各アプリケーションコンポーネントのための必要とされるリソースを指定することを含み、前記必要とされるリソースは、特にメモリのサイズ及び/又はプロセッサの数を含む。また、前記有効な展開構成を決定することは、前記アプリケーションを実行するための利用可能な計算リソースを指定することを含み、前記利用可能な計算リソースは、特にメモリのサイズ及び/又はプロセッサの数を含む。前記有効な展開構成は、前記制約情報に応じて前記必要とされるリソースを最小にすることによって、前記必要とされるリソース及び前記利用可能なリソースに応じて決定される。
【0037】
それによって、有利には、計算リソース上でのアプリケーションの展開に必要とされるリソースを最適化することが可能であり、それによって、アプリケーションの動作コストが、複数のテナント間で計算リソースを共有することによって削減される。その上、各テナントは、それらのテナントのアプリケーションコンポーネントがどのように展開されるのか及び誰とともに展開されるのかの入力を与えることが個々に可能になる。それによって、テナントは、同じアプリケーションコンポーネントインスタンスを共有しないので、同等の高いデータセキュリティがアーカイブされる。本発明によると、シングルテナント展開に対して、インフラストラクチャ、特に計算リソースをより効率的に用いることができるという更なる利点が達成され、それによって、マルチテナント展開と比較して、はるかに良好な情報セキュリティが達成される。
【0038】
本発明の目的は、アプリケーションを計算リソース上に展開するためのシステムであって、前記アプリケーションは、ユーザーの複数のテナントにリモートで提供され、前記アプリケーションは、複数のアプリケーションコンポーネントを備え、該システムは、
前記計算リソースと統合された少なくとも1つのプログラマブルプロセッサと、
前記計算リソースと統合された機械可読媒体であって、少なくとも1つのプログラマブルプロセッサによって実行されると、該少なくとも1つのプログラマブルプロセッサに、請求項1〜7のいずれか1項に記載のコンピューター実施方法の前記動作を実行させる命令を記憶している、機械可読媒体と、
を備える、アプリケーションを計算リソース上に展開するためのシステムによっても達成される。
【0039】
本発明の目的は、アプリケーションを計算リソース上に展開するためのコンピュータープログラム製品であって、前記アプリケーションは、ユーザーの複数のテナントにリモートで提供され、前記アプリケーションは、複数のアプリケーションコンポーネントを備え、該コンピュータープログラム製品は、少なくとも1つのプロセッサによって可読である非一時的な記憶媒体であって、請求項1〜7のいずれか1項に記載のコンピューター実施方法の前記動作を実行するための、少なくとも1つのプロセッサによって実行される命令を記憶する非一時的な記憶媒体を含む、アプリケーションを計算リソース上に展開するためのコンピュータープログラム製品によっても達成される。
【0040】
本発明のこれらの特性、特徴、及び利点、並びに他の特性、特徴、及び利点は、添付図面とともに取り入れられた以下の詳細な説明から明らかになる。添付図面は、本発明の原理を例として示している。この説明は、例示のためにのみ与えられており、本発明の範囲を限定するものではない。以下で引用する参照図は、添付図面を指している。
【図面の簡単な説明】
【0041】
図1】本発明によるシステムの一実施形態を概略的に示す図である。
図2】複数の計算機上の複数のアプリケーションコンポーネントのインスタンスの概略分散図である。
図3】本発明のコンピューター実施方法を示すエンティティ関係図である。
図4】本発明のコンピューター実施方法を示す流れ図である。
図5】本発明のコンピューター実施方法によるアプリケーションインスタンスの展開を示す概略図である。
図6】展開モデルの状態を概略的に示す図である。
図7】有効な展開構成を概略的に示す図である。
図8】最適化方法を概略的に示す図である。
【発明を実施するための形態】
【0042】
本発明を、特定の実施形態に関して幾つかの図面を参照して説明するが、本発明は、これらの実施形態及び図面に限定されるものではなく、特許請求の範囲によってのみ限定される。説明する図面は、概略的なものにすぎず、限定的なものではない。図面において、要素のうちの幾つかのサイズは、例示の目的で誇張されている場合があり、一律の縮尺でない場合がある。
【0043】
個数が特定されていない名詞については、特に指定がない限り、単数のものだけでなく複数のものも含む。
【0044】
さらに、本明細書及び特許請求の範囲における「第1」、「第2」、「第3」等の用語は、類似の要素を区別するために用いられ、必ずしも連続的な順序又は時間的な順序を記述するために用いられているわけではない。そのように用いられる用語は、適切な状況下では交換可能であり、本明細書において説明する本発明の実施形態は、本明細書において説明又は図示する順序以外の順序で動作することが可能である。
【0045】
図1には、本発明によるシステムの一実施形態が概略的に示されている。このシステムは、複数のテナント3、特に第1のテナント31、第2のテナント32、第3のテナント33、及び第4のテナント34とディスパッチャー23を介してインターラクトするようにプログラムされている。このディスパッチャーは、特に、サーバー、例えばドメインネームサーバー(DNS)を用いることによって、テナント31、32、33、34のユーザーを、そのテナントが割り当てられているアプリケーションコンポーネント11、12、13、14、15のうちの1つのインスタンス上に導くように構成されている。このシステムは、当該システムの計算リソース2と統合された複数の計算機20を備える。この計算リソースは、例えば、物理的な計算環境又は仮想的な計算環境である。特に、複数の計算機20のうちの第1の計算機21及び第2の計算機22は、例えば、物理的な計算機又は仮想的な計算機であり、仮想的な計算機は、物理的な計算機をシミュレーションするものである。アプリケーション1は、複数のアプリケーションコンポーネント10を備え、例えば、複数のアプリケーションコンポーネント10は、第1のアプリケーションコンポーネント11、第2のアプリケーションコンポーネント12、第3のアプリケーションコンポーネント13、第4のアプリケーションコンポーネント14、及び第5のアプリケーションコンポーネント15を含む。例えば、計算リソース2上でのアプリケーション1の展開のための展開構成を決定することは、複数のテナント30の各テナント31、32、33、34によって指定される次の制約のうちの1つを含む。第1に、第1のアプリケーションコンポーネント11、第2のアプリケーション12コンポーネント、第3のアプリケーションコンポーネント13、又は第4のアプリケーションコンポーネント14のいずれも、どのクリティカルデータも扱っておらず、したがって、複数のテナント30の各テナント31、32、33、34は、上記第1のアプリケーションコンポーネント〜第4のアプリケーションコンポーネント31、32、33、34のうちの1つのインスタンス110、...、142(図2参照)を共有するように指定する。第2に、第5のアプリケーションコンポーネント15は、非常に機微なデータを扱う。例えば、第1のテナント31及び第2のナント32はそれぞれ、第5のアプリケーションコンポーネント15のそれら自体の指定されたインスタンスを有するように指定する。第3のテナント33は、第5のアプリケーションコンポーネント15のインスタンス(図示せず)を競争相手と共有したくないことを指定する。第4のテナント34は、第5のアプリケーションコンポーネント15のインスタンスをヨーロッパに位置するテナントとのみ共有することを望む。第3に、第5のテナント35は、これらの複数のアプリケーションコンポーネント10のうちのいずれもが複数のテナント3のうちの他の任意のテナント31、32、33、34と共有される場合がないことを指定する。このように、第5のテナント35は、シングルテナントアプリケーションを用いる。それによって、例えば、第5のテナント35は、複数の計算機20のうちの第2の計算機22に割り当てられ、ここには複数のテナント3のうちの他のテナント31、32、33、34は、割り当てられない。
【0046】
図2には、複数の計算機20上にある複数のアプリケーションコンポーネント10のインスタンス110、...、142の分散の図が概略的に示されている。複数のアプリケーションコンポーネント10の複数のインスタンス110、...、142、例えば、第1のアプリケーションコンポーネント11の第1のインスタンス110、111、112、113、114、第2のアプリケーションコンポーネント12の第2のインスタンス120、121、122、第3のアプリケーションコンポーネント13の第3のインスタンス130、131、及び第4のアプリケーションコンポーネント14の第4のインスタンス140、141、142は、複数のテナント3によって指定された制約情報に応じて、複数の計算機20、例えば、第1の計算機21及び第2の計算機22上に展開される。上記複数のインスタンス110、...、142は、展開構成に従って複数の計算機20上に分散される。この展開構成は、複数のテナント3のうちのテナント31、32、...、35から受信された制約情報に応じて決定される。この制約情報に応じて、複数のアプリケーションコンポーネント10の複数のインスタンス110、...、142がアプリケーション1によって生成される。例えば、第1のアプリケーションコンポーネント11については、5つの第1のインスタンス110、111、112、113、114が生成される。各テナントは、複数のアプリケーションコンポーネント10のアプリケーションコンポーネントごとに1つのインスタンスのみを用いることが可能になる。
【0047】
図3には、本発明のコンピューター実施方法の例示のためのエンティティ関係図が示されている。このエンティティ関係図は、次のエンティティのための一例として説明される。すなわち、次のエンティティとは、複数のテナント3のうちのテナント31、テナント31の複数のユーザー(図示せず)のうちのユーザー310、グループセット4のうちのグループセット41のグループ410、アプリケーション1、複数のアプリケーションコンポーネント10のうちのアプリケーションコンポーネント11、複数のアプリケーションインスタンス110、...、115のうちの或るアプリケーションインスタンスである。複数のアプリケーションインスタンス110、...、115は、複数のテナント3の全てのテナント31、32、...、35によって指定された制約情報に応じて決定される。図3の説明は、それに応じて、複数の上記エンティティにも適用される。
【0048】
シングルテナントアプリケーションとは対照的に、マルチテナントアプリケーションは、例えば、複数のテナント3によって同時に用いられる。テナント31は、例えば、アプリケーション1を用いるためにサインアップした特定の企業である。複数のテナント3のうちのテナント31は、アプリケーション1を用いる少なくとも1人のユーザー310を有し、例えば、ユーザー310は、上記企業の従業員を表し、各ユーザー310は、1つの特定の企業に所属する。ユーザー310と企業との間のこの関係は、テナント31及びユーザー310というエンティティ並びに第1の関係1’によって図3に示されている。この関係は、ユーザー310がテナント31に所属することを意味している。アプリケーション1は、複数のアプリケーションコンポーネント10からなり、図3には、アプリケーションコンポーネント11が示されている。特に、そのようなアプリケーション1は、コンポジット(composite)SaaSアプリケーション1とも呼ばれる。情報セキュリティ及び性能の要件601に関するテナント31の個々の要件を満たすために、テナント31は、参照符号5’を有する第5の関係によって示されるように、アプリケーション1からのアプリケーションコンポーネント11を必要とする。アプリケーション1は、参照符号2’によって示されるように、少なくともアプリケーションコンポーネント11からなる。しかしながら、複数のアプリケーションコンポーネント10のうちのあらゆるアプリケーションコンポーネント11が、複数のテナント3のうちのあらゆるテナント31、32、...、35によって用いられるとは限らない。なぜならば、各テナント31、32、...、35は、アプリケーション1に対して異なる機能要件を有するからである。図3では、エンティティテナント31、アプリケーションコンポーネント11、アプリケーション1、並びにアプリケーション1がアプリケーションコンポーネント11からなることを意味する第2の関係2’及びテナント31がアプリケーションコンポーネント11を必要とすることを意味する第5の関係5’が、そのような機能要件を示している。さらに、テナント31は、当該テナント31が、特定のアプリケーションコンポーネント11を用いるのに、計算リソース2の計算機21のどれくらいの量を必要とするのかを指定しなければならない。これは、図3における第5の関係5’とともに特性要求性能601によって示される。アプリケーションコンポーネント11は、計算機21によってまだ実行可能でない1つの原子的機能を表したものである。テナント31がアプリケーションコンポーネント11を用いることを可能にするには、アプリケーションコンポーネント11を展開する必要がある。これは、例えば、アプリケーションコンポーネント11のインスタンス110が計算機21上のアプリケーション1によって生成されることを意味し、アプリケーションコンポーネント11のインスタンス110は、計算リソース2の計算機21において動作する。特に、アプリケーションコンポーネント11の展開したものは、アプリケーションコンポーネント11のインスタンス110と呼ばれる。したがって、アプリケーションコンポーネント11について、アプリケーションコンポーネント11の複数のインスタンス110、...、114(図2参照)が、複数のテナント3の各テナント31、32、...、35によって指定された制約情報に応じて生成され、これらの複数のインスタンス110、...、114のインスタンス110が、複数の計算機20のうちの特定の計算機21によって展開される。例えば、計算機21は、仮想的な計算機又は物理的な計算機である。複数の計算機20は、いわゆるクラウドインフラストラクチャ(laaS)内に展開され、各計算機21は、決定された展開構成に応じて複数のアプリケーションコンポーネント10のうちのアプリケーションコンポーネント11の1つ又は複数のインスタンス110、...、114をホストするように構成されている。複数の計算機20のうちの各計算機21は、オファードリソース(offered resource:提供リソース)603と呼ばれる特性を有し、このオファードリソース603という特性は、計算機21が、複数のアプリケーションコンポーネント10のうちのアプリケーションコンポーネント11の複数のインスタンス110、...、114をプロビジョニングするのに、計算リソース2のどれくらいの量を提供することができるのかを表す。オファードリソース603が測定される単位は、好ましくは、第5の関係5’による性能要件601に関連付けられた上述のリソースと同じである。例えば、性能要件601に関連付けられたリソース又はオファードリソース603の尺度は、計算リソース2のメモリのサイズ及び/又はプロセッサの個数である。図3では、計算機21のオファードリソース603は、第4の関係4’によって表されるように、アプリケーションインスタンス110を実行するために提供され、このアプリケーションインスタンス110は、参照符号3’を有する第3の関係によって表されるようにアプリケーションコンポーネント11によって提供される。
【0049】
テナント31は、テナント31が有する展開モデル5に基づいて複数のアプリケーションコンポーネント10のうちのアプリケーションコンポーネント11の複数のインスタンス110、...、114のうちのインスタンス110に割り当てられる。これは、第6の関係6’を用いて示されている。特に、展開モデル5は、プライベート(private)展開モデル51、パブリック(public)展開モデル52、ホワイト(white)展開モデル53、ブラック(black)展開モデル54、又はグレイ(gray)展開モデル55のうちの1つを含む。
【0050】
プライベート展開モデル51によれば、アプリケーションコンポーネント11のインスタンスは、例えば、第13の関係13’に見られるように、特に単一のテナント31について展開される。このインスタンス11は、他のテナント32、33とは共有されず、したがって、展開されるアプリケーションコンポーネント11は、マルチテナントをサポートする必要はない。この点において、アプリケーション1全体は、純粋なマルチテナントアプリケーションでなくなっている。例えば、テナント31は、全てのアプリケーションコンポーネント11がプライベート展開モデル51に従って展開されることを要求することも可能である。
【0051】
パブリック展開モデル52によれば、複数のテナント3のうちの全てのテナント31、...、35は、インスタンス110を共有することが可能になる。複数のテナント3のうちのテナント31、...、35は、テナント31がどのテナントとともに展開されるかについて影響を与えない。これは、計算リソースのオペレーター又はサービスプロバイダーがアプリケーション1を計算リソース2上に展開するための最も簡単な方法であるので、通常、テナント31にとって最も安価な解決策でもある。それによって、有利には、運用コストを共有することが可能である。
【0052】
ホワイト展開モデル53は、テナント31がアプリケーションコンポーネント11のインスタンス110を他のどのテナント32、33、...、35と共有するのかをテナント31が指定することを可能にする。例えば、企業は、個々の部門がインスタンス110を共有するが、どの外部のテナント32、33、...、35も同じインスタンス110を用いることを認めないことを要求する。さらに、ホワイト展開モデル53は、ユーザー310と、他のユーザー(図示せず)、他のテナント32、33、...、35又はテナントグループセット41、42、...、43の別のグループ411、...、412との間のコラボレーションの管理を可能にする。ホワイト展開モデル52は、テナント31が、コラボレーションを可能にするアプリケーションインスタンス110の共有を指定することを可能にするのに用いることができる。図3において、関係7’は、テナント31がグループ410に所属することを示している。テナント31は、第8の関係8’に見られるように、ホワイト展開モデル53に関連付けられた制約情報を指定することが可能になる。これは、テナント31が、アプリケーションコンポーネント11のための制約情報においてテナント31によって指定されたとおりに他のテナントのグループ410とともに展開されることを意味する。
【0053】
ブラック展開モデル54によれば、テナント31は、当該テナント31がともに展開されたくない他のテナント32、33、...、35を指定することが可能になる。例えば、これは、テナントグループ410を排除することによって行われる。これは、第9の関係9’によって示されている。グループ410は、例えば、特定の法的エリア、国、産業、又は特定の業界の全てのテナント31、32、...、35を表す。ブラック展開モデル54を用いて遂行することができるテナント31によって指定された制約は、競争相手が具体的に誰であるのかを指定することなく、テナント31が競争相手とともに展開されないように要求することである。図3において、これは、第9の関係9’又は第10の関係10’によって示されている。なぜならば、これらの第9の関係9’及び第10の関係10’はともに、テナント31が、アプリケーションコンポーネント11について、どのグループ410とともに展開されたくないのか、特に、どのグループ410が排除されるのかを表しているからである。
【0054】
グレイ展開モデル55は、テナント31がアプリケーションコンポーネント11のインスタンス110を共有したい相手及びテナント31がアプリケーションコンポーネント11のインスタンス110を共有したくない相手をテナント31が明示することを可能にする。これは、グループ410を明示的に排除するとともに含めることによって行うことができる。例えば、テナント31は、競争相手とともに展開されたくなく、加えて、テナント31は、ヨーロッパデータプライバシー法(European Data Privacy Act)に従っている顧客とともにのみ展開されたい。
【0055】
サービスプロバイダーが、運用コストを節約するとともにそのような要求を満たすことを可能にするために、最適な展開が、複数のテナント3及びオファードリソース603から受信された制約情報に基づいて決定される。例えば、図3の略図によれば、最適な展開は、アプリケーションコンポーネント11のインスタンス110、計算機21、並びに第12の関係12’及び第4の関係4’に応じて決定される。第12の関係12’は、テナント31がアプリケーションインスタンス110を用いることを示し、第4の関係4’は、アプリケーションインスタンス110が計算機21上で実行されることを示している。
【0056】
図4には、本発明のコンピューター実施方法による展開を示す流れ図が示されている。
【0057】
第1のステップ701において、展開モデル5(図3参照)が決定される。このモデルは、各テナント31、32、...、35(図5参照)がアプリケーション1に対する制約を個々に記述することを可能にする。この制約は、例えば、テナント31、32、...、35が、他のどのテナント32、33、...、35又は他のどのテナントのグループ410、...、412と、アプリケーションコンポーネント11、12、...、16(図5参照)の同じインスタンス110、...、142(図2参照)を共有すること又は同じ計算機21、22(図1参照)を共有することを許容するのかの仕様を含む。
【0058】
第2のステップ702において、グループセット4(図5参照)が、例えば、サービスプロバイダーの計算リソース2によって定義される。これらのグループセット4は、例えば、テナント31、32、...、35が操業する業界に従って定義される。グループ410、...、412のそのような業界に基づく定義及び定義されたグループ410、...、412へのテナント31、32、...、35の割り当ては、テナント31、32、...、35をグループ化する1つの可能な方法にすぎない。このグループ化は、例えば、対象としているマーケットに依存する。第2のステップ702は、サービスプロバイダー又はオペレーターが、テナント31、32、...、35にどれだけの数のグループセット4を提供したいのか及びどのグループセット4を提供したいのかを定義することを可能にする。例えば、グループセット4のうちのセット41のグループ410、411、...、412は、セット41のグループ410、411、...、412のサブセットであるサブグループ4100、4101、...、4102を有する。グループセット4をこのように構造化する機能によって、サービスプロバイダーは、テナント31、32、...、35をグループ410、411、...、412又はサブグループ4100、4101、...、4102にはるかに微細な粒度でカテゴリー化するか又は割り当てることが可能になる。別の例では、テナント31、32、...、35は、特定の業界に所属する或る特定のサブ業界、特に、ともに金融業界の一部分である銀行業界又は保険業界の一部分である。しかしながら、テナント31、32、...、35が特定のグループ410を含めるか又は排除することを指定すると、この特定のグループ410の全てのサブグループ4100、4101、...、4102も、それぞれ包含又は排除される。
【0059】
第3のステップ703において、テナント31、32、...、35は、サービスプロバイダーによって、グループセット4の少なくとも1つのグループ410にグループ化される。特に、アプリケーション1を用いたい全てのテナント31、32、...、35はグループ化される。テナント31、32、...、35は、それによって、グループセット41、42、...、43ごとの少なくとも1つのグループに割り当てられる。これは、あらゆるテナント31、32、...、35が、特定のグループセット41、42、...、43を実現するグループセット4の少なくとも1つのグループに所属しなければならないことを意味する。
【0060】
第4のステップ704において、アプリケーション1の展開構成を決定する制約が定義される。この展開構成は、2つの展開レベル1000、2000について、複数のテナント3によって指定された制約情報に基づいて決定される。特に、2つの展開レベル1000、2000は、インスタンスレベル1000及び計算機レベル2000を含む。インスタンスレベル1000において、複数のテナント3のうちの各テナント31、32、...、35は、複数のアプリケーションコンポーネント10のうちの各アプリケーションコンポーネント11、12、...、16について、テナント31、32、...、35が、他のどのテナント31、32、...、35若しくはグループセット4のうちのセット41、42、...、43のグループ410、411、...、412と、アプリケーションコンポーネント11、12、...、16のインスタンス110、...、142の共有を許容するのか、又はテナント31、32、...、35が別のテナント31、32、...、35とインスタンス110、...、142を共有したいか否かを指定する。複数のテナント3のうちの全てのテナント31、32、...、35がそれらの制約を指定した後、複数のアプリケーションコンポーネント10のうちの各アプリケーションコンポーネント11、12、...、16の複数のインスタンス110、...、142及び/又はアプリケーション1のための展開構成が、複数のテナント3のうちの各テナント31、32、...、35から受信された制約情報に応じて決定される。計算機レベル2000、例えば仮想機械レベル2000において、複数のテナント3のうちの各テナント31、32、...、35は、これらのテナントが用いるインスタンスが、他のどのテナント31、32、...、35と複数の計算機20のうちの計算機21、22を共有することができるのかを指定する。これは、例えば、2つのインスタンス110、...、142を用いる全てのテナント31、32、...、35が、同じ計算機21、22を共有することが許容可能であることを指定している場合に、特に、インスタンス110、...、142がどのアプリケーションコンポーネントに所属するのかにかかわらず、これらのインスタンスが、複数の計算機20のうちの同じ計算機21、22上にのみ展開されることを意味する。したがって、本発明の方法によれば、各テナント31、32、...、35は、2つのレベル1000、2000のレベルごとに1回、アプリケーションコンポーネント11、12、...、16ごとに2回、アプリケーション1の展開に関する制約を表すことが可能になることが特に好ましい。
【0061】
第5のステップ705において、制約情報が、有効な展開構成を決定するのに用いられる。この制約情報は、第4のステップ704における複数のアプリケーションコンポーネント10のうちの各アプリケーションコンポーネント11、12、...、16について、複数のテナント3のうちの各テナント31、32、...、35から受信される。特に、この有効な展開構成は、計算リソース2を共有するか否かを問わず、2つのレベル1000、2000のそれぞれの各アプリケーションコンポーネント11、12、...、16についての各テナント31、32、...、35の仕様に応じて決定される。
【0062】
第6のステップ706において、アプリケーション1は、第5のステップ705において指定された展開構成に応じて計算リソース2上に展開される。計算リソース2上でのアプリケーション1の展開は、例えば、アプリケーション1が計算リソース2上で構成されてインストールされることを意味する。その上、計算リソース2上でのアプリケーション1の展開は、好ましくは、複数のテナント3のうちの全てのテナント31、32、...、35から受信された制約情報に応じて、アプリケーションコンポーネント11、12、...、16のインスタンス110、...、142、...を複数の計算機20、特に仮想計算機上に分散させることを含む。
【0063】
以下の例によれば、計算リソース2上でのアプリケーション1の展開方法は、ウェブオントロジー言語(OWL)(図示せず)を用いて実施される。いわゆるOWLモデルによれば、クラスAC、Tenant(テナント)、Group(グループ)、及びDimension(ディメンション)が作成される。特にクラスDimensionは、グループセットを指す。加えて、DimensionとGroupとの間には、isRealizedByと呼ばれる特性が存在し、この特性は、グループを、それらのグループが実施するディメンションに関連付けるのに用いられる。Deployment(ディプロイメント)と呼ばれるもう1つのクラスが作成される。クラスDeploymentは、ofと呼ばれる第1の特性と、forと呼ばれる第2の特性とのドメインである。of及びforの2つの特性は、どのテナントが展開を指定し、その展開がどのアプリケーションコンポーネントに適用されるのかを決定する働きをする。さらに、Deploymentは、5つのサブクラス、特に、Private(プライベート)、Public(パブリック)、White(ホワイト)、Black(ブラック)、及びGray(グレイ)を有する。各サブクラスは、特定の展開モデルを表す。サブクラスGrayは、例えば、Grayのオブジェクトが作成されると、このオブジェクトがタイプDeploymentに属することを表す。全ての要件を取り込むために、2つのデータ特性がモデルに含められる。第1のデータモデルは、isCustomerとも呼ばれ、Domain Tenantに属する。この第1のデータモデルが偽に設定されている場合、仮想テナントの作成が可能になる。第2のデータモデルは、onLevelとも呼ばれ、Domain Deploymentに属する。この第2のデータモデルは、展開がインスタンスレベルに適用されるのか又は計算機レベルに適用されるのかを指定することを可能にする。好ましくは、展開構成は、計算リソースのオペレーター又はサービスプロバイダーへのサイクルを有しない複数の有向グラフとして表示される。これは、Entity(エンティティ)と呼ばれるTenant及びGroupのためのスーパークラスを作成することによって実現される。或るグループが排除されるときはいつでも、このグループのサブセットである全てのグループも同様に排除されることが定義される。同じことは、Inclusions(インクルージョンズ:包含)特性に適用される。双方の特性は、遷移的(transitive)と定義され、したがって、それらは、グループセットの構造を表すツリーの端部へのダウンを包含及び排除する。さらに、2つの特性レンジは、Entityとして定義される。第1の特性レンジのDomainは、Included(包含)とも呼ばれ、Group又はGrayHybrid若しくはWhiteHybridのいずれかとして定義される。第2の特性レンジは、Excludes(排除)とも呼ばれ、Group又はGrayHybrid若しくはBlackHybridのいずれかとして定義される。これらの第1の特性及び第2の特性は、第3の特性レンジに対するスーパー特性であり、この第3の特性レンジは、hasSubSetとも呼ばれる。第3の特性レンジを用いると、グループセットの構造を作成することが可能であり、グループへのテナントの割り当てが可能になる。
【0064】
特に、サービスプロバイダーによって定義された構造に従った全てのグループの排除又は包含が可能になる。
【0065】
図5には、略図が、本発明のコンピューター実施方法によるアプリケーションコンポーネント11のインスタンス(図5に図示せず)の展開を示している。グループセット4がサービスプロバイダーによって定義され、複数のテナント3のうちの各テナント31、32、...、35が、少なくとも1つのグループ410、411、...、412、又は、例えば、グループセット4のうちのセット41、42、...、43のグループ410のサブグループ4100、4101、...、4102に割り当てられた後、サービスプロバイダーは、展開モデル5に応じて、複数のアプリケーションコンポーネント10のうちの各アプリケーションコンポーネント11、12、...、16について複数のテナント3のうちの各テナント31、32、...、35から制約情報を受信する。特に、5つの展開モデル51、52、53、53、55のうちの1つが、テナント31、32、...、25によって、複数のアプリケーションコンポーネント10のうちの各アプリケーションコンポーネント11、12、...、16に割り当てられる。制約情報は、例えば、テナント31、32、...、35がアプリケーションコンポーネントを共有することを許容するか否かの情報、及び/又は或るテナントが他のどのテナントとアプリケーションコンポーネント11、12、...、15を共有することを拒否するのかの情報を含む。そのような制約は、特に、アプリケーションコンポーネント11、12、...、15ごとに2回指定され、より具体的には、展開レベル1000、2000ごとに1回指定される。展開レベル1000、2000は、特に、計算機レベル2000又はインスタンスレベル10000のうちの一方である。計算機レベル2000に関連付けられた制約情報の仕様の場合、テナント31、32、...、35は、同じ計算機21、22、...の共有が許容されるのか又は拒否されるか、及び他のどのテナント31、32、...、35との共有が許容されるのか又は拒否されるかを指定する。計算機21、22、...は、特に、仮想的な計算機又は物理的な計算機のうちの一方である。インスタンスレベル10000に関連付けられた制約情報の仕様の場合、テナント31、32、...、35は、アプリケーションコンポーネント11、12、...、16の同じインスタンス110、...、142、...の共有が同じ計算機21、22、...上で許容されるのか又は拒否されるか、及び他のどのテナント31、32、...、35との共有が許容されるのか又は拒否されるかを指定する。
【0066】
テナント31、32、...、35は、グループセット4のうちのセット41、42、...、43のグループ410、411、...、412、又は、例えば、グループ410のサブグループ4100、4101、...、4102に割り当てられる。テナント31、32、...、35は、計算機レベル2000においてパブリック展開モデル51をアプリケーションコンポーネント11、12、...、16に割り当てる。これは、計算機21、22、...を他の全てのテナント31、32、...、35と共有することができることを意味する。パブリック展開モデル52のこの割り当ては、パブリック展開とも呼ばれ、図5に参照符号520によって示されている。インスタンスレベル1000においては、テナント31、32、...、35は、グレイ展開モデル55をアプリケーションコンポーネント11に割り当てる。グレイ展開モデル55のこの割り当ては、グレイ展開とも呼ばれ、図5に参照符号550によって示されている。テナント31、32、...、35は、グレイ展開モデル55のための制約情報において、グループ410又はグループ410の第1のサブグループ4100に割り当てられるテナント31、32、...、35が包含されるのに対して、別のサブグループ4101、...、4102に割り当てられるテナントが排除されることを指定する。
【0067】
図6は、展開モデルセット5の展開モデル51、52、53、54、55の状態を概略的に示している。展開モデル51、52、53、54、55に応じて制約情報を決定することは、テナント31、32、...、35、アプリケーションコンポーネント11、12、...、16、及び展開レベル1000、2000の組み合わせごとに1つの制約情報を決定することを含む。好ましくは、状態機械が、展開モデル51、52、53、54、55の状態を定義するのに用いられる。ここで、状態は、空(参照符号801)、未完了(参照符号802)、又は完了(参照符号803)のうちの1つである。これらの状態は、展開モデル51、52、53、54、55がテナント31、32、...、35の展開制約(制約情報)を取り込むのに用いられる時点を表す。初期状態は、空状態801と呼ばれ、この空状態801では、展開制約の記述は、展開モデル51、52、53、54、55に関連付けられていない。
【0068】
記述を完了することによって(参照符号813参照)、展開モデル51、52、53、54、55は、テナント31、32、...、35から受信された制約情報に応じて完了状態803に変換される。代替的に、展開モデル51、52、53、54、55は、全ての展開制約を記述するための作業が最小になるように複数のアプリケーションコンポーネント10の階層関係を用いることによって、ステップ812及び823を介して完了状態803に移行することができる。例えば、テナントは、上記記述をその後の完了プロセス823において完了することができるように、未完了の記述のみを提供することもできるし(参照符号812参照)、記述を提供しないこともできる(図示せず)。
【0069】
本発明の好ましい実施形態によれば、アプリケーションコンポーネント11、12、...、16に関連付けられた制約情報は、完了プロセスにおいて決定される。この完了プロセスは、アプリケーションコンポーネント11、12、...、16に関連付けられた制約情報を、複数のアプリケーションコンポーネント10のうちの更なるアプリケーションコンポーネント11、12、...、16に関連付けられた更なる制約情報から導出することを含む。この更なるアプリケーションコンポーネントは、アプリケーションコンポーネント11、12、...、16と階層関係にある。
【0070】
好ましくは、完了プロセスは、次の完了ステップを含む。すなわち、第1の完了ステップは、展開モデル51、52、53、54、55又は展開モデル51、52、53、54、55の記述が完了したか否かを判断することを含む。特に、テナント31、32、...、35、アプリケーションコンポーネント11、12、...、16、及び展開レベル1000、2000の組み合わせごとに、関連付けられた制約情報が存在するか否かが判断される。そのような制約情報が存在する場合、同じ展開制約が、テナント31、32、...、35、展開レベル1000、2000、及び子アプリケーションコンポーネント11、12、...、16の同じ組み合わせについて存在するか否かが判断される。これに該当しない場合、完了プロセスは、子アプリケーションコンポーネント11、12、...、16の展開モデル51、52、53、54、55が未完了であると判断し、第2の完了ステップを続ける。
【0071】
第2の完了ステップにおいて、複数のアプリケーションコンポーネント10間の階層関係が利用されて、全ての展開制約が完全に記述される(すなわち、この組み合わせに関連付けられた全ての展開モデル5が完了状態803に移行する)。好ましくは、これは、親アプリケーションコンポーネントから子アプリケーションコンポーネントへの制約情報の継承(継承に基づいてアプリケーションコンポーネントに展開制約を備えさせること)によって達成される。好ましくは、関連付けられた展開モデル51、52、53、54、55に制約情報を割り当てられていないアプリケーションコンポーネント11、12、...、16のみが、継承に基づいて制約情報を取得する。好ましくは、新たな制約情報を継承に基づいて作成することは、子アプリケーションコンポーネント11、12、...、16の継承された制約情報が親アプリケーションコンポーネント11、12、...、16の制約情報と等しくなるか又はこの制約情報と比較してより制限的となるように、一組のルールを適用することを含む。
【0072】
図7は、有効な展開構成を概略的に示している。展開構成は、テナント31、32、...、35によって与えられた全ての展開制約に準拠している場合に有効である。図7の左側に示すグラフのうちの各グラフは、1つの展開レベルDL0、DL1、DL2、DL3、DL4及び1つのアプリケーションコンポーネント11、12、13に関連付けられている。これらのグラフは、対応する展開レベルDL0、DL1、DL2、DL3、DL4及びアプリケーションコンポーネント11、12、13について全てのテナント31、32、33、34、35によって決定された全ての制約情報から導出された展開情報を視覚化したものである。例えば、図7の左上コーナーに示す展開情報によれば、初期展開レベルDL0において、第1のアプリケーションコンポーネント11は、第1のテナント31と第2のテナント32と第5のテナント35との間、第2のテナント32と第3のテナント33との間、及び第3のテナント33と第4のテナント34との間で共有される。一方、初期展開レベルDL0において、第1のアプリケーションコンポーネント11は、例えば、第1のテナント31と第3のテナント33若しくは第4のテナント34との間、又は第2のテナント32と第4のテナント34との間等においては共有されない。各アプリケーションコンポーネント11、12、13は、全ての展開レベルDL0、DL1、DL2、DL3に満たない展開レベルにおいて展開することができることが図7に更に示されている。
【0073】
図7の右側は、様々な展開レベルDL0、DL1、DL2、DL3、及びDL4の有効な展開構成を示している。初期展開レベルDL0において、それぞれ、初期展開ユニットU01、U02は、第1のアプリケーションコンポーネント11に関連付けられ、初期展開ユニットU01’、U02’、U03’は、第2のアプリケーションコンポーネント12に関連付けられ、初期展開ユニットU01’’は、第3のアプリケーションコンポーネント13に関連付けられている。例えば、第1のテナント31及び第3のテナント33は、初期展開レベルDL0及び第1のアプリケーションコンポーネント11に関連付けられた展開ユニットU01、U02を共有しない。したがって、第1のテナント31及び第3のテナント33は、異なる展開ユニットU01、U02に割り当てられる。特に、初期展開レベルDL0において、第1のテナント31は、第1のアプリケーションコンポーネント11に関連付けられた第1の初期展開ユニットU01に割り当てられ、第3のテナントは、第1のアプリケーションコンポーネント11に関連付けられた第2の初期展開ユニットU02に割り当てられる。同様の方法で、展開構成が決定されるとき、他の全ての展開制約が考慮される。
【0074】
さらに、各アプリケーションコンポーネント11、12、13は、それらのアプリケーションコンポーネントが実際に適用される展開レベルにおいてのみ展開される。これは、例えば、第3のアプリケーションコンポーネント13が展開レベルDL0及びDL4においてのみ展開されることを意味する。したがって、ここでは、それぞれ展開レベルDL0及びDL4に関連付けられた展開ユニットU01’’及びU41のみが第3のアプリケーションコンポーネント13を展開する。
【0075】
第1の更なる展開レベルDL1において、第1の更なる展開ユニットU11、U12、U13、U14が展開され、第2のアプリケーションコンポーネント12及び初期展開レベルDL0に関連付けられた初期展開ユニットU01’及びU02’は、第1の更なる展開レベルDL1において第1の更なる展開ユニットU13を共有する。例えば、初期展開ユニットU01’及びU02’は、同じ仮想機械(展開レベルDL1)上で動作する同じアプリケーションコンポーネント(展開レベルDL0)の2つのインスタンスとすることができる。
【0076】
同様に、第2の更なる展開レベルDL2は、第2の更なる展開ユニットU21を含み、この第2の更なる展開ユニットU21は、第1の更なる展開ユニットU11及びU12をカプセル化する。第3の更なる展開レベルDL3は、第3の更なる展開ユニットU31を含み、この第3の更なる展開ユニットU31は、第1の更なる展開ユニットU13及びU14をカプセル化する。第4の更なる展開ユニットU41は、第2の更なる展開ユニットU21、初期展開ユニットU01’、及び第3の更なる展開ユニットU31をカプセル化する。
【0077】
図8は、最適化方法を概略的に示している。ここでは、有効かつ最適な展開構成は、この最適化方法によって決定される。この最適化方法の第1のステップ(参照符号601参照)において、複数の初期展開ユニットU01、U02、U03、U01’、U02’、U03’のうちの少なくとも1つの初期展開ユニットが、複数のアプリケーションコンポーネント10のうちのアプリケーションコンポーネント11、12ごとに生成される。ここでは、初期展開ユニットU01、U02、及びU03は、第1のアプリケーションコンポーネント11に関連付けられている。また、初期展開ユニットU01’、U02’、及びU03’は、ここでは、第2のアプリケーションコンポーネント12に関連付けられている。さらに、複数の初期展開ユニットU01、U02、U03、U01’、U02’、U03’は、一連の展開レベルDL0、DL1、DL2、DL3の初期展開レベルDL0に関連付けられている。好ましくは、初期展開ユニットU01、U02、U03、U01’、U02’、U03’は、アプリケーションコンポーネント11、12ごとに別々に作成される。
【0078】
最適化方法の第2のステップ(参照符号602参照)において、更なる展開レベルDL1に関連付けられた複数の更なる展開ユニットU11、U12、U13、U14が生成される。好ましくは、最適化方法の第2のステップは、複数の先行展開ユニットU01、U02、U03、U01’、U02’、U03’を、制約情報に応じて更なる展開レベルDL1において展開するための最小数の更なる展開ユニットU11、U12、U13、U14を決定することを含む。複数の更なる展開ユニットU11、U12、U13、U14は、一連の展開レベルDL0、DL1、DL2、DL3における先行展開レベルDL0に関連付けられた複数の先行展開ユニットU01、U02、U03、U01’、U02’、U03’に応じて生成される。この場合、先行展開ユニットU01、U02、U03、U01’、U02’、U03’は、初期展開レベルDL0の初期展開ユニットU01、U02、U03、U01’、U02’、U03’である。
【0079】
ここでは、更なる展開レベルは、第1の更なる展開レベルDL1であり、この第1の更なる展開レベルは、一連の展開レベルDL0、DL1、DL2、DL3において初期展開レベルに続く次の展開レベルである。同様に、更なる展開レベルは、最適化方法の後続の第2のステップ(参照符号603及び604参照)においては、第2の更なる展開レベルDL2又は第3の更なる展開レベルDL3とすることができる。好ましくは、第2のステップは、一連の展開レベルDL1、DL2、DL3の更なる展開レベルDL1、DL2、DL3ごとに順次実行される。好ましくは、アプリケーション1の有効な展開構成は、一連の展開レベルDL0、DL1、DL2、DL3の全ての展開レベルに関連付けられた展開ユニットU01、U02、U03、U01’、U02’、U03’、U11、U12、U13、U14、U21、U22、U23、U24、U31の総数を最小にすることによって最適化される。
図1
図2
図3
図4
図5
図6
図7
図8