(57)【要約】      （修正有）【課題】マルチテナントアプリケーションサーバ環境においてパーティションをサポートする。【解決手段】アプリケーションサーバアドミニストレータは、パーティションを作成または削除する。パーティションアドミニストレータは、パーティションのさまざまなアスペクトを管理する。リソースグループは、ドメインにおいてグローバルに定義又はパーティションに特有のものにする。アプリケーションは、ドメインレベルにおいてリソースグループテンプレートにデプロイするか又はパーティションに範囲指定されるか若しくはドメインに範囲指定されるリソースグループにデプロイする。システムは、１つ以上のパーティションを、テナントによって使用されるように、当該テナントに関連付ける。【選択図】図６
2020074148.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションサーバ環境においてパーティションをサポートするためのシステムであって、
１つ以上のコンピュータを含み、前記１つ以上のコンピュータは、ソフトウェアアプリケーションの実行のためのドメインならびに１つ以上のパーティションおよびリソースグループを有するアプリケーションサーバ環境を含み、
各々のパーティションは、前記ドメインの管理および実行時間下位区分を提供し、１つ以上のリソースグループを含み得るとともに、
各々のリソースグループは、リソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合である、システム。
【請求項２】
前記システムは、任意には、テナントによって使用されるように、前記テナントに１つ以上のパーティションを関連付けることができる、請求項１に記載のシステム。
【請求項３】
各々のリソースグループテンプレートは、１つ以上の関連するアプリケーションを、前記１つ以上の関連するアプリケーションが依存するリソースと共に含む、請求項１または２に記載のシステム。
【請求項４】
前記複数のデプロイ可能なリソースは、パーティション認識型リソースおよびパーティション非認識型リソースの１つ以上を含む、請求項１から３のいずれかに記載のシステム。
【請求項５】
各々のパーティションは、ローカルのネームスペースに関連付けることができる、請求項１から４のいずれかに記載のシステム。
【請求項６】
各々のパーティションはパーティション名または識別子に関連付けることができ、これにより、複数の要求を複数の適切なパーティションに伝達することができるように前記システムがパーティションコンテキストを決定することが可能になる、請求項１から５のいずれかに記載のシステム。
【請求項７】
前記システムは、クラウド環境内で動作する複数のテナントをサポートするように前記クラウド環境内に提供される、請求項１から６のいずれかに記載のシステム。
【請求項８】
前記システムは、前記複数のパーティションの複数の編集セッションをサポートする、請求項１から７のいずれかに記載のシステム。
【請求項９】
各々のリソースグループまたは前記リソースグループを含む前記パーティションは、前記リソースグループまたはパーティションがターゲット設定されてデプロイされるべきであるターゲットを定義する仮想ターゲット情報に関連付けることができ、ウェブ層コンポーネントはルーティング情報を含み、前記ルーティング情報は、特定のパーティションのための前記仮想ターゲットを対応するターゲットにマッピングして、これにより、前記特定のパーティションのための複数の要求が適切なターゲットに向けられるようにする、請求項１から８のいずれかに記載のシステム。
【請求項１０】
アプリケーションサーバ環境においてパーティションをサポートするための方法であって、
１つ以上のコンピュータにおいて、ソフトウェアアプリケーションの実行のためのドメインならびに１つ以上のパーティションおよびリソースグループを有するアプリケーションサーバ環境を提供するステップを含み、
各々のパーティションは、前記ドメインの管理および実行時間下位区分を提供し、リソースグループを含み得るとともに、
各々のリソースグループは、リソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合である、方法。
【請求項１１】
テナントによって使用されるように、前記テナントに１つ以上のパーティションを任意に関連付けるステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
各々のリソースグループテンプレートは、１つ以上の関連するアプリケーションを、前記１つ以上の関連するアプリケーションが依存するリソースとともに含む、請求項１０または１１に記載の方法。
【請求項１３】
前記複数のデプロイ可能なリソースは、パーティション認識型リソースおよびパーティション非認識型リソースのうち１つ以上を含む、請求項１０から１２のいずれかに記載の方法。
【請求項１４】
各々のパーティションは、ローカルのネームスペースに関連付けることができる、請求項１０から１３のいずれかに記載の方法。
【請求項１５】
各々のパーティションはパーティション名または識別子に関連付けることができ、これにより、複数の要求を複数の適切なパーティションに伝達することができるようにパーティションコンテキストを決定することが可能になる、請求項１０から１４のいずれかに記載の方法。
【請求項１６】
前記方法は、クラウド環境内で動作する複数のテナントをサポートするように前記クラウド環境内で実行される、請求項１０から１５のいずれかに記載の方法。
【請求項１７】
前記複数のパーティションの複数の編集セッションのためのサポートを提供するステップをさらに含む、請求項１０から１６のいずれかに記載の方法。
【請求項１８】
各々のリソースグループまたは前記リソースグループを含む前記パーティションは、前記リソースグループまたはパーティションが対象設定されてデプロイされるべきターゲットを定義する仮想ターゲット情報に関連付けることができ、ウェブ層コンポーネントはルーティング情報を含み、前記ルーティング情報は、特定のパーティションのための前記仮想ターゲットを対応するターゲットにマッピングして、これにより、前記特定のパーティションのための複数の要求が複数の適切なターゲットに向けられるようにする、請求項１０から１７のいずれかに記載の方法。
【請求項１９】
プログラム命令を機械読取り可能フォーマットで含むコンピュータプログラムであって、前記プログラム命令は、コンピュータシステムによって実行されると、前記コンピュータシステムに、請求項１０から１８のいずれかに記載の方法を実行させる、コンピュータプログラム。
【請求項２０】
非一時的な機械読取り可能データ記憶媒体に記憶された請求項１９に記載のコンピュータプログラムを含むコンピュータプログラムプロダクト。
【請求項２１】
命令が格納された非一時的なコンピュータ読取り可能記憶媒体であって、前記命令が１つ以上のコンピュータによって読取られて実行されると、前記１つ以上のコンピュータに、
ソフトウェアアプリケーションの実行のためのドメインならびに１つ以上のパーティシ
ョンおよびリソースグループを有するアプリケーションサーバ環境を提供するステップを実行させ、
各々のパーティションは、前記ドメインの管理および実行時間下位区分を提供し、リソースグループを含み得るとともに、
各々のリソースグループは、リソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合である、非一時的なコンピュータ読取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
【０００２】
発明の分野：
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステムおよび方法に関する。
【背景技術】
【０００３】
背景：
アプリケーションサーバは、概して、ソフトウェアアプリケーションをデプロイして実行することができる管理された環境を提供する。クラウドベースの環境は、クラウドによって提供される分散型リソース内でアプリケーションを実行して、当該分散型リソースを利用することを可能にする。このような環境は、多くのユーザまたはテナントをサポートすることができ、それらのうちのいくつかは、そのユーザまたはテナントに特有の特定条件を有する可能性がある。これらは、本発明の実施形態が使用可能となる環境のタイプのいくつかの例に該当する。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
一実施形態に従うと、マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステムおよび方法がこの明細書中に記載される。一実施形態に従うと、アプリケーションサーバアドミニストレータ（たとえば、ＷＬＳアドミニストレータ）はパーティションを作成または削除することができ、パーティションアドミニストレータは、パーティションのさまざまなアスペクトを管理することができ、たとえば、リソースグループを作成し、アプリケーションを特定のパーティションにデプロイし、パーティションのための特定の領域を参照することができる。リソースグループは、ドメインにおいてグローバルに定義することができるか、または、パーティションに特有のものにすることができる。アプリケーションは、ドメインレベルにおいてリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されるかもしくはドメインに範囲指定されるリソースグループにデプロイすることができる。システムは、任意には、テナントによって使用されるように、当該テナントに１つ以上のパーティションを関連付けることができる。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。
【図２】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
【図３】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
【図４】一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。
【図５】一実施形態に従った例示的なマルチテナント環境をさらに示す図である。
【図６】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションの使用を示す図である。
【図７】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションの使用をさらに示す図である。
【図８】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションの使用方法を示す図である。
【発明を実施するための形態】
【０００６】
詳細な説明：
一実施形態に従うと、マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステムおよび方法がこの明細書中に記載される。一実施形態に従うと、アプリケーションサーバアドミニストレータ（たとえば、ＷＬＳアドミニストレータ）はパーティションを作成または削除することができ、パーティションアドミニストレータは、パーティションのさまざまなアスペクトを管理することができ、たとえば、リソースグループを作成し、アプリケーションを特定のパーティションにデプロイし、パーティションのための特定の領域を参照することができる。リソースグループは、ドメインにおいてグローバルに定義することができるか、または、パーティションに特有のものにすることができる。アプリケーションは、ドメインレベルにおいてリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されるかもしくはドメインに範囲指定されるリソースグループにデプロイすることができる。システムは、任意には、テナントによって使用されるように、当該テナントに１つ以上のパーティションを関連付けることができる。
【０００７】
アプリケーションサーバ（たとえば、マルチテナント（Multi-Tenant：ＭＴ））環境
図１は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
【０００８】
図１に示されるように、一実施形態に従うと、アプリケーションサーバ（たとえばマルチテナント（ＭＴ））環境１００または他のコンピューティング環境は、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするものであって、アプリケーションサーバドメインを定義するために実行時に用いられるドメイン１０２の構成を含み、当該ドメイン１０２の構成に従って動作するように構成することができる。
【０００９】
一実施形態に従うと、アプリケーションサーバは、実行時に使用されるよう定義される１つ以上のパーティション１０４を含み得る。各々のパーティションは、グローバルユニークパーティション識別子（identifier：ＩＤ）およびパーティション構成に関連付けることができ、さらに、リソースグループテンプレートの参照１２６および／またはパーティション特有のアプリケーションもしくはリソース１２８とともに、１つ以上のリソースグループ１２４を含み得る。ドメインレベルのリソースグループ、アプリケーションおよび／またはリソース１４０も、任意にはリソースグループテンプレートの参照とともに、ドメインレベルで定義することができる。
【００１０】
各々のリソースグループテンプレート１６０は、１つ以上のアプリケーションＡ１６２、Ｂ１６４、リソースＡ１６６、Ｂ１６８および／または他のデプロイ可能なアプリケーションもしくはリソース１７０を定義することができ、リソースグループによって参照することができる。たとえば、図１に例示されるように、パーティション１０４におけるリソースグループ１２４は、リソースグループテンプレート１６０を参照する（１９０）こ
とができる。
【００１１】
概して、システムアドミニストレータは、パーティション、ドメインレベルのリソースグループおよびリソースグループテンプレート、ならびにセキュリティ領域を定義することができるとともに、パーティションアドミニストレータは、たとえば、パーティションレベルのリソースグループを作成するか、アプリケーションをパーティションにデプロイするかまたはパーティションについての特定の領域を参照することによって、それら自体のパーティションのアスペクトを定義することができる。
【００１２】
図２は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【００１３】
図２に示されるように、一実施形態に従うと、パーティション２０２は、たとえば、リソースグループテンプレート２１０の参照２０６を含むリソースグループ２０５と、仮想ターゲット（たとえば仮想ホスト）情報２０７と、プラグ接続可能なデータベース（pluggable database：ＰＤＢ）情報２０８とを含み得る。リソースグループテンプレート（たとえば２１０）は、たとえば、Ｊａｖａ（登録商標）メッセージサーバ（Java Message Server：ＪＭＳ）サーバ２１３、ストア・アンド・フォワード（store-and-forward：ＳＡＦ）エージェント２１５、メールセッションコンポーネント２１６またはＪａｖａデータベースコネクティビティ（Java Database Connectivity：ＪＤＢＣ）リソース２１７などのリソースとともに、複数のアプリケーションＡ２１１およびＢ２１２を定義することができる。
【００１４】
図２に例示されるリソースグループテンプレートが一例として提供される。他の実施形態に従うと、さまざまなタイプのリソースグループテンプレートおよび要素を提供することができる。
【００１５】
一実施形態に従うと、パーティション（たとえば２０２）内のリソースグループが、特定のリソースグループテンプレート（たとえば２１０）を参照する（２２０）と、パーティション特有の情報２３０（たとえば、パーティション特有のＰＤＢ情報）を示すために、特定のパーティションに関連付けられた情報を、参照されたリソースグループテンプレートと組合わせて用いることができる。次いで、パーティション特有の情報は、パーティションによって使用されるリソース（たとえば、ＰＤＢリソース）を構成するようにアプリケーションサーバによって使用可能である。たとえば、パーティション２０２に関連付けられたパーティション特有のＰＤＢ情報は、そのパーティションによって使用されるべき適切なＰＤＢ２３８を備えたコンテナデータベース（container database：ＣＤＢ）２３６を構成する（２３２）ようにアプリケーションサーバによって使用可能である。
【００１６】
同様に、一実施形態に従うと、特定のパーティションに関連付けられた仮想ターゲット情報を用いて、そのパーティションによって使用されるべきパーティション特有の仮想ターゲット２４０（たとえば、ユニフォーム・リソース・ロケータ（uniform resource locator：ＵＲＬ）（たとえば、http://baylandurgentcare.com）によってアクセス可能にすることができるbaylandurgentcare.com）を定義する（２３９）ことができる。
【００１７】
図３は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【００１８】
一実施形態に従うと、config.xml構成ファイルなどのシステム構成を用いて、パーティションを定義する。当該パーティションは、そのパーティションに関連付けられたリソースグループについての構成エレメントおよび／または他のパーティションプロパティを含
む。値は、プロパティ名／値の対を用いてパーティションごとに指定することができる。
【００１９】
一実施形態に従うと、複数のパーティションは、管理されたサーバ／クラスタ２４２内で、または、ＣＤＢ２４３にアクセス可能でありかつウェブ層２４４を介してアクセス可能である同様の環境内で、実行することができる。これにより、たとえば、ドメインまたはパーティションを（ＣＤＢの）ＰＤＢのうち１つ以上のＰＤＢに関連付けることが可能となる。
【００２０】
一実施形態に従うと、複数のパーティションの各々、この例においてはパーティションＡ２５０およびパーティションＢ２６０は、そのパーティションに関連付けられた複数のリソースを含むように構成することができる。たとえば、パーティションＡは、アプリケーションＡ１  ２５２と、アプリケーションＡ２  ２５４と、ＪＭＳ  Ａ  ２５６と、さらには、ＰＤＢ  Ａ  ２５９に関連付けられたデータソースＡ２５７とをともに含むリソースグループ２５１を含むように構成することができる。この場合、パーティションは仮想ターゲットＡ２５８を介してアクセス可能である。同様に、パーティションＢ２６０は、アプリケーションＢ１  ２６２と、アプリケーションＢ２  ２６４と、ＪＭＳ  Ｂ  ２６６と、さらには、ＰＤＢ  Ｂ  ２６９に関連付けられたデータソースＢ２６７とをともに含むリソースグループ２６１を含むように構成することができる。この場合、パーティションは仮想ターゲットＢ２６８を介してアクセス可能である。
【００２１】
上述の例のうちいくつかはＣＤＢおよびＰＤＢの使用を例示しているが、他の実施形態に従うと、他のタイプのマルチテナントのデータベースまたは非マルチテナントのデータベースをサポートすることができる。この場合、特定の構成は、たとえば、スキーマを使用するかまたはさまざまなデータベースを使用することによって、各々のパーティションのために提供することができる。
【００２２】
リソース
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトである。たとえば、一実施形態に従うと、リソースは、アプリケーション、ＪＭＳ、ＪＤＢＣ、ＪａｖａＭａｉｌ、ＷＬＤＦもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
【００２３】
パーティション
一実施形態に従うと、パーティションは、パーティション識別子（partition identifier：ＩＤ）および構成に関連付けられ得るドメインのうち実行時間および管理の下位区分またはスライスであるとともに、アプリケーションを含み得て、ならびに／または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
【００２４】
概して、パーティションは、それ自体のアプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。パーティション可能なエンティティは、リソース、たとえば、ＪＭＳ、ＪＤＢＣ、ＪａｖａＭａｉｌ、およびＷＬＤＦリソースや、他のコンポーネント、たとえばＪＮＤＩネームスペース、ネットワークトラフィック、ワークマネージャ、セキュリティポリシーおよび領域などを含み得る。マルチテナント環境のコンテキストにおいては、システムは、テナントに関連付けられたパーティションの管理および実行時間のアスペクトへのアクセスをテナントに提供するように構成することができる。
【００２５】
一実施形態に従うと、パーティション内の各々のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。
【００２６】
一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション（partition）」（そのパーティションを定義する属性および
子エレメントを含む）；「リソース・グループ（resource-group）」（パーティションにデプロイされるアプリケーションおよびリソースを含む）；「リソース・グループ・テンプレート（resource-group-template）」；（そのテンプレートによって定義されるアプ
リケーションおよびリソースを含む）；「ｊｄｂｃ・システム・リソース・無効化（jdbc-system-resource-override）」（データベース特有のサービス名、ユーザ名およびパス
ワードを含む）；ならびに、「パーティション・プロパティ（partition-properties）」（リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む）を含む。
【００２７】
始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。
【００２８】
リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
【００２９】
システムアドミニストレータは、ドメインレベルで、またはパーティションレベルでリソースグループを公開することができる。ドメインレベルでは、リソースグループは、関連するリソースをグループ化するのに好都合な方法を提供する。システムは、グループ化されていないリソースと同じドメインレベルのリソースグループにおいて公開されたリソースを管理することができる。このため、リソースは、システム起動中に開始させたり、システムのシャットダウン中に停止させたりすることができる。アドミニストレータはまた、グループ内のリソースを個々に停止させるか、開始させるかまたは削除することができ、グループ上で動作させることによって暗黙的にグループ内のすべてのリソースに対して機能することができる。たとえば、あるリソースグループを停止させることにより、まだ停止されていないグループにおけるすべてのリソースを停止させ；リソースグループを始動させることにより、まだ始動させていないグループにおけるいずれのリソースも始動させ、リソースグループを削除することにより、グループに含まれるすべてのリソースを削除する。
【００３０】
パーティションレベルでは、システムまたはパーティションアドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて０個以上のリソースグループを構成することができる。たとえば、ＳａａＳ使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。ＰａａＳ使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。
【００３１】
一実施形態に従うと、リソースグループ化を用いることで、アプリケーションと、それらアプリケーションがドメイン内で別個の管理ユニットとして使用するリソースとをともにグループ化することができる。たとえば、以下に記載される医療記録（ＭｅｄＲｅｃ）アプリケーションにおいては、リソースグループ化によりＭｅｄＲｅｃアプリケーションおよびそのリソースが定義される。複数のパーティションは、各々がパーティション特有の構成情報を用いて、同じＭｅｄＲｅｃリソースグループを実行することができ、このため、各々のＭｅｄＲｅｃインスタンスの一部であるアプリケーションが各々のパーティションにとって特有のものにされる。
【００３２】
リソースグループテンプレート
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、１つ以上の関連するＪａｖａアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名／値の対を使用することによってリソースグループテンプレートで指定することができる。
【００３３】
一実施形態に従うと、特定のリソースグループテンプレートは、１つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に１つのリソースグループによって参照することができる。すなわち、同じパーティション内で複数のリソースグループによって同時に参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名／値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション／テンプレートの組合せごとに実行時間構成を生成することができる。
【００３４】
たとえば、ＳａａＳ使用事例においては、システムは、同じアプリケーションおよびリソースを複数回を起動することができるが、そのうちの１回は、それらを用いるであろう各パーティションごとに起動され得る。アドミニストレータがリソースグループテンプレートを定義すると、これらは、どこか他のところで提供されるであろう情報を表わすためにトークンを用いることができる。たとえば、ＣＲＭ関連のデータリソースに接続する際
に使用されるユーザ名は、リソースグループテンプレートにおいて＼＄｛ＣＲＭＤａｔａＵｓｅｒｎａｍｅ｝として示すことができる。
【００３５】
テナント
一実施形態に従うと、マルチテナント（ＭＴ）アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、１つ以上のパーティションおよび／もしくは１つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または１つ以上のパーティションおよび／もしくは１つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
【００３６】
たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、特定の企業内のさまざまな部門（たとえばＨＲおよび財務部）などを表わすことができ、それら各々は、異なるパーティションに関連付けることができる。テナントのグローバルユニークアイデンティティ（テナントＩＤ）は、特定の時点において特定のユーザを特定のテナントに関連付けるものである。システムは、たとえば、ユーザアイデンティティの記録を参照することによって、ユーザアイデンティティから、特定のユーザがどのテナントに属しているかを導き出すことができる。ユーザアイデンティティにより、ユーザが実行することを認可されているアクションをシステムが実施することが可能となる。ユーザアイデンティティは、ユーザがどのテナントに属し得るかを含むが、これに限定されない。
【００３７】
一実施形態に従うと、システムは、互いに異なるテナントの管理および実行時間を分離することを可能にする。たとえば、テナントは、それらのアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、特定のテナントが別のテナントに属するアーティファクトを確実に管理することができないようにし、かつ、実行時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。
【００３８】
一実施形態に従うと、テナント非認識型アプリケーションは、アプリケーションが応答している要求をどんなユーザが提示したかにかかわらず、アプリケーションが用いる如何なるリソースにもアクセス可能となるように明示的にテナントに対処する論理を含まないものである。対照的に、テナント認識型アプリケーションは、テナントに明示的に対処する論理を含む。たとえば、ユーザのアイデンティティに基づいて、アプリケーションは、ユーザが属するテナントを導き出すことができ、テナント特有のリソースにアクセスするためにその情報を用いることができる。
【００３９】
一実施形態に従うと、システムは、テナント認識型となるように明示的に書き込まれたアプリケーションをユーザがデプロイすることを可能にし、これにより、アプリケーション開発者は、現在のテナントのテナントＩＤを取得することができる。次いで、テナント認識型アプリケーションは、このテナントＩＤを用いて、アプリケーションの単一のインスタンスを用いている複数のテナントを処理することができる。
【００４０】
たとえば、単一の診療室または病院をサポートするＭｅｄＲｅｃアプリケーションは、２つの異なるパーティションまたはテナント（たとえばBayland Urgent Careテナントお
よびValley Healthテナント）に対して公開することができ、その各々は、基礎をなすア
プリケーションコードを変更することなく、別個のＰＤＢなどの別個のテナント特有のリソースにアクセスすることができる。
【００４１】
例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプ
レートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。デプロイメントプランはまた、リソースグループの一部として指定することができる。
【００４２】
図４は、一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す。
【００４３】
一実施形態に従うと、システムがパーティションを始動させると、当該システムは、提供された構成に従って、それぞれのデータベースインスタンスに対して、各パーティションごとに１つずつ、仮想ターゲット（たとえば仮想ホスト）および接続プールを作成する。
【００４４】
典型的には、各々のリソースグループテンプレートは、１つ以上の関連するアプリケーションと、それらアプリケーションが依存するリソースとを含み得る。各々のパーティションは、それが参照するリソースグループテンプレートにおいて指定されていない構成データを提供することができるが、これは、場合によっては、リソースグループテンプレートによって指定されるいくつかの構成情報を無効にすることを含めて、パーティションに関連付けられた特定値に対するリソースグループテンプレートにおけるデプロイ可能なリソースのバインディングを行なうことによって、実行可能である。これにより、システムは、各々のパーティションが定義したプロパティ値を用いて、パーティション毎にリソースグループテンプレートによってさまざまに表わされるアプリケーションを始動させることができる。
【００４５】
いくつかのインスタンスにおいては、パーティションが含み得るリソースグループは、リソースグループテンプレートを参照しないか、または、それら自体のパーティション範囲指定されたデプロイ可能なリソースを直接定義する。パーティション内で定義されるアプリケーションおよびデータソースは、概して、そのパーティションにとってのみ利用可能である。リソースは、パーティション：<partitionName>/<resource JNDI name>、またはドメイン：<resource JNDI name>を用いて、パーティションの中からアクセスすることができるようにデプロイ可能である。
【００４６】
たとえば、ＭｅｄＲｅｃアプリケーションは、複数のＪａｖａアプリケーション、データソース、ＪＭＳサーバおよびメールセッションを含み得る。複数のテナントのためにＭｅｄＲｅｃアプリケーションを実行させるために、システムアドミニストレータは、テンプレートにおけるそれらのデプロイ可能なリソースを公開している単一のＭｅｄＲｅｃリソースグループテンプレート２８６を定義することができる。
【００４７】
ドメインレベルのデプロイ可能なリソースとは対照的に、リソースグループテンプレートにおいて公開されたデプロイ可能なリソースは、テンプレートにおいて完全には構成されない可能性があるか、または、いくつかの構成情報が不足しているので、そのままでは起動させることができない。
【００４８】
たとえば、ＭｅｄＲｅｃリソースグループテンプレートは、アプリケーションによって用いられるデータソースを公開し得るが、データベースに接続するためのＵＲＬを指定しない可能性がある。さまざまなテナントに関連付けられたパーティション、たとえば、パーティションＢＵＣ−Ａ２９０（Bayland Urgent Care：ＢＵＣ）およびパーティション
ＶＨ−Ａ２９２（Valley Health：ＶＨ）は、各々がＭｅｄＲｅｃリソースグループテン
プレートを参照する（２９６，２９７）ＭｅｄＲｅｃリソースグループ２９３，２９４を
含むことによって、１つ以上のリソースグループテンプレートを参照することができる。次いで、当該参照を用いて、Bayland Urgent Careテナントによって使用されるＢＵＣ−
Ａパーティションに関連付けられた仮想ホストbaylandurgentcare.com３０４と、Valley Healthテナントによって使用されるＶＨ−Ａパーティションに関連付けられた仮想ホストvalleyhealth.com３０８とを含む各々のテナントのための仮想ターゲット／仮想ホストを作成する（３０２，３０６）ことができる。
【００４９】
図５は、一実施形態に従った例示的なマルチテナント環境をさらに示す。図５に示されるように、２つのパーティションがＭｅｄＲｅｃリソースグループテンプレートを参照している上述の例から引続いて、一実施形態に従うと、サーブレットエンジン３１０は、この例においてはBayland Urgent Careの医師テナント環境３２０およびValley Healthの医師テナント環境３３０といった複数のテナント環境をサポートするために用いることができる。
【００５０】
一実施形態に従うと、各々のパーティション３２１および３３１は、そのテナント環境についての入来トラフィックを受入れるための異なる仮想ターゲットと、異なるＵＲＬ３２２，３３２とを定義することができる。異なるＵＲＬ３２２，３３２は、パーティションと、この例ではBayland Urgent Careデータベースまたはvalley healthデータベースを含むそれぞれのリソース３２４、３３４とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
【００５１】
パーティション関連の特徴
一実施形態に従うと、アプリケーションサーバアドミニストレータ（たとえば、ＷＬＳアドミニストレータ）はパーティションを作成または削除することができ、パーティションアドミニストレータは、パーティションのさまざまなアスペクトを管理することができ、たとえば、リソースグループを作成し、アプリケーションを特定のパーティションにデプロイし、パーティションのための特定の領域を参照することができる。リソースグループは、ドメインにおいてグローバルに定義することができるか、またはパーティションに特有のものにすることができる。アプリケーションは、ドメインレベルにおいてリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されるかもしくはドメインに範囲指定されるリソースグループにデプロイすることができる。システムは、任意には、テナントによって使用されるように、当該テナントに１つ以上のパーティションを関連付けることができる。
【００５２】
図６は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションの使用を示す。図６に示されるように、一実施形態に従うと、第１または特定のパーティションＡ４００はパーティションＩＤ４０２に関連付けることができ、リソースグループ４０４は任意のリソースグループテンプレート参照４０６に関連付けることができ、および／または、１つ以上のパーティション特有のリソースグループ、アプリケーションもしくはリソース４１０に関連付けることができる。特定のリソースグループテンプレートＡ４２０は、１つ以上のアプリケーション４２２、リソース４２４またはリソース構成トークン４２６を定義することができ、このため、パーティションのリソースグループ（たとえばパーティションＡ）がそのリソースグループテンプレートを参照（４３０）したときに、アプリケーション、リソースおよびリソース構成トークンを用いて、リソースグループを構成する（４３２）ことができる。この場合、仮想ターゲット情報４１２を定義すること、および／または、リソースグループに仮想ターゲット４３８（たとえば、baylandurgentcare.com）を関連付け、さらに次に、ターゲットシステム４４
０（たとえばコンピュータサーバまたはクラスタ）に関連付けることを含み得る。
【００５３】
図７は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションの使用をさらに示す。図７に示されるように、一実施形態に従うと、第２のパーティションＢ４５０は、同様に、パーティションＩＤ４５２に関連付けることができ、リソースグループ４５４は任意のリソースグループテンプレート参照４５６に関連付けることができ、および／または、１つ以上のパーティション特有のリソースグループ、アプリケーションもしくはリソース４６０に関連付けることができる。第２のリソースグループテンプレートＢ４７０は、同様に、１つ以上のアプリケーション４７２、リソース４７４またはリソース構成トークン４７６を定義することができる。パーティションのリソースグループ（たとえば、パーティションＢ）は、リソースグループテンプレートＡおよびＢのいずれかを参照する（４８０，４８２）ことができ、このため、選択されたリソースグループテンプレート（この例においては、リソースグループテンプレートＢ）のアプリケーション、リソースおよびリソース構成トークンを用いて、リソースグループを構成する（４８４）ことができる。この場合、仮想ターゲット情報４６２を定義すること、および／または、リソースグループに仮想ターゲット４８８（たとえば、valleyhealth.com）を関連付け、さらに次に、ターゲットシステムに関連付けることを含み得る。
【００５４】
図８は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションの使用方法を示す。図８に示されるように、一実施形態に従うと、ステップ４９０において、ソフトウェアアプリケーションの実行のためのドメインならびに１つ以上のパーティションおよびリソースグループを含むアプリケーションサーバ環境が提供される。各々のパーティションは、ドメインの管理および実行時間下位区分を提供し、１つ以上のリソースグループを含み得る。各々のリソースグループは、リソースグループテンプレートを参照し得るデプロイ可能なアプリケーションまたはリソースの集合である。
【００５５】
ステップ４９２において、各々のパーティションは構成情報に関連付けられ、このため、始動後、システムは、パーティションに関連付けられた構成情報を用いて、参照済みの如何なるリソースグループテンプレートからのものも含めて、各々のリソースグループおよびその内部のリソースのためのパーティション特有の構成エレメントを生成することができる。
【００５６】
ステップ４９４において、各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲットを定義する仮想ターゲット（たとえば仮想ホスト）情報に関連付けることができる。
【００５７】
ステップ４９６において、各々のパーティションは、任意には、マルチテナント環境における或るテナントによって使用されるように、そのテナントに関連付けることができる。
【００５８】
パーティション管理
一実施形態に従うと、システムアドミニストレータはパーティションを作成し、削除し、移行させることができ、さらに、ターゲットを作成し、割当てることができる。パーティションアドミニストレータは、パーティションのさまざまなアスペクトをパーティションレベルで管理することができ、たとえば、リソースグループを作成するか、または、パーティション内のリソースグループにアプリケーションをデプロイすることができる。システムアドミニストレータは、パーティションのセキュリティ特徴（たとえばセキュリティ領域）を設定もしくは変更することができるか、または、共有（ドメインレベル）のリ
ソースグループもしくはリソースグループテンプレートを参照することができる。
【００５９】
パーティション名およびパーティションＩＤ
一実施形態に従うと、各々のパーティションは２つの識別子、すなわち、パーティション名およびパーティションＩＤ、を有する。パーティション名は、人が読取り可能な名前であって、パーティション作成時に指定されるものであり、パーティションを管理する人によって用いられかつ人にとって使い易い識別子を優先するコードによって用いられる識別子である。パーティションＩＤは、たとえばＵＵＩＤとして、パーティションのために生成されるそれほど読取り易くない名前であって、このため、時間的かつ空間的に固有であり、パーティション同士を区別するためにグローバルユニークＩＤを必要とするコードによって用いられる。パーティション名およびパーティションＩＤは、パーティション・コンフィグ・ビーン（partition config bean）および呼出しコンテキスト（ComponentInvocationContext）の両方から検索することができる。
【００６０】
パーティション構成
一実施形態に従うと、パーティション構成は、config.xmlに含まれており、以下の構成エレメントを含む。
【００６１】
パーティション：これは、トップレベルの構成エレメントであって、パーティションを定義する属性および子エレメントを含んでいる。パーティションエレメントはドメインレベルで定義されるだろう。パーティションは、領域、パーティションへのネットワークマッピング、ＳＳＬ情報および他のパーティション情報を定義するリソースグループ、システムリソースオーバーライドエレメントおよび属性を含み得る。
【００６２】
リソース・グループ：このエレメントは、パーティションにデプロイされたアプリケーションおよびリソースを含む。リソースグループは、共通のアプリケーションまたはリソースが１つの場所で定義されて複数のパーティション間で共有され得るように、リソースグループテンプレートを拡張することができる。リソースグループ内の名前は、パーティションにわたって固有でなければならない。すなわち、同じ名前が異なるリソースグループテンプレートまたはリソースグループ内で定義された場合、検証エラーが発生するだろう。
【００６３】
リソース・グループ・テンプレート：このエレメントがドメインレベルで定義され、アプリケーションおよびリソースを含んでいたとしても、パーティション内からリソースグループテンプレートを参照するすべてのリソースグループがすべてのリソースおよびアプリケーションを獲得しているので、論理的には、リソースグループテンプレートはパーティションのために指定された構成を含んでいる。
【００６４】
構成・プロパティ：このエレメントはプロパティキー値を含む。構成プロパティは、パーティションレベルでも、ドメインレベルでのリソースグループにおいても指定することができる。パーティション特有のオーバーライドのためのモデルとしては、パーティション特有にする必要のある最も共通する属性がパーティションの子構成エレメントに含まれているべきものとされ、これにより、顧客が、特定の構成エレメントを介して、共通して用いられているパーティション特有の構成を指定することがより容易になる。
【００６５】
パーティションの移植性
一実施形態に従うと、パーティションは、１つのドメイン（たとえばソースドメイン）からエクスポートされて、別のドメイン（たとえばターゲットドメイン）にインポートされ得る。パーティションをエクスポートすることにより、いずれのドメインをシャットダウンまたは再始動させる必要もなく、別のシステムにコピーしてターゲットドメインにイ
ンポートすることができるパーティションアーカイブが作成される。
【００６６】
パーティションおよびリソースグループの移行性
一実施形態に従うと、パーティション内のリソースグループは１つの仮想ターゲットから別の仮想ターゲットへと移行させることができ、これにより、保守性が可能になり得る。
【００６７】
テナントとパーティションとの関係
一実施形態に従うと、テナントは、たとえばフュージョン・アプリケーション（Fusion
Application：ＦＡ）またはフュージョン・ミドルウェア（Fusion Middleware：ＦＭＷ
）環境におけるアプリケーションサーバ環境外で定義することができる。
【００６８】
パーティションへのホストおよびＵＲＬのマッピング
一実施形態に従うと、各々のコンテナ／要求ハンドラは、パーティションコンテキストを確立して、それを、後で使用できるようにするために呼出しコンテキストマネージャ（ComponentInvocationContext Manager）へとプッシュすることができる。パーティションテーブルを用いることにより、コンテナがこれを実行することを、ホスト名／ポート／ＵＲＬからパーティション名へのマッピングを行なうことによって、支援することができる。パーティションへのマッピングは、ホスト名（しばしば、仮想ホスト名）；ポート番号；ＵＲＩパス・プレフィクスのうち１つ以上を一致させることによって達成することができる。パーティションは、（パーティションの利用可能なターゲットリストを介して）それに関連付けられた１つ以上の仮想ターゲットを有することができる。仮想ホストと同様に、仮想ターゲットは、１つ以上のホスト名、任意のＵＲＩパス・プレフィクスおよび任意のポート番号を指定する能力を提供する。入来要求がパーティションに関連付けられた仮想ターゲットのうちのいずれに関してもこの情報と一致する場合、要求がそのパーティションにおけるアプリケーションを対象としたものであると想定される。
【００６９】
パーティションリソースのターゲット設定
一実施形態に従うと、仮想ターゲットを用いることで、リソースグループのためのターゲットが仮想化され、これにより、物理リソースの如何なる属性をも備えることなくリソースグループ構成がポータブルにされ、これにより、システムアドミニストレータが、パーティションのクライアントに影響を及ぼすことなく、システムの物理的トポロジーを変更することが可能となる。ターゲット設定はリソースグループレベルで指定され、リソースグループに含まれるすべてのリソースに適用される。１セットの利用可能なターゲットとデフォルトターゲットとはパーティションレベルで指定することができる。仮想ターゲットは、管理されたサーバもしくはクラスタにターゲット設定することができるか、または、複数のサーバもしくはクラスタにターゲット設定することができ、かつ、同じパーティションにおける２つ以上のリソースグループによって共有可能である。
【００７０】
リソースグループが指定された複数のターゲットを有する場合、それらターゲットは、リソースグループ内に含まれるリソースのためのターゲットとして用いられることとなる。リソースグループが指定されたターゲットを有さない場合、但し、パーティションレベルでのデフォルトターゲットが設定されている場合、それは、リソースグループ内に含まれるすべてのリソースのためのターゲットとして用いられることとなる。リソースグループが指定されたターゲットを有さず、パーティションレベルでのデフォルトターゲットが設定されていない場合、リソースグループにおけるリソースはターゲット設定されないだろう。
【００７１】
単純な事例においては、１つのターゲットが存在する場合、または、すべてのリソースグループが１つのクラスタまたは管理されたサーバにターゲット設定されている場合、ク
ラスタまたは管理されたサーバは仮想ターゲットにおいて指定することができ、同じ仮想ターゲットがパーティションのためのデフォルトターゲットになり得る。このような場合、リソースグループは具体的には仮想ターゲットにターゲット設定される必要がない。
【００７２】
アプリケーションデプロイメントおよび構成
一実施形態に従うと、アプリケーションおよび共有ライブラリは、或るパーティション内の或るリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーションサーバによって提供されるデプロイメントプランメカニズムを用いて無効にすることができる。デプロイメントプランは、アプリケーションごとに、パーティションごとに、またはリソースグループの一部として、指定することができる。
【００７３】
ネットワーク層
一実施形態に従うと、システムは、入来要求をパーティションＩＤに関連付けるネットワーク層を含み得る。この関連付けは、http/httpsトラフィック、ＲＭＩ／Ｔ３、ＲＭＩ／ＩＩＯＰおよび他のプロトコルを含むすべてのネットワークプロトコルに対して行なうことができる。たとえば、要求ＵＲＬ（たとえば、仮想ターゲット／仮想ホストに加えて任意の経路）に基づいて、ネットワーク層は、要求についてのターゲットパーティションを決定し、決定されたパーティションＩＤを要求の実行コンテキストに追加することができる。各々のパーティションが固有の仮想ターゲットとネットワークアクセスポイント（network access point：ＮＡＰ）との組合せを用いるように構成されている場合、システムは、特定の仮想ターゲットについてのすべての要求を対応するパーティションにマッピングすることができる。そうではなく、パーティションが仮想ターゲットにおける同じホスト名を共有するように構成されている場合、ＵＲＩプレフィックスは仮想ターゲットのために定義することができ、このため、システムは、仮想ターゲットに加えて構成されたＵＲＩプレフィックスに基づいて適切なパーティションを決定することができるようになる。
【００７４】
ワークマネージャ
一実施形態に従うと、システムはパーティション認識型ワークマネージャを含み得る。各々のワークマネージャは、デッドロックを回避するように作業要求を処理するためのスレッドが常に利用可能になることを確実にするために最小限のスレッド制約と、要求を実行する同時発生的なスレッドの数を制限するために最大限のスレッド制約と共に、ワークロードを相対的に優先させて構成することができる。パーティション特有のワークマネージャは各パーティションごとに作成することができ、これにより、各々のパーティション内のアプリケーションが、その各パーティションについてそれらアプリケーション用に構成された公平なスレッドリソース使用量の共有割当て分を上回ることを確実に防ぐようにし得る。
【００７５】
セキュリティ領域
一実施形態に従うと、各々のパーティションはセキュリティ領域を参照することができる。領域はまた、複数のパーティションによって参照することもできる。要求がシステムに入力されると、システムは、仮想ターゲットから適切なパーティションを決定し、要求の実行コンテキストにパーティションＩＤを記憶させることができる。その後、認証または認可のアクションが必要になると、システムはパーティションＩＤを利用して、使用すべき適切な領域を決定することができる。
【００７６】
ＪＮＤＩ
一実施形態に従うと、パーティション認識型ＪＮＤＩフレームワークは、アプリケーションが、指名されたオブジェクトをバインドしてそれらをパーティション単位で検索することを可能にする。始動およびデプロイメント時間中に、アプリケーションサーバコンテ
ナは、各々のパーティション特有のアプリケーションを対応するパーティションＩＤに関連付けることができる。次いで、ＪＮＤＩフレームワークは、指名されたオブジェクトのバインドまたは照合中にそのパーティションＩＤを利用することができる。パーティション特有のオブジェクトは他のパーティションから分離させることができ、これにより、同じアプリケーションのうちのさまざまなインスタンスが、複数のパーティション特有のオブジェクトを同じＪＮＤＩ名で登録することが可能となる。
【００７７】
ネームスペースおよび範囲指定
一実施形態に従うと、パーティションのうち指名されたコンポーネント、たとえば、リソースグループ、アプリケーションは、パーティションに範囲指定することができる。パーティションはドメインに範囲指定される。リソースグループテンプレートは、ドメインにおいて定義されて範囲指定されるので、ドメインにわたって固有になるはずである。リソースグループテンプレートにおいて定義されたリソースおよびアプリケーションは、リソースグループテンプレートに範囲指定される。パーティションが２つ以上のリソースグループテンプレートを参照する場合、参照されているリソースグループテンプレートにおいて定義されているリソースの名前は、それらの間では一意となる必要がある。
【００７８】
実行時間ＭＢｅａｎｓ
一実施形態に従うと、ServerRuntimeMBeanは、実行時間ＭＢｅａｎツリーにおけるルートノードとして機能する。この階層は、クラスタ、サーバチャネル、ＪＴＡおよびアプリケーションリソースを含むアプリケーションサーバについてのすべての実行時間ＭＢｅａｎｓを含む。システムは、ServerRuntime MBeanに対する各々のパーティションのための
パーティション特有のブランチを含み得る。この場合、PartitionRuntimeMBeanが、ＪＭ
Ｓ、ＪＤＢＣ、デプロイメント、ＷＬＤＦ、コヒーレンスおよびコネクタを含むアプリケーションサーバサブシステムのためのコンポーネント特有のＭＢｅａｎｓを含むであろう場合も含まれる。パーティション特有のリソースのための実行時間ＭＢｅａｎｓは、ServerRuntime MBeanレベルのグローバルな階層にではなく、パーティション特有の階層に存
在しており、これにより、パーティション特有の監視および統計が可能となる。
【００７９】
ＲＥＳＴ管理ＡＰＩ
一実施形態に従うと、ＲＥＳＴインターフェイスを提供することができる。ＲＥＳＴｆｕｌリソースは、ミドルウェアの管理に有意な利点を提供している：すなわち、http/httpsプロトコルに依存するということは、標準的なファイアウォールおよびフロント・エンド・ホスト構成を用いてアクセスが可能化および制御され得ることを意味する。これは、特定のパーティションアドミニストレータが、アプリケーションサーバドメインによってサポートされている狭帯域の１スライスのポートおよびチャネルだけにしかアクセスできないような、ＭＴ環境においては特に重要である。
【００８０】
マルチ編集セッション
一実施形態に従うと、システムはマルチ編集セッションをサポートすることができる。パーティションアドミニストレータは、指名された特定の編集セッションにおけるパーティション関連の構成のうちのいずれかを変更することができる。ConfigurationManagerMBeanに関連付けられたＡＰＩは、パーティション特有の編集セッションの開始／保存／稼
働を可能にする。
【００８１】
エンド・ツー・エンドのライフサイクル管理
一実施形態に従うと、プロバイダは、たとえばOracle Traffic Director（ＯＴＤ）、
データベース、コヒーレンスまたはＪＭＳコンポーネントといった特定のアプリケーションを実行するのに必要なインフラストラクチャコンポーネントを有線接続するために用いることができる。たとえば、いくつかの実施形態においては、特定のアプリケーションに
ついてのパーティション特有のインスタンスは同じデータベースインスタンスを共有することができる。リソースグループテンプレートは、単一のデータベースインスタンスのためにドメインレベルのＪＤＢＣシステムリソースを参照することができ、そのリソースグループテンプレートを参照するすべてのパーティションは、次いで、同じデータベースインスタンスを用いることができる。一実施形態に従うと、或るアプリケーションのいくつかのパーティション特有インスタンスは、共通のスキーマまたは互換性のあるスキーマを用いてさまざまなデータベースインスタンスに接続することができる。リソースグループテンプレートは、構成ファイル（たとえばconfig.xml）のそれぞれのパーティションセクションにおいて指定されるべき構成のうちのいくらかを残して、ＪＤＢＣシステムリソースを公開することができる。データソースのためのこのようなパーティションレベル構成の例は、接続先のＵＲＬ、および／または、参照されたデータベースインスタンスへのアクセスを認証および認可するためのユーザクレデンシャルを含み得る。
【００８２】
一実施形態に従うと、データソースインプリメンテーションは、コンテナデータベース内の割当てられたＰＤＢに対する各々のパーティションのための別個の物理接続プールを作成することができ、これにより、ＰＤＢがアプリケーションサーバにとって別個のデータベースとして出現することが可能となり、さらに、各々のパーティションの特定のクレデンシャルを用いて、そのパーティションのプール内のパーティションのために１つ以上の接続を確立することが可能となる。代替的には、システムは、ＰＤＢ間の接続切換えをサポートすることができる。この場合、別個のＰＤＢは各々のパーティションごとに提供することができるが、但し、データソースインプリメンテーションは、ＰＤＢを所有するコンテナデータベースに対する単一の接続プールを共有する。アプリケーションがデータ要求を提出すると、パーティションのコンテキストにおいてそれが実行される。次いで、システムは、その接続に関する要求を実行する前に、パーティションＩＤを用いて、共有接続を正確なパーティションコンテキストに切換えることができる。
【００８３】
この発明は、この開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取可能記憶媒体を含む、１つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
【００８４】
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または（１つもしくは複数の）コンピュータ読取可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
【００８５】
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。
【図１】
2020074148.tif 000003
【図２】
2020074148.tif 000004
【図３】
2020074148.tif 000005
【図４】
2020074148.tif 000006
【図５】
2020074148.tif 000007
【図６】
2020074148.tif 000008
【図７】
2020074148.tif 000009
【図８】
2020074148.tif 000010
【手続補正書】
【提出日】令和2年2月5日(2020.2.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションサーバ環境においてパーティションをサポートするためのシステムであって、
１つ以上のコンピュータを含み、前記１つ以上のコンピュータの各々は、プロセッサと、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするアプリケーションサーバ環境とを含み、前記アプリケーションサーバ環境は、ドメイン構成に従って動作し、前記ドメイン構成は、実行時に、ソフトウェアアプリケーションの実行のためのドメインと、前記ドメインの複数のパーティションと、１つ以上のドメインレベルのリソースグループとを定義し、前記複数のパーティションは、第１のパーティションと第２のパーティションとを含み、
前記複数のパーティションの各々のパーティションは、パーティション識別子およびパーティション構成に関連付けられ、前記ドメインの管理および実行時間下位区分を提供し、パーティションレベルのリソースグループを含み得るとともに、
前記ドメインレベルのリソースグループおよび前記パーティションレベルのリソースグループの各々のリソースグループは、ドメインレベルまたはパーティションレベルでそれぞれ定義され得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、
特定のリソースグループは、前記特定のリソースグループがデプロイされるべきであるターゲットを定義する仮想ターゲット情報に関連付けることができ、
前記第１のパーティションは、１つ以上のアプリケーションを含む第１のパーティションレベルのリソースグループを含むように構成され、第１の仮想ターゲットを介してアクセス可能であり、
前記第２のパーティションは、１つ以上のアプリケーションを含む第２のパーティションレベルのリソースグループを含むように構成され、第２の仮想ターゲットを介してアクセス可能であり、
特定のパーティション内に含まれるパーティションレベルのリソースグループに関連付けられた仮想ターゲットは、前記特定のパーティションのための要求を向けることに用いるために、１つ以上のサーバーにマッピングされ、特定のパーティションにデプロイされたソフトウェアアプリケーションは、前記特定のパーティションに関連付けられた仮想ターゲットで実行する、システム。
【請求項２】
前記システムは、テナントによって使用されるように、１つ以上のパーティションを前記テナントに関連付けることができる、請求項１に記載のシステム。
【請求項３】
特定のリソースグループは、１つ以上の関連するアプリケーションを、前記１つ以上の関連するアプリケーションが依存するリソースと共に含むリソースグループテンプレートを参照できる、請求項１または２に記載のシステム。
【請求項４】
前記複数のパーティションの各々のパーティションは、ローカルのネームスペースに関連付けることができる、請求項１から３のいずれかに記載のシステム。
【請求項５】
各々のパーティション識別子に関連付けることができ、これにより、複数の要求を複数の適切なパーティションに伝達することができるように前記システムがパーティションコンテキストを決定することが可能になる、請求項１から４のいずれかに記載のシステム。
【請求項６】
前記システムは、複数のテナントをクラウド環境内の複数のパーティションと関連付けさせるように前記クラウド環境内に提供される、請求項１から５のいずれかに記載のシステム。
【請求項７】
前記システムは、前記パーティション構成の変更のための編集セッションを提供する、請求項１から６のいずれかに記載のシステム。
【請求項８】
各々の特定のリソースグループまたは特定のリソースグループを含む特定のパーティションのために、ウェブ層コンポーネントはルーティング情報を含み、前記ルーティング情報は、前記特定のリソースグループまたは特定のパーティションに関連付けられた前記仮想ターゲットをそれに対応するターゲットにマッピングして、これにより、前記特定のパーティションのための複数の要求が適切なターゲットに向けられるようにする、請求項１から７のいずれかに記載のシステム。
【請求項９】
前記ドメインの各々の特定のパーティションは、前記特定のパーティションのために、ホスト名またはユニフォーム・リソース・ロケータの少なくとも１つと関連付けられた１つ以上のパーティション特有の仮想ターゲットを定義する仮想ターゲット情報を含み、
入来要求が前記特定のパーティションのために定義される前記パーティション特有の仮想ターゲットに関連付けられた前記ホスト名またはユニフォーム・リソース・ロケータのいずれかと一致する場合、前記要求が前記特定のパーティションにおけるソフトウェアアプリケーションに向けられたものであると決定され、前記要求がそれに応じてルーティングされる、請求項１に記載のシステム。
【請求項１０】
１つ以上のリソースグループを有する前記特定のパーティションがリソースグループテンプレートを参照する場合、前記特定のパーティションは、前記リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするように動作する構成データを定義する、請求項１に記載のシステム。
【請求項１１】
アプリケーションサーバ環境においてパーティションをサポートするための方法であって、
プロセッサを含む１つ以上のコンピュータにおいて、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするアプリケーションサーバ環境を提供するステップを含み、前記アプリケーションサーバ環境は、ドメイン構成に従って動作し、前記ドメイン構成は、実行時に、ソフトウェアアプリケーションの実行のためのドメインと、前記ドメインの複数のパーティションと、１つ以上のドメインレベルのリソースグループとを定義し、前記複数のパーティションは、第１のパーティションと第２のパーティションとを含み、
前記複数のパーティションの各々のパーティションは、パーティション識別子およびパーティション構成に関連付けられ、前記ドメインの管理および実行時間下位区分を提供し、パーティションレベルのリソースグループを含み得るとともに、
前記ドメインレベルのリソースグループおよび前記パーティションレベルのリソースグループの各々のリソースグループは、ドメインレベルまたはパーティションレベルでそれぞれ定義され得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、前記方法は、
特定のリソースグループを、前記特定のリソースグループがデプロイされるべきであるターゲットを定義する仮想ターゲット情報に関連付けるステップを含み、
前記第１のパーティションは、１つ以上のアプリケーションを含む第１のパーティションレベルのリソースグループを含むように構成され、第１の仮想ターゲットを介してアクセス可能であり、
前記第２のパーティションは、１つ以上のアプリケーションを含む第２のパーティションレベルのリソースグループを含むように構成され、第２の仮想ターゲットを介してアクセス可能であり、前記方法は、
特定のパーティション内に含まれるパーティションレベルのリソースグループに関連付けられた仮想ターゲットを、前記特定のパーティションのための要求を向けることに用いるために、１つ以上のサーバーにマッピングするステップを含み、特定のパーティションにデプロイされたソフトウェアアプリケーションは、前記特定のパーティションに関連付けられた仮想ターゲットで実行する、方法。
【請求項１２】
プログラム命令を機械読取り可能フォーマットで含むコンピュータプログラムであって、前記プログラム命令は、コンピュータシステムによって実行されると、前記コンピュータシステムに、請求項１１に記載の方法を実行させる、コンピュータプログラム。
【外国語明細書】
2020074148000001.pdf