(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-13
(45)【発行日】2022-05-23
(54)【発明の名称】クラウドサービス仲介システムの統合コネクタを生成して分散する技術
(51)【国際特許分類】
G06F 8/60 20180101AFI20220516BHJP
G06F 8/30 20180101ALI20220516BHJP
【FI】
G06F8/60
G06F8/30
(21)【出願番号】P 2019553085
(86)(22)【出願日】2018-04-13
(86)【国際出願番号】 US2018027596
(87)【国際公開番号】W WO2018191680
(87)【国際公開日】2018-10-18
【審査請求日】2021-03-03
(32)【優先日】2017-04-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518279875
【氏名又は名称】イングラム マイクロ インコーポレーテッド
(74)【代理人】
【識別番号】100138760
【氏名又は名称】森 智香子
(72)【発明者】
【氏名】グレベンシコフ,ウラジーミル
(72)【発明者】
【氏名】クスキン,マキシム
(72)【発明者】
【氏名】ハレロフ,アレクサンドル
【審査官】中村 信也
(56)【参考文献】
【文献】特開2006-092167(JP,A)
【文献】米国特許第08843997(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
G06F 8/60-8/77
G06F 9/44-9/445
G06F 9/451
(57)【特許請求の範囲】
【請求項1】
クラウドサービス仲介システムのクラウドサービス統合コネクタを生成して分散する方法であって、
デベロッパーポータルコンピューティングデバイスのデベロッパーUIポータル
により、デベロッパーから
のクラウドサービスと関連したコネクタのコネクタ記述情報を受信するステップと、
前記デベロッパーUIポータル
により、前記デベロッパーから
の、前記コネクタのモデルの一つ以上のリソースタイプを受信するステップと、
前記デベロッパーポータルコンピューティングデバイスのコネクタビルダー
により、前記コネクタ記述情報および前記一つ以上のリソースタイプ
に応じてコネクタをビルドするステップと、
前記コネクタビルダーによって、前記ビルドされたコネクタのコネクタパッケージを生成するステップと、
前記コネクタビルダーによって、前記生成されたコネクタパッケージをクラウドサービスマーケットプレースコンピューティングデバイスのコネクタハブに伝送するステップであって、前記コネクタパッケージは、前記コネクタの一つ以上のインスタンスを生成するために使用可能であるステップと、
を含む方法。
【請求項2】
前記デベロッパーポータルコンピューティングデバイスのエキスパートシステムによって、前記クラウドサービスと関連した前記コネクタの以前のバージョンが公開されたかどうかについて分析するステップと、
前記エキスパートシステムによって、そして前記コネクタの前記以前のバージョンが公開されたという決定の後に、前記コネクタと前記コネクタの前記以前のバージョンの間の一致レベルを決定するステップと、
前記エキスパートシステムによって、前記一致レベルを一致レベル閾値に対して比較するステップと、
前記エキスパートシステムによって、前記コネクタの前記以前のバージョンの新しいバージョンとして前記コネクタを前記コネクタの前記以前のバージョンと関連づけるステップと、
を更に含む請求項1に記載の方法。
【請求項3】
前記デベロッパーポータルコンピューティングデバイス
のエキスパートシステムによって、別のサービスが前記コネクタに関連するはずであるかどうか分析するステップと、
前記エキスパートシステムによって、一つ以上の他のサービスが前記コネクタに関連することがありえるかどうか識別するステップと、
前記エキスパートシステムによって、そして前記一つ以上の他のサービスが前記コネクタに関連がありえると識別した後に、前記一つ以上の他のサービスを関連づけるステップと、
を更に含む請求項1に記載の方法。
【請求項4】
前記デベロッパーUIポータル
により、前記デベロッパーから
の前記デベロッパーポータルコンピューティングデバイスのコネクタスケルトンデータベースからのコネクタスケルトンと関連した識別子を受信するステップを更に含み、前記コネクタスケルトンは、前記コネクタを生成するためのフレームワークを生成するために使用可能であり、そして前記コネクタの前記一つ以上のリソースタイプを受信するステップは、前記コネクタスケルトンに基づいて前記コネクタの前記一つ以上のリソースタイプを受信することを含む請求項1に記載の方法。
【請求項5】
前記コネクタ記述情報を受信するステップは、前記サービスの表題、前記サービスのタイプ、前記サービスと関連したアイコン、および一つ以上のサービスプロバイダ命令を受信することを含む請求項1に記載の方法。
【請求項6】
前記コネクタビルダーによって、前記コネクタと前記コネクタ
の以前のバージョンの一つ以上の差を決定するステップと、
前記コネクタビルダーによって、前記決定された一つ以上の差
に応じて一つ以上のアップグレード命令を生成するステップと、を更に含み、
前記コネクタパッケージを生成するステップは、前記一つ以上のアップグレード命令
に応じて前記コネクタパッケージを生成することを含む請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
この特許出願は、2017年4月14日出願の米国特許出願第62/485,665号の優先権を主張し、本明細書にその開示内容を参照によって援用する。
【0002】
この開示の実施形態は、クラウドサービス仲介、より詳細には、クラウドサービス仲介システムの統合コネクタを生成して分散する技術に関する。
【背景技術】
【0003】
独立ソフトウェアベンダー(ISV)は、一つ以上のコンピュータハードウェアまたはオペレーティングシステムプラットフォームで動作するように通常は設計されるソフトウェアアプリケーションを開発して、販売する。この種のソフトウェアアプリケーションは、基本的なユーティリティまたは生産性強化アプリケーションから企業用の事業プロセスアプリケーション(例えば、顧客関係管理(CRM)、企業資源計画(ERP)、自動化ツールなど)にわたる。クラウドコンピューティングが、より普及するようになったので、ソフトウェアを引き渡すそのような方法は、サービスとしてのソフトウェア(SaaS)ベースのモデルを使用してクラウドにより行われた。この引渡し方法を使用して、ISVは、パブリッククラウドまたはクラウドマーケットプレースを通じてそれらのソフトウェアアプリケーション、またはそれらのソフトウェアアプリケーションの会費を販売できる。
【0004】
クラウドマーケットプレースが、顧客アクセスのためのオンライン店頭をクラウドベースのサービスおよびソフトウェアアプリケーションに提供するのに対して、クラウドサービスブローカーは、例えば、各クラウドサービスのためのプラグインまたはAPIコネクタを用いて、ISVとエンドユーザ、再販業者、小売業者などの間の取引を容易にするために用いることができる。従来のクラウドサービスブローカー実施態様において、各クラウドサービスブローカーは、通常は、クラウドサービスブローカークセスをプラットフォームおよび/またはインフラストラクチャに提供するクラウドサービス毎に各ISVと契約する。それは、APIコネクタを生成して管理するために(例えば、ポータルを経由して)アクセスすることができて、それによって、それらのサービスがクラウドにおいて購入されて、提供されて、実行されることを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【0005】
通常は、この種のAPIコネクタは、クラウドサービスブローカーの側から、店内(すなわち、プロバイダ側)で、またはクラウドで(例えば、クラウドサービスブローカーの口座の下で)マーケットプレースに出される。このように、各クラウドサービスブローカープラットフォームインスタンスは、クラウドサービスブローカープラットフォームが提供するために同調するサービス毎にそれ自体のAPIコネクタを有する。しかしながら、この種の手動式実施は、通常は、多数のAPI方法および少数のユーザインターフェイス統合点を必要とし、それはISVがそれらのサービスをそれぞれのクラウドサービスブローカープラットフォームに統合するためのより長いリリース時間に結果としてなりえる。従って、クラウドサービス仲介システムの統合コネクタを生成して分散する必要がある。
【課題を解決するための手段】
【0006】
一つの態様において、クラウドサービス仲介システムのクラウドサービス統合コネクタを生成して分散する方法。方法は、デベロッパーポータルコンピューティングデバイスのデベロッパーUIポータルを経由してデベロッパーから、クラウドサービスと関連したコネクタのコネクタ記述子情報を受信するステップと、デベロッパーUIポータルを経由してデベロッパーから、コネクタの一つ以上のリソースタイプを受信するステップと、デベロッパーポータルコンピューティングデバイスのコネクタビルダーによって、コネクタ記述子情報および一つ以上のリソースタイプの関数としてコネクタをビルドするステップと、コネクタビルダーによって、ビルドされたコネクタ用のコネクタパッケージを生成するステップと、コネクタビルダーによって生成されたコネクタパッケージをクラウドサービスマーケットプレースコンピューティングデバイスに伝送するステップであって、コネクタパッケージは、コネクタの一つ以上のインスタンスを生成するために使用可能であるステップとを含む。
【0007】
いくつかの実施形態において、方法は、デベロッパーポータルコンピューティングデバイスのエキスパートシステムによって、クラウドサービスと関連したコネクタの以前のバージョンが公開されたかどうかについて分析するステップと、エキスパートシステムによって、そしてコネクタの以前のバージョンが公開されたという決定の後に、コネクタとコネクタの以前のバージョンの間の一致レベルを決定するステップと、エキスパートシステムによって、一致レベル閾値に対して一致レベルを比較するステップと、エキスパートシステムによって、コネクタの以前のバージョンの新しいバージョンとしてコネクタをコネクタの以前のバージョンと関連づけるステップとを更に含む。
【0008】
いくつかの実施形態において、方法は、デベロッパーポータルコンピューティングデバイスのエキスパートシステムによって、別のサービスがコネクタに関連するはずであるかどうかについて分析するステップと、エキスパートシステムによって、一つ以上の他のサービスがコネクタに関連がありえるかどうか識別するステップと、エキスパートシステムによって、そして一つ以上の他のサービスがコネクタに関連がありえると識別した後に、一つ以上の他のサービスを関連づけるステップとを加えて含む。
【0009】
いくつかの実施形態において、方法は、デベロッパーUIポータルを経由してデベロッパーから、デベロッパーポータルコンピューティングデバイスのコネクタスケルトンデータベースからコネクタスケルトンに関連した識別子を受信するステップを更に含み、コネクタスケルトンは、コネクタを生成するためのフレームワークを生成するために使用可能であり、そしてコネクタの一つ以上のリソースタイプを受信するステップは、コネクタスケルトンに基づいてコネクタの一つ以上のリソースタイプを受信することを含む。
【0010】
いくつかの実施形態において、コネクタ記述子情報を受信するステップは、サービスの表題、サービスのタイプ、サービスと関連したアイコン、および一つ以上のサービスプロバイダ命令を受信することを含む。加えて、または代わりに、いくつかの実施形態において、方法は、コネクタビルダーによって、コネクタとコネクタの以前のバージョンの間の一つ以上の差を決定するステップと、コネクタビルダーによって、決定された一つ以上の差関数として一つ以上のアップグレード命令を生成するステップとを更に含み、コネクタパッケージを生成するステップは、一つ以上のアップグレード命令の関数としてコネクタパッケージを生成することを含む。
【0011】
実施形態ならびに本願明細書に含まれる他の特徴、利点、および開示、ならびにそれらを達成する方法は、明らかになり、そして本開示は、添付図面に関連してなされる本開示のさまざまな例示的実施形態の以下の説明を参照することでよりよく理解される。
【図面の簡単な説明】
【0012】
【
図1】ブローカーコンピューティングデバイス、サービスプロバイダコンピューティングデバイス、およびデベロッパーポータルコンピューティングデバイスを含み、それらの各々はマーケットプレースコンピューティングデバイスに通信で接続するクラウドサービス仲介システムにおいて統合コネクタを生成して分散するクラウドサービスマーケットプレースおよび仲介システムの例示的実施形態のブロック図である。
【
図2】
図1のマーケットプレースコンピューティングデバイスのクラウドサービスブローカーマーケットプレースのコンピューティングデバイスの一つの例示的実施形態のブロック図である。
【
図3】
図1のデベロッパーポータルコンピューティングデバイスの例示的環境のブロック図である。
【
図4A-4D】
図1のデベロッパーポータルコンピューティングデバイスによって実行できるクラウドサービス仲介システムにおいて統合コネクタを生成して分散する例示的方法の略フロー図である。
【
図5】
図1のデベロッパーポータルコンピューティングデバイスによって実行できるコネクタオブジェクトにバージョン分析を実行する例示的方法の略フロー図である。
【
図6】
図1のデベロッパーポータルコンピューティングデバイスによって実行できるコネクタオブジェクトにペアリング分析を実行する別の例示的方法の略フロー図である。
【発明を実施するための形態】
【0013】
本開示の原理の理解を促進するために、ここで図面に示される実施形態を参照して、それを説明するために特定の言語を用いる。本開示の範囲の限定がそれにより意図されないことがそれでも理解される。
【0014】
図1は、統合コネクタを生成して分散するクラウドサービスマーケットプレースおよび仲介システム100を示す。クラウドサービスマーケットプレースおよび仲介システム100は、デベロッパーポータルコンピューティングデバイス116、サービスプロバイダコンピューティングデバイス122、およびブローカーコンピューティングデバイス130を含み、それらの各々は、マーケットプレースコンピューティングデバイス102に(例えば、ネットワーク128を経由して)通信で接続する。使用中、クラウドサービスプロバイダと関連したクラウドサービスアプリケーションデベロッパー/プログラマーは、アプリケーションプログラミングインターフェイス(API)(例えば、
図1のAPI126参照)および一つ以上のクラウドサービス用のAPIコネクタを開発する。
【0015】
APIコネクタを開発するために、デベロッパーは、特定のサービスをクラウドサービスマーケットプレースで(例えば、マーケットプレースコンピューティングデバイス102のクラウドサービスブローカーマーケットプレース104を経由して)売りに出すために、デベロッパーポータル(例えば、デベロッパーポータルコンピューティングデバイス116のデベロッパーユーザインターフェイス(UI)ポータル118)を使用する。デベロッパーが、デベロッパーポータルコンピューティングデバイス116に(例えば、ネットワーク128を経由して)通信で接続するエンドポイントコンピューティングデバイス(図示せず)を経由してデベロッパーUIポータル118にアクセスすることができることを理解すべきである。
【0016】
APIコネクタは、そのそれぞれのAPI126と通信するために使用可能である、そのAPIコネクタの複写されたインスタンス(例えば、
図1のコネクタファクトリー112に対応するAPIコネクタインスタンス114参照)を生成するために使用可能なソースコードの形でありえる。したがって、各API126は、クラウドサービスから(例えば、サービスプロバイダコンピューティングデバイス122のクラウドサービスプロバイダインターフェイス124を経由して)コマンドを受信して、受信したコマンドをAPI126が接続される対応するAPIコネクタインスタンス114に送信するように、そしてその逆も同様に構成される。
【0017】
デベロッパーポータルは、コネクタパッケージの主要構成要素、例えば、モデル(例えば、アプリケーションオブジェクトのためのビジネスモデルの説明)、ユーザインタラクションをサポートするユーザインターフェイス、およびコネクタのバックエンド(例えば、処理プロビジョニング、管理、要求監視などのための表象状態転送(REST)サービス)を規定するために使用可能であるデベロッパーからの入力を受信するように構成される。デベロッパーポータルは、コネクタと関連した付加的情報、例えば、クラウドサービスアドレス、省略時設定、価格設定情報、販売テンプレート、クラウドサービスの識別子などを受信するように構成されることができることを理解すべきである。
【0018】
デベロッパーポータルは、下記に更に詳述するように、コネクタパッケージを生成し、生成されたコネクタパッケージをテストして、テストされたコネクタパッケージをコネクタカタログ(例えば、マーケットプレースコンピューティングデバイス102のコネクタハブ106の利用できるサービスデータベース110)に公開するように加えて構成される。開発段階の後に、コネクタパッケージは、生産段階へ進むことができて、コネクタは、(例えば、ブローカーコンピューティングデバイス130のクラウドサービスブローカーインターフェイス132を経由してクラウドサービスブローカーマーケットプレース104を通って)クラウドサービスブローカーに配置できる。
【0019】
マーケットプレースコンピューティングデバイス102は、クラウドサービスプロバイダとクラウドサービスブローカーとの間のさまざまなクラウドサービスに対するライセンスを管理するように構成される。例示的な実施例において、クラウドサービスプロバイダ(例えば、独立ソフトウェアベンダー(ISV)は、エンドユーザへのライセンスの販売を容易にするために、クラウドサービスマーケットプレースの制御実体と契約する。ライセンスは、それから、そのエンドユーザ、またはそれに関連する他のエンドユーザのクラウドサービスプロバイダのクラウドサービス(例えば、ソフトウェア(SaaS)アプリケーションとしてのクラウドベースのサービス)への確かなアクセスを可能にすることができる。
【0020】
そのために、例示的なマーケットプレースコンピューティングデバイス102は、デベロッパーUIポータル118によって生成するパッケージ化コネクタを(例えば、利用できるサービスデータベース110に)格納して、サービスプロバイダコンピューティングデバイス122のクラウドサービスプロバイダインターフェイス124とブローカーコンピューティングデバイス130のクラウドサービスブローカーインターフェイス132の間にコネクタファクトリー112のコネクタ114の提供チャネルを確立するように構成されるコネクタハブ106を含む。したがって、クラウドサービスブローカーは、それから、それらのそれぞれのクラウドサービスブローカーインターフェイス132を経由してパッケージ化コネクタと関連したクラウドサービスのためのライセンスをエンドユーザ(例えば、顧客、ブローカー、再販業者など)に販売できる。
【0021】
コネクタハブ106は、コネクタ114毎に提供チャネル証明書(例えば、証明書データベース108に格納できるような、ブローカー証明書および/またはクラウドサービスプロバイダ証明書)を生成するように加えて構成される。提供チャネル証明書は、提供チャネル証明書を使用して2つの実体の間の安全な通信チャネルを認証するために使用可能であるいかなるタイプの情報(例えば、暗号キーまたは他の任意のデータ)であってもよいことを理解すべきである。
【0022】
例示的なクラウドサービスマーケットプレースおよび仲介システム100に示すように、マーケットプレースコンピューティングデバイス102、デベロッパーポータルコンピューティングデバイス116、サービスプロバイダコンピューティングデバイス122、およびブローカーコンピューティングデバイス130の各々は、コンピューティングデバイス134として実施される。したがって、それぞれのコンピューティングデバイス134の各々は、本願明細書に記載されている機能を実行できるいかなるタイプの計算および/または記憶装置としても実施できることを理解すべきである。加えて、それぞれのコンピューティングデバイス134の各々は、複数のコンピューティングデバイス134から成ることができると更に理解すべきである。例えば、コンピューティングデバイス134の一つ以上は、一つ以上の(例えば、独立型、ラックマウント式などの)サーバーおよび/またはクラウドアーキテクチャドネットワークまたはデータセンターにおけるコンピュートブレードと(例えば、記憶エリアネットワーク(SAN)の)データ記憶装置の組合せとして実施できる。その一方で、他のコンピューティングデバイス134の一つ以上は、一つ以上のデスクトップコンピュータ、モバイルコンピューティングデバイス(例えば、スマートフォン、ウェアラブル、タブレット、ラップトップ、ノートブックなど)またはいかなる他のタイプの「スマート」またはインターネット接続した装置としても実施できる。
【0023】
ここで
図2を参照すると、マーケットプレースコンピューティングデバイス102、デベロッパーポータルコンピューティングデバイス116、サービスプロバイダコンピューティングデバイス122、およびブローカーコンピューティングデバイス130の一つ以上を表わすコンピューティングデバイス134の例示的実施形態が示される。例示的コンピューティングデバイス134は、中央演算処理装置(CPU)200、入出力(I/O)コントローラ202、メモリ204、ネットワーク通信回路206、およびデータ記憶装置210を、ならびに、いくつかの実施形態において、一つ以上のI/O周辺機器208を含む。いくつかの実施形態において、例示的な構成要素の一つ以上は、単一集積回路(IC)において単一システムオンチップ(SoC)に組み込むことができる。別の実施形態は、例示的コンピューティングデバイス134のそれらに対して追加の、より少ない、そして/または代わりの構成要素、例えば、グラフィックス処理ユニット(GPU)、電源などを含むことができて、それらは説明の明快さを維持するために図示されないことを理解すべきである。それぞれのコンピューティングデバイス134の記憶/計算構成要素のタイプは、それぞれのコンピューティングデバイス134のタイプおよび意図された使用に応じて断定できると更に理解すべきである。
【0024】
CPU200またはプロセッサは、データを処理できる回路のいかなるタイプのハードウェアまたは組合せとしても実施できる。したがって、CPU200は、単一コアプロセッサアーキテクチャの一つの処理コア(図示せず)またはマルチコアプロセッサアーキテクチャの複数の処理コアを含むことができる。処理コアの数にかかわりなく、CPU200は、プログラム命令を読み込んで、実行できる。いくつかの実施形態において、CPU200は、CPU200と直接集積化されるかまたはCPU200に別々の相互接続を有する別々のチップに配置することができるキャッシュメモリ(図示せず)を含むことができる。いくつかの実施形態において、パイプライン論理は、CPU200に出入りするコマンドよりもむしろ、ソフトウェアおよび/またはハードウェア動作(例えば、ネットワークトラフィック処理動作)を実行するために用いることができることを理解すべきである。
【0025】
I/Oコントローラ202またはI/Oインターフェイスは、入出力装置とコンピュータ134とのインターフェイスになりうる、いかなるタイプのコンピュータハードウェアまたは回路の組合せとしても実施できる。実例として、I/Oコントローラ202は、CPU200から入出力要求を受信して、それぞれの入力/出力装置に制御信号を送り、それによって、コンピューティングデバイス134に出入りするデータフローを管理するように構成される。
【0026】
メモリ204は、処理のためのデータおよび命令を保持できる、いかなるタイプのコンピュータハードウェアまたは回路の組合せとしても実施できる。この種のメモリ204は、主または主要なメモリと呼ぶことができる。いくつかの実施形態において、コンピューティングデバイス134の一つ以上の構成要素は、メモリへの直接のアクセスを有することができる。そうすると、特定のデータは、CPU200と独立して直接のメモリアクセス(DMA)によって格納できることを理解すべきである。
【0027】
ネットワーク通信回路206は、無線および/または有線通信モードによってネットワークインターフェイス通信(例えば、メッセージ、データグラム、パケットなど)を管理できる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実施できる。したがって、いくつかの実施形態において、ネットワーク通信回路206は、コンピューティングデバイス134をコンピュータネットワーク(例えば、ネットワーク128)、ならびにクラウドサービスマーケットプレースおよび仲介システム100の他のコンピューティングデバイスに接続するように構成することができるネットワークインターフェイスコントローラ(NIC)を含むことができる。
【0028】
一つ以上のI/O周辺機器208は、コンピューティングデバイス134に接続して、それと通信するように構成されるいかなる補助装置としても実施できる。例えば、I/O周辺機器208は、マウス、キーボード、モニター、タッチスクリーン、プリンター、スキャナー、マイクロホン、スピーカーなどを含むが、これらに限定されない。したがって、いくつかのI/O装置は、一つの機能(すなわち、入力または出力)あるいは両方の機能(すなわち、入力および出力)ができることを理解すべきである。
【0029】
いくつかの実施形態において、I/O周辺機器208は、コンピューティングデバイス134のケーブル(例えば、リボンケーブル、ワイヤ、汎用シリアルバス(USB)ケーブル、高解像度マルチメディアインタフェース(HDMI(登録商標))ケーブルなど)を経由してコンピューティングデバイス134に接続できる。このような実施形態において、ケーブルは、その間でなされる通信をI/Oコントローラ202によって管理できるコンピューティングデバイス134の対応するポート(図示せず)に接続している。代わりの実施形態では、I/O周辺機器208は、ネットワーク通信回路206によって管理できる通信の無線モード(例えば、ブルートゥース(登録商標)、Wi-Fi(登録商標)など)によってコンピューティングデバイス134に接続できる。
【0030】
データ記憶装置210は、データの不揮発性記憶ができるいかなるタイプのコンピュータハードウェア(例えば、半導体記憶媒体、磁気記憶媒体、光記憶媒体など)としても実施できる。この種のデータ記憶装置210は、一般に補助または二次記憶装置と呼ばれて、通常は、上記のメモリ204と関連して大量のデータを格納するために用いる。
【0031】
図1に戻って参照すると、例示的クラウドサービスマーケットプレースシステム100は、マーケットプレースコンピューティングデバイス102と通信するために、他のコンピューティングデバイス134(すなわち、デベロッパーポータルコンピューティングデバイス116、サービスプロバイダコンピューティングデバイス122、およびブローカーコンピューティングデバイス130)のために使用可能であるネットワーク128を含む。ネットワーク128は、いかなる有線および/または無線通信技術とネットワーク通信伝送プロトコルも利用する、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、グローバルネットワーク(インターネット)などを含む、いかなるタイプの有線および/または無線ネットワークとしても実施できる。したがって、ネットワーク128は、一連の有線および/または無線相互接続を経由してネットワーク通信トラフィックのフローおよび/または処理を容易にするために、一つ以上の通信結合されたネットワークコンピューティングデバイス(図示せず)を含むことができる。この種のネットワークコンピューティングデバイスは、一つ以上のアクセスポイント、ルーター、スイッチ、サーバー、コンピューティングデバイス、記憶装置など含むが、これらに限定されない。
【0032】
例えば、この種のネットワークコンピューティングデバイスの一つ以上は、有線(例えば、イーサネット(登録商標)、トークンリングなど)を使用するLAN構成および/または無線(例えば、ブルートゥース(登録商標)、Wi-Fi(登録商標)、無線ブロードバンド、ZigBee(登録商標)など)通信技術および関連プロトコルを使用するWLAN構成で、マーケティングコンピューティングデバイス102、デベロッパーポータルコンピューティングデバイス116、サービスプロバイダコンピューティングデバイス122、および/またはブローカーコンピューティングデバイス130の一つ以上をネットワーク128に接続するように構成されることができる。更なる実施例として、LAN構成は、ネットワーク128の追加ネットワークコンピューティングデバイスを経由して、一つ以上のより大きいエリアネットワーク(例えば、WAN、メトロポリタンエリアネットワーク(MAN)、インターネットなど)に(例えば、同軸ケーブル、モバイル電話通信、ファイバーなどを経由して)接続できる。ネットワークコンピューティングデバイスおよび/またはネットワーク構成の一つ以上は、仮想化できる(例えば、仮想スイッチ、仮想LANなど)ことを理解すべきである。
【0033】
上記したように、デベロッパーポータルコンピューティングデバイス116は、デベロッパーUIポータルを含み、サービスプロバイダコンピューティングデバイス122は、クラウドサービスプロバイダインターフェイス124を含み、そして例示的ブローカーコンピューティングデバイス130は、クラウドサービスブローカーインターフェイス132を含む。デベロッパーUIポータル118、クラウドサービスプロバイダインターフェイス124、およびクラウドサービスブローカーインターフェイス132の各々は、本願明細書に記載されている機能を実行できるソフトウェア、ハードウェア、ファームウェア、および回路のいかなる組合せとしても実施できる。いくつかの実施形態において、デベロッパーUIポータル118、クラウドサービスプロバイダインターフェイス124、およびクラウドサービスブローカーインターフェイス132の一つ以上は、情報をそれらのそれぞれのコンピューティングデバイス134のディスプレイに(例えば、グラフィカルUI、コマンドラインインターフェイスなどを経由して)与えるように構成されることができる。このような実施形態では、デベロッパーUIポータル118、クラウドサービスプロバイダインターフェイス124、および/またはクラウドサービスブローカーインターフェイス132は、ログインするためにユーザから受信した入力を中継し、それぞれのインターフェイスを構成し、またはそれに関連する情報(例えば、設定)を操作するように構成されることができる。
【0034】
ここで
図3を参照すると、デベロッパーポータルコンピューティングデバイス116の例示的環境300が示される。例示的環境300は、コネクタビルダー304、コネクタプレーヤー314、試験システム316、およびエキスパートシステム318、ならびに
図1のデベロッパーUIポータル118を含む。いくつかの実施形態において、デベロッパーUIポータル118、コネクタビルダー304、コネクタプレーヤー314、試験システム316、およびエキスパートシステム318の一つ以上は、そこに格納される命令を有する一つ以上のコンピュータ可読媒体(例えば、メモリ204、データ記憶装置210、および/またはその他のメディア記憶装置)および一つ以上のコンピュータ可読媒体に接続して本願明細書に記載されている機能を実行するために命令を実行するように構成される一つ以上のプロセッサ(例えば、CPU200)を含むことができる。加えて、例示的環境300は、モデルデータベース302およびライブラリマネージャー306を含み、それらの各々は下記に詳述される。
【0035】
上記したように、デベロッパーUIポータル118は、本願明細書に記載されている機能を実行できるいかなるタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとしても実施できる。加えて、コネクタビルダー304、コネクタプレーヤー314、試験システム316、およびエキスパートシステム318の各々は、本願明細書に記載されているそれぞれの機能を実行できるいかなるタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとしても実施できる。
【0036】
以前にも述べたように、デベロッパーUIポータル118は、デベロッパーがクラウドサービスのためのパッケージ化されたAPIコネクタを生成するために、インターフェイスを提供するように構成される。そのために、デベロッパーUIポータル118は、デベロッパーと(例えば、ハイパーテキスト伝送プロトコル(HTTP)要求/応答によって)通信して、環境300のさまざまな構成要素および記憶媒体にインターフェイスするように構成される。
【0037】
例えば、デベロッパーUIポータル118は、デベロッパーと通信して、デベロッパーにより開発されるAPIコネクタをパッケージ化するために使用可能な情報(すなわち、コネクタ記述情報)を受信するように構成される。上記したように、APIコネクタは、クラウドサービスブローカーとクラウドサービスプロバイダの間のインターフェイスを可能にするコネクタのインスタンスを生成するために使用可能である。このように、コネクタ記述情報は、APIコネクタのインスタンスを生成するために用いることができるAPIコネクタに関連した、いかなる情報も含むことができる。例えば、コネクタ記述情報は、UI情報(例えば、サービスの表題、一つ以上のアイコンなど)、リソースモデル情報(例えば、ディスク空間、メールボックス、ドメインなどのような提供されるサービス)、提供チャネルを確立するための証明書、サービスプラン情報(例えば、ブローカー/プロバイダに対する課金規則)、リソース情報を含むが、これらに限定されないことがありえる。コネクタ記述情報は、モデルデータベース302に格納できる。
【0038】
デベロッパーは、コネクタ記述情報のいかなる部分もデベロッパーUIポータル118によって(例えば、モデルデータベース302に格納できるように)変更できることを理解すべきである。そのために、デベロッパーUIポータル118は、コネクタになされるアップグレード/変更のための下位互換性を確実にするために、コネクタのモデルを生成し、そして/またはコネクタを(例えば、コネクタビルダー304によって)表示し、開発されたコネクタに対して試験システムで一つ以上の試験を(例えば、コネクタプレーヤー314および試験システム316によって)実行して、一つ以上の互換性規則に対してコネクタを(例えば、エキスパートシステム318によって)検査するために、デベロッパーによって使用可能な一つ以上の視覚的インターフェイスを提供するように構成される。
【0039】
モデルデータベース302は、コネクタ毎にモデルを格納するように構成される。モデルは、コネクタを規定するか、または、パッケージ化するために使用可能ないかなる情報、例えば、UIラベル(例えば、名前、説明など)、視覚素材(例えば、アイコン、スクリーンショット、スタイルなど)、UI拡張(例えば、UI要素を既存のアプリケーションにプラグインする方法の説明)、コネクタでサポートされるビジネスオブジェクトの定義(例えば、ユーザ、メールボックス、スパムフィルタリング規則など)も含むことができる。いくつかの実施形態において、UI拡張の少なくとも一部は、HTMLページとして規定することができて、関連したJavaScript(登録商標)、CSS、画像など、ならびにUI要素を適用できるページ毎にUI構成にプラグインするための説明を含むことを理解すべきである。加えて、モデル情報は、コネクタでサポートされるオブジェクト毎に、一つ以上の特性(例えば、タイプ、説明、ラベル、デフォルト値など)、一つ以上の関係(すなわち、オブジェクトがサービスドメインモデルの他のオブジェクトおよび関係の基数に接続される方法)、および/または使用/制限マッピング(例えば、使用/限度が販売可能な資源および計画にマップされる方法)を含むことができる。いくつかの実施形態において、モデルデータベースは、同じコネクタおよび/または複数のコネクタの複数のバージョンを維持できることを理解すべきである。したがって、複数のバージョンが維持されるこの種の実施形態で、バージョンの差(すなわち、変更)は、(例えば、特定のモデル情報の比較によって)自動的に決定できることを更に理解すべきである。
【0040】
コネクタビルダー304は、コネクタと関連した、すべてのビジネスオブジェクトのためのスキーマファイルを生成するように構成される。そのために、コネクタビルダー304は、ビジネスオブジェクトを識別して、スキームファイルを生成するために、コネクタのメタデータ(例えば、コネクタ記述情報)を分析するように構成される。加えて、コネクタビルダー304は、コネクタがコネクタの最初のバージョンでない(すなわち、パッケージ化されるコネクタは、アップグレードであるか、または同じサービスのために前にパッケージ化されたコネクタに対する変更を含む)この種の実施形態において、一組のアップグレード命令を生成するように構成される。アップグレード命令は、追跡してコネクタのアップグレードされたバージョンに適用できるいかなるモデル変更も、例えば、コネクタのメタデータの変更、デフォルト値のタイプまたは割当ての範囲に新しい特性の追加、特性の取り除き、特性の名前/タイプの変更、サービス(例えば、アプリケーションドメインモデルの新しいオブジェクト)の追加、他のコネクタの、またはアプリケーションドメインモデルのオブジェクトに対する/間の新規な関係の追加、関係の名前の変更、オプションの関係基数の変更、関係により要求されるタイプの変更、特性アクセス規則の変更、関係アクセスおよび/または割当て規則の変更、規則に従って関係を複数の関係に分割することなどを含むことができる。
【0041】
コネクタビルダー304は、上述の生成されたスキーマをアセンブルして、適用できる場合、コネクタのソースコードとともに命令、およびコネクタパッケージへのフロントエンドテンプレートをアップグレードするように更に構成される。さらにまた、コネクタビルダー304は、組み立てられたコネクタパッケージをコネクタのカタログ(すなわち、利用できるサービス)を含むマーケットプレースコンピューティングデバイス102の利用できるサービスデータベース110にアップロードするように構成される。
【0042】
ライブラリマネージャー306は、例示的データベースの間にデータのフローを管理するように構成されて、それは、互換性規則データベース308、コネクタスケルトンデータベース310、およびフロントエンドテンプレートデータベース312を実例として含む。そのために、ライブラリマネージャー306は、データベースの各々における読出しおよび書込み動作、ならびにデータにおいて実行する必要がありえるその他の動作(例えば、データを標準化する、データを正規化する、データを強化するなど)を実行するように構成される。
【0043】
互換性規則データベース308は、バージョニング管理のための規則(すなわち、互換性規則)を格納するように構成される。換言すれば、互換性規則は、バージョンの間の下位互換性を確実にする。例えば、下位互換性が壊れるとき、互換性規則は、変更が販売される資源のタイプになされるのを許さないが、しかしながら、互換性規則は、資源のそのタイプまたは販売される資源の付加的なタイプの構成を拡張することを許容する。このように、提案されたアップグレードが、互換性規則に対して(例えば、コネクタビルダー304によって)テストすることができるとき、互換性規則は、自動アップグレードが実行されるのを可能にする機能を提供する。いくつかのセットのこの種の規則がありえることを理解すべきである。例えば、軽微なアップグレードは、完全な下位互換性を維持できる。その一方で、大きなアップグレードは、限られた下位互換性を維持できる。
【0044】
コネクタスケルトンデータベース310は、コネクタ開発のためにモデルおよびベストプラクティスに従って準備されるコードを格納するように構成される。このように、格納されたコードは、コネクタ用のバックエンドの開発のための開始フレームワークとして用いることができる。コードは、デベロッパーにより規定されるモデルに応じてカスタマイズすることができることを理解すべきである。
【0045】
フロントエンドテンプレートデータベース312は、 既知のシナリオのためのユーザインターフェイス(例えば、新しい顧客/口座の作成、顧客の購読を買うこと、購読を無効にすること、購読を終了することなど)を格納するように構成される。したがって、デベロッパーが、既知のシナリオを可能にするときに、そのシナリオに関連するUIコードは、フロントエンドテンプレートデータベース312からコネクタのUI構成要素に加えることができる。
【0046】
いくつかの実施形態において、本願明細書に記載されているそれぞれのデータベースに格納されるデータは、互いに排他的でありえないことを理解すべきである。換言すれば、一つのデータベースに格納されるとして本願明細書に記載されている特定のデータは、本願明細書に記載されている別のデータベースまたは別のデータベースに全体として追加して、または代わりに格納できる。いくつかの実施形態において、データは、単一のデータベース、分散データベース、または代わりのデータベース構成に格納できることを更に理解すべきである。
【0047】
コネクタプレーヤー314は、試験システム(例えば、試験システム316)に対してコネクタの試験シナリオを実行するように構成される。この種のシナリオは、コネクタを配備する、コネクタインスタンスを生成する、サービステンプレートおよび計画を構成する、購読/ユーザ作成をテストする、反資源の使用を要求するなどを含むことができる。したがって、試験システム316は、コネクタのさまざまなシナリオをテストするために使用可能なリソースを提供するように構成される。リソースは、物理的および/または仮想的なリソースでありえることを理解すべきである。
【0048】
エキスパートシステム318は、潜在的組合せサービスを分析して、コネクタと関連したサービスと組み合わされる候補として一つ以上の識別されるサービスを提案するように構成される。そのために、エキスパートシステム318は、コネクタと関連した情報(例えば、サービスタイプ、説明など)を識別して、識別した情報を通常は組み合わされる他のサービスの対応する情報と比較するように構成される。例示的な実施例において、エキスパートシステム318は、電子メールサービスのためのコネクタで実行した分析の結果に基づいて、反スパムサービスを組み合わせることを提案できる。いかなる関係も、関連するコネクタモデルを変更できることを理解すべきである。
【0049】
上記したように、デベロッパーポータルコンピューティングデバイス116は、一つ以上のコンピューティングデバイス134から成ることができる。したがって、デベロッパーUIポータル118、モデルデータベース302、ライブラリマネージャー306、コネクタビルダー304、コネクタプレーヤー314、試験システム316、およびエキスパートシステム318が、単一のコンピューティングデバイス134(すなわち、デベロッパーポータルコンピューティングデバイス116)にあるとして実例として示されるが、いくつかの実施形態において、一つ以上の構成要素は、デベロッパーポータルコンピューティングデバイス116を一緒に備える、いろいろなコンピューティングデバイス134に置くことができることを理解すべきである。
【0050】
ここで
図4A~4Dを参照すると、例示的方法400は、デベロッパーポータルコンピューティングデバイス116によって、またはより詳しくは、デベロッパーポータルコンピューティングデバイス116(例えば、デベロッパーUIポータル118、コネクタビルダー304など)の構成要素の一つ以上によって実行できるクラウドサービス仲介システムの統合コネクタを生成して分散するために提供される。方法400は、ブロック402において始まる。デベロッパーポータルコンピューティングデバイス116は、コネクタオブジェクトを生成するかどうか決定する。もしそうであれば、方法400は、ブロック404へ進む。デベロッパーポータルコンピューティングデバイス116は、関連したコネクタスケルトンを(例えば、
図3のコネクタスケルトンデータベース310から)選択する。上記したように、コネクタスケルトンは、コネクタ用のバックエンドの開発のための開始フレームワークとして使用可能なコードの形でありえる。
【0051】
ブロック406において、デベロッパーポータルコンピューティングデバイス116は、ユニークなコネクタモデル識別子を生成する。ブロック408において、デベロッパーポータルコンピューティングデバイス116は、コネクタモデルのコネクタ記述情報をコネクタデベロッパーに(例えば、デベロッパーUIポータル118を経由して)要求する。例示的な実施例において、ブロック410で、デベロッパーポータルコンピューティングデバイス116は、UI情報(例えば、サービス表題、サービスタイプ、アイコンなど)および一つ以上のプロバイダ命令を要求する。上記したように、コネクタ記述情報は、APIコネクタのインスタンスを生成するために用いることができるAPIコネクタに関連したいかなる情報も、例えば、リソースモデル情報(例えば、ディスク空間、メールボックス、ドメインなどのような、提供されるサービス)、提供チャネルを確立するための証明書、サービスプラン情報(例えば、ブローカー/プロバイダのための支払い請求規則)、リソース情報を含むことができる。
【0052】
ブロック412において、デベロッパーポータルコンピューティングデバイス116は、要求された情報が(例えば、デベロッパーUIポータル118を経由して)受け取られたかどうか決定する。もしそうであれば、方法400は、ブロック414へ進む。デベロッパーポータルコンピューティングデバイス116は、受け取った情報を(例えば、
図3のモデルデータベース302に)格納する。ブロック416において、デベロッパーポータルコンピューティングデバイス116は、エキスパートシステム(例えば、
図3のエキスパートシステム318)に通知して、バージョン分析を実行する(例えば、
図5の方法500参照)。換言すれば、デベロッパーポータルコンピューティングデバイス116は、エキスパートシステムに通知して、コネクタオブジェクトの以前のバージョンである可能性があるコネクタのために既存のコネクタを(例えば、
図1のコネクタハブ106の利用できるサービスデータベース110において)分析する。ブロック418において、デベロッパーポータルコンピューティングデバイス116は、バージョン分析が完了したかどうか決定する。例えば、それは、バージョン分析を実行すると共にタスクを与えられるエキスパートシステムから表示を受け取ると決定できる。
【0053】
デベロッパーポータルコンピューティングデバイス116が、バージョン分析が完了したと決定する場合、方法400は、
図4Bに示されるブロック420へ進む。ブロック420において、デベロッパーポータルコンピューティングデバイス116は、ブロック404において、コネクタデベロッパーにより選択される関連するコネクタスケルトンに基づいて、コネクタデベロッパーから(例えば、デベロッパーUIポータル118を経由して)コネクタオブジェクトのリソースタイプを受け取ることを要求する。ブロック422において、デベロッパーポータルコンピューティングデバイス116は、要求したリソースタイプが受け取られたかどうか決定する。もしそうであれば、方法400は、ブロック424へ進む。デベロッパーポータルコンピューティングデバイス116は、受け取ったリソースタイプをモデルデータベースに(例えば、
図3のモデルデータベース302に)格納する。
【0054】
ブロック426において、デベロッパーポータルコンピューティングデバイス116は、エキスパートシステム(例えば、エキスパートシステム318)に通知して、関係分析を実行する(例えば、
図6の方法600参照)。換言すれば、デベロッパーポータルコンピューティングデバイス116は、エキスパートシステムに通知して、可能なサービスがコネクタオブジェクトのサービスに関係するために生成されているコネクタオブジェクトを分析する。ブロック428において、デベロッパーポータルコンピューティングデバイス116は、関係分析が完了したかどうか決定する。もしそうであれば、方法400は、ブロック430へ分岐する。デベロッパーポータルコンピューティングデバイス116は、ブロック418において、エキスパートシステム318からの受け取った情報に基づいて、コネクタオブジェクトが以前に公開されたコネクタオブジェクトの一つ以上の対応するバージョンを有するかどうか決定する。もしそうであれば、方法400は、ブロック450へ分岐する。それは
図4Dに示されて、後述する。さもなければ、方法400は、ブロック432へ分岐する。それは
図4Cに示される。
【0055】
ブロック432において、デベロッパーポータルコンピューティングデバイス116は、サービスモデルの機能としてコネクタをビルドする。そのために、ブロック434において、デベロッパーポータルコンピューティングデバイス116は、ブロック406において生成する関連するコネクタモデル識別子を検索する。加えて、ブロック436において、デベロッパーポータルコンピューティングデバイス116は、関連するモデルリソースを検索する。更に、ブロック438において、デベロッパーポータルコンピューティングデバイス116は、フロントエンドテンプレート(例えば、既知のシナリオのためのユーザインターフェイス)を検索する。さらに、ブロック440において、デベロッパーポータルコンピューティングデバイス116は、検索された関連するモデルリソースおよびフロントエンドテンプレートに基づいてマニフェストを設計する。
【0056】
ブロック442において、デベロッパーポータルコンピューティングデバイス116は、コネクタがうまくビルドされたかどうか決定する。そうでない場合には、方法400は、ブロック408に戻って、付加的なおよび/または代替のコネクタ記述情報を要求する。さもなければ、方法400は、ブロック444へ進む。ブロック444において、デベロッパーポータルコンピューティングデバイス116は、モデルに基づいてコネクタパッケージを生成する。ブロック446において、デベロッパーポータルコンピューティングデバイス116は、コネクタパッケージを(例えば、
図1のコネクタハブ106の利用できるサービスデータベース110に)格納する。ブロック448において、デベロッパーポータルコンピューティングデバイス116は、コネクタパッケージが格納されたことを示す表示をコネクタデベロッパーに伝送する。
【0057】
上で記載されているように、ブロック430(
図4Bに示す)において、デベロッパーポータルコンピューティングデバイス116が、コネクタオブジェクトが何か前に公開されたバージョンを有すると決定する場合、方法400は、ブロック450へ分岐する。それは
図4Dに示される。ブロック450において、デベロッパーポータルコンピューティングデバイス116は、サービスモデルの機能としてコネクタをビルドする。そのために、ブロック452において、デベロッパーポータルコンピューティングデバイス116は、ブロック406において生成する関連するコネクタモデル識別子を検索する。加えて、ブロック454において、デベロッパーポータルコンピューティングデバイス116は、関連するモデルリソースを検索する。更に、ブロック456において、デベロッパーポータルコンピューティングデバイス116は、コネクタになされるアップグレード/変更のための下位互換性を確実にするために、リソースをいかなる適用できる互換性規則とも照合する。上記したように、提案されたアップグレードが、互換性規則に対してテストされることができるので(例えば、互換性規則データベース308に格納できるように)、互換性規則は、自動アップグレードが実行されるのを可能にする機能を提供する。さらに、ブロック458において、デベロッパーポータルコンピューティングデバイス116は、フロントエンドテンプレート(例えば、既知のシナリオのためのユーザインターフェイス)を検索する。それでも、さらに、ブロック460において、デベロッパーポータルコンピューティングデバイス116は、検索された関連するモデルリソースおよびフロントエンドテンプレートに基づいて、マニフェストを設計する。
【0058】
ブロック462において、デベロッパーポータルコンピューティングデバイス116は、(例えば、リソースがあらゆる互換性規則に違反する場合)コネクタがうまくビルドされたかどうか決定する。そうでない場合には、方法400は、ブロック408に戻って、付加的なおよび/または代替のコネクタ記述情報を要求する。さもなければ、方法400は、ブロック464へ進む。ブロック464において、デベロッパーポータルコンピューティングデバイス116は、以前のコネクタバージョンと現在のコネクタバージョンのモデルのいかなる差も決定する。ブロック466において、デベロッパーポータルコンピューティングデバイス116は、ブロック464において決定された差に基づいて、一つ以上のアップグレード命令を生成する。上記したように、アップグレード命令は、追跡されてコネクタのアップグレードされたバージョンに適用できるいかなるモデル変更も含むことができる。
【0059】
ブロック468において、デベロッパーポータルコンピューティングデバイス116は、モデルおよびアップグレード命令に基づいてコネクタパッケージを生成する。ブロック470において、デベロッパーポータルコンピューティングデバイス116は、コネクタパッケージを(例えば、
図1のコネクタハブ106の利用できるサービスデータベース110に)格納する。ブロック472において、デベロッパーポータルコンピューティングデバイス116は、コネクタパッケージが格納されたことを示す表示をコネクタデベロッパーに伝送する。
【0060】
ここで
図5を参照すると、例示的方法500は、デベロッパーポータルコンピューティングデバイス116によって、またはより詳細には、デベロッパーポータルコンピューティングデバイス116のエキスパートシステム318によって実行できるコネクタオブジェクトに関するバージョン分析を実行するために提供される。方法500は、ブロック502において始まる。エキスパートシステム318は、バージョン分析通知が(例えば、
図1および3のデベロッパーUIポータル118を経由してデベロッパーから)受け取ったかどうか決定する。
【0061】
ブロック504において、エキスパートシステム318は、例えば、関連するモデル(例えば、
図3のモデルデータベース302に格納されるリソースモデル情報)から決定できる、
図1のコネクタハブ106の利用できるサービスデータベース110に現在格納されているコネクタパッケージの対応する情報に対して生成されている現在のコネクタオブジェクトのコネクタ記述情報を比較する。上記したように、コネクタ記述情報は、APIコネクタのインスタンスを生成するために用いることができるAPIコネクタに関連したいかなる情報も含むことができる。例示的な実施例において、ブロック506で、エキスパートシステム318は、各コネクタオブジェクトのサービスタイプ、サービス名、およびサービスアイコンを比較する。
【0062】
ブロック508において、エキスパートシステム318は、ブロック504において実行される比較の結果の機能としてコネクタオブジェクトの間の一致のレベルを決定する。ブロック510において、エキスパートシステム318は、ブロック508において決定された一致レベルが一致レベル閾値以上かどうか決定する。一致レベルは、各コネクタオブジェクトの情報(例えば、サービスタイプ、サービス名、サービスアイコンなど)の間の一致のレベルを伝達するために使用可能ないかなる数値(例えば、量、数量、カウンタ値、パーセンテージなど)でもありえる。したがって、一致レベル閾値は、一致レベルが、コネクタオブジェクトが関連する(すなわち、一方は、他方の以前のバージョンである)と合理的に決定できるように十分に高いかどうか決定するために、一致レベルに対して比較するために使用可能ないかなる対応する量としても規定できる。
【0063】
エキスパートシステム318が、一致レベルが一致レベル閾値以上であると決定する場合、方法500は、ブロック514へ進む前にブロック512へ分岐する。ブロック512において、エキスパートシステム318は、そのコネクタオブジェクトの新しいバージョンとして現在のコネクタオブジェクトを前に公開されたコネクタと関連づける。エキスパートシステム318が、一致レベルが一致レベル閾値より小さいと決定する場合、方法500は、ブロック514へ分岐する。エキスパートシステム318は、エキスパートシステムがバージョン分析を完了したことを示す表示をコネクタビルダー(例えば、
図3のコネクタビルダー304)に伝達する。ブロック516において、エキスパートシステム318は、適用できるように(すなわち、関係がブロック512で生じた場合)、コネクタオブジェクトの以前のバージョンの識別子を伝達する。
【0064】
ここで
図6を参照すると、例示的方法600は、デベロッパーポータルコンピューティングデバイス116によって、またはより詳細には、デベロッパーポータルコンピューティングデバイス116のエキスパートシステム318によって実行できるコネクタオブジェクトに関する組合せ分析を実行するために提供される。方法600は、ブロック602において始まる。エキスパートシステム318は、関係分析通知が(例えば、
図1および3のデベロッパーUIポータル118を経由してデベロッパーから)受け取られたかどうか決定する。ブロック604において、エキスパートシステム318は、現在のコネクタオブジェクトに関連がありえるその他のサービスを識別する。そのために、ブロック606において、エキスパートシステム318は、コネクタハブ106の利用できるサービスデータベース110に格納したそれらのコネクタパッケージに関する情報、例えば、それらのそれぞれのコネクタリソースタイプに基づいて他のサービスを識別できる。
【0065】
ブロック608において、エキスパートシステム318は、コネクタデベロッパーを促して、コネクタにリンクされるいかなる既存のおよび/または識別されたサービスに対する識別された関係も受け入れる。ブロック610において、エキスパートシステム318は、関係を受け入れたかどうか決定する。いくつかの実施形態において、識別された関係の全てが受け入れられるか、またはいずれも受け入れられないことがありえることを理解すべきである。いくつかの実施形態において、デベロッパーは、関係を受け入れるように促されることができないことを更に理解すべきである。換言すれば、この種の実施形態では、関係は、識別されて、自動的に関連づけられることが可能である。そうすると、方法600は、ブロック604からブロック612へ直接進む。識別された関係のいずれかが、ブロック610において受け入れられる場合、方法600は、ブロック614へ進む前にブロック612へ進む。ブロック612において、エキスパートシステム318は、関係を確認するために、表示を受け入れるサービスと関連したコネクタオーナーの各々に伝送する。さもなければ、識別された関係のいずれも、ブロック610に受け入れられなった場合、方法600は、ブロック614へ進む。エキスパートシステム318は、エキスパートシステムが関係分析を完了したことを示す表示をコネクタビルダー(例えば、
図3のコネクタビルダー304)に伝送する。
【0066】
本開示が例示されて、図面および前記の説明において詳述されたが、それは例示的であり、特徴において限定的でないと考えるべきであり、特定の実施形態だけが示されて説明されたこと、そして本開示の精神の範囲に入るすべての改変と変更態様が保護することが望ましいことが理解される。