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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許6542810マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法
<>
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000002
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000003
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000004
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000005
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000006
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000007
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000008
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000009
  • 特許6542810-マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6542810
(24)【登録日】2019年6月21日
(45)【発行日】2019年7月10日
(54)【発明の名称】マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20190628BHJP
   G06F 9/455 20060101ALI20190628BHJP
【FI】
   G06F9/50 120Z
   G06F9/455 150
【請求項の数】11
【全頁数】21
(21)【出願番号】特願2016-575042(P2016-575042)
(86)(22)【出願日】2015年6月23日
(65)【公表番号】特表2017-519308(P2017-519308A)
(43)【公表日】2017年7月13日
(86)【国際出願番号】US2015037267
(87)【国際公開番号】WO2015200376
(87)【国際公開日】20151230
【審査請求日】2018年1月26日
(31)【優先権主張番号】62/016,059
(32)【優先日】2014年6月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】レイ,アンソニー
(72)【発明者】
【氏名】イスラム,ナズルル
(72)【発明者】
【氏名】モルダニ,ラジブ
【審査官】 大桃 由紀雄
(56)【参考文献】
【文献】 特表2007−529079(JP,A)
【文献】 佐藤通敏,"ゾーンで管理する Solaris 10",UNIX USER,日本,ソフトバンク パブリッシング株式会社,2005年 6月 1日,第14巻第6号通巻第155号,P.48-59
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムであって、
アプリケーションサーバ環境を含む1つ以上のコンピュータを備え、前記アプリケーションサーバ環境は、前記1つ以上のコンピュータ上で実行され、前記1つ以上のコンピュータは、前記アプリケーションサーバ環境とともに、
前記アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、
各々がドメインの管理およびランタイム区分を提供する複数のパーティションとを含み、前記システムはさらに、
パーティションワークマネージャと、前記パーティションワークマネージャは、前記アプリケーションサーバ環境内の前記複数のパーティション各々にフェアシェア値を割当てるように、構成可能であり、各フェアシェア値は、前記システムが使用することによって、前記複数のパーティションの各々に関連付けられたスレッド使用量を制御するために、設定され、
複数のパーティションレベルワークマネージャとを備え、
前記複数のパーティションの各々のパーティションは、前記複数のパーティションレベルワークマネージャのうちの異なるパーティションレベルワークマネージャに関連付けられ、
各前記パーティションレベルワークマネージャの初期のコンフィグレーションは、前記パーティションワークマネージャのコンフィギュレーションによって設定される、システム。
【請求項2】
前記パーティションワークマネージャはさらに、前記アプリケーションサーバ環境内の各パーティションに対する最小スレッド制約値を与えるように構成され、前記最小スレッド制約値は、前記システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定される、請求項1に記載のシステム。
【請求項3】
前記パーティションワークマネージャはさらに、前記アプリケーションサーバ環境内の各パーティションに対するパーティション容量制約値を与えるように構成され、前記パーティション容量制約値は、前記システムが使用することによって、各パーティションからのワーク要求の数を制限するために、設定される、請求項1または2に記載のシステム。
【請求項4】
前記1つ以上のパーティションに割当てられるフェアシェア値は各々、1と99の間の数であり、前記フェアシェア値すべての合計は100である、請求項1〜3のいずれかに記載のシステム。
【請求項5】
前記各フェアシェア値はさらに、前記システムが利用できる全てのスレッドが使用中である場合には、待ち行列中のパーティションそれぞれからのワーク要求に順序を付けるために、設定される、請求項1〜4のいずれかに記載のシステム。
【請求項6】
前記1つ以上のパーティションレベルワークマネージャは各々、各パーティション内で実行されている1つ以上のアプリケーションにパーティションフェアシェア値を割当てるように、パーティションアドミニストレータによって構成可能であり、各パーティションフェアシェア値は、前記システムによって使用されることにより、前記各パーティション内で実行されている1つ以上のアプリケーションに関連付けられたスレッド使用量を制御するために、設定される、請求項1〜5のいずれかに記載のシステム。
【請求項7】
前記1つ以上のパーティションレベルワークマネージャは各々、前記パーティションアドミニストレータの指示を受け付けて再構成可能である、請求項6に記載のシステム。
【請求項8】
前記アプリケーションサーバ環境はマルチテナントアプリケーションサーバ環境を含み、前記システムは、テナントに前記1つ以上のパーティションを、前記テナントによる使用のために関連付けることができる、請求項1〜7のいずれかに記載のシステム。
【請求項9】
アプリケーションサーバ環境において使用するワークマネージャを提供するための方法であって、
その上で実行されるアプリケーションサーバ環境を含む、1つ以上のコンピュータに、
前記アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、
各々がドメインの管理およびランタイム区分を提供する複数のパーティションとを与えるステップと、
パーティションワークマネージャを与えるステップとを含み、前記パーティションワークマネージャは構成可能であり、前記方法はさらに、
前記パーティションワークマネージャを、前記アプリケーションサーバ環境内の前記1つ以上のパーティション各々にフェアシェア値を割当てるように、構成するステップを含み、各フェアシェア値は、システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定され
複数のパーティションレベルワークマネージャを与えるステップとを含み、
前記複数のパーティションの各々のパーティションは、前記複数のパーティションレベルワークマネージャのうちの異なるパーティションレベルワークマネージャに関連付けられ、
各前記パーティションレベルワークマネージャの初期のコンフィグレーションは、前記パーティションワークマネージャのコンフィギュレーションによって設定される、方法。
【請求項10】
前記アプリケーションサーバ環境内の各パーティションに対するパーティション最大スレッド制約を与えるように前記パーティションワークマネージャを構成するステップをさらに含み、前記パーティション最大スレッド制約は、前記システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定される、請求項9に記載の方法。
【請求項11】
コンピュータシステムによって実行されると前記コンピュータシステムに請求項9または10に記載の方法を実行させる機械読取可能なフォーマットのプログラム命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
【0002】
発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウドプラットフォーム環境に関し、特に、マルチテナントアプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法に関する。
【背景技術】
【0003】
背景:
ソフトウェアアプリケーションサーバは、その例として、Oracle WebLogic Server(WLS)およびGlassfishを含んでおり、概して、エンタープライズソフトウェアアプリケーションを実行するための管理された環境を提供する。近年、クラウド環境において使用するための技術も開発されており、ユーザまたはテナントが、クラウド環境内でそれらのアプリケーションを開発して実行することが可能になり、かつ、環境によって提供される分散型リソースを活用することが可能になっている。
【発明の概要】
【課題を解決するための手段】
【0004】
概要:
一実施形態に従い、本明細書において、アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法が説明される。一実施形態に従うと、システムアドミニストレータは、マルチテナントアプリケーションサーバ環境内の各パーティションに対してパーティションワーク要求の優先順位(フェアシェア値)を与えるように、パーティションワークマネージャを構成することができる。システムアドミニストレータはさらに、最小スレッド制約制限、パーティション容量制約、および/またはパーティション最大スレッド制約を課すように、パーティションワークマネージャを構成することができる。これらの制約はすべて、上記環境内部のパーティションによるスレッドリソースの使用を制限する。
【図面の簡単な説明】
【0005】
図1】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。
図2】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
図3】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
図4】一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。
図5】一実施形態に従った例示的なマルチテナント環境をさらに示す図である。
図6】一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるパーティションワークマネージャの使用を示す図である。
図7】一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるパーティションワークマネージャの使用を示す図である。
図8】マルチテナントアプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法のフローチャートである。
図9】マルチテナントアプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法のフローチャートである。
【発明を実施するための形態】
【0006】
詳細な説明:
一実施形態に従い、本明細書において、アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法が説明される。一実施形態に従うと、システムアドミニストレータは、マルチテナントアプリケーションサーバ環境内の各パーティションに対してパーティションワーク要求の優先順位(フェアシェア値)を与えるように、パーティションワークマネージャを構成することができる。システムアドミニストレータはさらに、パーティション最小スレッド制約、パーティション容量制約、および/またはパーティション最大スレッド制約を課すように、パーティションワークマネージャを構成することができる。これらの制約はすべて、上記環境内部のパーティションによるスレッドリソースの使用を制限する。
【0007】
アプリケーションサーバ(たとえば、マルチテナント(Multi-Tenant:MT)環境
図1は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
【0008】
図1に示されるように、一実施形態に従うと、アプリケーションサーバ(たとえばマルチテナント(MT))環境100または他のコンピューティング環境は、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするものであって、アプリケーションサーバドメインを定義するために実行時に用いられるドメイン102構成を含み、当該ドメイン102構成に従って動作するように構成することができる。
【0009】
一実施形態に従うと、アプリケーションサーバは、実行時に使用されるよう定義される1つ以上のパーティション104を含み得る。各々のパーティションは、グローバルユニークパーティション識別子(identifier:ID)およびパーティション構成に関連付けることができ、さらに、リソースグループテンプレートの参照126および/またはパーティション特有のアプリケーションもしくはリソース128とともに、1つ以上のリソースグループ124を含み得る。ドメインレベルのリソースグループ、アプリケーションおよび/またはリソース140も、任意にはリソースグループテンプレートの参照とともに、ドメインレベルで定義することができる。
【0010】
各々のリソースグループテンプレート160は、1つ以上のアプリケーションA162、B164、リソースA166、B168および/または他のデプロイ可能なアプリケーションもしくはリソース170を定義することができ、リソースグループによって参照することができる。たとえば、図1に例示されるように、パーティション104におけるリソースグループ124は、リソースグループテンプレート160を参照する(190)ことができる。
【0011】
概して、システムアドミニストレータは、パーティション、ドメインレベルのリソースグループおよびリソースグループテンプレート、ならびにセキュリティ領域を定義することができるとともに、パーティションアドミニストレータは、たとえば、パーティションレベルのリソースグループを作成するか、アプリケーションをパーティションにデプロイするかまたはパーティションについての特定の領域を参照することによって、それら自体のパーティションのアスペクトを定義することができる。
【0012】
図2は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【0013】
図2に示されるように、一実施形態に従うと、パーティション202は、たとえば、リソースグループテンプレート210の参照206を含むリソースグループ205と、仮想ターゲット(たとえば仮想ホスト)情報207と、プラグ接続可能なデータベース(pluggable database:PDB)情報208とを含み得る。リソースグループテンプレート(たとえば210)は、たとえば、Java(登録商標)メッセージサーバ(Java Message Server:JMS)サーバ213、ストア・アンド・フォワード(store-and-forward:SAF)エージェント215、メールセッションコンポーネント216またはJavaデータベースコネクティビティ(Java Database Connectivity:JDBC)リソース217などのリソースとともに、複数のアプリケーションA211およびB212を定義することができる。
【0014】
図2に例示されるリソースグループテンプレートが一例として提供される。他の実施形態に従うと、さまざまなタイプのリソースグループテンプレートおよび要素を提供することができる。
【0015】
一実施形態に従うと、パーティション(たとえば202)内のリソースグループが、特定のリソースグループテンプレート(たとえば210)を参照する(220)と、パーティション特有の情報230(たとえば、パーティション特有のPDB情報)を示すために、特定のパーティションに関連付けられた情報を、参照されたリソースグループテンプレートと組合わせて用いることができる。次いで、パーティション特有の情報は、パーティションによって使用されるリソース(たとえば、PDBリソース)を構成するようにアプリケーションサーバによって使用可能である。たとえば、パーティション202に関連付けられたパーティション特有のPDB情報は、そのパーティションによって使用されるべき適切なPDB238を備えたコンテナデータベース(container database:CDB)236を構成する(232)ようにアプリケーションサーバによって使用可能である。
【0016】
同様に、一実施形態に従うと、特定のパーティションに関連付けられた仮想ターゲット情報を用いて、そのパーティションによって使用されるべきパーティション特有の仮想ターゲット240(たとえば、ユニフォーム・リソース・ロケータ(uniform resource locator:URL)(たとえば、http://baylandurgentcare.com)によってアクセス可能にすることができるbaylandurgentcare.com)を定義する(239)ことができる。
【0017】
図3は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【0018】
一実施形態に従うと、config.xml構成ファイルなどのシステム構成を用いて、パーティションを定義することができる。当該パーティションは、そのパーティションに関連付けられたリソースグループについての構成エレメントおよび/または他のパーティションプロパティを含む。値は、プロパティ名/値の対を用いてパーティションごとに指定することができる。
【0019】
一実施形態に従うと、複数のパーティションは、管理されたサーバ/クラスタ242内で、または、CDB243にアクセス可能でありかつウェブ層244を介してアクセス可能である同様の環境内で、実行することができる。これにより、たとえば、ドメインまたはパーティションを(CDBの)PDBのうち1つ以上のPDBに関連付けることが可能となる。
【0020】
一実施形態に従うと、複数のパーティションの各々、この例においてはパーティションA250およびパーティションB260は、そのパーティションに関連付けられた複数のリソースを含むように構成することができる。たとえば、パーティションAは、アプリケーションA1 252と、アプリケーションA2 254と、JMS A 256と、さらには、PDB A 259に関連付けられたデータソースA257とをともに含むリソースグループ251を含むように構成することができる。この場合、パーティションは仮想ターゲットA258を介してアクセス可能である。同様に、パーティションB260は、アプリケーションB1 262と、アプリケーションB2 264と、JMS B 266と、さらには、PDB B 269に関連付けられたデータソースB267とをともに含むリソースグループ261を含むように構成することができる。この場合、パーティションは仮想ターゲットB268を介してアクセス可能である。
【0021】
上述の例のうちいくつかはCDBおよびPDBの使用を例示しているが、他の実施形態に従うと、他のタイプのマルチテナントのデータベースまたは非マルチテナントのデータベースをサポートすることができる。この場合、特定の構成は、たとえば、スキーマを使用するかまたはさまざまなデータベースを使用することによって、各々のパーティションのために提供することができる。
【0022】
リソース
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトである。たとえば、一実施形態に従うと、リソースは、アプリケーション、JMS、JDBC、JavaMail、WLDFもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
【0023】
パーティション
一実施形態に従うと、パーティションは、パーティション識別子(partition identifier:ID)および構成に関連付けられ得るドメインのうちランタイムおよび管理の区分またはスライスであるとともに、アプリケーションを含み得て、ならびに/または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
【0024】
概して、パーティションは、それ自体のアプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。パーティション可能なエンティティは、リソース、たとえば、JMS、JDBC、JavaMail、およびWLDFリソースや、他のコンポーネント、たとえばJNDIネームスペース、ネットワークトラフィック、ワークマネージャ、セキュリティポリシーおよび領域などを含み得る。マルチテナント環境のコンテキストにおいては、システムは、テナントに関連付けられたパーティションの管理およびランタイムのアスペクトへのアクセスをテナントに提供するように構成することができる。
【0025】
一実施形態に従うと、パーティション内の各々のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。
【0026】
一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション(partition)」(そのパーティションを定義する属性および子エレメントを含む);「リソース・グループ(resource-group)」(パーティションにデプロイされるアプリケーションおよびリソースを含む);「リソース・グループ・テンプレート(resource-group-template)」;(そのテンプレートによって定義されるアプリケーションおよびリソースを含む);「jdbc・システム・リソース・無効化(jdbc-system-resource-override)」(データベース特有のサービス名、ユーザ名およびパスワードを含む);ならびに、「パーティション・プロパティ(partition-properties)」(リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む)を含む。
【0027】
始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。
【0028】
リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
【0029】
システムアドミニストレータは、ドメインレベルで、またはパーティションレベルでリソースグループを公開することができる。ドメインレベルでは、リソースグループは、関連するリソースをグループ化するのに好都合な方法を提供する。システムは、グループ化されていないリソースと同じドメインレベルのリソースグループにおいて公開されたリソースを管理することができる。このため、リソースは、システム起動中に開始させたり、システムのシャットダウン中に停止させたりすることができる。アドミニストレータはまた、グループ内のリソースを個々に停止させるか、開始させるかまたは削除することができ、グループ上で動作させることによって暗黙的にグループ内のすべてのリソースに対して機能することができる。たとえば、あるリソースグループを停止させることにより、まだ停止されていないグループにおけるすべてのリソースを停止させ;リソースグループを始動させることにより、まだ始動させていないグループにおけるいずれのリソースも始動させ、リソースグループを削除することにより、グループに含まれるすべてのリソースを削除する。
【0030】
パーティションレベルでは、システムまたはパーティションアドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて0個以上のリソースグループを構成することができる。たとえば、SaaS使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。PaaS使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。
【0031】
一実施形態に従うと、リソースグループ化を用いることで、アプリケーションと、それらアプリケーションがドメイン内で別個の管理ユニットとして使用するリソースとをともにグループ化することができる。たとえば、以下に記載される医療記録(MedRec)アプリケーションにおいては、リソースグループ化によりMedRecアプリケーションおよびそのリソースが定義される。複数のパーティションは、各々がパーティション特有の構成情報を用いて、同じMedRecリソースグループを実行することができ、このため、各々のMedRecインスタンスの一部であるアプリケーションが各々のパーティションにとって特有のものにされる。
【0032】
リソースグループテンプレート
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、1つ以上の関連するJavaアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名/値の対を使用することによってリソースグループテンプレートで指定することができる。
【0033】
一実施形態に従うと、特定のリソースグループテンプレートは、1つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に1つのリソースグループによってのみ参照することができる。すなわち、同じパーティション内で同時に複数のリソースグループによって参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名/値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション/テンプレートの組合せごとにランタイム構成を生成することができる。
【0034】
たとえば、SaaS使用事例においては、システムは、同じアプリケーションおよびリソースを複数回起動することができるが、そのうちの1回は、それらを用いるであろう各パーティションごとに起動され得る。アドミニストレータがリソースグループテンプレートを定義すると、これらは、どこか他のところで提供されるであろう情報を表わすためにトークンを用いることができる。たとえば、CRM関連のデータリソースに接続する際に使用されるユーザ名は、リソースグループテンプレートにおいて\${CRMDataUsername}として示すことができる。
【0035】
テナント
一実施形態に従うと、マルチテナント(MT)アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
【0036】
たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、特定の企業内のさまざまな部門(たとえばHRおよび財務部)などを表わすことができ、それら各々は、異なるパーティションに関連付けることができる。テナントのグローバルユニークアイデンティティ(テナントID)は、特定の時点において特定のユーザを特定のテナントに関連付けるものである。システムは、たとえば、ユーザアイデンティティの記録を参照することによって、ユーザアイデンティティから、特定のユーザがどのテナントに属しているかを導き出すことができる。ユーザアイデンティティにより、ユーザが実行することを認可されているアクションをシステムが実施することが可能となる。ユーザアイデンティティは、ユーザがどのテナントに属し得るかを含むが、これに限定されない。
【0037】
一実施形態に従うと、システムは、互いに異なるテナントの管理およびランタイムを分離することを可能にする。たとえば、テナントは、それらのアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、特定のテナントが別のテナントに属するアーティファクトを確実に管理することができないようにし、かつ、実行時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。
【0038】
一実施形態に従うと、テナント非認識型アプリケーションは、アプリケーションが応答している要求をどんなユーザが提示したかにかかわらず、アプリケーションが用いる如何なるリソースにもアクセス可能となるように明示的にテナントに対処する論理を含まないものである。対照的に、テナント認識型アプリケーションは、テナントに明示的に対処する論理を含む。たとえば、ユーザのアイデンティティに基づいて、アプリケーションは、ユーザが属するテナントを導き出すことができ、テナント特有のリソースにアクセスするためにその情報を用いることができる。
【0039】
一実施形態に従うと、システムは、テナント認識型となるように明示的に書き込まれたアプリケーションをユーザがデプロイすることを可能にし、これにより、アプリケーション開発者は、現在のテナントのテナントIDを取得することができる。次いで、テナント認識型アプリケーションは、このテナントIDを用いて、アプリケーションの単一のインスタンスを用いている複数のテナントを処理することができる。
【0040】
たとえば、単一の診療室または病院をサポートするMedRecアプリケーションは、2つの異なるパーティションまたはテナント(たとえばBayland Urgent CareテナントおよびValley Healthテナント)に対して公開することができ、その各々は、基礎をなすアプリケーションコードを変更することなく、別個のPDBなどの別個のテナント特有のリソースにアクセスすることができる。
【0041】
例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。デプロイメントプランはまた、リソースグループの一部として指定することができる。
【0042】
図4は、一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す。
【0043】
一実施形態に従うと、システムがパーティションを始動させると、当該システムは、提供された構成に従って、それぞれのデータベースインスタンスに対して、各パーティションごとに1つずつ、仮想ターゲット(たとえば仮想ホスト)および接続プールを作成する。
【0044】
典型的には、各々のリソースグループテンプレートは、1つ以上の関連するアプリケーションと、それらアプリケーションが依存するリソースとを含み得る。各々のパーティションは、それが参照するリソースグループテンプレートにおいて指定されていない構成データを提供することができるが、これは、場合によっては、リソースグループテンプレートによって指定されるいくつかの構成情報を無効にすることを含めて、パーティションに関連付けられた特定値に対するリソースグループテンプレートにおけるデプロイ可能なリソースのバインディングを行なうことによって、実行可能である。これにより、システムは、各々のパーティションが定義したプロパティ値を用いて、パーティション毎にリソースグループテンプレートによってさまざまに表わされるアプリケーションを始動させることができる。
【0045】
いくつかのインスタンスにおいては、パーティションが含み得るリソースグループは、リソースグループテンプレートを参照しないか、または、それら自体のパーティション範囲指定されたデプロイ可能なリソースを直接定義する。パーティション内で定義されるアプリケーションおよびデータソースは、概して、そのパーティションにとってのみ利用可能である。リソースは、パーティション:<partitionName>/<resource JNDI name>、またはドメイン:<resource JNDI name>を用いて、パーティションの中からアクセスすることができるようにデプロイ可能である。
【0046】
たとえば、MedRecアプリケーションは、複数のJavaアプリケーション、データソース、JMSサーバおよびメールセッションを含み得る。複数のテナントのためにMedRecアプリケーションを実行させるために、システムアドミニストレータは、テンプレートにおけるそれらのデプロイ可能なリソースを公開している単一のMedRecリソースグループテンプレート286を定義することができる。
【0047】
ドメインレベルのデプロイ可能なリソースとは対照的に、リソースグループテンプレートにおいて公開されたデプロイ可能なリソースは、テンプレートにおいて完全には構成されない可能性があるか、または、いくつかの構成情報が不足しているので、そのままでは起動させることができない。
【0048】
たとえば、MedRecリソースグループテンプレートは、アプリケーションによって用いられるデータソースを公開し得るが、データベースに接続するためのURLを指定しない可能性がある。さまざまなテナントに関連付けられたパーティション、たとえば、パーティションBUC−A290(Bayland Urgent Care:BUC)およびパーティションVH−A292(Valley Health:VH)は、各々がMedRecリソースグループテンプレートを参照する(296,297)MedRecリソースグループ293,294を含むことによって、1つ以上のリソースグループテンプレートを参照することができる。次いで、当該参照を用いて、Bayland Urgent Careテナントによって使用されるBUC−Aパーティションに関連付けられた仮想ホストbaylandurgentcare.com304と、Valley Healthテナントによって使用されるVH−Aパーティションに関連付けられた仮想ホストvalleyhealth.com308とを含む各々のテナントのための仮想ターゲット/仮想ホストを作成する(302,306)ことができる。
【0049】
図5は、一実施形態に従った例示的なマルチテナント環境をさらに示す。図5に示されるように、2つのパーティションがMedRecリソースグループテンプレートを参照している上述の例から引続いて、一実施形態に従うと、サーブレットエンジン310は、この例においてはBayland Urgent Careの医師テナント環境320およびValley Healthの医師テナント環境330といった複数のテナント環境をサポートするために用いることができる。
【0050】
一実施形態に従うと、各々のパーティション321および331は、そのテナント環境についての入来トラフィックを受入れるための異なる仮想ターゲットと、異なるURL322,332とを定義することができる。異なるURL322,332は、パーティションと、この例ではbayland urgent careデータベースまたはvalley healthデータベースを含むそれぞれのリソース324、334とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
【0051】
ワークマネージャ
先に述べたように、一実施形態に従うと、パーティションは、アプリケーションサーバをマルチテナントモードで実行するときに1つまたは複数のテナントに対して作成されるアプリケーションサーバ(たとえばWebLogic Server)ドメインのスライスである。
【0052】
一実施形態に従うと、複数のパーティション間におけるスレッド使用量は、公平になるように調節され、これらのパーティションの相対的な優先度をシステムアドミニストレータによって設定することが可能である。一実施形態に従うと、ワークマネージャを用いることによって、同一のWLSインスタンス内で実行しているパーティション間の公平性と優先順位を提供することができる。
【0053】
一実施形態に従うと、ワークマネージャは、アプリケーションサーバの自己チューニングスレッドプールから提供されるスレッドリソースの相対的なスレッド使用量を調節することにより、適切なサービス品質(QoS)を提供するとともに、同一のアプリケーションサーバインスタンス(たとえばマルチテナントアプリケーションサーバ環境)を共有するさまざまなパーティション間における公平性を提供する。それがなければ、あるパーティションおよび/またはパーティションアドミニストレータからのアプリケーションが、他のパーティション用のスレッドリソースを奪ってこれらのパーティションが適切に機能することを妨げる可能性がある。
【0054】
一実施形態に従うと、ワークマネージャが共有スレッドリソースをさまざまなパーティションに割当てることを可能にする公平性は、多数の要素に基づき得る。これらの要素は、たとえば、さまざまなパーティションがサービスの対価として支払うさまざまな金額、各パーティションの重要度、および共有スレッドに対する各パーティションからの需要等である。
【0055】
パーティションワークマネージャ−1パーティション当たりの相対的なスレッドリソース使用量
図6は、一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるパーティションワークマネージャの使用を示す図である。
【0056】
図6に示される実施形態は、パーティションワークマネージャ610とドメイン620とを含むアプリケーションサーバ環境600を示す。図6の実施形態はさらにシステムアドミニストレータ630を含む。パーティションワークマネージャ610は、パーティションAのワークマネージャ615とパーティションBのワークマネージャ616とを含む。ドメイン620は、パーティションA 640と、パーティションB 650と、仮想ターゲットA 660と、仮想ターゲットB 670とを含む。パーティションAおよびBそれぞれの中には、パーティションAのスレッド使用量645およびパーティションBのスレッド使用量655がある。パーティションAおよびBそれぞれの中ではさらに、リソースグループ646およびリソースグループ656が規定されている。
【0057】
一実施形態に従うと、システムアドミニストレータ630は、アプリケーションサーバ環境600内のWLSセルフチューニングスレッドプール等のスレッドプールに対する各パーティションのアクセスを調節するように、パーティションワークマネージャ610を構成する。このようにシステムアドミニストレータがワークマネージャを構成することにより、スレッドリソースの相対的なスレッド使用量を調節して、適切なQoSを提供するとともに、同一のアプリケーションサーバインスタンスを共有するさまざまなパーティション間における公平性を提供する。たとえば、一般的に、システムアドミニストレータはパーティションワークマネージャ610を構成するときにいくつかの設定を(個々にまたは互いに組合わせて)使用することができる。上記設定は、パーティションワーク要求の優先順位(またはフェアシェア値)、パーティション最小スレッド制約、およびパーティション容量制約を含むが、これらに限定されない。
【0058】
一実施形態に従うと、システムアドミニストレータ630は、パーティションワーク要求の優先順位またはフェアシェア値を用いてパーティションワークマネージャ610を構成することができる。システムアドミニストレータ630は、通信経路635を介して、パーティションワークマネージャ610内に、アプリケーションサーバ環境600において構成された各パーティション、たとえばパーティションA 640およびパーティションB 650に対するフェアシェア値を指定する。このフェアシェア値は、たとえばパーティションワークマネージャ610に含まれる特定パーティション用のワークマネージャに含めることができる。フェアシェア値は、すべてのパーティションのスレッド使用量との比較における、特定のパーティションのスレッド使用量の割合である。加えて、システムアドミニストレータ630によって最初にパーティションに割当てられたフェアシェア値を、システムアドミニストレータ630によって更新および/または編集することができる。
【0059】
一実施形態に従うと、パーティションに割当てられるフェアシェア値は、1と99の間の数である。推奨されるのは、あるドメイン内で実行しているすべてのパーティションのフェアシェア値の合計が100になることである。これらの合計が100にならない場合、アプリケーションサーバ環境600は、異なるパーティションに対し、スレッド使用時間および/またはスレッド待ち行列位置をこれらの相対値に基づいて割当てることができる。
【0060】
たとえば、一実施形態に従うと、システムアドミニストレータ630はフェアシェア値として20をパーティションA 640に割当て、フェアシェア値として30をパーティションB 650に割当てる。これらのフェアシェア値はそれぞれ、パーティションワークマネージャ610内のパーティションAのワークマネージャ615およびパーティションBのワークマネージャ616に記録される。実行時に、パーティションAおよびBからの、すべての要求と処理のために待ち行列に入れられた未処理のワーク要求に対応するにはスレッドプール内のスレッドリソースが不十分であるという事態が発生した場合、ワークマネージャは、スレッド使用時間のうち40%をパーティションA 640のアプリケーションからのワーク要求(および待ち行列の要求)に割当て、スレッド使用時間のうち60%をパーティションB 650のアプリケーションからのワーク要求(および待ち行列の要求)に割当てる。このスレッド使用量の割当て、たとえばパーティションAのスレッド使用量645およびパーティションBのスレッド使用量655は、システムアドミニストレータがパーティションワークマネージャ610内にフェアシェア値を設定した結果である。
【0061】
一実施形態に従うと、システムアドミニストレータ630は、最小スレッド制約を用いてパーティションワークマネージャ610を構成することができる。最小スレッド制約は、デッドロックを回避するために、各パーティションにまたはパーティション内のアプリケーションに割当てられる、スレッドプールの指定数のスレッドを保証する。
【0062】
一実施形態に従うと、システムアドミニストレータ630は、任意で、アプリケーションサーバ環境600内のパーティションごとに、最小スレッド制約値に対して制限を課すことができる。システムアドミニストレータ630がこのような制限を設定する場合は、そうすることによって、パーティションごとに最小スレッド制約値に対して上限を課すことになる。あるパーティション内のすべての最小スレッド制約の設定値の合計がこのような設定値を上回る場合には、警告メッセージをロギングすることができ、アプリケーションサーバ環境600は、制約に対してスレッドプールが割当てるスレッド数を自動的に減じることができる。
【0063】
たとえば、一実施形態に従うと、システムアドミニストレータ630は、最小スレッド制約として5スレッドをパーティションA 640に対して設定する。パーティションAに対してデプロイされるアプリケーションにおいて規定された最小スレッド制約は2つあり、一方の設定値は3、他方の設定値は7である。セルフチューニングスレッドプールは、これら2つの最小スレッド制約に対して、組合わせた設定値10ではなく、5スレッドが割当てられることしか保証しない。
【0064】
いくつかの実施形態において、フェアシェア値がアプリケーションサーバ環境内の各パーティションに設定されたことに加えて、パーティション最小スレッド制約制限がシステムアドミニストレータ630によってパーティションワークマネージャ610に設定されると、結果として、パーティションが、パーティション最小スレッド制約として自身のスレッドフェアシェア値よりも大きい値を受けると、フェアシェア値を克服する可能性がある。
【0065】
一実施形態に従うと、システムアドミニストレータ630は、パーティション共有容量を用いてパーティションワークマネージャ610を構成する。このパーティション共有容量は、パーティションからのワーク要求の数を制限する。この制限は、実行中であるか、または、待ち行列に入れられて利用できるスレッドを待っているワーク要求を含み得る。設定された制限を超過した場合、アプリケーションサーバ環境600は、制限対象のパーティションからの他の要求を拒絶することができる。この制限の値は、1%と100%の間といったように、アプリケーションサーバ環境600の容量の割合として表わすことができる。
【0066】
たとえば、一実施形態に従うと、システムアドミニストレータは、パーティションAに対し、パーティション共有容量として50%を設定することができる。アプリケーションサーバ環境は、ワークマネージャを構成するために、共有容量として65536という値を用いて構成される。パーティションAには上記パーティション共有容量があるので、ワークマネージャは、パーティションAからのワーク要求の数が、総容量である65536の50%である32738を超えると、パーティションAからの要求を拒絶し始める。
【0067】
一実施形態に従うと、システムアドミニストレータ630は、パーティションワークマネージャ610を、パーティション最大スレッド制約を用いて構成する。この制約は、あるパーティションからの要求を並行して処理する、セルフチューニングスレッドプールの最大数のスレッドを、制限することができる。このことは、特に異常な状況、たとえば応答していない遠隔サーバからの応答を待ってスレッドがI/Oでブロックされているという状況において、パーティションが、そのスレッドリソースのフェアシェアを超えるリソースを使用しないようにするのに有効となり得る。このようなシナリオにおいて最大スレッド制約を設定することは、システム内の他のパーティションからの要求を処理するためにいくつかのスレッドを確実に利用できるようにするのに役立つであろう。
【0068】
一実施形態に従うと、フェアシェア値によって、利用できるスレッドのフェアシェア値をパーティションに割当てることができ、それに加えて、利用できるすべてのスレッドが現在使用中であるときに、これから実行する優先度付き待ち行列中の、パーティションからの要求に、順序を割当てることができる。たとえば、システムアドミニストレータは、パーティションワークマネージャを介して、パーティションXに対しフェアシェア値として60を割当て、パーティションYに対しフェアシェア値として40を割当てる。これらのパーティションが、その間で、ソースプール内の利用できるすべてのスレッドを使用すると、これらのパーティションからの次の要求は待ち行列に入れられる。パーティションXおよびYに割当てられたフェアシェア値によって、パーティションYからの要求に対し、相対的に、待ち行列中のどこにパーティションXからの要求を入れるのか判断することができる。ここで例示した状況では、パーティションXからの要求は、待ち行列においてパーティションYからの要求の前に置かれる。なぜなら、パーティションXのフェアシェア値はパーティションYのフェアシェア値よりも大きいからである。
【0069】
一実施形態に従うと、アプリケーションサーバ環境600は、マルチテナントアプリケーションサーバ(MT)環境を含み得る。
【0070】
パーティションレベルワークマネージャ
図7は、一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるワークマネージャの使用を示す図である。
【0071】
図7に示される実施形態は、パーティションワークマネージャ790とソースドメイン720とを含むアプリケーションサーバ環境700を示す。図7の実施形態はさらに、パーティションAのアドミニストレータ730、パーティションBのアドミニストレータ735、およびシステムアドミニストレータ780を含む。パーティションワークマネージャ790は、パーティションAのワークマネージャ795とパーティションBのワークマネージャ796とを含む。ソースドメイン720は、パーティションA 740と、パーティションB 750と、仮想ターゲットA 760と、仮想ターゲットB 770とを含む。パーティションA 740は、ワークマネージャA 745と、パーティションAのスレッド使用量746とを含む。パーティションB 760は、ワークマネージャB 755と、パーティションBのスレッド使用量756とを含む。
【0072】
一実施形態において、システムアドミニストレータ780が、パーティションワークマネージャ790を、パーティションAおよびBのフェアシェア値を設定するように構成できる方法と同様に、パーティションアドミニストレータ730および735は、それぞれのパーティションについて、それぞれのパーティション内の作業を管理するパーティションレベルワークマネージャを構成することができる。一般的に、パーティションアドミニストレータはそれぞれのパーティションワークマネージャを構成するときにいくつかの設定を(個々にまたは互いに組合わせて)使用することができる。上記設定は、ワーク要求の優先順位(またはフェアシェア値)、最小スレッド制約、および最大スレッド制約を含むが、これらに限定されない。
【0073】
たとえば、一実施形態において、パーティションアドミニストレータは、それぞれのパーティションワークマネージャを、フェアシェア値を用いて構成することができる。パーティションAのアドミニストレータは、パーティションA 740に対し、特にパーティションAの中で実行しているアプリケーションに対し、フェアシェア値として総スレッド使用量を割当てることができる。パーティションAのアドミニストレータ730は、これを、通信経路731を介し、ワークマネージャA 745を、パーティションA 740の中で実行しているさまざまなアプリケーションにフェアシェア値を割当てるように構成することにより、行なう(同様に、パーティションBのアドミニストレータは、通信経路736を介してワークマネージャBを構成することができる)。しかしながら、パーティションA 740が利用できるグローバルスレッドプールからのスレッドは依然としてパーティションワークマネージャ790によって設定されており、これはパーティションB 750が利用できるスレッドについても同様である。パーティションワークマネージャ790は、通信経路785を介してシステムアドミニストレータ780によって構成され、(上述のように)パーティションAおよびBのための設定はそれぞれパーティションAのワークマネージャ795およびパーティションBのワークマネージャ796に格納されている。
【0074】
一実施形態において、パーティションワークマネージャはテンプレートの機能を果たし、構成された各ワークマネージャのインスタンスがデプロイされた各アプリケーションに対して作成される。たとえば、このパーティションワークマネージャはデフォルトワークマネージャであってもよい。デフォルトワークマネージャの1つのインスタンスを、デプロイされた各アプリケーションに対して作成することができ、別のディスパッチポリシーが指定されない限り、このアプリケーションからのワーク要求を処理するために使用できる。
【0075】
一実施形態において、パーティションアドミニストレータは、任意で、自身のパーティションのためのパーティションワークマネージャを上書きしてもよい。このパーティション内の各アプリケーションに、パーティションワークマネージャのインスタンスを与えてもよく、このインスタンスは、上記ワークマネージャの特定パーティション用の設定を用いて作成されたものである。パーティションレベルで無効にされていないパーティションワークマネージャについては、config.xmlレベルのテンプレート構成を使用する。この構成を使用するのは、パーティションワークマネージャに関して先に述べたように、システムアドミニストレータによって記述された特定パーティション用の制限が設定された、パーティションでデプロイされた各アプリケーションのためのこのようなワークマネージャのインスタンスを作成するときである。
【0076】
たとえば、一実施形態において、デフォルトワークマネージャは、最小または最大スレッド制約なしで構成され、さらに、パーティションに対し、フェアシェア要求クラス値として50を割当てる。パーディションアドミニストレータは、最小スレッド制約が1であるそれぞれのパーティションのデフォルトワークマネージャを無効にすることができる。結果として、パーティションにおいてデプロイされた各アプリケーションは、設定値が1である最小スレッド制約を用いて作成されたデフォルトワークマネージャを有することになる。
【0077】
一実施形態に従うと、パーティションアドミニストレータは、それぞれの特定のパーティションに割当てられたフェアシェア値を上書きすることができるが、そうしても、パーティションワークマネージャでパーティションに割当てられたフェアシェア値は変わらない。たとえば、パーティションXおよびパーティションY各々に対し、パーティションワークマネージャの構成において、システムアドミニストレータによってフェアシェア値として50が割当てられているとする。しかしながら、パーティションXのためのパーティションアドミニストレータは、そのワークマネージャに、フェアシェア値として90を設定する。パーティションアドミニストレータがスレッドのフェアシェアよりも多いスレッドを要求しようとしても、パーティションワークマネージャは、プール内のスレッドのうちの半分しかパーティションXが受けないことを保証できる。
【0078】
一実施形態において、システムレベルで、たとえばconfig.xmlのセルフチューニングセクションで規定された制約が共有される。たとえば、パーティションワークマネージャが作成されmin-ThreadConstraint-1と呼ばれる最小スレッド制約を規定する。各パーティションは、min-ThreadConstraint-1のコピーを得る。先に述べたように、パーティションアドミニストレータは、所望されればmin-ThreadConstraint-1を無効にすることができる。
【0079】
一実施形態に従うと、アプリケーションサーバ環境700は、マルチテナントアプリケーションサーバ(MT)環境を含み得る。
【0080】
図8は、アプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法800のフローチャートである。この方法800はステップ801から始まる。ステップ801において、その上で実行されるアプリケーションサーバ環境を含む1つ以上のコンピュータに、アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、ドメイン内のデプロイ可能なリソースのグループ分けを規定する1つ以上のリソースグループテンプレートと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと与えることができる。この方法800は、ステップ802に進んでパーティションワークマネージャを提供することができ、このパーティションワークマネージャはシステムアドミニストレータによって構成可能である。代表的な方法800は、最後にステップ803で、パーティションワークマネージャを、アプリケーションサーバ環境内の1つ以上のパーティション各々にフェアシェア値を割当てるように、構成することができ、各フェアシェア値は、1つ以上のパーティションに関連付けられたスレッド使用量を制御するためにシステムが使用するように、設定される。
【0081】
一実施形態に従うと、図8には示されていないが、この方法は次に、パーティションワークマネージャを、フェアシェア値に加えて、パーティション容量制約と、パーティション最小スレッド制約制限と、パーティション最大スレッド制約とのうちの1つ以上を与えるように、構成することができる。
【0082】
図9は、アプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法900のフローチャートである。この方法900はステップ901から始まる。ステップ901において、その上で実行されるアプリケーションサーバ環境を含む1つ以上のコンピュータに、アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、ドメイン内のデプロイ可能なリソースのグループ分けを規定する1つ以上のリソースグループテンプレートと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと与えることができる。この方法900は、ステップ902に進んでパーティションワークマネージャを提供することができ、このパーティションワークマネージャはシステムアドミニストレータによって構成可能である。代表的な方法900は、引続きステップ903で、パーティションワークマネージャを、アプリケーションサーバ環境内の1つ以上のパーティション各々にフェアシェア値を割当てるように、構成することができ、各フェアシェア値は、1つ以上のパーティションに関連付けられたスレッド使用量を制御するためにシステムが使用するように、設定される。この方法900は、ステップ904において、1つ以上のパーティションレベルワークマネージャを提供し、1つ以上のパーティションは各々、上記1つ以上のパーティションレベルワークマネージャのうちの1つを含む。最後に、この方法900は、それぞれのパーティション内で実行されている1つ以上のアプリケーションに対してパーティションフェアシェア値を割当てるように、1つ以上のパーティションレベルワークマネージャ各々を構成する。各パーティションフェアシェア値は、それぞれのパーティションにおいて実行されている1つ以上のアプリケーションに関連付けられたスレッド使用量を制御するためにシステムが使用するように、設定される。
【0083】
アプリケーションワークマネージャ
一実施形態において、ワークマネージャおよびそのアーティファクト(制約等)を、アプリケーションの中から規定してもよい。このようなアプリケーションがワークマネージャおよび/またはその制約を規定するとき、このようなワークマネージャは、パーティションの中でデプロイすることができる。しかしながら、規定されたワークマネージャおよび/またはその制約は、パーティションワークマネージャを介してシステムアドミニストレータによって課された、または規定されたパーティションレベルワークマネージャを介してパーティションアドミニストレータによって課された、設定された限定とワークマネージャ(たとえばフェアシェア値)に基づいて、調整してもよい。
【0084】
パーティションIDの伝達
ある実施形態において、ワーク要求がスケジュールおよび/または要求されるときに使用されるパーティションIDを、ワーク要求が実行されているセルフチューニングスレッドプールに伝達することができる。パーティションIDは、コンポーネント呼出しコンテキスト(component invocation context:CIC)から取込むことができる。これにより、ワーク要求を、要求の発生元であるパーティションのコンテキストの下で実行することができる。これにより、エラーのロギングと診断および/またはセキュリティをサポートすることができる。
【0085】
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
【0086】
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つまたは複数の)コンピュータ読取可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
【0087】
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9