IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許7461940対話型データエクスプローラおよび3Dダッシュボード環境
<>
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図1
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図2
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図3
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図4
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図5
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図6
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図7
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図8
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図9
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図10
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図11
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図12
  • 特許-対話型データエクスプローラおよび3Dダッシュボード環境 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-27
(45)【発行日】2024-04-04
(54)【発明の名称】対話型データエクスプローラおよび3Dダッシュボード環境
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20240328BHJP
   G06T 19/00 20110101ALI20240328BHJP
【FI】
G06Q50/10
G06T19/00 A
【請求項の数】 12
(21)【出願番号】P 2021521459
(86)(22)【出願日】2019-10-21
(65)【公表番号】
(43)【公表日】2022-01-14
(86)【国際出願番号】 US2019057173
(87)【国際公開番号】W WO2020086443
(87)【国際公開日】2020-04-30
【審査請求日】2022-09-22
(31)【優先権主張番号】62/748,504
(32)【優先日】2018-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】モロズ,ベンジャミン・エル
(72)【発明者】
【氏名】グレイザー,ブレンドン・チャールズ
(72)【発明者】
【氏名】カトンゴ,カパヤ
(72)【発明者】
【氏名】ハンソン,クリス・エル
(72)【発明者】
【氏名】バン・デン・ブルーク,ヘンドリック
【審査官】庄司 琴美
(56)【参考文献】
【文献】国際公開第2017/054004(WO,A1)
【文献】米国特許出願公開第2014/0040257(US,A1)
【文献】米国特許出願公開第2012/0041990(US,A1)
【文献】米国特許出願公開第2018/0158245(US,A1)
【文献】米国特許出願公開第2017/0017908(US,A1)
【文献】特開2001-022958(JP,A)
【文献】Naveed Ejaz et al,Interactive 3D Visualization of Social Network Data Using Cloud Computing,2012 International Conference on Cloud Computing and Social Networking (ICCCSN),IEEE,2012年06月14日,DOI:10.1109/ICCCSN.2012.6215744
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
多次元ダッシュボードにおいてデータを表示するための方法であって、
複数の3次元(3D)視覚化コンポーネントにアクセスすることを含み、前記複数の3D視覚化コンポーネントの各々は、データセットを受信するためのパラメータ化された入力を含み、前記方法はさらに、
1つまたは複数のデータセットを受信することと、
前記複数の3D視覚化コンポーネントの前記パラメータ化された入力を前記1つまたは複数のデータセットとバインディングすることと、
前記複数の3D視覚化コンポーネントおよび前記1つまたは複数のデータセットに基づいて、仮想環境において複数の3D仮想オブジェクトをレンダリングすることと、
複数のクライアントデバイスから前記仮想環境への接続を受信することと、
前記仮想環境における前記複数の3D仮想オブジェクトの複数のビューを前記複数のクライアントデバイスに提供することと
前記仮想環境において前記複数のクライアントデバイスに対応する複数のアバターを表示することとを含み、前記複数のアバターの動きは、前記複数のクライアントデバイスへの入力によって制御され、前記方法はさらに、
前記複数のクライアントデバイス内の第1のクライアントデバイスから、前記複数のアバター内の対応する第1のアバターに、前記複数の3D仮想オブジェクト内の第1の3D仮想オブジェクトからの要素を視覚的に除去させる入力を受信することを含み、前記第1の3D仮想オブジェクトからの前記要素は、前記1つまたは複数のデータセット内の対応する第1のデータセット内の行を表す、方法。
【請求項2】
前記1つまたは複数のデータセットは、データベースからの企業データセットを含む、請求項1に記載の方法。
【請求項3】
前記企業データセットは、CRMアプリケーションからのデータを含む、請求項2に記載の方法。
【請求項4】
前記複数の3D視覚化コンポーネントは、コンポーネント交換から受信される、請求項1~3のいずれかに記載の方法。
【請求項5】
前記複数の3D仮想オブジェクトは、前記仮想環境において企業ダッシュボードとして提供される、請求項1~4のいずれかに記載の方法。
【請求項6】
前記企業ダッシュボード内の前記3D仮想オブジェクトの各々は、異なるデータベースからの異なる企業データセットにバインディングされる、請求項5に記載の方法。
【請求項7】
前記複数のクライアントデバイスは、2次元(2D)表示を有するデバイスと、3D表示を有するデバイスとを含む、請求項1~6のいずれかに記載の方法。
【請求項8】
さらに、
前記要素の態様を変更するよう前記第1のクライアントデバイスから入力を受信することと、
前記要素を前記第1の3D仮想オブジェクト内に戻すよう、前記第1のクライアントデバイスから入力を受信することとを含み、前記要素の態様への前記変更は、前記対応する第1のデータセットの前記行を、前記要素の前記態様の前記変更に基づいて変更させる、請求項~7のいずれかに記載の方法。
【請求項9】
前記複数のアバターによって前記複数の3D仮想オブジェクトに対して行われる変更は、前記1つまたは複数のデータセットを更新するために用いられる、請求項に記載の方法。
【請求項10】
前記複数のアバター内の第1のアバターによって行われる変更は、前記複数のアバター内の第2のアバターには可視ではなく、前記複数のアバターの各々は、前記複数の3D仮想オブジェクトの個人化されたビューを提示される、請求項に記載の方法。
【請求項11】
請求項1~10のいずれかに記載の方法を1つまたは複数のプロセッサに実行させるためのプログラム。
【請求項12】
請求項1~10のいずれかに記載の方法を1つまたは複数のプロセッサに実行させるためのプログラムを格納したメモリと、
前記プログラムを実行するための1つまたは複数のプロセッサとを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2018年10月21日に提出された、「3D VISUALIZATION SERVICES INTEGRATING VARIOUS DATA SOURCES AND DISPLAY DEVICES(さまざまなデータソースおよび表示装置を統合する3D視覚化サービス)」と題される米国仮出願第62/748,504号の非仮出願であり、米国特許法第119(e)条の下その利益および優先権を主張し、その全体をあらゆる目的のためにここに引用により援用する。
【0002】
本出願は、以下の4つの米国特許出願にも関連する。
・2019年10月21日に提出された、Morozeらによる、「FUNNEL VISUALIZATION WITH DATA POINT ANIMATIONS AND PATHWAYS(データポイントのアニメーションおよび経路によるファネルの視覚化)」と題される米国特許出願第16/658,165号(弁理士登録番号088325-1142775)であり、その全体をここに引用により援用する。
・2019年10月21日に提出された、Morozeらによる、「OPTIMIZING VIRTUAL DATA VIEWS USING VOICE COMMANDS AND DEFINED PERSPECTIVES(音声コマンドと定義された視点とを用いる仮想データビューの最適化)」と題される米国特許出願第16/658,169号(弁理士登録番号088325-1142776)であり、その全体をここに引用により援用する。
・2019年10月21日に提出された、Morozeらによる、「ANIMATION BETWEEN VISUALIZATION OBJECTS IN A VIRTUAL DASHBOARD(仮想ダッシュボード内の視覚化オブジェクト間のアニメーション)」と題される米国特許出願第16/658,177号(弁理士登録番号088325-1142782)であり、その全体をここに引用により援用する。
・2019年10月21日に提出された、Morozeらによる、「DATA VISUALIZATION OBJECTS IN A VIRTUAL ENVIRONMENT(仮想環境でのデータ視覚化オブジェクト)」と題される米国特許出願第16/658,180号(弁理士登録番号088325-1143002)であり、その全体をここに引用により援用する。
【背景技術】
【0003】
背景
情報を伝達するための最も有効な方法の1つは、視覚化によるものである。情報を捕捉および分類することは、典型的には、データから引き出され得る結論の完全な理解を得るのには十分ではない。2次元データ可視化は、我々の通信技術の多くを支配するが、これらの可視化技術の多くは、データ収集の態様を強調表示または強調することに対して最適化されていない。効果的なデータ視覚化は、データの態様を非常に迅速に通信する情報提供的な視覚に訴える表現を作成することを伴う。時には、単純な視覚化で十分である。しかしながら、複雑な多次元データでは、データセット自体の複雑さにより、適切な視覚化が困難になり、次元空間が制限される可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
多次元ダッシュボードでデータを表示する方法は、複数の3次元(3D)視覚化コンポーネントにアクセスすることを含み得る。複数の3D視覚化コンポーネントの各々は、データセットを受信するためのパラメータ化された入力を含み得る。本方法はまた、1つまたは複数のデータセットを受信することと、上記複数の3D視覚化コンポーネントの上記パラメータ化された入力を上記1つまたは複数のデータセットとバインディングすることと、上記複数の3D視覚化コンポーネントおよび上記1つまたは複数のデータセットに基づいて、仮想環境において複数の3D仮想オブジェクトをレンダリングすることとを含み得る。本方法は、加えて、複数のクライアントデバイスから上記仮想環境への接続を受信することと、上記仮想環境における上記複数の3D仮想オブジェクトの複数のビューを上記複数のクライアントデバイスに提供することとを含み得る。
【0005】
非一時的コンピュータ読取可能媒体は、1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備えてもよく、上記動作は、複数の3次元(3D)視覚化コンポーネントにアクセスすることを含み得る。上記複数の3D視覚化コンポーネントの各々は、データセットを受信するためのパラメータ化された入力を含み得る。上記動作はまた、1つまたは複数のデータセットを受信することと、上記複数の3D視覚化コンポーネントの上記パラメータ化された入力を上記1つまたは複数のデータセットとバインディングすることと、上記複数の3D視覚化コンポーネントおよび上記1つまたは複数のデータセットに基づいて、仮想環境において複数の3D仮想オブジェクトをレンダリングすることとを含み得る。上記動作は、加えて、複数のクライアントデバイスから上記仮想環境への接続を受信することと、上記仮想環境における上記複数の3D仮想オブジェクトの複数のビューを上記複数のクライアントデバイスに提供することとを含み得る。
【0006】
システムは、1つまたは複数のプロセッサと、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を含んでもよい1つまたは複数のメモリデバイスとを備え、上記動作は、複数の3次元(3D)視覚化コンポーネントにアクセスすることを含み得る。上記複数の3D視覚化コンポーネントの各々は、データセットを受信するためのパラメータ化された入力を含み得る。上記動作はまた、1つまたは複数のデータセットを受信することと、上記複数の3D視覚化コンポーネントの上記パラメータ化された入力を上記1つまたは複数のデータセットとバインディングすることと、上記複数の3D視覚化コンポーネントおよび上記1つまたは複数のデータセットに基づいて、仮想環境において複数の3D仮想オブジェクトをレンダリングすることとを含み得る。上記動作は、加えて、複数のクライアントデバイスから上記仮想環境への接続を受信することと、上記仮想環境における上記複数の3D仮想オブジェクトの複数のビューを上記複数のクライアントデバイスに提供することとを含み得る。
【0007】
いずれの実施形態においても、以下の特徴のいずれかが、限定なしに、任意の組み合わせで実現されてもよい。1つまたは複数のデータセットは、データベースからの企業データセットを含み得る。企業データセットは、CRMアプリケーションからのデータを含み得る。複数の3D視覚化コンポーネントは、コンポーネント交換から受信され得る。上記複数の3D仮想オブジェクトは、上記仮想環境において企業ダッシュボードとして提供され得る。企業ダッシュボード内の3D仮想オブジェクトの各々は、異なるデータベースからの異なる企業データセットにバインディングされ得る。複数のクライアントデバイスは、2次元(2D)表示を有するデバイスと、3D表示を有するデバイスとを含み得る。方法/動作はまた、仮想環境において複数のクライアントデバイスに対応する複数のアバターを表示することを含み得、複数のアバターの動きは、複数のクライアントデバイスへの入力によって制御される。方法/動作はまた、上記複数のクライアントデバイス内の第1のクライアントデバイスから、上記複数のアバター内の対応する第1のアバターに、上記複数の3D仮想オブジェクト内の第1の3D仮想オブジェクトからの要素を視覚的に除去させる入力を受信することを含み得、上記第1の3D仮想オブジェクトからの上記要素は、上記1つまたは複数のデータセット内の対応する第1のデータセット内の行を表し得る。方法/動作はまた、上記要素の態様を変更するよう上記第1のクライアントデバイスから入力を受信することと、上記要素を上記第1の3D仮想オブジェクト内に戻すよう、上記第1のクライアントデバイスから入力を受信することとを含み得、上記要素の態様への上記変更は、上記対応する第1のデータセットの上記行を、上記要素の上記態様の上記変更に基づいて変更させ得る。上記複数のアバターによって上記複数の3D仮想オブジェクトに対して行われる変更は、上記1つまたは複数のデータセットを更新するために用いられ得る。上記複数のアバター内の第1のアバターによって行われる変更は、上記複数のアバター内の第2のアバターには可視ではなく、上記複数のアバターの各々は、上記複数の仮想オブジェクトの個人化されたビューを提示される。
【0008】
図面の簡単な説明
本発明の性質および利点のさらに進んだ理解は、明細書および図面の残りの部分を参照することによって実現することができ、いくつかの図面全体を通して、同様のコンポーネントを指すために同様の参照番号が用いられる。場合によっては、下位ラベルが、複数の同様のコンポーネントのうちの1つを示すために参照番号に関連付けられる。既存の下位サブラベルを指定せずに参照符号に言及する場合、そのような複数の同様のコンポーネントすべてを参照することが意図される。
【図面の簡単な説明】
【0009】
図1】いくつかの実施形態による、対話型データディスプレイをオーサリングし、提供し、用いるためのシステムを示す。
図2】いくつかの実施形態による、企業データセットにバインディングされた仮想オブジェクトの例を示す。
図3】コンポーネント交換からアプリケーションにコンポーネントをインポートするためのユーザインターフェイスを示す図である。
図4】いくつかの実施形態による、アプリケーション内のコンポーネントをダウンロードし、インスタンス化するためのプロセスのブロック図を示す。
図5】いくつかの実施形態による、仮想環境において作成された仮想ダッシュボードを示す。
図6】いくつかの実施形態による、さまざまなタイプのクライアントデバイスシステムおよび入力デバイスがすべてED IE環境において同じ仮想環境と同時にインターフェイスすることができる方法を示す。
図7】いくつかの実施形態による、2D画面インターフェイスを介する仮想環境のビューを示す。
図8】いくつかの実施形態による、複数のユーザが仮想ダッシュボードと対話する仮想環境のビューを示す。
図9】いくつかの実施形態による、仮想環境と対話するために用いられ得る現実世界の環境のビューを示す。
図10】いくつかの実施形態による、多次元ダッシュボードにおいてデータを表示するための方法のフローチャートを示す。
図11】実施形態の一部を実現するための分散システムの簡略図である。
図12】いくつかの実施形態による、ある実施形態のシステムの1つまたは複数のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得る、システム環境の1つまたは複数のコンポーネントの簡略ブロック図である。
図13】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0010】
詳細な説明
本明細書では、没入型ユーザインターフェイス(EGI)体験のための実施形態を記載する。没入型ユーザインターフェイス体験は、アプリケーション開発者またはサービス開発者が、後で、インタラクティブなEGIコンポーネントを彼らのアプリケーションまたはサービスに追加するよう用いられ得るコンポーネント交換またはクリアリングハウスに挿入することができる個々のコンポーネントとしてラップされてもよい。これらのEGIコンポーネントは、混雑した市場においてアプリケーションを区別し、多くの異なるユーザデバイス上で多くの異なるデータタイプについて詳細かつ直観的なデータ視覚化を提供するユーザフレンドリーで対話型の没入型体験を提供するために用いることができる。
【0011】
図1は、いくつかの実施形態による、対話型データ表示をオーサリングし、提供し、用いるためのシステムを示す。システムは、コンポーネント交換124を含み得る。コンポーネント交換124は、ユーザがカスタム開発環境ならびに既定のツールおよび/またはインターフェイスのライブラリを用いて、アプリケーションおよび/またはサービスを開発することを可能にする、アプリケーション開発スイートの一部であり得る。アプリケーション開発スイートは、多くの異なるクライアントデバイスのためにサービスとしてのソフトウェア(SaaS)モデルとしてアクセス可能であり得る、クラウドによりホストされる開発環境であり得る。この開発環境は、クラウドベースのサービスまたはマイクロサービス、ウェブアプリケーション、モバイルデバイスアプリケーション、企業アプリケーションなどを含む多くの異なる種類のアプリケーションを開発および/または展開するように構成され得る。アプリケーション開発スイートにおいて設計されたアプリケーションは、代表状態転送(REST)インターフェイスを介して他のSaaSアプリケーションと統合され得る。
【0012】
アプリケーション開発スイートにおける開発環境は、開発プロセスを合理化し、全体的なアプリケーション開発サイクルをより効率的にするために開発者によって用いられ得るいくつかのユーザフレンドリーなツールを含み得る。これらのツールは、WYSIWYGツール、および開発者がさまざまな予めパッケージ化されたコンポーネントをアプリケーション開発空間内にドラッグアンドドロップすることを可能にする他のグラフィカルインターフェイスを含み得る。再利用可能なビジネスオブジェクト、プロセス、ウェブコントロール、ユーザインターフェイスコントロール、テーマ、テンプレート、およびアプリケーションの他の態様など、さまざまなコンポーネントが開発環境によって提供され得る。
【0013】
開発者は、開発環境を用いてアプリケーションを設計およびテストすることができ、アプリケーションは、次いで、さまざまな動作環境に展開することができる。アプリケーションが動作環境に展開されると、開発環境は、アプリケーションがターゲット環境で動作できるように、アプリケーションによって必要とされる任意の追加のコードまたはライブラリを展開することもできる。したがって、開発環境によって提供される柔軟性および再利用可能なコンポーネントは、開発環境によって提供される機能性のいずれも失うことなく、任意の動作環境に移植することができる。
【0014】
この例では、開発環境は、コンポーネント交換を含むことができる。例えば、開発環境は、Oracle(登録商標)からのVisual Builder(登録商標)などの任意の市販の開発環境を用いて実現され得る。開発環境は、アプリケーションを構築するために用いられ得る所有権主張可能および/またはオープンソースJavaScriptライブラリのコレクションなどのさまざまなツールキットを含み得る。例えば、開発環境は、Oracle(登録商標)からのJavaScript Extension Toolkit(JET)(登録商標)からのコンポーネントを含み得る。これらのツールキット内のコンポーネントは、データをコンポーネントにバインディングするためのデータモデル、ビューモデル、およびポートを含む、ユーザインターフェイス(UI)コンポーネントの豊富なセットを含み得る。いくつかの実施形態では、開発環境は、W3Cウェブコンポーネント標準規格などの標準コンポーネントに基づく統一されたコンポーネントプラグインメカニズムを提供し得るが、カスタムコンポーネントが標準コンポーネントと一緒に機能することを依然として可能にする。
【0015】
コンポーネント交換124は、コンポーネント開発者がアプリケーション開発者による使用のためにコンポーネントをコンポーネント交換124にアップロードすることを可能にし得る。これにより、コンポーネント開発者は、コンポーネントライフサイクル全体にわたって維持およびアップグレードすることができる柔軟なコンポーネントアーキテクチャを提供することができる。例えば、これらのコンポーネントは、さまざまなユーザインターフェイスで用いられ得るチェックボックスコンポーネント116またはスライダコンポーネント114などの標準的なウェブコンポーネントを含み得る。これらのコンポーネント114、116は、コンポーネント交換124にアップロードされ、次いで、コンポーネント開発チームによってそれらのライフサイクル全体にわたって更新および維持され得る。次いで、それらは、アプリケーション開発者のためにコンポーネント交換124においてコンポーネント121、122として提供されてもよい。
【0016】
標準的なウェブコンポーネントに加えて、本明細書で説明される実施形態は、ユーザが、企業データ対話型エクスプローラ(ED IE)環境において用いることができる特別な視覚化オブジェクトを開発することを可能にする。これらの視覚化オブジェクトは、別個のネットワーク接続を通じて複数のクライアントデバイスによって同時に見られ得る企業データセットの多次元ビューを提供する。これらの視覚化オブジェクトは、標準的なウェブコンポーネントがコンポーネント交換124にインポートされるのと同じ方法でコンポーネント交換124にインポートすることができる。これらの視覚化オブジェクトは、次に、開発中の個々のアプリケーションにインポートすることができる。これらのアプリケーションでは、開発者は、任意の数の異なるソースからのさまざまな企業データセットを視覚化オブジェクト上のパラメータ化された入力にバインディングすることができる。次いで、視覚化オブジェクトを用いて、企業データを多次元環境で表現し視覚化する仮想オブジェクトのレンダリングされたビューを生成することができる。
【0017】
これらの視覚化オブジェクトのさまざまな例が、本開示において以下でより詳細に説明され得る。図1は、通常のオブジェクトとしてコンポーネント交換124にインポートすることができる視覚化オブジェクトのいくつかの例を示している。例えば、ファネルオブジェクト112は、企業データセットにおけるデータポイントの推移を経時的に示す回転ファネルオブジェクトを含むことができる。さまざまな視覚的効果は、ファネルオブジェクト112にバインディングされるデータセットのさまざまな側面を強調表示するために用いられ得るファネルオブジェクト112を提供され得る。例えば、ユーザは、さまざまな次元に沿ってデータセットを探索し、個々のデータポイントを変更し、経時的にデータポイント経路を見、さまざまな次元に沿って経時的にデータが加速されるときにデータの視覚的表現を見るなどすることができる。
【0018】
図1はまた、さまざまな企業データセットを表すために用いられ得る三次元ヒストグラムまたは棒グラフオブジェクト110を示す。コンポーネント交換124では、グラフオブジェクト110は、どのような基礎となるデータセットからも接続されなくてもよい。しかしながら、実際のアプリケーションにインポートされると、グラフオブジェクト110は、企業データセットにバインディングされてもよく、グラフ内のさまざまなバーは、データバインディングに基づいてサイズ変更されてもよい。視覚化オブジェクトは、仮想環境において、さまざまなクライアントデバイスによって見られることができる3次元(3D)仮想オブジェクトを生成するために用いられ得る。例えば、グラフオブジェクト110は、各々がグラフ内のバーを表す複数の3次元円柱として実現されてもよい。ユーザは、仮想環境に入り、仮想オブジェクトの周囲を歩行し、オブジェクトと対話し、オブジェクト内の値を変更し、オブジェクトの一部分を操作し、変更された値が他のユーザによって見られ、データセットを記憶する基礎となるデータベースに保存されるようにし得る。
【0019】
上記で説明される視覚化オブジェクト110、112は、例として提供されるものであり、限定することを意図されない。企業データセットを視覚化するために用いることができる任意の多次元オブジェクトは、本開示において視覚化オブジェクトとして用いられ得る。他の視覚化オブジェクトは、チャート、アニメーション、写真、グラフ等を含むことができる。
【0020】
コンポーネント交換124では、視覚化オブジェクトは、開発者によって選択され、開発中にアプリケーションにインポートされ得るコンポーネント118、120として表され得る。例えば、開発者は、ファネルオブジェクト112用のコンポーネント118をアプリケーションにドラッグアンドドロップしてもよい。次いで、この視覚化オブジェクトは、実施形態に応じて、開発環境または展開環境のいずれかにおいてデータセットにバインディングすることができる。
【0021】
いくつかの実施形態では、1つまたは複数の視覚化オブジェクトを含むアプリケーションが、さまざまな環境に展開され得る。これらの環境は、ウェブアプリケーション、モバイルアプリケーション、クライアント側アプリケーション、ゲームシステム上で実行されるアプリケーション、デスクトップもしくはラップトップコンピュータ上で実行されるアプリケーション、仮想現実もしくは拡張現実システムなどの仮想環境のためのアプリケーション、および/または任意の他のコンピューティング環境を含み得る。アプリケーションが環境に展開されると、コンポーネント交換124は、任意の必要なライブラリ、サードパーティライブラリ、または視覚化オブジェクトを実行するのに必要な他のソフトウェアコンポーネントもしくはライブラリを展開することができる。例えば、3D環境で動作するいくつかの視覚化オブジェクトは、OpenGLライブラリまたはそれらの操作に必要な他の3D視覚化ライブラリを含み得る。
【0022】
アプリケーションは、本明細書ではEDIE環境と総称される環境102に展開することができ、EDIE環境は、上述の1つまたは複数の視覚化オブジェクトとともにいくつかの標準的なコンポーネントを含むことができる。環境102は、視覚化オブジェクトがインスタンス化され得る仮想環境104を含み得る。視覚化オブジェクトがインスタンス化されるとき、それらは1つまたは複数の基礎となるデータセットにバインディングすることができる。これらのデータセットは、データベーステーブル、多次元データキューブ、ウェブサービス、サーバ側アプリケーション、APIインターフェイスなどのさまざまなソースから取得することができる。図1の例では、企業データベース108は、視覚化オブジェクトのうちの少なくとも1つとともに用いるために、1つまたは複数のデータベーステーブルから環境102に値を提供することができる。この例では、ファネルオブジェクト112は、環境102に、仮想環境104内において展開され得る。ファネルオブジェクト112は、企業データベース108からの企業データセットにおけるテーブルもしくは行に個々におよび/または集合的にバインディングされ得るパラメータ化された入力などの入力のセットを含み得る。データセット値と視覚化オブジェクトのパラメータ化された入力との間のバインディング106は、開発環境において、展開環境102において、および/または任意の他の時点で作成されてもよい。バインディング106はまた、実行時に、またはアプリケーションを実行する前に、異なるデータセットで動的に調整または修正されてもよい。
【0023】
データセットが視覚化オブジェクトにバインディングされると、視覚化オブジェクトは、仮想環境104において仮想オブジェクトを生成するよう用いられ得る。これは、データセットからの値を用いて仮想オブジェクトのさまざまな部分をサイズ決定または次元決定することを含み得る。データセットからの値はまた、仮想オブジェクト内においてオブジェクトに対するアニメーション速度または動きベクトルを生成するために用いられ得る。データセットからの値はまた、仮想オブジェクトにおいてオブジェクトの視覚的表現を着色するかまたはそうでなければそれに影響を与えるよう用いられ得る。例えば、データポイントは、ファネルオブジェクト112によって生成される仮想ファネルの周りを回転することができる。データポイントは、1次元によって決定される色、第2次元によって決定されるサイズまたは半径、第3次元によって決定される回転速度、第4次元によって決定される軌道または動きベクトル方向などを有することができる。
【0024】
仮想環境104で生成された視覚化オブジェクトは、いくつかの異なるクライアントデバイス126、128、130、132によって見られ、および/または対話され得る。これらのクライアントデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、タブレットコンピュータ、スマートフォン、スマートウォッチ、スマートTV、ビデオゲームコンソール、デジタルホームアシスタント、スマートメガネ、仮想現実ヘッドセット、拡張現実ヘッドセット、および任意の他のコンピューティングデバイスを含み得る。これらのクライアントデバイス126、128、130、132の各々は、各クライアントデバイス126、128、130、132のための固有に配置された仮想カメラに対応する、仮想環境104内への固有のビューを受信することができる。次いで、ユーザは、仮想環境104内で仮想オブジェクト105と対話して、仮想オブジェクト105を用いて基礎となるデータセットを閲覧、操作、編集、および/または更新することができる。以下で説明するように、各ユーザは、仮想オブジェクト105の一意の特定のビューを提供され得、異なる設定によって、ユーザは基礎となるデータを変更することができ、仮想オブジェクト105は他のクライアントデバイスに提供されるビューにおいて変化する。各クライアントデバイス126、128、130、132において、自動ハードウェア検出を用いて、仮想環境104の正しいビューを提供することができる。例えば、クライアントデバイス126がデスクトップコンピュータによって実現される場合、環境102は、仮想環境104の2次元(2D)ビューを提供することができる。対照的に、クライアントデバイス128が仮想現実ヘッドセットによって実現される場合、環境102は、仮想環境104の3Dビューを提供して、クライアントデバイス128のユーザが仮想環境104に没入して仮想環境104内で対話するようにすることができる。
【0025】
図2は、いくつかの実施形態による、企業データセットにバインディングされた仮想オブジェクト202の例を示す。上述したように、仮想オブジェクト202は、図1のコンポーネント交換124においてコンポーネント118としてアップロードされたファネルオブジェクト112に対応することができる。仮想オブジェクト202は、3Dファネルオブジェクトを含むことができ、ファネルは、複数の個々のデータポイントによって形成される。データセットからの個々のデータポイントは、個々のデータポイントの各々の位置、色、軌道、動き、速度、サイズ、形状、および/または任意の他の視覚的特性を定義するために用いられ得る。
【0026】
基礎となるデータセットは、データベーステーブル、多次元データキューブ、および/または任意の他のデータ構造をソースとすることができる。データセットは、データベーステーブル内の行によって表されるデータポイント、または多次元データキューブ内のポイントを含み得る。データベース内の個々の列またはデータキューブ内の次元を用いて、仮想オブジェクト202内の球体の各々の特性を定義することができる。例えば、データベース内の第1の次元または第1の列を用いて、各球体のサイズまたは円周を決定することができる。第2の次元または列値を用いて、仮想環境において球体の各々に適用される色またはテクスチャを定義することができる。第3の次元または列値を用いて、ファネル内の各球体の位置を規定することができる。第4の次元または列値を用いて、球体がファネルの中心軸の周りを回転する速度を規定することができる。第5の次元または列値を用いて、ファネルのさまざまなレベルを通って移動するときの軌道または運動経路などを規定することができる。
【0027】
データは、アプリケーションが実行される際に、仮想オブジェクト202の要素の各々にバインディングされたままであり得る。例えば、仮想現実ヘッドセットを着用している間、ユーザは、仮想環境200において仮想オブジェクト202に接近することができる。仮想選択手持ち式デバイスを用いて、ユーザは、ファネル軸の周りを回転する球体204のうちの1つに手を伸ばして「掴む」ことができる。ユーザは、球体204によって表される基礎となるデータに関する追加情報を表示するユーザインターフェイスを呼び出してもよい。ユーザは、ユーザインターフェイスにおいて値を変更して、対応するデータベース内の基礎となる値を変更してもよい。ユーザはまた、球体204を仮想オブジェクト202内のある場所に戻して「置い」て戻してもよい。球体204の新たな位置が古い位置と異なる場合、仮想オブジェクト202における球体204の位置を判断するために用いられる次元は、基礎となるデータベースにおいて更新され得る。
【0028】
図3は、コンポーネント交換からアプリケーションにコンポーネントをインポートするためのユーザインターフェイス300を示す。ユーザインターフェイス300は、プロジェクトにインポートされ得る利用可能なコンポーネントのリスト302を含み得る。リスト302内のコンポーネントのうちの1つを選択することによって、コンポーネント交換は、コンポーネントをダウンロード、インスタンス化、および/または使用するための追加情報を表示することができる。この例では、ユーザは、前述のファネルオブジェクトコンポーネントを選択している。リスト302からこの選択が行われると、インターフェイス300の右側は、ファネルオブジェクトコンポーネントを用いるための追加情報を表示することができる。
【0029】
追加情報は、コンポーネントの記述306を含むことができる。この記述306は、コンポーネントの動作、コンポーネントがどのように用いられ得るか、コンポーネントがどのように他のコンポーネントと対話し得るか、典型的な使用シナリオ、コンポーネントを用いるための助言およびアドバイス、ならびに/またはコンポーネントの新たなユーザおよび/もしくは体験済みユーザに有用であり得る他の情報を記述し得る。記述306は、コンポーネントがどのようにアプリケーションのコードに統合され得るかを示す例示的なコード308を伴ってもよい。例示的なコード308は、さまざまなプログラミング言語で提供されてもよく、例示的なコード308からアプリケーションのコードにコピーされ、貼り付けられてもよい。
【0030】
加えて、いくつかの実施形態は、インストールボタン304を設けることができる。インストールボタンは、コンポーネントをユーザのアプリケーションにインストールするためのプロセスを実行することができる。インストールボタン304を選択すると、コンポーネントをアプリケーションにインストールするプロセスを通じてユーザを歩行させる追加のウィンドウ、ウィザードおよび/またはインターフェイスを起動することができる。例えば、インストールボタン304は、コンポーネントのパラメータ化されたインターフェイスにバインディングされ得るデータセットをユーザが選択することを可能にする1つまたは複数のウェブフォームが生成されることをトリガし得る。例えば、インストールボタン304は、ユーザがファネルオブジェクト内の球体をデータベース内の個々の列にバインディングすることを可能にするインターフェイスを生成することができる。インストールボタン304は、コンポーネントを操作するのに必要な任意のコードを自動的にダウンロードすることもできる。このコードは、サードパーティデータベース、グラフィックライブラリ、関数ライブラリ、および/またはコンポーネントによって提供されるオペレーションを実行するために必要とされ得る他の共有コードを含み得る。
【0031】
図4は、いくつかの実施形態による、アプリケーションにおいてコンポーネントをダウンロードおよびインスタンス化するプロセスのためのブロック図を示す。図3で上述したユーザインターフェイスを用いて、ユーザは開発中のアプリケーションの一部として用いるようファネルオブジェクト402を選択することができる。ファネルオブジェクト402のためのコードは、このタイプのコンポーネントを利用するように構成されたクライアントデバイス上の動作環境にダウンロードされ得る。例えば、ファネルオブジェクト402は、上述のクライアントデバイスのいずれかで動作するED IE環境102にダウンロードされてもよい。ED IE環境102は、3次元(3D)コンポーネントが2次元(2D)視および3D視の両方のためにインスタンス化され得る環境を提供し得る仮想環境104を含み得る。
【0032】
ファネルオブジェクト402のコードをダウンロードすることに加えて、コンポーネント交換124はまた、コンポーネントをED IE環境102において実行するのに必要な任意の追加のコードを提供してもよい。この追加のコードは、コンポーネント交換124によって記憶され利用可能にされるコードライブラリ404に格納されてもよい。追加のコードは、コンポーネント交換124によってホスティングおよび/または提供されないサードパーティからのライブラリ406も含み得る。例えば、コンポーネント交換124は、グラフィック操作コードのライブラリを、ファネルオブジェクト402のためのインストールプロセスの一部として、サードパーティウェブサイトからダウンロードさせ得る。このコードのすべてをED IE環境102にダウンロードして、ファネルオブジェクト402を、その必要な機能のすべてとともに、独立した態様で、操作され得るようにすることができる。
【0033】
ファネルオブジェクト402がEDIE環境102にダウンロードされ、仮想環境104においてインスタンス化されると、EDIE環境102は、ファネルオブジェクト104のパラメータ化された入力と1つまたは複数のデータソースとの間でバインディングを生じさせることができる。例えば、EDIE環境102は、ユーザにユーザインターフェイスを提示して、ユーザが複数の利用可能なデータソースのうちの1つから選択することを可能にする。データソースの選択で、データソース内の個々のフィールドを個々のパラメータ化された入力にバインディングすることをユーザに要求してもよい。例えば、ユーザは、データベース内の特定の列を選択し、その列内の値が仮想環境104内のファネルオブジェクト内の球体に対応する色を決定するようにすることができる。パラメータ化された入力と個々のデータソースとの間のバインディングは、アプリケーションがユーザによって起動されるときはいつでも、ファネルオブジェクト402が基礎となるデータソースからデータを取り出し、仮想環境104においてファネルオブジェクトの表示を生成するように、アプリケーションの一部として記憶され得る。このバインディングは、アプリケーションが起動されるとき、またはアプリケーションが実行されるにつれて動的に更新および/または変更されて、仮想環境104において異なるデータセットを視覚化することができる。
【0034】
図4の例は、さまざまな視覚化オブジェクトのパラメータ化された入力に企業データをバインディングするために用いられ得る企業データストア108を示す。他の例では、異なるデータソースが、視覚化オブジェクトの異なる態様にバインディングされ得る。たとえば、いくつかの実施形態は、複数のデータベースおよび複数の位置からの列またはフィールドを、同じ仮想化オブジェクトのパラメータ化された入力にバインディングすることを可能にし得る。いくつかの実施形態は、リアルタイムデータを視覚化コンポーネントに提供するオンラインデータソースを用いることができる。個々のアプリケーション設計者の要求に基づいて、データソースの任意の組み合わせを仮想化オブジェクトのパラメータ化された入力に提供することができる。
【0035】
図3図4のファネルオブジェクト402の使用は、例としてのみ提供され、限定することを意図するものではない。EDIE環境102で動作するように設計された任意の視覚化オブジェクトが、同様の手順を用いてED IE環境102において実現され得ることが理解されるであろう。
【0036】
図5は、いくつかの実施形態による、仮想環境104内に作成された仮想ダッシュボードを示す。本明細書で説明される視覚化コンポーネントは、任意のタイプのアプリケーションにおいて用いられ得るが、仮想ダッシュボードを設計するのに特によく適し得る。本明細書で用いられる場合、ダッシュボードという用語は、ユーザインターフェイスにおいて1つまたは複数のデータソースからの情報を集約、分析、および/または表示する視覚化を含み得る。ダッシュボードは、組織のウェブサイトのホームページ上に提供されてもよい。ダッシュボードはまた、アプリケーションまたはモバイルアプリにおける入力画面として表示されてもよい。ダッシュボードは、一般に、2次元環境においてデータの「ウィジェット」または他のグラフィカル表現を表示する。ユーザは、多くの場合、ダッシュボード上の個々のウィジェットを選択して追加情報を表示することができる。例えば、ユーザは、現在の月の概要販売情報を表示するウィジェットをクリックしてもよい。ウィジェットは、ダッシュボードに表示された概要販売情報に関する追加情報を提供するように構成されてもよい。いくつかのダッシュボードは、ダッシュボードがさまざまなユーザクライアントデバイスによって訪問されると、基礎となるデータソースからの最新の情報を表示するように構成され得る複数のウィジェットを含み得る。
【0037】
本明細書で説明される実施形態は、上述の視覚化コンポーネントを用いて、3D仮想環境104においてダッシュボードを実現する。例えば、コンピュータ画面上に2Dウィジェットを表示する代わりに、ユーザは、3D仮想環境との対話に対して可能化されて、ダッシュボードデータを閲覧および操作するための3D視覚化体験を提供するクライアントデバイスを用いることができる。いくつかの実施形態は、ユーザが仮想環境104に入り、ダッシュボードデータを表示する視覚化オブジェクトとのライブ対話を実行することを可能にする仮想現実ヘッドセットまたは拡張現実デバイスを用いることができる。仮想環境104では、ユーザは、視覚化オブジェクトの周囲を歩行し、視覚化オブジェクトの一部を「掴ん」で操作し、他のユーザと対話し、視覚化オブジェクトの操作によって、基礎となるデータソースを更新させることができる。これは、従来の2Dダッシュボード体験を、データがインタラクティブなライブの様式で閲覧され得る、インタラクティブな、没入型の仮想現実体験に変更する。
【0038】
仮想環境は、複数の視覚化オブジェクトを含むことができる。複数の2Dウィジェットの代わりに、3Dダッシュボードは、仮想3D環境104に配置される視覚化オブジェクトを含み得る。ユーザは、3D仮想環境に進入するかまたはそれを見ると、仮想化オブジェクトの周囲を移動し、それらを任意の角度から見て、それらを任意の位置から操作することができる。視覚化オブジェクトと対話するためにユーザが仮想環境104と対話する追加例を、以下でより詳細に説明する。
【0039】
上述したように、視覚化オブジェクトは、コードの本体および/またはその関連付けられるライブラリによって表されるソフトウェアオブジェクトを指し得る。仮想環境104に表示されるものは、視覚化オブジェクトのビューと呼ばれることがある。各視覚化オブジェクトは、いくつかの異なるビューに関連付けられてもよく、各ビューは、視覚化オブジェクトに対して異なる外観および感触を提供してもよい。例えば、ファネルオブジェクトは、ビジネス環境に適した、より指定された方法でデータを表示する、伝統的なビジネスビューを含むことができる。ファネルオブジェクトはまた、より明るく、より鮮やかな色、より遊びのある形状、および/またはファネルオブジェクトを見るための方法に関する他のバリエーションを含む、より形式的でない方法でデータを表示する、追加のビューを含んでもよい。単純にするために、本開示の残りの部分では、実行可能コードによって表される基礎をなす視覚化オブジェクトと、仮想環境104に表示される視覚化オブジェクトのビューとを区別しない。代わりに、視覚化オブジェクト(例えば、ファネルオブジェクト)は、仮想環境104においてコードと表示との両方を包含するために視覚化オブジェクトと一様に呼ばれてもよい。
【0040】
この例では、仮想環境104は、3つの視覚化オブジェクトを有するダッシュボードを含み得る。ファネルオブジェクト508は、上述の企業データストア502にリンクされてもよい。グラフオブジェクト510は、多次元データキューブ504にリンクされてもよく、データキューブの次元は、グラフオブジェクト510の個々の要素にバインディングされる。人事オブジェクト512は、仮想環境104において3次元グリッドにおける個人の概要表示(例えば、仮想ビジネスカード表示と同様の)を含むことができる。人事オブジェクトは、人事オブジェクトがウェブサービス504から情報をダウンロードして個々の項目を個々の概要表示にポピュレートできるように、ウェブサービス506にバインディングされ得る。これらの視覚化オブジェクトは、仮想環境104内のさまざまな場所(例えば、半円形)にレンダリングすることができる。ユーザが仮想環境104に入ると、ユーザは、視覚化オブジェクト508、510、512を、ユーザの前にあるエリア内のオブジェクトとして見ることができる。仮想ダッシュボードの使用を開始するために、ユーザは、視覚化オブジェクト508、510、512に接近し、視覚化オブジェクトを見て、および/または視覚化オブジェクトの要素を所望のように操作することができる。
【0041】
図6は、いくつかの実施形態による、どのようにして、さまざまなタイプのクライアントデバイスシステムおよび入力デバイスが、ED IE環境102においてすべて同時に同じ仮想環境とインターフェイスすることができるかを示す。ED IE環境102は、いくつかの異なる目的に供され、いくつかの異なる利益を提供する、3Dデータ探索プラットフォームを含み得る。例えば、EDIE環境102は、企業データの探索をより没入型かつ流動的にすることができる重要で収束性の新たな技術間の統合のためのネクサスとして働き得る。これらの技術は、会話UI(例えば、音声ベースまたはチャットベースである)610、仮想現実(VR)608、拡張現実(AR)604、および多くの他の対話型技術を含み得る。ユーザはまた、モバイルデバイス606上のアプリ、ディスプレイ画面上のウェブブラウザ612など、従来の2Dコンピューティングツールを用いて、これらの可視化技術にアクセスすることもできる。EDIE環境102は、デバイス間の遷移を通じてシームレスにシフトする可視化を提供することができる。たとえば、ユーザは、モバイルデバイス606の画面上など、2D環境で3D可視化を見ることができる。次いで、ユーザは、1対の仮想現実ゴーグルを着用して、モバイルデバイス606の画面上に2D方式で表示された視覚化オブジェクトを含む仮想現実空間に遷移してもよい。仮想環境では、ユーザは、以下に説明されるようにVRシステムに一般に含まれるハンドコントローラを用いて視覚化オブジェクトと対話することができる。
【0042】
ED IE環境102は、クライアントデバイスによって用いられるユーザ入力デバイスのタイプを検出するハードウェア検出プロセス620を含み得る。例えば、クライアントデバイスがウェブブラウザ612とともに従来の2D表示画面を用いる場合、ハードウェア検出プロセス620は、2D環境が仮想環境104とインターフェイスしていることを検出することができる。EDIE環境102は、図6に示されるこれらの異なるタイプの入力デバイスの各々に対するインターフェイスコードを含み得る。ハードウェア検出プロセス620は、利用可能なさまざまな入力オプションを識別し、それに応じてインターフェイスコードをEDIE環境102にロードすることができる。次いで、インターフェイスコードは、クライアントデバイス上の対応する入力デバイスと互換性のある仮想環境104のビューを生成することができる。
【0043】
以下でより詳細に説明するように、EDIE環境102は、仮想環境104が複数の異なるクライアントデバイスによって同時にアクセスされ得るように、ネットワークモードで動作し得る。これにより、ユーザらは、基礎となる企業データにバインディングされた視覚化オブジェクトを見ながら、仮想環境104内で互いと対話することができる。ハードウェア検出モジュール620は、ユーザらが自身のクライアントデバイスでの自身の視覚体験に基づいて仮想環境104内で一緒に対話することを可能にする。例えば、仮想現実デバイス608を用いて仮想環境104に進入するユーザは、ウェブブラウザ612の2D画面インターフェイスから仮想環境104を見る別のユーザのための表示されたアバターとして、仮想環境104において可視であり得る。
【0044】
図7は、いくつかの実施形態による、2D画面インターフェイスを介する仮想環境104のビューを示す。ユーザ702は、デスクトップコンピュータ、ラップトップコンピュータ、または2D画面インターフェイスを備えた他のコンピューティングデバイスを介してEDIE環境102にアクセスすることができる。2D画面704上で仮想環境104を見るとき、仮想環境104に仮想カメラを置いて、仮想環境104のビューを仮想カメラの視点からレンダリングすることができる。レンダリングされた画像は、ユーザ702のために画面704に表示されることができる。ユーザは、仮想環境104内のさまざまなオブジェクトが画面704に表示されると、マウスまたはタッチスクリーンを用いてオブジェクトと対話することができる。
【0045】
仮想環境は、上述のようにダッシュボードディスプレイに配置された複数の視覚化オブジェクトを含むことができる。これらの視覚化オブジェクトは、ファネルオブジェクト508、グラフオブジェクト510、および/または任意の他の視覚化オブジェクトを含み得る。さらに、仮想カメラによってキャプチャされ、画面704に表示される画像は、仮想環境における他のユーザの位置を含み得る。各ユーザのビューは、仮想環境104内において対応する仮想カメラによってキャプチャされ得る。仮想カメラを表示する代わりに、これらのカメラの位置は、他のユーザのアバターまたは他の表現の表示を含んでもよい。この例は、仮想環境104におけるユーザ708の視覚化を含む。ユーザ702は、ユーザ708と、双方ともが仮想環境104内にいるかのように、仮想環境104を介して対話し、通信することができる。ユーザ708が彼らの仮想カメラをユーザ702の仮想カメラに向けると、彼らは、仮想環境104においてユーザ702を表す対応する可視化またはアバターを見ることができる。
【0046】
上述したように、ED IE環境102は、画面704が仮想環境104の2Dビューを表示するべきであることを自動的に判断することができる。ユーザ708は、1対の仮想現実ゴーグルを着用しており、そのクライアントデバイス上で動作するEDIE環境102は、仮想環境104において仮想ダッシュボードの3Dビューを提供し得る。したがって、ユーザは皆、同じ仮想環境においてさまざまなデバイスを用いて一緒に対話することができる。一部のユーザによって用いられるデバイスのタイプは、仮想環境104において他のユーザには容易には明白ではない場合がある。例えば、ユーザ708は、ユーザ702のための画面704上の表示のために仮想カメラを見る場合があり、ユーザらは、仮想カメラを見る代わりに、仮想環境104においてアバターを見る場合がある。ユーザ708は、ユーザ702が仮想現実ヘッドセットを用いているのか、2D表示画面704を用いているのかを区別できない場合がある。
【0047】
図8は、いくつかの実施形態による、複数のユーザが仮想ダッシュボードと対話する仮想環境104の図を示す。この例では、ユーザ804、806は、人間の外観を有するアバターによって表される。ユーザは、自分自身または任意の他の仮想キャラクタのように見えるアバターを選択することができる。これらのアバターは、ユーザが仮想現実ヘッドセットを用いて現実世界の環境内を移動するにつれて、仮想環境104内を移動することができる。仮想カメラは、ユーザが現実世界の環境で頭を動かすと、移動、回転、パン、チルトなどが可能である。これにより、ユーザは、仮想環境104内で仮想ダッシュボード上を「歩き回っ」て、さまざまな視覚化オブジェクトを異なる視点から見ることができる。
【0048】
さまざまなユーザの動きは、他のユーザに見えるように仮想環境104において表現され得る。例えば、互換性のある仮想現実機器は、仮想現実ヘッドセットと、ユーザの手に保持される選択デバイスとを含む。選択デバイスまたは仮想現実ヘッドセットが現実世界の環境内で動かされると、その動きは、仮想環境104内でアバターの動きを駆動するために用いられ得る。例えば、ユーザ408が現実世界の環境で手を持ち上げると、アバターの手もまた、ユーザ806に見えるように仮想環境104で持ち上げられてもよい。これにより、ユーザは、仮想ダッシュボードにおいて可視化オブジェクトに身振りで指示し、それを指し示し、それらの動きを他のユーザに可視にすることができる。
【0049】
図8はまた、画像が2D画面に表示されるよう、仮想環境104のビューをキャプチャするために用いられ得る、仮想カメラ802も示す。上述したように、仮想カメラ802の描写は、画面704を見るユーザ702のためのアバターと置き換えられてもよい。代替として、仮想カメラ802は、仮想環境104において視覚的等価物を有さないか、または他のユーザが見るためにレンダリングされ得る3Dオブジェクトとしての任意の視覚的インジケータによって置き換えられ得る。
【0050】
上述の2D表示および3D表示の両方を用いるユーザは、仮想ダッシュボードにおいて視覚化オブジェクトの要素と対話することができる。例えば、ユーザ804は、ファネルオブジェクト508に接近し、ファネルオブジェクト508の周りを回転する球体のうちの1つを選択してもよい。2D表示から、球体は、指タップまたはマウスクリックを用いて選択され得る。3D表示から、球体は、ユーザ804によって保持される手持ち式の仮想現実デバイスのうちの1つを用いて、球体の1つを、それがファネルオブジェクト508の周りを回転するなか、手を伸ばして「掴む」することによって選択され得る。球体は、上述したように、データストア内のデータオブジェクトにバインディングされてもよい。例えば、球体は、データベース内の行を表してもよく、ファネルオブジェクト508内の球体の位置、色、速度、軌道などは、データベースの行の列内の異なる値によって決定されてもよい。ユーザ804が球体を保持すると、球体に関する追加の情報がユーザインターフェイスまたはヘッドアップディスプレイ(HUD)に表示され得る。例えば、データベースの行の列値の各々が、ユーザ804に対して表示され得る。球体は、両方のユーザ804、806が基礎となるデータオブジェクトの詳細を見ることができるように、ユーザ804エンドユーザ806間で往復して渡され得る。
【0051】
ユーザ804が球体の検査を終了すると、ユーザ804は、球体をファネルオブジェクト508内に戻してもよい。いくつかの実施形態では、ユーザ804は、球体をファネルオブジェクト508内に戻して「置く」ことができ、球体は、ファネルオブジェクト508内でそれの以前の位置/回転に自動的に戻ることができる。他の実施形態では、ユーザ804は、球体を、ファネルオブジェクト内において、それが元々取り出された場所とは異なる場所に置いてもよい。上述したように、ファネルオブジェクト508内の球体の位置は、ファネルオブジェクト508にバインディングされる基礎となるデータセット内の値によって決定されてもよい。なお、ファネルオブジェクト508における球体の位置を変更する場合には、その位置に対応する値も変更してもよい。いくつかの実施形態では、ファネルオブジェクト508内の新たな位置に対応する値は、基礎となるデータセットに書き戻すことができる。これにより、ユーザは、仮想環境104において仮想化オブジェクトの要素を操作し、視覚化オブジェクトがバインディングされるデータセットの値を変更することが可能になる。
【0052】
いくつかの実施形態では、ユーザ804、806の各々に提供される視覚化オブジェクトのビューは、同じであり得る。例えば、ユーザ804が上記のように球体をファネルオブジェクト508から引き抜くと、ユーザ806は球体がファネルオブジェクト508を出るのを見るであろう。同様に、ユーザ804が球体をファネルオブジェクト508内に戻すと、ユーザ806は、ファネルオブジェクト508における球体の新たな位置を見ることができる。したがって、視覚化オブジェクトおよびそれらの基礎となるデータセットに対する変更は、仮想環境104において仮想ダッシュボードを用いるユーザの各々に共通であり得る。
【0053】
他の実施形態では、ユーザ804、806の各々は、ユーザ自身の、視覚化オブジェクトのビューを提供されてもよい。これらの実施形態では、各視覚化オブジェクトの状態を、各ユーザ804、806に対して一意に保存してもよい。例えば、ユーザ804が上記のように球体をファネルオブジェクト508から引き抜くとき、ユーザ806は、球体がファネルオブジェクト508内で回転するのを見続けるであろう。したがって、1人のユーザ804によって視覚化オブジェクトの要素に対して行われた変更は、その特定のユーザ804によってのみ見られるであろう。他のユーザ806は、視覚化オブジェクトを、変更されていない状態で見続けるであろう。実施形態は、1人のユーザによって基礎となるデータセットに対して行われた変更を、記憶された選好に従って扱うことができる。例えば、いくつかの実施形態は、変更を基礎となるデータセットに伝搬することができ、他の実施形態は、視覚化オブジェクトへの変更が基礎となるデータセットに反映されないようにデータセットを「読み取り専用」構成で提供することができる。いくつかの実施形態は、変更が基礎となるデータセットに書き込まれる前に、承認のために、仮想環境104内に存在するすべてのユーザに、変更を提示してもよい。
【0054】
上述したように、各視覚化オブジェクトは、視覚化オブジェクトに関連付けられた1つもしくは複数のビューまたはビューモデルを有することができる。これらのビューモデルは、視覚化オブジェクトが仮想環境104においてレンダリングされるときに、視覚化オブジェクトの外観および感触を制御し得る。EDIE環境102は、各ユーザが同じ視覚化オブジェクトに対して個々のビューモデルを選択することを可能にする。例えば、ユーザ804は、抑えられた色およびより小さい球体を用いるビジネスビューモデルを用いてファネルオブジェクト508を見ることを選択することができる。ユーザ806は、より明るい色およびより大きな球体を用いる情報ビューモデルを用いてファネルオブジェクト508を見ることを選択することができる。これは、各個々のユーザが、他のユーザのためのビューモデルを変更することなく、仮想ダッシュボード内の視覚化オブジェクトの外観および感触を調整することを可能にする。
【0055】
図9は、いくつかの実施形態による、仮想環境104と対話するために用いられ得る現実世界の環境908のビューを示す。ユーザ902は、仮想現実ヘッドセット904および/または1つもしく複数の手持ち式選択デバイス906を含む仮想現実機器を用いることができる。ユーザ902が現実世界の環境908内を移動すると、仮想環境104内の仮想カメラは、対応する態様で仮想環境104内を移動することができる。仮想カメラは、仮想現実ヘッドセット904を通じてユーザ902に表示される仮想環境104のビューをキャプチャすることができる。ユーザ902が選択デバイス906を保持する彼らの手を動かすと、仮想環境104内の対応するアバターの手も、上述のように、仮想環境104内で移動し、オブジェクトを選択することができる。
【0056】
図10は、いくつかの実施形態による、多次元ダッシュボードでデータを表示するための方法のフローチャート1000を示す。本方法は、複数の3D視覚化コンポーネントにアクセスすること(1002)を含み得る。3D視覚化コンポーネントの各々は、データセットを受信するためのパラメータ化された入力を含み得る。3D視覚化コンポーネントは、開発者が開発中の複数のアプリケーションで用いられる3D視覚化コンポーネントを提供することを可能にするコンポーネント交換からダウンロードされるかまたは他の態様で受信され得る。3D視覚化コンポーネントは、クライアントデバイスに、または上述のEDIE環境などの動作環境にダウンロードされ得る。たとえば、3D視覚化コンポーネントは、ファネルオブジェクト、グラフオブジェクト、および/または本明細書で説明する他の視覚化コンポーネントを含み得る。
【0057】
本方法はまた、1つまたは複数のデータセットを受信することを含み得る(1004)。データセットは、企業アプリケーションおよび/またはデータベースから受信される企業データを表し得る。例えば、データセットは、顧客関係管理(CRM)データベース、人的資本管理(HCM)データベース、金融ソフトウェアデータベース、および/または動作環境に利用可能な任意の他の種類の企業データを含み得る。
【0058】
本方法は、複数の3D視覚化コンポーネントのパラメータ化された入力を1つまたは複数のデータセットとバインディングすること(1006)をさらに含み得る。例えば、3D視覚化コンポーネントの各々について、対応するパラメータ化された入力は、1つまたは複数のデータセットのうちの1つにバインディングされ得る。3D視覚化コンポーネントのパラメータ化された入力は、3D視覚化コンポーネントがバインディングされたデータセットによって外観および動作が調整され得るように、3D視覚化コンポーネントを包括的にすることができる。データセットは、設計時において、対応する3D視覚化コンポーネントがアプリケーションに配置されるときに、そのコンポーネントにバインディングされることができる。データセットは、代替的にまたは追加的に、3D視覚化コンポーネントが実行時にインスタンス化されるときに、バインディングされ得る。実行時中、システムは、異なるデータセットにバインディングするデータセットを変更する入力を(例えばユーザから)受信することができる。いくつかの3D視覚化コンポーネントは、複数の異なるデータセットにバインディングされることができ、それらの各々は、3D視覚化コンポーネントの視覚的または動作的態様を定義することができる。
【0059】
本方法は、複数の3D視覚化コンポーネントおよび1つまたは複数のデータセットに基づいて、仮想環境において複数の3D仮想オブジェクトをレンダリングすることをさらに含み得る(1008)。3D視覚化コンポーネントの各々は、ビューモデル、アニメーションモデル、ワイヤーフレームスケルトン、および/または仮想環境において3D仮想オブジェクトを生成するために用いられ得る他のグラフィカル構成を含み得る。仮想環境は、ED IE動作環境において、3D視覚化コンポーネントからの3D仮想オブジェクトに加えてオブジェクトを含む3D仮想シーンを作成するよう、実現され得る。例えば、仮想環境は、3D仮想オブジェクトのカルーセルとして構成され得る。別の例では、仮想環境は、仮想環境においてユーザが見ることができる仮想「ウィジェット」として3Dオブジェクトを表示する企業ダッシュボードとして構成されてもよい。ダッシュボード内の3D仮想オブジェクトの各々は、異なるデータベースおよび/または異なるアプリケーションからの異なる企業データセットにバインディングされ得る。例えば、ダッシュボードは、金融、従業員、業務、顧客などのための概要データを、すべて、単一の仮想環境において、1つの統一された表示で提供することができる。
【0060】
本方法はまた、複数のクライアントデバイスから仮想環境への接続を受信すること(1010)を含み得る。いくつかの実施形態は、クライアントデバイスとともに用いられるディスプレイおよび/または入力デバイスのタイプを検出するように構成されたハードウェア検出プロセスがインストールされたクライアントデバイスを含み得る。ハードウェア検出プロセスは、仮想環境との対話を、クライアントデバイスのタイプに一致するように、自動的に構成することができる。例えば、クライアントデバイスが仮想現実ヘッドセットを含む場合、ハードウェア検出プロセスは、ユーザが現実世界の環境よりもむしろ仮想環境内で動作しているかのように感じるように、仮想環境との没入型ビューおよび/または対話を提供するように構成され得る。クライアントデバイスが2D画面(例えば、モニタ、ラップトップコンピュータ等である)を含む場合、ハードウェア検出プロセスは、仮想環境内に仮想カメラを置いて、仮想環境の2D画像を、2D画面上に表示されるよう、ある位置で、キャプチャするように構成され得る。
【0061】
本方法は、仮想環境内の複数の3D仮想オブジェクトに対する複数のビューを複数のクライアントデバイスに提供することをさらに含んでもよい(1012)。クライアントデバイスの各々は、仮想環境の個々のビューを提供されてもよい。さらに、クライアントデバイスの各々は、ユーザが仮想環境内の3D仮想オブジェクトと対話してそれらの表示を変更することを可能にするように構成され得る。例えば、ユーザは、仮想オブジェクトから、対応するデータセット内の個々の要素に対応する要素を除去することができる。ユーザは、そのデータ要素内のデータポイントに関する概要情報を含む表示を見ることができ、あるデータポイントを変更することを許可され得る。これらの変更は、3D仮想オブジェクトがバインディングされる基礎となるデータソースにおいて更新されてもよい。いくつかの実施形態では、変更は、仮想環境内で他のユーザによって直ちに見られることができる。代替的に、いくつかの変更は、その変更を行うユーザにのみ可視であり得、各ユーザは、仮想環境の個別化されたビューを提供され得る。
【0062】
図10に示される特定のステップは、さまざまな実施形態に従って多次元ダッシュボードにデータを表示する特定の方法を提供することを理解されたい。代替の実施形態に従って、他の一連のステップも実行することができる。例えば、本発明の代替実施形態は、上記で概説したステップを異なる順序で実行することができる。さらに、図10に示される個々のステップは、個々のステップに適切なさまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて追加のステップを追加または削除することができる。当業者は、多くの変形形態、修正形態、および代替形態を認識するであろう。
【0063】
本明細書で説明される方法の各々は、コンピュータシステムによって実現され得る。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/またはユーザが関与する入力/出力を与えられてもよい。例えば、ユーザは、方法の各ステップに対する入力を提供してもよく、これらの入力の各々は、そのような入力を要求する特定の出力に応答してもよく、その出力は、コンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受信されてもよい。さらに、入力は、ユーザから、別のコンピュータシステムからデータストリームとして受信され、メモリ位置から検索して取得され、ネットワークを介して検索して取得され、ウェブサービスから要求されるなどすることができる。同様に、出力は、ユーザに、データストリームとして別のコンピュータシステムに提供され、メモリ位置に記憶され、ネットワークを介して送信され、ウェブサービスに提供されなどすることができる。要するに、本明細書に記載される方法の各ステップは、コンピュータシステムによって実施されてもよく、ユーザが関与してもしなくてもよい、コンピュータシステムへの、およびコンピュータシステムからの、任意の数の入力、出力、および/または要求を含んでもよい。ユーザが関与しないこれらのステップは、人間の介入なしにコンピュータシステムによって自動的に実行されるといえる。したがって、本開示に照らして、本明細書で説明される各方法の各ステップは、ユーザへの入力およびユーザからの出力を含むように変更され得るか、または任意の決定がプロセッサによって行われる場合、人間の介入なしにコンピュータシステムによって自動的に行われ得ることが理解されるであろう。さらに、本明細書で説明する方法の各々のいくつかの実施形態は、有形のソフトウェア製品を形成するために有形の非一時的記憶媒体に記憶される命令のセットとして実現され得る。
【0064】
図11は、実施形態のうちの1つを実現するための分散型システム1100を示す簡略図である。例示された実施形態においては、分散型システム1100は、1つ以上のネットワーク1110を介して、ウェブブラウザ、プロプライエタリクライアント(たとえばオラクルフォーム)などのクライアントアプリケーションを実行して動作させるように構成される1つ以上のクライアントコンピューティングデバイス1102、1104、1106および1108を含む。サーバ1112は、ネットワーク1110を介してリモートクライアントコンピューティングデバイス1102、1104、1106および1108と通信可能に結合されてもよい。
【0065】
さまざまな実施形態においては、サーバ1112は、システムの構成要素のうち1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態においては、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)モデルのもとで、クライアントコンピューティングデバイス1102,1104,1106および/または1108のユーザに供給されてもよい。そして、クライアントコンピューティングデバイス1102,1104,1106および/または1108を動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、サーバ1112と相互作用して、これらの構成要素によって提供されるサービスを利用し得る。
【0066】
図に示されている構成では、システム1100のソフトウェアコンポーネント1118,1120および1122は、サーバ1112上に実装されるように示されている。また、他の実施形態においては、システム1100の構成要素のうちの1つ以上および/またはこれらの構成要素によって提供されるサービスは、クライアントコンピューティングデバイス1102,1104,1106および/または1108のうちの1つ以上によって実現されてもよい。その場合、クライアントコンピューティングデバイスを動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、これらの構成要素によって提供されるサービスを使用し得る。これらの構成要素は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。分散型システム1100とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。したがって、図に示されている実施形態は、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されたものではない。
【0067】
クライアントコンピューティングデバイス1102,1104,1106および/または1108は、手持ち式携帯機器(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、計算タブレット、パーソナルデジタルアシスタント(personal digital assistant:PDA))またはウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)であってもよく、当該装置は、マイクロソフトウィンドウズ(登録商標)・モバイル(登録商標)などのソフトウェアを実行し、および/または、iOS、ウィンドウズ・フォン、アンドロイド(登録商標)、ブラックベリー10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、eメール、ショート・メッセージ・サービス(short message service:SMS)、ブラックベリー(登録商標)、または使用可能な他の通信プロトコルである。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータであってもよく、当該汎用パーソナルコンピュータは、一例として、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、ワークステーションコンピュータであってもよく、当該ワークステーションコンピュータは、たとえばGoogle Chrome OSなどのさまざまなGNU/リナックスオペレーティングシステムを含むがこれらに限定されるものではないさまざまな市販のUNIX(登録商標)またはUNIXライクオペレーティングシステムのうちのいずれかを実行する。代替的には、または付加的には、クライアントコンピューティングデバイス1102,1104,1106および1108は、シン・クライアントコンピュータ、インターネットにより可能なゲームシステム(たとえばキネクト(登録商標)ジェスチャ入力装置を備えるかまたは備えないマイクロソフトXボックスゲーム機)、および/または、ネットワーク1110を介して通信が可能なパーソナルメッセージング装置などのその他の電子装置であってもよい。
【0068】
例示的な分散型システム1100は、4個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有する装置などの他の装置が、サーバ1112と相互作用してもよい。
【0069】
分散型システム1100におけるネットワーク1110は、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよく、当該プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトークなどを含むが、これらに限定されるものではない。単に一例として、ネットワーク1110は、イーサネット(登録商標)、トークンリングなどに基づくものなどのローカルエリアネットワーク(LAN)であってもよい。ネットワーク1110は、広域ネットワークおよびインターネットであってもよい。ネットワーク1110は、仮想ネットワークを含んでいてもよく、当該仮想ネットワークは、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば米国電気電子学会(Institute of Electrical and Electronics:IEEE)802.11の一連のプロトコル、ブルートゥース(登録商標)および/またはその他の無線プロトコルのうちのいずれかのもとで動作するネットワーク)、および/またはこれらの任意の組合せ、および/または他のネットワークを含むが、これらに限定されるものではない。
【0070】
サーバ1112は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組合せで構成され得る。さまざまな実施形態においては、サーバ1112は、上記の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ1112は、本開示の実施形態に係る上記の処理を実行するためのサーバに対応してもよい。
【0071】
サーバ1112は、上記のもののうちのいずれか、および、任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ1112は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェース)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的サーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、オラクル社(Oracle)、マイクロソフト社(Microsoft)、サイベース社(Sybase)、IBM社(International Business Machines)などから市販されているものを含むが、これらに限定されるものではない。
【0072】
いくつかの実現例では、サーバ1112は、クライアントコンピューティングデバイス1102,1104,1106および1108のユーザから受信されたデータフィードおよび/またはイベント更新を分析および統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新は、1つ以上の第三者情報源および連続的なデータストリームから受信されるツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、これらに限定されるものではなく、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどに関連するリアルタイムイベントを含み得る。また、サーバ1112は、クライアントコンピューティングデバイス1102,1104,1106および1108の1つ以上の表示装置を介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
【0073】
また、分散型システム1100は、1つ以上のデータベース1114および1116を含み得る。データベース1114および1116は、さまざまな場所に存在し得る。一例として、データベース1114および1116の1つ以上は、サーバ1112にローカルな(および/または存在する)非一時的な記憶媒体に存在していてもよい。代替的に、データベース1114および1116は、サーバ1112から遠く離れていて、ネットワークベースまたは専用の接続を介してサーバ1112と通信してもよい。一組の実施形態においては、データベース1114および1116は、記憶領域ネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ1112に起因する機能を実行するための任意の必要なファイルが、サーバ1112上にローカルに、および/または、リモートで適宜格納されていてもよい。一組の実施形態においては、データベース1114および1116は、SQLフォーマットコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
【0074】
図12は、本開示の実施形態に係る、実施形態のシステムの1つ以上の構成要素によって提供されるサービスをクラウドサービスとして供給することができるシステム環境1200の1つ以上の構成要素の簡略化されたブロック図である。示されている実施形態においては、システム環境1200は、クラウドサービスを提供するクラウドインフラストラクチャシステム1202と相互作用するようにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス1204,1206および1208を含む。クライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム1202によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム1202と相互作用するようにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専有のクライアントアプリケーション(たとえばオラクルフォームズ)または他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【0075】
図に示されているクラウドインフラストラクチャシステム1202が図示されている構成要素とは他の構成要素を有し得ることが理解されるべきである。さらに、図に示されている実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態においては、クラウドインフラストラクチャシステム1202は、図に示されているものよりも多いまたは少ない数の構成要素を有していてもよく、2つ以上の構成要素を組合せてもよく、または構成要素の異なる構成または配置を有していてもよい。
【0076】
クライアントコンピューティングデバイス1204,1206および1208は、1102,1104,1106および1108について上記したものと類似のデバイスであってもよい。
【0077】
例示的なシステム環境1200は3個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサなどを有する装置などの他の装置が、クラウドインフラストラクチャシステム1202と相互作用してもよい。
【0078】
ネットワーク1210は、クライアント1204,1206および1208とクラウドインフラストラクチャシステム1202との間のデータの通信およびやりとりを容易にし得る。各々のネットワークは、ネットワーク1110について上記したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよい。
【0079】
クラウドインフラストラクチャシステム1202は、サーバ1112について上記したものを含み得る1つ以上のコンピュータおよび/またはサーバを備え得る。
【0080】
特定の実施形態においては、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータ記憶およびバックアップソリューション、ウェブベースのeメールサービス、ホスト型オフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドインフラストラクチャシステムによって提供されるサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、インターネットなどの通信ネットワークを介してクラウドサービスプロバイダのシステムからユーザが利用可能な任意のサービスは、「クラウドサービス」と称される。通常、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムがアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションを注文および使用してもよい。
【0081】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションへの保護されたコンピュータネットワークアクセス、またはクラウドベンダによってユーザに提供されるかもしくはそうでなければ当該技術分野において公知の他のサービスを含み得る。たとえば、サービスは、インターネットを介したクラウド上のリモートストレージへのパスワードによって保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされるeメールソフトウェアアプリケーションへのアクセスを含み得る。
【0082】
特定の実施形態においては、クラウドインフラストラクチャシステム1202は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に配信される一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【0083】
さまざまな実施形態においては、クラウドインフラストラクチャシステム1202は、クラウドインフラストラクチャシステム1202によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム1202は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、クラウドインフラストラクチャシステム1202が、(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、一般大衆またはさまざまな産業企業がサービスを利用できるパブリッククラウドモデルのもとでサービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム1202が単一の組織のためだけに運営され、当該組織内の1つ以上のエンティティにサービスを提供し得るプライベートクラウドモデルのもとでサービスが提供されてもよい。また、クラウドインフラストラクチャシステム1202およびクラウドインフラストラクチャシステム1202によって提供されるサービスが、関連のコミュニティ内のいくつかの組織によって共有されるコミュニティクラウドモデルのもとでクラウドサービスが提供されてもよい。また、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルのもとでクラウドサービスが提供されてもよい。
【0084】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1202によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(Infrastructureas a Service:IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリのもとで提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーによって、クラウドインフラストラクチャシステム1202によって提供される1つ以上のサービスを注文し得る。次いで、クラウドインフラストラクチャシステム1202は、顧客のサブスクリプションオーダーでサービスを提供するために処理を実行する。
【0085】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1202によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、SaaSプラットフォームは、一体化された開発およびデプロイメントプラットフォーム上で一連のオンデマンドアプリケーションを構築および配信するための機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムで実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例としては、大規模組織のための販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
【0086】
いくつかの実施形態においては、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通アーキテクチャ上で統合することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、これらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例としては、オラクルJavaクラウドサービス(Java Cloud Service:JCS)、オラクルデータベースクラウドサービス(Database Cloud Service:DBCS)などが挙げられるが、これらに限定されるものではない。
【0087】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態においては、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービル(たとえばオラクルフージョンミドルウェアサービス)およびJavaクラウドサービスを含み得る。一実施形態においては、データベースクラウドサービスは、組織がデータベースリソースをプールしてデータベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステムにおいてさまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得るともに、Javaクラウドサービスは、クラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
【0088】
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるIaaSプラットフォームによって提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワークなどの基本的な計算リソース、ならびに、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
【0089】
また、特定の実施形態においては、クラウドインフラストラクチャシステム1202は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース1230を含み得る。一実施形態においては、インフラストラクチャリソース1230は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するための、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め一体化された最適な組合せを含み得る。
【0090】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1202におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割り振りされてもよい。また、リソースは、異なる時間帯にユーザに割り振られてもよい。たとえば、クラウドインフラストラクチャシステム1230は、第1の時間帯におけるユーザの第1の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし得るとともに、異なる時間帯に位置するユーザの別の組への同一のリソースの再割り振りを可能にし得ることによって、リソースの利用を最大化することができる。
【0091】
特定の実施形態においては、クラウドインフラストラクチャシステム1202のさまざまな構成要素またはモジュール、および、クラウドインフラストラクチャシステム1202によって提供されるサービス、によって共有されるいくつかの内部共有サービス1232が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、インテグレーションサービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【0092】
特定の実施形態においては、クラウドインフラストラクチャシステム1202は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえばSaaSサービス、PaaSサービスおよびIaaSサービス)の包括的管理を提供し得る。一実施形態においては、クラウド管理機能は、クラウドインフラストラクチャシステム1202によって受信された顧客のサブスクリプションをプロビジョニング、管理および追跡などするための機能を含み得る。
【0093】
一実施形態においては、図に示されるように、クラウド管理機能は、オーダー管理モジュール1220、オーダーオーケストレーションモジュール1222、オーダープロビジョニングモジュール1224、オーダー管理および監視モジュール1226、ならびにアイデンティティ管理モジュール1228などの1つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含み得るか、またはそれらを用いて提供され得る。
【0094】
例示的な動作1234において、クライアントデバイス1204,1206または1208などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム1202によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1202によって供給される1つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クラウドインフラストラクチャシステム1202と対話し得る。特定の実施形態においては、顧客は、クラウドユーザインターフェース(UserInterface:UI)、すなわちクラウドUI1212、クラウドUI1214および/またはクラウドUI1216にアクセスして、これらのUIを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム1202によって受信されたオーダー情報は、顧客と、顧客がサブスクライブする予定のクラウドインフラストラクチャシステム1202によって提供される1つ以上のサービスとを特定する情報を含み得る。
【0095】
オーダーが顧客によって行われた後、オーダー情報は、クラウドUI1212,1214および/または1216を介して受信される。
【0096】
動作1236において、オーダーは、オーダーデータベース1218に格納される。オーダーデータベース1218は、クラウドインフラストラクチャシステム1218によって動作されるとともに他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであってもよい。
【0097】
動作1238において、オーダー情報は、オーダー管理モジュール1220に転送される。いくつかの例では、オーダー管理モジュール1220は、オーダーの確認および確認時のオーダーの予約などのオーダーに関連する請求書発行機能および会計経理機能を実行するように構成され得る。
【0098】
動作1240において、オーダーに関する情報は、オーダーオーケストレーションモジュール1222に通信される。オーダーオーケストレーションモジュール1222は、顧客によって行われたオーダーについてのサービスおよびリソースのプロビジョニングをオーケストレートするためにオーダー情報を利用し得る。いくつかの例では、オーダーオーケストレーションモジュール1222は、オーダープロビジョニングモジュール1224のサービスを用いてサブスクライブされたサービスをサポートするためにリソースのプロビジョニングをオーケストレートし得る。
【0099】
特定の実施形態においては、オーダーオーケストレーションモジュール1222は、各々のオーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用してオーダーがプロビジョニングに進むべきか否かを判断する。動作1242において、新たなサブスクリプションについてのオーダーを受信すると、オーダーオーケストレーションモジュール1222は、リソースを割り振って当該サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するための要求をオーダープロビジョニングモジュール1224に送る。オーダープロビジョニングモジュール1224は、顧客によってオーダーされたサービスについてのリソースの割り振りを可能にする。オーダープロビジョニングモジュール1224は、クラウドインフラストラクチャシステム1200によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間にあるレベルの抽象化を提供する。したがって、オーダーオーケストレーションモジュール1222は、サービスおよびリソースが実際に実行中にプロビジョニングされるか、事前にプロビジョニングされて要求があったときに割振られる/割当てられるのみであるかなどの実装の詳細から切り離すことができる。
【0100】
動作1244において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム1202のオーダープロビジョニングモジュール1224によってクライアントデバイス1204,1206および/または1208上の顧客に送られ得る。
【0101】
動作1246において、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール1226によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール1226は、使用される記憶量、転送されるデータ量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などのサブスクリプションオーダーにおけるサービスについての使用統計を収集するように構成され得る。
【0102】
特定の実施形態においては、クラウドインフラストラクチャシステム1200は、アイデンティティ管理モジュール1228を含み得る。アイデンティティ管理モジュール1228は、クラウドインフラストラクチャシステム1200におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成され得る。いくつかの実施形態においては、アイデンティティ管理モジュール1228は、クラウドインフラストラクチャシステム1202によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報と、それらの顧客がさまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することを認可されるかを記載する情報とを含み得る。また、アイデンティティ管理モジュール1228は、各々の顧客についての説明的情報、ならびに、どのようにしておよび誰によってこの説明的情報がアクセスおよび変更され得るかについての情報の管理を含み得る。
【0103】
図13は、本発明のさまざまな実施形態を実現することができる例示的なコンピュータシステム1300を示す。システム1300は、上記のコンピュータシステムのうちのいずれかを実現するために使用され得る。図に示されているように、コンピュータシステム1300は、バスサブシステム1302を介していくつかの周辺サブシステムと通信する処理ユニット1304を含む。これらの周辺サブシステムは、処理加速ユニット1306と、I/Oサブシステム1308と、記憶サブシステム1318と、通信サブシステム1324とを含み得る。記憶サブシステム1318は、有形のコンピュータ読取可能な記憶媒体1322と、システムメモリ1310とを含む。
【0104】
バスサブシステム1302は、コンピュータシステム1300のさまざまな構成要素およびサブシステムに、意図されたように互いに通信させるための機構を提供する。バスサブシステム1302は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム1302は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、IEEE P1386.1標準に合わせて製造されたメザニンバスとして実現可能な、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、拡張ISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバスおよび周辺機器相互接続(Peripheral Component Interconnect:PCI)バスを含み得る。
【0105】
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現可能な処理ユニット1304は、コンピュータシステム1300の動作を制御する。処理ユニット1304には、1つ以上のプロセッサが含まれ得る。これらのプロセッサは、単一コアまたはマルチコアのプロセッサを含み得る。特定の実施形態においては、処理ユニット1304は、各々の処理ユニットに含まれる単一コアまたはマルチコアのプロセッサを有する1つ以上の独立した処理ユニット1332および/または1334として実現されてもよい。また、他の実施形態においては、処理ユニット1304は、2つのデュアルコアプロセッサを単一のチップに組み入れることによって形成されるクアッドコア処理ユニットとして実現されてもよい。
【0106】
さまざまな実施形態においては、処理ユニット1304は、プログラムコードに応答してさまざまなプログラムを実行し得るとともに、同時に実行される複数のプログラムまたはプロセスを維持し得る。任意の所与の時点において、実行されるべきプログラムコードのうちのいくつかまたは全ては、プロセッサ1304および/または記憶サブシステム1318に存在し得る。好適なプログラミングを通じて、プロセッサ1304は、上記のさまざまな機能を提供し得る。また、コンピュータシステム1300は、加えて、デジタル信号プロセッサ(digital signal processor:DSP)、特殊用途プロセッサなどを含み得る処理加速ユニット1306を含み得る。
【0107】
I/Oサブシステム1308は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含み得る。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、タッチパッドまたはタッチスクリーンを含んでいてもよく、これらは、音声コマンド認識システム、マイクロホンおよび他のタイプの入力装置とともに、ディスプレイ、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、オーディオ入力装置に組込まれている。ユーザインターフェイス入力装置は、たとえば、ジェスチャおよび話されたコマンドを用いてナチュラルユーザインターフェースを介してユーザがマイクロソフトXbox(登録商標)360ゲームコントローラなどの入力装置を制御して入力装置と対話することを可能にするマイクロソフトキネクト(登録商標)モーションセンサなどのモーション検知および/またはジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザから眼球運動(たとえば撮影および/またはメニュー選択を行っている間の「まばたき」)を検出して、当該眼球ジェスチャを入力装置への入力として変換するグーグルグラス(登録商標)まばたき検出器などの眼球ジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識検知装置を含み得る。
【0108】
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線検出装置を含み得るが、これらに限定されるものではない。また、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴画像化、位置発光断層撮影、医療用超音波検査装置などの医療用画像化入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえばMIDIキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
【0109】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、表示灯、またはオーディオ出力装置などの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するものなどのフラットパネルディスプレイ、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム1300からの情報をユーザまたは他のコンピュータに出力するための全ての実現可能なタイプの装置および機構を含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車のナビゲーションシステム、プロッタ、音声出力装置およびモデムなどの、テキスト、グラフィックスおよびオーディオ/ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【0110】
コンピュータシステム1300は、現在のところシステムメモリ1310内に位置しているように示されているソフトウェア要素を備える記憶サブシステム1318を備え得る。システムメモリ1310は、処理ユニット1304上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されるデータとを格納し得る。
【0111】
コンピュータシステム1300の構成およびタイプに応じて、システムメモリ1310は、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)であってもよく、および/または、不揮発性(リードオンリメモリ(read-only memory:ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理ユニット1304が直ちにアクセス可能なデータおよび/またはプログラムモジュール、および/または、処理ユニット1304によって現在動作および実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ1310は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム1300内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納され得る。一例としておよび非限定的に、システムメモリ1310は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム1312、プログラムデータ1314およびオペレーティングシステム1316も示す。一例として、オペレーティングシステム1316は、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはリナックスオペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、ならびに/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイドOS、ブラックベリー(登録商標)10OSおよびパーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0112】
また、記憶サブシステム1318は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能な記憶媒体を提供し得る。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム1318に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット1304によって実行され得る。また、記憶サブシステム1318は、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【0113】
また、記憶サブシステム1300は、コンピュータ読取可能な記憶媒体1322にさらに接続可能なコンピュータ読取可能な記憶媒体リーダ1320を含み得る。ともにおよび任意には、システムメモリ1310と組合せて、コンピュータ読取可能な記憶媒体1322は、コンピュータ読取可能な情報を一時的および/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモートの、ローカルの、固定されたおよび/または取外し可能な記憶装置を包括的に表わし得る。
【0114】
コードまたはコードの一部を含むコンピュータ読取可能な記憶媒体1322は、当該技術分野において公知のまたは使用される任意の適切な媒体を含み得る。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ読取可能な媒体などの有形のコンピュータ読取可能な記憶媒体を含み得る。また、これは、データ信号、データ送信などの無形のコンピュータ読取可能な媒体、または、所望の情報を送信するために使用可能であるとともに計算システム1300によってアクセス可能である他の任意の媒体を含み得る。
【0115】
一例として、コンピュータ読取可能な記憶媒体1322は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびブルーレイ(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含み得る。コンピュータ読取可能な記憶媒体1322は、ジップ(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ読取可能な記憶媒体1322は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含み得る。ディスクドライブおよびそれらの関連のコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム1300に提供し得る。
【0116】
通信サブシステム1324は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム1324は、他のシステムからデータを受信したり、コンピュータシステム1300から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム1324は、コンピュータシステム1300がインターネットを介して1つ以上の装置に接続することを可能にし得る。いくつかの実施形態においては、通信サブシステム1324は、(たとえば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、WiFi(IEEE1902.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組合せ)、全地球測位システム(global positioning system:GPS)レシーバコンポーネント、および/または、他のコンポーネントを含み得る。いくつかの実施形態においては、通信サブシステム1324は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット)を提供し得る。
【0117】
また、いくつかの実施形態においては、通信サブシステム1324は、コンピュータシステム1300を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード1326、イベントストリーム1328、イベント更新1330などの形態で入力通信を受信し得る。
【0118】
一例として、通信サブシステム1324は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード1326をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成され得る。
【0119】
加えて、通信サブシステム1324は、連続的なデータストリームの形態でデータを受信するように構成され得る。当該データは、連続的である場合もあれば本質的に明確な端部をもたない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム1328および/またはイベント更新1330を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【0120】
また、通信サブシステム1324は、構造化されたおよび/または構造化されていないデータフィード1326、イベントストリーム1328、イベント更新1330などを、コンピュータシステム1300に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成され得る。
【0121】
コンピュータシステム1300は、手持ち式携帯機器(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの1つであってもよい。
【0122】
コンピュータおよびネットワークの絶え間なく変化し続ける性質のために、図に示されているコンピュータシステム1300の説明は、特定の例として意図されているに過ぎない。図に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が可能である。たとえば、ハードウェア、ファームウェア、(アプレットを含む)ソフトウェア、または組合せにおいて、カスタマイズされたハードウェアが使用されてもよく、および/または、特定の要素が実装されてもよい。さらに、ネットワーク入力/出力装置などの他のコンピューティングデバイスへの接続が利用されてもよい。本明細書中に提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の手段および/または方法を理解するであろう。
【0123】
前述の説明では、説明の目的のために、本発明のさまざまな実施形態の完全な理解を提供するために、多数の具体的な詳細が述べられた。しかしながら、本発明の実施形態は、これらの具体的な詳細のいくつかを伴わずに実施され得ることが当業者には明白であろう。他の例では、周知の構造およびデバイスがブロック図形式で示される。
【0124】
上記の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を制限することを意図していない。むしろ、例示的な実施形態の前述の説明は、例示的な実施形態を実施するための可能な説明を当業者に与えるであろう。特許請求の範囲に記載されている本発明の精神および範囲から逸脱することなく、要素の機能および構成にさまざまな変更を加えることができることを理解されたい。
【0125】
上記の説明では、実施形態の完全な理解を与えるために具体的な詳細が与えられている。しかしながら、当業者には、実施の形態はこれらの具体的な詳細なしに実施されてもよいことが理解される。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、実施形態を不必要な詳細において不明瞭にしないために、ブロック図の形態でコンポーネントとして示されている場合がある。他の事例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細を伴わずに示されていることがある。
【0126】
さらに、個々の実施の形態は、フローチャート、フロー図、データフロー図、構造図またはブロック図として示されるプロセスとして記載されている場合があることが注記される。フローチャートは動作をシーケンシャルなプロセスとして記載している場合があるが、動作の多くは並列または同時に実行され得る。加えて、動作の順序は再構成されてもよい。プロセスは、その動作が完了されるときに終結されるが、図に含まれない追加のステップを含み得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合では、その終結は、その関数が呼出関数または主関数に戻ることに対応し得る。
【0127】
「コンピュータ読取可能媒体」という語は、命令および/またはデータを記憶するか、含むか、または担持することができるポータブルまたは固定された記憶装置、光記憶装置、ワイヤレスチャネルおよびさまざまな他の的媒体を含むが、それらに限定はされない。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文のいずれかの組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータまたはメモリコンテンツを受け渡すおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ受渡し、トークン受渡し、ネットワーク伝送などを含む任意の好適な手段を介して渡されるか、転送されるか、または伝送されてもよい。
【0128】
さらに、実施の形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実現される場合には、必要なタスクを実行するプログラムコードまたはコードセグメントを機械読取可能媒体に記憶してもよい。プロセッサが必要なタスクを実行してもよい。
【0129】
上記の明細書では、本発明の局面についてその具体的な実施形態を参照して説明しているが、本発明はそれに限定されるものではないということを当業者は認識するであろう。上記の発明のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、実施形態は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【0130】
さらに、例示の目的のため、方法が特定の順序で説明された。代替の実施形態では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させるマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、1つ以上の機械読取可能媒体、たとえばCD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリなど、または電子命令を記憶するのに適した他の種類の機械読取可能媒体に記憶できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13