(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-31
(45)【発行日】2024-11-11
(54)【発明の名称】仮想環境におけるデータ視覚化オブジェクト
(51)【国際特許分類】
G06T 15/00 20110101AFI20241101BHJP
【FI】
G06T15/00 501
(21)【出願番号】P 2021521460
(86)(22)【出願日】2019-10-21
(86)【国際出願番号】 US2019057158
(87)【国際公開番号】W WO2020086434
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-04
(32)【優先日】2018-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】モロズ,ベンジャミン・エル
(72)【発明者】
【氏名】グレイザー,ブレンドン・チャールズ
(72)【発明者】
【氏名】カトンゴ,カパヤ
(72)【発明者】
【氏名】ハンソン,クリス・エル
(72)【発明者】
【氏名】バン・デン・ブルーク,ヘンドリック
【審査官】中田 剛史
(56)【参考文献】
【文献】米国特許出願公開第2017/0092008(US,A1)
【文献】特開2004-355167(JP,A)
【文献】特開2003-067760(JP,A)
【文献】特開平11-031185(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00
(57)【特許請求の範囲】
【請求項1】
対話型仮想環境において時系列データを視覚化する方法であって、
データポイントの複数の時系列シーケンスを含む1つまたは複数のデータセットを受信することと、
前記データポイントの複数の時系列シーケンスの各々を仮想環境において3次元(3D)線グラフにプロットすることと、
前記仮想環境において前記3D線グラフの周囲を移動するように構成された1つまたは複数の仮想カメラを用いて、前記3D線グラフの1つまたは複数のビューを生成することと、
前記3D線グラフの前記1つまたは複数のビューを1つまたは複数のクライアントデバイスに送信することとを含み、前記1つまたは複数のクライアントデバイスは前記1つまたは複数の仮想カメラに対応し、前記方法はさらに、
パラメータ化された入力を有する視覚化コンポーネントをロードすることと、
前記1つまたは複数のデータセットを前記パラメータ化された入力にバインディングすることと、
前記データポイントの複数の時系列シーケンスの各々を、前記仮想環境において、前記視覚化コンポーネントに従って、前記3D線グラフにプロットすること
、
前記仮想環境において、前記視覚化コンポーネントに対する操作を受け付けることと、
前記操作に基づいて、前記視覚化コンポーネントにバインディングされているデータセットを変更することとを含む、方法。
【請求項2】
前記データポイントの複数の時系列シーケンスの各々を仮想環境において3D線グラフにプロットすることは、
前記データポイントの複数の時系列シーケンスにおける各データポイントの位置を前記仮想環境の座標系においてプロットすることと、
前記位置の各々を3D線オブジェクトに接続することとを含む、請求項1に記載の方法。
【請求項3】
前記3D線グラフの座標系を前記仮想環境の前記座標系に変換することをさらに含む、請求項2に記載の方法。
【請求項4】
前記3D線グラフの前記座標系は、
時間に対応する第1の横軸と、
前記データポイントの複数の時系列シーケンスにおけるインデックスに対応する第2の横軸と、
前記データポイントの値に対応する縦軸とを含む、請求項3に記載の方法。
【請求項5】
前記1つまたは複数のデータセットは、異なるシステムについての経時的なテスト障害データを含む、請求項1~4のいずれかに記載の方法。
【請求項6】
前記1つまたは複数のクライアントデバイス内のあるクライアントデバイスは、仮想現実デバイスを含む、請求項1~5のいずれかに記載の方法。
【請求項7】
前記視覚化コンポーネントに対する操作は、前記視覚化コンポーネントに触れることを含み、
前記データセットを変更することは、前記視覚化コンポーネントにおいて触れられた場所に対応する値もしくは時間を変更すること、又は、当該データセットを他のデータセットと異なる態様で表示することを含む、請求項1~6のいずれかに記載の方法。
【請求項8】
請求項1~
7のいずれかに記載の方法を1つまたは複数のプロセッサに実行させるためのプログラム。
【請求項9】
1つまたは複数のプロセッサと、
請求項1~
7のいずれかに記載の方法を前記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らによる、「ANIMATION BETWEEN VISUALIZATION OBJECTS IN A VIRTUAL DASHBOARD(仮想ダッシュボード内の視覚化オブジェクト間のアニメーション)」と題される米国特許出願第16/658,177号(弁理士登録番号088325-1142782)であり、その全体をここに引用により援用する。
【背景技術】
【0003】
背景
情報を伝達するための最も有効な方法の1つは、視覚化によるものである。情報を捕捉および分類することは、典型的には、データから引き出され得る結論の完全な理解を得るのには十分ではない。2次元データ可視化は、我々の通信技術の多くを支配するが、これらの可視化技術の多くは、データ収集の態様を強調表示または強調することに対して最適化されていない。効果的なデータ視覚化は、データの態様を非常に迅速に通信する情報提供的な視覚に訴える表現を作成することを伴う。時には、単純な視覚化で十分である。しかしながら、複雑な多次元データでは、データセット自体の複雑さにより、適切な視覚化が困難になり、次元空間が制限される可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
対話型仮想環境において時系列データを視覚化する方法は、データポイントの複数の時系列シーケンスを含む1つまたは複数のデータセットを受信することと、上記データポイントの複数の時系列シーケンスの各々を仮想環境において3次元(3D)線グラフにプロットすることと、上記仮想環境において上記3D線グラフの周囲を移動するように構成された1つまたは複数の仮想カメラを用いて、上記3D線グラフの1つまたは複数のビューを生成することと、上記3D線グラフの上記1つまたは複数のビューを1つまたは複数のクライアントデバイスに送信することとを含んでもよい。上記1つまたは複数のクライアントデバイスは上記1つまたは複数の仮想カメラに対応してもよい。
【0005】
非一時的コンピュータ読取可能媒体は、1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備えてもよく、上記動作は、データポイントの複数の時系列シーケンスを含む1つまたは複数のデータセットを受信することと、上記データポイントの複数の時系列シーケンスの各々を仮想環境において3次元(3D)線グラフにプロットすることと、上記仮想環境において上記3D線グラフの周囲を移動するように構成された1つまたは複数の仮想カメラを用いて、上記3D線グラフの1つまたは複数のビューを生成することと、上記3D線グラフの上記1つまたは複数のビューを1つまたは複数のクライアントデバイスに送信することとを含んでもよい。上記1つまたは複数のクライアントデバイスは上記1つまたは複数の仮想カメラに対応してもよい。
【0006】
システムは、1つまたは複数のプロセッサと、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備える1つまたは複数のメモリデバイスとを備えてもよく、上記動作は、データポイントの複数の時系列シーケンスを含む1つまたは複数のデータセットを受信することと、上記データポイントの複数の時系列シーケンスの各々を仮想環境において3次元(3D)線グラフにプロットすることと、上記仮想環境において上記3D線グラフの周囲を移動するように構成された1つまたは複数の仮想カメラを用いて、上記3D線グラフの1つまたは複数のビューを生成することと、上記3D線グラフの上記1つまたは複数のビューを1つまたは複数のクライアントデバイスに送信することとを含んでもよい。上記1つまたは複数のクライアントデバイスは上記1つまたは複数の仮想カメラに対応してもよい。
【0007】
いずれの実施形態においても、以下の特徴のいずれかが、限定なしに、任意の組み合わせで実現されてもよい。上記データポイントの複数の時系列シーケンスの各々を仮想環境において3D線グラフにプロットすることは、上記データポイントの複数の時系列シーケンスにおける各データポイントの位置を上記仮想環境の座標系においてプロットすることと、上記位置の各々を3D線オブジェクトに接続することとを含んでもよい。本方法/動作はまた、上記3D線グラフの座標系を上記仮想環境の上記座標系に変換することをさらに含んでもよい。上記3D線グラフの上記座標系は、時間に対応する第1の横軸と、上記データポイントの複数の時系列シーケンスにおけるインデックスに対応する第2の横軸と、上記データポイントの値に対応する縦軸とを含んでもよい。上記1つまたは複数のデータセットは、異なるシステムについての経時的なテスト障害データを含んでもよい。本方法/動作はまた、パラメータ化された入力を有する視覚化コンポーネントをロードすることと、上記1つまたは複数のデータセットを上記パラメータ化された入力にバインディングすることと、上記データポイントの複数の時系列シーケンスの各々を、上記仮想環境において、上記視覚化コンポーネントに従って、上記3D線グラフにプロットすることとを含んでもよい。上記1つまたは複数のクライアントデバイス内のあるクライアントデバイスは、仮想現実デバイスを含んでもよい。
【0008】
図面の簡単な説明
本発明の性質および利点のさらに進んだ理解は、明細書および図面の残りの部分を参照することによって実現することができ、いくつかの図面全体を通して、同様のコンポーネントを指すために同様の参照番号が用いられる。場合によっては、下位ラベルが、複数の同様のコンポーネントのうちの1つを示すために参照番号に関連付けられる。既存の下位サブラベルを指定せずに参照符号に言及する場合、そのような複数の同様のコンポーネントすべてを参照することが意図される。
【図面の簡単な説明】
【0009】
【
図1】いくつかの実施形態による、対話型データディスプレイをオーサリングし、提供し、用いるためのシステムを示す。
【
図2】いくつかの実施形態による、企業データセットにバインディングされた仮想オブジェクトの例を示す。
【
図3】コンポーネント交換からアプリケーションにコンポーネントをインポートするためのユーザインターフェイスを示す図である。
【
図4】いくつかの実施形態による、アプリケーション内のコンポーネントをダウンロードし、インスタンス化するためのプロセスのブロック図を示す。
【
図5】いくつかの実施形態による、仮想環境において作成された仮想ダッシュボードを示す。
【
図6】いくつかの実施形態による、さまざまなタイプのクライアントデバイスシステムおよび入力デバイスがすべてEDIE環境において同じ仮想環境と同時にインターフェイスすることができる方法を示す。
【
図7】いくつかの実施形態による、2D画面インターフェイスを介する仮想環境のビューを示す。
【
図8】いくつかの実施形態による、複数のユーザが仮想ダッシュボードと対話する仮想環境のビューを示す。
【
図9】いくつかの実施形態による、仮想環境と対話するために用いられ得る現実世界の環境のビューを示す。
【
図10】いくつかの実施形態による、多次元ダッシュボードにおいてデータを表示するための方法のフローチャートを示す。
【
図11】いくつかの実施形態による、仮想環境においてデータポイントの時系列シーケンスを表示するための視覚化コンポーネントの図を示す。
【
図12】いくつかの実施形態による、
図11とは異なるパースペクティブからの線グラフオブジェクトのビューを示す。
【
図13】いくつかの実施形態による、仮想環境によってレンダリングされている線グラフオブジェクトを示す。
【
図14】いくつかの実施形態による、ユーザがどのように仮想環境でデータと対話することができるかを示す。
【
図15】いくつかの実施形態による、線グラフコンポーネントにバインディングされた同じデータを視覚化するために用いられ得る円形棒グラフコンポーネントを示す。
【
図16】いくつかの実施形態による、線グラフと同様に動作する円グラフを示す。
【
図17】いくつかの実施形態による、対話型仮想環境において時系列データを視覚化するための方法のフローチャートを示す。
【
図18】実施形態の一部を実現するための分散システムの簡略図である。
【
図19】いくつかの実施形態による、ある実施形態のシステムの1つまたは複数のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得る、システム環境の1つまたは複数のコンポーネントの簡略ブロック図である。
【
図20】さまざまな実施形態が実現され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【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】
時系列の代替的な視覚化コンポーネント
多くの異なる視覚化コンポーネントが、上述の仮想環境とともに用いられ得る。複数の視覚化コンポーネントは、多数の異なる方法でデータを提示する対話型環境を形成するために、同じアプリケーションにおいて用いられ得る。例えば、ある単一の仮想環境は、ファネルオブジェクト、棒グラフオブジェクト、液体状体積で満たされたビーカー表現、人のプロファイルのプロファイルレイアウトに対応する視覚化コンポーネント、および/または複数のクライアントデバイス上でユーザによって閲覧および操作されるよう3D空間においてレンダリングされ得る他の視覚化コンポーネントを含み得る。データのタイプに応じて、いくつかの視覚化コンポーネントは、そのデータの態様を他のものよりも強調表示するように調整され得る。仮想環境の設計者は、どの視覚化コンポーネントが、意図された視聴者に対して、データの態様を最も良く強調表示するかを決定することができる。
【0064】
本明細書で説明される実施形態では、時間成分を含むデータを強調表示する特定のタイプの視覚化コンポーネントが説明される。例えば、いくつかのデータセットは、データポイントの時系列シーケンスを含み得る。複数の値が、データテーブルまたは他のデータ構造にデータポイントとして記録および格納され得る。各値は、定期的な時間間隔でサンプリングまたは記録され得る。例えば、5つの連続するデータ値は、各値間において同じ時間遅延で記録されたと仮定してもよい。データポイントのシーケンスはまた、データポイントの各々の間のサンプリングレートまたは間隔を示す値も含み得る。いくつかの実施形態では、時系列のデータポイントの各々は、値がシステムによっていつ取得または記録されたかを示す値およびタイムスタンプの両方を含み得る。これは、データポイント間の不規則な間隔を可能にする。データセットは、データポイントの2つ以上の時系列シーケンスを含み得る。例えば、データを、異なるシステムについて同時にサンプリングしてもよく、または、データを、同じシステムについて異なるサンプリングセッションにおいて繰り返し順次サンプリングしてもよい。
【0065】
データポイントの時系列シーケンスが記憶される方法に関係なく、データの時間依存の性質を描写することができる視覚化コンポーネントを用いてこれらのデータポイントを表示することは有益であり得る。データポイントの時系列シーケンスを次元が制限された視覚化コンポーネントにロードすることは、データポイントの時間依存の性質を不明瞭にするか、または複数の時系列シーケンスを単一の次元で一緒に表示させ、それによって、異なる時間シーケンス間の差異を不明瞭にし得る。したがって、いくつかの視覚化コンポーネントは、データセット中のデータポイントの各時系列シーケンスに対して、時間専用の次元を、別の次元とともに含み得る。
【0066】
図11は、いくつかの実施形態による、仮想環境におけるデータポイントの時系列シーケンスを表示するための視覚化コンポーネントの図を示す。この視覚化コンポーネントは、線グラフコンポーネントと呼ばれ得る。線グラフコンポーネントが仮想環境においてインスタンス化またはロードされると、線グラフコンポーネントは、上述のように、パラメータ化された入力にバインディングされるべき1つまたは複数のデータセットを受信することができる。各データセットは、データポイントの1つまたは複数の時系列シーケンスを含み得る。例えば、各データセットは、1つまたは複数のデータテーブルを含むことができ、データテーブル内の各行は、この時系列シーケンスにおけるデータ値に対応し、各行の各列は、そのデータ値の属性値または特性を含む。これらの属性値は、タイムスタンプ、ユーザID、セッションID、他のデータ値、クライアントデバイス、テスト手順、および/またはデータテーブル内の行に対して記録されたデータ値を記述またはそれに関連付けられることができる任意の他のメタデータを含み得る。タイムスタンプまたは他のサンプリングレート識別子を含まない行は、各データ値の間に規則的な間隔を有すると仮定され得、データ値の間のサンプリングレートまたは間隔は、別途指定され得る。パラメータ化された入力は、これらのデータポイントの時間シーケンスの各々を、ベクトル、アレイ、リスト、シーケンス、および/または可変数もしくは固定数のデータ値を含む任意の他のデータ構造として受信することができる。
【0067】
線グラフコンポーネントが、パラメータ化された入力を通じてデータポイントの時系列シーケンスの入力を受信し、処理すると、線グラフコンポーネントは、仮想環境において線グラフオブジェクト1100を生成することができる。線グラフオブジェクト1100は、ユーザが明確に区別できるように、時系列データの異なる次元を示すように設計された多次元線グラフを含むことができる。線グラフ内の異なる次元または軸は、表示内においてデータ値ごとに異なる次元に割り当てることができる。
【0068】
図11の例では、線グラフオブジェクト1100は、各データポイントの値に関連付けられ得る縦軸1102を含む。線グラフオブジェクト1100はまた、時間に対応する第1の横軸1106を含み得る。線グラフオブジェクト1100はまた、データポイントの複数の時系列シーケンスにおけるインデックスに対応する第2の横軸1104を含み得る。例えば、1つまたは複数のデータセットがデータポイントの複数の時系列シーケンスを含む場合、データポイントの各時系列シーケンスは、横軸1104に沿って特定のインデックスを割り当てられ得る。これは、個々の時系列シーケンスを、それらが互いから目に見えるように区別可能なように広げる。
【0069】
例として、以下で説明する実施形態は、線グラフオブジェクト1100によって時系列データがどのように表示されるかを示すためにテストデータを用いる。このテストデータは、経時的に特定のマシンから受信されたいくつかの障害を含み得る。横軸1104に沿った各インデックスは、テスト中の異なるマシンに対応し得る。横軸1106による時間は、障害が検出された時間に対応し得る。最後に、横軸1102に従う値は、障害の深刻度、検出された障害の数、および/またはハードウェア/ソフトウェア障害を特徴付ける任意の他の方法に対応し得る。このテストデータが一例として用いられるのは、それが、データポイントのさまざまな時系列シーケンスを互いに分離する利点を示すからである。それはまた、各時系列シーケンスを分離する他の横軸1104に直交する時間軸1106を用いることの利点も示す。
【0070】
データポイントの各時系列シーケンスは、横軸1104の異なるインデックスに沿って線グラフオブジェクト1100にプロットされ得る。いくつかの実施形態では、データポイントの各時系列シーケンスは、隣接する線と視覚的に区別され得るように、異なる色を用いる連続線で表され得る。代替的または追加的に、データポイントの各時系列シーケンスは、異なる線スタイル(例えば、破線、点線、実線など)で表されてもよい。いくつかの実施形態では、データポイントの時系列シーケンスにおける値の各々は、閾値と比較されてもよく、各線の線スタイル、線色、線透明度、および/または他の視覚的特徴もしくは効果は、閾値を超えたことを示すように変更されてもよい。例えば、線1108は、障害データの閾値を超える可能性がある比較的高い値を含む。線1108は、強調表示されてもよく、異なる色を付けられてもよい。線1108はまた、閾値を超えたことを示すために、より厚いポイント値などの異なる線スタイルを含み得る。これは、ユーザが、(例えば、広範囲に故障したマシンを識別するために)閾値に従って関心のあるデータの時系列シーケンスを視覚的に区別するのに役立ち得る。
【0071】
図12は、いくつかの実施形態による、
図11とは異なるパースペクティブからの線グラフオブジェクト1100の図を示す。上記で詳細に説明されるように、線グラフオブジェクト1100が生成される仮想環境は、複数のクライアントデバイスからのユーザ対話を可能にする3D仮想環境であり得る。ユーザは、各々、仮想環境において、ユーザの入力に従って移動する対応する仮想カメラを割り当てられてもよい。これらの入力は、各ユーザによって用いられているクライアントデバイスのタイプに依存し得る。例えば、デスクトップコンピュータは、仮想環境から、現実世界の環境において2次元表示画面上に表示される画像をレンダリングする仮想カメラを含み得る。仮想環境「内を移動する」ための入力は、マウス、キーボード、タッチスクリーンディスプレイ、音声コマンド等から受け取られ得る。これらの入力は、線グラフオブジェクト1100の3Dビューの異なるパースペクティブを提供するために、仮想カメラを仮想環境内で移動させ得る。
【0072】
ユーザが仮想現実ヘッドセットなどの仮想現実デバイスを介して仮想環境にアクセスする場合、仮想環境内の対応する仮想カメラは、ユーザが仮想環境に入ったかのように感じるように画像を提供することができる。現実世界の環境におけるユーザの物理的な動きは、仮想環境における仮想カメラの動きに対応し得る。これにより、ユーザは、仮想環境において異なる視覚化オブジェクト「内を歩き回る」ことができる。上述したように、これはまた、視覚化オブジェクトが仮想環境においてレンダリングされると、ユーザが視覚化オブジェクトにおける個々のデータポイントと対話することを可能にする。
【0073】
例えば、ユーザは、
図11の線グラフオブジェクト1100の前に立ってもよい。ユーザは、ユーザのビューフラストラムを横切って左から右に移動すると、データポイントの時系列シーケンスを表す差分線を見ることができる。この位置は、
図11においては位置1122として表され得る。ユーザが、異なる角度からデータポイントの時系列シーケンスを閲覧することを望む場合、ユーザは、仮想環境内の新たな位置に仮想カメラを移動させるために、現実世界の環境において入力(例えば、動き)を生成することができる。例えば、ユーザは、異なるパースペクティブからデータを見るために、線グラフオブジェクト1100の各線を「見下ろす」ことができるように、線グラフオブジェクト1100の右側に歩き回ってもよい。このパースペクティブが
図12に示されている。この新たな位置は、
図11および
図12の位置1120に対応し得る。ユーザが新たな位置1120に歩行するとき、それは、仮想環境においてソリッドオブジェクトを通過して歩行しているかのようにすることができる。したがって、ユーザは、データを所望の任意の角度または位置から見るために、線グラフオブジェクト1100の周囲または内部を歩くことができる。
【0074】
図12の位置1120からのデータのパースペクティブは、
図11の位置1122からのデータのパースペクティブとは異なることに留意されたい。例えば、データポイントの時系列を表す線は、
図12のこれらの線のサイズと比較して、
図11では比較的小さい。ユーザは、仮想環境内を移動することに加えて、仮想環境を見るスケールを制御することもできる。仮想現実ヘッドセットなどの仮想現実デバイスを用いる場合、これは、ユーザの仮想「サイズ」をスケーリングすることに対応し得る。ユーザを大きめ/高めにすると、
図11に示す前/上から見た線グラフオブジェクト1100を見ることができる。一方、ユーザーを小さめ/低めにすると、
図12に示す、より地上高さの位置から、線グラフオブジェクト1100を見ることができる。2Dインターフェイスを用いる場合、ユーザは、仮想カメラの位置を移動させ、ズームイン/ズームアウトすることによって、ビューをスケーリングすることができる。
【0075】
図13は、いくつかの実施形態による、仮想環境によってレンダリングされている線グラフオブジェクトを示す。線グラフオブジェクト1100のビューをレンダリングするために、3Dオブジェクトが最初にインスタンス化され、仮想環境に配置され得る。線グラフオブジェクト1100は、複数の線を含むことができ、各線は、線グラフコンポーネントのパラメータ化された入力にバインディングされる1つまたは複数のデータセット内のデータポイントの個々の時系列シーケンスに対応する。線グラフオブジェクトを生成するために、仮想環境は、線グラフオブジェクトのための座標系を設定し、その座標系を仮想環境の座標系に変換し、個々のデータポイントを各時系列にプロットし、これらのデータポイントを可視線とつなぎ、ユーザは、各時系列シーケンスが時間軸に沿ってどのように進行するかを知ることができる。
【0076】
3D線グラフの座標系は、上述の異なる軸の単位に対応し得る。データポイントの値に対応する縦軸は、データポイントにおける最大値に基づいてスケーリングされ得る。時間および複数の時系列シーケンスにおけるインデックスに対応する第1および第2の横軸は、表される総時間および/または時系列シーケンスの数に基づいてスケーリングされ得る。この座標系を仮想環境の座標系に変換するために、線グラフオブジェクト1100の全体的な次元を指定することができる。これらの次元の各々は、インチ、フィートなど、仮想環境において表される単位で表すことができる。次いで、任意の次元における全長を線グラフ座標系における分割数で割って、それらの単位を仮想環境における単位に変換することができる。例えば、時間軸が各々5分に対応する20分割を含み、仮想環境における時間次元の長さが10仮想フィートである場合、座標変換は、6インチごとに5分でスケーリングすることができる。同様の手順を線グラフオブジェクトにおける各次元について実行してもよい。
【0077】
線グラフオブジェクト1100の座標系間にスケールを確立した後、個々のデータポイントを時系列シーケンスごとにプロットすることができる。例えば、
図13の線1302によって表されるデータポイントの時系列シーケンスは、以下のようにプロットされ得る。個々のデータポイントの各々は、仮想環境において、対応する座標にプロットされ得る。例えば、データポイント1304は、それの対応する時間および値に基づいてプロットされ得る。データポイントの各々が特定の時系列シーケンスに対してプロットされると、データポイントの各々は、仮想環境において線オブジェクトによって順次接続され得る。これは、線、射線、ポリゴンバー、および/または線グラフオブジェクト1100におけるこれらの接続を表し得る任意の他の3D構築物に対応し得る。この同じ手順は、視覚化コンポーネントに提供されるデータセット中の時系列シーケンスの各々に対して実行され得る。これらは、実施形態に応じて、逐次的および/または同時にプロットされてもよい。
【0078】
図14は、いくつかの実施形態による、ユーザがどのように仮想環境でデータと対話することができるかを示す。上述したように、仮想環境において仮想現実デバイスおよび/または対応する仮想カメラを装備したユーザは、仮想環境内を動くことができる。これは、ユーザが仮想環境内で、線グラフオブジェクト1100の部分の上を移動する、中を移動する、および/またはそこを通過することを可能にすることを含み得る。
【0079】
この例では、2人のユーザが仮想環境に存在し得る。これらのユーザは、仮想環境において、仮想カメラによって表現され得る。仮想環境において仮想カメラの表現を表示する代わりに、いくつかの実施形態は、代わりに、個々のユーザに対応するアバター1402、1404を生成してもよい。したがって、あるユーザが仮想カメラを動かすことによって仮想環境内を移動すると、仮想環境内の他のユーザは、アバター1402、1404が仮想環境内をアニメーション化された態様で移動するのを見ることができる。アバター1402のユーザは、仮想環境を見ると、
図14に示すアバター1402のパースペクティブから、線グラフオブジェクト1100および他のユーザのアバター1404を含む仮想環境を見ることができる。
【0080】
ユーザは、仮想環境において、所望のデータの時系列シーケンスと対話することを可能にするレベルまで、自分自身をスケーリングすることができる。例えば、この例では、ユーザは、線1302によって表される時系列シーケンスと対話することができるように、彼らのアバター1402、1404を縮小している。いくつかの実施形態では、ユーザが線1302により近くなるにつれて、個々のデータポイントは、線1302上で強調表示されて、それらとの対話がより容易になる。例えば、アバター1402が線1302の隣に移動すると、データポイント1304は、ユーザがデータポイント1304と対話できるように球体として見えるようになってもよい。これらの球体は、時系列シーケンスを表す線の軌跡のビューの混乱を避けるために、ユーザがデータポイント位置に近接していないときには隠されてもよい。
【0081】
ユーザは、仮想環境内において対応する球体を「掴む」ことによって、自身のアバター1402にデータポイント1304と対話させ得る。これは、上述の仮想現実システムの手制御を用いて行われてもよい。次いで、ユーザは、そのデータポイント1304の属性値などの追加情報をそのデータポイントに対して表示させることができる。次いで、ユーザは、ポップアップユーザインターフェイスを介してそれらの属性値のいずれかを変更し、時系列シーケンスの線1302においてデータポイント1304を置き換えることができる。
【0082】
いくつかの実施形態はまた、ユーザがデータポイントの位置を変更することを可能にし得る。例えば、ユーザは、アバター1402に、データポイント1304の球体を「掴ま」せ、その位置を上下に移動させ得る。データポイント1304の対応する値および/または時間は、それに応じて変更され得る。これらの変更は、両方のユーザに、彼らのアバター1402、1404を介して可視であり得る。これらの変更は、これらの変更を行うユーザのみに制限されてもよい。いくつかの実施形態では、これらの変更を基礎となるデータソースに書き戻すこともできるが、他の実施形態では、基礎となるデータソースに書き戻すことなく、仮想環境において変更を反映するに過ぎなくてもよい。
【0083】
上述したように、データ内に時間依存成分を有する時系列シーケンスを表示するために、多くの異なる視覚化コンポーネントを用いることができる。上記で論じた線グラフコンポーネントの例は、単に例として提供され、限定することを意図していない。他の実施形態は、時間に対応する次元を含む任意のタイプの視覚化コンポーネントを用いることができる。
【0084】
図15は、いくつかの実施形態による、線グラフコンポーネントにバインディングされた同じデータを視覚化するために用いられ得る円形棒グラフコンポーネントを示す。円形棒グラフコンポーネントは、仮想環境において円形棒グラフオブジェクト1500を生成するために用いられ得る。他の視覚化コンポーネントと同様に、円形棒グラフオブジェクト1500は、オブジェクト1500を生成するために用いられる1つまたは複数のデータセットにバインディングされ得る。
【0085】
上述したように、情報の仮想ダッシュボードを形成するために、仮想環境において複数の視覚化コンポーネントをインスタンス化または生成することができる。ストーリーデータ構造を用いて、データをさまざまな視覚化コンポーネント間でアニメーション化し、遷移させてもよい。この例では、線グラフオブジェクトからの時系列シーケンスは、円形棒グラフオブジェクト1500に遷移またはアニメーション化されて、同じデータを異なる態様で表示する。
【0086】
円形棒グラフオブジェクト1500は、グラフ1500の中心から発する個々の線を含むことができる。これらの線の各々は、データポイントの単一の時系列シーケンスを表し得る。時間次元は、円の中心から発するこれらの線の各々が規則的に間隔を空けられたセクタに分割されて表され得る。これらのデータポイントの各々の値は、円の縁から延びる垂直バーによって表され得る。これらのバーの各々は、個々の時系列シーケンスを表すように間隔を空けられ得る。したがって、円形棒グラフ1500は、依然として個々の時系列シーケンスをユーザに対して一緒に視覚的にグループ化しながら、時間および/または値次元を表し得る。
【0087】
円形棒グラフ1500は、上述したように、ユーザによって占有される仮想環境の一部を形成してもよい。例えば、アバター1402、1404によって表されるユーザは、仮想環境において円形棒グラフオブジェクト1500の頂部に沿って歩くことができる。ユーザは、円上の対応するセクションを踏むかまたはそうでなければそれに触れるすることによって、異なる時間シーケンスおよび/または値を強調表示してもよい。
【0088】
円形棒グラフ1500は、上述の時系列データだけでなく、任意のタイプのデータを表示するために用いられ得る。円の中心から発する線はデータのグループ化を表すことができ、これらの線から分割されるセクタはデータのサブグループ化を表すことができる。下方に延びる垂直バーは、任意の次元の任意の値を表すことができる。したがって、円形棒グラフ1500によって表されるデータポイントの時系列シーケンスは、例として提示されたものにすぎず、円形棒グラフ1500の動作を制限することを意図するものではない。
【0089】
図16は、いくつかの実施形態による、線グラフ1100と同様に動作する円グラフ1500を示す。この例では、円グラフ1500内の各円は、データポイントの単一の時系列シーケンスに対応し得る。円の中心から延びる径方向線は、時間次元における分割に対応し得る。上方に延びる垂直バーは、時系列における各データポイントの値に対応する。円グラフ1600は、上述の線グラフ1100のプロット方法と同様の方法でプロットすることができる。例えば、線グラフ1100は、円グラフ1600を形成するためにそれ自体の周囲に巻き付けられてもよい。
【0090】
円グラフ1600は、周期的なデータを見るのに有利であり得る。例えば、データが繰り返される(例えば、テストを繰り返したり、入力データを繰り返したりするなど)につれて、これらのデータは、円グラフ1600における円の繰り返し横断によって表され得る繰り返しパターンを形成し得る。グラフの周りの各サイクルは、垂直バーが垂直次元においてデータのヒストグラム表現を形成するように、新たなデータをその以前の位置におけるデータと集約してもよい。
【0091】
円グラフ1600は、任意のタイプのデータとともに用いられてもよく、円の中心から延びる径方向線は、必ずしも時間次元における分割を表す必要はない。任意の他のタイプのデータが、円グラフ1600によって表され得る。さらに、円グラフ1600は、円形棒グラフ1500および/または線グラフ1100などの他の視覚化コンポーネントを含む仮想ダッシュボードの一部であってもよい。この仮想ダッシュボードは、上述のファネルオブジェクトなどの視覚化コンポーネントも含み得る。
【0092】
図17は、いくつかの実施形態による、対話型仮想環境において時系列データを視覚化するための方法のフローチャート1700を示す。本方法は、データポイントの複数の時系列シーケンスを含む1つまたは複数のデータセットを受信することを含み得る(1702)。データセットは、テストデータ、企業データ、企業アプリケーションまたはデータベースからのデータ、ウェブサービスまたは任意の他のデータソースから受信されたデータなどを含み得る。データポイントの時系列シーケンスの各々は、各データポイントがタイムスタンプに関連付けられ、および/または定期的な時間間隔で受信されるように、時間次元を含み得る。
【0093】
本方法はまた、データポイントの複数の時系列シーケンスの各々を仮想環境において3D線グラフにプロットすること(1704)を含み得る。上述のように、これは、線グラフのために座標系を生成することと、その座標系を仮想環境において見出される次元に変換することと、個々のデータポイントをそれらの座標にプロットすることとを含み得る。いくつかの実施形態は、これらの座標を線または他の3D構築物を用いて一緒に結合して、データポイントの時系列シーケンスが時間次元を通って移動するときのデータポイントの時系列シーケンスを表すことができる。いくつかの実施形態は、時系列シーケンスが仮想環境において容易に区別されるように、時系列シーケンスの各々を別の次元に沿って分離することもできる。
【0094】
本方法は、仮想環境において3D線グラフの周囲を移動するように構成された1つまたは複数の仮想カメラを用いて、3D線グラフの1つまたは複数のビューを生成することをさらに含んでもよい(1706)。仮想カメラの各々は、仮想環境において3D線グラフのビューを捕捉し、その画像の2Dビューを、表示装置上に表示されるようレンダリングすることによって、ビューを生成することができる。仮想カメラの各々は、ユーザによって操作されるクライアントデバイスに対応し得る。これらのクライアントデバイスは、2D画面を有するデバイス(例えば、ラップトップコンピュータ、デスクトップコンピュータなど)または3D表示能力を有するデバイス(例えば、拡張現実眼鏡、仮想現実ヘッドセットなど)を含み得る。
【0095】
本方法は、3D線グラフの1つまたは複数のビューを1つまたは複数のクライアントデバイスに送信することをさらに含み得る(1708)。ビューは、クライアントデバイスの各々においてインタラクティブなフレームレートで表示されるように、リアルタイムで送信されてもよい。これにより、クライアントデバイスのユーザは、仮想環境において互いに対話することができる。これはまた、ユーザのいずれかが、3D線グラフ内の個々のデータポイントと対話することも可能にし得る。例えば、ユーザは、仮想環境内で3D線グラフ内の個々のデータポイントを操作することによって、それらの値を変更することが可能である。これらの変更は、視覚化コンポーネントにバインディングされた基礎となるデータにおける変化を引き起こし得る。
【0096】
図17に示される特定のステップは、さまざまな実施形態に従って対話型仮想環境において時系列データを視覚化する特定の方法を提供することを理解されたい。代替の実施形態に従って、他の一連のステップも実行することができる。例えば、本発明の代替実施形態は、上記で概説したステップを異なる順序で実行することができる。さらに、
図17に示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスで実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて追加のステップを追加または削除することができる。当業者は、多くの変形形態、修正形態、および代替形態を認識するであろう。
【0097】
本明細書で説明される方法の各々は、コンピュータシステムによって実現され得る。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/またはユーザが関与する入力/出力を与えられてもよい。例えば、ユーザは、方法の各ステップに対する入力を提供してもよく、これらの入力の各々は、そのような入力を要求する特定の出力に応答してもよく、その出力は、コンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受信されてもよい。さらに、入力は、ユーザから、別のコンピュータシステムからデータストリームとして受信され、メモリ位置から検索して取得され、ネットワークを介して検索して取得され、ウェブサービスから要求されるなどすることができる。同様に、出力は、ユーザに、データストリームとして別のコンピュータシステムに提供され、メモリ位置に記憶され、ネットワークを介して送信され、ウェブサービスに提供されなどすることができる。要するに、本明細書に記載される方法の各ステップは、コンピュータシステムによって実施されてもよく、ユーザが関与してもしなくてもよい、コンピュータシステムへの、およびコンピュータシステムからの、任意の数の入力、出力、および/または要求を含んでもよい。ユーザが関与しないこれらのステップは、人間の介入なしにコンピュータシステムによって自動的に実行されるといえる。したがって、本開示に照らして、本明細書で説明される各方法の各ステップは、ユーザへの入力およびユーザからの出力を含むように変更され得るか、または任意の決定がプロセッサによって行われる場合、人間の介入なしにコンピュータシステムによって自動的に行われ得ることが理解されるであろう。さらに、本明細書で説明する方法の各々のいくつかの実施形態は、有形のソフトウェア製品を形成するために有形の非一時的記憶媒体に記憶される命令のセットとして実現され得る。
【0098】
図18は、実施形態のうちの1つを実現するための分散型システム1800を示す簡略図である。例示された実施形態においては、分散型システム1800は、1つ以上のネットワーク1810を介して、ウェブブラウザ、プロプライエタリクライアント(たとえばオラクルフォーム)などのクライアントアプリケーションを実行して動作させるように構成される1つ以上のクライアントコンピューティングデバイス1802、1804、1806および1808を含む。サーバ1812は、ネットワーク1810を介してリモートクライアントコンピューティングデバイス1802、1804、1806および1808と通信可能に結合されてもよい。
【0099】
さまざまな実施形態においては、サーバ1812は、システムの構成要素のうち1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態においては、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)モデルのもとで、クライアントコンピューティングデバイス1802,1804,1806および/または1808のユーザに供給されてもよい。そして、クライアントコンピューティングデバイス1802,1804,1806および/または1808を動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、サーバ1812と相互作用して、これらの構成要素によって提供されるサービスを利用し得る。
【0100】
図に示されている構成では、システム1800のソフトウェアコンポーネント1818,1820および1822は、サーバ1812上に実装されるように示されている。また、他の実施形態においては、システム1800の構成要素のうちの1つ以上および/またはこれらの構成要素によって提供されるサービスは、クライアントコンピューティングデバイス1802,1804,1806および/または1808のうちの1つ以上によって実現されてもよい。その場合、クライアントコンピューティングデバイスを動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、これらの構成要素によって提供されるサービスを使用し得る。これらの構成要素は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。分散型システム1800とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。したがって、図に示されている実施形態は、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されたものではない。
【0101】
クライアントコンピューティングデバイス1802,1804,1806および/または1808は、手持ち式携帯機器(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、計算タブレット、パーソナルデジタルアシスタント(personal digital assistant:PDA))またはウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)であってもよく、当該装置は、マイクロソフトウィンドウズ(登録商標)・モバイル(登録商標)などのソフトウェアを実行し、および/または、iOS、ウィンドウズ・フォン、アンドロイド(登録商標)、ブラックベリー10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、eメール、ショート・メッセージ・サービス(short message service:SMS)、ブラックベリー(登録商標)、または使用可能な他の通信プロトコルである。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータであってもよく、当該汎用パーソナルコンピュータは、一例として、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、ワークステーションコンピュータであってもよく、当該ワークステーションコンピュータは、たとえばGoogle Chrome OSなどのさまざまなGNU/リナックスオペレーティングシステムを含むがこれらに限定されるものではないさまざまな市販のUNIX(登録商標)またはUNIXライクオペレーティングシステムのうちのいずれかを実行する。代替的には、または付加的には、クライアントコンピューティングデバイス1802,1804,1806および1808は、シン・クライアントコンピュータ、インターネットにより可能なゲームシステム(たとえばキネクト(登録商標)ジェスチャ入力装置を備えるかまたは備えないマイクロソフトXボックスゲーム機)、および/または、ネットワーク1810を介して通信が可能なパーソナルメッセージング装置などのその他の電子装置であってもよい。
【0102】
例示的な分散型システム1800は、4個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有する装置などの他の装置が、サーバ1812と相互作用してもよい。
【0103】
分散型システム1800におけるネットワーク1810は、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよく、当該プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトークなどを含むが、これらに限定されるものではない。単に一例として、ネットワーク1810は、イーサネット(登録商標)、トークンリングなどに基づくものなどのローカルエリアネットワーク(LAN)であってもよい。ネットワーク1810は、広域ネットワークおよびインターネットであってもよい。ネットワーク1810は、仮想ネットワークを含んでいてもよく、当該仮想ネットワークは、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば米国電気電子学会(Institute of Electrical and Electronics:IEEE)802.11の一連のプロトコル、ブルートゥース(登録商標)および/またはその他の無線プロトコルのうちのいずれかのもとで動作するネットワーク)、および/またはこれらの任意の組合せ、および/または他のネットワークを含むが、これらに限定されるものではない。
【0104】
サーバ1812は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組合せで構成され得る。さまざまな実施形態においては、サーバ1812は、上記の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ1812は、本開示の実施形態に係る上記の処理を実行するためのサーバに対応してもよい。
【0105】
サーバ1812は、上記のもののうちのいずれか、および、任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ1812は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェース)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的サーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、オラクル社(Oracle)、マイクロソフト社(Microsoft)、サイベース社(Sybase)、IBM社(International Business Machines)などから市販されているものを含むが、これらに限定されるものではない。
【0106】
いくつかの実現例では、サーバ1812は、クライアントコンピューティングデバイス1802,1804,1806および1808のユーザから受信されたデータフィードおよび/またはイベント更新を分析および統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新は、1つ以上の第三者情報源および連続的なデータストリームから受信されるツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、これらに限定されるものではなく、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどに関連するリアルタイムイベントを含み得る。また、サーバ1812は、クライアントコンピューティングデバイス1802,1804,1806および1808の1つ以上の表示装置を介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
【0107】
また、分散型システム1800は、1つ以上のデータベース1814および1816を含み得る。データベース1814および1816は、さまざまな場所に存在し得る。一例として、データベース1814および1816の1つ以上は、サーバ1812にローカルな(および/または存在する)非一時的な記憶媒体に存在していてもよい。代替的に、データベース1814および1816は、サーバ1812から遠く離れていて、ネットワークベースまたは専用の接続を介してサーバ1812と通信してもよい。一組の実施形態においては、データベース1814および1816は、記憶領域ネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ1812に起因する機能を実行するための任意の必要なファイルが、サーバ1812上にローカルに、および/または、リモートで適宜格納されていてもよい。一組の実施形態においては、データベース1814および1816は、SQLフォーマットコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
【0108】
図19は、本開示の実施形態に係る、実施形態のシステムの1つ以上の構成要素によって提供されるサービスをクラウドサービスとして供給することができるシステム環境1900の1つ以上の構成要素の簡略化されたブロック図である。示されている実施形態においては、システム環境1900は、クラウドサービスを提供するクラウドインフラストラクチャシステム1902と相互作用するようにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス1904,1906および1908を含む。クライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム1902によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム1902と相互作用するようにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専有のクライアントアプリケーション(たとえばオラクルフォームズ)または他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【0109】
図に示されているクラウドインフラストラクチャシステム1902が図示されている構成要素とは他の構成要素を有し得ることが理解されるべきである。さらに、図に示されている実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態においては、クラウドインフラストラクチャシステム1902は、図に示されているものよりも多いまたは少ない数の構成要素を有していてもよく、2つ以上の構成要素を組合せてもよく、または構成要素の異なる構成または配置を有していてもよい。
【0110】
クライアントコンピューティングデバイス1904,1906および1908は、1802,1804,1806および1808について上記したものと類似のデバイスであってもよい。
【0111】
例示的なシステム環境1900は3個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサなどを有する装置などの他の装置が、クラウドインフラストラクチャシステム1902と相互作用してもよい。
【0112】
ネットワーク1910は、クライアント1904,1906および1908とクラウドインフラストラクチャシステム1902との間のデータの通信およびやりとりを容易にし得る。各々のネットワークは、ネットワーク1810について上記したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよい。
【0113】
クラウドインフラストラクチャシステム1902は、サーバ1812について上記したものを含み得る1つ以上のコンピュータおよび/またはサーバを備え得る。
【0114】
特定の実施形態においては、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータ記憶およびバックアップソリューション、ウェブベースのeメールサービス、ホスト型オフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドインフラストラクチャシステムによって提供されるサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、インターネットなどの通信ネットワークを介してクラウドサービスプロバイダのシステムからユーザが利用可能な任意のサービスは、「クラウドサービス」と称される。通常、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムがアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションを注文および使用してもよい。
【0115】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションへの保護されたコンピュータネットワークアクセス、またはクラウドベンダによってユーザに提供されるかもしくはそうでなければ当該技術分野において公知の他のサービスを含み得る。たとえば、サービスは、インターネットを介したクラウド上のリモートストレージへのパスワードによって保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされるeメールソフトウェアアプリケーションへのアクセスを含み得る。
【0116】
特定の実施形態においては、クラウドインフラストラクチャシステム1902は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に配信される一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【0117】
さまざまな実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステム1902によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム1902は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、クラウドインフラストラクチャシステム1902が、(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、一般大衆またはさまざまな産業企業がサービスを利用できるパブリッククラウドモデルのもとでサービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム1902が単一の組織のためだけに運営され、当該組織内の1つ以上のエンティティにサービスを提供し得るプライベートクラウドモデルのもとでサービスが提供されてもよい。また、クラウドインフラストラクチャシステム1902およびクラウドインフラストラクチャシステム1902によって提供されるサービスが、関連のコミュニティ内のいくつかの組織によって共有されるコミュニティクラウドモデルのもとでクラウドサービスが提供されてもよい。また、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルのもとでクラウドサービスが提供されてもよい。
【0118】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(Infrastructureas a Service:IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリのもとで提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーによって、クラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスを注文し得る。次いで、クラウドインフラストラクチャシステム1902は、顧客のサブスクリプションオーダーでサービスを提供するために処理を実行する。
【0119】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、SaaSプラットフォームは、一体化された開発およびデプロイメントプラットフォーム上で一連のオンデマンドアプリケーションを構築および配信するための機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムで実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例としては、大規模組織のための販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
【0120】
いくつかの実施形態においては、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通アーキテクチャ上で統合することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、これらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例としては、オラクルJavaクラウドサービス(Java Cloud Service:JCS)、オラクルデータベースクラウドサービス(Database Cloud Service:DBCS)などが挙げられるが、これらに限定されるものではない。
【0121】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態においては、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービル(たとえばオラクルフージョンミドルウェアサービス)およびJavaクラウドサービスを含み得る。一実施形態においては、データベースクラウドサービスは、組織がデータベースリソースをプールしてデータベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステムにおいてさまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得るともに、Javaクラウドサービスは、クラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
【0122】
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるIaaSプラットフォームによって提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワークなどの基本的な計算リソース、ならびに、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
【0123】
また、特定の実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース1930を含み得る。一実施形態においては、インフラストラクチャリソース1930は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するための、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め一体化された最適な組合せを含み得る。
【0124】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割り振りされてもよい。また、リソースは、異なる時間帯にユーザに割り振られてもよい。たとえば、クラウドインフラストラクチャシステム1930は、第1の時間帯におけるユーザの第1の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし得るとともに、異なる時間帯に位置するユーザの別の組への同一のリソースの再割り振りを可能にし得ることによって、リソースの利用を最大化することができる。
【0125】
特定の実施形態においては、クラウドインフラストラクチャシステム1902のさまざまな構成要素またはモジュール、および、クラウドインフラストラクチャシステム1902によって提供されるサービス、によって共有されるいくつかの内部共有サービス1932が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、インテグレーションサービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【0126】
特定の実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえばSaaSサービス、PaaSサービスおよびIaaSサービス)の包括的管理を提供し得る。一実施形態においては、クラウド管理機能は、クラウドインフラストラクチャシステム1902によって受信された顧客のサブスクリプションをプロビジョニング、管理および追跡などするための機能を含み得る。
【0127】
一実施形態においては、図に示されるように、クラウド管理機能は、オーダー管理モジュール1920、オーダーオーケストレーションモジュール1922、オーダープロビジョニングモジュール1924、オーダー管理および監視モジュール1926、ならびにアイデンティティ管理モジュール1928などの1つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含み得るか、またはそれらを用いて提供され得る。
【0128】
例示的な動作1934において、クライアントデバイス1904,1906または1908などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1902によって供給される1つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クラウドインフラストラクチャシステム1902と対話し得る。特定の実施形態においては、顧客は、クラウドユーザインターフェース(UserInterface:UI)、すなわちクラウドUI1912、クラウドUI1914および/またはクラウドUI1916にアクセスして、これらのUIを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム1902によって受信されたオーダー情報は、顧客と、顧客がサブスクライブする予定のクラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスとを特定する情報を含み得る。
【0129】
オーダーが顧客によって行われた後、オーダー情報は、クラウドUI1912,1914および/または1916を介して受信される。
【0130】
動作1936において、オーダーは、オーダーデータベース1918に格納される。オーダーデータベース1918は、クラウドインフラストラクチャシステム1918によって動作されるとともに他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであってもよい。
【0131】
動作1938において、オーダー情報は、オーダー管理モジュール1920に転送される。いくつかの例では、オーダー管理モジュール1920は、オーダーの確認および確認時のオーダーの予約などのオーダーに関連する請求書発行機能および会計経理機能を実行するように構成され得る。
【0132】
動作1940において、オーダーに関する情報は、オーダーオーケストレーションモジュール1922に通信される。オーダーオーケストレーションモジュール1922は、顧客によって行われたオーダーについてのサービスおよびリソースのプロビジョニングをオーケストレートするためにオーダー情報を利用し得る。いくつかの例では、オーダーオーケストレーションモジュール1922は、オーダープロビジョニングモジュール1924のサービスを用いてサブスクライブされたサービスをサポートするためにリソースのプロビジョニングをオーケストレートし得る。
【0133】
特定の実施形態においては、オーダーオーケストレーションモジュール1922は、各々のオーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用してオーダーがプロビジョニングに進むべきか否かを判断する。動作1942において、新たなサブスクリプションについてのオーダーを受信すると、オーダーオーケストレーションモジュール1922は、リソースを割り振って当該サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するための要求をオーダープロビジョニングモジュール1924に送る。オーダープロビジョニングモジュール1924は、顧客によってオーダーされたサービスについてのリソースの割り振りを可能にする。オーダープロビジョニングモジュール1924は、クラウドインフラストラクチャシステム1900によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間にあるレベルの抽象化を提供する。したがって、オーダーオーケストレーションモジュール1922は、サービスおよびリソースが実際に実行中にプロビジョニングされるか、事前にプロビジョニングされて要求があったときに割振られる/割当てられるのみであるかなどの実装の詳細から切り離すことができる。
【0134】
動作1944において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム1902のオーダープロビジョニングモジュール1924によってクライアントデバイス1904,1906および/または1908上の顧客に送られ得る。
【0135】
動作1946において、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール1926によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール1926は、使用される記憶量、転送されるデータ量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などのサブスクリプションオーダーにおけるサービスについての使用統計を収集するように構成され得る。
【0136】
特定の実施形態においては、クラウドインフラストラクチャシステム1900は、アイデンティティ管理モジュール1928を含み得る。アイデンティティ管理モジュール1928は、クラウドインフラストラクチャシステム1900におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成され得る。いくつかの実施形態においては、アイデンティティ管理モジュール1928は、クラウドインフラストラクチャシステム1902によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報と、それらの顧客がさまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することを認可されるかを記載する情報とを含み得る。また、アイデンティティ管理モジュール1928は、各々の顧客についての説明的情報、ならびに、どのようにしておよび誰によってこの説明的情報がアクセスおよび変更され得るかについての情報の管理を含み得る。
【0137】
図20は、本発明のさまざまな実施形態を実現することができる例示的なコンピュータシステム2000を示す。システム2000は、上記のコンピュータシステムのうちのいずれかを実現するために使用され得る。図に示されているように、コンピュータシステム2000は、バスサブシステム2002を介していくつかの周辺サブシステムと通信する処理ユニット2004を含む。これらの周辺サブシステムは、処理加速ユニット2006と、I/Oサブシステム2008と、記憶サブシステム2018と、通信サブシステム2024とを含み得る。記憶サブシステム2018は、有形のコンピュータ読取可能な記憶媒体2022と、システムメモリ2010とを含む。
【0138】
バスサブシステム2002は、コンピュータシステム2000のさまざまな構成要素およびサブシステムに、意図されたように互いに通信させるための機構を提供する。バスサブシステム2002は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム2002は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、IEEE P1386.1標準に合わせて製造されたメザニンバスとして実現可能な、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、拡張ISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバスおよび周辺機器相互接続(Peripheral Component Interconnect:PCI)バスを含み得る。
【0139】
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現可能な処理ユニット2004は、コンピュータシステム2000の動作を制御する。処理ユニット2004には、1つ以上のプロセッサが含まれ得る。これらのプロセッサは、単一コアまたはマルチコアのプロセッサを含み得る。特定の実施形態においては、処理ユニット2004は、各々の処理ユニットに含まれる単一コアまたはマルチコアのプロセッサを有する1つ以上の独立した処理ユニット2032および/または2034として実現されてもよい。また、他の実施形態においては、処理ユニット2004は、2つのデュアルコアプロセッサを単一のチップに組み入れることによって形成されるクアッドコア処理ユニットとして実現されてもよい。
【0140】
さまざまな実施形態においては、処理ユニット2004は、プログラムコードに応答してさまざまなプログラムを実行し得るとともに、同時に実行される複数のプログラムまたはプロセスを維持し得る。任意の所与の時点において、実行されるべきプログラムコードのうちのいくつかまたは全ては、プロセッサ2004および/または記憶サブシステム2018に存在し得る。好適なプログラミングを通じて、プロセッサ2004は、上記のさまざまな機能を提供し得る。また、コンピュータシステム2000は、加えて、デジタル信号プロセッサ(digital signal processor:DSP)、特殊用途プロセッサなどを含み得る処理加速ユニット2006を含み得る。
【0141】
I/Oサブシステム2008は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含み得る。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、タッチパッドまたはタッチスクリーンを含んでいてもよく、これらは、音声コマンド認識システム、マイクロホンおよび他のタイプの入力装置とともに、ディスプレイ、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、オーディオ入力装置に組込まれている。ユーザインターフェイス入力装置は、たとえば、ジェスチャおよび話されたコマンドを用いてナチュラルユーザインターフェースを介してユーザがマイクロソフトXbox(登録商標)360ゲームコントローラなどの入力装置を制御して入力装置と対話することを可能にするマイクロソフトキネクト(登録商標)モーションセンサなどのモーション検知および/またはジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザから眼球運動(たとえば撮影および/またはメニュー選択を行っている間の「まばたき」)を検出して、当該眼球ジェスチャを入力装置への入力として変換するグーグルグラス(登録商標)まばたき検出器などの眼球ジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識検知装置を含み得る。
【0142】
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線検出装置を含み得るが、これらに限定されるものではない。また、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴画像化、位置発光断層撮影、医療用超音波検査装置などの医療用画像化入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえばMIDIキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
【0143】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、表示灯、またはオーディオ出力装置などの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するものなどのフラットパネルディスプレイ、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム2000からの情報をユーザまたは他のコンピュータに出力するための全ての実現可能なタイプの装置および機構を含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車のナビゲーションシステム、プロッタ、音声出力装置およびモデムなどの、テキスト、グラフィックスおよびオーディオ/ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【0144】
コンピュータシステム2000は、現在のところシステムメモリ2010内に位置しているように示されているソフトウェア要素を備える記憶サブシステム2018を備え得る。システムメモリ2010は、処理ユニット2004上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されるデータとを格納し得る。
【0145】
コンピュータシステム2000の構成およびタイプに応じて、システムメモリ2010は、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)であってもよく、および/または、不揮発性(リードオンリメモリ(read-only memory:ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理ユニット2004が直ちにアクセス可能なデータおよび/またはプログラムモジュール、および/または、処理ユニット2004によって現在動作および実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ2010は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム2000内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納され得る。一例としておよび非限定的に、システムメモリ2010は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム2012、プログラムデータ2014およびオペレーティングシステム2016も示す。一例として、オペレーティングシステム2016は、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはリナックスオペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、ならびに/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイドOS、ブラックベリー(登録商標)10OSおよびパーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0146】
また、記憶サブシステム2018は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能な記憶媒体を提供し得る。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム2018に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット2004によって実行され得る。また、記憶サブシステム2018は、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【0147】
また、記憶サブシステム2000は、コンピュータ読取可能な記憶媒体2022にさらに接続可能なコンピュータ読取可能な記憶媒体リーダ2020を含み得る。ともにおよび任意には、システムメモリ2010と組合せて、コンピュータ読取可能な記憶媒体2022は、コンピュータ読取可能な情報を一時的および/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモートの、ローカルの、固定されたおよび/または取外し可能な記憶装置を包括的に表わし得る。
【0148】
コードまたはコードの一部を含むコンピュータ読取可能な記憶媒体2022は、当該技術分野において公知のまたは使用される任意の適切な媒体を含み得る。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ読取可能な媒体などの有形のコンピュータ読取可能な記憶媒体を含み得る。また、これは、データ信号、データ送信などの無形のコンピュータ読取可能な媒体、または、所望の情報を送信するために使用可能であるとともに計算システム2000によってアクセス可能である他の任意の媒体を含み得る。
【0149】
一例として、コンピュータ読取可能な記憶媒体2022は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびブルーレイ(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含み得る。コンピュータ読取可能な記憶媒体2022は、ジップ(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ読取可能な記憶媒体2022は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含み得る。ディスクドライブおよびそれらの関連のコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム2000に提供し得る。
【0150】
通信サブシステム2024は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム2024は、他のシステムからデータを受信したり、コンピュータシステム2000から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム2024は、コンピュータシステム2000がインターネットを介して1つ以上の装置に接続することを可能にし得る。いくつかの実施形態においては、通信サブシステム2024は、(たとえば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、WiFi(IEEE1902.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組合せ)、全地球測位システム(global positioning system:GPS)レシーバコンポーネント、および/または、他のコンポーネントを含み得る。いくつかの実施形態においては、通信サブシステム2024は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット)を提供し得る。
【0151】
また、いくつかの実施形態においては、通信サブシステム2024は、コンピュータシステム2000を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード2026、イベントストリーム2028、イベント更新2030などの形態で入力通信を受信し得る。
【0152】
一例として、通信サブシステム2024は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード2026をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成され得る。
【0153】
加えて、通信サブシステム2024は、連続的なデータストリームの形態でデータを受信するように構成され得る。当該データは、連続的である場合もあれば本質的に明確な端部をもたない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム2028および/またはイベント更新2030を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【0154】
また、通信サブシステム2024は、構造化されたおよび/または構造化されていないデータフィード2026、イベントストリーム2028、イベント更新2030などを、コンピュータシステム2000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成され得る。
【0155】
コンピュータシステム2000は、手持ち式携帯機器(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの1つであってもよい。
【0156】
コンピュータおよびネットワークの絶え間なく変化し続ける性質のために、図に示されているコンピュータシステム2000の説明は、特定の例として意図されているに過ぎない。図に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が可能である。たとえば、ハードウェア、ファームウェア、(アプレットを含む)ソフトウェア、または組合せにおいて、カスタマイズされたハードウェアが使用されてもよく、および/または、特定の要素が実装されてもよい。さらに、ネットワーク入力/出力装置などの他のコンピューティングデバイスへの接続が利用されてもよい。本明細書中に提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の手段および/または方法を理解するであろう。
【0157】
前述の説明では、説明の目的のために、本発明のさまざまな実施形態の完全な理解を提供するために、多数の具体的な詳細が述べられた。しかしながら、本発明の実施形態は、これらの具体的な詳細のいくつかを伴わずに実施され得ることが当業者には明白であろう。他の例では、周知の構造およびデバイスがブロック図形式で示される。
【0158】
上記の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を制限することを意図していない。むしろ、例示的な実施形態の前述の説明は、例示的な実施形態を実施するための可能な説明を当業者に与えるであろう。特許請求の範囲に記載されている本発明の精神および範囲から逸脱することなく、要素の機能および構成にさまざまな変更を加えることができることを理解されたい。
【0159】
上記の説明では、実施形態の完全な理解を与えるために具体的な詳細が与えられている。しかしながら、当業者には、実施の形態はこれらの具体的な詳細なしに実施されてもよいことが理解される。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、実施形態を不必要な詳細において不明瞭にしないために、ブロック図の形態でコンポーネントとして示されている場合がある。他の事例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細を伴わずに示されていることがある。
【0160】
さらに、個々の実施の形態は、フローチャート、フロー図、データフロー図、構造図またはブロック図として示されるプロセスとして記載されている場合があることが注記される。フローチャートは動作をシーケンシャルなプロセスとして記載している場合があるが、動作の多くは並列または同時に実行され得る。加えて、動作の順序は再構成されてもよい。プロセスは、その動作が完了されるときに終結されるが、図に含まれない追加のステップを含み得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合では、その終結は、その関数が呼出関数または主関数に戻ることに対応し得る。
【0161】
「コンピュータ読取可能媒体」という語は、命令および/またはデータを記憶するか、含むか、または担持することができるポータブルまたは固定された記憶装置、光記憶装置、ワイヤレスチャネルおよびさまざまな他の的媒体を含むが、それらに限定はされない。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文のいずれかの組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータまたはメモリコンテンツを受け渡すおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ受渡し、トークン受渡し、ネットワーク伝送などを含む任意の好適な手段を介して渡されるか、転送されるか、または伝送されてもよい。
【0162】
さらに、実施の形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実現される場合には、必要なタスクを実行するプログラムコードまたはコードセグメントを機械読取可能媒体に記憶してもよい。プロセッサが必要なタスクを実行してもよい。
【0163】
上記の明細書では、本発明の局面についてその具体的な実施形態を参照して説明しているが、本発明はそれに限定されるものではないということを当業者は認識するであろう。上記の発明のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、実施形態は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【0164】
さらに、例示の目的のため、方法が特定の順序で説明された。代替の実施形態では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させるマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、1つ以上の機械読取可能媒体、たとえばCD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリなど、または電子命令を記憶するのに適した他の種類の機械読取可能媒体に記憶できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。