【文献】
MATHER,Tim, KUMARASWAMY, Subra, LATIF, Shahed,“クラウドセキュリティ&プライバシーリスクとコンプライアンスに対する企業の視点”,株式会社オライリー・ジャパン オライリー ティム,2011年1月5日,初版第2刷,pp.55−57,ISBN 978−4−87311−458−3
【文献】
羽深 修 外2名,Eucalyptusではじめるプライベートクラウド構築 初版,日本,株式会社インプレスジャパン 土田 米一,2011年6月1日,第1版,pp.176,179,180
(58)【調査した分野】(Int.Cl.,DB名)
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナン
トコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項1に記載のシステム。
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項4に記載の方法。
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項7に記載のコンピュータ読取可能なプログラム。
【発明を実施するための形態】
【0009】
詳細な説明
上述のように、クラウドコンピューティング環境(クラウド環境、またはクラウド)は、異なる要件に最良に適合するように、さまざまな異なるやり方で、たとえば、パブリッククラウド、プライベートクラウド、コミュニティクラウド、またはハイブリッドクラウドとして実装可能である。クラウドコンピューティングモデルは、以前は組織自体の情報技術部門によって提供されたかもしれない責務のうちのいくつかが、代りにクラウド環境内のサービス層として、(クラウドの性質がパブリックかプライベートかに従って、組織の内部または外部の)消費者によって使用されるために供給されることを可能にする。
【0010】
ここに説明されるのは、クラウドコンピューティング環境をサポートするためにインフラストラクチャ、プラットフォーム、および/またはアプリケーションを供給する際に使用できる、さまざまなハードウェアおよび/またはソフトウエアコンポーネントおよび特徴である。さまざまな実施形態によれば、エンタープライズグレードであり、アプリケーションを開発してデプロイメントするためのプラットフォームを可能にし、現代のアーキテクチャおよび使用事例上に構築された1組のエンタープライズアプリケーションを提供し、および/または柔軟な消費選択を提供する、クラウドコンピューティング環境を提供するために、システムは、オラクル・エクサロジック(Exalogic)および/またはエクサデータ(Exadata)マシン、ウェブロジック(WebLogic)および/またはフュージョンミドルウェア(Fusion Middleware)といったハードウェアおよびソフトウェア、ならびに他のハードウェアおよび/またはソフトウエアコンポーネントおよび特徴も利用できる。
【0011】
図1は、一実施形態に従った、サービス層を含むクラウドコンピューティング環境を示す。
図1に示すように、一実施形態によれば、クラウドコンピューティング環境(クラウド環境、またはクラウド)100は一般に、1つ以上のインフラストラクチャ・アズ・ア・サービス(IaaS)層110、プラットフォーム・アズ・ア・サービス(PaaS)層160、および/またはソフトウェア・アズ・ア・サービス(SaaS)層170の組合せを含んでいてもよく、それらは各々、クラウド環境内のサービス層として供給されており、使用中の特定のクラウドコンピューティングモデルに依存して、組織の内部または外部の消費者によって使用可能である。
【0012】
一実施形態によれば、クラウドコンピューティング環境は、1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、マイクロプロセッサ、メモリおよび/またはコンピュータ読取可能な記憶媒体、を含むシステムとして実装可能であり、たとえばオラクルExalogic、Exadata、または同様のマシンによって提供される、コンピュータハードウェア、ソフトウェア、およびリソースがある。
【0013】
図1にさらに示すように、一実施形態によれば、クラウドコンピューティング環境は、共有イネーブルメントおよび管理インフラストラクチャ120を含んでいてもよく、それは以下により詳細に説明され、さまざまなサービス層をサポートするために使用可能なイネーブルメントおよび管理ツールを提供する。
【0014】
図1に示す例は、この発明の実施形態を一般に使用できる、あるタイプのクラウドコンピューティング環境の例示として提供されている。さまざまな実施形態によれば、ここに説明されるシステムおよび方法は、異なるおよび/または他のタイプのクラウドまたはコンピューティング環境でも使用できる。
【0015】
図2は、一実施形態に従った環境をさらに示す。
図2に示すように、一実施形態によれば、IaaS層、PaaS層、および/またはSaaS層の各々は一般に、さまざまなコンポーネントを含んでいてもよい。たとえば、一実施形態によれば、IaaS層は、共有データベースハードウェア(たとえばExadataマシン)112、および/または共有アプリケーションサーバハードウェア(たとえばExalogicマシン)を含んでいてもよい。PaaS層は、データベースサービス162、アプリケーションサービス164、および/またはウェブセンター(WebCenter)サービス166などの1つ以上のPaaSサービスを含んでいてもよい。SaaS層は、1つ以上のユーザ/クラウドインターフェイス180によってアクセス可能である、エンタープライズアプリケーション(たとえば、オラクルフュージョンSaaS)172、および/または、ISVまたはカスタムアプリケーション176などのさまざまなSaaSサービスを含んでいてもよい。
【0016】
上述のように、一実施形態によれば、クラウドコンピューティング環境は、共有イネーブルメントおよび管理インフラストラクチャも含んでいてもよい。たとえば、
図2に示すように、共有イネーブルメントおよび管理インフラストラクチャは、1つ以上のアイデンティティ管理122、データ統合124、複製(たとえば、オラクル・ゴールデンゲート(GoldenGate))126、仮想アセンブリビルダー128、システムプロビジョニング130、テナント管理132、および/またはエンタープライズマネージャ134のコンポーネントを含んでいてもよい。
【0017】
図2にさらに示すように、一実施形態によれば、共有イネーブルメントおよび管理インフラストラクチャは、ウィルススキャン142、安全なファイル転送144、HTTPルーティング146、ホワイトリスト148、通知150、安全なバックアップ152、統合ゲートウエイ154、および/または使用&課金156コンポーネントといった他のコンポーネントも含んでいてもよい。
【0018】
図2に示す例は、クラウドコンピューティング環境に、または共有イネーブルメントおよび管理インフラストラクチャ内に含まれ得るいくつかのタイプのコンポーネントの例示として提供されている。他の実施形態によれば、異なるおよび/または他のタイプのあるいは構成のコンポーネントが含まれていてもよい。
【0019】
ワークフローオーケストレータ
オラクル・パブリック・クラウド(OPC)といったクラウド環境は、セルフサービス的で、弾力的に拡張可能で、かつ安全な態様でテナントに供給できる、アプリケーション、ミドルウェア、およびデータベース商品一式を提供する。
【0020】
一実施形態によれば、クラウド環境はプラットフォーム・アズ・ア・サービス(PaaS)環境とやりとりしてもよく、それは、仮想アセンブリ生成といったさまざまなサービスを提供する。ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、クラウド環境とPaaS環境との間でオペレーションをオーケストレーションするために使用することができ、共有イネーブルメントおよび管理インフラストラクチャの使用を含む。
【0021】
一実施形態によれば、ワークフローオーケストレータは、プロビジョニングまたはデプロイメントのそのオーケストレーション中に、たとえば、ウィルスがないかアプリケーションをスキャンすること、または、デプロイメント中のアプリケーションを、受入れ可能なAPIコールのホワイトリストと比較することといった、追加の手順または機能を行なうことができる。ワークフローオーケストレータはまた、プラットフォームインスタンスの生成および管理も可能にすることができ、それらは各々、1つ以上のアプリケーションサーバ(たとえば、WebLogicサーバ)インスタンスを、実行中のアプリケーションにとって有用な他のリソース(たとえば、データベースサービス)とともに含んでいてもよく、共有ハードウェアリソース上で実行可能である。
【0022】
一実施形態によれば、クラウドユーザがその後やりとりできる、ファイアウォールの外側のパブリックアクセスポイントとして作用するプロキシを提供することにより、ワークフローオーケストレータはまた、クラウドユーザらが、自分たちのプラットフォームインスタンスを、そこにある任意のアプリケーションサーバインスタンスおよび他のリソースとともに管理することを可能にする。
【0023】
図3は、一実施形態に従った、Javaクラウドサービスコンポーネントを含む環境を示す。
図3に示すように、一実施形態によれば、(Javaクラウドサービス200といった)クラウドテナントで使用するためにカスタマイズ可能な1つ以上のサービスを含むクラウド環境を、ユーザ222がそのサービスの新しいインスタンスについてオーダー224を入れること、および/または既存のサービスインスタンスを管理することを可能にするユーザインターフェイス220に、関連付けることができる。
【0024】
一実施形態によれば、サービスの新しいインスタンスのオーダリングは、オーダリング段階およびプロビジョニング段階の双方を含んでいてもよい。
【0025】
オーダリング段階中、ユーザはオーダーを入れる(226)ことができ、それは最初、ストアデータベース228に記録され、そこでそれは準備され(230)、次にオーダー管理コンポーネント232に提供される。ユーザが自分たちのオーダーの詳細を検証した(233)後で、オーダーは処理可能であり(234)、一実施形態によれば、プロビジョニング(240)のためにオーダーをテナント管理コンポーネントに渡すことを含む。オーダープロセスのさまざまな段階で、ユーザは、自分たちの現在のオーダーステータスについて通知を受ける(238)ことができる。
【0026】
次に、プロビジョニング段階中、システムは、一実施形態によればサービスデプロイメントインフラストラクチャ(service deployment infrastructure:SDI)241とワークフローオーケストレータ242とを含む1つ以上のシステムプロビジョニングコンポーネントに、プロビジョニングプロセスの残りのステップをオーケストレーションするよう、要求することができる。
【0027】
図4は、一実施形態に従ったワークフローオーケストレータを示す。上述のように、ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、オペレーションをオーケストレーションするために使用することができる。
【0028】
図4に示すように、一実施形態によれば、ワークフローオーケストレータ242は、ワークフロープロキシコンポーネント292と、ワークフローマネージャコンポーネント293とを含んでいてもよく、プロビジョニングを行ない、サービスを何らかのやり方で(たとえば、それに別のサービスを関連付けて)修正するかまたは他のクラウドオペレーションを修正するために、およびワークフロージョブを非同期で実行するために、テナントプロビジョニングもしくは他のコンポーネントまたはシステムから要求を受信できる。
【0029】
一実施形態によれば、各ジョブはワークフローオーケストレータによって、任意の特定のPaaSワークフローに関連付けられた1つ以上のアクションを実行する非同期プロセスとして認識される。各アクションは、パブリッククラウドランタイム環境内でリソースを生成および管理するよう設計されたワークのアトミック単位であると考えられる。アクションはオペレーションへとグループ化可能であり、オペレーションは、サービスインスタンスの生成、またはアプリケーションのデプロイメントといったワークフローオーケストレータのさまざまな機能的な能力に対応する。ジョブは次に、ワークフローの一部として、単一のオペレーションのためのアクションを実行する。
【0030】
一実施形態によれば、アクションは、ワークフローオーケストレータ・サービス・プロバイダ・インターフェイス(service provider interface:SPI)を拡張するJavaクラスとして実装できる。ワークフローオーケストレータによって実装されたクラスは、ランタイム情報へのアクセス、およびアクションを実装するのに必要なサービスを提供する。
【0031】
一実施形態によれば、サービスプラットフォームは、任意の特定のクラスのサービスによってサポートされるオペレーションおよびアクションの記述である。たとえば、WebLogicサービスプラットフォームは、WebLogic環境のコンテキスト内で、ワークフローオーケストレータサービスおよびアプリケーションライフサイクルオペレーションのすべてを実装するために必要とされる、オペレーションおよびアクションを定義する。他の/異なるタイプのサービスプラットフォームの各々を、それ自体の/異なるタイプのアクションに関連付けることができ、アクションは、ワークフローオーケストレータの共有構成に格納されたXML文書を介して構成可能である。
【0032】
一実施形態によれば、ワークフローマネージャはワークフローオーケストレータへのエントリポイントであり、一実施形態によればREST APIとして提供可能なワークフローオーケストレータ・アプリケーション・プログラム・インターフェイス(application program interface:API)を介して、PaaSオペレーションへの安全なアクセスを提供する。内部で、ワークフローマネージャは、ワークフローエンジン/エグゼキュータ294を使用してジョブ実行を制御し、ワークフローオーケストレーションデータベース296におけるジョブおよび他のシステム状態を追跡する。ワークフローオーケストレーションデータベースはまた、プラットフォームインスタンス、デプロイメントプラン、アプリケーション、Weblogicドメイン、および警告といった、ドメインエンティティを追跡するのに必要とされる情報も含んでいてもよい。
【0033】
各ジョブは、たとえば、Javaクラウドサービスプラットフォームインスタンスのプロビジョニングといった、任意の特定のPaaSワークフローに固有のアクションのシーケンスである。アクションは典型的には順次行なわれ、いずれかのステップでの失敗はジョブ全体の失敗をもたらす。サービスプラットフォーム構成に依存して、ワークフローアクションの中には、エンタープライズマネージャまたはウィルススキャンサービスといったワークフローに関連する外部システムに、アクションを委任するものがある場合がある。
【0034】
一実施形態によれば、パブリッククラウドのコンテキスト内で、ワークフローマネージャは、プロビジョニングおよびデプロイメントオペレーションをそれぞれ駆動するために、テナントプロビジョニング297またはテナントコンソール298コンポーネントといったあるクライアントによって、そのワークフローオーケストレータAPIを介して直接アクセスされてもよい(299)。
【0035】
他のクライアント、たとえばJディベロッパー(JDeveloper)またはネットビーンズ(NetBeans)IDE301、もしくは他のコマンドラインインターフェイス(command line interface:CLI)302も、プラットフォームインスタンス上でライフサイクルオペレーションにアクセスするために使用可能である。しかしながら、さらなるセキュリティのために、これらのクライアントは典型的には、ワークフロープロキシを介してワークフローマネージャにアクセスするであろう。たとえば、一実施形態によれば、ワークフローマネージャ(そのOHSおよびアプリケーションサーバインスタンスを含む)は、ファイアウォールの内側で実行されるWebLogicクラスタにおいてホスト可能であり、一方、ワークフロープロキシ(そのOHSおよびアプリケーションサーバインスタンスを含む)は、ファイアウォールの外側のパブリックアクセスポイントとして提供可能である。プロキシによって受信された要求は次に、ワークフローマネージャに転送される。
【0036】
一実施形態によれば、サービスプラットフォーム構成に依存して、ワークフローオーケストレータは、ワークフローを実行するために、追加のコンポーネントまたはシステムを利用できる。たとえば、Javaクラウドサービスのコンテキストでは、そのような追加のコンポーネントまたはシステムは、以下のものを含み得る:
ウィルススキャン304:ユーザのアプリケーションがクラウド環境にデプロイメントされる前に、そのアプリケーションを、ウィルススキャンコンポーネントを使用して、ウィルスがないかスキャンできる;
サービスデプロイメントインフラストラクチャ(SDI)305:SDIコンポーネントは、アセンブリのデプロイメントまたはデプロイメント解除、もしくは機器の拡張に使用するために、OVABおよびOVMといったアセンブリビルダー製品へのアクセスを提供できる;
顧客関係管理(Customer Relationship Management:CRM)310:要求されると、ワークフローは、JavaクラウドサービスなどのサービスをCRMインスタンスに関連付けることができる;
アイデンティティ管理(Identity Management:IDM)312:ワークフローオーケストレータは、あるプラットフォームインスタンスを適切に構成するために、アイデンティティ管理コンポーネント、たとえば、テナントおよびそれらのサービス加入に関する情報を含むサービスデータベースを使用できる。
【0037】
上述の例は、例示の目的のために提供されている。他の実施形態および他のワークフローによれば、任意の特定のワークフローを実行するために、追加のもしくは他のコンポーネントまたはシステムも使用可能である。
【0038】
図4にさらに示すように、一実施形態によれば、ワークフローオーケストレータは、プラットフォームインスタンス306のプロビジョニングを調整するために使用可能である。
【0039】
たとえば、Javaクラウドサービスのコンテキストでは、結果として生じるプラットフォームインスタンスは、ユーザのオーダーに従う所与のテナントに対して、WebLogicまたは他のアプリケーションサーバサービスを提供するために必要とされるそれらのリソースのすべてを含み、リソースは、たとえば、インスタンスデータベース308、管理サーバ309、および1つ以上のアプリケーションサーバを含むであろう。
【0040】
一旦インスタンス化され、クラウド環境にデプロイメントされると、テナントユーザおよび/またはそれらのアプリケーションは次に、それらのプラットフォームインスタンス315にアクセスできる。異なるタイプのアクセスが提供可能である。一実施形態によれば、管理(たとえば、アプリケーションのモニタリング、デプロイメント/デプロイメント解除)を、プロキシを通してテナントによって行なうことができる。プロビジョニングされたインスタンス上にテナントがデプロイメントしたアプリケーションは、テナントによって所有されており、たとえば、それらのCRMインスタンスへのカスタムアクセスの提供といった異なる目的のために、何であってもよい。これは、認証および認可のためにたとえばウェブゲート314を使用して、テナントの顧客によって、サービス専用のURLを通して提供可能である。
【0041】
図5は、一実施形態に従った、ワークフローオーケストレータ内の例示的なジョブステータスを示す。ジョブが進行するにつれて、それはいくつかの状態を遷移する。ジョブに関する現在の状態および他の情報は、ワークフローオーケストレータAPIを使用してリアルタイムで問い合わせることができる。一例として、
図5に示すように、一実施形態によれば、ワークフロー318内でのジョブの実行中に起こり得る有効な状態遷移は、以下を含む:
NEW:ジョブはすべてNEW状態で生成され、それは、ジョブがワークフローオーケストレーションデータベースに存在してきたものの、それ以上のアクションが講じられてこなかったことを示す。ワークフローオーケストレータがジョブをピックアップし、それをそのワークマネージャに送ると、NEWジョブは自動的にSUBMITTEDへと移動されるであろう;
SUBMITTED:SUBMITTED状態のジョブは、ワークマネージャキューに置かれてきたものの、まだ実行のスレッドを割当てられていない。ジョブがこの状態のままである時間の長さは、ワークフローオーケストレータの負荷全体に依存する;
RUNNING:ワークマネージャによってアクティブに実行されているジョブは、RUNNING状態に置かれる。RUNNING状態にある間、ワークフローエンジン/エグゼキュータは、オペレーションによって定義されたアクションを繰り返し、それらを順次実行する;
RETRY_WAIT:アクションが失敗すると、それは、再試行が可能であることを示す場合がある。再試行を可能にするように構成されている場合、ジョブはRUNNINGからRETRY_WAITへと遷移し、実行スレッドは、特定の再試行タイムアウトに達するまで終了するであろう。ワークが再開すると、RETRY_WAITのジョブはRUNNINGに遷移するであろう;
PAUSED:オペレータは、RUNNINGまたはRETRY_WAIT状態のジョブをPAUSED状態に移動させてもよい。一時停止されたジョブはアクティブではなく、その再開をオペレータが要求するまでこの状態のままとなるであろう。その再開をオペレータが要求した時点で、それはRUNNINGに遷移するであろう;
COMPLETE:COMPLETE状態は、ジョブに関連付けられたオペレーションにおけるすべてのアクションの無事完了を示す終止状態である;
FAILED:FAILED状態は、アクションが回復不能の失敗に遭遇して中止されたことを示す終止状態である。
【0042】
一実施形態によれば、アクションは、SUCCESS、SKIPPED、FAILED、またはFAILED_RETRYという4つの起こり得る結果のうちの1つを返すかもしれない。SUCCESSおよびSKIPPEDは成功した結果であり、一方、FAILEDおよびFAILED_RETRYはエラー状態を示す。FAILED_RETRYというアクションは、それが成功するまで、または特定の再試行限界に達するまで、アクションの自動再試行をもたらす場合がある。アクションが再試行の資格を得るには、それは、そのサービスプラットフォーム定義において再試行を可能にするように構成されなければならず、アクションはFAILED_RETRY結果を返さなければならない。この状況では、現在のジョブの状態は、ワークフローオーケストレーションデータベースおよび実行スレッドが終了するまで存在するであろう。再試行タイムアウトに達すると、ジョブは再提示され、そこでそれは、失敗したアクションを実行することを試みるであろう。再試行タイムアウトおよび再試行限界は双方とも、各アクションベースで構成されており、アクションが再試行限界に達すると、それは、ジョブがPAUSED状態に移動することをもたらすであろう。
【0043】
一実施形態によれば、RETRY_WAIT状態にある間、ジョブは一時停止される場合があり、オペレータが手動の訂正アクションを講じることを可能にする。この場合、オペレータは、失敗の時点でジョブを再開する(失敗したアクションを再試行する)か、またはシーケンスの次のアクションでジョブを再開する選択肢を有しており、オペレータがアクションによって行なわれていたであろうステップを手動で完了したことを意味する。非終止状態のジョブは、いつでもキャンセルされてもよい。現在実行中のアクションが完了し、その時点でスレッドは終了し、ジョブのためにそれ以上のアクションは講じられないであろう。ジョブをキャンセルすることは、同じサービスインスタンスに対するさらなるオペレーションを非ブロック化するものの、それは、システムが一貫性のない状態のまま残されることをもたらす場合がある(たとえば、サービスインスタンスに無効データが残されるかもしれず、または、サービスインスタンス用のドメインが起動されなかった変更を有するかもしれない)。ジョブをキャンセルすることは、サービスインスタンスが顧客によって使用可能になる前に、追加の手動の訂正アクションを必要とする場合がある。
【0044】
状態遷移の上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、異なるおよび/または他のタイプの状態遷移を認識できる。
【0045】
Javaクラウドサービスでのワークフローオーケストレータの例示的な使用
一実施形態によれば、上述のようなワークフローオーケストレータの特徴は、クラウドテナントで使用するためにカスタマイズ可能なあらゆるサービスで使用することができる。
【0046】
たとえば、
図6は、一実施形態に従ったJavaクラウドサービスパーソナリティ注入(personality injection)を示す。上述のように、一実施形態によれば、Javaクラウドサービスといったクラウドテナントで使用するためにカスタマイズ可能なサービスを含むクラウド環境を、そのサービスの新しいインスタンスについてユーザがオーダーを入れることを可能にするユーザインターフェイスに関連付けることができる。
【0047】
図6に示すように、一実施形態によれば、オーダーを受信すると、サービス(この例では、Javaクラウドサービス)は、その特定のサービスのためのプラットフォームインスタンスをインスタンス化するのに必要なタスクを行なうために、ワークフローオーケストレータを利用できる(すなわち、この例では、ワークフローオーケストレータはJavaサービスオーケストレータ300として作用する)。
【0048】
図6に示す例では、Javaクラウドサービスプラットフォームインスタンスを生成するために、最初に匿名アセンブリ322が、たとえば、匿名アセンブリを生成するSDIおよび/またはOVABから受信される。
【0049】
次に、テナントによって使用されるためのアセンブリを構成するために、パーソナリティ320が匿名アセンブリに注入される。一実施形態によれば、パーソナライゼーションは、たとえば、アイデンティティ管理(identity management:IDM)関連付け324、データベース関連付け326、およびエンタープライズ管理ディスカバリ328を行なうことを含んでいてもよい。これらのステップの各々は、追加のコンポーネントまたはシステムと適宜組合されて、ワークフローオーケストレータによって調整可能である。
【0050】
パーソナリティ注入の結果は、要求される特定のサービスに依存して、管理サーバ330、1つ以上の(たとえばWebLogic)アプリケーションサーバインスタンス332、334、ノードマネージャ336、およびエンタープライズ管理エージェント338を含む、パーソナライズされたアセンブリである。
【0051】
図7は、一実施形態に従ったJavaクラウドサービスアプリケーションデプロイメント処理を示す。
図7に示すように、一実施形態によれば、Javaクラウドサービスアプリケーションのデプロイメントは、ウィルススキャン342を行なうこと、もしくは、ホワイトリストスキャン346または他のデプロイメント関連の機能348を行なうことといった、追加の手順または機能を含んでいてもよい。これらのステップの各々も、追加のコンポーネントまたはシステムと適宜組合されて、ワークフローオーケストレータによって調整可能である。
【0052】
デプロイメントの結果、1つ以上のサーバインスタンスで使用するために、1つ以上のJavaクラウドサービステナントアプリケーション350、360をデプロイメントでき(この例では、テナントAは4つのアプリケーションサーバインスタンス351、352、352、354を有し、一方、テナントBは、2つのアプリケーションサーバインスタンス361、362を有する)、テナントアプリケーションの各々はパーソナライズされ、たとえば、ワークフローオーケストレータ、およびプラットフォームインスタンスの特定の構成に従って、ウィルスおよびホワイトリスト形態についてスキャンされ、または、他のやり方で準備されたものである。
【0053】
一実施形態によれば、システムはまた、コマンドラインインターフェイス372、Javaサービスコンソール374、JDeveloper376といった1つ以上のアプリケーションデプロイメントユーザインターフェイス370、または、ユーザが自分たちのアプリケーションを、この例ではJavaクラウドサービステナントにデプロイメントすることを可能にする他のインターフェイスを含んでいてもよい。
【0054】
Javaクラウドサービスでのワークフローオーケストレータの使用を示す上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、クラウドテナントで使用するためにカスタマイズ可能な異なるおよび/または他のタイプのサービスで使用することができる。
【0055】
ワークフローオーケストレータAPI
一実施形態によれば、ワークフローオーケストレータAPIは、以下の機能を含み得る:
ListJobs:一実施形態によれば、これは、1組のフィルタリング基準が与えられた、アクティブでかつ最近完了したジョブのリストを返す。サポート可能な基準パラメータのタイプの例は、GroupName、InstanceName、ApplicationName、LimitおよびStartを含む。デフォルトにより、ワークフローオーケストレータは、システムに提示された最新のたとえば100個のジョブを返す。この値を増加させるために、Limitクエリーオプションが使用可能であり、リストのための開始オフセットを特定するために、Startオプションが使用可能である;
DescribeJob:一実施形態によれば、これは、ジョブの識別情報および現在のステータスを要求するために使用される;
ListJobLogs:一実施形態によれば、これは、ジョブに関連付けられたログファイルの組をリストする;
FetchJobLog:一実施形態によれば、これは、ジョブに関連付けられたログファイルのコンテンツをダウンロードするために使用される。応答のコンテンツタイプは、ログファイルタイプに応じて変わる;
CancelJob:一実施形態によれば、これは、実行中のジョブをキャンセルするために使用される。実行中の現在のアクションがある場合、それはジョブが終了する前に完了するであろう;
PauseJob:一実施形態によれば、これは、実行中のジョブを一時停止する。一時停止されるジョブは、RUNNINGまたはRETRY_WAIT状態でなければならない;
ResumeJob/ResumeJobNextAction:一実施形態によれば、これは、以前に一時停止されたジョブを再開する。再開されるジョブは、PAUSED状態でなければならない。NextActionクエリーオプションが特定される場合には、ジョブはシーケンスの次のアクションで再開され、それが一時停止されたアクションをスキップするであろう。
【0056】
ワークフローオーケストレータAPI機能の上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータAPIは、異なるおよび/または他のタイプの機能を認識可能である。
【0057】
図8は、一実施形態に従った、プラットフォームインスタンスプロビジョニングのためのワークフローオーケストレータジョブシーケンス図の一例を示す。
【0058】
図8に示すように、プラットフォームインスタンスプロビジョニング311は、ワークフローオーケストレータAPIを使用して、生成プラットフォームインスタンスオペレーションを介して実現可能である。パブリッククラウドのコンテキストでは、サービスインスタンスは、ワークフローオーケストレータプラットフォームインスタンスに対応する。プラットフォームインスタンスには、このインスタンスに関連するすべての次のオペレーションで使用すべき一意識別子が割当てられる。生成プラットフォームインスタンスアクションに提供されたプラットフォームデプロイメント記述子は、テナントの加入要件を満たすようにプラットフォームインスタンスの構成を修正する特性が設定されることを可能にする。
【0059】
図9は、一実施形態に従った、アプリケーションインストールまたは更新のためのワークフローオーケストレータジョブシーケンス図の一例を示す。
【0060】
図9に示すように、アプリケーションインストールまたは更新は、インストールアプリケーションオペレーション312を介して実現可能であり、それは、アプリケーションアーカイブがパブリッククラウドのセキュリティ要件(たとえば、ウィルススキャン、またはホワイトリスト)を満たすことを確認後、実行中のWebLogicサーバにアプリケーションをデプロイメントする。インストールアプリケーションアクションに提供されたアプリケーションデプロイメント記述子は、テナントの加入要件を満たすようにアプリケーションの構成を修正する特性が設定されることを可能にする。
【0061】
図8および
図9に示す例示的なワークフローオーケストレータジョブシーケンス図は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、プラットフォームインスタンスプロビジョニングおよび/またはアプリケーションインストールを行なう他のタイプのジョブシーケンスを含む、異なるおよび/または他のタイプのジョブシーケンスを実行可能である。
【0062】
図10は、一実施形態に従った、ワークフローオーケストレーションコンポーネントを含む環境で使用するためのプロセスのフローチャートである。
図10に示すように、ステップ313で、クラウド環境と、そこで実行されるワークフローオーケストレータとを含む、1つ以上のコンピュータが提供される。
【0063】
ステップ314で、ワークフローマネージャ、またはプロキシコンポーネントは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニング、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信する。
【0064】
ステップ316で、ワークフローマネージャは、その内部ワークフローエンジン/エグゼキュータを介してワークフロージョブを非同期で実行し、ジョブは、任意の特定のPaaSワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位である。
【0065】
ステップ317で、ワークフローは、アセンブリビルダー/デプロイヤといった他のコンポーネントにアクセスするために、および/または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうために、任意で使用される。
【0066】
ステップ318で、ワークフローオーケストレータは、テナントおよび/または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および/または修正するために使用される。
【0067】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションを提供するシステムは、そこで実行されるクラウド環境を含む、1つ以上のコンピュータを提供するための手段と、その内部ワークフローエンジンを介してワークフロージョブを非同期で実行するワークフローマネージャを含む、PaaS(プラットフォーム・アズ・ア・サービス)オペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するための手段とを含み、ジョブは、任意の特定のPaaSワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位である。
【0068】
上述のようなシステムでは、ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するための手段を有するワークフロープロキシをさらに含む。
【0069】
上述のようなシステムでは、ワークフローは、アセンブリビルダー/デプロイヤといった他のコンポーネントにアクセスするための、および/または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうための手段を有する。
【0070】
上述のようなシステムでは、ワークフローオーケストレータは、テナントおよび/または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および/または修正するための手段を有する。
【0071】
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能な記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを1つ以上用いて、都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングが、この開示の教示に基づいて、熟練したプログラマらによって容易に準備可能である。
【0072】
いくつかの実施形態では、この発明は、この発明のプロセスのうちのいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令が格納された非一時的な記憶媒体またはコンピュータ読取可能な媒体である、コンピュータプログラム製品を含む。この記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含むあらゆるタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、もしくは、命令および/またはデータを格納するのに好適なあらゆるタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
【0073】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、包括的であるよう、または、この発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。実施形態は、この発明の原理およびその実際の応用を最良に説明するために選択され説明されており、それにより、当業者が、考えられる特定の用途に適したさまざまな実施形態に関する、およびさまざまな修正を有するこの発明を理解できるようにする。この発明の範囲は、特許請求の範囲およびその均等物によって定義されることが意図されている。