JP6574794B2 - マルチテナントアプリケーションサーバ環境におけるポータブルパーティションのためのシステムおよび方法 - Google Patents

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

Info

Publication number
JP6574794B2
JP6574794B2 JP2016574999A JP2016574999A JP6574794B2 JP 6574794 B2 JP6574794 B2 JP 6574794B2 JP 2016574999 A JP2016574999 A JP 2016574999A JP 2016574999 A JP2016574999 A JP 2016574999A JP 6574794 B2 JP6574794 B2 JP 6574794B2
Authority
JP
Japan
Prior art keywords
partition
application server
resource group
domain
archive
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
JP2016574999A
Other languages
English (en)
Other versions
JP2017520058A5 (ja
JP2017520058A (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 JP2017520058A publication Critical patent/JP2017520058A/ja
Publication of JP2017520058A5 publication Critical patent/JP2017520058A5/ja
Application granted granted Critical
Publication of JP6574794B2 publication Critical patent/JP6574794B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

著作権表示
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナントアプリケーションサーバ環境におけるポータブルパーティションのためのシステムおよび方法に関する。
背景:
アプリケーションサーバは、概して、ソフトウェアアプリケーションをデプロイして実行することができる管理された環境を提供する。クラウドベースの環境は、クラウドによって提供される分散型リソース内でアプリケーションを実行して、当該分散型リソースを利用することを可能にする。このような環境は、多くのユーザまたはテナントをサポートすることができ、それらのうちのいくつかは、そのユーザまたはテナントに特有の特定条件を有する可能性がある。これらは、本発明の実施形態が使用可能となる環境のタイプのいくつかの例に該当する。
概要:
一実施形態に従うと、マルチテナントアプリケーションサーバ環境においてポータブルパーティションを提供するためのシステムおよび方法がこの明細書中に記載される。一実施形態に従うと、当該システムは、パーティションを第1のドメインまたはソースドメイン(たとえばテストドメイン)からエクスポートし、別の第2のドメインまたはターゲットドメイン(たとえば生成ドメイン)にインポートすることを可能にする。パーティションアーカイブの作成またはエクスポート中に、パーティション構成、リソースグループまたはリソースグループテンプレート情報、および、任意にはアプリケーションバイナリを含むパーティションアーカイブが作成される。パーティションアーカイブはまた、パーティションに関連付けられたエクスポート可能な値または構成可能な値へのアクセスを可能にするインターフェイスを含み得る。ターゲットドメインへのパーティションアーカイブのデプロイメントまたはインポート中に、パーティションに関連付けられたエクスポート可能な値または構成可能な値を含むパーティションアーカイブにおける情報を用いて、ターゲットドメインにおいて使用されるようにパーティションを構成する。
一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。 一実施形態に従った例示的なマルチテナント環境をさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるポータブルパーティションの使用を示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるポータブルパーティションの使用をさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるポータブルパーティションの使用方法を示す図である。
詳細な説明:
一実施形態に従うと、マルチテナントアプリケーションサーバ環境においてポータブルパーティションを提供するためのシステムおよび方法がこの明細書中に記載される。一実施形態に従うと、当該システムは、パーティションを第1のドメインまたはソースドメイン(たとえばテストドメイン)からエクスポートし、別の第2のドメインまたはターゲットドメイン(たとえば生成ドメイン)にインポートすることを可能にする。パーティションアーカイブの作成またはエクスポート中に、パーティション構成、リソースグループまたはリソースグループテンプレート情報、および、任意にはアプリケーションバイナリを含むパーティションアーカイブが作成される。パーティションアーカイブはまた、パーティションに関連付けられたエクスポート可能な値または構成可能な値へのアクセスを可能にするインターフェイスを含み得る。ターゲットドメインへのパーティションアーカイブのデプロイメントまたはインポート中に、パーティションに関連付けられたエクスポート可能な値または構成可能な値を含むパーティションアーカイブにおける情報を用いて、ターゲットドメインにおいて使用されるようにパーティションを構成する。
アプリケーションサーバ(たとえば、マルチテナント(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のドメインまたはソースドメイン(たとえばテストドメイン)からエクスポートし、別の第2のドメインまたはターゲットドメイン(たとえば生成ドメイン)にインポートすることを可能にする。パーティションアーカイブの作成またはエクスポート中に、パーティション構成、リソースグループまたはリソースグループテンプレート情報、および、任意にはアプリケーションバイナリを含むパーティションアーカイブが作成される。パーティションアーカイブはまた、パーティションに関連付けられたエクスポート可能な値または構成可能な値へのアクセスを可能にするインターフェイスを含み得る。ターゲットドメインへのパーティションアーカイブのデプロイメントまたはインポート中に、パーティションに関連付けられたエクスポート可能な値または構成可能な値を含むパーティションアーカイブにおける情報を用いて、ターゲットドメインにおいて使用されるようにパーティションを構成する。
さまざまな実施形態に従うと、この特徴は、パーティションを、たとえばこれらパーティションが正常に開発されてテストされてきたテスト環境から生産環境に移動させることを所望するアプリケーションサーバ顧客としては、上述のようなシナリオにおいて有用である。
図6は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるポータブルパーティションの使用を示す。図6に示されるように、一実施形態に従うと、第1のドメインまたはソースドメイン400(たとえばテストドメイン)は、パーティション構成404と1つ以上のパーティション特有のリソースグループ、アプリケーションまたはリソース406とに関連付けられた特定のパーティションA402を含む1つ以上のパーティションを含み得る。
任意には、パーティションはリソースグループテンプレート410を参照することができる。各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲット(ソースドメインにおける仮想ターゲット412など)を定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。
一実施形態に従うと、別の第2のドメインまたはターゲットドメイン420(たとえば生成ドメイン)にパーティションをインポートすることが所望される可能性がある。この場合、搬送されたパーティションA422は、同様に、パーティション構成424および1つ以上のパーティション特有のリソースグループ、アプリケーションまたはリソース426に関連付けることができ、任意にはリソースグループテンプレート430を参照することができ、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲット(ターゲットドメインにおける仮想ターゲット432など)を定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。
一実施形態に従うと、パーティションアーカイブの作成またはエクスポート440中に、パーティション構成444、リソースグループまたはリソースグループテンプレート情報446、および任意にはアプリケーションバイナリ448を含むパーティションアーカイブ442が作成される。一実施形態に従うと、パーティションアーカイブは、たとえば、ジップタイプのファイルであり得る。
一実施形態に従うと、パーティションアーカイブはまた、パーティションに関連付けられたエクスポート可能または構成可能な値452へのアクセスを可能にするJSONインターフェイス450(たとえばJSONファイル)を含み得る。ターゲットドメインへのパーティションアーカイブのデプロイメントまたはインポート454中に、パーティションに関連付けられたエクスポート可能な値または構成可能な値を含むパーティションアーカイブにおける情報を用いて、ターゲットドメインにおいて使用されるようにパーティションを構成する。
システム構成MBeansは時間とともに変化し得るので、システムは、システム上のアノテーションまたはパーティション属性もしくはMBeansを、たとえば、これらのMBeansがパーティションに関連付けられたエクスポート可能な値または構成可能な値として公開されるべきであることを示すアノテーション@portableまたは@ExportCustomizableValueとして認識することができる。
一実施形態に従うと、アプリケーションバイナリの重みが大きい可能性があるので、パーティションアーカイブにおけるそれらのバイナリをバンドルしないことが好ましいかもしれず、このため、代わりに、エクスポート・パーティションコマンドを用いて、パーティションアーカイブにバイナリを含めるかまたはバイナリを排除することができる。次いで、ターゲットドメインにおけるユーザは、JSONファイルにおけるアプリケーションバイナリの位置(ソースドメインの位置とは異なる位置であり得る)を指定することができる。
図7は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるポータブルパーティションの使用をさらに示す。図7に示されるように、一実施形態に従うと、上述のように、パーティションアーカイブは、パーティションに関連付けられたエクスポート可能な値または構成可能な値へのアクセスを可能にするJSONインターフェイスを含む。
ターゲットドメインへのパーティションアーカイブのデプロイメントまたはインポート中に、変更済みの構成可能な値460は、アドミニストレータからまたは別のソースから受信することができ、パーティションに関連付けられたエクスポート可能な値もしくは構成可能な値を変更するかまたはパーティションに関連付けられたエクスポート可能な値もしくは構成可能な値とともに用いられ、ターゲットドメインにおいて使用されるように修正済みパーティション構成462を提供するのに用いられる。
いくつかのパーティション構成情報は、特定のドメインに制限される可能性があるが、ユーザは異なるドメインで使用できるようにこれを変更することができなければならない。たとえば、ユーザが変更できないドメイン下にある1セットの構成MBeansは、ユーザが変更可能であるパーティションにおける同様のセットのMBeansに関連付けることができる。
アドミニストレータによって提供されるいずれかの構成変更に基づいて、パーティションサブコンポーネントは、ターゲットドメインにおけるそれらの環境を再作成することができる。ソースドメインにおける或るパーティションが1つのアプリケーションを備えたリソースグループを含む場合、そのパーティションがターゲットドメインにインポートされると、そのリソースグループ内のアプリケーションの構成およびデプロイメントが、ターゲットドメインに適合するようにシステムによって自動的に実行され得る。
たとえば、一実施形態に従うと、JSONファイルが公開し得る属性は、ソースドメインと比べて、ユーザがターゲットドメインにおいて異なるPDBを或るパーティションに関連付けることを可能にする。インポート中に、システムは、パーティションアーカイブと同じフォルダ内のJSONファイルをチェックすることができ、それがユーザによるいずれかの変更を発見した場合、それら変更を用いて、ターゲットドメインにおける構成デフォルトを無効にする。
図8は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてポータブルパーティションを用いる方法を示す。図8に示されるように、一実施形態に従うと、ステップ480において、ソフトウェアアプリケーションの実行のためのドメインならびに1つ以上のパーティションおよびリソースグループを含むアプリケーションサーバ環境が提供される。各々のパーティションは、ドメインの管理およびランタイム区分を提供し、1つ以上のリソースグループを含み得る。各々のリソースグループは、リソースグループテンプレートを参照し得るデプロイ可能なアプリケーションまたはリソースの集合である。
ステップ482において、ターゲットドメイン(たとえば生成ドメイン)へのインポートのために特定のパーティションをソースドメイン(たとえばテストドメイン)からエクスポートするようにとの要求が受信される。
ステップ484において、参照された任意のリソースグループテンプレートからのものも含めて、パーティションにおいて各々のリソースグループおよびリソースのためのパーティション特有の構成エレメントを生成するために用いることができるパーティション構成および他の情報を含むパーティションアーカイブが作成される。パーティションアーカイブは、そこに、エクスポート可能で構成可能な値の変更を可能にするインターフェイスを含む。
ステップ486において、特定のパーティションをターゲットドメインにデプロイするために、そのターゲットドメイン内で使用されるように任意の修正済みパーティション構成を適用することを含めて、エクスポート可能で構成可能な値に対する任意の受信済みの変更が、システムによって、パーティションアーカイブと組合わせて用いられる。
インプリメンテーションの例
具体的な実施形態を説明する追加の詳細を例示の目的で以下に記載する。
エクスポートパーティション
上述のとおり、パーティションは、ソースドメインからエクスポートされると、パーティションアーカイブを生成する。一実施形態に従うと、以下がパーティションアーカイブに含まれ得る:パーティション構成;パーティションに含まれる任意のリソースグループ;それらのリソースグループによって参照される任意のリソースグループテンプレート、および、パーティションのファイルシステムのコンテンツ。上述のとおり、任意には、パーティションにデプロイされたアプリケーションのためのアプリケーションバイナリおよび構成はまた、パーティションアーカイブに含めることができる。いくつかのインスタンスにおいては、ドメインに対するすべての依存性をなくすことはできない。パーティションが参照し得るドメインにおける構成エレメントのいくつかの例は、ターゲットおよびセキュリティ領域を含む。
インポートパーティション
いくつかのインスタンスにおいては、パーティションアーカイブをインポートしている間、システムアドミニストレータは、(ターゲットおよびセキュリティ領域などの)ドメインに対する依存性を更新する必要があるかもしれず、任意には、パーティション構成における他の属性を更新してそれを有効にする必要があるかもしれない。更新される必要があるかもしれないいくつかのアイテムはパーティションプロパティ、JDBCSystemResourceOverrideMBean、およびResourceGroupにおける他のリソースを含む。
パーティションのインポート中におけるリソースグループテンプレートのコンフリクト
いくつかのインスタンスにおいては、パーティションアーカイブは、ソースドメインにおける他のパーティションと共有されたリソースグループテンプレートを含んでもよい。ターゲットドメインにパーティションアーカイブをインポートする場合、共用リソースグループテンプレートが、場合によってはそれより前のパーティションインポートにより、ターゲットドメインに既に存在している可能性がある。一実施形態に従うと、インポート動作は、両方のツリー(既存のリソースグループテンプレートおよび新しいリソースグループテンプレート)のディープツリー比較を実行することによって、既存のリソースグループテンプレートがアーカイブに含まれているものと同一であるかどうかを検出することとなる。それらが同一であれば、既存のリソースグループテンプレートが用いられることとなる。逆に、それらが同一でなければ、インポートが失敗することとなり、既存のリソースグループテンプレートを用いる代わりに、新しいリソースグループテンプレートを作成するために用いられるだろうリソースグループテンプレートについての新しい名前を示すインポートを再試行することをユーザに要求する。
構成データのカテゴリ
一実施形態に従うと、さまざまなカテゴリのパーティション構成が存在する。その各々はわずかに異なる処理を必要とする:
インポート時に変化なし(Won't change on import):これらは、ソースドメインからターゲットドメインに逐語的にコピーされる属性である。これらを変化させる必要がある場合、アドミニストレータは後でパーティションをインポートした後に変化させることができる。例としてWorkManager設定を含む。
インポート時に変化の可能性あり(Likely to change on import):これらは、インポート時に変化する可能性が非常に高い属性であり、新しいドメインのために正確に設定されなければ、検証エラーを発生させることとなる。しばしば、これらは、(パーティション外の)ドメインにおけるコンフィグ要素を参照する属性である。例として、TargetsおよびSecurityRealmsの参照を含む。
インポート時に変化する可能性もあれば変化しない可能性もある(May or may not change on import):これらは我々がまったく認識していない属性であるが、これら属性が変化する場合、これら属性は、場合によっては(インポート後ではなく)インポート中に変化させるべきである。なぜなら、これら属性が誤っている場合、検証エラーまたは不良な挙動を発生させる可能性があるからである。例として、JDBCSystemResourceOverrideMBean属性(URL、ユーザ、passwdなど)を含む。
ライフサイクル管理との統合
パーティションが新しいドメインにインポートされる場合、いくつかの外部システムが新しくインポートされたパーティションを認識するように構成される必要があるかもしれない。たとえば、OTDは新しいパーティションにおけるアプリケーションにバランスをロードするように構成される必要があるかもしれない。
パーティションアーカイブフォーマット
一実施形態に従うと、パーティションアーカイブは、表1に示されるようなコンテンツを備えたzipファイルであり得る:
Figure 0006574794
exportPartition
一実施形態に従うと、exportPartitionを公開するパブリック層はPortablePartitionManagerMBeanである。
Figure 0006574794
この場合:
partitionNameはエクスポートすべきパーティションの名前である。
expArchPathは、(クライアントではなく)adminサーバによって理解されるように作成すべきアーカイブファイルへのフルパスである。アーカイブの作成に加えて、exportPartitionは、パーティションアーカイブと同じディレクトリに<PartitionName>-attributes.jsonファイルのコピーを配置することとなる。
includeAppsNLibsは、アプリケーションバイナリが如何に処理されるかについて影響を及ぼすブーリアンである。デフォルトで真に設定する。
keyFileは、暗号化された属性のための暗号キーとして用いるべきストリングを含んでいるユーザ提供型ファイルである。
@ExportCustomizableValueアノテーション
一実施形態に従うと、デフォルトでは、パーティションにおけるすべての構成属性は、パーティションアーカイブにおいて逐語的に保存され、そのまま(すなわち、上述の「変化なし(Won't change)」カテゴリに従って)インポートされる。しかしながら、上述のとおり、いくつかの状況においては、いくつかの属性はインポート中に変更される必要があるかもしれない。一実施形態に従うと、これを示すために、@ExportCustomizableValueアノテーションを用いることができる。構成属性が@ExportCustomizableValueアノテーションを有する場合、パーティションアーカイブconfig.xmlに属性を保存することに加えて、属性もパーティションアーカイブにおける<PartitionName>-attributes.jsonファイルに保存される。これは、属性についての値がインポート時に要求されるべきであることを示している。たとえば、以下のとおりである:
Figure 0006574794
上述の例においては、JDBCSystemResourceOverrideMBeanの全属性は、それらの現在値と共に<PartitionName>-attributes.jsonにコピーされる(saveDefaultはデフォルトで真となる)。
Figure 0006574794
上述の例においては、パーティションの領域属性は現在値なしで<PartitionName>-attributes.jsonに保存されることとなる。<PartitionName>-attributes.jsonファイルの例は以下のとおりであり得る:
Figure 0006574794
importPartition
一実施形態に従うと、importPartitionを公開するパブリック層はPortablePartitionManagerMBeanである。
Figure 0006574794
この場合:
archiveFileName:(クライアントではなく)adminサーバによって理解されるようにインポートすべきアーカイブへのフルパス。importPartitionはまた、パーティションアーカイブと同じディレクトリにおけるファイル<PartitionName>-attributes.jsonを探索することとなる。それが発見されると、そのファイルにおける値が、パーティションアーカイブにおけるそれらの値を無効にすることとなる。
createNew:(以下を参照)。
partitionName:新しく作成されたパーティションの名前。デフォルトで、パーティションアーカイブにおいて指定された名前となる。
keyFile:エクスポート中に暗号化された属性のための暗号キーとして用いられたストリングを含むユーザ提供型ファイルである。
config.xmlにおけるパーティション構成を再作成すると共に、アプリケーションおよびシステムリソースが新しいパーティションのためにデプロイされる必要がある。
アドミニストレータは、ターゲットドメインに適した変更済み属性を<PartitionName>-attributes.jsonファイルに提供し得る。
createNewフラグ(importPartition)
一実施形態に従うと、このフラグはimportPartitionを実行する間に以下のセマンティックを有している:
指定されたフラグなし(No Flag Specified):同じ名前を有する(または、深い比較がサポートされている場合に「同じRGT(same RGT)」ではない同じ名前を有する)既存のRGTがある場合、失敗とする。この場合、インポートが失敗し、次のようなメッセージが得られる:「CompanyRGTという名前のRGTが既に存在している。仮にドメインに既に存在しているCompanyRGTを用いることを所望する場合、このコマンドをcreateNew=falseで再実行せよ。仮に既存のCompanyRGTを無視して、パーティションアーカイブにおける定義およびattributes.jsonファイルを用いて新しいCompanyRGTを作成することを所望する場合、このコマンドをcreateNew=trueで再実行せよ。」
偽(false):インポート中にクラッシュがある場合、既存のRGTを用いる。
真(true):クラッシュがある場合、新しいRGTを作成する。
ターゲットドメインにおける既存のRGTはいずれも変更されない。
アプリケーション/ライブラリバイナリのエクスポート
一実施形態に従うと、パーティションがエクスポートされると、アプリケーションバイナリがパーティションアーカイブに含まれているか否かが、エクスポート動作時の「includeApps」オプションの値によって判断される。ブーリアン「includeApps」が真であれば、バイナリが含まれており、そうでない場合、バイナリは排除されている。
この<partition>-attributes.jsonは、「includeApps」が真に設定されているかまたは偽に設定されているかに関わらず、パーティションと、エクスポートされているパーティション内のリソースグループとに範囲指定された各々のアプリケーションのためのエントリを有するだろう。アプリケーション属性「ソース・経路(source-path)」「プラン・経路(plan-path)」、「ステージング・モード(staging-mode)」は、エンドユーザにとって最も重要である。
アプリケーション/ライブラリバイナリのインポート
一実施形態に従うと、importPartition中に、アプリケーションが如何にデプロイされるかは、いくつかのファクタに依存しており、たとえば、アプリケーションバイナリが<partition-name>.zipに存在しているかどうか、または、ステージング・モード属性が<partition-name>-attributes.jsonに存在しているかどうかに依存している。
アプリケーションバイナリが<partition-name>.zipに存在している場合、importPartition中に、この(ジップからの)アプリケーションバイナリが用いられる。このバイナリは、親アプリケーションのディレクトリを(それがResourceGroupTemplateであろうと、またはResourceGroupであろうと)アップロードするためにコピーされる。アプリケーションについてのステージング・モードは、パーティションがエクスポートされたときにステージングモードが何であったかにかかわらず、「STAGE」に設定される。
アプリケーションバイナリが<partition-name>.zipに存在していない場合、importPartition中に、「ステージング・モード(staging-mode)」属性が<partition-name>-attribute.jsonファイルから読取られ、以下のアクションが取られる。
ステージング・モードが「STAGE」である場合、ステージング・モードがステージであればアプリケーションバイナリがエクスポート中にzipファイルに含まれているべきであったことを示唆するエラーメッセージが投入される。
ステージング・モードが「NOSTAGE」または「EXTERNAL」である場合、<partition-name>-attributes.jsonから「ソース・経路(source-path)」属性が読取られ、ステージング・モード(staging-mode)およびソース・経路(source-path)が読取られるのに応じて、アプリケーションが(<partition-name>-attributes.jsonファイルからどんなものが読取られていたとしても)「NOSTAGE」または「EXTERNAL」でデプロイされる。アプリケーションバイナリが読取られたソース・経路(source-path)に存在していない場合、エラーが投入され、importPartitionが停止される。
暗号化された属性のエクスポート
一実施形態に従うと、ドメインツリーにおける暗号化された各々の属性は、(SerializedSystemIni.datにおいて維持される)ドメインに特有のキーで暗号化することができる。これは、キーであるSerializedSystemIni.datが各ドメイン毎に異なっているので、暗号化された属性をそのままではエクスポートすることができないことを意味している。したがって、暗号化されたデータのエクスポートを処理するために以下のステップが用いられる:
エクスポート中に新しい秘密キーを生成。
秘密キーを用いて、partition-config.xmlにおけるすべての暗号化された属性と、<Partition-name>.zipの一部であるいずれかのSystemResource記述子とを暗号化する。
ソルト(salt)および第2のキーで秘密キーを暗号化し、これを、エクスポートされたジップ<Partition-name>.zipの一部であるファイルexpPartSecretに保存する。
暗号化された属性のインポート
パーティション全体が読取られて、<Partition-name>-attributes.jsonに従って属性が変更された後のインポート中に、暗号化された属性を処理するために次のステップが用いられる:
エクスポートされたジップの一部である秘密キーexpPartSecretを読取る。
WLSソースにおけるデフォルトキーまたはインポートするためにkeyFileオプションを用いてユーザによって提供されるキーのいずれかである第2のキーを用いて秘密キーを復号化する。ユーザによって提供されるキーは、インポートの際に用いられるキーと一致するはずである。
expPartSecretから読取られたキーを用いて(上述で読取られて変更された)パーティションMBeanにおけるすべての暗号化された属性を復号化する。
インポートされたドメインのためのドメイン特有のキー(SerializedSystemIni.dat)でパーティションMBeanにおける暗号化された属性をすべて暗号化する。
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つもしくは複数の)コンピュータ読取り可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するかまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。

Claims (11)

  1. アプリケーションサーバ環境において複数のポータブルパーティションの使用をサポートするためのシステムであって、
    アプリケーションサーバ環境を有する1つ以上のコンピュータを備え、
    前記アプリケーションサーバ環境は、ソフトウェアアプリケーションの実行のための第1および第2のアプリケーションサーバドメインを含み、
    前記第1および第2のアプリケーションサーバドメインの各々は、1つ以上のパーティションを含み、
    各々のパーティションは、パーティション構成に関連付けられるとともに、1つ以上のリソースグループを含み、
    各々のリソースグループは、1つ以上のアプリケーションおよびリソースを定義するリソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、
    前記1つ以上のコンピュータは、
    パーティションを前記第1のアプリケーションサーバドメインからエクスポートし、前記第2のアプリケーションサーバドメインにインポートするように構成され、
    パーティション構成と、リソースグループまたはリソースグループテンプレート情報とを含むパーティションアーカイブを作成するように構成される、システム。
  2. 前記アプリケーションサーバ環境またはクラウド環境はJava EEアプリケーションサーバを含む、請求項1に記載のシステム。
  3. 前記パーティションアーカイブは、前記パーティションに関連付けられた複数のエクスポート可能な値または複数の構成可能な値を含むファイルである、請求項1または2に記載のシステム。
  4. 前記1つ以上のコンピュータは、
    前記第2のアプリケーションサーバドメインへの前記パーティションアーカイブのデプロイメントまたはインポート中に、前記パーティションに関連付けられた複数のエクスポート可能な値または複数の構成可能な値を含む、前記パーティションアーカイブにおける情報を使用して、前記第2のアプリケーションサーバドメインにおいて用いられる前記パーティションを構成し、
    前記第2のアプリケーションサーバドメインにおいて用いられる前記パーティションは、アドミニストレータまたは別のソースから受信したいずれかの変更済みの複数の構成可能な値を含む、請求項1から3のいずれかに記載のシステム。
  5. 前記システムは、クラウド環境内で動作する複数のテナントをサポートするために前記クラウド環境内に提供され、
    前記1つ以上のパーティションは、テナントによって使用されるように、前記テナントに関連付けられる、請求項1から4のいずれかに記載のシステム。
  6. アプリケーションサーバ環境において複数のポータブルパーティションの使用をサポートするための方法であって、
    1つ以上のコンピュータが、アプリケーションサーバ環境を提供するステップを含み、
    前記アプリケーションサーバ環境は、ソフトウェアアプリケーションの実行のための第1および第2のアプリケーションサーバドメインを含み、
    前記第1および第2のアプリケーションサーバドメインの各々は、1つ以上のパーティションを含み、
    各々のパーティションは、パーティション構成に関連付けられるとともに、1つ以上のリソースグループを含み、
    各々のリソースグループは、1つ以上のアプリケーションおよびリソースを定義するリソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、
    前記方法は、さらに、
    前記1つ以上のコンピュータが、パーティションを前記第1のアプリケーションサーバドメインからエクスポートし、前記第2のアプリケーションサーバドメインにインポートするステップと、
    前記1つ以上のコンピュータが、パーティション構成と、リソースグループまたはリソースグループテンプレート情報とを含むパーティションアーカイブを作成するステップとを含む、方法。
  7. 前記アプリケーションサーバ環境またはクラウド環境はJava EEアプリケーションサーバを含む、請求項6に記載の方法。
  8. 前記パーティションアーカイブは、前記パーティションに関連付けられた複数のエクスポート可能な値または複数の構成可能な値を含むファイルである、請求項6または7に記載の方法。
  9. 前記1つ以上のコンピュータが、前記第2のアプリケーションサーバドメインへの前記パーティションアーカイブのデプロイメントまたはインポート中に、前記パーティションに関連付けられた複数のエクスポート可能な値または複数の構成可能な値を含む、前記パーティションアーカイブにおける情報を使用して、前記第2のアプリケーションサーバドメインにおいて用いられる前記パーティションを構成するステップをさらに含み、
    前記第2のアプリケーションサーバドメインにおいて用いられる前記パーティションは、アドミニストレータまたは別のソースから受信したいずれかの変更済みの複数の構成可能な値を含む、請求項6から8のいずれかに記載の方法。
  10. 前記方法は、クラウド環境内で動作する複数のテナントをサポートするために前記クラウド環境内で実行され、
    前記1つ以上のパーティションは、テナントによって使用されるように、前記テナントに関連付けられる、請求項6から9のいずれかに記載の方法。
  11. プログラム命令を機械読取り可能フォーマットで含むコンピュータプログラムであって、前記プログラム命令は、1つ以上のコンピュータに請求項6から10のいずれかに記載の方法を実行させる、コンピュータプログラム。
JP2016574999A 2014-06-23 2015-06-23 マルチテナントアプリケーションサーバ環境におけるポータブルパーティションのためのシステムおよび方法 Active JP6574794B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462016032P 2014-06-23 2014-06-23
US62/016,032 2014-06-23
US201462054906P 2014-09-24 2014-09-24
US62/054,906 2014-09-24
PCT/US2015/037262 WO2015200372A1 (en) 2014-06-23 2015-06-23 System and method for portable partitions in a multitenant application server environment

Publications (3)

Publication Number Publication Date
JP2017520058A JP2017520058A (ja) 2017-07-20
JP2017520058A5 JP2017520058A5 (ja) 2018-03-15
JP6574794B2 true JP6574794B2 (ja) 2019-09-11

Family

ID=53541923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016574999A Active JP6574794B2 (ja) 2014-06-23 2015-06-23 マルチテナントアプリケーションサーバ環境におけるポータブルパーティションのためのシステムおよび方法

Country Status (6)

Country Link
US (1) US10038645B2 (ja)
EP (1) EP3158443B1 (ja)
JP (1) JP6574794B2 (ja)
KR (1) KR102375128B1 (ja)
CN (1) CN106462470B (ja)
WO (1) WO2015200372A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP6564026B2 (ja) * 2014-09-26 2019-08-21 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
US10250512B2 (en) * 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US11115344B2 (en) 2018-06-27 2021-09-07 Oracle International Corporation Computerized methods and systems for migrating cloud computer services
US10785129B2 (en) 2018-06-27 2020-09-22 Oracle International Corporation Computerized methods and systems for maintaining and modifying cloud computer services
US11190599B2 (en) 2018-06-27 2021-11-30 Oracle International Corporation Method and system for cloud service pre-provisioning
US10911367B2 (en) 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US11907743B2 (en) 2019-05-21 2024-02-20 Oracle International Corporation System and method for relocating customer virtual machine instances in a multi-tenant cloud service
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

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US8924524B2 (en) * 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
CN101639835A (zh) * 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
JP5691062B2 (ja) 2011-04-04 2015-04-01 株式会社日立製作所 仮想計算機の制御方法及び管理計算機
US9336060B2 (en) * 2011-06-17 2016-05-10 Microsoft Technology Licensing, Llc Middleware services framework for on-premises and cloud deployment
US8918448B2 (en) * 2012-05-11 2014-12-23 International Business Machines Corporation Application component decomposition and deployment
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
US9292330B2 (en) * 2012-11-29 2016-03-22 International Business Machines Corporation Replacing virtual machine disks
US20140280595A1 (en) * 2013-03-15 2014-09-18 Polycom, Inc. Cloud Based Elastic Load Allocation for Multi-media Conferencing
US10031761B2 (en) * 2013-10-11 2018-07-24 International Business Machines Corporation Pluggable cloud enablement boot device and method

Also Published As

Publication number Publication date
KR102375128B1 (ko) 2022-03-16
KR20170023112A (ko) 2017-03-02
CN106462470B (zh) 2020-01-21
WO2015200372A1 (en) 2015-12-30
CN106462470A (zh) 2017-02-22
US10038645B2 (en) 2018-07-31
JP2017520058A (ja) 2017-07-20
US20150372941A1 (en) 2015-12-24
EP3158443B1 (en) 2019-04-17
EP3158443A1 (en) 2017-04-26

Similar Documents

Publication Publication Date Title
JP6574794B2 (ja) マルチテナントアプリケーションサーバ環境におけるポータブルパーティションのためのシステムおよび方法
JP6876836B2 (ja) マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステムおよび方法
JP6491243B2 (ja) マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法
JP6703527B2 (ja) マルチテナントアプリケーションサーバ環境におけるパーティション識別子の決定のためのシステムおよび方法
US9928111B2 (en) System and method for configuration tagging in a multitenant application server environment
CN106575242B (zh) 用于在多租户应用服务器环境中支持命名空间的系统和方法
US10523709B2 (en) System and method for dynamic security configuration 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
US10193754B2 (en) System and method for supporting connectors in a multitenant application server environment
JP2017503281A (ja) アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法
US11138017B2 (en) System and method for partition administrative targeting in an application server environment
KR20180072593A (ko) 멀티테넌트 미들웨어 어플리케이션에서 호출된 os 프로그램의 멀티테넌트 실행을 위한 시스템 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190705

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190819

R150 Certificate of patent or registration of utility model

Ref document number: 6574794

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