特許第6646048号(P6646048)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許6646048異種の電子デバイスのためのアプリケーション配信の区分化
<>
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000002
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000003
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000004
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000005
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000006
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000007
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000008
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000009
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000010
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000011
  • 特許6646048-異種の電子デバイスのためのアプリケーション配信の区分化 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6646048
(24)【登録日】2020年1月14日
(45)【発行日】2020年2月14日
(54)【発明の名称】異種の電子デバイスのためのアプリケーション配信の区分化
(51)【国際特許分類】
   G06F 8/60 20180101AFI20200203BHJP
【FI】
   G06F8/60
【請求項の数】11
【全頁数】35
(21)【出願番号】特願2017-515973(P2017-515973)
(86)(22)【出願日】2015年4月20日
(65)【公表番号】特表2017-534104(P2017-534104A)
(43)【公表日】2017年11月16日
(86)【国際出願番号】US2015026697
(87)【国際公開番号】WO2016048416
(87)【国際公開日】20160331
【審査請求日】2018年2月15日
(31)【優先権主張番号】62/054,544
(32)【優先日】2014年9月24日
(33)【優先権主張国】US
(31)【優先権主張番号】14/689,722
(32)【優先日】2015年4月17日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ジャヤンティ・ベンカタ,バガバチ・クマール
(72)【発明者】
【氏名】ダス,シダーサ
(72)【発明者】
【氏名】マヘシュワリ,ハルシュ
(72)【発明者】
【氏名】アッガーワル,カラン
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特表2014−503926(JP,A)
【文献】 米国特許出願公開第2010/0262619(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60
(57)【特許請求の範囲】
【請求項1】
異種の電子デバイスのためのアプリケーション配信を区分化するための方法であって、
前記異種の電子デバイスの1つである第1のデバイスから、アプリケーションの第1のバイナリファイルのための第1のリソースロケータを受信するステップと、
前記第1のリソースロケータのための第1のデータベースレコードへの第1の入力セットを生成し、ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第1の入力セットを前記第1のデバイスに送信するステップと、
前記第1のデバイスの第1のオペレーティングシステムバージョンを前記第1の入力セットに割り当てるステップと、
前記異種の電子デバイスの1つである第2のデバイスから、前記アプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルを受信するステップと、
前記プロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成し、前記ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第2の入力セットを前記第2のデバイスに送信するステップと、
前記第2のデバイスの第2のオペレーティングシステムバージョンを前記第2の入力セットに割り当てるステップと、
前記第1の入力セットおよび前記第2の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成するステップと、
前記論理アプリケーションと連携して少なくとも前記第1のバイナリファイルまたは前記第2のバイナリファイルを実行するように前記第1のデバイスを構成するステップとを備える、方法。
【請求項2】
マルチプルタブインターフェイスを備え、第1のユーザインターフェイス要素は、前記マルチプルタブインターフェイスの第1のタブ上にあり、第2のユーザインターフェイス要素は、前記マルチプルタブインターフェイスの第2のタブ上にある、請求項1に記載の方法。
【請求項3】
前記第1の入力セットは、前記第1のデバイスの第1のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備え、前記第2の入力セットは、前記第2のデバイスの第2のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備える、請求項1または2に記載の方法。
【請求項4】
前記第1のオペレーティングシステムバージョンのタイプまたは前記第2のオペレーティングシステムバージョンのタイプは、iOS(登録商標)バージョン、アンドロイド(登録商標)オペレーティングシステムバージョンおよびウインドウズ(登録商標)オペレーティングシステムバージョンからなる群から選択される、請求項1〜3のいずれか1項に記載の方法。
【請求項5】
第1のデバイスまたは前記第2のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイス、およびウェアラブルデバイスからなる群から選択される、請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記第1の入力セットにリンクされた第1のユーザインターフェイス要素および前記第2の入力セットにリンクされた第2のユーザインターフェイス要素を有するユーザインターフェイスを表示するステップをさらに備える、請求項1〜5のいずれか1項に記載の方法。
【請求項7】
前記第1のデバイスの第1のユーザに関連付けられる第1のポリシーを特定するステップと、
前記第1のポリシーに基づいて、前記第1のデバイスにインストールすべき前記論理アプリケーションの第1のバージョンを決定するステップと、
前記決定に基づいて、前記第1のデバイスへの前記論理アプリケーションの前記第1のバージョンのインストールを生じさせるステップとをさらに備える、請求項6に記載の方法。
【請求項8】
前記第2のデバイスの第2のユーザに関連付けられる第2のポリシーを特定するステップと、
前記第2のポリシーに基づいて、前記第2のデバイスにインストールすべき前記論理アプリケーションの第2のバージョンを決定するステップと、
前記決定に基づいて、前記第2のデバイスへの前記論理アプリケーションの前記第2のバージョンのインストールを生じさせるステップとをさらに備える、請求項6に記載の方法。
【請求項9】
前記論理アプリケーションの前記第2のバージョンの前記インストールを生じさせるステップは、前記論理アプリケーションの前記第2のバージョンを前記第2のデバイスにダウンロードするようにプッシュ通知イベントを前記第2のデバイスに送信するステップをさらに備える、請求項8に記載の方法。
【請求項10】
システムであって、
プロセッサと、
メモリデバイスとを備え、前記メモリデバイスは、命令を含み、前記命令は、前記プロセッサによって実行されたときに前記プロセッサに、
アプリケーションの第1のバイナリファイルのための第1のデータベースレコードへの第1の入力セットを生成させ、
ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第1の入力セットを第1のデバイスに送信させ、
前記第1のデバイスの第1のオペレーティングシステムバージョンを前記第1の入力セットに割り当てさせ、
前記アプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成させ、
前記ユーザーインターフェースと、前記ユーザーインターフェースに関連付けられた前記第2の入力セットを第2のデバイスに送信させ、
前記第2のデバイスの第2のオペレーティングシステムバージョンを前記第2の入力セットに割り当てさせ、
前記第1の入力セットおよび前記第2の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成させ、
前記第1のデバイスまたは前記第2のデバイスへの前記論理アプリケーションのインストールを生じさせる、システム。
【請求項11】
請求項1〜9のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、「モバイルセキュリティマネージャ(MSM)(Mobile Security Manager (MSM))」と題される2014年9月24日に出願された米国仮出願番号第62/054,544号の利益および優先権を主張する、「異種の電子デバイスのためのアプリケーション配信の区分化(COMPARTMENTALIZING APPLICATION DISTRIBUTION FOR DISPARATE ELECTRONIC DEVICES)」と題される2015年4月17日に出願された米国非仮出願番号第14/689,722号の利益および優先権を主張する。上記の特許出願の内容全体は、全ての目的で引用によって本明細書に援用される。
【0002】
発明の背景
本開示は、一般に、さまざまなタイプの電子デバイスのためのアプリケーションの管理に関する。より特定的には、異種の電子デバイスのためのアプリケーションの配信を区分化するための技術が開示されている。
【背景技術】
【0003】
アプリケーションは、一般に、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、スマートフォン、タブレットなどの電子デバイスのユーザのために特定の機能を実行するように設計されたプログラムを指す。アプリケーションの例としては、ワードプロセッサ、データベースプログラム、ウェブブラウザ、開発ツール、通信プログラムなどを挙げることができる。アプリケーションは、一般に、デバイスのオペレーティングシステムのサービスを使用して、その意図された機能を実行する。アプリケーションは、デバイスに予めロードされていてもよく、またはデバイスのユーザがアプリケーションをブラウズおよびダウンロードすることを可能にするインターネットもしくはオンラインストアからユーザによってダウンロードされてもよい。
【0004】
アプリケーションは、一般に、アプリケーションにサービスを提供するさまざまなアプリケーションプラットフォームを介して入手可能である。アプリケーションプラットフォームによって提供されるサービスは、例えば、アプリケーションを実行するためのオペレーティングシステムサービス、アプリケーションがデータを記憶および処理することを可能にするためのデータサービス、アプリケーションの作成および維持を助ける開発ツールなどを含んでもよい。したがって、電子デバイス上でアプリケーションを管理する改良された方法を見つけることが望まれる。
【発明の概要】
【課題を解決するための手段】
【0005】
発明の簡単な概要
一般に、さまざまなタイプの電子デバイスのアプリケーション配信を容易化するための技術を開示する。これらの技術は、例えば、論理アプリケーションを生成するための方法、システム、1つ以上のプロセッサによって実行可能なコードまたは命令を記憶する非一時的なコンピュータ読取可能な媒体を提供する。論理アプリケーションは、単一のインターフェイスを介して別々のコマンドを実行することができ、さまざまなユーザの電子デバイス(例えばスマートフォン、タブレット、ワークステーション、ウェアラブルコンピュータ)と企業のさまざまなサーバとの間で必要とされる接続の数を減少させる。特定の実施例では、論理アプリケーションは、デバイスをプログラミングするためのアプリケーションの複数の物理的配信のグループ化を指してもよい。アプリケーションは、ウェブブラウザ、ワードプロセッサ、電子メールプログラム、データベースソフトウェア、プレゼンテーションソフトウェア、ゲームアプリケーション、メッセージングアプリケーションなどを限定を伴うことなく含んでもよい。いくつかの例では、論理アプリケーションの複数の物理的配信は、アプリケーションのさまざまなオペレーティングシステム(OS)バージョンに対応してもよい。例えば、アプリケーションのさまざまなOSバージョンは、アプリケーションのアンドロイド(登録商標)バージョン、アプリケーションのiOS(登録商標)バージョン、アプリケーションのウインドウズ(登録商標)バージョンなどを含んでもよい。これらのオペレーティングシステムおよびデバイスタイプの各々のためのコンパイル済みコードは、非常にさまざまな配信アーキテクチャからユーザのデバイスを選択するように制御され、割り当てられる。
【0006】
いくつかの実施例に従って、論理アプリケーションを生成するための方法を開示する。当該方法は、アプリケーションの第1のバイナリファイルのための第1のリソースロケータを受信するステップを含む。いくつかの例では、第1のリソースロケータは、アプリケーションの第1のバイナリファイルの第1の配信位置(例えばユニフォームリソースロケータ(uniform resource locator:URL))を指し示してもよい。アプリケーションの第1のバイナリファイルは、アプリケーションの特定の物理的配信(例えばOSバージョン)に対応してもよい。例えば、第1のバイナリファイルは、アプリケーションのアンドロイド(登録商標)OSバージョンに対応してもよい。
【0007】
いくつかの実施例では、当該方法は、次いで、第1のリソースロケータのための第1のデータベースレコードへの第1の入力セットを生成するステップと、第1のデバイスの第1のオペレーティングシステムバージョンを第1の入力セットに割り当てるステップとを含む。例えば、第1の入力セットは、アプリケーションのアンドロイド(登録商標)バージョンのURL配信位置に対応してもよい。
【0008】
いくつかの実施例では、当該方法は、アプリケーションの第2のバイナリファイルのためのプロパティリスト(p−リスト)メタデータファイルを受信するステップを含んでもよい。いくつかの例では、プロパティリストメタデータファイルは、アプリケーションの第2のバイナリファイルのプロパティリスト位置(例えばp−リストファイル)を指し示してもよい。アプリケーションの第2のバイナリファイルは、アプリケーションの特定の物理的配信(例えばOSバージョン)に対応してもよい。例えば、第2のバイナリファイルは、アプリケーションのiOS(登録商標)バージョンに対応してもよい。
【0009】
いくつかの実施例では、当該方法は、プロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成するステップと、第2のデバイスの第2のオペレーティングシステムバージョンを第2の入力セットに割り当てるステップとを含んでもよい。例えば、第2の入力セットは、アプリケーションのiOS(登録商標)バージョンの「.plist」配信位置に対応してもよい。
【0010】
いくつかの実施例では、当該方法は、第1の入力セットにリンクされた第1のユーザインターフェイス要素および第2の入力セットにリンクされた第2のユーザインターフェイス要素を有するユーザインターフェイスを表示するステップを含んでもよい。第1のユーザインターフェイス要素は、マルチプルタブインターフェイスの第1のタブに表示されてもよく、第2のユーザインターフェイス要素は、マルチプルタブインターフェイスの第2のタブに表示されてもよい。いくつかの実施例では、当該方法は、第1の入力セットおよび第2の入力セットに基づいて論理アプリケーションを生成するステップを含んでもよい。
【0011】
いくつかの実施例では、第1の入力セットは、第1のデバイスの第1のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備え、第2の入力セットは、第2のデバイスの第2のオペレーティングシステムプラットフォームの最小オペレーティングシステムバージョンおよび最大オペレーティングシステムバージョンを備える。
【0012】
いくつかの実施例では、第1のオペレーティングシステムバージョンのタイプまたは第2のオペレーティングシステムバージョンのタイプは、iOS(登録商標)バージョン、アンドロイド(登録商標)オペレーティングシステムバージョンおよびウインドウズ(登録商標)オペレーティングシステムバージョンからなる群から選択される。いくつかの実施例では、第1のデバイスまたは第2のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイス、およびウェアラブルデバイスからなる群から選択される。
【0013】
いくつかの実施例では、当該方法は、第1のデバイスの第1のユーザに関連付けられる第1のポリシーを特定するステップと、ポリシーに基づいて、第1のデバイスにインストールすべき論理アプリケーションの第1のバージョンを決定するステップと、第1のデバイスへの論理アプリケーションの第1のバージョンのインストールを生じさせるステップとを含む。いくつかの実施例では、当該方法は、第2のデバイスの第2のユーザに関連付けられる第2のポリシーを特定するステップと、ポリシーに基づいて、第2のデバイスにインストールすべき論理アプリケーションの第2のバージョンを決定するステップと、第2のデバイスへの論理アプリケーションの第2のバージョンのインストールを生じさせるステップとを含む。いくつかの実施例では、当該方法は、論理アプリケーションの第1のバージョンを第1のデバイスにダウンロードさせ、論理アプリケーションの第2のバージョンを第2のデバイスにダウンロードさせるステップを含む。
【0014】
いくつかの実施例に従って、異種の電子デバイスのためのアプリケーション配信を区分化するためのシステムを開示する。当該システムは、アプリケーションの第1のバイナリファイルのための第1のリソースロケータを受信し、アプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルを受信するための受信ユニットを含む。
【0015】
いくつかの実施例では、当該システムは、第1のリソースロケータのための第1のデータベースレコードへの第1の入力セットを生成し、プロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成するための生成ユニットをさらに含む。
【0016】
いくつかの実施例では、当該システムは、第1のデバイスの第1のオペレーティングシステムバージョンを第1の入力セットに割り当て、第2のデバイスの第2のオペレーティングシステムバージョンを第2の入力セットに割り当てるための割り当てユニットをさらに含む。
【0017】
いくつかの実施例では、当該システムは、第1の入力セットにリンクされた第1のユーザインターフェイスユニットおよび第2の入力セットにリンクされた第2のユーザインターフェイスユニットを有するユーザインターフェイスを表示するための表示ユニットをさらに含む。
【0018】
いくつかの実施例では、生成ユニットは、第1の入力セットおよび第2の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。
【0019】
いくつかの実施例では、当該システムは、第1のデバイスの第1のユーザに関連付けられる第1のポリシーを特定し、第2のデバイスの第2のユーザに関連付けられる第2のポリシーを特定するための特定ユニットをさらに含む。
【0020】
いくつかの実施例では、当該システムは、ポリシーに基づいて、第1のデバイスにインストールすべき論理アプリケーションの第1のバージョンを決定し、ポリシーに基づいて、第2のデバイスにインストールすべき論理アプリケーションの第2のバージョンを決定するための決定ユニットをさらに含む。
【0021】
いくつかの実施例では、当該システムは、決定に基づいて、第1のデバイスへの論理アプリケーションの第1のバージョンのインストールを生じさせ、決定に基づいて、第2のデバイスへの論理アプリケーションの第2のバージョンのインストールを生じさせるためのインストールユニットをさらに含む。
【0022】
いくつかの実施例では、当該システムは、論理アプリケーションの第2のバージョンをデバイスにダウンロードするようにプッシュ通知イベントを第2のデバイスに送信するための送信ユニットをさらに含む。
【0023】
いくつかの実施例では、異種の電子デバイスのためのアプリケーション配信を区分化するためのさらなるシステムが開示される。当該システムは、論理アプリケーション生成エンジンと、論理アプリケーションインストールエンジンとを備える。論理アプリケーション生成エンジンは、アプリケーションの第1のバイナリファイルのための第1のデータベースレコードへの第1の入力セットを生成し、アプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成し、第1のデバイスの第1のオペレーティングシステムバージョンを第1の入力セットに割り当て、第2のデバイスの第2のオペレーティングシステムバージョンを第2の入力セットに割り当て、第1の入力セットおよび第2の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。論理アプリケーションインストールエンジンは、第1のデバイスまたは第2のデバイスへの論理アプリケーションのインストールを生じさせる。
【0024】
本発明の実施例によって提供される技術的利点は多数ある。第1の入力セットおよび第2の入力セットを利用することによって、2つの異なるオペレーティングシステムを実行する2つの異なるデバイス上で単一の論理アプリケーションを異なって実行することができる。したがって、デバイスは、アプリケーションの別々のバージョンを維持および記憶する必要がない。上記のように、論理アプリケーションは、単一のインターフェイスを介して別々のコマンドを実行することができ、さまざまなユーザの電子デバイス(例えばスマートフォン、タブレット、ワークステーション、ウェアラブルコンピュータ)と企業のさまざまなサーバとの間で必要とされる接続の数を減少させる。
【0025】
上記は、他の特徴および実施例とともに、以下の明細書、特許請求の範囲および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【0026】
図1】本発明の特定の実施例に係るコンピューティング環境100の簡略ハイレベル図を示す。
図2】本発明の実施例に係る論理アプリケーションの例示的な図である。
図3】本明細書に記載されている論理アプリケーションを生成するための例示的なグラフィカルユーザインターフェイスを示す。
図4】本明細書に記載されている論理アプリケーションの第1の物理的配信のための第1の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。
図5】本明細書に記載されている論理アプリケーションの第2の物理的配信のための第2の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。
図6】本明細書に記載されている論理アプリケーションを生成するための例示的なプロセス600のフロー図を示す。
図7】本明細書に記載されている論理アプリケーションをデバイスにインストールするための例示的なプロセス700のフロー図を示す。
図8】実施例を実現するための分散型システム800の簡略図を示す。
図9】本開示の実施例に係る、サービスがクラウドサービスとして提供され得るシステム環境900の1つ以上のコンポーネントの簡略ブロック図である。
図10】本発明の実施例を実現するために使用され得る例示的なコンピュータシステム1000を示す。
図11】本発明の特定の実施例に係る異種の電子デバイスのためのアプリケーション配信を区分化するためのシステム1100を示す。
【発明を実施するための形態】
【0027】
発明の詳細な説明
以下の記載では、説明を目的として、本発明の実施例が完全に理解されるように具体的な詳細が記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施例は実施可能であるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。
【0028】
いくつかの局面に従って、論理アプリケーション生成システムを開示する。いくつかの実施例では、論理アプリケーション生成システムは、論理アプリケーションを生成するよう構成される。論理アプリケーションは、単一のインターフェイスを介して別々のコマンドを実行することができ、さまざまなユーザの電子デバイス(例えばスマートフォン、タブレット、ワークステーション、ウェアラブルコンピュータ)と企業のさまざまなサーバとの間で必要とされる接続の数を減少させる。上記のように、論理アプリケーションは、デバイスをプログラミングするためのアプリケーションの複数の物理的配信のグループ化を指すことがある。例えば、論理アプリケーションの複数の物理的配信は、アプリケーションのさまざまなOSバージョンに対応してもよい。例えば、論理アプリケーションは、アプリケーションのアンドロイド(登録商標)バージョン、アプリケーションのiOS(登録商標)バージョン、アプリケーションのウインドウズ(登録商標)OSバージョンなどを含んでもよい。これらのオペレーティングシステムおよびデバイスタイプの各々のためのコンパイル済みコードは、非常にさまざまな配信アーキテクチャからユーザのデバイスを選択するように制御され、割り当てられる。いくつかの実施例では、論理アプリケーションは、論理アプリケーション生成システムのブラウザアプリケーションに表示されるユーザインターフェイスによって生成されてもよい。
【0029】
特定の実施例では、論理アプリケーション生成システムは、論理アプリケーションをデバイスにインストールするよう構成されてもよい。例えば、デバイスは、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、スマートフォン、タブレットなどを含んでもよい。特定の実施例では、論理アプリケーション生成システムは、デバイスのユーザに関連付けられるポリシーを特定して、デバイスにインストールされる論理アプリケーションの特定のバージョンを決定するよう構成されてもよい。次いで、論理アプリケーション生成システムは、論理アプリケーションの、デバイスへのインストールに適切なバージョンをプッシュするよう構成されてもよい。
【0030】
本発明の実施例に係る論理アプリケーションの生成は、アプリケーションのさまざまな物理的配信(例えばさまざまなOSバージョン)のための別々のアプリケーション定義および/またはインスタンスを生成する必要性をなくすなどの技術的利点を含む。アプリケーションのさまざまなOSバージョンに対応する個々のセキュリティ上安全な名前を追加する代わりに、デバイスのアプリケーションカタログに単一の論理アプリケーションを追加することができる。ユーザは、アプリケーションの特定のバージョンを選択して利用可能なアプリケーション配信のリストからダウンロードしなければならない代わりに、論理アプリケーションの適切なバージョンをアプリケーションカタログから直接インストールすることができる。さらに、アプリケーションの各物理的配信は、論理アプリケーションにおいて互いに独立して更新可能である。例えば、企業内の情報技術(IT)部門は、企業内の契約者群に割り当てられるアプリケーションのiOS(登録商標)バージョン更新情報から独立して、企業内の従業員群に割り当てられるアプリケーションのアンドロイド(登録商標)バージョンに対する更新情報を提供したい場合がある。アプリケーションの特定のOSバージョンに対する更新情報がシステムによって受信されると、当該論理アプリケーションの特定のバージョンをデバイスにインストールしている特定のユーザおよび/またはユーザ群を通知することができ、特定されたデバイスに当該更新情報をプッシュすることができる。
【0031】
図1は、本発明の特定の実施例に係るコンピューティング環境100の簡略ハイレベル図を示す。示されているように、コンピューティング環境100は、通信ネットワーク106を介して論理アプリケーション生成システム104に通信可能に結合された1つ以上のリモートデバイス102(1)〜102(N)(集合的にデバイス102)を含む。いくつかの実施例では、論理アプリケーション生成システム104は、アプリケーションの複数の物理的配信を単一の論理アプリケーションにまとめることによってアプリケーションのさまざまな物理的配信を区分化するよう構成されてもよい。本明細書に記載されている「アプリケーション」は、デバイス102によって実行される任意のソフトウェアプログラムを指してもよい。アプリケーションは、ウェブブラウザ、ワードプロセッサ、電子メールプログラム、データベースソフトウェア、プレゼンテーションソフトウェア、ゲームアプリケーション、メッセージングアプリケーションなどを含んでもよいが、それらに限定されるものではない。上記のように、アプリケーションの複数の物理的配信は、アプリケーションのさまざまなOSバージョンに対応してもよい。例えば、アプリケーションのOSバージョンは、アプリケーションのアンドロイド(登録商標)バージョン、アプリケーションのiOS(登録商標)バージョンおよびアプリケーションのウインドウズ(登録商標)バージョンを含んでもよい。いくつかの例では、論理アプリケーション生成システム104は、企業内のサブシステムとして実現されてもよい。他の例では、論理アプリケーション生成システム104は、アプリケーションの配信を論理アプリケーションに区分化するためのサービスを企業に提供する、それ自体スタンドアロンのサービスとしても実現されてもよい。
【0032】
いくつかの例では、デバイス102は、ユーザ(例えばユーザ_1...ユーザ_M)に関連付けられるデバイスを含んでもよい。例えば、デバイス102は、さまざまなタイプのものであってもよく、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、スマートフォン、タブレットなどを含むが、それらに限定されるものではない。デバイスは、別のデバイス上で実行されるワークスペースなどのエンドポイントデバイスも含んでもよい。ワークスペースは、ワークスペースを実行するデバイス上の企業データおよびアプリケーションへのアクセスを提供するための制御された環境であってもよい。例えば、セキュリティ上安全なコンテナアプリケーションがデバイス102上で実行されてもよい。デバイス102は、企業によって発行されるデバイス(例えば会社のデバイス)またはユーザのパーソナルデバイス(例えば「自分自身のデバイスの持ち込み(bring your own device:BYOD)」)も含んでもよいが、それらに限定されるものではない。
【0033】
通信ネットワーク106は、デバイス102と論理アプリケーション生成システム104との間の通信を容易にする。通信ネットワーク106は、さまざまなタイプのものであり得て、1つ以上の通信ネットワークを含み得る。例えば、通信ネットワーク106は、インターネット、ワイドエリアネットワーク(wide area network:WAN)、ローカルエリアネットワーク(local area network:LAN)、イーサネット(登録商標)ネットワーク、パブリックまたはプライベートネットワーク、有線ネットワーク、無線ネットワークなど、およびそれらの組み合わせを含み得るが、それらに限定されるものではない。単一のTCP接続、IEEE802.XXプロトコル一式、TCP/IP、IPX、SAN、AppleTalk、Bluetooth(登録商標)および他のプロトコルを介して全二重通信チャネルを提供するウェブソケットなどの有線プロトコルおよび無線プロトコルを両方とも含む通信を容易にするために、さまざまな通信プロトコルが使用されてもよい。一般に、通信ネットワーク106は、デバイス102と論理アプリケーション生成システム104との間の通信を容易にする任意の通信ネットワークまたはインフラストラクチャを含んでもよい。
【0034】
図1に示される実施例では、論理アプリケーション生成システム104は、論理アプリケーション生成エンジン108と、ポリシーエンジン110と、論理アプリケーションインストールエンジン112と、論理アプリケーションユーザインターフェイス(UI)114とを含む。論理アプリケーション生成エンジン108、ポリシーエンジン110、論理アプリケーションインストールエンジン112および論理アプリケーションUI114は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、1つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および/もしくは組み合わせとして実現されてもよい。論理アプリケーション生成システム104のさまざまなコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定するよう意図されるものではない。代替的な実施例は、図1に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントを含んでもよく、および/または、図1に示されるものよりも多くのデバイスもしくは少ないデバイスを含んでもよい。
【0035】
いくつかの実施例では、論理アプリケーション生成エンジン108は、デバイス102上で実行されるアプリケーションの論理アプリケーションを生成するよう構成されてもよい。いくつかの例では、論理アプリケーションは、一組の1つ以上の入力を備えるデータ構造として実現されてもよい。当該データ構造は、さまざまなタイプのデータ構造の1つ以上の組み合わせとして実現されてもよく、当該さまざまなタイプのデータ構造は、アレイ、レコード、リレーショナルデータベーステーブル、ハッシュテーブル、連結リスト、または他のタイプのデータ構造を含むが、それらに限定されるものではない。論理アプリケーションのための例示的なデータ構造は、図2に示されている。
【0036】
いくつかの例では、論理アプリケーションへの一組の1つ以上の入力は、アプリケーションのさまざまなOSバージョンに関連する情報を含んでもよい。例えば、論理アプリケーションへの第1の入力セットは、アプリケーションのアンドロイド(登録商標)バージョンに関連する情報を含んでもよく、論理アプリケーションへの第2の入力セットは、アプリケーションのiOS(登録商標)バージョンに関連する情報を含んでもよく、論理アプリケーションへの第3の入力セットは、アプリケーションのウインドウズ(登録商標)OSバージョンに関連する情報を含んでもよい、などである。いくつかの例では、論理アプリケーションは、一組のデータベースレコードを有するデータベーステーブルとして実現されてもよく、第1の入力セットは、データベーステーブルにおける第1のデータベースレコードに対応し、第2の入力セットは、データベーステーブルにおける第2のデータベースレコードに対応し、第3の入力セットは、データベーステーブルにおける第3のデータベースレコードに対応する。
【0037】
いくつかの実施例では、論理アプリケーションは、論理アプリケーションユーザインターフェイス(UI)114によって生成されてもよい。例えば、論理アプリケーション生成システム104のユーザ(例えば管理者)は、論理アプリケーションUI114と対話して論理アプリケーションを生成してもよい。いくつかの例では、論理アプリケーションUI114は、論理アプリケーション生成システムにおけるブラウザアプリケーションに表示されてもよく、管理者は、論理アプリケーションUIと対話して論理アプリケーションを生成してもよい。図3および図4は、論理アプリケーションUI114による論理アプリケーションの生成を示す。
【0038】
いくつかの実施例によれば、論理アプリケーションUI114は、アプリケーションの第1のバイナリファイルのための第1のリソースロケータを受信してもよい。例えば、第1のリソースロケータは、アプリケーションのアンドロイド(登録商標)バージョンのURL位置であってもよい。論理アプリケーション生成エンジン108は、第1のリソースロケータのために論理アプリケーションへの第1の入力セットを生成するよう構成されてもよい。いくつかの例では、論理アプリケーション生成エンジン108は、第1のデバイスの第1のOSバージョンを第1の入力セットに割り当ててもよい。例えば、第1の入力セットは、アプリケーションのアンドロイド(登録商標)OSバージョンに関連する情報を含んでもよい。
【0039】
いくつかの例では、論理アプリケーションUI114は、論理アプリケーションUI114によってアプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルを受信してもよい。例えば、プロパティリスト(p−リスト)メタデータファイルは、アプリケーションのiOS(登録商標)バージョンのURL位置を含んでもよい。プロパティリストメタデータファイルは、アプリケーションに関連するデータを記憶するXMLファイルまたはバイナリファイルであってもよい。論理アプリケーション定義エンジン108は、プロパティリストメタデータファイルに基づいて論理アプリケーションへの第2の入力セットを生成するよう構成されてもよい。いくつかの例では、論理アプリケーション生成エンジン108は、第2のデバイスの第2のOSプラットフォームを第2の入力セットに割り当ててもよい。例えば、第2の入力セットは、アプリケーションのiOS(登録商標)プラットフォームバージョンに関連する情報を含んでもよい。
【0040】
いくつかの例では、論理アプリケーションUI114は、アプリケーションの第3のバイナリファイルのためのウインドウズストア(登録商標)位置を受信してもよい。例えば、ウインドウズストア(登録商標)位置は、アプリケーションのウインドウズ(登録商標)バージョンのURL位置を含んでもよい。論理アプリケーション定義エンジン108は、ウインドウズストア(登録商標)位置のために論理アプリケーションへの第3の入力セットを生成するよう構成されてもよい。いくつかの例では、論理アプリケーション生成エンジン108は、第3のデバイスの第3のOSプラットフォームを第2の入力セットに割り当ててもよい。例えば、第3の入力セットは、アプリケーションのウインドウズ(登録商標)プラットフォームバージョンに関連する情報を含んでもよい。上記の説明は、第1、第2および第3の入力セットを有する論理アプリケーションの生成に関連するが、論理アプリケーションは、他の実施例ではより多くの入力セットまたはより少ない入力セットで生成されてもよい。
【0041】
いくつかの実施例では、論理アプリケーションUI114は、アプリケーションの特定の物理的配信についてのさらなる情報を受信してもよい。当該さらなる情報は、例えば、アプリケーションの特定の物理的配信の最小および最大OSバージョン、アプリケーション名、アプリケーションのカテゴリ、アプリケーションの記述、アプリケーションに関連付けられるベンダーの名前、アプリケーションのバージョン、アプリケーションを表わすアイコン、アプリケーションのURL、アプリケーションタイプ、アプリケーションの作成時刻などを含んでもよい。いくつかの実施例では、論理アプリケーション生成エンジン108は、このさらなる情報を用いて論理アプリケーションを生成するよう構成されてもよい。いくつかの例では、そのように生成された論理アプリケーションは、アプリケーションカタログ116に記憶されてもよい。
【0042】
いくつかの実施例では、論理アプリケーション生成システム104は、ユーザ/デバイス情報データベース120を含んでもよい。いくつかの例では、ユーザ/デバイス情報データベース120は、ユーザおよびユーザに関連付けられるデバイスについての情報を記憶してもよく、当該情報は、例えば、リモートデバイス上のオペレーティングシステムのタイプ、オペレーティングシステムのバージョン、リモートデバイスが別のデバイスで運営管理される場合にはホスト識別子、デバイスタイプ、IMEI(国際移動体装置識別(International Mobile Equipment Identity))番号、リモートデバイスのモデル、リモートデバイスのサービスプロバイダ(例えばキャリア)、デバイス名、デバイス状態、またはリモートデバイスについての他の情報を含む。
【0043】
いくつかの実施例では、論理アプリケーションインストールエンジン112は、論理アプリケーションをデバイス102にインストールするよう構成されてもよい。いくつかの例では、論理アプリケーションインストールエンジン112は、デバイス102のユーザに関連付けられるポリシーを特定して、特定の論理アプリケーション(例えば「スマートバード(Smart Birds)」ゲームアプリケーション)をデバイスにインストールできるか否かを判断するよう構成されてもよい。いくつかの例では、ユーザポリシーは、ポリシールールデータベース118に記憶されてもよい。例えば、ユーザポリシーは、デバイスに関連付けられるユーザの役割または任務に関連してもよい。例えば、ユーザの役割または任務は、企業によって規定されるものであってもよい。例えば、ユーザは、企業内で「管理者」の役割を有してもよく、「マネージャ」の役割を有してもよく、「セールスアナリスト」の役割を有してもよい、などである。役割は、ユーザのためのアクセスポリシーを規定してもよく、当該アクセスポリシーは、例えば、ユーザが使用することを許可されるデバイスの特定のタイプ、ユーザによってユーザのデバイスにインストールされてもよいアプリケーションの特定のタイプおよび/またはバージョンを含む。
【0044】
いくつかの実施例では、論理アプリケーションインストールエンジン112は、次いで、デバイス102にインストールされる論理アプリケーションの特定のバージョンを決定してもよい。いくつかの例では、論理アプリケーションインストールエンジン112は、さらなる基準を適用して、デバイス102にインストールされる論理アプリケーションの特定のバージョンを決定してもよい。当該さらなる基準は、例えば、デバイス102によってサポートされるOSの特定のバージョンが論理アプリケーションの特定のバージョン(アンドロイド(登録商標)、iOS(登録商標)、ウインドウズ(登録商標)など)の最小および最大範囲内であると判断することを含んでもよい。例えば、デバイス102がiOS(登録商標)8.1.2モバイルOSをサポートする場合、論理アプリケーションインストールエンジン112は、デバイスのOSの最小および最大範囲内の論理アプリケーションのiOS(登録商標)バージョンをデバイス102にインストールすべきであると判断してもよい。当該さらなる基準は、デバイスがアプリケーションをインストールすることができるさまざまなタイプの配信位置(例えばバイナリ、URL、アップストア(登録商標))を判断することなども含んでもよい。
【0045】
デバイスが当該さらなる基準を満たす場合、いくつかの例では、論理アプリケーションインストールエンジン112は、論理アプリケーションの特定のバージョンをデバイス102にインストールするよう構成されてもよい。いくつかの例では、論理アプリケーションインストールエンジン112は、プッシュ通知イベントをデバイス102に送信することによってデバイス102への論理アプリケーションの特定のバージョンのインストールを開始するよう構成されてもよい。いくつかの例では、プッシュ通知は、デバイス102のユーザが論理アプリケーションの特定のバージョンをデバイス102にインストールすることを可能にするリンクを用いてデバイス102に送信されるメッセージであってもよい。デバイス102のユーザは、当該メッセージと対話して論理アプリケーションをデバイス102にインストールしてもよい。いくつかの例では、論理アプリケーションインストールエンジン112は、プッシュ通知イベントをデバイス102に送信して、論理アプリケーションの特定のバージョンがデバイス102におけるアプリケーションカタログに追加されたことを知らせるよう構成されてもよく、デバイス102は、アプリケーションカタログから論理アプリケーションの特定のバージョンをインストールしてもよい。
【0046】
図2は、本発明の実施例に係る論理アプリケーションの例示的な図である。図2に示される実施例は、「スマートバード」ゲームアプリケーションのために生成される論理アプリケーションを示す。一例では、論理アプリケーションは、アプリケーションのさまざまな物理的配信に関連する一組の1つ以上の入力を備えるデータ構造200として実現されてもよい。図2に示される例では、データ構造200は、一組の1つ以上のデータベースレコードを有するデータベーステーブルである。データベーステーブルにおける第1のデータベースレコードは、論理アプリケーションに関連付けられる第1の入力セットに関連する情報を含んでもよい。例えば、第1の入力セットは、「スマートバード」ゲームアプリケーションのアンドロイド(登録商標)バージョンに対応してもよい。第2のデータベースレコードは、論理アプリケーションに関連付けられる第2の入力セットに関連する情報を含んでもよい。例えば、論理アプリケーションにおける第2の入力セットは、アプリケーションのiOS(登録商標)バージョンに関連する情報を含んでもよい。第3のデータベースレコードは、論理アプリケーションに関連付けられる第3の入力セットに関連する情報を含んでもよい。例えば、論理アプリケーションにおける第3の入力セットは、アプリケーションのウインドウズ(登録商標)OSバージョンに関連する情報を含んでもよい、などである。示されている例は、3つのデータベースレコードまたは行を有するデータベーステーブルとしての論理アプリケーションの実現例を示すが、論理アプリケーションは、他の実施例ではより少ないデータベースレコードまたはより多いデータベースレコードを有するデータベーステーブルとして実現されてもよい。
【0047】
さらに示されているように、さまざまな入力セット(第1、第2、第3)は、アプリケーションの各バージョンに関連するさらなる情報を含んでもよい。当該さらなる情報は、例えば、アプリケーション識別子、アプリケーション名、アプリケーションタイプ、アプリケーション記述、アプリケーションカテゴリ、アプリケーションOSプラットフォーム(例えばアンドロイド(登録商標)、iOS(登録商標)、ウインドウズ(登録商標)など)、アプリケーション配信位置(例えばURL、バイナリ、アップストア(登録商標)、ウインドウズストア(登録商標)など)、アプリケーションバージョン、最小アプリケーションOSプラットフォームバージョン、最大アプリケーションOSプラットフォームバージョン、アプリケーションパッケージ名などを含んでもよい。
【0048】
上記のように、ならびに図3および図4にさらに示されるように、いくつかの実施例では、論理アプリケーションは、論理アプリケーション生成システムにおける論理アプリケーションユーザインターフェイス(UI)114とのユーザの対話の結果として生成されてもよい。
【0049】
図3は、本明細書に記載されている論理アプリケーションを生成するための例示的なグラフィカルユーザインターフェイスを示す。図3では、例示的な環境300は、論理アプリケーション生成システムにおけるブラウザアプリケーションによって閲覧可能な、論理アプリケーションUI114によって提供されるグラフィカルユーザインターフェイスであってもよい。図3に示される例では、ユーザは、アプリケーションの特定のタイプ、アプリケーション名、アプリケーションの記述などの、アプリケーションに関連する情報を提供してもよい。また、ユーザは、アプリケーションの特定のOSプラットフォーム(例えばアンドロイド(登録商標)、iOS(登録商標)、ウインドウズ(登録商標)など)、アプリケーションベンダーおよびアイコンを選択してアプリケーションを表示してもよい。
【0050】
特定の実施例では、グラフィカルユーザインターフェイス300は、ユーザインターフェイスの第1のタブに第1のユーザインターフェイス要素302を含み、ユーザインターフェイスの第2のタブに第2のユーザインターフェイス要素304を含んでもよい。一例では、ユーザインターフェイス要素302,304は、アプリケーションのさまざまな配信位置(例えばURL、バイナリ、アップストア(登録商標)、ウインドウズストア(登録商標)など)を示してもよい。例えば、ユーザは、第1のユーザインターフェイス要素302を選択して(図4に示されるように)アプリケーションの第1の配信(例えばアップストア(登録商標))位置のための第1の入力セットを提供してもよく、第2のユーザインターフェイス要素304を選択して(図5に示されるように)アプリケーションの第2の配信(例えばバイナリファイル)位置のための第2の入力セットを提供してもよい。
【0051】
図4は、本明細書に記載されている論理アプリケーションの第1の物理的配信のための第1の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。図4では、例示的な環境400は、論理アプリケーション生成システムにおけるブラウザアプリケーションによって閲覧可能な、論理アプリケーションUI114によって提供されるグラフィカルユーザインターフェイスであってもよい。図4に示される例では、ユーザは、アプリケーションのアップストア(登録商標)位置のための第1の入力セットに関連する情報を提供してもよい。この情報は、例えば、アプリケーションが利用可能な特定の配信位置、アプリケーション識別子、アプリケーションのURL、アプリケーションに関連付けられるパッケージ名、アプリケーションのバージョン、およびアプリケーションの最小OSバージョンを含んでもよい。
【0052】
図5は、本明細書に記載されている論理アプリケーションの第2の物理的配信のための第2の入力セットを提供するための例示的なグラフィカルユーザインターフェイスを示す。図5では、例示的な環境500は、論理アプリケーション生成システムにおけるブラウザアプリケーションによって閲覧可能な、論理アプリケーションUI114によって提供されるグラフィカルユーザインターフェイスであってもよい。図5に示される例では、ユーザは、アプリケーションのアンドロイド(登録商標)位置のための第2の入力セットに関連する情報を提供してもよい。この情報は、例えば、アプリケーションの特定の配信位置(例えばバイナリファイル)、アプリケーション名、アプリケーションタイプ、アプリケーションアイコン、アプリケーションに関連付けられるパッケージ名、アプリケーションのバージョン、ならびにアプリケーションの最小および最大OSバージョンを含んでもよい。
【0053】
図6図7は、本発明の特定の実施例に係る論理アプリケーションを生成するためのそれぞれのプロセス600および700を示す例示的なフロー図を示す。これらのプロセスは、論理フロー図として示されており、その各オペレーションは、ハードウェア、コンピュータ命令またはそれらの組み合わせで実現可能である。コンピュータ命令の文脈では、オペレーションは、1つ以上のプロセッサによって実行されたときに記載されているオペレーションを実行する、1つ以上のコンピュータ読取可能な記憶媒体に記憶されたコンピュータによって実行可能な命令を表わしてもよい。一般に、コンピュータによって実行可能な命令は、特定の機能を実行するまたは特定のデータタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。オペレーションの記載順序は、限定として解釈されるよう意図されるものではなく、記載されているオペレーションのうちの任意の数のオペレーションを任意の順序でおよび/または並列に組み合わせて、プロセスを実現してもよい。
【0054】
さらに、プロセスのうちのいくつか、いずれかまたは全ては、実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で実行されてもよく、1つ以上のプロセッサ上で集合的に実行されるコード(例えば実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせで実現されてもよい。上記のように、コードは、例えば1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能な記憶媒体に記憶されてもよい。コンピュータ読取可能な記憶媒体は、非一時的であってもよい。いくつかの例では、(例えばポリシーエンジン、論理アプリケーションUI、論理アプリケーション生成エンジンおよび論理アプリケーションインストールエンジンを少なくとも利用する)少なくとも図1に示される論理アプリケーション生成システム104は、図6図7のプロセス600および700をそれぞれ実行してもよい。
【0055】
図6は、本明細書に記載されている論理アプリケーションを生成するための例示的なプロセス600のフロー図を示す。600のプロセスはステップ602から開始してもよく、ステップ602において、論理アプリケーション生成エンジン(例えば108)は、論理アプリケーションUI(例えば114)を介してアプリケーションの第1のバイナリファイルのための第1のリソースロケータを受信する。上記のように、第1のリソースロケータは、アプリケーションの第1のバイナリファイルの第1の配信位置(例えばユニフォームリソースロケータ(URL))を指し示してもよい。アプリケーションの第1のバイナリファイルは、アプリケーションの特定の物理的配信(例えばOSプラットフォームバージョン)に対応してもよい。例えば、第1のバイナリファイルは、アプリケーションのアンドロイド(登録商標)OSバージョンに対応してもよい。
【0056】
ステップ604において、論理アプリケーション生成エンジンは、第1のリソースロケータのための第1のデータベースレコードへの第1の入力セットを生成する。ステップ606において、論理アプリケーション生成エンジンは、第1のデバイスの第1のOSバージョンを第1の入力セットに割り当てる。例えば、第1の入力セットは、アプリケーションのアンドロイド(登録商標)バージョンのURL配信位置に対応してもよい。
【0057】
いくつかの実施例では、ステップ608において、論理アプリケーション生成エンジンは、アプリケーションの第2のバイナリファイルのためのプロパティリスト(p−リスト)メタデータファイルを受信してもよい。上記のように、プロパティリストメタデータファイルは、アプリケーションの第2のバイナリファイルのプロパティリスト位置(例えばp−リストファイル)を指し示してもよい。アプリケーションの第2のバイナリファイルは、アプリケーションの特定の物理的配信(例えばOSプラットフォームバージョン)に対応してもよい。例えば、第2のバイナリファイルは、アプリケーションのiOS(登録商標)バージョンに対応してもよい。
【0058】
ステップ610において、論理アプリケーション生成エンジンは、プロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成してもよい。ステップ612において、論理アプリケーション生成エンジンは、第2のデバイスの第2のオペレーティングシステムバージョンを第2の入力セットに割り当ててもよい。例えば、第2の入力セットは、アプリケーションのiOS(登録商標)バージョンの「.plist」配信位置に対応してもよい。ステップ614において、論理アプリケーション生成エンジンは、第1の入力セットおよび第2の入力セットに基づいて論理アプリケーションを生成してもよい。上記のように、いくつかの実施例では、論理アプリケーションは、一組のデータベースレコードを有するデータベーステーブルとして実現されてもよく、第1の入力セットは、データベーステーブルにおける第1のデータベースレコードに対応し、第2の入力セットは、データベーステーブルにおける第2のデータベースレコードに対応し、第3の入力セットは、データベーステーブルにおける第3のデータベースレコードに対応する。
【0059】
図7は、本明細書に記載されている論理アプリケーションをデバイスにインストールするための例示的なプロセス700のフロー図を示す。700のプロセスはステップ702から開始してもよく、ステップ702において、論理アプリケーション生成システムは、通信ネットワークにおけるデバイス(例えば102)を登録する。例えば、デバイスは、ユーザ/デバイス情報データベース120に記憶されたデバイスについての情報に基づいて登録されてもよい。ステップ704において、論理アプリケーションインストールエンジンは、デバイスのユーザに関連付けられるポリシーを特定してもよい。上記のように、ユーザポリシーは、デバイスに関連付けられるユーザの役割または任務に関連してもよい。ステップ706において、論理アプリケーションインストールエンジンは、さらなる基準を適用することによって、デバイスにインストールされるべき論理アプリケーションの特定のバージョンを決定してもよい。上記のように、さらなる基準は、例えば、デバイスによってサポートされるOSの特定のバージョンが論理アプリケーションの特定のバージョン(アンドロイド(登録商標)、iOS(登録商標)、ウインドウズ(登録商標)など)の最小および最大範囲内であると判断すること、デバイスがアプリケーションをインストールすることができるさまざまなタイプの配信位置(例えばバイナリ、URL、アップストア(登録商標))を判断することなどを含んでもよい。
【0060】
ステップ708において、論理アプリケーションインストールエンジンは、さらなる基準が満たされたか否かを判断する。さらなる基準が満たされていない場合、ステップ710において、論理アプリケーションの特定のバージョンはデバイスにインストールされない。さらなる基準が満たされている場合、いくつかの実施例では、論理アプリケーションインストールエンジンは、デバイスへの論理アプリケーションの特定のバージョンのインストールを開始するよう構成される。
【0061】
図8は、実施例を実現するための分散型システム800の簡略図を示す。示されている実施例では、分散型システム800は、1つ以上のクライアントコンピューティングデバイス802,804,806および808を含み、それらは、1つ以上のネットワーク810を介してウェブブラウザ、所有権付きクライアント(例えばオラクルフォームズ(Oracle Forms))などのクライアントアプリケーションを実行および動作させるよう構成される。サーバ812は、リモートクライアントコンピューティングデバイス802,804,806および808とネットワーク810を介して通信可能に結合されてもよい。
【0062】
さまざまな実施例では、サーバ812は、アプリケーションの配信の区分化を提供するサービスおよびアプリケーションなどの1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。特定の実施例では、サーバ812は、非仮想および仮想環境を含むことができる他のサービスまたはソフトウェアアプリケーションも提供してもよい。いくつかの実施例では、これらのサービスは、ウェブに基づくサービスもしくはクラウドサービスとして、またはSoftware as a Service(SaaS)モデルの下で、クライアントコンピューティングデバイス802,804,806および/または808のユーザに対して提供されてもよい。クライアントコンピューティングデバイス802,804,806および/または808を動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用してサーバ812と対話して、これらのコンポーネントによって提供されるサービスを利用してもよい。
【0063】
図8に示される構成では、システム800のソフトウェアコンポーネント818,820および822は、サーバ812上で実現されるものとして示されている。他の実施例では、システム800のコンポーネントのうちの1つ以上および/またはこれらのコンポーネントによって提供されるサービスは、クライアントコンピューティングデバイス802,804,806および/または808のうちの1つ以上によって実現されてもよい。クライアントコンピューティングデバイスを動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。分散型システム800とは異なってもよいさまざまな異なるシステム構成が可能であることが理解されるべきである。図8に示される実施例は、したがって、実施例のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【0064】
クライアントコンピューティングデバイス802,804,806および/または808は、さまざまなタイプのコンピューティングシステムを含んでもよい。例えば、クライアントコンピューティングデバイスは、携帯可能な手持ち式のデバイス(例えばiPhone(登録商標)、セルラー電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(personal digital assistant:PDA))またはウェアラブルデバイス(例えばGoogle Glass(登録商標)頭部装着型ディスプレイ)を含んでもよく、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/もしくは、iOS、Windows Phone、Android、BlackBerry 10、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行する。デバイスは、さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス(short message service:SMS)アプリケーションなどのさまざまなアプリケーションをサポートしてもよく、さまざまな他の通信プロトコルを使用してもよい。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータも含んでもよく、一例として、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、例えばGoogle Chrome OSなどのさまざまなGNU/Linuxオペレーティングシステムを限定を伴うことなく含む、さまざまな市場で入手可能なUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。クライアントコンピューティングデバイスは、ネットワーク810を介して通信することができる、シンクライアントコンピュータ、インターネットにより可能化されるゲームシステム(例えばKinect(登録商標)ジェスチャ入力デバイスを伴うかまたは伴わないMicrosoft Xboxゲームコンソール)および/または個人メッセージ伝達デバイスなどの電子デバイスも含んでもよい。
【0065】
図8の分散型システム800は4つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなど、他のデバイスがサーバ812と対話してもよい。
【0066】
分散型システム800におけるネットワーク810は、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalkなどを限定を伴うことなく含む、さまざまな入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。単に一例として、ネットワーク810は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)、トークンリングに基づくネットワーク、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(例えば米国電気電子学会(IEEE)1002.11のプロトコル一式、Bluetooth(登録商標)、および/もしくはその他の無線プロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/またはこれらの任意の組み合わせおよび/もしくは他のネットワークであり得る。
【0067】
サーバ812は、1つ以上の汎用コンピュータ、専用のサーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせで構成されてもよい。サーバ812は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。論理ストレージデバイスの1つ以上の柔軟なプールを仮想化してサーバのために仮想ストレージデバイスを維持することができる。仮想ネットワークを、サーバ812によって、ソフトウェア定義のネットワーク接続を用いて制御することができる。さまざまな実施例において、サーバ812は、前述の開示に記載される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。例えば、サーバ812は、本開示の実施例に従って上記の処理を実行するためのサーバに対応してもよい。
【0068】
サーバ812は、上記のもののうちのいずれかを含むオペレーティングシステム、および任意の市場で入手可能なサーバオペレーティングシステムを実行してもよい。サーバ812は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらなるサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行してもよい。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース、IBM(インターナショナルビジネスマシンズ)などから市場で入手可能なものを含むが、それらに限定されるものではない。
【0069】
いくつかの実現例では、サーバ812は、クライアントコンピューティングデバイス802,804,806および808のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つ以上のアプリケーションを含んでもよい。一例として、データフィードおよび/またはイベント更新情報は、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能計量ツール(例えばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含んでもよい、1つ以上の第三者情報源および連続データストリームから受信される、Twitter(登録商標)フィード、Facebook(登録商標)更新情報またはリアルタイムの更新情報を含んでもよいが、それらに限定されるものではない。サーバ812は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス802,804,806および808の1つ以上の表示デバイスを介して表示するための1つ以上のアプリケーションも含んでもよい。
【0070】
分散型システム800は、1つ以上のデータベース814および816も含んでもよい。これらのデータベースは、アプリケーション情報などの情報および本発明の実施例によって使用される他の情報を記憶するための機構を提供してもよい。データベース814および816は、さまざまな位置にあってもよい。一例として、データベース814および816のうちの1つ以上は、サーバ812に局在する(および/またはサーバ812に常駐する)非一時的な記憶媒体にあってもよい。代替的に、データベース814および816は、サーバ812から遠隔にあり、ネットワークに基づくかまたは専用の接続を介してサーバ812と通信してもよい。一組の実施例では、データベース814および816は、記憶域ネットワーク(storage-area network:SAN)にあってもよい。同様に、サーバ812に帰する機能を実行するための任意の必要なファイルが、適宜、サーバ812上においてローカルに、および/または遠隔で記憶されてもよい。一組の実施例では、データベース814および816は、SQLフォーマットされたコマンドに応答してデータを記憶、更新および検索取得するように適合される、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでもよい。
【0071】
いくつかの実施例では、上記のデバイスエンロールメントサービスは、クラウド環境を介してサービスとして提供されてもよい。図9は、本開示の実施例に従って、サービスがクラウドサービスとして提供されてもよいシステム環境900の1つ以上のコンポーネントの簡略ブロック図である。図9における示されている実施例では、システム環境900は、1つ以上のクライアントコンピューティングデバイス904,906および908を含み、1つ以上のクライアントコンピューティングデバイス904,906および908は、アプリケーションの配信の区分化のためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム902と対話するようにユーザによって使用されてもよい。クラウドインフラストラクチャシステム902は、サーバ812のための上記のものを含んでもよい1つ以上のコンピュータおよび/またはサーバを備えてもよい。
【0072】
図9に示されるクラウドインフラストラクチャシステム902は図示されるもの以外のコンポーネントを有してもよいことが理解されるべきである。さらに、図9に示される実施例は、本発明の実施例を組み込んでもよいクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム902は、図に示されるよりも多いコンポーネントもしくは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい。
【0073】
クライアントコンピューティングデバイス904,906および908は、802,804,806および808に対して上記されたものと同様のデバイスであってもよい。クライアントコンピューティングデバイス904,906および908は、ウェブブラウザ、所有権付きクライアントアプリケーション(例えばオラクルフォームズ)、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるよう構成されてもよく、当該クライアントアプリケーションは、クラウドインフラストラクチャシステム902と対話して、クラウドインフラストラクチャシステム902によって提供されるサービスを使用するようにクライアントコンピューティングデバイスのユーザによって使用されてもよい。例示的なシステム環境900が3つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの他のデバイスがクラウドインフラストラクチャシステム902と対話してもよい。
【0074】
ネットワーク910は、クライアント904,906および908とクラウドインフラストラクチャシステム902との間におけるデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク1210に対して上記されたものを含む、さまざまな市場で入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。
【0075】
特定の実施例では、クラウドインフラストラクチャシステム902によって提供されるサービスは、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされるサービスのホストを含んでもよい。アプリケーション管理に関連するサービスに加えて、オンラインデータストレージおよびバックアップソリューション、ウェブに基づく電子メールサービス、運営管理されるオフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理される技術サポートサービスなどを限定を伴うことなく含むさまざまな他のサービスも提供されてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、動的にスケーリングしてそのユーザのニーズを満たすことができる。
【0076】
特定の実施例では、クラウドインフラストラクチャシステム902によって提供されるあるサービスのある具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。典型的には、パブリックなクラウド環境においては、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なる。例えば、クラウドサービスプロバイダのシステムは、アプリケーションを運営管理してもよく、ユーザは、インターネットなどの通信ネットワークを介して、オンデマンドで、アプリケーションをオーダーし使用してもよい。
【0077】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、運営管理されるデータベース、運営管理されるウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダーによってユーザに提供されるかもしくは他の態様で当該技術分野において公知であるような他のサービスに対する保護されたコンピュータネットワークアクセスを含んでもよい。例えば、サービスは、クラウド上のリモートストレージに対するインターネットを介してのパスワード保護されたアクセスを含むことができる。別の例として、サービスは、ネットワーク接続された開発者による個人的な使用のために、ウェブサービスに基づく運営管理されたリレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダーのウェブサイトにおいて運営管理される電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
【0078】
特定の実施例では、クラウドインフラストラクチャシステム902は、セルフサービスの、サブスクリプションに基づく、弾性的にスケーラブルで、信頼性があり、非常に利用可能性があり、およびセキュリティ上安全な態様で顧客に対して配送されるアプリケーション、ミドルウェア、データベースサービス提供一式を含んでもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド(Oracle Public Cloud)である。
【0079】
クラウドインフラストラクチャシステム902は、「ビッグデータ」関連の計算および解析ツールも提供してもよい。「ビッグデータ」という語は、一般に、大量のデータを視覚化し、傾向を検出し、および/またはその他の態様でデータと対話するようにアナリストおよび研究者によって記憶および操作され得る非常に大きなデータセットを指すように用いられる。このビッグデータおよび関連のアプリケーションは、インフラストラクチャシステムによって、多数のレベルにおいて、および異なるスケールで運営管理および/または操作され得る。そのようなデータを表示するため、またはデータもしくはデータが表現するものに対する外部の力をシミュレートするために、並列に連結された何十、何百または何千ものプロセッサがそのようなデータに対して作用することができる。これらのデータセットは、データベース状にもしくはさもなければ構造モデルに従って編成されたものなどの構造化データ、および/または非構造化データ(例えば電子メール、画像、データブロブ(バイナリラージオブジェクト)、ウェブページ、複合イベント処理)を含み得る。より多くの(またはより少ない)計算リソースを比較的迅速に対象に集中させることができる実施例の機能を活用することによって、クラウドインフラストラクチャシステムは、会社、政府機関、研究組織、私人、同じ考えを持った個人もしくは組織のグループ、または他のエンティティからの要求に基づいて大きなデータセットに対してタスクを実行することにさらに利用できるであろう。
【0080】
さまざまな実施例では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステム902によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、およびトラッキングするように適合されてもよい。クラウドインフラストラクチャシステム902は、クラウドサービスをさまざまな展開モデルを介して提供してもよい。例えば、サービスは、クラウドインフラストラクチャシステム902が(例えばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、サービスが一般大衆または異なる業界企業に対して利用可能にされるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム902が単一の組織に対してのみ動作され、その組織内における1つ以上のエンティティに対してサービスを提供してもよいプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム902およびクラウドインフラストラクチャシステム902によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【0081】
いくつかの実施例では、クラウドインフラストラクチャシステム902によって提供されるサービスは、Software as a Service(SaaS)カテゴリ、Platform as a Service(PaaS)カテゴリ、Infrastructure as a Service(IaaS)カテゴリ、またはハイブリッドサービスを含む他のサービスのカテゴリの下で提供される1つ以上のサービスを含んでもよい。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスをオーダーしてもよい。クラウドインフラストラクチャシステム902は、次いで、処理を実行して、顧客のサブスクリプションオーダーにおけるサービスを提供する。
【0082】
いくつかの実施例では、クラウドインフラストラクチャシステム902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含んでもよいが、それらに限定されるものではない。いくつかの例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってSaaSプラットフォームを介して提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに入るクラウドサービスを提供するよう構成されてもよい。例えば、SaaSプラットフォームは、オンデマンドアプリケーション一式を統合された開発および展開プラットフォーム上で構築し配送する機能を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにおいて実行されるアプリケーションを利用することができる。顧客は、別のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。その例としては、大きな組織に対する売上実績管理、企業統合、および事業柔軟性に対するソリューションを提供するサービスが挙げられるが、それらに限定されるものではない。
【0083】
いくつかの実施例では、プラットフォームサービスは、クラウドインフラストラクチャシステム902によってPaaSプラットフォームを介して提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに入るクラウドサービスを提供するよう構成されてもよい。プラットフォームサービスの例としては、(オラクルなどの)組織が既存のアプリケーションを共有の共通のアーキテクチャにおいて整理統合することができるサービス、およびプラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、それらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。顧客は、クラウドインフラストラクチャシステム902によって提供されるPaaSサービスを、別のライセンスおよびサポートを購入する必要なく取得することができる。プラットフォームサービスの例としては、オラクル・ジャバ・クラウド・サービス(Oracle Java Cloud Service:JCS)、オラクル・データベース・クラウド・サービス(Oracle Database Cloud Service:DBCS)などが挙げられるが、それらに限定されるものではない。
【0084】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを使用することができ、展開されたサービスを制御することもできる。いくつかの実施例では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(例えばオラクル・フュージョン・ミドルウェアサービス)、およびJavaクラウドサービスを含んでもよい。一実施例では、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にDatabase as a Serviceをデータベースクラウドの形式で提供することを可能にする共有のサービス展開モデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発および展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してもよく、Javaクラウドサービスは、顧客がJavaアプリケーションを展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してしてもよい。
【0085】
さまざまな異なるインフラストラクチャサービスがIaaSプラットフォームによってクラウドインフラストラクチャシステムにおいて提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワーク、ならびにSaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客に対する他の基礎的計算リソースなどの基本的な計算リソースの管理および制御を容易にする。
【0086】
特定の実施例では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステムの顧客に対してさまざまなサービスを提供するよう用いられるリソースを提供するためのインフラストラクチャリソース930も含んでもよい。一実施例では、インフラストラクチャリソース930は、サーバ、ストレージ、ならびにPaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのネットワーク接続リソース、ならびに他のリソースなどの、ハードウェアの予め統合され最適化された組み合わせを含んでもよい。
【0087】
いくつかの実施例では、クラウドインフラストラクチャシステム902におけるリソースは、複数のユーザによって共有され、要求につき動的に再割り当てされてもよい。また、リソースは、ユーザに対してさまざまな時間ゾーンで割り当てられてもよい。例えば、クラウドインフラストラクチャシステム902は、第1の時間ゾーンにおける第1のユーザセットがクラウドインフラストラクチャシステムのリソースをある特定の時間の間利用することを可能にし、次いで、異なる時間ゾーンに位置する別のユーザセットに対する同じリソースの再割り当てを可能にし、それによって、リソースの利用を最大化してもよい。
【0088】
特定の実施例では、クラウドインフラストラクチャシステム902のさまざまなコンポーネントまたはモジュールによって共有されてクラウドインフラストラクチャシステム902によるサービスのプロビジョニングを可能にするある数の内部共有サービス932が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよびリカバリサービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含んでもよいが、それらに限定されるものではない。
【0089】
特定の実施例では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステムにおいてクラウドサービス(例えばSaaS、PaaS、およびIaaSサービス)の包括的な管理を提供してもよい。一実施例では、クラウド管理機能は、クラウドインフラストラクチャシステム902によって受信される顧客のサブスクリプションをプロビジョニングし、管理し、およびトラッキングする機能などを含んでもよい。
【0090】
一実施例では、図9に示されるように、クラウド管理機能は、オーダー管理モジュール920、オーダーオーケストレーションモジュール922、オーダープロビジョニングモジュール924、オーダー管理および監視モジュール926、ならびにアイデンティティ管理モジュール928などの1つ以上のモジュールによって提供されてもよい。これらのモジュールは、1つ以上のコンピュータおよび/もしくはサーバを含んでもよく、またはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであってもよい。
【0091】
例示的な動作では、ステップ934において、クライアントデバイス904、906または908などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスに対するサブスクリプションに対するオーダーを行なうことによって、クラウドインフラストラクチャシステム902と対話してもよい。特定の実施例では、顧客は、クラウドUI912、クラウドUI914および/またはクラウドUI916などのクラウドユーザインターフェイス(UI)にアクセスし、サブスクリプションオーダーをこれらのUIを介して行なってもよい。顧客がオーダーを行なうことに応答してクラウドインフラストラクチャシステム902によって受信されるオーダー情報は、顧客を識別する情報、およびクラウドインフラストラクチャシステム902によって提供される、その顧客が利用することを意図する1つ以上のサービスを含んでもよい。
【0092】
ステップ936において、顧客から受信されたオーダー情報は、オーダーデータベース918に保存されてもよい。これが新たなオーダーである場合には、当該オーダーに対して新たなレコードが作成されてもよい。一実施例では、オーダーデータベース918は、クラウドインフラストラクチャシステム918によって動作されるいくつかのデータベースのうちの1つであり得、他のシステム要素と連携して動作され得る。
【0093】
ステップ938において、オーダー情報は、オーダー管理モジュール920に転送されてもよく、当該オーダー管理モジュール920は、オーダーを検証すること、および検証次第そのオーダーを予約することなど、オーダーに関連する請求および課金機能を実行するよう構成されてもよい。
【0094】
ステップ940において、オーダーに関する情報は、オーダーオーケストレーションモジュール922に通信されてもよく、当該オーダーオーケストレーションモジュール922は、顧客によってなされたオーダーに対してサービスおよびリソースのプロビジョニングをオーケストレーションするよう構成される。いくつかの例では、オーダーオーケストレーションモジュール922は、オーダープロビジョニングモジュール924のサービスをプロビジョニングに使用してもよい。特定の実施例では、オーダーオーケストレーションモジュール922は、各オーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきか否かを判断する。
【0095】
図9に示される実施例に示されているように、ステップ942において、新たなサブスクリプションに対するオーダーを受信すると、オーダーオーケストレーションモジュール922は、オーダープロビジョニングモジュール924に対して、リソースを割り当てて、サブスクリプションオーダーを満たすのに必要とされるリソースを構成するよう、要求を送信する。オーダープロビジョニングモジュール924は、顧客によってオーダーされたサービスに対するリソースの割り当てを可能にする。オーダープロビジョニングモジュール924は、クラウドインフラストラクチャシステム900によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするよう用いられる物理的インプリメンテーション層との間にある抽象化レベルを提供する。これにより、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、サービスおよびリソースが予めプロビジョニングされて要求時にのみ割り当てられる/あてがわれるかなどの、インプリメンテーション詳細からオーダーオーケストレーションモジュール924を分離することができる。
【0096】
ステップ944において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが使用できる状態であることを示す通知が、加入している顧客に送信されてもよい。いくつかの例では、顧客が要求されたサービスの使用を開始することを可能にする情報(例えばリンク)が顧客に送信されてもよい。
【0097】
ステップ946において、顧客のサブスクリプションオーダーは、オーダー管理および監視モジュール926によって管理およびトラッキングされてもよい。いくつかの例では、オーダー管理および監視モジュール926は、加入したサービスの顧客使用に関する使用統計を収集するよう構成されてもよい。例えば、統計は、使用されるストレージの量、転送されるデータの量、ユーザの人数、ならびにシステムアップ時間およびシステムダウン時間の量などについて収集されてもよい。
【0098】
特定の実施例では、クラウドインフラストラクチャシステム900は、アイデンティティ管理モジュール928を含んでもよく、当該アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム900におけるアクセス管理および承認サービスなどのアイデンティティサービスを提供するよう構成される。いくつかの実施例では、アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム902によって提供されるサービスを利用することを望む顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報、およびそれらの顧客がさまざまなシステムリソース(例えばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することが承認されるかを記述する情報を含み得る。アイデンティティ管理モジュール928は、各顧客についての記述的情報ならびにどのように誰によってその記述的情報がアクセスおよび修正され得るかについての情報の管理も含んでもよい。
【0099】
図10は、本発明の実施例を実現するために使用され得る例示的なコンピュータシステム1000を示す。いくつかの実施例では、コンピュータシステム1000は、上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するよう用いられてもよい。図10に示されるように、コンピュータシステム1000は、多数の周辺サブシステムとバスサブシステム1002を介して通信する処理サブシステム1004を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット1006、I/Oサブシステム1008、ストレージサブシステム1018および通信サブシステム1024を含んでもよい。ストレージサブシステム1018は、有形のコンピュータ読取可能な記憶媒体1022およびシステムメモリ1010を含んでもよい。
【0100】
バスサブシステム1002は、コンピュータシステム1000のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム1002は単一のバスとして概略的に示されているが、バスサブシステムの代替的実施例は、複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。例えば、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスなどを含んでもよい。
【0101】
処理サブシステム1004は、コンピュータシステム1000の動作を制御し、1つ以上の処理ユニット1032,1034などを備えてもよい。処理ユニットは、単一コアもしくはマルチコアプロセッサを含む1つ以上のプロセッサ、プロセッサの1つ以上のコア、またはそれらの組み合わせを含んでもよい。いくつかの実施例では、処理サブシステム1004は、グラフィックスプロセッサ、デジタル信号プロセッサ(digital signal processor:DSP)などの1つ以上の特殊用途コプロセッサを含み得る。いくつかの実施例では、処理サブシステム1004の処理ユニットの一部または全ては、特定用途向け集積回路(application specific integrated circuit:ASIC)またはフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)などのカスタマイズされた回路を用いて実現され得る。
【0102】
いくつかの実施例では、処理サブシステム1004における処理ユニットは、システムメモリ1010またはコンピュータ読取可能な記憶媒体1022に記憶された命令を実行することができる。さまざまな実施例では、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与のときに、実行されるべきプログラムコードの一部または全ては、システムメモリ1010、および/または、場合によっては1つ以上のストレージデバイスを含むコンピュータ読取可能な記憶媒体1010に常駐することができる。好適なプログラミングを介して、処理サブシステム1004は、論理アプリケーションを生成するための上記のさまざまな機能を提供することができる。
【0103】
特定の実施例では、コンピュータシステム1000によって実行される処理全体を加速させるように、カスタマイズされた処理を実行するため、または処理サブシステム1004によって実行される処理の一部をオフロードするための処理加速ユニット1006が設けられてもよい。
【0104】
I/Oサブシステム1008は、コンピュータシステム1000に情報を入力するため、および/または、コンピュータシステム1000からもしくはコンピュータシステム1000を介して情報を出力するためのデバイスおよび機構を含んでもよい。一般に、「入力デバイス」という語の使用は、コンピュータシステム1000に情報を入力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、例えば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれるタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサ、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャおよび話し言葉コマンドを用いて入力を受信するためのインターフェイスを提供するデバイスなどのモーション感知および/またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の活動(例えば写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(例えばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(例えばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0105】
ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスが挙げられるが、それらに限定されるものではない。また、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、医療超音波検査デバイスなどの医療画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、例えば、MIDIキーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
【0106】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使うものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム1000からユーザまたは他のコンピュータに情報を出力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。例えば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【0107】
ストレージサブシステム1018は、コンピュータシステム1000によって使用される情報を記憶するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1018は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形の非一時的なコンピュータ読取可能な記憶媒体を提供する。処理サブシステム1004によって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)がストレージサブシステム1018に記憶されてもよい。当該ソフトウェアは、処理サブシステム1004の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム1018は、本発明に従って使用されるデータを記憶するためのリポジトリも提供してもよい。
【0108】
ストレージサブシステム1018は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的なメモリデバイスを含んでもよい。図10に示されるように、ストレージサブシステム1018は、システムメモリ1010と、コンピュータ読取可能な記憶媒体1022とを含む。システムメモリ1010は、プログラム実行中に命令およびデータを記憶するための揮発性メインランダムアクセスメモリ(random access memory:RAM)および固定命令が記憶される不揮発性リードオンリメモリ(read only memory:ROM)またはフラッシュメモリを含む複数のメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム1000内の要素間における情報の転送を助ける基本的なルーティンを含むベーシックインプット/アウトプットシステム(basic input/output system:BIOS)は、一般に、ROMに記憶されてもよい。RAMは、一般に、処理サブシステム1004によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含んでもよい。
【0109】
一例として、限定を伴うことなく、図10に示されるように、システムメモリ1010は、アプリケーションプログラム1012を記憶してもよく、当該アプリケーションプログラム1012は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)など、プログラムデータ1014およびオペレーティングシステム1016を含んでもよい。一例として、オペレーティングシステム1016は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/もしくはLinux(登録商標)オペレーティングシステム、さまざまな市場で入手可能なUNIX(登録商標)またはUNIXのようなオペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがそれらに限定されない)、ならびに/または、iOS、Windows(登録商標) Phone、Android(登録商標) OS、BlackBerry(登録商標) 10 OS、およびPalm(登録商標) OSオペレーティングシステムなどのモバイルオペレーティングシステムのさまざまなバージョンを含んでもよい。
【0110】
コンピュータ読取可能な記憶媒体1022は、いくつかの実施例の機能を提供するプログラミングおよびデータ構造を記憶してもよい。処理サブシステム1004によって実行されたときにプロセッサに上記の機能を提供させるソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1018に記憶されてもよい。一例として、コンピュータ読取可能な記憶媒体1022は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、ブルーレイ(登録商標)ディスクなどの光ディスクドライブ、または他の光学式媒体などの不揮発性メモリを含んでもよい。コンピュータ読取可能な記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されるものではない。コンピュータ読取可能な記憶媒体1022は、フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSDなどの揮発性メモリに基づくSSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含んでもよい。コンピュータ読取可能な媒体1022は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータのストレージをコンピュータシステム1000に提供してもよい。
【0111】
特定の実施例では、ストレージサブシステム1000は、コンピュータ読取可能な記憶媒体1022にさらに接続可能なコンピュータ読取可能記憶媒体リーダ1020も含んでもよい。システムメモリ1010とともに、およびオプションとしてシステムメモリ1010との組み合わせで、コンピュータ読取可能な記憶媒体1022は、コンピュータ読取可能な情報を記憶するための、遠隔の、ローカルな、固定された、および/またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表わしてもよい。
【0112】
特定の実施例では、コンピュータシステム1000は、1つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム1000は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行してもよい。各仮想マシンは、割り当てられたメモリ、計算(例えばプロセッサ、コア)、I/Oおよびネットワーク接続リソースであってもよい。各仮想マシンは、一般に、それ自体のオペレーティングシステムを実行し、当該オペレーティングシステムは、コンピュータシステム1000によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム1000によって同時に実行されてもよい。各仮想マシンは、一般に、他の仮想マシンから独立して実行される。
【0113】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム1024は、他のシステムとコンピュータシステム1000との間のデータの送受のためのインターフェイスとして働く。例えば、通信サブシステム1024は、コンピュータシステム1000が1つ以上のクライアントデバイスとの情報の送受のためにインターネットを介したクライアントデバイスへの通信チャネルを確立することを可能にしてもよい。
【0114】
通信サブシステム1024は、有線通信プロトコルおよび/または無線通信プロトコルをサポートしてもよい。例えば、特定の実施例では、通信サブシステム1024は、(例えばセルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.11ファミリー規格、もしくは他のモバイル通信技術、またはそれらの任意の組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)送受信機コンポーネント、グローバルポジショニングシステム(global positioning system:GPS)受信機コンポーネント、ならびに/または他のコンポーネントを含んでもよい。いくつかの実施例では、通信サブシステム1024は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえばイーサネット)を提供することができる。
【0115】
通信サブシステム1024は、さまざまな形式でデータを送受信することができる。例えば、いくつかの実施例では、通信サブシステム1024は、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新情報1030などの形式で入力通信を受信してもよい。例えば、通信サブシステム1024は、ソーシャルメディアネットワークおよび/またはTwitter(登録商標)フィード、Facebook(登録商標)更新情報、Rich Site Summary(RSS)フィードなどのウェブフィード、および/もしくは1つ以上の第三者情報源からのリアルタイム更新情報などの他の通信サービスのユーザからリアルタイムでデータフィード1026を受信(または送信)するよう構成されてもよい。
【0116】
特定の実施例では、通信サブシステム1024は、連続データストリームの形式でデータを受信するよう構成されてもよく、当該連続データストリームは、明示的な端部を有さない本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1028および/またはイベント更新情報1030を含んでもよい。連続データを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(例えばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
【0117】
また、通信サブシステム1024は、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新情報1030などを、コンピュータシステム1000に結合される1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するよう構成されてもよい。
【0118】
コンピュータシステム1000は、手持ち式の携帯デバイス(例えばiPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えばGoogle Glass(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのもののうちの1つであり得る。
【0119】
常に変化するコンピュータおよびネットワークの性質のため、図10に示されるコンピュータシステム1000の記載は、単に具体的な例として意図される。図10に示されるシステムよりも多いまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施例を実現する他の態様および/または方法を理解するであろう。
【0120】
図11は、本発明の特定の実施例に係る異種の電子デバイスのためのアプリケーション配信を区分化するためのシステム1100を示す。システム1100およびそのコンポーネントは、先の実施例に記載されている本発明の原理に基づいて適切なオペレーションのうちのいずれかを実行するように、ハードウェア、ソフトウェア、またはそれらの組み合わせによって実現されてもよい。本明細書に記載されている機能ブロックは、組み合わせられるか、またはサブブロックに分割されて、上記の本発明の原理を実現してもよい、ということが当業者によって理解される。したがって、本明細書における記載は、本明細書に記載されている機能ブロックの任意の考えられ得る組み合わせまたは分割またはさらには定義をサポートしてもよい。図11に示されるように、システム1100は、受信ユニット1102と、生成ユニット1104と、割り当てユニット1106と、表示ユニット1108とを含む。
【0121】
受信ユニット1102は、アプリケーションの第1のバイナリファイルのための第1のリソースロケータを受信することができる。生成ユニット1104は、第1のリソースロケータのための第1のデータベースレコードへの第1の入力セットを生成することができる。割り当てユニット1106は、第1のデバイスの第1のオペレーティングシステムバージョンを第1の入力セットに割り当てることができる。また、受信ユニット1102は、アプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルも受信することができ、生成ユニット1104は、プロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成することができ、割り当てユニット1106は、第2のデバイスの第2のオペレーティングシステムバージョンを第2の入力セットに割り当てることができる。表示ユニット1108は、第1の入力セットにリンクされた第1のユーザインターフェイスユニットと第2の入力セットにリンクされた第2のユーザインターフェイスユニットとを有するユーザインターフェイスを表示することができる。
【0122】
いくつかの実施例では、生成ユニット1104は、第1の入力セットおよび第2の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。
【0123】
いくつかの実施例では、システム1100は、特定ユニット1110と、決定ユニット1112と、インストールユニット1114とをさらに含み得る。
【0124】
特定ユニット1110は、第1のデバイスの第1のユーザに関連付けられる第1のポリシーを特定することができる。決定ユニット1112は、当該ポリシーに基づいて、第1のデバイスにインストールすべき論理アプリケーションの第1のバージョンを決定することができる。インストールユニット1114は、当該決定に基づいて、第1のデバイスへの論理アプリケーションの第1のバージョンのインストールを生じさせることができる。
【0125】
いくつかの実施例では、特定ユニット1110は、第2のデバイスの第2のユーザに関連付けられる第2のポリシーも特定することができる。決定ユニット1112は、当該ポリシーに基づいて、第2のデバイスにインストールすべき論理アプリケーションの第2のバージョンも決定することができる。インストールユニット1114は、当該決定に基づいて、第2のデバイスへの論理アプリケーションの第2のバージョンのインストールも生じさせることができる。
【0126】
いくつかの実施例では、システムは、論理アプリケーションの第2のバージョンをデバイスにダウンロードするようにプッシュ通知イベントを第2のデバイスに送信するための送信ユニット1116も含む。
【0127】
いくつかの実施例では、異種の電子デバイスのためのアプリケーション配信を区分化するためのシステムは、以下のように実現されることも可能である。ここでも、システムおよびそのコンポーネントは、先の実施例に記載されている本発明の原理に基づいて適切なオペレーションのうちのいずれかを実行するように、ハードウェア、ソフトウェア、またはそれらの組み合わせによって実現されてもよい。本明細書に記載されている機能ブロックは、組み合わせられるか、またはサブブロックに分割されて、上記の本発明の原理を実現してもよい、ということが当業者によって理解される。したがって、本明細書における記載は、本明細書に記載されている機能ブロックの任意の考えられ得る組み合わせまたは分割またはさらには定義をサポートしてもよい。
【0128】
より具体的には、システムは、図1に示される論理アプリケーション生成エンジン108と論理アプリケーションインストールエンジン112とを備えていてもよい。論理アプリケーション生成エンジン108は、アプリケーションの第1のバイナリファイルのための第1のデータベースレコードへの第1の入力セットを生成し、アプリケーションの第2のバイナリファイルのためのプロパティリストメタデータファイルのための第2のデータベースレコードへの第2の入力セットを生成し、第1のデバイスの第1のオペレーティングシステムバージョンを第1の入力セットに割り当て、第2のデバイスの第2のオペレーティングシステムバージョンを第2の入力セットに割り当て、第1の入力セットおよび第2の入力セットに少なくとも部分的に基づいて論理アプリケーションを生成する。次いで、論理アプリケーションインストールエンジン112は、第1のデバイスまたは第2のデバイスへの論理アプリケーションのインストールを生じさせる。
【0129】
本発明の具体的な実施例について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施例は、特定の具体的なデータ処理環境内でのオペレーションに限定されるものではなく、複数のデータ処理環境内で自由に動作できる。また、特定の一連のトランザクションおよびステップを用いて本発明の実施例について説明してきたが、本発明の範囲は、記載されている一連のトランザクションおよびステップに限定されるものではない、ということが当業者に明らかであるべきである。上記の実施例のさまざまな特徴および局面は、個々にまたは一緒に使用されてもよい。
【0130】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを用いて本発明の実施例について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施例は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されているさまざまなプロセスは、任意の組み合わせで同一のプロセッサまたは異なるプロセッサ上で実現され得る。したがって、コンポーネントまたはモジュールが特定のオペレーションを実行するよう構成されるものとして記載されている場合、このような構成は、例えばオペレーションを実行するように電子回路を設計することによって、オペレーションを実行するように(マイクロプロセッサなどの)プログラム可能な電子回路をプログラミングすることによって、またはそれらの任意の組み合わせによって、達成されることができる。プロセスは、従来のプロセス間通信技術を含むがそれに限定されないさまざまな技術を用いて通信することができ、プロセスの異なる対は、異なる技術を使用してもよく、またはプロセスの同一の対は、異なるときに異なる技術を使用してもよい。
【0131】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、減算、削除、ならびに他の変形および変更がそれに対してなされてもよい、ということは明白であろう。したがって、具体的な本発明の実施例について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11