JP6599448B2 - マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法 - Google Patents
マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP6599448B2 JP6599448B2 JP2017516338A JP2017516338A JP6599448B2 JP 6599448 B2 JP6599448 B2 JP 6599448B2 JP 2017516338 A JP2017516338 A JP 2017516338A JP 2017516338 A JP2017516338 A JP 2017516338A JP 6599448 B2 JP6599448 B2 JP 6599448B2
- Authority
- JP
- Japan
- Prior art keywords
- partition
- tenant
- lifecycle
- application server
- runtime
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/827—Aggregation of resource allocation or reservation requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols 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)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
この出願は、「マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法(SYSTEM AND METHOD FOR PROVIDING END-TO-END LIFECYCLE IN A MULTITENANT APPLICATION SERVER ENVIRONMENT)」という名称を有する2014年9月25日に出願された米国仮出願番号第62/055,575号と、「マルチテナントアプリケーションサーバ環境におけるテナントオンボーディングのためのシステムおよび方法(SYSTEM AND METHOD FOR TENANT ONBOARDING IN A MULTITENANT APPLICATION SERVER ENVIRONMENT)」という名称を有する2014年9月25日に出願された米国仮出願番号第62/055,577号と、「マルチテナントアプリケーションサーバ環境におけるデータベースおよびアプリケーションサーバライフサイクルブラグインのためのシステムおよび方法(SYSTEM AND METHOD FOR DATABASE AND APPLICATION SERVER LIFECYCLE PLUGINS IN A MULTITENANT APPLICATION SERVER ENVIRONMENT)」という名称を有する2014年9月26日に出願された米国仮出願番号第62/055,856号と、「マルチテナントアプリケーションサーバ環境におけるグローバルランタイムのためのシステムおよび方法(SYSTEM AND METHOD FOR GLOBAL RUNTIME IN A MULTITENANT APPLICATION SERVER ENVIRONMENT)」という名称を有する2014年9月26日に出願された米国仮出願番号第62/056,427号とに対する優先権の利益を請求し、「アプリケーションサーバ、クラウド、または他の環境においてマルチテナンシをサポートするためのシステムおよび方法(SYSTEM AND METHOD FOR SUPPORTING MULTI-TENANCY IN AN APPLICATION SERVER, CLOUD, OR OTHER ENVIRONMENT)」という名称を有する2015年1月21日に出願された米国特許出願番号第14/601,883号に関連する。上記の出願の各々は本願明細書において参照により援用される。
発明の分野
本発明の実施形態は一般にアプリケーションサーバおよびクラウド環境に関し、特定的には、マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクル、テナントオンボーディング(tenant onboarding)、またはグローバルランタイムを提供するためのシステムおよび方法に関する。
アプリケーションサーバは、概して、ソフトウェアアプリケーションをデプロイして実行することができる管理されたコンピューティング環境を提供する。クラウドベースのコンピューティング環境は、クラウドによって提供される分散型リソース内でアプリケーションを実行して、当該分散型リソースを利用することを可能にする。このような環境は、多くのユーザまたはテナントをサポートすることができ、それらのうちのいくつかは、そのユーザまたはテナントに特有の特定条件を有する可能性がある。付加的なテナントがシステムに追加される場合、システムは、各テナントのニーズに対応することができなければならない。当該ニーズは必要に応じてテナントに他のシステムコンポーネントを関連付けることを含む。これらは、本発明の実施形態が使用可能となる環境のタイプのいくつかの例に該当する。
実施形態に従うと、マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法が本願明細書において記載される。ライフサイクルマネージャは、たとえばアプリケーションサーバ、トラフィックディレクタまたはロードバランサ、および、データベースまたは他のコンポーネントといった、自身のパーティションに特有の構成を有し得る異なるコンポーネントにわたる構成インテグレーションを可能にする。実施形態に従うと、エンドツーエンドライフサイクルインフラストラクチャは、マルチテナントアプリケーションサーバ環境内の異なるコンポーネントが自身のコンポーネントに特有のライフサイクル機能を提供するよう、ライフサイクルプラグインを使用することを可能にするプラグインベースのメカニズムを含む。実施形態に従うと、システムは、あるサービスのためのテナントを特定のパーティションにオンボードするのに使用され得るテナントオンボーディング機能のためのサポートを含む。実施形態に従うと、システムは、マルチテナントアプリケーションサーバ環境内のグローバルランタイムの使用をサポートする。
実施形態に従うと、マルチテナントアプリケーションサーバ環境におけるエンドツーエンドライフサイクルを提供するためのシステムおよび方法が本願明細書において記載される。ライフサイクルマネージャは、たとえばアプリケーションサーバ、トラフィックディレクタまたはロードバランサ、および、データベースまたは他のコンポーネントといった、自身のパーティションに特有の構成を有し得る異なるコンポーネントにわたる構成インテグレーション(統合)を可能にする。
図1は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトである。たとえば、一実施形態に従うと、リソースは、アプリケーション、JMS、JDBC、JavaMail、WLDFもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
一実施形態に従うと、パーティションは、パーティション識別子(partition identifier:ID)および構成に関連付けられ得るドメインのうちランタイムおよび管理の区分またはスライスであるとともに、アプリケーションを含み得て、ならびに/または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、1つ以上の関連するJavaアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名/値の対を使用することによってリソースグループテンプレートで指定することができる。
一実施形態に従うと、マルチテナント(MT)アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。デプロイメントプランはまた、リソースグループの一部として指定することができる。
実施形態に従うと、本願明細書において、マルチテナントアプリケーションサーバ環境におけるエンドツーエンドライフサイクルを提供するためのシステムおよび方法が記載される。ライフサイクルマネージャは、たとえばアプリケーションサーバ、トラフィックディレクタまたはロードバランサ、および、データベースまたは他のコンポーネントといった、自身のパーティションに特有の構成を有し得る異なるコンポーネントにわたる構成インテグレーションを可能にする。
テナントランタイム:テナントコードのランタイム表示。
実施形態に従うと、異なるコンポーネントにわたるパーティションのセットは、テナントのニーズを満たすまとまりのある単位(cohesive unit)を形成するよう、環境として一緒にリンクされ得る。環境は、各タイプの1つより多いパーティションを有し得るが、典型的に、各タイプのパーティションのうちの1つのみを有することになる。たとえば、FAシナリオにおいて、マルチドメイントポロジにおけるドメインの各々からの1つより多いWLSパーティションが存在し得る。そのようなシナリオにおいて、サポートされなければならないWLSおよびOTDとデータベースとの間に複数の関連性があり得る。
実施形態に従うと、コンポーネントまたはランタイムは、たとえばOTD、WLS、コヒーレンスまたはデータベースコンポーネントといったソフトウェアコンポーネントである。他の実施形態に従うと、付加的なタイプのソフトウェアコンポーネントもサポートされ得る。
実施形態に従うと、ライフサイクルマネージャは、たとえばアプリケーションサーバ、トラフィックディレクタまたはロードバランサ、および、データベースまたは他のコンポーネントといった、自身のパーティションに特有の構成を有し得る異なるコンポーネントにわたる構成インテグレーションを可能にする。ライフサイクルマネージャは、ライフサイクル構成を作成し、それらの構成を更新し、それらの構成を閲覧し、環境にわたってそれらの構成を破棄するよう、クライアントに対してローカルAPIおよび/またはRESTアクセスを提供するライブラリとして実現され得る。
実施形態に従うと、ライフサイクルプラグインは、ライフサイクルマネージャと、たとえばOTD、WLS、コヒーレンスまたはデータベースコンポーネントといったコンポーネントとの間のブリッジを提供するソフトウェアモジュールである。ライフサイクルプラグインは、HK2サービスとしてランタイムプラグインおよびパーティションプラグイン(サポートされている場合)インターフェイスを実現するクラスを含み得、これにより、ライフサイクルプラグインが、構成変更トランザクションおよび通知イベントに参加し、コンポーネントにおいてそのアクティビティを反映するよう適切などのようなアクションでも実行することを可能になる。プラグインAPIは一般に、ランタイムまたはパーティションについて実際のライフサイクルオペレーションを実行するために使用される下位プロトコルを認識しない(agnostic)。プラグインのインプリメンテーションは、必要なオペレーションを実行するためにどのようにランタイムに接続するかを選択し得る。たとえば、実施形態に従うと、quiesce、scaleUpまたはscaleDownのようなオペレーションがランタイムマネージャを介してランタイム上で開始されると、ランタイムタイプに対応するランタイムプラグインのインプリメンテーションがHK2を介してルックアップされ得、適切なアクションを行うために、ランタイムプラグイン(たとえばRuntimePlugin)インプリメンテーションの対応するメソッドがランタイムプラグインについて呼び出される。
実施形態に従うと、クライアントとは、たとえばREST APIを介してライフサイクルマネージャと相互作用するライフサイクルマネージャの任意のクライアントを指し、または、埋込み型の場合にはJava APIを介してライフサイクルマネージャと相互作用するライフサイクルマネージャの任意のクライアントを指す。クライアントの例は、オラクルフュージョンミドルウェアコントロール(FMWC:Fusion Middleware Control)およびエンタープライズマネージャクラウド制御(EMCC:Enterprise Manager Cloud Control)、ならびに、カールベースのスクリプト(curl-based script)を含む。実施形態に従うと、ライフサイクルマネージャREST APIは、コンポーネントにわたってパーティション構成をプロビジョニングおよび更新する場合、エンタープライズマネージャ(Enterprise Manager)のようなプロダクト内で使用され得る。
実施形態に従うと、以下はライフサイクルユースケースの例である。1.パーティションの作成、削除および更新を含むコンポーネントについてのパーティションCRUDオペレーション。
2.ランタイムの登録、登録されたランタイムに対する更新、およびランタイムの登録抹消を含む、コンポーネントのためのランタイムオペレーション。
3.2つのパーティションを関連付けることによりランタイムの2つのスライス(たとえばWLSを有するデータベースまたはWLSを有するOTD)をこれら2つが一緒に使用され得るように接続するような、異なるコンポーネントにわたるパーティションの関連付け。
図7は、実施形態に従った、マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルイベント図を示す。
実施形態に従うと、ライフサイクルランタイム(たとえばLifecycleRuntime)は、WLS、OTDまたはデータベースのようなコンポーネントまたは管理されるサービスを表わす。ライフサイクルマネージャは、ランタイムプラグインのインスタンスがコンポーネントによって実現される場合、ライフサイクルランタイムを管理し得る。ランタイムプラグインは、ライフサイクルマネージャを介して管理されているランタイム上で実行され得る作成オペレーション、削除オペレーション、更新オペレーション、スケーリングアップオペレーション、スケーリングダウンオペレーション、および静止(quiescing)オペレーションといったオペレーションを可能にするインプリメンテーションを提供する。ランタイムは、ライフサイクルマネージャを介して作成され得るか、または、ランタイムマネージャにおけるレジスタランタイム(たとえばregisterRuntime)メソッドを介してライフサイクルマネージャによる使用のためにアウトオブバンドで作成されていれば、ライフサイクルマネージャに登録され得るかのいずれかである。
実施形態に従うと、ランタイムマネージャ(たとえばRuntimeManager)は、ランタイムを管理するために使用されるシングルトンHK2サービス(singleton HK2 service)として提供され得る。ランタイムマネージャは、そのJVM上のすべてのランタイムのライフサイクルを管理することになる1つのJava仮想マシン(JVM:Java virtual machine)ごとに提供され得る。ランタイムは、ランタイムマネージャを使用して作成または登録され得る。ランタイムマネージャはさらに、ランタイムの作成、削除、更新、スケールアップ、スケールダウンおよび静止(クエーシング)を行うオペレーションを提供する。ランタイムマネージャは、そのランタイムタイプについてHK2サービスとしてランタイムプラグインをルックアップし、プラグイン上で対応するオペレーションを呼び出す。
実施形態に従うと、ランタイムの静止/グレースフルシャットダウン(graceful shutdown)のサポートを含み得るWLSのようなコンポーネントは、ランタイムプラグインにおける静止サポートを実現することによってライフサイクルマネージャを介して静止能力をサポートし得る。ランタイムを静止することは異なるフェーズを有し得る。そのようなシナリオにおいて、ランタイムプラグインの静止メソッドは、一回より多く呼び出され得、静止メソッドにおけるフェーズパラメータを介して静止フェーズを示す。
マルチテナント環境の利点のうちの1つは、複数のアプリケーションおよびユーザグループにわたってハードウェア、リソースおよびサービスを共有することであり、これにより、規模の経済性が達成されるとともに、これらのユーザの必要性が時間にわたって変化する際に、キャパシティを割り当てることにおけるフレキシビリティをアドミニストレータが有することが可能になる。
実施形態に従うと、ランタイムプラグインについての擬似コードが以下に示される(読みやすさのためこの例はすべての抽象メソッド(abstract method)を実現するわけではない)。
実施形態に従うと、パーティションをサポートするランタイム(たとえばWLS、12cデータベースなどのようなランタイムのスライス)は、パーティションプラグインのインプリメンテーションを提供しなければならない。createPartitionのようなランタイム上のオペレーションが呼び出される場合、ランタイムタイプに対応するパーティションプラグインのインプリメンテーションはHK2サービスとしてルックアップされ、対応する作成メソッドがパーティションプラグインインプリメンテーションクラス上で呼び出されることになる。ランタイムに接続しランタイムのスライスを作成することはインプリメンテーションクラス次第である。ひとたび作成されると、当該パーティションはライフサイクルマネージャに登録され、lifecycle-config.xmlにおいて永続化される。実施形態に従うと、ランタイムはパーティションについて以下の関数を提供する。
上述したように、実施形態に従うと、ランタイムプラグインおよびパーティションプラグインはHK2コントラクトとして定義され得、これらのプラグインのインプリメンテーションはHK2サービスとして定義され得る。HK2サービス名は、プラグインが登録されるサービスの名称と一致しなければならない。プラグイン登録は2つの態様で行われ得る。プラグインはjarファイルとしてパッケージ化され、RESTコマンドを介してライフサイクルマネージャに登録されるか、または、プラグインインプリメンテーションのjarを、たとえばWLSシステムアドミニストレータによって構成可能でなければならないライフサイクルマネージャインプリメンテーションによって特定されるディレクトリにドロップする。ライフサイクルマネージャは起動時にディレクトリをスキャンして、プラグインをロードし、かつ、ライフサイクルマネージャインプリメンテーションを登録する。プラグインを配置するためのデフォルトディレクトリは、oracle_home/wlserver/common/lifecycle/pluginsである。
典型的なプロダクションシステムにおいて、アプリケーションを実行するのに必要とされるWLSパーティションおよびデータベースパーティションなどのような1つより多いアーティファクトが一般に存在する。実施形態に従うと、環境は、アプリケーションのすべての関連するピースについてグループ化構成を提供する。ライフサイクルマネージャは、ユーザが環境を作成することを可能にし、当該環境は、所与のテナントについてパーティションをグループ化するようシステムアドミニストレータによって使用され得る。実施形態に従うと、環境はパーティションのために以下の関数を提供する。
実施形態に従うと、ひとたびパーティションが環境に追加されると、環境に追加された他のパーティションに関連付けられ得る。
実施形態に従うと、パーティションがもはや使用されていない場合、環境における他のパーティションからのそのパーティションへの参照は、それが削除され得る前に、除去される必要がある。Dissociationは、環境において2つのパーティションを切断するメカニズムを提供する。dissociationが呼び出されると、パーティションプラグインの対応するdissociateメソッドが呼び出され、2つのパーティションを一緒に接続する構成を除去することはプラグインが担う。
実施形態に従うと、パーティションの移動をサポートするランタイムは、パーティションプラグインのmigrateメソッドを実現する必要がある。パーティションを移動させる場合、当該パーティションに関連付けられる他のパーティションもアクションを行う必要があり得る。これに対応するために、migrateメソッドは環境に対して作用する。ライフサイクルマネージャインフラストラクチャは、最初に移動されているパーティションのmigrateメソッドを呼び出し、次いで、当該環境に存在する他のパーティションのmigrateメソッドを呼び出さなければならない。
実施形態に従うと、パーティションの静止をサポートするランタイムは、パーティションプラグインのquiesceメソッドを実現する必要がある。ライフサイクルマネージャは、パーティションを静止することを試みる前に、パーティションが適合状態であることを保証するよう、パーティションの状態をチェックする。
実施形態に従うと、ライフサイクルマネージャは、そのオペレーションについて必要とされるさまざまな構成要素を管理する構成モジュールを含む。構成モジュールは、ここで記載されるさまざまなシナリオについての必要な構成インフラストラクチャを提供する。構成モジュールは2つのモードで機能する。すなわち、ライフサイクルがアドミンサーバ上で実行されるローカルモード(構成はWLSコンフィグディレクトリにおけるXMLファイルにおいて永続化される)と、ライフサイクルがクラスタ上で実行され得るHAモード(構成がデータベースにおいて永続化される)とで機能する。いずれの場合も、ライフサイクル構成は、構成を管理するためにHK2フレームワークを使用する。
実施形態に従うと、アドミンサーバ上の構成ファイルに変更がなされると、それらの変更はすべての管理されるサーバに伝播されなければならない。管理されるサーバはライフサイクル構成を使用して、当該管理されるサーバ上で実行されるアプリケーションについて適切なテナントコンテキストを確立する。HK2コンフィグオブジェクトは、xml構成ファイルのリパーシングを許可しない。代わりに、新しいオブジェクトはインスタンス化され、更新されたxmlファイルは新しくパースされなければならない。構成変更が行なわれる場合、XMLファイルは特別のディレクトリへ保存される。すなわちドメインのためのペンディングディレクトリへ保存される。
実施形態に従うと、変更が行なわれるたびに、LifecycleConfigDocument save()メソッドがHK2によって呼び出される。このメソッドはさらに、ペンディングディレクトリにファイルのコピーを保存し、その後、管理されるサーバへの当該変更されたファイルのアップロードをトリガする以下のAPIを呼び出す。
実施形態に従うと、構成ファイルの第1のパース上で起動されたFileWatcherデーモンがxmlファイルが変更されたことを検出する。その後、FileWatcherデーモンは、新しいコンフィグオブジェクトを作成し、xmlファイルをパースする。任意の呼出元が、パーシング中に情報にアクセスすること試みることがブロックされることになる。パーシングが完了するとすぐに、修正データが呼出元に利用可能になる。
実施形態に従うと、LifecycleConfigFactoryクラスによりHK2構成が公開され得る。たとえば、
実施形態に従うと、WLS構成における変更を必要とするREST要求のために、各RESTコールはユーザに代わって編集セッションを作成および管理する。これは、コンソールにおける開発モードでの「暗黙的変更(implicit change)」と同様である。
ライフサイクルマネージャを介して実行されるあるオペレーションが存在する。これらのオペレーションは、本来長く実行される非同期オペレーションである。そのようなオペレーションの例は、quiescing Server (runtime manager.quiesce)、または、starting a Server (runtime manager.quiesce)である。そのようなシナリオにおいて、ライフサイクルマネージャAPIのセマンティックは、これらのAPIからLifecycleTaskオブジェクトを返すよう、非同期にされ得る。
一般に、ユーザが非同期オペレーションを実行しLifecycleTaskオブジェクトを受信する場合、ライフサイクルタスクによって表わされる非同期オペレーションのステータスを取得すること、または、ライフサイクルタスクによって表わされる非同期オペレーションをキャンセルすることのうちの1つをそのオブジェクトにより行うことができる。実施形態に従うと、上記のオペレーションはLifecycleTaskManagerによって公開されるインターフェイスによって実行される。
さまざまな実施形態に従うと、ライフサイクルインターフェイスおよびクラスの例が以下に記載される。他の実施形態に従うと、他のタイプのインターフェイスおよびクラスが提供され得る。
実施形態に従うと、例示的なライフサイクルマネージャインターフェイスが以下のように記載される。
実施形態に従うと、例示的なRuntime Manager.Javaインターフェイスが以下のように記載される。
実施形態に従うと、例示的なライフサイクルランタイム(Lifecycle Runtime)インターフェイスが以下のように記載される。
実施形態に従うと、例示的なライフサイクルパーティション(Lifecycle Partition)パッケージが以下のように記載される。
実施形態に従うと、例示的なランタイムプラグイン(Runtime Plugin)クラスが以下のように記載される。
実施形態に従うと、例示的なパーティションプラグイン(Partition Plugin)クラスは以下のように記載される。
実施形態に従うと、例示的な環境(Environment)インターフェイスが以下のように記載される。
実施形態に従うと、例示的なライフサイクルコンテキスト(Lifecycle Context)インターフェイスが以下のように記載される。
実施形態に従うと、例示的なライフサイクルオペレーションタイプ(Lifecycle Operation Type)列挙子が以下のように記載される。
実施形態に従うと、例示的なライフサイクルタスク(Lifecycle Task)インターフェイスは以下のように記載される。
実施形態に従うと、例示的なライフサイクルタスクマネージャ(Lifecycle Task Manager)インターフェイスが以下のように記載される。
実施形態に従うと、システムは、あるサービスのためのテナントを特定のパーティションにオンボードするのに使用され得るテナントオンボーディング機能のためのサポートを含む。
実施形態に従うと、システムは、要求を現在処理している可能性があるターゲットコンポーネントのような、要求属性に基づいて自動的にパーティションコンテキストを決定し得る。スレッドのパーティションコンテキストは一般に、異なるパーティションにデプロイされるコンポーネントに要求が入る毎に変化する。
実施形態に従うと、グローバルランタイムのような特権アプリケーションコードだけがテナンシコンテキストをスイッチングすることができる。したがって、APIはアクセスを許可する前に適切なセキュリティ許可チェックを実施しなければならない。セットされているターゲットテナンシを含む許可が与えられ得る。
実施形態に従うと、下記のテーブルは、コードのセキュリティ特権に従ってどのコンテキストスイッチが許可されるかを説明する。
実施形態に従うと、アプリケーション自体がマルチテナント認識型であることが期待され得るFA/SaaSおよび同様のシナリオにおいて、パーティションIDおよびパーティション名に加えて、その代わりにあるオペレーションが実行されているテナントを知る必要がある。テナントコンテキスト(たとえばTenantContext)APIは、適切なテナントコンテキストを取得するよう使用するために、上位スタックFMW/FAについてJRFレイヤーにおいて利用可能になり得る。
実施形態に従うと、以下は、テナントコンテキストを抽出するためにSEにおいて使用され得る例示的なコードである。
実施形態に従うと、上記のセクションにおいて言及されたように、テナントマッピングはlifecycle-config.xmlに格納され得る。SEでは、システムは、(a)環境変数lifecycle.configDirによって示される位置、または、(b)lifecycle.configDir変数がセットされていない場合、
実施形態に従うと、JAVA(登録商標) SEモードにおいて実行する場合、システムプロパティlifecycle.tenantId lifecycle.serviceName lifecycle.serviceTypeを使用して、または、システムプロパティlifecycle.serviceIdを介してサービスUUIDを特定することによって、テナントを識別する情報が読み出され得る。
実施形態に従うと、SEにおけるテナントコンテキストはInheritableThreadLocal上に格納される。getTenantContext()メソッドは、初めて呼び出される場合、システムプロパティを使用してテナントコンテキストを計算し、InheritableThreadLocal上にもそれを格納する。
図12はさらに、実施形態に従った、マルチテナントアプリケーションサーバ環境におけるテナントオンボーディングを示す。
典型的に、システムのアドミニストレーションコードは通常、すべてのテナントを代表するMTアドミニストレータのコンテキストにおいて実行される必要性を有する。実施形態に従うと、この特別の状態は、現在の要求に関連付けられるテナントコンテキストが存在しないということを示すヌルのテナントIDと異なる「GLOBAL」と称される特別なテナントIDによって表わされる。
実施形態に従うと、executeAsを実行することを可能とするために、システムは、現在のテナントコンテキストがグローバルであることを保証しなければならない。これは、現在のテナントコンテキストについて、テナントIDが0に等しいことをチェックすることにより行なわれ得る。
実施形態に従うと、エンドツーエンドライフサイクルインフラストラクチャは、マルチテナントアプリケーションサーバ環境内の異なるコンポーネントが自身のコンポーネントに特有のライフサイクル機能を提供するよう、ライフサイクルプラグインを使用することを可能にするプラグインベースのメカニズムを含む。
実施形態に従うと、システムは、アプリケーションサーバ(たとえばWebLogic,WLS)ライフサイクルプラグインを含み得、ライフサイクルAPIを実現し、アプリケーションサーバ(たとえばWLS)パーティションの作成または構成を管理する。
実施形態に従うと、アプリケーションサーバプラグインは、レジスタプラグインオペレーションを使用して、ライフサイクルマネージャに登録され得る。その後、ライフサイクルマネージャへのアプリケーションサーバ(たとえばWLS)ランタイムの登録の際、ライフサイクルマネージャと相互作用するクライアントは、ライフサイクルマネージャに登録された特定されたランタイム上でパーティションを作成/更新/削除するよう、ライフサイクルマネージャにRESTコールを行うことができる。アプリケーションサーバ(たとえばWLS)プラグインは、その特定のアプリケーションサーバ(たとえばWLS)ランタイム上でライフサイクルオペレーションを実行するために呼び出され得る。
実施形態に従うと、アプリケーションサーバプラグインは、サーバと相互作用するために、アプリケーションサーバ(たとえばWLS)によって公開されるJMX/REST APIを使用し得る。プラグインは、ターゲットとされたアプリケーションサーバランタイムに対するライフサイクルオペレーションがアプリケーションサーバパーティション上でCRUDオペレーションを行うことを可能にするよう、ライフサイクルマネージャからのパーティションプラグインコントラクトを実現し得る。以下は、パーティションについてたとえばWLSランタイム上で行われ得るいくつかの例示的な動作である。
実施形態に従うと、アプリケーションサーバプラグインは以下のプロパティを使用してアプリケーションサーバ、たとえばWLSランタイム、に接続する。これらのプロパティは、上記のコントラクトにおいて特定されたように、ライフサイクルランタイムオブジェクトを介してライフサイクルオペレーションに渡される。
実施形態に従うと、アプリケーションサーバプラグインを使用して行われた任意のCRUDオペレーションは、ライフサイクルコンテキストにおけるプラグインに提供される情報/データに基づいてカスタマイズされ得る。クライアントはRESTコールの部分としてプロパティを特定し得る。ライフサイクルマネージャはライフサイクルコンテキストへデータをポピュレート(populate)し、プラグインにプロパティを戻す。たとえば、クライアントは、WLSパーティションに対してcreatePartitionについてのRESTコールを行う場合、パーティションの属性を特定するためにプロパティを特定し得る。
実施形態に従うと、以下は、パーティションオペレーションを作成/更新しつつクライアントによって特定され得るいくつかの例示的なプロパティである。これらの構成はパーティション作成/更新の部分として作成され、パーティションに特有である。
実施形態に従うと、パーティション名以外の付加的なプロパティは、アプリケーションサーバ(たとえばWLS)パーティションを削除するためには必要ではない。
実施形態に従うと、別のコンポーネントとのアプリケーションサーバインスタンスの関連付けは、いくつかの新しいプロパティによるアプリケーションサーバ(たとえばWLS)パーティションを更新することを伴い得るか、または、関連付けのために、必要なプロパティを他のコンポーネントに提供することを伴い得る。
実施形態に従うと、別のコンポーネントとのアプリケーションサーバ(たとえばWLS)の分離は、あるWLSパーティション構成を除去/更新することを伴い得る。分離に参加することを望む如何なるコンポーネントも、上で特定されたフォーマットでライフサイクルコンテキストにおけるプロパティの正しいセットを確実に渡す必要がある。以下は、WLSとDBパーティションとの間の分離を説明する例である。
実施形態に従うと、パーティション構成は、ライフサイクルマネージャ環境/範囲の外部で作成/更新/削除され得る。たとえば、アドミニストレータがパーティションを作成するようWLSTコマンドを呼び出すか、または、パーティションを更新するためにWLSアドミンコンソールを使用し得る。任意の状況において、ライフサイクルマネージャとともに存在するパーティション情報は最近のものであり最も更新されたものであることが確実である必要がある。
実施形態に従うと、アプリケーションサーバ(たとえばWLS)プラグインにおけるScaleUpおよびscaleDownオペレーションは、動的なクラスタの部分であるサーバインスタンスを開始および停止する機能を提供するよう使用され得る。WLSプラグインは、サーバを開始/停止するようマシン/サーバと相互作用するようノードマネージャを使用し得る。
1.WLSインターセプタは、スケーリングがクラスタ限界内であるかどうかチェックする。その後、WLSインターセプタはctx.proceed()を呼び出す。
2.OTDインターセプタは、ドレインされるべき選択されたターゲットをマークするよう、必要なOTDコンフィグ変更を行う。要求がドレインされたことをOTDメトリックが示すまで、OTDインターセプタは待機する。その後、OTDインターセプタはctx.proceed()を呼び出す。
3.JMSインターセプタは、JMSバックログがドレインするのを待機する。その後、JMSインターセプタはctx.proceed()を呼び出す。
4.データソースインターセプタは、すべてのJDBC接続がプールに返されたことを保証する。その後、データソースインターセプタはctx.proceed()を呼び出す。
5.サービスがスケールダウンされる(最後のインターセプタの後にElasticServiceManagerによって呼び出される)。
1.データソースインターセプタは、残存する稼働している管理されたサーバについて最大接続プールサイズ(max-connection-pool-size)を適切に増加し、
2.JMSインターセプタは何もせず、
3.OTDインターセプタは何もせず、
4.WLSインターセプタは何もしない。
実施形態に従うと、ライフサイクルマネージャクライアントは、REST要求を使用してWLS上でたとえば以下のオペレーションを行い得る。すなわち、当該オペレーションは、
1.REST要求において渡されるべきWLSランタイムおよびプロパティを登録することと、
2.空のWLSパーティションを作成することと、
3.リソースグループおよびターゲティングによりWLSパーティションを作成することと、
4.(環境テスト1が既に作成されていると仮定して)環境にWLSパーティションを追加することと、
5.別のパーティションにWLSパーティションを関連付けることと、
6.別のパーティションとWLSパーティションを分離することと、
6.WLSパーティションを削除することと、
7.WLSパーティションを更新することと
を含む。
実施形態に従うと、システムは、ライフサイクルAPIを実現するとともにデータベース(たとえばDatabase)パーティションの作成または構成を管理するデータベース(たとえばオラクルデータベース)ライフサイクルプラグインを含み得る。
実施形態に従うと、データベースプラグインは、ライフサイクルマネージャパーティションプラグインインターフェイスのインプリメンテーションであり、任意のオペレーションを実行し得る前に、ライフサイクルマネージャに登録される。結果、ライフサイクルマネージャへのデータベースランタイムの登録の際、ライフサイクルマネージャと相互作用するクライアントは、ライフサイクルマネージャに対するRESTコールを行い、ライフサイクルマネージャに登録された特定されたランタイム上でPDBオペレーションを実行する。
実施形態に従うと、データベース上でオペレーションが実行され得る前に、ライフサイクルマネージャに登録されなければならない。登録プロセスは、データベースに接続するために使用される情報を必要とする。たとえば、データベースランタイムは以下のプロパティに登録され得る。
実施形態に従うと、データベースライフサイクルプラグインは、JDBCを介してリモートSQL接続を使用してデータベースと通信する。ランタイム登録中に特定されるプロパティはデータベースに接続するために使用される。多くのライフサイクルオペレーションは、対応するSQLコマンドにマッピングし、そのさまざまなクローズ(clause)はたとえば、ライフサイクルコンテキストオブジェクトに渡されるとともにプラグインに渡されるプロパティから決定される。
Create
実施形態に従うと、createオペレーションは以下のタスクを実行する。すなわち、(1)特定されたデータベースランタイム上でプラガブルデータベースを作成する。新しく作成されたPDBのパーティションIDがV$PDBSテーブルから取得される。パーティション名はPDB名と同じである。(2)随意に、データベースユーザを作成する。(3)随意に、既存のCDBプランを使用してPDBにCDBプランディレクティブを作成する。上記のタスクについて多くのオプションが利用可能である。これらのオプションは、ライフサイクルコンテキストオブジェクトにおけるプロパティとして、プラグインに渡される。
実施形態に従うと、deleteオペレーションは以下のタスクを実行し得る。(1)PDB名を使用してプラガブルデータベースをドロップする。PDBユーザも自動的にドロップされる。(2)随意に、上記のタスクについてプラグインによって実行されるPDBサンプルSQLに対するCDBプランディレクティブをドロップする。
実施形態に従うと、updateオペレーションは、PDBに対する更新を実行するようALTER PLUGGABLE DATABASEコマンドを実行することによって、プラガブルデータベースの属性を修正する。
実施形態に従うと、associateオペレーションは、WLSパーティションがPDBに関連付けられる際に重要である。データベースプラグインは、関連付け中に、WLSプラグインにデータベース接続URLを渡す。ライフサイクルマネージャによってPDBを作成する間にユーザが作成されると、そのユーザのユーザ名およびパスワードもWLSパーティションプラグインに渡される。
実施形態に従うと、quiesceオペレーションは、ALTER PLUGGABLE DATABASEコマンドを使用して、特定されたPDBを閉じる。
実施形態に従うと、startオペレーションは、ALTER PLUGGABLE DATABASEコマンドを使用して、特定されたPDBを開始する。
実施形態に従うと、ライフサイクルコンテキストオブジェクトを介してプラグインへと渡されるプロパティからさまざまなSQLクローズが形成され得る。共有のリソースのうちのいくつかは以下を含む。
実施形態に従うと、PDBを作成する場合、CDBプランディレクティブも作成され得る。これに関係するプロパティは、キー「resourceManager」の下で特定されるべきである。以下は「resourceManager」についての例示的なプロパティである。
実施形態に従うと、PDBを作成する場合、ユーザも作成され得る。ユーザに関係するプロパティは、キー「databaseUser」の下で特定されるべきである。
実施形態に従うと、システムは、マルチテナントアプリケーションサーバ環境内のグローバルランタイムの使用をサポートする。
上述したように、実施形態に従うと、グローバルランタイムで実行される場合、パーティション名はGLOBALを返し、IDは0になる。マルチテナンシフラグを有効化した状態でJRFドメインにおいて実行される場合、テナントコンテキストはGLOBALとしてセットされるテナンシを有し、テナントIDも0となる。
上述したように、実施形態に従うと、グローバルランタイムにおいて定義されるリソースグループは、グローバルランタイムにおいて実行されるアプリケーションが、動作するかまたはクラスをシェアすることを望み得るパーティションであるので、同じ管理されたサーバ/クラスタにターゲットとされなければならない。
下記の例は、SaaSシナリオにおいてドメインレベルでのリソースグループの使用を示す。カスタマーリレーションシップマネジメント(CRM:Customer Relationship Management)アプリケーションはグローバルランタイムにデプロイされる。ドメインレベルで定義されたリソースグループテンプレートは、パーティションおよびグローバルランタイムの両方によって使用され得る。読みやすさのために、下記の例はドメインレベルでのリソースグループのみを示す。
実施形態に従うと、たとえばオラクル12cデータベース(Oracle 12c Database)を実行する場合、多くのPDBが1つのコンテナデータベース(CDB:container database)において実行され得る。テナントのためのパーティションの作成により、PDBが作成され、使用するべきパーティションについてデータソースが構成される。
実施形態に従うと、各パーティションは、テナントに特有なデータを書き込むために、そのPDBインスタンスを指すデータソースを有することになる。たとえばWLSといったアプリケーションサーバにおいてパーティションにおいて実行される場合、データソースの名称は各パーティションについて変更する必要はない。代わりに、アプリケーションサーバは、各パーティションベースで、JNDIツリーにおけるデータソースを分離する。これらのデータソースは、各テナントのパーティションについてリソースグループから参照されるリソースグループテンプレートにおいて定義され得る。
実施形態に従うと、グローバルランタイムに再デプロイされるアプリケーションまたはシェアされたライブラリは、パーティションにおいて実行されるすべてのテナントに特有なアプリケーションとシェアされ得る。パーティションにわたってシェアされることに加えて、グローバルランタイムで実行されるアプリケーションは、特定されたテナントのコンテキストにおいて実行されるパーティションのコンテキストにおいても実行することができる。しかしながら、逆は真ではない。すなわち、パーティションにおいて実行されるテナントに特有のアプリケーションは、グローバルランタイムのコンテキストにおいて実行することができない。下記のテーブルは、どのコンテキストスイッチングが許可されるか示す。
Claims (7)
- マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルをサポートするためのシステムであって、
1つ以上のコンピュータを備え、前記1つ以上のコンピュータは、当該1つ以上のコンピュータ上で実行されるとともに、ソフトウェアアプリケーションのデプロイおよび実行を可能にするアプリケーションサーバ環境を備えており、前記アプリケーションサーバ環境は、
前記ソフトウェアアプリケーションの実行のためのアプリケーションサーバドメインと当該アプリケーションサーバドメインの1つ以上のパーティションとを定義するドメイン設定と、
前記アプリケーションサーバ環境において使用できる複数のデプロイ可能なリソースと、
前記複数のデプロイ可能なリソースのうち1つ以上に対してパーティション特有な情報を与える1つ以上のリソースグループとを含み、
パーティション設定に関連付けられるとともに、アプリケーションサーバドメインのサブ区画を提供する、前記1つ以上のパーティションの各パーティションは、前記リソースグループのうち1つ以上を含むとともに、テナントに関連付けられることが可能であり、 前記アプリケーションサーバ環境の1つ以上のコンポーネントにわたる統合を提供し、当該1つ以上のパーティションに使用される1つ以上のコンポーネントのライフサイクルを統合するためのパーティション特有の設定を有する、ライフサイクルマネージャを含み、
前記1つ以上のコンポーネントの各々は、当該コンポーネントを実行するライフサイクル操作が可能なインタフェースに関連付けられ、
前記ライフサイクルマネージャは、パーティションの設定時に、パーティションに使用されるために、前記1つ以上のコンポーネントの設定に関連付けられるライフサイクル操作を実行する、システム。 - 前記アプリケーションサーバドメイン内のデプロイ可能なリソースのグルーピングを定義するよう、1つ以上のリソースグループテンプレートが使用される、請求項1に記載のシステム。
- 前記ライフサイクルマネージャは、サービスのためのテナントをパーティションに関連付けるように使用される、請求項1または2に記載のシステム。
- マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルをサポートするための方法であって、
1つ以上のコンピュータ上で実行されるアプリケーションサーバ環境を含む、前記1つ以上のコンピュータにおいて、ソフトウェアアプリケーションのデプロイおよび実行を可能にするアプリケーションサーバ環境を備えており、前記アプリケーションサーバ環境は、
前記ソフトウェアアプリケーションの実行のためのアプリケーションサーバドメインと当該アプリケーションサーバドメインの1つ以上のパーティションとを定義するドメイン設定と、
前記アプリケーションサーバ環境において使用できる複数のデプロイ可能なリソースと、
前記複数のデプロイ可能なリソースのうち1つ以上に対してパーティション特有な情報を与える1つ以上のリソースグループとを含み、
パーティション設定に関連付けられるとともに、アプリケーションサーバドメインのサブ区画を提供する、前記1つ以上のパーティションの各パーティションは、前記リソースグループのうち1つ以上を含むとともに、テナントに関連付けられることが可能であり、 前記アプリケーションサーバ環境の1つ以上のコンポーネントにわたる統合を提供し、当該1つ以上のパーティションに使用される1つ以上のコンポーネントのライフサイクルを統合するためのパーティション特有の設定を有する、ライフサイクルマネージャを提供し、
前記1つ以上のコンポーネントの各々は、当該コンポーネントを実行するライフサイクル操作が可能なインタフェースに関連付けられ、
前記ライフサイクルマネージャは、パーティションの設定時に、パーティションに使用されるために、前記1つ以上のコンポーネントの設定に関連付けられるライフサイクル操作を実行する、方法。 - 前記アプリケーションサーバドメイン内のデプロイ可能なリソースのグルーピングを定義するよう、1つ以上のリソースグループテンプレートが使用される、請求項4に記載の方法。
- 前記ライフサイクルマネージャは、サービスのためのテナントをパーティションに関連付けるように使用される、請求項4または5に記載の方法。
- 1つ以上のコンピュータシステム上での実行のためのプログラム命令を含むコンピュータプログラムであって、前記プログラム命令は、実行されると、前記1つ以上のコンピュータシステムに請求項4〜6のいずれか1項に記載の方法を実行させる、コンピュータプログラム。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462055577P | 2014-09-25 | 2014-09-25 | |
US201462055575P | 2014-09-25 | 2014-09-25 | |
US62/055,577 | 2014-09-25 | ||
US62/055,575 | 2014-09-25 | ||
US201462055856P | 2014-09-26 | 2014-09-26 | |
US201462056427P | 2014-09-26 | 2014-09-26 | |
US62/056,427 | 2014-09-26 | ||
US62/055,856 | 2014-09-26 | ||
US14/864,725 US10084723B2 (en) | 2014-09-25 | 2015-09-24 | System and method for providing an end-to-end lifecycle in a multitenant application server environment |
US14/864,725 | 2015-09-24 | ||
PCT/US2015/052462 WO2016049578A1 (en) | 2014-09-25 | 2015-09-25 | System and method for providing an end-to-end lifecycle in a multitenant application server environment |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017532678A JP2017532678A (ja) | 2017-11-02 |
JP2017532678A5 JP2017532678A5 (ja) | 2018-08-30 |
JP6599448B2 true JP6599448B2 (ja) | 2019-10-30 |
Family
ID=54325692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017516338A Active JP6599448B2 (ja) | 2014-09-25 | 2015-09-25 | マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10084723B2 (ja) |
EP (1) | EP3198436B1 (ja) |
JP (1) | JP6599448B2 (ja) |
KR (1) | KR102313476B1 (ja) |
CN (1) | CN107077388B (ja) |
WO (1) | WO2016049578A1 (ja) |
Families Citing this family (31)
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 |
US10187454B2 (en) | 2014-01-21 | 2019-01-22 | Oracle International Corporation | System and method for dynamic clustered JMS in an application server environment |
US10474998B2 (en) | 2014-01-21 | 2019-11-12 | Oracle International Corporation | System and method for messaging in a multitenant application server environment |
KR102271265B1 (ko) | 2014-01-21 | 2021-07-01 | 오라클 인터내셔날 코포레이션 | 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법 |
US10476938B2 (en) | 2014-01-21 | 2019-11-12 | Oracle International Corporation | System and method for multitenancy store in a multitenant application server environment |
US10027550B2 (en) | 2014-06-23 | 2018-07-17 | Oracle International Corporation | System and method for multitenant-aware console for use in a multitenant application server environment |
US10873627B2 (en) | 2014-06-23 | 2020-12-22 | Oracle International Corporation | System and method for supporting use of an in-memory data grid with a multitenant application server environment |
US10462068B2 (en) | 2014-09-25 | 2019-10-29 | Oracle International Corporation | System and method for tenant onboarding in a multitenant application server environment |
US9747137B2 (en) | 2014-09-25 | 2017-08-29 | Oracle International Corporation | System and method for providing a partition file system 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 |
US10348565B2 (en) | 2014-09-25 | 2019-07-09 | Oracle International Corporation | System and method for rule-based elasticity in a multitenant application server environment |
US11188427B2 (en) * | 2014-09-26 | 2021-11-30 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US11057272B2 (en) | 2014-09-26 | 2021-07-06 | Oracle International Corporation | System and method for transactions in a multitenant application server environment |
US10091135B2 (en) | 2014-09-26 | 2018-10-02 | Oracle International Corporation | System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context |
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 |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US10409589B2 (en) * | 2016-07-12 | 2019-09-10 | Accenture Global Solutions Limited | Application centric continuous integration and delivery with automated service assurance |
US11194558B2 (en) | 2016-10-14 | 2021-12-07 | Accenture Global Solutions Limited | Application migration system |
US10152306B2 (en) * | 2016-11-07 | 2018-12-11 | Palantir Technologies Inc. | Framework for developing and deploying applications |
US10389603B2 (en) | 2017-06-02 | 2019-08-20 | Microsoft Technology Licensing, Llc | Fast provisioning of tenants on a hosted service |
US10387212B2 (en) | 2017-06-15 | 2019-08-20 | Microsoft Technology Licensing, Llc | Attribute collection and tenant selection for on-boarding to a workload |
US11075799B2 (en) | 2017-08-24 | 2021-07-27 | Oracle International Corporation | System and method for provisioning in a multi-tenant application server environment |
CN110581775B (zh) * | 2018-06-08 | 2021-01-29 | 华为技术有限公司 | 网络切片的管理服务实例的管理方法和装置 |
US11550940B2 (en) * | 2018-12-14 | 2023-01-10 | Sap Se | Tenant separation for analytical applications in a remote application integration scenario |
CN109828830B (zh) * | 2019-01-18 | 2021-07-16 | 北京百度网讯科技有限公司 | 用于管理容器的方法和装置 |
KR20200099306A (ko) * | 2019-02-14 | 2020-08-24 | 삼성전자주식회사 | 전자 장치 및 상기 전자 장치에서 실행되는 복수의 어플리케이션의 라이프 사이클을 관리하는 방법 |
US11561835B2 (en) * | 2019-05-31 | 2023-01-24 | Hewlett Packard Enterprise Development Lp | Unified container orchestration controller |
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 |
US11057315B1 (en) * | 2020-01-06 | 2021-07-06 | International Business Machines Corporation | Generating a scaling plan for external systems during cloud tenant onboarding/offboarding |
CN112100584B (zh) * | 2020-08-13 | 2021-04-06 | 上海微亿智造科技有限公司 | 机器学习应用服务集群的多租用户权限管理方法及系统 |
US11656926B1 (en) | 2022-01-26 | 2023-05-23 | Bank Of America Corporation | Systems and methods for automatically applying configuration changes to computing clusters |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130897B2 (en) | 2001-10-11 | 2006-10-31 | International Business Machines Corporation | Dynamic cluster versioning for a group |
JP4589113B2 (ja) * | 2002-09-23 | 2010-12-01 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ミドルウェア・アプリケーション・メッセージ/イベント・モデル |
US7945677B2 (en) | 2005-09-06 | 2011-05-17 | Sap Ag | Connection manager capable of supporting both distributed computing sessions and non distributed computing sessions |
WO2007113533A1 (en) | 2006-03-31 | 2007-10-11 | British Telecommunications Public Limited Company | Xml-based transfer and a local storage of java objects |
US20080022380A1 (en) | 2006-05-25 | 2008-01-24 | Gemalto, Inc. | Method of patching applications on small resource-constrained secure devices |
US8095618B2 (en) * | 2007-03-30 | 2012-01-10 | Microsoft Corporation | In-memory caching of shared customizable multi-tenant data |
US8701103B1 (en) | 2007-10-31 | 2014-04-15 | Wal-Mart Stores, Inc. | Method and system for minimizing or eliminating downtime when updating a website |
US20090144720A1 (en) | 2007-11-30 | 2009-06-04 | Sun Microsystems, Inc. | Cluster software upgrades |
US20090187899A1 (en) | 2008-01-23 | 2009-07-23 | International Business Machines Corporation | Method for intelligent patch scheduling using historic averages of virtual i/o utilization and predictive modeling |
JP4467624B2 (ja) | 2008-03-24 | 2010-05-26 | 富士通株式会社 | ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法 |
JP2009282777A (ja) * | 2008-05-22 | 2009-12-03 | Hitachi Information Systems Ltd | アプリケーションプログラムの提供システム及びアプリケーションプログラム |
US9229707B2 (en) | 2008-12-18 | 2016-01-05 | Sap Se | Zero downtime mechanism for software upgrade of a distributed computer system |
US8874749B1 (en) | 2010-02-03 | 2014-10-28 | Citrix Systems, Inc. | Network fragmentation and virtual machine migration in a scalable cloud computing environment |
CN102170457A (zh) | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 向应用的多租户提供服务的方法和装置 |
US8407689B2 (en) | 2010-06-25 | 2013-03-26 | Microsoft Corporation | Updating nodes considering service model constraints |
US8412673B2 (en) * | 2010-07-30 | 2013-04-02 | Sap Ag | Persistence of master data in a multi-tenant software delivery architecture |
US11048492B2 (en) | 2010-08-24 | 2021-06-29 | Oracle International Corporation | Reducing downtime while patching binaries on a cluster |
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 |
WO2012063301A1 (ja) * | 2010-11-08 | 2012-05-18 | 株式会社日立製作所 | 計算機システム、マルチテナント制御方法及びマルチテナント制御プログラム |
US8751573B2 (en) | 2010-11-23 | 2014-06-10 | Sap Ag | Cloud-processing management with a landscape directory |
US9639402B2 (en) * | 2011-08-05 | 2017-05-02 | Oracle International Corporation | Systems and methods for automatic hardware provisioning based on application characteristics |
CN102333115A (zh) * | 2011-09-01 | 2012-01-25 | 杭州湾云计算技术有限公司 | 一种将已有Web应用转化为SaaS多租户应用的方法和装置 |
US8875157B2 (en) | 2011-09-09 | 2014-10-28 | Microsoft Corporation | Deployment of pre-scheduled tasks in clusters |
KR101297441B1 (ko) * | 2011-10-31 | 2013-08-16 | 삼성에스디에스 주식회사 | 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법 |
US20130326494A1 (en) | 2012-06-01 | 2013-12-05 | Yonesy F. NUNEZ | System and method for distributed patch management |
US20150296030A1 (en) * | 2012-07-03 | 2015-10-15 | Stephane Maes | Managing a multitenant cloud service |
US9424024B2 (en) | 2012-09-07 | 2016-08-23 | Oracle International Corporation | System and method for elasticity management of services with a cloud computing environment |
US9276942B2 (en) * | 2012-09-07 | 2016-03-01 | Oracle International Corporation | Multi-tenancy identity management system |
CN104737517B (zh) | 2012-09-07 | 2018-08-31 | 甲骨文国际公司 | 用于提供云服务集合的系统和方法 |
US10225164B2 (en) | 2012-09-07 | 2019-03-05 | Oracle International Corporation | System and method for providing a cloud computing environment |
US9843487B2 (en) | 2013-03-12 | 2017-12-12 | Oracle International Corporation | System and method for provisioning cloud services using a hybrid service management engine plugin |
US9596297B2 (en) | 2013-05-16 | 2017-03-14 | Toshiba Global Commerce Solutions Holdings Corporation | Managing communications in a multi-client, multi-server environment |
US10230580B2 (en) * | 2013-10-30 | 2019-03-12 | Hewlett Packard Enterprise Development Lp | Management of the lifecycle of a cloud service modeled as a topology |
KR102271265B1 (ko) | 2014-01-21 | 2021-07-01 | 오라클 인터내셔날 코포레이션 | 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법 |
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 |
US9772837B2 (en) | 2015-06-29 | 2017-09-26 | Verizon Patent And Licensing Inc. | Dynamic delivery of code and fixes |
US20170142228A1 (en) | 2015-11-12 | 2017-05-18 | International Business Machines Corporation | Server cluster patch tracking to facilitate code level matching of added servers |
US10374930B2 (en) | 2016-01-28 | 2019-08-06 | Microsoft Technology Licensing, Llc | Off-peak patching for enterprise stability |
US10055219B1 (en) | 2016-04-07 | 2018-08-21 | Nutanix, Inc. | Dynamically preparing server-specific installation images using a virtual media source node |
US11444866B2 (en) | 2016-07-22 | 2022-09-13 | Intel Corporation | Methods and apparatus for composite node creation and management through SDI partitions |
-
2015
- 2015-09-24 US US14/864,725 patent/US10084723B2/en active Active
- 2015-09-25 KR KR1020177009085A patent/KR102313476B1/ko active IP Right Grant
- 2015-09-25 CN CN201580051600.3A patent/CN107077388B/zh active Active
- 2015-09-25 EP EP15781215.7A patent/EP3198436B1/en active Active
- 2015-09-25 WO PCT/US2015/052462 patent/WO2016049578A1/en active Application Filing
- 2015-09-25 JP JP2017516338A patent/JP6599448B2/ja active Active
-
2018
- 2018-08-30 US US16/117,343 patent/US10855620B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017532678A (ja) | 2017-11-02 |
CN107077388A (zh) | 2017-08-18 |
US20190014060A1 (en) | 2019-01-10 |
US10855620B2 (en) | 2020-12-01 |
US10084723B2 (en) | 2018-09-25 |
KR102313476B1 (ko) | 2021-10-18 |
KR20170059449A (ko) | 2017-05-30 |
CN107077388B (zh) | 2020-12-08 |
US20160094484A1 (en) | 2016-03-31 |
EP3198436B1 (en) | 2023-01-11 |
EP3198436A1 (en) | 2017-08-02 |
WO2016049578A1 (en) | 2016-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6611798B2 (ja) | マルチテナントアプリケーションサーバ環境においてグローバルランタイムを使用するためのシステムおよび方法 | |
JP6599448B2 (ja) | マルチテナントアプリケーションサーバ環境においてエンドツーエンドライフサイクルを提供するためのシステムおよび方法 | |
US10462068B2 (en) | System and method for tenant onboarding in a multitenant application server environment | |
US10050903B2 (en) | System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context | |
KR102464337B1 (ko) | 멀티테넌트 어플리케이션 서버 환경에서 파티션 식별자들의 결정을 위한 시스템 및 방법 | |
US11003377B2 (en) | Transactions in a decentralized control plane of a computing system | |
US10476938B2 (en) | System and method for multitenancy store in a multitenant application server environment | |
US10091135B2 (en) | System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context | |
US10356161B2 (en) | System and method for classloading in a multitenant application server environment | |
US9930129B2 (en) | System and method for java EE and java SE proxy data sources in a multitenant application server environment | |
US9973384B2 (en) | System and method for enterprise java bean support in a multitenant application server environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180718 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180718 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190604 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190814 |
|
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: 20190903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191002 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6599448 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 |