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

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

Info

Publication number
JP2017519309A
JP2017519309A JP2016575054A JP2016575054A JP2017519309A JP 2017519309 A JP2017519309 A JP 2017519309A JP 2016575054 A JP2016575054 A JP 2016575054A JP 2016575054 A JP2016575054 A JP 2016575054A JP 2017519309 A JP2017519309 A JP 2017519309A
Authority
JP
Japan
Prior art keywords
partition
target
resource group
application server
resource
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
JP2016575054A
Other languages
English (en)
Other versions
JP6615796B2 (ja
JP2017519309A5 (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 JP2017519309A publication Critical patent/JP2017519309A/ja
Publication of JP2017519309A5 publication Critical patent/JP2017519309A5/ja
Application granted granted Critical
Publication of JP6615796B2 publication Critical patent/JP6615796B2/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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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

Abstract

一実施形態に従うと、マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法がこの明細書中に記載される。各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲットを定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。ウェブ層コンポーネント(たとえば、Oracle Traffic Director)はルーティング情報を含み、当該ルーティング情報は、特定のパーティションのための仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、そのパーティションのための複数の要求が、たとえば1つ以上のセッションの一部として、適切なターゲットに向けられるようにする。パーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、そのパーティションのための後続の複数の要求が新しいターゲットに向けられるようにする。

Description

発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法に関する。
背景:
アプリケーションサーバは、概して、ソフトウェアアプリケーションをデプロイして実行することができる管理された環境を提供する。クラウドベースの環境は、クラウドによって提供される分散型リソース内でアプリケーションを実行して、当該分散型リソースを利用することを可能にする。このような環境は、多くのユーザまたはテナントをサポートすることができ、それらのうちのいくつかは、そのユーザまたはテナントに特有の特定条件を有する可能性がある。これらは、本発明の実施形態が使用可能となる環境のタイプのいくつかの例に該当する。
概要:
一実施形態に従うと、マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法がこの明細書中に記載される。各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲットを定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。ウェブ層コンポーネント(たとえば、Oracle Traffic Director)はルーティング情報を含み、当該ルーティング情報は、特定のパーティションのための仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、そのパーティションのための複数の要求が、たとえば1つ以上のセッションの一部として、適切なターゲットに向けられるようにする。特定のパーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、そのパーティションのための後続の複数の要求が新しいターゲットに向けられるようにする。
一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。 一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。 一実施形態に従った例示的なマルチテナント環境をさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションマイグレーションの使用を示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションマイグレーションの使用をさらに示す図である。 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションマイグレーションの使用方法を示す図である。
詳細な説明:
一実施形態に従うと、マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法がこの明細書中に記載される。各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲットを定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。ウェブ層コンポーネント(たとえば、Oracle Traffic Director)はルーティング情報を含み、当該ルーティング情報は、特定のパーティションのための仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、そのパーティションのための複数の要求が、たとえば1つ以上のセッションの一部として、適切なターゲットに向けられるようにする。特定のパーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、そのパーティションのための後続の複数の要求が新しいターゲットに向けられるようにする。
アプリケーションサーバ(たとえば、マルチテナント(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とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
パーティションマイグレーション
一実施形態に従うと、マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法がこの明細書中に記載される。各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲットを定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。ウェブ層コンポーネント(たとえば、Oracle Traffic Director)はルーティング情報を含み、当該ルーティング情報は、特定のパーティションのための仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、そのパーティションのための複数の要求が、たとえば1つ以上のセッションの一部として、適切なターゲットに向けられるようにする。特定のパーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、そのパーティションのための後続の複数の要求が新しいターゲットに向けられるようにする。
一実施形態に従うと、パーティションマイグレーションを用いることにより、シームレスなマイグレーションを提供することができる。このシームレスなマイグレーションは、パーティションが1つのターゲットから別のターゲットにマイグレートされるときに当該パーティションに関連付けられたセッションの状態を維持することを含む。これは、たとえば、基礎をなすコンピューティングインフラストラクチャに問題があるせいで顧客のアプリケーションが中断されてしまうのを確実に防止する際には有用であり得る。
図6は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションマイグレーションの使用を示す。図6に示されるように、一実施形態に従うと、第1または元のターゲットクラスタA402は、パーティション構成406と1つ以上のパーティション特有のリソースグループ、アプリケーションまたはリソース408とに関連付けられた特定のパーティションA404を含む1つ以上のパーティションを含み得る。
任意には、パーティションはリソースグループテンプレート410を参照することができる。
各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲット(仮想ターゲットA420など)を定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。ウェブ層コンポーネント(たとえば、Oracle Traffic Directorなどのトラフィックディレクタ)430はルーティング情報432を含み、当該ルーティング情報432は、特定のパーティションのための仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、その特定のパーティションのための複数の要求が、たとえば1つ以上のセッション434の一部としての適切なターゲットに向けられるようにする。
さらに例示されるように、システムは、パーティションがデプロイ可能な第2のまたは新しいターゲットクラスタB442を含み得る。
図7は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションマイグレーションの使用をさらに示す。図7に示されるように、一実施形態に従うと、特定のパーティションと、その上で現在動作しているいずれかのセッションとを元のターゲットから新しいターゲットにまでマイグレートする(444)ようにとの指示を受信し得る。一般的に、システムは、特定の仮想ターゲットに関連付けられたターゲット間、たとえば、(異なる仮想ターゲット間ではなく)特定の仮想ターゲットに関連付けられたさまざまなクラスタメンバ間、でパーティションをマイグレートするだけであるだろう。
これに応じて、特定のパーティションがマイグレートされる。この場合、セッション情報が元のターゲットと新しいターゲットとの間で複製され、ウェブ層コンポーネントには修正されたルーティング情報446が与えられ、この修正されたルーティング情報446が特定のパーティションについての仮想ターゲットを新しいターゲットにマッピングし、これにより、そのパーティションのための後続の複数の要求が新しいターゲットに向けられる(448)ようにする。
たとえば、一実施形態に従うと、アプリケーションサーバ環境は、特定のコンピュータクラスタが(たとえば、メンテナンスまたはフェイルオーバーのせいで)まもなく停止するであろうことをトラフィックディレクタ(たとえばOTD)に通知して、予想される新しいクラスタに要求を送信し始めるようにトラフィックディレクタに指示することができる。一方、アプリケーションサーバは、新しいクラスタにセッション情報を複製することができる。セッション複製が完了すると、アプリケーションサーバ環境は、ダウングレードされたコンピュータクラスタをその構成から削除するようにトラフィックディレクタに通知することができ、次いで、このダウングレードされたコンピュータクラスタがいずれのリソースグループターゲット設定からも削除され得る。
一実施形態に従うと、クラスタがターゲットとして用いられる場合、システムはセッションのライブ・マイグレーションを実行する。コンピュータサーバがターゲットとして用いられる場合、ライブ・マイグレーション機能が使用不可能になって、ユーザ制御による手動のマイグレーションが用いられる可能性があり、これにより、起こり得るセッション情報の損失またはダウンタイムをいずれもユーザに通知することができるようにする。
図8は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境におけるパーティションマイグレーションの使用方法を示す。図8に示されるように、一実施形態に従うと、ステップ460において、ソフトウェアアプリケーションの実行のためのドメインならびに1つ以上のパーティションおよびリソースグループを含むアプリケーションサーバ環境が提供される。各々のパーティションは、ドメインの管理およびランタイム区分を提供し、1つ以上のリソースグループを含み得る。各々のリソースグループは、リソースグループテンプレートを参照し得るデプロイ可能なアプリケーションまたはリソースの集合である。
ステップ462において、各々のリソースグループまたはそのリソースグループを含むパーティションは、そのリソースグループまたはパーティションがターゲット設定されてデプロイされるべきターゲットを定義する仮想ターゲット(たとえば仮想ホスト)情報に関連付けることができる。
ステップ464において、特定のパーティションと、その上で現在動作しているいずれかのセッションとを元のターゲットから新しいターゲットにまでマイグレートするようにとの指示が受信される。
ステップ466において、特定のパーティションがマイグレートされる。この場合、セッション情報が元のターゲットと新しいターゲットとの間で複製され、ウェブ層コンポーネント(たとえば、Oracle Traffic Directorなどのトラフィックディレクタ)には修正されたルーティング情報が与えられ、当該修正されたルーティング情報は、特定のパーティションのための仮想ターゲットを新しいターゲットにマッピングして、これにより、そのパーティションのための後続の複数の要求が新しいターゲットに向けられるようにする。
インプリメンテーションの例
具体的な実施形態を説明する追加の詳細を例示の目的で以下に記載する。
(httpおよびt3トラフィックのための)ライブ・マイグレーションの概略
一実施形態に従うと、ライブ・マイグレーション中に、リソースグループが実行されている。アドミニストレータは、たとえばJMXコマンドを用いてリソースグループ・マイグレーションを開始し、仮想ターゲットmbean、既存のターゲットおよび新しいターゲットをパラメータとして指定する。新しいターゲットは仮想ターゲットに追加され、リソースは新しいターゲットにデプロイされる。検証エラーが投入される場合、動作を終了させて、ソースとなるリソースグループをシャットダウンして、非ライブ・マイグレーションを実行することがユーザに通知される。使用中の新しいターゲットがクラスタである場合、セッション複製のためのAPIのクラスタリングおよびT3の再ルーティングが開始される。OTD再ルーティングのためのLCM APIが開始され、これにより、OTDがこのリソースグループのフロントエンドとなっているかどうかが内部で判断される。指定されたターゲットのためにリソースグループのグレースフルシャットダウンを用いて、古いターゲットにターゲット設定されたアプリケーション/リソースのグレースフルシャットダウンが開始される。古いターゲットを削除するために、仮想ターゲットのためのmbean構成が更新される。
(httpおよびt3トラフィックのための)非ライブ・マイグレーションの概略
一実施形態に従うと、非ライブ・マイグレーション中に、リソースグループは実行されていない。WLSアドミニストレータは、たとえばJMXコマンドを用いてリソースグループ・マイグレーションを開始し、仮想ターゲットmbean、既存のターゲット、新しいターゲットをパラメータとして指定する。古いターゲットが仮想ターゲットから削除され、新しいターゲットが仮想ターゲットに追加されて、内部においてリソース/アプリが新しいターゲットにデプロイされる。OTD更新のためのLCM APIが開始され、OTDがこのリソースグループのフロントエンドとなっているかどうかが内部において判断される。
リソースグループ・マイグレーションAPI
一実施形態に従うと、マイグレーションは、新しいサービスPortablePartitionManagerMbeanを用いて開始されることとなる。
Figure 2017519309
新しいマイグレーション・コールが、同じ仮想ターゲットに対する別のマイグレーション・コールの処理中に開始される場合、検証例外(validation exception)が投入されることとなる。1つのリソースグループにおいて2つのマイグレーションプロセスを同時に開始させることはできない。ResourceGroupMigrationTaskは、この長い実行プロセスの状態についての情報を含んでいる。
仮想ターゲットへの新しいターゲットの追加
一実施形態に従うと、ライブ・マイグレーションの場合、新しいターゲットが仮想ターゲットに追加され、RGにおけるアプリケーションおよびリソースが新しいターゲット上でデプロイされる。いずれのアプリケーションまたはリソースもマルチターゲット設定をサポートしていない場合、それらが検証例外を投入することとなる。この場合、マイグレーション動作は、リソースグループがライブ・マイグレーションをサポートしておらず、非ライブ・マイグレーションを実行するためにRGが最初にシャットダウンされなければならないという報告を終了させることとなる。
セッション複製およびT3再ルーティング
一実施形態に従うと、新しいターゲットが追加された後、WLS−MTクラスタリングセッション複製特徴を用いて、古いクラスタと新しいクラスタとの間でセッションを同期させることができ、セッション状態が新しいトポロジー(new Target:新しいターゲット)におけるいくつかのサーバにコピーされる。その後、コールバックイベントが送信されるが、変更されたセッション同士を同期さるためのプロセスは続けられる。マイグレーション・クラスタリング・サブシステムは、接続されているすべてのt3クライアントにターゲット変更を通知する。T3クライアントは、ターゲットからの新しいurlに再接続し、マイグレートされたアプリケーションとの通信をトランスペアレントに継続することとなる。クラスタ全体が停止すべき場合、クライアントは、周知のアドレスを入手してルーティングするべき新しいクラスタを再発見する能力を有していなければならない。
WLS−MTライフサイクルを用いたHTTPトラフィックの再ルーティング
一実施形態に従うと、マイグレーション機能は、さまざまな言語で、かつ構成および管理のためのさまざまなアーキテクチャを用いて、別個に開発されたコンポーネント間で構成を一体化することを企図して、マイグレーションのためのライフサイクル・モジュールの利用可能性を高め得る。
シームレス事例
一実施形態に従うと、シームレス事例の間、アプリケーションサーバは、パーティションマイグレーションRESTコールでLCMを呼出すこととなる:
Figure 2017519309
ペイロードは、パーティションがデプロイされている新しいクラスタの詳細と、段階:start-migrate(マイグレートの開始)とを含むこととなる。ここで、段階:start-migrateでは、OTDにおける構成変更のためにOTD plugin(プラグイン)を呼出し得る。OTDの機能仕様において指定されるようにOTD側で起こるステップを以下に記載する。
パーティションマイグレーションが開始されると、新しい要求を処理することとなる既存のプールとは別に新しいオリジンサーバプールをリストに記載するために、そのパーティションについての関連付けられた仮想サーバのobj.conf構成へのルートエントリが変更されることとなる。既存のプール(古いプールまたはドレインプール)は、そのオリジンサーバに対する厄介な要求だけを処理することとなる。
この構成変更の後、そのパーティションに対するすべての要求に関して、OTDは、それが厄介な要求かどうかと、要求を処理すると予想されているオリジンサーバが古いオリジンサーバプールの一部であるかどうかとを最初にチェックすることとなる。
そうであれば、要求が古いプールの特定のオリジンサーバへと経路設定される。その古いオリジンサーバが稼働中でなければ、それは古いプールの別のオリジンサーバへと経路設定されることとなる。
要求が厄介なものでなければ、その要求は新しいオリジンサーバプールへと経路設定される。
古いプールエントリを削除するように構成が変更されるまで、古いプールは厄介な要求を処理し続けることとなる。適切な時期にプールの排出を停止することはアドミニストレータの責任となるだろう。
WLSは、段階:end-migrate(マイグレートの終了)を指定する第2のパーティションマイグレーションRESTコールを用いてLCMを呼出し得る。段階:end-migrateでは、OTDにおける構成変更のためにOTD pluginを呼出し得る。
非シームレス事例
一実施形態に従うと、シームレス事例の間、アプリケーションサーバは、パーティション更新RESTコールを用いてLCMを呼出すこととなる。
Figure 2017519309
ペイロードは、パーティションがデプロイされている新しいクラスタの詳細を含むだろう。LCMは、そのパーティションのためのOTD構成を更新するために、コールをOTD Pluginに委任するだろう。
グレースフルシャットダウン(Graceful shutdown)
一実施形態に従うと、この段階中、リソースグループのシャットダウン特徴を用いて、指定された(古い)ターゲットのためにリソースグループ上でグレースフルシャットダウンが開始される。これにより、機内での作業の処理が可能になるだろう。これにより、JMSメッセージ、実行中のジョブ、スケジューリングされたタスクおよびJTAトランザクションなどのシングルトンサービスによる未処理状態に関する問題が低減されるだろう。リソースコンテナは、それらの関連する停止/一時停止のコールをさまざまな方法で処理する。たとえば、データソースコンテナはトランザクションマネージャからそのリソースを完全に登録解除することとなり、一方で、JMSコンテナは登録解除を行なわないが、メッセージのさらなる要求/処理をブロックすることとなる。すべてのリソースコンテナは、デプロイ解除中に登録解除のコールを行なう。さまざまなリソースコンテナの登録解除動作は多様であるが、少なくとも猶予期間が常にあり、これにより、コンテナは、ペンディング中のトランザクションが完了するのを待つこととなる。
すべてのJTAトランザクションの完了を確実化
一般的な場合、リソースグループ・マイグレーションが発生すると、関与するリソースを含むすべてのトランザクションは、マイグレーションの発生前に完了してしまっているだろう。猶予期間の終了によって所与のリソースのためのすべてのトランザクションが完了していないといった事例がまれにあり(これは、たとえば、リソースグループ・マイグレーションが開始されたのと同時にデータベースが長期間にわたって利用不可能になった場合に該当するだろう)、この場合でも、リソースは依然としてマイグレートすることができる。これは、リソース・マイグレーションが単一のドメインに制限されているためであり、さらに、元のサーバはその新しい位置でリソースを発見して回復させることができる。
EJBスタブ
クラスタ化されたEJBおよびRMIに関して、RGマイグレーションはオブジェクトのレプリカ認識型スタブを用いて達成される。クライアントが、障害の発生したサービスに対してレプリカ認識型スタブによってコールを行う場合、スタブが障害を検出し、別のレプリカ上でコールを再試行する。一次的サーバに障害が発生した場合、クライアントのEJBスタブは、自動的に、二次的アプリケーションサーバインスタンスに対してさらなる要求をリダイレクトする。この時点では、二次的サーバが複製された状態データを用いて新しいEJBインスタンスを作成し、処理が二次的サーバ上で続けられる。クライアントが誤った指示(不正確な一次的/二次的サーバ情報)を受けた場合、セッション複製フレームワークはセッション状態クエリプロトコルを用いて、レプリカをホストしているサーバを決定し、クライアントスタブに情報を送信し返すこととなる。次いで、クライアントスタブは、レプリカをホストしているサーバにその要求を転送することとなる。
JMS
アドミニストレータがJMSコンフィグを有するリソースグループのマイグレーションを開始しようと試みる場合、検証例外が投入されるだろう。アドミニストレータは、マイグレーションの前にリソースグループをシャットダウンするようにとのメッセージを表示させることとなる。RGマイグレーション中にデータ損失を回避するために、アプリケーションメッセージは完全に排出されなければならず、ペンディング中のすべてのトランザクションは、JMSサーバまたはSAFエージェントをデプロイ解除するかまたは削除する前に完了させなければならない。したがって、リソースグループのシャットダウンが開始される前にすべての排出がなされることを確実にすることがアドミニストレータのジョブとなる。リソースグループ・マイグレーションが完了した後、次にリソースグループを再開させることがアドミニストレータのジョブとなる。
MBean構成変更
一実施形態に従うと、アプリケーションが停止するかまたはタイムアウトに達した場合、古いクラスタを削除するためにResourceGroupのターゲット、すなわち仮想ターゲットが更新される。これはマイグレーションプロセスの最終ステップである。
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つもしくは複数の)コンピュータ読取可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するかまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。

Claims (14)

  1. アプリケーションサーバ環境においてパーティションマイグレーションをサポートするためのシステムであって、
    1つ以上のコンピュータを含み、前記1つ以上のコンピュータは、ソフトウェアアプリケーションの実行のためのドメインならびに1つ以上のパーティションおよびリソースグループを有するアプリケーションサーバ環境を含み、
    各々のパーティションは、前記ドメインの管理およびランタイム区分を提供し、1つ以上のリソースグループを含み得るとともに、
    各々のリソースグループは、リソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、
    各々のリソースグループまたは前記リソースグループを含む前記パーティションは、前記リソースグループまたはパーティションがターゲット設定されてデプロイされるべきであるターゲットを定義する仮想ターゲット情報に関連付けることができ、
    ウェブ層コンポーネントはルーティング情報を含み、前記ルーティング情報は、特定のパーティションのための前記仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、前記特定のパーティションのための複数の要求が適切なターゲットに向けられるようにする、システム。
  2. 前記アプリケーションサーバまたはクラウド環境はJava EEアプリケーションサーバを含む、請求項1に記載のシステム。
  3. 特定のパーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、前記ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、前記特定のパーティションのための後続の複数の要求が前記新しいターゲットに向けられるようにする、請求項1または2に記載のシステム。
  4. 前記システムは、クラウド環境内で動作する複数のテナントをサポートするために前記クラウド環境内に提供され、
    前記システムは、任意には、1つ以上のパーティションを、テナントによって使用されるように、前記テナントに関連付けることができる、請求項1から3のいずれかに記載のシステム。
  5. アプリケーションサーバ環境においてパーティションマイグレーションをサポートするための方法であって、
    1つ以上のコンピュータにおいて、ソフトウェアアプリケーションの実行のためのドメインならびに1つ以上のパーティションおよびリソースグループを有するアプリケーションサーバ環境を提供するステップを含み、
    各々のパーティションは、前記ドメインの管理およびランタイム区分を提供し、リソースグループを含み得るとともに、
    各々のリソースグループは、リソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、
    各々のリソースグループまたは前記リソースグループを含む前記パーティションは、前記リソースグループまたはパーティションがターゲット設定されてデプロイされるべきであるターゲットを定義する仮想ターゲット情報に関連付けることができ、
    ウェブ層コンポーネントはルーティング情報を含み、前記ルーティング情報は、特定のパーティションのための前記仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、前記特定のパーティションのための複数の要求が適切なターゲットに向けられるようにする、方法。
  6. 前記アプリケーションサーバまたはクラウド環境はJava EEアプリケーションサーバを含む、請求項5に記載の方法。
  7. 特定のパーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、前記ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、前記特定のパーティションのための後続の複数の要求が前記新しいターゲットに向けられるようにする、請求項5または6に記載の方法。
  8. 前記方法は、クラウド環境内で動作する複数のテナントをサポートするために前記クラウド環境内で実行され、
    システムは、任意には、1つ以上のパーティションを、テナントによって使用されるように、前記テナントに関連付けることができる、請求項5から7のいずれかに記載の方法。
  9. プログラム命令を機械読取り可能フォーマットで含むコンピュータプログラムであって、前記プログラム命令は、コンピュータシステムによって実行されると、前記コンピュータシステムに、請求項5から8のいずれかに記載の方法を実行させる、コンピュータプログラム。
  10. 非一時的な機械読取り可能データ記憶媒体に記憶された請求項9に記載のコンピュータプログラムを含むコンピュータプログラムプロダクト。
  11. 命令が格納された非一時的なコンピュータ読取り可能記憶媒体であって、前記命令が1つ以上のコンピュータによって読取られて実行されると、前記1つ以上のコンピュータに、
    ソフトウェアアプリケーションの実行のためのドメインならびに1つ以上のパーティションおよびリソースグループを有するアプリケーションサーバ環境を提供するステップを実行させ、
    各々のパーティションは、前記ドメインの管理およびランタイム区分を提供し、リソースグループを含み得るとともに、
    各々のリソースグループは、リソースグループテンプレートを参照し得る複数のデプロイ可能なアプリケーションまたはリソースの集合であり、
    各々のリソースグループまたは前記リソースグループを含む前記パーティションは、前記リソースグループまたはパーティションがターゲット設定されてデプロイされるべきであるターゲットを定義する仮想ターゲット情報に関連付けることができ、
    ウェブ層コンポーネントはルーティング情報を含み、前記ルーティング情報は、特定のパーティションのための前記仮想ターゲットをサーバまたはクラスタなどの対応するターゲットにマッピングして、これにより、前記特定のパーティションのための複数の要求が適切なターゲットに向けられるようにする、非一時的なコンピュータ読取り可能記憶媒体。
  12. 前記アプリケーションサーバまたはクラウド環境はJava EEアプリケーションサーバを含む、請求項11に記載の非一時的なコンピュータ読取り可能記憶媒体。
  13. 特定のパーティションがマイグレートされると、セッション情報が元のターゲットと新しいターゲットとの間で複製され、前記ウェブ層コンポーネントには修正されたルーティング情報が与えられ、これにより、前記特定のパーティションのための後続の複数の要求が前記新しいターゲットに向けられるようにする、請求項11または12に記載の非一時的なコンピュータ読取り可能記憶媒体。
  14. 前記アプリケーションサーバ環境は、クラウド環境内で動作する複数のテナントをサポートするために前記クラウド環境内に提供され、
    システムは、任意には、1つ以上のパーティションを、テナントによって使用されるように、前記テナントに関連付けることができる、請求項11から13のいずれかに記載の非一時的なコンピュータ読取り可能記憶媒体。
JP2016575054A 2014-06-23 2015-06-23 マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法 Active JP6615796B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462016035P 2014-06-23 2014-06-23
US62/016,035 2014-06-23
US201462055106P 2014-09-25 2014-09-25
US62/055,106 2014-09-25
PCT/US2015/037264 WO2015200374A1 (en) 2014-06-23 2015-06-23 System and method for partition migration in a multitenant application server environment

Publications (3)

Publication Number Publication Date
JP2017519309A true JP2017519309A (ja) 2017-07-13
JP2017519309A5 JP2017519309A5 (ja) 2018-04-05
JP6615796B2 JP6615796B2 (ja) 2019-12-04

Family

ID=53511007

Family Applications (1)

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

Country Status (6)

Country Link
US (1) US10439953B2 (ja)
EP (1) EP3158441A1 (ja)
JP (1) JP6615796B2 (ja)
KR (1) KR102399421B1 (ja)
CN (1) CN106471472B (ja)
WO (1) WO2015200374A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010189B2 (en) 2018-08-21 2021-05-18 Fujitsu Limited Multi-cloud operating method, operation managing device, and storage medium
JP2021114213A (ja) * 2020-01-21 2021-08-05 株式会社日立製作所 ストレージシステムおよびデータ移行方法
JP7411735B2 (ja) 2019-04-01 2024-01-11 グーグル エルエルシー マルチクラスタイングレス

Families Citing this family (22)

* 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
US9973380B1 (en) * 2014-07-10 2018-05-15 Cisco Technology, Inc. Datacenter workload deployment using cross-domain global service profiles and identifiers
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
US10834054B2 (en) 2015-05-27 2020-11-10 Ping Identity Corporation Systems and methods for API routing and security
US10296594B1 (en) 2015-12-28 2019-05-21 EMC IP Holding Company LLC Cloud-aware snapshot difference determination
US11023433B1 (en) * 2015-12-31 2021-06-01 Emc Corporation Systems and methods for bi-directional replication of cloud tiered data across incompatible clusters
US10146684B2 (en) * 2016-10-24 2018-12-04 Datrium, Inc. Distributed data parallel method for reclaiming space
US10587580B2 (en) 2016-10-26 2020-03-10 Ping Identity Corporation Methods and systems for API deception environment and API traffic control and security
KR101989074B1 (ko) * 2017-08-10 2019-06-14 네이버 주식회사 데이터베이스 샤딩 환경에서의 복제 로그 기반의 마이그레이션
EP3471007B1 (en) 2017-10-13 2022-02-23 Ping Identity Corporation Methods and apparatus for analyzing sequences of application programming interface traffic to identify potential malicious actions
US10462009B1 (en) * 2018-02-20 2019-10-29 Amazon Technologies, Inc. Replicating customers' information technology (IT) infrastructures at service provider networks
CN108829507B (zh) * 2018-03-30 2019-07-26 北京百度网讯科技有限公司 分布式数据库系统的资源隔离方法、装置和服务器
US10911367B2 (en) 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US11190599B2 (en) 2018-06-27 2021-11-30 Oracle International Corporation Method and system for cloud service pre-provisioning
US10785129B2 (en) 2018-06-27 2020-09-22 Oracle International Corporation Computerized methods and systems for maintaining and modifying cloud computer services
US11115344B2 (en) 2018-06-27 2021-09-07 Oracle International Corporation Computerized methods and systems for migrating cloud computer services
US11496475B2 (en) 2019-01-04 2022-11-08 Ping Identity Corporation Methods and systems for data traffic based adaptive security
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
CN110287197B (zh) * 2019-06-28 2022-02-08 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置
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
CN113253986A (zh) * 2021-05-31 2021-08-13 猫岐智能科技(上海)有限公司 新旧业务系统混合设计方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233146A (ja) * 2010-04-26 2011-11-17 Vmware Inc クラウド・プラットフォーム・アーキテクチャー
US20130326506A1 (en) * 2012-05-30 2013-12-05 Michael P. McGrath Mechanism for Controlling Capacity in a Multi-Tenant Platform-as-a-Service (Paas) Environment in a Cloud Computing System

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959370B2 (en) * 2003-01-03 2005-10-25 Hewlett-Packard Development Company, L.P. System and method for migrating data between memories
CN101639835A (zh) 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
US20110125979A1 (en) 2009-11-25 2011-05-26 International Business Machines Corporation Migrating Logical Partitions
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
US8402453B2 (en) * 2010-09-22 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) In-service software upgrade of control and line cards of network element
KR20120045586A (ko) 2010-10-29 2012-05-09 한국전자통신연구원 다중 테넌트용 SaaS 애플리케이션 설정 장치 및 방법
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
US8843501B2 (en) * 2011-02-18 2014-09-23 International Business Machines Corporation Typed relevance scores in an identity resolution system
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
CN102333115A (zh) 2011-09-01 2012-01-25 杭州湾云计算技术有限公司 一种将已有Web应用转化为SaaS多租户应用的方法和装置
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US8589481B2 (en) 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US9442769B2 (en) * 2011-09-30 2016-09-13 Red Hat, Inc. Generating cloud deployment targets based on predictive workload estimation
US8892601B2 (en) * 2011-10-25 2014-11-18 Microsoft Corporation Creating web applications using cloud-based friction-free databases without requiring web hosting knowledge
CN102571916B (zh) 2011-12-02 2015-11-04 曙光信息产业(北京)有限公司 一种云存储空间的租赁软件的架构与操作方法
CN102609271B (zh) 2012-02-20 2014-09-10 山东大学 一种元数据驱动的SaaS应用的可视化定制方法及系统
CN102571821A (zh) 2012-02-22 2012-07-11 浪潮电子信息产业股份有限公司 一种云安全访问控制模型
US8850432B2 (en) 2012-05-30 2014-09-30 Red Hat, Inc. Controlling utilization in a multi-tenant platform-as-a-service (PaaS) environment in a cloud computing system
CN103455512A (zh) 2012-05-31 2013-12-18 上海博腾信息科技有限公司 Saas平台多租户数据管理模型
US8984240B2 (en) * 2012-08-30 2015-03-17 International Business Machines Corporation Reducing page faults in host OS following a live partition mobility event
US9319285B2 (en) * 2012-11-09 2016-04-19 Unisys Corporation Optimizing partition placement in virtualized environments
CN104462389B (zh) * 2014-12-10 2018-01-30 上海爱数信息技术股份有限公司 基于分级存储的分布式文件系统实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233146A (ja) * 2010-04-26 2011-11-17 Vmware Inc クラウド・プラットフォーム・アーキテクチャー
US20130326506A1 (en) * 2012-05-30 2013-12-05 Michael P. McGrath Mechanism for Controlling Capacity in a Multi-Tenant Platform-as-a-Service (Paas) Environment in a Cloud Computing System

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010189B2 (en) 2018-08-21 2021-05-18 Fujitsu Limited Multi-cloud operating method, operation managing device, and storage medium
JP7411735B2 (ja) 2019-04-01 2024-01-11 グーグル エルエルシー マルチクラスタイングレス
JP2021114213A (ja) * 2020-01-21 2021-08-05 株式会社日立製作所 ストレージシステムおよびデータ移行方法
JP7112437B2 (ja) 2020-01-21 2022-08-03 株式会社日立製作所 ストレージシステムおよびデータ移行方法

Also Published As

Publication number Publication date
CN106471472B (zh) 2020-03-03
CN106471472A (zh) 2017-03-01
JP6615796B2 (ja) 2019-12-04
KR102399421B1 (ko) 2022-05-19
US20150372938A1 (en) 2015-12-24
KR20170023121A (ko) 2017-03-02
US10439953B2 (en) 2019-10-08
WO2015200374A1 (en) 2015-12-30
EP3158441A1 (en) 2017-04-26

Similar Documents

Publication Publication Date Title
JP6615796B2 (ja) マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法
JP6876836B2 (ja) マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステムおよび方法
US11748090B2 (en) Cloud services release orchestration
JP6564026B2 (ja) マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
US10178184B2 (en) System and method for session handling in a multitenant application server environment
JP6461167B2 (ja) アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法
US10951655B2 (en) System and method for dynamic reconfiguration in a multitenant application server environment
JP6611798B2 (ja) マルチテナントアプリケーションサーバ環境においてグローバルランタイムを使用するためのシステムおよび方法
JP6599448B2 (ja) マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法
JP6491243B2 (ja) マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法
US10187454B2 (en) System and method for dynamic clustered JMS in an application server environment
WO2020062131A1 (zh) 一种基于区块链技术的容器云管理系统
US20160094406A1 (en) System and method for clustering in a multitenant application server environment
US10452387B2 (en) System and method for partition-scoped patching in an application server environment
US10310841B2 (en) System and method for handling lazy deserialization exceptions in an application server environment
US11900099B2 (en) Reduced downtime during upgrade of an application hosted in a data center
US20230109215A1 (en) Expand and contract framework for reduced downtime during upgrade of an application hosted in a data center
US20230229475A1 (en) Leader selection and revocation for tasks in a virtualized computing system
US11563800B1 (en) Distributed semantic network for concurrent access to interconnected objects
WO2023059563A1 (en) Expand and contract framework for reduced downtime during upgrade of an application hosted in a data center

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180220

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191106

R150 Certificate of patent or registration of utility model

Ref document number: 6615796

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