(57)【要約】      （修正有）【課題】クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法である。【解決手段】クラウド環境は、セルフサービス的で、弾力的に拡張可能で、かつ安全な態様でテナントに供給できる、アプリケーション、ミドルウェア、およびデータベース商品一式を提供する。クラウド環境はＰａａＳ環境を含んでいてもよく、仮想アセンブリ生成といったさまざまなサービスを提供する。ワークフローオーケストレータ２４２は、テナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、クラウド環境とＰａａＳ環境との間でオペレーションをオーケストレーションする。顧客はサービスを要求し、サービスをデプロイメントし、またはサービスをモニタリングするために、ＰａａＳ環境とやりとりすることができる。【選択図】図４
2019145129.tif 000002
【特許請求の範囲】
【請求項１】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムであって、
１つ以上のコンピュータを備え、当該コンピュータ上で実行されるクラウド環境を含んでおり、
ＰａａＳ（プラットフォーム・アズ・ア・サービス）オペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを備え、内部ワークフローエンジンを介してワークフロージョブを非同期で実行するワークフローマネージャを含んでおり、
ジョブは、任意の特定のＰａａＳワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位である、システム。
【請求項２】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項１に記載のシステム。
【請求項３】
前記ワークフローは、アセンブリビルダー／デプロイヤといった他のコンポーネントにアクセスするために、および／または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうために使用される、請求項１または２に記載のシステム。
【請求項４】
前記ワークフローオーケストレータは、テナントおよび／または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および／または修正するために使用される、請求項１〜３のいずれかに記載のシステム。
【請求項５】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションを提供する方法であって、
１つ以上のコンピュータを提供するステップを含み、当該コンピュータ上で実行されるクラウド環境を含む１つ以上のコンピュータを含んでおり、
ＰａａＳ（プラットフォーム・アズ・ア・サービス）オペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するステップを含み、内部ワークフローエンジンを介してワークフロージョブを非同期で実行するワークフローマネージャを含んでおり、
ジョブは、任意の特定のＰａａＳワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位である、方法。
【請求項６】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項５に記載の方法。
【請求項７】
前記ワークフローは、アセンブリビルダー／デプロイヤといった他のコンポーネントにアクセスするために、および／または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうために使用される、請求項５または６に記載の方法。
【請求項８】
前記ワークフローオーケストレータは、テナントおよび／または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および／または
修正するために使用される、請求項５〜７のいずれか１項に記載の方法。
【請求項９】
命令が格納された非一時的なコンピュータ読取可能な媒体であって、前記命令は、１つ以上のコンピュータによって読取られ、実行されると、前記１つ以上のコンピュータに
１つ以上のコンピュータに、当該コンピュータ上で実行されるクラウド環境を提供するステップを実行させ、
ＰａａＳ（プラットフォーム・アズ・ア・サービス）オペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するステップを実行させ、内部ワークフローエンジンを介してワークフロージョブを非同期で実行するワークフローマネージャを含んでおり、
ジョブは、任意の特定のＰａａＳワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位である、非一時的なコンピュータ読取可能な媒体。
【請求項１０】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項９に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１１】
前記ワークフローは、アセンブリビルダー／デプロイヤといった他のコンポーネントにアクセスするために、および／または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうために使用される、請求項９または１０に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１２】
前記ワークフローオーケストレータは、テナントおよび／または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および／または修正するために使用される、請求項９〜１１のいずれか１項に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１３】
１つ以上のプロセッサに、請求項５〜８のいずれか１項に記載の方法を実行させるための、プログラム。
【請求項１４】
１つ以上のコンピュータシステムによって実行されると、前記１つ以上のコンピュータシステムに、請求項５〜８のいずれかに記載の方法を行なわせるマシン読取可能な命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対して異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【０００２】
発明の分野
この発明の実施形態は、一般にクラウドコンピューティング環境に関し、特にクラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法に関する。
【背景技術】
【０００３】
背景
「クラウドコンピューティング」という用語は一般に、コンピュータネットワーク、サーバ、ソフトウェアアプリケーション、およびサービスといったコンピューティングリソースの共有のプールへのオンデマンドのアクセスを可能にし、最小の管理努力またはサービスプロバイダのやりとりでリソースの迅速なプロビジョニング（provisioning）および解放を可能にする、コンピューティングモデルを説明するために使用される。
【０００４】
クラウドコンピューティング環境（クラウド環境、またはクラウドと呼ばれることもある）は、異なる要件に最良に適合するように、さまざまな異なるやり方で実装可能である。たとえば、パブリッククラウド環境では、根底にあるコンピューティングインフラストラクチャは、他の組織または一般社会にそのクラウドサービスを供する組織によって所有されている。対照的に、プライベートクラウド環境は一般に、もっぱら単一の組織によって、または単一の組織内で使用するよう意図されている。コミュニティクラウドは、コミュニティ内のいくつかの組織によって共有されるよう意図されており、一方、ハイブリッドクラウドは、データおよびアプリケーションポータビリティによってともに結合された２種類以上のクラウド（たとえば、プライベート、コミュニティ、またはパブリック）を含む。
【０００５】
一般に、クラウドコンピューティングモデルは、以前は組織自体の情報技術部門によって提供されたかもしれない責務のうちのいくつかが、代りにクラウド環境内のサービス層として、（クラウドの性質がパブリックかプライベートかに従って、組織の内部または外部の）消費者によって使用されるために供給されることを可能にする。各クラウドサービス層によって、または各クラウドサービス層内で提供されるコンポーネントまたは特徴の正確な定義は、特定の実現化例に依存して変わり得るが、共通の例は以下を含む：
ソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）  消費者は
、クラウドインフラストラクチャ上で実行中のソフトウェアアプリケーションを使用し、一方、ＳａａＳプロバイダは、根底にあるクラウドインフラストラクチャおよびアプリケーションを管理し、または制御する；
プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）  消費
者は、自分自身のアプリケーションを開発し、デプロイメントし（deploy）、および他のやり方で制御するために、ＰａａＳプロバイダによってサポートされたソフトウェアプログラミング言語および開発ツールを使用でき、一方、ＰａａＳプロバイダは、クラウド環境の他の局面（すなわち、ランタイム実行環境より下のすべて）を管理し、または制御す
る；
インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：Ｉａａ
Ｓ）  消費者は、任意のソフトウェアアプリケーション、および／またはプロビジョニング処理、ストレージ、ネットワーク、および他の基本コンピューティングリソースをデプロイメントし実行することができ、一方、ＩａａＳプロバイダは、根底にある物理的なクラウドインフラストラクチャ（すなわち、オペレーティングシステム層より下のすべて）を管理し、または制御する。
【０００６】
上述の例は、この発明の実施形態を一般に使用できる環境のいくつかのタイプを説明するために提供されている。さまざまな実施形態によれば、ここに説明されるシステムおよび方法は、他のタイプのクラウドまたはコンピューティング環境でも使用できる。
【発明の概要】
【課題を解決するための手段】
【０００７】
概要
ここに説明されるのは、クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法である。オラクル・パブリック・クラウド（Oracle Public Cloud：ＯＰＣ）といったクラウド環境は、セルフサービス的で
、弾力的に拡張可能で、かつ安全な態様でテナントに供給できる、アプリケーション、ミドルウェア、およびデータベース商品一式を提供する。一実施形態によれば、クラウド環境はプラットフォーム・アズ・ア・サービス（ＰａａＳ）環境を含んでいてもよく、それは、仮想アセンブリ生成といったさまざまなサービスを提供する。ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメント（deployment）を調整することによって、クラウド環境とＰａａＳ環境との間でオペレーションをオーケストレーションするために使用することができる。顧客は、たとえば、サービスを要求し、サービスをデプロイメントし、またはサービスをモニタリングするために、ＰａａＳ環境とやりとりすることができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に従った、サービス層を含むクラウドコンピューティング環境を示す図である。
【図２】一実施形態に従った環境をさらに示す図である。
【図３】一実施形態に従った、Ｊａｖａ（登録商標）クラウドサービスコンポーネントを含む環境を示す図である。
【図４】一実施形態に従ったワークフローオーケストレータを示す図である。
【図５】一実施形態に従った、ワークフローオーケストレータ内の例示的なジョブステータスを示す図である。
【図６】一実施形態に従ったＪａｖａクラウドサービスパーソナリティ注入を示す図である。
【図７】一実施形態に従ったＪａｖａクラウドサービスデプロイメント処理を示す図である。
【図８】一実施形態に従った、プラットフォームインスタンスプロビジョニングのためのワークフローオーケストレータジョブシーケンス図の一例を示す図である。
【図９】一実施形態に従った、アプリケーションインストールまたは更新のためのワークフローオーケストレータジョブシーケンス図の一例を示す図である。
【図１０】一実施形態に従った、ワークフローオーケストレーションコンポーネントを含む環境で使用するためのプロセスのフローチャートである。
【発明を実施するための形態】
【０００９】
詳細な説明
上述のように、クラウドコンピューティング環境（クラウド環境、またはクラウド）は、異なる要件に最良に適合するように、さまざまな異なるやり方で、たとえば、パブリッククラウド、プライベートクラウド、コミュニティクラウド、またはハイブリッドクラウドとして実装可能である。クラウドコンピューティングモデルは、以前は組織自体の情報技術部門によって提供されたかもしれない責務のうちのいくつかが、代りにクラウド環境内のサービス層として、（クラウドの性質がパブリックかプライベートかに従って、組織の内部または外部の）消費者によって使用されるために供給されることを可能にする。
【００１０】
ここに説明されるのは、クラウドコンピューティング環境をサポートするためにインフラストラクチャ、プラットフォーム、および／またはアプリケーションを供給する際に使用できる、さまざまなハードウェアおよび／またはソフトウエアコンポーネントおよび特徴である。さまざまな実施形態によれば、エンタープライズグレードであり、アプリケーションを開発してデプロイメントするためのプラットフォームを可能にし、現代のアーキテクチャおよび使用事例上に構築された１組のエンタープライズアプリケーションを提供し、および／または柔軟な消費選択を提供する、クラウドコンピューティング環境を提供するために、システムは、オラクル・エクサロジック（Exalogic）および／またはエクサデータ（Exadata）マシン、ウェブロジック（WebLogic）および／またはフュージョンミ
ドルウェア（Fusion Middleware）といったハードウェアおよびソフトウェア、ならびに
他のハードウェアおよび／またはソフトウエアコンポーネントおよび特徴も利用できる。
【００１１】
図１は、一実施形態に従った、サービス層を含むクラウドコンピューティング環境を示す。図１に示すように、一実施形態によれば、クラウドコンピューティング環境（クラウド環境、またはクラウド）１００は一般に、１つ以上のインフラストラクチャ・アズ・ア・サービス（ＩａａＳ）層１１０、プラットフォーム・アズ・ア・サービス（ＰａａＳ）層１６０、および／またはソフトウェア・アズ・ア・サービス（ＳａａＳ）層１７０の組合せを含んでいてもよく、それらは各々、クラウド環境内のサービス層として供給されており、使用中の特定のクラウドコンピューティングモデルに依存して、組織の内部または外部の消費者によって使用可能である。
【００１２】
一実施形態によれば、クラウドコンピューティング環境は、１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、マイクロプロセッサ、メモリおよび／またはコンピュータ読取可能な記憶媒体、を含むシステムとして実装可能であり、たとえばオラクルExalogic、Exadata、または同様のマシンによって提供さ
れる、コンピュータハードウェア、ソフトウェア、およびリソースがある。
【００１３】
図１にさらに示すように、一実施形態によれば、クラウドコンピューティング環境は、共有イネーブルメントおよび管理インフラストラクチャ１２０を含んでいてもよく、それは以下により詳細に説明され、さまざまなサービス層をサポートするために使用可能なイネーブルメントおよび管理ツールを提供する。
【００１４】
図１に示す例は、この発明の実施形態を一般に使用できる、あるタイプのクラウドコンピューティング環境の例示として提供されている。さまざまな実施形態によれば、ここに説明されるシステムおよび方法は、異なるおよび／または他のタイプのクラウドまたはコンピューティング環境でも使用できる。
【００１５】
図２は、一実施形態に従った環境をさらに示す。図２に示すように、一実施形態によれば、ＩａａＳ層、ＰａａＳ層、および／またはＳａａＳ層の各々は一般に、さまざまなコンポーネントを含んでいてもよい。たとえば、一実施形態によれば、ＩａａＳ層は、共有データベースハードウェア（たとえばExadataマシン）１１２、および／または共有アプ
リケーションサーバハードウェア（たとえばExalogicマシン）を含んでいてもよい。ＰａａＳ層は、データベースサービス１６２、アプリケーションサービス１６４、および／またはウェブセンター（WebCenter）サービス１６６などの１つ以上のＰａａＳサービスを
含んでいてもよい。ＳａａＳ層は、１つ以上のユーザ／クラウドインターフェイス１８０によってアクセス可能である、エンタープライズアプリケーション（たとえば、オラクルフュージョンＳａａＳ）１７２、および／または、ＩＳＶまたはカスタムアプリケーション１７６などのさまざまなＳａａＳサービスを含んでいてもよい。
【００１６】
上述のように、一実施形態によれば、クラウドコンピューティング環境は、共有イネーブルメントおよび管理インフラストラクチャも含んでいてもよい。たとえば、図２に示すように、共有イネーブルメントおよび管理インフラストラクチャは、１つ以上のアイデンティティ管理１２２、データ統合１２４、複製（たとえば、オラクル・ゴールデンゲート（GoldenGate））１２６、仮想アセンブリビルダー１２８、システムプロビジョニング１３０、テナント管理１３２、および／またはエンタープライズマネージャ１３４のコンポーネントを含んでいてもよい。
【００１７】
図２にさらに示すように、一実施形態によれば、共有イネーブルメントおよび管理インフラストラクチャは、ウィルススキャン１４２、安全なファイル転送１４４、ＨＴＴＰルーティング１４６、ホワイトリスト１４８、通知１５０、安全なバックアップ１５２、統合ゲートウエイ１５４、および／または使用＆課金１５６コンポーネントといった他のコンポーネントも含んでいてもよい。
【００１８】
図２に示す例は、クラウドコンピューティング環境に、または共有イネーブルメントおよび管理インフラストラクチャ内に含まれ得るいくつかのタイプのコンポーネントの例示として提供されている。他の実施形態によれば、異なるおよび／または他のタイプのあるいは構成のコンポーネントが含まれていてもよい。
【００１９】    ワークフローオーケストレータ  （公序良俗違反につき、不掲載）といったクラウド環境は、セルフサービス的で、弾力的に拡張可能で、かつ安全な態様でテナントに供給できる、アプリケーション、ミドルウェア、およびデータベース商品一式を提供する。
【００２０】
一実施形態によれば、クラウド環境はプラットフォーム・アズ・ア・サービス（ＰａａＳ）環境とやりとりしてもよく、それは、仮想アセンブリ生成といったさまざまなサービスを提供する。ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、クラウド環境とＰａａＳ環境との間でオペレーションをオーケストレーションするために使用することができ、共有イネーブルメントおよび管理インフラストラクチャの使用を含む。
【００２１】
一実施形態によれば、ワークフローオーケストレータは、プロビジョニングまたはデプロイメントのそのオーケストレーション中に、たとえば、ウィルスがないかアプリケーションをスキャンすること、または、デプロイメント中のアプリケーションを、受入れ可能なＡＰＩコールのホワイトリストと比較することといった、追加の手順または機能を行なうことができる。ワークフローオーケストレータはまた、プラットフォームインスタンスの生成および管理も可能にすることができ、それらは各々、１つ以上のアプリケーションサーバ（たとえば、WebLogicサーバ）インスタンスを、実行中のアプリケーションにとって有用な他のリソース（たとえば、データベースサービス）とともに含んでいてもよく、共有ハードウェアリソース上で実行可能である。
【００２２】
一実施形態によれば、クラウドユーザがその後やりとりできる、ファイアウォールの外側のパブリックアクセスポイントとして作用するプロキシを提供することにより、ワークフローオーケストレータはまた、クラウドユーザらが、自分たちのプラットフォームインスタンスを、そこにある任意のアプリケーションサーバインスタンスおよび他のリソースとともに管理することを可能にする。
【００２３】
図３は、一実施形態に従った、Ｊａｖａクラウドサービスコンポーネントを含む環境を示す。図３に示すように、一実施形態によれば、（Ｊａｖａクラウドサービス２００といった）クラウドテナントで使用するためにカスタマイズ可能な１つ以上のサービスを含むクラウド環境を、ユーザ２２２がそのサービスの新しいインスタンスについてオーダー２２４を入れること、および／または既存のサービスインスタンスを管理することを可能にするユーザインターフェイス２２０に、関連付けることができる。
【００２４】
一実施形態によれば、サービスの新しいインスタンスのオーダリングは、オーダリング段階およびプロビジョニング段階の双方を含んでいてもよい。
【００２５】
オーダリング段階中、ユーザはオーダーを入れる（２２６）ことができ、それは最初、ストアデータベース２２８に記録され、そこでそれは準備され（２３０）、次にオーダー管理コンポーネント２３２に提供される。ユーザが自分たちのオーダーの詳細を検証した（２３３）後で、オーダーは処理可能であり（２３４）、一実施形態によれば、プロビジョニング（２４０）のためにオーダーをテナント管理コンポーネントに渡すことを含む。オーダープロセスのさまざまな段階で、ユーザは、自分たちの現在のオーダーステータスについて通知を受ける（２３８）ことができる。
【００２６】
次に、プロビジョニング段階中、システムは、一実施形態によればサービスデプロイメントインフラストラクチャ（service deployment infrastructure：ＳＤＩ）２４１とワ
ークフローオーケストレータ２４２とを含む１つ以上のシステムプロビジョニングコンポーネントに、プロビジョニングプロセスの残りのステップをオーケストレーションするよう、要求することができる。
【００２７】
図４は、一実施形態に従ったワークフローオーケストレータを示す。上述のように、ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、オペレーションをオーケストレーションするために使用することができる。
【００２８】
図４に示すように、一実施形態によれば、ワークフローオーケストレータ２４２は、ワークフロープロキシコンポーネント２９２と、ワークフローマネージャコンポーネント２９３とを含んでいてもよく、プロビジョニングを行ない、サービスを何らかのやり方で（たとえば、それに別のサービスを関連付けて）修正するかまたは他のクラウドオペレーションを修正するために、およびワークフロージョブを非同期で実行するために、テナントプロビジョニングもしくは他のコンポーネントまたはシステムから要求を受信できる。
【００２９】
一実施形態によれば、各ジョブはワークフローオーケストレータによって、任意の特定のＰａａＳワークフローに関連付けられた１つ以上のアクションを実行する非同期プロセスとして認識される。各アクションは、パブリッククラウドランタイム環境内でリソースを生成および管理するよう設計されたワークのアトミック単位であると考えられる。アクションはオペレーションへとグループ化可能であり、オペレーションは、サービスインスタンスの生成、またはアプリケーションのデプロイメントといったワークフローオーケストレータのさまざまな機能的な能力に対応する。ジョブは次に、ワークフローの一部とし
て、単一のオペレーションのためのアクションを実行する。
【００３０】
一実施形態によれば、アクションは、ワークフローオーケストレータ・サービス・プロバイダ・インターフェイス（service provider interface：ＳＰＩ）を拡張するＪａｖａクラスとして実装できる。ワークフローオーケストレータによって実装されたクラスは、ランタイム情報へのアクセス、およびアクションを実装するのに必要なサービスを提供する。
【００３１】
一実施形態によれば、サービスプラットフォームは、任意の特定のクラスのサービスによってサポートされるオペレーションおよびアクションの記述である。たとえば、WebLogicサービスプラットフォームは、WebLogic環境のコンテキスト内で、ワークフローオーケストレータサービスおよびアプリケーションライフサイクルオペレーションのすべてを実装するために必要とされる、オペレーションおよびアクションを定義する。他の／異なるタイプのサービスプラットフォームの各々を、それ自体の／異なるタイプのアクションに関連付けることができ、アクションは、ワークフローオーケストレータの共有構成に格納されたＸＭＬ文書を介して構成可能である。
【００３２】
一実施形態によれば、ワークフローマネージャはワークフローオーケストレータへのエントリポイントであり、一実施形態によればＲＥＳＴ  ＡＰＩとして提供可能なワークフローオーケストレータ・アプリケーション・プログラム・インターフェイス（application program interface：ＡＰＩ）を介して、ＰａａＳオペレーションへの安全なアクセス
を提供する。内部で、ワークフローマネージャは、ワークフローエンジン／エグゼキュータ２９４を使用してジョブ実行を制御し、ワークフローオーケストレーションデータベース２９６におけるジョブおよび他のシステム状態を追跡する。ワークフローオーケストレーションデータベースはまた、プラットフォームインスタンス、デプロイメントプラン、アプリケーション、Weblogicドメイン、および警告といった、ドメインエンティティを追跡するのに必要とされる情報も含んでいてもよい。
【００３３】
各ジョブは、たとえば、Ｊａｖａクラウドサービスプラットフォームインスタンスのプロビジョニングといった、任意の特定のＰａａＳワークフローに固有のアクションのシーケンスである。アクションは典型的には順次行なわれ、いずれかのステップでの失敗はジョブ全体の失敗をもたらす。サービスプラットフォーム構成に依存して、ワークフローアクションの中には、エンタープライズマネージャまたはウィルススキャンサービスといったワークフローに関連する外部システムに、アクションを委任するものがある場合がある。
【００３４】
一実施形態によれば、パブリッククラウドのコンテキスト内で、ワークフローマネージャは、プロビジョニングおよびデプロイメントオペレーションをそれぞれ駆動するために、テナントプロビジョニング２９７またはテナントコンソール２９８コンポーネントといったあるクライアントによって、そのワークフローオーケストレータＡＰＩを介して直接アクセスされてもよい（２９９）。
【００３５】
他のクライアント、たとえばＪディベロッパー（JDeveloper）またはネットビーンズ（NetBeans）ＩＤＥ３０１、もしくは他のコマンドラインインターフェイス（command line
interface：ＣＬＩ）３０２も、プラットフォームインスタンス上でライフサイクルオペレーションにアクセスするために使用可能である。しかしながら、さらなるセキュリティのために、これらのクライアントは典型的には、ワークフロープロキシを介してワークフローマネージャにアクセスするであろう。たとえば、一実施形態によれば、ワークフローマネージャ（そのＯＨＳおよびアプリケーションサーバインスタンスを含む）は、ファイアウォールの内側で実行されるWebLogicクラスタにおいてホスト可能であり、一方、ワー
クフロープロキシ（そのＯＨＳおよびアプリケーションサーバインスタンスを含む）は、ファイアウォールの外側のパブリックアクセスポイントとして提供可能である。プロキシによって受信された要求は次に、ワークフローマネージャに転送される。
【００３６】
一実施形態によれば、サービスプラットフォーム構成に依存して、ワークフローオーケストレータは、ワークフローを実行するために、追加のコンポーネントまたはシステムを利用できる。たとえば、Ｊａｖａクラウドサービスのコンテキストでは、そのような追加のコンポーネントまたはシステムは、以下のものを含み得る：
ウィルススキャン３０４：ユーザのアプリケーションがクラウド環境にデプロイメントされる前に、そのアプリケーションを、ウィルススキャンコンポーネントを使用して、ウィルスがないかスキャンできる；
サービスデプロイメントインフラストラクチャ（ＳＤＩ）３０５：ＳＤＩコンポーネントは、アセンブリのデプロイメントまたはデプロイメント解除、もしくは機器の拡張に使用するために、ＯＶＡＢおよびＯＶＭといったアセンブリビルダー製品へのアクセスを提供できる；
顧客関係管理（Customer Relationship Management：ＣＲＭ）３１０：要求されると、ワークフローは、ＪａｖａクラウドサービスなどのサービスをＣＲＭインスタンスに関連付けることができる；
アイデンティティ管理（Identity Management：ＩＤＭ）３１２：ワークフローオー
ケストレータは、あるプラットフォームインスタンスを適切に構成するために、アイデンティティ管理コンポーネント、たとえば、テナントおよびそれらのサービス加入に関する情報を含むサービスデータベースを使用できる。
【００３７】
上述の例は、例示の目的のために提供されている。他の実施形態および他のワークフローによれば、任意の特定のワークフローを実行するために、追加のもしくは他のコンポーネントまたはシステムも使用可能である。
【００３８】
図４にさらに示すように、一実施形態によれば、ワークフローオーケストレータは、プラットフォームインスタンス３０６のプロビジョニングを調整するために使用可能である。
【００３９】
たとえば、Ｊａｖａクラウドサービスのコンテキストでは、結果として生じるプラットフォームインスタンスは、ユーザのオーダーに従う所与のテナントに対して、WebLogicまたは他のアプリケーションサーバサービスを提供するために必要とされるそれらのリソースのすべてを含み、リソースは、たとえば、インスタンスデータベース３０８、管理サーバ３０９、および１つ以上のアプリケーションサーバを含むであろう。
【００４０】
一旦インスタンス化され、クラウド環境にデプロイメントされると、テナントユーザおよび／またはそれらのアプリケーションは次に、それらのプラットフォームインスタンス３１５にアクセスできる。異なるタイプのアクセスが提供可能である。一実施形態によれば、管理（たとえば、アプリケーションのモニタリング、デプロイメント／デプロイメント解除）を、プロキシを通してテナントによって行なうことができる。プロビジョニングされたインスタンス上にテナントがデプロイメントしたアプリケーションは、テナントによって所有されており、たとえば、それらのＣＲＭインスタンスへのカスタムアクセスの提供といった異なる目的のために、何であってもよい。これは、認証および認可のためにたとえばウェブゲート３１４を使用して、テナントの顧客によって、サービス専用のＵＲＬを通して提供可能である。
【００４１】
図５は、一実施形態に従った、ワークフローオーケストレータ内の例示的なジョブステータスを示す。ジョブが進行するにつれて、それはいくつかの状態を遷移する。ジョブに
関する現在の状態および他の情報は、ワークフローオーケストレータＡＰＩを使用してリアルタイムで問い合わせることができる。一例として、図５に示すように、一実施形態によれば、ワークフロー３１８内でのジョブの実行中に起こり得る有効な状態遷移は、以下を含む：
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状態は、アクションが回復不能の失敗に遭遇して中止されたことを示す終止状態である。
【００４２】
一実施形態によれば、アクションは、SUCCESS、SKIPPED、FAILED、またはFAILED_RETRYという４つの起こり得る結果のうちの１つを返すかもしれない。SUCCESSおよびSKIPPEDは成功した結果であり、一方、FAILEDおよびFAILED_RETRYはエラー状態を示す。FAILED_RETRYというアクションは、それが成功するまで、または特定の再試行限界に達するまで、アクションの自動再試行をもたらす場合がある。アクションが再試行の資格を得るには、それは、そのサービスプラットフォーム定義において再試行を可能にするように構成されなければならず、アクションはFAILED_RETRY結果を返さなければならない。この状況では、現在のジョブの状態は、ワークフローオーケストレーションデータベースおよび実行スレッドが終了するまで存在するであろう。再試行タイムアウトに達すると、ジョブは再提示され、そこでそれは、失敗したアクションを実行することを試みるであろう。再試行タイムアウトおよび再試行限界は双方とも、各アクションベースで構成されており、アクションが再試行限界に達すると、それは、ジョブがPAUSED状態に移動することをもたらすであろう。
【００４３】
一実施形態によれば、RETRY_WAIT状態にある間、ジョブは一時停止される場合があり、オペレータが手動の訂正アクションを講じることを可能にする。この場合、オペレータは、失敗の時点でジョブを再開する（失敗したアクションを再試行する）か、またはシーケンスの次のアクションでジョブを再開する選択肢を有しており、オペレータがアクションによって行なわれていたであろうステップを手動で完了したことを意味する。非終止状態のジョブは、いつでもキャンセルされてもよい。現在実行中のアクションが完了し、その時点でスレッドは終了し、ジョブのためにそれ以上のアクションは講じられないであろう。ジョブをキャンセルすることは、同じサービスインスタンスに対するさらなるオペレーションを非ブロック化するものの、それは、システムが一貫性のない状態のまま残される
ことをもたらす場合がある（たとえば、サービスインスタンスに無効データが残されるかもしれず、または、サービスインスタンス用のドメインが起動されなかった変更を有するかもしれない）。ジョブをキャンセルすることは、サービスインスタンスが顧客によって使用可能になる前に、追加の手動の訂正アクションを必要とする場合がある。
【００４４】
状態遷移の上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、異なるおよび／または他のタイプの状態遷移を認識できる。
【００４５】
Ｊａｖａクラウドサービスでのワークフローオーケストレータの例示的な使用
一実施形態によれば、上述のようなワークフローオーケストレータの特徴は、クラウドテナントで使用するためにカスタマイズ可能なあらゆるサービスで使用することができる。
【００４６】
たとえば、図６は、一実施形態に従ったＪａｖａクラウドサービスパーソナリティ注入（personality injection）を示す。上述のように、一実施形態によれば、Ｊａｖａクラ
ウドサービスといったクラウドテナントで使用するためにカスタマイズ可能なサービスを含むクラウド環境を、そのサービスの新しいインスタンスについてユーザがオーダーを入れることを可能にするユーザインターフェイスに関連付けることができる。
【００４７】
図６に示すように、一実施形態によれば、オーダーを受信すると、サービス（この例では、Ｊａｖａクラウドサービス）は、その特定のサービスのためのプラットフォームインスタンスをインスタンス化するのに必要なタスクを行なうために、ワークフローオーケストレータを利用できる（すなわち、この例では、ワークフローオーケストレータはＪａｖａサービスオーケストレータ３００として作用する）。
【００４８】
図６に示す例では、Ｊａｖａクラウドサービスプラットフォームインスタンスを生成するために、最初に匿名アセンブリ３２２が、たとえば、匿名アセンブリを生成するＳＤＩおよび／またはＯＶＡＢから受信される。
【００４９】
次に、テナントによって使用されるためのアセンブリを構成するために、パーソナリティ３２０が匿名アセンブリに注入される。一実施形態によれば、パーソナライゼーションは、たとえば、アイデンティティ管理（identity management：ＩＤＭ）関連付け３２４
、データベース関連付け３２６、およびエンタープライズ管理ディスカバリ３２８を行なうことを含んでいてもよい。これらのステップの各々は、追加のコンポーネントまたはシステムと適宜組合されて、ワークフローオーケストレータによって調整可能である。
【００５０】
パーソナリティ注入の結果は、要求される特定のサービスに依存して、管理サーバ３３０、１つ以上の（たとえばWebLogic）アプリケーションサーバインスタンス３３２、３３４、ノードマネージャ３３６、およびエンタープライズ管理エージェント３３８を含む、パーソナライズされたアセンブリである。
【００５１】
図７は、一実施形態に従ったＪａｖａクラウドサービスアプリケーションデプロイメント処理を示す。図７に示すように、一実施形態によれば、Ｊａｖａクラウドサービスアプリケーションのデプロイメントは、ウィルススキャン３４２を行なうこと、もしくは、ホワイトリストスキャン３４６または他のデプロイメント関連の機能３４８を行なうことといった、追加の手順または機能を含んでいてもよい。これらのステップの各々も、追加のコンポーネントまたはシステムと適宜組合されて、ワークフローオーケストレータによって調整可能である。
【００５２】
デプロイメントの結果、１つ以上のサーバインスタンスで使用するために、１つ以上の
Ｊａｖａクラウドサービステナントアプリケーション３５０、３６０をデプロイメントでき（この例では、テナントＡは４つのアプリケーションサーバインスタンス３５１、３５２、３５２、３５４を有し、一方、テナントＢは、２つのアプリケーションサーバインスタンス３６１、３６２を有する）、テナントアプリケーションの各々はパーソナライズされ、たとえば、ワークフローオーケストレータ、およびプラットフォームインスタンスの特定の構成に従って、ウィルスおよびホワイトリスト形態についてスキャンされ、または、他のやり方で準備されたものである。
【００５３】
一実施形態によれば、システムはまた、コマンドラインインターフェイス３７２、Ｊａｖａサービスコンソール３７４、JDeveloper３７６といった１つ以上のアプリケーションデプロイメントユーザインターフェイス３７０、または、ユーザが自分たちのアプリケーションを、この例ではＪａｖａクラウドサービステナントにデプロイメントすることを可能にする他のインターフェイスを含んでいてもよい。
【００５４】
Ｊａｖａクラウドサービスでのワークフローオーケストレータの使用を示す上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、クラウドテナントで使用するためにカスタマイズ可能な異なるおよび／または他のタイプのサービスで使用することができる。
【００５５】
ワークフローオーケストレータＡＰＩ
一実施形態によれば、ワークフローオーケストレータＡＰＩは、以下の機能を含み得る：
ListJobs：一実施形態によれば、これは、１組のフィルタリング基準が与えられた、アクティブでかつ最近完了したジョブのリストを返す。サポート可能な基準パラメータのタイプの例は、GroupName、InstanceName、ApplicationName、LimitおよびStartを含む。デフォルトにより、ワークフローオーケストレータは、システムに提示された最新のたとえば１００個のジョブを返す。この値を増加させるために、Limitクエリーオプションが
使用可能であり、リストのための開始オフセットを特定するために、Startオプションが
使用可能である；
DescribeJob：一実施形態によれば、これは、ジョブの識別情報および現在のステー
タスを要求するために使用される；
ListJobLogs：一実施形態によれば、これは、ジョブに関連付けられたログファイル
の組をリストする；
FetchJobLog：一実施形態によれば、これは、ジョブに関連付けられたログファイル
のコンテンツをダウンロードするために使用される。応答のコンテンツタイプは、ログファイルタイプに応じて変わる；
CancelJob：一実施形態によれば、これは、実行中のジョブをキャンセルするために
使用される。実行中の現在のアクションがある場合、それはジョブが終了する前に完了するであろう；
PauseJob：一実施形態によれば、これは、実行中のジョブを一時停止する。一時停止されるジョブは、RUNNINGまたはRETRY_WAIT状態でなければならない；
ResumeJob/ResumeJobNextAction：一実施形態によれば、これは、以前に一時停止さ
れたジョブを再開する。再開されるジョブは、PAUSED状態でなければならない。NextActionクエリーオプションが特定される場合には、ジョブはシーケンスの次のアクションで再開され、それが一時停止されたアクションをスキップするであろう。
【００５６】
ワークフローオーケストレータＡＰＩ機能の上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータＡＰＩは、異なるおよび／または他のタイプの機能を認識可能である。
【００５７】
図８は、一実施形態に従った、プラットフォームインスタンスプロビジョニングのためのワークフローオーケストレータジョブシーケンス図の一例を示す。
【００５８】
図８に示すように、プラットフォームインスタンスプロビジョニング３１１は、ワークフローオーケストレータＡＰＩを使用して、生成プラットフォームインスタンスオペレーションを介して実現可能である。パブリッククラウドのコンテキストでは、サービスインスタンスは、ワークフローオーケストレータプラットフォームインスタンスに対応する。プラットフォームインスタンスには、このインスタンスに関連するすべての次のオペレーションで使用すべき一意識別子が割当てられる。生成プラットフォームインスタンスアクションに提供されたプラットフォームデプロイメント記述子は、テナントの加入要件を満たすようにプラットフォームインスタンスの構成を修正する特性が設定されることを可能にする。
【００５９】
図９は、一実施形態に従った、アプリケーションインストールまたは更新のためのワークフローオーケストレータジョブシーケンス図の一例を示す。
【００６０】
図９に示すように、アプリケーションインストールまたは更新は、インストールアプリケーションオペレーション３１２を介して実現可能であり、それは、アプリケーションアーカイブがパブリッククラウドのセキュリティ要件（たとえば、ウィルススキャン、またはホワイトリスト）を満たすことを確認後、実行中のWebLogicサーバにアプリケーションをデプロイメントする。インストールアプリケーションアクションに提供されたアプリケーションデプロイメント記述子は、テナントの加入要件を満たすようにアプリケーションの構成を修正する特性が設定されることを可能にする。
【００６１】
図８および図９に示す例示的なワークフローオーケストレータジョブシーケンス図は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、プラットフォームインスタンスプロビジョニングおよび／またはアプリケーションインストールを行なう他のタイプのジョブシーケンスを含む、異なるおよび／または他のタイプのジョブシーケンスを実行可能である。
【００６２】
図１０は、一実施形態に従った、ワークフローオーケストレーションコンポーネントを含む環境で使用するためのプロセスのフローチャートである。図１０に示すように、ステップ３１３で、クラウド環境と、そこで実行されるワークフローオーケストレータとを含む、１つ以上のコンピュータが提供される。
【００６３】
ステップ３１４で、ワークフローマネージャ、またはプロキシコンポーネントは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニング、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信する。
【００６４】
ステップ３１６で、ワークフローマネージャは、その内部ワークフローエンジン／エグゼキュータを介してワークフロージョブを非同期で実行し、ジョブは、任意の特定のＰａａＳワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位である。
【００６５】
ステップ３１７で、ワークフローは、アセンブリビルダー／デプロイヤといった他のコンポーネントにアクセスするために、および／または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうために、任意で使用される。
【００６６】
ステップ３１８で、ワークフローオーケストレータは、テナントおよび／または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および／または修正するために使用される。
【００６７】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションを提供するシステムは、そこで実行されるクラウド環境を含む、１つ以上のコンピュータを提供するための手段と、その内部ワークフローエンジンを介してワークフロージョブを非同期で実行するワークフローマネージャを含む、ＰａａＳ（プラットフォーム・アズ・ア・サービス）オペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するための手段とを含み、ジョブは、任意の特定のＰａａＳワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位である。
【００６８】
上述のようなシステムでは、ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するための手段を有するワークフロープロキシをさらに含む。
【００６９】
上述のようなシステムでは、ワークフローは、アセンブリビルダー／デプロイヤといった他のコンポーネントにアクセスするための、および／または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうための手段を有する。
【００７０】
上述のようなシステムでは、ワークフローオーケストレータは、テナントおよび／または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および／または修正するための手段を有する。
【００７１】
この発明は、この開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリ、および／またはコンピュータ読取可能な記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを１つ以上用いて、都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングが、この開示の教示に基づいて、熟練したプログラマらによって容易に準備可能である。
【００７２】
いくつかの実施形態では、この発明は、この発明のプロセスのうちのいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令が格納された非一時的な記憶媒体またはコンピュータ読取可能な媒体である、コンピュータプログラム製品を含む。この記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含むあらゆるタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム（分子メモリＩＣを含む）、もしくは、命令および／またはデータを格納するのに好適なあらゆるタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
【００７３】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、包括的であるよう、または、この発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。実施形態は、この発明の原理およびその実際の応用を最良に説明するために選択され説明されており、それにより、当業者が、考えられる特定の用途に適したさまざまな実施形態に関する、およびさまざまな修正を有するこの発
明を理解できるようにする。この発明の範囲は、特許請求の範囲およびその均等物によって定義されることが意図されている。
【図１】
2019145129.tif 000003
【図２】
2019145129.tif 000004
【図３】
2019145129.tif 000005
【図４】
2019145129.tif 000006
【図５】
2019145129.tif 000007
【図６】
2019145129.tif 000008
【図７】
2019145129.tif 000009
【図８】
2019145129.tif 000010
【図９】
2019145129.tif 000011
【図１０】
2019145129.tif 000012
【手続補正書】
【提出日】平成31年4月17日(2019.4.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムであって、
１つ以上のコンピュータを備え、前記コンピュータは、当該コンピュータ上で実行されるクラウド環境を含んでおり、
ワークフローオペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを備え、
前記ワークフローオーケストレータは、内部ワークフローエンジンを介してワークフロージョブを実行するワークフローマネージャを含んでおり、
ジョブは、ワークフローオペレーションの一部として実行されるとともに任意の特定のワークフローに関連付けられたアクションのシーケンスであり、
少なくとも１つのワークフローオペレーションは、前記クラウド環境のテナントで使用するために要求されたサービスのプラットフォームインスタンスをインスタンス化することを含み、
前記インスタンス化することは、
前記要求されたサービスに関連付けられたアセンブリを受信することと、
前記アセンブリにパーソナリティを注入して、パーソナライズ化されたアセンブリを生成することとを含み、
前記パーソナライズ化されたアセンブリは、前記要求されたサービスを含み、前記クラウド環境にデプロイメントされ、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用され、
前記ワークフローオーケストレータは、ワークフローオペレーションへのアクセスを提供するＡＰＩ（application  program  interface）をさらに含み、
前記ジョブはいくつかの状態を遷移し、当該ジョブに関する現在の状態は、前記ＡＰＩを使用してリアルタイムで問い合わせ可能である、システム。
【請求項２】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項１に記載のシステム。
【請求項３】
サービスプラットフォームは、特定のサービスによってサポートされるオペレーションおよびアクションを定義し、
複数のサービスプラットフォームの各々は、当該サービスプラットフォームのタイプのアクションに関連付けられる、請求項１または２に記載のシステム。
【請求項４】
前記テナントで使用するためにカスタマイズ可能なサービスを含む前記クラウド環境は、当該サービスの新しいプラットフォームインスタンスについてユーザがオーダーを入れることを可能にするユーザインターフェイスに関連付けられる、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記デプロイメントは、ウィルススキャンおよびホワイトスキャンのうちの少なくとも一方を実行することを含み、
前記ウィルススキャンおよび前記ホワイトスキャンのうちの少なくとも一方が実行された後に、前記パーソナライズ化されたアセンブリは、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用される、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位であり、
前記インスタンス化することは、
前記要求されたサービスのプラットフォームインスタンスをインスタンス化するためのオーダーを受信することと、
前記要求されたサービスのプラットフォームインスタンスに関連するオペレーションで使用するための一意識別子を、当該プラットフォームインスタンスに割当てることとをさらに含む、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションを提供する方法であって、
１つ以上のコンピュータを提供するステップを含み、前記コンピュータは、当該コンピュータ上で実行されるクラウド環境を含んでおり、
ワークフローオペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するステップを含み、
前記ワークフローオーケストレータは、内部ワークフローエンジンを介してワークフロージョブを実行するワークフローマネージャを含んでおり、
ジョブは、ワークフローオペレーションの一部として実行されるとともに任意の特定のワークフローに関連付けられたアクションのシーケンスであり、
少なくとも１つのワークフローオペレーションは、前記クラウド環境のテナントで使用するために要求されたサービスのプラットフォームインスタンスをインスタンス化することを含み、
前記インスタンス化することは、
前記要求されたサービスに関連付けられたアセンブリを受信することと、
前記アセンブリにパーソナリティを注入して、パーソナライズ化されたアセンブリを生成することとを含み、
前記パーソナライズ化されたアセンブリは、前記要求されたサービスを含み、前記クラウド環境にデプロイメントされ、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用され、
前記ワークフローオーケストレータは、ワークフローオペレーションへのアクセスを提供するＡＰＩ（application  program  interface）をさらに含み、
前記ジョブはいくつかの状態を遷移し、当該ジョブに関する現在の状態は、前記ＡＰＩを使用してリアルタイムで問い合わせ可能である、方法。
【請求項８】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項７に記載の方法。
【請求項９】
サービスプラットフォームは、特定のサービスによってサポートされるオペレーションおよびアクションを定義し、
複数のサービスプラットフォームの各々は、当該サービスプラットフォームのタイプのアクションに関連付けられる、請求項７または８に記載の方法。
【請求項１０】
前記テナントで使用するためにカスタマイズ可能なサービスを含む前記クラウド環境は、当該サービスの新しいプラットフォームインスタンスについてユーザがオーダーを入れることを可能にするユーザインターフェイスに関連付けられる、請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
前記デプロイメントは、ウィルススキャンおよびホワイトスキャンのうちの少なくとも一方を実行することを含み、
前記ウィルススキャンおよび前記ホワイトスキャンのうちの少なくとも一方が実行された後に、前記パーソナライズ化されたアセンブリは、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用される、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記アクションは、クラウドランタイム環境内でリソースを生成および／または管理するためのワークのアトミック単位であり、
前記インスタンス化することは、
前記要求されたサービスのプラットフォームインスタンスをインスタンス化するためのオーダーを受信することと、
前記要求されたサービスのプラットフォームインスタンスに関連するオペレーションで使用するための一意識別子を、当該プラットフォームインスタンスに割当てることとをさらに含む、請求項７〜１１のいずれか１項に記載の方法。
【請求項１３】
請求項７〜１２のいずれか１項に記載の方法を１つ以上のコンピュータに実行させるためのコンピュータ読取可能なプログラム。
【外国語明細書】
2019145129000001.pdf