(57)【要約】クラウドサービス仲介システムの統合コネクタを生成して分散する技術は、マーケットプレースコンピューティングのコネクタハブに通信で接続するデベロッパーポータルコンピューティングデバイスを含む。デベロッパーポータルコンピューティングデバイスは、デベロッパーポータルコンピューティングデバイスのデベロッパーＵＩポータルを経由してデベロッパーから情報を受信するように構成される。この種の情報は、クラウドサービスおよびコネクタの一つ以上のリソースタイプと関連したコネクタのコネクタ記述情報を含む。デベロッパーポータルコンピューティングデバイスは、デベロッパーポータルコンピューティングデバイスのコネクタビルダーによって、コネクタ記述情報および一つ以上のリソースタイプの関数としてコネクタをビルドし、ビルドされたコネクタ用のコネクタパッケージを生成して、生成されたコネクタパッケージをクラウドサービスマーケットプレースコンピューティングデバイスのコネクタハブに伝送するように更に構成される。コネクタパッケージは、コネクタの一つ以上のインスタンスを生成するために使用可能である。付加的な実施形態が本願明細書に記載される。
2020516989.tif 000002
【特許請求の範囲】
【請求項１】
クラウドサービス仲介システムのクラウドサービス統合コネクタを生成して分散する方法であって、
デベロッパーポータルコンピューティングデバイスのデベロッパーＵＩポータルを経由してデベロッパーから、クラウドサービスと関連したコネクタのコネクタ記述情報を受信するステップと、
前記デベロッパーＵＩポータルを経由して前記デベロッパーから、前記コネクタのモデルの一つ以上のリソースタイプを受信するステップと、
前記デベロッパーポータルコンピューティングデバイスのコネクタビルダーを経由して、前記コネクタ記述情報および前記一つ以上のリソースタイプの関数としてコネクタをビルドするステップと、
前記コネクタビルダーによって、前記ビルドされたコネクタのコネクタパッケージを生成するステップと、
前記コネクタビルダーによって、前記生成されたコネクタパッケージをクラウドサービスマーケットプレースコンピューティングデバイスのコネクタハブに伝送するステップであって、前記コネクタパッケージは、前記コネクタの一つ以上のインスタンスを生成するために使用可能であるステップと、
を含む方法。
【請求項２】
前記デベロッパーポータルコンピューティングデバイスのエキスパートシステムによって、前記クラウドサービスと関連した前記コネクタの以前のバージョンが公開されたかどうかについて分析するステップと、
前記エキスパートシステムによって、そして前記コネクタの前記以前のバージョンが公開されたという決定の後に、前記コネクタと前記コネクタの前記以前のバージョンの間の一致レベルを決定するステップと、
前記エキスパートシステムによって、前記一致レベルを一致レベル閾値に対して比較するステップと、
前記エキスパートシステムによって、前記コネクタの前記以前のバージョンの新しいバージョンとして前記コネクタを前記コネクタの前記以前のバージョンと関連づけるステップと、
を更に含む請求項１に記載の方法。
【請求項３】
前記デベロッパーポータルコンピューティングデバイスの前記エキスパートシステムによって、別のサービスが前記コネクタに関連するはずであるかどうか分析するステップと、
前記エキスパートシステムによって、一つ以上の他のサービスが前記コネクタに関連することがありえるかどうか識別するステップと、
前記エキスパートシステムによって、そして前記一つ以上の他のサービスが前記コネクタに関連がありえると識別した後に、前記一つ以上の他のサービスを関連づけるステップと、
を更に含む請求項１に記載の方法。
【請求項４】
前記デベロッパーＵＩポータルを経由して前記デベロッパーから、前記デベロッパーポータルコンピューティングデバイスのコネクタスケルトンデータベースからのコネクタスケルトンと関連した識別子を受信するステップを更に含み、前記コネクタスケルトンは、前記コネクタを生成するためのフレームワークを生成するために使用可能であり、そして前記コネクタの前記一つ以上のリソースタイプを受信するステップは、前記コネクタスケルトンに基づいて前記コネクタの前記一つ以上のリソースタイプを受信することを含む請求項１に記載の方法。
【請求項５】
前記コネクタ記述情報を受信するステップは、前記サービスの表題、前記サービスのタイプ、前記サービスと関連したアイコン、および一つ以上のサービスプロバイダ命令を受信することを含む請求項１に記載の方法。
【請求項６】
前記コネクタビルダーによって、前記コネクタと前記コネクタの前記以前のバージョンの一つ以上の差を決定するステップと、
前記コネクタビルダーによって、前記決定された一つ以上の差の関数として一つ以上のアップグレード命令を生成するステップと、
を更に含み、
前記コネクタパッケージを生成するステップは、前記一つ以上のアップグレード命令の関数として前記コネクタパッケージを生成することを含む請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この特許出願は、２０１７年４月１４日出願の米国特許出願第６２／４８５,６６５号の優先権を主張し、本明細書にその開示内容を参照によって援用する。
【０００２】
この開示の実施形態は、クラウドサービス仲介、より詳細には、クラウドサービス仲介システムの統合コネクタを生成して分散する技術に関する。
【背景技術】
【０００３】
独立ソフトウェアベンダー（ＩＳＶ）は、一つ以上のコンピュータハードウェアまたはオペレーティングシステムプラットフォームで動作するように通常は設計されるソフトウェアアプリケーションを開発して、販売する。この種のソフトウェアアプリケーションは、基本的なユーティリティまたは生産性強化アプリケーションから企業用の事業プロセスアプリケーション（例えば、顧客関係管理（ＣＲＭ）、企業資源計画（ＥＲＰ）、自動化ツールなど）にわたる。クラウドコンピューティングが、より普及するようになったので、ソフトウェアを引き渡すそのような方法は、サービスとしてのソフトウェア（ＳａａＳ）ベースのモデルを使用してクラウドにより行われた。この引渡し方法を使用して、ＩＳＶは、パブリッククラウドまたはクラウドマーケットプレースを通じてそれらのソフトウェアアプリケーション、またはそれらのソフトウェアアプリケーションの会費を販売できる。
【０００４】
クラウドマーケットプレースが、顧客アクセスのためのオンライン店頭をクラウドベースのサービスおよびソフトウェアアプリケーションに提供するのに対して、クラウドサービスブローカーは、例えば、各クラウドサービスのためのプラグインまたはＡＰＩコネクタを用いて、ＩＳＶとエンドユーザ、再販業者、小売業者などの間の取引を容易にするために用いることができる。従来のクラウドサービスブローカー実施態様において、各クラウドサービスブローカーは、通常は、クラウドサービスブローカークセスをプラットフォームおよび／またはインフラストラクチャに提供するクラウドサービス毎に各ＩＳＶと契約する。それは、ＡＰＩコネクタを生成して管理するために（例えば、ポータルを経由して）アクセスすることができて、それによって、それらのサービスがクラウドにおいて購入されて、提供されて、実行されることを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常は、この種のＡＰＩコネクタは、クラウドサービスブローカーの側から、店内（すなわち、プロバイダ側）で、またはクラウドで（例えば、クラウドサービスブローカーの口座の下で）マーケットプレースに出される。このように、各クラウドサービスブローカープラットフォームインスタンスは、クラウドサービスブローカープラットフォームが提供するために同調するサービス毎にそれ自体のＡＰＩコネクタを有する。しかしながら、この種の手動式実施は、通常は、多数のＡＰＩ方法および少数のユーザインターフェイス統合点を必要とし、それはＩＳＶがそれらのサービスをそれぞれのクラウドサービスブローカープラットフォームに統合するためのより長いリリース時間に結果としてなりえる。従って、クラウドサービス仲介システムの統合コネクタを生成して分散する必要がある。
【課題を解決するための手段】
【０００６】
一つの態様において、クラウドサービス仲介システムのクラウドサービス統合コネクタを生成して分散する方法。方法は、デベロッパーポータルコンピューティングデバイスのデベロッパーＵＩポータルを経由してデベロッパーから、クラウドサービスと関連したコネクタのコネクタ記述子情報を受信するステップと、デベロッパーＵＩポータルを経由してデベロッパーから、コネクタの一つ以上のリソースタイプを受信するステップと、デベロッパーポータルコンピューティングデバイスのコネクタビルダーによって、コネクタ記述子情報および一つ以上のリソースタイプの関数としてコネクタをビルドするステップと、コネクタビルダーによって、ビルドされたコネクタ用のコネクタパッケージを生成するステップと、コネクタビルダーによって生成されたコネクタパッケージをクラウドサービスマーケットプレースコンピューティングデバイスに伝送するステップであって、コネクタパッケージは、コネクタの一つ以上のインスタンスを生成するために使用可能であるステップとを含む。
【０００７】
いくつかの実施形態において、方法は、デベロッパーポータルコンピューティングデバイスのエキスパートシステムによって、クラウドサービスと関連したコネクタの以前のバージョンが公開されたかどうかについて分析するステップと、エキスパートシステムによって、そしてコネクタの以前のバージョンが公開されたという決定の後に、コネクタとコネクタの以前のバージョンの間の一致レベルを決定するステップと、エキスパートシステムによって、一致レベル閾値に対して一致レベルを比較するステップと、エキスパートシステムによって、コネクタの以前のバージョンの新しいバージョンとしてコネクタをコネクタの以前のバージョンと関連づけるステップとを更に含む。
【０００８】
いくつかの実施形態において、方法は、デベロッパーポータルコンピューティングデバイスのエキスパートシステムによって、別のサービスがコネクタに関連するはずであるかどうかについて分析するステップと、エキスパートシステムによって、一つ以上の他のサービスがコネクタに関連がありえるかどうか識別するステップと、エキスパートシステムによって、そして一つ以上の他のサービスがコネクタに関連がありえると識別した後に、一つ以上の他のサービスを関連づけるステップとを加えて含む。
【０００９】
いくつかの実施形態において、方法は、デベロッパーＵＩポータルを経由してデベロッパーから、デベロッパーポータルコンピューティングデバイスのコネクタスケルトンデータベースからコネクタスケルトンに関連した識別子を受信するステップを更に含み、コネクタスケルトンは、コネクタを生成するためのフレームワークを生成するために使用可能であり、そしてコネクタの一つ以上のリソースタイプを受信するステップは、コネクタスケルトンに基づいてコネクタの一つ以上のリソースタイプを受信することを含む。
【００１０】
いくつかの実施形態において、コネクタ記述子情報を受信するステップは、サービスの表題、サービスのタイプ、サービスと関連したアイコン、および一つ以上のサービスプロバイダ命令を受信することを含む。加えて、または代わりに、いくつかの実施形態において、方法は、コネクタビルダーによって、コネクタとコネクタの以前のバージョンの間の一つ以上の差を決定するステップと、コネクタビルダーによって、決定された一つ以上の差関数として一つ以上のアップグレード命令を生成するステップとを更に含み、コネクタパッケージを生成するステップは、一つ以上のアップグレード命令の関数としてコネクタパッケージを生成することを含む。
【００１１】
実施形態ならびに本願明細書に含まれる他の特徴、利点、および開示、ならびにそれらを達成する方法は、明らかになり、そして本開示は、添付図面に関連してなされる本開示のさまざまな例示的実施形態の以下の説明を参照することでよりよく理解される。
【図面の簡単な説明】
【００１２】
【図１】ブローカーコンピューティングデバイス、サービスプロバイダコンピューティングデバイス、およびデベロッパーポータルコンピューティングデバイスを含み、それらの各々はマーケットプレースコンピューティングデバイスに通信で接続するクラウドサービス仲介システムにおいて統合コネクタを生成して分散するクラウドサービスマーケットプレースおよび仲介システムの例示的実施形態のブロック図である。
【図２】図１のマーケットプレースコンピューティングデバイスのクラウドサービスブローカーマーケットプレースのコンピューティングデバイスの一つの例示的実施形態のブロック図である。
【図３】図１のデベロッパーポータルコンピューティングデバイスの例示的環境のブロック図である。
【図４Ａ−４Ｄ】図１のデベロッパーポータルコンピューティングデバイスによって実行できるクラウドサービス仲介システムにおいて統合コネクタを生成して分散する例示的方法の略フロー図である。
【図５】図１のデベロッパーポータルコンピューティングデバイスによって実行できるコネクタオブジェクトにバージョン分析を実行する例示的方法の略フロー図である。
【図６】図１のデベロッパーポータルコンピューティングデバイスによって実行できるコネクタオブジェクトにペアリング分析を実行する別の例示的方法の略フロー図である。
【発明を実施するための形態】
【００１３】
本開示の原理の理解を促進するために、ここで図面に示される実施形態を参照して、それを説明するために特定の言語を用いる。本開示の範囲の限定がそれにより意図されないことがそれでも理解される。
【００１４】
図１は、統合コネクタを生成して分散するクラウドサービスマーケットプレースおよび仲介システム１００を示す。クラウドサービスマーケットプレースおよび仲介システム１００は、デベロッパーポータルコンピューティングデバイス１１６、サービスプロバイダコンピューティングデバイス１２２、およびブローカーコンピューティングデバイス１３０を含み、それらの各々は、マーケットプレースコンピューティングデバイス１０２に（例えば、ネットワーク１２８を経由して）通信で接続する。使用中、クラウドサービスプロバイダと関連したクラウドサービスアプリケーションデベロッパー／プログラマーは、アプリケーションプログラミングインターフェイス（ＡＰＩ）（例えば、図１のＡＰＩ１２６参照）および一つ以上のクラウドサービス用のＡＰＩコネクタを開発する。
【００１５】
ＡＰＩコネクタを開発するために、デベロッパーは、特定のサービスをクラウドサービスマーケットプレースで（例えば、マーケットプレースコンピューティングデバイス１０２のクラウドサービスブローカーマーケットプレース１０４を経由して）売りに出すために、デベロッパーポータル（例えば、デベロッパーポータルコンピューティングデバイス１１６のデベロッパーユーザインターフェイス（ＵＩ）ポータル１１８）を使用する。デベロッパーが、デベロッパーポータルコンピューティングデバイス１１６に（例えば、ネットワーク１２８を経由して）通信で接続するエンドポイントコンピューティングデバイス（図示せず）を経由してデベロッパーＵＩポータル１１８にアクセスすることができることを理解すべきである。
【００１６】
ＡＰＩコネクタは、そのそれぞれのＡＰＩ１２６と通信するために使用可能である、そのＡＰＩコネクタの複写されたインスタンス（例えば、図１のコネクタファクトリー１１２に対応するＡＰＩコネクタインスタンス１１４参照）を生成するために使用可能なソースコードの形でありえる。したがって、各ＡＰＩ１２６は、クラウドサービスから（例えば、サービスプロバイダコンピューティングデバイス１２２のクラウドサービスプロバイダインターフェイス１２４を経由して）コマンドを受信して、受信したコマンドをＡＰＩ１２６が接続される対応するＡＰＩコネクタインスタンス１１４に送信するように、そしてその逆も同様に構成される。
【００１７】
デベロッパーポータルは、コネクタパッケージの主要構成要素、例えば、モデル（例えば、アプリケーションオブジェクトのためのビジネスモデルの説明）、ユーザインタラクションをサポートするユーザインターフェイス、およびコネクタのバックエンド（例えば、処理プロビジョニング、管理、要求監視などのための表象状態転送（ＲＥＳＴ）サービス）を規定するために使用可能であるデベロッパーからの入力を受信するように構成される。デベロッパーポータルは、コネクタと関連した付加的情報、例えば、クラウドサービスアドレス、省略時設定、価格設定情報、販売テンプレート、クラウドサービスの識別子などを受信するように構成されることができることを理解すべきである。
【００１８】
デベロッパーポータルは、下記に更に詳述するように、コネクタパッケージを生成し、生成されたコネクタパッケージをテストして、テストされたコネクタパッケージをコネクタカタログ（例えば、マーケットプレースコンピューティングデバイス１０２のコネクタハブ１０６の利用できるサービスデータベース１１０）に公開するように加えて構成される。開発段階の後に、コネクタパッケージは、生産段階へ進むことができて、コネクタは、（例えば、ブローカーコンピューティングデバイス１３０のクラウドサービスブローカーインターフェイス１３２を経由してクラウドサービスブローカーマーケットプレース１０４を通って）クラウドサービスブローカーに配置できる。
【００１９】
マーケットプレースコンピューティングデバイス１０２は、クラウドサービスプロバイダとクラウドサービスブローカーとの間のさまざまなクラウドサービスに対するライセンスを管理するように構成される。例示的な実施例において、クラウドサービスプロバイダ（例えば、独立ソフトウェアベンダー（ＩＳＶ）は、エンドユーザへのライセンスの販売を容易にするために、クラウドサービスマーケットプレースの制御実体と契約する。ライセンスは、それから、そのエンドユーザ、またはそれに関連する他のエンドユーザのクラウドサービスプロバイダのクラウドサービス（例えば、ソフトウェア（ＳａａＳ）アプリケーションとしてのクラウドベースのサービス）への確かなアクセスを可能にすることができる。
【００２０】
そのために、例示的なマーケットプレースコンピューティングデバイス１０２は、デベロッパーＵＩポータル１１８によって生成するパッケージ化コネクタを（例えば、利用できるサービスデータベース１１０に）格納して、サービスプロバイダコンピューティングデバイス１２２のクラウドサービスプロバイダインターフェイス１２４とブローカーコンピューティングデバイス１３０のクラウドサービスブローカーインターフェイス１３２の間にコネクタファクトリー１１２のコネクタ１１４の提供チャネルを確立するように構成されるコネクタハブ１０６を含む。したがって、クラウドサービスブローカーは、それから、それらのそれぞれのクラウドサービスブローカーインターフェイス１３２を経由してパッケージ化コネクタと関連したクラウドサービスのためのライセンスをエンドユーザ（例えば、顧客、ブローカー、再販業者など）に販売できる。
【００２１】
コネクタハブ１０６は、コネクタ１１４毎に提供チャネル証明書（例えば、証明書データベース１０８に格納できるような、ブローカー証明書および／またはクラウドサービスプロバイダ証明書）を生成するように加えて構成される。提供チャネル証明書は、提供チャネル証明書を使用して２つの実体の間の安全な通信チャネルを認証するために使用可能であるいかなるタイプの情報（例えば、暗号キーまたは他の任意のデータ）であってもよいことを理解すべきである。
【００２２】
例示的なクラウドサービスマーケットプレースおよび仲介システム１００に示すように、マーケットプレースコンピューティングデバイス１０２、デベロッパーポータルコンピューティングデバイス１１６、サービスプロバイダコンピューティングデバイス１２２、およびブローカーコンピューティングデバイス１３０の各々は、コンピューティングデバイス１３４として実施される。したがって、それぞれのコンピューティングデバイス１３４の各々は、本願明細書に記載されている機能を実行できるいかなるタイプの計算および／または記憶装置としても実施できることを理解すべきである。加えて、それぞれのコンピューティングデバイス１３４の各々は、複数のコンピューティングデバイス１３４から成ることができると更に理解すべきである。例えば、コンピューティングデバイス１３４の一つ以上は、一つ以上の（例えば、独立型、ラックマウント式などの）サーバーおよび／またはクラウドアーキテクチャドネットワークまたはデータセンターにおけるコンピュートブレードと（例えば、記憶エリアネットワーク（ＳＡＮ）の）データ記憶装置の組合せとして実施できる。その一方で、他のコンピューティングデバイス１３４の一つ以上は、一つ以上のデスクトップコンピュータ、モバイルコンピューティングデバイス（例えば、スマートフォン、ウェアラブル、タブレット、ラップトップ、ノートブックなど）またはいかなる他のタイプの「スマート」またはインターネット接続した装置としても実施できる。
【００２３】
ここで図２を参照すると、マーケットプレースコンピューティングデバイス１０２、デベロッパーポータルコンピューティングデバイス１１６、サービスプロバイダコンピューティングデバイス１２２、およびブローカーコンピューティングデバイス１３０の一つ以上を表わすコンピューティングデバイス１３４の例示的実施形態が示される。例示的コンピューティングデバイス１３４は、中央演算処理装置（ＣＰＵ）２００、入出力（Ｉ／Ｏ）コントローラ２０２、メモリ２０４、ネットワーク通信回路２０６、およびデータ記憶装置２１０を、ならびに、いくつかの実施形態において、一つ以上のＩ／Ｏ周辺機器２０８を含む。いくつかの実施形態において、例示的な構成要素の一つ以上は、単一集積回路（ＩＣ）において単一システムオンチップ（ＳｏＣ）に組み込むことができる。別の実施形態は、例示的コンピューティングデバイス１３４のそれらに対して追加の、より少ない、そして／または代わりの構成要素、例えば、グラフィックス処理ユニット（ＧＰＵ）、電源などを含むことができて、それらは説明の明快さを維持するために図示されないことを理解すべきである。それぞれのコンピューティングデバイス１３４の記憶／計算構成要素のタイプは、それぞれのコンピューティングデバイス１３４のタイプおよび意図された使用に応じて断定できると更に理解すべきである。
【００２４】
ＣＰＵ２００またはプロセッサは、データを処理できる回路のいかなるタイプのハードウェアまたは組合せとしても実施できる。したがって、ＣＰＵ２００は、単一コアプロセッサアーキテクチャの一つの処理コア（図示せず）またはマルチコアプロセッサアーキテクチャの複数の処理コアを含むことができる。処理コアの数にかかわりなく、ＣＰＵ２００は、プログラム命令を読み込んで、実行できる。いくつかの実施形態において、ＣＰＵ２００は、ＣＰＵ２００と直接集積化されるかまたはＣＰＵ２００に別々の相互接続を有する別々のチップに配置することができるキャッシュメモリ（図示せず）を含むことができる。いくつかの実施形態において、パイプライン論理は、ＣＰＵ２００に出入りするコマンドよりもむしろ、ソフトウェアおよび／またはハードウェア動作（例えば、ネットワークトラフィック処理動作）を実行するために用いることができることを理解すべきである。
【００２５】
Ｉ／Ｏコントローラ２０２またはＩ／Ｏインターフェイスは、入出力装置とコンピュータ１３４とのインターフェイスになりうる、いかなるタイプのコンピュータハードウェアまたは回路の組合せとしても実施できる。実例として、Ｉ／Ｏコントローラ２０２は、ＣＰＵ２００から入出力要求を受信して、それぞれの入力／出力装置に制御信号を送り、それによって、コンピューティングデバイス１３４に出入りするデータフローを管理するように構成される。
【００２６】
メモリ２０４は、処理のためのデータおよび命令を保持できる、いかなるタイプのコンピュータハードウェアまたは回路の組合せとしても実施できる。この種のメモリ２０４は、主または主要なメモリと呼ぶことができる。いくつかの実施形態において、コンピューティングデバイス１３４の一つ以上の構成要素は、メモリへの直接のアクセスを有することができる。そうすると、特定のデータは、ＣＰＵ２００と独立して直接のメモリアクセス（ＤＭＡ）によって格納できることを理解すべきである。
【００２７】
ネットワーク通信回路２０６は、無線および／または有線通信モードによってネットワークインターフェイス通信（例えば、メッセージ、データグラム、パケットなど）を管理できる回路のいかなるタイプのコンピュータハードウェアまたは組合せとしても実施できる。したがって、いくつかの実施形態において、ネットワーク通信回路２０６は、コンピューティングデバイス１３４をコンピュータネットワーク（例えば、ネットワーク１２８）、ならびにクラウドサービスマーケットプレースおよび仲介システム１００の他のコンピューティングデバイスに接続するように構成することができるネットワークインターフェイスコントローラ（ＮＩＣ）を含むことができる。
【００２８】
一つ以上のＩ／Ｏ周辺機器２０８は、コンピューティングデバイス１３４に接続して、それと通信するように構成されるいかなる補助装置としても実施できる。例えば、Ｉ／Ｏ周辺機器２０８は、マウス、キーボード、モニター、タッチスクリーン、プリンター、スキャナー、マイクロホン、スピーカーなどを含むが、これらに限定されない。したがって、いくつかのＩ／Ｏ装置は、一つの機能（すなわち、入力または出力）あるいは両方の機能（すなわち、入力および出力）ができることを理解すべきである。
【００２９】
いくつかの実施形態において、Ｉ／Ｏ周辺機器２０８は、コンピューティングデバイス１３４のケーブル（例えば、リボンケーブル、ワイヤ、汎用シリアルバス（ＵＳＢ）ケーブル、高解像度マルチメディアインタフェース（ＨＤＭＩ（登録商標））ケーブルなど）を経由してコンピューティングデバイス１３４に接続できる。このような実施形態において、ケーブルは、その間でなされる通信をＩ／Ｏコントローラ２０２によって管理できるコンピューティングデバイス１３４の対応するポート（図示せず）に接続している。代わりの実施形態では、Ｉ／Ｏ周辺機器２０８は、ネットワーク通信回路２０６によって管理できる通信の無線モード（例えば、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ（登録商標）など）によってコンピューティングデバイス１３４に接続できる。
【００３０】
データ記憶装置２１０は、データの不揮発性記憶ができるいかなるタイプのコンピュータハードウェア（例えば、半導体記憶媒体、磁気記憶媒体、光記憶媒体など）としても実施できる。この種のデータ記憶装置２１０は、一般に補助または二次記憶装置と呼ばれて、通常は、上記のメモリ２０４と関連して大量のデータを格納するために用いる。
【００３１】
図１に戻って参照すると、例示的クラウドサービスマーケットプレースシステム１００は、マーケットプレースコンピューティングデバイス１０２と通信するために、他のコンピューティングデバイス１３４（すなわち、デベロッパーポータルコンピューティングデバイス１１６、サービスプロバイダコンピューティングデバイス１２２、およびブローカーコンピューティングデバイス１３０）のために使用可能であるネットワーク１２８を含む。ネットワーク１２８は、いかなる有線および／または無線通信技術とネットワーク通信伝送プロトコルも利用する、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、グローバルネットワーク（インターネット）などを含む、いかなるタイプの有線および／または無線ネットワークとしても実施できる。したがって、ネットワーク１２８は、一連の有線および／または無線相互接続を経由してネットワーク通信トラフィックのフローおよび／または処理を容易にするために、一つ以上の通信結合されたネットワークコンピューティングデバイス（図示せず）を含むことができる。この種のネットワークコンピューティングデバイスは、一つ以上のアクセスポイント、ルーター、スイッチ、サーバー、コンピューティングデバイス、記憶装置など含むが、これらに限定されない。
【００３２】
例えば、この種のネットワークコンピューティングデバイスの一つ以上は、有線（例えば、イーサネット（登録商標）、トークンリングなど）を使用するＬＡＮ構成および／または無線（例えば、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ（登録商標）、無線ブロードバンド、ＺｉｇＢｅｅ（登録商標）など）通信技術および関連プロトコルを使用するＷＬＡＮ構成で、マーケティングコンピューティングデバイス１０２、デベロッパーポータルコンピューティングデバイス１１６、サービスプロバイダコンピューティングデバイス１２２、および／またはブローカーコンピューティングデバイス１３０の一つ以上をネットワーク１２８に接続するように構成されることができる。更なる実施例として、ＬＡＮ構成は、ネットワーク１２８の追加ネットワークコンピューティングデバイスを経由して、一つ以上のより大きいエリアネットワーク（例えば、ＷＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットなど）に（例えば、同軸ケーブル、モバイル電話通信、ファイバーなどを経由して）接続できる。ネットワークコンピューティングデバイスおよび／またはネットワーク構成の一つ以上は、仮想化できる（例えば、仮想スイッチ、仮想ＬＡＮなど）ことを理解すべきである。
【００３３】
上記したように、デベロッパーポータルコンピューティングデバイス１１６は、デベロッパーＵＩポータルを含み、サービスプロバイダコンピューティングデバイス１２２は、クラウドサービスプロバイダインターフェイス１２４を含み、そして例示的ブローカーコンピューティングデバイス１３０は、クラウドサービスブローカーインターフェイス１３２を含む。デベロッパーＵＩポータル１１８、クラウドサービスプロバイダインターフェイス１２４、およびクラウドサービスブローカーインターフェイス１３２の各々は、本願明細書に記載されている機能を実行できるソフトウェア、ハードウェア、ファームウェア、および回路のいかなる組合せとしても実施できる。いくつかの実施形態において、デベロッパーＵＩポータル１１８、クラウドサービスプロバイダインターフェイス１２４、およびクラウドサービスブローカーインターフェイス１３２の一つ以上は、情報をそれらのそれぞれのコンピューティングデバイス１３４のディスプレイに（例えば、グラフィカルＵＩ、コマンドラインインターフェイスなどを経由して）与えるように構成されることができる。このような実施形態では、デベロッパーＵＩポータル１１８、クラウドサービスプロバイダインターフェイス１２４、および／またはクラウドサービスブローカーインターフェイス１３２は、ログインするためにユーザから受信した入力を中継し、それぞれのインターフェイスを構成し、またはそれに関連する情報（例えば、設定）を操作するように構成されることができる。
【００３４】
ここで図３を参照すると、デベロッパーポータルコンピューティングデバイス１１６の例示的環境３００が示される。例示的環境３００は、コネクタビルダー３０４、コネクタプレーヤー３１４、試験システム３１６、およびエキスパートシステム３１８、ならびに図１のデベロッパーＵＩポータル１１８を含む。いくつかの実施形態において、デベロッパーＵＩポータル１１８、コネクタビルダー３０４、コネクタプレーヤー３１４、試験システム３１６、およびエキスパートシステム３１８の一つ以上は、そこに格納される命令を有する一つ以上のコンピュータ可読媒体（例えば、メモリ２０４、データ記憶装置２１０、および／またはその他のメディア記憶装置）および一つ以上のコンピュータ可読媒体に接続して本願明細書に記載されている機能を実行するために命令を実行するように構成される一つ以上のプロセッサ（例えば、ＣＰＵ２００）を含むことができる。加えて、例示的環境３００は、モデルデータベース３０２およびライブラリマネージャー３０６を含み、それらの各々は下記に詳述される。
【００３５】
上記したように、デベロッパーＵＩポータル１１８は、本願明細書に記載されている機能を実行できるいかなるタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとしても実施できる。加えて、コネクタビルダー３０４、コネクタプレーヤー３１４、試験システム３１６、およびエキスパートシステム３１８の各々は、本願明細書に記載されているそれぞれの機能を実行できるいかなるタイプのファームウェア、ハードウェア、ソフトウェア、回路、またはそれらの組み合わせとしても実施できる。
【００３６】
以前にも述べたように、デベロッパーＵＩポータル１１８は、デベロッパーがクラウドサービスのためのパッケージ化されたＡＰＩコネクタを生成するために、インターフェイスを提供するように構成される。そのために、デベロッパーＵＩポータル１１８は、デベロッパーと（例えば、ハイパーテキスト伝送プロトコル（ＨＴＴＰ）要求／応答によって）通信して、環境３００のさまざまな構成要素および記憶媒体にインターフェイスするように構成される。
【００３７】
例えば、デベロッパーＵＩポータル１１８は、デベロッパーと通信して、デベロッパーにより開発されるＡＰＩコネクタをパッケージ化するために使用可能な情報（すなわち、コネクタ記述情報）を受信するように構成される。上記したように、ＡＰＩコネクタは、クラウドサービスブローカーとクラウドサービスプロバイダの間のインターフェイスを可能にするコネクタのインスタンスを生成するために使用可能である。このように、コネクタ記述情報は、ＡＰＩコネクタのインスタンスを生成するために用いることができるＡＰＩコネクタに関連した、いかなる情報も含むことができる。例えば、コネクタ記述情報は、ＵＩ情報（例えば、サービスの表題、一つ以上のアイコンなど）、リソースモデル情報（例えば、ディスク空間、メールボックス、ドメインなどのような提供されるサービス）、提供チャネルを確立するための証明書、サービスプラン情報（例えば、ブローカー／プロバイダに対する課金規則）、リソース情報を含むが、これらに限定されないことがありえる。コネクタ記述情報は、モデルデータベース３０２に格納できる。
【００３８】
デベロッパーは、コネクタ記述情報のいかなる部分もデベロッパーＵＩポータル１１８によって（例えば、モデルデータベース３０２に格納できるように）変更できることを理解すべきである。そのために、デベロッパーＵＩポータル１１８は、コネクタになされるアップグレード／変更のための下位互換性を確実にするために、コネクタのモデルを生成し、そして／またはコネクタを（例えば、コネクタビルダー３０４によって）表示し、開発されたコネクタに対して試験システムで一つ以上の試験を（例えば、コネクタプレーヤー３１４および試験システム３１６によって）実行して、一つ以上の互換性規則に対してコネクタを（例えば、エキスパートシステム３１８によって）検査するために、デベロッパーによって使用可能な一つ以上の視覚的インターフェイスを提供するように構成される。
【００３９】
モデルデータベース３０２は、コネクタ毎にモデルを格納するように構成される。モデルは、コネクタを規定するか、または、パッケージ化するために使用可能ないかなる情報、例えば、ＵＩラベル（例えば、名前、説明など）、視覚素材（例えば、アイコン、スクリーンショット、スタイルなど）、ＵＩ拡張（例えば、ＵＩ要素を既存のアプリケーションにプラグインする方法の説明）、コネクタでサポートされるビジネスオブジェクトの定義（例えば、ユーザ、メールボックス、スパムフィルタリング規則など）も含むことができる。いくつかの実施形態において、ＵＩ拡張の少なくとも一部は、ＨＴＭＬページとして規定することができて、関連したＪａｖａＳｃｒｉｐｔ（登録商標）、ＣＳＳ、画像など、ならびにＵＩ要素を適用できるページ毎にＵＩ構成にプラグインするための説明を含むことを理解すべきである。加えて、モデル情報は、コネクタでサポートされるオブジェクト毎に、一つ以上の特性（例えば、タイプ、説明、ラベル、デフォルト値など）、一つ以上の関係（すなわち、オブジェクトがサービスドメインモデルの他のオブジェクトおよび関係の基数に接続される方法）、および／または使用／制限マッピング（例えば、使用／限度が販売可能な資源および計画にマップされる方法）を含むことができる。いくつかの実施形態において、モデルデータベースは、同じコネクタおよび／または複数のコネクタの複数のバージョンを維持できることを理解すべきである。したがって、複数のバージョンが維持されるこの種の実施形態で、バージョンの差（すなわち、変更）は、（例えば、特定のモデル情報の比較によって）自動的に決定できることを更に理解すべきである。
【００４０】
コネクタビルダー３０４は、コネクタと関連した、すべてのビジネスオブジェクトのためのスキーマファイルを生成するように構成される。そのために、コネクタビルダー３０４は、ビジネスオブジェクトを識別して、スキームファイルを生成するために、コネクタのメタデータ（例えば、コネクタ記述情報）を分析するように構成される。加えて、コネクタビルダー３０４は、コネクタがコネクタの最初のバージョンでない（すなわち、パッケージ化されるコネクタは、アップグレードであるか、または同じサービスのために前にパッケージ化されたコネクタに対する変更を含む）この種の実施形態において、一組のアップグレード命令を生成するように構成される。アップグレード命令は、追跡してコネクタのアップグレードされたバージョンに適用できるいかなるモデル変更も、例えば、コネクタのメタデータの変更、デフォルト値のタイプまたは割当ての範囲に新しい特性の追加、特性の取り除き、特性の名前／タイプの変更、サービス（例えば、アプリケーションドメインモデルの新しいオブジェクト）の追加、他のコネクタの、またはアプリケーションドメインモデルのオブジェクトに対する／間の新規な関係の追加、関係の名前の変更、オプションの関係基数の変更、関係により要求されるタイプの変更、特性アクセス規則の変更、関係アクセスおよび／または割当て規則の変更、規則に従って関係を複数の関係に分割することなどを含むことができる。
【００４１】
コネクタビルダー３０４は、上述の生成されたスキーマをアセンブルして、適用できる場合、コネクタのソースコードとともに命令、およびコネクタパッケージへのフロントエンドテンプレートをアップグレードするように更に構成される。さらにまた、コネクタビルダー３０４は、組み立てられたコネクタパッケージをコネクタのカタログ（すなわち、利用できるサービス）を含むマーケットプレースコンピューティングデバイス１０２の利用できるサービスデータベース１１０にアップロードするように構成される。
【００４２】
ライブラリマネージャー３０６は、例示的データベースの間にデータのフローを管理するように構成されて、それは、互換性規則データベース３０８、コネクタスケルトンデータベース３１０、およびフロントエンドテンプレートデータベース３１２を実例として含む。そのために、ライブラリマネージャー３０６は、データベースの各々における読出しおよび書込み動作、ならびにデータにおいて実行する必要がありえるその他の動作（例えば、データを標準化する、データを正規化する、データを強化するなど）を実行するように構成される。
【００４３】
互換性規則データベース３０８は、バージョニング管理のための規則（すなわち、互換性規則）を格納するように構成される。換言すれば、互換性規則は、バージョンの間の下位互換性を確実にする。例えば、下位互換性が壊れるとき、互換性規則は、変更が販売される資源のタイプになされるのを許さないが、しかしながら、互換性規則は、資源のそのタイプまたは販売される資源の付加的なタイプの構成を拡張することを許容する。このように、提案されたアップグレードが、互換性規則に対して（例えば、コネクタビルダー３０４によって）テストすることができるとき、互換性規則は、自動アップグレードが実行されるのを可能にする機能を提供する。いくつかのセットのこの種の規則がありえることを理解すべきである。例えば、軽微なアップグレードは、完全な下位互換性を維持できる。その一方で、大きなアップグレードは、限られた下位互換性を維持できる。
【００４４】
コネクタスケルトンデータベース３１０は、コネクタ開発のためにモデルおよびベストプラクティスに従って準備されるコードを格納するように構成される。このように、格納されたコードは、コネクタ用のバックエンドの開発のための開始フレームワークとして用いることができる。コードは、デベロッパーにより規定されるモデルに応じてカスタマイズすることができることを理解すべきである。
【００４５】
フロントエンドテンプレートデータベース３１２は、  既知のシナリオのためのユーザインターフェイス（例えば、新しい顧客／口座の作成、顧客の購読を買うこと、購読を無効にすること、購読を終了することなど）を格納するように構成される。したがって、デベロッパーが、既知のシナリオを可能にするときに、そのシナリオに関連するＵＩコードは、フロントエンドテンプレートデータベース３１２からコネクタのＵＩ構成要素に加えることができる。
【００４６】
いくつかの実施形態において、本願明細書に記載されているそれぞれのデータベースに格納されるデータは、互いに排他的でありえないことを理解すべきである。換言すれば、一つのデータベースに格納されるとして本願明細書に記載されている特定のデータは、本願明細書に記載されている別のデータベースまたは別のデータベースに全体として追加して、または代わりに格納できる。いくつかの実施形態において、データは、単一のデータベース、分散データベース、または代わりのデータベース構成に格納できることを更に理解すべきである。
【００４７】
コネクタプレーヤー３１４は、試験システム（例えば、試験システム３１６）に対してコネクタの試験シナリオを実行するように構成される。この種のシナリオは、コネクタを配備する、コネクタインスタンスを生成する、サービステンプレートおよび計画を構成する、購読／ユーザ作成をテストする、反資源の使用を要求するなどを含むことができる。したがって、試験システム３１６は、コネクタのさまざまなシナリオをテストするために使用可能なリソースを提供するように構成される。リソースは、物理的および／または仮想的なリソースでありえることを理解すべきである。
【００４８】
エキスパートシステム３１８は、潜在的組合せサービスを分析して、コネクタと関連したサービスと組み合わされる候補として一つ以上の識別されるサービスを提案するように構成される。そのために、エキスパートシステム３１８は、コネクタと関連した情報（例えば、サービスタイプ、説明など）を識別して、識別した情報を通常は組み合わされる他のサービスの対応する情報と比較するように構成される。例示的な実施例において、エキスパートシステム３１８は、電子メールサービスのためのコネクタで実行した分析の結果に基づいて、反スパムサービスを組み合わせることを提案できる。いかなる関係も、関連するコネクタモデルを変更できることを理解すべきである。
【００４９】
上記したように、デベロッパーポータルコンピューティングデバイス１１６は、一つ以上のコンピューティングデバイス１３４から成ることができる。したがって、デベロッパーＵＩポータル１１８、モデルデータベース３０２、ライブラリマネージャー３０６、コネクタビルダー３０４、コネクタプレーヤー３１４、試験システム３１６、およびエキスパートシステム３１８が、単一のコンピューティングデバイス１３４（すなわち、デベロッパーポータルコンピューティングデバイス１１６）にあるとして実例として示されるが、いくつかの実施形態において、一つ以上の構成要素は、デベロッパーポータルコンピューティングデバイス１１６を一緒に備える、いろいろなコンピューティングデバイス１３４に置くことができることを理解すべきである。
【００５０】
ここで図４Ａ〜４Ｄを参照すると、例示的方法４００は、デベロッパーポータルコンピューティングデバイス１１６によって、またはより詳しくは、デベロッパーポータルコンピューティングデバイス１１６（例えば、デベロッパーＵＩポータル１１８、コネクタビルダー３０４など）の構成要素の一つ以上によって実行できるクラウドサービス仲介システムの統合コネクタを生成して分散するために提供される。方法４００は、ブロック４０２において始まる。デベロッパーポータルコンピューティングデバイス１１６は、コネクタオブジェクトを生成するかどうか決定する。もしそうであれば、方法４００は、ブロック４０４へ進む。デベロッパーポータルコンピューティングデバイス１１６は、関連したコネクタスケルトンを（例えば、図３のコネクタスケルトンデータベース３１０から）選択する。上記したように、コネクタスケルトンは、コネクタ用のバックエンドの開発のための開始フレームワークとして使用可能なコードの形でありえる。
【００５１】
ブロック４０６において、デベロッパーポータルコンピューティングデバイス１１６は、ユニークなコネクタモデル識別子を生成する。ブロック４０８において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタモデルのコネクタ記述情報をコネクタデベロッパーに（例えば、デベロッパーＵＩポータル１１８を経由して）要求する。例示的な実施例において、ブロック４１０で、デベロッパーポータルコンピューティングデバイス１１６は、ＵＩ情報（例えば、サービス表題、サービスタイプ、アイコンなど）および一つ以上のプロバイダ命令を要求する。上記したように、コネクタ記述情報は、ＡＰＩコネクタのインスタンスを生成するために用いることができるＡＰＩコネクタに関連したいかなる情報も、例えば、リソースモデル情報（例えば、ディスク空間、メールボックス、ドメインなどのような、提供されるサービス）、提供チャネルを確立するための証明書、サービスプラン情報（例えば、ブローカー／プロバイダのための支払い請求規則）、リソース情報を含むことができる。
【００５２】
ブロック４１２において、デベロッパーポータルコンピューティングデバイス１１６は、要求された情報が（例えば、デベロッパーＵＩポータル１１８を経由して）受け取られたかどうか決定する。もしそうであれば、方法４００は、ブロック４１４へ進む。デベロッパーポータルコンピューティングデバイス１１６は、受け取った情報を（例えば、図３のモデルデータベース３０２に）格納する。ブロック４１６において、デベロッパーポータルコンピューティングデバイス１１６は、エキスパートシステム（例えば、図３のエキスパートシステム３１８）に通知して、バージョン分析を実行する（例えば、図５の方法５００参照）。換言すれば、デベロッパーポータルコンピューティングデバイス１１６は、エキスパートシステムに通知して、コネクタオブジェクトの以前のバージョンである可能性があるコネクタのために既存のコネクタを（例えば、図１のコネクタハブ１０６の利用できるサービスデータベース１１０において）分析する。ブロック４１８において、デベロッパーポータルコンピューティングデバイス１１６は、バージョン分析が完了したかどうか決定する。例えば、それは、バージョン分析を実行すると共にタスクを与えられるエキスパートシステムから表示を受け取ると決定できる。
【００５３】
デベロッパーポータルコンピューティングデバイス１１６が、バージョン分析が完了したと決定する場合、方法４００は、図４Ｂに示されるブロック４２０へ進む。ブロック４２０において、デベロッパーポータルコンピューティングデバイス１１６は、ブロック４０４において、コネクタデベロッパーにより選択される関連するコネクタスケルトンに基づいて、コネクタデベロッパーから（例えば、デベロッパーＵＩポータル１１８を経由して）コネクタオブジェクトのリソースタイプを受け取ることを要求する。ブロック４２２において、デベロッパーポータルコンピューティングデバイス１１６は、要求したリソースタイプが受け取られたかどうか決定する。もしそうであれば、方法４００は、ブロック４２４へ進む。デベロッパーポータルコンピューティングデバイス１１６は、受け取ったリソースタイプをモデルデータベースに（例えば、図３のモデルデータベース３０２に）格納する。
【００５４】
ブロック４２６において、デベロッパーポータルコンピューティングデバイス１１６は、エキスパートシステム（例えば、エキスパートシステム３１８）に通知して、関係分析を実行する（例えば、図６の方法６００参照）。換言すれば、デベロッパーポータルコンピューティングデバイス１１６は、エキスパートシステムに通知して、可能なサービスがコネクタオブジェクトのサービスに関係するために生成されているコネクタオブジェクトを分析する。ブロック４２８において、デベロッパーポータルコンピューティングデバイス１１６は、関係分析が完了したかどうか決定する。もしそうであれば、方法４００は、ブロック４３０へ分岐する。デベロッパーポータルコンピューティングデバイス１１６は、ブロック４１８において、エキスパートシステム３１８からの受け取った情報に基づいて、コネクタオブジェクトが以前に公開されたコネクタオブジェクトの一つ以上の対応するバージョンを有するかどうか決定する。もしそうであれば、方法４００は、ブロック４５０へ分岐する。それは図４Ｄに示されて、後述する。さもなければ、方法４００は、ブロック４３２へ分岐する。それは図４Ｃに示される。
【００５５】
ブロック４３２において、デベロッパーポータルコンピューティングデバイス１１６は、サービスモデルの機能としてコネクタをビルドする。そのために、ブロック４３４において、デベロッパーポータルコンピューティングデバイス１１６は、ブロック４０６において生成する関連するコネクタモデル識別子を検索する。加えて、ブロック４３６において、デベロッパーポータルコンピューティングデバイス１１６は、関連するモデルリソースを検索する。更に、ブロック４３８において、デベロッパーポータルコンピューティングデバイス１１６は、フロントエンドテンプレート（例えば、既知のシナリオのためのユーザインターフェイス）を検索する。さらに、ブロック４４０において、デベロッパーポータルコンピューティングデバイス１１６は、検索された関連するモデルリソースおよびフロントエンドテンプレートに基づいてマニフェストを設計する。
【００５６】
ブロック４４２において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタがうまくビルドされたかどうか決定する。そうでない場合には、方法４００は、ブロック４０８に戻って、付加的なおよび／または代替のコネクタ記述情報を要求する。さもなければ、方法４００は、ブロック４４４へ進む。ブロック４４４において、デベロッパーポータルコンピューティングデバイス１１６は、モデルに基づいてコネクタパッケージを生成する。ブロック４４６において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタパッケージを（例えば、図１のコネクタハブ１０６の利用できるサービスデータベース１１０に）格納する。ブロック４４８において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタパッケージが格納されたことを示す表示をコネクタデベロッパーに伝送する。
【００５７】
上で記載されているように、ブロック４３０（図４Ｂに示す）において、デベロッパーポータルコンピューティングデバイス１１６が、コネクタオブジェクトが何か前に公開されたバージョンを有すると決定する場合、方法４００は、ブロック４５０へ分岐する。それは図４Ｄに示される。ブロック４５０において、デベロッパーポータルコンピューティングデバイス１１６は、サービスモデルの機能としてコネクタをビルドする。そのために、ブロック４５２において、デベロッパーポータルコンピューティングデバイス１１６は、ブロック４０６において生成する関連するコネクタモデル識別子を検索する。加えて、ブロック４５４において、デベロッパーポータルコンピューティングデバイス１１６は、関連するモデルリソースを検索する。更に、ブロック４５６において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタになされるアップグレード／変更のための下位互換性を確実にするために、リソースをいかなる適用できる互換性規則とも照合する。上記したように、提案されたアップグレードが、互換性規則に対してテストされることができるので（例えば、互換性規則データベース３０８に格納できるように）、互換性規則は、自動アップグレードが実行されるのを可能にする機能を提供する。さらに、ブロック４５８において、デベロッパーポータルコンピューティングデバイス１１６は、フロントエンドテンプレート（例えば、既知のシナリオのためのユーザインターフェイス）を検索する。それでも、さらに、ブロック４６０において、デベロッパーポータルコンピューティングデバイス１１６は、検索された関連するモデルリソースおよびフロントエンドテンプレートに基づいて、マニフェストを設計する。
【００５８】
ブロック４６２において、デベロッパーポータルコンピューティングデバイス１１６は、（例えば、リソースがあらゆる互換性規則に違反する場合）コネクタがうまくビルドされたかどうか決定する。そうでない場合には、方法４００は、ブロック４０８に戻って、付加的なおよび／または代替のコネクタ記述情報を要求する。さもなければ、方法４００は、ブロック４６４へ進む。ブロック４６４において、デベロッパーポータルコンピューティングデバイス１１６は、以前のコネクタバージョンと現在のコネクタバージョンのモデルのいかなる差も決定する。ブロック４６６において、デベロッパーポータルコンピューティングデバイス１１６は、ブロック４６４において決定された差に基づいて、一つ以上のアップグレード命令を生成する。上記したように、アップグレード命令は、追跡されてコネクタのアップグレードされたバージョンに適用できるいかなるモデル変更も含むことができる。
【００５９】
ブロック４６８において、デベロッパーポータルコンピューティングデバイス１１６は、モデルおよびアップグレード命令に基づいてコネクタパッケージを生成する。ブロック４７０において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタパッケージを（例えば、図１のコネクタハブ１０６の利用できるサービスデータベース１１０に）格納する。ブロック４７２において、デベロッパーポータルコンピューティングデバイス１１６は、コネクタパッケージが格納されたことを示す表示をコネクタデベロッパーに伝送する。
【００６０】
ここで図５を参照すると、例示的方法５００は、デベロッパーポータルコンピューティングデバイス１１６によって、またはより詳細には、デベロッパーポータルコンピューティングデバイス１１６のエキスパートシステム３１８によって実行できるコネクタオブジェクトに関するバージョン分析を実行するために提供される。方法５００は、ブロック５０２において始まる。エキスパートシステム３１８は、バージョン分析通知が（例えば、図１および３のデベロッパーＵＩポータル１１８を経由してデベロッパーから）受け取ったかどうか決定する。
【００６１】
ブロック５０４において、エキスパートシステム３１８は、例えば、関連するモデル（例えば、図３のモデルデータベース３０２に格納されるリソースモデル情報）から決定できる、図１のコネクタハブ１０６の利用できるサービスデータベース１１０に現在格納されているコネクタパッケージの対応する情報に対して生成されている現在のコネクタオブジェクトのコネクタ記述情報を比較する。上記したように、コネクタ記述情報は、ＡＰＩコネクタのインスタンスを生成するために用いることができるＡＰＩコネクタに関連したいかなる情報も含むことができる。例示的な実施例において、ブロック５０６で、エキスパートシステム３１８は、各コネクタオブジェクトのサービスタイプ、サービス名、およびサービスアイコンを比較する。
【００６２】
ブロック５０８において、エキスパートシステム３１８は、ブロック５０４において実行される比較の結果の機能としてコネクタオブジェクトの間の一致のレベルを決定する。ブロック５１０において、エキスパートシステム３１８は、ブロック５０８において決定された一致レベルが一致レベル閾値以上かどうか決定する。一致レベルは、各コネクタオブジェクトの情報（例えば、サービスタイプ、サービス名、サービスアイコンなど）の間の一致のレベルを伝達するために使用可能ないかなる数値（例えば、量、数量、カウンタ値、パーセンテージなど）でもありえる。したがって、一致レベル閾値は、一致レベルが、コネクタオブジェクトが関連する（すなわち、一方は、他方の以前のバージョンである）と合理的に決定できるように十分に高いかどうか決定するために、一致レベルに対して比較するために使用可能ないかなる対応する量としても規定できる。
【００６３】
エキスパートシステム３１８が、一致レベルが一致レベル閾値以上であると決定する場合、方法５００は、ブロック５１４へ進む前にブロック５１２へ分岐する。ブロック５１２において、エキスパートシステム３１８は、そのコネクタオブジェクトの新しいバージョンとして現在のコネクタオブジェクトを前に公開されたコネクタと関連づける。エキスパートシステム３１８が、一致レベルが一致レベル閾値より小さいと決定する場合、方法５００は、ブロック５１４へ分岐する。エキスパートシステム３１８は、エキスパートシステムがバージョン分析を完了したことを示す表示をコネクタビルダー（例えば、図３のコネクタビルダー３０４）に伝達する。ブロック５１６において、エキスパートシステム３１８は、適用できるように（すなわち、関係がブロック５１２で生じた場合）、コネクタオブジェクトの以前のバージョンの識別子を伝達する。
【００６４】
ここで図６を参照すると、例示的方法６００は、デベロッパーポータルコンピューティングデバイス１１６によって、またはより詳細には、デベロッパーポータルコンピューティングデバイス１１６のエキスパートシステム３１８によって実行できるコネクタオブジェクトに関する組合せ分析を実行するために提供される。方法６００は、ブロック６０２において始まる。エキスパートシステム３１８は、関係分析通知が（例えば、図１および３のデベロッパーＵＩポータル１１８を経由してデベロッパーから）受け取られたかどうか決定する。ブロック６０４において、エキスパートシステム３１８は、現在のコネクタオブジェクトに関連がありえるその他のサービスを識別する。そのために、ブロック６０６において、エキスパートシステム３１８は、コネクタハブ１０６の利用できるサービスデータベース１１０に格納したそれらのコネクタパッケージに関する情報、例えば、それらのそれぞれのコネクタリソースタイプに基づいて他のサービスを識別できる。
【００６５】
ブロック６０８において、エキスパートシステム３１８は、コネクタデベロッパーを促して、コネクタにリンクされるいかなる既存のおよび／または識別されたサービスに対する識別された関係も受け入れる。ブロック６１０において、エキスパートシステム３１８は、関係を受け入れたかどうか決定する。いくつかの実施形態において、識別された関係の全てが受け入れられるか、またはいずれも受け入れられないことがありえることを理解すべきである。いくつかの実施形態において、デベロッパーは、関係を受け入れるように促されることができないことを更に理解すべきである。換言すれば、この種の実施形態では、関係は、識別されて、自動的に関連づけられることが可能である。そうすると、方法６００は、ブロック６０４からブロック６１２へ直接進む。識別された関係のいずれかが、ブロック６１０において受け入れられる場合、方法６００は、ブロック６１４へ進む前にブロック６１２へ進む。ブロック６１２において、エキスパートシステム３１８は、関係を確認するために、表示を受け入れるサービスと関連したコネクタオーナーの各々に伝送する。さもなければ、識別された関係のいずれも、ブロック６１０に受け入れられなった場合、方法６００は、ブロック６１４へ進む。エキスパートシステム３１８は、エキスパートシステムが関係分析を完了したことを示す表示をコネクタビルダー（例えば、図３のコネクタビルダー３０４）に伝送する。
【００６６】
本開示が例示されて、図面および前記の説明において詳述されたが、それは例示的であり、特徴において限定的でないと考えるべきであり、特定の実施形態だけが示されて説明されたこと、そして本開示の精神の範囲に入るすべての改変と変更態様が保護することが望ましいことが理解される。
【図１】
2020516989.tif 000003
【図２】
2020516989.tif 000004
【図３】
2020516989.tif 000005
【図４Ａ】
2020516989.tif 000006
【図４Ｂ】
2020516989.tif 000007
【図４Ｃ】
2020516989.tif 000008
【図４Ｄ】
2020516989.tif 000009
【図５】
2020516989.tif 000010
【図６】
2020516989.tif 000011
【国際調査報告】
2020516989.tif 000012