特表2020-529066(P2020-529066A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ イングラム マイクロ インコーポレーテッドの特許一覧

特表2020-529066クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
<>
  • 特表2020529066-クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術 図000003
  • 特表2020529066-クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術 図000004
  • 特表2020529066-クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術 図000005
  • 特表2020529066-クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術 図000006
  • 特表2020529066-クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術 図000007
  • 特表2020529066-クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2020-529066(P2020-529066A)
(43)【公表日】2020年10月1日
(54)【発明の名称】クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
(51)【国際特許分類】
   G06Q 30/02 20120101AFI20200904BHJP
   G06Q 50/10 20120101ALI20200904BHJP
【FI】
   G06Q30/02
   G06Q50/10
【審査請求】未請求
【予備審査請求】未請求
【全頁数】25
(21)【出願番号】特願2020-503298(P2020-503298)
(86)(22)【出願日】2018年7月25日
(85)【翻訳文提出日】2020年3月18日
(86)【国際出願番号】US2018043711
(87)【国際公開番号】WO2019023353
(87)【国際公開日】20190131
(31)【優先権主張番号】15/663,182
(32)【優先日】2017年7月28日
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】518279875
【氏名又は名称】イングラム マイクロ インコーポレーテッド
(74)【代理人】
【識別番号】100138760
【弁理士】
【氏名又は名称】森 智香子
(72)【発明者】
【氏名】コリヤキン,ロスティスラフ
(72)【発明者】
【氏名】ドゥビンスキー,ヴィアチェスラフ
(72)【発明者】
【氏名】ハキミャノフ,ティムール
(72)【発明者】
【氏名】ヴァグリン,イゴール
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049BB03
5L049CC12
(57)【要約】
クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術は、検証されるオファーのシナリオを識別して、クラウドアプリケーションと関連するアプリケーションパッケージに対応するオファーのシナリオに対して一連の高レベルステップおよびプレースホールダーを生成するように構成されるオファー検証コンピューティングデバイスを含む。オファー検証コンピューティングデバイスは、プレースホールダーの各々に対して一つ以上の低レベルステップを決定し、プレースホールダーの各々を対応する一つ以上の関連する低レベルステップに置換して、一つ以上の関連する低レベルステップおよび生成された高レベルステップをオファーのシナリオの機能を自動的に検証するためにクラウドサービスブローカーシステムによって使用可能である検証ツールにパッケージ化するようにさらに構成される。本願明細書では、さらなる実施形態を説明する。
【特許請求の範囲】
【請求項1】
クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する方法であって、
前記クラウドサービスブローカーシステムのオファー検証コンピューティングデバイスによって、検証されるオファーの一つ以上のシナリオを識別するステップであって、前記オファーは、クラウドアプリケーションに対応するサービス計画と関連するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のシナリオの各々に対して一つ以上の高レベルステップを生成するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のシナリオのいずれかが一つ以上のプレースホールダーを含むかどうかを決定するステップであって、各プレースホールダーは、高レベルステップではないステップを含むステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、前記それぞれの一つ以上のシナリオに対して前記一つ以上のプレースホールダーを生成するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップと、
前記オファー検証コンピューティングデバイスによって、前記決定された一つ以上のプレースホールダーを前記決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップに置換するステップと、
前記オファー検証コンピューティングデバイスによって、前記一つ以上の関連する低レベルステップおよび前記一つ以上の高レベルステップを前記オファーの前記一つ以上のシナリオの前記機能を自動的に検証するために使用可能な検証ツールにパッケージ化するステップと、
を含む方法。
【請求項2】
前記検証コンピューティングデバイスのユーザインタフェースを介して、前記一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求するステップと、
前記ユーザインタフェースを介して、前記ユーザから要求された前記追加の入力データを受信するステップと、
をさらに含み、
前記一つ以上の生成されたプレースホールダーの各々を置換するステップは、前記ユーザから受信した前記追加の入力データに基づいて前記一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含む請求項1に記載の方法。
【請求項3】
前記追加の入力データを前記ユーザに要求するステップは、前記低レベルステップの一つ以上が判定不能であるとの決定に応じて、前記追加の入力データを前記ユーザに要求することを含む請求項2に記載の方法。
【請求項4】
前記オファー検証コンピューティングデバイスによって、前記低レベルステップの一つ以上が判定不能と決定したことに応じて、前記シナリオを前記検証ツールから除外するステップをさらに含む請求項1に記載の方法。
【請求項5】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定するステップは、(i)前記シナリオのインタフェースのハイパーテキストマークアップ言語(HTML)ビューをレンダリングすることと、(ii)前記シナリオの前記インタフェースの前記レンダリングされたHTMLビューに基づいて前記一つ以上の低レベルステップの少なくとも一部を決定することを含む請求項1に記載の方法。
【請求項6】
前記オファーは、前記オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む請求項1に記載の方法。
【請求項7】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定するステップは、(i)前記サービステンプレート構成要素によって定義されるリソースのセットと関連する一つ以上のアプリケーションパッケージを決定することと、(ii)前記一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて前記一つ以上の低レベルステップの少なくとも一部を決定することを含む請求項6に記載の方法。
【請求項8】
前記オファー検証コンピューティングデバイスによって、サービスとリソースの前記セットの機能としてリソースタイプのセットを識別するステップと、
リソースタイプの前記セットの各々に対応する一つ以上のアプリケーションパッケージを決定するステップと、
をさらに含み、
前記一つ以上のシナリオに対して前記一つ以上の高レベルステップを生成するステップは、リソースタイプの前記セットの各々に対して決定される前記一つ以上のアプリケーションパッケージの機能として前記一つ以上の高レベルステップを生成することを含む請求項6に記載の方法。
【請求項9】
前記オファーの前記一つ以上のシナリオは、顧客をつくること、前記顧客のためにサブスクリプションを購入すること、サービスを作成すること、前記サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、前記サブスクリプションを無効にすること、前記サブスクリプションを終了すること、および前記顧客に請求書を発行することの少なくとも一つを含む請求項1に記載の方法。
【請求項10】
クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する前記クラウドサービスブローカーシステムのオファー検証コンピューティングデバイスであって、
命令を含む一つ以上のコンピュータ可読媒体と、
前記一つ以上のコンピュータ可読媒体に連結して、
クラウドアプリケーションに対応するサービス計画と関連する、検証されるオファーの一つ以上のシナリオを識別し、
前記一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、前記それぞれの一つ以上シナリオに対して一つ以上のプレースホールダーを生成し、
前記一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定し、
前記決定された一つ以上のプレースホールダーの各々を前記決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップと置換し、
前記一つ以上の関連する低レベルステップおよび前記一つ以上の高レベルステップを前記オファーの前記一つ以上のシナリオの前記機能を自動的に検証するために使用可能な検証ツールにパッケージ化する
ために前記命令を実行するように構成される一つ以上のプロセッサと、
を備えるオファー検証コンピューティングデバイス。
【請求項11】
前記一つ以上のプロセッサは、
前記オファー検証コンピューティングデバイスのユーザインタフェースを介して、前記一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求し、
前記ユーザインタフェースを介して、前記ユーザから要求された前記追加の入力データを受信する
ために前記命令を実行するようにさらに構成され、
前記一つ以上の生成されたプレースホールダーの各々を置換することは、前記ユーザから受信した前記追加の入力データに基づいて前記一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含む請求項10に記載のオファー検証コンピューティングデバイス。
【請求項12】
前記追加の入力データを前記ユーザに要求することは、前記低レベルステップの一つ以上が判定不能であるとの決定に応じて、前記追加の入力データを前記ユーザに要求することを含む請求項11に記載のオファー検証コンピューティングデバイス。
【請求項13】
前記一つ以上のプロセッサは、前記低レベルステップの一つ以上が判定不能と決定したことに応じて、前記シナリオを前記検証ツールから除外するために前記命令を実行するようにさらに構成される請求項10に記載のオファー検証コンピューティングデバイス。
【請求項14】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定することは、(i)前記シナリオのインタフェースのハイパーテキストマークアップ言語(HTML)ビューをレンダリングして、(ii)前記シナリオの前記インタフェースの前記レンダリングされたHTMLビューに基づいて前記一つ以上の低レベルステップを決定することを含む請求項10に記載のオファー検証コンピューティングデバイス。
【請求項15】
前記オファーは、前記オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む請求項10に記載のオファー検証コンピューティングデバイス。
【請求項16】
前記一つ以上の生成されたプレースホールダーの各々に対して前記一つ以上の低レベルステップを決定することは、(i)前記サービステンプレート構成要素によって定義されたリソースのセットと関連する一つ以上のアプリケーションパッケージを決定して、(ii)前記一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて前記一つ以上の低レベルステップの少なくとも一部を決定することを含む請求項15に記載のオファー検証コンピューティングデバイス。
【請求項17】
前記一つ以上のプロセッサは、
サービスとリソースの前記セットの機能としてリソースタイプのセットを識別し、
リソースタイプの前記セットの各々に対応する一つ以上のアプリケーションパッケージを決定するために前記命令を実行する
ようにさらに構成され、
前記一つ以上のシナリオに対して前記一つ以上の高レベルステップを生成することは、リソースタイプの前記セットの各々に対して決定された前記一つ以上のアプリケーションパッケージの機能として前記一つ以上の高レベルステップを生成することを含む請求項15に記載のオファー検証コンピューティングデバイス。
【請求項18】
前記オファーの前記一つ以上のシナリオは、顧客をつくること、前記顧客のためにサブスクリプションを購入すること、サービスを作成すること、前記サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、前記サブスクリプションを無効にすること、前記サブスクリプションを終了すること、および前記顧客に請求書を発行することの少なくとも一つを含む請求項10に記載のオファー検証コンピューティングデバイス。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、国際出願であり、2017年7月28日に出願された米国特許出願第15/663,182号の優先権の利益を主張するものであり、その本文および図面はその全体が参照により本願明細書に組み込まれる。
【0002】
本開示の実施形態は、概してクラウドサービスブローカー業務、より詳細には、クラウドサービスブローカーシステムに統合されるオファーの機能を自動的に検証する技術に関する。
【背景技術】
【0003】
独立系ソフトウェアベンダー(ISV)は、一つ以上のコンピュータハードウェアまたはオペレーティングシステムプラットフォーム上で動作するように通常設計されるソフトウェアアプリケーションを開発し販売している。ISVは、また、それらのアプリケーションのサブスクリプションを販売し提供する。アプリケーションは、通常、ユーザの嗜好に従って構成することができるサービスのセットを提供する。ISVは、アプリケーションごとにアプリケーションプログラミングインタフェース(API)を提供する。APIは、外部アプリケーション用にアプリケーションにより提供されるクラス、手順、機能、構造、および定数のセットを含む。
【0004】
このようなISVが開発したソフトウェアアプリケーションは、基本ユーティリティまたは生産性向上アプリケーションから企業用ビジネスプロセスアプリケーション(例えば、顧客関係管理(CRM)、企業資源計画(ERP)、自動化ツールなど)に及んでいる。クラウドコンピューティングのさらなる普及につれて、ソフトウェアを配信する一つの方法は、サービスとしてのソフトウェア(SaaS)ベースのモデルを使用するクラウドを介するものであった。この配信方法を使用して、ISVは、パブリッククラウドまたはクラウドマーケットプレースを介して、それらのソフトウェアアプリケーション、またはそれらのソフトウェアアプリケーションのサブスクリプションを販売できる。
【0005】
クラウドマーケットプレースは、クラウドベースのサービスおよびソフトウェアアプリケーションへの顧客アクセスのためにオンライン店頭を提供するが、クラウドサービスブローカーは、例えば、各クラウドサービスに対して統合アプリケーションまたはAPIコネクタを用いて、ISVとエンドユーザ、再販業者、小売業者などとの間の取引を容易にするために用いられることができる。従来のクラウドサービスブローカーの実施態様において、各クラウドサービスブローカーには、通常、統合アプリケーションを作成し管理するために(例えば、ポータルを介して)アクセスすることができる、プラットフォームおよび/またはインフラストラクチャへのクラウドサービスブローカーアクセスを与える各クラウドサービスに対して各ISVとの契約があり、それによって、それらのサービスが、クラウドにおいて購入され、プロビジョニングされ、実行されることが可能になる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ISVによって開発されているアプリケーションに続いて、クラウドサービスブローカーは、通常、アプリケーションに対応するアプリケーションパッケージをプラットフォーム(例えば、クラウドサービスブローカープラットフォーム)にアップロードする。その後、クラウドサービスブローカーは、再販業者の階層から次のレベル再販業者のために、リソース、統合クラウドアプリケーションと関連するサービス、およびクラウドサービスブローカーの課金ルールの様々な組み合わせによるオファーを形成できる。通常、消費者にアプリケーションを提供する前に、クラウドサービスブローカーは、アプリケーションの完全性を確保しアプリケーションが予想通りに機能していることを検証するために、一連のチェックを実行する。しかしながら、このようなチェックは、通常、クラウドサービスブローカーが時間と金の面で多大な費用を要する可能性がある手作業の方法を使用して実行される。したがって、クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術の改良が必要である。
【課題を解決するための手段】
【0007】
一つの態様において、クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する方法は、クラウドサービスブローカーシステムのオファー検証コンピューティングデバイスによって、検証されるオファーの一つ以上のシナリオを識別するステップであって、オファーは、クラウドアプリケーションに対応するサービス計画と関連するステップと、オファー検証コンピューティングデバイスによって、一つ以上のシナリオの各々に対して一つ以上の高レベルステップを生成するステップと、オファー検証コンピューティングデバイスによって、一つ以上のシナリオのいずれかが一つ以上のプレースホールダーを含むかどうかを決定するステップであって、各プレースホールダーは、高レベルステップではないステップを含むステップと、オファー検証コンピューティングデバイスによって、一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、それぞれの一つ以上のシナリオに対して一つ以上のプレースホールダーを生成するステップと、オファー検証コンピューティングデバイスによって、一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップと、オファー検証コンピューティングデバイスによって、決定された一つ以上のプレースホールダーを決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップと置換するステップと、オファー検証コンピューティングデバイスによって、一つ以上の関連する低レベルステップと一つ以上の高レベルステップをオファーの一つ以上のシナリオの機能を自動的に検証するために使用可能な検証ツールにパッケージ化するステップとを含む。
【0008】
いくつかの実施形態において、方法は、オファー検証コンピューティングデバイスのユーザインタフェースを介して、一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求するステップと、ユーザインタフェースを介して、ユーザから要求された追加の入力データを受信するステップであって、一つ以上の生成されたプレースホールダーの各々を置換するステップは、ユーザから受信した追加の入力データに基づいて一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含むステップとをさらに含む。他の実施形態において、追加の入力データをユーザに要求するステップは、低レベルステップの一つ以上が判定不能であるとの決定に応じて、追加の入力データをユーザに要求することを含む。
【0009】
いくつかの実施形態において、方法は、オファー検証コンピューティングデバイスによって、低レベルステップの一つ以上が判定不能と決定すると、シナリオを検証ツールから除外するステップをさらに含む。他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップは、(i)シナリオのインタフェースのハイパーテキストマークアップ言語(HTML)ビューをレンダリングすること、および(ii)シナリオのインタフェースのレンダリングされたHTMLビューに基づいて一つ以上の低レベルステップの少なくとも一部を決定することを含む。
【0010】
いくつかの実施形態において、オファーは、オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む。他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定するステップは、(i)サービステンプレート構成要素によって定義されるリソースのセットと関連する一つ以上のアプリケーションパッケージを決定すること、および(ii)一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて一つ以上の低レベルステップの少なくとも一部を決定することを含む。
【0011】
さらに他の実施形態において、方法は、オファー検証コンピューティングデバイスによって、サービスとリソースのセットの機能としてリソースタイプのセットを識別するステップと、リソースタイプのセットの各々に対応する一つ以上のアプリケーションパッケージを決定するステップであって、一つ以上のシナリオに対して一つ以上の高レベルステップを生成することは、リソースタイプのセットの各々に対して決定される一つ以上のアプリケーションパッケージの機能として一つ以上の高レベルステップを生成することを含むステップとを含む。いくつかの実施形態において、オファーの一つ以上のシナリオは、顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成すること、サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、サブスクリプションを無効にすること、サブスクリプションを終了すること、および顧客に請求書を送ることの少なくとも一つを含む。
【0012】
別の態様において、クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証するクラウドサービスブローカーシステムのオファー検証コンピューティングデバイスは、命令を含む一つ以上のコンピュータ可読媒体と、一つ以上のコンピュータ可読媒体に連結して、検証されるオファーの一つ以上のシナリオを識別し、オファーは、クラウドアプリケーションに対応するサービス計画と関連し、一つ以上のシナリオの少なくとも一つが一つ以上のプレースホールダーを含むと決定したことに応じて、それぞれの一つ以上のシナリオに対して一つ以上のプレースホールダーを生成し、一つ以上のプレースホールダーの各々に対して一つ以上の低レベルステップを決定し、決定された一つ以上のプレースホールダーの各々を決定された一つ以上の低レベルステップの対応する一つ以上の関連する低レベルステップと置換し、一つ以上の関連する低レベルステップと一つ以上の高レベルステップをオファーの一つ以上のシナリオの機能を自動的に検証するのに使用可能な検証ツールにパッケージ化するために命令を実行するように構成される一つ以上のプロセッサとを備える。
【0013】
いくつかの実施形態において、一つ以上のプロセッサは、オファー検証コンピューティングデバイスのユーザインタフェースを介して、一つ以上の低レベルステップを決定すると、追加の入力データをユーザに要求して、ユーザインタフェースを介して、ユーザから要求された追加の入力データを受信するために命令を実行するようにさらに構成され、一つ以上の生成されたプレースホールダーを置換することは、ユーザから受信した追加の入力データに基づいて一つ以上の生成されたプレースホールダーの少なくとも一つを置換することを含む。
【0014】
いくつかの実施形態において、追加の入力データをユーザに要求することは、低レベルステップの一つ以上が判定不能であるとの決定に応じて、追加の入力データをユーザに要求することを含む。他の実施形態において、一つ以上のプロセッサは、低レベルステップの一つ以上が判定不能と決定すると、シナリオを検証ツールから除外するために命令を実行するようにさらに構成される。さらに他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定することは、(i)シナリオのインタフェースのハイパーテキストマークアップ言語(HTML)ビューをレンダリングして、(ii)シナリオのインタフェースのレンダリングされたHTMLビューに基づいて一つ以上の低レベルステップを決定することを含む。
【0015】
いくつかの実施形態において、オファーは、オファーの一つ以上のサービスシナリオを実行するために必要なサービスとリソースのセットを定義するサービステンプレート構成要素を含む。他の実施形態において、一つ以上の生成されたプレースホールダーの各々に対して一つ以上の低レベルステップを決定することは、(i)サービステンプレート構成要素によって定義されるリソースのセットと関連する一つ以上のアプリケーションパッケージを決定し、(ii)一つ以上のアプリケーションパッケージの少なくとも一つに含まれる低レベルステップのセットに基づいて一つ以上の低レベルステップの少なくとも一部を決定することを含む。さらに他の実施形態において、一つ以上のプロセッサは、サービスとリソースのセットの機能としてリソースタイプのセットを識別して、リソースタイプのセットの各々に対応する一つ以上のアプリケーションパッケージを決定するために命令を実行するようにさらに構成され、一つ以上のシナリオに対して一つ以上の高レベルステップを生成することは、リソースタイプのセットの各々に対して決定される一つ以上のアプリケーションパッケージの機能として一つ以上の高レベルステップを生成することを含む。
【0016】
いくつかの実施形態において、オファーの一つ以上のシナリオは、顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成すること、サービスを割り当てること、サービスユーザをつくること、サブスクリプション計画を変更すること、サブスクリプション制限を変更すること、サブスクリプションを無効にすること、サブスクリプションを終了すること、および顧客に請求書を送ることの少なくとも一つを含む。
【0017】
実施形態ならびに本願明細書に含まれる他の特徴、利点、および開示、ならびにそれらを達成する方法は、明らかになり、本開示は、添付図面に関連してなされる本開示の様々な例示的な実施形態の以下の説明を参照してよりよく理解できる。
【図面の簡単な説明】
【0018】
図1】一つ以上のアプリケーションベンダーコンピューティングデバイス、一つ以上のクラウドアプリケーション統合ホストコンピューティングデバイス、オファー検証コンピューティングデバイス、およびサービスブローカーコンピューティングデバイスを備えるクラウドサービスブローカーシステムのオファーの機能を自動的に検証するクラウドサービスブローカーシステムの例示的な実施形態のブロック図である。
図2図1のオファー検証コンピューティングデバイスの例示的な環境のブロック図である。
図3図1のクラウドサービスブローカーシステムのコンピューティングデバイスの一つの例示的な実施形態のブロック図である。
図4A-4B】図1および2のオファー検証コンピューティングデバイスによって実行され得るクラウドサービスブローカーシステムに対応する統合アプリケーションを介して統合されるクラウドアプリケーションを自動的に検証する検証ツールを生成する例示的な方法の概略フロー図である。
図5図1のサービスブローカーコンピューティングデバイスによって実行され得るクラウドサービスブローカーシステムに統合されるクラウドアプリケーションを自動的に検証する例示的な方法の概略フロー図である。
【発明を実施するための形態】
【0019】
本開示の原理の理解を促進するために、図面に示される実施形態をここで参照し、特定の言語を用いてそれを記述する。それにもかかわらず、本開示の範囲の限定はそれにより意図されないことを理解されたい。
【0020】
図1は、クラウドサービスブローカーシステム100のオファーの機能を自動的に検証するクラウドサービスブローカーシステム100を示す。クラウドサービスブローカーシステム100は、一つ以上のアプリケーションベンダーコンピューティングデバイス102、一つ以上のクラウドアプリケーション統合ホストコンピューティングデバイス112、オファー検証コンピューティングデバイス124、およびサービスブローカーコンピューティングデバイス130を備え、各々はコンピューティングデバイス150を備える。使用中、クラウドサービスベンダー(例えば、独立糸ソフトウェアベンダー(ISV))と関連するクラウドサービスアプリケーションは、クラウドベースのアプリケーションである。
【0021】
通常、クラウドサービスアプリケーションをマーケットプレース(例えば、クラウドサービスブローカーマーケットプレース)に統合し分散するために、ISV(例えば、アプリケーションベンダーコンピューティングデバイス102と関連するアプリケーションベンダー)は、マーケットプレースによってサポートされる一つ以上の様々な標準(例えば、Parallels(登録商標)アプリケーションパッケージ標準(APS))に従ってアプリケーションパッケージを提供する。アプリケーションパッケージは、通常、メタデータ、制御方法の記述、およびコンテンツファイルを含み、それらは、クラウドアプリケーションリソースを管理するために必要な制御方法のアプリケーションリソース、サービス、ユーザインタフェース構成要素、および論理を定義するために使用可能である。したがって、様々なリソース、テンプレート、サービス計画などは、クラウドサービスブローカーによってアプリケーションパッケージに関連付けることができる。さらに、アプリケーションパッケージに基づいて、クラウドサービスブローカーは、別の統合構成要素 ― 統合クラウドアプリケーション(例えば、図1の統合クラウドアプリケーション114を参照)を展開できる。
【0022】
このような統合クラウドアプリケーションは、それぞれの統合クラウドアプリケーションに特有のAPIコールを使用してサービスブローカーコンピューティングデバイス130から受信した制御方法によってアプリケーションプログラミングインタフェース(API)コールを翻訳するように構成される。したがって、アプリケーションパッケージおよび統合クラウドアプリケーション(例えば、統合クラウドアプリケーション(1)118、統合クラウドアプリケーション(N)122など)を用いて、クラウドアプリケーションのインスタンスは、マーケットプレースを介して一人以上のエンドユーザ(例えば、顧客、ブローカー、再販業者など)にライセンス(すなわち、サービスとして)を与えるために利用できる。さらに、いくつかの実施形態において、統合クラウドアプリケーションは、それらのアプリケーションパッケージの変更および拡張を介して他のクラウドアプリケーション/サービス/記憶装置(例えば、クラウドアプリケーション(1)106およびクラウドアプリケーション(N)110)と協働するようにクラウドサービスブローカーによって構成されてもよい。
【0023】
クラウドアプリケーションの統合がクラウドサービスブローカーによってテストされる必要がある様々なインスタンスがある。例えば、統合クラウドアプリケーションは、クラウドアプリケーションが生産段階に進むことを予想して開発段階にある時のように、(例えば、クラウドサービスブローカーマーケットプレースにおいて)販売のために発表される前にテストする必要があり得る。別の例において、統合クラウドアプリケーションは、最新版が作成された後にテストする必要があり得る。このようなテストは、クラウドサービスブローカーが遭遇する可能性がある任意の予想されるサービスシナリオ、例えば、顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成する/割り当てること、サービスユーザをつくること、サブスクリプション計画/制限を変更すること、サブスクリプションを無効にする/終了すること、および請求書を送ることなどを含み得る。
【0024】
さらに、統合クラウドアプリケーションは、一つ以上のオファーの機能を検証するためにテストする必要があり得る。例えば、クラウドサービスブローカーがクライアントのために新規なオファーを形成する状況で、クラウドサービスブローカーは、オファーが正しく機能していることを検証することも必要である。さもなければ、クライアントは、後の時点でオファーを得るかまたは変更するときにいくつかの問題点を経験する可能性がある。このような問題は、例えば、クラウドサービスブローカーのユーザインタフェースの誤って機能している構成要素が誤った制御要求をアプリケーションベンダーのユーザインタフェースに送信するときに、クライアント側だけでなく、アプリケーションベンダーの側にも現れる可能性がある。
【0025】
しかしながら、現在の手動テスト手順とは異なり、クラウドサービスブローカーシステム100、またはより詳細には本願明細書に開示されるオファー検証コンピューティングデバイス124は、テストを自動的に実行するのに使用可能な検証ツールを生成するように構成される。そうするために、下記でさらに詳述するように、オファー検証コンピューティングデバイス124は、特定のサービスシナリオに関連する、サービス計画情報、サービステンプレート情報、リソース情報などに基づいて実行できるような、各サービスシナリオの検証を実行するために用いられるステップに基づいて検証ツールを生成するように構成される。したがって、生成された検証ツールは、統合アプリケーションの様々なシナリオを自動的にテスト/検証するためにアプリケーションベンダーまたはクラウドサービスブローカーによって使用できる。様々なシナリオのこのような自動テスト/検証は、例えば、統合段階で、新規なオファーで、および/または既存のオファーに対する更新で実行できる。
【0026】
クラウドサービスブローカーコンピューティングデバイス130は、アプリケーションパッケージに含まれる関連するユーザインタフェース構成要素の情報に基づいて、ユーザインタフェースレベルで統合を提供するようにさらに構成される。そうするために、クラウドサービスブローカーコンピューティングデバイス130は、それぞれのクラウドアプリケーション106、110の機能的なユーザインタフェース構成要素を備えたハイブリッドユーザインタフェースを提供するように構成される。したがって、クラウドサービスブローカーコンピューティングデバイス130(例えば、クラウドサービスブローカー)の所有者は、チェーンのさらに下の再販業者に対して一つ以上のオファーを構成することができる。本願明細書では、オファーは、アプリケーションパッケージを使用して一つ以上のサービスを販売するように構成されるサービス計画である。そうするために、各オファーは、サービステンプレート構成要素および課金構成要素を含む。
【0027】
サービステンプレート構成要素は、アプリケーションベンダーの一つ以上のクラウドアプリケーション/サービス、リソースの量、多くのユーザーアカウント、および他のカスタム化からのこれらのサービスにより管理されるサービスとリソースのセットを定義する。課金構成要素は、オファーによって実施することになっている一つ以上の課金ルールを定義する。さらに、オファーは、クライアントに対してユーザインタフェース表示をあらかじめ定義する。換言すれば、オファーを得る際に、ユーザは、サービスまたはリソースがオファーにおいて識別されたそれらのクラウドアプリケーションのみを有する統合されたユーザインタフェースを見る。このように、クラウドサービスブローカーコンピューティングデバイス130は、統合されたユーザインタフェースと関連する機能に関してオファーの機能を検証するように構成される。
【0028】
上記のように、例示的なクラウドサービスブローカーシステム100は、クラウドアプリケーションを開発しそのホストとして働くために使用可能な一つ以上のアプリケーションベンダーコンピューティングデバイス102、および関連する統合クラウドアプリケーションのホストとして働くために使用可能な一つ以上のクラウドアプリケーション統合ホストコンピューティングデバイス112を含む。例示的なアプリケーションベンダーコンピューティングデバイス102は、アプリケーションベンダーコンピューティングデバイス(1)104として指定される第1のアプリケーションベンダーコンピューティングデバイス102、およびアプリケーションベンダーコンピューティングデバイス(N)108として指定される「第N」のアプリケーションベンダーコンピューティングデバイス102を含む。第Nのアプリケーションベンダーコンピューティングデバイス102(すなわち、アプリケーションベンダーコンピューティングデバイス(N)108)は、「N」の追加のアプリケーションベンダーコンピューティングデバイス102を表し、「N」は正の整数値であることを理解すべきである。それぞれのアプリケーションベンダーコンピューティングデバイス102の各々が、単一のコンピューティングデバイス150として示されているが、アプリケーションベンダーコンピューティングデバイス102の一つ以上は、複数のコンピューティングデバイス150から構成されてもよいことをさらに理解すべきである。
【0029】
アプリケーションベンダーコンピューティングデバイス102の各々は、それぞれのクラウドアプリケーションを例示的に示す。このように、例示的なアプリケーションベンダーコンピューティングデバイス104は、クラウドアプリケーション(1)106として指定される第1のクラウドアプリケーションを含む。同様に、例示的なアプリケーションベンダーコンピューティングデバイス108は、クラウドアプリケーション(N)110として指定される別のクラウドアプリケーションを含む。第Nのクラウドアプリケーション(すなわち、アプリケーションベンダーコンピューティングデバイス(N)110)は、「N」の追加のクラウドアプリケーションを表し、「N」は正の整数値であることを理解すべきである。
【0030】
上記のように、クラウドアプリケーション(例えば、クラウドアプリケーション(1)106およびクラウドアプリケーション(N)110)に関する情報は、アプリケーションパッケージの形で提示される。それは、クラウドサービスブローカーマーケットプレースでサポートされる一つ以上の様々な標準に従ってパッケージ化されている。各アプリケーションパッケージは、アプリケーションパッケージに対応する統合アプリケーションのアドレスを指す、一つ以上のアプリケーションパッケージインスタンスを有することができることを理解すべきである。いくつかの展開スキーマにおいて、いくつかのアプリケーションパッケージインスタンスは、いくつかの地理的ハブにあることをさらに理解すべきである。
【0031】
上にも記したように、各アプリケーションパッケージは、それぞれのクラウドアプリケーション統合ホストコンピューティングデバイス112の下で動作するとして例示的に示されている、対応する統合クラウドアプリケーションと関連する。例示的なクラウドアプリケーション統合ホストコンピューティングデバイス112は、クラウドアプリケーション統合ホストコンピューティングデバイス(1)116として指定される第1のクラウドアプリケーション統合ホストコンピューティングデバイス112、およびクラウドアプリケーション統合ホストコンピューティングデバイス(N)120として指定される「第N」のクラウドアプリケーション統合ホストコンピューティングデバイス112を備える。第Nのクラウドアプリケーション統合ホストコンピューティングデバイス112(すなわち、アプリケーション統合ホストコンピューティングデバイス(N)118)は、「N」の追加のクラウドアプリケーション統合ホストコンピューティングデバイス112を表し、「N」は正の整数値であることを理解すべきである。それぞれのクラウドアプリケーション統合ホストコンピューティングデバイス112の各々が、単一のコンピューティングデバイス150として示されているが、クラウドアプリケーション統合ホストコンピューティングデバイス112の一つ以上は、複数のコンピューティングデバイス150から構成されてもよいことをさらに理解すべきである。
【0032】
クラウドアプリケーション統合ホストコンピューティングデバイス112の各々は、ネットワーク128の一部を通るそれぞれの通信チャネルを介してサービスブローカーコンピューティングデバイス130のアプリケーション統合バス148に通信可能に連結する。アプリケーション統合バス148は、クラウドアプリケーションを(例えば、サービスブローカーコンピューティングデバイス130の)クラウドサービスブローカープラットフォームと統合しクラウドアプリケーション間の通信を可能にするために使用可能な任意のタイプの通信バスとして実施できる。アプリケーション統合バス148は、それぞれのアプリケーションパッケージに記述されているリソースを用いて、制御要求(例えば、プロビジョニング、顧客登録、新規なサービスの割り当てなどのための)を策定するように構成される。
【0033】
そうするために、アプリケーション統合バス148は、適用可能な統合クラウドアプリケーション114(例えば、統合クラウドアプリケーション(1)118、統合クラウドアプリケーション(N)122など)の対応するアドレスに基づいてクラウドサービスブローカーコンピューティングデバイス130によって開始されるAPI要求(例えば、プロビジョニング、削除など)を適切な統合クラウドアプリケーション114(例えば、統合クラウドアプリケーション(1)118、統合クラウドアプリケーション(N)122など)に送るように構成される。そうすると、受信する統合クラウドアプリケーション114は、受信したAPI要求を翻訳して、翻訳された要求を適切なクラウドアプリケーション(例えば、クラウドアプリケーション(1)106、クラウドアプリケーション(N)110など)に配信できる。
【0034】
さらに、アプリケーション統合バス148は、受信する統合クラウドアプリケーション114によってアプリケーションベンダーのAPIからアプリケーション統合バス148の対応するAPIに翻訳されたREST要求を受信するように構成される。そうするために、統合クラウドアプリケーション114は、アプリケーションベンダーのAPI要求を受信したクラウドアプリケーション(例えば、クラウドアプリケーション(1)106、クラウドアプリケーション(N)110など)に代わってREST要求をアプリケーション統合バス148のエンドポイントに提出するように構成される。さらに、アプリケーション統合バス148は、REST要求を送るときにアプリケーション統合バス148にそのアイデンティティを確認するために統合クラウドアプリケーション114によって使用可能である各統合クラウドアプリケーション114のインストール中に一つしかない証明書および秘密鍵を生成するように構成される。
【0035】
オファー検証コンピューティングデバイス124をアプリケーション統合バス148に接続するネットワーク128の一部を通る通信チャネルを有するオファー検証コンピューティングデバイス124も、例示的に示される。このように、オファー検証コンピューティングデバイス124は、アプリケーション統合バス148を介してクラウドアプリケーション統合ホストコンピューティングデバイス112と通信するように構成される。より詳しくは、下記に詳述されるオファー検証コンピューティングデバイス124の検証ツール生成器プラットフォーム126は、アプリケーション統合バス148を介してそれぞれのクラウドアプリケーション統合ホストコンピューティングデバイス112の統合クラウドアプリケーション114の一つ以上と通信するように構成される。統合クラウドアプリケーション114は、APIコールを制御方法によってクラウドサービスブローカーコンピューティングデバイスからそれぞれの統合クラウドアプリケーション(例えば、統合クラウドアプリケーション118、122の一つ)に特有のAPIコールに翻訳するように構成される。
【0036】
例示的なサービスブローカーコンピューティングデバイス130は、サービスブローカープラットフォームオペレーションサポートシステム(OSS)132およびサービスブローカープラットフォームビジネスサポートシステム(BSS)140をさらに備える。サービスブローカープラットフォームOSS132は、リソースモデルを格納して、クラウドアプリケーションにリソースプロビジョニングを実行するように構成される。そうするために、例示的なサービスブローカープラットフォームOSS132は、リソースマネージャ134、サービステンプレートマネージャ136、およびプロビジョニングエンジン138を含む。リソースマネージャ134、サービステンプレートマネージャ136、およびプロビジョニングエンジン138の各々は、本願明細書に記載の機能を実行できる任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できる。
【0037】
リソースマネージャ134は、アプリケーションパッケージに記述されてクラウドアプリケーション(例えば、統合クラウドアプリケーション106、110)と関連するリソースを管理するように構成される。そうするために、サービステンプレートマネージャ136は、アプリケーションパッケージからのリソースおよび関連サービスから形成されて、各オファーと関連するサービステンプレートを管理するように構成される。例えば、リソースマネージャ134は、リソースに関する作成、読み込み、更新、および削除(CRUD)オペレーションを管理するように構成されてもよい。各サービステンプレートは、オファーの特定の一つ以上のシナリオと関連するリソースタイプのセットを含む。そうするために、リソースマネージャ134は、アプリケーションパッケージのリソースモデルを解釈するように構成される。それは、リソースタイプの完全な記述をそれぞれのクラウドアプリケーションに提供して、リソースを用いて実行できるオペレーション、ならびに対応するクラウドアプリケーションに特定のタイプのリソースを提供するよう求める方法を含む。
【0038】
いくつかの実施形態において、サービステンプレートマネージャ136は、リソースをより有用なセットに組み合わせるように構成されてもよいことを理解すべきである。サービステンプレートは、追加の情報、例えば、オファーのユーザインタフェース(UI)ナビゲーションに関する命令を含み得る。それは、例えば、クラウドアプリケーションの特定の機能を実行するために使用可能であり得る、特定のUIスクリーンでユーザに表示されるグラフィックUI要素のタイプおよび位置を含み得る場合がある。プロビジョニングエンジン138は、クラウドアプリケーションに対して識別されたリソースのプロビジョニングを実行するように構成される。
【0039】
サービスブローカープラットフォームBSS140は、課金オペレーションを実行し、リソースプロビジョニングのためにサービスブローカープラットフォームOSS132を呼び出すように構成される。そうするために、例示的なサービスブローカープラットフォームBSS140は、サービス計画マネージャ142、納税マネージャ144、および注文マネージャ146を含む。サービス計画マネージャ142は、オファーと関連するサービス計画を管理するように構成される。例えば、サービス計画マネージャ142は、オファー、リソースレートでCRUDオペレーションを行う能力を提供し、価格を指定するように構成されてもよい。納税マネージャ144は、オファーからのクラウドサービスと関連する税を管理するように構成される。例えば、納税マネージャ144は、請求書作成の間に税計算を実行するように構成されてもよい。注文マネージャ146は、オファーからのクラウドサービスの注文を管理する(例えば、作成、変更、取り消し)ように構成される。例示的な実施例において、注文マネージャ146は、サービス計画に基づいて一つ以上の注文および/または請求書を作成できる。サービス計画マネージャ142、納税マネージャ144、および注文マネージャ146の一つ以上は、本願明細書に記載されている機能を実行できる任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できることを理解すべきである。
【0040】
例示的なクラウドサービスブローカーシステム100に示すように、アプリケーションベンダーコンピューティングデバイス102、クラウドアプリケーション統合ホストコンピューティングデバイス112、オファー検証コンピューティングデバイス124、およびサービスブローカーコンピューティングデバイス130の各々は、コンピューティングデバイス150として実施される。したがって、それぞれのコンピューティングデバイス150の各々は、本願明細書に記載されている機能を実行できる任意のタイプの計算および/または記憶装置として実施できることを理解すべきである。さらに、それぞれのコンピューティングデバイス150の各々は、複数のコンピューティングデバイス150から構成されてもよいことをさらに理解すべきである。例えば、コンピューティングデバイス150の一つ以上は、一つ以上のサーバ(例えば、独立型、ラックマウント方式など)および/またはクラウド設計されたネットワークまたはデータセンター内の(例えば、ストレージエリアネットワーク(SAN)の)コンピュートブレードとデータ記憶装置の組み合わせとして実施できる。一方、他のコンピューティングデバイス150の一つ以上は、一つ以上のデスクトップコンピュータ、モバイルコンピューティングデバイス(例えば、スマートフォン、ウェアラブル機器、タブレット、ラップトップ、ノートブックなど)または他のあらゆるタイプの「スマート」かあるいはインターネット接続した装置として実施できる。
【0041】
ここで図2を参照すると、アプリケーションベンダーコンピューティングデバイス102、クラウドアプリケーション統合ホストコンピューティングデバイス112、オファー検証コンピューティングデバイス124、およびサービスブローカーコンピューティングデバイス130の一つ以上を表わすコンピューティングデバイス150の例示的な実施形態が示されている。例示的なコンピューティングデバイス150は、中央演算処理装置(CPU)200、入出力(I/O)コントローラ202、メモリ204、ネットワーク通信回路206、およびデータ記憶装置210、ならびに、いくつかの実施形態において、一つ以上のI/O周辺機器208を含む。いくつかの実施形態において、例示的な構成要素の一つ以上は、単一の集積回路(IC)上で単一のシステムオンチップ(SoC)に組み合わせることができる。代替の実施形態は、例示的なコンピューティングデバイス150のそれらに対して追加の、より少ない、および/または代替の構成要素、例えば、グラフィックスプロセッシングユニット(GPU)、電源などを含むことがあり、それらは記述の明確さを維持するために示されていないことを理解すべきである。それぞれのコンピューティングデバイス150の記憶/計算構成要素のタイプは、それぞれのコンピューティングデバイス150のタイプおよび意図された使用に基づいて予測できることをさらに理解すべきである。
【0042】
CPU200すなわちプロセッサは、データを処理できる任意のタイプのハードウェアまたは回路の組み合わせとして実施できる。したがって、CPU200は、単一のコアプロセッサアーキテクチャの一つの処理コア(図示せず)、またはマルチコアプロセッサアーキテクチャの複数の処理コアを含み得る。処理コアの数に関係なく、CPU200は、プログラム命令を読み込んで実行できる。いくつかの実施形態において、CPU200は、CPU200と直接統合するかまたはCPU200に別々の相互接続を有する別々のチップに配置できるキャッシュメモリ(図示せず)を含み得る。いくつかの実施形態において、パイプライン論理は、CPU200に出入りするコマンドよりもむしろ、ソフトウェアおよび/またはハードウェアオペレーション(例えば、ネットワークトラフィック処理オペレーション、グラフィックス処理オペレーションなど)を実行するために用いることができることを理解すべきである。
【0043】
I/Oコントローラ202、すなわちI/Oインタフェースは、入出力装置とコンピューティングデバイス150の間でインタフェースをとることができる任意のタイプのコンピュータハードウェアまたは回路の組み合わせとして実施できる。例示的に、I/Oコントローラ202は、CPU200から入出力要求を受信して、制御信号をそれぞれの入力/出力装置に送り、それによって、コンピューティングデバイスコンピュータ150に出入りするデータフローを管理するように構成される。
【0044】
メモリ204は、処理のためにデータおよび命令を保持できる任意のタイプのコンピュータハードウェアまたは回路の組み合わせとして実施できる。このようなメモリ204は、主メモリまたは主要なメモリと呼ばれる場合がある。いくつかの実施形態において、コンピューティングデバイス150の一つ以上の構成要素は、メモリに直接アクセスすることができるため、特定のデータは、CPU200とは無関係に直接メモリアクセス(DMA)を介して格納できることを理解すべきである。
【0045】
ネットワーク通信回路206は、無線および/または有線通信モードを介してネットワークインタフェース通信(例えば、メッセージ、データグラム、パケットなど)を管理できる任意のタイプのコンピュータハードウェアまたは回路の組み合わせとして実施できる。したがって、いくつかの実施形態において、ネットワーク通信回路206は、コンピューティングデバイス150をコンピュータネットワーク(例えば、ネットワーク128)、ならびにクラウドサービスマーケットプレースおよびブローカーシステム100の他のコンピューティングデバイスに接続するように構成されてもよいネットワークインタフェースコントローラ(NIC)を備えることができる。
【0046】
一つ以上のI/O周辺機器208は、コンピューティングデバイス150に接続してそれと通信するように構成される任意の補助装置として実施できる。例えば、I/O周辺機器208は、マウス、キーボード、モニター、タッチスクリーン、プリンター、スキャナー、マイクロホン、スピーカーなどを含み得るが、これに限定されない。したがって、いくつかのI/O装置は、一つの機能(すなわち、入力または出力)または両方の機能(すなわち、入力および出力)が可能であることを理解すべきである。
【0047】
いくつかの実施形態において、I/O周辺機器208は、コンピューティングデバイス150のケーブル(例えば、リボンケーブル、ワイヤ、汎用シリアルバス(USB)ケーブル、高解像度マルチメディアインタフェース(HDMI(登録商標))ケーブルなど)を介してコンピューティングデバイス150に接続できる。このような実施形態において、ケーブルは、コンピューティングデバイス150の対応するポート(図示せず)に接続し、コンピューティングデバイス150のために、その間でなされる通信がI/Oコントローラ202によって管理できる。代替の実施形態において、I/O周辺機器208は、ネットワーク通信回路206によって管理できる無線モードの通信(例えば、Bluetooth(登録商標)、Wi−Fi(登録商標)など)を介してコンピューティングデバイス150に接続できる。
【0048】
データ記憶装置210は、データの不揮発性記憶ができる任意のタイプのコンピュータハードウェア(例えば、半導体記憶媒体、磁気記録媒体、光記憶媒体など)として実施できる。このようなデータ記憶装置210は、一般に、補助または二次記憶と呼ばれ、通常は、上記のメモリ204と比較して大量のデータを格納するために用いる。
【0049】
図1に戻って参照すると、例示的なクラウドサービスブローカーシステム100は、本願明細書に記載されているように通信するためにコンピューティングデバイス150(すなわち、アプリケーションベンダーコンピューティングデバイス102、クラウドアプリケーション統合ホストコンピューティングデバイス112、オファー検証コンピューティングデバイス124、およびサービスブローカーコンピューティングデバイス130)のために使用可能であるネットワーク128を備える。ネットワーク128は、任意の有線および/または無線通信技術およびネットワーク通信伝送プロトコルを利用する、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、グローバルネットワーク(インターネット)などを含む、任意のタイプの有線および/または無線ネットワークとして実施できる。したがって、ネットワーク128は、一連の有線および/または無線相互接続を介してネットワーク通信トラフィックのフローおよび/または処理を容易にするために一つ以上の通信可能に連結するネットワークコンピューティングデバイス(図示せず)を備えることができる。このようなネットワークコンピューティングデバイスは、一つ以上のアクセスポイント、ルータ、スイッチ、サーバ、コンピューティングデバイス、記憶装置などを備えることができるが、これに限定されない。
【0050】
例えば、このようなネットワークコンピューティングデバイスの一つ以上は、アプリケーションベンダーコンピューティングデバイス102、クラウドアプリケーション統合ホストコンピューティングデバイス112、オファー検証コンピューティングデバイス124、および/またはサービスブローカーコンピューティングデバイス130の一つ以上を有線(例えば、イーサネット(登録商標)、トークンリングなど)を使用するLAN構成および/または無線(例えば、Bluetooth(登録商標)、Wi−Fi(登録商標)、無線ブロードバンド、ZigBee(登録商標)など)通信技術および関連プロトコルを使用するWLAN構成のネットワーク128に連結するように構成されてもよい。この実施例を進展させた場合、LAN構成は、ネットワーク128の追加のネットワークコンピューティングデバイスを介して一つ以上のより広いエリアネットワーク(例えば、WAN、メトロポリタンエリアネットワーク(MAN)、インターネットなど)に(例えば、同軸ケーブル、モバイル電話通信、光ファイバーケーブルなどを介して)連結できる。ネットワークコンピューティングデバイスおよび/またはネットワーク構成の一つ以上は仮想化することができる(例えば、仮想スイッチ、仮想LANなど)ことを理解すべきである。
【0051】
ここで図3を参照すると、オファー検証コンピューティングデバイスの例示的な環境300が示されている。例示的な環境300は、図1の検証ツール生成器プラットフォーム126を含み、それは、本願明細書に記載されている機能を実行できる任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できる。例示的な検証ツール生成器プラットフォーム126は、オファー情報アナライザー302、シナリオ生成器304、プレースホールダー置換マネージャ310、ユーザ入力インタプリタ312、ドメイン固有言語(DSL)インジェクター314、およびDSL検証ツールマネージャ316を含む。オファー情報アナライザー302、シナリオ生成器304、プレースホールダー置換マネージャ310、ユーザ入力インタプリタ312、DSLインジェクター314、およびDSL検証ツールマネージャ316の各々は、任意のタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとして実施できる。
【0052】
いくつかの実施形態において、オファー情報アナライザー302、シナリオ生成器304、プレースホールダー置換マネージャ310、ユーザ入力インタプリタ312、DSLインジェクター314、およびDSL検証ツールマネージャ316の一つ以上は、そこに格納される命令を有する一つ以上のコンピュータ可読媒体(例えば、メモリ204、データ記憶装置210、および/または他のあらゆる媒体記憶装置)および一つ以上のコンピュータ可読媒体に連結して本願明細書に記載されている機能を実行するために命令を実行するように構成される一つ以上のプロセッサ(例えば、CPU200)を備えることができる。データが、アクセスされ、管理され、適切に更新されてもよいように、環境300は、本願明細書に記載されているデータ要素(例えば、データベース)の少なくとも一部を格納するために使用可能な一つ以上の構造をさらに含み得ることを理解すべきである。しかしながら、このような構造は、記述の明確さを維持するために本願明細書に示されていない。
【0053】
オファー情報アナライザー302は、クラウドサービスアプリケーションオファーと関連する情報を分析するように構成される。このようなオファー情報は、オファーと関連するリソースを識別できるサービス計画情報およびサービステンプレート情報を含み得る。例えば、オファー情報アナライザー302は、クラウドサービスアプリケーションオファーと関連するサービステンプレートを(すなわち、アプリケーションパッケージから)検索して、サービステンプレートコンテンツの機能としてリソースタイプのセットを検索するように構成されてもよい。さらに、オファー情報アナライザー302は、検索されたリソースタイプのセットのいずれかを所有するいずれかのアプリケーションパッケージを識別するように構成される。
【0054】
シナリオ生成器304は、オファー情報アナライザー302によって実行され得るような、クラウドサービスアプリケーションオファーと関連する情報の分析の結果の機能としてシナリオのセットを生成するように構成される。そうするために、例示的なシナリオ生成器304は、高レベルステップ生成器306およびプレースホールダー生成器308を備える。高レベルステップ生成器306は、特定のシナリオを実行するために必要とされる可能性がある任意の数の高レベルステップを生成するように構成される。このような高レベルステップは通常、それらが特定のシナリオの実行中に必要とされる可能性がある外部入力(例えば、ユーザ情報)なしでも実行できるという点で、通常は一般的であるとみなされる。
【0055】
これらの高レベルステップは、プロビジョニング、顧客登録、新規なサービスの割り当てなどを含むがこれらに限定されない、本願明細書に記載されているサービスブローカーコンピューティングデバイス130の一つ以上の構成要素によって実行される様々なシナリオによって定義される。例えば、高レベルステップは、マルチステップのウィザード(すなわち、マルチステップのヘルプ機能)、例えば、アカウント作成のウィザード、サブスクリプション作成、および割り当てられたサービスを有するサービスユーザの作成などとして提示できる。いくつかの高レベルステップは、他のクラウドアプリケーションによって、例えば、それらの関連するユーザインタフェース要素を関連するアプリケーションパッケージを介して関連するユーザインタフェースに埋め込むことによって拡張できることを理解すべきである。いくつかの高レベルステップは、このような統合ポイントを有せず、他のクラウドアプリケーションの知識がなくても生成できることをさらに理解すべきである。
【0056】
プレースホールダー生成器308は、高レベルステップではないステップを指定するすために使用可能である各シナリオに対してプレースホールダーまたはタグを生成するように構成される。このような非高レベルステップ(すなわち、低レベルステップ)は通常、一般的ではないとみなされる。そのため、それらは、通常、アプリケーションパッケージにスクリプトとして格納できるような、関連するシナリオの実行中にユーザからの外部入力が必要となる。例えば、このような必要な外部入力には、割り当てる物理的および/または仮想的ハードウェアリソースのタイプ/量が含まれる場合がある。
【0057】
前述のように、各アプリケーションパッケージは、対応するクラウドアプリケーションおよびメタデータと関連する一つ以上のユーザインタフェース構成要素の記述を通常は含む。統合パッケージを準備している間、ISVは、アプリケーションパッケージが管理されているプラットフォーム(例えば、サービスブローカーコンピューティングデバイス130のクラウドサービスブローカープラットフォーム(図示せず))のUI要素とISVのUI要素の統合を記述するために多くの予め定義された低レベルステップから多くの予め定義された低レベルステップを選択できる。さらに、アプリケーションパッケージのメタデータは、通常は、オファーの検証と関連するプレースホールダーを有するこれらの低レベルステップのマッピングについての命令を含む。
【0058】
例示的な実施例において、サービスを購入するためのシナリオの仮想プライトベートサーバ(VPS)プロビジョニングの間に、ユーザを介してのみ入力できる特定の入力、例えば、割り当てる物理/仮想ハードウェアリソース(例えば、メモリの量、ディスク領域の量、CPUコアの数など)、VPS名などが必要であり得る。特定のシナリオは、任意の数の高レベルステップおよびプレースホールダーを含み得ることを理解すべきである。
【0059】
プレースホールダー置換マネージャ310は、(例えば、シナリオ生成器304のプレースホールダー生成器308によって生成された可能性がある)生成されたプレースホールダーを(例えば、オファー情報アナライザー302によって決定され得る)オファーと関連するリソースに基づいてDSLを用いて一連の低レベルステップに置換するように構成される。そうするために、プレースホールダー置換マネージャ310は、プレースホールダーを識別し、各プレースホールダーに対して一連の低レベルDSLステップを(例えば、Gherkinのようなビジネス可読DSLを使用して)決定するように構成される。したがって、低レベルステップは、対応するオファーを自動的に検証するために使用可能な検証ツールのテストケースに組み込むことができる。
【0060】
いくつかの実施形態において、プレースホールダー置換マネージャ310は、プレースホールダーに対応するインタフェースのレンダリングされたビューに基づいて低レベルステップを決定するように構成される。例えば、一連の低レベルステップが、そこから決定できるように、プレースホールダー置換マネージャ310は、インタフェースのハイパーテキストマークアップ言語(HTML)ビューをレンダリングするように構成されてもよい。さらに、プレースホールダー置換マネージャ310は、対応するプレースホールダーを決定された低レベルステップに置換するように構成される。低レベルステップは、通常、ほとんど全ての単一の高レベルステップがそれらから構成することができるほど十分に小さいことを理解すべきである。
【0061】
プレースホールダー置換マネージャ310は、受信したユーザ入力の機能として生成されたプレースホールダーを置換するようにさらに構成される。例えば、特定の条件下で、プレースホールダー置換マネージャ310は、特定のプレースホールダーをサポートすることができないか、さもなければ、生成されたプレースホールダーを置換するのに必要な低レベルステップを決定することができない。このような条件下で、プレースホールダー置換マネージャ310は、プレースホールダーに対して低レベルステップを決定し、プレースホールダーを決定された低レベルステップに基づいてユーザ入力に置換するために使用可能であるユーザ入力を(例えば、ユーザ入力インタプリタ312を介して)要求し受信できる。
【0062】
ユーザ入力インタプリタ312は、ユーザ入力を必要とするそれらの低レベルステップ(すなわち、そのためそれらが自動的に決定することができないもの)のためにユーザ(例えば、デベロッパー、管理者、クラウドサービスブローカーなど)から受信した入力を受信し解釈するように構成される。そうするために、ユーザ入力インタプリタ312は、必要な入力を提供して、提供された入力を受信するようにユーザを促すことができるように、ユーザ入力インタプリタ312は、インタフェースを介してユーザと通信するように構成される。さらに、ユーザ入力インタプリタ312は、それぞれの低レベルステップを生成するのに必要となる可能性のある受信したデータに関して任意の変換を実行するように構成される。
【0063】
DSL検証ツール生成器316は、検証ツールを生成するように構成される。そうするために、DSL検証ツール生成器316は、ウェブブラウザを実行し、自動検証の特定のスクリーンを表示およびナビゲートし(例えば、図1のクラウドサービスブローカーコンピューティングデバイス130のクラウドサービスブローカープラットフォーム(図示せず)を介して)、かつサービスするために使用可能なウェブドライバーをパッケージ化するように構成される。したがって、生成された検証ツールは、適用可能なシナリオでパッケージ化された低レベルステップ(例えば、Cucumberフレームワークを用いたGherkinが生成したステップ)を解釈し、生成された検証ツールが起動されたコンピューティングデバイスでウェブブラウザを起動して、インタフェースを介してナビゲートし、検証ツールと関連するオファーの各シナリオをテストするために再販業者および/またはエンドユーザの挙動をシミュレートすることができる。
【0064】
ここで図4Aおよび4Bを参照すると、例示的な方法400が、オファー検証コンピューティングデバイス124によって、またはより詳しくは、オファー検証コンピューティングデバイス124の検証ツール生成器プラットフォーム126の構成要素の一つ以上(例えば、図3の例示的な環境300の構成要素の一つ以上)によって実行され得るクラウドサービスブローカーシステム(例えば、図1のクラウドサービスブローカーシステム100)に統合されるクラウドアプリケーションを自動的に検証する検証ツールを生成するために提供される。方法400は、ブロック402で開始し、検証ツール生成器プラットフォーム126は、クラウドサービスアプリケーションオファー(すなわち、クラウドアプリケーションに対応するサービス計画)を検証すべきかどうかを決定する。
オファーは、サービステンプレートおよび課金情報を含むサービス計画を表すことを理解すべきである。
【0065】
検証ツール生成器プラットフォーム126が、オファーを検証すると決定する場合、方法400は、ブロック404に進み、検証ツール生成器プラットフォーム126は、検証されるオファーの一つ以上のシナリオを識別するのに使用可能なオファー情報を検索する。例えば、ブロック406において、検証ツール生成器プラットフォーム126は、オファーと関連するサービステンプレートおよび/またはオファーと関連するユーザインタフェース情報またはより詳しくはオファーの一つ以上のシナリオを検索する。
【0066】
上記のように、サービステンプレートは、特定の一つ以上のシナリオと関連するリソースタイプのセットを含む。オファー情報は、追加の情報、例えば、サービスブローカーによって提供できる課金情報(例えば、請求方法、経費、請求頻度、課金モデルなど)を含み得ることを理解すべきである。ブロック408において、検証ツール生成器プラットフォーム126は、ブロック406において検索されたサービステンプレートに含まれる情報に基づいて、オファーと関連するリソースタイプのセットを識別する。
ブロック410において、検証ツール生成器プラットフォーム126は、どのアプリケーションパッケージが、ブロック408のリソースタイプのセットにおいて識別されたリソースの各々を所有する(例えば、記述する)かを決定する。
【0067】
上記のように、シナリオの各々は、クラウドサービスブローカーが図1のクラウドアプリケーション106、110の一つとインタフェースするときに遭遇する可能性がある任意のオペレーション/機能、例えば、新しい顧客をつくること、顧客のためにサブスクリプションを購入すること、サービスを作成すること/割り当てること、サービスユーザをつくること、サブスクリプション計画/制限を変更すること、サブスクリプションを無効にすること/終了すること、請求書を発行することなどを含む。前にも述べたように、シナリオを生成することは、各シナリオを実行するために行われる個々のステップを識別することを必要とする。ステップのいくつかは、生成された各シナリオの一般的なステップ、例えば、完了のためにユーザ入力を必要としないステップを実行するための高レベルステップである。他のステップは、あまり一般的でないステップ、例えば、完了するためにユーザ入力を必要とするかまたは別のアプリケーションパッケージに依存するステップである。したがって、ブロック412において、検証ツール生成器プラットフォーム126は、検証されるオファーの各シナリオと関連する高レベルステップおよび任意のプレースホールダーを生成する。
【0068】
ブロック414において、検証ツール生成器プラットフォーム126は、任意のシナリオに対してどのプレースホールダーが生成されたかどうかを決定する。そうでない場合、方法400は、下記に詳述するようにブロック430に進み、さもなければ、方法400は、図4Bに示すブロック416に分岐する。ブロック416において、検証ツール生成器プラットフォーム126は、第1のプレースホールダーを識別する。ブロック418において、検証ツール生成器プラットフォーム126は、識別されたプレースホールダーがサポートされているかどうかを決定する。そうでない場合、方法400は、ブロック426に進み、検証ツール生成器プラットフォーム126は、別のプレースホールダーが検出されるかどうかを決定する。さもなければ、検証ツール生成器プラットフォーム126が、識別されたプレースホールダーがサポートされると決定する場合、方法400は、ブロック420に進む。
【0069】
ブロック420において、検証ツール生成器プラットフォーム126は、識別されたプレースホールダーに対して一つ以上の低レベルステップを決定する。例えば、ブロック422において、検証ツール生成器プラットフォーム126は、シナリオと関連するインタフェースのレンダリングされたビューからの一つ以上の検出された入力に基づいて低レベルステップを決定する。例えば、検証ツール生成器プラットフォーム126は、インタフェースのハイパーテキストマークアップ言語(HTML)ビューをレンダリングするように構成されてもよい。したがって、インタフェース形式が、複数の入力により満たされると仮定すると、適用可能なステップ/シナリオをテストするために使用可能なこのような情報で予め生成された情報を使用して入力を満たすために一連の低レベルステップ(例えば、Gherkinを用いた低レベルDSLステップ)を生成できる場合がある。しかしながら、いくつかのインスタンスにおいて、予め定義された値を使用することができない場合がある。このように、いくつかの実施形態において、検証ツール生成器プラットフォーム126は、重複のリスクを最小限に抑えるために、例えば、一つ以上の宣言された変数に付加するか、または、さもなければ一つ以上の宣言された変数に基づいて、ランダム値を生成するように構成されてもよい。例えば、識別文字(例えば、「$」またはいくつかの他の識別記号)は、未処理の値とは対照的に、このような変数名を識別するために用いることができる。
【0070】
上記のように、アプリケーションパッケージは、通常、メタデータ、制御方法の記述、およびコンテンツファイルを含み、それらは、クラウドアプリケーションリソースを管理するために必要な制御方法のアプリケーションリソース、サービス、ユーザインタフェース構成要素、および論理を宣言し定義するために使用可能である。さらに、低レベルステップは、アプリケーションパッケージに格納できる。したがって、ブロック410において識別されたそれらのアプリケーションパッケージは、一つ以上のシナリオと関連する低レベルステップの一つ以上を識別するために用いることができる。
【0071】
ブロック424において、検証ツール生成器プラットフォーム126は、識別されたプレースホールダーを決定された低レベルステップに置換する。ブロック426において、検証ツール生成器プラットフォーム126は、次のプレースホールダーを識別する。ブロック428において、検証ツール生成器プラットフォーム126は、プレースホールダーが検出されたかどうかを決定する。別のプレースホールダーが検出された場合、方法400は、ブロック418に戻って、他の検出されたプレースホールダーがサポートされているかどうかを決定する。さもなければ、別のプレースホールダーが検出されない場合、方法400は、図4Aに示すブロック430に分岐する。
【0072】
ブロック430において、一つ以上の低レベルステップがサポートされなかったか、さもなければ検証ツール生成器プラットフォーム126により判定不能のような実施形態において、検証ツール生成器プラットフォーム126は、低レベルステップが判定不能の各適用可能なプレースホールダーに対して低レベルステップを決定するためにユーザから情報を要求する。換言すれば、いくつかの低レベルステップは、ユーザ入力および/または低レベルステップの少なくとも一部の正確さの検証が必要とされる場合を除き十分に判定不能であった場合がある。したがって、例えば、ブロック432において、検証ツール生成器プラットフォーム126は、対応するシナリオをユーザ(例えば、クラウドサービスブローカー)に(例えば、ユーザインタフェースを介して)表示することができ、それと関連する追加の入力データおよび/または修正を要求する。いくつかの実施形態において、いずれのシナリオも、プレースホールダーを含まない場合があり、その場合、方法400は、ブロック414からブロック440へ直接進むことができることを理解すべきである。これについては後述する。
【0073】
ブロック434において、検証ツール生成器プラットフォーム126は、要求された情報が受信されたかどうかを決定する。そうでない場合、方法400は、ブロック436に分岐し、検証ツール生成器プラットフォーム126は、方法がブロック440に進む前に検証することから、プレースホールダー(すなわち、低レベルステップと対照的に)を有するそれらのシナリオを除外する。これについては後述する。さもなければ、検証ツール生成器プラットフォーム126が、要求された低レベルステップに対応する情報が受信されたと決定する場合、方法400は、ブロック438に分岐し、方法が、ブロック440に進む前に、検証ツール生成器プラットフォーム126は、受信データに基づいて適用可能なプレースホールダーを置換する。ブロック440において、検証ツール生成器プラットフォーム126は、クラウドサービスアプリケーションオファーの実行依存性と低レベルステップを検証ツールに組み合わせる。換言すれば、生成された高レベルステップおよび低レベルステップ(すなわち、除外されなかったシナリオと関連するそれらの低レベルステップ)は、シナリオの関連する実行依存性とともに検証ツールにパッケージ化される。
【0074】
ここで図5を参照すると、例示的な方法500は、(例えば、関連するクラウドアプリケーション開発インタフェースを介して)アプリケーションベンダーコンピューティングデバイス102の一つによって実行され得るクラウドサービスブローカーシステム(例えば、図1のクラウドサービスブローカーシステム100)に統合されるクラウドアプリケーションを自動的に検証するために提供される。方法500は、アプリケーションベンダーコンピューティングデバイス102の一つにより実行されるとして本願明細書に記載されているが、別のコンピューティングデバイス(例えば、図1のクラウドサービスブローカーコンピューティングデバイス130)および/またはプラットフォーム(例えば、図1のクラウドサービスブローカーコンピューティングデバイス130のクラウドサービスブローカープラットフォーム(図示せず))は、他の実施形態において、クラウドアプリケーションを自動的に検証するように構成されてもよいことを理解すべきである。方法500は、ブロック502で開始し、アプリケーションベンダーコンピューティングデバイス102は、検証ツールを起動するかどうかを決定する。したがって、検証ツールは、(例えば、図4の方法400を参照して上に記述したように)生成されて、方法500の実行の前にクラウドサービスブローカーコンピューティングデバイス130にダウンロードされたことを理解すべきである。
【0075】
クラウドサービスブローカーコンピューティングデバイス130が、(例えば、検証ツールの実行を開始するために判定できるユーザ入力に基づいて)検証ツールを起動するかどうかを決定する場合、方法500は、ブロック504に進む。ブロック504において、クラウドサービスブローカーコンピューティングデバイス130は、クラウドサービスブローカーコンピューティングデバイス130のウェブブラウザを起動するか、さもなければ開く。ブロック506において、検証ツールのユーザが、自動的に実行される検証テストを観察できるように、クラウドサービスブローカーコンピューティングデバイス130は、検証ツールにパッケージ化されたDSLを実行し、検証シーケンスの結果をウェブブラウザに表示する。
【0076】
ブロック508において、クラウドサービスブローカーコンピューティングデバイス130は、検証シーケンスが完了したかどうかを決定する。その場合、方法500は、ブロック510に進み、クラウドサービスブローカーコンピューティングデバイス130は、それぞれのクラウドサービスアプリケーションオファーに対して検証ツールにより実行された自動検証の結果に基づいて検証状況報告を作成し表示する。
【0077】
本開示は、図面および上記の説明において例示され詳述されたが、それは、特性においても、例示的であり、限定的でないとみなされるべきである。特定の実施形態のみが示されて説明されたものであり、本開示の精神の範囲に入るすべての変更と修飾が保護されることが望ましいことが理解される。

図1
図2
図3
図4A
図4B
図5
【国際調査報告】