(関連出願の相互参照)
本出願は、2016年12月29日に出願された米国特許出願第15/393,354号の国際特許出願であり、これにより、それのテキストおよび図面の内容全体を本願明細書に引用したものとする。
本開示の実施形態は、一般にクラウド・サービス・マーケットプレース、より詳細には、クラウド・サービス・マーケットプレースにおいてクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を拡張する技術に関する。
独立ソフトウェアベンダー(ISV)は、一つ以上のコンピュータハードウェアまたはオペレーティング・システム・プラットフォーム上で動作するように典型的に設計されるソフトウェアアプリケーションを開発して、販売する。この種のソフトウェアアプリケーションは、基本ユーティリティまたは生産性向上アプリケーションから企業用のビジネス・プロセス・アプリケーションにわたる(例えば、顧客関係管理(CRM)、企業資源計画(ERP)、オートメーションツールなど)。クラウドコンピューティングが、より普及するにつれて、ソフトウェアを引き渡すそのような方法は、サービスとしてのソフトウェア(SaaS)ベースのモデルを使用してクラウドにより行われてきた。この引渡し方法を使用して、ISVは、それらのソフトウェアアプリケーション、またはそれらのソフトウェアアプリケーションに対する予約をパブリッククラウドまたはクラウドマーケットプレースを通して販売できる。
クラウドマーケットプレースは、クラウドベースのサービスおよびソフトウェアアプリケーションへの顧客アクセスを可能にするオンライン店頭を提供する。クラウドマーケットプレースのこの種の実施例は、AmazonのAmazon Web Services(登録商標)(AWS)マーケットプレース、MicrosoftのAzure(登録商標)マーケットプレース、Oracleのマーケットプレース、SalesforceのAppExchange(登録商標)、および Ingram Microのクラウドマーケットプレースを含む。クラウドマーケットプレースを介してアクセス可能になる特定のSaaSベースの購読サービスは、ISVとクラウドマーケットプレースまたはクラウドマーケットプレースと関連した他の購読管理ツールの間に位置するISVにより提供されるアプリケーション・プログラミング・インターフェイス(API)を介して予約および/または使用できる。この種の構成において、クラウド・サービス・ブローカーは、各クラウドサービスのためのプラグインまたはAPIコネクタを用いて、ISVとエンドユーザ、再販業者、小売業者などの間の処理を容易にするために用いることができる。
従来のクラウド・サービス・ブローカーの実施態様において、各クラウド・サービス・ブローカーは、通常は、クラウドサービスごとに各ISVとの契約を有する。しかしながら、この種の実施態様は、サポートすることができる契約の最大数により制限される(すなわち、クラウドサービスの数かけるクラウド・サービス・ブローカーの数により制限される)。他の既存のクラウド・サービス・ブローカーの実施態様は、クラウド・サービス・プロバイダおよびクラウド・サービス・ブローカーの各々との契約を有する中心実体に依存する。しかしながら、この種の実施態様で、サポートすることができる契約の最大数は、クラウドサービスの数とクラウド・サービス・ブローカーの数の合計により制限される。更に、この種の実施態様で、1セットの証明書だけが、クラウドサービスAPIごとに存在し、証明書は、クラウドサービスにアクセスできるようにクラウド・サービス・ブローカーに分散される。したがって、同じ証明書は、いろいろなクラウド・サービス・ブローカーに分散することができて、それは結果として、1人のクラウド・サービス・ブローカーが、他のクラウド・サービス・ブローカーのAPIコネクタにアクセスすることがありえる。したがって、クラウド・サービス・マーケットプレースにクラウドサービスAPIを安全に拡張する必要がある。
一つの態様において、クラウド・サービス・マーケットプレースでクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張する方法は、マーケットプレースコンピューティングデバイスのコネクタハブによって、マーケットプレースコンピューティングデバイスの接続ファクトリにAPIコネクタインスタンスを配置するステップであって、APIコネクタインスタンスは、クラウド・サービス・プロバイダのクラウドサービスと関連した遠隔APIと通信するために使用可能なAPIコネクタのソースコードを含むステップと、コネクタハブによって、プロバイダ提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・プロバイダのクラウド・サービス・プロバイダ・インターフェイスに伝送するステップと、コネクタハブによって、ブローカー提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・ブローカーのクラウド・サービス・ブローカー・インターフェイスに伝送するステップと、コネクタハブによって、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立するステップとを含み、提供チャネルを確立するステップは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、および(ii)第2の認証動作を実行するためにプローカー提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第2の通信チャネルを確立することを含む。
いくつかの実施形態において、方法は、コネクタハブによって、プロキシ提供チャネル証明書を生成するステップと、コネクタハブによって、認証プロキシインスタンスを接続ファクトリに配置するステップと、コネクタハブによって、プロキシ提供チャネル証明書をAPIコネクタインスタンスおよび認証プロキシインスタンスに伝送するステップとを更に含む。他の実施形態において、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立するステップは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いることによるAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、(ii)第2の認証動作を実行するためにプローカー提供チャネル証明書を用いることによる認証プロキシインスタンスとクラウド・サービス・プローカー・インターフェイスの間の第2の通信チャネル、および(iii)第3の認証動作を実行するためにプロキシ提供チャネル証明書を用いることによるAPIコネクタインスタンスと認証プロキシインスタンスの間の第3の通信チャネルを確立することを含む。
他の実施形態において、第2の通信チャネルを認証プロキシインスタンスとクラウド・サービス・プローカー・インターフェイスの間に確立するステップは、認証プロキシインスタンスのアドレスをクラウド・サービス・プローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・プローカー・インターフェイスによって使用可能である。
更に他の実施形態において、方法は、コネクタハブによって、クラウド・サービス・プロバイダに対応するプロバイダ提供チャネル証明書を生成するステップと、コネクタハブによって、クラウド・サービス・ブローカーに対応するブローカー提供チャネル証明書を生成するステップとを含む。更に他の実施形態において、方法は、コネクタハブによって、APIコネクタ提供通知書をマーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースから受信するステップを更に含み、クラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成するステップは、APIコネクタ提供通知書を受信したことに応答してブローカー提供チャネル証明書を生成することを含む。
いくつかの実施形態において、方法は、コネクタハブによって、クラウド・サービス・プロバイダの新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレースにおいて、利用可能となったという表示をクラウド・サービス・プロバイダから受信するステップを含み、プロバイダ提供チャネル証明書を生成するステップは、表示を受信したことに応答してプロバイダ提供チャネル証明書を生成することを含む。他の実施形態において、方法は、コネクタハブによって、プロバイダ提供チャネル証明書をコネクタハブの証明書データベースに格納するステップと、コネクタハブによって、プロバイダ提供チャネル証明書を証明書データベースのクラウド・サービス・プロバイダと関連づけるステップと、コネクタハブによって、ブローカー提供チャネル証明書を証明書データベースに格納するステップと、コネクタハブによって、ブローカー提供チャネル証明書をクラウド・サービス・ブローカーと関連づけるステップと、さらに、他の実施形態において、第2の通信チャネルをAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立するステップは、APIコネクタインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
別の態様において、一つ以上のコンピュータ可読記憶媒体は、実行されることに応答してマーケットプレースコンピューティングデバイスのコネクタハブに、クラウド・サービス・プロバイダのクラウドサービスと関連した遠隔APIと通信するために使用可能なAPIコネクタのソースコードを含むAPIコネクタインスタンスをマーケットプレースコンピューティングデバイスの接続ファクトリに配置させ、プロバイダ提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・プロバイダのクラウド・サービス・プロバイダ・インターフェイスに伝送させ、ブローカー提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・ブローカーのクラウド・サービス・ブローカー・インターフェイスに伝送させて、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立させる複数の命令を格納し、提供チャネルを確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、および(ii)第2の認証動作を実行するためにプローカー提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第2の通信チャネルを確立することを含む。
いくつかの実施形態、請求項9に記載の一つ以上のコンピュータ可読記憶媒体において、複数の命令は、更に、コネクタハブに、プロキシ提供チャネル証明書を生成させ、認証プロキシインスタンスを接続ファクトリに配置させ、そして、プロキシ提供チャネル証明書をAPIコネクタインスタンスおよび認証プロキシインスタンスに伝送させて、提供チャネルをクラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いることによるAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いることによる認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネル、および(iii)第3の認証動作を実行するためにプロキシ提供チャネル証明書を用いることによるAPIコネクタインスタンスと認証プロキシインスタンスの間の第3の通信チャネルを確立する。
他の実施形態において、第2の通信チャネルを認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、認証プロキシインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
更に他の実施形態において、複数の命令は、更に、コネクタハブに、クラウド・サービス・プロバイダに対応するプロバイダ提供チャネル証明書を生成させて、クラウド・サービス・ブローカーに対応するブローカー提供チャネル証明書を生成させる。加えて、いくつかの実施形態において、複数の命令は、更に、コネクタハブに、マーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースからAPIコネクタ提供通知書を受信させて、クラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成することは、APIコネクタ提供通知書を受信したことに応答してブローカー提供チャネル証明書を生成することを含む。追加的にまたは代替的に、他の実施形態において、複数の命令は、更に、コネクタハブに、クラウド・サービス・プロバイダの新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレースにおいて利用可能となったという表示をクラウド・サービス・プロバイダから受信させて、プロバイダ提供チャネル証明書を生成することは、表示を受信したことに応答してプロバイダ提供チャネル証明書を生成することを含む。
いくつかの実施形態において、複数の命令は、更に、コネクタハブに、プロバイダ提供チャネル証明書をコネクタハブの証明書データベースに格納させ、プロバイダ提供チャネル証明書を証明書データベースのクラウド・サービス・プロバイダと関連づけさせ、ブローカー提供チャネル証明書を証明書データベースに格納させ、そして、ブローカー提供チャネル証明書をクラウド・サービス・ブローカーと関連づけさせる。他の実施形態において、第2の通信チャネルをAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、APIコネクタインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
更に別の態様において、クラウド・サービス・マーケットプレースのクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張するためのマーケットプレースコンピュータのコネクタハブが開示され、クラウド・サービス・マーケットプレースは、マーケットプレースコンピューティングデバイスを含み、マーケットプレースコンピューティングデバイスは、CPUと、プロセッサにより実行されるときにマーケットプレースコンピューティングデバイスのコネクタハブに、クラウド・サービス・プロバイダのクラウドサービスと関連した遠隔APIと通信するために使用可能なAPIコネクタのソースコードを含むAPIコネクタインスタンスをマーケットプレースコンピューティングデバイスの接続ファクトリに配置させ、プロバイダ提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・プロバイダのクラウド・サービス・プロバイダ・インターフェイスに伝送させ、ブローカー提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・ブローカーのクラウド・サービス・ブローカー・インターフェイスに伝送させて、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立させる複数の命令を格納するメモリとを備え、提供チャネルを確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、および(ii)第2の認証動作を実行するためにプローカー提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第2の通信チャネルを確立することを含む。
いくつかの実施形態において、一つ以上のプロセッサは、プロキシ提供チャネル証明書を生成し、認証プロキシインスタンスを接続ファクトリに配置し、そして、プロキシ提供チャネル証明書をAPIコネクタインスタンスおよび認証プロキシインスタンスに伝送するために命令を実行するように更に構成されて、提供チャネルをクラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いることによるAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いることによる認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネル、および(iii)第3の認証動作を実行するためにプロキシ提供チャネル証明書を用いることによるAPIコネクタインスタンスと認証プロキシインスタンスの間の第3の通信チャネルを確立することを含む。
他の実施形態において、第2の通信チャネルを認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、認証プロキシインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。更に他の実施形態において、一つ以上のプロセッサは、クラウド・サービス・プロバイダに対応するプロバイダ提供チャネル証明書を生成して、クラウド・サービス・ブローカーに対応するブローカー提供チャネル証明書を生成するために命令を実行するように更に構成される。いくつかの実施形態において、一つ以上のプロセッサは、APIコネクタ提供通知書をマーケットプレースコンピュータのクラウド・サービス・ブローカー・マーケットプレースから受信するために命令を実行するように更に構成されて、クラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成することは、APIコネクタ提供通知書を受信したことに応答してブローカー提供チャネル証明書を生成することを含む。
他の実施形態において、一つ以上のプロセッサは、クラウド・サービス・プロバイダの新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレースにおいて利用可能となったという表示をクラウド・サービス・プロバイダから受信するために命令を実行するように更に構成されて、プロバイダ提供チャネル証明書を生成することは、表示を受信したことに応答してプロバイダ提供チャネル証明書を生成することを含む。更に他の実施形態において、一つ以上のプロセッサは、プロバイダ提供チャネル証明書をコネクタハブの証明書データベースに格納し、プロバイダ提供チャネル証明書を証明書データベースのクラウド・サービス・プロバイダと関連づけ、ブローカー提供チャネル証明書を証明書データベースに格納して、ブローカー提供チャネル証明書をクラウド・サービス・ブローカーと関連づけるために命令を実行するように更に構成される。更にまた他の実施形態において、第2の通信チャネルをAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、APIコネクタインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
本願明細書に含まれる実施形態と他の特徴、利点、および開示、ならびにそれらを達成する方法は、明らかになり、そして、本開示は、添付の図面に関連してとられる本開示のさまざまな例示的な実施形態の以下の説明を参照することによってよりよく理解される。
ブローカーコンピューティングデバイスおよびサービスプロバイダコンピューティングデバイスを含み、それぞれがマーケットプレースコンピューティングデバイスに通信で接続するクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張するクラウド・サービス・マーケットプレース・システムの例示的な実施形態のブロック図を示す。
図1のクラウド・サービス・マーケットプレース・システムのクラウド・サービス・ブローカーとクラウド・サービス・プロバイダの間に確立された複数の提供チャネルのブロック図を示す。
図1のマーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースのコンピューティングデバイスの一つの例示的な実施形態のブロック図を示す。
クラウド・サービス・マーケットプレース・システムのマーケットプレースコンピューティングデバイスのコネクタハブによって実行できる新規なクラウドサービスを図1のクラウド・サービス・マーケットプレース・システムに加える例示的な方法の略フロー図を示す。
マーケットプレースコンピュータのコネクタハブによって実行できる特定のクラウド・サービス・ブローカーのための図1のクラウド・サービス・プロバイダとマーケットプレースコンピューティングデバイスの間に提供チャネルを確立する例示的な方法の略フロー図を示す。
マーケットプレースコンピューティングデバイスのコネクタハブによって実行できる特定のクラウド・サービス・ブローカーのための図1のクラウド・サービス・プロバイダとマーケットプレースコンピューティングデバイスの間に提供チャネルを確立する別の例示的な方法の略フロー図を示す。
図1のブローカーコンピューティングデバイスの監視エージェントによって実行できる新規なサービスを再販するための図1のクラウド・サービス・ブローカーを構成する例示的な方法の略フロー図を示す。
本開示の原理の理解を促進するために、図面に示す実施形態に対する参照が、ここでなされて、特定の言語が、それを説明するために用いられる。それでも、本開示の範囲の限定がそれにより意図されないと理解される。
図1は、クラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張するクラウド・サービス・マーケットプレース・システム100を示す。クラウド・サービス・マーケットプレース・システム100は、サービス・プロバイダ・コンピュータ118およびブローカーコンピューティングデバイス124を含み、それらの各々は、マーケットプレースコンピューティングデバイス102に(例えば、ネットワーク132を介して)通信で接続する。例示的なマーケットプレースコンピューティングデバイス102は、クラウド・サービス・ブローカーが特定のクラウドサービス用のライセンスをエンドユーザ(例えば、顧客、ブローカー、再販業者など)にそれらのクラウド・サービス・ブローカー・インターフェイス126を介して販売できるように、サービスプロバイダコンピューティングデバイス118のクラウド・サービス・プロバイダ・インターフェイス120とブローカーコンピューティングデバイス124のクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネル(例えば、提供チャネル140参照)を確立するように構成されるコネクタハブ106を含む。
そうするために、下記に詳述するように、コネクタハブ106は、クラウド・サービス・プロバイダから以前に受信したクラウドサービスに対応するAPIコネクタのインスタンス(例えば、図1のコネクタファクトリ112のAPIコネクタインスタンス116参照)を複製し、提供チャネル証明書を生成して、生成された提供チャネル証明書を用いたAPIコネクタインスタンスによってクラウド・サービス・プロバイダ・インターフェイス120とクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネル(例えば、図1の提供チャネル140参照)の確立を組織化するように構成される。提供チャネル証明書は、提供チャネル証明書を使用して2つの実体の間に安全な通信チャネルを認証するために使用可能であるいかなるタイプの情報(例えば、暗号キーまたは他の任意のデータ)でもありえることを理解すべきである。
提供チャネル140が確立された後に、クラウド・サービス・ブローカーは、そのクラウドサービス用のライセンスをクラウド・サービス・ブローカー・インターフェイス126を介してエンドユーザに再販できる。したがって、APIコネクタ、それ故に各クラウド・サービス・ブローカーの証明書がクラウド・サービス・ブローカーにより管理される現在の技術とは異なり、例示的なマーケットプレースコンピューティングデバイス102は、クラウド・サービス・ブローカーおよび/またはクラウド・サービス・プロバイダの間の証明書(すなわち、特定のクラウド・サービス・ブローカーまたは特定のクラウドサービスに特有の証明書)の公開を無くすことによってクラウドサービスAPIを安全に拡張するように構成される。
例示的な実施例において、クラウド・サービス・プロバイダ(例えば、独立ソフトウェアベンダー(ISV)は、クラウド・サービス・マーケットプレースの制御実体と契約して、エンドユーザへのライセンスの販売を容易にする。ライセンスは、それから、そのエンドユーザまたはそれと関連する他のエンドユーザのクラウド・サービス・プロバイダのクラウドサービス(例えば、クラウドベースのサービスとしてのソフトウェア(SaaS)アプリケーション)への特定のアクセスを可能にすることができる。例示的なクラウド・サービス・マーケットプレース・システム100において、マーケットプレースコンピューティングデバイス102は、クラウド・サービス・プロバイダとクラウド・サービス・ブローカーの間のさまざまなクラウドサービスへのライセンスを管理するように構成される。
使用中、クラウド・サービス・プロバイダは、API(例えば、図1のAPI122参照)およびそれらのクラウドサービスの各々ためのAPIコネクタを開発して、クラウドサービス(例えば、クラウド・サービス・アドレス、初期設定、価格情報、販売テンプレート、クラウドサービスの識別子など)のAPIコネクタおよび他の情報をマーケットプレースコンピューティングデバイス102のコネクタハブ106に引き渡す。いくつかの実施形態において、APIコネクタは、そのAPIコネクタの複製されたインスタンス(例えば、図1のコネクタファクトリ112のAPIコネクタインスタンス116参照)を作成するために使用可能なソースコードの形でありえる。各API122は、クラウドサービスからコマンドを(例えば、サービスプロバイダコンピューティングデバイス118のクラウド・サービス・プロバイダ・インターフェイス120を介して)受信して、受信したコマンドをAPIが接続されるAPIコネクタインスタンス116に伝送するように構成される。その逆も同じである。加えて、各APIコネクタインスタンス116は、コマンドをそれが通信で接続する対応するAPI122に対して送受信するように構成される。
例示的な実施例の推進において、クラウド・サービス・ブローカー(すなわち、ディストリビュータ、再販業者など)は、クラウド・サービス・ブローカー・マーケットプレース104において提供される特定のクラウドサービスに対するライセンスを販売/分散するためにアクセスを許可するために、クラウド・サービス・ブローカー・マーケットプレース(例えば、クラウド・サービス・ブローカー・マーケットプレース104参照)の制御実体と契約する。換言すれば、クラウド・サービス・ブローカーは、そのサービスブローカーが提供する許可を与えられたクラウドサービスの各々を含むクラウド・サービス・ポートフォリオをエンドユーザに提供し、それによって、その間にセキュリティの層を加えることによってクラウド・サービス・マーケットプレースと潜在エンドユーザの間の仲介者として役立つ。
利用できるクラウドサービスをクラウド・サービス・ブローカーに提供するために、クラウド・サービス・ブローカー・マーケットプレース104は、クラウド・サービス・ブローカーが販売の申し出をしたいクラウドサービスを調べて選択するために使用可能なインターフェイスを提供する。クラウド・サービス・ブローカー・マーケットプレース104は、それぞれのクラウド・サービス・プロバイダが対応するAPIコネクタをコネクタハブ106に以前に提供したそれらのクラウドサービスを示すことができるだけであることを理解すべきである。したがって、各クラウド・サービス・ブローカーは、それから、クラウド・サービス・ブローカー・マーケットプレース104にアクセスすることによって利用できるクラウドサービスをそれらのクラウド・サービス・ポートフォリオに加えることができる。いくつかの実施形態において、クラウド・サービス・ブローカーは、ブローカーコンピュータ124、またはより詳しくは、ブローカーコンピュータ124のクラウド・サービス・ブローカー・インターフェイス126を介してクラウド・サービス・ブローカー・マーケットプレース104にアクセスすることができる。他の実施形態において、クラウド・サービス・ブローカーは、クラウド・サービス・ブローカー・マーケットプレース104に通信で接続するエンドポイントコンピュータ144を介して、クラウド・サービス・ブローカー・マーケットプレース104にアクセスすることができる。
上記のように、コネクタハブ106は、クラウド・サービス・ブローカー・インターフェイス126とクラウド・サービス・プロバイダ・インターフェイス120の間に提供チャネル140を確立するように構成される。そうするために、下記に詳述するように、コネクタハブ106は、APIコネクタインスタンス116(すなわち、クラウド・サービス・プロバイダから受信されるAPIコネクタの複製されたインスタンス)をコネクタファクトリ112に配置する。コネクタハブ106は、加えて、コネクタハブ106によって生成する提供チャネル証明書を用いてクラウド・サービス・プロバイダ・インターフェイス120(例えば、通信チャネル134参照)とAPIコネクタインスタンス116の間に、そして、APIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126(例えば、通信チャネル138参照)の間に一連の安全な通信チャネルの確立を組織化する。
いくつかの実施形態において、APIコネクタインスタンス116が配置されるときに、コネクタハブ106は、認証プロキシ114のインスタンス(例えば、図1のコネクタファクトリ112のAPIコネクタインスタンス116参照)を配置するように加えて構成される。このような実施形態において、認証プロキシインスタンス114は、クラウド・サービス・ブローカー・インターフェイス126とAPIコネクタインスタンス116の間のコネクタファクトリ112に(すなわち、通信チャネル138に)配置できる。加えて、このような実施形態において、コネクタハブ106は、認証プロキシ114とAPIコネクタインスタンス116の間の安全な通信チャネル(例えば、通信チャネル136参照)の確立を組織化するように更に構成されることができる。例えば、提供チャネル証明書を使用して確立することができる。したがって、このような実施形態において、認証プロキシ114は、セキュリティの追加の層として作用する。加えて、APIコネクタインスタンス116が、変化した場合であっても、認証プロキシ114は、クラウド・サービス・ブローカー・インターフェイス126との確立した接続を維持できる。安全な通信チャネル134、136、および138の一つ以上が、当業者に知られている技術を使用して安全にすることができることを理解すべきである。
いくつかの実施形態において、コネクタハブ106は、そのクラウド・サービス・ブローカー・インターフェイス126と関連した複製されたAPIコネクタインスタンス116が配置されるたびに、監視エージェント(例えば、監視エージェント128参照)にクラウド・サービス・ブローカー・インターフェイス126を通知するように加えて構成されることができる。したがって、そのクラウドサービスのための提供チャネル140を確立すると、クラウド・サービス・ブローカーと関連したエンドユーザは、そのクラウドサービスのためのクラウド・サービス・ブローカーから(例えば、クラウド・サービス・ブローカー・インターフェイス126を介して)購入できる。
ここで図2を参照すると、複数の提供チャネル140は、図1のクラウド・サービス・マーケットプレース・システム100の複数のクラウド・サービス・ブローカー・インターフェイスと複数のクラウド・サービス・プロバイダの間に確立されたとして示される。例示的なクラウド・サービス・ブローカー・インターフェイス126は、クラウド・サービス・ブローカー・インターフェイス(1)202と表わされる第1のクラウド・サービス・ブローカー・インターフェイスおよびクラウド・サービス・ブローカー・インターフェイス(2)206と表わされる第2のクラウド・サービス・ブローカー・インターフェイスを含む。例示的なクラウド・サービス・ブローカー・インターフェイス202は、監視エージェント(1)204と表わされる監視エージェント128を含み、そして、例示的なクラウド・サービス・ブローカー・インターフェイス206は、監視エージェント(2)208と表わされる監視エージェント128を含む。いかなる数のクラウド・サービス・ブローカー・インターフェイス126も他の実施形態にありえることを理解すべきである。
例示的なクラウド・サービス・プロバイダ・インターフェイス120は、クラウド・サービス・プロバイダ・インターフェイス(1)210と表わされる第1のクラウド・サービス・プロバイダ・インターフェイスおよびクラウド・サービス・プロバイダ・インターフェイス(2)214と表わされる第2のクラウド・サービス・プロバイダ・インターフェイスを含む。上記のように、各クラウド・サービス・プロバイダは、API122が通信するために開発されるクラウドサービスと関連しているAPIコネクタインスタンス116と通信するために使用可能であるAPI122を含む。例示的なクラウド・サービス・プロバイダ・インターフェイス(1)は、API(1)212と表わされる第1のAPIを含み、そして、例示的なクラウド・サービス・プロバイダ・インターフェイス(2)は、API(2)216と表わされる第2のAPIを含む。いかなる数のクラウド・サービス・プロバイダ・インターフェイス120も他の実施形態にありえることを理解すべきである。他の実施形態において、クラウド・サービス・プロバイダ・インターフェイス120の各々は、複数のAPI122を含むことができることを更に理解すべきである。
上記のように、コネクタハブ106は、対応するAPI122と通信するように構成されるそれぞれのクラウド・サービス・プロバイダ・インターフェイス120から受信するAPIコネクタのインスタンスを複製することによってクラウド・サービス・プロバイダ・インターフェイス120とクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネル140を確立するように構成される。例示的なコネクタファクトリ112において、それらが関連する適用できるAPI122に対応するAPIコネクタインスタンス116、および、実施形態によっては、認証プロキシインスタンス114から各々成る4つの提供チャネル140が示される。
例示的なAPIコネクタインスタンス116は、APIコネクタ(1)226と表わされる第1のAPIコネクタインスタンス、APIコネクタ(2)228と表わされる第2のAPIコネクタインスタンス、APIコネクタ(3)230と表わされる第3のAPIコネクタインスタンス、およびAPIコネクタ(4)232と表わされる第4のAPIコネクタインスタンスを含む。例示的な認証プロキシ114は、認証プロキシ(1)218と表わされる第1の認証プロキシインスタンス、認証プロキシ(2)220と表わされる第2の認証プロキシインスタンス、認証プロキシ(3)222と表わされる第3の認証プロキシインスタンス、および認証プロキシ(4)224と表わされる第4の認証プロキシインスタンスを含む。
提供チャネル140をその間に確立するように配置される、図2に示す4つのAPIコネクタ116(すなわち、APIコネクタインスタンス226、228、230、232)の各々は、対応するクラウド・サービス・プロバイダから受信するそれぞれのAPIコネクタの複製であることを理解すべきである。示すように、APIコネクタ(1)226およびAPIコネクタ(3)230は、クラウド・サービス・プロバイダ・インターフェイス(1)210のAPI(1)212と関連している。その一方で、APIコネクタ(2)228およびAPIコネクタ(4)232は、クラウド・サービス・プロバイダ・インターフェイス(2)214のAPI(2)216と関連している。加えて、APIコネクタ(1)226およびAPIコネクタ(2)228は、クラウド・サービス・ブローカー・インターフェイス(1)202と関連している。その一方で、APIコネクタ(3)230およびAPIコネクタ(4)232は、クラウド・サービス・ブローカー・インターフェイス(2)206と関連している。
図1に戻って参照すると、例示的なクラウド・サービス・マーケットプレース・システム100に示すように、マーケットプレースコンピューティングデバイス102、サービスプロバイダコンピューティングデバイス118、ブローカーコンピューティングデバイス124、およびエンドポイントコンピューティングデバイス144の各々は、いかなるタイプのコンピューティングデバイス130としても実現できる。換言すれば、それぞれのコンピューティングデバイス130の各々は、本願明細書に記載の機能を実行できるいかなるタイプの計算および/または記憶装置としても実現できる。それぞれのコンピューティングデバイス130の一つ以上が、クラウド・アーキテクテッド・ネットワークまたはデータセンターにおける(例えば、記憶エリアネットワーク(SAN)の)一つ以上のサーバ(例えば、スタンドアロン、ラックマウントなど)および/またはコンピュートブレードとデータ記憶装置の組合せとして実現することができて、その一方で、それぞれのコンピューティングデバイスの一つ以上が、デスクトップコンピュータ、モバイルコンピューティングデバイス(例えば、スマートフォン、ウェアラブル機器、タブレット、ラップトップ、ノートブックなど)、あるいはその他のタイプの「高性能な」またはインターネット接続装置として実現できることを理解すべきである。
ここで図3を参照すると、マーケットプレースコンピューティングデバイス102、サービスプロバイダコンピューティングデバイス118、ブローカーコンピューティングデバイス124、およびエンドポイントコンピューティングデバイス144の一つ以上を表わすコンピューティングデバイス130の例示的な実施形態が、示される。例示的なコンピューティングデバイス130は、中央演算処理装置(CPU)300、入出力(I/O)コントローラ302、メモリ304、ネットワーク通信回路306、およびデータ記憶装置310、ならびに、実施形態によっては、一つ以上のI/O周辺機器308を含む。いくつかの実施形態において、例示的な構成要素の一つ以上は、単一の集積回路(IC)上の単一のシステムオンアチップ(SoC)に組み合わせることができる。代替の実施形態が、例示的なコンピューティングデバイス130のそれらに対する追加の、より少ない、および/または代替の構成要素、例えば、説明の明確さを維持するために示されない、グラフィックス処理ユニット(GPU)、電源などを含むことができることを理解すべきである。それぞれのコンピューティングデバイス130の記憶/計算構成要素のタイプが、それぞれのコンピューティングデバイス130のタイプおよび意図された使用に基づくことがありえると更に理解すべきである。
CPU300またはプロセッサは、データを処理できる回路のいかなるタイプのハードウェアまたは組合せとしても実現できる。したがって、CPU300は、単一コア・プロセッサ・アーキテクチャの一つの処理コア(図示せず)、またはマルチコア・プロセッサ・アーキテクチャの複数の処理コアを含むことができる。処理コアの数にかかわりなく、CPU300は、プログラム命令を読み込んで、実行できる。いくつかの実施形態において、CPU300は、CPU300と直接集積化されるかまたはCPU300との別の相互接続を有する別のチップに配置されることができるキャッシュメモリ(図示せず)を含むことができる。いくつかの実施形態において、パイプライン論理が、CPU300に出入りするコマンドよりもむしろ、ソフトウェアおよび/またはハードウェア動作(例えば、ネットワークトラフィック処理操作)を実行するために用いることができることを理解すべきである。
入出力コントローラ302または入出力インターフェイスは、入出力装置とコンピューティングデバイス130の間のインターフェイスをとることができる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実現できる。実例として、入出力コントローラ302は、CPU300から入出力要求を受信して、それぞれの入出力装置に制御信号を送り、それによってコンピューティングデバイス130に出入りするデータフローを管理するように構成される。
メモリ304は、処理のためのデータおよび命令を保持できる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実現できる。この種のメモリ304は、主または主要なメモリと呼ばれることがある。いくつかの実施形態において、コンピューティングデバイス130の一つ以上の構成要素が、メモリへ直接アクセスすることができて、そうすると、特定のデータを、CPU300と独立して直接メモリアクセス(DMA)により格納できると理解すべきである。
ネットワーク通信回路306は、無線および/または有線通信モードを通じてネットワークインターフェイス通信(例えば、メッセージ、データグラム、パケットなど)を管理できる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実現できる。したがって、いくつかの実施形態において、ネットワーク通信回路306は、コンピューティングデバイス130をコンピュータネットワーク(例えば、ネットワーク106)ならびにクラウド・サービス・マーケットプレース・システム100の他のコンピューティングデバイスに接続するように構成されることができるネットワーク・インターフェイス・コントローラ(NIC)を含むことができる。
一つ以上の入出力周辺機器308は、コンピューティングデバイス130に接続してそれと通信するように構成されるいかなる補助装置としても実現できる。例えば、入出力周辺機器308は、マウス、キーボード、モニタ、タッチスクリーン、プリンタ、スキャナ、マイクロホン、スピーカなどを含むことができるが、これらに限定されない。したがって、いくつかの入出力装置が、1つの機能(すなわち、入力または出力)または両方の機能(すなわち、入力および出力)ができることを理解すべきである。
いくつかの実施形態において、入出力周辺機器308は、コンピューティングデバイス130のケーブル(例えば、リボンケーブル、ワイヤ、汎用シリアルバス(USB)ケーブル、高解像度マルチメディアインターフェイス(HDMI(登録商標))ケーブルなど)を介してコンピューティングデバイス130に接続できる。このような実施形態において、ケーブルは、その間でなされる通信を入出力コントローラ302によって管理することができるコンピューティングデバイス130の対応するポート(図示せず)に接続している。代替の実施形態において、入出力周辺機器308は、ネットワーク通信回路306によって管理できる通信の無線モード(例えば、ブルートゥース(登録商標)、Wi−Fi(登録商標)など)を介してコンピューティングデバイス130に接続できる。
データ記憶装置310は、データの不揮発性記憶ができるいかなるタイプのコンピュータハードウェア(例えば、半導体記憶媒体、磁気記憶媒体、光記憶媒体など)としても実現できる。この種のデータ記憶装置310は、一般に補助的または二次的な記憶装置と呼ばれて、上記のメモリ304と関連して大量のデータを格納するために通常は用いる。
図1に戻って参照すると、例示的なクラウド・サービス・マーケットプレース・システム100は、他のコンピューティングデバイス130がマーケットプレースコンピューティングデバイス102と通信するために使用可能であるネットワーク132を含む。ネットワーク132は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、グローバルネットワーク(インターネット)などを含む、いかなるタイプの有線および/または無線ネットワークとしても実施できる。したがって、ネットワーク132は、一連の有線および/またはインターコネクト器を通じてネットワーク通信トラフィックのフローおよび/または処理を容易にするための一つ以上の通信で接続したネットワークコンピューティングデバイス(図示せず)を含むことができる。この種のネットワークコンピューティングデバイスは、一つ以上のアクセスポイント、ルータ、スイッチ、サーバ、コンピュートデバイス、記憶装置などを含むことができるが、これらに限定されるものではない。
例えば、この種のネットワークコンピューティングデバイスの一つ以上は、有線(例えば、イーサネット(登録商標)、トークンリングなど)および/または無線(例えば、ブルートゥース(登録商標)、Wi−Fi(登録商標)、無線ブロードバンド、ジグビー(登録商標)など)通信技術および関連プロトコルを用いたLAN構成においてエンドポイントコンピューティングデバイス144をネットワーク132に接続するように構成されることができる。実施例の促進において、LANは、ネットワーク132の追加ネットワークコンピューティングデバイスを介して一つ以上の広域ネットワーク(例えば、WAN、メトロポリタン・エリア・ネットワーク(MAN)、インターネットなど)に(例えば、同軸ケーブル、モバイル電話通信、光ファイバーケーブルなどを介して)接続できる。
クラウド・サービス・プロバイダ・インターフェイス120およびクラウド・サービス・ブローカー・インターフェイス126は、本願明細書に記載の機能を実行できるソフトウェア、ハードウェア、ファームウェア、および回路のいかなる組合せとしても実現できる。いくつかの実施形態において、クラウド・サービス・プロバイダ・インターフェイス120およびクラウド・サービス・ブローカー・インターフェイス126の一方または両方とも、(例えば、ユーザインターフェイス(UI)を介して)情報をサービスプロバイダコンピューティングデバイス118のディスプレイおよびブローカーコンピューティングデバイス114それぞれに提供するように構成されることができる。このような実施形態において、クラウド・サービス・プロバイダ・インターフェイス120およびクラウド・サービス・ブローカー・インターフェイス126の一方または両方とも、ログインするためにユーザから受信した入力を中継するか、それぞれのインターフェイスを構成するか、または、それに関連する情報(例えば、設定)を操作するように構成されることができる。
ここで図4を参照すると、例示的な方法400は、マーケットプレースコンピューティングデバイス(例えば、図1のマーケットプレースコンピューティングデバイス102)によって、または、より詳細には、マーケットプレースコンピューティングデバイス102のコネクタハブ(例えば、図1のコネクタハブ106)によって実行できるクラウド・サービス・ブローカー・マーケットプレース(例えば、図1のクラウド・サービス・ブローカー・マーケットプレース104)に新規なクラウドサービスを加えるために提供される。そうするために、ブロック402で、コネクタハブ106は、新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレース104の利用できるクラウドサービスに加えることになっているかどうか判定する。この種の判定は、新規なクラウドサービスをクラウド・サービス・ブローカー・マーケットプレース104に加えるために表示する表示が、コネクタハブ106によって(例えば、クラウド・サービス・プロバイダ・インターフェイス120から)受信されたかどうかに基づくことができる。
コネクタハブ106が、新規なクラウドサービスが加えられることになっていると判定する場合、方法400は、ブロック404へ進む。ブロック404において、コネクタハブ106は、サービスプロバイダコンピューティングデバイス118のクラウド・サービス・プロバイダ・インターフェイス(例えば、図1のクラウド・サービス・プロバイダ・インターフェイス120)を介してアクセス可能なクラウドサービスと関連したアドレス(例えば、ユニフォームリソース識別子(URI))を検索する。ブロック406において、コネクタハブ106は、クラウド・サービス・プロバイダのための提供チャネル証明書(すなわち、プロバイダ提供チャネル証明書)を生成する。いくつかの実施形態において、プロバイダ提供チャネル証明書が、クラウド・サービス・プロバイダから受信できる(例えば、クラウド・サービス・プロバイダ・インターフェイス120により生成されて、それを介して受信される)ことを理解すべきである。ブロック408において、コネクタハブ106は、検索されたクラウド・サービス・プロバイダ・アドレスおよびブロック406において生成されたプロバイダ提供チャネル証明書を、例えば、公知技術(例えば、ハードウェア・セキュリティ・モジュール)を使用して安全にすることができる、コネクタハブ106のローカルな安全なデータベース(例えば、図1の証明書データベース108)に格納する。ブロック410において、コネクタハブ106は、プロバイダ提供チャネル証明書をクラウド・サービス・プロバイダ・インターフェイス120に伝送する。
ブロック412において、コネクタハブ106は、APIコネクタが(例えば、クラウド・サービス・プロバイダ・インターフェイス120を介して)クラウド・サービス・プロバイダから受信されたかどうか判定する。上記のように、APIコネクタは、APIコネクタのインスタンスを複製するために使用可能なソースコードから成ることができる。APIコネクタに関連した追加情報が、ブロック412においてAPIコネクタを用いて受信できることを理解すべきである。この種の追加情報は、APIコネクタの識別子を含むことができる。APIコネクタが受信された場合、方法400は、ブロック414へ進む。コネクタハブ106は、ブロック412において受信するAPIコネクタを、例えば、公知技術(例えば、ハードウェア・セキュリティ・モジュール)を使用して安全にすることができる、コネクタハブ106ローカルな安全なデータベース(例えば、図1の利用できるサービスデータベース110)に格納する。加えて、ブロック416において、コネクタハブ106は、APIコネクタのソースコードを利用できるサービスデータベース110に格納する。更に、ブロック418において、コネクタハブは、ブロック412において受信するAPIコネクタと関連したクラウドサービスの識別子を利用できるサービスデータベース110に格納する。
ここで図5および6を参照すると、例示的な方法500、600は、マーケットプレースコンピューティングデバイス102によって、または、より詳細にはマーケットプレースコンピューティングデバイス102のコネクタハブ(例えば、図1のコネクタハブ106)によって実行できる、クラウド・サービス・プロバイダ・インターフェイス(例えば、図1のクラウド・サービス・プロバイダ・インターフェイス120)とクラウド・サービス・ブローカー・インターフェイス(例えば、図1のクラウド・サービス・ブローカー・インターフェイス126)の間に提供チャネル(例えば、図1の提供チャネル140)を確立するために提供される。上記のように、認証プロキシインスタンス(例えば、図1の認証プロキシインスタンス114)は、提供チャネルを確立する際に配置できる。図5において、例示的な方法500は、認証プロキシインスタンス114が提供チャネル140に配置される実施形態を記載する。図6において、例示的な方法600は、認証プロキシインスタンス114が提供チャネル140に配置されない実施形態を記載する。
図5に示すように、方法500は、ブロック502において始まり、コネクタハブ106は、APIコネクタ提供通知書が受信されたかどうか判定する。いくつかの実施形態において、APIコネクタ提供通知書は、クラウド・サービス・ブローカー・マーケットプレース104から受信することができて、APIコネクタ提供通知書は、クラウド・サービス・ブローカーが利用できるクラウドサービスがそれらのクラウド・サービス・ポートフォリオに加えられることを要求したことに応答して生成された。コネクタハブ106が、APIコネクタ提供通知書が受信されたと判定する場合、方法500は、ブロック504へ進む。
ブロック504において、コネクタハブ106は、(例えば、ブロック502においてAPIコネクタ提供通知を用いて受信されるそのクラウド・サービス・ブローカーの識別子に基づいて)ブロック502において受信するAPIコネクタ提供通知書と関連したクラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成する。コネクタハブ106が、生成されたブローカー提供チャネル証明書をコネクタハブ106のローカルな証明書データベース(例えば、図1の証明書データベース108)に格納するように構成されることができることを理解すべきである。ブロック506において、コネクタハブ106は、APIコネクタ提供通知書を用いて受信されるクラウド・サービス・ブローカーのアドレスに基づいてブローカー提供チャネル証明書をクラウド・サービス・ブローカーに伝送する。コネクタハブ106が、クラウド・サービス・ブローカー・アドレスをデータベース、例えば、証明書データベース108に格納するように構成されることができることを理解すべきである。ブロック508において、コネクタハブ106は、プロキシチャネル提供チャネル証明書を生成する。
ブロック510において、コネクタハブ106は、利用できるサービスデータベース110上のAPIコネクタ検索を実行するためにブロック502においてAPIコネクタ提供通知書を用いて受信したAPIコネクタの識別子を使用して利用できるサービスデータベース(例えば、図1の利用できるサービスデータベース110)から検索されるAPIコネクタのソースコードに基づいてAPIコネクタインスタンス(例えば、図1のAPIコネクタインスタンス116)を配置する。
ブロック512において、コネクタハブ106は、通信チャネル(例えば、図1の通信チャネル134)をクラウド・サービス・プロバイダ・インターフェイス120とAPIコネクタインスタンス116の間に確立するために使用可能であるAPIコネクタインスタンス116にプロバイダ提供チャネル情報を伝送する。したがって、この種のプロバイダ提供チャネル情報は、クラウドサービスの識別子が対応するクラウド・サービス・プロバイダおよびクラウド・サービス・プロバイダのアドレスと関連したプロバイダ提供チャネル証明書を含む。加えて、ブロック512において、コネクタハブ106は、通信チャネル(例えば、図1の通信チャネル136)をAPIコネクタインスタンス116と認証プロキシインスタンスとの間に確立するために使用可能であるAPIコネクタインスタンス116にプロキシ提供チャネル情報を更に伝送する。したがって、この種のプロキシチャネル提供情報は、プロキシチャネル提供チャネル証明書を含む。
ブロック514において、コネクタハブ106は、認証プロキシインスタンス(例えば、図1の認証プロキシインスタンス114)を配置する。加えて、ブロック516において、コネクタハブ106は、認証プロキシインスタンス114とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、図1の通信チャネル138)を確立するために使用可能である認証プロキシインスタンス114にブローカー提供チャネル情報を伝送する。この種のブローカー提供チャネル情報は、クラウド・サービス・ブローカー識別子が対応するクラウド・サービス・ブローカーおよびクラウド・サービス・ブローカーのアドレスと関連したブローカー提供チャネル証明書を含む。コネクタハブ106は、ブロック516において、APIコネクタインスタンス116と認証プロキシインスタンス114の間に通信チャネル(例えば、図1の通信チャネル136)を確立するために使用可能である認証プロキシインスタンス114にプロキシ提供チャネル証明書を更に伝送する。
ブロック518において、コネクタハブ106は、クラウド・サービス・プロバイダ・インターフェイス120と認証プロキシインスタンス114の間に提供チャネル140の一部を確立する。そうするために、ブロック520において、コネクタハブ106は、プロバイダ提供チャネル証明書を用いてAPIコネクタインスタンス116とクラウド・サービス・プロバイダ・インターフェイス120の間に通信チャネル134を確立する。加えて、ブロック522において、コネクタハブ106は、当業者に周知であるいかなる認証動作も使用して(すなわち、APIコネクタインスタンス116と認証プロキシインスタンス114はそれぞれが実体を互いに確認するために)プロキシ提供チャネル証明書を用いてAPIコネクタインスタンス116と認証プロキシインスタンス114の間に通信チャネル136を確立する。
図5に記載されている提供チャネル140の一部を確立した後に、提供チャネル140の残りの部分(すなわち、クラウド・サービス・ブローカー・インターフェイス126と認証プロキシインスタンス114の間の通信チャネル138)は、確立されないままであることを理解すべきである。通信チャネル138を確立するために、ブロック524において、コネクタハブ106は、APIコネクタインスタンス116のアドレス(例えば、URI)を含むメッセージを伝送し、メッセージは、認証プロキシインスタンス114とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、通信チャネル138)を確立するために使用可能である。いくつかの実施形態において、認証プロキシインスタンス114が配置されたことを示すメッセージは、通知書がコネクタハブ106によってプッシュされるかまたはクラウド・サービス・ブローカー・インターフェイス126によってプッシュされるメッセージ待ち行列に配置できる。
いくつかの実施形態において、監視エージェント(例えば、図1の監視エージェント128)は、表示を受信/検索するために使用可能であるクラウド・サービス・ブローカー(例えば、クラウド・サービス・ブローカー・インターフェイス126)に以前配置することができた。このような実施形態において、表示の検出に応じて、監視エージェント128は、ブローカー提供チャネル証明書(例えば、図7の方法700参照)を用いてクラウド・サービス・ブローカー・インターフェイス126と認証プロキシインスタンス114の間の通信チャネル138の確立を開始できる。したがって、表示は、通信チャネル138を確立して、提供チャネル140を完成するために監視エージェント128によって使用可能であるブロック608において配置される認証プロキシインスタンス114のアドレス(例えば、URIにおける)を含む。監視エージェント128を含まない代替の実施形態において、通信チャネル138の構成が、クラウド・サービス・ブローカー・インターフェイス126において手動で実行できることを理解すべきである。
例示的な実施例において、図2に示すように、通信チャネル134は、クラウド・サービス・プロバイダ・インターフェイス(1)210とクラウド・サービス・ブローカー・インターフェイス(1)202の間に確立される。そうするために、使用中に、APIコネクタ(1)226は、APIコネクタ(1)226およびクラウド・サービス・プロバイダ・インターフェイス(1)210に以前伝送されたプロバイダ提供チャネル証明書を使用して認証動作を実行することによって、API(1)212を介して、クラウド・サービス・プロバイダ・インターフェイス(1)210を用いて通信チャネル134を確立する。同様に、別の通信チャネル134は、クラウド・サービス・プロバイダ・インターフェイス(2)214とクラウド・サービス・ブローカー・インターフェイス(1)202の間に確立される。そうするために、使用中に、APIコネクタ(1)228は、APIコネクタ(1)228およびクラウド・サービス・プロバイダ・インターフェイス(2)214に以前提供されたプロバイダ提供チャネル証明書を使用して認証動作を実行することによって、API(2)216を介して、クラウド・サービス・プロバイダ・インターフェイス(2)214を用いて通信チャネル134を確立する。
例示的な実施例の促進において、通信チャネル136は、APIコネクタ(1)226および認証プロキシ(1)218と関連したプロキシ提供チャネル証明書を使用して認証動作を実行することによってAPIコネクタ(1)226と認証プロキシ(1)218の間に確立される。同様に、別の通信チャネル136は、APIコネクタ(2)228および認証プロキシ(2)220と関連したプロキシ提供チャネル証明書を使用して認証動作を実行することによってAPIコネクタ(2)228と認証プロキシ(2)220の間に確立される。
加えて、例示的な実施例の促進において、通信チャネル138は、クラウド・サービス・ブローカー・インターフェイス(1)202と認証プロキシ(1)218の間に確立される。そうするために、使用中に、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(1)218は、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(1)218に以前提供されたブローカー提供チャネル証明書を使用して認証動作を実行する。同様に、別の通信チャネル138は、クラウド・サービス・ブローカー・インターフェイス(1)202と認証プロキシ(2)220の間に確立される。そうするために、使用中に、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(2)220は、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(2)220に以前提供されたブローカー提供チャネル証明書を使用して認証動作を実行する。
以前に記載したように、認証プロキシインスタンス114が、いくつかの実施形態において配置することができないことを理解すべきである。このような実施形態において、通信チャネル138は、それぞれのクラウド・サービス・ブローカー・インターフェイス126から、それぞれのAPIコネクタインスタンス116まで直接拡張する。認証プロキシインスタンス114が、提供チャネルに配置されるかどうかにかかわりなく、現在の技術とは異なり、クラウド・サービス・プロバイダ・インターフェイス120もクラウド・サービス・ブローカー・インターフェイス126も、その他の提供チャネル証明書にアクセスせず、それによってクラウド・サービス・プロバイダのそれぞれのAPI122の安全な拡張を提供する。
図6に示すように、方法600は、ブロック602において始まり、コネクタハブ106は、APIコネクタ提供通知書が受信されたかどうか判定する。いくつかの実施形態において、APIコネクタ提供通知書は、クラウド・サービス・ブローカー・マーケットプレース104から受信することができて、APIコネクタ提供通知書は、クラウド・サービス・ブローカーが利用できるクラウドサービスがそれらのクラウド・サービス・ポートフォリオに加えられることを要求したのに応じて生成された。コネクタハブ106が、APIコネクタ提供通知書が受信されたと判定する場合、方法600は、ブロック604へ進む。
ブロック604において、コネクタハブ106は、ブロック602において受信されるAPIコネクタ提供通知書と関連したクラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を(例えば、ブロック602において、APIコネクタ提供通知書を用いて受信されるそのクラウド・サービス・ブローカーの識別子に基づいて)生成する。コネクタハブ106が、生成されたブローカー提供チャネル証明書をコネクタハブ106のローカルな証明書データベースに(例えば、図1の証明書データベース108に)格納するように構成されることができることを理解すべきである。いくつかの実施形態において、ブローカー提供チャネル証明書が、クラウド・サービス・ブローカーから受信する(例えば、クラウド・サービス・ブローカー・インターフェイス126によって発生して、それを介して受信する)ことができることを更に理解すべきである。ブロック606において、コネクタハブ106は、APIコネクタ提供通知書を用いて受信するクラウド・サービス・ブローカーのアドレスに基づいてブローカー提供チャネル証明書をクラウド・サービス・ブローカーに伝送する。コネクタハブ106が、クラウド・サービス・ブローカー・アドレスをデータベース、例えば、証明書データベース108に格納するように構成されることができることを理解すべきである。
ブロック608において、コネクタハブ106は、利用できるサービスデータベース110上のAPIコネクタ検索を実行するためにブロック602においてAPIコネクタ提供通知書を用いて受信するAPIコネクタの識別子を使用して利用できるサービスデータベース(例えば、図1の利用できるサービスデータベース110)から検索したAPIコネクタのソースコードに基づいてAPIコネクタインスタンス(例えば、図1のAPIコネクタインスタンス116)を配置する。加えて、ブロック610において、コネクタハブ106は、クラウド・サービス・プロバイダ・インターフェイス120とAPIコネクタインスタンス116の間に通信チャネル(例えば、図1の通信チャネル134)を確立するために使用可能であるAPIコネクタインスタンス116にプロバイダ提供チャネル情報を伝送する。したがって、この種のプロバイダ提供チャネル情報は、クラウドサービスの識別子が対応するクラウド・サービス・プロバイダおよびクラウド・サービス・プロバイダのアドレスと関連したプロバイダ提供チャネル証明書を含む。
更に、ブロック612において、コネクタハブ106は、APIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、図1の通信チャネル138)を確立するために使用可能であるAPIコネクタインスタンス116にブローカー提供チャネル情報を伝送する。この種のブローカー提供チャネル情報は、クラウド・サービス・ブローカー識別子が対応するクラウド・サービス・ブローカーおよびクラウド・サービス・ブローカーのアドレスと関連したブローカー提供チャネル証明書を含む。
ブロック614において、コネクタハブ106は、クラウド・サービス・プロバイダ・インターフェイス120とクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネルを確立する。そうするために、ブロック616において、コネクタハブ106は、プロバイダ提供チャネル証明書を用いてAPIコネクタインスタンス116とクラウド・サービス・プロバイダ・インターフェイス120の間に通信チャネル134を確立する。加えて、ブロック618において、コネクタハブ106は、ブローカー提供チャネル証明書を用いてAPIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル138を確立する。ブロック620において、コネクタハブ106は、APIコネクタインスタンス116のアドレス(例えば、URI)を含むメッセージを伝送し、メッセージは、APIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、通信チャネル138)を確立するために使用可能である。いくつかの実施形態において、APIコネクタインスタンス116が配置されたことを示すメッセージは、通知書がコネクタハブ106によってプッシュされるかまたはクラウド・サービス・ブローカー・インターフェイス126によってプッシュされるメッセージ待ち行列に配置できる。
いくつかの実施形態において、監視エージェント(例えば、図1の監視エージェント128)は、表示を受信/検索するために使用可能であるクラウド・サービス・ブローカー(例えば、クラウド・サービス・ブローカー・インターフェイス126)に以前に配置することができた。このような実施形態において、表示の検出に応じて、監視エージェント128は、ブローカー提供チャネル証明書(例えば、図7の方法700参照)を用いてクラウド・サービス・ブローカー・インターフェイス126とAPIコネクタインスタンス116の間の通信チャネル138の確立を開始できる。したがって、表示は、通信チャネル138を確立して、提供チャネル140を完成するために監視エージェント128によって使用可能であるブロック608において配置されるAPIコネクタインスタンス116のアドレス(例えば、URIにおける)を含む。監視エージェント128を含まない代替の実施形態において、通信チャネル138の構成が、クラウド・サービス・ブローカー・インターフェイス126において手動で実行できることを理解すべきである。
ここで図7を参照すると、例示的な方法700は、ブローカーコンピュータのクラウド・サービス・ブローカー・インターフェイス(例えば、図1のブローカーコンピューティングデバイス124のクラウド・サービス・ブローカー・インターフェイス126)によって、または、より詳細には、クラウド・サービス・ブローカー・インターフェイス126の監視エージェント(例えば、図1の監視エージェント128)によって実行できるクラウド・サービス・ブローカーによる再販のためのクラウドサービスを構成するために提供される。方法600は、ブロック702において始まり、監視エージェント128は、新規なAPIコネクタインスタンス(例えば、APIコネクタインスタンス116)が検出されたかどうか判定する。
一定の条件下で、APIコネクタのソースコード(すなわち、APIコネクタインスタンス116を配置するために用いる)は、クラウド・サービス・プロバイダによって変更できる。このような条件下で、コネクタハブ106は、APIコネクタの新規なインスタンスを配置するように構成される。したがって、認証プロキシインスタンス114の新規なインスタンスとクラウド・サービス・ブローカー・インターフェイス126の間の信用関係の結果として、通信チャネル136は、付加的な構成なしに再確立できる。監視チャンネル142が、その間にメッセージを伝送するために監視エージェント128とコネクタハブ106の間に確立できることを理解すべきである。この種のメッセージは、通信チャネル136の正常性(例えば、クオリティオブサービス)を示すメッセージ、ならびに新規なAPIコネクタ116が利用できることを示すメッセージを含み、それによって方法700を開始する。
一定の条件下で、新規な認証プロキシインスタンス114が、配置されることができ、そして/または、ブローカー提供チャネル証明書が、変更されることができると更に理解すべきである。このような条件下で、コネクタハブ106は、クラウド・サービス・ブローカー・インターフェイス126に新規な認証プロキシインスタンス114および/または新規なブローカー提供チャネル証明書を通知するように構成される。したがって、方法500、600の一つは、実施形態が認証プロキシインスタンス114を含むかどうかに依存して、通信チャネル138を再確立するために用いることができる。いくつかの実施形態において、この種の通知は、監視エージェント128とコネクタハブ106の間で監視チャネル(例えば、図1の監視チャンネル142参照)を介して実行できる。
監視エージェント128が、新規なAPIコネクタインスタンス116が検出されたと判定する場合、方法700は、ブロック704へ進む。ブロック704において、監視エージェント128は、ブロック702において検出された新規なAPIコネクタインスタンス116を用いて通信チャンネル(例えば、提供チャネル140の通信チャンネル138)を構成する。そうするために、いくつかの実施形態において、ブロック706で、監視エージェント128は、新規なAPIコネクタインスタンス116と関連する認証プロキシインスタンス(例えば、図1の認証プロキシインスタンス114)のURIに基づいて通信チャンネル138を構成する。さもなければ、代替の実施形態(すなわち、認証プロキシインスタンス114が配置されない実施形態)において、ブロック708で、監視エージェント128は、新規なAPIコネクタインスタンス116を用いて通信チャンネルを確立するために使用可能な情報を含むURIに基づいて通信チャンネル138を構成する。
ブロック710において、監視エージェント128は、新規なAPIコネクタインスタンス114と関連したクラウドサービスの再販を可能にするようにクラウド・サービス・ブローカー・インターフェイス126を構成する。そうするために、ブロック712において、監視エージェント128は、コネクタハブ106から受信する初期設定に基づいて(例えば、監視チャネル142を介して)クラウド・サービス・ブローカー・インターフェイス126を構成する。初期設定は、販売計画、サービステンプレート、価格設定モデル、説明書などを含むことができる。設定が、ブロック710において実行される最初の構成を完了すると、クラウド・サービス・ブローカーによって(例えば、クラウド・サービス・ブローカー・インターフェイス126を介して)変更できることを理解すべきである。
一定の条件下で、監視エージェント128が、方法700が実行される前に配置されることができなかったことを理解すべきである。このような実施形態において、クラウド・サービス・ブローカー・マーケットプレース104は、監視エージェント128を配置するために表示をクラウド・サービス・インターフェース・ブローカー126に提供するように構成されることができる。この種の表示は、監視エージェント128を最初に構成するために使用可能な情報、ならびに通信チャンネル138の正常性を監視するために監視エージェント128によって使用可能な情報を含むことができる。再販のためのクラウドサービスの成功した配置および成功した構成により、監視エージェント128は、それから、通信チャンネル138の正常性を監視して、コネクタハブ106に監視動作の結果を報告できる。
本開示が、図面および前述の説明に例示されて詳述されたが、そのことは、特徴において例示的であり限定的でないとみなすべきであり、特定の実施形態だけが、図示されて説明された、そして、本開示の精神の範囲内に入る変更態様が、保護されることが望ましいと理解される。
(関連出願の相互参照)
本出願は、2016年12月29日に出願された米国特許出願第15/393,354号の国際特許出願であり、これにより、それのテキストおよび図面の内容全体を本願明細書に引用したものとする。
本開示の実施形態は、一般にクラウド・サービス・マーケットプレース、より詳細には、クラウド・サービス・マーケットプレースにおいてクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を拡張する技術に関する。
独立ソフトウェアベンダー(ISV)は、一つ以上のコンピュータハードウェアまたはオペレーティング・システム・プラットフォーム上で動作するように典型的に設計されるソフトウェアアプリケーションを開発して、販売する。この種のソフトウェアアプリケーションは、基本ユーティリティまたは生産性向上アプリケーションから企業用のビジネス・プロセス・アプリケーションにわたる(例えば、顧客関係管理(CRM)、企業資源計画(ERP)、オートメーションツールなど)。クラウドコンピューティングが、より普及するにつれて、ソフトウェアを引き渡すそのような方法は、サービスとしてのソフトウェア(SaaS)ベースのモデルを使用してクラウドにより行われてきた。この引渡し方法を使用して、ISVは、それらのソフトウェアアプリケーション、またはそれらのソフトウェアアプリケーションに対する予約をパブリッククラウドまたはクラウドマーケットプレースを通して販売できる。
クラウドマーケットプレースは、クラウドベースのサービスおよびソフトウェアアプリケーションへの顧客アクセスを可能にするオンライン店頭を提供する。クラウドマーケットプレースのこの種の実施例は、AmazonのAmazon Web Services(登録商標)(AWS)マーケットプレース、MicrosoftのAzure(登録商標)マーケットプレース、Oracleのマーケットプレース、SalesforceのAppExchange(登録商標)、および Ingram Microのクラウドマーケットプレースを含む。クラウドマーケットプレースを介してアクセス可能になる特定のSaaSベースの購読サービスは、ISVとクラウドマーケットプレースまたはクラウドマーケットプレースと関連した他の購読管理ツールの間に位置するISVにより提供されるアプリケーション・プログラミング・インターフェイス(API)を介して予約および/または使用できる。この種の構成において、クラウド・サービス・ブローカーは、各クラウドサービスのためのプラグインまたはAPIコネクタを用いて、ISVとエンドユーザ、再販業者、小売業者などの間の処理を容易にするために用いることができる。
従来のクラウド・サービス・ブローカーの実施態様において、各クラウド・サービス・ブローカーは、通常は、クラウドサービスごとに各ISVとの契約を有する。しかしながら、この種の実施態様は、サポートすることができる契約の最大数により制限される(すなわち、クラウドサービスの数かけるクラウド・サービス・ブローカーの数により制限される)。他の既存のクラウド・サービス・ブローカーの実施態様は、クラウド・サービス・プロバイダおよびクラウド・サービス・ブローカーの各々との契約を有する中心実体に依存する。しかしながら、この種の実施態様で、サポートすることができる契約の最大数は、クラウドサービスの数とクラウド・サービス・ブローカーの数の合計により制限される。更に、この種の実施態様で、1セットの証明書だけが、クラウドサービスAPIごとに存在し、証明書は、クラウドサービスにアクセスできるようにクラウド・サービス・ブローカーに分散される。したがって、同じ証明書は、いろいろなクラウド・サービス・ブローカーに分散することができて、それは結果として、1人のクラウド・サービス・ブローカーが、他のクラウド・サービス・ブローカーのAPIコネクタにアクセスすることがありえる。したがって、クラウド・サービス・マーケットプレースにクラウドサービスAPIを安全に拡張する必要がある。
一つの態様において、クラウド・サービス・マーケットプレースでクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張する方法は、マーケットプレースコンピューティングデバイスのコネクタハブによって、マーケットプレースコンピューティングデバイスの接続ファクトリにAPIコネクタインスタンスを配置するステップであって、APIコネクタインスタンスは、クラウド・サービス・プロバイダのクラウドサービスと関連した遠隔APIと通信するために使用可能なAPIコネクタのソースコードを含むステップと、コネクタハブによって、プロバイダ提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・プロバイダのクラウド・サービス・プロバイダ・インターフェイスに伝送するステップと、コネクタハブによって、ブローカー提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・ブローカーのクラウド・サービス・ブローカー・インターフェイスに伝送するステップと、コネクタハブによって、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立するステップとを含み、提供チャネルを確立するステップは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、および(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネルを確立することを含む。
いくつかの実施形態において、方法は、コネクタハブによって、プロキシ提供チャネル証明書を生成するステップと、コネクタハブによって、認証プロキシインスタンスを接続ファクトリに配置するステップと、コネクタハブによって、プロキシ提供チャネル証明書をAPIコネクタインスタンスおよび認証プロキシインスタンスに伝送するステップとを更に含む。他の実施形態において、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立するステップは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いることによるAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いることによる認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネル、および(iii)第3の認証動作を実行するためにプロキシ提供チャネル証明書を用いることによるAPIコネクタインスタンスと認証プロキシインスタンスの間の第3の通信チャネルを確立することを含む。
他の実施形態において、第2の通信チャネルを認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立するステップは、認証プロキシインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
更に他の実施形態において、方法は、コネクタハブによって、クラウド・サービス・プロバイダに対応するプロバイダ提供チャネル証明書を生成するステップと、コネクタハブによって、クラウド・サービス・ブローカーに対応するブローカー提供チャネル証明書を生成するステップとを含む。更に他の実施形態において、方法は、コネクタハブによって、APIコネクタ提供通知書をマーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースから受信するステップを更に含み、クラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成するステップは、APIコネクタ提供通知書を受信したことに応答してブローカー提供チャネル証明書を生成することを含む。
いくつかの実施形態において、方法は、コネクタハブによって、クラウド・サービス・プロバイダの新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレースにおいて、利用可能となったという表示をクラウド・サービス・プロバイダから受信するステップを含み、プロバイダ提供チャネル証明書を生成するステップは、表示を受信したことに応答してプロバイダ提供チャネル証明書を生成することを含む。他の実施形態において、方法は、コネクタハブによって、プロバイダ提供チャネル証明書をコネクタハブの証明書データベースに格納するステップと、コネクタハブによって、プロバイダ提供チャネル証明書を証明書データベースのクラウド・サービス・プロバイダと関連づけるステップと、コネクタハブによって、ブローカー提供チャネル証明書を証明書データベースに格納するステップと、コネクタハブによって、ブローカー提供チャネル証明書をクラウド・サービス・ブローカーと関連づけるステップとを含む。さらに、他の実施形態において、第2の通信チャネルをAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立するステップは、APIコネクタインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
別の態様において、一つ以上のコンピュータ可読記憶媒体は、実行されることに応答してマーケットプレースコンピューティングデバイスのコネクタハブに、クラウド・サービス・プロバイダのクラウドサービスと関連した遠隔APIと通信するために使用可能なAPIコネクタのソースコードを含むAPIコネクタインスタンスをマーケットプレースコンピューティングデバイスの接続ファクトリに配置させ、プロバイダ提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・プロバイダのクラウド・サービス・プロバイダ・インターフェイスに伝送させ、ブローカー提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・ブローカーのクラウド・サービス・ブローカー・インターフェイスに伝送させて、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立させる複数の命令を格納し、提供チャネルを確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、および(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネルを確立することを含む。
いくつかの実施形態において一つ以上のコンピュータ可読記憶媒体では、複数の命令は、更に、コネクタハブに、プロキシ提供チャネル証明書を生成させ、認証プロキシインスタンスを接続ファクトリに配置させ、そして、プロキシ提供チャネル証明書をAPIコネクタインスタンスおよび認証プロキシインスタンスに伝送させて、提供チャネルをクラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いることによるAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いることによる認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネル、および(iii)第3の認証動作を実行するためにプロキシ提供チャネル証明書を用いることによるAPIコネクタインスタンスと認証プロキシインスタンスの間の第3の通信チャネルを確立する。
他の実施形態において、第2の通信チャネルを認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、認証プロキシインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
更に他の実施形態において、複数の命令は、更に、コネクタハブに、クラウド・サービス・プロバイダに対応するプロバイダ提供チャネル証明書を生成させて、クラウド・サービス・ブローカーに対応するブローカー提供チャネル証明書を生成させる。加えて、いくつかの実施形態において、複数の命令は、更に、コネクタハブに、マーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースからAPIコネクタ提供通知書を受信させて、クラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成することは、APIコネクタ提供通知書を受信したことに応答してブローカー提供チャネル証明書を生成することを含む。追加的にまたは代替的に、他の実施形態において、複数の命令は、更に、コネクタハブに、クラウド・サービス・プロバイダの新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレースにおいて利用可能となったという表示をクラウド・サービス・プロバイダから受信させて、プロバイダ提供チャネル証明書を生成することは、表示を受信したことに応答してプロバイダ提供チャネル証明書を生成することを含む。
いくつかの実施形態において、複数の命令は、更に、コネクタハブに、プロバイダ提供チャネル証明書をコネクタハブの証明書データベースに格納させ、プロバイダ提供チャネル証明書を証明書データベースのクラウド・サービス・プロバイダと関連づけさせ、ブローカー提供チャネル証明書を証明書データベースに格納させ、そして、ブローカー提供チャネル証明書をクラウド・サービス・ブローカーと関連づけさせる。他の実施形態において、第2の通信チャネルをAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、APIコネクタインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
更に別の態様において、クラウド・サービス・マーケットプレースのクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張するためのマーケットプレースコンピューティングデバイスのコネクタハブが開示され、クラウド・サービス・マーケットプレースは、マーケットプレースコンピューティングデバイスを含み、マーケットプレースコンピューティングデバイスは、CPUと、プロセッサにより実行されるときにマーケットプレースコンピューティングデバイスのコネクタハブに、クラウド・サービス・プロバイダのクラウドサービスと関連した遠隔APIと通信するために使用可能なAPIコネクタのソースコードを含むAPIコネクタインスタンスをマーケットプレースコンピューティングデバイスの接続ファクトリに配置させ、プロバイダ提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・プロバイダのクラウド・サービス・プロバイダ・インターフェイスに伝送させ、ブローカー提供チャネル証明書をAPIコネクタインスタンスおよびクラウド・サービス・ブローカーのクラウド・サービス・ブローカー・インターフェイスに伝送させて、クラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に提供チャネルを確立させる複数の命令を格納するメモリとを備え、提供チャネルを確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、および(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いたAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネルを確立することを含む。
いくつかの実施形態において、一つ以上のプロセッサは、プロキシ提供チャネル証明書を生成し、認証プロキシインスタンスを接続ファクトリに配置し、そして、プロキシ提供チャネル証明書をAPIコネクタインスタンスおよび認証プロキシインスタンスに伝送するために命令を実行するように更に構成されて、提供チャネルをクラウド・サービス・プロバイダ・インターフェイスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、(i)第1の認証動作を実行するためにプロバイダ提供チャネル証明書を用いることによるAPIコネクタインスタンスとクラウド・サービス・プロバイダ・インターフェイスの間の第1の通信チャネル、(ii)第2の認証動作を実行するためにブローカー提供チャネル証明書を用いることによる認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間の第2の通信チャネル、および(iii)第3の認証動作を実行するためにプロキシ提供チャネル証明書を用いることによるAPIコネクタインスタンスと認証プロキシインスタンスの間の第3の通信チャネルを確立することを含む。
他の実施形態において、第2の通信チャネルを認証プロキシインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、認証プロキシインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。更に他の実施形態において、一つ以上のプロセッサは、クラウド・サービス・プロバイダに対応するプロバイダ提供チャネル証明書を生成して、クラウド・サービス・ブローカーに対応するブローカー提供チャネル証明書を生成するために命令を実行するように更に構成される。いくつかの実施形態において、一つ以上のプロセッサは、APIコネクタ提供通知書をマーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースから受信するために命令を実行するように更に構成されて、クラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成することは、APIコネクタ提供通知書を受信したことに応答してブローカー提供チャネル証明書を生成することを含む。
他の実施形態において、一つ以上のプロセッサは、クラウド・サービス・プロバイダの新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレースにおいて利用可能となったという表示をクラウド・サービス・プロバイダから受信するために命令を実行するように更に構成されて、プロバイダ提供チャネル証明書を生成することは、表示を受信したことに応答してプロバイダ提供チャネル証明書を生成することを含む。更に他の実施形態において、一つ以上のプロセッサは、プロバイダ提供チャネル証明書をコネクタハブの証明書データベースに格納し、プロバイダ提供チャネル証明書を証明書データベースのクラウド・サービス・プロバイダと関連づけ、ブローカー提供チャネル証明書を証明書データベースに格納して、ブローカー提供チャネル証明書をクラウド・サービス・ブローカーと関連づけるために命令を実行するように更に構成される。更にまた他の実施形態において、第2の通信チャネルをAPIコネクタインスタンスとクラウド・サービス・ブローカー・インターフェイスの間に確立することは、APIコネクタインスタンスのアドレスをクラウド・サービス・ブローカー・インターフェイスに伝送することを含み、アドレスは、認証プロキシインスタンスとの通信を開始するためにクラウド・サービス・ブローカー・インターフェイスによって使用可能である。
本願明細書に含まれる実施形態と他の特徴、利点、および開示、ならびにそれらを達成する方法は、明らかになり、そして、本開示は、添付の図面に関連してとられる本開示のさまざまな例示的な実施形態の以下の説明を参照することによってよりよく理解される。
ブローカーコンピューティングデバイスおよびサービスプロバイダコンピューティングデバイスを含み、それぞれがマーケットプレースコンピューティングデバイスに通信で接続するクラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張するクラウド・サービス・マーケットプレース・システムの例示的な実施形態のブロック図を示す。
図1のクラウド・サービス・マーケットプレース・システムのクラウド・サービス・ブローカーとクラウド・サービス・プロバイダの間に確立された複数の提供チャネルのブロック図を示す。
図1のマーケットプレースコンピューティングデバイスのクラウド・サービス・ブローカー・マーケットプレースのコンピューティングデバイスの一つの例示的な実施形態のブロック図を示す。
クラウド・サービス・マーケットプレース・システムのマーケットプレースコンピューティングデバイスのコネクタハブによって実行できる新規なクラウドサービスを図1のクラウド・サービス・マーケットプレース・システムに加える例示的な方法の略フロー図を示す。
マーケットプレースコンピューティングデバイスのコネクタハブによって実行できる特定のクラウド・サービス・ブローカーのための図1のクラウド・サービス・プロバイダとマーケットプレースコンピューティングデバイスの間に提供チャネルを確立する例示的な方法の略フロー図を示す。
マーケットプレースコンピューティングデバイスのコネクタハブによって実行できる特定のクラウド・サービス・ブローカーのための図1のクラウド・サービス・プロバイダとマーケットプレースコンピューティングデバイスの間に提供チャネルを確立する別の例示的な方法の略フロー図を示す。
図1のブローカーコンピューティングデバイスの監視エージェントによって実行できる新規なサービスを再販するための図1のクラウド・サービス・ブローカーを構成する例示的な方法の略フロー図を示す。
本開示の原理の理解を促進するために、図面に示す実施形態に対する参照が、ここでなされて、特定の言語が、それを説明するために用いられる。それでも、本開示の範囲の限定がそれにより意図されないと理解される。
図1は、クラウド・サービス・アプリケーション・プログラミング・インターフェイス(API)を安全に拡張するクラウド・サービス・マーケットプレース・システム100を示す。クラウド・サービス・マーケットプレース・システム100は、サービス・プロバイダ・コンピューティングデバイス118およびブローカーコンピューティングデバイス124を含み、それらの各々は、マーケットプレースコンピューティングデバイス102に(例えば、ネットワーク132を介して)通信で接続する。例示的なマーケットプレースコンピューティングデバイス102は、クラウド・サービス・ブローカーが特定のクラウドサービス用のライセンスをエンドユーザ(例えば、顧客、ブローカー、再販業者など)にそれらのクラウド・サービス・ブローカー・インターフェイス126を介して販売できるように、サービスプロバイダコンピューティングデバイス118のクラウド・サービス・プロバイダ・インターフェイス120とブローカーコンピューティングデバイス124のクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネル(例えば、提供チャネル140参照)を確立するように構成されるコネクタハブ106を含む。
そうするために、下記に詳述するように、コネクタハブ106は、クラウド・サービス・プロバイダから以前に受信したクラウドサービスに対応するAPIコネクタのインスタンス(例えば、図1のコネクタファクトリ112のAPIコネクタインスタンス116参照)を複製し、提供チャネル証明書を生成して、生成された提供チャネル証明書を用いたAPIコネクタインスタンスによってクラウド・サービス・プロバイダ・インターフェイス120とクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネル(例えば、図1の提供チャネル140参照)の確立を組織化するように構成される。提供チャネル証明書は、提供チャネル証明書を使用して2つの実体の間に安全な通信チャネルを認証するために使用可能であるいかなるタイプの情報(例えば、暗号キーまたは他の任意のデータ)でもありえることを理解すべきである。
提供チャネル140が確立された後に、クラウド・サービス・ブローカーは、そのクラウドサービス用のライセンスをクラウド・サービス・ブローカー・インターフェイス126を介してエンドユーザに再販できる。したがって、APIコネクタ、それ故に各クラウド・サービス・ブローカーの証明書がクラウド・サービス・ブローカーにより管理される現在の技術とは異なり、例示的なマーケットプレースコンピューティングデバイス102は、クラウド・サービス・ブローカーおよび/またはクラウド・サービス・プロバイダの間の証明書(すなわち、特定のクラウド・サービス・ブローカーまたは特定のクラウドサービスに特有の証明書)の公開を無くすことによってクラウドサービスAPIを安全に拡張するように構成される。
例示的な実施例において、クラウド・サービス・プロバイダ(例えば、独立ソフトウェアベンダー(ISV)は、クラウド・サービス・マーケットプレースの制御実体と契約して、エンドユーザへのライセンスの販売を容易にする。ライセンスは、それから、そのエンドユーザまたはそれと関連する他のエンドユーザのクラウド・サービス・プロバイダのクラウドサービス(例えば、クラウドベースのサービスとしてのソフトウェア(SaaS)アプリケーション)への特定のアクセスを可能にすることができる。例示的なクラウド・サービス・マーケットプレース・システム100において、マーケットプレースコンピューティングデバイス102は、クラウド・サービス・プロバイダとクラウド・サービス・ブローカーの間のさまざまなクラウドサービスへのライセンスを管理するように構成される。
使用中、クラウド・サービス・プロバイダは、API(例えば、図1のAPI122参照)およびそれらのクラウドサービスの各々ためのAPIコネクタを開発して、クラウドサービス(例えば、クラウド・サービス・アドレス、初期設定、価格情報、販売テンプレート、クラウドサービスの識別子など)のAPIコネクタおよび他の情報をマーケットプレースコンピューティングデバイス102のコネクタハブ106に引き渡す。いくつかの実施形態において、APIコネクタは、そのAPIコネクタの複製されたインスタンス(例えば、図1のコネクタファクトリ112のAPIコネクタインスタンス116参照)を作成するために使用可能なソースコードの形でありえる。各API122は、クラウドサービスからコマンドを(例えば、サービスプロバイダコンピューティングデバイス118のクラウド・サービス・プロバイダ・インターフェイス120を介して)受信して、受信したコマンドをAPIが接続されるAPIコネクタインスタンス116に伝送するように構成される。その逆も同じである。加えて、各APIコネクタインスタンス116は、コマンドをそれが通信で接続する対応するAPI122に対して送受信するように構成される。
例示的な実施例の推進において、クラウド・サービス・ブローカー(すなわち、ディストリビュータ、再販業者など)は、クラウド・サービス・ブローカー・マーケットプレース104において提供される特定のクラウドサービスに対するライセンスを販売/分散するためにアクセスを許可するために、クラウド・サービス・ブローカー・マーケットプレース(例えば、クラウド・サービス・ブローカー・マーケットプレース104参照)の制御実体と契約する。換言すれば、クラウド・サービス・ブローカーは、そのサービスブローカーが提供する許可を与えられたクラウドサービスの各々を含むクラウド・サービス・ポートフォリオをエンドユーザに提供し、それによって、その間にセキュリティの層を加えることによってクラウド・サービス・マーケットプレースと潜在エンドユーザの間の仲介者として役立つ。
利用できるクラウドサービスをクラウド・サービス・ブローカーに提供するために、クラウド・サービス・ブローカー・マーケットプレース104は、クラウド・サービス・ブローカーが販売の申し出をしたいクラウドサービスを調べて選択するために使用可能なインターフェイスを提供する。クラウド・サービス・ブローカー・マーケットプレース104は、それぞれのクラウド・サービス・プロバイダが対応するAPIコネクタをコネクタハブ106に以前に提供したそれらのクラウドサービスを示すことができるだけであることを理解すべきである。したがって、各クラウド・サービス・ブローカーは、それから、クラウド・サービス・ブローカー・マーケットプレース104にアクセスすることによって利用できるクラウドサービスをそれらのクラウド・サービス・ポートフォリオに加えることができる。いくつかの実施形態において、クラウド・サービス・ブローカーは、ブローカーコンピューティングデバイス124、またはより詳しくは、ブローカーコンピューティングデバイス124のクラウド・サービス・ブローカー・インターフェイス126を介してクラウド・サービス・ブローカー・マーケットプレース104にアクセスすることができる。他の実施形態において、クラウド・サービス・ブローカーは、クラウド・サービス・ブローカー・マーケットプレース104に通信で接続するエンドポイントコンピューティングデバイス144を介して、クラウド・サービス・ブローカー・マーケットプレース104にアクセスすることができる。
上記のように、コネクタハブ106は、クラウド・サービス・ブローカー・インターフェイス126とクラウド・サービス・プロバイダ・インターフェイス120の間に提供チャネル140を確立するように構成される。そうするために、下記に詳述するように、コネクタハブ106は、APIコネクタインスタンス116(すなわち、クラウド・サービス・プロバイダから受信されるAPIコネクタの複製されたインスタンス)をコネクタファクトリ112に配置する。コネクタハブ106は、加えて、コネクタハブ106によって生成する提供チャネル証明書を用いてクラウド・サービス・プロバイダ・インターフェイス120(例えば、通信チャネル134参照)とAPIコネクタインスタンス116の間に、そして、APIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126(例えば、通信チャネル138参照)の間に一連の安全な通信チャネルの確立を組織化する。
いくつかの実施形態において、APIコネクタインスタンス116が配置されるときに、コネクタハブ106は、認証プロキシ114のインスタンス(例えば、図1のコネクタファクトリ112のAPIコネクタインスタンス116参照)を配置するように加えて構成される。このような実施形態において、認証プロキシインスタンス114は、クラウド・サービス・ブローカー・インターフェイス126とAPIコネクタインスタンス116の間のコネクタファクトリ112に(すなわち、通信チャネル138に)配置できる。加えて、このような実施形態において、コネクタハブ106は、認証プロキシ114とAPIコネクタインスタンス116の間の安全な通信チャネル(例えば、通信チャネル136参照)の確立を組織化するように更に構成されることができる。例えば、提供チャネル証明書を使用して確立することができる。したがって、このような実施形態において、認証プロキシ114は、セキュリティの追加の層として作用する。加えて、APIコネクタインスタンス116が、変化した場合であっても、認証プロキシ114は、クラウド・サービス・ブローカー・インターフェイス126との確立した接続を維持できる。安全な通信チャネル134、136、および138の一つ以上が、当業者に知られている技術を使用して安全にすることができることを理解すべきである。
いくつかの実施形態において、コネクタハブ106は、そのクラウド・サービス・ブローカー・インターフェイス126と関連した複製されたAPIコネクタインスタンス116が配置されるたびに、監視エージェント(例えば、監視エージェント128参照)にクラウド・サービス・ブローカー・インターフェイス126を通知するように加えて構成されることができる。したがって、そのクラウドサービスのための提供チャネル140を確立すると、クラウド・サービス・ブローカーと関連したエンドユーザは、そのクラウドサービスのためのクラウド・サービス・ブローカーから(例えば、クラウド・サービス・ブローカー・インターフェイス126を介して)購入できる。
ここで図2を参照すると、複数の提供チャネル140は、図1のクラウド・サービス・マーケットプレース・システム100の複数のクラウド・サービス・ブローカー・インターフェイスと複数のクラウド・サービス・プロバイダの間に確立されたとして示される。例示的なクラウド・サービス・ブローカー・インターフェイス126は、クラウド・サービス・ブローカー・インターフェイス(1)202と表わされる第1のクラウド・サービス・ブローカー・インターフェイスおよびクラウド・サービス・ブローカー・インターフェイス(2)206と表わされる第2のクラウド・サービス・ブローカー・インターフェイスを含む。例示的なクラウド・サービス・ブローカー・インターフェイス202は、監視エージェント(1)204と表わされる監視エージェント128を含み、そして、例示的なクラウド・サービス・ブローカー・インターフェイス206は、監視エージェント(2)208と表わされる監視エージェント128を含む。いかなる数のクラウド・サービス・ブローカー・インターフェイス126も他の実施形態にありえることを理解すべきである。
例示的なクラウド・サービス・プロバイダ・インターフェイス120は、クラウド・サービス・プロバイダ・インターフェイス(1)210と表わされる第1のクラウド・サービス・プロバイダ・インターフェイスおよびクラウド・サービス・プロバイダ・インターフェイス(2)214と表わされる第2のクラウド・サービス・プロバイダ・インターフェイスを含む。上記のように、各クラウド・サービス・プロバイダは、API122が通信するために開発されるクラウドサービスと関連しているAPIコネクタインスタンス116と通信するために使用可能であるAPI122を含む。例示的なクラウド・サービス・プロバイダ・インターフェイス(1)は、API(1)212と表わされる第1のAPIを含み、そして、例示的なクラウド・サービス・プロバイダ・インターフェイス(2)は、API(2)216と表わされる第2のAPIを含む。いかなる数のクラウド・サービス・プロバイダ・インターフェイス120も他の実施形態にありえることを理解すべきである。他の実施形態において、クラウド・サービス・プロバイダ・インターフェイス120の各々は、複数のAPI122を含むことができることを更に理解すべきである。
上記のように、コネクタハブ106は、対応するAPI122と通信するように構成されるそれぞれのクラウド・サービス・プロバイダ・インターフェイス120から受信するAPIコネクタのインスタンスを複製することによってクラウド・サービス・プロバイダ・インターフェイス120とクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネル140を確立するように構成される。例示的なコネクタファクトリ112において、それらが関連する適用できるAPI122に対応するAPIコネクタインスタンス116、および、実施形態によっては、認証プロキシインスタンス114から各々成る4つの提供チャネル140が示される。
例示的なAPIコネクタインスタンス116は、APIコネクタ(1)226と表わされる第1のAPIコネクタインスタンス、APIコネクタ(2)228と表わされる第2のAPIコネクタインスタンス、APIコネクタ(3)230と表わされる第3のAPIコネクタインスタンス、およびAPIコネクタ(4)232と表わされる第4のAPIコネクタインスタンスを含む。例示的な認証プロキシ114は、認証プロキシ(1)218と表わされる第1の認証プロキシインスタンス、認証プロキシ(2)220と表わされる第2の認証プロキシインスタンス、認証プロキシ(3)222と表わされる第3の認証プロキシインスタンス、および認証プロキシ(4)224と表わされる第4の認証プロキシインスタンスを含む。
提供チャネル140をその間に確立するように配置される、図2に示す4つのAPIコネクタ116(すなわち、APIコネクタインスタンス226、228、230、232)の各々は、対応するクラウド・サービス・プロバイダから受信するそれぞれのAPIコネクタの複製であることを理解すべきである。示すように、APIコネクタ(1)226およびAPIコネクタ(3)230は、クラウド・サービス・プロバイダ・インターフェイス(1)210のAPI(1)212と関連している。その一方で、APIコネクタ(2)228およびAPIコネクタ(4)232は、クラウド・サービス・プロバイダ・インターフェイス(2)214のAPI(2)216と関連している。加えて、APIコネクタ(1)226およびAPIコネクタ(2)228は、クラウド・サービス・ブローカー・インターフェイス(1)202と関連している。その一方で、APIコネクタ(3)230およびAPIコネクタ(4)232は、クラウド・サービス・ブローカー・インターフェイス(2)206と関連している。
図1に戻って参照すると、例示的なクラウド・サービス・マーケットプレース・システム100に示すように、マーケットプレースコンピューティングデバイス102、サービスプロバイダコンピューティングデバイス118、ブローカーコンピューティングデバイス124、およびエンドポイントコンピューティングデバイス144の各々は、いかなるタイプのコンピューティングデバイス130としても実現できる。換言すれば、それぞれのコンピューティングデバイス130の各々は、本願明細書に記載の機能を実行できるいかなるタイプの計算および/または記憶装置としても実現できる。それぞれのコンピューティングデバイス130の一つ以上が、クラウド・アーキテクテッド・ネットワークまたはデータセンターにおける(例えば、記憶エリアネットワーク(SAN)の)一つ以上のサーバ(例えば、スタンドアロン、ラックマウントなど)および/またはコンピュートブレードとデータ記憶装置の組合せとして実現することができて、その一方で、それぞれのコンピューティングデバイスの一つ以上が、デスクトップコンピュータ、モバイルコンピューティングデバイス(例えば、スマートフォン、ウェアラブル機器、タブレット、ラップトップ、ノートブックなど)、あるいはその他のタイプの「高性能な」またはインターネット接続装置として実現できることを理解すべきである。
ここで図3を参照すると、マーケットプレースコンピューティングデバイス102、サービスプロバイダコンピューティングデバイス118、ブローカーコンピューティングデバイス124、およびエンドポイントコンピューティングデバイス144の一つ以上を表わすコンピューティングデバイス130の例示的な実施形態が、示される。例示的なコンピューティングデバイス130は、中央演算処理装置(CPU)300、入出力(I/O)コントローラ302、メモリ304、ネットワーク通信回路306、およびデータ記憶装置310、ならびに、実施形態によっては、一つ以上の入出力周辺機器308を含む。いくつかの実施形態において、例示的な構成要素の一つ以上は、単一の集積回路(IC)上の単一のシステムオンアチップ(SoC)に組み合わせることができる。代替の実施形態が、例示的なコンピューティングデバイス130のそれらに対する追加の、より少ない、および/または代替の構成要素、例えば、説明の明確さを維持するために示されない、グラフィックス処理ユニット(GPU)、電源などを含むことができることを理解すべきである。それぞれのコンピューティングデバイス130の記憶/計算構成要素のタイプが、それぞれのコンピューティングデバイス130のタイプおよび意図された使用に基づくことがありえると更に理解すべきである。
CPU300またはプロセッサは、データを処理できる回路のいかなるタイプのハードウェアまたは組合せとしても実現できる。したがって、CPU300は、単一コア・プロセッサ・アーキテクチャの一つの処理コア(図示せず)、またはマルチコア・プロセッサ・アーキテクチャの複数の処理コアを含むことができる。処理コアの数にかかわりなく、CPU300は、プログラム命令を読み込んで、実行できる。いくつかの実施形態において、CPU300は、CPU300と直接集積化されるかまたはCPU300との別の相互接続を有する別のチップに配置されることができるキャッシュメモリ(図示せず)を含むことができる。いくつかの実施形態において、パイプライン論理が、CPU300に出入りするコマンドよりもむしろ、ソフトウェアおよび/またはハードウェア動作(例えば、ネットワークトラフィック処理操作)を実行するために用いることができることを理解すべきである。
入出力コントローラ302または入出力インターフェイスは、入出力装置とコンピューティングデバイス130の間のインターフェイスをとることができる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実現できる。実例として、入出力コントローラ302は、CPU300から入出力要求を受信して、それぞれの入出力装置に制御信号を送り、それによってコンピューティングデバイス130に出入りするデータフローを管理するように構成される。
メモリ304は、処理のためのデータおよび命令を保持できる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実現できる。この種のメモリ304は、主または主要なメモリと呼ばれることがある。いくつかの実施形態において、コンピューティングデバイス130の一つ以上の構成要素が、メモリへ直接アクセスすることができて、そうすると、特定のデータを、CPU300と独立して直接メモリアクセス(DMA)により格納できると理解すべきである。
ネットワーク通信回路306は、無線および/または有線通信モードを通じてネットワークインターフェイス通信(例えば、メッセージ、データグラム、パケットなど)を管理できる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実現できる。したがって、いくつかの実施形態において、ネットワーク通信回路306は、コンピューティングデバイス130をコンピュータネットワーク(例えば、ネットワーク132)ならびにクラウド・サービス・マーケットプレース・システム100の他のコンピューティングデバイスに接続するように構成されることができるネットワーク・インターフェイス・コントローラ(NIC)を含むことができる。
一つ以上の入出力周辺機器308は、コンピューティングデバイス130に接続してそれと通信するように構成されるいかなる補助装置としても実現できる。例えば、入出力周辺機器308は、マウス、キーボード、モニタ、タッチスクリーン、プリンタ、スキャナ、マイクロホン、スピーカなどを含むことができるが、これらに限定されない。したがって、いくつかの入出力装置が、1つの機能(すなわち、入力または出力)または両方の機能(すなわち、入力および出力)ができることを理解すべきである。
いくつかの実施形態において、入出力周辺機器308は、コンピューティングデバイス130のケーブル(例えば、リボンケーブル、ワイヤ、汎用シリアルバス(USB)ケーブル、高解像度マルチメディアインターフェイス(HDMI(登録商標))ケーブルなど)を介してコンピューティングデバイス130に接続できる。このような実施形態において、ケーブルは、その間でなされる通信を入出力コントローラ302によって管理することができるコンピューティングデバイス130の対応するポート(図示せず)に接続している。代替の実施形態において、入出力周辺機器308は、ネットワーク通信回路306によって管理できる通信の無線モード(例えば、ブルートゥース(登録商標)、Wi−Fi(登録商標)など)を介してコンピューティングデバイス130に接続できる。
データ記憶装置310は、データの不揮発性記憶ができるいかなるタイプのコンピュータハードウェア(例えば、半導体記憶媒体、磁気記憶媒体、光記憶媒体など)としても実現できる。この種のデータ記憶装置310は、一般に補助的または二次的な記憶装置と呼ばれて、上記のメモリ304と関連して大量のデータを格納するために通常は用いる。
図1に戻って参照すると、例示的なクラウド・サービス・マーケットプレース・システム100は、他のコンピューティングデバイス130がマーケットプレースコンピューティングデバイス102と通信するために使用可能であるネットワーク132を含む。ネットワーク132は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、グローバルネットワーク(インターネット)などを含む、いかなるタイプの有線および/または無線ネットワークとしても実施できる。したがって、ネットワーク132は、一連の有線および/またはインターコネクト器を通じてネットワーク通信トラフィックのフローおよび/または処理を容易にするための一つ以上の通信で接続したネットワークコンピューティングデバイス(図示せず)を含むことができる。この種のネットワークコンピューティングデバイスは、一つ以上のアクセスポイント、ルータ、スイッチ、サーバ、コンピュートデバイス、記憶装置などを含むことができるが、これらに限定されるものではない。
例えば、この種のネットワークコンピューティングデバイスの一つ以上は、有線(例えば、イーサネット(登録商標)、トークンリングなど)および/または無線(例えば、ブルートゥース(登録商標)、Wi−Fi(登録商標)、無線ブロードバンド、ジグビー(登録商標)など)通信技術および関連プロトコルを用いたLAN構成においてエンドポイントコンピューティングデバイス144をネットワーク132に接続するように構成されることができる。実施例の促進において、LANは、ネットワーク132の追加ネットワークコンピューティングデバイスを介して一つ以上の広域ネットワーク(例えば、WAN、メトロポリタン・エリア・ネットワーク(MAN)、インターネットなど)に(例えば、同軸ケーブル、モバイル電話通信、光ファイバーケーブルなどを介して)接続できる。
クラウド・サービス・プロバイダ・インターフェイス120およびクラウド・サービス・ブローカー・インターフェイス126は、本願明細書に記載の機能を実行できるソフトウェア、ハードウェア、ファームウェア、および回路のいかなる組合せとしても実現できる。いくつかの実施形態において、クラウド・サービス・プロバイダ・インターフェイス120およびクラウド・サービス・ブローカー・インターフェイス126の一方または両方とも、(例えば、ユーザインターフェイス(UI)を介して)情報をサービスプロバイダコンピューティングデバイス118のディスプレイおよびブローカーコンピューティングデバイス124それぞれに提供するように構成されることができる。このような実施形態において、クラウド・サービス・プロバイダ・インターフェイス120およびクラウド・サービス・ブローカー・インターフェイス126の一方または両方とも、ログインするためにユーザから受信した入力を中継するか、それぞれのインターフェイスを構成するか、または、それに関連する情報(例えば、設定)を操作するように構成されることができる。
ここで図4を参照すると、例示的な方法400は、マーケットプレースコンピューティングデバイス(例えば、図1のマーケットプレースコンピューティングデバイス102)によって、または、より詳細には、マーケットプレースコンピューティングデバイス102のコネクタハブ(例えば、図1のコネクタハブ106)によって実行できるクラウド・サービス・ブローカー・マーケットプレース(例えば、図1のクラウド・サービス・ブローカー・マーケットプレース104)に新規なクラウドサービスを加えるために提供される。そうするために、ブロック402で、コネクタハブ106は、新規なクラウドサービスがクラウド・サービス・ブローカー・マーケットプレース104の利用できるクラウドサービスに加えることになっているかどうか判定する。この種の判定は、新規なクラウドサービスをクラウド・サービス・ブローカー・マーケットプレース104に加えるために表示する表示が、コネクタハブ106によって(例えば、クラウド・サービス・プロバイダ・インターフェイス120から)受信されたかどうかに基づくことができる。
コネクタハブ106が、新規なクラウドサービスが加えられることになっていると判定する場合、方法400は、ブロック404へ進む。ブロック404において、コネクタハブ106は、サービスプロバイダコンピューティングデバイス118のクラウド・サービス・プロバイダ・インターフェイス(例えば、図1のクラウド・サービス・プロバイダ・インターフェイス120)を介してアクセス可能なクラウドサービスと関連したアドレス(例えば、ユニフォームリソース識別子(URI))を検索する。ブロック406において、コネクタハブ106は、クラウド・サービス・プロバイダのための提供チャネル証明書(すなわち、プロバイダ提供チャネル証明書)を生成する。いくつかの実施形態において、プロバイダ提供チャネル証明書が、クラウド・サービス・プロバイダから受信できる(例えば、クラウド・サービス・プロバイダ・インターフェイス120により生成されて、それを介して受信される)ことを理解すべきである。ブロック408において、コネクタハブ106は、検索されたクラウド・サービス・プロバイダ・アドレスおよびブロック406において生成されたプロバイダ提供チャネル証明書を、例えば、公知技術(例えば、ハードウェア・セキュリティ・モジュール)を使用して安全にすることができる、コネクタハブ106のローカルな安全なデータベース(例えば、図1の証明書データベース108)に格納する。ブロック410において、コネクタハブ106は、プロバイダ提供チャネル証明書をクラウド・サービス・プロバイダ・インターフェイス120に伝送する。
ブロック412において、コネクタハブ106は、APIコネクタが(例えば、クラウド・サービス・プロバイダ・インターフェイス120を介して)クラウド・サービス・プロバイダから受信されたかどうか判定する。上記のように、APIコネクタは、APIコネクタのインスタンスを複製するために使用可能なソースコードから成ることができる。APIコネクタに関連した追加情報が、ブロック412においてAPIコネクタを用いて受信できることを理解すべきである。この種の追加情報は、APIコネクタの識別子を含むことができる。APIコネクタが受信された場合、方法400は、ブロック414へ進む。コネクタハブ106は、ブロック412において受信するAPIコネクタを、例えば、公知技術(例えば、ハードウェア・セキュリティ・モジュール)を使用して安全にすることができる、コネクタハブ106ローカルな安全なデータベース(例えば、図1の利用できるサービスデータベース110)に格納する。加えて、ブロック416において、コネクタハブ106は、APIコネクタのソースコードを利用できるサービスデータベース110に格納する。更に、ブロック418において、コネクタハブは、ブロック412において受信するAPIコネクタと関連したクラウドサービスの識別子を利用できるサービスデータベース110に格納する。
ここで図5および6を参照すると、例示的な方法500、600は、マーケットプレースコンピューティングデバイス102によって、または、より詳細にはマーケットプレースコンピューティングデバイス102のコネクタハブ(例えば、図1のコネクタハブ106)によって実行できる、クラウド・サービス・プロバイダ・インターフェイス(例えば、図1のクラウド・サービス・プロバイダ・インターフェイス120)とクラウド・サービス・ブローカー・インターフェイス(例えば、図1のクラウド・サービス・ブローカー・インターフェイス126)の間に提供チャネル(例えば、図1の提供チャネル140)を確立するために提供される。上記のように、認証プロキシインスタンス(例えば、図1の認証プロキシインスタンス114)は、提供チャネルを確立する際に配置できる。図5において、例示的な方法500は、認証プロキシインスタンス114が提供チャネル140に配置される実施形態を記載する。図6において、例示的な方法600は、認証プロキシインスタンス114が提供チャネル140に配置されない実施形態を記載する。
図5に示すように、方法500は、ブロック502において始まり、コネクタハブ106は、APIコネクタ提供通知書が受信されたかどうか判定する。いくつかの実施形態において、APIコネクタ提供通知書は、クラウド・サービス・ブローカー・マーケットプレース104から受信することができて、APIコネクタ提供通知書は、クラウド・サービス・ブローカーが利用できるクラウドサービスがそれらのクラウド・サービス・ポートフォリオに加えられることを要求したことに応答して生成された。コネクタハブ106が、APIコネクタ提供通知書が受信されたと判定する場合、方法500は、ブロック504へ進む。
ブロック504において、コネクタハブ106は、(例えば、ブロック502においてAPIコネクタ提供通知書を用いて受信されるそのクラウド・サービス・ブローカーの識別子に基づいて)ブロック502において受信するAPIコネクタ提供通知書と関連したクラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を生成する。コネクタハブ106が、生成されたブローカー提供チャネル証明書をコネクタハブ106のローカルな証明書データベース(例えば、図1の証明書データベース108)に格納するように構成されることができることを理解すべきである。ブロック506において、コネクタハブ106は、APIコネクタ提供通知書を用いて受信されるクラウド・サービス・ブローカーのアドレスに基づいてブローカー提供チャネル証明書をクラウド・サービス・ブローカーに伝送する。コネクタハブ106が、クラウド・サービス・ブローカー・アドレスをデータベース、例えば、証明書データベース108に格納するように構成されることができることを理解すべきである。ブロック508において、コネクタハブ106は、プロキシチャネル提供チャネル証明書を生成する。
ブロック510において、コネクタハブ106は、利用できるサービスデータベース110上のAPIコネクタ検索を実行するためにブロック502においてAPIコネクタ提供通知書を用いて受信したAPIコネクタの識別子を使用して利用できるサービスデータベース(例えば、図1の利用できるサービスデータベース110)から検索されるAPIコネクタのソースコードに基づいてAPIコネクタインスタンス(例えば、図1のAPIコネクタインスタンス116)を配置する。
ブロック512において、コネクタハブ106は、通信チャネル(例えば、図1の通信チャネル134)をクラウド・サービス・プロバイダ・インターフェイス120とAPIコネクタインスタンス116の間に確立するために使用可能であるAPIコネクタインスタンス116にプロバイダ提供チャネル情報を伝送する。したがって、この種のプロバイダ提供チャネル情報は、クラウドサービスの識別子が対応するクラウド・サービス・プロバイダおよびクラウド・サービス・プロバイダのアドレスと関連したプロバイダ提供チャネル証明書を含む。加えて、ブロック512において、コネクタハブ106は、通信チャネル(例えば、図1の通信チャネル136)をAPIコネクタインスタンス116と認証プロキシインスタンスとの間に確立するために使用可能であるAPIコネクタインスタンス116にプロキシ提供チャネル情報を更に伝送する。したがって、この種のプロキシチャネル提供情報は、プロキシチャネル提供チャネル証明書を含む。
ブロック514において、コネクタハブ106は、認証プロキシインスタンス(例えば、図1の認証プロキシインスタンス114)を配置する。加えて、ブロック516において、コネクタハブ106は、認証プロキシインスタンス114とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、図1の通信チャネル138)を確立するために使用可能である認証プロキシインスタンス114にブローカー提供チャネル情報を伝送する。この種のブローカー提供チャネル情報は、クラウド・サービス・ブローカー識別子が対応するクラウド・サービス・ブローカーおよびクラウド・サービス・ブローカーのアドレスと関連したブローカー提供チャネル証明書を含む。コネクタハブ106は、ブロック516において、APIコネクタインスタンス116と認証プロキシインスタンス114の間に通信チャネル(例えば、図1の通信チャネル136)を確立するために使用可能である認証プロキシインスタンス114にプロキシ提供チャネル証明書を更に伝送する。
ブロック518において、コネクタハブ106は、クラウド・サービス・プロバイダ・インターフェイス120と認証プロキシインスタンス114の間に提供チャネル140の一部を確立する。そうするために、ブロック520において、コネクタハブ106は、プロバイダ提供チャネル証明書を用いてAPIコネクタインスタンス116とクラウド・サービス・プロバイダ・インターフェイス120の間に通信チャネル134を確立する。加えて、ブロック522において、コネクタハブ106は、当業者に周知であるいかなる認証動作も使用して(すなわち、APIコネクタインスタンス116と認証プロキシインスタンス114はそれぞれが実体を互いに確認するために)プロキシ提供チャネル証明書を用いてAPIコネクタインスタンス116と認証プロキシインスタンス114の間に通信チャネル136を確立する。
図5に記載されている提供チャネル140の一部を確立した後に、提供チャネル140の残りの部分(すなわち、クラウド・サービス・ブローカー・インターフェイス126と認証プロキシインスタンス114の間の通信チャネル138)は、確立されないままであることを理解すべきである。通信チャネル138を確立するために、ブロック524において、コネクタハブ106は、APIコネクタインスタンス116のアドレス(例えば、URI)を含むメッセージを伝送し、メッセージは、認証プロキシインスタンス114とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、通信チャネル138)を確立するために使用可能である。いくつかの実施形態において、認証プロキシインスタンス114が配置されたことを示すメッセージは、メッセージ待ち行列に配置されうる。当該メッセージ待ち行列から、通知書が、コネクタハブ106によってプッシュされるかまたはクラウド・サービス・ブローカー・インターフェイス126によってプルされる。
いくつかの実施形態において、監視エージェント(例えば、図1の監視エージェント128)は、表示を受信/検索するために使用可能であるクラウド・サービス・ブローカー(例えば、クラウド・サービス・ブローカー・インターフェイス126)に以前配置することができた。このような実施形態において、表示の検出に応じて、監視エージェント128は、ブローカー提供チャネル証明書(例えば、図7の方法700参照)を用いてクラウド・サービス・ブローカー・インターフェイス126と認証プロキシインスタンス114の間の通信チャネル138の確立を開始できる。したがって、表示は、通信チャネル138を確立して、提供チャネル140を完成するために監視エージェント128によって使用可能であるブロック608において配置される認証プロキシインスタンス114のアドレス(例えば、URIにおける)を含む。監視エージェント128を含まない代替の実施形態において、通信チャネル138の構成が、クラウド・サービス・ブローカー・インターフェイス126において手動で実行できることを理解すべきである。
例示的な実施例において、図2に示すように、通信チャネル134は、クラウド・サービス・プロバイダ・インターフェイス(1)210とクラウド・サービス・ブローカー・インターフェイス(1)202の間に確立される。そうするために、使用中に、APIコネクタ(1)226は、APIコネクタ(1)226およびクラウド・サービス・プロバイダ・インターフェイス(1)210に以前伝送されたプロバイダ提供チャネル証明書を使用して認証動作を実行することによって、API(1)212を介して、クラウド・サービス・プロバイダ・インターフェイス(1)210を用いて通信チャネル134を確立する。同様に、別の通信チャネル134は、クラウド・サービス・プロバイダ・インターフェイス(2)214とクラウド・サービス・ブローカー・インターフェイス(1)202の間に確立される。そうするために、使用中に、APIコネクタ(1)228は、APIコネクタ(1)228およびクラウド・サービス・プロバイダ・インターフェイス(2)214に以前提供されたプロバイダ提供チャネル証明書を使用して認証動作を実行することによって、API(2)216を介して、クラウド・サービス・プロバイダ・インターフェイス(2)214を用いて通信チャネル134を確立する。
例示的な実施例の促進において、通信チャネル136は、APIコネクタ(1)226および認証プロキシ(1)218と関連したプロキシ提供チャネル証明書を使用して認証動作を実行することによってAPIコネクタ(1)226と認証プロキシ(1)218の間に確立される。同様に、別の通信チャネル136は、APIコネクタ(2)228および認証プロキシ(2)220と関連したプロキシ提供チャネル証明書を使用して認証動作を実行することによってAPIコネクタ(2)228と認証プロキシ(2)220の間に確立される。
加えて、例示的な実施例の促進において、通信チャネル138は、クラウド・サービス・ブローカー・インターフェイス(1)202と認証プロキシ(1)218の間に確立される。そうするために、使用中に、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(1)218は、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(1)218に以前提供されたブローカー提供チャネル証明書を使用して認証動作を実行する。同様に、別の通信チャネル138は、クラウド・サービス・ブローカー・インターフェイス(1)202と認証プロキシ(2)220の間に確立される。そうするために、使用中に、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(2)220は、クラウド・サービス・ブローカー・インターフェイス(1)202および認証プロキシ(2)220に以前提供されたブローカー提供チャネル証明書を使用して認証動作を実行する。
以前に記載したように、認証プロキシインスタンス114が、いくつかの実施形態において配置することができないことを理解すべきである。このような実施形態において、通信チャネル138は、それぞれのクラウド・サービス・ブローカー・インターフェイス126から、それぞれのAPIコネクタインスタンス116まで直接拡張する。認証プロキシインスタンス114が、提供チャネルに配置されるかどうかにかかわりなく、現在の技術とは異なり、クラウド・サービス・プロバイダ・インターフェイス120もクラウド・サービス・ブローカー・インターフェイス126も、その他の提供チャネル証明書にアクセスせず、それによってクラウド・サービス・プロバイダのそれぞれのAPI122の安全な拡張を提供する。
図6に示すように、方法600は、ブロック602において始まり、コネクタハブ106は、APIコネクタ提供通知書が受信されたかどうか判定する。いくつかの実施形態において、APIコネクタ提供通知書は、クラウド・サービス・ブローカー・マーケットプレース104から受信することができて、APIコネクタ提供通知書は、クラウド・サービス・ブローカーが利用できるクラウドサービスがそれらのクラウド・サービス・ポートフォリオに加えられることを要求したのに応じて生成された。コネクタハブ106が、APIコネクタ提供通知書が受信されたと判定する場合、方法600は、ブロック604へ進む。
ブロック604において、コネクタハブ106は、ブロック602において受信されるAPIコネクタ提供通知書と関連したクラウド・サービス・ブローカーのためのブローカー提供チャネル証明書を(例えば、ブロック602において、APIコネクタ提供通知書を用いて受信されるそのクラウド・サービス・ブローカーの識別子に基づいて)生成する。コネクタハブ106が、生成されたブローカー提供チャネル証明書をコネクタハブ106のローカルな証明書データベースに(例えば、図1の証明書データベース108に)格納するように構成されることができることを理解すべきである。いくつかの実施形態において、ブローカー提供チャネル証明書が、クラウド・サービス・ブローカーから受信する(例えば、クラウド・サービス・ブローカー・インターフェイス126によって発生して、それを介して受信する)ことができることを更に理解すべきである。ブロック606において、コネクタハブ106は、APIコネクタ提供通知書を用いて受信するクラウド・サービス・ブローカーのアドレスに基づいてブローカー提供チャネル証明書をクラウド・サービス・ブローカーに伝送する。コネクタハブ106が、クラウド・サービス・ブローカー・アドレスをデータベース、例えば、証明書データベース108に格納するように構成されることができることを理解すべきである。
ブロック608において、コネクタハブ106は、利用できるサービスデータベース110上のAPIコネクタ検索を実行するためにブロック602においてAPIコネクタ提供通知書を用いて受信するAPIコネクタの識別子を使用して利用できるサービスデータベース(例えば、図1の利用できるサービスデータベース110)から検索したAPIコネクタのソースコードに基づいてAPIコネクタインスタンス(例えば、図1のAPIコネクタインスタンス116)を配置する。加えて、ブロック610において、コネクタハブ106は、クラウド・サービス・プロバイダ・インターフェイス120とAPIコネクタインスタンス116の間に通信チャネル(例えば、図1の通信チャネル134)を確立するために使用可能であるAPIコネクタインスタンス116にプロバイダ提供チャネル情報を伝送する。したがって、この種のプロバイダ提供チャネル情報は、クラウドサービスの識別子が対応するクラウド・サービス・プロバイダおよびクラウド・サービス・プロバイダのアドレスと関連したプロバイダ提供チャネル証明書を含む。
更に、ブロック612において、コネクタハブ106は、APIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、図1の通信チャネル138)を確立するために使用可能であるAPIコネクタインスタンス116にブローカー提供チャネル情報を伝送する。この種のブローカー提供チャネル情報は、クラウド・サービス・ブローカー識別子が対応するクラウド・サービス・ブローカーおよびクラウド・サービス・ブローカーのアドレスと関連したブローカー提供チャネル証明書を含む。
ブロック614において、コネクタハブ106は、クラウド・サービス・プロバイダ・インターフェイス120とクラウド・サービス・ブローカー・インターフェイス126の間に提供チャネルを確立する。そうするために、ブロック616において、コネクタハブ106は、プロバイダ提供チャネル証明書を用いてAPIコネクタインスタンス116とクラウド・サービス・プロバイダ・インターフェイス120の間に通信チャネル134を確立する。加えて、ブロック618において、コネクタハブ106は、ブローカー提供チャネル証明書を用いてAPIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル138を確立する。ブロック620において、コネクタハブ106は、APIコネクタインスタンス116のアドレス(例えば、URI)を含むメッセージを伝送し、メッセージは、APIコネクタインスタンス116とクラウド・サービス・ブローカー・インターフェイス126の間に通信チャネル(例えば、通信チャネル138)を確立するために使用可能である。いくつかの実施形態において、APIコネクタインスタンス116が配置されたことを示すメッセージは、メッセージ待ち行列に配置されうる。当該メッセージ待ち行列から、通知書が、コネクタハブ106によってプッシュされるかまたはクラウド・サービス・ブローカー・インターフェイス126によってプルされる。
いくつかの実施形態において、監視エージェント(例えば、図1の監視エージェント128)は、表示を受信/検索するために使用可能であるクラウド・サービス・ブローカー(例えば、クラウド・サービス・ブローカー・インターフェイス126)に以前に配置することができた。このような実施形態において、表示の検出に応じて、監視エージェント128は、ブローカー提供チャネル証明書(例えば、図7の方法700参照)を用いてクラウド・サービス・ブローカー・インターフェイス126とAPIコネクタインスタンス116の間の通信チャネル138の確立を開始できる。したがって、表示は、通信チャネル138を確立して、提供チャネル140を完成するために監視エージェント128によって使用可能であるブロック608において配置されるAPIコネクタインスタンス116のアドレス(例えば、URIにおける)を含む。監視エージェント128を含まない代替の実施形態において、通信チャネル138の構成が、クラウド・サービス・ブローカー・インターフェイス126において手動で実行できることを理解すべきである。
ここで図7を参照すると、例示的な方法700は、ブローカーコンピューティングデバイスのクラウド・サービス・ブローカー・インターフェイス(例えば、図1のブローカーコンピューティングデバイス124のクラウド・サービス・ブローカー・インターフェイス126)によって、または、より詳細には、クラウド・サービス・ブローカー・インターフェイス126の監視エージェント(例えば、図1の監視エージェント128)によって実行できるクラウド・サービス・ブローカーによる再販のためのクラウドサービスを構成するために提供される。方法600は、ブロック702において始まり、監視エージェント128は、新規なAPIコネクタインスタンス(例えば、APIコネクタインスタンス116)が検出されたかどうか判定する。
一定の条件下で、APIコネクタのソースコード(すなわち、APIコネクタインスタンス116を配置するために用いる)は、クラウド・サービス・プロバイダによって変更できる。このような条件下で、コネクタハブ106は、APIコネクタの新規なインスタンスを配置するように構成される。したがって、認証プロキシインスタンス114の新規なインスタンスとクラウド・サービス・ブローカー・インターフェイス126の間の信用関係の結果として、通信チャネル136は、付加的な構成なしに再確立できる。監視チャネル142が、その間にメッセージを伝送するために監視エージェント128とコネクタハブ106の間に確立できることを理解すべきである。この種のメッセージは、通信チャネル136の正常性(例えば、クオリティオブサービス)を示すメッセージ、ならびに新規なAPIコネクタ116が利用できることを示すメッセージを含み、それによって方法700を開始する。
一定の条件下で、新規な認証プロキシインスタンス114が、配置されることができ、そして/または、ブローカー提供チャネル証明書が、変更されることができると更に理解すべきである。このような条件下で、コネクタハブ106は、クラウド・サービス・ブローカー・インターフェイス126に新規な認証プロキシインスタンス114および/または新規なブローカー提供チャネル証明書を通知するように構成される。したがって、方法500、600の一つは、実施形態が認証プロキシインスタンス114を含むかどうかに依存して、通信チャネル138を再確立するために用いることができる。いくつかの実施形態において、この種の通知は、監視エージェント128とコネクタハブ106の間で監視チャネル(例えば、図1の監視チャネル142参照)を介して実行できる。
監視エージェント128が、新規なAPIコネクタインスタンス116が検出されたと判定する場合、方法700は、ブロック704へ進む。ブロック704において、監視エージェント128は、ブロック702において検出された新規なAPIコネクタインスタンス116を用いて通信チャネル(例えば、提供チャネル140の通信チャネル138)を構成する。そうするために、いくつかの実施形態において、ブロック706で、監視エージェント128は、新規なAPIコネクタインスタンス116と関連する認証プロキシインスタンス(例えば、図1の認証プロキシインスタンス114)のURIに基づいて通信チャネル138を構成する。さもなければ、代替の実施形態(すなわち、認証プロキシインスタンス114が配置されない実施形態)において、ブロック708で、監視エージェント128は、新規なAPIコネクタインスタンス116を用いて通信チャネルを確立するために使用可能な情報を含むURIに基づいて通信チャネル138を構成する。
ブロック710において、監視エージェント128は、新規なAPIコネクタインスタンス116と関連したクラウドサービスの再販を可能にするようにクラウド・サービス・ブローカー・インターフェイス126を構成する。そうするために、ブロック712において、監視エージェント128は、コネクタハブ106から受信する初期設定に基づいて(例えば、監視チャネル142を介して)クラウド・サービス・ブローカー・インターフェイス126を構成する。初期設定は、販売計画、サービステンプレート、価格設定モデル、説明書などを含むことができる。設定が、ブロック710において実行される最初の構成を完了すると、クラウド・サービス・ブローカーによって(例えば、クラウド・サービス・ブローカー・インターフェイス126を介して)変更できることを理解すべきである。
一定の条件下で、監視エージェント128が、方法700が実行される前に配置されることができなかったことを理解すべきである。このような実施形態において、クラウド・サービス・ブローカー・マーケットプレース104は、監視エージェント128を配置するために表示をクラウド・サービス・インターフェイス・ブローカー126に提供するように構成されることができる。この種の表示は、監視エージェント128を最初に構成するために使用可能な情報、ならびに通信チャネル138の正常性を監視するために監視エージェント128によって使用可能な情報を含むことができる。再販のためのクラウドサービスの成功した配置および成功した構成により、監視エージェント128は、それから、通信チャネル138の正常性を監視して、コネクタハブ106に監視動作の結果を報告できる。
本開示が、図面および前述の説明に例示されて詳述されたが、そのことは、特徴において例示的であり限定的でないとみなすべきであり、特定の実施形態だけが、図示されて説明された、そして、本開示の精神の範囲内に入る変更態様が、保護されることが望ましいと理解される。