JP6703527B2 - マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法 - Google Patents

マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法 Download PDF

Info

Publication number
JP6703527B2
JP6703527B2 JP2017516313A JP2017516313A JP6703527B2 JP 6703527 B2 JP6703527 B2 JP 6703527B2 JP 2017516313 A JP2017516313 A JP 2017516313A JP 2017516313 A JP2017516313 A JP 2017516313A JP 6703527 B2 JP6703527 B2 JP 6703527B2
Authority
JP
Japan
Prior art keywords
partition
component invocation
invocation context
context
manager
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017516313A
Other languages
English (en)
Other versions
JP2017528845A (ja
JP2017528845A5 (ja
Inventor
サホー,サンジープ
ティヤガラジャン,シバクマール
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2017528845A publication Critical patent/JP2017528845A/ja
Publication of JP2017528845A5 publication Critical patent/JP2017528845A5/ja
Application granted granted Critical
Publication of JP6703527B2 publication Critical patent/JP6703527B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

著作権表示
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法に関する。
背景:
アプリケーションサーバは、概して、ソフトウェアアプリケーションをデプロイして実行することができる管理された環境を提供する。クラウドベースの環境は、クラウドによって提供される分散型リソース内でアプリケーションを実行して、当該分散型リソースを利用することを可能にする。このような環境は、多くのユーザまたはテナントをサポートすることができ、それらのうちのいくつかは、そのユーザまたはテナントに特有の特定条件を有する可能性がある。
概要:
一実施形態に従って、アプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法が本明細書に記載される。例示的な方法は、アプリケーションサーバ環境が実行される1つ以上のコンピュータに、アプリケーションサーバ環境内で使用可能な複数のデプロイ可能なリソースと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと、コンポーネント呼び出しコンテキストマネージャとをともに設けるステップから開始することができ、コンポーネント呼び出しコンテキストマネージャはスタックを備える。当該方法は、パーティション認識型コンテナにおいて1つ以上のコンポーネント呼び出しコンテキストを設定することができる。パーティション認識型コンテナは、現在のコンポーネント呼び出しコンテキストをコンポーネント呼び出しコンテキストマネージャに登録すること、または、コンポーネント呼び出しコンテキストマネージャにおいて現在のコンポーネント呼び出しコンテキストを探索することのうちの1つを実行することができる。現在のコンポーネント呼び出しコンテキストは、現在のパーティションに関連付けることができる。
一実施形態に従うと、マルチテナント動作環境のコンテキストにおいて本明細書に記載されている方法およびシステムは、サーブレットがEJBコンテナをコールする例に下記されるように、非マルチテナント動作環境内でも使用することができる。
一実施形態に従うと、WebLogic環境におけるドメイン内のパーティションなどのパーティションは、ドメイン内のテナントとして位置決めすることができる。本システムおよび方法は、一般的な態様(すなわち、当該システムおよび方法がマルチテナントアプリケーションサーバ環境内でも非マルチテナントアプリケーションサーバ環境内でもテナント要求を識別できることを一般的に意味する)でのテナント要求の早期の識別を可能にすることができる。
一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。 一実施形態に従った例示的なマルチテナント環境をさらに示す図である。 一実施形態に従ったマルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定を示す図である。 一実施形態に従ったマルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定を示す図である。 一実施形態に従ったマルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定を示す図である。 一実施形態に従ったマルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のための方法をフローチャートによって示す図である。
詳細な説明:
一実施形態に従って、アプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法が本明細書に記載される。例示的な方法は、アプリケーションサーバ環境が実行される1つ以上のコンピュータに、アプリケーションサーバ環境内で使用可能な複数のデプロイ可能なリソースと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと、コンポーネント呼び出しコンテキストマネージャとをともに設けるステップから開始することができ、コンポーネント呼び出しコンテキストマネージャはスタックを備える。当該方法は、パーティション認識型コンテナにおいて1つ以上のコンポーネント呼び出しコンテキストを設定することができる。パーティション認識型コンテナは、現在のコンポーネント呼び出しコンテキストをコンポーネント呼び出しコンテキストマネージャに登録すること、または、コンポーネント呼び出しコンテキストマネージャにおいて現在のコンポーネント呼び出しコンテキストを探索することのうちの1つを実行することができる。現在のコンポーネント呼び出しコンテキストは、現在のパーティションに関連付けることができる。
一実施形態に従うと、マルチテナント動作環境のコンテキストにおいて本明細書に記載されている方法およびシステムは、サーブレットがEJBコンテナをコールする例に下記されるように、非マルチテナント動作環境内でも使用することができる。
一実施形態に従うと、WebLogic環境におけるドメイン内のパーティションなどのパーティションは、ドメイン内のテナントとして位置決めすることができる。本システムおよび方法は、一般的な態様(すなわち、当該システムおよび方法がマルチテナントアプリケーションサーバ環境内でも非マルチテナントアプリケーションサーバ環境内でもテナント要求を識別できることを一般的に意味する)でのテナント要求の早期の識別を可能にすることができる。
アプリケーションサーバ(たとえば、マルチテナント(Multi-Tenant:MT))環境
図1は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
図1に示されるように、一実施形態に従うと、アプリケーションサーバ(たとえばマルチテナント(MT))環境100または他のコンピューティング環境は、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするものであって、アプリケーションサーバドメインを定義するためにランタイム時に用いられるドメイン102の構成を含み、当該ドメイン102の構成に従って動作するように構成することができる。
一実施形態に従うと、アプリケーションサーバは、ランタイム時に使用されるよう定義される1つ以上のパーティション104を含み得る。各々のパーティションは、グローバルユニークパーティション識別子(identifier:ID)およびパーティション構成に関連付けることができ、さらに、リソースグループテンプレートの参照126および/またはパーティション特有のアプリケーションもしくはリソース128とともに、1つ以上のリソースグループ124を含み得る。ドメインレベルのリソースグループ、アプリケーションおよび/またはリソース140も、任意にはリソースグループテンプレートの参照とともに、ドメインレベルで定義することができる。
各々のリソースグループテンプレート160は、1つ以上のアプリケーションA162、B164、リソースA166、B168および/または他のデプロイ可能なアプリケーションもしくはリソース170を定義することができ、リソースグループによって参照することができる。たとえば、図1に例示されるように、パーティション104におけるリソースグループ124は、リソースグループテンプレート160を参照する(190)ことができる。
概して、システムアドミニストレータは、パーティション、ドメインレベルのリソースグループおよびリソースグループテンプレート、ならびにセキュリティ領域を定義することができるとともに、パーティションアドミニストレータは、たとえば、パーティションレベルのリソースグループを作成するか、アプリケーションをパーティションにデプロイするかまたはパーティションについての特定の領域を参照することによって、それら自体のパーティションのアスペクトを定義することができる。
図2は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
図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を定義することができる。
図2に例示されるリソースグループテンプレートが一例として提供される。他の実施形態に従うと、さまざまなタイプのリソースグループテンプレートおよび要素を提供することができる。
一実施形態に従うと、パーティション(たとえば202)内のリソースグループが、特定のリソースグループテンプレート(たとえば210)を参照する(220)と、パーティション特有の情報230(たとえば、パーティション特有のPDB情報)を示すために、特定のパーティションに関連付けられた情報を、参照されたリソースグループテンプレートと組合わせて用いることができる。次いで、パーティション特有の情報は、パーティションによって使用されるリソース(たとえば、PDBリソース)を構成するようにアプリケーションサーバによって使用可能である。たとえば、パーティション202に関連付けられたパーティション特有のPDB情報は、そのパーティションによって使用されるべき適切なPDB238または他のデータソースを備えたコンテナデータベース(container database:CDB)236を構成する(232)ようにアプリケーションサーバによって使用可能である。
同様に、一実施形態に従うと、特定のパーティションに関連付けられた仮想ターゲット情報を用いて、そのパーティションによって使用されるべきパーティション特有の仮想ターゲット240(たとえば、ユニフォーム・リソース・ロケータ(uniform resource locator:URL)(たとえば、http://baylandurgentcare.com)によってアクセス可能にすることができるbaylandurgentcare.com)を定義する(239)ことができる。
図3は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
一実施形態に従うと、config.xml構成ファイルなどのシステム構成を用いて、パーティションを定義する。当該パーティションは、そのパーティションに関連付けられたリソースグループについての構成エレメントおよび/または他のパーティションプロパティを含む。値は、プロパティ名/値の対を用いてパーティションごとに指定することができる。
一実施形態に従うと、複数のパーティションは、管理されたサーバ/クラスタ242内で、または、CDB243にアクセス可能でありかつウェブ層244を介してアクセス可能である同様の環境内で、実行することができる。これにより、たとえば、ドメインまたはパーティションを(CDBの)PDBのうち1つ以上のPDBに関連付けることが可能となる。
一実施形態に従うと、複数のパーティションの各々、この例においてはパーティション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を介してアクセス可能である。
上述の例のうちいくつかはCDBおよびPDBの使用を例示しているが、他の実施形態に従うと、他のタイプのマルチテナントのデータベースまたは非マルチテナントのデータベースをサポートすることができる。この場合、特定の構成は、たとえば、スキーマを使用するかまたはさまざまなデータベースを使用することによって、各々のパーティションのために提供することができる。
リソース
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトであり得る。たとえば、一実施形態に従うと、リソースは、アプリケーション、JMS、JDBC、JavaMail、WLDFもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
パーティション
一実施形態に従うと、パーティションは、パーティション識別子(partition identifier:ID)および構成に関連付けられ得るドメインのうちランタイムおよび管理の区分またはスライスであるとともに、アプリケーションを含み得て、ならびに/または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。パーティションは、テナントまたはプラットフォームテナントにも関連付けることができる。
一実施形態に従うと、パーティションは、アプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。
一実施形態に従うと、パーティション内のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。
一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション(partition)」(そのパーティションを定義する属性および子エレメントを含む);「リソース・グループ(resource-group)」(パーティションにデプロイされるアプリケーションおよびリソースを含む);「リソース・グループ・テンプレート(resource-group-template)」(そのテンプレートによって定義されるアプリケーションおよびリソースを含む);「jdbc・システム・リソース・無効化(jdbc-system-resource-override)」(データベース特有のサービス名、ユーザ名およびパスワードを含む);ならびに、「パーティション・プロパティ(partition-properties)」(リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む)を含む。
始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。
リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
パーティションレベルでは、アドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて0個以上のリソースグループを構成することができる。たとえば、SaaS使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。PaaS使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。
リソースグループテンプレート
一実施形態に従うと、ドメインは、任意に、リソースグループテンプレートを含み得る。リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、1つ以上の関連するJavaアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。
一実施形態に従うと、特定のリソースグループテンプレートは、1つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に1つのリソースグループによって参照することができる。すなわち、同じパーティション内で複数のリソースグループによって同時に参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名/値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション/テンプレートの組合せごとにランタイム構成を生成することができる。
テナント
一実施形態に従うと、テナントは、パーティションIDに関連付けることができる。たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、または特定の企業内のさまざまな部門(たとえばHRおよび財務部)などに関連付けることができる。
一実施形態に従うと、システムは、互いに異なるテナント(すなわちパーティション)の管理およびランタイムを分離することを可能にする。たとえば、(たとえばパーティションユーザ組織の)認定ユーザは、関連付けられたパーティションにおけるアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、テナント間の分離を確実にし、かつ、ランタイム時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。
例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。デプロイメントプランはまた、リソースグループの一部として指定することができる。
図4は、一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す。
一実施形態に従うと、システムがパーティションを始動させると、当該システムは、提供された構成に従って、それぞれのデータベースインスタンスに対して、各パーティションごとに1つずつ、仮想ターゲット(たとえば仮想ホスト)および接続プールを作成する。
典型的には、各々のリソースグループテンプレートは、1つ以上の関連するアプリケーションと、それらアプリケーションが依存するリソースとを含み得る。各々のパーティションは、それが参照するリソースグループテンプレートにおいて指定されていない構成データを提供することができるが、これは、場合によっては、リソースグループテンプレートによって指定されるいくつかの構成情報を無効にすることを含めて、パーティションに関連付けられた特定値に対するリソースグループテンプレートにおけるデプロイ可能なリソースのバインディングを行なうことによって、実行可能である。これにより、システムは、各々のパーティションが定義したプロパティ値を用いて、パーティション毎にリソースグループテンプレートによってさまざまに表わされるアプリケーションを始動させることができる。
いくつかのインスタンスにおいては、パーティションが含み得るリソースグループは、リソースグループテンプレートを参照しないか、または、それら自体のパーティション範囲指定されたデプロイ可能なリソースを直接定義する。パーティション内で定義されるアプリケーションおよびデータソースは、概して、そのパーティションにとってのみ利用可能である。リソースは、パーティション:<partitionName>/<resource JNDI name>、またはドメイン:<resource JNDI name>を用いて、パーティションの中からアクセスすることができるようにデプロイ可能である。
たとえば、MedRecアプリケーションは、複数のJavaアプリケーション、データソース、JMSサーバおよびメールセッションを含み得る。複数のテナントのためにMedRecアプリケーションを実行させるために、システムアドミニストレータは、テンプレートにおけるそれらのデプロイ可能なリソースを公開している単一のMedRecリソースグループテンプレート286を定義することができる。
ドメインレベルのデプロイ可能なリソースとは対照的に、リソースグループテンプレートにおいて公開されたデプロイ可能なリソースは、テンプレートにおいて完全には構成されない可能性があるか、または、いくつかの構成情報が不足しているので、そのままでは起動させることができない。
たとえば、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)ことができる。
図5は、一実施形態に従った例示的なマルチテナント環境をさらに示す。図5に示されるように、2つのパーティションがMedRecリソースグループテンプレートを参照している上述の例から引続いて、一実施形態に従うと、サーブレットエンジン310は、この例においてはBayland Urgent Careの医師テナント環境320およびValley Healthの医師テナント環境330といった複数のテナント環境をサポートするために用いることができる。
一実施形態に従うと、各々のパーティション321,331は、そのテナント環境についての入来トラフィックを受入れるための異なる仮想ターゲットと、異なるURL322,332とを定義することができる。異なるURL322,332は、パーティションと、この例ではBayland Urgent CareデータベースまたはValley Healthデータベースを含むそれぞれのリソース324,334とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
パーティション識別子
一実施形態に従うと、アプリケーションサーバ環境内で、JNDI(Javaネーミングおよびディレクトリインターフェイス)、JMX(Java管理拡張機能)、ロギング、ウェブコンテナおよびRCM(リソース消費管理)などのコンテナは、現在のまたは実行中の要求のパーティションIDをパーティション特有の処理、ロギングおよび分離ニーズに合わせて使用するために当該パーティションIDを決定することができる。
一実施形態に従うと、コンポーネント呼び出し要求または一般にアプリケーションサーバで受信されるその他の要求のために、ドメインにおけるパーティション内には当該要求のターゲットリソースが存在し得る。ターゲットリソース(すなわち要求のターゲットリソース)が存在するパーティションは、当該要求のためのパーティションコンテキストを決定することができる。
一実施形態に従うと、内部サーバ動作は、さまざまに処理されることができる。たとえば、内部サーバ動作は、特にドメイン内の特定の/個々のパーティション(たとえばパーティションに属するログファイルの回転)のために実行されることができる。このような内部サーバ動作では、パーティションコンテキストは、ターゲットリソースが存在するパーティションではなく、動作が実行されているパーティションであり得る。
一実施形態に従うと、他の内部サーバ動作は、任意の個々の/特定のパーティションに起因するものではない。このような内部サーバ動作としては、サーバランタイムの初期化および/または終了、コンテナのロードなどが挙げられるが、それらに限定されるものではない。特定のパーティションに起因しないこのような動作では、パーティションコンテキストは一般的な値に設定することができる。
図6は、一実施形態に従ったアプリケーションサーバ環境におけるパーティション識別子の決定を示す。図6に示される実施形態では、アプリケーションサーバ環境600は、ドメイン620を含む。ドメイン620は、フロントエンドコンポーネント630に関連付けることができ、コンテナ640と、CIC(コンポーネント呼び出しコンテキスト)API645と、コンポーネント呼び出しコンテキストマネージャ(CICマネージャ)650と、パーティションA660と、パーティションB670と、仮想ターゲットA662と、仮想ターゲットB672とを含み得る。フロントエンドコンポーネントは、たとえばオラクル(商標)トラフィックディレクタなどの、入来要求を処理することができる任意のフロントエンドコンポーネントであり得る。コンテナ640は、たとえばJNDI、JMX、ロギング、RCMなどのパーティション認識型コンテナであり得る。パーティションAおよびBは、それぞれリソースグループ661および671を含み得る。リソースグループ661および671は、それぞれ仮想ターゲットA662および仮想ターゲットB672に関連付けることができる。CICマネージャ650は、スレッドローカルスタック651などのスタックを含み得る。
一実施形態に従うと、ユーザまたはプロセス610は、要求615を開始することができ、当該要求は、ドメイン620内の当該要求のターゲットのためのターゲット情報を含む。たとえば、パーティションA660の認定ユーザは、パーティションA内の特定のアプリケーションを実行するよう要求することができる。この状況において、要求615に関連付けられたターゲット情報は、少なくともパーティションAを要求のターゲットとして識別するであろう。
一実施形態に従うと、ターゲット情報615を含む要求などの要求がドメイン620に向けられると、当該要求はトラフィックディレクタなどのフロントエンドコンポーネント630に転送されることができる。フロントエンドコンポーネント630で受信されると、コンテナ640は、要求のターゲットコンポーネント/リソースのさまざまな詳細を決定することができる。これらの詳細は、たとえば、要求内に含まれるターゲット情報を調べることによって取得することができる。コンテナ640が要求のターゲットコンポーネント/リソースを決定すると、コンテナはコンポーネント呼び出しコンテキスト652を作成することができ、当該コンポーネント呼び出しコンテキスト652は、呼び出しを表わすオブジェクトとして返すことができる。一実施形態に従うと、決定されたコンポーネント呼び出しコンテキスト652は、要求次第で、パーティション識別子665または675に関連付けることができる。
入来要求の詳細を決定してコンポーネント呼び出しコンテキストオブジェクトを作成するコンテナの一例として、入来要求615がHTTP要求であるとする。入来HTTP要求のURIを介して、ウェブ(HTTP)コンテナは、HTTP要求がターゲットとするパーティションID、アプリケーションID、モジュールおよびコンポーネントIDを決定することができる。この決定は、たとえば、要求のターゲットを区別できるように十分な情報が要求から読取られた後にHTTPプロトコルハンドラによってソケットリーダスレッドにおいて行うことができる。この情報に基づいて、コンテナは、入来HTTP要求のためのオブジェクト、すなわちコンポーネント呼び出しコンテキストを作成することができる。
一実施形態に従うと、要求がドメイン620に向けられると、当該要求はトラフィックディレクタなどのフロントエンドコンポーネント630に転送されることができる。フロントエンドコンポーネント630で受信されると、コンテナ640は、要求のターゲットコンポーネント/リソースのさまざまな詳細を決定することができる。これらの詳細は、たとえば、要求内に含まれるターゲット情報を調べることによって取得することができる。コンテナ640が要求のターゲットコンポーネント/リソースを決定すると、コンテナはコンポーネント呼び出しコンテキスト652を作成することができ、当該コンポーネント呼び出しコンテキスト652は、呼び出しを表わすためのオブジェクトであり得る。一実施形態に従うと、決定されたコンポーネント呼び出しコンテキスト652は、パーティション識別子665または675に関連付けることができる。
一実施形態に従うと、コンテナが決定を行って入来要求のコンポーネント呼び出しコンテキスト、すなわちオブジェクトを作成すると、コンテナは、次いで、コンポーネント呼び出しコンテキストをコンポーネント呼び出しコンテキストマネージャ650に登録することができ、当該コンポーネント呼び出しコンテキストマネージャ650は、スタック、たとえばスレッドローカルスタック651を含み得て、当該スレッドローカルスタック651は、さらには、さまざまなコンポーネント呼び出しコンテキスト、たとえばコンポーネント呼び出しコンテキスト(A)〜(D)652〜655を含む。なお、スレッドローカルスタック651は、コンポーネント呼び出しコンテキストをいくつ含んでもよく、図6に示される4つのコンポーネント呼び出しコンテキストに限定されるものではない。コンポーネント呼び出しコンテキストマネージャ650は、現在のコンポーネント呼び出しコンテキストの探索、登録および登録解除を可能にすることができる。
一実施形態に従うと、コンテナは、CIC API645を介してコンポーネント呼び出しコンテキストオブジェクトをコンポーネント呼び出しコンテキストマネージャに直接登録することができる。コンテナは、このコンポーネント呼び出しコンテキストの直接的な登録を、要求のための決定されたコンポーネント呼び出しコンテキストをプッシュするためのpushComponentInvocationContextなどのコマンドを用いて実現することができる。このような新たなコンポーネント呼び出しコンテキストをコンポーネント呼び出しコンテキストマネージャに登録する方法を利用するコンテナは、要求に関連付けられた呼び出しが完了するとコンポーネント呼び出しコンテキストの設定解除/登録解除も処理することができる。呼び出しが成功裏に完了して初めてコンテナがコンポーネント呼び出しコンテキストマネージャにおけるコンポーネント呼び出しコンテキストを登録解除/設定解除することは、必要条件ではない。呼び出しの結果として例外処理が実行されるなど、呼び出しが失敗に終わったことによっても、コンテナは、コンポーネント呼び出しマネージャにおけるコンポーネント呼び出しコンテキストの設定解除/登録解除を行うことができる。コンポーネント呼び出しコンテキストマネージャにおけるコンポーネント呼び出しコンテキストの設定解除/登録解除は、コンポーネント呼び出しコンテキストマネージャ上でpopComponentInvocationContetなどのコマンドを介して実行することができる。
一実施形態に従うと、コンテナは、CIC API645を介してコンポーネント呼び出しコンテキストオブジェクトをコンポーネント呼び出しコンテキストマネージャに直接登録することができる。コンテナは、実行すべきcallabeを渡すことによってrunAs方法を使用することができる。この状況において、コンポーネント呼び出しコンテキストマネージャは、コンポーネント呼び出しコンテキストを確立することができる。これにより、コンテナは、コンポーネント呼び出しコンテキストのコンテキストにおいて動作を起動し、動作を実行し、呼び出しが完了した後にコンポーネント呼び出しコンテキストを設定解除することが可能になる。
一実施形態に従うと、コンテナは、CIC API645を介してコンポーネント呼び出しコンテキストオブジェクトをコンポーネント呼び出しコンテキストマネージャに直接登録することができる。コンテナは、try-with-resourcesスタイルブロック内のsetCurrentComponentInvocationContext方法によって返されるAutoCloseableを使用することができる。この場合、CICマネージャは、AutoCloseableによるtryブロックの終了時に自動的に呼び出しコンテキストを設定解除することができる。このアプローチは、作業の実行中にCICマネージャが正しいCICコンテキストを確立するという利点がありながらも、呼び出し元が作業をRunnableまたはCloseableに変更する必要がないなどの利点を提供することができる。
図7は、一実施形態に従ったアプリケーションサーバ環境におけるパーティション識別子の決定を示す。図7に示される実施形態では、アプリケーションサーバ環境600は、ドメイン620を含む。ドメイン620は、フロントエンドコンポーネント630に関連付けることができ、コンテナ640を含み得て、当該コンテナ640は、サービスプロバイダインターフェイス720を含み得る。ドメインは、ワークマネージャ730と、コンポーネント呼び出しコンテキストマネージャ(CICマネージャ)650と、パーティションA660と、パーティションB670と、仮想ターゲットA662と、仮想ターゲットB672とをさらに含み得る。フロントエンドコンポーネントは、たとえばオラクル(商標)トラフィックディレクタなどの、入来要求を処理することができる任意のフロントエンドコンポーネントであり得る。コンテナ640は、たとえばJNDI、JMX、ロギング、RCMなどのパーティション認識型コンテナであり得る。パーティションAおよびBは、それぞれリソースグループ661および671を含み得る。リソースグループ661および671は、それぞれ仮想ターゲットA662および仮想ターゲットB672に関連付けることができる。CICマネージャ650は、スレッドローカルスタック651などのスタックを含み得る。
一実施形態に従うと、ユーザは、要求615を開始することができ、当該要求は、ドメイン620内の要求のターゲットのターゲット情報を含む。たとえば、ユーザ、プロセッサ、またはパーティションA660へのアクセスを有する他のアプリケーションは、パーティションA内の特定のアプリケーションを実行するよう要求することができる。この状況において、要求615に関連付けられたターゲット情報は、少なくともパーティションAを要求のターゲットとして識別するであろう。要求が(同一のドメイン内または別のドメインからの)別のパーティションから生じる状況においては、発生元のパーティションのコンポーネント呼び出しコンテキストは要求に含まれない。
一実施形態に従うと、ターゲット情報615を含む要求などの要求がドメイン620に向けられると、当該要求はトラフィックディレクタなどのフロントエンドコンポーネント630に転送されることができる。フロントエンドコンポーネント630で受信されると、コンテナ640は、要求のターゲットコンポーネント/リソースのさまざまな詳細を決定することができる。これらの詳細は、たとえば、要求内に含まれるターゲット情報を調べることによって取得することができる。コンテナ640が要求のターゲットコンポーネント/リソースを決定すると、コンテナはコンポーネント呼び出しコンテキスト652を作成することができ、当該コンポーネント呼び出しコンテキスト652は、呼び出しを表わすためのオブジェクトであり得る。一実施形態に従うと、決定されたコンポーネント呼び出しコンテキスト652は、要求次第で、パーティション識別子665または675に関連付けることができる。
一実施形態に従うと、コンテナが決定を行って入来要求のコンポーネント呼び出しコンテキスト、すなわちオブジェクトを作成すると、コンテナは、コンポーネント呼び出しコンテキストをコンポーネント呼び出しコンテキストマネージャ650に間接的に登録することができ、当該コンポーネント呼び出しコンテキストマネージャ650は、スレッドローカルスタック651などのスタックを含み得て、当該スレッドローカルスタック651は、さらには、さまざまなコンポーネント呼び出しコンテキスト、たとえばコンポーネント呼び出しコンテキスト(A)〜(D)652〜655を含む。スレッドローカルスタック651は、コンポーネント呼び出しコンテキストをいくつ含んでもよく、図7に示される4つのコンポーネント呼び出しコンテキストに限定されるものではない。コンポーネント呼び出しコンテキストマネージャ650は、現在のコンポーネント呼び出しコンテキストの探索、登録および登録解除を可能にすることができる。
一実施形態に従うと、コンポーネント呼び出しコンテキストの間接的な登録は、ワークマネージャ730によって実行することができる。たとえば、コンテナ640は、ワークマネージャ730を介して別個のスレッドにおいて非同期的に要求の次のレベルの処理をディスパッチすることができる。SPIは、スレッドにおけるコンポーネントコンテキストの設定を容易にすることができる。コンポーネント要求インターフェイス710は、コンテナ640によって提供されることができ、それ自体のコンポーネント呼び出しコンテキストに従って、要求に関連付けられた作業を実行することを可能にすることができる。コンポーネント要求インターフェイス710は、コンテナがターゲットコンポーネントの詳細(すなわちコンポーネント呼び出しコンテキスト戻り値)を提供するためのgetComponentInvocationContextなどのコマンドも含み得る。コンポーネント要求710インスタンスが実行される前に、ワークマネージャ730は、コンポーネント呼び出しコンテキストマネージャ650を探索して、getComponentInvocationContextコマンドによって提供されるコンポーネント呼び出しコンテキストを用いて新たなコンポーネント呼び出しコンテキストを登録することができる。コンポーネント要求710インスタンスの実行が完了すると、ワークマネージャ730は、コンポーネント呼び出しコンテキストマネージャからコンポーネント呼び出しコンテキストを自動的に除去することができる。
一実施形態に従うと、CICマネージャは、現在の呼び出し要求のためのスレッドローカルスタックを用いることによってスレッドごとにCIC状態を維持することができる。なぜなら、要求は一般に単一のスレッドに関連付けられるからである。要求に対する作業が複数のスレッドによって処理される状況においては、異なるスレッドにおいて作業を実行するコンテナは、上記のgetComponentInvocationContextコマンドを利用して、スレッドのCICを新たなスレッドに渡すことを確実にすることができる。
図8は、一実施形態に従ったアプリケーションサーバ環境におけるパーティション識別子の決定を示す。図8に示される実施形態では、アプリケーションサーバ環境600は、ドメイン620を含む。ドメイン620は、フロントエンドコンポーネント630と、コンテナ640と、CIC API645と、コンポーネント呼び出しコンテキストマネージャ(CICマネージャ)650と、パーティションA660と、パーティションB670と、仮想ターゲットA662と、仮想ターゲットB672とを含む。フロントエンドコンポーネントは、たとえばオラクル(商標)トラフィックディレクタなどの、入来要求を処理することができる任意のフロントエンドコンポーネントであり得る。コンテナ640は、たとえばJNDI、JMX、ロギング、RCMなどのパーティション認識型コンテナであり得る。パーティションAおよびBは、それぞれリソースグループ661および671を含み得る。リソースグループ661および671は、それぞれ仮想ターゲットA662および仮想ターゲットB672に関連付けることができる。CICマネージャ650は、スレッドローカルスタック651などのスタックを含み得る。
一実施形態に従うと、コンテナ640は、getCurrentComponentInvocationなどのコマンドによってAPI645を介してコンポーネント呼び出しマネージャから現在のコンポーネント呼び出しコンテキストを検索することができる。たとえば、図8に示されるように、コンポーネント呼び出しコンテキストマネージャは、考えられるコンポーネント呼び出しコンテキスト、たとえばコンポーネント呼び出しコンテキスト(A)〜(D)652〜655の中から、現在はコンポーネント呼び出しコンテキスト652に設定されている。コンテナ640は、API645を介してコンポーネント呼び出しコンテキストマネージャ650から現在のコンポーネント呼び出しコンテキスト810を得ることができる。
図9は、一実施形態に従ったマルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のための方法をフローチャートによって示す。例示的な方法900は、ステップ910から開始することができ、ステップ910では、アプリケーションサーバ環境が実行される1つ以上のコンピュータに、アプリケーションサーバ環境内で使用可能な複数のデプロイ可能なリソースと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと、コンポーネント呼び出しコンテキストマネージャとをともに設け、コンポーネント呼び出しコンテキストマネージャはスタックを備える。当該方法はステップ920に進み、ステップ920では、当該方法は、パーティション認識型コンテナにおいて、1つ以上のコンポーネント呼び出しコンテキストを設定することができる。ステップ930において、当該例示的な方法は、続いて、パーティション認識型コンテナによって、現在のコンポーネント呼び出しコンテキストをコンポーネント呼び出しコンテキストマネージャに登録すること、または、コンポーネント呼び出しコンテキストマネージャにおいて現在のコンポーネント呼び出しコンテキストを探索することのうちの1つを実行する。当該例示的な方法は、ステップ940において終了することができ、ステップ940では、現在のコンポーネント呼び出しコンテキストを現在のパーティションに関連付ける。
コンポーネント呼び出しコンテキストの伝搬
一実施形態に従うと、コンポーネント呼び出しコンテキストマネージャは、関連付けられた要求の期間中ずっと、コンポーネント呼び出しコンテキストの詳細の伝搬を担当することができる。パーティションコンテキスト情報は、ローカル呼び出し全体に伝搬することができる。コンポーネント呼び出しコンテキストの他のサブコンテキストは、どのコンポーネントが要求の処理に関与するかに基づいてそれぞれのコンテナによって決定することができる。コンポーネント呼び出しコンテキストは、どのAPIを用いてスレッドを生成するかにかかわらず、新たなスレッドが生成されるたびに自動的に受け継がれることができる。
コンポーネント呼び出しコンテキストの検索
上記のように、一実施形態に従うと、コンポーネント呼び出しコンテキストの詳細(たとえばパーティションId)を必要とするいかなる内部コードまたは(JNDIなどの)コンテナも、コンポーネント呼び出しコンテキストマネージャを探索して、getCurrentComponentInvocationなどの方法を介して現在のコンポーネント呼び出しコンテキストを決定することができる。コンポーネント呼び出しコンテキストのパーティションIDは、グローバルパーティションIDおよびユーザパーティションIDを含むいくつかの値を有することができる。
一実施形態に従うと、グローバルパーティションIDは、以下の状況で使用することができる。要求のターゲットコンポーネントがグローバルパーティション(すなわちドメイン)に存在するとサーバが判断すると、コンテナは、パーティションIDをグローバルパーティションのIDに設定することができる。また、グローバルパーティションIDは、ユーザパーティションに特有でない内部サーバ動作(たとえば、サーバランタイムの初期化/終了、コンテナのロードなど)で使用することができる。サーバランタイム時のこのような動作が特にパーティションを代表して行われているのではない場合、コンテナは、パーティションIDをグローバルパーティションのIDに設定することができる。他の実施形態では、グローバルパーティション作業と、パーティションidが共有システムパーティションを表わすようにすることによる共有作業とを区別することができる。
一実施形態に従うと、ユーザパーティションIDは、以下の状況で使用することができる。要求がユーザパーティションに存在するコンポーネントをターゲットとする場合、サーバは、パーティションIDをユーザパーティションのIDに設定することができる。また、任意のサーバ動作が或るパーティション(たとえば、特定のパーティションのためのログファイルの自動回転)のために特別に実行される場合、コンポーネント呼び出しコンテキストにおいてパーティションのIDを設定することができる。
一実施形態に従うと、現在のコンポーネント呼び出しコンテキストは、ヌルでない値である。たとえば、スレッドがコンテキストを確立させない状況においては、グローバルパーティションを表わす(すなわち、アプリケーション、モジュール、ならびにコンポーネントIDおよび名前のためのヌル値を有する)ヌルでないコンポーネント呼び出しコンテキストを返すことができる。別の例として、スレッドが作成されるが当該スレッドにおいて新たなコンテキストが確立されない状況においては、スレッドは、作成されたスレッドのコンテキストを自動的に受け継ぐことができる。
コンポーネント呼び出しコンテキストスタック
一実施形態に従うと、要求が(たとえば、別のコンポーネントに対するローカルコールとして、たとえばenterprise JavaBean(EJB)をコールするサーブレットとして)複数のコンポーネントにまたがる状況においては、ターゲットコンテナ(この例においては、EJBコンテナ)は、EJB呼び出しを処理する前に、新たなモジュールおよびコンポーネントIDを含む新たなコンポーネント呼び出しコンテキストを確立することができる。また、ターゲットコンテナは、EJBコールが成功裏に完了すると、コンポーネント呼び出しコンテキストを設定解除することができる。コンポーネント呼び出しコンテキストマネージャは、コンポーネント呼び出しのリストをスタックとして内部で管理することができる。当該スタックは、呼び出しのコンテキスト内でなされるローカルコールに関連付けられたコンポーネント呼び出しコンテキストを表わすことができる。
一例として、サーブレットS1がローカルEJB E1をコールする状況においては、コンポーネント呼び出しコンテキストマネージャは、サーブレットS1およびEJB E1に対応するコンポーネント呼び出しコンテキストのスタックを内部に維持することができる。EJB E1の実行中、componentinvocationcmanager.getCurrentComponentInvocationContext()に対するコールは、E1に対応するコンポーネント呼び出しコンテキストを現在のコンポーネント呼び出しコンテキストとして返すことができる。EJB E1の実行が完了するとすぐに、EJBコンテナは、E1に対応するコンポーネント呼び出しコンテキストを設定解除することができ、コンポーネント呼び出しコンテキストマネージャは、次いで、componentinvocationcontextmanager.getCurrentComponentInvocationContext()に対するいかなる後続のコールについても、S1に対応するコンポーネント呼び出しコンテキストを現在の呼び出しコンテキストとして確立するであろう。
一実施形態に従うと、スタック内の全ての呼び出しオブジェクトを検索するための内部方法も利用可能にすることができる。
API
ここで、一実施形態に従って、APIクラスおよびインターフェイスの例を列挙する。
一実施形態に従って、APIクラスComponentInvocationContextManagerの例示的なインプリメンテーションを以下に記載する。
ここで、さらなる例示的なAPIを記載する。
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記憶媒体または(1つもしくは複数の)コンピュータ読取り可能な媒体であるコンピュータプログラムプロダクトを含む。この記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するかまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。当該変更および変形は、開示されている特徴の任意の関連の組み合わせを含む。実施形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施形態および意図している特定の用途に適したさまざまな変形で本発明を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。

Claims (15)

  1. アプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムであって、
    1つ以上のコンピュータを備え、前記1つ以上のコンピュータは、前記1つ以上のコンピュータ上で実行されるアプリケーションサーバ環境を、
    前記アプリケーションサーバ環境内で使用可能な複数のデプロイ可能なリソースと、
    各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションとともに含み、
    前記システムはさらに、
    1つ以上のコンポーネント呼び出しコンテキストを設定するように構成されたパーティション認識型コンテナと、
    コンポーネント呼び出しコンテキストマネージャとを備え、前記コンポーネント呼び出しコンテキストマネージャは、スタックを含み、
    前記パーティション認識型コンテナは、現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録すること、および、前記コンポーネント呼び出しコンテキストマネージャにおける現在のコンポーネント呼び出しコンテキストを探索することのうちの一方を実行し、
    前記現在のコンポーネント呼び出しコンテキストは、現在のパーティションに関連付けられる、システム。
  2. 前記現在のコンポーネント呼び出しコンテキストを登録することは、
    フロントエンドコンポーネントにおいて、ターゲット情報を含む要求を受信することを備え、前記ターゲット情報は、前記現在のパーティションを示し、前記登録することはさらに、
    前記パーティション認識型コンテナによって前記現在のコンポーネント呼び出しコンテキストを決定することと、
    前記パーティション認識型コンテナによって、アプリケーションプログラムインターフェイスを介して、前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録することとを備える、請求項1に記載のシステム。
  3. 前記パーティション認識型コンテナは、前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録した後、前記要求の完了時に、前記コンポーネント呼び出しコンテキストマネージャにおける前記現在のコンポーネント呼び出しコンテキストを登録解除するように構成され、前記登録解除することは、
    前記パーティション認識型コンテナによって、前記アプリケーションプログラムインターフェイスを介して、前記コンポーネント呼び出しコンテキストマネージャにおける前記現在のコンポーネント呼び出しコンテキストを登録解除することを備える、請求項2に記載のシステム。
  4. ワークマネージャをさらに備え、
    前記パーティション認識型コンテナによって前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録することは、前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録するために前記パーティション認識型コンテナによって前記ワークマネージャに命令を渡すことを備える、請求項1から3のいずれか1項に記載のシステム。
  5. 前記現在のコンポーネント呼び出しコンテキストを探索することは、
    前記パーティション認識型コンテナによって、前記コンポーネント呼び出しコンテキストマネージャ前記現在のコンポーネント呼び出しコンテキストを要求することと、
    前記パーティション認識型コンテナ内で前記現在のコンポーネント呼び出しコンテキストを設定することとを備える、請求項1から4のいずれか1項に記載のシステム。
  6. 前記現在のパーティションは、前記1つ以上のパーティションのうちの1つからなる群またはグローバルパーティションのうちの1つであり、前記グローバルパーティションは、前記ドメインに関連付けられる、請求項1から5のいずれか1項に記載のシステム。
  7. 前記アプリケーションサーバ環境は、マルチテナントアプリケーションサーバ環境を備え、前記システムは、テナントによる使用のために前記1つ以上のパーティションを前記テナントに関連付けることができる、請求項1から6のいずれか1項に記載のシステム。
  8. アプリケーションサーバ環境におけるパーティション識別子の決定のための方法であって、
    1つ以上のコンピュータ上で実行されるアプリケーションサーバ環境を含む1つ以上のコンピュータにおいて、
    前記アプリケーションサーバ環境内で使用可能な複数のデプロイ可能なリソースと、
    各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと、
    コンポーネント呼び出しコンテキストマネージャとをともに設けるステップを備え、前記コンポーネント呼び出しコンテキストマネージャは、スタックを備え、前記方法はさらに、
    パーティション認識型コンテナにおいて、1つ以上のコンポーネント呼び出しコンテキストを設定するステップと、
    前記パーティション認識型コンテナによって、現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録すること、および、前記コンポーネント呼び出しコンテキストマネージャにおける現在のコンポーネント呼び出しコンテキストを探索することのうちの一方を実行するステップと、
    前記現在のコンポーネント呼び出しコンテキストを現在のパーティションに関連付けるステップとを備える、方法。
  9. 前記現在のコンポーネント呼び出しコンテキストを登録することは、
    フロントエンドコンポーネントにおいて、ターゲット情報を含む要求を受信することを備え、前記ターゲット情報は、前記現在のパーティションを示し、前記登録することはさらに、
    前記パーティション認識型コンテナによって前記現在のコンポーネント呼び出しコンテキストを決定することと、
    前記パーティション認識型コンテナによって、アプリケーションプログラムインターフェイスを介して、前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録することとを備える、請求項8に記載の方法。
  10. 前記パーティション認識型コンテナは、前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録した後、前記要求の完了時に、前記コンポーネント呼び出しコンテキストマネージャにおける前記現在のコンポーネント呼び出しコンテキストを登録解除するように構成され、前記登録解除することは、
    前記パーティション認識型コンテナによって、前記アプリケーションプログラムインターフェイスを介して、前記コンポーネント呼び出しコンテキストマネージャにおける前記現在のコンポーネント呼び出しコンテキストを登録解除することを備える、請求項9に記載の方法。
  11. アプリケーションサーバ環境が実行される前記1つ以上のコンピュータにワークマネージャをさらに設けるステップをさらに備え、
    前記パーティション認識型コンテナによって前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録することは、前記現在のコンポーネント呼び出しコンテキストを前記コンポーネント呼び出しコンテキストマネージャに登録するために前記パーティション認識型コンテナによって前記ワークマネージャに命令を渡すことを備える、請求項8から10のいずれか1項に記載の方法。
  12. 前記現在のコンポーネント呼び出しコンテキストを探索することは、
    前記パーティション認識型コンテナによって、前記コンポーネント呼び出しコンテキストマネージャ前記現在のコンポーネント呼び出しコンテキストを要求することと、
    前記パーティション認識型コンテナ内で前記現在のコンポーネント呼び出しコンテキストを設定することとを備える、請求項8から11のいずれか1項に記載の方法。
  13. 前記現在のパーティションは、前記1つ以上のパーティションのうちの1つからなる群またはグローバルパーティションのうちの1つであり、前記グローバルパーティションは、前記ドメインに関連付けられる、請求項8から12のいずれか1項に記載の方法。
  14. 前記アプリケーションサーバ環境は、マルチテナントアプリケーションサーバ環境を備え、前記方法は、
    テナントによる使用のために前記1つ以上のパーティションを前記テナントに関連付けるステップをさらに備える、請求項8から13のいずれか1項に記載の方法。
  15. 1つ以上のコンピュータシステム上で実行されるプログラム命令を備えるコンピュータプログラムであって、前記プログラム命令は、実行されたときに、前記1つ以上のコンピュータシステムに、請求項8から14のいずれか1項に記載の方法を実行させる、コンピュータプログラム。
JP2017516313A 2014-09-25 2015-09-25 マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法 Active JP6703527B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462055068P 2014-09-25 2014-09-25
US62/055,068 2014-09-25
PCT/US2015/052469 WO2016049582A1 (en) 2014-09-25 2015-09-25 System and method for determination of partition identifiers in a multitenant application server environment

Publications (3)

Publication Number Publication Date
JP2017528845A JP2017528845A (ja) 2017-09-28
JP2017528845A5 JP2017528845A5 (ja) 2018-10-04
JP6703527B2 true JP6703527B2 (ja) 2020-06-03

Family

ID=54337360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017516313A Active JP6703527B2 (ja) 2014-09-25 2015-09-25 マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法

Country Status (6)

Country Link
US (1) US10104011B2 (ja)
EP (1) EP3198427B1 (ja)
JP (1) JP6703527B2 (ja)
KR (1) KR102464337B1 (ja)
CN (1) CN107077383B (ja)
WO (1) WO2016049582A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187454B2 (en) 2014-01-21 2019-01-22 Oracle International Corporation System and method for dynamic clustered JMS in an application server environment
US10474998B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for messaging in a multitenant application server environment
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10476938B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant application server environment
US10103946B2 (en) 2014-01-21 2018-10-16 Oracle International Corporation System and method for JMS integration in a multitenant application server environment
US10027550B2 (en) 2014-06-23 2018-07-17 Oracle International Corporation System and method for multitenant-aware console for use in a multitenant application server environment
US10873627B2 (en) 2014-06-23 2020-12-22 Oracle International Corporation System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10469401B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for supporting lifecycle plugins in a multitenant application server environment
US10382537B2 (en) 2014-09-25 2019-08-13 Oracle International Corporation System and method for use of a global runtime in a multitenant application server environment
US10467061B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for resource overriding in a multitenant application server environment
US10348565B2 (en) 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
EP3198427B1 (en) * 2014-09-25 2021-05-26 Oracle International Corporation System and method for determination of partition identifiers in a multitenant application server environment
US10091135B2 (en) 2014-09-26 2018-10-02 Oracle International Corporation System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context
JP6564026B2 (ja) * 2014-09-26 2019-08-21 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
US10050903B2 (en) 2014-09-26 2018-08-14 Oracle International Corporation System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context
US11057272B2 (en) 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US10334248B2 (en) * 2015-05-29 2019-06-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
CN110858846A (zh) * 2018-08-22 2020-03-03 京东方科技集团股份有限公司 资源配置方法、装置和存储介质
US11082487B1 (en) 2020-09-22 2021-08-03 Vignet Incorporated Data sharing across decentralized clinical trials using customized data access policies
US11315041B1 (en) 2020-09-22 2022-04-26 Vignet Incorporated Machine learning with data sharing for clinical research data across multiple studies and trials
CN112182375A (zh) * 2020-09-27 2021-01-05 中国建设银行股份有限公司 一种综合服务平台的需求响应方法、装置、介质及平台
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1421479A2 (en) * 2000-06-22 2004-05-26 Microsoft Corporation Distributed computing services platform
US7620703B1 (en) * 2000-08-10 2009-11-17 Koninklijke Philips Electronics N.V. Topical service provides context information for a home network
US7698276B2 (en) * 2002-06-26 2010-04-13 Microsoft Corporation Framework for providing a subscription based notification system
US7570943B2 (en) * 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
JP2006522388A (ja) * 2003-02-14 2006-09-28 ナーバナ、インコーポレイテッド 意味論的知識の取得、管理、取り込み、共有、発見、伝達および提示用のシステムおよび方法
EP1678617A4 (en) * 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US8869099B2 (en) * 2008-07-28 2014-10-21 Infosys Limited System and method of enabling multi-tenancy for software as a service application
CN102170457A (zh) * 2010-02-26 2011-08-31 国际商业机器公司 向应用的多租户提供服务的方法和装置
WO2012112833A2 (en) * 2011-02-17 2012-08-23 Taasera, Inc. System and method for application attestation
US8769071B2 (en) * 2011-02-25 2014-07-01 Red Hat, Inc. Dynamic mapping of identifiers in a multi-tenant computing system
US9160749B2 (en) 2012-09-07 2015-10-13 Oracle International Corporation System and method for providing whitelist functionality for use with a cloud computing environment
EP3198427B1 (en) * 2014-09-25 2021-05-26 Oracle International Corporation System and method for determination of partition identifiers in a multitenant application server environment

Also Published As

Publication number Publication date
CN107077383B (zh) 2021-05-11
KR20170059451A (ko) 2017-05-30
WO2016049582A1 (en) 2016-03-31
KR102464337B1 (ko) 2022-11-07
US10104011B2 (en) 2018-10-16
EP3198427A1 (en) 2017-08-02
US20160094474A1 (en) 2016-03-31
EP3198427B1 (en) 2021-05-26
JP2017528845A (ja) 2017-09-28
CN107077383A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
JP6703527B2 (ja) マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法
JP6611798B2 (ja) マルチテナントアプリケーションサーバ環境においてグローバルランタイムを使用するためのシステムおよび方法
JP6599448B2 (ja) マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法
US9973384B2 (en) System and method for enterprise java bean support in a multitenant application server environment
CN106575242B (zh) 用于在多租户应用服务器环境中支持命名空间的系统和方法
US10084843B2 (en) System and method for web container partitions in a multitenant application server environment
US9819609B2 (en) System and method for multitenant execution of OS programs invoked from a multitenant middleware application
US9811386B2 (en) System and method for multitenant execution of OS programs invoked from a multitenant middleware application
JP6461167B2 (ja) アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法
US10009225B2 (en) System and method for supporting multiple partition edit sessions in a multitenant application server environment
US9807119B2 (en) System and method for supporting web services in a multitenant application server environment
JP2020074148A (ja) マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステムおよび方法
US10051043B2 (en) System and method for JMX support in a multitenant application server environment
US10103946B2 (en) System and method for JMS integration in a multitenant application server environment
US9542566B2 (en) Develop and deploy software in multiple environments
JP6574794B2 (ja) マルチテナントアプリケーションサーバ環境におけるポータブルパーティションのためのシステムおよび方法
US11138017B2 (en) System and method for partition administrative targeting in an application server environment
CN107533485B (zh) 用于对从多租户中间件应用调用的os程序进行多租户执行的系统和方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200508

R150 Certificate of patent or registration of utility model

Ref document number: 6703527

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250