(57)【特許請求の範囲】
【請求項１】
異種の電子デバイスのためのアプリケーション配信を区分化するための方法であって、
前記異種の電子デバイスの１つである第１のデバイスから、アプリケーションの第１のバイナリファイルのための第１のリソースロケータを受信するステップと、
前記第１のリソースロケータのための第１のデータベースレコードへの第１の入力セットを生成し、ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第１の入力セットとを前記第１のデバイスに送信するステップと、
前記第１のデバイスの第１のオペレーティングシステムバージョンを前記第１の入力セットに割り当てるステップと、
前記異種の電子デバイスの１つである第２のデバイスから、前記アプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルを受信するステップと、
前記プロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成し、前記ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第２の入力セットとを前記第２のデバイスに送信するステップと、
前記第２のデバイスの第２のオペレーティングシステムバージョンを前記第２の入力セットに割り当てるステップと、
前記第１の入力セットおよび前記第２の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成するステップと、
前記論理アプリケーションと連携して少なくとも前記第１のバイナリファイルまたは前記第２のバイナリファイルを実行するように前記第１のデバイスを構成するステップとを備える、方法。
【請求項２】
マルチプルタブインターフェイスを備え、第１のユーザインターフェイス要素は、前記マルチプルタブインターフェイスの第１のタブ上にあり、第２のユーザインターフェイス要素は、前記マルチプルタブインターフェイスの第２のタブ上にある、請求項１に記載の方法。
【請求項３】
前記第１の入力セットは、前記第１のデバイスの第１のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備え、前記第２の入力セットは、前記第２のデバイスの第２のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備える、請求項１または２に記載の方法。
【請求項４】
前記第１のオペレーティングシステムバージョンのタイプまたは前記第２のオペレーティングシステムバージョンのタイプは、ｉＯＳ（登録商標）バージョン、アンドロイド（登録商標）オペレーティングシステムバージョンおよびウインドウズ（登録商標）オペレーティングシステムバージョンからなる群から選択される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
第１のデバイスまたは前記第２のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイス、およびウェアラブルデバイスからなる群から選択される、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記第１の入力セットにリンクされた第１のユーザインターフェイス要素および前記第２の入力セットにリンクされた第２のユーザインターフェイス要素を有するユーザインターフェイスを表示するステップをさらに備える、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記第１のデバイスの第１のユーザに関連付けられる第１のポリシーを特定するステップと、
前記第１のポリシーに基づいて、前記第１のデバイスにインストールすべき前記論理アプリケーションの第１のバージョンを決定するステップと、
前記決定に基づいて、前記第１のデバイスへの前記論理アプリケーションの前記第１のバージョンのインストールを生じさせるステップとをさらに備える、請求項６に記載の方法。
【請求項８】
前記第２のデバイスの第２のユーザに関連付けられる第２のポリシーを特定するステップと、
前記第２のポリシーに基づいて、前記第２のデバイスにインストールすべき前記論理アプリケーションの第２のバージョンを決定するステップと、
前記決定に基づいて、前記第２のデバイスへの前記論理アプリケーションの前記第２のバージョンのインストールを生じさせるステップとをさらに備える、請求項６に記載の方法。
【請求項９】
前記論理アプリケーションの前記第２のバージョンの前記インストールを生じさせるステップは、前記論理アプリケーションの前記第２のバージョンを前記第２のデバイスにダウンロードするようにプッシュ通知イベントを前記第２のデバイスに送信するステップをさらに備える、請求項８に記載の方法。
【請求項１０】
システムであって、
プロセッサと、
メモリデバイスとを備え、前記メモリデバイスは、命令を含み、前記命令は、前記プロセッサによって実行されたときに前記プロセッサに、
アプリケーションの第１のバイナリファイルのための第１のデータベースレコードへの第１の入力セットを生成させ、
ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第１の入力セットとを第１のデバイスに送信させ、
前記第１のデバイスの第１のオペレーティングシステムバージョンを前記第１の入力セットに割り当てさせ、
前記アプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成させ、
前記ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第２の入力セットとを第２のデバイスに送信させ、
前記第２のデバイスの第２のオペレーティングシステムバージョンを前記第２の入力セットに割り当てさせ、
前記第１の入力セットおよび前記第２の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成させ、
前記第１のデバイスまたは前記第２のデバイスへの前記論理アプリケーションのインストールを生じさせる、システム。
【請求項１１】
請求項１〜９のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、「モバイルセキュリティマネージャ（ＭＳＭ）（Mobile Security Manager (MSM)）」と題される２０１４年９月２４日に出願された米国仮出願番号第６２／０５４，５４４号の利益および優先権を主張する、「異種の電子デバイスのためのアプリケーション配信の区分化（COMPARTMENTALIZING APPLICATION DISTRIBUTION FOR DISPARATE ELECTRONIC DEVICES）」と題される２０１５年４月１７日に出願された米国非仮出願番号第１４／６８９，７２２号の利益および優先権を主張する。上記の特許出願の内容全体は、全ての目的で引用によって本明細書に援用される。
【０００２】
発明の背景
本開示は、一般に、さまざまなタイプの電子デバイスのためのアプリケーションの管理に関する。より特定的には、異種の電子デバイスのためのアプリケーションの配信を区分化するための技術が開示されている。
【背景技術】
【０００３】
アプリケーションは、一般に、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、スマートフォン、タブレットなどの電子デバイスのユーザのために特定の機能を実行するように設計されたプログラムを指す。アプリケーションの例としては、ワードプロセッサ、データベースプログラム、ウェブブラウザ、開発ツール、通信プログラムなどを挙げることができる。アプリケーションは、一般に、デバイスのオペレーティングシステムのサービスを使用して、その意図された機能を実行する。アプリケーションは、デバイスに予めロードされていてもよく、またはデバイスのユーザがアプリケーションをブラウズおよびダウンロードすることを可能にするインターネットもしくはオンラインストアからユーザによってダウンロードされてもよい。
【０００４】
アプリケーションは、一般に、アプリケーションにサービスを提供するさまざまなアプリケーションプラットフォームを介して入手可能である。アプリケーションプラットフォームによって提供されるサービスは、例えば、アプリケーションを実行するためのオペレーティングシステムサービス、アプリケーションがデータを記憶および処理することを可能にするためのデータサービス、アプリケーションの作成および維持を助ける開発ツールなどを含んでもよい。したがって、電子デバイス上でアプリケーションを管理する改良された方法を見つけることが望まれる。
【発明の概要】
【課題を解決するための手段】
【０００５】
発明の簡単な概要
一般に、さまざまなタイプの電子デバイスのアプリケーション配信を容易化するための技術を開示する。これらの技術は、例えば、論理アプリケーションを生成するための方法、システム、１つ以上のプロセッサによって実行可能なコードまたは命令を記憶する非一時的なコンピュータ読取可能な媒体を提供する。論理アプリケーションは、単一のインターフェイスを介して別々のコマンドを実行することができ、さまざまなユーザの電子デバイス（例えばスマートフォン、タブレット、ワークステーション、ウェアラブルコンピュータ）と企業のさまざまなサーバとの間で必要とされる接続の数を減少させる。特定の実施例では、論理アプリケーションは、デバイスをプログラミングするためのアプリケーションの複数の物理的配信のグループ化を指してもよい。アプリケーションは、ウェブブラウザ、ワードプロセッサ、電子メールプログラム、データベースソフトウェア、プレゼンテーションソフトウェア、ゲームアプリケーション、メッセージングアプリケーションなどを限定を伴うことなく含んでもよい。いくつかの例では、論理アプリケーションの複数の物理的配信は、アプリケーションのさまざまなオペレーティングシステム（ＯＳ）バージョンに対応してもよい。例えば、アプリケーションのさまざまなＯＳバージョンは、アプリケーションのアンドロイド（登録商標）バージョン、アプリケーションのｉＯＳ（登録商標）バージョン、アプリケーションのウインドウズ（登録商標）バージョンなどを含んでもよい。これらのオペレーティングシステムおよびデバイスタイプの各々のためのコンパイル済みコードは、非常にさまざまな配信アーキテクチャからユーザのデバイスを選択するように制御され、割り当てられる。
【０００６】
いくつかの実施例に従って、論理アプリケーションを生成するための方法を開示する。当該方法は、アプリケーションの第１のバイナリファイルのための第１のリソースロケータを受信するステップを含む。いくつかの例では、第１のリソースロケータは、アプリケーションの第１のバイナリファイルの第１の配信位置（例えばユニフォームリソースロケータ（uniform resource locator：ＵＲＬ））を指し示してもよい。アプリケーションの第１のバイナリファイルは、アプリケーションの特定の物理的配信（例えばＯＳバージョン）に対応してもよい。例えば、第１のバイナリファイルは、アプリケーションのアンドロイド（登録商標）ＯＳバージョンに対応してもよい。
【０００７】
いくつかの実施例では、当該方法は、次いで、第１のリソースロケータのための第１のデータベースレコードへの第１の入力セットを生成するステップと、第１のデバイスの第１のオペレーティングシステムバージョンを第１の入力セットに割り当てるステップとを含む。例えば、第１の入力セットは、アプリケーションのアンドロイド（登録商標）バージョンのＵＲＬ配信位置に対応してもよい。
【０００８】
いくつかの実施例では、当該方法は、アプリケーションの第２のバイナリファイルのためのプロパティリスト（ｐ−リスト）メタデータファイルを受信するステップを含んでもよい。いくつかの例では、プロパティリストメタデータファイルは、アプリケーションの第２のバイナリファイルのプロパティリスト位置（例えばｐ−リストファイル）を指し示してもよい。アプリケーションの第２のバイナリファイルは、アプリケーションの特定の物理的配信（例えばＯＳバージョン）に対応してもよい。例えば、第２のバイナリファイルは、アプリケーションのｉＯＳ（登録商標）バージョンに対応してもよい。
【０００９】
いくつかの実施例では、当該方法は、プロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成するステップと、第２のデバイスの第２のオペレーティングシステムバージョンを第２の入力セットに割り当てるステップとを含んでもよい。例えば、第２の入力セットは、アプリケーションのｉＯＳ（登録商標）バージョンの「．ｐｌｉｓｔ」配信位置に対応してもよい。
【００１０】
いくつかの実施例では、当該方法は、第１の入力セットにリンクされた第１のユーザインターフェイス要素および第２の入力セットにリンクされた第２のユーザインターフェイス要素を有するユーザインターフェイスを表示するステップを含んでもよい。第１のユーザインターフェイス要素は、マルチプルタブインターフェイスの第１のタブに表示されてもよく、第２のユーザインターフェイス要素は、マルチプルタブインターフェイスの第２のタブに表示されてもよい。いくつかの実施例では、当該方法は、第１の入力セットおよび第２の入力セットに基づいて論理アプリケーションを生成するステップを含んでもよい。
【００１１】
いくつかの実施例では、第１の入力セットは、第１のデバイスの第１のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備え、第２の入力セットは、第２のデバイスの第２のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備える。
【００１２】
いくつかの実施例では、第１のオペレーティングシステムバージョンのタイプまたは第２のオペレーティングシステムバージョンのタイプは、ｉＯＳ（登録商標）バージョン、アンドロイド（登録商標）オペレーティングシステムバージョンおよびウインドウズ（登録商標）オペレーティングシステムバージョンからなる群から選択される。いくつかの実施例では、第１のデバイスまたは第２のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイス、およびウェアラブルデバイスからなる群から選択される。
【００１３】
いくつかの実施例では、当該方法は、第１のデバイスの第１のユーザに関連付けられる第１のポリシーを特定するステップと、ポリシーに基づいて、第１のデバイスにインストールすべき論理アプリケーションの第１のバージョンを決定するステップと、第１のデバイスへの論理アプリケーションの第１のバージョンのインストールを生じさせるステップとを含む。いくつかの実施例では、当該方法は、第２のデバイスの第２のユーザに関連付けられる第２のポリシーを特定するステップと、ポリシーに基づいて、第２のデバイスにインストールすべき論理アプリケーションの第２のバージョンを決定するステップと、第２のデバイスへの論理アプリケーションの第２のバージョンのインストールを生じさせるステップとを含む。いくつかの実施例では、当該方法は、論理アプリケーションの第１のバージョンを第１のデバイスにダウンロードさせ、論理アプリケーションの第２のバージョンを第２のデバイスにダウンロードさせるステップを含む。
【００１４】
いくつかの実施例に従って、異種の電子デバイスのためのアプリケーション配信を区分化するためのシステムを開示する。当該システムは、アプリケーションの第１のバイナリファイルのための第１のリソースロケータを受信し、アプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルを受信するための受信ユニットを含む。
【００１５】
いくつかの実施例では、当該システムは、第１のリソースロケータのための第１のデータベースレコードへの第１の入力セットを生成し、プロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成するための生成ユニットをさらに含む。
【００１６】
いくつかの実施例では、当該システムは、第１のデバイスの第１のオペレーティングシステムバージョンを第１の入力セットに割り当て、第２のデバイスの第２のオペレーティングシステムバージョンを第２の入力セットに割り当てるための割り当てユニットをさらに含む。
【００１７】
いくつかの実施例では、当該システムは、第１の入力セットにリンクされた第１のユーザインターフェイスユニットおよび第２の入力セットにリンクされた第２のユーザインターフェイスユニットを有するユーザインターフェイスを表示するための表示ユニットをさらに含む。
【００１８】
いくつかの実施例では、生成ユニットは、第１の入力セットおよび第２の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。
【００１９】
いくつかの実施例では、当該システムは、第１のデバイスの第１のユーザに関連付けられる第１のポリシーを特定し、第２のデバイスの第２のユーザに関連付けられる第２のポリシーを特定するための特定ユニットをさらに含む。
【００２０】
いくつかの実施例では、当該システムは、ポリシーに基づいて、第１のデバイスにインストールすべき論理アプリケーションの第１のバージョンを決定し、ポリシーに基づいて、第２のデバイスにインストールすべき論理アプリケーションの第２のバージョンを決定するための決定ユニットをさらに含む。
【００２１】
いくつかの実施例では、当該システムは、決定に基づいて、第１のデバイスへの論理アプリケーションの第１のバージョンのインストールを生じさせ、決定に基づいて、第２のデバイスへの論理アプリケーションの第２のバージョンのインストールを生じさせるためのインストールユニットをさらに含む。
【００２２】
いくつかの実施例では、当該システムは、論理アプリケーションの第２のバージョンをデバイスにダウンロードするようにプッシュ通知イベントを第２のデバイスに送信するための送信ユニットをさらに含む。
【００２３】
いくつかの実施例では、異種の電子デバイスのためのアプリケーション配信を区分化するためのさらなるシステムが開示される。当該システムは、論理アプリケーション生成エンジンと、論理アプリケーションインストールエンジンとを備える。論理アプリケーション生成エンジンは、アプリケーションの第１のバイナリファイルのための第１のデータベースレコードへの第１の入力セットを生成し、アプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成し、第１のデバイスの第１のオペレーティングシステムバージョンを第１の入力セットに割り当て、第２のデバイスの第２のオペレーティングシステムバージョンを第２の入力セットに割り当て、第１の入力セットおよび第２の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。論理アプリケーションインストールエンジンは、第１のデバイスまたは第２のデバイスへの論理アプリケーションのインストールを生じさせる。
【００２４】
本発明の実施例によって提供される技術的利点は多数ある。第１の入力セットおよび第２の入力セットを利用することによって、２つの異なるオペレーティングシステムを実行する２つの異なるデバイス上で単一の論理アプリケーションを異なって実行することができる。したがって、デバイスは、アプリケーションの別々のバージョンを維持および記憶する必要がない。上記のように、論理アプリケーションは、単一のインターフェイスを介して別々のコマンドを実行することができ、さまざまなユーザの電子デバイス（例えばスマートフォン、タブレット、ワークステーション、ウェアラブルコンピュータ）と企業のさまざまなサーバとの間で必要とされる接続の数を減少させる。
【００２５】
上記は、他の特徴および実施例とともに、以下の明細書、特許請求の範囲および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【００２６】
【図１】本発明の特定の実施例に係るコンピューティング環境１００の簡略ハイレベル図を示す。
【図２】本発明の実施例に係る論理アプリケーションの例示的な図である。
【図３】本明細書に記載されている論理アプリケーションを生成するための例示的なグラフィカルユーザインターフェイスを示す。
【図４】本明細書に記載されている論理アプリケーションの第１の物理的配信のための第１の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。
【図５】本明細書に記載されている論理アプリケーションの第２の物理的配信のための第２の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。
【図６】本明細書に記載されている論理アプリケーションを生成するための例示的なプロセス６００のフロー図を示す。
【図７】本明細書に記載されている論理アプリケーションをデバイスにインストールするための例示的なプロセス７００のフロー図を示す。
【図８】実施例を実現するための分散型システム８００の簡略図を示す。
【図９】本開示の実施例に係る、サービスがクラウドサービスとして提供され得るシステム環境９００の１つ以上のコンポーネントの簡略ブロック図である。
【図１０】本発明の実施例を実現するために使用され得る例示的なコンピュータシステム１０００を示す。
【図１１】本発明の特定の実施例に係る異種の電子デバイスのためのアプリケーション配信を区分化するためのシステム１１００を示す。
【発明を実施するための形態】
【００２７】
発明の詳細な説明
以下の記載では、説明を目的として、本発明の実施例が完全に理解されるように具体的な詳細が記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施例は実施可能であるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。
【００２８】
いくつかの局面に従って、論理アプリケーション生成システムを開示する。いくつかの実施例では、論理アプリケーション生成システムは、論理アプリケーションを生成するよう構成される。論理アプリケーションは、単一のインターフェイスを介して別々のコマンドを実行することができ、さまざまなユーザの電子デバイス（例えばスマートフォン、タブレット、ワークステーション、ウェアラブルコンピュータ）と企業のさまざまなサーバとの間で必要とされる接続の数を減少させる。上記のように、論理アプリケーションは、デバイスをプログラミングするためのアプリケーションの複数の物理的配信のグループ化を指すことがある。例えば、論理アプリケーションの複数の物理的配信は、アプリケーションのさまざまなＯＳバージョンに対応してもよい。例えば、論理アプリケーションは、アプリケーションのアンドロイド（登録商標）バージョン、アプリケーションのｉＯＳ（登録商標）バージョン、アプリケーションのウインドウズ（登録商標）ＯＳバージョンなどを含んでもよい。これらのオペレーティングシステムおよびデバイスタイプの各々のためのコンパイル済みコードは、非常にさまざまな配信アーキテクチャからユーザのデバイスを選択するように制御され、割り当てられる。いくつかの実施例では、論理アプリケーションは、論理アプリケーション生成システムのブラウザアプリケーションに表示されるユーザインターフェイスによって生成されてもよい。
【００２９】
特定の実施例では、論理アプリケーション生成システムは、論理アプリケーションをデバイスにインストールするよう構成されてもよい。例えば、デバイスは、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、スマートフォン、タブレットなどを含んでもよい。特定の実施例では、論理アプリケーション生成システムは、デバイスのユーザに関連付けられるポリシーを特定して、デバイスにインストールされる論理アプリケーションの特定のバージョンを決定するよう構成されてもよい。次いで、論理アプリケーション生成システムは、論理アプリケーションの、デバイスへのインストールに適切なバージョンをプッシュするよう構成されてもよい。
【００３０】
本発明の実施例に係る論理アプリケーションの生成は、アプリケーションのさまざまな物理的配信（例えばさまざまなＯＳバージョン）のための別々のアプリケーション定義および／またはインスタンスを生成する必要性をなくすなどの技術的利点を含む。アプリケーションのさまざまなＯＳバージョンに対応する個々のセキュリティ上安全な名前を追加する代わりに、デバイスのアプリケーションカタログに単一の論理アプリケーションを追加することができる。ユーザは、アプリケーションの特定のバージョンを選択して利用可能なアプリケーション配信のリストからダウンロードしなければならない代わりに、論理アプリケーションの適切なバージョンをアプリケーションカタログから直接インストールすることができる。さらに、アプリケーションの各物理的配信は、論理アプリケーションにおいて互いに独立して更新可能である。例えば、企業内の情報技術（ＩＴ）部門は、企業内の契約者群に割り当てられるアプリケーションのｉＯＳ（登録商標）バージョン更新情報から独立して、企業内の従業員群に割り当てられるアプリケーションのアンドロイド（登録商標）バージョンに対する更新情報を提供したい場合がある。アプリケーションの特定のＯＳバージョンに対する更新情報がシステムによって受信されると、当該論理アプリケーションの特定のバージョンをデバイスにインストールしている特定のユーザおよび／またはユーザ群を通知することができ、特定されたデバイスに当該更新情報をプッシュすることができる。
【００３１】
図１は、本発明の特定の実施例に係るコンピューティング環境１００の簡略ハイレベル図を示す。示されているように、コンピューティング環境１００は、通信ネットワーク１０６を介して論理アプリケーション生成システム１０４に通信可能に結合された１つ以上のリモートデバイス１０２（１）〜１０２（Ｎ）（集合的にデバイス１０２）を含む。いくつかの実施例では、論理アプリケーション生成システム１０４は、アプリケーションの複数の物理的配信を単一の論理アプリケーションにまとめることによってアプリケーションのさまざまな物理的配信を区分化するよう構成されてもよい。本明細書に記載されている「アプリケーション」は、デバイス１０２によって実行される任意のソフトウェアプログラムを指してもよい。アプリケーションは、ウェブブラウザ、ワードプロセッサ、電子メールプログラム、データベースソフトウェア、プレゼンテーションソフトウェア、ゲームアプリケーション、メッセージングアプリケーションなどを含んでもよいが、それらに限定されるものではない。上記のように、アプリケーションの複数の物理的配信は、アプリケーションのさまざまなＯＳバージョンに対応してもよい。例えば、アプリケーションのＯＳバージョンは、アプリケーションのアンドロイド（登録商標）バージョン、アプリケーションのｉＯＳ（登録商標）バージョンおよびアプリケーションのウインドウズ（登録商標）バージョンを含んでもよい。いくつかの例では、論理アプリケーション生成システム１０４は、企業内のサブシステムとして実現されてもよい。他の例では、論理アプリケーション生成システム１０４は、アプリケーションの配信を論理アプリケーションに区分化するためのサービスを企業に提供する、それ自体スタンドアロンのサービスとしても実現されてもよい。
【００３２】
いくつかの例では、デバイス１０２は、ユーザ（例えばユーザ＿１...ユーザ＿Ｍ）に関連付けられるデバイスを含んでもよい。例えば、デバイス１０２は、さまざまなタイプのものであってもよく、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、スマートフォン、タブレットなどを含むが、それらに限定されるものではない。デバイスは、別のデバイス上で実行されるワークスペースなどのエンドポイントデバイスも含んでもよい。ワークスペースは、ワークスペースを実行するデバイス上の企業データおよびアプリケーションへのアクセスを提供するための制御された環境であってもよい。例えば、セキュリティ上安全なコンテナアプリケーションがデバイス１０２上で実行されてもよい。デバイス１０２は、企業によって発行されるデバイス（例えば会社のデバイス）またはユーザのパーソナルデバイス（例えば「自分自身のデバイスの持ち込み（bring your own device：ＢＹＯＤ）」）も含んでもよいが、それらに限定されるものではない。
【００３３】
通信ネットワーク１０６は、デバイス１０２と論理アプリケーション生成システム１０４との間の通信を容易にする。通信ネットワーク１０６は、さまざまなタイプのものであり得て、１つ以上の通信ネットワークを含み得る。例えば、通信ネットワーク１０６は、インターネット、ワイドエリアネットワーク（wide area network：ＷＡＮ）、ローカルエリアネットワーク（local area network：ＬＡＮ）、イーサネット（登録商標）ネットワーク、パブリックまたはプライベートネットワーク、有線ネットワーク、無線ネットワークなど、およびそれらの組み合わせを含み得るが、それらに限定されるものではない。単一のＴＣＰ接続、ＩＥＥＥ８０２．ＸＸプロトコル一式、ＴＣＰ／ＩＰ、ＩＰＸ、ＳＡＮ、AppleTalk、Bluetooth（登録商標）および他のプロトコルを介して全二重通信チャネルを提供するウェブソケットなどの有線プロトコルおよび無線プロトコルを両方とも含む通信を容易にするために、さまざまな通信プロトコルが使用されてもよい。一般に、通信ネットワーク１０６は、デバイス１０２と論理アプリケーション生成システム１０４との間の通信を容易にする任意の通信ネットワークまたはインフラストラクチャを含んでもよい。
【００３４】
図１に示される実施例では、論理アプリケーション生成システム１０４は、論理アプリケーション生成エンジン１０８と、ポリシーエンジン１１０と、論理アプリケーションインストールエンジン１１２と、論理アプリケーションユーザインターフェイス（ＵＩ）１１４とを含む。論理アプリケーション生成エンジン１０８、ポリシーエンジン１１０、論理アプリケーションインストールエンジン１１２および論理アプリケーションＵＩ１１４は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、１つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および／もしくは組み合わせとして実現されてもよい。論理アプリケーション生成システム１０４のさまざまなコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定するよう意図されるものではない。代替的な実施例は、図１に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントを含んでもよく、および／または、図１に示されるものよりも多くのデバイスもしくは少ないデバイスを含んでもよい。
【００３５】
いくつかの実施例では、論理アプリケーション生成エンジン１０８は、デバイス１０２上で実行されるアプリケーションの論理アプリケーションを生成するよう構成されてもよい。いくつかの例では、論理アプリケーションは、一組の１つ以上の入力を備えるデータ構造として実現されてもよい。当該データ構造は、さまざまなタイプのデータ構造の１つ以上の組み合わせとして実現されてもよく、当該さまざまなタイプのデータ構造は、アレイ、レコード、リレーショナルデータベーステーブル、ハッシュテーブル、連結リスト、または他のタイプのデータ構造を含むが、それらに限定されるものではない。論理アプリケーションのための例示的なデータ構造は、図２に示されている。
【００３６】
いくつかの例では、論理アプリケーションへの一組の１つ以上の入力は、アプリケーションのさまざまなＯＳバージョンに関連する情報を含んでもよい。例えば、論理アプリケーションへの第１の入力セットは、アプリケーションのアンドロイド（登録商標）バージョンに関連する情報を含んでもよく、論理アプリケーションへの第２の入力セットは、アプリケーションのｉＯＳ（登録商標）バージョンに関連する情報を含んでもよく、論理アプリケーションへの第３の入力セットは、アプリケーションのウインドウズ（登録商標）ＯＳバージョンに関連する情報を含んでもよい、などである。いくつかの例では、論理アプリケーションは、一組のデータベースレコードを有するデータベーステーブルとして実現されてもよく、第１の入力セットは、データベーステーブルにおける第１のデータベースレコードに対応し、第２の入力セットは、データベーステーブルにおける第２のデータベースレコードに対応し、第３の入力セットは、データベーステーブルにおける第３のデータベースレコードに対応する。
【００３７】
いくつかの実施例では、論理アプリケーションは、論理アプリケーションユーザインターフェイス（ＵＩ）１１４によって生成されてもよい。例えば、論理アプリケーション生成システム１０４のユーザ（例えば管理者）は、論理アプリケーションＵＩ１１４と対話して論理アプリケーションを生成してもよい。いくつかの例では、論理アプリケーションＵＩ１１４は、論理アプリケーション生成システムにおけるブラウザアプリケーションに表示されてもよく、管理者は、論理アプリケーションＵＩと対話して論理アプリケーションを生成してもよい。図３および図４は、論理アプリケーションＵＩ１１４による論理アプリケーションの生成を示す。
【００３８】
いくつかの実施例によれば、論理アプリケーションＵＩ１１４は、アプリケーションの第１のバイナリファイルのための第１のリソースロケータを受信してもよい。例えば、第１のリソースロケータは、アプリケーションのアンドロイド（登録商標）バージョンのＵＲＬ位置であってもよい。論理アプリケーション生成エンジン１０８は、第１のリソースロケータのために論理アプリケーションへの第１の入力セットを生成するよう構成されてもよい。いくつかの例では、論理アプリケーション生成エンジン１０８は、第１のデバイスの第１のＯＳバージョンを第１の入力セットに割り当ててもよい。例えば、第１の入力セットは、アプリケーションのアンドロイド（登録商標）ＯＳバージョンに関連する情報を含んでもよい。
【００３９】
いくつかの例では、論理アプリケーションＵＩ１１４は、論理アプリケーションＵＩ１１４によってアプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルを受信してもよい。例えば、プロパティリスト（ｐ−リスト）メタデータファイルは、アプリケーションのｉＯＳ（登録商標）バージョンのＵＲＬ位置を含んでもよい。プロパティリストメタデータファイルは、アプリケーションに関連するデータを記憶するＸＭＬファイルまたはバイナリファイルであってもよい。論理アプリケーション定義エンジン１０８は、プロパティリストメタデータファイルに基づいて論理アプリケーションへの第２の入力セットを生成するよう構成されてもよい。いくつかの例では、論理アプリケーション生成エンジン１０８は、第２のデバイスの第２のＯＳプラットフォームを第２の入力セットに割り当ててもよい。例えば、第２の入力セットは、アプリケーションのｉＯＳ（登録商標）プラットフォームバージョンに関連する情報を含んでもよい。
【００４０】
いくつかの例では、論理アプリケーションＵＩ１１４は、アプリケーションの第３のバイナリファイルのためのウインドウズストア（登録商標）位置を受信してもよい。例えば、ウインドウズストア（登録商標）位置は、アプリケーションのウインドウズ（登録商標）バージョンのＵＲＬ位置を含んでもよい。論理アプリケーション定義エンジン１０８は、ウインドウズストア（登録商標）位置のために論理アプリケーションへの第３の入力セットを生成するよう構成されてもよい。いくつかの例では、論理アプリケーション生成エンジン１０８は、第３のデバイスの第３のＯＳプラットフォームを第２の入力セットに割り当ててもよい。例えば、第３の入力セットは、アプリケーションのウインドウズ（登録商標）プラットフォームバージョンに関連する情報を含んでもよい。上記の説明は、第１、第２および第３の入力セットを有する論理アプリケーションの生成に関連するが、論理アプリケーションは、他の実施例ではより多くの入力セットまたはより少ない入力セットで生成されてもよい。
【００４１】
いくつかの実施例では、論理アプリケーションＵＩ１１４は、アプリケーションの特定の物理的配信についてのさらなる情報を受信してもよい。当該さらなる情報は、例えば、アプリケーションの特定の物理的配信の最小および最大ＯＳバージョン、アプリケーション名、アプリケーションのカテゴリ、アプリケーションの記述、アプリケーションに関連付けられるベンダーの名前、アプリケーションのバージョン、アプリケーションを表わすアイコン、アプリケーションのＵＲＬ、アプリケーションタイプ、アプリケーションの作成時刻などを含んでもよい。いくつかの実施例では、論理アプリケーション生成エンジン１０８は、このさらなる情報を用いて論理アプリケーションを生成するよう構成されてもよい。いくつかの例では、そのように生成された論理アプリケーションは、アプリケーションカタログ１１６に記憶されてもよい。
【００４２】
いくつかの実施例では、論理アプリケーション生成システム１０４は、ユーザ／デバイス情報データベース１２０を含んでもよい。いくつかの例では、ユーザ／デバイス情報データベース１２０は、ユーザおよびユーザに関連付けられるデバイスについての情報を記憶してもよく、当該情報は、例えば、リモートデバイス上のオペレーティングシステムのタイプ、オペレーティングシステムのバージョン、リモートデバイスが別のデバイスで運営管理される場合にはホスト識別子、デバイスタイプ、ＩＭＥＩ（国際移動体装置識別（International Mobile Equipment Identity））番号、リモートデバイスのモデル、リモートデバイスのサービスプロバイダ（例えばキャリア）、デバイス名、デバイス状態、またはリモートデバイスについての他の情報を含む。
【００４３】
いくつかの実施例では、論理アプリケーションインストールエンジン１１２は、論理アプリケーションをデバイス１０２にインストールするよう構成されてもよい。いくつかの例では、論理アプリケーションインストールエンジン１１２は、デバイス１０２のユーザに関連付けられるポリシーを特定して、特定の論理アプリケーション（例えば「スマートバード（Smart Birds）」ゲームアプリケーション）をデバイスにインストールできるか否かを判断するよう構成されてもよい。いくつかの例では、ユーザポリシーは、ポリシールールデータベース１１８に記憶されてもよい。例えば、ユーザポリシーは、デバイスに関連付けられるユーザの役割または任務に関連してもよい。例えば、ユーザの役割または任務は、企業によって規定されるものであってもよい。例えば、ユーザは、企業内で「管理者」の役割を有してもよく、「マネージャ」の役割を有してもよく、「セールスアナリスト」の役割を有してもよい、などである。役割は、ユーザのためのアクセスポリシーを規定してもよく、当該アクセスポリシーは、例えば、ユーザが使用することを許可されるデバイスの特定のタイプ、ユーザによってユーザのデバイスにインストールされてもよいアプリケーションの特定のタイプおよび／またはバージョンを含む。
【００４４】
いくつかの実施例では、論理アプリケーションインストールエンジン１１２は、次いで、デバイス１０２にインストールされる論理アプリケーションの特定のバージョンを決定してもよい。いくつかの例では、論理アプリケーションインストールエンジン１１２は、さらなる基準を適用して、デバイス１０２にインストールされる論理アプリケーションの特定のバージョンを決定してもよい。当該さらなる基準は、例えば、デバイス１０２によってサポートされるＯＳの特定のバージョンが論理アプリケーションの特定のバージョン（アンドロイド（登録商標）、ｉＯＳ（登録商標）、ウインドウズ（登録商標）など）の最小および最大範囲内であると判断することを含んでもよい。例えば、デバイス１０２がｉＯＳ（登録商標）８．１．２モバイルＯＳをサポートする場合、論理アプリケーションインストールエンジン１１２は、デバイスのＯＳの最小および最大範囲内の論理アプリケーションのｉＯＳ（登録商標）バージョンをデバイス１０２にインストールすべきであると判断してもよい。当該さらなる基準は、デバイスがアプリケーションをインストールすることができるさまざまなタイプの配信位置（例えばバイナリ、ＵＲＬ、アップストア（登録商標））を判断することなども含んでもよい。
【００４５】
デバイスが当該さらなる基準を満たす場合、いくつかの例では、論理アプリケーションインストールエンジン１１２は、論理アプリケーションの特定のバージョンをデバイス１０２にインストールするよう構成されてもよい。いくつかの例では、論理アプリケーションインストールエンジン１１２は、プッシュ通知イベントをデバイス１０２に送信することによってデバイス１０２への論理アプリケーションの特定のバージョンのインストールを開始するよう構成されてもよい。いくつかの例では、プッシュ通知は、デバイス１０２のユーザが論理アプリケーションの特定のバージョンをデバイス１０２にインストールすることを可能にするリンクを用いてデバイス１０２に送信されるメッセージであってもよい。デバイス１０２のユーザは、当該メッセージと対話して論理アプリケーションをデバイス１０２にインストールしてもよい。いくつかの例では、論理アプリケーションインストールエンジン１１２は、プッシュ通知イベントをデバイス１０２に送信して、論理アプリケーションの特定のバージョンがデバイス１０２におけるアプリケーションカタログに追加されたことを知らせるよう構成されてもよく、デバイス１０２は、アプリケーションカタログから論理アプリケーションの特定のバージョンをインストールしてもよい。
【００４６】
図２は、本発明の実施例に係る論理アプリケーションの例示的な図である。図２に示される実施例は、「スマートバード」ゲームアプリケーションのために生成される論理アプリケーションを示す。一例では、論理アプリケーションは、アプリケーションのさまざまな物理的配信に関連する一組の１つ以上の入力を備えるデータ構造２００として実現されてもよい。図２に示される例では、データ構造２００は、一組の１つ以上のデータベースレコードを有するデータベーステーブルである。データベーステーブルにおける第１のデータベースレコードは、論理アプリケーションに関連付けられる第１の入力セットに関連する情報を含んでもよい。例えば、第１の入力セットは、「スマートバード」ゲームアプリケーションのアンドロイド（登録商標）バージョンに対応してもよい。第２のデータベースレコードは、論理アプリケーションに関連付けられる第２の入力セットに関連する情報を含んでもよい。例えば、論理アプリケーションにおける第２の入力セットは、アプリケーションのｉＯＳ（登録商標）バージョンに関連する情報を含んでもよい。第３のデータベースレコードは、論理アプリケーションに関連付けられる第３の入力セットに関連する情報を含んでもよい。例えば、論理アプリケーションにおける第３の入力セットは、アプリケーションのウインドウズ（登録商標）ＯＳバージョンに関連する情報を含んでもよい、などである。示されている例は、３つのデータベースレコードまたは行を有するデータベーステーブルとしての論理アプリケーションの実現例を示すが、論理アプリケーションは、他の実施例ではより少ないデータベースレコードまたはより多いデータベースレコードを有するデータベーステーブルとして実現されてもよい。
【００４７】
さらに示されているように、さまざまな入力セット（第１、第２、第３）は、アプリケーションの各バージョンに関連するさらなる情報を含んでもよい。当該さらなる情報は、例えば、アプリケーション識別子、アプリケーション名、アプリケーションタイプ、アプリケーション記述、アプリケーションカテゴリ、アプリケーションＯＳプラットフォーム（例えばアンドロイド（登録商標）、ｉＯＳ（登録商標）、ウインドウズ（登録商標）など）、アプリケーション配信位置（例えばＵＲＬ、バイナリ、アップストア（登録商標）、ウインドウズストア（登録商標）など）、アプリケーションバージョン、最小アプリケーションＯＳプラットフォームバージョン、最大アプリケーションＯＳプラットフォームバージョン、アプリケーションパッケージ名などを含んでもよい。
【００４８】
上記のように、ならびに図３および図４にさらに示されるように、いくつかの実施例では、論理アプリケーションは、論理アプリケーション生成システムにおける論理アプリケーションユーザインターフェイス（ＵＩ）１１４とのユーザの対話の結果として生成されてもよい。
【００４９】
図３は、本明細書に記載されている論理アプリケーションを生成するための例示的なグラフィカルユーザインターフェイスを示す。図３では、例示的な環境３００は、論理アプリケーション生成システムにおけるブラウザアプリケーションによって閲覧可能な、論理アプリケーションＵＩ１１４によって提供されるグラフィカルユーザインターフェイスであってもよい。図３に示される例では、ユーザは、アプリケーションの特定のタイプ、アプリケーション名、アプリケーションの記述などの、アプリケーションに関連する情報を提供してもよい。また、ユーザは、アプリケーションの特定のＯＳプラットフォーム（例えばアンドロイド（登録商標）、ｉＯＳ（登録商標）、ウインドウズ（登録商標）など）、アプリケーションベンダーおよびアイコンを選択してアプリケーションを表示してもよい。
【００５０】
特定の実施例では、グラフィカルユーザインターフェイス３００は、ユーザインターフェイスの第１のタブに第１のユーザインターフェイス要素３０２を含み、ユーザインターフェイスの第２のタブに第２のユーザインターフェイス要素３０４を含んでもよい。一例では、ユーザインターフェイス要素３０２，３０４は、アプリケーションのさまざまな配信位置（例えばＵＲＬ、バイナリ、アップストア（登録商標）、ウインドウズストア（登録商標）など）を示してもよい。例えば、ユーザは、第１のユーザインターフェイス要素３０２を選択して（図４に示されるように）アプリケーションの第１の配信（例えばアップストア（登録商標））位置のための第１の入力セットを提供してもよく、第２のユーザインターフェイス要素３０４を選択して（図５に示されるように）アプリケーションの第２の配信（例えばバイナリファイル）位置のための第２の入力セットを提供してもよい。
【００５１】
図４は、本明細書に記載されている論理アプリケーションの第１の物理的配信のための第１の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。図４では、例示的な環境４００は、論理アプリケーション生成システムにおけるブラウザアプリケーションによって閲覧可能な、論理アプリケーションＵＩ１１４によって提供されるグラフィカルユーザインターフェイスであってもよい。図４に示される例では、ユーザは、アプリケーションのアップストア（登録商標）位置のための第１の入力セットに関連する情報を提供してもよい。この情報は、例えば、アプリケーションが利用可能な特定の配信位置、アプリケーション識別子、アプリケーションのＵＲＬ、アプリケーションに関連付けられるパッケージ名、アプリケーションのバージョン、およびアプリケーションの最小ＯＳバージョンを含んでもよい。
【００５２】
図５は、本明細書に記載されている論理アプリケーションの第２の物理的配信のための第２の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。図５では、例示的な環境５００は、論理アプリケーション生成システムにおけるブラウザアプリケーションによって閲覧可能な、論理アプリケーションＵＩ１１４によって提供されるグラフィカルユーザインターフェイスであってもよい。図５に示される例では、ユーザは、アプリケーションのアンドロイド（登録商標）位置のための第２の入力セットに関連する情報を提供してもよい。この情報は、例えば、アプリケーションの特定の配信位置（例えばバイナリファイル）、アプリケーション名、アプリケーションタイプ、アプリケーションアイコン、アプリケーションに関連付けられるパッケージ名、アプリケーションのバージョン、ならびにアプリケーションの最小および最大ＯＳバージョンを含んでもよい。
【００５３】
図６〜図７は、本発明の特定の実施例に係る論理アプリケーションを生成するためのそれぞれのプロセス６００および７００を示す例示的なフロー図を示す。これらのプロセスは、論理フロー図として示されており、その各オペレーションは、ハードウェア、コンピュータ命令またはそれらの組み合わせで実現可能である。コンピュータ命令の文脈では、オペレーションは、１つ以上のプロセッサによって実行されたときに記載されているオペレーションを実行する、１つ以上のコンピュータ読取可能な記憶媒体に記憶されたコンピュータによって実行可能な命令を表わしてもよい。一般に、コンピュータによって実行可能な命令は、特定の機能を実行するまたは特定のデータタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。オペレーションの記載順序は、限定として解釈されるよう意図されるものではなく、記載されているオペレーションのうちの任意の数のオペレーションを任意の順序でおよび／または並列に組み合わせて、プロセスを実現してもよい。
【００５４】
さらに、プロセスのうちのいくつか、いずれかまたは全ては、実行可能な命令で構成された１つ以上のコンピュータシステムの制御下で実行されてもよく、１つ以上のプロセッサ上で集合的に実行されるコード（例えば実行可能な命令、１つ以上のコンピュータプログラム、または１つ以上のアプリケーション）として、ハードウェアによって、またはそれらの組み合わせで実現されてもよい。上記のように、コードは、例えば１つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能な記憶媒体に記憶されてもよい。コンピュータ読取可能な記憶媒体は、非一時的であってもよい。いくつかの例では、（例えばポリシーエンジン、論理アプリケーションＵＩ、論理アプリケーション生成エンジンおよび論理アプリケーションインストールエンジンを少なくとも利用する）少なくとも図１に示される論理アプリケーション生成システム１０４は、図６〜図７のプロセス６００および７００をそれぞれ実行してもよい。
【００５５】
図６は、本明細書に記載されている論理アプリケーションを生成するための例示的なプロセス６００のフロー図を示す。６００のプロセスはステップ６０２から開始してもよく、ステップ６０２において、論理アプリケーション生成エンジン（例えば１０８）は、論理アプリケーションＵＩ（例えば１１４）を介してアプリケーションの第１のバイナリファイルのための第１のリソースロケータを受信する。上記のように、第１のリソースロケータは、アプリケーションの第１のバイナリファイルの第１の配信位置（例えばユニフォームリソースロケータ（ＵＲＬ））を指し示してもよい。アプリケーションの第１のバイナリファイルは、アプリケーションの特定の物理的配信（例えばＯＳプラットフォームバージョン）に対応してもよい。例えば、第１のバイナリファイルは、アプリケーションのアンドロイド（登録商標）ＯＳバージョンに対応してもよい。
【００５６】
ステップ６０４において、論理アプリケーション生成エンジンは、第１のリソースロケータのための第１のデータベースレコードへの第１の入力セットを生成する。ステップ６０６において、論理アプリケーション生成エンジンは、第１のデバイスの第１のＯＳバージョンを第１の入力セットに割り当てる。例えば、第１の入力セットは、アプリケーションのアンドロイド（登録商標）バージョンのＵＲＬ配信位置に対応してもよい。
【００５７】
いくつかの実施例では、ステップ６０８において、論理アプリケーション生成エンジンは、アプリケーションの第２のバイナリファイルのためのプロパティリスト（ｐ−リスト）メタデータファイルを受信してもよい。上記のように、プロパティリストメタデータファイルは、アプリケーションの第２のバイナリファイルのプロパティリスト位置（例えばｐ−リストファイル）を指し示してもよい。アプリケーションの第２のバイナリファイルは、アプリケーションの特定の物理的配信（例えばＯＳプラットフォームバージョン）に対応してもよい。例えば、第２のバイナリファイルは、アプリケーションのｉＯＳ（登録商標）バージョンに対応してもよい。
【００５８】
ステップ６１０において、論理アプリケーション生成エンジンは、プロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成してもよい。ステップ６１２において、論理アプリケーション生成エンジンは、第２のデバイスの第２のオペレーティングシステムバージョンを第２の入力セットに割り当ててもよい。例えば、第２の入力セットは、アプリケーションのｉＯＳ（登録商標）バージョンの「．ｐｌｉｓｔ」配信位置に対応してもよい。ステップ６１４において、論理アプリケーション生成エンジンは、第１の入力セットおよび第２の入力セットに基づいて論理アプリケーションを生成してもよい。上記のように、いくつかの実施例では、論理アプリケーションは、一組のデータベースレコードを有するデータベーステーブルとして実現されてもよく、第１の入力セットは、データベーステーブルにおける第１のデータベースレコードに対応し、第２の入力セットは、データベーステーブルにおける第２のデータベースレコードに対応し、第３の入力セットは、データベーステーブルにおける第３のデータベースレコードに対応する。
【００５９】
図７は、本明細書に記載されている論理アプリケーションをデバイスにインストールするための例示的なプロセス７００のフロー図を示す。７００のプロセスはステップ７０２から開始してもよく、ステップ７０２において、論理アプリケーション生成システムは、通信ネットワークにおけるデバイス（例えば１０２）を登録する。例えば、デバイスは、ユーザ／デバイス情報データベース１２０に記憶されたデバイスについての情報に基づいて登録されてもよい。ステップ７０４において、論理アプリケーションインストールエンジンは、デバイスのユーザに関連付けられるポリシーを特定してもよい。上記のように、ユーザポリシーは、デバイスに関連付けられるユーザの役割または任務に関連してもよい。ステップ７０６において、論理アプリケーションインストールエンジンは、さらなる基準を適用することによって、デバイスにインストールされるべき論理アプリケーションの特定のバージョンを決定してもよい。上記のように、さらなる基準は、例えば、デバイスによってサポートされるＯＳの特定のバージョンが論理アプリケーションの特定のバージョン（アンドロイド（登録商標）、ｉＯＳ（登録商標）、ウインドウズ（登録商標）など）の最小および最大範囲内であると判断すること、デバイスがアプリケーションをインストールすることができるさまざまなタイプの配信位置（例えばバイナリ、ＵＲＬ、アップストア（登録商標））を判断することなどを含んでもよい。
【００６０】
ステップ７０８において、論理アプリケーションインストールエンジンは、さらなる基準が満たされたか否かを判断する。さらなる基準が満たされていない場合、ステップ７１０において、論理アプリケーションの特定のバージョンはデバイスにインストールされない。さらなる基準が満たされている場合、いくつかの実施例では、論理アプリケーションインストールエンジンは、デバイスへの論理アプリケーションの特定のバージョンのインストールを開始するよう構成される。
【００６１】
図８は、実施例を実現するための分散型システム８００の簡略図を示す。示されている実施例では、分散型システム８００は、１つ以上のクライアントコンピューティングデバイス８０２，８０４，８０６および８０８を含み、それらは、１つ以上のネットワーク８１０を介してウェブブラウザ、所有権付きクライアント（例えばオラクルフォームズ（Oracle Forms））などのクライアントアプリケーションを実行および動作させるよう構成される。サーバ８１２は、リモートクライアントコンピューティングデバイス８０２，８０４，８０６および８０８とネットワーク８１０を介して通信可能に結合されてもよい。
【００６２】
さまざまな実施例では、サーバ８１２は、アプリケーションの配信の区分化を提供するサービスおよびアプリケーションなどの１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。特定の実施例では、サーバ８１２は、非仮想および仮想環境を含むことができる他のサービスまたはソフトウェアアプリケーションも提供してもよい。いくつかの実施例では、これらのサービスは、ウェブに基づくサービスもしくはクラウドサービスとして、またはＳｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）モデルの下で、クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８のユーザに対して提供されてもよい。クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８を動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用してサーバ８１２と対話して、これらのコンポーネントによって提供されるサービスを利用してもよい。
【００６３】
図８に示される構成では、システム８００のソフトウェアコンポーネント８１８，８２０および８２２は、サーバ８１２上で実現されるものとして示されている。他の実施例では、システム８００のコンポーネントのうちの１つ以上および／またはこれらのコンポーネントによって提供されるサービスは、クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８のうちの１つ以上によって実現されてもよい。クライアントコンピューティングデバイスを動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。分散型システム８００とは異なってもよいさまざまな異なるシステム構成が可能であることが理解されるべきである。図８に示される実施例は、したがって、実施例のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【００６４】
クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８は、さまざまなタイプのコンピューティングシステムを含んでもよい。例えば、クライアントコンピューティングデバイスは、携帯可能な手持ち式のデバイス（例えばｉＰｈｏｎｅ（登録商標）、セルラー電話、ｉＰａｄ（登録商標）、コンピューティングタブレット、携帯情報端末（personal digital assistant：ＰＤＡ））またはウェアラブルデバイス（例えばＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標）頭部装着型ディスプレイ）を含んでもよく、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）などのソフトウェア、および／もしくは、ｉＯＳ、Ｗｉｎｄｏｗｓ  Ｐｈｏｎｅ、Ａｎｄｒｏｉｄ、ＢｌａｃｋＢｅｒｒｙ  １０、Ｐａｌｍ  ＯＳなどのさまざまなモバイルオペレーティングシステムを実行する。デバイスは、さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス（short message service：ＳＭＳ）アプリケーションなどのさまざまなアプリケーションをサポートしてもよく、さまざまな他の通信プロトコルを使用してもよい。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータも含んでもよく、一例として、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ（登録商標）および／またはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、例えばＧｏｏｇｌｅ  Ｃｈｒｏｍｅ  ＯＳなどのさまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステムを限定を伴うことなく含む、さまざまな市場で入手可能なＵＮＩＸ（登録商標）またはＵＮＩＸのようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。クライアントコンピューティングデバイスは、ネットワーク８１０を介して通信することができる、シンクライアントコンピュータ、インターネットにより可能化されるゲームシステム（例えばＫｉｎｅｃｔ（登録商標）ジェスチャ入力デバイスを伴うかまたは伴わないＭｉｃｒｏｓｏｆｔ  Ｘｂｏｘゲームコンソール）および／または個人メッセージ伝達デバイスなどの電子デバイスも含んでもよい。
【００６５】
図８の分散型システム８００は４つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなど、他のデバイスがサーバ８１２と対話してもよい。
【００６６】
分散型システム８００におけるネットワーク８１０は、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（システムネットワークアーキテクチャ）、ＩＰＸ（インターネットパケット交換）、ＡｐｐｌｅＴａｌｋなどを限定を伴うことなく含む、さまざまな入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。単に一例として、ネットワーク８１０は、ローカルエリアネットワーク（ＬＡＮ）、イーサネット（登録商標）、トークンリングに基づくネットワーク、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク（virtual private network：ＶＰＮ）、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（例えば米国電気電子学会（ＩＥＥＥ）１００２．１１のプロトコル一式、Ｂｌｕｅｔｏｏｔｈ（登録商標）、および／もしくはその他の無線プロトコルのうちのいずれかの下で動作するネットワーク）、ならびに／またはこれらの任意の組み合わせおよび／もしくは他のネットワークであり得る。
【００６７】
サーバ８１２は、１つ以上の汎用コンピュータ、専用のサーバコンピュータ（一例としてＰＣ（パーソナルコンピュータ）サーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む）、サーバファーム、サーバクラスタ、またはその他の適切な構成および／もしくは組み合わせで構成されてもよい。サーバ８１２は、仮想オペレーティングシステムを実行する１つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。論理ストレージデバイスの１つ以上の柔軟なプールを仮想化してサーバのために仮想ストレージデバイスを維持することができる。仮想ネットワークを、サーバ８１２によって、ソフトウェア定義のネットワーク接続を用いて制御することができる。さまざまな実施例において、サーバ８１２は、前述の開示に記載される１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。例えば、サーバ８１２は、本開示の実施例に従って上記の処理を実行するためのサーバに対応してもよい。
【００６８】
サーバ８１２は、上記のもののうちのいずれかを含むオペレーティングシステム、および任意の市場で入手可能なサーバオペレーティングシステムを実行してもよい。サーバ８１２は、ＨＴＴＰ（ハイパーテキスト転送プロトコル）サーバ、ＦＴＰ（ファイル転送プロトコル）サーバ、ＣＧＩ（コモンゲートウェイインターフェイス）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバなどを含むさまざまなさらなるサーバアプリケーションおよび／または中間層アプリケーションのうちのいずれかも実行してもよい。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース、ＩＢＭ（インターナショナルビジネスマシンズ）などから市場で入手可能なものを含むが、それらに限定されるものではない。
【００６９】
いくつかの実現例では、サーバ８１２は、クライアントコンピューティングデバイス８０２，８０４，８０６および８０８のユーザから受信されるデータフィードおよび／またはイベント更新情報を解析および整理統合するための１つ以上のアプリケーションを含んでもよい。一例として、データフィードおよび／またはイベント更新情報は、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能計量ツール（例えばネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含んでもよい、１つ以上の第三者情報源および連続データストリームから受信される、Ｔｗｉｔｔｅｒ（登録商標）フィード、Ｆａｃｅｂｏｏｋ（登録商標）更新情報またはリアルタイムの更新情報を含んでもよいが、それらに限定されるものではない。サーバ８１２は、データフィードおよび／またはリアルタイムのイベントをクライアントコンピューティングデバイス８０２，８０４，８０６および８０８の１つ以上の表示デバイスを介して表示するための１つ以上のアプリケーションも含んでもよい。
【００７０】
分散型システム８００は、１つ以上のデータベース８１４および８１６も含んでもよい。これらのデータベースは、アプリケーション情報などの情報および本発明の実施例によって使用される他の情報を記憶するための機構を提供してもよい。データベース８１４および８１６は、さまざまな位置にあってもよい。一例として、データベース８１４および８１６のうちの１つ以上は、サーバ８１２に局在する（および／またはサーバ８１２に常駐する）非一時的な記憶媒体にあってもよい。代替的に、データベース８１４および８１６は、サーバ８１２から遠隔にあり、ネットワークに基づくかまたは専用の接続を介してサーバ８１２と通信してもよい。一組の実施例では、データベース８１４および８１６は、記憶域ネットワーク（storage-area network：ＳＡＮ）にあってもよい。同様に、サーバ８１２に帰する機能を実行するための任意の必要なファイルが、適宜、サーバ８１２上においてローカルに、および／または遠隔で記憶されてもよい。一組の実施例では、データベース８１４および８１６は、ＳＱＬフォーマットされたコマンドに応答してデータを記憶、更新および検索取得するように適合される、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでもよい。
【００７１】
いくつかの実施例では、上記のデバイスエンロールメントサービスは、クラウド環境を介してサービスとして提供されてもよい。図９は、本開示の実施例に従って、サービスがクラウドサービスとして提供されてもよいシステム環境９００の１つ以上のコンポーネントの簡略ブロック図である。図９における示されている実施例では、システム環境９００は、１つ以上のクライアントコンピューティングデバイス９０４，９０６および９０８を含み、１つ以上のクライアントコンピューティングデバイス９０４，９０６および９０８は、アプリケーションの配信の区分化のためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム９０２と対話するようにユーザによって使用されてもよい。クラウドインフラストラクチャシステム９０２は、サーバ８１２のための上記のものを含んでもよい１つ以上のコンピュータおよび／またはサーバを備えてもよい。
【００７２】
図９に示されるクラウドインフラストラクチャシステム９０２は図示されるもの以外のコンポーネントを有してもよいことが理解されるべきである。さらに、図９に示される実施例は、本発明の実施例を組み込んでもよいクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム９０２は、図に示されるよりも多いコンポーネントもしくは少ないコンポーネントを有してもよく、２つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい。
【００７３】
クライアントコンピューティングデバイス９０４，９０６および９０８は、８０２，８０４，８０６および８０８に対して上記されたものと同様のデバイスであってもよい。クライアントコンピューティングデバイス９０４，９０６および９０８は、ウェブブラウザ、所有権付きクライアントアプリケーション（例えばオラクルフォームズ）、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるよう構成されてもよく、当該クライアントアプリケーションは、クラウドインフラストラクチャシステム９０２と対話して、クラウドインフラストラクチャシステム９０２によって提供されるサービスを使用するようにクライアントコンピューティングデバイスのユーザによって使用されてもよい。例示的なシステム環境９００が３つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの他のデバイスがクラウドインフラストラクチャシステム９０２と対話してもよい。
【００７４】
ネットワーク９１０は、クライアント９０４，９０６および９０８とクラウドインフラストラクチャシステム９０２との間におけるデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク１２１０に対して上記されたものを含む、さまざまな市場で入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。
【００７５】
特定の実施例では、クラウドインフラストラクチャシステム９０２によって提供されるサービスは、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされるサービスのホストを含んでもよい。アプリケーション管理に関連するサービスに加えて、オンラインデータストレージおよびバックアップソリューション、ウェブに基づく電子メールサービス、運営管理されるオフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理される技術サポートサービスなどを限定を伴うことなく含むさまざまな他のサービスも提供されてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、動的にスケーリングしてそのユーザのニーズを満たすことができる。
【００７６】
特定の実施例では、クラウドインフラストラクチャシステム９０２によって提供されるあるサービスのある具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。典型的には、パブリックなクラウド環境においては、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なる。例えば、クラウドサービスプロバイダのシステムは、アプリケーションを運営管理してもよく、ユーザは、インターネットなどの通信ネットワークを介して、オンデマンドで、アプリケーションをオーダーし使用してもよい。
【００７７】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、運営管理されるデータベース、運営管理されるウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダーによってユーザに提供されるかもしくは他の態様で当該技術分野において公知であるような他のサービスに対する保護されたコンピュータネットワークアクセスを含んでもよい。例えば、サービスは、クラウド上のリモートストレージに対するインターネットを介してのパスワード保護されたアクセスを含むことができる。別の例として、サービスは、ネットワーク接続された開発者による個人的な使用のために、ウェブサービスに基づく運営管理されたリレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダーのウェブサイトにおいて運営管理される電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
【００７８】
特定の実施例では、クラウドインフラストラクチャシステム９０２は、セルフサービスの、サブスクリプションに基づく、弾性的にスケーラブルで、信頼性があり、非常に利用可能性があり、およびセキュリティ上安全な態様で顧客に対して配送されるアプリケーション、ミドルウェア、データベースサービス提供一式を含んでもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド（Oracle Public Cloud）である。
【００７９】
クラウドインフラストラクチャシステム９０２は、「ビッグデータ」関連の計算および解析ツールも提供してもよい。「ビッグデータ」という語は、一般に、大量のデータを視覚化し、傾向を検出し、および／またはその他の態様でデータと対話するようにアナリストおよび研究者によって記憶および操作され得る非常に大きなデータセットを指すように用いられる。このビッグデータおよび関連のアプリケーションは、インフラストラクチャシステムによって、多数のレベルにおいて、および異なるスケールで運営管理および／または操作され得る。そのようなデータを表示するため、またはデータもしくはデータが表現するものに対する外部の力をシミュレートするために、並列に連結された何十、何百または何千ものプロセッサがそのようなデータに対して作用することができる。これらのデータセットは、データベース状にもしくはさもなければ構造モデルに従って編成されたものなどの構造化データ、および／または非構造化データ（例えば電子メール、画像、データブロブ（バイナリラージオブジェクト）、ウェブページ、複合イベント処理）を含み得る。より多くの（またはより少ない）計算リソースを比較的迅速に対象に集中させることができる実施例の機能を活用することによって、クラウドインフラストラクチャシステムは、会社、政府機関、研究組織、私人、同じ考えを持った個人もしくは組織のグループ、または他のエンティティからの要求に基づいて大きなデータセットに対してタスクを実行することにさらに利用できるであろう。
【００８０】
さまざまな実施例では、クラウドインフラストラクチャシステム９０２は、クラウドインフラストラクチャシステム９０２によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、およびトラッキングするように適合されてもよい。クラウドインフラストラクチャシステム９０２は、クラウドサービスをさまざまな展開モデルを介して提供してもよい。例えば、サービスは、クラウドインフラストラクチャシステム９０２が（例えばオラクル社によって所有される）クラウドサービスを販売する組織によって所有され、サービスが一般大衆または異なる業界企業に対して利用可能にされるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム９０２が単一の組織に対してのみ動作され、その組織内における１つ以上のエンティティに対してサービスを提供してもよいプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム９０２およびクラウドインフラストラクチャシステム９０２によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、２つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【００８１】
いくつかの実施例では、クラウドインフラストラクチャシステム９０２によって提供されるサービスは、Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）カテゴリ、Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）カテゴリ、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）カテゴリ、またはハイブリッドサービスを含む他のサービスのカテゴリの下で提供される１つ以上のサービスを含んでもよい。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム９０２によって提供される１つ以上のサービスをオーダーしてもよい。クラウドインフラストラクチャシステム９０２は、次いで、処理を実行して、顧客のサブスクリプションオーダーにおけるサービスを提供する。
【００８２】
いくつかの実施例では、クラウドインフラストラクチャシステム９０２によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含んでもよいが、それらに限定されるものではない。いくつかの例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってＳａａＳプラットフォームを介して提供されてもよい。ＳａａＳプラットフォームは、ＳａａＳカテゴリに入るクラウドサービスを提供するよう構成されてもよい。例えば、ＳａａＳプラットフォームは、オンデマンドアプリケーション一式を統合された開発および展開プラットフォーム上で構築し配送する機能を提供してもよい。ＳａａＳプラットフォームは、ＳａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。ＳａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにおいて実行されるアプリケーションを利用することができる。顧客は、別のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるＳａａＳサービスが提供されてもよい。その例としては、大きな組織に対する売上実績管理、企業統合、および事業柔軟性に対するソリューションを提供するサービスが挙げられるが、それらに限定されるものではない。
【００８３】
いくつかの実施例では、プラットフォームサービスは、クラウドインフラストラクチャシステム９０２によってＰａａＳプラットフォームを介して提供されてもよい。ＰａａＳプラットフォームは、ＰａａＳカテゴリに入るクラウドサービスを提供するよう構成されてもよい。プラットフォームサービスの例としては、（オラクルなどの）組織が既存のアプリケーションを共有の共通のアーキテクチャにおいて整理統合することができるサービス、およびプラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、それらに限定されるものではない。ＰａａＳプラットフォームは、ＰａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。顧客は、クラウドインフラストラクチャシステム９０２によって提供されるＰａａＳサービスを、別のライセンスおよびサポートを購入する必要なく取得することができる。プラットフォームサービスの例としては、オラクル・ジャバ・クラウド・サービス（Oracle Java Cloud Service：ＪＣＳ）、オラクル・データベース・クラウド・サービス（Oracle Database Cloud Service：ＤＢＣＳ）などが挙げられるが、それらに限定されるものではない。
【００８４】
ＰａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを使用することができ、展開されたサービスを制御することもできる。いくつかの実施例では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス（例えばオラクル・フュージョン・ミドルウェアサービス）、およびＪａｖａクラウドサービスを含んでもよい。一実施例では、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にＤａｔａｂａｓｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅをデータベースクラウドの形式で提供することを可能にする共有のサービス展開モデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発および展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してもよく、Ｊａｖａクラウドサービスは、顧客がＪａｖａアプリケーションを展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してしてもよい。
【００８５】
さまざまな異なるインフラストラクチャサービスがＩａａＳプラットフォームによってクラウドインフラストラクチャシステムにおいて提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワーク、ならびにＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客に対する他の基礎的計算リソースなどの基本的な計算リソースの管理および制御を容易にする。
【００８６】
特定の実施例では、クラウドインフラストラクチャシステム９０２は、クラウドインフラストラクチャシステムの顧客に対してさまざまなサービスを提供するよう用いられるリソースを提供するためのインフラストラクチャリソース９３０も含んでもよい。一実施例では、インフラストラクチャリソース９３０は、サーバ、ストレージ、ならびにＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するためのネットワーク接続リソース、ならびに他のリソースなどの、ハードウェアの予め統合され最適化された組み合わせを含んでもよい。
【００８７】
いくつかの実施例では、クラウドインフラストラクチャシステム９０２におけるリソースは、複数のユーザによって共有され、要求につき動的に再割り当てされてもよい。また、リソースは、ユーザに対してさまざまな時間ゾーンで割り当てられてもよい。例えば、クラウドインフラストラクチャシステム９０２は、第１の時間ゾーンにおける第１のユーザセットがクラウドインフラストラクチャシステムのリソースをある特定の時間の間利用することを可能にし、次いで、異なる時間ゾーンに位置する別のユーザセットに対する同じリソースの再割り当てを可能にし、それによって、リソースの利用を最大化してもよい。
【００８８】
特定の実施例では、クラウドインフラストラクチャシステム９０２のさまざまなコンポーネントまたはモジュールによって共有されてクラウドインフラストラクチャシステム９０２によるサービスのプロビジョニングを可能にするある数の内部共有サービス９３２が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよびリカバリサービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含んでもよいが、それらに限定されるものではない。
【００８９】
特定の実施例では、クラウドインフラストラクチャシステム９０２は、クラウドインフラストラクチャシステムにおいてクラウドサービス（例えばＳａａＳ、ＰａａＳ、およびＩａａＳサービス）の包括的な管理を提供してもよい。一実施例では、クラウド管理機能は、クラウドインフラストラクチャシステム９０２によって受信される顧客のサブスクリプションをプロビジョニングし、管理し、およびトラッキングする機能などを含んでもよい。
【００９０】
一実施例では、図９に示されるように、クラウド管理機能は、オーダー管理モジュール９２０、オーダーオーケストレーションモジュール９２２、オーダープロビジョニングモジュール９２４、オーダー管理および監視モジュール９２６、ならびにアイデンティティ管理モジュール９２８などの１つ以上のモジュールによって提供されてもよい。これらのモジュールは、１つ以上のコンピュータおよび／もしくはサーバを含んでもよく、またはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および／もしくは組み合わせであってもよい。
【００９１】
例示的な動作では、ステップ９３４において、クライアントデバイス９０４、９０６または９０８などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム９０２によって提供される１つ以上のサービスを要求し、クラウドインフラストラクチャシステム９０２によって提供される１つ以上のサービスに対するサブスクリプションに対するオーダーを行なうことによって、クラウドインフラストラクチャシステム９０２と対話してもよい。特定の実施例では、顧客は、クラウドＵＩ９１２、クラウドＵＩ９１４および／またはクラウドＵＩ９１６などのクラウドユーザインターフェイス（ＵＩ）にアクセスし、サブスクリプションオーダーをこれらのＵＩを介して行なってもよい。顧客がオーダーを行なうことに応答してクラウドインフラストラクチャシステム９０２によって受信されるオーダー情報は、顧客を識別する情報、およびクラウドインフラストラクチャシステム９０２によって提供される、その顧客が利用することを意図する１つ以上のサービスを含んでもよい。
【００９２】
ステップ９３６において、顧客から受信されたオーダー情報は、オーダーデータベース９１８に保存されてもよい。これが新たなオーダーである場合には、当該オーダーに対して新たなレコードが作成されてもよい。一実施例では、オーダーデータベース９１８は、クラウドインフラストラクチャシステム９１８によって動作されるいくつかのデータベースのうちの１つであり得、他のシステム要素と連携して動作され得る。
【００９３】
ステップ９３８において、オーダー情報は、オーダー管理モジュール９２０に転送されてもよく、当該オーダー管理モジュール９２０は、オーダーを検証すること、および検証次第そのオーダーを予約することなど、オーダーに関連する請求および課金機能を実行するよう構成されてもよい。
【００９４】
ステップ９４０において、オーダーに関する情報は、オーダーオーケストレーションモジュール９２２に通信されてもよく、当該オーダーオーケストレーションモジュール９２２は、顧客によってなされたオーダーに対してサービスおよびリソースのプロビジョニングをオーケストレーションするよう構成される。いくつかの例では、オーダーオーケストレーションモジュール９２２は、オーダープロビジョニングモジュール９２４のサービスをプロビジョニングに使用してもよい。特定の実施例では、オーダーオーケストレーションモジュール９２２は、各オーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきか否かを判断する。
【００９５】
図９に示される実施例に示されているように、ステップ９４２において、新たなサブスクリプションに対するオーダーを受信すると、オーダーオーケストレーションモジュール９２２は、オーダープロビジョニングモジュール９２４に対して、リソースを割り当てて、サブスクリプションオーダーを満たすのに必要とされるリソースを構成するよう、要求を送信する。オーダープロビジョニングモジュール９２４は、顧客によってオーダーされたサービスに対するリソースの割り当てを可能にする。オーダープロビジョニングモジュール９２４は、クラウドインフラストラクチャシステム９００によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするよう用いられる物理的インプリメンテーション層との間にある抽象化レベルを提供する。これにより、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、サービスおよびリソースが予めプロビジョニングされて要求時にのみ割り当てられる／あてがわれるかなどの、インプリメンテーション詳細からオーダーオーケストレーションモジュール９２４を分離することができる。
【００９６】
ステップ９４４において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが使用できる状態であることを示す通知が、加入している顧客に送信されてもよい。いくつかの例では、顧客が要求されたサービスの使用を開始することを可能にする情報（例えばリンク）が顧客に送信されてもよい。
【００９７】
ステップ９４６において、顧客のサブスクリプションオーダーは、オーダー管理および監視モジュール９２６によって管理およびトラッキングされてもよい。いくつかの例では、オーダー管理および監視モジュール９２６は、加入したサービスの顧客使用に関する使用統計を収集するよう構成されてもよい。例えば、統計は、使用されるストレージの量、転送されるデータの量、ユーザの人数、ならびにシステムアップ時間およびシステムダウン時間の量などについて収集されてもよい。
【００９８】
特定の実施例では、クラウドインフラストラクチャシステム９００は、アイデンティティ管理モジュール９２８を含んでもよく、当該アイデンティティ管理モジュール９２８は、クラウドインフラストラクチャシステム９００におけるアクセス管理および承認サービスなどのアイデンティティサービスを提供するよう構成される。いくつかの実施例では、アイデンティティ管理モジュール９２８は、クラウドインフラストラクチャシステム９０２によって提供されるサービスを利用することを望む顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報、およびそれらの顧客がさまざまなシステムリソース（例えばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してどのアクションを実行することが承認されるかを記述する情報を含み得る。アイデンティティ管理モジュール９２８は、各顧客についての記述的情報ならびにどのように誰によってその記述的情報がアクセスおよび修正され得るかについての情報の管理も含んでもよい。
【００９９】
図１０は、本発明の実施例を実現するために使用され得る例示的なコンピュータシステム１０００を示す。いくつかの実施例では、コンピュータシステム１０００は、上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するよう用いられてもよい。図１０に示されるように、コンピュータシステム１０００は、多数の周辺サブシステムとバスサブシステム１００２を介して通信する処理サブシステム１００４を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット１００６、Ｉ／Ｏサブシステム１００８、ストレージサブシステム１０１８および通信サブシステム１０２４を含んでもよい。ストレージサブシステム１０１８は、有形のコンピュータ読取可能な記憶媒体１０２２およびシステムメモリ１０１０を含んでもよい。
【０１００】
バスサブシステム１００２は、コンピュータシステム１０００のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム１００２は単一のバスとして概略的に示されているが、バスサブシステムの代替的実施例は、複数のバスを利用してもよい。バスサブシステム１００２は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。例えば、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロチャネルアーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、エンハンストＩＳＡ（Enhanced ISA：ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（Video Electronics Standards Association：ＶＥＳＡ）ローカルバス、およびＩＥＥＥ  Ｐ１３８６．１規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト（Peripheral Component Interconnect：ＰＣＩ）バスなどを含んでもよい。
【０１０１】
処理サブシステム１００４は、コンピュータシステム１０００の動作を制御し、１つ以上の処理ユニット１０３２，１０３４などを備えてもよい。処理ユニットは、単一コアもしくはマルチコアプロセッサを含む１つ以上のプロセッサ、プロセッサの１つ以上のコア、またはそれらの組み合わせを含んでもよい。いくつかの実施例では、処理サブシステム１００４は、グラフィックスプロセッサ、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）などの１つ以上の特殊用途コプロセッサを含み得る。いくつかの実施例では、処理サブシステム１００４の処理ユニットの一部または全ては、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）などのカスタマイズされた回路を用いて実現され得る。
【０１０２】
いくつかの実施例では、処理サブシステム１００４における処理ユニットは、システムメモリ１０１０またはコンピュータ読取可能な記憶媒体１０２２に記憶された命令を実行することができる。さまざまな実施例では、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与のときに、実行されるべきプログラムコードの一部または全ては、システムメモリ１０１０、および／または、場合によっては１つ以上のストレージデバイスを含むコンピュータ読取可能な記憶媒体１０１０に常駐することができる。好適なプログラミングを介して、処理サブシステム１００４は、論理アプリケーションを生成するための上記のさまざまな機能を提供することができる。
【０１０３】
特定の実施例では、コンピュータシステム１０００によって実行される処理全体を加速させるように、カスタマイズされた処理を実行するため、または処理サブシステム１００４によって実行される処理の一部をオフロードするための処理加速ユニット１００６が設けられてもよい。
【０１０４】
Ｉ／Ｏサブシステム１００８は、コンピュータシステム１０００に情報を入力するため、および／または、コンピュータシステム１０００からもしくはコンピュータシステム１０００を介して情報を出力するためのデバイスおよび機構を含んでもよい。一般に、「入力デバイス」という語の使用は、コンピュータシステム１０００に情報を入力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、例えば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれるタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするＭｉｃｒｏｓｏｆｔ  Ｋｉｎｅｃｔ（登録商標）モーションセンサ、Ｍｉｃｒｏｓｏｆｔ  Ｘｂｏｘ（登録商標）３６０ゲームコントローラ、ジェスチャおよび話し言葉コマンドを用いて入力を受信するためのインターフェイスを提供するデバイスなどのモーション感知および／またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の活動（例えば写真を撮っている間および／またはメニュー選択を行なっている間の「まばたき」）を検出し、アイジェスチャを入力デバイス（例えばＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標））への入力として変換するＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標）瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム（例えばＳｉｒｉ（登録商標）ナビゲータ）と対話することを可能にする音声認識感知デバイスを含んでもよい。
【０１０５】
ユーザインターフェイス入力デバイスの他の例としては、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚／視覚デバイスが挙げられるが、それらに限定されるものではない。また、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、医療超音波検査デバイスなどの医療画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、例えば、ＭＩＤＩキーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
【０１０６】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管（cathode ray tube：ＣＲＴ）、液晶ディスプレイ（liquid crystal display：ＬＣＤ）またはプラズマディスプレイを使うものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム１０００からユーザまたは他のコンピュータに情報を出力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。例えば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声／映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【０１０７】
ストレージサブシステム１０１８は、コンピュータシステム１０００によって使用される情報を記憶するためのリポジトリまたはデータストアを提供する。ストレージサブシステム１０１８は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形の非一時的なコンピュータ読取可能な記憶媒体を提供する。処理サブシステム１００４によって実行されたときに上記の機能を提供するソフトウェア（プログラム、コードモジュール、命令）がストレージサブシステム１０１８に記憶されてもよい。当該ソフトウェアは、処理サブシステム１００４の１つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム１０１８は、本発明に従って使用されるデータを記憶するためのリポジトリも提供してもよい。
【０１０８】
ストレージサブシステム１０１８は、揮発性および不揮発性メモリデバイスを含む１つ以上の非一時的なメモリデバイスを含んでもよい。図１０に示されるように、ストレージサブシステム１０１８は、システムメモリ１０１０と、コンピュータ読取可能な記憶媒体１０２２とを含む。システムメモリ１０１０は、プログラム実行中に命令およびデータを記憶するための揮発性メインランダムアクセスメモリ（random access memory：ＲＡＭ）および固定命令が記憶される不揮発性リードオンリメモリ（read only memory：ＲＯＭ）またはフラッシュメモリを含む複数のメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム１０００内の要素間における情報の転送を助ける基本的なルーティンを含むベーシックインプット／アウトプットシステム（basic input/output system：ＢＩＯＳ）は、一般に、ＲＯＭに記憶されてもよい。ＲＡＭは、一般に、処理サブシステム１００４によって現在動作および実行されているデータおよび／またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ１０１０は、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）などの複数の異なるタイプのメモリを含んでもよい。
【０１０９】
一例として、限定を伴うことなく、図１０に示されるように、システムメモリ１０１０は、アプリケーションプログラム１０１２を記憶してもよく、当該アプリケーションプログラム１０１２は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム（relational database management system：ＲＤＢＭＳ）など、プログラムデータ１０１４およびオペレーティングシステム１０１６を含んでもよい。一例として、オペレーティングシステム１０１６は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ（登録商標）および／もしくはＬｉｎｕｘ（登録商標）オペレーティングシステム、さまざまな市場で入手可能なＵＮＩＸ（登録商標）またはＵＮＩＸのようなオペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステム、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）ＯＳなどを含むがそれらに限定されない）、ならびに／または、ｉＯＳ、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、Ａｎｄｒｏｉｄ（登録商標）  ＯＳ、ＢｌａｃｋＢｅｒｒｙ（登録商標）  １０  ＯＳ、およびＰａｌｍ（登録商標）  ＯＳオペレーティングシステムなどのモバイルオペレーティングシステムのさまざまなバージョンを含んでもよい。
【０１１０】
コンピュータ読取可能な記憶媒体１０２２は、いくつかの実施例の機能を提供するプログラミングおよびデータ構造を記憶してもよい。処理サブシステム１００４によって実行されたときにプロセッサに上記の機能を提供させるソフトウェア（プログラム、コードモジュール、命令）は、ストレージサブシステム１０１８に記憶されてもよい。一例として、コンピュータ読取可能な記憶媒体１０２２は、ハードディスクドライブ、磁気ディスクドライブ、ＣＤ  ＲＯＭ、ＤＶＤ、ブルーレイ（登録商標）ディスクなどの光ディスクドライブ、または他の光学式媒体などの不揮発性メモリを含んでもよい。コンピュータ読取可能な記憶媒体１０２２は、Ｚｉｐ（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（universal serial bus：ＵＳＢ）フラッシュドライブ、セキュアデジタル（secure digital：ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されるものではない。コンピュータ読取可能な記憶媒体１０２２は、フラッシュメモリベースのＳＳＤ、企業フラッシュドライブ、ソリッドステートＲＯＭなどの不揮発性メモリに基づくソリッドステートドライブ（solid-state drive：ＳＳＤ）、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭ、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（magnetoresistive RAM：ＭＲＡＭ）ＳＳＤなどの揮発性メモリに基づくＳＳＤ、およびＤＲＡＭとフラッシュメモリベースのＳＳＤとの組み合わせを使用するハイブリッドＳＳＤも含んでもよい。コンピュータ読取可能な媒体１０２２は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータのストレージをコンピュータシステム１０００に提供してもよい。
【０１１１】
特定の実施例では、ストレージサブシステム１０００は、コンピュータ読取可能な記憶媒体１０２２にさらに接続可能なコンピュータ読取可能記憶媒体リーダ１０２０も含んでもよい。システムメモリ１０１０とともに、およびオプションとしてシステムメモリ１０１０との組み合わせで、コンピュータ読取可能な記憶媒体１０２２は、コンピュータ読取可能な情報を記憶するための、遠隔の、ローカルな、固定された、および／またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表わしてもよい。
【０１１２】
特定の実施例では、コンピュータシステム１０００は、１つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム１０００は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行してもよい。各仮想マシンは、割り当てられたメモリ、計算（例えばプロセッサ、コア）、Ｉ／Ｏおよびネットワーク接続リソースであってもよい。各仮想マシンは、一般に、それ自体のオペレーティングシステムを実行し、当該オペレーティングシステムは、コンピュータシステム１０００によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム１０００によって同時に実行されてもよい。各仮想マシンは、一般に、他の仮想マシンから独立して実行される。
【０１１３】
通信サブシステム１０２４は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム１０２４は、他のシステムとコンピュータシステム１０００との間のデータの送受のためのインターフェイスとして働く。例えば、通信サブシステム１０２４は、コンピュータシステム１０００が１つ以上のクライアントデバイスとの情報の送受のためにインターネットを介したクライアントデバイスへの通信チャネルを確立することを可能にしてもよい。
【０１１４】
通信サブシステム１０２４は、有線通信プロトコルおよび／または無線通信プロトコルをサポートしてもよい。例えば、特定の実施例では、通信サブシステム１０２４は、（例えばセルラー電話技術、３Ｇ、４ＧもしくはＥＤＧＥ（グローバル進化のための高速データレート）などの先進データネットワーク技術、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリー規格、もしくは他のモバイル通信技術、またはそれらの任意の組み合わせを用いて）無線音声および／またはデータネットワークにアクセスするための無線周波数（radio frequency：ＲＦ）送受信機コンポーネント、グローバルポジショニングシステム（global positioning system：ＧＰＳ）受信機コンポーネント、ならびに／または他のコンポーネントを含んでもよい。いくつかの実施例では、通信サブシステム１０２４は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続（たとえばイーサネット）を提供することができる。
【０１１５】
通信サブシステム１０２４は、さまざまな形式でデータを送受信することができる。例えば、いくつかの実施例では、通信サブシステム１０２４は、構造化されたおよび／または構造化されていないデータフィード１０２６、イベントストリーム１０２８、イベント更新情報１０３０などの形式で入力通信を受信してもよい。例えば、通信サブシステム１０２４は、ソーシャルメディアネットワークおよび／またはＴｗｉｔｔｅｒ（登録商標）フィード、Ｆａｃｅｂｏｏｋ（登録商標）更新情報、Ｒｉｃｈ  Ｓｉｔｅ  Ｓｕｍｍａｒｙ（ＲＳＳ）フィードなどのウェブフィード、および／もしくは１つ以上の第三者情報源からのリアルタイム更新情報などの他の通信サービスのユーザからリアルタイムでデータフィード１０２６を受信（または送信）するよう構成されてもよい。
【０１１６】
特定の実施例では、通信サブシステム１０２４は、連続データストリームの形式でデータを受信するよう構成されてもよく、当該連続データストリームは、明示的な端部を有さない本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム１０２８および／またはイベント更新情報１０３０を含んでもよい。連続データを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール（例えばネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
【０１１７】
また、通信サブシステム１０２４は、構造化されたおよび／または構造化されていないデータフィード１０２６、イベントストリーム１０２８、イベント更新情報１０３０などを、コンピュータシステム１０００に結合される１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するよう構成されてもよい。
【０１１８】
コンピュータシステム１０００は、手持ち式の携帯デバイス（例えばｉＰｈｏｎｅ（登録商標）携帯電話、ｉＰａｄ（登録商標）コンピューティングタブレット、ＰＤＡ）、ウェアラブルデバイス（例えばＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標）頭部装着型ディスプレイ）、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのもののうちの１つであり得る。
【０１１９】
常に変化するコンピュータおよびネットワークの性質のため、図１０に示されるコンピュータシステム１０００の記載は、単に具体的な例として意図される。図１０に示されるシステムよりも多いまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施例を実現する他の態様および／または方法を理解するであろう。
【０１２０】
図１１は、本発明の特定の実施例に係る異種の電子デバイスのためのアプリケーション配信を区分化するためのシステム１１００を示す。システム１１００およびそのコンポーネントは、先の実施例に記載されている本発明の原理に基づいて適切なオペレーションのうちのいずれかを実行するように、ハードウェア、ソフトウェア、またはそれらの組み合わせによって実現されてもよい。本明細書に記載されている機能ブロックは、組み合わせられるか、またはサブブロックに分割されて、上記の本発明の原理を実現してもよい、ということが当業者によって理解される。したがって、本明細書における記載は、本明細書に記載されている機能ブロックの任意の考えられ得る組み合わせまたは分割またはさらには定義をサポートしてもよい。図１１に示されるように、システム１１００は、受信ユニット１１０２と、生成ユニット１１０４と、割り当てユニット１１０６と、表示ユニット１１０８とを含む。
【０１２１】
受信ユニット１１０２は、アプリケーションの第１のバイナリファイルのための第１のリソースロケータを受信することができる。生成ユニット１１０４は、第１のリソースロケータのための第１のデータベースレコードへの第１の入力セットを生成することができる。割り当てユニット１１０６は、第１のデバイスの第１のオペレーティングシステムバージョンを第１の入力セットに割り当てることができる。また、受信ユニット１１０２は、アプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルも受信することができ、生成ユニット１１０４は、プロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成することができ、割り当てユニット１１０６は、第２のデバイスの第２のオペレーティングシステムバージョンを第２の入力セットに割り当てることができる。表示ユニット１１０８は、第１の入力セットにリンクされた第１のユーザインターフェイスユニットと第２の入力セットにリンクされた第２のユーザインターフェイスユニットとを有するユーザインターフェイスを表示することができる。
【０１２２】
いくつかの実施例では、生成ユニット１１０４は、第１の入力セットおよび第２の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。
【０１２３】
いくつかの実施例では、システム１１００は、特定ユニット１１１０と、決定ユニット１１１２と、インストールユニット１１１４とをさらに含み得る。
【０１２４】
特定ユニット１１１０は、第１のデバイスの第１のユーザに関連付けられる第１のポリシーを特定することができる。決定ユニット１１１２は、当該ポリシーに基づいて、第１のデバイスにインストールすべき論理アプリケーションの第１のバージョンを決定することができる。インストールユニット１１１４は、当該決定に基づいて、第１のデバイスへの論理アプリケーションの第１のバージョンのインストールを生じさせることができる。
【０１２５】
いくつかの実施例では、特定ユニット１１１０は、第２のデバイスの第２のユーザに関連付けられる第２のポリシーも特定することができる。決定ユニット１１１２は、当該ポリシーに基づいて、第２のデバイスにインストールすべき論理アプリケーションの第２のバージョンも決定することができる。インストールユニット１１１４は、当該決定に基づいて、第２のデバイスへの論理アプリケーションの第２のバージョンのインストールも生じさせることができる。
【０１２６】
いくつかの実施例では、システムは、論理アプリケーションの第２のバージョンをデバイスにダウンロードするようにプッシュ通知イベントを第２のデバイスに送信するための送信ユニット１１１６も含む。
【０１２７】
いくつかの実施例では、異種の電子デバイスのためのアプリケーション配信を区分化するためのシステムは、以下のように実現されることも可能である。ここでも、システムおよびそのコンポーネントは、先の実施例に記載されている本発明の原理に基づいて適切なオペレーションのうちのいずれかを実行するように、ハードウェア、ソフトウェア、またはそれらの組み合わせによって実現されてもよい。本明細書に記載されている機能ブロックは、組み合わせられるか、またはサブブロックに分割されて、上記の本発明の原理を実現してもよい、ということが当業者によって理解される。したがって、本明細書における記載は、本明細書に記載されている機能ブロックの任意の考えられ得る組み合わせまたは分割またはさらには定義をサポートしてもよい。
【０１２８】
より具体的には、システムは、図１に示される論理アプリケーション生成エンジン１０８と論理アプリケーションインストールエンジン１１２とを備えていてもよい。論理アプリケーション生成エンジン１０８は、アプリケーションの第１のバイナリファイルのための第１のデータベースレコードへの第１の入力セットを生成し、アプリケーションの第２のバイナリファイルのためのプロパティリストメタデータファイルのための第２のデータベースレコードへの第２の入力セットを生成し、第１のデバイスの第１のオペレーティングシステムバージョンを第１の入力セットに割り当て、第２のデバイスの第２のオペレーティングシステムバージョンを第２の入力セットに割り当て、第１の入力セットおよび第２の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。次いで、論理アプリケーションインストールエンジン１１２は、第１のデバイスまたは第２のデバイスへの論理アプリケーションのインストールを生じさせる。
【０１２９】
本発明の具体的な実施例について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施例は、特定の具体的なデータ処理環境内でのオペレーションに限定されるものではなく、複数のデータ処理環境内で自由に動作できる。また、特定の一連のトランザクションおよびステップを用いて本発明の実施例について説明してきたが、本発明の範囲は、記載されている一連のトランザクションおよびステップに限定されるものではない、ということが当業者に明らかであるべきである。上記の実施例のさまざまな特徴および局面は、個々にまたは一緒に使用されてもよい。
【０１３０】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを用いて本発明の実施例について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施例は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されているさまざまなプロセスは、任意の組み合わせで同一のプロセッサまたは異なるプロセッサ上で実現され得る。したがって、コンポーネントまたはモジュールが特定のオペレーションを実行するよう構成されるものとして記載されている場合、このような構成は、例えばオペレーションを実行するように電子回路を設計することによって、オペレーションを実行するように（マイクロプロセッサなどの）プログラム可能な電子回路をプログラミングすることによって、またはそれらの任意の組み合わせによって、達成されることができる。プロセスは、従来のプロセス間通信技術を含むがそれに限定されないさまざまな技術を用いて通信することができ、プロセスの異なる対は、異なる技術を使用してもよく、またはプロセスの同一の対は、異なるときに異なる技術を使用してもよい。
【０１３１】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、減算、削除、ならびに他の変形および変更がそれに対してなされてもよい、ということは明白であろう。したがって、具体的な本発明の実施例について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。
【図１】
0006646048.tif 000002
【図２】
0006646048.tif 000003
【図３】
0006646048.tif 000004
【図４】
0006646048.tif 000005
【図５】
0006646048.tif 000006
【図６】
0006646048.tif 000007
【図７】
0006646048.tif 000008
【図８】
0006646048.tif 000009
【図９】
0006646048.tif 000010
【図１０】
0006646048.tif 000011
【図１１】
0006646048.tif 000012