(57)【要約】  ソフトウェアを開発し、分散させるためのシステムおよび方法である。ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）によって、サードパーティソフトウェア開発キット（ＳＤＫ）が受信されて格納され、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含む。ＳＤＤＰによって、アプリケーション開発者マシンからのインストール要求が受信され、ＳＤＤＰは、インストール要求に応答して、第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信する。
2018522317.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）を動作させる方法であって、
前記ＳＤＤＰが、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、前記複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含み、前記方法はさらに、
前記ＳＤＤＰが、前記複数のサードパーティＳＤＫを格納するステップと、
前記ＳＤＤＰが、アプリケーション開発者マシンから、前記第１のサードパーティＳＤＫについてのインストール要求を受信するステップと、
前記インストール要求に応答して、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む、方法。
【請求項２】
前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを含む前記アプリケーションを受信するステップと、
前記ＳＤＤＰが、前記アプリケーションを、複数のモバイルデバイス上での実行のために前記複数のモバイルデバイスに分散させるステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ＳＤＤＰが、前記第１のサードパーティＳＤＫについての複数のメトリックを取得するステップと、
前記ＳＤＤＰが、複数のアプリケーション開発者から、前記第１のサードパーティＳＤＫについての複数のフィードバックメッセージを受信するステップと、
前記複数のメトリックのうちの１つ以上および前記複数のフィードバックメッセージのうちの１つ以上からなるパラメータの群から選択された少なくとも１つのパラメータに基づいて、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫについてのプロファイルを生成するステップと、
前記ＳＤＤＰが、前記プロファイルを閲覧する要求を受信するステップとをさらに含む、請求項１に記載の方法。
【請求項４】
前記第１のサードパーティＳＤＫを含む前記アプリケーションが複数のモバイルデバイス上にデプロイメントされた後に、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダから複数のメトリックを受信するステップをさらに含み、前記メトリックは、前記アプリケーションおよび前記アプリケーションのエンドユーザからなるパラメータの群から選択された少なくとも１つのパラメータに関して第１のサードパーティサービスプロバイダによって保持された記録に基づいており、前記方法はさらに、
前記複数のメトリックに基づいて、前記ＳＤＤＰが、前記アプリケーションについてのプロファイルを生成するステップと、
前記ＳＤＤＰが、前記アプリケーションの開発者から、前記プロファイルを閲覧する要求を受信するステップとを含む、請求項１に記載の方法。
【請求項５】
前記インストール要求を受信するステップは、
前記ＳＤＤＰが、前記アプリケーション開発者マシンから、前記アプリケーションのターゲットオペレーティングシステムおよびＳＤＫタイプを含む推薦要求を受信するステップと、
前記ターゲットオペレーティングシステムおよび前記ＳＤＫタイプに基づいた推薦を、前記ＳＤＤＰが、前記アプリケーション開発者マシンへ送信するステップとを含み、前記推薦は前記第１のサードパーティＳＤＫを識別する、請求項１に記載の方法。
【請求項６】
前記推薦要求は、開発中の前記アプリケーションにインストールされている少なくとも１つのサードパーティＳＤＫを識別する、請求項５に記載の方法。
【請求項７】
前記推薦は、前記アプリケーション開発者マシンの地理的領域に基づいている、請求項５に記載の方法。
【請求項８】
前記ＳＤＤＰが、複数のモバイルデバイス上で実行されている前記アプリケーションの前バージョンについての複数のメトリックを取得するステップと、
前記複数のメトリックを、前記第１のサードパーティＳＤＫの発行者を含む収益化ＳＤＫの発行者へ送信するステップと、
それぞれの前記発行者の収益化ＳＤＫが前記アプリケーションの前記前バージョンにインストールされている場合、前記ＳＤＤＰによって、前記収益化ＳＤＫの前記発行者の各々から、それぞれの前記発行者の収益化ＳＤＫについての推定収入ストリームを受信するステップと、
前記ＳＤＤＰにおいて前記推定収入ストリームを解析するステップと、
前記推定収入ストリームの解析に基づいて、前記第１のサードパーティＳＤＫを推薦されたＳＤＫとして推薦するステップとをさらに含む、請求項１に記載の方法。
【請求項９】
前記ＳＤＤＰが、前記アプリケーション開発者マシンから、前記アプリケーションを登録する要求を受信するステップと、
前記要求に応答して、前記ＳＤＤＰによって、前記アプリケーションのハンドルをレジストリに追加するステップとをさらに含む、請求項１に記載の方法。
【請求項１０】
前記ＳＤＤＰが、前記アプリケーション用の前記ハンドルを生成するステップと、
前記ＳＤＤＰが、前記ハンドルを前記アプリケーション開発者マシンへ送信するステップとをさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１のサードパーティＳＤＫの送信に応答して、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダへ通知を送信するステップをさらに含み、前記通知は、前記アプリケーション開発者マシン上で実行されている統合開発環境（ＩＤＥ）、および、開発中の前記アプリケーションにすでにインストールされている少なくとも１つのサードパーティＳＤＫを識別する、請求項１に記載の方法。
【請求項１２】
ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）であって、
複数のサードパーティソフトウェア開発キット（ＳＤＫ）を格納するＳＤＫリポジトリを含み、各ＳＤＫはサードパーティサービスプロバイダによって発行され、前記ＳＤＤＰはさらに、
少なくとも１つのプロセッサと、
コンピュータ読取可能記憶媒体とを含み、前記コンピュータ読取可能記憶媒体は、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
各サードパーティＳＤＫについてＳＤＫプロファイルを生成するステップと、
アプリケーション開発者マシン上の開発中のアプリケーションにインストールされるべきサードパーティＳＤＫについての推薦要求を受信するステップと、
複数の前記ＳＤＫプロファイルおよび前記推薦要求に基づいて、開発中の前記アプリケーションへのインストールのためのサードパーティＳＤＫを識別する推薦を生成するステップとを含む、ＳＤＤＰ。
【請求項１３】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
複数のハンドルを生成するステップを含み、各ハンドルは１つのアプリケーションに関連付けられており、前記以下のステップはさらに、
前記複数のハンドルを格納するステップを含む、請求項１２に記載のＳＤＤＰ。
【請求項１４】
各々が前記サードパーティＳＤＫのうちの少なくとも１つを含む複数のアプリケーションを格納するアプリケーションリポジトリをさらに含む、請求項１２に記載のＳＤＤＰ。
【請求項１５】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記サードパーティＳＤＫを含み、複数のモバイルデバイス上にデプロイメントされた前記アプリケーションに関連付けられた複数のメトリックを取得するステップを含み、前記複数のメトリックのうちの少なくとも１つは、前記サードパーティＳＤＫを発行したサードパーティサービスプロバイダから取得され、前記以下のステップはさらに、
前記複数のメトリックに基づいて、前記アプリケーションについてのプロファイルを生成するステップを含む、請求項１２に記載のＳＤＤＰ。
【請求項１６】
前記サードパーティＳＤＫは第１のサードパーティサービスプロバイダによって発行され、前記複数のプロファイルは前記サードパーティＳＤＫについてのプロファイルを含み、前記サードパーティＳＤＫについての前記プロファイルは第２のサードパーティサービスプロバイダにアクセス可能である、請求項１２に記載のＳＤＤＰ。
【請求項１７】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記サードパーティＳＤＫを発行したサードパーティサービスプロバイダからのメッセージを、第１のサードパーティＳＤＫをダウンロードした前記アプリケーション開発者マシンに中継するステップを含む、請求項１２に記載のＳＤＤＰ。
【請求項１８】
システムであって、
開発中のアプリケーションについてのコードを格納する統合開発環境（ＩＤＥ）を含み、開発中の前記アプリケーションは第１のサードパーティソフトウェア開発キット（ＳＤＫ）を含み、前記システムはさらに、
少なくとも１つのプロセッサと、
コンピュータ読取可能記憶媒体とを含み、前記コンピュータ読取可能記憶媒体は、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
サードパーティソフトウェア開発キット（ＳＤＫ）のタイプおよび開発中の前記アプリケーションのターゲットオペレーティングシステムを含む推薦要求を、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）へ送信するステップと、
前記ＳＤＤＰから、第２のサードパーティＳＤＫを識別する推薦を受信するステップと、
推薦された前記サードパーティＳＤＫについてのインストール要求を前記ＳＤＤＰへ送信するステップと、
前記ＳＤＤＰから、前記第２のサードパーティＳＤＫを受信するステップと、
前記第２のサードパーティＳＤＫを含むように前記コードを修正するステップとを含む、システム。
【請求項１９】
前記推薦要求は、前記第１のサードパーティＳＤＫの識別情報をさらに含む、請求項１８に記載のシステム。
【請求項２０】
前記システムは、前記ＩＤＥへのプラグインであるクライアントアプリケーションをさらに含む、請求項１８に記載のシステム。
【請求項２１】
前記クライアントアプリケーションは、前記第２のサードパーティＳＤＫを発行したサードパーティサービスプロバイダからのメッセージを表示する、請求項２０に記載のシステム。
【請求項２２】
ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）であって、
少なくとも１つのプロセッサと、
コンピュータ読取可能記憶媒体とを含み、前記コンピュータ読取可能記憶媒体は、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、前記複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含み、前記以下のステップはさらに、
前記複数のサードパーティＳＤＫを格納するステップと、
アプリケーション開発者マシンから、前記第１のサードパーティＳＤＫについてのインストール要求を受信するステップと、
前記インストール要求に応答して、前記第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む、ＳＤＤＰ。
【請求項２３】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記アプリケーション開発者マシンから、前記アプリケーションのターゲットオペレーティングシステムおよびＳＤＫタイプを含む推薦要求を受信するステップと、
前記ターゲットオペレーティングシステムおよび前記ＳＤＫタイプに基づいた推薦を、前記アプリケーション開発者マシンへ送信するステップとを含み、前記推薦は前記第１のサードパーティＳＤＫを識別する、請求項２２に記載のＳＤＤＰ。
【請求項２４】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記アプリケーション開発者マシンから、前記アプリケーションを登録する要求を受信するステップと、
前記要求に応答して、前記アプリケーションのハンドルをレジストリに追加するステップとを含む、請求項２２に記載のＳＤＤＰ。
【請求項２５】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記第１のサードパーティＳＤＫの送信に応答して、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダへ通知を送信するステップを含み、前記通知は、前記アプリケーション開発者マシン上で実行されている統合開発環境（ＩＤＥ）、および、開発中の前記アプリケーションにすでにインストールされている少なくとも１つのサードパーティＳＤＫを識別する、請求項２２に記載のＳＤＤＰ。
【請求項２６】
コンピュータ読取可能記憶媒体であって、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）における少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、前記複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含み、前記以下のステップはさらに、
前記複数のサードパーティＳＤＫを格納するステップと、
アプリケーション開発者マシンから、前記第１のサードパーティＳＤＫについてのインストール要求を受信するステップと、
前記インストール要求に応答して、前記第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む、コンピュータ読取可能記憶媒体。
【請求項２７】
前記少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令をさらに格納し、前記以下のステップは、
前記第１のサードパーティＳＤＫを含む前記アプリケーションを受信するステップと、
前記アプリケーションを、複数のモバイルデバイス上での実行のために前記複数のモバイルデバイスに分散させるステップとを含む、請求項２６に記載のコンピュータ読取可能記憶媒体。
【請求項２８】
前記少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令をさらに格納し、前記以下のステップは、
前記第１のサードパーティＳＤＫについての複数のメトリックを取得するステップと、
複数のアプリケーション開発者から、前記第１のサードパーティＳＤＫについての複数のフィードバックメッセージを受信するステップと、
前記複数のメトリックのうちの１つ以上および前記複数のフィードバックメッセージのうちの１つ以上からなるパラメータの群から選択された少なくとも１つのパラメータに基づいて、前記第１のサードパーティＳＤＫについてのプロファイルを生成するステップと、
前記プロファイルを閲覧する要求を受信するステップとを含む、請求項２６に記載のコンピュータ読取可能記憶媒体。
【請求項２９】
前記少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令をさらに格納し、前記以下のステップは、
前記第１のサードパーティＳＤＫを含む前記アプリケーションが複数のモバイルデバイス上にデプロイメントされた後に、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダから複数のメトリックを受信するステップを含み、前記メトリックは、前記アプリケーションおよび前記アプリケーションのエンドユーザからなるパラメータの群から選択された少なくとも１つのパラメータに関して第１のサードパーティサービスプロバイダによって保持された記録に基づいており、前記以下のステップはさらに、
前記複数のメトリックに基づいて、前記アプリケーションについてのプロファイルを生成するステップと、
前記アプリケーションの開発者から、前記プロファイルを閲覧する要求を受信するステップとを含む、請求項２６に記載のコンピュータ読取可能記憶媒体。
【請求項３０】
前記少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令をさらに格納し、前記以下のステップは、
前記アプリケーション開発者マシンから、前記アプリケーションのターゲットオペレーティングシステムおよびＳＤＫタイプを含む推薦要求を受信するステップと、
前記ターゲットオペレーティングシステムおよび前記ＳＤＫタイプに基づいた推薦を、前記アプリケーション開発者マシンへ送信するステップとを含み、前記推薦は前記第１のサードパーティＳＤＫを識別する、請求項２６に記載のコンピュータ読取可能記憶媒体。
【請求項３１】
前記少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令をさらに格納し、前記以下のステップは、
複数のモバイルデバイス上で実行されている前記アプリケーションの前バージョンについての複数のメトリックを取得するステップと、
前記複数のメトリックを、前記第１のサードパーティＳＤＫの発行者を含む収益化ＳＤＫの発行者へ送信するステップと、
それぞれの前記発行者の収益化ＳＤＫが前記アプリケーションの前記前バージョンにインストールされている場合、前記収益化ＳＤＫの前記発行者の各々から、それぞれの前記発行者の収益化ＳＤＫについての推定収入ストリームを受信するステップと、
前記ＳＤＤＰにおいて前記推定収入ストリームを解析するステップと、
前記推定収入ストリームの解析に基づいて、前記第１のサードパーティＳＤＫを推薦されたＳＤＫとして推薦するステップとを含む、請求項２６に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
アプリケーション開発者は、スマートフォン、タブレット、カメラ、インターネット・オブ・シングス（Internet of Things：Ｉｏｔ）デバイス、および他のネットワークデバイス上で実行可能なモバイルアプリケーションを含む自らのアプリケーションにおいて追加の機能および能力を提供するために、ますます多くのサードパーティサービスを使用している。あるアプリケーション開発者は、たとえば、作成中のアプリケーションに機能性を取り入れるために、別々のソースからソフトウェア開発キット（software development kit：ＳＤＫ）を統合開発環境（integrated development environment：ＩＤＥ）にダウンロードしてもよい。そのようなアプローチは、車輪を再作成する必要性をなくす。なぜなら、開発者は、アプリケーションに取り入れたい機能（関数）または機能（関数）呼び出しをアプリケーションのソースコードに実装するためにゼロから始める必要がないためである。そのようなアプローチは、アプリケーション開発を単純化して迅速化するとともに、別々のプラットフォームへのアプリケーションの移行を単純化する。
【発明の概要】
【課題を解決するための手段】
【０００２】
概要
一般に、この発明の一局面では、ソフトウェア開発および分散プラットフォーム（software development and distribution platform：ＳＤＤＰ）が、ＩＤＥにおいて選択可能である特徴、機能（関数）、または他のコンピューティングリソースのリストを提供して、選択されたコンピューティングリソースを実装するために必要なコードをＩＤＥにおいて構築中のアプリケーションに取り入れるカスタマイズされたダウンロード可能なＳＤＫを動的にリアルタイムで作成する。有利には、ＩＤＥにおいて作業している開発者に提供されるコンピューティングリソースは高度にモジュール化されており、カスタマイズされたＳＤＫは、選択されたコンピューティングリソースの各々について別々のＳＤＫを開発者がダウンロードした場合にＩＤＥに課されるであろうメモリ負荷よりも著しく少ないコンピューティングメモリ負荷を課す。さらに、ＳＤＤＰはＳＤＫ管理機能を提供する。たとえば、ＳＤＤＰはサードパーティＳＤＫの更新を追跡して、適切でありかつ開発者からの手動クエリを必要としていない場合に、アプリケーションは更新が必要であることを開発者に通知する。有利には、開発者は、ＳＤＫのさまざまなリソースがアプリケーションを作成するために使用した更新について監視しなければならないという管理上の負担から解放される。別の管理機能は、開発者およびサードパーティがＳＤＫを提供し、使用するための市場を提供することを含み、それは、開発者およびＳＤＫプロバイダ双方のためのワンストップショップを有利に提供する。
【０００３】
一例では、アプリケーションを設計するシステムおよび方法は、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）上に複数のサードパーティソフトウェア開発キット（ＳＤＫ）を格納するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、各サードパーティＳＤＫはサードパーティサービスプロバイダによって提供される１つ以上のサービスにアクセスし、当該システムおよび方法はさらに、アプリケーション開発者からあるサードパーティＳＤＫについての要求を受信するステップを含み、要求はＳＤＫタイプを含み、当該システムおよび方法はさらに、ＳＤＫタイプと整合するサードパーティＳＤＫを求めてＳＤＤＰをサーチするステップと、ＳＤＫタイプと整合する１つ以上のサードパーティＳＤＫを示す応答を送信するステップとを含む。
【０００４】
別の例では、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）を動作させる方法は、ＳＤＤＰが、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含み、方法はさらに、ＳＤＤＰが、複数のサードパーティＳＤＫを格納するステップと、ＳＤＤＰが、アプリケーション開発者マシンから、第１のサードパーティＳＤＫについてのインストール要求を受信するステップと、インストール要求に応答して、ＳＤＤＰによって、第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む。
【０００５】
別の例では、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）は、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を格納するＳＤＫリポジトリを含み、各ＳＤＫはサードパーティサービスプロバイダによって発行され、ＳＤＤＰはさらに、少なくとも１つのプロセッサと、コンピュータ読取可能記憶媒体とを含み、コンピュータ読取可能記憶媒体は、実行されると少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、以下のステップは、各サードパーティＳＤＫについてＳＤＫプロファイルを生成するステップと、アプリケーション開発者マシン上の開発中のアプリケーションにインストールされるべきサードパーティＳＤＫについての推薦要求を受信するステップと、複数のＳＤＫプロファイルおよび推薦要求に基づいて、開発中のアプリケーションへのインストールのためのサードパーティＳＤＫを識別する推薦を生成するステップとを含む。
【０００６】
別の例では、システムは、開発中のアプリケーションについてのコードを格納する統合開発環境（ＩＤＥ）を含み、開発中のアプリケーションは第１のサードパーティソフトウェア開発キット（ＳＤＫ）を含み、システムはさらに、少なくとも１つのプロセッサと、コンピュータ読取可能記憶媒体とを含み、コンピュータ読取可能記憶媒体は、実行されると少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、以下のステップは、サードパーティソフトウェア開発キット（ＳＤＫ）のタイプおよび開発中のアプリケーションのターゲットオペレーティングシステムを含む推薦要求を、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）へ送信するステップと、ＳＤＤＰから、第２のサードパーティＳＤＫを識別する推薦を受信するステップと、推薦されたサードパーティＳＤＫについてのインストール要求をＳＤＤＰへ送信するステップと、ＳＤＤＰから、第２のサードパーティＳＤＫを受信するステップと、第２のサードパーティＳＤＫを含むようにコードを修正するステップとを含む。
【０００７】
別の例では、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）は、少なくとも１つのプロセッサと、コンピュータ読取可能記憶媒体とを含み、コンピュータ読取可能記憶媒体は、実行されると少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、以下のステップは、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含み、以下のステップはさらに、複数のサードパーティＳＤＫを格納するステップと、アプリケーション開発者マシンから、第１のサードパーティＳＤＫについてのインストール要求を受信するステップと、インストール要求に応答して、第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む。
【０００８】
さらに別の例では、コンピュータ読取可能記憶媒体は、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）における少なくとも１つのプロセッサによって実行されると少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、以下のステップは、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、複数のサードパーティＳＤＫは第１のサードパーティＳＤＫを含み、以下のステップはさらに、複数のサードパーティＳＤＫを格納するステップと、アプリケーション開発者マシンから、第１のサードパーティＳＤＫについてのインストール要求を受信するステップと、インストール要求に応答して、第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む。
【０００９】
説明されたソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）は、開発中のアプリケーションへのサービスの追加を単純化するための機構を提供する。サードパーティＳＤＫはＳＤＤＰに格納され、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、各サードパーティＳＤＫはＳＤＫを発行したサードパーティサービスプロバイダによって提供される１つ以上のサービスにアクセスする。ＳＤＤＰは、アプリケーション開発者からあるサードパーティＳＤＫについての要求を受信し、要求はＳＤＫタイプを含み、ＳＤＤＰはさらに、ＳＤＫタイプと整合するサードパーティＳＤＫを求めてＳＤＤＰをサーチし、ＳＤＫタイプと整合する１つ以上のサードパーティＳＤＫを示す応答を送信する。いくつかの例では、開発中のアプリケーションへのＳＤＫの追加を単純化するために、ＳＤＤＰプラグインが、アプリケーション開発マシンにおいて統合設計環境にインストールされる。いくつかの例では、ＳＤＤＰは、ＳＤＫ要求で転送されたパラメータに基づいてあるＳＤＫを推薦し、アプリケーション開発者は、推薦されたＳＤＫを選択することによって、推薦されたＳＤＫをインストールする。結果は、開発中のアプリケーションに、およびデプロイメントされたアプリケーションにサービスを容易に追加し、更新することができる、洗練されたモジュール設計システムである。
【００１０】
ＳＤＫがＳＤＤＰに受け入れられる前に調べられ承認される場合、システムおよび方法はさらにより強力になり得る。アプリケーション開発者は、可能なサービスプロバイダおよびそれらのＳＤＫを、必ずしも独自に調査しなくてもよい。代わりに、アプリケーション開発者は、ＳＤＤＰにおける信頼できるＳＤＫに頼ることができる。
【００１１】
この開示の１つ以上の例の詳細を、添付図面および以下の説明において述べる。この開示の他の特徴、目的、および利点は、説明および図面から、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】この発明の１つ以上の局面に従ったシステムブロック図である。
【図２】この発明の１つ以上の局面に従ったアプリケーション開発者マシンを示す図である。
【図３】この発明の１つ以上の局面に従ったソフトウェア開発および分散プラットフォームを示す図である。
【図４】この発明の１つ以上の局面に従ったフローチャートである。
【図５】この発明の１つ以上の局面に従ったフローチャートである。
【図６】この発明の１つ以上の局面に従ったフローチャートである。
【図７】この発明の１つ以上の局面に従ったコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１３】
詳細な説明
この発明の特定の局面が、添付図面を参照してこれから詳細に説明される。さまざまな図における同じ要素は、整合性のため、同じ参照番号によって表わされる。
【００１４】
以下の詳細な説明では、この開示のより完全な理解を提供するために、多くの特定の詳細が述べられる。しかしながら、この発明がこれらの特定の詳細なしで実践され得ることは、当業者には明らかであろう。他の例では、説明を不必要に複雑にしないために、周知の特徴は詳細には説明されていない。
【００１５】
サードパーティサービスプロバイダは、サービスプロバイダのサービスへのアクセスを提供するために、開発中のアプリケーションに挿入可能なソフトウェアをどんどん提供している。そのようなアプローチは、アプリケーション開発を単純化して迅速化するとともに、別々のプラットフォームへのアプリケーションの移行を単純化する。１つの例示的なアプローチでは、ＳＤＫは本質的にモジュール式であり、限定された数のサービスを提供する。これは、多くのサービスを単一のＳＤＫに配置することが効率的ではないかもしれないためである。単一のＳＤＫはたとえば肥大化するかもしれず、アプリケーションはそれらが必要としないサービスを採用するかもしれず、当該アプリケーションはダウンロードするのに時間がかかり、負荷になるかもしれない。
【００１６】
ある特定のサービス向けの使用に最適なＳＤＫを判断することは、しばしば難しい場合がある。アプリケーション開発者は、自らのアプリケーションにとって最適なＳＤＫを判断する前に、同じまたは類似するサービスを提供する多くのＳＤＫを調査しなければならないかもしれない。そして、ＳＤＫコードの変更および更新を追跡すること、ならびに内在するサービスの有効性を判断することは、難しいかもしれない。
【００１７】
これらのニーズに対処するために、ＳＤＫを受信してそれらをアプリケーション開発者が利用できるようにするソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）がここに説明される。１つの例示的なアプローチでは、ＳＤＤＰは、アプリケーション開発者が複数のサードパーティサービスプロバイダからの幅広い種類のＳＤＫにアクセスできるようにする中央プラットフォームを提供する。サードパーティサービスプロバイダは自らのＳＤＫを、モバイルアプリケーションの開発者を含む広範囲のアプリケーション開発者によるダウンロードのために、ＳＤＤＰへ発行する。１つの例示的なアプローチでは、ＳＤＤＰはＳＤＫのための標準化されたインターフェイスを提供し、ＳＤＫはモジュール式で、ＳＤＤＰのベースライブラリにプラグインするように設計されている。
【００１８】
１つの例示的なアプローチでは、ＳＤＤＰは、サードパーティＳＤＫを開発するサードパーティサービスプロバイダとモバイルアプリケーション開発者との間の仲介主体として動作する。言い換えれば、ＳＤＤＰは、１つ以上のサードパーティＳＤＫを発行するサードパーティサービスプロバイダを、当該サードパーティＳＤＫを自らのモバイルアプリケーションへのインストールのためにダウンロードするアプリケーション開発者にリンクする。ＳＤＤＰはまた、アプリケーション開発者を、エンドユーザに、およびアプリケーションがデプロイメントされて実行されているエンドユーザのモバイルデバイスにリンクする。ＳＤＤＰは、ＳＤＫ、アプリケーション、およびエンドユーザについてのプロファイルを生成するために、メトリックおよびフィードバックメッセージを収集してもよい。ＳＤＤＰは、メトリックおよびフィードバックメッセージに基づいて通知および他のメッセージを生成してもよく、アプリケーション開発者、サードパーティサービスプロバイダ、およびエンドユーザ間の通信を調整してもよい。ＳＤＤＰはまた、開発中のモバイルアプリケーションへのインストールのための１つ以上のサードパーティＳＤＫを識別する推薦を生成してもよい。１つの例示的なアプローチでは、ＳＤＤＰは開発者ツールキットとして機能し、多くのプラットフォームおよびオペレーティングシステムのためにアプリケーション開発を単純化する。
【００１９】
図１は、この発明の１つ以上の局面に従ったシステム（１００）を示す。図１に示すように、システム（１００）は、ＳＤＤＰ（１０２）、複数のサードパーティサービスプロバイダ（たとえば、サードパーティサービスプロバイダＡ（１９９Ａ）、サードパーティサービスプロバイダＢ（１９９Ｂ））、１つ以上のアプリケーション開発者マシン（たとえば、アプリケーション開発者マシンＸ（１０６Ｘ）、アプリケーション開発者マシンＹ（１０６Ｙ））、および１つ以上のモバイルデバイス（たとえば、モバイルデバイスＭ（１０８Ｍ）、モバイルデバイスＮ（１０８Ｎ））を含む複数のコンポーネントを有する。また、図１に示すように、サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）、アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）、およびモバイルデバイス（１０８Ｍ、１０８Ｎ）は、有線および／または無線セグメントを有する１つ以上のネットワークを使用して、ＳＤＤＰ（１０２）に接続される。図１に示されていないものの、モバイルデバイス（１０８Ｍ、１０８Ｎ）はまた、有線および／または無線セグメントを有する１つ以上のネットワーを使用して、サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）に直接接続されてもよい。言い換えれば、モバイルデバイス（１０８Ｍ、１０８Ｎ）は、ＳＤＤＰ（１０２）から独立してサードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）と通信してもよい。
【００２０】
この発明の１つ以上の局面では、システム（１００）は、サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）を含む。各サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）は、１つ以上のコンピューティングデバイス（たとえば、サーバ、パーソナルコンピュータ（personal computer：ＰＣ）、ラップトップ、タブレットＰＣ、スマートフォン、キオスクなど）上で実行されてもよい。各サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）は、１つ以上のサードパーティＳＤＫを開発して発行する。各サードパーティＳＤＫは、サードパーティＳＤＫがインストールされているソフトウェアアプリケーション（たとえばモバイルアプリケーション（１１０））によって要求され得る１つ以上のサービス、機能（関数）、コンテンツ、または能力を提供する。これらのサービス、機能、コンテンツ、または能力は、サードパーティＳＤＫの内部にあってもよい。これに加えて、またはこれに代えて、これらのサービス、機能、コンテンツ、または能力は、サードパーティＡＰＩ（図示せず）によって提供されてもよく、サードパーティＳＤＫは、ソフトウェアアプリケーションがＡＰＩ呼び出しをサードパーティＡＰＩへ発行して当該サービス、機能などにアクセスするための機構である。
【００２１】
この発明の１つ以上の局面では、システム（１００）は、１つ以上のアプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）を含む。各アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）は、サーバ、パーソナルコンピュータ（ＰＣ）、ラップトップ、タブレットＰＣ、スマートフォン、キオスクなどに対応してもよい。アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）は、アプリケーション開発者またはアプリケーション開発者のチームがモバイルアプリケーション（たとえばモバイルアプリケーション（１１０））を設計、プログラム、コード化、デバッグするなどのために利用できるインターフェイス（たとえばＧＵＩ）を提供する。この発明の１つ以上の局面では、これらのモバイルアプリケーションは、１つ以上のサードパーティＳＤＫを含む。アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）は、ＳＤＤＰ（１０２）からサードパーティＳＤＫを（たとえば有料で）取得してもよい。アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）に関する追加の詳細は、以下に説明される。
【００２２】
この発明の１つ以上の局面では、システム（１００）は、複数のモバイルデバイス（すなわち、モバイルデバイスＭ（１０８Ｍ）、モバイルデバイスＮ（１０８Ｎ））を含む。これらのモバイルデバイス（１０８Ｍ、１０８Ｎ）は、スマートフォン、ＰＣタブレット、ラップトップ、携帯情報端末（personal digital assistant：ＰＤＡ）、腕時計などに対応してもよい。これらのモバイルデバイス（１０８Ｍ、１０８Ｎ）は、アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）上で開発されたモバイルアプリケーション（たとえばモバイルアプリケーション（１１０））を実行してもよい。モバイルアプリケーションは、ＳＤＤＰ（１０２）から（たとえば有料で）取得されてもよい。モバイルアプリケーション（１１０）は、実行中、モバイルアプリケーション（１１０）にインストールされているサードパーティＳＤＫにアクセスしてもよい。
【００２３】
この発明の１つ以上の局面では、システム（１００）は、ＳＤＤＰ（１０２）を含む。ＳＤＤＰ（１０２）は、サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）、モバイルデバイス（１０８Ｍ、１０８Ｎ）、およびアプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）間の仲介主体（すなわち、信頼できるアービトレータ）として作用する。ＳＤＤＰ（１０２）は、１つ以上のサーバ、メインフレーム、ＰＣ、または任意の他のタイプのハードウェアコンピューティングデバイスに対応してもよい。ＳＤＤＰ（１０２）は、ＳＤＫ市場と考えられてもよい。ＳＤＤＰ（１０２）は、たとえば、サードパーティＳＤＫおよび／またはサードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）についてのプロファイルを生成すること、モバイルアプリケーション（たとえばモバイルアプリケーション（１１０））についてのプロファイルを生成すること、エンドユーザ）についてのプロファイルを生成すること、開発中のモバイルアプリケーションへのインストールのためにサードパーティＳＤＫをアプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）に推薦して送信すること、サードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）とアプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）との間のメッセージ交換を容易にすること、モバイルアプリケーション（１１０）用のハンドルを生成し、および／または登録すること、モバイルアプリケーション（１１０）を実行のためにモバイルデバイス（１０８Ｍ、１０８Ｎ）上にデプロイメントすること、などを含む多くの機能を行なうように構成されてもよい。ＳＤＤＰ（１０２）に関する追加の詳細は、以下に説明される。
【００２４】
１つの例示的なアプローチでは、ＳＤＤＰ（１０２）はベースライブラリを含み、当該ベースライブラリを使用するためにＳＤＫが書かれる。１つの例示的なアプローチでは、新たなＳＤＫは、それらが信頼され得るかどうかを判断するために評価され、信頼できるＳＤＫのみがＳＤＤＰ（１０２）に追加される。
【００２５】
図１は２つのみのサードパーティサービスプロバイダ（１９９Ａ、１９９Ｂ）、２つのみのモバイルデバイス（１０８Ｍ、１０８Ｎ）、および２つのみのアプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）を示しているが、この詳細な説明の利益を有する当業者であれば、任意の数のサードパーティサービスプロバイダ、モバイルデバイス、およびアプリケーション開発者マシンがあってもよいことを理解するであろう。同様に、各モバイルデバイス（１０８Ｍ、１０８Ｎ）は、任意の数のモバイルアプリケーションを実行してもよい。
【００２６】
図１はモバイルデバイス（１０８Ｎ）上で実行されているモバイルアプリケーション（１１０）を示しているが、この発明の１つ以上の局面では、この詳細な説明で開示されたすべてのシステムおよびプロセスは、非モバイルデバイス（たとえば、デスクトップパーソナルコンピュータ（ＰＣ）、キオスク、サーバ、メインフレームなど）上で実行されているアプリケーションにも当てはまる。そのような実施形態では、アプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）は、非モバイルデバイス上へのデプロイメントのためのアプリケーションを開発してもよい。また、非モバイルデバイス上で実行されているこれらのアプリケーションも、サードパーティＳＤＫを有するであろう。
【００２７】
図２は、この発明の１つ以上の局面に従ったアプリケーション開発者マシン（２０６）を示す。アプリケーション開発者マシン（２０６）は、図１を参照して上述されたアプリケーション開発者マシン（１０６Ｘ、１０６Ｙ）と本質的に同じであってもよい。この発明の１つ以上の局面では、アプリケーション開発者マシン（２０６）は、統合開発環境（ＩＤＥ）（２０８）を含む。ＩＤＥ（２０８）は、モバイルアプリケーションの開発のためにアプリケーション開発者に包括的な設備を提供するソフトウェアアプリケーションである。ＩＤＥ（２０８）は、モバイルアプリケーション用のコード（２１０）を書き、自動化ツールを構築し、インポートツールをコード化するためのソースコードエディタと、デバッガとを含んでいてもよい。１つの例示的なアプローチでは、ＩＤＥ（２０８）はＳＤＤＰに統合されており、初期化中にアプリケーション開発者マシン（２０６）にダウンロードされる。別の例示的なアプローチでは、ＳＤＤＰプラグインがＳＤＤＰ（１０２）からダウンロードされ、アプリケーション開発者マシン（２０６）にインストールされているＩＤＥ（２０８）にインストールされる。
【００２８】
図２に示すように、ＩＤＥ（２０８）は、クライアントアプリケーション（２１８）を含む。この発明の１つ以上の局面では、クライアントアプリケーション（２１８）は、ＩＤＥ（２０８）へのプラグインである。これに加えて、またはこれに代えて、クライアントアプリケーション（２１８）は、ＩＤＥ（２０８）とインタラクト（対話）するものの、ＩＤＥ（２０８）の外部にあるソフトウェアアプリケーション（すなわち、プラグインではなく、むしろスタンドアロンアプリケーション）であってもよい。クライアントアプリケーション（２１８）は、モバイルアプリケーションの開発およびＳＤＤＰ（１０２）との通信を容易にする。
【００２９】
上述のように、１つ以上のサードパーティＳＤＫがモバイルアプリケーションに含まれて（すなわち、インストールされる、取り入れられるなど）もよい。具体的には、アプリケーション開発者に、開発中のモバイルアプリケーションに含めるために選択され得るサードパーティＳＤＫのカタログが提示されてもよい。また、上述のように、モバイルアプリケーションが実行されている際、モバイルアプリケーションの機能性および能力を高めるために、１つ以上のサードパーティＳＤＫがＡＰＩ呼び出しをサードパーティＡＰＩへ発行してもよい。
【００３０】
この発明の１つ以上の局面では、クライアントアプリケーション（２１８）は、サードパーティＳＤＫについての推薦要求をＳＤＤＰ（１０２）へ送信するように構成される。推薦要求は、モバイルアプリケーション用のターゲットモバイルオペレーティングシステムと、モバイルアプリケーションへのインストールのためにアプリケーション開発者によって所望されるＳＤＫのタイプ（たとえば、ゲーミングＳＤＫ、マッピングＳＤＫ、収益化ＳＤＫなど）とを含んでいてもよい。推薦要求はまた、モバイルアプリケーションにすでにインストールされている他のサードパーティＳＤＫ（たとえば、サードパーティＳＤＫ  Ａ（２１２Ａ）、サードパーティＳＤＫ  Ｂ（２１２Ｂ））のアイデンティティを含んでいてもよい。クライアントアプリケーション（２１８）は、インストールすべきサードパーティＳＤＫを識別するＳＤＤＰ（１０２）からの１つ以上の推薦を受信してもよい。１つの例示的なアプローチでは、ＳＤＤＰにインストールされているＳＤＫは、プロプラエタリサービスＳＤＫおよびサードパーティサービスＳＤＫの双方を含み、クライアントアプリケーション（２１８）は、インストールすべき推薦されたプロプラエタリおよびサードパーティＳＤＫを識別するＳＤＤＰ（１０２）からの１つ以上の推薦を受信してもよい。
【００３１】
この発明の１つ以上の局面では、クライアントアプリケーション（２１８）は、サードパーティＳＤＫについてのインストール要求をＳＤＤＰ（１０２）へ送信するように構成される。推薦がクライアントアプリケーション（２１８）によって受信された後に、および／または、利用可能なサードパーティＳＤＫがアプリケーション開発者によって閲覧された後に、インストール要求が送信されてもよい。クライアントアプリケーション（２１８）は、ＳＤＤＰ（１２０）からサードパーティＳＤＫを受信してもよく、サードパーティＳＤＫを含むように、開発中のモバイルアプリケーションのコード（２１０）を修正してもよい。この修正は、アプリケーション開発者からの最小の入力（たとえばシングルクリック）または入力なしで行なわれてもよい。
【００３２】
図２に示すように、２つのサードパーティＳＤＫ（すなわち、２１２Ａ、２１２Ｂ）が、モバイルアプリケーション用のコード（２１０）に追加されている。この発明の１つ以上の局面では、クライアントアプリケーション（２１８）は、サードパーティＳＤＫ（２１２Ａ、２１２Ｂ）を発行したサードパーティサービスプロバイダからメッセージを受信して閲覧するために、アプリケーション開発者によって使用される。クライアントアプリケーション（２１８）はまた、フィードバックメッセージを構成してサードパーティサービスプロバイダへ送信するために使用されてもよい。
【００３３】
さらに図２を参照して、いくつかの例示的なアプローチでは、コード（２１０）は、ベースＳＤＫ（２１６）を含むように適合される。モバイルアプリケーションがモバイルデバイス上にデプロイメントされて実行されている際、ベースＳＤＫ（２１６）は、モバイルデバイス上のデプロイメントされたモバイルアプリケーションの使用および動作に関するデータ（たとえばメトリック）を収集するように構成される。収集されたデータは、モバイルアプリケーションがモバイルデバイス上でどれくらい頻繁に実行されるか（すなわち頻度）、各実行の持続時間、モバイルアプリケーションのコード（２１０）とサードパーティＳＤＫ（２１２Ａ、２１２Ｂ）とのインタラクト（たとえば機能（関数）呼び出し）、モバイルアプリケーションのクラッシュに続くクラッシュダンプ、収益化ＳＤＫのおかげでモバイルアプリケーションによって生み出されている金額などを含んでいてもよい。収集のために公開されるデータの量およびタイプは、アプリケーション開発者によってカスタマイズされてもよい。収集されるデータはまた、モバイルデバイス自体に対応してもよく、モバイルデバイスの消費電力、モバイルデバイスがどれくらい頻繁に電源オンされるか、モバイルデバイス上にインストールされている他のアプリケーションなどを含む。さらに、収集されたデータは、ＳＤＤＰ（１０２）へ送信されてもよい（以下に説明される）。たった１つのベースＳＤＫ（２１６）が示されているが、任意の数のベースＳＤＫ（２１６）がコード（２１０）にインストールされていてもよく、各ベースＳＤＫは、特定のタイプのデータを収集し、および／またはＳＤＤＰ（１０２）へ送信することを担当する。
【００３４】
他の例示的なアプローチでは、ベースＳＤＫ（２１６）は必要ではない。代わりに、１つの例示的なアプローチでは、サービスＳＤＫのうちの１つ以上が、モバイルデバイス上のデプロイメントされたモバイルアプリケーションの使用および動作に関するデータ（たとえばメトリック）を収集するように構成される。収集されるデータは、モバイルアプリケーションがモバイルデバイス上でどれくらい頻繁に実行されるか（すなわち頻度）、各実行の持続時間、モバイルアプリケーションのコード（２１０）と他のサードパーティＳＤＫ（２１２Ａ、２１２Ｂ）とのインタラクト（たとえば機能（関数）呼び出し）、モバイルアプリケーションのクラッシュに続くクラッシュダンプ、収益化ＳＤＫのおかげでモバイルアプリケーションによって生み出されている金額などを含んでいてもよい。収集のために公開されるデータの量およびタイプは、アプリケーション開発者によってカスタマイズされてもよい。収集されるデータはまた、モバイルデバイス自体に対応してもよく、モバイルデバイスの消費電力、モバイルデバイスがどれくらい頻繁に電源オンされるか、モバイルデバイス上にインストールされている他のアプリケーションなどを含む。さらに、収集されたデータは、ＳＤＤＰ（１０２）へ送信されてもよい（以下に説明される）。そのような機能性は、コード（２１０）にインストールされているサービスＳＤＫのうちの２つ以上の間で分散されてもよく、各サービスは、特定のタイプのデータを収集し、および／またはＳＤＤＰ（１０２）へ送信することを担当する。
【００３５】
モバイルアプリケーション用のコード（２１０）は２つのみのサードパーティＳＤＫ（２１２Ａ、２１２Ｂ）を有するとして示されているが、この詳細な説明の利益を有する当業者であれば、任意の数のサードパーティＳＤＫがコード（２１０）に追加され、ひいては、開発中のモバイルアプリケーションに含まれてもよいことを理解するであろう。
【００３６】
図３は、この発明の１つ以上の局面に従ったＳＤＤＰ（３０２）を示す。ＳＤＤＰ（３０２）は、図１を参照して上述されたＳＤＤＰ（１０２）と本質的に同じであってもよい。図３に示すように、ＳＤＤＰ（３０２）は、たとえば、ＳＤＫリポジトリ（３０４）、アプリケーションレジストリ（３０６）、アプリケーションリポジトリ（３０８）、プロファイルエンジン（３１２）、メッセージエンジン（３１６）、および推薦エンジン（３１８）を含む複数のコンポーネントを有する。これらのコンポーネント（３０４、３０６、３０８、３１２、３１６、３１８）の各々は、同じコンピューティングデバイス（たとえば、サーバ、メインフレームなど）上に位置していてもよく、もしくは、有線および／または無線セグメントを有するネットワークによって接続された別々のコンピューティングデバイス上に位置するかまたは当該コンピューティングデバイス全体に拡散されてもよい。
【００３７】
この発明の１つ以上の局面では、ＳＤＤＰ（３０２）は、メッセージエンジン（３１６）を含む。メッセージエンジン（３１６）は、ＳＤＤＰ（３０２）に接続されたサードパーティサービスプロバイダとアプリケーション開発者マシンとの間のメッセージの交換（たとえば受信、送信）を容易にする。メッセージは、電子メール、テキストメッセージ、ファックス、アプレットなどの形をしていてもよい。メッセージエンジン（３１６）は、ポイント・ツー・ポイント・メッセージング（たとえば、１つのサードパーティサービスプロバイダから１つのアプリケーション開発者マシンへのメッセージ）、および／または、ブロードキャストメッセージ（たとえば、１つのサードパーティサービスプロバイダから多くのアプリケーション開発者マシンへのメッセージ）を可能にしてもよい。メッセージエンジン（３１６）は、送信者が受信者をターゲットにするために、ＳＤＤＰ（３０２）に接続されたすべてのサードパーティサービスプロバイダおよびアプリケーション開発者マシンのディレクトリを提供してもよい。メッセージエンジン（３１６）は、すべての交換されたメッセージを、将来のサーチおよび検索のためにアーカイブしてもよい。
【００３８】
メッセージのコンテンツは、サードパーティサービスプロバイダからサードパーティＳＤＫを介して利用可能なすべての能力および機能性、ならびにこれらの能力／機能性にアクセスする方法に関する詳細を含んでいてもよい。これに加えて、またはこれに代えて、メッセージのコンテンツは、利用可能な能力および機能性への、および／またはサードパーティＳＤＫへの提案されたおよび／または確定された変更（たとえば、アップグレード、新バージョンなど）に関するニュースを含んでいてもよい。これに加えて、またはこれに代えて、メッセージのコンテンツは、能力および機能性および／またはサードパーティＳＤＫのうちの１つ以上に関する公知の技術的問題またはバグを含んでいてもよい。
【００３９】
メッセージのコンテンツは、サードパーティＳＤＫへの提案されたおよび／または確定された変更に関するアプリケーション開発者からのフィードバックを含んでいてもよい。これに加えて、またはこれに代えて、メッセージのコンテンツは、アプリケーション開発者によって発見されたサードパーティＳＤＫに関する技術的問題の報告を含んでいてもよい。この発明の１つ以上の局面では、アプリケーション開発者またはアプリケーション開発者マシンからのメッセージは、フィードバックメッセージと称されてもよい。
【００４０】
この発明の１つ以上の局面では、メッセージエンジン（３１６）は、サードパーティサービスプロバイダへ通知を送信するように構成される。各通知は、サードパーティサービスプロバイダによって発行されたサードパーティＳＤＫをダウンロードしたアプリケーション開発者マシンを識別してもよい。通知はまた、アプリケーション開発者マシン上で実行されているＩＤＥ、および／または、アプリケーション開発者マシン上の開発中のモバイルアプリケーションにインストールされている他のサードパーティＳＤＫを示してもよい。
【００４１】
この発明の１つ以上の局面では、ＳＤＤＰ（３０２）は、ＳＤＫリポジトリ（３０４）を含む。ＳＤＫリポジトリ（３０４）は、データベースまたは任意の他のサーチ可能データ構造に対応してもよい。ＳＤＫリポジトリ（３０４）は、サードパーティサービスプロバイダによって発行されたサードパーティＳＤＫを格納する。これに加えて、またはこれに代えて、ＳＤＫリポジトリ（３０４）は、任意のソースからのサードパーティＳＤＫを格納してもよい。ＳＤＫリポジトリ（３０４）におけるサードパーティＳＤＫは、アプリケーション開発マシンへの無料または有料でのダウンロードのために利用可能である。ＳＤＫリポジトリ（３０４）は、（たとえば、クライアントアプリケーション（２１８）を介して）アプリケーション開発者によって閲覧可能およびサーチ可能であってもよい。あるサードパーティＳＤＫは、アプリケーション開発者の地理的位置に基づいて閲覧から除外されてもよい。
【００４２】
この発明の１つ以上の局面では、ＳＤＤＰ（３０２）は、アプリケーションリポジトリ（３０８）を含む。アプリケーションリポジトリ（３０８）は、データベースまたは任意の他のサーチ可能データ構造に対応してもよい。アプリケーションリポジトリ（３０８）は、アプリケーション開発マシン上で開発されたモバイルアプリケーションを格納する。これに加えて、またはこれに代えて、アプリケーションリポジトリ（３０８）は、任意のソースからのモバイルアプリケーションを格納する。アプリケーションリポジトリ（３０８）におけるアプリケーションは、エンドユーザによって動作されるモバイルデバイスへの無料または有料でのダウンロードのために利用可能である。アプリケーションリポジトリ（３０８）は、エンドユーザによって閲覧可能およびサーチ可能であってもよい。あるアプリケーションは、エンドユーザの地理的位置に基づいて閲覧から除外されてもよい。
【００４３】
この発明の１つ以上の局面では、ＳＤＤＰ（３０２）は、プロファイルエンジン（３１２）を含む。プロファイルエンジン（３１２）は、各サードパーティＳＤＫについて１つ以上のプロファイルを生成するように構成される。１つのプロファイルは、サードパーティＳＤＫの特徴、ＳＤＫ用のスクリーンショット、サードパーティＳＤＫをインストールしたモバイルアプリケーションの数、これらのアプリケーションがエンドユーザによってダウンロードされた回数、サードパーティＳＤＫを使用してモバイルアプリケーションによって生み出された金額、サードパーティＳＤＫを使用するモバイルアプリケーションのタイプ（たとえば、ハードウェアおよび／またはオペレーティングシステム）、サードパーティＳＤＫをインストールした各モバイルアプリケーションのアイデンティティ、サードパーティＳＤＫの安定性／信頼性（たとえば、ＳＤＫによって生じたクラッシュの数）、アプリケーション開発者および／またはエンドユーザによるサードパーティＳＤＫの格付け（たとえば、５段階評価の４、３つ星など）、サードパーティＳＤＫに関するフィードバックメッセージ、サードパーティＳＤＫにおける検出されたバグの数、サードパーティＳＤＫを有するモバイルアプリケーションをダウンロードした各エンドユーザのアイデンティティ、サードパーティＳＤＫの公開日、サードパーティＳＤＫを有する同じモバイルデバイス上のアプリケーション間のディープリンキングを介したパンくず、などのうちの１つ以上を含んでいてもよい。この詳細な説明の利益を有する当業者であれば、上述のリストは網羅的ではないこと、および、プロファイルはサードパーティＳＤＫに関わるあらゆる種類のコンテンツおよび解析論を含み得ることを理解するであろう。サードパーティＳＤＫは、任意の解析論によってサーチ可能および／または分類可能であってもよい。
【００４４】
この発明の１つ以上の局面では、プロファイルエンジン（３１２）は、図２を参照して上述された、サードパーティＳＤＫを発行したサードパーティサービスプロバイダ、ならびに、サードパーティＳＤＫと同じアプリケーションにインストールされている他のＳＤＫおよびベースＳＤＫがある場合には当該ＳＤＫを含む任意のソースから、プロファイルについてのデータ（たとえばメトリック）を取得するように構成される。プロファイルエンジン（３１２）は、プロファイルを生成するために、取得されたデータに対して１つ以上の計算または統計的解析を行なってもよい。いくつかの例示的なアプローチでは、たとえば、サービスがクラッシュした場合、新たなバグが発見された場合、もしくは、プロファイルエンジン（３１２）による計算または解析のうちの１つ以上が予め規定されたまたは適応的しきい値を上回る場合に、アプリケーション開発者は警告される。
【００４５】
この発明の１つ以上の局面では、プロファイルの別々の部分は、別々のアクセス権に関連付けられる。言い換えれば、すべての当事者にプロファイルへの完全なアクセス（すなわち、可視性）が与えられるとは限らない。アクセスのレベルは、エンドユーザ、アプリケーション開発者、他のサードパーティサービスプロバイダ（すなわち、サードパーティＳＤＫを発行しなかったサードパーティサービスプロバイダ）、およびサードパーティＳＤＫを発行したサードパーティサービスプロバイダ間で変わり得る。これに加えて、またはこれに代えて、プロファイルは部分的に複製されて複数のプロファイル全体に拡散されてもよく、各プロファイルは、上述の当事者（すなわち、アプリケーション開発者、他のサードパーティサービスプロバイダなど）のうちの１人による閲覧／アクセスのために独占的に利用可能である。
【００４６】
この発明の１つ以上の局面では、プロファイルエンジン（３１２）は、各モバイルアプリケーションについて１つ以上のプロファイルを生成するように構成される。１つのプロファイルは、アプリケーションの特徴、アプリケーション用のスクリーンショット、アプリケーションをダウンロードしたモバイルデバイスの数、サードパーティＳＤＫを使用してモバイルアプリケーションによって生み出された金額、アプリケーションをダウンロードしたモバイルアプリケーションのタイプ（たとえば、ハードウェアおよび／またはオペレーティングシステム）、アプリケーションにインストールされている各サードパーティＳＤＫのアイデンティティ、アプリケーションの安定性／信頼性（たとえば、クラッシュの数）、エンドユーザによるアプリケーションの格付け（たとえば、５段階評価の４、３つ星など）、アプリケーションに関するフィードバックメッセージ、アプリケーションにおける検出されたバグの数、アプリケーションをダウンロードした各エンドユーザのアイデンティティ、アプリケーションの公開日、などのうちの１つ以上を含んでいてもよい。この詳細な説明の利益を有する当業者であれば、上述のリストは網羅的ではないこと、および、プロファイルはアプリケーションに関わるあらゆる種類のコンテンツおよび解析論を含み得ることを理解するであろう。アプリケーションは、任意の解析論によってサーチ可能および／または分類可能であってもよい。
【００４７】
この発明の１つ以上の局面では、プロファイルエンジン（３１２）は、図２を参照して上述された、アプリケーション開発者、ならびに、アプリケーションにインストールされている他のＳＤＫおよびベースＳＤＫがある場合には当該ＳＤＫを含む任意のソースから、プロファイルについてのデータ（たとえばメトリック）を取得するように構成される。アプリケーションについてのデータ（たとえば、ＡＰＩ呼び出しに関するメトリック）も、アプリケーションにインストールされているサードパーティＳＤＫを発行したサードパーティサービスプロバイダから取得されてもよい。そのようなシナリオでは、データは、アプリケーションに関するサードパーティサービスプロバイダ、および／またはアプリケーションのエンドユーザによって保持された記録に基づいていてもよい。プロファイルエンジン（３１２）は、プロファイルを生成するために、取得されたデータに対して１つ以上の計算または統計的解析を行なってもよい。
【００４８】
１つの例示的なアプローチでは、モバイルユーザは、アプリストアからアプリケーションをダウンロードして、アプリケーションを自分のモバイルデバイスにインストールしてもよい。アプリケーションにインストールされているＳＤＫは、ＳＤＤＰ（３０２）（たとえば電話ホーム）と通信してそれらのステータスを報告する。この情報は、プロファイルエンジン（３１２）によってアプリケーションプロファイルおよびＳＤＫプロファイルに追加される。いくつかの例示的なアプローチでは、この情報はまた、アプリケーション開発者および／または関連付けられたサードパーティサービスプロバイダへリアルタイムで転送される。
【００４９】
この発明の１つ以上の局面では、プロファイルの別々の部分は、別々のアクセス権に関連付けられる。言い換えれば、すべての当事者にアプリケーションのプロファイルへの完全なアクセス（すなわち、可視性）が与えられるとは限らない。アクセスのレベルは、エンドユーザ、サードパーティサービスプロバイダ、アプリケーションの開発者、および他のアプリケーションの開発者間で変わり得る。これに加えて、またはこれに代えて、プロファイルは部分的に複製されて複数のプロファイル全体に拡散されてもよく、各プロファイルは、上述の当事者（すなわち、他のアプリケーション開発者、サードパーティサービスプロバイダなど）のうちの１人による閲覧／アクセスのために独占的に利用可能である。
【００５０】
この発明の１つ以上の局面では、推薦エンジン（３１８）は、開発中のモバイルアプリケーションへのインストールのためのサードパーティＳＤＫを識別する推薦を生成するように構成される。推薦は、（上述の）推薦要求に応答して生成され、アプリケーション開発マシンへ送信されてもよい。推薦エンジン（３１８）は推薦要求を構文解析して、推薦を生成する際に使用するための１つ以上のパラメータ（たとえば、所望のタイプのサードパーティＳＤＫ、モバイルアプリケーション用のターゲットオペレーティングシステム、開発中のモバイルアプリケーションにすでにインストールされている他のサードパーティＳＤＫなど）を抽出してもよい。これらのパラメータは、利用可能なサードパーティＳＤＫのプロファイルのサーチにおいてキーとして使用されてもよい。推薦要求と適合する１つ以上のサードパーティＳＤＫが、推薦において識別されてもよい。この発明の１つ以上の局面では、少なくとも最低限の格付け（たとえば、５つ星のうちの４つ星）を有するサードパーティＳＤＫのみが、推薦において識別される。
【００５１】
この発明の１つ以上の局面では、推薦エンジン（３１８）は、モバイルアプリケーションの旧バージョン（すなわち、以前にデプロイメントされたモバイルアプリケーションのバージョン）に基づいて推薦を生成する。具体的には、推薦エンジン（３１８）は、以前にデプロイメントされたバージョンに関連付けられたメトリックを複数の収益化ＳＤＫへ転送してもよい。各収益化ＳＤＫは、メトリックに基づいて、アプリケーションの前バージョンが収益化ＳＤＫをインストールしていたならばアプリケーションの前バージョンに起因したであろう収入ストリームを推定してもよい。最も大きい推定収入ストリーム（または、２番目に大きい収入ストリームなど）を有する収益化ＳＤＫのアイデンティティが、アプリケーション開発者マシンに送信される推薦に含まれてもよい。
【００５２】
この発明の１つ以上の局面では、ＳＤＤＰ（３０２）は、アプリケーションレジストリ（３０６）を含む。アプリケーションレジストリは、アプリケーションハンドルを生成および／または格納するように構成される。ハンドルはサーチ可能であってもよい。開発中のアプリケーション用のハンドルの生成に続いて、それは、対応するアプリケーション開発者マシンへ送信されてもよい。
【００５３】
図４は、この発明の１つ以上の局面に従ったフローチャートを示す。このフローチャートは、ＳＤＤＰを動作させるためのプロセスを表わす。図４におけるステップのうちの１つ以上は、図１を参照して上述されたシステム（１００）のコンポーネントによって、および、図３を参照して上述されたＳＤＤＰ（３０２）のコンポーネントによって行なわれてもよい。この発明の１つ以上の局面では、図４に示すステップのうちの１つ以上は、省略されてもよく、繰り返されてもよく、および／または、図４に示す順序とは異なる順序で行なわれてもよい。したがって、この開示の範囲は、図４に示すステップの特定の構成に限定されると考えられるべきではない。図４に表わされたプロセスは、この詳細な説明で開示された任意の他のフローチャートにおいて表わされたプロセスの前、最中、または後に実行されてもよい。
【００５４】
最初に、１つ以上のサードパーティＳＤＫがＳＤＤＰによって受信される（４０５）。サードパーティＳＤＫは、サードパーティサービスプロバイダによって発行される。サードパーティＳＤＫは、サードパーティＳＤＫをインストールしたモバイルアプリケーションに追加のコンテンツおよび機能性を提供する。たとえば、サードパーティＳＤＫは、モバイルアプリケーションのために、追加のコンテンツおよび機能性にアクセスするためにＡＰＩ呼び出しをサードパーティＡＰＩへ発行してもよい。受信されたサードパーティＳＤＫは、任意のタイプ（たとえば、ナビゲーションＳＤＫ、収益化ＳＤＫ、ゲーミングＳＤＫなど）のものであってもよい。サードパーティサービスプロバイダは、サードパーティＳＤＫの機能性、サードパーティＳＤＫのユーザインターフェイスからのスクリーンショット、例示的なコード断片などを詳述する追加データを提供してもよい。
【００５５】
４１０で、サードパーティＳＤＫについてのメトリックおよびフィードバックメッセージがＳＤＤＰによって受信される。４１０は、サードパーティＳＤＫのうちの１つ以上がアプリケーションにインストールされ、当該アプリケーションがデプロイメントされた後に行なわれてもよい。フィードバックメッセージは、モバイルアプリケーションにサードパーティＳＤＫのうちの１つをインストールしてテストしたアプリケーション開発者からのものであってもよい。フィードバックメッセージは、サードパーティＳＤＫのうちの１つを有するモバイルアプリケーションをダウンロードしたエンドユーザからのものであってもよい。フィードバックメッセージは、サードパーティＳＤＫのうちの１つ以上におけるバグを識別してもよい。メトリックは、さまざまなソース（たとえば、図２を参照して上述されたベースＳＤＫ、またはインストールされている他のＳＤＫ）から取得されてもよく、サードパーティＳＤＫをインストールしたモバイルアプリケーションの数、これらのアプリケーションがエンドユーザによってダウンロードされた回数、サードパーティＳＤＫを使用してモバイルアプリケーションによって生み出された金額、サードパーティＳＤＫを使用するモバイルアプリケーションのタイプ（たとえば、ハードウェアおよび／またはオペレーティングシステム）などを含んでいてもよい。
【００５６】
４１５で、サードパーティＳＤＫについてプロファイルが生成される。プロファイルは、フィードバックメッセージ、メトリック、および、サードパーティサービスプロバイダによって提供されるコンテンツに基づいて生成されてもよい。プロファイルはアクセス権に関連付けられてもよい。言い換えれば、すべての当事者にプロファイルへの完全なアクセス（すなわち、可視性）が与えられるとは限らない。所与のサードパーティＳＤＫについて、アクセスのレベルは、エンドユーザ、アプリケーション開発者、他のサードパーティサービスプロバイダ（すなわち、サードパーティＳＤＫを発行しなかったサードパーティサービスプロバイダ）、およびサードパーティＳＤＫを発行したサードパーティサービスプロバイダ間で変わり得る。
【００５７】
４２０で、サードパーティＳＤＫについてインストール要求が受信される。インストール要求は、開発中のモバイルアプリケーションを有するアプリケーション開発者マシンから受信される。インストール要求は、アプリケーション開発者がサードパーティＳＤＫのプロファイルをブラウズした後に受信されてもよい。インストール要求は、サードパーティＳＤＫを識別するアプリケーション開発者への推薦を送信した後に受信されてもよい。
【００５８】
４２５で、サードパーティＳＤＫはアプリケーション開発者マシンへ送信される。１つの例示的なアプローチでは、サードパーティＳＤＫを送信することは、アプリケーション開発者マシンへコードを送信することを含む。別の例示的なアプローチでは、サードパーティＳＤＫを送信することは、サードパーティＳＤＫを識別する識別子をアプリケーション開発者マシンへ送信することと、識別されたサードパーティＳＤＫのインストールを要求するアプリケーション開発者マシンからのインストールコマンドを受信することと、サードパーティＳＤＫを、開発中のアプリケーションへのインストールのためにアプリケーション開発者マシンへ送信することとを含む。
【００５９】
１つの例示的なアプローチでは、アプリケーションを発行したサードパーティサービスプロバイダへ、通知も送信されてもよい。通知は、アプリケーション開発者マシン上で実行されているＩＤＥ、および／または、開発中のモバイルアプリケーションにインストールされている他のサードパーティＳＤＫを識別してもよい。
【００６０】
４３０で、サードパーティＳＤＫは開発中のアプリケーションにインストールされる。具体的には、アプリケーション開発者マシン上で実行されているクライアントアプリケーションが、サードパーティＳＤＫを含むように、開発中のアプリケーションのコードを修正する。この修正は、ユーザからの入力をほとんどまたは全く必要としなくてもよい。
【００６１】
図５は、この発明の１つ以上の局面に従ったフローチャートを示す。このフローチャートは、ＳＤＤＰを動作させるためのプロセスを表わす。図５におけるステップのうちの１つ以上は、図１を参照して上述されたシステム（１００）のコンポーネントによって、および、図３を参照して上述されたＳＤＤＰ（３０２）のコンポーネントによって行なわれてもよい。この発明の１つ以上の局面では、図５に示すステップのうちの１つ以上は、省略されてもよく、繰り返されてもよく、および／または、図５に示す順序とは異なる順序で行なわれてもよい。したがって、この開示の範囲は、図５に示すステップの特定の構成に限定されると考えられるべきではない。図５に表わされたプロセスは、この詳細な説明で開示された任意の他のフローチャートにおいて表わされたプロセスの前、最中、または後に実行されてもよい。
【００６２】
最初に、推薦要求がＳＤＤＰによって受信される（５０５）。推薦要求は、モバイルアプリケーションを開発中のアプリケーション開発者マシンから受信されてもよい。推薦要求は、たとえば、開発中のモバイルアプリケーション用のターゲットオペレーティングシステム、アプリケーション開発者によって所望されるＳＤＫのタイプ、開発中のアプリケーションにすでにインストールされている１つ以上のサードパーティＳＤＫのアイデンティティなどを含む複数のパラメータを有していてもよい。
【００６３】
５１０で、推薦要求と適合するサードパーティＳＤＫが取得される。具体的には、推薦要求は構文解析され、パラメータが抽出される。パラメータは、サードパーティＳＤＫプロファイルのサーチにおいてキーとして使用されてもよい。１つ以上の実施形態では、しきい値未満（たとえば、５段階評価の３．５未満）の格付けを有するサードパーティＳＤＫは、サーチから除外される。
【００６４】
５１５で、推薦がアプリケーション開発者マシンへ送信される。推薦は、適合するサードパーティＳＤＫのうちの少なくとも１つを識別する。１つ以上の実施形態では、最も高い格付けを有する適合するサードパーティＳＤＫのみが、推薦において識別される。
【００６５】
図６は、この発明の１つ以上の局面に従ったフローチャートを示す。このフローチャートは、ＳＤＤＰを動作させるためのプロセスを表わす。図６におけるステップのうちの１つ以上は、図１を参照して上述されたシステム（１００）のコンポーネントによって、および、図３を参照して上述されたＳＤＤＰ（３０２）のコンポーネントによって行なわれてもよい。この発明の１つ以上の局面では、図６に示すステップのうちの１つ以上は、省略されてもよく、繰り返されてもよく、および／または、図６に示す順序とは異なる順序で行なわれてもよい。したがって、この開示の範囲は、図６に示すステップの特定の構成に限定されると考えられるべきではない。図６に表わされたプロセスは、この詳細な説明で開示された任意の他のフローチャートにおいて表わされたプロセスの前、最中、または後に実行されてもよい。
【００６６】
最初に、ＳＤＤＰは、アプリケーション開発者によって開発されたモバイルアプリケーションを受信する（６１０）。モバイルアプリケーションは、データを収集して報告するためのＳＤＫを含む、複数のサードパーティＳＤＫ、プロプラエタリＳＤＫ、および／または１つ以上のベースＳＤＫを含んでいてもよい。サードパーティＳＤＫのうちの１つ以上は、以前にＳＤＤＰからアプリケーションを開発していたアプリケーション開発者マシンへダウンロードされたものであってもよい。アプリケーションはリポジトリに格納され、エンドユーザによる有料でのダウンロードのために利用可能にされてもよい。言い換えれば、ＳＤＤＰは、エンドユーザのモバイルデバイス上にモバイルアプリケーションをデプロイメントしてもよい。
【００６７】
６１５で、モバイルアプリケーションについてのメトリックおよびフィードバックメッセージがＳＤＤＰによって受信される。フィードバックメッセージは、モバイルアプリケーションをダウンロードしたエンドユーザからのものであってもよい。フィードバックメッセージは、サードパーティＳＤＫのうちの１つ以上におけるバグを識別してもよい。メトリックは、さまざまなソース（たとえば、図２を参照して上述されたベースＳＤＫ）から取得されてもよく、アプリケーションをダウンロードしたモバイルデバイスの数、サードパーティＳＤＫを使用してモバイルアプリケーションによって生み出された金額、アプリケーションをダウンロードしたモバイルアプリケーションのタイプ（たとえば、ハードウェアおよび／またはオペレーティングシステム）、アプリケーションにインストールされている各サードパーティＳＤＫのアイデンティティ、アプリケーションの安定性／信頼性（たとえば、クラッシュの数）、エンドユーザによるアプリケーションの格付け（たとえば、５段階評価の４、３つ星など）などを含んでいてもよい。メトリックのうちのいくつかは、モバイルアプリケーションにインストールされているサードパーティＳＤＫを発行したサードパーティサービスプロバイダから受信されてもよい。そのようなシナリオでは、データは、アプリケーションに関するサードパーティサービスプロバイダ、および／またはアプリケーションのエンドユーザによって保持された記録に基づいていてもよい。
【００６８】
６２０で、アプリケーションについてのプロファイルが更新または生成される。プロファイルは、フィードバックメッセージ、メトリック、および、アプリケーション開発者によって提供されるコンテンツに基づいて生成／更新されてもよい。プロファイルはアクセス権に関連付けられてもよい。言い換えれば、すべての当事者にプロファイルへの完全なアクセス（すなわち、可視性）が与えられるとは限らない。所与のアプリケーションについて、アクセスのレベルは、エンドユーザ、モバイルアプリケーションの開発者、および／または他のアプリケーション開発者（すなわち、モバイルアプリケーションを開発しなかった開発者、サードパーティサービスプロバイダなど）間で変わり得る。プロファイルは、任意のメトリックに従ってサーチ可能および分類可能であってもよい。
【００６９】
この発明の局面は、使用されているプラットフォームにかかわらず、事実上あらゆるタイプのコンピューティングシステム上で実現されてもよい。たとえば、コンピューティングシステムは、この発明の１つ以上の局面を行なうために少なくとも最低限の処理パワー、メモリ、および入出力装置を含む、１つ以上のモバイルデバイス（たとえば、ラップトップコンピュータ、スマートフォン、携帯情報端末、タブレットコンピュータ、または他のモバイルデバイス）、デスクトップコンピュータ、サーバ、サーバシャシにおけるブレード、または任意の他のタイプのコンピューティングデバイスであってもよい。たとえば、図７に示すように、コンピューティングシステム（７００）は、１つ以上のコンピュータプロセッサ（７０２）、関連付けられたメモリ（７０４）（たとえば、ランダムアクセスメモリ（random access memory：ＲＡＭ）、キャッシュメモリ、フラッシュメモリなど）、１つ以上の記憶装置（７０６）（たとえば、ハードディスク、コンパクトディスク（compact disk：ＣＤ）ドライブまたはデジタル多用途ディスク（digital versatile disk：ＤＶＤ）ドライブなどの光学ドライブ、フラッシュメモリスティックなど）、ならびに、多くの他の要素および機能性を含んでいてもよい。コンピュータプロセッサ（７０２）は、命令を処理するための集積回路であってもよい。たとえば、コンピュータプロセッサは、プロセッサの１つ以上のコア、またはマイクロコアであってもよい。コンピューティングシステム（７００）はまた、タッチスクリーン、キーボード、マウス、マイクロホン、タッチパッド、電子ペン、または任意の他のタイプの入力装置といった、１つ以上の入力装置（７１０）を含んでいてもよい。また、コンピューティングシステム（７００）は、スクリーン（たとえば、液晶ディスプレイ（liquid crystal display：ＬＣＤ）、プラズマディスプレイ、タッチスクリーン、陰極線管（cathode ray tube：ＣＲＴ）モニタ、プロジェクタ、または他の表示装置）、プリンタ、外部記憶装置、または任意の他の出力装置といった、１つ以上の出力装置（７０８）を含んでいてもよい。出力装置のうちの１つ以上は、入力装置と同じであっても異なっていてもよい。コンピューティングシステム（７００）は、ネットワークインターフェイス接続（図示せず）を介して、ネットワーク（７１２）（たとえば、ローカルエリアネットワーク（local area network：ＬＡＮ）、インターネットなどのワイドエリアネットワーク（wide area network：ＷＡＮ）、モバイルネットワーク、または任意の他のタイプのネットワーク）に接続されてもよい。入出力装置は、コンピュータプロセッサ（７０２）、メモリ（７０４）、および記憶装置（７０６）にローカルにまたはリモートで（たとえばネットワーク（７１２）を介して）接続されてもよい。多くの異なるタイプのコンピューティングシステムが存在しており、前述の入出力装置は他の形を取ってもよい。
【００７０】
この発明の局面を行なうためのコンピュータ読取可能プログラムコードの形をしたソフトウェア命令が、ＣＤ、ＤＶＤ、記憶装置、ディスケット、テープ、フラッシュメモリ、物理メモリ、または任意の他のコンピュータ読取可能記憶媒体といった非一時的なコンピュータ読取可能媒体上に、全体的にまたは部分的に、一時的にまたは永続的に格納されてもよい。具体的には、ソフトウェア命令は、プロセッサによって実行されるとこの発明の局面を行なうように構成されたコンピュータ読取可能プログラムコードに対応してもよい。
【００７１】
また、前述のコンピューティングシステム（７００）の１つ以上の要素はリモート位置に位置し、ネットワーク（７１２）を通して他の要素に接続されてもよい。また、この発明の１つ以上の局面は、複数のノードを有する分散型システム上で実現されてもよく、システム（７００）の各部分は、分散型システム内の異なるノード上に位置していてもよい。１つの例示的なアプローチでは、ノードは、別個のコンピューティングデバイスに対応する。これに代えて、ノードは、関連付けられた物理メモリを有するコンピュータプロセッサに対応してもよい。ノードはこれに代えて、共有メモリおよび／またはリソースを有するコンピュータプロセッサ、またはコンピュータプロセッサのマイクロコアに対応してもよい。
【００７２】
説明されたソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）は、開発中のアプリケーションへのサービスの追加を単純化するための機構を提供する。サードパーティＳＤＫはＳＤＤＰに格納され、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、各サードパーティＳＤＫはＳＤＫを発行したサードパーティサービスプロバイダによって提供される１つ以上のサービスにアクセスする。ＳＤＤＰは、アプリケーション開発者からあるサードパーティＳＤＫについての要求を受信し、要求はＳＤＫタイプを含み、ＳＤＤＰはさらに、ＳＤＫタイプと整合するサードパーティＳＤＫを求めてＳＤＤＰをサーチし、ＳＤＫタイプと整合する１つ以上のサードパーティＳＤＫを示す応答を送信する。いくつかの例では、開発中のアプリケーションへのＳＤＫの追加を単純化するために、ＳＤＤＰプラグインが、アプリケーション開発マシンにおいて統合設計環境にインストールされる。いくつかの例では、ＳＤＤＰは、ＳＤＫ要求で転送されたパラメータに基づいてあるＳＤＫを推薦し、アプリケーション開発者は、推薦されたＳＤＫを選択することによって、推薦されたＳＤＫをインストールする。結果は、開発中のアプリケーションおよびデプロイメントされたアプリケーションの双方にサービスを容易に追加し、更新することができる、洗練されたモジュール設計システムである。
【００７３】
ＳＤＫがＳＤＤＰに受け入れられる前に調べられ承認される場合、システムおよび方法はさらにより強力になる。アプリケーション開発者は、可能なサービスプロバイダおよびそれらのＳＤＫを独自に調査しなくてもよい。代わりに、アプリケーション開発者は、ＳＤＤＰにおける信頼できるＳＤＫに頼ることができる。
【００７４】
１つ以上の例では、上述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実現されてもよい。ソフトウェアで実現される場合、機能は、１つ以上の命令またはコードとして、コンピュータ読取可能媒体上に格納されるかまたはコンピュータ読取可能媒体を通して送信されて、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ読取可能媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ読取可能記憶媒体、または、たとえば通信プロトコルに従ったある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含んでいてもよい。このように、コンピュータ読取可能媒体は一般に、（１）非一時的である、有形のコンピュータ読取可能記憶媒体、または（２）信号または搬送波などの通信媒体に対応してもよい。データ記憶媒体は、この開示で説明された手法の実現のために命令、コード、および／またはデータ構造を検索するために、１つ以上のコンピュータまたは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ読取可能媒体を含んでいてもよい。
【００７５】
限定のためではなく例示のために、そのようなコンピュータ読取可能記憶媒体は、所望のプログラムコードを命令またはデータ構造の形で格納するために使用され得る、およびコンピュータによってアクセスされ得る、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（read only memory：ＲＯＭ）、電気的消去可能プログラマブル読出し専用メモリ（electrically erasable programmable read-only memory：ＥＥＰＲＯＭ）、コンパクトディスク読出し専用メモリ（compact disc read-only memory：ＣＤ−ＲＯＭ）または他の光学ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶装置、フラッシュメモリ、または任意の他の媒体を含み得る。また、いかなる接続も、コンピュータ読取可能媒体と適切に称される。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（digital subscriber line：ＤＳＬ）、または、赤外線、無線およびマイクロ波などの無線技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または、赤外線、無線およびマイクロ波などの無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに、非一時的な有形記憶媒体に向けられる、ということが理解されるべきである。ディスク（disk）およびディスク（disc）は、使用されるように、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は通常、データを磁気的に再生し、一方、ディスク（disc）は、データをレーザで光学的に再生する。上述のものの組合せも、コンピュータ読取可能媒体の範囲内に含まれるべきである。
【００７６】
命令は、１つ以上のデジタル信号プロセッサ（digital signal processor：ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（field programmable logic array：ＦＰＧＡ）、もしくは他の同等の集積またはディスクリート論理回路といった、１つ以上のプロセッサによって実行されてもよい。したがって、「プロセッサ」という用語は、使用されるように、説明された手法の実現にとって好適な前述の構造または任意の他の構造のうちのいずれかを指してもよい。加えて、いくつかの局面では、説明された機能性は、専用ハードウェアおよび／またはソフトウェアモジュール内に提供されてもよい。また、手法は、１つ以上の回路または論理素子において完全に実現され得る。
【００７７】
この開示の手法は、無線送受話器、集積回路（ＩＣ）、または１組のＩＣ（たとえばチップセット）を含む幅広い種類のデバイスまたは装置において実現されてもよい。開示された手法を行なうように構成されたデバイスの機能的な局面を強調するために、さまざまなコンポーネント、モジュール、またはユニットがこの開示で説明されているが、別々のハードウェアユニットによる実現を必ずしも必要とはしない。むしろ、上述のように、さまざまなユニットが、好適なソフトウェアおよび／またはファームウェアとともに、ハードウェアユニットにおいて組合されてもよく、または上述のような１つ以上のプロセッサを含む連携ハードウェアユニットの集合によって提供されてもよい。
【００７８】
実施形態に依存して、ここに説明された方法のうちのいずれかのある行為またはイベントが異なる順序で行なわれ得ること、追加、合併、または全て除外されてもよい（たとえば、説明された行為またはイベントがすべて、方法の実践に必要であるとは限らない）ことが認識されるべきである。さらに、ある実施形態では、行為またはイベントは、順次ではなく、同時に、たとえばマルチスレッド処理、割込み処理、または複数のプロセッサを通して行なわれてもよい。
【００７９】
いくつかの例では、コンピュータ読取可能記憶媒体は、非一時的な媒体を含む。いくつかの例では、「非一時的な」という用語は、記憶媒体が搬送波または伝搬信号で具現化されないことを示す。ある例では、非一時的な記憶媒体は、時間とともに変わり得るデータを（たとえばＲＡＭまたはキャッシュに）格納してもよい。ある例は表示のためにさまざまな情報を出力するとして説明されるが、この開示の手法は、ほんの数例を挙げると音声形式、ホログラフ形式、または触覚形式といった他の形式で、そのような情報を出力してもよい。
【００８０】
この発明を限定された数の実施形態に関して説明してきたが、この開示の利益を有する当業者であれば、この開示の範囲から逸脱しない他の実施形態が考案され得ることを理解するであろう。
【図１】
2018522317.tif 000003
【図２】
2018522317.tif 000004
【図３】
2018522317.tif 000005
【図４】
2018522317.tif 000006
【図５】
2018522317.tif 000007
【図６】
2018522317.tif 000008
【図７】
2018522317.tif 000009
【手続補正書】
【提出日】平成30年2月2日(2018.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）を動作させる方法であって、
前記ＳＤＤＰが、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、前記方法はさらに、前記ＳＤＤＰが、前記複数のサードパーティＳＤＫを格納するステップと、
前記各サードパーティＳＤＫについてのＳＤＫプロファイルを生成するステップと、
前記ＳＤＤＰが、アプリケーション開発者マシンから、アプリケーション開発者マシンで開発中のアプリケーションにインストールされるサードパーティＳＤＫについての推薦要求を受信するステップと、
複数の前記ＳＤＫプロファイルと前記推薦要求に基づき、開発中の前記アプリケーションへのインストールのために第１のサードパーティＳＤＫを識別する推薦を生成するステップと、
前記インストール要求に応答して、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを、開発中の前記アプリケーションへのインストールのために送信するステップとを含む、方法。
【請求項２】
前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを含む前記アプリケーションを受信するステップと、
前記ＳＤＤＰが、前記アプリケーションを、複数のモバイルデバイス上での実行のために前記複数のモバイルデバイスに分散させるステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ＳＤＤＰが、前記第１のサードパーティＳＤＫについての複数のメトリックを取得するステップと、
前記ＳＤＤＰが、複数のアプリケーション開発者から、前記第１のサードパーティＳＤＫについての複数のフィードバックメッセージを受信するステップと、
前記複数のメトリックのうちの１つ以上および前記複数のフィードバックメッセージのうちの１つ以上からなるパラメータの群から選択された少なくとも１つのパラメータに基づいて、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫについての前記ＳＤＫプロファイルを生成するステップと、
前記ＳＤＤＰが、前記ＳＤＫプロファイルを閲覧する要求を受信するステップとをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記第１のサードパーティＳＤＫを含む前記アプリケーションが複数のモバイルデバイス上にデプロイメントされた後に、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダから複数のメトリックを受信するステップをさらに含み、前記メトリックは、前記アプリケーションおよび前記アプリケーションのエンドユーザからなるパラメータの群から選択された少なくとも１つのパラメータに関して第１のサードパーティサービスプロバイダによって保持された記録に基づいており、前記方法はさらに、
前記複数のメトリックに基づいて、前記ＳＤＤＰが、前記アプリケーションについてのプロファイルを生成するステップと、
前記ＳＤＤＰが、前記アプリケーションの開発者から、前記プロファイルを閲覧する要求を受信するステップとを含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記推薦要求は、前記アプリケーションのターゲットオペレーティングシステムおよびＳＤＫタイプを含み、
前記ターゲットオペレーティングシステムおよび前記ＳＤＫタイプに基づいた前記推薦を、前記ＳＤＤＰが、前記アプリケーション開発者マシンへ送信するステップとを含み、前記推薦は前記第１のサードパーティＳＤＫを識別する、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記推薦要求は、開発中の前記アプリケーションにインストールされている少なくとも１つのサードパーティＳＤＫを識別する、請求項５に記載の方法。
【請求項７】
前記推薦は、前記アプリケーション開発者マシンの地理的領域に基づいている、請求項５または６に記載の方法。
【請求項８】
前記ＳＤＤＰが、複数のモバイルデバイス上で実行されている前記アプリケーションの前バージョンについての複数のメトリックを取得するステップと、
前記複数のメトリックを、前記第１のサードパーティＳＤＫの発行者を含む収益化ＳＤＫの発行者へ送信するステップと、
それぞれの前記発行者の収益化ＳＤＫが前記アプリケーションの前記前バージョンにインストールされている場合、前記ＳＤＤＰによって、前記収益化ＳＤＫの前記発行者の各々から、それぞれの前記発行者の収益化ＳＤＫについての推定収入ストリームを受信するステップと、
前記ＳＤＤＰにおいて前記推定収入ストリームを解析するステップと、
前記推定収入ストリームの解析に基づいて、前記第１のサードパーティＳＤＫを推薦されたＳＤＫとして推薦するステップとをさらに含む、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記ＳＤＤＰが、前記アプリケーション開発者マシンから、前記アプリケーションを登録する要求を受信するステップと、
前記要求に応答して、前記ＳＤＤＰによって、前記アプリケーションのハンドルをレジストリに追加するステップとをさらに含む、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記ＳＤＤＰが、前記アプリケーション用の前記ハンドルを生成するステップと、
前記ＳＤＤＰが、前記ハンドルを前記アプリケーション開発者マシンへ送信するステップとをさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１のサードパーティＳＤＫの送信に応答して、前記ＳＤＤＰが、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダへ通知を送信するステップをさらに含み、前記通知は、前記アプリケーション開発者マシン上で実行されている統合開発環境（ＩＤＥ）、および、開発中の前記アプリケーションにすでにインストールされている少なくとも１つのサードパーティＳＤＫを識別する、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）であって、
複数のサードパーティソフトウェア開発キット（ＳＤＫ）を格納するＳＤＫリポジトリを含み、各ＳＤＫはサードパーティサービスプロバイダによって発行され、前記ＳＤＤＰはさらに、
少なくとも１つのプロセッサと、
コンピュータ読取可能記憶媒体とを含み、前記コンピュータ読取可能記憶媒体は、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
各サードパーティＳＤＫについてＳＤＫプロファイルを生成するステップと、
アプリケーション開発者マシン上の開発中のアプリケーションにインストールされるべきサードパーティＳＤＫについての推薦要求を受信するステップと、
複数の前記ＳＤＫプロファイルおよび前記推薦要求に基づいて、開発中の前記アプリケーションへのインストールのためのサードパーティＳＤＫを識別する推薦を生成するステップとを含む、ＳＤＤＰ。
【請求項１３】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
複数のハンドルを生成するステップを含み、各ハンドルは１つのアプリケーションに関連付けられており、前記以下のステップはさらに、
前記複数のハンドルを格納するステップを含む、請求項１２に記載のＳＤＤＰ。
【請求項１４】
各々が前記サードパーティＳＤＫのうちの少なくとも１つを含む複数のアプリケーションを格納するアプリケーションリポジトリをさらに含む、請求項１２または１３に記載のＳＤＤＰ。
【請求項１５】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記サードパーティＳＤＫを含み、複数のモバイルデバイス上にデプロイメントされた前記アプリケーションに関連付けられた複数のメトリックを取得するステップを含み、前記複数のメトリックのうちの少なくとも１つは、前記サードパーティＳＤＫを発行したサードパーティサービスプロバイダから取得され、前記以下のステップはさらに、
前記複数のメトリックに基づいて、前記アプリケーションについてのプロファイルを生成するステップを含む、請求項１２から１４のいずれか１項に記載のＳＤＤＰ。
【請求項１６】
前記サードパーティＳＤＫは第１のサードパーティサービスプロバイダによって発行され、前記複数のプロファイルは前記サードパーティＳＤＫについてのプロファイルを含み、前記サードパーティＳＤＫについての前記プロファイルは第２のサードパーティサービスプロバイダにアクセス可能である、請求項１２から１５のいずれか１項に記載のＳＤＤＰ。
【請求項１７】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記サードパーティＳＤＫを発行したサードパーティサービスプロバイダからのメッセージを、第１のサードパーティＳＤＫをダウンロードした前記アプリケーション開発者マシンに中継するステップを含む、請求項１２から１６のいずれか１項に記載のＳＤＤＰ。
【請求項１８】
システムであって、
開発中のアプリケーションについてのコードを格納する統合開発環境（ＩＤＥ）を含み、開発中の前記アプリケーションは第１のサードパーティソフトウェア開発キット（ＳＤＫ）を含み、前記システムはさらに、
少なくとも１つのプロセッサと、
コンピュータ読取可能記憶媒体とを含み、前記コンピュータ読取可能記憶媒体は、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
サードパーティソフトウェア開発キット（ＳＤＫ）のタイプおよび開発中の前記アプリケーションのターゲットオペレーティングシステムを含む推薦要求を、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）へ送信するステップと、
前記ＳＤＤＰから、第２のサードパーティＳＤＫを識別する推薦を受信するステップと、
推薦された前記サードパーティＳＤＫについてのインストール要求を前記ＳＤＤＰへ送信するステップと、
前記ＳＤＤＰから、前記第２のサードパーティＳＤＫを受信するステップと、
前記第２のサードパーティＳＤＫを含むように前記コードを修正するステップとを含む、システム。
【請求項１９】
前記推薦要求は、前記第１のサードパーティＳＤＫの識別情報をさらに含む、請求項１８に記載のシステム。
【請求項２０】
前記システムは、前記ＩＤＥへのプラグインであるクライアントアプリケーションをさらに含む、請求項１８または１９に記載のシステム。
【請求項２１】
前記クライアントアプリケーションは、前記第２のサードパーティＳＤＫを発行したサードパーティサービスプロバイダからのメッセージを表示する、請求項２０に記載のシステム。
【請求項２２】
ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）であって、
少なくとも１つのプロセッサと、
コンピュータ読取可能記憶媒体とを含み、前記コンピュータ読取可能記憶媒体は、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記ＳＤＤＰが、複数のサードパーティソフトウェア開発キット（ＳＤＫ）を受信するステップを含み、各サードパーティＳＤＫはサードパーティサービスプロバイダによって発行され、
前記以下のステップはさらに、
前記ＳＤＤＰが前記複数のサードパーティＳＤＫを格納するステップと
各サードパーティＳＤＫについてのＳＤＫプロファイルを生成するステップと、
前記ＳＤＤＰが、アプリケーション開発者マシンから、アプリケーション開発者マシンで開発中のアプリケーションにインストールされるサードパーティＳＤＫについての推薦要求を受信するステップと、
複数の前記ＳＤＫプロファイルと前記推薦要求に基づき、開発中のアプリケーションへのインストールのために第１のサードパーティＳＤＫを識別する推薦を生成するステップと、
前記ＳＤＤＰが、前記インストール要求に応答して、前記第１のサードパーティＳＤＫを、開発中のアプリケーションへのインストールのために送信するステップとを含む、ＳＤＤＰ。
【請求項２３】
前記推薦要求は、前記アプリケーションのターゲットオペレーティングシステムおよびＳＤＫタイプを含み、  前記以下のステップは、  前記ＳＤＤＰが、前記ターゲットオペレーティングシステムおよび前記ＳＤＫタイプに基づいた推薦を、前記アプリケーション開発者マシンへ送信するステップを含み、前記推薦は前記第１のサードパーティＳＤＫを識別する、請求項２２に記載のＳＤＤＰ。
【請求項２４】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記アプリケーション開発者マシンから、前記アプリケーションを登録する要求を受信するステップと、
前記要求に応答して、前記アプリケーションのハンドルをレジストリに追加するステップとを含む、請求項２２または２３に記載のＳＤＤＰ。
【請求項２５】
前記コンピュータ読取可能記憶媒体はさらに、実行されると前記少なくとも１つのプロセッサに以下のステップを行なわせる命令を格納し、前記以下のステップは、
前記第１のサードパーティＳＤＫの送信に応答して、前記第１のサードパーティＳＤＫを発行したサードパーティサービスプロバイダへ通知を送信するステップを含み、前記通知は、前記アプリケーション開発者マシン上で実行されている統合開発環境（ＩＤＥ）、および、開発中の前記アプリケーションにすでにインストールされている少なくとも１つのサードパーティＳＤＫを識別する、請求項２２から２４のいずれか１項に記載のＳＤＤＰ。
【請求項２６】
コンピュータプログラムであって、ソフトウェア開発および分散プラットフォーム（ＳＤＤＰ）における少なくとも１つのプロセッサによって実行されると前記少なくとも１つのプロセッサに請求項１から１１のいずれか１項に記載の方法を実行させるコンピュータプログラム。
【国際調査報告】
2018522317.tif 000010