JP2017519308A - マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 - Google Patents

マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP2017519308A
JP2017519308A JP2016575042A JP2016575042A JP2017519308A JP 2017519308 A JP2017519308 A JP 2017519308A JP 2016575042 A JP2016575042 A JP 2016575042A JP 2016575042 A JP2016575042 A JP 2016575042A JP 2017519308 A JP2017519308 A JP 2017519308A
Authority
JP
Japan
Prior art keywords
partition
application server
partitions
work
server environment
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.)
Granted
Application number
JP2016575042A
Other languages
English (en)
Other versions
JP6542810B2 (ja
JP2017519308A5 (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 JP2017519308A publication Critical patent/JP2017519308A/ja
Publication of JP2017519308A5 publication Critical patent/JP2017519308A5/ja
Application granted granted Critical
Publication of JP6542810B2 publication Critical patent/JP6542810B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一実施形態に従い、アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法が、本明細書に記載されている。一実施形態に従うと、システムアドミニストレータは、マルチテナントアプリケーションサーバ環境内の各パーティションに対してパーティションワーク要求の優先順位(フェアシェア値)を与えるように、パーティションワークマネージャを構成することができる。システムアドミニストレータはさらに、最小スレッド制約制限、パーティション容量制約、および/またはパーティション最大スレッド制約を課すように、パーティションワークマネージャを構成することができる。これらの制約はすべて、上記環境内部のパーティションによるスレッドリソースの使用を制限する。

Description

著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウドプラットフォーム環境に関し、特に、マルチテナントアプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法に関する。
背景:
ソフトウェアアプリケーションサーバは、その例として、Oracle WebLogic Server(WLS)およびGlassfishを含んでおり、概して、エンタープライズソフトウェアアプリケーションを実行するための管理された環境を提供する。近年、クラウド環境において使用するための技術も開発されており、ユーザまたはテナントが、クラウド環境内でそれらのアプリケーションを開発して実行することが可能になり、かつ、環境によって提供される分散型リソースを活用することが可能になっている。
概要:
一実施形態に従い、本明細書において、アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法が説明される。一実施形態に従うと、システムアドミニストレータは、マルチテナントアプリケーションサーバ環境内の各パーティションに対してパーティションワーク要求の優先順位(フェアシェア値)を与えるように、パーティションワークマネージャを構成することができる。システムアドミニストレータはさらに、最小スレッド制約制限、パーティション容量制約、および/またはパーティション最大スレッド制約を課すように、パーティションワークマネージャを構成することができる。これらの制約はすべて、上記環境内部のパーティションによるスレッドリソースの使用を制限する。
一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。 一実施形態に従った例示的なマルチテナント環境をさらに示す図である。 一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるパーティションワークマネージャの使用を示す図である。 一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるパーティションワークマネージャの使用を示す図である。 マルチテナントアプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法のフローチャートである。 マルチテナントアプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法のフローチャートである。
詳細な説明:
一実施形態に従い、本明細書において、アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムおよび方法が説明される。一実施形態に従うと、システムアドミニストレータは、マルチテナントアプリケーションサーバ環境内の各パーティションに対してパーティションワーク要求の優先順位(フェアシェア値)を与えるように、パーティションワークマネージャを構成することができる。システムアドミニストレータはさらに、パーティション最小スレッド制約、パーティション容量制約、および/またはパーティション最大スレッド制約を課すように、パーティションワークマネージャを構成することができる。これらの制約はすべて、上記環境内部のパーティションによるスレッドリソースの使用を制限する。
アプリケーションサーバ(たとえば、マルチテナント(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)および構成に関連付けられ得るドメインのうちランタイムおよび管理の区分またはスライスであるとともに、アプリケーションを含み得て、ならびに/または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
概して、パーティションは、それ自体のアプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。パーティション可能なエンティティは、リソース、たとえば、JMS、JDBC、JavaMail、およびWLDFリソースや、他のコンポーネント、たとえばJNDIネームスペース、ネットワークトラフィック、ワークマネージャ、セキュリティポリシーおよび領域などを含み得る。マルチテナント環境のコンテキストにおいては、システムは、テナントに関連付けられたパーティションの管理およびランタイムのアスペクトへのアクセスをテナントに提供するように構成することができる。
一実施形態に従うと、パーティション内の各々のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。
一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション(partition)」(そのパーティションを定義する属性および子エレメントを含む);「リソース・グループ(resource-group)」(パーティションにデプロイされるアプリケーションおよびリソースを含む);「リソース・グループ・テンプレート(resource-group-template)」;(そのテンプレートによって定義されるアプリケーションおよびリソースを含む);「jdbc・システム・リソース・無効化(jdbc-system-resource-override)」(データベース特有のサービス名、ユーザ名およびパスワードを含む);ならびに、「パーティション・プロパティ(partition-properties)」(リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む)を含む。
始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。
リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
システムアドミニストレータは、ドメインレベルで、またはパーティションレベルでリソースグループを公開することができる。ドメインレベルでは、リソースグループは、関連するリソースをグループ化するのに好都合な方法を提供する。システムは、グループ化されていないリソースと同じドメインレベルのリソースグループにおいて公開されたリソースを管理することができる。このため、リソースは、システム起動中に開始させたり、システムのシャットダウン中に停止させたりすることができる。アドミニストレータはまた、グループ内のリソースを個々に停止させるか、開始させるかまたは削除することができ、グループ上で動作させることによって暗黙的にグループ内のすべてのリソースに対して機能することができる。たとえば、あるリソースグループを停止させることにより、まだ停止されていないグループにおけるすべてのリソースを停止させ;リソースグループを始動させることにより、まだ始動させていないグループにおけるいずれのリソースも始動させ、リソースグループを削除することにより、グループに含まれるすべてのリソースを削除する。
パーティションレベルでは、システムまたはパーティションアドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて0個以上のリソースグループを構成することができる。たとえば、SaaS使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。PaaS使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。
一実施形態に従うと、リソースグループ化を用いることで、アプリケーションと、それらアプリケーションがドメイン内で別個の管理ユニットとして使用するリソースとをともにグループ化することができる。たとえば、以下に記載される医療記録(MedRec)アプリケーションにおいては、リソースグループ化によりMedRecアプリケーションおよびそのリソースが定義される。複数のパーティションは、各々がパーティション特有の構成情報を用いて、同じMedRecリソースグループを実行することができ、このため、各々のMedRecインスタンスの一部であるアプリケーションが各々のパーティションにとって特有のものにされる。
リソースグループテンプレート
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、1つ以上の関連するJavaアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名/値の対を使用することによってリソースグループテンプレートで指定することができる。
一実施形態に従うと、特定のリソースグループテンプレートは、1つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に1つのリソースグループによってのみ参照することができる。すなわち、同じパーティション内で同時に複数のリソースグループによって参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名/値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション/テンプレートの組合せごとにランタイム構成を生成することができる。
たとえば、SaaS使用事例においては、システムは、同じアプリケーションおよびリソースを複数回起動することができるが、そのうちの1回は、それらを用いるであろう各パーティションごとに起動され得る。アドミニストレータがリソースグループテンプレートを定義すると、これらは、どこか他のところで提供されるであろう情報を表わすためにトークンを用いることができる。たとえば、CRM関連のデータリソースに接続する際に使用されるユーザ名は、リソースグループテンプレートにおいて\${CRMDataUsername}として示すことができる。
テナント
一実施形態に従うと、マルチテナント(MT)アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、特定の企業内のさまざまな部門(たとえばHRおよび財務部)などを表わすことができ、それら各々は、異なるパーティションに関連付けることができる。テナントのグローバルユニークアイデンティティ(テナントID)は、特定の時点において特定のユーザを特定のテナントに関連付けるものである。システムは、たとえば、ユーザアイデンティティの記録を参照することによって、ユーザアイデンティティから、特定のユーザがどのテナントに属しているかを導き出すことができる。ユーザアイデンティティにより、ユーザが実行することを認可されているアクションをシステムが実施することが可能となる。ユーザアイデンティティは、ユーザがどのテナントに属し得るかを含むが、これに限定されない。
一実施形態に従うと、システムは、互いに異なるテナントの管理およびランタイムを分離することを可能にする。たとえば、テナントは、それらのアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、特定のテナントが別のテナントに属するアーティファクトを確実に管理することができないようにし、かつ、実行時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。
一実施形態に従うと、テナント非認識型アプリケーションは、アプリケーションが応答している要求をどんなユーザが提示したかにかかわらず、アプリケーションが用いる如何なるリソースにもアクセス可能となるように明示的にテナントに対処する論理を含まないものである。対照的に、テナント認識型アプリケーションは、テナントに明示的に対処する論理を含む。たとえば、ユーザのアイデンティティに基づいて、アプリケーションは、ユーザが属するテナントを導き出すことができ、テナント特有のリソースにアクセスするためにその情報を用いることができる。
一実施形態に従うと、システムは、テナント認識型となるように明示的に書き込まれたアプリケーションをユーザがデプロイすることを可能にし、これにより、アプリケーション開発者は、現在のテナントのテナントIDを取得することができる。次いで、テナント認識型アプリケーションは、このテナントIDを用いて、アプリケーションの単一のインスタンスを用いている複数のテナントを処理することができる。
たとえば、単一の診療室または病院をサポートするMedRecアプリケーションは、2つの異なるパーティションまたはテナント(たとえばBayland Urgent CareテナントおよびValley Healthテナント)に対して公開することができ、その各々は、基礎をなすアプリケーションコードを変更することなく、別個のPDBなどの別個のテナント特有のリソースにアクセスすることができる。
例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。デプロイメントプランはまた、リソースグループの一部として指定することができる。
図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とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
ワークマネージャ
先に述べたように、一実施形態に従うと、パーティションは、アプリケーションサーバをマルチテナントモードで実行するときに1つまたは複数のテナントに対して作成されるアプリケーションサーバ(たとえばWebLogic Server)ドメインのスライスである。
一実施形態に従うと、複数のパーティション間におけるスレッド使用量は、公平になるように調節され、これらのパーティションの相対的な優先度をシステムアドミニストレータによって設定することが可能である。一実施形態に従うと、ワークマネージャを用いることによって、同一のWLSインスタンス内で実行しているパーティション間の公平性と優先順位を提供することができる。
一実施形態に従うと、ワークマネージャは、アプリケーションサーバの自己チューニングスレッドプールから提供されるスレッドリソースの相対的なスレッド使用量を調節することにより、適切なサービス品質(QoS)を提供するとともに、同一のアプリケーションサーバインスタンス(たとえばマルチテナントアプリケーションサーバ環境)を共有するさまざまなパーティション間における公平性を提供する。それがなければ、あるパーティションおよび/またはパーティションアドミニストレータからのアプリケーションが、他のパーティション用のスレッドリソースを奪ってこれらのパーティションが適切に機能することを妨げる可能性がある。
一実施形態に従うと、ワークマネージャが共有スレッドリソースをさまざまなパーティションに割当てることを可能にする公平性は、多数の要素に基づき得る。これらの要素は、たとえば、さまざまなパーティションがサービスの対価として支払うさまざまな金額、各パーティションの重要度、および共有スレッドに対する各パーティションからの需要等である。
パーティションワークマネージャ−1パーティション当たりの相対的なスレッドリソース使用量
図6は、一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるパーティションワークマネージャの使用を示す図である。
図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が規定されている。
一実施形態に従うと、システムアドミニストレータ630は、アプリケーションサーバ環境600内のWLSセルフチューニングスレッドプール等のスレッドプールに対する各パーティションのアクセスを調節するように、パーティションワークマネージャ610を構成する。このようにシステムアドミニストレータがワークマネージャを構成することにより、スレッドリソースの相対的なスレッド使用量を調節して、適切なQoSを提供するとともに、同一のアプリケーションサーバインスタンスを共有するさまざまなパーティション間における公平性を提供する。たとえば、一般的に、システムアドミニストレータはパーティションワークマネージャ610を構成するときにいくつかの設定を(個々にまたは互いに組合わせて)使用することができる。上記設定は、パーティションワーク要求の優先順位(またはフェアシェア値)、パーティション最小スレッド制約、およびパーティション容量制約を含むが、これらに限定されない。
一実施形態に従うと、システムアドミニストレータ630は、パーティションワーク要求の優先順位またはフェアシェア値を用いてパーティションワークマネージャ610を構成することができる。システムアドミニストレータ630は、通信経路635を介して、パーティションワークマネージャ610内に、アプリケーションサーバ環境600において構成された各パーティション、たとえばパーティションA 640およびパーティションB 650に対するフェアシェア値を指定する。このフェアシェア値は、たとえばパーティションワークマネージャ610に含まれる特定パーティション用のワークマネージャに含めることができる。フェアシェア値は、すべてのパーティションのスレッド使用量との比較における、特定のパーティションのスレッド使用量の割合である。加えて、システムアドミニストレータ630によって最初にパーティションに割当てられたフェアシェア値を、システムアドミニストレータ630によって更新および/または編集することができる。
一実施形態に従うと、パーティションに割当てられるフェアシェア値は、1と99の間の数である。推奨されるのは、あるドメイン内で実行しているすべてのパーティションのフェアシェア値の合計が100になることである。これらの合計が100にならない場合、アプリケーションサーバ環境600は、異なるパーティションに対し、スレッド使用時間および/またはスレッド待ち行列位置をこれらの相対値に基づいて割当てることができる。
たとえば、一実施形態に従うと、システムアドミニストレータ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内にフェアシェア値を設定した結果である。
一実施形態に従うと、システムアドミニストレータ630は、最小スレッド制約を用いてパーティションワークマネージャ610を構成することができる。最小スレッド制約は、デッドロックを回避するために、各パーティションにまたはパーティション内のアプリケーションに割当てられる、スレッドプールの指定数のスレッドを保証する。
一実施形態に従うと、システムアドミニストレータ630は、任意で、アプリケーションサーバ環境600内のパーティションごとに、最小スレッド制約値に対して制限を課すことができる。システムアドミニストレータ630がこのような制限を設定する場合は、そうすることによって、パーティションごとに最小スレッド制約値に対して上限を課すことになる。あるパーティション内のすべての最小スレッド制約の設定値の合計がこのような設定値を上回る場合には、警告メッセージをロギングすることができ、アプリケーションサーバ環境600は、制約に対してスレッドプールが割当てるスレッド数を自動的に減じることができる。
たとえば、一実施形態に従うと、システムアドミニストレータ630は、最小スレッド制約として5スレッドをパーティションA 640に対して設定する。パーティションAに対してデプロイされるアプリケーションにおいて規定された最小スレッド制約は2つあり、一方の設定値は3、他方の設定値は7である。セルフチューニングスレッドプールは、これら2つの最小スレッド制約に対して、組合わせた設定値10ではなく、5スレッドが割当てられることしか保証しない。
いくつかの実施形態において、フェアシェア値がアプリケーションサーバ環境内の各パーティションに設定されたことに加えて、パーティション最小スレッド制約制限がシステムアドミニストレータ630によってパーティションワークマネージャ610に設定されると、結果として、パーティションが、パーティション最小スレッド制約として自身のスレッドフェアシェア値よりも大きい値を受けると、フェアシェア値を克服する可能性がある。
一実施形態に従うと、システムアドミニストレータ630は、パーティション共有容量を用いてパーティションワークマネージャ610を構成する。このパーティション共有容量は、パーティションからのワーク要求の数を制限する。この制限は、実行中であるか、または、待ち行列に入れられて利用できるスレッドを待っているワーク要求を含み得る。設定された制限を超過した場合、アプリケーションサーバ環境600は、制限対象のパーティションからの他の要求を拒絶することができる。この制限の値は、1%と100%の間といったように、アプリケーションサーバ環境600の容量の割合として表わすことができる。
たとえば、一実施形態に従うと、システムアドミニストレータは、パーティションAに対し、パーティション共有容量として50%を設定することができる。アプリケーションサーバ環境は、ワークマネージャを構成するために、共有容量として65536という値を用いて構成される。パーティションAには上記パーティション共有容量があるので、ワークマネージャは、パーティションAからのワーク要求の数が、総容量である65536の50%である32738を超えると、パーティションAからの要求を拒絶し始める。
一実施形態に従うと、システムアドミニストレータ630は、パーティションワークマネージャ610を、パーティション最大スレッド制約を用いて構成する。この制約は、あるパーティションからの要求を並行して処理する、セルフチューニングスレッドプールの最大数のスレッドを、制限することができる。このことは、特に異常な状況、たとえば応答していない遠隔サーバからの応答を待ってスレッドがI/Oでブロックされているという状況において、パーティションが、そのスレッドリソースのフェアシェアを超えるリソースを使用しないようにするのに有効となり得る。このようなシナリオにおいて最大スレッド制約を設定することは、システム内の他のパーティションからの要求を処理するためにいくつかのスレッドを確実に利用できるようにするのに役立つであろう。
一実施形態に従うと、フェアシェア値によって、利用できるスレッドのフェアシェア値をパーティションに割当てることができ、それに加えて、利用できるすべてのスレッドが現在使用中であるときに、これから実行する優先度付き待ち行列中の、パーティションからの要求に、順序を割当てることができる。たとえば、システムアドミニストレータは、パーティションワークマネージャを介して、パーティションXに対しフェアシェア値として60を割当て、パーティションYに対しフェアシェア値として40を割当てる。これらのパーティションが、その間で、ソースプール内の利用できるすべてのスレッドを使用すると、これらのパーティションからの次の要求は待ち行列に入れられる。パーティションXおよびYに割当てられたフェアシェア値によって、パーティションYからの要求に対し、相対的に、待ち行列中のどこにパーティションXからの要求を入れるのか判断することができる。ここで例示した状況では、パーティションXからの要求は、待ち行列においてパーティションYからの要求の前に置かれる。なぜなら、パーティションXのフェアシェア値はパーティションYのフェアシェア値よりも大きいからである。
一実施形態に従うと、アプリケーションサーバ環境600は、マルチテナントアプリケーションサーバ(MT)環境を含み得る。
パーティションレベルワークマネージャ
図7は、一実施形態に従った、マルチテナントアプリケーションサーバ環境におけるワークマネージャの使用を示す図である。
図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とを含む。
一実施形態において、システムアドミニストレータ780が、パーティションワークマネージャ790を、パーティションAおよびBのフェアシェア値を設定するように構成できる方法と同様に、パーティションアドミニストレータ730および735は、それぞれのパーティションについて、それぞれのパーティション内の作業を管理するパーティションレベルワークマネージャを構成することができる。一般的に、パーティションアドミニストレータはそれぞれのパーティションワークマネージャを構成するときにいくつかの設定を(個々にまたは互いに組合わせて)使用することができる。上記設定は、ワーク要求の優先順位(またはフェアシェア値)、最小スレッド制約、および最大スレッド制約を含むが、これらに限定されない。
たとえば、一実施形態において、パーティションアドミニストレータは、それぞれのパーティションワークマネージャを、フェアシェア値を用いて構成することができる。パーティション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に格納されている。
一実施形態において、パーティションワークマネージャはテンプレートの機能を果たし、構成された各ワークマネージャのインスタンスがデプロイされた各アプリケーションに対して作成される。たとえば、このパーティションワークマネージャはデフォルトワークマネージャであってもよい。デフォルトワークマネージャの1つのインスタンスを、デプロイされた各アプリケーションに対して作成することができ、別のディスパッチポリシーが指定されない限り、このアプリケーションからのワーク要求を処理するために使用できる。
一実施形態において、パーティションアドミニストレータは、任意で、自身のパーティションのためのパーティションワークマネージャを上書きしてもよい。このパーティション内の各アプリケーションに、パーティションワークマネージャのインスタンスを与えてもよく、このインスタンスは、上記ワークマネージャの特定パーティション用の設定を用いて作成されたものである。パーティションレベルで無効にされていないパーティションワークマネージャについては、config.xmlレベルのテンプレート構成を使用する。この構成を使用するのは、パーティションワークマネージャに関して先に述べたように、システムアドミニストレータによって記述された特定パーティション用の制限が設定された、パーティションでデプロイされた各アプリケーションのためのこのようなワークマネージャのインスタンスを作成するときである。
たとえば、一実施形態において、デフォルトワークマネージャは、最小または最大スレッド制約なしで構成され、さらに、パーティションに対し、フェアシェア要求クラス値として50を割当てる。パーディションアドミニストレータは、最小スレッド制約が1であるそれぞれのパーティションのデフォルトワークマネージャを無効にすることができる。結果として、パーティションにおいてデプロイされた各アプリケーションは、設定値が1である最小スレッド制約を用いて作成されたデフォルトワークマネージャを有することになる。
一実施形態に従うと、パーティションアドミニストレータは、それぞれの特定のパーティションに割当てられたフェアシェア値を上書きすることができるが、そうしても、パーティションワークマネージャでパーティションに割当てられたフェアシェア値は変わらない。たとえば、パーティションXおよびパーティションY各々に対し、パーティションワークマネージャの構成において、システムアドミニストレータによってフェアシェア値として50が割当てられているとする。しかしながら、パーティションXのためのパーティションアドミニストレータは、そのワークマネージャに、フェアシェア値として90を設定する。パーティションアドミニストレータがスレッドのフェアシェアよりも多いスレッドを要求しようとしても、パーティションワークマネージャは、プール内のスレッドのうちの半分しかパーティションXが受けないことを保証できる。
一実施形態において、システムレベルで、たとえばconfig.xmlのセルフチューニングセクションで規定された制約が共有される。たとえば、パーティションワークマネージャが作成されmin-ThreadConstraint-1と呼ばれる最小スレッド制約を規定する。各パーティションは、min-ThreadConstraint-1のコピーを得る。先に述べたように、パーティションアドミニストレータは、所望されればmin-ThreadConstraint-1を無効にすることができる。
一実施形態に従うと、アプリケーションサーバ環境700は、マルチテナントアプリケーションサーバ(MT)環境を含み得る。
図8は、アプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法800のフローチャートである。この方法800はステップ801から始まる。ステップ801において、その上で実行されるアプリケーションサーバ環境を含む1つ以上のコンピュータに、アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、ドメイン内のデプロイ可能なリソースのグループ分けを規定する1つ以上のリソースグループテンプレートと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと与えることができる。この方法800は、ステップ802に進んでパーティションワークマネージャを提供することができ、このパーティションワークマネージャはシステムアドミニストレータによって構成可能である。代表的な方法800は、最後にステップ803で、パーティションワークマネージャを、アプリケーションサーバ環境内の1つ以上のパーティション各々にフェアシェア値を割当てるように、構成することができ、各フェアシェア値は、1つ以上のパーティションに関連付けられたスレッド使用量を制御するためにシステムが使用するように、設定される。
一実施形態に従うと、図8には示されていないが、この方法は次に、パーティションワークマネージャを、フェアシェア値に加えて、パーティション容量制約と、パーティション最小スレッド制約制限と、パーティション最大スレッド制約とのうちの1つ以上を与えるように、構成することができる。
図9は、アプリケーションサーバ環境において使用するワークマネージャを提供するための代表的な方法900のフローチャートである。この方法900はステップ901から始まる。ステップ901において、その上で実行されるアプリケーションサーバ環境を含む1つ以上のコンピュータに、アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、ドメイン内のデプロイ可能なリソースのグループ分けを規定する1つ以上のリソースグループテンプレートと、各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションと与えることができる。この方法900は、ステップ902に進んでパーティションワークマネージャを提供することができ、このパーティションワークマネージャはシステムアドミニストレータによって構成可能である。代表的な方法900は、引続きステップ903で、パーティションワークマネージャを、アプリケーションサーバ環境内の1つ以上のパーティション各々にフェアシェア値を割当てるように、構成することができ、各フェアシェア値は、1つ以上のパーティションに関連付けられたスレッド使用量を制御するためにシステムが使用するように、設定される。この方法900は、ステップ904において、1つ以上のパーティションレベルワークマネージャを提供し、1つ以上のパーティションは各々、上記1つ以上のパーティションレベルワークマネージャのうちの1つを含む。最後に、この方法900は、それぞれのパーティション内で実行されている1つ以上のアプリケーションに対してパーティションフェアシェア値を割当てるように、1つ以上のパーティションレベルワークマネージャ各々を構成する。各パーティションフェアシェア値は、それぞれのパーティションにおいて実行されている1つ以上のアプリケーションに関連付けられたスレッド使用量を制御するためにシステムが使用するように、設定される。
アプリケーションワークマネージャ
一実施形態において、ワークマネージャおよびそのアーティファクト(制約等)を、アプリケーションの中から規定してもよい。このようなアプリケーションがワークマネージャおよび/またはその制約を規定するとき、このようなワークマネージャは、パーティションの中でデプロイすることができる。しかしながら、規定されたワークマネージャおよび/またはその制約は、パーティションワークマネージャを介してシステムアドミニストレータによって課された、または規定されたパーティションレベルワークマネージャを介してパーティションアドミニストレータによって課された、設定された限定とワークマネージャ(たとえばフェアシェア値)に基づいて、調整してもよい。
パーティションIDの伝達
ある実施形態において、ワーク要求がスケジュールおよび/または要求されるときに使用されるパーティションIDを、ワーク要求が実行されているセルフチューニングスレッドプールに伝達することができる。パーティションIDは、コンポーネント呼出しコンテキスト(component invocation context:CIC)から取込むことができる。これにより、ワーク要求を、要求の発生元であるパーティションのコンテキストの下で実行することができる。これにより、エラーのロギングと診断および/またはセキュリティをサポートすることができる。
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つまたは複数の)コンピュータ読取可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。

Claims (22)

  1. アプリケーションサーバ環境において使用するワークマネージャを提供するためのシステムであって、
    アプリケーションサーバ環境を含む1つ以上のコンピュータを備え、前記アプリケーションサーバ環境は、前記1つ以上のコンピュータ上で実行され、前記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つ以上のパーティションレベルワークマネージャは各々、各パーティション内で実行されている1つ以上のアプリケーションにパーティションフェアシェア値を割当てるように構成可能であり、各パーティションフェアシェア値は、前記システムによって使用されることにより、前記各パーティション内で実行されている1つ以上のアプリケーションに関連付けられたスレッド使用量を制御するために、設定される、請求項1〜5のいずれかに記載のシステム。
  7. 前記1つ以上のパーティションレベルワークマネージャは各々、前記パーティションワークマネージャのコピーであり、前記1つ以上のパーティションレベルワークマネージャは各々、パーティションアドミニストレータによって構成可能である、請求項6に記載のシステム。
  8. 前記アプリケーションサーバ環境はマルチテナントアプリケーションサーバ環境を含み、前記システムは、テナントに前記1つ以上のパーティションを、前記テナントによる使用のために関連付けることができる、請求項1〜7のいずれかに記載のシステム。
  9. アプリケーションサーバ環境において使用するワークマネージャを提供するための方法であって、
    その上で実行されるアプリケーションサーバ環境を含む、1つ以上のコンピュータに、
    前記アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、
    各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションとを与えるステップと、
    パーティションワークマネージャを与えるステップとを含み、前記パーティションワークマネージャはシステムアドミニストレータによって構成可能であり、前記方法はさらに、
    前記パーティションワークマネージャを、前記アプリケーションサーバ環境内の前記1つ以上のパーティション各々にフェアシェア値を割当てるように、構成するステップを含み、各フェアシェア値は、システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定される、方法。
  10. 前記アプリケーションサーバ環境内の各パーティションに対する最小スレッド制約値を与えるように前記パーティションワークマネージャを構成するステップをさらに含み、前記最小スレッド制約値は、前記システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定される、請求項9に記載の方法。
  11. 前記アプリケーションサーバ環境内の各パーティションに対するパーティション容量制約値を与えるように前記パーティションワークマネージャを構成するステップをさらに含み、前記パーティション容量制約値は、前記システムが使用することによって、各パーティションからのワーク要求の数を制限するために、設定される、請求項9または10に記載の方法。
  12. 前記1つ以上のパーティションに割当てられるフェアシェア値は各々、1と99の間の数であり、前記フェアシェア値すべての合計は100である、請求項9〜11のいずれかに記載の方法。
  13. 前記アプリケーションサーバ環境内の各パーティションに対するパーティション最大スレッド制約を与えるように前記パーティションワークマネージャを構成するステップをさらに含み、前記パーティション最大スレッド制約は、前記システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定される、請求項9〜12のいずれかに記載の方法。
  14. 1つ以上のパーティションレベルワークマネージャを与えるステップをさらに含み、前記1つ以上のパーティションは各々、前記1つ以上のパーティションレベルワークマネージャのうちの1つを含み、さらに、
    前記1つ以上のパーティションレベルワークマネージャ各々を、各パーティション内で実行されている1つ以上のアプリケーションにパーティションフェアシェア値を割当てるように構成するステップを含み、各パーティションフェアシェア値は、前記システムによって使用されることにより、前記各パーティション内で実行されている1つ以上のアプリケーションに関連付けられたスレッド使用量を制御するために、設定される、請求項9〜13のいずれかに記載の方法。
  15. 前記1つ以上のパーティションレベルワークマネージャは各々、前記パーティションワークマネージャのコピーであり、前記1つ以上のパーティションレベルワークマネージャは各々、パーティションアドミニストレータによって構成可能である、請求項14に記載の方法。
  16. コンピュータシステムによって実行されると前記コンピュータシステムに請求項9〜15のいずれかに記載の方法を実行させる機械読取可能なフォーマットのプログラム命令を含むコンピュータプログラム。
  17. 非一時的な機械読取可能なデータ記憶媒体に格納された請求項16に記載のコンピュータプログラムを含むコンピュータプログラムプロダクト。
  18. 1つ以上のコンピュータによって読取られて実行されると前記1つ以上のコンピュータに以下のステップを実行させる命令が格納された非一時的なコンピュータ読取可能な記憶媒体であって、前記ステップは、
    その上で実行されるアプリケーションサーバ環境を含む、1つ以上のコンピュータに、
    前記アプリケーションサーバ環境で使用できるデプロイ可能な複数のリソースと、
    各々がドメインの管理およびランタイム区分を提供する1つ以上のパーティションとを与えるステップと、
    パーティションワークマネージャを与えるステップとを含み、前記パーティションワークマネージャはシステムアドミニストレータによって構成可能であり、前記ステップはさらに、
    パーティションワークマネージャを、前記アプリケーションサーバ環境内の前記1つ以上のパーティション各々にフェアシェア値を割当てるように、構成するステップを含み、各フェアシェア値は、システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定される、非一時的なコンピュータ読取可能な記憶媒体。
  19. 前記ステップはさらに、
    前記アプリケーションサーバ環境内の各パーティションに対する最小スレッド制約値を与えるように前記パーティションワークマネージャをさらに構成するステップを含み、前記最小スレッド制約値は、前記システムが使用することによって、1つ以上のパーティションに関連付けられたスレッド使用量を制御するために、設定され、前記ステップはさらに、
    前記アプリケーションサーバ環境内の各パーティションに対するパーティション容量制約値を与えるように前記パーティションワークマネージャをさらに構成するステップを含み、前記パーティション容量制約値は、前記システムが使用することによって、各パーティションからのワーク要求の数を制限するために、設定される、請求項16に記載の非一時的なコンピュータ読取可能な記憶媒体。
  20. 前記1つ以上のパーティションに割当てられたフェアシェア値は各々、1と99の間の数であり、前記フェアシェア値すべての合計は100である、請求項18または19に記載の非一時的なコンピュータ読取可能な記憶媒体。
  21. 前記各フェアシェア値はさらに、前記システムが使用することによって、スレッドプールが満杯のときに、待ち行列中のパーティションそれぞれからのワーク要求に順序を付けるために、設定される、請求項18〜20のいずれかに記載の非一時的なコンピュータ読取可能な記憶媒体。
  22. 1つ以上のステップはさらに、
    1つ以上のパーティションレベルワークマネージャを与えるステップを含み、前記1つ以上のパーティションは各々、前記1つ以上のパーティションレベルワークマネージャのうちの1つを含み、さらに、
    前記1つ以上のパーティションレベルワークマネージャ各々を、各パーティション内で実行されている1つ以上のアプリケーションにパーティションフェアシェア値を割当てるように構成するステップを含み、各パーティションフェアシェア値は、前記システムによって使用されることにより、前記各パーティション内で実行されている1つ以上のアプリケーションに関連付けられたスレッド使用量を制御するために、設定される、請求項18〜21のいずれかに記載の非一時的なコンピュータ読取可能な記憶媒体。
JP2016575042A 2014-06-23 2015-06-23 マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 Active JP6542810B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462016059P 2014-06-23 2014-06-23
US62/016,059 2014-06-23
PCT/US2015/037267 WO2015200376A1 (en) 2014-06-23 2015-06-23 System and method for providing a work manager in a multitenant application server environment

Publications (3)

Publication Number Publication Date
JP2017519308A true JP2017519308A (ja) 2017-07-13
JP2017519308A5 JP2017519308A5 (ja) 2018-03-08
JP6542810B2 JP6542810B2 (ja) 2019-07-10

Family

ID=53511008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016575042A Active JP6542810B2 (ja) 2014-06-23 2015-06-23 マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US10027595B2 (ja)
EP (1) EP3158442B1 (ja)
JP (1) JP6542810B2 (ja)
KR (1) KR102375129B1 (ja)
CN (1) CN106462466B (ja)
WO (1) WO2015200376A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10103946B2 (en) 2014-01-21 2018-10-16 Oracle International Corporation System and method for JMS integration in a multitenant application server environment
US9961011B2 (en) 2014-01-21 2018-05-01 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10187454B2 (en) 2014-01-21 2019-01-22 Oracle International Corporation System and method for dynamic clustered JMS in an application server environment
US10476938B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant 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
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
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
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
US10469401B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for supporting lifecycle plugins in a multitenant application server environment
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
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
US11057272B2 (en) 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
EP3198426B1 (en) * 2014-09-26 2023-08-30 Oracle International Corporation System and method for transaction recovery 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
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
CN109561226B (zh) * 2017-09-26 2020-06-26 华为技术有限公司 一种api混合多租户路由方法、***和api网关
CN108667744B (zh) * 2018-02-26 2020-09-25 华为技术有限公司 流量控制方法及装置
US11200095B2 (en) * 2019-09-23 2021-12-14 Open Text Holdings, Inc. System and method for an efficient and scalable multitenant implementation for content management services platforms, including cloud deployed content management services platforms

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007529079A (ja) * 2004-05-20 2007-10-18 ビーイーエイ システムズ, インコーポレイテッド 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845503B1 (en) * 1999-08-13 2005-01-18 Sun Microsystems, Inc. System and method for enabling atomic class loading in an application server environment
US7328438B2 (en) * 2003-03-27 2008-02-05 International Business Machines Corporation Deallocation of computer data in a multithreaded computer
CN101091164A (zh) * 2004-05-20 2007-12-19 Bea***公司 用于具有自调整线程模型的应用服务器的***和方法
US7752629B2 (en) * 2004-05-21 2010-07-06 Bea Systems Inc. System and method for application server with overload protection
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US8140816B2 (en) * 2005-05-12 2012-03-20 International Business Machines Corporation Utilizing partition resource requirements from workload estimation to automate partition software configuration and validation
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7461231B2 (en) 2006-01-12 2008-12-02 International Business Machines Corporation Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
KR20090006572A (ko) * 2007-07-12 2009-01-15 삼성전자주식회사 쓰레드 풀 관리 장치 및 방법
US8433802B2 (en) * 2010-01-26 2013-04-30 International Business Machines Corporation System and method for fair and economical resource partitioning using virtual hypervisor
CN102170457A (zh) 2010-02-26 2011-08-31 国际商业机器公司 向应用的多租户提供服务的方法和装置
US8572706B2 (en) * 2010-04-26 2013-10-29 Vmware, Inc. Policy engine for cloud platform
US8775626B2 (en) * 2010-09-17 2014-07-08 Microsoft Corporation Using templates to configure cloud resources
US20120102480A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation High availability of machines during patching
KR20120045586A (ko) 2010-10-29 2012-05-09 한국전자통신연구원 다중 테넌트용 SaaS 애플리케이션 설정 장치 및 방법
JP5691062B2 (ja) 2011-04-04 2015-04-01 株式会社日立製作所 仮想計算機の制御方法及び管理計算機
US9442769B2 (en) * 2011-09-30 2016-09-13 Red Hat, Inc. Generating cloud deployment targets based on predictive workload estimation
US10467058B2 (en) 2011-12-20 2019-11-05 Microsoft Technology Licensing, Llc Sandboxing for multi-tenancy
US9535764B2 (en) 2012-02-15 2017-01-03 Cisco Technology, Inc. Resource allocation mechanism
US9870384B2 (en) * 2012-03-30 2018-01-16 International Business Machines Corporation Database system transaction management
US8881149B2 (en) * 2012-04-11 2014-11-04 International Business Machines Corporation Control of java resource runtime usage
US8904402B2 (en) 2012-05-30 2014-12-02 Red Hat, Inc. Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US9529626B2 (en) * 2012-09-12 2016-12-27 Salesforce.Com, Inc. Facilitating equitable distribution of thread resources for job types associated with tenants in a multi-tenant on-demand services environment
US9092270B2 (en) 2012-09-25 2015-07-28 Oracle International Corporation Method of SOA performance tuning
CN103064927B (zh) * 2012-12-21 2016-10-05 曙光信息产业(北京)有限公司 分布式文件***的数据访问方法和装置
US9667703B1 (en) * 2013-01-22 2017-05-30 Hypori, Inc. System, method and computer program product for generating remote views in a virtual mobile device platform
US9396031B2 (en) * 2013-09-27 2016-07-19 International Business Machines Corporation Distributed UIMA cluster computing (DUCC) facility

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007529079A (ja) * 2004-05-20 2007-10-18 ビーイーエイ システムズ, インコーポレイテッド 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐藤通敏: "ゾーンで管理する Solaris 10", UNIX USER, vol. 第14巻第6号通巻第155号, JPN6018049521, 1 June 2005 (2005-06-01), JP, pages 48 - 59 *

Also Published As

Publication number Publication date
KR20170044639A (ko) 2017-04-25
JP6542810B2 (ja) 2019-07-10
EP3158442A1 (en) 2017-04-26
WO2015200376A1 (en) 2015-12-30
CN106462466A (zh) 2017-02-22
EP3158442B1 (en) 2020-05-06
US20150372937A1 (en) 2015-12-24
US10027595B2 (en) 2018-07-17
CN106462466B (zh) 2020-07-14
KR102375129B1 (ko) 2022-03-16

Similar Documents

Publication Publication Date Title
JP6542810B2 (ja) マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法
US20230032267A1 (en) System and method for supporting partitions in a multitenant application server environment
US10027716B2 (en) System and method for supporting web services in a multitenant application server environment
JP6564013B2 (ja) マルチテナントアプリケーションサーバ環境におけるリソースの分離および消費のためのシステムおよび方法
US9906601B2 (en) System and method for supporting namespaces in a multitenant application server environment
US10873627B2 (en) System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10348822B2 (en) System and method for clustering in a multitenant application server environment
US9697052B2 (en) System and method for partition templates in a multitenant application server environment
US9967324B2 (en) System and method for providing data sources for use in a multitenant application server environment
US10084843B2 (en) System and method for web container partitions in a multitenant application server environment
US10051043B2 (en) System and method for JMX support in a multitenant application server environment
US9973384B2 (en) System and method for enterprise java bean support in a multitenant application server environment
CN107077383B (zh) 用于在多租户应用服务器环境中确定分区标识符的***和方法
US20160094583A1 (en) System and method for dynamic security configuration in a multitenant application server environment
US20150372936A1 (en) System and method for supporting configuration of dynamic clusters in a multitenant application server environment
JP2017503281A (ja) アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法
EP3292472A1 (en) Memory access control method and system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190221

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: 20190521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190613

R150 Certificate of patent or registration of utility model

Ref document number: 6542810

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250