(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-13
(45)【発行日】2024-06-21
(54)【発明の名称】仮想ダッシュボードにおける視覚化オブジェクト間のアニメーション
(51)【国際特許分類】
G06T 13/20 20110101AFI20240614BHJP
G06T 19/00 20110101ALI20240614BHJP
【FI】
G06T13/20
G06T19/00 A
(21)【出願番号】P 2021521514
(86)(22)【出願日】2019-10-21
(86)【国際出願番号】 US2019057161
(87)【国際公開番号】W WO2020086436
(87)【国際公開日】2020-04-30
【審査請求日】2022-09-30
(32)【優先日】2018-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】モロズ,ベンジャミン・エル
(72)【発明者】
【氏名】グレイザー,ブレンドン・チャールズ
(72)【発明者】
【氏名】カトンゴ,カパヤ
(72)【発明者】
【氏名】ハンソン,クリス・エル
(72)【発明者】
【氏名】バン・デン・ブルーク,ヘンドリック
【審査官】高野 美帆子
(56)【参考文献】
【文献】米国特許出願公開第2017/0092008(US,A1)
【文献】米国特許出願公開第2016/0103872(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/20
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
1つ以上の視覚化コンポーネント間にアニメーションを提供するための方法であって、
第1の視覚化コンポーネントにバインディングされる1つまたは複数のデータセットを受信することと、
前記1つまたは複数のデータセットに基づいて仮想環境において前記第1の視覚化コンポーネントの3D表現を生成することと、
前記1つまたは複数のデータセットを前記仮想環境内において第2の視覚化コンポーネントに遷移させるようコマンドを受信することと、
前記仮想環境において、前記第1の視覚化コンポーネントの前記3D表現から前記第2の視覚化コンポーネントの3D表現に移動する前記1つまたは複数のデータセット内の個々のデータポイントを表す3Dオブジェクトのアニメーションを生成することと、
前記1つまたは複数のデータセットを前記第2の視覚化コンポーネントにバインディングすることとを含
み、
前記1つまたは複数のデータセット内の個々のデータポイントを表す前記3Dオブジェクトは、対応する個々のデータポイントの属性値によって決定される視覚的特性を有し、
個々のデータポイントを表す前記3Dオブジェクトは、前記第1の視覚化コンポーネントの前記3D表現において個々に可視であり、前記3Dオブジェクトは、前記第2の視覚化コンポーネントの前記3D表現においてもはや個々に可視でない、方法。
【請求項2】
前記第1の視覚化コンポーネントは、ファネルオブジェクトを含む、請求項1に記載の方法。
【請求項3】
前記第2の視覚化コンポーネントはビーカーオブジェクトまたはプロファイルレイアウトオブジェクトを含む、請求項1または2に記載の方法。
【請求項4】
さらに、
前記仮想環境において実行されるべきアクションのリストを含むストーリーデータ構造にアクセスすることを含み、前記アクションのリストは、
前記第1の視覚化コンポーネントをインスタンス化するための命令と、
前記第2の視覚化コンポーネントをインスタンス化するための命令と、
前記1つまたは複数のデータセットを前記第1の視覚化コンポーネントのパラメータ化された入力にバインディングするための命令と、
前記3Dオブジェクトをアニメーション化するための命令と、
前記1つまたは複数のデータセットを前記第2の視覚化コンポーネントのパラメータ化された入力にバインディングするための命令とを含む、請求項1~3のいずれかに記載の方法。
【請求項5】
前記アクションのリストは、前記仮想環境において前記第1の視覚化コンポーネントの前記3D表現と前記第2の視覚化コンポーネントの前記3D表現との間で前記3Dオブジェクトをアニメーション化する前にユーザ入力を待つための命令をさらに含む、請求項4に記載の方法。
【請求項6】
前記第1の視覚化コンポーネントの前記3D表現および前記第2の視覚化コンポーネントの前記3D表現は、クラウド環境において1つまたは複数の企業アプリケーションからの企業データを表示するための仮想ダッシュボードの一部として前記仮想環境に配置される、請求項1~
5のいずれかに記載の方法。
【請求項7】
前記第1の視覚化コンポーネントおよび前記第2の視覚化コンポーネントは、前記仮想環境においてユーザの仮想位置を囲むカルーセル内に表示される、請求項1~
6のいずれかに記載の方法。
【請求項8】
さらに、
前記1つまたは複数のデータセットを前記仮想環境内の第3の視覚化コンポーネントに遷移させるための第2のコマンドを受信することと、
前記仮想環境において、前記第2の視覚化コンポーネントの前記3D表現から前記第3の視覚化コンポーネントの3D表現に移動する前記1つまたは複数のデータセット内の個々のデータポイントを表す前記3Dオブジェクトのアニメーションを生成することと、
前記1つまたは複数のデータセットを前記第3の視覚化コンポーネントにバインディングすることとを含む、請求項1~
7のいずれかに記載の方法。
【請求項9】
請求項1~
8のいずれかに記載の方法を1つまたは複数のプロセッサに実行させるためのプログラム。
【請求項10】
1つまたは複数のプロセッサと、
請求項1~
8のいずれかに記載の方法を前記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らによる、「INTERACTIVE DATA EXPLORER AND 3-D DASHBOARD ENVIRONMENT(対話型データエクスプローラおよび3Dダッシュボード環境 )」と題される米国特許出願第16/658,162号(弁理士登録番号088325-1142774)であり、その全体をここに引用により援用する。
・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らによる、「DATA VISUALIZATION OBJECTS IN A VIRTUAL ENVIRONMENT(仮想環境でのデータ視覚化オブジェクト)」と題される米国特許出願第16/658,180号(弁理士登録番号088325-1143002)であり、その全体をここに引用により援用する。
【背景技術】
【0003】
背景
情報を伝達するための最も有効な方法の1つは、視覚化によるものである。情報を捕捉および分類することは、典型的には、データから引き出され得る結論の完全な理解を得るのには十分ではない。2次元データ可視化は、我々の通信技術の多くを支配するが、これらの可視化技術の多くは、データ収集の態様を強調表示または強調することに対して最適化されていない。効果的なデータ視覚化は、データの態様を非常に迅速に通信する情報提供的な視覚に訴える表現を作成することを伴う。時には、単純な視覚化で十分である。しかしながら、複雑な多次元データでは、データセット自体の複雑さにより、適切な視覚化が困難になり、次元空間が制限される可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
1つ以上の視覚化コンポーネント間にアニメーションを提供するための方法は、第1の視覚化コンポーネントにバインディングされる1つまたは複数のデータセットを受信することと、上記1つまたは複数のデータセットに基づいて仮想環境において上記第1の視覚化コンポーネントの3D表現を生成することと、上記1つまたは複数のデータセットを上記仮想環境内において第2の視覚化コンポーネントに遷移させるようコマンドを受信することと、上記仮想環境において、上記第1の視覚化コンポーネントの上記3D表現から上記第2の視覚化コンポーネントの3D表現に移動する上記1つまたは複数のデータセット内の個々のデータポイントを表す3Dオブジェクトのアニメーションを生成することと、上記1つまたは複数のデータセットを上記第2の視覚化コンポーネントにバインディングすることとを含んでもよい。
【0005】
非一時的コンピュータ読取可能媒体は、1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備えてもよく、上記動作は、第1の視覚化コンポーネントにバインディングされる1つまたは複数のデータセットを受信することと、上記1つまたは複数のデータセットに基づいて仮想環境において上記第1の視覚化コンポーネントの3D表現を生成することと、上記1つまたは複数のデータセットを上記仮想環境内において第2の視覚化コンポーネントに遷移させるようコマンドを受信することと、上記仮想環境において、上記第1の視覚化コンポーネントの上記3D表現から上記第2の視覚化コンポーネントの3D表現に移動する上記1つまたは複数のデータセット内の個々のデータポイントを表す3Dオブジェクトのアニメーションを生成することと、上記1つまたは複数のデータセットを上記第2の視覚化コンポーネントにバインディングすることとを含んでもよい。
【0006】
システムは、1つまたは複数のプロセッサと、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備える1つまたは複数のメモリデバイスとを備え、上記動作は、第1の視覚化コンポーネントにバインディングされる1つまたは複数のデータセットを受信することと、上記1つまたは複数のデータセットに基づいて仮想環境において上記第1の視覚化コンポーネントの3D表現を生成することと、上記1つまたは複数のデータセットを上記仮想環境内において第2の視覚化コンポーネントに遷移させるようコマンドを受信することと、上記仮想環境において、上記第1の視覚化コンポーネントの上記3D表現から上記第2の視覚化コンポーネントの3D表現に移動する上記1つまたは複数のデータセット内の個々のデータポイントを表す3Dオブジェクトのアニメーションを生成することと、上記1つまたは複数のデータセットを上記第2の視覚化コンポーネントにバインディングすることとを含んでもよい。
【0007】
いずれの実施形態においても、以下の特徴のいずれかが、限定なしに、任意の組み合わせで実現されてもよい。第1の視覚化コンポーネントは、ファネルオブジェクトを含んでもよい。第2の視覚化コンポーネントはビーカーオブジェクトを含んでもよい。第2の視覚化コンポーネントは、プロファイルレイアウトオブジェクトを含んでもよい。本方法/動作はまた、上記仮想環境において実行されるべきアクションのリストを含むストーリーデータ構造にアクセスすることを含んでもよく、上記アクションのリストは、上記第1の視覚化コンポーネントをインスタンス化するための命令と、上記第2の視覚化コンポーネントをインスタンス化するための命令と、上記1つまたは複数のデータセットを上記第1の視覚化コンポーネントのパラメータ化された入力にバインディングするための命令と、上記3Dオブジェクトをアニメーション化するための命令と、上記1つまたは複数のデータセットを上記第2の視覚化コンポーネントのパラメータ化された入力にバインディングするための命令とを含んでもよい。上記アクションのリストは、さらに、上記仮想環境において上記第1の視覚化オブジェクトの上記3D表現と上記第2の視覚化オブジェクトの上記3D表現との間で上記3Dオブジェクトをアニメーション化する前にユーザ入力を待つための命令を含んでもよい。上記1つまたは複数のデータセットを上記第2の視覚化コンポーネントに遷移させるための上記コマンドを受信することは、上記3Dオブジェクトをアニメーション化する前にユーザ入力を待つことを停止するよう上記ストーリーデータ構造の実行をトリガしてもよい。上記1つまたは複数のデータセット内の個々のデータポイントを表す上記3Dオブジェクトは、対応する個々のデータポイントの属性値によって決定される視覚的特性を有してもよい。個々のデータポイントを表す上記3Dオブジェクトは、上記第1の視覚化コンポーネントの上記3D表現において個々に可視であってもよく、上記3Dオブジェクトは、上記第2の視覚化コンポーネントの上記3D表現においてもはや個々に可視でなくてもよい。上記第1の視覚化コンポーネントの上記3D表現および上記第2の視覚化コンポーネントの上記3D表現は、クラウド環境において1つまたは複数の企業アプリケーションからの企業データを表示するための仮想ダッシュボードの一部として上記仮想環境に配置されてもよい。上記第1の視覚化コンポーネントおよび上記第2の視覚化コンポーネントは、上記仮想環境においてユーザの仮想位置を囲むカルーセル内に表示されてもよい。本方法/動作はまた、上記1つまたは複数のデータセットを上記仮想環境内の第3の視覚化コンポーネントに遷移させるための第2のコマンドを受信することと、上記仮想環境において、上記第2の視覚化コンポーネントの上記3D表現から上記第3の視覚化コンポーネントの3D表現に移動する上記1つまたは複数のデータセット内の個々のデータポイントを表す上記3Dオブジェクトのアニメーションを生成することと、上記1つまたは複数のデータセットを上記第3の視覚化コンポーネントにバインディングすることとを含んでもよい。
【0008】
図面の簡単な説明
本発明の性質および利点のさらに進んだ理解は、明細書および図面の残りの部分を参照することによって実現することができ、いくつかの図面全体を通して、同様のコンポーネントを指すために同様の参照番号が用いられる。場合によっては、下位ラベルが、複数の同様のコンポーネントのうちの1つを示すために参照番号に関連付けられる。既存の下位サブラベルを指定せずに参照符号に言及する場合、そのような複数の同様のコンポーネントすべてを参照することが意図される。
【図面の簡単な説明】
【0009】
【
図1】いくつかの実施形態による、対話型データディスプレイをオーサリングし、提供し、用いるためのシステムを示す。
【
図2】いくつかの実施形態による、企業データセットにバインディングされた仮想オブジェクトの例を示す。
【
図3】コンポーネント交換からアプリケーションにコンポーネントをインポートするためのユーザインターフェイスを示す図である。
【
図4】いくつかの実施形態による、アプリケーション内のコンポーネントをダウンロードし、インスタンス化するためのプロセスのブロック図を示す。
【
図5】いくつかの実施形態による、仮想環境において作成された仮想ダッシュボードを示す。
【
図6】いくつかの実施形態による、さまざまなタイプのクライアントデバイスシステムおよび入力デバイスがすべてEDIE環境において同じ仮想環境と同時にインターフェイスすることができる方法を示す。
【
図7】いくつかの実施形態による、2D画面インターフェイスを介する仮想環境のビューを示す。
【
図8】いくつかの実施形態による、複数のユーザが仮想ダッシュボードと対話する仮想環境のビューを示す。
【
図9】いくつかの実施形態による、仮想環境と対話するために用いられ得る現実世界の環境のビューを示す。
【
図10】いくつかの実施形態による、多次元ダッシュボードにおいてデータを表示するための方法のフローチャートを示す。
【
図11】いくつかの実施形態による、ファネルの形態の視覚化オブジェクトの例を示す。
【
図12】いくつかの実施形態による、他の視覚化コンポーネントからデータポイントを受け取ることができるビーカー視覚化コンポーネントを示す。
【
図13】いくつかの実施形態による、視覚化コンポーネント間を移動するために、個々のデータポイントを表す3Dオブジェクトのアニメーションが生成される方法を示す図である。
【
図14】いくつかの実施形態による、プロファイルレイアウトを含む第3の視覚化コンポーネントを示す図である。
【
図15】いくつかの実施形態による、特定のプロファイルに関連する追加情報の表示を示す。
【
図16】いくつかの実施形態による仮想ダッシュボードを示す。
【
図17】いくつかの実施形態による、ストーリーが仮想ダッシュボード内においてオブジェクトのアニメーションをどのように生成できるかを示す。
【
図18】いくつかの実施形態によるストーリーのためのデータ構造を示す。
【
図19】いくつかの実施形態による、1つまたは複数の視覚化コンポーネント間でアニメーションを提供するための方法のフローチャートを示す。
【
図20】実施形態の一部を実現するための分散システムの簡略図である。
【
図21】いくつかの実施形態による、ある実施形態のシステムの1つまたは複数のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得る、システム環境の1つまたは複数のコンポーネントの簡略ブロック図である。
【
図22】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【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】
標準的なウェブコンポーネントに加えて、本明細書で説明される実施形態は、ユーザが、企業データ対話型エクスプローラ(EDIE)環境において用いることができる特別な視覚化オブジェクトを開発することを可能にする。これらの視覚化オブジェクトは、別個のネットワーク接続を通じて複数のクライアントデバイスによって同時に見られ得る企業データセットの多次元ビューを提供する。これらの視覚化オブジェクトは、標準的なウェブコンポーネントがコンポーネント交換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は、上述のクライアントデバイスのいずれかで動作するEDIE環境102にダウンロードされてもよい。EDIE環境102は、3次元(3D)コンポーネントが2次元(2D)視および3D視の両方のためにインスタンス化され得る環境を提供し得る仮想環境104を含み得る。
【0032】
ファネルオブジェクト402のコードをダウンロードすることに加えて、コンポーネント交換124はまた、コンポーネントをEDIE環境102において実行するのに必要な任意の追加のコードを提供してもよい。この追加のコードは、コンポーネント交換124によって記憶され利用可能にされるコードライブラリ404に格納されてもよい。追加のコードは、コンポーネント交換124によってホスティングおよび/または提供されないサードパーティからのライブラリ406も含み得る。例えば、コンポーネント交換124は、グラフィック操作コードのライブラリを、ファネルオブジェクト402のためのインストールプロセスの一部として、サードパーティウェブサイトからダウンロードさせ得る。このコードのすべてをEDIE環境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で動作するように設計された任意の視覚化オブジェクトが、同様の手順を用いてEDIE環境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は、いくつかの実施形態による、どのようにして、さまざまなタイプのクライアントデバイスシステムおよび入力デバイスが、EDIE環境102においてすべて同時に同じ仮想環境とインターフェイスすることができるかを示す。EDIE環境102は、いくつかの異なる目的に供され、いくつかの異なる利益を提供する、3Dデータ探索プラットフォームを含み得る。例えば、EDIE環境102は、企業データの探索をより没入型かつ流動的にすることができる重要で収束性の新たな技術間の統合のためのネクサスとして働き得る。これらの技術は、会話UI(例えば、音声ベースまたはチャットベースである)610、仮想現実(VR)608、拡張現実(AR)604、および多くの他の対話型技術を含み得る。ユーザはまた、モバイルデバイス606上のアプリ、ディスプレイ画面上のウェブブラウザ612など、従来の2Dコンピューティングツールを用いて、これらの可視化技術にアクセスすることもできる。EDIE環境102は、デバイス間の遷移を通じてシームレスにシフトする可視化を提供することができる。たとえば、ユーザは、モバイルデバイス606の画面上など、2D環境で3D可視化を見ることができる。次いで、ユーザは、1対の仮想現実ゴーグルを着用して、モバイルデバイス606の画面上に2D方式で表示された視覚化オブジェクトを含む仮想現実空間に遷移してもよい。仮想環境では、ユーザは、以下に説明されるようにVRシステムに一般に含まれるハンドコントローラを用いて視覚化オブジェクトと対話することができる。
【0042】
EDIE環境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】
上述したように、EDIE環境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仮想オブジェクトを生成するために用いられ得る他のグラフィカル構成を含み得る。仮想環境は、EDIE動作環境において、3D視覚化コンポーネントからの3D仮想オブジェクトに加えてオブジェクトを含む3D仮想シーンを作成するよう、実現され得る。例えば、仮想環境は、3D仮想オブジェクトのカルーセルとして構成され得る。別の例では、仮想環境は、仮想環境においてユーザが見ることができる仮想「ウィジェット」として3Dオブジェクトを表示する企業ダッシュボードとして構成されてもよい。ダッシュボード内の3D仮想オブジェクトの各々は、異なるデータベースおよび/または異なるアプリケーションからの異なる企業データセットにバインディングされ得る。例えば、ダッシュボードは、金融、従業員、業務、顧客などのための概要データを、すべて、単一の仮想環境において、1つの統一された表示で提供することができる。
【0060】
本方法はまた、複数のクライアントデバイスから仮想環境への接続を受信すること(1010)を含み得る。いくつかの実施形態は、クライアントデバイスとともに用いられるディスプレイおよび/または入力デバイスのタイプを検出するように構成されたハードウェア検出プロセスがインストールされたクライアントデバイスを含み得る。ハードウェア検出プロセスは、仮想環境との対話を、クライアントデバイスのタイプに一致するように、自動的に構成することができる。例えば、クライアントデバイスが仮想現実ヘッドセットを含む場合、ハードウェア検出プロセスは、ユーザが現実世界の環境よりもむしろ仮想環境内で動作しているかのように感じるように、仮想環境との没入型ビューおよび/または対話を提供するように構成され得る。クライアントデバイスが2D画面(例えば、モニタ、ラップトップコンピュータ等である)を含む場合、ハードウェア検出プロセスは、仮想環境内に仮想カメラを置いて、仮想環境の2D画像を、2D画面上に表示されるよう、ある位置で、キャプチャするように構成され得る。
【0061】
本方法は、仮想環境内の複数の3D仮想オブジェクトに対する複数のビューを複数のクライアントデバイスに提供することをさらに含んでもよい(1012)。クライアントデバイスの各々は、仮想環境の個々のビューを提供されてもよい。さらに、クライアントデバイスの各々は、ユーザが仮想環境内の3D仮想オブジェクトと対話してそれらの表示を変更することを可能にするように構成され得る。例えば、ユーザは、仮想オブジェクトから、対応するデータセット内の個々の要素に対応する要素を除去することができる。ユーザは、そのデータ要素内のデータポイントに関する概要情報を含む表示を見ることができ、あるデータポイントを変更することを許可され得る。これらの変更は、3D仮想オブジェクトがバインディングされる基礎となるデータソースにおいて更新されてもよい。いくつかの実施形態では、変更は、仮想環境内で他のユーザによって直ちに見られることができる。代替的に、いくつかの変更は、その変更を行うユーザにのみ可視であり得、各ユーザは、仮想環境の個別化されたビューを提供され得る。
【0062】
図10に示される特定のステップは、さまざまな実施形態に従って多次元ダッシュボードにデータを表示する特定の方法を提供することを理解されたい。代替の実施形態に従って、他の一連のステップも実行することができる。例えば、本発明の代替実施形態は、上記で概説したステップを異なる順序で実行することができる。さらに、
図10に示される個々のステップは、個々のステップに適切なさまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて追加のステップを追加または削除することができる。当業者は、多くの変形形態、修正形態、および代替形態を認識するであろう。
【0063】
カルーセル内における視覚化オブジェクト間のアニメーション
いくつかの実施形態では、1つまたは複数のデータセットを表すために、仮想環境内で複数の視覚化コンポーネントを用いることができる。例えば、単一のデータセットを第1の視覚化コンポーネントにロードすることができる。第1の視覚化コンポーネントは、データセットの特定の態様または態様のセットを示すように調整されることができる。しかしながら、データセットの異なる態様または態様のセットを示すのに、第1の視覚化コンポーネントは理想的ではない可能性がある。したがって、これらの実施形態は、第1の視覚化コンポーネントから第2の視覚化コンポーネントに流れるデータセットのアニメーションを生成することができる。第1の視覚化コンポーネント内の球体またはボールなどのグラフィカル要素は、第2の視覚化コンポーネントに流れて、第2の視覚化コンポーネント内の容積を「充填する」ようにアニメーション化することができる。第2の視覚化コンポーネントは、データセットの1つまたは複数の代替の態様をグラフィカルに強調するように具体的に調整されることができる。
【0064】
仮想環境におけるデータセットの異なるビューおよび/または表現間の遷移は、「ストーリー」のセットによって支配され得る。本明細書で用いられる場合、「ストーリー」という用語は、仮想環境におけるデータの表示を視覚化段階を通して進行させて、データを用いてストーリーを伝える一連のアクションを指し得る。異なる視覚化コンポーネント間の各遷移を制御するのではなく、ストーリーを用いて、さまざまな視覚化コンポーネント、データセット、および/またはビューを通してユーザのビューを自動的に順序付けてもよい。ストーリーは、以下に詳述するように、命令またはアクションのデータ構造に格納されてもよい。
【0065】
ストーリーにおけるステップ間のアニメーションおよび/またはシーケンスを記述する前に、本開示は、まず、いくつかの異なる視覚化コンポーネントを記述することができる。これらの視覚化コンポーネントは、単に例として提示されており、限定することを意図していない。しかしながら、それらは、ビュー、データセット、視覚化コンポーネント、および/または仮想環境の他の態様が、より大きなストーリーの一部としてどのように遷移され得るかを示すための例として用いられ得るように説明される。本開示は、最初に、上で簡単に言及したファネル視覚化コンポーネント、ならびに「ビーカー」視覚化コンポーネントおよび「プロファイルレイアウト」視覚化コンポーネントを説明する。
【0066】
前述のように、インポートされたデータセットは、仮想環境において1つまたは複数の視覚化コンポーネントによって表され得る。多くの異なるタイプの視覚化コンポーネントが仮想環境にインポートされて、それらがバインディングされるデータセットを表すことができる。各視覚化コンポーネントとともに利用可能な形状、デザイン、およびアニメーションは、ユーザが複雑なデータセットを見、理解し、操作するための視覚的経験を提供するように具体的に設計され得る。ウェブページ上のグラフまたは2Dパイチャートを単に見る代わりに、ユーザは、データがどのように経時的に変化するか、データがどのように互いに対話するか、および所望の結果を達成するためにどのような変化がデータを通して伝播されたかを示すことができる3次元の高度なアニメーションを見ることができる。これらの視覚化コンポーネントは、企業データを表示し、それと対話するための、従来の2次元ダッシュボードよりも顕著な利点を提供する。
【0067】
図11は、いくつかの実施形態による、ファネル1100の形態の視覚化オブジェクトの例を示す。ファネル1100は、最終オブジェクト、ファネル視覚化コンポーネント、またはファネル3D表現と呼ばれることがある。ファネル1100は、数千または数百万ものデータポイントを有する大きなデータセットを視覚化するために有用であり得る。ファネル1100は、各データポイントおよびデータポイントのセットに関する情報を集合的に伝えることができる複数の同時視覚的インジケータを提供することができる。これらの視覚的インジケータは、データポイントの色付け、データポイントのサイズ、ファネル1100の中心からのデータポイントの径方向距離、データポイントの径方向角度、ファネル1100の周りのデータポイントの回転速度、ファネル1100の長さに沿った距離などを含み得る。データセットにおける属性を用いて、ファネル1100の周りの個々のデータポイントをプロットし、それらの外観および/またはアニメーションを制御して、この情報のすべてを視覚表示でユーザに同時に伝えることができる。
【0068】
上述したように、ファネル1100の視覚化コンポーネントは、任意の特定のデータセットに対してアグノスティックであるように設計されてもよい。代わりに、ファネル1100は、既存のデータセットがバインディングされ得るパラメータ化された入力のセットを含み得る。例として、以下の考察は、特定のタイプのデータセットを用いて、そのデータセットがファネル1100によってどのように見られ、操作され得るかを示すことができる。この例示的なデータセットは、販売クラウドアプリケーションからインポートまたはアクセスされるデータテーブルを含み得る。このデータテーブルは、データテーブルの各行に販売機会を含むことができる。データテーブル内の異なる列は、販売機会のすべての属性を含むことができる。これらの属性は、個人間の対話、スコア、進行インジケータ、および/または販売機会を進めて販売完了する任意の他の特徴を含み得る。ファネル1100の視覚化コンポーネントが仮想ダッシュボードアプリケーションなどのアプリケーションにインポートされると、アプリケーション設計者および/またはユーザは、販売機会のテーブルを、ファネル1100によって表現されるデータセットとして選択することができる。次いで、データテーブルからのデータポイントを用いてファネル1100を表す3Dオブジェクトを構築して、ファネル1100の視覚的態様を制御することができる。これらの視覚的態様は、以下で詳細に説明されるが、要するに、データテーブルの各行は、ファネル1100の周りを回転するファネル1100内の球体に対応し得る。各球体の回転速度、角度、軌道、色、サイズ、および/または他の特性は、対応するデータ行の列によって定義され得る。
【0069】
ファネル1100のための基礎となるデータセットのための販売機会データの使用は、例としてのみ用いられ、限定することを意図しないことが理解されるであろう。上記で強調されるように、ファネル1100の視覚化コンポーネントの設計は、基礎となるデータセットに依存しない。代わりに、任意のデータセットをファネル1100に結びつけて、データポイントを表す球体をファネル1100にポピュレートしてもよい。販売機会情報は、データポイントの属性がどのようにファネル1100を用いてインタラクティブに視覚化され得るかを示すデータセットの一例にすぎない。他のデータセットは、金融データ、科学データ、試験または実験データ、調査データ、および/または任意の他の種類のデータソースを含み得る。
【0070】
第1に、ファネル1100上の距離1106は、データポイントの各々についての意味を伝えることができる。ファネル1100の原点からの距離1106は、ファネル1100内の球体に対応する各行の列の値によって決定され得る。例えば、個々のデータポイントごとに、距離1106は、開始値から終了値までのデータポイントの相対的進行を示すことができる。例えば、販売機会を表すデータポイントについては、データポイントがファネル1100の原点から遠くなるほど、販売機会が成功裡な完了から遠くなる。したがって、データポイント1107は、進行の初期段階における販売機会を表し、データポイント1108は、成功裡な完了に近づきつつある販売機会を表す。ファネル1100自体の形状も、このタイプの意味を伝えることができる。その物理的対応物を用いると、ファネルは、一般に、新しい材料を、より大きな開口部で受容し、次いで、その材料(例えば、液体)をファネルの周囲において徐々にファネルのより小さい端部に向かって「注ぎ込む(funnel)」。ファネル1100の形状を仮想環境において用いることによって、ユーザは、データポイントが、より大きい外側領域から、より小さいファネルの内部の、より小さい領域に向かって進行することを直観的に理解することができる。したがって、ファネル1100は、データポイントの大きなグループ内の個々のデータポイントの進行を示すのに非常に有用である。ファネル1100が仮想環境内に構築されると、各球体は、ファネル内において、データセットからのこの値に基づく位置または距離1106に配置され得る。
【0071】
データポイントの集まり内の単一のデータポイントの進行を示すことに加えて、ファネル1100はまた、データポイントの進行における全体的な傾向を表示するのにも非常に有用である。
図11の図解では、ファネル視覚化における小さな球体によって表されるデータセット内に数千のデータポイントが存在する。単一のデータポイントに焦点を合わせる能力とともに、この視覚化は、データセットにおける傾向を示すデータのクラスタリングまたは自然なグループ化の例示をユーザに提供する。例えば、原点(例えば段階5)から大きな距離にあるファネル1100の開始段階(例えば段階1)におけるデータポイントのクラスタは、開始段階における多数の販売機会を表し得、一方、ファネル1100の原点付近(例えば段階5)の少数のデータポイントは、比較的少数の販売機会が完了まで引き継がれていることを示している。ファネル1100はまた、データセット中のデータポイントの総数を評価する方法を迅速に提供してもよい。例えば、まばらにポピュレートされたファネルは、非常にわずかな販売機会が利用可能であることを示す。対照的に、各レベルにおける密にポピュレートされたファネルは、異なる進行状態にわたって等しく分布する多くの機会を示す。
【0072】
ファネル1100において視覚的に明白なデータの自然なグループ化またはクラスタリングは、ファネル自体1100のレンダリングにおいて表示されるべきデータの閾値、筋付け、またはグループ化を作成することによって増大させることができる。例えば、ファネル1100は、第1の段階1101、第2の段階1102、第3の段階1103、第4の段階1104、および第5の段階1105を含むことができる。段階間の分割は、ユーザ定義の閾値によって確立することができ、最終結果に向かうデータポイントの進行における段階を表すことができる。例えば、第1の段階1101は、識別されているが、まだ評価または働きかけられていない販売機会を表すことができる。第5の段階1105は、販売完了にまで育まれた販売機会を表すことができる。いくつかの実施形態では、段階の各々は、定義された境界、異なる色スキーム、および/または1つの段階におけるデータポイントを別の段階におけるデータポイントから視覚的に区別する他の手段を用いて、
図11に示されるように視覚的に描写され得る。いくつかの実施形態では、これは、ファネル自体であるように見える表現を含み得るが、他の実施形態は、ファネルをポピュレートするデータポイントによって単にファネル形状を形成してもよい。
【0073】
異なる段階1101、1102、1103、1104、1105は、ファネル1100の長さに沿って規則的に間隔をあけて配置することができる。段階1101、1102、1103、1104、1105のそれぞれの相対的な幅は、ファネル1100によって画定される静的な間隔に基づいて決定され得る。相対幅はまた、各段階内のデータポイントの数によって決定されてもよい。例えば、より大きなデータポイントの集団が第1の段階1101内に存在するとき、第1の段階1101の幅は、より大きくてもよい。さまざまな段階の色は、それらの段階がファネル1100のさまざまな領域に網掛けする一方で、その中で循環するデータポイントを依然として容易に見ることができるよう、透明であってもよい。上述したように、ユーザは、ファネル1100内で回転する個々のデータポイントを選択することによって、ファネルと対話することができる。異なる段階は、仮想環境においてソリッドサーフェスとしてモデリングされる必要はなく、代わりに、ユーザは、各段階を循環するデータポイントと対話するために、各段階に「手を入れて伸ば」してもよい。
【0074】
幾つかの実施形態は、動きのない静止した態様でデータポイントをファネル1100内に提示してもよい。代替的または追加的に、いくつかの実施形態は、1つまたは複数の属性に基づいてファネル1100内のデータポイントの動きをアニメーション化することもできる。例えば、
図11のデータポイントは、特定のデータポイントを巻き込むアクションの頻度に基づいて、ファネル1100の中心軸の周りを回転させるようにアニメーション化することができる。販売データを表すデータポイントの例において、個々のデータポイントがファネル1100の中心軸の周りを回転する速度は、そのデータポイントに対して行われる販売行為(クライアント連絡、電子メール、直接マーケティングなど)の数または割合によって決定することができる。これにより、ユーザは、ファネル1100の原点に対する相対的な距離を説明するよう働きかけられていないデータポイントを視覚的に識別することができる。移動していないかまたはゆっくりと移動しているデータポイントは、進行していない販売機会を示す。対照的に、第1の段階1101にある機会は、それがファネル1100の周りを高速で循環する場合、迅速に進行していてもよい。これはまた、データポイントがファネル1100の原点に向かって進行するにつれて、データポイントの自然かつ現実的な視覚化を提供する。現実世界のファネルと同様に、データポイントは、ファネル1100の中心軸の周りを回転することによって進行し、ファネル1100の原点に向かって徐々に進行し、原点に到達するまで速度を増加させる。これはまた、データがどのように効率的にかつ均一に進行しているかについての一般的な概観を提供する。すべてのデータポイントをアニメーション化することによって、どのデータポイントが他のものよりも注目されているかまたはいないか、どのデータポイントが他のものよりも遅いかまたは速いかが、この視覚化オブジェクトで容易に伝えることができる他の比較的な視覚情報とともに、視覚的に明白になる。
【0075】
図11は、いくつかの実施形態による、ファネル1100のための制御パネル1120、ならびにどのようにサイズ、色、および段階詳細をファネル1100のアニメーションに追加することができるかを示す。この実現形態では、制御パネル1120は、ユーザによる制御のために、仮想3D環境における視覚化オブジェクトのレンダリングに呼び出される。タブレットまたはスマートフォン画面などの2Dレンダリングでは、制御パネル1120は、仮想環境からのファネル1100の任意のレンダリングされた画像の上に合成され得る。同時に、VR/AR機器を備えたユーザの場合は、制御パネル1120は、仮想環境において3次元オブジェクトとしてレンダリングすることができ、これらのユーザは、VRハンドコントロールを用いて制御パネル1120を表すオブジェクトと直接対話することができる。例えば、VRユーザは、制御パネル1120を自身の前に表示させ、VRセンサ/デバイスを装備した自身の仮想の手を用いて、制御パネル1120上で制御を「プッシュ」することができる。
【0076】
制御パネル1120は、ファネル1100によって表示される視覚的情報のすべてを制御することができる。例えば、ユーザは、上述の段階着色、データポイントの各々についての半径、角度、およびスケール、ならびに特定のデータポイントを強調すべきか否かを制御することができる。制御パネル1120はまた、滑らかなものまたは階段状のものなど、ファネルの異なる外観から選択を行うために用いられ得る。最終段階間の遷移をオンまたはオフにすることができ、ファネルの中心軸の周りのデータポイントのアニメーション化された回転を制御することができる。段階に対するラベルおよびデータポイントの各々に対する情報などの詳細も、制御パネル1120においてトグルすることができる。
【0077】
仮想環境におけるファネル1100の特定の外観を制御することに加えて、制御パネル1120は、利用可能なストーリー1122を列挙するストーリーセクションを含む。上述したように、ストーリーは、仮想環境においてさまざまな視覚化コンポーネント、データセット、および/またはビューを用いてストーリーをデータとともに伝えることができる命令またはアクションのシーケンスである。各視覚化コンポーネントについて、制御パネル1120のストーリーセクションは、ファネル1100を用いるように現在構成されている利用可能なストーリー1122を表示してもよい。ユーザは、制御パネル1122内のストーリー1122のいずれかを選択し、そのストーリーを実行することができる。以下でより詳細に説明されるように、ストーリーは、アニメーションをトリガし、ユーザ入力を待ち、新たな視覚化コンポーネントをインスタンス化し、ユーザに示される仮想カメラのビューを移動させ、および/またはデータのストーリーを通して進行する他の視覚的操作であり得る。
【0078】
図12は、いくつかの実施形態による、他の視覚化コンポーネントからデータポイントを受信することができるビーカー視覚化コンポーネント1200を示す。ストーリーを実行する際に実行され得る一般的な動作の1つは、データセットの表示を1つの視覚化コンポーネントから別の視覚化コンポーネントへ遷移させることである。ビーカー視覚化コンポーネント1200は、データセット中の個々のデータポイントを表す別個のオブジェクトのためのコンテナとして機能することができる。これらをファネルオブジェクトについて上述したような個々のデータポイントとして表示する代わりに、ビーカーは、所定の範囲内のデータポイントの集まりを表す体積3Dオブジェクトを生成してもよい。
【0079】
この例では、ビーカー視覚化コンポーネント1200は、個々のビーカーの複数の3D表現を含むことができる。この例では、3つのビーカー1210、1212、1214が、仮想環境において行またはシーケンスで表示される。上述のファネルオブジェクトとは対照的に、ビーカー1210、1212、1214は、所定の値の範囲内にあるデータオブジェクトの集まりを表す。ファネルにおいては、個々のデータポイントのすべてが、ファネルの周りを回転する個々の球体によって表された。球体はファネル内の位置に基づいてセクションに配置された。これらのセクション、または個々の球体ごとのファネルの原点からの距離は、そのデータポイントについての値(例えば、データベーステーブルのデータ行における列)によって決定された。したがって、ファネル可視化オブジェクトにバインディングされたデータセット内の各個々のデータポイントは、仮想環境内においてファネルの3D表現の一部として個々の3Dオブジェクトによって表される。
【0080】
対照的に、ビーカー視覚化コンポーネント1200は、それがバインディングされるデータポイントごとに個々の3Dオブジェクトを含む必要はない。代わりに、ビーカー視覚化コンポーネント1200は、3D体積のサイズが3D体積によって表されるデータポイントの数に依存する3D体積を表示してもよい。ビーカー視覚化コンポーネント1200は、データのカテゴリをさらに区別するために、複数の個々のビーカー1210、1212、1214に分割されてもよい。この例では、ビーカー1210、1212、1214の各々は、データセットにおいて表される非重複間隔を表す。販売データの例を続けると、データセットにおける販売機会の各々は、3つの異なる四半期の1つ内に収まるものとして分類され得る。前述のファネルでは、これら3つの四半期は区別されなかったことに留意されたい。代わりに、各四半期からデータポイントのすべてをファネルに挿入して、ファネルオブジェクトの周囲を回転した。したがって、ビーカー視覚化コンポーネント1200は、異なる視点からデータを表示し、ファネル視覚化コンポーネントにおいて直ちに視覚的に利用可能ではなかったデータの異なる属性を強調表示することができる。これは、どのように、異なる視覚化コンポーネントを用いて、仮想環境においてユーザに有用であり得る異なる方法でデータを表示するかの例である。
【0081】
個々のビーカー1210、1212、1214の各々は、個々のデータポイントを「充填」されてもよい。各データポイントを球体で表わすかわりに、データポイントの集まりは、ビーカーを下から上に充填する液体状の3D体積によって表されてもよい。ビーカー内の体積のサイズは、体積に含まれるデータポイントの数によって決定され得る。例えば、ビーカー1212内の「液体」の体積は、ビーカー1210内の液体の体積より大きい。この結果、これら2つの体積の比較により、2014年の第4四半期におけるデータポイントの数は、2014年の第3四半期におけるデータポイントの数のおよそ2倍とすることができる。
【0082】
個々のビーカー1210、1212、1214の各々はまた、ファネルコンポーネントに関して上述したように、その中に表されるデータポイントをさまざまな段階に分割してもよい。例えば、これらの段階は、販売機会が販売完了または販売交渉に向かって進行する段階に関連してもよい。これらの段階は、上述のファネルオブジェクト内において色付きのリングによって表され、個々のデータポイントを表す球体がファネルの周りで回転されると、それらは、ファネルの原点に向かって徐々に移動して、さまざまな段階を通って進行する。個々のデータポイントをさまざまな位置に配置することによって段階を表す代わりに、ビーカー視覚化コンポーネント1200は、段階を示すために異なる視覚的特性を有する液体状体積の垂直層を含むことができる。例えば、
図11のファネルからの第1の段階1101は、ビーカー1214内の底部層1201によって表される。同様に、段階2~5は、ビーカー1214内において層1202,1203,1204,および1205によってそれぞれ表される。これは、ビーカー可視化オブジェクト1200が、異なるビーカーを用いて異なるデータ分割を示すことができる一方で、依然として、ファネルオブジェクトにおいて表された同じデータ分割(例えば段階)を示すことができる方法を示す。
【0083】
図13は、いくつかの実施形態による、視覚化コンポーネント間を移動するために、個々のデータポイントを表す3Dオブジェクトのアニメーションが生成される方法を示す図である。上述したように、アニメーションは、このデータセットのストーリーの一部であってもよい。ストーリー内の第1のアクションは、上記のように、データセットをファネル視覚化コンポーネントにバインディングすることであり得る。ストーリー内の第2の動作は、仮想環境においてファネルオブジェクト1100を生成し、データセット内の個々のデータポイントの各々を表すためにファネルの周りを回転する複数の3Dオブジェクト(例えば、球体)を生成することであり得る。この時点で、ストーリーは、ユーザ入力を待つ命令を含むことができる。これにより、ユーザは、ファネル1100内に表される個々のデータポイントを視覚的に検査および/または操作することができる。例えば、ユーザは、ファンネル1100まで歩いて行き、球体によって表される個々のデータポイントを仮想的に「掴み」、それらの個々のデータポイントに関連付けられるデータ値を検査し、値を変更し、それらの変更された値を基礎となるデータソースに書き戻すなどすることができる。
【0084】
ユーザがファネル1100を用いてデータを検査し終わった後、ユーザは、ストーリーを次のアクションに遷移させる入力を与えてもよい。この例では、次のアクションは、ビーカー視覚化コンポーネント1200などの第2の視覚化コンポーネントを生成またはインスタンス化することであり得る。いくつかのストーリーは、ビーカーコンポーネント1200を、仮想環境においてストーリーの開始時に生成および/またはインスタンス化させ得ることに留意されたい。それは、ファネル1100内のデータセットがビーカー1200に移されるまで、いずれのデータセットにもバインディングされないままであり得る。ユーザは、遷移が行われるまで、空のビーカー1200を見てもよい。
【0085】
アニメーションは、第1の視覚化オブジェクト内のデータポイントを表す個々の3Dオブジェクトの各々を、仮想環境内で第1の視覚化オブジェクトから第2の視覚化オブジェクトへ移動させることを含み得る。個々のデータポイントは、ファンネル1100内において個々の3Dオブジェクトによって表されるので、それらのオブジェクトは、単に、ファンネル1100内のそれらの回転位置から仮想環境を通ってビーカー1200内の対応する位置に移動することができる。例えば、そのような視覚的区別はファネル内で行われないが、3Dオブジェクトは、時間間隔(例えば、Q3 2014)に基づいて、仮想環境を通って正しいビーカー内に移動してもよい。
【0086】
アニメーション経路1302は、個々の3Dオブジェクトごとに決定され得る。このアニメーション経路は、仮想環境内において物理エンジンによって生成されてもよい。例えば、仮想的な力をビーカーにおいて適用して、3Dオブジェクトを引き付け、3Dオブジェクトをファネル1100の周りで回転させ続ける任意の仮想的な力に打ち勝ってもよい。これらの力は、物理エンジンにおいて適用されて、自然なアニメーション経路1302がビーカー1200の頂部内へと個々の3Dオブジェクトによって辿られるようにすることができる。例えば、より大きな球体は、仮想環境において力が克服され適用されるにつれて、それらの仮想「質量」のために、よりゆっくりと移動し得る。したがって、小さなデータポイントは、大きなデータポイントの前に第2の視覚化コンポーネントに到達することができる。
【0087】
上述したように、ビーカー1200は、個々のデータポイントを表す3Dオブジェクトのための場所を必ずしも含まない。代わりに、それらは、データポイントの集まりを表す液体状の体積を含む。この例では、個々の3Dオブジェクトがビーカー1200に到達すると、それらは個々のオブジェクトから変換し、共に結合してビーカー1200内に液体状体積を形成することができる。例えば、物理エンジンは、データポイントに対するこれらの球体の各々を、それらがビーカー1200の内部に到達したときに水滴としてモデリングすることができる。物理エンジンにおける標準的な機能を用いて、液体の液滴は、ビーカー1200に到達する際に3D体積を形成するように結合することができる。これは、2つの視覚化コンポーネント間の遷移をシームレスかつ連続にする流体アニメーションを提供する。
【0088】
第2の視覚化コンポーネントに転送される3Dオブジェクトとともに、基礎となるデータセットも第2の視覚化コンポーネントにバインディングすることができる。この例では、最初にファネルオブジェクト1100にバインディングされたデータセットは、今度はビーカー1200のパラメータ化された入力にバインディングされ得る。したがって、ビーカー1200の外観および感触は、基礎となるデータセット中の個々のデータポイントの集まりのデータ属性値によって決定され得る。例えば、個々のデータポイントからデータ値を集約して、ビーカー1200内の液体体積の各々について、色、透明性、テクスチャ、反射性、および/または他の視覚的特性を生成してもよい。このバインディングは、ストーリーによって指示されるアクションの1つの一部として自動的に行われてもよい。いくつかの実施形態では、データセットは、ファネル1100およびビーカー1200に同時にバインディングされたままであり得ることに留意されたい。これは、1つのユーザのグループがビーカー1200に移動する一方で、別のユーザのグループがファネル1100を見続けることを可能にし得る。他の実施形態は、データがビーカー1200にバインディングされるときにデータをファネル1100からバインディング解除してもよい。これは、ストーリーが進行するにつれて、ユーザが1つの視覚化コンポーネントから次の視覚化コンポーネントに注意を移すのを助けることができる。
【0089】
図14は、いくつかの実施形態による、プロファイルレイアウトを含む第3の視覚化コンポーネントを示す図である。プロファイルレイアウトコンポーネント1400は、複数の個々のユーザプロファイルを含むことができる。例えば、ユーザプロファイル(例えば、ビジネスカード)に類似する個々の3Dオブジェクトが、仮想環境においてレンダリングされ、表示されてもよい。これらの3Dオブジェクトの各々は、サーフェスまたはソリッド/ワイヤフレームポリゴンとしてレンダリングされ得、レンダリングされたオブジェクトとして仮想環境内に存在し得る。レンダリングされたオブジェクトとして、ユーザは、仮想環境においてプロファイルレイアウトコンポーネント1400の周りを歩行することができ、それは、上述のファンネルおよび/またはビーカーなどの他の仮想コンポーネントに隣接して表示することができる。
【0090】
プロファイルレイアウトコンポーネント1400は、仮想環境に表示される前に、データに対して計算、集約、変換、および/または他の操作を実行することができる視覚化コンポーネントの一例である。データセットは、他のコンポーネントと同様にプロファイルレイアウトコンポーネント1400にバインディングすることができる。例えば、ファネルおよび/またはビーカーに以前にバインディングされた同じ販売データが、プロファイルレイアウトコンポーネント1400にもバインディングされてもよい。しかしながら、販売データは個々の販売機会を含んだことを想起されたい。販売データ内のデータポイントは、プロファイルレイアウトコンポーネント1400によって表示される個々の販売員を必ずしも含まなかった。個々の販売員のための情報を表示するために、プロファイルレイアウトコンポーネントは、最初に、販売データに対していくつかの操作を実行して、データを表示のために適切にフォーマットおよび/または集約することができる。
【0091】
この例では、販売データは、データポイントの各々について属性値のうちの1つ(例えば、データテーブルの各行における販売員列)に基づいてソートされ得る。プロファイルレイアウトコンポーネント1400のパラメータ化された入力は、販売員データソースのための入力および/または販売機会データソースのための入力を含むことができる。入力データセットが販売機会パラメータ入力にバインディングされる場合、個々のデータポイントを分析し、集約して、販売員データをディスプレイに形成することができる。他方、パラメータ化された入力が販売員データベースにバインディングされる場合、データは、データベースから抽出され、仮想環境においてさらに他の変換なしに表示されてもよい。
【0092】
販売機会データが受信され、各データポイントに対する個々の販売員が識別されると、プロファイルレイアウトコンポーネント1400は、各個々の販売員に対するすべての販売機会を集約することができる。これらの集約は、仮想環境において表示するために構成される新たなデータポイントをもたらし得る。例えば、プロファイルレイアウトコンポーネント1400の一部として表示される3Dプロファイルオブジェクトの各々は、すべての販売機会にわたる特定の販売員に対する1つの集約から生じ得る。プロファイル1402は、販売員の名前および写真を他の識別情報とともに表示することができる。プロファイル1402はまた、終了された取引など、ある閾値レベルまで進行したいくつかの販売機会を表示してもよい。
【0093】
プロファイルレイアウトコンポーネント1400におけるデータの表示は、これらの新たな集約されたデータポイントに従って編成され得る。プロファイルレイアウト1400のプロファイルは、終了された取引の総数に基づいて編成することができる。例えば、プロファイル1402は、最も多く終了された取引を有し、表示の最上部に位置する。プロファイルは、左から右へ各列を通して降順に表示され得る。さらに、特定の閾値を下回るプロファイルが視覚的表示において強調表示または強調されるように、プロファイルレイアウトコンポーネント1400によって閾値を適用することができる。この例では、100の取引のしきい値が、視覚化コンポーネント1400によって設定され得る。この閾値を下回るプロファイル1404および1406は、これらの特定のプロファイル1404、1406に対するユーザの注意を引くために、境界または他の視覚的区別で強調表示されてもよい。
【0094】
図15は、いくつかの実施形態による、特定のプロファイルに関連する追加情報の表示を示す。
図14の例を続けると、ユーザは、プロファイル1406などの特定のプロファイルを選択することができる。上述したように、ユーザは、仮想環境内において手を伸ばし、回転する球体のうちの1つを掴むことによって、ファンネルから個々のデータポイントまたは販売機会を選択することができる。同様に、プロファイルレイアウトコンポーネント1400においてプロファイル1406を選択することは、プロファイル1406を表す3Dオブジェクトに手を伸ばして触れるかまたは掴むことを含み得る。これにより、追加情報をプロファイルレイアウト1400の隣に表示させることができる。
【0095】
この追加情報は、視覚化コンポーネント1400にバインディングされた元のデータポイントを用いることができる。販売機会データソースから受信された元のデータポイントは、個々の販売員の表示を提供するために変換および集約されるので、この動作は、ユーザがプロファイルの表示を生成するために集約された元のデータポイントを見る方法を提供する。例えば、プロファイル1406を選択すると、販売機会の元のデータセットからのデータポイントのリスト1500が表示されてもよい。データポイントのリスト1500はまた、仮想環境において表示の一部としてレンダリングされるサーフェスまたは薄い3Dオブジェクトを形成することによって生成されてもよい。これらのオブジェクトは、上述のように、仮想環境においてユーザによって選択され、掴まれ、および/またはそうでなければ対話され得る。データポイントのリスト1500内の3Dオブジェクトの各々は、プロファイルを形成するために集約されたデータポイントの各々に関する情報(例えば販売機会)を表示してもよい。これは、金額、場所、販売の詳細等を含む販売機会のすべての詳細を含んでもよい。データポイントのリスト1500は、プロファイルレイアウトコンポーネント1400の一部と見なされ、
図11のファンネル1100に対する制御パネル1120と同様であり得る。
【0096】
図16は、いくつかの実施形態による仮想ダッシュボードを示す。上述したように、仮想ダッシュボードは、ウィジェットとして編成された視覚化コンポーネントの集まりとすることができ、その各々は、さまざまな表示技術を用いて個々のデータセットおよび/または同じデータセットを表示することができる。この仮想ダッシュボードは、ファネル1100、ビーカー1200、プロファイルレイアウト1400、および/または他の視覚化コンポーネントを含むことができる。プロファイルレイアウトはまた、選択されたプロファイルのデータポイントのリスト1500を表示してもよい。仮想ダッシュボードは、ユーザが視覚化コンポーネントのさまざまな3D表現の周りを歩行して、表示されたデータのいずれかをインタラクティブに視認および/または操作することを可能にし得る。例えば、ユーザは、視覚化された情報を議論するために、ダッシュボード領域に仮想会議を編成することができる。いくつかの実施形態では、ユーザが環境にログインするとすぐに、仮想環境の仮想ダッシュボードの前に到着する。これは、企業ウェブサイト上のホームページと同様に動作してもよい。仮想ダッシュボードから、ユーザは、データを閲覧および操作し、ならびに/または異なるアプリケーションを用いる仮想環境の異なる領域に移動することができる。例えば、ユーザは、販売機会データとともに動作する追加の表示および/またはインターフェースを見るために、第2の仮想環境に取られるべきファンネル1100上の制御をアクティブにすることができる。
【0097】
図17は、いくつかの実施形態による、ストーリーが仮想ダッシュボードにおいてオブジェクトのアニメーションをどのように生成するかを示す。この例は、上で
図13に示された例と同様である。この例では、個々の3Dオブジェクトは、ビーカー1200からプロファイルレイアウト1400内の複数のプロファイルに移動する際にアニメーション化され得る。球体をファネル1100からビーカー1200内に移動させるときに個々の3Dオブジェクトをオブジェクトの集約された体積に変換するかわりに、この例では、反対の手順を用いてもよい。具体的には、個々のデータポイントがビーカー1200から移動されるにつれて、液体状の体積は、ファネル1100の周りで回転したものと同様の球体に分割できる。これらの球体は、対応するデータポイントの属性値のうちの1つに比例する体積を有することができる。再び、物理エンジンを用いて、集約された体積から液体の液滴を引き抜いて球体を形成することができる。上述したように、物理エンジンは、ビーカー1200からプロファイルレイアウト1400内の対応するプロファイルまでの移動経路1302を生成してもよい。
【0098】
ビーカー1200からの3Dオブジェクトが移動経路1302に沿って移動するにつれて、それらはプロファイルレイアウト1400における個々のプロファイルに引っ張られ得る。上記のように、プロファイルは、販売員の属性に応じて異なる販売機会を集約してもよい。したがって、アニメーションは、各対応するデータポイントの販売員属性によって個々の3Dオブジェクトをフィルタリングすることができる。体積に変換するか、またはプロファイルレイアウト1400におけるデータポイントの独立した表現を維持するかわりに、3Dオブジェクトは、到着時に、単に、プロファイルレイアウト1400において対応するプロファイルによって吸収されてもよい。いくつかの実施形態は、個々の3Dオブジェクトがアニメーションを通じて到着するにつれてプロファイルレイアウト1400が徐々に体積的に構築されるように、より複雑なアニメーションを生成してもよい。データポイントをファネル1100からビーカー1200に転送するときと同様に、基礎となるデータセットを第3の視覚化コンポーネントにバインディングすることができる。例えば、販売機会データベースは、プロファイルレイアウトコンポーネント1400へのパラメータ化された入力としてバインディングされてもよい。
【0099】
これらの操作の各々は、共有され、異なる視覚化コンポーネントを通して順次転送されるこれらのデータのストーリーを伝えるためのストーリーデータ構造によって規定されてもよい。
図13の例を続けると、データセットはビーカー1200にバインディングされることができる。ユーザは、ビーカー1200を検査し、その中の任意のデータを操作する機会を与えられることができる。次いで、ストーリーは、ビーカー1200とプロファイルレイアウト1400との間の移動経路1302を通じてデータポイントのアニメーションを起動するためにユーザ入力を待つことができる。ストーリーはまた、プロファイルレイアウト1400における異なる販売プロファイルに対する閾値を設定し、最低販売プロファイルに関連するデータポイントのリスト1500を自動的に表示することができる。
【0100】
これらの特定のアクションをストーリーに置くことによって、データがどのように進行したか、および何がその進行を担っているかのストーリーを伝えるデータの提示を生成することができる。例えば、ファネル1100は、さまざまな段階を通して全体的な販売機会が全体としてどのように進行しているかを示すことができる。データがビーカー1200にアニメーション化されると、これらのビーカーは、この進行が時間とともにどのように起こったかを示すことができ、場合によっては、現在の四半期の現在の販売数が以前の販売数と比較していかに不足しているかを示す。次に、プロファイルレイアウト1400にデータがアニメーション化されると、特定のプロファイルが、遅れを取っているかまたは期待に応えられない販売員を低販売数の原因として、強調表示されてもよい。ストーリーを生成するとき、ストーリー設計者は、仮想環境において最も有効な視覚的方法で意図されたストーリーを伝える閾値、視覚化、およびデータセットを追加することができる。
【0101】
ファネル1100、ビーカー1200、および/またはプロファイルレイアウト1400などの特定の視覚化コンポーネントは、例としてのみ提供され、限定的ではないことを強調すべきである。他の実施形態は、異なるレイアウト、異なる仮想化コンポーネント、異なるアニメーションなどを用いることができる。他の実施形態は、視覚化コンポーネントにバインディングされる任意の種類の基礎となるデータソースを用いてもよい。販売データの例は、例示にすぎず、限定することを意図するものではない。
【0102】
図18は、いくつかの実施形態によるストーリー1802のデータ構造を示す。ストーリーは、いくつかの個々の視覚化コンポーネント1804、1810、1816を含み得る。これらは、ストーリーの一部として仮想環境においてインスタンス化される個々のコンポーネントを示すことができる。これらのコンポーネント1804、1810、1816の各々は、これらのコンポーネントがいつ、どのように可視にされるか、それらがいつロードされるか、それらがいつインスタンス化されるか、およびそれらがいつ基礎となるデータセットにバインディングされるかを決定する設定を含み得る。この例では、ファネル視覚化コンポーネント1804は、最初に販売データセット1806にバインディングされ得る。対照的に、プレースホルダデータセット1812、1818は、ビーカーコンポーネント1810および/またはプロファイルレイアウトコンポーネント1816にバインディングされることができる。これは、ストーリーが仮想環境において実行されるにつれて、データセットが実行時に動的にバインディングされ得ることを示し得る。
【0103】
データが1つの視覚化コンポーネントから次の視覚化コンポーネントへどのように移動されるかを定める視覚的遷移も、ストーリー内に挿入されてもよい。例えば、アニメーション化コンポーネント1808は、データセット1806とデータセット1812との間にリンク1820を生成し得る。具体的には、販売データセットは、ファネルコンポーネント1804からビーカーコンポーネント1810へ転送されてもよい。これは、ファネルコンポーネント1804を販売データセットから非バインディング状態になるようにさせ、ビーカーコンポーネント1810をアニメーション化コンポーネント1808における設定に従って販売データセットにバインディングさせ得る。同様のアニメーション化コンポーネント1814は、データセット1812とデータセット1816との間にリンク1822を含み、アニメーションが起こるときに販売データセットをバインディング/バインディング解除してもよい。
【0104】
図18に示されるストーリー1802は、実際に用いられ得るストーリーの簡略化されたバージョンである。他のストーリーは、非常に複雑であり得、異なる視覚化コンポーネントの他のマルチメディア効果および表示を含み得る。例えば、幾つかの実施形態は、仮想環境における仮想スクリーン上のビデオプレゼンテーション、データがアニメーション化されるかまたは対話されるときにトリガされる音声および音声記録、仮想光源を異なる視覚化コンポーネントに合焦させる照明効果、環境内において仮想カメラに関連付けられたビューに対する自動変更、仮想環境内におけるユーザの位置の自動変更、ならびに/または仮想環境に適用され得る任意の他の変化もしくは効果を用いることができる。
【0105】
図19は、いくつかの実施形態による、1つまたは複数の視覚化コンポーネント間にアニメーションを提供するための方法のフローチャートを示す。本方法は、第1の視覚化コンポーネントにバインディングされた1つまたは複数のデータセットを受信すること(1902)を含み得る。1つまたは複数のデータセットは、企業データまたは任意の他のデータソースからのデータを含み得る。これらのデータソースは、企業アプリケーション、ウェブサービス、データベース、スプレッドシート、ウェブサイト、データストア、XMLファイル、オンラインレポジトリ、バックアップシステムなどを含み得る。1つまたは複数のデータセットは、上述したようにパラメータ化された入力を介して視覚化コンポーネントにバインディングされることができる。視覚化コンポーネントは、具体的に開示されていない同様の態様で動作する他の視覚化コンポーネントに加えて、本開示で説明される視覚化コンポーネントのいずれかであってもよい。
【0106】
本方法はまた、1つまたは複数のデータセットに基づいて、仮想環境において第1の視覚化コンポーネントの3D表現を生成することを含み得る(1904)。3D表現は、1つまたは複数のデータセット内の個々のデータポイントを表す複数の個々の3Dオブジェクトを含み得る。これらは、個々の3Dオブジェクトとして表示され得るか、またはデータセット中の複数のデータポイントを表す集約3Dオブジェクトとして表示され得る。3D表現はまた、視覚化コンポーネントの予め定義された形状または構造を生成する任意の3D構築物または他の構造またはレンダリングされたコンポーネントを含み得る。これは、ファネルのテーパされたリング、ビーカーコンポーネントの空のビーカー、および/またはプロファイルレイアウト用のプロファイルカードを含み得る。上述したように、3Dオブジェクトの各々は、対応するデータポイントにおける実際の値(例えばデータ行における列)によって決定される視覚的特徴を有し得る。これは、仮想環境における色、速度、軌道、移動経路、サイズ、周囲、透明度、テクスチャ、反射性、体積、および/または任意の他の特性を含み得る。同様に、視覚化コンポーネント構造を全体として表すために用いられる任意の3D構築物またはサーフェスも、視覚化コンポーネントにおけるデータポイントおよび/または設定によって決定される視覚的特徴を有し得る。例えば、データを特徴付ける異なる段階は、表示されるべきビーカーの色付きのリングおよび/または部分を生成し得る。
【0107】
本方法は、1つまたは複数のデータセットを仮想環境内において第2の視覚化コンポーネントに遷移させるためのコマンドを受信すること(1906)をさらに含み得る。第1の視覚化コンポーネントおよび第2の視覚化コンポーネントの両方は、仮想環境においてカルーセルまたは仮想ダッシュボードの一部としてインスタンス化され得る。1つまたは複数のデータセットを遷移させるためのコマンドは、ユーザから受信されてもよく、タイマから受信されてもよく、別のプロセスから受信されてもよく、仮想環境内でユーザによって実行されたアクションによって受信されてもよく、および/または任意の他のトリガイベントであってもよい。例えば、ユーザが第1の視覚化コンポーネントから第2の視覚化コンポーネントの閾値距離以内へと歩く場合、これは、第1の視覚化コンポーネントから第2の視覚化コンポーネントにデータポイントを遷移するためのコマンドとして適格であってもよい。別の例では、ユーザが、彼らのビューが第1のコンポーネントから第2のコンポーネントに移動するように、彼らの仮想カメラを回転させる(例えば、現実世界において彼らの頭部を回転させる)場合、これも、データポイントを遷移させるためのコマンドとして適格であり得る。実施形態に応じて、1つまたは複数のデータセットは、このコマンドに関連して第1の視覚化コンポーネントからバインディング解除状態となり得る。
【0108】
本方法は、仮想環境において、第1の視覚化コンポーネントの3D表現から第2の視覚化コンポーネントの3D表現に移動する1つまたは複数のデータセット内の個々のデータポイントを表す3Dオブジェクトのアニメーションを生成することをさらに含んでもよい(1908)。アニメーションは、物理エンジンを用いて、個々の3Dオブジェクトが第1の視覚化コンポーネントから第2の視覚化コンポーネントに移動する際に、個々の3Dオブジェクトの各々のための移動経路を生成することを含み得る。いくつかの実施形態では、3Dオブジェクトが第2の視覚化コンポーネントに入ると、それらは、複数のデータポイントを表す集約された体積オブジェクトなどの複合オブジェクトに視覚的に変換することができる。反対のプロセスがまた、複数のデータポイントを表す3Dオブジェクトからの移動の際に呼び出されてもよく、これらのオブジェクトは、視覚化コンポーネント間を移動する際に個々の3Dオブジェクト(例えば個々の球体)に分解されてもよい。アニメーション、遷移するコマンド、および視覚化コンポーネントの3D表現の生成は、視覚化コンポーネントのインスタンス化、データセットのバインディング/バインディング解除、アニメーションの生成など、これらの操作の各々を実行することを含むストーリーデータ構造によって支配され得る。
【0109】
本方法はまた、1つまたは複数のデータセットを第2の視覚化コンポーネントにバインディングすることを含み得る(1910)。このバインディングは、上述のストーリーデータ構造によって指示されるように行われてもよい。このバインディングは、第2の視覚化コンポーネントのパラメータ化された入力を介して行われてもよい。いくつかの実施形態では、このバインディングは、追加の計算、変換、および/または操作を、第2の視覚化コンポーネントによって、1つまたは複数のデータセットに対して実行させ得る。例えば、第2の視覚化コンポーネントは、個々のデータポイントの属性値を一緒に集約して、第2の視覚化コンポーネントにおいて3Dオブジェクトによって表され得る新たなデータポイントを形成することができる。
【0110】
図17に示される特定のステップは、さまざまな実施形態に従って1つまたは複数の視覚化コンポーネント間にアニメーションを提供する特定の方法を提供することを理解されたい。代替の実施形態に従って、他の一連のステップも実行することができる。例えば、本発明の代替実施形態は、上記で概説したステップを異なる順序で実行することができる。さらに、
図17に示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスで実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて追加のステップを追加または削除することができる。当業者は、多くの変形形態、修正形態、および代替形態を認識するであろう。
【0111】
本明細書で説明される方法の各々は、コンピュータシステムによって実現され得る。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/またはユーザが関与する入力/出力を与えられてもよい。例えば、ユーザは、方法の各ステップに対する入力を提供してもよく、これらの入力の各々は、そのような入力を要求する特定の出力に応答してもよく、その出力は、コンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受信されてもよい。さらに、入力は、ユーザから、別のコンピュータシステムからデータストリームとして受信され、メモリ位置から検索して取得され、ネットワークを介して検索して取得され、ウェブサービスから要求されるなどすることができる。同様に、出力は、ユーザに、データストリームとして別のコンピュータシステムに提供され、メモリ位置に記憶され、ネットワークを介して送信され、ウェブサービスに提供されなどすることができる。要するに、本明細書に記載される方法の各ステップは、コンピュータシステムによって実施されてもよく、ユーザが関与してもしなくてもよい、コンピュータシステムへの、およびコンピュータシステムからの、任意の数の入力、出力、および/または要求を含んでもよい。ユーザが関与しないこれらのステップは、人間の介入なしにコンピュータシステムによって自動的に実行されるといえる。したがって、本開示に照らして、本明細書で説明される各方法の各ステップは、ユーザへの入力およびユーザからの出力を含むように変更され得るか、または任意の決定がプロセッサによって行われる場合、人間の介入なしにコンピュータシステムによって自動的に行われ得ることが理解されるであろう。さらに、本明細書で説明する方法の各々のいくつかの実施形態は、有形のソフトウェア製品を形成するために有形の非一時的記憶媒体に記憶される命令のセットとして実現され得る。
【0112】
図20は、実施形態のうちの1つを実現するための分散型システム2000を示す簡略図である。例示された実施形態においては、分散型システム2000は、1つ以上のネットワーク2010を介して、ウェブブラウザ、プロプライエタリクライアント(たとえばオラクルフォーム)などのクライアントアプリケーションを実行して動作させるように構成される1つ以上のクライアントコンピューティングデバイス2002、2004、2006および2008を含む。サーバ2012は、ネットワーク2010を介してリモートクライアントコンピューティングデバイス2002、2004、2006および2008と通信可能に結合されてもよい。
【0113】
さまざまな実施形態においては、サーバ2012は、システムの構成要素のうち1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態においては、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)モデルのもとで、クライアントコンピューティングデバイス2002,2004,2006および/または2008のユーザに供給されてもよい。そして、クライアントコンピューティングデバイス2002,2004,2006および/または2008を動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、サーバ2012と相互作用して、これらの構成要素によって提供されるサービスを利用し得る。
【0114】
図に示されている構成では、システム2000のソフトウェアコンポーネント2018,2020および2022は、サーバ2012上に実装されるように示されている。また、他の実施形態においては、システム2000の構成要素のうちの1つ以上および/またはこれらの構成要素によって提供されるサービスは、クライアントコンピューティングデバイス2002,2004,2006および/または2008のうちの1つ以上によって実現されてもよい。その場合、クライアントコンピューティングデバイスを動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、これらの構成要素によって提供されるサービスを使用し得る。これらの構成要素は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。分散型システム2000とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。したがって、図に示されている実施形態は、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されたものではない。
【0115】
クライアントコンピューティングデバイス2002,2004,2006および/または2008は、手持ち式携帯機器(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、計算タブレット、パーソナルデジタルアシスタント(personal digital assistant:PDA))またはウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)であってもよく、当該装置は、マイクロソフトウィンドウズ(登録商標)・モバイル(登録商標)などのソフトウェアを実行し、および/または、iOS、ウィンドウズ・フォン、アンドロイド(登録商標)、ブラックベリー10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、eメール、ショート・メッセージ・サービス(short message service:SMS)、ブラックベリー(登録商標)、または使用可能な他の通信プロトコルである。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータであってもよく、当該汎用パーソナルコンピュータは、一例として、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、ワークステーションコンピュータであってもよく、当該ワークステーションコンピュータは、たとえばGoogle Chrome OSなどのさまざまなGNU/リナックスオペレーティングシステムを含むがこれらに限定されるものではないさまざまな市販のUNIX(登録商標)またはUNIXライクオペレーティングシステムのうちのいずれかを実行する。代替的には、または付加的には、クライアントコンピューティングデバイス2002,2004,2006および2008は、シン・クライアントコンピュータ、インターネットにより可能なゲームシステム(たとえばキネクト(登録商標)ジェスチャ入力装置を備えるかまたは備えないマイクロソフトXボックスゲーム機)、および/または、ネットワーク2010を介して通信が可能なパーソナルメッセージング装置などのその他の電子装置であってもよい。
【0116】
例示的な分散型システム2000は、4個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有する装置などの他の装置が、サーバ2012と相互作用してもよい。
【0117】
分散型システム2000におけるネットワーク2010は、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよく、当該プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトークなどを含むが、これらに限定されるものではない。単に一例として、ネットワーク2010は、イーサネット(登録商標)、トークンリングなどに基づくものなどのローカルエリアネットワーク(LAN)であってもよい。ネットワーク2010は、広域ネットワークおよびインターネットであってもよい。ネットワーク2010は、仮想ネットワークを含んでいてもよく、当該仮想ネットワークは、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば米国電気電子学会(Institute of Electrical and Electronics:IEEE)802.11の一連のプロトコル、ブルートゥース(登録商標)および/またはその他の無線プロトコルのうちのいずれかのもとで動作するネットワーク)、および/またはこれらの任意の組合せ、および/または他のネットワークを含むが、これらに限定されるものではない。
【0118】
サーバ2012は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組合せで構成され得る。さまざまな実施形態においては、サーバ2012は、上記の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ2012は、本開示の実施形態に係る上記の処理を実行するためのサーバに対応してもよい。
【0119】
サーバ2012は、上記のもののうちのいずれか、および、任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ2012は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェース)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的サーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、オラクル社(Oracle)、マイクロソフト社(Microsoft)、サイベース社(Sybase)、IBM社(International Business Machines)などから市販されているものを含むが、これらに限定されるものではない。
【0120】
いくつかの実現例では、サーバ2012は、クライアントコンピューティングデバイス2002,2004,2006および2008のユーザから受信されたデータフィードおよび/またはイベント更新を分析および統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新は、1つ以上の第三者情報源および連続的なデータストリームから受信されるツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、これらに限定されるものではなく、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどに関連するリアルタイムイベントを含み得る。また、サーバ2012は、クライアントコンピューティングデバイス2002,2004,2006および2008の1つ以上の表示装置を介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
【0121】
また、分散型システム2000は、1つ以上のデータベース2014および2016を含み得る。データベース2014および2016は、さまざまな場所に存在し得る。一例として、データベース2014および2016の1つ以上は、サーバ2012にローカルな(および/または存在する)非一時的な記憶媒体に存在していてもよい。代替的に、データベース2014および2016は、サーバ2012から遠く離れていて、ネットワークベースまたは専用の接続を介してサーバ2012と通信してもよい。一組の実施形態においては、データベース2014および2016は、記憶領域ネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ2012に起因する機能を実行するための任意の必要なファイルが、サーバ2012上にローカルに、および/または、リモートで適宜格納されていてもよい。一組の実施形態においては、データベース2014および2016は、SQLフォーマットコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
【0122】
図21は、本開示の実施形態に係る、実施形態のシステムの1つ以上の構成要素によって提供されるサービスをクラウドサービスとして供給することができるシステム環境2100の1つ以上の構成要素の簡略化されたブロック図である。示されている実施形態においては、システム環境2100は、クラウドサービスを提供するクラウドインフラストラクチャシステム2102と相互作用するようにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス2104,2106および2108を含む。クライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム2102によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム2102と相互作用するようにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専有のクライアントアプリケーション(たとえばオラクルフォームズ)または他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【0123】
図に示されているクラウドインフラストラクチャシステム2102が図示されている構成要素とは他の構成要素を有し得ることが理解されるべきである。さらに、図に示されている実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態においては、クラウドインフラストラクチャシステム2102は、図に示されているものよりも多いまたは少ない数の構成要素を有していてもよく、2つ以上の構成要素を組合せてもよく、または構成要素の異なる構成または配置を有していてもよい。
【0124】
クライアントコンピューティングデバイス2104,2106および2108は、2002,2004,2006および2008について上記したものと類似のデバイスであってもよい。
【0125】
例示的なシステム環境2100は3個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサなどを有する装置などの他の装置が、クラウドインフラストラクチャシステム2102と相互作用してもよい。
【0126】
ネットワーク2110は、クライアント2104,2106および2108とクラウドインフラストラクチャシステム2102との間のデータの通信およびやりとりを容易にし得る。各々のネットワークは、ネットワーク2010について上記したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよい。
【0127】
クラウドインフラストラクチャシステム2102は、サーバ2012について上記したものを含み得る1つ以上のコンピュータおよび/またはサーバを備え得る。
【0128】
特定の実施形態においては、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータ記憶およびバックアップソリューション、ウェブベースのeメールサービス、ホスト型オフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドインフラストラクチャシステムによって提供されるサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、インターネットなどの通信ネットワークを介してクラウドサービスプロバイダのシステムからユーザが利用可能な任意のサービスは、「クラウドサービス」と称される。通常、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムがアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションを注文および使用してもよい。
【0129】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションへの保護されたコンピュータネットワークアクセス、またはクラウドベンダによってユーザに提供されるかもしくはそうでなければ当該技術分野において公知の他のサービスを含み得る。たとえば、サービスは、インターネットを介したクラウド上のリモートストレージへのパスワードによって保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされるeメールソフトウェアアプリケーションへのアクセスを含み得る。
【0130】
特定の実施形態においては、クラウドインフラストラクチャシステム2102は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に配信される一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【0131】
さまざまな実施形態においては、クラウドインフラストラクチャシステム2102は、クラウドインフラストラクチャシステム2102によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム2102は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、クラウドインフラストラクチャシステム2102が、(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、一般大衆またはさまざまな産業企業がサービスを利用できるパブリッククラウドモデルのもとでサービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム2102が単一の組織のためだけに運営され、当該組織内の1つ以上のエンティティにサービスを提供し得るプライベートクラウドモデルのもとでサービスが提供されてもよい。また、クラウドインフラストラクチャシステム2102およびクラウドインフラストラクチャシステム2102によって提供されるサービスが、関連のコミュニティ内のいくつかの組織によって共有されるコミュニティクラウドモデルのもとでクラウドサービスが提供されてもよい。また、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルのもとでクラウドサービスが提供されてもよい。
【0132】
いくつかの実施形態においては、クラウドインフラストラクチャシステム2102によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(Infrastructureas a Service:IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリのもとで提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーによって、クラウドインフラストラクチャシステム2102によって提供される1つ以上のサービスを注文し得る。次いで、クラウドインフラストラクチャシステム2102は、顧客のサブスクリプションオーダーでサービスを提供するために処理を実行する。
【0133】
いくつかの実施形態においては、クラウドインフラストラクチャシステム2102によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、SaaSプラットフォームは、一体化された開発およびデプロイメントプラットフォーム上で一連のオンデマンドアプリケーションを構築および配信するための機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムで実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例としては、大規模組織のための販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
【0134】
いくつかの実施形態においては、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通アーキテクチャ上で統合することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、これらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例としては、オラクルJavaクラウドサービス(Java Cloud Service:JCS)、オラクルデータベースクラウドサービス(Database Cloud Service:DBCS)などが挙げられるが、これらに限定されるものではない。
【0135】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態においては、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービル(たとえばオラクルフージョンミドルウェアサービス)およびJavaクラウドサービスを含み得る。一実施形態においては、データベースクラウドサービスは、組織がデータベースリソースをプールしてデータベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステムにおいてさまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得るともに、Javaクラウドサービスは、クラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
【0136】
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるIaaSプラットフォームによって提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワークなどの基本的な計算リソース、ならびに、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
【0137】
また、特定の実施形態においては、クラウドインフラストラクチャシステム2102は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース2130を含み得る。一実施形態においては、インフラストラクチャリソース2130は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するための、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め一体化された最適な組合せを含み得る。
【0138】
いくつかの実施形態においては、クラウドインフラストラクチャシステム2102におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割り振りされてもよい。また、リソースは、異なる時間帯にユーザに割り振られてもよい。たとえば、クラウドインフラストラクチャシステム2130は、第1の時間帯におけるユーザの第1の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし得るとともに、異なる時間帯に位置するユーザの別の組への同一のリソースの再割り振りを可能にし得ることによって、リソースの利用を最大化することができる。
【0139】
特定の実施形態においては、クラウドインフラストラクチャシステム2102のさまざまな構成要素またはモジュール、および、クラウドインフラストラクチャシステム2102によって提供されるサービス、によって共有されるいくつかの内部共有サービス2132が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、インテグレーションサービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【0140】
特定の実施形態においては、クラウドインフラストラクチャシステム2102は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえばSaaSサービス、PaaSサービスおよびIaaSサービス)の包括的管理を提供し得る。一実施形態においては、クラウド管理機能は、クラウドインフラストラクチャシステム2102によって受信された顧客のサブスクリプションをプロビジョニング、管理および追跡などするための機能を含み得る。
【0141】
一実施形態においては、図に示されるように、クラウド管理機能は、オーダー管理モジュール2120、オーダーオーケストレーションモジュール2122、オーダープロビジョニングモジュール2124、オーダー管理および監視モジュール2126、ならびにアイデンティティ管理モジュール2128などの1つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含み得るか、またはそれらを用いて提供され得る。
【0142】
例示的な動作2134において、クライアントデバイス2104,2106または2108などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム2102によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム2102によって供給される1つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クラウドインフラストラクチャシステム2102と対話し得る。特定の実施形態においては、顧客は、クラウドユーザインターフェース(UserInterface:UI)、すなわちクラウドUI2112、クラウドUI2114および/またはクラウドUI2116にアクセスして、これらのUIを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム2102によって受信されたオーダー情報は、顧客と、顧客がサブスクライブする予定のクラウドインフラストラクチャシステム2102によって提供される1つ以上のサービスとを特定する情報を含み得る。
【0143】
オーダーが顧客によって行われた後、オーダー情報は、クラウドUI2112,2114および/または2116を介して受信される。
【0144】
動作2136において、オーダーは、オーダーデータベース2118に格納される。オーダーデータベース2118は、クラウドインフラストラクチャシステム2118によって動作されるとともに他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであってもよい。
【0145】
動作2138において、オーダー情報は、オーダー管理モジュール2120に転送される。いくつかの例では、オーダー管理モジュール2120は、オーダーの確認および確認時のオーダーの予約などのオーダーに関連する請求書発行機能および会計経理機能を実行するように構成され得る。
【0146】
動作2140において、オーダーに関する情報は、オーダーオーケストレーションモジュール2122に通信される。オーダーオーケストレーションモジュール2122は、顧客によって行われたオーダーについてのサービスおよびリソースのプロビジョニングをオーケストレートするためにオーダー情報を利用し得る。いくつかの例では、オーダーオーケストレーションモジュール2122は、オーダープロビジョニングモジュール2124のサービスを用いてサブスクライブされたサービスをサポートするためにリソースのプロビジョニングをオーケストレートし得る。
【0147】
特定の実施形態においては、オーダーオーケストレーションモジュール2122は、各々のオーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用してオーダーがプロビジョニングに進むべきか否かを判断する。動作2142において、新たなサブスクリプションについてのオーダーを受信すると、オーダーオーケストレーションモジュール2122は、リソースを割り振って当該サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するための要求をオーダープロビジョニングモジュール2124に送る。オーダープロビジョニングモジュール2124は、顧客によってオーダーされたサービスについてのリソースの割り振りを可能にする。オーダープロビジョニングモジュール2124は、クラウドインフラストラクチャシステム2100によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間にあるレベルの抽象化を提供する。したがって、オーダーオーケストレーションモジュール2122は、サービスおよびリソースが実際に実行中にプロビジョニングされるか、事前にプロビジョニングされて要求があったときに割振られる/割当てられるのみであるかなどの実装の詳細から切り離すことができる。
【0148】
動作2144において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム2102のオーダープロビジョニングモジュール2124によってクライアントデバイス2104,2106および/または2108上の顧客に送られ得る。
【0149】
動作2146において、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール2126によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール2126は、使用される記憶量、転送されるデータ量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などのサブスクリプションオーダーにおけるサービスについての使用統計を収集するように構成され得る。
【0150】
特定の実施形態においては、クラウドインフラストラクチャシステム2100は、アイデンティティ管理モジュール2128を含み得る。アイデンティティ管理モジュール2128は、クラウドインフラストラクチャシステム2100におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成され得る。いくつかの実施形態においては、アイデンティティ管理モジュール2128は、クラウドインフラストラクチャシステム2102によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報と、それらの顧客がさまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することを認可されるかを記載する情報とを含み得る。また、アイデンティティ管理モジュール2128は、各々の顧客についての説明的情報、ならびに、どのようにしておよび誰によってこの説明的情報がアクセスおよび変更され得るかについての情報の管理を含み得る。
【0151】
図22は、本発明のさまざまな実施形態を実現することができる例示的なコンピュータシステム2200を示す。システム2200は、上記のコンピュータシステムのうちのいずれかを実現するために使用され得る。図に示されているように、コンピュータシステム2200は、バスサブシステム2202を介していくつかの周辺サブシステムと通信する処理ユニット2204を含む。これらの周辺サブシステムは、処理加速ユニット2206と、I/Oサブシステム2208と、記憶サブシステム2218と、通信サブシステム2224とを含み得る。記憶サブシステム2218は、有形のコンピュータ読取可能な記憶媒体2222と、システムメモリ2210とを含む。
【0152】
バスサブシステム2202は、コンピュータシステム2200のさまざまな構成要素およびサブシステムに、意図されたように互いに通信させるための機構を提供する。バスサブシステム2202は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム2202は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、IEEE P1386.1標準に合わせて製造されたメザニンバスとして実現可能な、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、拡張ISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバスおよび周辺機器相互接続(Peripheral Component Interconnect:PCI)バスを含み得る。
【0153】
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現可能な処理ユニット2204は、コンピュータシステム2200の動作を制御する。処理ユニット2204には、1つ以上のプロセッサが含まれ得る。これらのプロセッサは、単一コアまたはマルチコアのプロセッサを含み得る。特定の実施形態においては、処理ユニット2204は、各々の処理ユニットに含まれる単一コアまたはマルチコアのプロセッサを有する1つ以上の独立した処理ユニット2232および/または2234として実現されてもよい。また、他の実施形態においては、処理ユニット2204は、2つのデュアルコアプロセッサを単一のチップに組み入れることによって形成されるクアッドコア処理ユニットとして実現されてもよい。
【0154】
さまざまな実施形態においては、処理ユニット2204は、プログラムコードに応答してさまざまなプログラムを実行し得るとともに、同時に実行される複数のプログラムまたはプロセスを維持し得る。任意の所与の時点において、実行されるべきプログラムコードのうちのいくつかまたは全ては、プロセッサ2204および/または記憶サブシステム2218に存在し得る。好適なプログラミングを通じて、プロセッサ2204は、上記のさまざまな機能を提供し得る。また、コンピュータシステム2200は、加えて、デジタル信号プロセッサ(digital signal processor:DSP)、特殊用途プロセッサなどを含み得る処理加速ユニット2206を含み得る。
【0155】
I/Oサブシステム2208は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含み得る。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、タッチパッドまたはタッチスクリーンを含んでいてもよく、これらは、音声コマンド認識システム、マイクロホンおよび他のタイプの入力装置とともに、ディスプレイ、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、オーディオ入力装置に組込まれている。ユーザインターフェイス入力装置は、たとえば、ジェスチャおよび話されたコマンドを用いてナチュラルユーザインターフェースを介してユーザがマイクロソフトXbox(登録商標)360ゲームコントローラなどの入力装置を制御して入力装置と対話することを可能にするマイクロソフトキネクト(登録商標)モーションセンサなどのモーション検知および/またはジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザから眼球運動(たとえば撮影および/またはメニュー選択を行っている間の「まばたき」)を検出して、当該眼球ジェスチャを入力装置への入力として変換するグーグルグラス(登録商標)まばたき検出器などの眼球ジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識検知装置を含み得る。
【0156】
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線検出装置を含み得るが、これらに限定されるものではない。また、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴画像化、位置発光断層撮影、医療用超音波検査装置などの医療用画像化入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえばMIDIキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
【0157】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、表示灯、またはオーディオ出力装置などの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するものなどのフラットパネルディスプレイ、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム2200からの情報をユーザまたは他のコンピュータに出力するための全ての実現可能なタイプの装置および機構を含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車のナビゲーションシステム、プロッタ、音声出力装置およびモデムなどの、テキスト、グラフィックスおよびオーディオ/ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【0158】
コンピュータシステム2200は、現在のところシステムメモリ2210内に位置しているように示されているソフトウェア要素を備える記憶サブシステム2218を備え得る。システムメモリ2210は、処理ユニット2204上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されるデータとを格納し得る。
【0159】
コンピュータシステム2200の構成およびタイプに応じて、システムメモリ2210は、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)であってもよく、および/または、不揮発性(リードオンリメモリ(read-only memory:ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理ユニット2204が直ちにアクセス可能なデータおよび/またはプログラムモジュール、および/または、処理ユニット2204によって現在動作および実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ2210は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム2200内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納され得る。一例としておよび非限定的に、システムメモリ2210は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム2212、プログラムデータ2214およびオペレーティングシステム2216も示す。一例として、オペレーティングシステム2216は、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはリナックスオペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、ならびに/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイドOS、ブラックベリー(登録商標)10OSおよびパーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0160】
また、記憶サブシステム2218は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能な記憶媒体を提供し得る。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム2218に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット2204によって実行され得る。また、記憶サブシステム2218は、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【0161】
また、記憶サブシステム2200は、コンピュータ読取可能な記憶媒体2222にさらに接続可能なコンピュータ読取可能な記憶媒体リーダ2220を含み得る。ともにおよび任意には、システムメモリ2210と組合せて、コンピュータ読取可能な記憶媒体2222は、コンピュータ読取可能な情報を一時的および/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモートの、ローカルの、固定されたおよび/または取外し可能な記憶装置を包括的に表わし得る。
【0162】
コードまたはコードの一部を含むコンピュータ読取可能な記憶媒体2222は、当該技術分野において公知のまたは使用される任意の適切な媒体を含み得る。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ読取可能な媒体などの有形のコンピュータ読取可能な記憶媒体を含み得る。また、これは、データ信号、データ送信などの無形のコンピュータ読取可能な媒体、または、所望の情報を送信するために使用可能であるとともに計算システム2200によってアクセス可能である他の任意の媒体を含み得る。
【0163】
一例として、コンピュータ読取可能な記憶媒体2222は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびブルーレイ(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含み得る。コンピュータ読取可能な記憶媒体2222は、ジップ(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ読取可能な記憶媒体2222は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含み得る。ディスクドライブおよびそれらの関連のコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム2200に提供し得る。
【0164】
通信サブシステム2224は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム2224は、他のシステムからデータを受信したり、コンピュータシステム2200から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム2224は、コンピュータシステム2200がインターネットを介して1つ以上の装置に接続することを可能にし得る。いくつかの実施形態においては、通信サブシステム2224は、(たとえば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、WiFi(IEEE1902.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組合せ)、全地球測位システム(global positioning system:GPS)レシーバコンポーネント、および/または、他のコンポーネントを含み得る。いくつかの実施形態においては、通信サブシステム2224は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット)を提供し得る。
【0165】
また、いくつかの実施形態においては、通信サブシステム2224は、コンピュータシステム2200を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード2226、イベントストリーム2228、イベント更新2230などの形態で入力通信を受信し得る。
【0166】
一例として、通信サブシステム2224は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード2226をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成され得る。
【0167】
加えて、通信サブシステム2224は、連続的なデータストリームの形態でデータを受信するように構成され得る。当該データは、連続的である場合もあれば本質的に明確な端部をもたない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム2228および/またはイベント更新2230を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【0168】
また、通信サブシステム2224は、構造化されたおよび/または構造化されていないデータフィード2226、イベントストリーム2228、イベント更新2230などを、コンピュータシステム2200に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成され得る。
【0169】
コンピュータシステム2200は、手持ち式携帯機器(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの1つであってもよい。
【0170】
コンピュータおよびネットワークの絶え間なく変化し続ける性質のために、図に示されているコンピュータシステム2200の説明は、特定の例として意図されているに過ぎない。図に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が可能である。たとえば、ハードウェア、ファームウェア、(アプレットを含む)ソフトウェア、または組合せにおいて、カスタマイズされたハードウェアが使用されてもよく、および/または、特定の要素が実装されてもよい。さらに、ネットワーク入力/出力装置などの他のコンピューティングデバイスへの接続が利用されてもよい。本明細書中に提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の手段および/または方法を理解するであろう。
【0171】
前述の説明では、説明の目的のために、本発明のさまざまな実施形態の完全な理解を提供するために、多数の具体的な詳細が述べられた。しかしながら、本発明の実施形態は、これらの具体的な詳細のいくつかを伴わずに実施され得ることが当業者には明白であろう。他の例では、周知の構造およびデバイスがブロック図形式で示される。
【0172】
上記の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を制限することを意図していない。むしろ、例示的な実施形態の前述の説明は、例示的な実施形態を実施するための可能な説明を当業者に与えるであろう。特許請求の範囲に記載されている本発明の精神および範囲から逸脱することなく、要素の機能および構成にさまざまな変更を加えることができることを理解されたい。
【0173】
上記の説明では、実施形態の完全な理解を与えるために具体的な詳細が与えられている。しかしながら、当業者には、実施の形態はこれらの具体的な詳細なしに実施されてもよいことが理解される。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、実施形態を不必要な詳細において不明瞭にしないために、ブロック図の形態でコンポーネントとして示されている場合がある。他の事例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細を伴わずに示されていることがある。
【0174】
さらに、個々の実施の形態は、フローチャート、フロー図、データフロー図、構造図またはブロック図として示されるプロセスとして記載されている場合があることが注記される。フローチャートは動作をシーケンシャルなプロセスとして記載している場合があるが、動作の多くは並列または同時に実行され得る。加えて、動作の順序は再構成されてもよい。プロセスは、その動作が完了されるときに終結されるが、図に含まれない追加のステップを含み得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合では、その終結は、その関数が呼出関数または主関数に戻ることに対応し得る。
【0175】
「コンピュータ読取可能媒体」という語は、命令および/またはデータを記憶するか、含むか、または担持することができるポータブルまたは固定された記憶装置、光記憶装置、ワイヤレスチャネルおよびさまざまな他の的媒体を含むが、それらに限定はされない。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文のいずれかの組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータまたはメモリコンテンツを受け渡すおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ受渡し、トークン受渡し、ネットワーク伝送などを含む任意の好適な手段を介して渡されるか、転送されるか、または伝送されてもよい。
【0176】
さらに、実施の形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実現される場合には、必要なタスクを実行するプログラムコードまたはコードセグメントを機械読取可能媒体に記憶してもよい。プロセッサが必要なタスクを実行してもよい。
【0177】
上記の明細書では、本発明の局面についてその具体的な実施形態を参照して説明しているが、本発明はそれに限定されるものではないということを当業者は認識するであろう。上記の発明のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、実施形態は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【0178】
さらに、例示の目的のため、方法が特定の順序で説明された。代替の実施形態では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させるマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、1つ以上の機械読取可能媒体、たとえばCD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリなど、または電子命令を記憶するのに適した他の種類の機械読取可能媒体に記憶できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。