(57)【要約】クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術は、検証されるオファーのシナリオを識別して、クラウドアプリケーションと関連するアプリケーションパッケージに対応するオファーのシナリオに対して一連の高レベルステップおよびプレースホールダーを生成するように構成されるオファー検証コンピューティングデバイスを含む。オファー検証コンピューティングデバイスは、プレースホールダーの各々に対して一つ以上の低レベルステップを決定し、プレースホールダーの各々を対応する一つ以上の関連する低レベルステップに置換して、一つ以上の関連する低レベルステップおよび生成された高レベルステップをオファーのシナリオの機能を自動的に検証するためにクラウドサービスブローカーシステムによって使用可能である検証ツールにパッケージ化するようにさらに構成される。本願明細書では、さらなる実施形態を説明する。
2020529066.tif 000002
【特許請求の範囲】
【請求項１】
クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する方法であって、
前記クラウドサービスブローカーシステムのオファー検証コンピューティングデバイスによって、検証されるオファーの一つ以上のシナリオを識別するステップであって、前記オファーは、クラウドアプリケーションに対応するサービス計画と関連するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のシナリオの各々に対して一つ以上の高レベルステップを生成するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のシナリオのいずれかが一つ以上のプレースホールダーを含むかどうかを決定するステップであって、各プレースホールダーは、高レベルステップではないステップを含むステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、前記それぞれの一つ以上のシナリオに対して前記一つ以上のプレースホールダーを生成するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップと、
前記オファー検証コンピューティングデバイスによって、前記決定された一つ以上のプレースホールダーを前記決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップに置換するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上の関連する低レベルステップおよび前記一つ以上の高レベルステップを前記オファーの前記一つ以上のシナリオの前記機能を自動的に検証するために使用可能な検証ツールにパッケージ化するステップと、
を含む方法。
【請求項２】
前記検証コンピューティングデバイスのユーザインタフェースを介して、前記一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求するステップと、
前記ユーザインタフェースを介して、前記ユーザから要求された前記追加の入力データを受信するステップと、
をさらに含み、
前記一つ以上の生成されたプレースホールダーの各々を置換するステップは、前記ユーザから受信した前記追加の入力データに基づいて前記一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含む請求項１に記載の方法。
【請求項３】
前記追加の入力データを前記ユーザに要求するステップは、前記低レベルステップの一つ以上が判定不能であるとの決定に応じて、前記追加の入力データを前記ユーザに要求することを含む請求項２に記載の方法。
【請求項４】
前記オファー検証コンピューティングデバイスによって、前記低レベルステップの一つ以上が判定不能と決定したことに応じて、前記シナリオを前記検証ツールから除外するステップをさらに含む請求項１に記載の方法。
【請求項５】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定するステップは、（ｉ）前記シナリオのインタフェースのハイパーテキストマークアップ言語（ＨＴＭＬ）ビューをレンダリングすることと、（ｉｉ）前記シナリオの前記インタフェースの前記レンダリングされたＨＴＭＬビューに基づいて前記一つ以上の低レベルステップの少なくとも一部を決定することを含む請求項１に記載の方法。
【請求項６】
前記オファーは、前記オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む請求項１に記載の方法。
【請求項７】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定するステップは、（ｉ）前記サービステンプレート構成要素によって定義されるリソースのセットと関連する一つ以上のアプリケーションパッケージを決定することと、（ｉｉ）前記一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて前記一つ以上の低レベルステップの少なくとも一部を決定することを含む請求項６に記載の方法。
【請求項８】
前記オファー検証コンピューティングデバイスによって、サービスとリソースの前記セットの機能としてリソースタイプのセットを識別するステップと、
リソースタイプの前記セットの各々に対応する一つ以上のアプリケーションパッケージを決定するステップと、
をさらに含み、
前記一つ以上のシナリオに対して前記一つ以上の高レベルステップを生成するステップは、リソースタイプの前記セットの各々に対して決定される前記一つ以上のアプリケーションパッケージの機能として前記一つ以上の高レベルステップを生成することを含む請求項６に記載の方法。
【請求項９】
前記オファーの前記一つ以上のシナリオは、顧客をつくること、前記顧客のためにサブスクリプションを購入すること、サービスを作成すること、前記サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、前記サブスクリプションを無効にすること、前記サブスクリプションを終了すること、および前記顧客に請求書を発行することの少なくとも一つを含む請求項１に記載の方法。
【請求項１０】
クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する前記クラウドサービスブローカーシステムのオファー検証コンピューティングデバイスであって、
命令を含む一つ以上のコンピュータ可読媒体と、
前記一つ以上のコンピュータ可読媒体に連結して、
クラウドアプリケーションに対応するサービス計画と関連する、検証されるオファーの一つ以上のシナリオを識別し、
前記一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、前記それぞれの一つ以上シナリオに対して一つ以上のプレースホールダーを生成し、
前記一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定し、
前記決定された一つ以上のプレースホールダーの各々を前記決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップと置換し、
前記一つ以上の関連する低レベルステップおよび前記一つ以上の高レベルステップを前記オファーの前記一つ以上のシナリオの前記機能を自動的に検証するために使用可能な検証ツールにパッケージ化する
ために前記命令を実行するように構成される一つ以上のプロセッサと、
を備えるオファー検証コンピューティングデバイス。
【請求項１１】
前記一つ以上のプロセッサは、
前記オファー検証コンピューティングデバイスのユーザインタフェースを介して、前記一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求し、
前記ユーザインタフェースを介して、前記ユーザから要求された前記追加の入力データを受信する
ために前記命令を実行するようにさらに構成され、
前記一つ以上の生成されたプレースホールダーの各々を置換することは、前記ユーザから受信した前記追加の入力データに基づいて前記一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含む請求項１０に記載のオファー検証コンピューティングデバイス。
【請求項１２】
前記追加の入力データを前記ユーザに要求することは、前記低レベルステップの一つ以上が判定不能であるとの決定に応じて、前記追加の入力データを前記ユーザに要求することを含む請求項１１に記載のオファー検証コンピューティングデバイス。
【請求項１３】
前記一つ以上のプロセッサは、前記低レベルステップの一つ以上が判定不能と決定したことに応じて、前記シナリオを前記検証ツールから除外するために前記命令を実行するようにさらに構成される請求項１０に記載のオファー検証コンピューティングデバイス。
【請求項１４】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定することは、（ｉ）前記シナリオのインタフェースのハイパーテキストマークアップ言語（ＨＴＭＬ）ビューをレンダリングして、（ｉｉ）前記シナリオの前記インタフェースの前記レンダリングされたＨＴＭＬビューに基づいて前記一つ以上の低レベルステップを決定することを含む請求項１０に記載のオファー検証コンピューティングデバイス。
【請求項１５】
前記オファーは、前記オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む請求項１０に記載のオファー検証コンピューティングデバイス。
【請求項１６】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定することは、（ｉ）前記サービステンプレート構成要素によって定義されたリソースのセットと関連する一つ以上のアプリケーションパッケージを決定して、（ｉｉ）前記一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて前記一つ以上の低レベルステップの少なくとも一部を決定することを含む請求項１５に記載のオファー検証コンピューティングデバイス。
【請求項１７】
前記一つ以上のプロセッサは、
サービスとリソースの前記セットの機能としてリソースタイプのセットを識別し、
リソースタイプの前記セットの各々に対応する一つ以上のアプリケーションパッケージを決定するために前記命令を実行する
ようにさらに構成され、
前記一つ以上のシナリオに対して前記一つ以上の高レベルステップを生成することは、リソースタイプの前記セットの各々に対して決定された前記一つ以上のアプリケーションパッケージの機能として前記一つ以上の高レベルステップを生成することを含む請求項１５に記載のオファー検証コンピューティングデバイス。
【請求項１８】
前記オファーの前記一つ以上のシナリオは、顧客をつくること、前記顧客のためにサブスクリプションを購入すること、サービスを作成すること、前記サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、前記サブスクリプションを無効にすること、前記サブスクリプションを終了すること、および前記顧客に請求書を発行することの少なくとも一つを含む請求項１０に記載のオファー検証コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、国際出願であり、２０１７年７月２８日に出願された米国特許出願第１５／６６３,１８２号の優先権の利益を主張するものであり、その本文および図面はその全体が参照により本願明細書に組み込まれる。
【０００２】
本開示の実施形態は、概してクラウドサービスブローカー業務、より詳細には、クラウドサービスブローカーシステムに統合されるオファーの機能を自動的に検証する技術に関する。
【背景技術】
【０００３】
独立系ソフトウェアベンダー（ＩＳＶ）は、一つ以上のコンピュータハードウェアまたはオペレーティングシステムプラットフォーム上で動作するように通常設計されるソフトウェアアプリケーションを開発し販売している。ＩＳＶは、また、それらのアプリケーションのサブスクリプションを販売し提供する。アプリケーションは、通常、ユーザの嗜好に従って構成することができるサービスのセットを提供する。ＩＳＶは、アプリケーションごとにアプリケーションプログラミングインタフェース（ＡＰＩ）を提供する。ＡＰＩは、外部アプリケーション用にアプリケーションにより提供されるクラス、手順、機能、構造、および定数のセットを含む。
【０００４】
このようなＩＳＶが開発したソフトウェアアプリケーションは、基本ユーティリティまたは生産性向上アプリケーションから企業用ビジネスプロセスアプリケーション（例えば、顧客関係管理（ＣＲＭ）、企業資源計画（ＥＲＰ）、自動化ツールなど）に及んでいる。クラウドコンピューティングのさらなる普及につれて、ソフトウェアを配信する一つの方法は、サービスとしてのソフトウェア（ＳａａＳ）ベースのモデルを使用するクラウドを介するものであった。この配信方法を使用して、ＩＳＶは、パブリッククラウドまたはクラウドマーケットプレースを介して、それらのソフトウェアアプリケーション、またはそれらのソフトウェアアプリケーションのサブスクリプションを販売できる。
【０００５】
クラウドマーケットプレースは、クラウドベースのサービスおよびソフトウェアアプリケーションへの顧客アクセスのためにオンライン店頭を提供するが、クラウドサービスブローカーは、例えば、各クラウドサービスに対して統合アプリケーションまたはＡＰＩコネクタを用いて、ＩＳＶとエンドユーザ、再販業者、小売業者などとの間の取引を容易にするために用いられることができる。従来のクラウドサービスブローカーの実施態様において、各クラウドサービスブローカーには、通常、統合アプリケーションを作成し管理するために（例えば、ポータルを介して）アクセスすることができる、プラットフォームおよび／またはインフラストラクチャへのクラウドサービスブローカーアクセスを与える各クラウドサービスに対して各ＩＳＶとの契約があり、それによって、それらのサービスが、クラウドにおいて購入され、プロビジョニングされ、実行されることが可能になる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＳＶによって開発されているアプリケーションに続いて、クラウドサービスブローカーは、通常、アプリケーションに対応するアプリケーションパッケージをプラットフォーム（例えば、クラウドサービスブローカープラットフォーム）にアップロードする。その後、クラウドサービスブローカーは、再販業者の階層から次のレベル再販業者のために、リソース、統合クラウドアプリケーションと関連するサービス、およびクラウドサービスブローカーの課金ルールの様々な組み合わせによるオファーを形成できる。通常、消費者にアプリケーションを提供する前に、クラウドサービスブローカーは、アプリケーションの完全性を確保しアプリケーションが予想通りに機能していることを検証するために、一連のチェックを実行する。しかしながら、このようなチェックは、通常、クラウドサービスブローカーが時間と金の面で多大な費用を要する可能性がある手作業の方法を使用して実行される。したがって、クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術の改良が必要である。
【課題を解決するための手段】
【０００７】
一つの態様において、クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する方法は、クラウドサービスブローカーシステムのオファー検証コンピューティングデバイスによって、検証されるオファーの一つ以上のシナリオを識別するステップであって、オファーは、クラウドアプリケーションに対応するサービス計画と関連するステップと、オファー検証コンピューティングデバイスによって、一つ以上のシナリオの各々に対して一つ以上の高レベルステップを生成するステップと、オファー検証コンピューティングデバイスによって、一つ以上のシナリオのいずれかが一つ以上のプレースホールダーを含むかどうかを決定するステップであって、各プレースホールダーは、高レベルステップではないステップを含むステップと、オファー検証コンピューティングデバイスによって、一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、それぞれの一つ以上のシナリオに対して一つ以上のプレースホールダーを生成するステップと、オファー検証コンピューティングデバイスによって、一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップと、オファー検証コンピューティングデバイスによって、決定された一つ以上のプレースホールダーを決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップと置換するステップと、オファー検証コンピューティングデバイスによって、一つ以上の関連する低レベルステップと一つ以上の高レベルステップをオファーの一つ以上のシナリオの機能を自動的に検証するために使用可能な検証ツールにパッケージ化するステップとを含む。
【０００８】
いくつかの実施形態において、方法は、オファー検証コンピューティングデバイスのユーザインタフェースを介して、一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求するステップと、ユーザインタフェースを介して、ユーザから要求された追加の入力データを受信するステップであって、一つ以上の生成されたプレースホールダーの各々を置換するステップは、ユーザから受信した追加の入力データに基づいて一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含むステップとをさらに含む。他の実施形態において、追加の入力データをユーザに要求するステップは、低レベルステップの一つ以上が判定不能であるとの決定に応じて、追加の入力データをユーザに要求することを含む。
【０００９】
いくつかの実施形態において、方法は、オファー検証コンピューティングデバイスによって、低レベルステップの一つ以上が判定不能と決定すると、シナリオを検証ツールから除外するステップをさらに含む。他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップは、（ｉ）シナリオのインタフェースのハイパーテキストマークアップ言語（ＨＴＭＬ）ビューをレンダリングすること、および（ｉｉ）シナリオのインタフェースのレンダリングされたＨＴＭＬビューに基づいて一つ以上の低レベルステップの少なくとも一部を決定することを含む。
【００１０】
いくつかの実施形態において、オファーは、オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む。他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップは、（ｉ）サービステンプレート構成要素によって定義されるリソースのセットと関連する一つ以上のアプリケーションパッケージを決定すること、および（ｉｉ）一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて一つ以上の低レベルステップの少なくとも一部を決定することを含む。
【００１１】
さらに他の実施形態において、方法は、オファー検証コンピューティングデバイスによって、サービスとリソースのセットの機能としてリソースタイプのセットを識別するステップと、リソースタイプのセットの各々に対応する一つ以上のアプリケーションパッケージを決定するステップであって、一つ以上のシナリオに対して一つ以上の高レベルステップを生成することは、リソースタイプのセットの各々に対して決定される一つ以上のアプリケーションパッケージの機能として一つ以上の高レベルステップを生成することを含むステップとを含む。いくつかの実施形態において、オファーの一つ以上のシナリオは、顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成すること、サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、サブスクリプションを無効にすること、サブスクリプションを終了すること、および顧客に請求書を送ることの少なくとも一つを含む。
【００１２】
別の態様において、クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証するクラウドサービスブローカーシステムのオファー検証コンピューティングデバイスは、命令を含む一つ以上のコンピュータ可読媒体と、一つ以上のコンピュータ可読媒体に連結して、検証されるオファーの一つ以上のシナリオを識別し、オファーは、クラウドアプリケーションに対応するサービス計画と関連し、一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、それぞれの一つ以上のシナリオに対して一つ以上のプレースホールダーを生成し、一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定し、決定された一つ以上のプレースホールダーの各々を決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップと置換し、一つ以上の関連する低レベルステップと一つ以上の高レベルステップをオファーの一つ以上のシナリオの機能を自動的に検証するのに使用可能な検証ツールにパッケージ化するために命令を実行するように構成される一つ以上のプロセッサとを備える。
【００１３】
いくつかの実施形態において、一つ以上のプロセッサは、オファー検証コンピューティングデバイスのユーザインタフェースを介して、一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求して、ユーザインタフェースを介して、ユーザから要求された追加の入力データを受信するために命令を実行するようにさらに構成され、一つ以上の生成されたプレースホールダーを置換することは、ユーザから受信した追加の入力データに基づいて一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含む。
【００１４】
いくつかの実施形態において、追加の入力データをユーザに要求することは、低レベルステップの一つ以上が判定不能であるとの決定に応じて、追加の入力データをユーザに要求することを含む。他の実施形態において、一つ以上のプロセッサは、低レベルステップの一つ以上が判定不能と決定すると、シナリオを検証ツールから除外するために命令を実行するようにさらに構成される。さらに他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定することは、（ｉ）シナリオのインタフェースのハイパーテキストマークアップ言語（ＨＴＭＬ）ビューをレンダリングして、（ｉｉ）シナリオのインタフェースのレンダリングされたＨＴＭＬビューに基づいて一つ以上の低レベルステップを決定することを含む。
【００１５】
いくつかの実施形態において、オファーは、オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む。他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定することは、（ｉ）サービステンプレート構成要素によって定義されるリソースのセットと関連する一つ以上のアプリケーションパッケージを決定し、（ｉｉ）一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて一つ以上の低レベルステップの少なくとも一部を決定することを含む。さらに他の実施形態において、一つ以上のプロセッサは、サービスとリソースのセットの機能としてリソースタイプのセットを識別して、リソースタイプのセットの各々に対応する一つ以上のアプリケーションパッケージを決定するために命令を実行するようにさらに構成され、一つ以上のシナリオに対して一つ以上の高レベルステップを生成することは、リソースタイプのセットの各々に対して決定される一つ以上のアプリケーションパッケージの機能として一つ以上の高レベルステップを生成することを含む。
【００１６】
いくつかの実施形態において、オファーの一つ以上のシナリオは、顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成すること、サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、サブスクリプションを無効にすること、サブスクリプションを終了すること、および顧客に請求書を送ることの少なくとも一つを含む。
【００１７】
実施形態ならびに本願明細書に含まれる他の特徴、利点、および開示、ならびにそれらを達成する方法は、明らかになり、本開示は、添付図面に関連してなされる本開示の様々な例示的な実施形態の以下の説明を参照してよりよく理解できる。
【図面の簡単な説明】
【００１８】
【図１】一つ以上のアプリケーションベンダーコンピューティングデバイス、一つ以上のクラウドアプリケーション統合ホストコンピューティングデバイス、オファー検証コンピューティングデバイス、およびサービスブローカーコンピューティングデバイスを備えるクラウドサービスブローカーシステムのオファーの機能を自動的に検証するクラウドサービスブローカーシステムの例示的な実施形態のブロック図である。
【図２】図１のオファー検証コンピューティングデバイスの例示的な環境のブロック図である。
【図３】図１のクラウドサービスブローカーシステムのコンピューティングデバイスの一つの例示的な実施形態のブロック図である。
【図４Ａ−４Ｂ】図１および２のオファー検証コンピューティングデバイスによって実行され得るクラウドサービスブローカーシステムに対応する統合アプリケーションを介して統合されるクラウドアプリケーションを自動的に検証する検証ツールを生成する例示的な方法の概略フロー図である。
【図５】図１のサービスブローカーコンピューティングデバイスによって実行され得るクラウドサービスブローカーシステムに統合されるクラウドアプリケーションを自動的に検証する例示的な方法の概略フロー図である。
【発明を実施するための形態】
【００１９】
本開示の原理の理解を促進するために、図面に示される実施形態をここで参照し、特定の言語を用いてそれを記述する。それにもかかわらず、本開示の範囲の限定はそれにより意図されないことを理解されたい。
【００２０】
図１は、クラウドサービスブローカーシステム１００のオファーの機能を自動的に検証するクラウドサービスブローカーシステム１００を示す。クラウドサービスブローカーシステム１００は、一つ以上のアプリケーションベンダーコンピューティングデバイス１０２、一つ以上のクラウドアプリケーション統合ホストコンピューティングデバイス１１２、オファー検証コンピューティングデバイス１２４、およびサービスブローカーコンピューティングデバイス１３０を備え、各々はコンピューティングデバイス１５０を備える。使用中、クラウドサービスベンダー（例えば、独立糸ソフトウェアベンダー（ＩＳＶ））と関連するクラウドサービスアプリケーションは、クラウドベースのアプリケーションである。
【００２１】
通常、クラウドサービスアプリケーションをマーケットプレース（例えば、クラウドサービスブローカーマーケットプレース）に統合し分散するために、ＩＳＶ（例えば、アプリケーションベンダーコンピューティングデバイス１０２と関連するアプリケーションベンダー）は、マーケットプレースによってサポートされる一つ以上の様々な標準（例えば、Ｐａｒａｌｌｅｌｓ（登録商標）アプリケーションパッケージ標準（ＡＰＳ））に従ってアプリケーションパッケージを提供する。アプリケーションパッケージは、通常、メタデータ、制御方法の記述、およびコンテンツファイルを含み、それらは、クラウドアプリケーションリソースを管理するために必要な制御方法のアプリケーションリソース、サービス、ユーザインタフェース構成要素、および論理を定義するために使用可能である。したがって、様々なリソース、テンプレート、サービス計画などは、クラウドサービスブローカーによってアプリケーションパッケージに関連付けることができる。さらに、アプリケーションパッケージに基づいて、クラウドサービスブローカーは、別の統合構成要素 ― 統合クラウドアプリケーション（例えば、図１の統合クラウドアプリケーション１１４を参照）を展開できる。
【００２２】
このような統合クラウドアプリケーションは、それぞれの統合クラウドアプリケーションに特有のＡＰＩコールを使用してサービスブローカーコンピューティングデバイス１３０から受信した制御方法によってアプリケーションプログラミングインタフェース（ＡＰＩ）コールを翻訳するように構成される。したがって、アプリケーションパッケージおよび統合クラウドアプリケーション（例えば、統合クラウドアプリケーション（１）１１８、統合クラウドアプリケーション（Ｎ）１２２など）を用いて、クラウドアプリケーションのインスタンスは、マーケットプレースを介して一人以上のエンドユーザ（例えば、顧客、ブローカー、再販業者など）にライセンス（すなわち、サービスとして）を与えるために利用できる。さらに、いくつかの実施形態において、統合クラウドアプリケーションは、それらのアプリケーションパッケージの変更および拡張を介して他のクラウドアプリケーション／サービス／記憶装置（例えば、クラウドアプリケーション（１）１０６およびクラウドアプリケーション（Ｎ）１１０）と協働するようにクラウドサービスブローカーによって構成されてもよい。
【００２３】
クラウドアプリケーションの統合がクラウドサービスブローカーによってテストされる必要がある様々なインスタンスがある。例えば、統合クラウドアプリケーションは、クラウドアプリケーションが生産段階に進むことを予想して開発段階にある時のように、（例えば、クラウドサービスブローカーマーケットプレースにおいて）販売のために発表される前にテストする必要があり得る。別の例において、統合クラウドアプリケーションは、最新版が作成された後にテストする必要があり得る。このようなテストは、クラウドサービスブローカーが遭遇する可能性がある任意の予想されるサービスシナリオ、例えば、顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成する／割り当てること、サービスユーザをつくること、サブスクリプション計画／制限を変更すること、サブスクリプションを無効にする／終了すること、および請求書を送ることなどを含み得る。
【００２４】
さらに、統合クラウドアプリケーションは、一つ以上のオファーの機能を検証するためにテストする必要があり得る。例えば、クラウドサービスブローカーがクライアントのために新規なオファーを形成する状況で、クラウドサービスブローカーは、オファーが正しく機能していることを検証することも必要である。さもなければ、クライアントは、後の時点でオファーを得るかまたは変更するときにいくつかの問題点を経験する可能性がある。このような問題は、例えば、クラウドサービスブローカーのユーザインタフェースの誤って機能している構成要素が誤った制御要求をアプリケーションベンダーのユーザインタフェースに送信するときに、クライアント側だけでなく、アプリケーションベンダーの側にも現れる可能性がある。
【００２５】
しかしながら、現在の手動テスト手順とは異なり、クラウドサービスブローカーシステム１００、またはより詳細には本願明細書に開示されるオファー検証コンピューティングデバイス１２４は、テストを自動的に実行するのに使用可能な検証ツールを生成するように構成される。そうするために、下記でさらに詳述するように、オファー検証コンピューティングデバイス１２４は、特定のサービスシナリオに関連する、サービス計画情報、サービステンプレート情報、リソース情報などに基づいて実行できるような、各サービスシナリオの検証を実行するために用いられるステップに基づいて検証ツールを生成するように構成される。したがって、生成された検証ツールは、統合アプリケーションの様々なシナリオを自動的にテスト／検証するためにアプリケーションベンダーまたはクラウドサービスブローカーによって使用できる。様々なシナリオのこのような自動テスト／検証は、例えば、統合段階で、新規なオファーで、および／または既存のオファーに対する更新で実行できる。
【００２６】
クラウドサービスブローカーコンピューティングデバイス１３０は、アプリケーションパッケージに含まれる関連するユーザインタフェース構成要素の情報に基づいて、ユーザインタフェースレベルで統合を提供するようにさらに構成される。そうするために、クラウドサービスブローカーコンピューティングデバイス１３０は、それぞれのクラウドアプリケーション１０６、１１０の機能的なユーザインタフェース構成要素を備えたハイブリッドユーザインタフェースを提供するように構成される。したがって、クラウドサービスブローカーコンピューティングデバイス１３０（例えば、クラウドサービスブローカー）の所有者は、チェーンのさらに下の再販業者に対して一つ以上のオファーを構成することができる。本願明細書では、オファーは、アプリケーションパッケージを使用して一つ以上のサービスを販売するように構成されるサービス計画である。そうするために、各オファーは、サービステンプレート構成要素および課金構成要素を含む。
【００２７】
サービステンプレート構成要素は、アプリケーションベンダーの一つ以上のクラウドアプリケーション／サービス、リソースの量、多くのユーザーアカウント、および他のカスタム化からのこれらのサービスにより管理されるサービスとリソースのセットを定義する。課金構成要素は、オファーによって実施することになっている一つ以上の課金ルールを定義する。さらに、オファーは、クライアントに対してユーザインタフェース表示をあらかじめ定義する。換言すれば、オファーを得る際に、ユーザは、サービスまたはリソースがオファーにおいて識別されたそれらのクラウドアプリケーションのみを有する統合されたユーザインタフェースを見る。このように、クラウドサービスブローカーコンピューティングデバイス１３０は、統合されたユーザインタフェースと関連する機能に関してオファーの機能を検証するように構成される。
【００２８】
上記のように、例示的なクラウドサービスブローカーシステム１００は、クラウドアプリケーションを開発しそのホストとして働くために使用可能な一つ以上のアプリケーションベンダーコンピューティングデバイス１０２、および関連する統合クラウドアプリケーションのホストとして働くために使用可能な一つ以上のクラウドアプリケーション統合ホストコンピューティングデバイス１１２を含む。例示的なアプリケーションベンダーコンピューティングデバイス１０２は、アプリケーションベンダーコンピューティングデバイス（１）１０４として指定される第１のアプリケーションベンダーコンピューティングデバイス１０２、およびアプリケーションベンダーコンピューティングデバイス（Ｎ）１０８として指定される「第Ｎ」のアプリケーションベンダーコンピューティングデバイス１０２を含む。第Ｎのアプリケーションベンダーコンピューティングデバイス１０２（すなわち、アプリケーションベンダーコンピューティングデバイス（Ｎ）１０８）は、「Ｎ」の追加のアプリケーションベンダーコンピューティングデバイス１０２を表し、「Ｎ」は正の整数値であることを理解すべきである。それぞれのアプリケーションベンダーコンピューティングデバイス１０２の各々が、単一のコンピューティングデバイス１５０として示されているが、アプリケーションベンダーコンピューティングデバイス１０２の一つ以上は、複数のコンピューティングデバイス１５０から構成されてもよいことをさらに理解すべきである。
【００２９】
アプリケーションベンダーコンピューティングデバイス１０２の各々は、それぞれのクラウドアプリケーションを例示的に示す。このように、例示的なアプリケーションベンダーコンピューティングデバイス１０４は、クラウドアプリケーション（１）１０６として指定される第１のクラウドアプリケーションを含む。同様に、例示的なアプリケーションベンダーコンピューティングデバイス１０８は、クラウドアプリケーション（Ｎ）１１０として指定される別のクラウドアプリケーションを含む。第Ｎのクラウドアプリケーション（すなわち、アプリケーションベンダーコンピューティングデバイス（Ｎ）１１０）は、「Ｎ」の追加のクラウドアプリケーションを表し、「Ｎ」は正の整数値であることを理解すべきである。
【００３０】
上記のように、クラウドアプリケーション（例えば、クラウドアプリケーション（１）１０６およびクラウドアプリケーション（Ｎ）１１０）に関する情報は、アプリケーションパッケージの形で提示される。それは、クラウドサービスブローカーマーケットプレースでサポートされる一つ以上の様々な標準に従ってパッケージ化されている。各アプリケーションパッケージは、アプリケーションパッケージに対応する統合アプリケーションのアドレスを指す、一つ以上のアプリケーションパッケージインスタンスを有することができることを理解すべきである。いくつかの展開スキーマにおいて、いくつかのアプリケーションパッケージインスタンスは、いくつかの地理的ハブにあることをさらに理解すべきである。
【００３１】
上にも記したように、各アプリケーションパッケージは、それぞれのクラウドアプリケーション統合ホストコンピューティングデバイス１１２の下で動作するとして例示的に示されている、対応する統合クラウドアプリケーションと関連する。例示的なクラウドアプリケーション統合ホストコンピューティングデバイス１１２は、クラウドアプリケーション統合ホストコンピューティングデバイス（１）１１６として指定される第１のクラウドアプリケーション統合ホストコンピューティングデバイス１１２、およびクラウドアプリケーション統合ホストコンピューティングデバイス（Ｎ）１２０として指定される「第Ｎ」のクラウドアプリケーション統合ホストコンピューティングデバイス１１２を備える。第Ｎのクラウドアプリケーション統合ホストコンピューティングデバイス１１２（すなわち、アプリケーション統合ホストコンピューティングデバイス（Ｎ）１１８）は、「Ｎ」の追加のクラウドアプリケーション統合ホストコンピューティングデバイス１１２を表し、「Ｎ」は正の整数値であることを理解すべきである。それぞれのクラウドアプリケーション統合ホストコンピューティングデバイス１１２の各々が、単一のコンピューティングデバイス１５０として示されているが、クラウドアプリケーション統合ホストコンピューティングデバイス１１２の一つ以上は、複数のコンピューティングデバイス１５０から構成されてもよいことをさらに理解すべきである。
【００３２】
クラウドアプリケーション統合ホストコンピューティングデバイス１１２の各々は、ネットワーク１２８の一部を通るそれぞれの通信チャネルを介してサービスブローカーコンピューティングデバイス１３０のアプリケーション統合バス１４８に通信可能に連結する。アプリケーション統合バス１４８は、クラウドアプリケーションを（例えば、サービスブローカーコンピューティングデバイス１３０の）クラウドサービスブローカープラットフォームと統合しクラウドアプリケーション間の通信を可能にするために使用可能な任意のタイプの通信バスとして実施できる。アプリケーション統合バス１４８は、それぞれのアプリケーションパッケージに記述されているリソースを用いて、制御要求（例えば、プロビジョニング、顧客登録、新規なサービスの割り当てなどのための）を策定するように構成される。
【００３３】
そうするために、アプリケーション統合バス１４８は、適用可能な統合クラウドアプリケーション１１４（例えば、統合クラウドアプリケーション（１）１１８、統合クラウドアプリケーション（Ｎ）１２２など）の対応するアドレスに基づいてクラウドサービスブローカーコンピューティングデバイス１３０によって開始されるＡＰＩ要求（例えば、プロビジョニング、削除など）を適切な統合クラウドアプリケーション１１４（例えば、統合クラウドアプリケーション（１）１１８、統合クラウドアプリケーション（Ｎ）１２２など）に送るように構成される。そうすると、受信する統合クラウドアプリケーション１１４は、受信したＡＰＩ要求を翻訳して、翻訳された要求を適切なクラウドアプリケーション（例えば、クラウドアプリケーション（１）１０６、クラウドアプリケーション（Ｎ）１１０など）に配信できる。
【００３４】
さらに、アプリケーション統合バス１４８は、受信する統合クラウドアプリケーション１１４によってアプリケーションベンダーのＡＰＩからアプリケーション統合バス１４８の対応するＡＰＩに翻訳されたＲＥＳＴ要求を受信するように構成される。そうするために、統合クラウドアプリケーション１１４は、アプリケーションベンダーのＡＰＩ要求を受信したクラウドアプリケーション（例えば、クラウドアプリケーション（１）１０６、クラウドアプリケーション（Ｎ）１１０など）に代わってＲＥＳＴ要求をアプリケーション統合バス１４８のエンドポイントに提出するように構成される。さらに、アプリケーション統合バス１４８は、ＲＥＳＴ要求を送るときにアプリケーション統合バス１４８にそのアイデンティティを確認するために統合クラウドアプリケーション１１４によって使用可能である各統合クラウドアプリケーション１１４のインストール中に一つしかない証明書および秘密鍵を生成するように構成される。
【００３５】
オファー検証コンピューティングデバイス１２４をアプリケーション統合バス１４８に接続するネットワーク１２８の一部を通る通信チャネルを有するオファー検証コンピューティングデバイス１２４も、例示的に示される。このように、オファー検証コンピューティングデバイス１２４は、アプリケーション統合バス１４８を介してクラウドアプリケーション統合ホストコンピューティングデバイス１１２と通信するように構成される。より詳しくは、下記に詳述されるオファー検証コンピューティングデバイス１２４の検証ツール生成器プラットフォーム１２６は、アプリケーション統合バス１４８を介してそれぞれのクラウドアプリケーション統合ホストコンピューティングデバイス１１２の統合クラウドアプリケーション１１４の一つ以上と通信するように構成される。統合クラウドアプリケーション１１４は、ＡＰＩコールを制御方法によってクラウドサービスブローカーコンピューティングデバイスからそれぞれの統合クラウドアプリケーション（例えば、統合クラウドアプリケーション１１８、１２２の一つ）に特有のＡＰＩコールに翻訳するように構成される。
【００３６】
例示的なサービスブローカーコンピューティングデバイス１３０は、サービスブローカープラットフォームオペレーションサポートシステム（ＯＳＳ）１３２およびサービスブローカープラットフォームビジネスサポートシステム（ＢＳＳ）１４０をさらに備える。サービスブローカープラットフォームＯＳＳ１３２は、リソースモデルを格納して、クラウドアプリケーションにリソースプロビジョニングを実行するように構成される。そうするために、例示的なサービスブローカープラットフォームＯＳＳ１３２は、リソースマネージャ１３４、サービステンプレートマネージャ１３６、およびプロビジョニングエンジン１３８を含む。リソースマネージャ１３４、サービステンプレートマネージャ１３６、およびプロビジョニングエンジン１３８の各々は、本願明細書に記載の機能を実行できる任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できる。
【００３７】
リソースマネージャ１３４は、アプリケーションパッケージに記述されてクラウドアプリケーション（例えば、統合クラウドアプリケーション１０６、１１０）と関連するリソースを管理するように構成される。そうするために、サービステンプレートマネージャ１３６は、アプリケーションパッケージからのリソースおよび関連サービスから形成されて、各オファーと関連するサービステンプレートを管理するように構成される。例えば、リソースマネージャ１３４は、リソースに関する作成、読み込み、更新、および削除（ＣＲＵＤ）オペレーションを管理するように構成されてもよい。各サービステンプレートは、オファーの特定の一つ以上のシナリオと関連するリソースタイプのセットを含む。そうするために、リソースマネージャ１３４は、アプリケーションパッケージのリソースモデルを解釈するように構成される。それは、リソースタイプの完全な記述をそれぞれのクラウドアプリケーションに提供して、リソースを用いて実行できるオペレーション、ならびに対応するクラウドアプリケーションに特定のタイプのリソースを提供するよう求める方法を含む。
【００３８】
いくつかの実施形態において、サービステンプレートマネージャ１３６は、リソースをより有用なセットに組み合わせるように構成されてもよいことを理解すべきである。サービステンプレートは、追加の情報、例えば、オファーのユーザインタフェース（ＵＩ）ナビゲーションに関する命令を含み得る。それは、例えば、クラウドアプリケーションの特定の機能を実行するために使用可能であり得る、特定のＵＩスクリーンでユーザに表示されるグラフィックＵＩ要素のタイプおよび位置を含み得る場合がある。プロビジョニングエンジン１３８は、クラウドアプリケーションに対して識別されたリソースのプロビジョニングを実行するように構成される。
【００３９】
サービスブローカープラットフォームＢＳＳ１４０は、課金オペレーションを実行し、リソースプロビジョニングのためにサービスブローカープラットフォームＯＳＳ１３２を呼び出すように構成される。そうするために、例示的なサービスブローカープラットフォームＢＳＳ１４０は、サービス計画マネージャ１４２、納税マネージャ１４４、および注文マネージャ１４６を含む。サービス計画マネージャ１４２は、オファーと関連するサービス計画を管理するように構成される。例えば、サービス計画マネージャ１４２は、オファー、リソースレートでＣＲＵＤオペレーションを行う能力を提供し、価格を指定するように構成されてもよい。納税マネージャ１４４は、オファーからのクラウドサービスと関連する税を管理するように構成される。例えば、納税マネージャ１４４は、請求書作成の間に税計算を実行するように構成されてもよい。注文マネージャ１４６は、オファーからのクラウドサービスの注文を管理する（例えば、作成、変更、取り消し）ように構成される。例示的な実施例において、注文マネージャ１４６は、サービス計画に基づいて一つ以上の注文および／または請求書を作成できる。サービス計画マネージャ１４２、納税マネージャ１４４、および注文マネージャ１４６の一つ以上は、本願明細書に記載されている機能を実行できる任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できることを理解すべきである。
【００４０】
例示的なクラウドサービスブローカーシステム１００に示すように、アプリケーションベンダーコンピューティングデバイス１０２、クラウドアプリケーション統合ホストコンピューティングデバイス１１２、オファー検証コンピューティングデバイス１２４、およびサービスブローカーコンピューティングデバイス１３０の各々は、コンピューティングデバイス１５０として実施される。したがって、それぞれのコンピューティングデバイス１５０の各々は、本願明細書に記載されている機能を実行できる任意のタイプの計算および／または記憶装置として実施できることを理解すべきである。さらに、それぞれのコンピューティングデバイス１５０の各々は、複数のコンピューティングデバイス１５０から構成されてもよいことをさらに理解すべきである。例えば、コンピューティングデバイス１５０の一つ以上は、一つ以上のサーバ（例えば、独立型、ラックマウント方式など）および／またはクラウド設計されたネットワークまたはデータセンター内の（例えば、ストレージエリアネットワーク（ＳＡＮ）の）コンピュートブレードとデータ記憶装置の組み合わせとして実施できる。一方、他のコンピューティングデバイス１５０の一つ以上は、一つ以上のデスクトップコンピュータ、モバイルコンピューティングデバイス（例えば、スマートフォン、ウェアラブル機器、タブレット、ラップトップ、ノートブックなど）または他のあらゆるタイプの「スマート」かあるいはインターネット接続した装置として実施できる。
【００４１】
ここで図２を参照すると、アプリケーションベンダーコンピューティングデバイス１０２、クラウドアプリケーション統合ホストコンピューティングデバイス１１２、オファー検証コンピューティングデバイス１２４、およびサービスブローカーコンピューティングデバイス１３０の一つ以上を表わすコンピューティングデバイス１５０の例示的な実施形態が示されている。例示的なコンピューティングデバイス１５０は、中央演算処理装置（ＣＰＵ）２００、入出力（Ｉ／Ｏ）コントローラ２０２、メモリ２０４、ネットワーク通信回路２０６、およびデータ記憶装置２１０、ならびに、いくつかの実施形態において、一つ以上のＩ／Ｏ周辺機器２０８を含む。いくつかの実施形態において、例示的な構成要素の一つ以上は、単一の集積回路（ＩＣ）上で単一のシステムオンチップ（ＳｏＣ）に組み合わせることができる。代替の実施形態は、例示的なコンピューティングデバイス１５０のそれらに対して追加の、より少ない、および／または代替の構成要素、例えば、グラフィックスプロセッシングユニット（ＧＰＵ）、電源などを含むことがあり、それらは記述の明確さを維持するために示されていないことを理解すべきである。それぞれのコンピューティングデバイス１５０の記憶／計算構成要素のタイプは、それぞれのコンピューティングデバイス１５０のタイプおよび意図された使用に基づいて予測できることをさらに理解すべきである。
【００４２】
ＣＰＵ２００すなわちプロセッサは、データを処理できる任意のタイプのハードウェアまたは回路の組み合わせとして実施できる。したがって、ＣＰＵ２００は、単一のコアプロセッサアーキテクチャの一つの処理コア（図示せず）、またはマルチコアプロセッサアーキテクチャの複数の処理コアを含み得る。処理コアの数に関係なく、ＣＰＵ２００は、プログラム命令を読み込んで実行できる。いくつかの実施形態において、ＣＰＵ２００は、ＣＰＵ２００と直接統合するかまたはＣＰＵ２００に別々の相互接続を有する別々のチップに配置できるキャッシュメモリ（図示せず）を含み得る。いくつかの実施形態において、パイプライン論理は、ＣＰＵ２００に出入りするコマンドよりもむしろ、ソフトウェアおよび／またはハードウェアオペレーション（例えば、ネットワークトラフィック処理オペレーション、グラフィックス処理オペレーションなど）を実行するために用いることができることを理解すべきである。
【００４３】
Ｉ／Ｏコントローラ２０２、すなわちＩ／Ｏインタフェースは、入出力装置とコンピューティングデバイス１５０の間でインタフェースをとることができる任意のタイプのコンピュータハードウェアまたは回路の組み合わせとして実施できる。例示的に、Ｉ／Ｏコントローラ２０２は、ＣＰＵ２００から入出力要求を受信して、制御信号をそれぞれの入力／出力装置に送り、それによって、コンピューティングデバイスコンピュータ１５０に出入りするデータフローを管理するように構成される。
【００４４】
メモリ２０４は、処理のためにデータおよび命令を保持できる任意のタイプのコンピュータハードウェアまたは回路の組み合わせとして実施できる。このようなメモリ２０４は、主メモリまたは主要なメモリと呼ばれる場合がある。いくつかの実施形態において、コンピューティングデバイス１５０の一つ以上の構成要素は、メモリに直接アクセスすることができるため、特定のデータは、ＣＰＵ２００とは無関係に直接メモリアクセス（ＤＭＡ）を介して格納できることを理解すべきである。
【００４５】
ネットワーク通信回路２０６は、無線および／または有線通信モードを介してネットワークインタフェース通信（例えば、メッセージ、データグラム、パケットなど）を管理できる任意のタイプのコンピュータハードウェアまたは回路の組み合わせとして実施できる。したがって、いくつかの実施形態において、ネットワーク通信回路２０６は、コンピューティングデバイス１５０をコンピュータネットワーク（例えば、ネットワーク１２８）、ならびにクラウドサービスマーケットプレースおよびブローカーシステム１００の他のコンピューティングデバイスに接続するように構成されてもよいネットワークインタフェースコントローラ（ＮＩＣ）を備えることができる。
【００４６】
一つ以上のＩ／Ｏ周辺機器２０８は、コンピューティングデバイス１５０に接続してそれと通信するように構成される任意の補助装置として実施できる。例えば、Ｉ／Ｏ周辺機器２０８は、マウス、キーボード、モニター、タッチスクリーン、プリンター、スキャナー、マイクロホン、スピーカーなどを含み得るが、これに限定されない。したがって、いくつかのＩ／Ｏ装置は、一つの機能（すなわち、入力または出力）または両方の機能（すなわち、入力および出力）が可能であることを理解すべきである。
【００４７】
いくつかの実施形態において、Ｉ／Ｏ周辺機器２０８は、コンピューティングデバイス１５０のケーブル（例えば、リボンケーブル、ワイヤ、汎用シリアルバス（ＵＳＢ）ケーブル、高解像度マルチメディアインタフェース（ＨＤＭＩ（登録商標））ケーブルなど）を介してコンピューティングデバイス１５０に接続できる。このような実施形態において、ケーブルは、コンピューティングデバイス１５０の対応するポート（図示せず）に接続し、コンピューティングデバイス１５０のために、その間でなされる通信がＩ／Ｏコントローラ２０２によって管理できる。代替の実施形態において、Ｉ／Ｏ周辺機器２０８は、ネットワーク通信回路２０６によって管理できる無線モードの通信（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）など）を介してコンピューティングデバイス１５０に接続できる。
【００４８】
データ記憶装置２１０は、データの不揮発性記憶ができる任意のタイプのコンピュータハードウェア（例えば、半導体記憶媒体、磁気記録媒体、光記憶媒体など）として実施できる。このようなデータ記憶装置２１０は、一般に、補助または二次記憶と呼ばれ、通常は、上記のメモリ２０４と比較して大量のデータを格納するために用いる。
【００４９】
図１に戻って参照すると、例示的なクラウドサービスブローカーシステム１００は、本願明細書に記載されているように通信するためにコンピューティングデバイス１５０（すなわち、アプリケーションベンダーコンピューティングデバイス１０２、クラウドアプリケーション統合ホストコンピューティングデバイス１１２、オファー検証コンピューティングデバイス１２４、およびサービスブローカーコンピューティングデバイス１３０）のために使用可能であるネットワーク１２８を備える。ネットワーク１２８は、任意の有線および／または無線通信技術およびネットワーク通信伝送プロトコルを利用する、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、グローバルネットワーク（インターネット）などを含む、任意のタイプの有線および／または無線ネットワークとして実施できる。したがって、ネットワーク１２８は、一連の有線および／または無線相互接続を介してネットワーク通信トラフィックのフローおよび／または処理を容易にするために一つ以上の通信可能に連結するネットワークコンピューティングデバイス（図示せず）を備えることができる。このようなネットワークコンピューティングデバイスは、一つ以上のアクセスポイント、ルータ、スイッチ、サーバ、コンピューティングデバイス、記憶装置などを備えることができるが、これに限定されない。
【００５０】
例えば、このようなネットワークコンピューティングデバイスの一つ以上は、アプリケーションベンダーコンピューティングデバイス１０２、クラウドアプリケーション統合ホストコンピューティングデバイス１１２、オファー検証コンピューティングデバイス１２４、および／またはサービスブローカーコンピューティングデバイス１３０の一つ以上を有線（例えば、イーサネット（登録商標）、トークンリングなど）を使用するＬＡＮ構成および／または無線（例えば、Bｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、無線ブロードバンド、ＺｉｇＢｅｅ（登録商標）など）通信技術および関連プロトコルを使用するＷＬＡＮ構成のネットワーク１２８に連結するように構成されてもよい。この実施例を進展させた場合、ＬＡＮ構成は、ネットワーク１２８の追加のネットワークコンピューティングデバイスを介して一つ以上のより広いエリアネットワーク（例えば、ＷＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットなど）に（例えば、同軸ケーブル、モバイル電話通信、光ファイバーケーブルなどを介して）連結できる。ネットワークコンピューティングデバイスおよび/またはネットワーク構成の一つ以上は仮想化することができる（例えば、仮想スイッチ、仮想ＬＡＮなど）ことを理解すべきである。
【００５１】
ここで図３を参照すると、オファー検証コンピューティングデバイスの例示的な環境３００が示されている。例示的な環境３００は、図１の検証ツール生成器プラットフォーム１２６を含み、それは、本願明細書に記載されている機能を実行できる任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できる。例示的な検証ツール生成器プラットフォーム１２６は、オファー情報アナライザー３０２、シナリオ生成器３０４、プレースホールダー置換マネージャ３１０、ユーザ入力インタプリタ３１２、ドメイン固有言語（ＤＳＬ）インジェクター３１４、およびＤＳＬ検証ツールマネージャ３１６を含む。オファー情報アナライザー３０２、シナリオ生成器３０４、プレースホールダー置換マネージャ３１０、ユーザ入力インタプリタ３１２、ＤＳＬインジェクター３１４、およびＤＳＬ検証ツールマネージャ３１６の各々は、任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できる。
【００５２】
いくつかの実施形態において、オファー情報アナライザー３０２、シナリオ生成器３０４、プレースホールダー置換マネージャ３１０、ユーザ入力インタプリタ３１２、ＤＳＬインジェクター３１４、およびＤＳＬ検証ツールマネージャ３１６の一つ以上は、そこに格納される命令を有する一つ以上のコンピュータ可読媒体（例えば、メモリ２０４、データ記憶装置２１０、および／または他のあらゆる媒体記憶装置）および一つ以上のコンピュータ可読媒体に連結して本願明細書に記載されている機能を実行するために命令を実行するように構成される一つ以上のプロセッサ（例えば、ＣＰＵ２００）を備えることができる。データが、アクセスされ、管理され、適切に更新されてもよいように、環境３００は、本願明細書に記載されているデータ要素（例えば、データベース）の少なくとも一部を格納するために使用可能な一つ以上の構造をさらに含み得ることを理解すべきである。しかしながら、このような構造は、記述の明確さを維持するために本願明細書に示されていない。
【００５３】
オファー情報アナライザー３０２は、クラウドサービスアプリケーションオファーと関連する情報を分析するように構成される。このようなオファー情報は、オファーと関連するリソースを識別できるサービス計画情報およびサービステンプレート情報を含み得る。例えば、オファー情報アナライザー３０２は、クラウドサービスアプリケーションオファーと関連するサービステンプレートを（すなわち、アプリケーションパッケージから）検索して、サービステンプレートコンテンツの機能としてリソースタイプのセットを検索するように構成されてもよい。さらに、オファー情報アナライザー３０２は、検索されたリソースタイプのセットのいずれかを所有するいずれかのアプリケーションパッケージを識別するように構成される。
【００５４】
シナリオ生成器３０４は、オファー情報アナライザー３０２によって実行され得るような、クラウドサービスアプリケーションオファーと関連する情報の分析の結果の機能としてシナリオのセットを生成するように構成される。そうするために、例示的なシナリオ生成器３０４は、高レベルステップ生成器３０６およびプレースホールダー生成器３０８を備える。高レベルステップ生成器３０６は、特定のシナリオを実行するために必要とされる可能性がある任意の数の高レベルステップを生成するように構成される。このような高レベルステップは通常、それらが特定のシナリオの実行中に必要とされる可能性がある外部入力（例えば、ユーザ情報）なしでも実行できるという点で、通常は一般的であるとみなされる。
【００５５】
これらの高レベルステップは、プロビジョニング、顧客登録、新規なサービスの割り当てなどを含むがこれらに限定されない、本願明細書に記載されているサービスブローカーコンピューティングデバイス１３０の一つ以上の構成要素によって実行される様々なシナリオによって定義される。例えば、高レベルステップは、マルチステップのウィザード（すなわち、マルチステップのヘルプ機能）、例えば、アカウント作成のウィザード、サブスクリプション作成、および割り当てられたサービスを有するサービスユーザの作成などとして提示できる。いくつかの高レベルステップは、他のクラウドアプリケーションによって、例えば、それらの関連するユーザインタフェース要素を関連するアプリケーションパッケージを介して関連するユーザインタフェースに埋め込むことによって拡張できることを理解すべきである。いくつかの高レベルステップは、このような統合ポイントを有せず、他のクラウドアプリケーションの知識がなくても生成できることをさらに理解すべきである。
【００５６】
プレースホールダー生成器３０８は、高レベルステップではないステップを指定するすために使用可能である各シナリオに対してプレースホールダーまたはタグを生成するように構成される。このような非高レベルステップ（すなわち、低レベルステップ）は通常、一般的ではないとみなされる。そのため、それらは、通常、アプリケーションパッケージにスクリプトとして格納できるような、関連するシナリオの実行中にユーザからの外部入力が必要となる。例えば、このような必要な外部入力には、割り当てる物理的および／または仮想的ハードウェアリソースのタイプ／量が含まれる場合がある。
【００５７】
前述のように、各アプリケーションパッケージは、対応するクラウドアプリケーションおよびメタデータと関連する一つ以上のユーザインタフェース構成要素の記述を通常は含む。統合パッケージを準備している間、ＩＳＶは、アプリケーションパッケージが管理されているプラットフォーム（例えば、サービスブローカーコンピューティングデバイス１３０のクラウドサービスブローカープラットフォーム（図示せず））のＵＩ要素とＩＳＶのＵＩ要素の統合を記述するために多くの予め定義された低レベルステップから多くの予め定義された低レベルステップを選択できる。さらに、アプリケーションパッケージのメタデータは、通常は、オファーの検証と関連するプレースホールダーを有するこれらの低レベルステップのマッピングについての命令を含む。
【００５８】
例示的な実施例において、サービスを購入するためのシナリオの仮想プライトベートサーバ（ＶＰＳ）プロビジョニングの間に、ユーザを介してのみ入力できる特定の入力、例えば、割り当てる物理／仮想ハードウェアリソース（例えば、メモリの量、ディスク領域の量、ＣＰＵコアの数など）、ＶＰＳ名などが必要であり得る。特定のシナリオは、任意の数の高レベルステップおよびプレースホールダーを含み得ることを理解すべきである。
【００５９】
プレースホールダー置換マネージャ３１０は、（例えば、シナリオ生成器３０４のプレースホールダー生成器３０８によって生成された可能性がある）生成されたプレースホールダーを（例えば、オファー情報アナライザー３０２によって決定され得る）オファーと関連するリソースに基づいてＤＳＬを用いて一連の低レベルステップに置換するように構成される。そうするために、プレースホールダー置換マネージャ３１０は、プレースホールダーを識別し、各プレースホールダーに対して一連の低レベルＤＳＬステップを（例えば、Ｇｈｅｒｋｉｎのようなビジネス可読ＤＳＬを使用して）決定するように構成される。したがって、低レベルステップは、対応するオファーを自動的に検証するために使用可能な検証ツールのテストケースに組み込むことができる。
【００６０】
いくつかの実施形態において、プレースホールダー置換マネージャ３１０は、プレースホールダーに対応するインタフェースのレンダリングされたビューに基づいて低レベルステップを決定するように構成される。例えば、一連の低レベルステップが、そこから決定できるように、プレースホールダー置換マネージャ３１０は、インタフェースのハイパーテキストマークアップ言語（ＨＴＭＬ）ビューをレンダリングするように構成されてもよい。さらに、プレースホールダー置換マネージャ３１０は、対応するプレースホールダーを決定された低レベルステップに置換するように構成される。低レベルステップは、通常、ほとんど全ての単一の高レベルステップがそれらから構成することができるほど十分に小さいことを理解すべきである。
【００６１】
プレースホールダー置換マネージャ３１０は、受信したユーザ入力の機能として生成されたプレースホールダーを置換するようにさらに構成される。例えば、特定の条件下で、プレースホールダー置換マネージャ３１０は、特定のプレースホールダーをサポートすることができないか、さもなければ、生成されたプレースホールダーを置換するのに必要な低レベルステップを決定することができない。このような条件下で、プレースホールダー置換マネージャ３１０は、プレースホールダーに対して低レベルステップを決定し、プレースホールダーを決定された低レベルステップに基づいてユーザ入力に置換するために使用可能であるユーザ入力を（例えば、ユーザ入力インタプリタ３１２を介して）要求し受信できる。
【００６２】
ユーザ入力インタプリタ３１２は、ユーザ入力を必要とするそれらの低レベルステップ（すなわち、そのためそれらが自動的に決定することができないもの）のためにユーザ（例えば、デベロッパー、管理者、クラウドサービスブローカーなど）から受信した入力を受信し解釈するように構成される。そうするために、ユーザ入力インタプリタ３１２は、必要な入力を提供して、提供された入力を受信するようにユーザを促すことができるように、ユーザ入力インタプリタ３１２は、インタフェースを介してユーザと通信するように構成される。さらに、ユーザ入力インタプリタ３１２は、それぞれの低レベルステップを生成するのに必要となる可能性のある受信したデータに関して任意の変換を実行するように構成される。
【００６３】
ＤＳＬ検証ツール生成器３１６は、検証ツールを生成するように構成される。そうするために、ＤＳＬ検証ツール生成器３１６は、ウェブブラウザを実行し、自動検証の特定のスクリーンを表示およびナビゲートし（例えば、図１のクラウドサービスブローカーコンピューティングデバイス１３０のクラウドサービスブローカープラットフォーム（図示せず）を介して）、かつサービスするために使用可能なウェブドライバーをパッケージ化するように構成される。したがって、生成された検証ツールは、適用可能なシナリオでパッケージ化された低レベルステップ（例えば、Ｃｕｃｕｍｂｅｒフレームワークを用いたＧｈｅｒｋｉｎが生成したステップ）を解釈し、生成された検証ツールが起動されたコンピューティングデバイスでウェブブラウザを起動して、インタフェースを介してナビゲートし、検証ツールと関連するオファーの各シナリオをテストするために再販業者および／またはエンドユーザの挙動をシミュレートすることができる。
【００６４】
ここで図４Ａおよび４Ｂを参照すると、例示的な方法４００が、オファー検証コンピューティングデバイス１２４によって、またはより詳しくは、オファー検証コンピューティングデバイス１２４の検証ツール生成器プラットフォーム１２６の構成要素の一つ以上（例えば、図３の例示的な環境３００の構成要素の一つ以上）によって実行され得るクラウドサービスブローカーシステム（例えば、図１のクラウドサービスブローカーシステム１００）に統合されるクラウドアプリケーションを自動的に検証する検証ツールを生成するために提供される。方法４００は、ブロック４０２で開始し、検証ツール生成器プラットフォーム１２６は、クラウドサービスアプリケーションオファー（すなわち、クラウドアプリケーションに対応するサービス計画）を検証すべきかどうかを決定する。
オファーは、サービステンプレートおよび課金情報を含むサービス計画を表すことを理解すべきである。
【００６５】
検証ツール生成器プラットフォーム１２６が、オファーを検証すると決定する場合、方法４００は、ブロック４０４に進み、検証ツール生成器プラットフォーム１２６は、検証されるオファーの一つ以上のシナリオを識別するのに使用可能なオファー情報を検索する。例えば、ブロック４０６において、検証ツール生成器プラットフォーム１２６は、オファーと関連するサービステンプレートおよび／またはオファーと関連するユーザインタフェース情報またはより詳しくはオファーの一つ以上のシナリオを検索する。
【００６６】
上記のように、サービステンプレートは、特定の一つ以上のシナリオと関連するリソースタイプのセットを含む。オファー情報は、追加の情報、例えば、サービスブローカーによって提供できる課金情報（例えば、請求方法、経費、請求頻度、課金モデルなど）を含み得ることを理解すべきである。ブロック４０８において、検証ツール生成器プラットフォーム１２６は、ブロック４０６において検索されたサービステンプレートに含まれる情報に基づいて、オファーと関連するリソースタイプのセットを識別する。
ブロック４１０において、検証ツール生成器プラットフォーム１２６は、どのアプリケーションパッケージが、ブロック４０８のリソースタイプのセットにおいて識別されたリソースの各々を所有する（例えば、記述する）かを決定する。
【００６７】
上記のように、シナリオの各々は、クラウドサービスブローカーが図１のクラウドアプリケーション１０６、１１０の一つとインタフェースするときに遭遇する可能性がある任意のオペレーション／機能、例えば、新しい顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成すること／割り当てること、サービスユーザをつくること、サブスクリプション計画／制限を変更すること、サブスクリプションを無効にすること／終了すること、請求書を発行することなどを含む。前にも述べたように、シナリオを生成することは、各シナリオを実行するために行われる個々のステップを識別することを必要とする。ステップのいくつかは、生成された各シナリオの一般的なステップ、例えば、完了のためにユーザ入力を必要としないステップを実行するための高レベルステップである。他のステップは、あまり一般的でないステップ、例えば、完了するためにユーザ入力を必要とするかまたは別のアプリケーションパッケージに依存するステップである。したがって、ブロック４１２において、検証ツール生成器プラットフォーム１２６は、検証されるオファーの各シナリオと関連する高レベルステップおよび任意のプレースホールダーを生成する。
【００６８】
ブロック４１４において、検証ツール生成器プラットフォーム１２６は、任意のシナリオに対してどのプレースホールダーが生成されたかどうかを決定する。そうでない場合、方法４００は、下記に詳述するようにブロック４３０に進み、さもなければ、方法４００は、図４Ｂに示すブロック４１６に分岐する。ブロック４１６において、検証ツール生成器プラットフォーム１２６は、第１のプレースホールダーを識別する。ブロック４１８において、検証ツール生成器プラットフォーム１２６は、識別されたプレースホールダーがサポートされているかどうかを決定する。そうでない場合、方法４００は、ブロック４２６に進み、検証ツール生成器プラットフォーム１２６は、別のプレースホールダーが検出されるかどうかを決定する。さもなければ、検証ツール生成器プラットフォーム１２６が、識別されたプレースホールダーがサポートされると決定する場合、方法４００は、ブロック４２０に進む。
【００６９】
ブロック４２０において、検証ツール生成器プラットフォーム１２６は、識別されたプレースホールダーに対して一つ以上の低レベルステップを決定する。例えば、ブロック４２２において、検証ツール生成器プラットフォーム１２６は、シナリオと関連するインタフェースのレンダリングされたビューからの一つ以上の検出された入力に基づいて低レベルステップを決定する。例えば、検証ツール生成器プラットフォーム１２６は、インタフェースのハイパーテキストマークアップ言語（ＨＴＭＬ）ビューをレンダリングするように構成されてもよい。したがって、インタフェース形式が、複数の入力により満たされると仮定すると、適用可能なステップ／シナリオをテストするために使用可能なこのような情報で予め生成された情報を使用して入力を満たすために一連の低レベルステップ（例えば、Ｇｈｅｒｋｉｎを用いた低レベルＤＳＬステップ）を生成できる場合がある。しかしながら、いくつかのインスタンスにおいて、予め定義された値を使用することができない場合がある。このように、いくつかの実施形態において、検証ツール生成器プラットフォーム１２６は、重複のリスクを最小限に抑えるために、例えば、一つ以上の宣言された変数に付加するか、または、さもなければ一つ以上の宣言された変数に基づいて、ランダム値を生成するように構成されてもよい。例えば、識別文字（例えば、「＄」またはいくつかの他の識別記号）は、未処理の値とは対照的に、このような変数名を識別するために用いることができる。
【００７０】
上記のように、アプリケーションパッケージは、通常、メタデータ、制御方法の記述、およびコンテンツファイルを含み、それらは、クラウドアプリケーションリソースを管理するために必要な制御方法のアプリケーションリソース、サービス、ユーザインタフェース構成要素、および論理を宣言し定義するために使用可能である。さらに、低レベルステップは、アプリケーションパッケージに格納できる。したがって、ブロック４１０において識別されたそれらのアプリケーションパッケージは、一つ以上のシナリオと関連する低レベルステップの一つ以上を識別するために用いることができる。
【００７１】
ブロック４２４において、検証ツール生成器プラットフォーム１２６は、識別されたプレースホールダーを決定された低レベルステップに置換する。ブロック４２６において、検証ツール生成器プラットフォーム１２６は、次のプレースホールダーを識別する。ブロック４２８において、検証ツール生成器プラットフォーム１２６は、プレースホールダーが検出されたかどうかを決定する。別のプレースホールダーが検出された場合、方法４００は、ブロック４１８に戻って、他の検出されたプレースホールダーがサポートされているかどうかを決定する。さもなければ、別のプレースホールダーが検出されない場合、方法４００は、図４Ａに示すブロック４３０に分岐する。
【００７２】
ブロック４３０において、一つ以上の低レベルステップがサポートされなかったか、さもなければ検証ツール生成器プラットフォーム１２６により判定不能のような実施形態において、検証ツール生成器プラットフォーム１２６は、低レベルステップが判定不能の各適用可能なプレースホールダーに対して低レベルステップを決定するためにユーザから情報を要求する。換言すれば、いくつかの低レベルステップは、ユーザ入力および／または低レベルステップの少なくとも一部の正確さの検証が必要とされる場合を除き十分に判定不能であった場合がある。したがって、例えば、ブロック４３２において、検証ツール生成器プラットフォーム１２６は、対応するシナリオをユーザ（例えば、クラウドサービスブローカー）に（例えば、ユーザインタフェースを介して）表示することができ、それと関連する追加の入力データおよび／または修正を要求する。いくつかの実施形態において、いずれのシナリオも、プレースホールダーを含まない場合があり、その場合、方法４００は、ブロック４１４からブロック４４０へ直接進むことができることを理解すべきである。これについては後述する。
【００７３】
ブロック４３４において、検証ツール生成器プラットフォーム１２６は、要求された情報が受信されたかどうかを決定する。そうでない場合、方法４００は、ブロック４３６に分岐し、検証ツール生成器プラットフォーム１２６は、方法がブロック４４０に進む前に検証することから、プレースホールダー（すなわち、低レベルステップと対照的に）を有するそれらのシナリオを除外する。これについては後述する。さもなければ、検証ツール生成器プラットフォーム１２６が、要求された低レベルステップに対応する情報が受信されたと決定する場合、方法４００は、ブロック４３８に分岐し、方法が、ブロック４４０に進む前に、検証ツール生成器プラットフォーム１２６は、受信データに基づいて適用可能なプレースホールダーを置換する。ブロック４４０において、検証ツール生成器プラットフォーム１２６は、クラウドサービスアプリケーションオファーの実行依存性と低レベルステップを検証ツールに組み合わせる。換言すれば、生成された高レベルステップおよび低レベルステップ（すなわち、除外されなかったシナリオと関連するそれらの低レベルステップ）は、シナリオの関連する実行依存性とともに検証ツールにパッケージ化される。
【００７４】
ここで図５を参照すると、例示的な方法５００は、（例えば、関連するクラウドアプリケーション開発インタフェースを介して）アプリケーションベンダーコンピューティングデバイス１０２の一つによって実行され得るクラウドサービスブローカーシステム（例えば、図１のクラウドサービスブローカーシステム１００）に統合されるクラウドアプリケーションを自動的に検証するために提供される。方法５００は、アプリケーションベンダーコンピューティングデバイス１０２の一つにより実行されるとして本願明細書に記載されているが、別のコンピューティングデバイス（例えば、図１のクラウドサービスブローカーコンピューティングデバイス１３０）および／またはプラットフォーム（例えば、図１のクラウドサービスブローカーコンピューティングデバイス１３０のクラウドサービスブローカープラットフォーム（図示せず））は、他の実施形態において、クラウドアプリケーションを自動的に検証するように構成されてもよいことを理解すべきである。方法５００は、ブロック５０２で開始し、アプリケーションベンダーコンピューティングデバイス１０２は、検証ツールを起動するかどうかを決定する。したがって、検証ツールは、（例えば、図４の方法４００を参照して上に記述したように）生成されて、方法５００の実行の前にクラウドサービスブローカーコンピューティングデバイス１３０にダウンロードされたことを理解すべきである。
【００７５】
クラウドサービスブローカーコンピューティングデバイス１３０が、（例えば、検証ツールの実行を開始するために判定できるユーザ入力に基づいて）検証ツールを起動するかどうかを決定する場合、方法５００は、ブロック５０４に進む。ブロック５０４において、クラウドサービスブローカーコンピューティングデバイス１３０は、クラウドサービスブローカーコンピューティングデバイス１３０のウェブブラウザを起動するか、さもなければ開く。ブロック５０６において、検証ツールのユーザが、自動的に実行される検証テストを観察できるように、クラウドサービスブローカーコンピューティングデバイス１３０は、検証ツールにパッケージ化されたＤＳＬを実行し、検証シーケンスの結果をウェブブラウザに表示する。
【００７６】
ブロック５０８において、クラウドサービスブローカーコンピューティングデバイス１３０は、検証シーケンスが完了したかどうかを決定する。その場合、方法５００は、ブロック５１０に進み、クラウドサービスブローカーコンピューティングデバイス１３０は、それぞれのクラウドサービスアプリケーションオファーに対して検証ツールにより実行された自動検証の結果に基づいて検証状況報告を作成し表示する。
【００７７】
本開示は、図面および上記の説明において例示され詳述されたが、それは、特性においても、例示的であり、限定的でないとみなされるべきである。特定の実施形態のみが示されて説明されたものであり、本開示の精神の範囲に入るすべての変更と修飾が保護されることが望ましいことが理解される。
【図１】
2020529066.tif 000003
【図２】
2020529066.tif 000004
【図３】
2020529066.tif 000005
【図４Ａ】
2020529066.tif 000006
【図４Ｂ】
2020529066.tif 000007
【図５】
2020529066.tif 000008
【国際調査報告】
2020529066.tif 000009