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

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

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

特許7461941音声コマンドおよび定義されたパースペクティブを用いた仮想データビューの最適化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-27
(45)【発行日】2024-04-04
(54)【発明の名称】音声コマンドおよび定義されたパースペクティブを用いた仮想データビューの最適化
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240328BHJP
   G06F 3/01 20060101ALI20240328BHJP
   G06F 3/04815 20220101ALI20240328BHJP
   G06F 3/16 20060101ALI20240328BHJP
【FI】
G06T19/00 A
G06F3/01 510
G06F3/04815
G06F3/16 630
【請求項の数】 14
(21)【出願番号】P 2021521478
(86)(22)【出願日】2019-10-21
(65)【公表番号】
(43)【公表日】2022-01-14
(86)【国際出願番号】 US2019057164
(87)【国際公開番号】W WO2020086438
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-07
(31)【優先権主張番号】62/748,504
(32)【優先日】2018-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】モロズ,ベンジャミン・エル
(72)【発明者】
【氏名】グレイザー,ブレンドン・チャールズ
(72)【発明者】
【氏名】カトンゴ,カパヤ
(72)【発明者】
【氏名】ハンソン,クリス・エル
(72)【発明者】
【氏名】バン・デン・ブルーク,ヘンドリック
【審査官】中田 剛史
(56)【参考文献】
【文献】特開2006-190302(JP,A)
【文献】特開平08-263258(JP,A)
【文献】特開2018-018458(JP,A)
【文献】特開2001-137539(JP,A)
【文献】米国特許出願公開第2017/0092008(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/16
G06F 3/01
G06F 3/04815
(57)【特許請求の範囲】
【請求項1】
視覚化オブジェクトに対する最適ビューを決定するための方法であって、
1つまたは複数のデータセットを受信することと、
前記1つまたは複数のデータセット内のデータポイントに対応する3Dオブジェクトを生成することと、
前記3Dオブジェクトを所定の3D形状に配置することと、
前記所定の3D形状の第1のビューを示すコマンドを受信することと、
前記第1のビューに関連付けられる距離を判断することと、
前記所定の3D形状の前記第1のビューの表示を提供することとを含み、前記3Dオブジェクトは、前記第1のビューに関連付けられる前記距離に少なくとも部分的に基づいて、前記所定の3D形状の構造を表す1つまたは複数の3D構築物に対して視覚的に強調される、方法。
【請求項2】
前記第1のビューを示す前記コマンドは、平易な英語音声コマンドを含む、請求項1に記載の方法。
【請求項3】
前記平易な英語音声コマンドを、複数の予め定義されたコマンドにおけるある予め定義されたコマンドに変換することをさらに含む、請求項2に記載の方法。
【請求項4】
前記予め定義されたコマンドを1つまたは複数のニューラルネットワークに与えることをさらに含む、請求項3に記載の方法。
【請求項5】
前記所定の3D形状の前記第1のビューの表示を提供することは、前記1つまたは複数のニューラルネットワークの出力によって決定される仮想カメラのビュー位置を用いる、請求項4に記載の方法。
【請求項6】
前記1つまたは複数のデータセットは、前記1つまたは複数のニューラルネットワークの出力に基づいて選択される、請求項4に記載の方法。
【請求項7】
前記3Dオブジェクトおよび前記所定の3D形状は、前記1つまたは複数のニューラルネットワークの出力に基づいて選択される、請求項4に記載の方法。
【請求項8】
前記第1のビュー位置は、ビュー領域の一部を前記所定の3D形状で埋めるビューを含む、請求項1~7のいずれかに記載の方法。
【請求項9】
前記第1のビューに関連付けられる前記距離が第1の閾値距離よりも大きいと判断し、前記3Dオブジェクトを強調解除しながら前記1つまたは複数の3D構築物を強調することをさらに含む、請求項1~8のいずれかに記載の方法。
【請求項10】
前記第1のビューが第2の閾値を下回るが第1の閾値を超える第2のビュー位置までズームされたと判断し、前記3Dオブジェクトを徐々に強調しながら前記所定の3D形状を徐々に強調解除することをさらに含む、請求項9に記載の方法。
【請求項11】
前記3Dオブジェクトを強調することは、前記3Dオブジェクトの視覚的特性を調整することを含み、前記視覚的特性は、透明度、色、輝度、またはサイズを含む、請求項10に記載の方法。
【請求項12】
前記3Dオブジェクトは、前記3Dオブジェクトの透明度を1つまたは複数の3D構築物の透明度に対して変化させることによって、前記1つまたは複数の3D構築物に対して視覚的に強調される、請求項1~11のいずれかに記載の方法。
【請求項13】
請求項1~12のいずれかに記載の方法を1つまたは複数のプロセッサに実行させるためのプログラム。
【請求項14】
請求項13に記載のプログラムを格納したメモリと、
前記プログラムを実行するための1つまたは複数のプロセッサとを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2018年10月21日に提出された、「3D VISUALIZATION SERVICES INTEGRATING VARIOUS DATA SOURCES AND DISPLAY DEVICES(さまざまなデータソースおよび表示装置を統合する3D視覚化サービス)」と題される米国仮出願第62/748,504号の非仮出願であり、米国特許法第119(e)条の下その利益および優先権を主張し、その全体をあらゆる目的のためにここに引用により援用する。
【0002】
本出願は、以下の5つの米国特許出願にも関連する。
・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 VIEWS USING VOICE COMMANDS(音声コマンドを用いるビューの最適化)」と題される米国特許出願第16/658,169号(弁理士登録番号088325-1142776)であり、その全体をここに引用により援用する。
・2019年10月21日に提出された、Morozeらによる、「ANIMATION BETWEEN VISUALIZATION OBJECTS IN A VIRTUAL DASHBOARD(仮想ダッシュボード内の視覚化オブジェクト間のアニメーション)」と題される米国特許出願第16/658,177号(弁理士登録番号088325-1142782)であり、その全体をここに引用により援用する。
・2019年10月21日に提出された、Morozeらによる、「DATA VISUALIZATION OBJECTS IN A VIRTUAL ENVIRONMENT(仮想環境でのデータ視覚化オブジェクト)」と題される米国特許出願第16/658,180号(弁理士登録番号088325-1143002)であり、その全体をここに引用により援用する。
【背景技術】
【0003】
背景
情報を伝達するための最も有効な方法の1つは、視覚化によるものである。情報を捕捉および分類することは、典型的には、データから引き出され得る結論の完全な理解を得るのには十分ではない。2次元データ可視化は、我々の通信技術の多くを支配するが、これらの可視化技術の多くは、データ収集の態様を強調表示または強調することに対して最適化されていない。効果的なデータ視覚化は、データの態様を非常に迅速に通信する情報提供的な視覚に訴える表現を作成することを伴う。時には、単純な視覚化で十分である。しかしながら、複雑な多次元データでは、データセット自体の複雑さにより、適切な視覚化が困難になり、次元空間が制限される可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
視覚化オブジェクトに対する最適なビューを決定するための方法は、1つまたは複数のデータセットを受信することと、上記1つまたは複数のデータセット内のデータポイントに対応する3Dオブジェクトを生成することと、上記3Dオブジェクトを所定の3D形状に配置することと、上記所定の3D形状の第1のビューを示すコマンドを受信することと、上記第1のビューに関連付けられる距離を判断することと、上記所定の3D形状の上記第1のビューの表示を提供することとを含んでもよい。上記3Dオブジェクトは、上記第1のビューに関連付けられる上記距離に少なくとも部分的に基づいて、上記所定の3D形状の構造を表す1つまたは複数の3D構築物に対して視覚的に強調されてもよい。
【0005】
非一時的コンピュータ読取可能媒体は、1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備えてもよく、上記動作は、1つまたは複数のデータセットを受信することと、上記1つまたは複数のデータセット内のデータポイントに対応する3Dオブジェクトを生成することと、上記3Dオブジェクトを所定の3D形状に配置することと、上記所定の3D形状の第1のビューを示すコマンドを受信することと、上記第1のビューに関連付けられる距離を判断することと、上記所定の3D形状の上記第1のビューの表示を提供することとを含んでもよい。上記3Dオブジェクトは、上記第1のビューに関連付けられる上記距離に少なくとも部分的に基づいて、上記所定の3D形状の構造を表す1つまたは複数の3D構築物に対して視覚的に強調されてもよい。
【0006】
システムは、1つまたは複数のプロセッサと、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに動作を実行させる命令を備える1つまたは複数のメモリデバイスとを備えてもよく、上記動作は、1つまたは複数のデータセットを受信することと、上記1つまたは複数のデータセット内のデータポイントに対応する3Dオブジェクトを生成することと、上記3Dオブジェクトを所定の3D形状に配置することと、上記所定の3D形状の第1のビューを示すコマンドを受信することと、上記第1のビューに関連付けられる距離を判断することと、上記所定の3D形状の上記第1のビューの表示を提供することとを含んでもよい。上記3Dオブジェクトは、上記第1のビューに関連付けられる上記距離に少なくとも部分的に基づいて、上記所定の3D形状の構造を表す1つまたは複数の3D構築物に対して視覚的に強調されてもよい。
【0007】
いずれの実施形態においても、以下の特徴のいずれかが、限定なしに、任意の組み合わせで実現されてもよい。上記第1のビューを示す上記コマンドは、平易な英語音声コマンドを含んでもよい。本方法/動作はまた、上記平易な英語音声コマンドを、複数の予め定義されたコマンドにおけるある予め定義されたコマンドに変換することを含んでもよい。本方法/動作はまた、上記予め定義されたコマンドを1つまたは複数のニューラルネットワークに与えることを含んでもよい。上記所定の3D形状の上記第1のビューの表示を提供することは、上記1つまたは複数のニューラルネットワークの出力によって決定される仮想カメラのビュー位置を用いる。上記1つまたは複数のデータセットは、上記1つまたは複数のニューラルネットワークの出力に基づいて選択されてもよい。上記3Dオブジェクトおよび上記所定の3D形状は、上記1つまたは複数のニューラルネットワークの出力に基づいて選択されてもよい。上記第1のビュー位置は、ビュー領域の約90%を上記所定の3D形状で埋めるビューを含む。本方法/動作はまた、上記第1のビューに関連付けられる上記距離が第1の閾値距離よりも大きいと判断し、上記3Dオブジェクトを強調解除しながら上記1つまたは複数の3D構築物を強調することを含んでもよい。本方法/動作はまた、上記第1のビューが上記第2の閾値を下回るが第1の閾値を超える第2のビュー位置までズームされたと判断し、上記3Dオブジェクトを徐々に強調しながら上記所定の3D形状を徐々に強調解除することを含んでもよい。本方法/動作はまた、上記第1のビューに関連付けられる上記距離が上記第2の閾値距離未満であると判断し、上記3Dオブジェクトを強調しながら上記1つまたは複数の3D構築物を強調解除することを含んでもよい。上記3Dオブジェクトは、上記3Dオブジェクトの透明度を1つまたは複数の3D構築物の透明度に対して変化させることによって、上記1つまたは複数の3D構築物に対して視覚的に強調されてもよい。
【0008】
図面の簡単な説明
本発明の性質および利点のさらに進んだ理解は、明細書および図面の残りの部分を参照することによって実現することができ、いくつかの図面全体を通して、同様のコンポーネントを指すために同様の参照番号が用いられる。場合によっては、下位ラベルが、複数の同様のコンポーネントのうちの1つを示すために参照番号に関連付けられる。既存の下位サブラベルを指定せずに参照符号に言及する場合、そのような複数の同様のコンポーネントすべてを参照することが意図される。
【図面の簡単な説明】
【0009】
図1】いくつかの実施形態による、対話型データディスプレイをオーサリングし、提供し、用いるためのシステムを示す。
図2】いくつかの実施形態による、企業データセットにバインディングされた仮想オブジェクトの例を示す。
図3】コンポーネント交換からアプリケーションにコンポーネントをインポートするためのユーザインターフェイスを示す図である。
図4】いくつかの実施形態による、アプリケーション内のコンポーネントをダウンロードし、インスタンス化するためのプロセスのブロック図を示す。
図5】いくつかの実施形態による、仮想環境において作成された仮想ダッシュボードを示す。
図6】いくつかの実施形態による、さまざまなタイプのクライアントデバイスシステムおよび入力デバイスがすべてEDIE環境において同じ仮想環境と同時にインターフェイスすることができる方法を示す。
図7】いくつかの実施形態による、2D画面インターフェイスを介する仮想環境のビューを示す。
図8】いくつかの実施形態による、複数のユーザが仮想ダッシュボードと対話する仮想環境のビューを示す。
図9】いくつかの実施形態による、仮想環境と対話するために用いられ得る現実世界の環境のビューを示す。
図10】いくつかの実施形態による、多次元ダッシュボードにおいてデータを表示するための方法のフローチャートを示す。
図11】いくつかの実施形態による、ファネルの形態の視覚化オブジェクトの例を示す。
図12A】いくつかの実施形態による、第1の距離からのデータポイントを表す3Dオブジェクトのビューを示す。
図12B】いくつかの実施形態による、モデルベースのシステムを用いてビューおよび/またはデータ表示コマンドを解釈するシステムの図を示す。
図13】いくつかの実施形態による、3D形状のより詳細な図である。
図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】
機械学習および音声コマンドを用いたビューの最適化
前述のように、インポートされたデータセットは、仮想環境において1つまたは複数の視覚化コンポーネントによって表され得る。多くの異なるタイプの視覚化コンポーネントが仮想環境にインポートされて、それらがバインディングされるデータセットを表すことができる。各視覚化コンポーネントとともに利用可能な形状、デザイン、およびアニメーションは、ユーザが複雑なデータセットを見、理解し、操作するための視覚的経験を提供するように具体的に設計され得る。ウェブページ上のグラフまたは2Dパイチャートを単に見る代わりに、ユーザは、データがどのように経時的に変化するか、データがどのように互いに対話するか、および所望の結果を達成するためにどのような変化がデータを通して伝播されたかを示すことができる3次元の高度なアニメーションを見ることができる。これらの視覚化コンポーネントは、企業データを表示し、それと対話するための、従来の2次元ダッシュボードよりも顕著な利点を提供する。
【0064】
以下の図は、特定のタイプのデータを表示し、それと対話するのに有用であり得る、視覚化コンポーネントの例を示す。図11は、いくつかの実施形態による、ファネル1100の形態の視覚化オブジェクトの例を示す。ファネル1100は、最終オブジェクト、ファネル視覚化コンポーネント、またはファネル3Dオブジェクトと呼ばれることがある。ファネル1100は、数千または数百万ものデータポイントを有する大きなデータセットを視覚化するために有用であり得る。ファネル1100は、各データポイントおよびデータポイントのセットに関する情報を集合的に伝えることができる複数の同時視覚的インジケータを提供することができる。これらの視覚的インジケータは、データポイントの色付け、データポイントのサイズ、ファネル1100の中心からのデータポイントの径方向距離、データポイントの径方向角度、ファネル1100の周りのデータポイントの回転速度、ファネル1100の長さに沿った距離などを含み得る。データセットにおける属性を用いて、ファネル1100の周りの個々のデータポイントをプロットし、それらの外観および/またはアニメーションを制御して、この情報のすべてを視覚表示でユーザに同時に伝えることができる。
【0065】
上述したように、ファネル1100の視覚化コンポーネントは、任意の特定のデータセットに対してアグノスティックであるように設計されてもよい。代わりに、ファネル1100は、既存のデータセットがバインディングされ得るパラメータ化された入力のセットを含み得る。例として、以下の考察は、特定のタイプのデータセットを用いて、そのデータセットがファネル1100によってどのように見られ、操作され得るかを示すことができる。この例示的なデータセットは、販売クラウドアプリケーションからインポートまたはアクセスされるデータテーブルを含み得る。このデータテーブルは、データテーブルの各行に販売機会を含むことができる。データテーブル内の異なる列は、販売機会のすべての属性を含むことができる。これらの属性は、個人間の対話、スコア、進行インジケータ、および/または販売機会を進めて販売完了する任意の他の特徴を含み得る。ファネル1100の視覚化コンポーネントが仮想ダッシュボードアプリケーションなどのアプリケーションにインポートされると、アプリケーション設計者および/またはユーザは、販売機会のテーブルを、ファネル1100によって表現されるデータセットとして選択することができる。次いで、データテーブルからのデータポイントを用いてファネル1100を表す3Dオブジェクトを構築して、ファネル1100の視覚的態様を制御することができる。これらの視覚的態様は、以下で詳細に説明されるが、要するに、データテーブルの各行は、ファネル1100の周りを回転するファネル1100内の球体に対応し得る。各球体の回転速度、角度、軌道、色、サイズ、および/または他の特性は、対応するデータ行の列によって定義され得る。
【0066】
ファネル1100のための基礎となるデータセットのための販売機会データの使用は、例としてのみ用いられ、限定することを意図しないことが理解されるであろう。上記で強調されるように、ファネル1100の視覚化コンポーネントの設計は、基礎となるデータセットに依存しない。代わりに、任意のデータセットをファネル1100に結びつけて、データポイントを表す球体をファネル1100にポピュレートしてもよい。販売機会情報は、データポイントの属性がどのようにファネル1100を用いてインタラクティブに視覚化され得るかを示すデータセットの一例にすぎない。他のデータセットは、金融データ、科学データ、試験または実験データ、調査データ、および/または任意の他の種類のデータソースを含み得る。
【0067】
第1に、ファネル1100上の距離1106は、データポイントの各々についての意味を伝えることができる。ファネル1100の原点からの距離1106は、ファネル1100内の球体に対応する各行の列の値によって決定され得る。例えば、個々のデータポイントごとに、距離1106は、開始値から終了値までのデータポイントの相対的進行を示すことができる。例えば、販売機会を表すデータポイントについては、データポイントがファネル1100の原点から遠くなるほど、販売機会が成功裡な完了から遠くなる。したがって、データポイント1107は、進行の初期段階における販売機会を表し、データポイント1108は、成功裡な完了に近づきつつある販売機会を表す。ファネル1100自体の形状も、このタイプの意味を伝えることができる。その物理的対応物を用いると、ファネルは、一般に、新しい材料を、より大きな開口部で受容し、次いで、その材料(例えば、液体)をファネルの周囲において徐々にファネルのより小さい端部に向かって「注ぎ込む(funnel)」。ファネル1100の形状を仮想環境において用いることによって、ユーザは、データポイントが、より大きい外側領域から、より小さいファネルの内部の、より小さい領域に向かって進行することを直観的に理解することができる。したがって、ファネル1100は、データポイントの大きなグループ内の個々のデータポイントの進行を示すのに非常に有用である。ファネル1100が仮想環境内に構築されると、各球体は、ファネル内において、データセットからのこの値に基づく位置または距離1106に配置され得る。
【0068】
データポイントの集まり内の単一のデータポイントの進行を示すことに加えて、ファネル1100はまた、データポイントの進行における全体的な傾向を表示するのにも非常に有用である。図11の図解では、ファネル視覚化における小さな球体によって表されるデータセット内に数千のデータポイントが存在する。単一のデータポイントに焦点を合わせる能力とともに、この視覚化は、データセットにおける傾向を示すデータのクラスタリングまたは自然なグループ化の例示をユーザに提供する。例えば、原点(例えば段階5)から大きな距離にあるファネル1100の開始段階(例えば段階1)におけるデータポイントのクラスタは、開始段階における多数の販売機会を表し得、一方、ファネル1100の原点付近(例えば段階5)の少数のデータポイントは、比較的少数の販売機会が完了まで引き継がれていることを示している。ファネル1100はまた、データセット中のデータポイントの総数を評価する方法を迅速に提供してもよい。例えば、まばらにポピュレートされたファネルは、非常にわずかな販売機会が利用可能であることを示す。対照的に、各レベルにおける密にポピュレートされたファネルは、異なる進行状態にわたって等しく分布する多くの機会を示す。
【0069】
ファネル1100において視覚的に明白なデータの自然なグループ化またはクラスタリングは、ファネル自体1100のレンダリングにおいて表示されるべきデータの閾値、筋付け、またはグループ化を作成することによって増大させることができる。例えば、ファネル1100は、第1の段階1101、第2の段階1102、第3の段階1103、第4の段階1104、および第5の段階1105を含むことができる。段階間の分割は、ユーザ定義の閾値によって確立することができ、最終結果に向かうデータポイントの進行における段階を表すことができる。例えば、第1の段階1101は、識別されているが、まだ評価または働きかけられていない販売機会を表すことができる。第5の段階1105は、販売完了にまで育まれた販売機会を表すことができる。いくつかの実施形態では、段階の各々は、定義された境界、異なる色スキーム、および/または1つの段階におけるデータポイントを別の段階におけるデータポイントから視覚的に区別する他の手段を用いて、図11に示されるように視覚的に描写され得る。いくつかの実施形態では、これは、ファネル自体であるように見える表現を含み得るが、他の実施形態は、ファネルをポピュレートするデータポイントによって単にファネル形状を形成してもよい。
【0070】
異なる段階1101、1102、1103、1104、1105は、ファネル1100の長さに沿って規則的に間隔をあけて配置することができる。段階1101、1102、1103、1104、1105のそれぞれの相対的な幅は、ファネル1100によって画定される静的な間隔に基づいて決定され得る。相対幅はまた、各段階内のデータポイントの数によって決定されてもよい。例えば、より大きなデータポイントの集団が第1の段階1101内に存在するとき、第1の段階1101の幅は、より大きくてもよい。さまざまな段階の色は、それらの段階がファネル1100のさまざまな領域に網掛けする一方で、その中で循環するデータポイントを依然として容易に見ることができるよう、透明であってもよい。上述したように、ユーザは、ファネル1100内で回転する個々のデータポイントを選択することによって、ファネルと対話することができる。異なる段階は、仮想環境においてソリッドサーフェスとしてモデリングされる必要はなく、代わりに、ユーザは、各段階を循環するデータポイントと対話するために、各段階に「手を入れて伸ば」してもよい。
【0071】
幾つかの実施形態は、動きのない静止した態様でデータポイントをファネル1100内に提示してもよい。代替的または追加的に、いくつかの実施形態は、1つまたは複数の属性に基づいてファネル1100内のデータポイントの動きをアニメーション化することもできる。例えば、図11のデータポイントは、特定のデータポイントを巻き込むアクションの頻度に基づいて、ファネル1100の中心軸の周りを回転させるようにアニメーション化することができる。販売データを表すデータポイントの例において、個々のデータポイントがファネル1100の中心軸の周りを回転する速度は、そのデータポイントに対して行われる販売行為(クライアント連絡、電子メール、直接マーケティングなど)の数または割合によって決定することができる。これにより、ユーザは、ファネル1100の原点に対する相対的な距離を説明するよう働きかけられていないデータポイントを視覚的に識別することができる。移動していないかまたはゆっくりと移動しているデータポイントは、進行していない販売機会を示す。対照的に、第1の段階1101にある機会は、それがファネル1100の周りを高速で循環する場合、迅速に進行していてもよい。これはまた、データポイントがファネル1100の原点に向かって進行するにつれて、データポイントの自然かつ現実的な視覚化を提供する。現実世界のファネルと同様に、データポイントは、ファネル1100の中心軸の周りを回転することによって進行し、ファネル1100の原点に向かって徐々に進行し、原点に到達するまで速度を増加させる。これはまた、データがどのように効率的にかつ均一に進行しているかについての一般的な概観を提供する。すべてのデータポイントをアニメーション化することによって、どのデータポイントが他のものよりも注目されているかまたはいないか、どのデータポイントが他のものよりも遅いかまたは速いかが、この視覚化オブジェクトで容易に伝えることができる他の比較的な視覚情報とともに、視覚的に明白になる。
【0072】
任意の3D視覚化と同様に、ユーザに対してどのように最善にデータをスケーリングし、表示し、ビューを与え、回転し、および他の態様で提示するかを決定するとき、技術的問題が存在する。何千ものデータポイントが利用可能である場合、これらのデータポイントのすべてを一度に表示することは、ユーザを当惑させ、さもなければ、他の態様では明白であり得る可視の傾向を不明瞭にし得る。本明細書で説明する実施形態は、データセットを分析し、ユーザに最も有益である視覚化オブジェクトの最適化された初期ビューを決定する。これらの実施形態はまた、データポイントの数、データポイントが配置される所定の3D形状の形状、および所定の3D形状における異なる分割の数に応じて、データを最良に表示するように構成された複数の所定のビューを提供する。さらに、表示されるデータのタイプおよび/または表示ビューは、ユーザインターフェイスを通じて受信される音声コマンドまたは他の文脈的問い合わせに基づいて決定されてもよい。システムは、経時的に、どのデータセットがさまざまな音声コマンドに対処するために最もよく用いられるかを学習することができる。
【0073】
図12Aは、いくつかの実施形態による、第1の距離からのデータポイントを表す3Dオブジェクトのビューを示す。比較的遠く離れていると見なされ得るこの距離から、個々のデータポイントのビューは、ファネル形状自体のビューに対して二次的であり得る。ビューは個々のデータポイントから遠く離れているため、それらは強調解除され得る。この強調解除は、より少ない数のデータポイントを表示すること、データポイントをより透明にすること、データポイントの色を明るくすることなどを含み得る。いくつかの実施形態では、データポイントは、より長い距離において一緒にグループ化され、表示において単一の球体によって表され得る。例えば、オブジェクトの表示の混乱を避けるために、3つのデータポイントごとに一緒にグループ化され、単一のデータポイントによって表されてもよい。
【0074】
対照的に、視覚化コンポーネント(すなわちファネル)のレンダリングは、より長い距離において強調することができる。これにより、ユーザは、その形状によって可視化コンポーネントを視認することができる。上述したように、視覚化コンポーネントからの複数の3Dオブジェクトは、仮想環境において仮想ダッシュボードの一部として含まれてもよい。データポイントが個々にそれ自体で表示される場合、データポイントを表す3Dオブジェクトが配置される全体的な所定の3D形状は容易には明らかではない場合がある。これらの実施形態では、全体形状は、容易に識別可能であるように強調されることができる。ファネルオブジェクトを強調することは、オブジェクトシェルの透明度を低下させること、ファネルオブジェクトを表示するために用いられる色のコントラストまたは鮮やかさを増加させること、ファネルオブジェクトをソリッド、サーフェスまたはボリュームとしてレンダリングすることなどを含み得る。
【0075】
いくつかの実施形態では、データポイントを表す3Dオブジェクトが配置され得る所定の形状を形成するために、追加の3D構築物が仮想環境に追加され得る。ファネル可視化コンポーネントの例において、データポイントを表す個々の3Dオブジェクトは、上述のようにファネル形状に配置されてもよい。しかしながら、ある距離で見た場合、球体の数および/または濃度は、ファネルの形状が容易に識別できないほど十分に密または疎であり得る。いくつかの実施形態では、追加の3D構築物は、視覚化コンポーネントについて、ある距離で全体的な所定の3D形状を形成するよう追加されてもよい。
【0076】
この例では、円錐セクションは、視覚化コンポーネントを表すオブジェクトのビューが閾値距離を超えるという判定に基づいて生成され得る。例えば、図12に示されるユーザのためのビューを生成する仮想カメラがファネルから所定の距離(例えば、仮想環境において15フィート)である場合、システムは、所定の3D形状の形状を表すために1つまたは複数の3D構築物を生成することができる。ファネルオブジェクトを構築するために、複数のテーパされたリング1202を3D構築物として形成し、仮想環境に挿入して、ファネルの形状を規定することができる。テーパされたリング1202は、サーフェスオブジェクトを形成するように構築され、ファネルの形状がある距離において観察者とってより容易に明らかであるように、ともにレンダリングされてもよい。これらのテーパされたリング1202は、ファネルオブジェクトの構造を形成することができ、上記のようにデータポイントを表す個々の球体にわたって強調されることができる。例えば、テーパされたリング1202は、透明でないようにレンダリングされてもよい。それらは、ファネルのその領域内のデータポイントの色および/またはテクスチャを表す色および/またはテクスチャを用いて生成されてもよい。それらは、個々のデータポイントによって形成されるファネル形状を包含するようにレンダリングされてもよく、データポイントのためのレンダリングされた球体のすべては、テーパされたリング1202によって形成されるファネルの内側にある。これにより、ユーザは、テーパされたリング1202によって形成されるシェルの形状に焦点を当て、ある距離で回転する球体によって形成される、より星雲状の形状によって気を散らされるかまたは混乱させられずに、可視化コンポーネントの性質を理解することができる。
【0077】
いくつかの実施形態では、個々の球体は、テーパされたリング1202の内部で回転し続け、および/または可視であり得、ユーザは、ライブデータが視覚化コンポーネントの3Dオブジェクトの閲覧および/またはその中における対話に対して利用可能であることも理解することができる。例えば、ユーザは、個々のデータポイントがテーパされたリング1202の内側においてある距離から回転するのを見る場合がある。この距離は、ユーザが個々のデータポイント間を区別する、および/または個々のデータポイントを視覚的に分離することができないほど十分に大きい場合があるが、複数のデータポイントがファネルオブジェクトにおいて利用可能であることを理解することで十分であり得る。これらの球体の相対的サイズはまた、ファネルオブジェクトに近づくことによって、テーパされたリング1202によって形成されたファネルの形状にわたって個々のデータポイントを強調し始め得ることも明らかにし得る。
【0078】
ファネルオブジェクト自体に加えて、この実施形態は、ビュー間を瞬時に切り換えるために用いることができるビューコントロール1204を示す。ファネルの現在のビューは、より長い距離からファネルを表示する「ズームアウト」ビューである。しかしながら、コントロール1204のいずれかを選択することによって、ユーザは、ビューを、対応するコントロールによって記述されるビューに、直ちに変更することが可能である。これらのコントロールは、「サイドビュー」、「エンドビュー」、「ズームイン」ビューなどを含み得る。2D画像をレンダリングするとき、これらのコントロール1204は、対応する仮想3D空間において仮想カメラの位置を変化させることができる。AR/VRデバイスを用いる場合、これらのコントロール1204を用いると、仮想3D空間におけるユーザの位置を瞬時に変えることができ、ユーザは、対応するビューを生成するであろう位置からファネル1100を見ている。
【0079】
入力は、多数の異なるメカニズムを通じて提供することができる。例えば、コントロール1204は、タッチスクリーンデバイス上の指スワイプ、指タップ、指ピンチ等を用いて選択することができる。コントロール1204はまた、従来のコンピューティングデバイス上でマウスポインタを用いて選択することもできる。いくつかの実施形態は、人工知能および音声認識技術を統合して、ファネルの周りをナビゲートしてもよい。上述のように、いくつかの実施形態は、チャットまたは他のダイアログベースのシステムをユーザと操作するために人工知能モジュールを用いることができる。例えば、ユーザは、システムに「これらのデータのファネルのビューを示す」よう要求することができ、ファネルのビューは、それに応じて自動的に生成されることができる。同様に、ユーザは、システムに移動の意図を伝えるために「後退」または「接近」などのフレーズに言及してもよい。次いで、システムは、人工知能モジュールを用いて、意図を解読し、それに応じて、意図に対応する制御のうちの1つを選択することができる。例えば、「後退」のようなフレーズを用いて、コントロールのリスト1204から「ズームアウト」コマンドを選択することができる。
【0080】
図12Bは、いくつかの実施形態による、モデルベースのシステムを用いてビューおよび/またはデータ表示コマンドを解釈するシステムの図を示す。クライアントデバイス1220は、コマンドインタプリタ1222を介してシステムに入力を提供することができる。コマンドインタプリタ1222は、特定のタイプのデータの特定のビューを要求するテキストコマンドおよび/または音声コマンドを受信することができる。コマンドインタプリタ1222は、コマンドを解釈し、コマンドをシステムのための既知の要求に再フォーマットもしくは変換する知識ベースおよび/または意図エンジンを含み得る。例えば、コマンド「すべてのデータを見せて」は、それが既知のコマンド「ズームアウト」と置き換えられるように解釈されてもよい。したがって、コマンドインタプリタ1222は、クライアントデバイス1220から受信された任意の平易な英語コマンドを受信し、そのコマンドをシステムによって受信され得るコマンドに変換することができる。
【0081】
次いで、コマンドは、モデル1226に送られ得る。例えば、モデルは、複数の入力を含むニューラルネットワークを含んでもよい。いくつかの実施形態では、ニューラルネットワークへの入力は、コマンドインタプリタ1222から出力される既知のコマンドと一致してもよい。ニューラルネットワークは、ニューラルネットワークの出力のうちの1つ上で信号を生成するために、コマンドインタプリタ1222からのコマンドをニューラルネットワークを通してフィルタリングすることができる。ニューラルネットワークの出力は、異なるビューオプションに対応し得る。例えば、ニューラルネットワークの出力は、仮想環境において異なる予め定義されたビューを提供するために、図12Aのコントロール1204に対応するコマンドを含むことができる。上記の例では、コマンドインタプリタ1222から受信された「ズームアウト」コマンドは、インターフェイスのコマンド1204内の「ズームアウト」コマンド1206をアクティブにするニューラルネットワーク上の出力をアクティブにすることができる。
【0082】
いくつかの実施形態は、同様にコマンドインタプリタ1222からコマンドを受信する第2のニューラルネットワークを含み得る。第1のニューラルネットワークは、3Dオブジェクトの異なるビューに関連するコマンドを受信することができ、第2のニューラルネットワークは、表示されるデータのタイプに関連するコマンドを受信することができる。例えば、コマンドインタプリタ1222は、クライアントデバイス1220から「直近の四半期の販売データを見せて」などの要求を受信することができる。コマンドインタプリタ1222は、「販売データを見せる」ための既知のコマンドを生成することができる。このコマンドは、モデル1226に入力されてもよく、モデルの出力は、入力コマンドに応答して取り出す特定のデータセットを示してもよい。例えば、このコマンドは、ニューラルネットワーク上において、示された時間間隔の間、販売データベースから販売データをロードするSQLコマンドを送信する出力をアクティブにすることができる。このコマンドは、示されたデータセットを取り出すために企業データ108上で実行されてもよい。したがって、モデル1226は、ユーザコマンドに基づいて所望のビューを生成することができる。モデル1226はまた、指示されたコマンドに対してロードすべき最良のデータセットを決定してもよい。
【0083】
いくつかの実施形態では、モデル1226は、同様にコマンドインタプリタ1222からコマンドを受信する第3のニューラルネットワークを含んでもよい。第3のニューラルネットワークは、これらのコマンドを受信し、コンポーネント交換124からロードすべき特定の可視化コンポーネントを示す出力を提供するように構成され得る。示された可視化コンポーネントからのパラメータ化された入力は、第1のニューラルネットワークによって決定されたビューに従って、仮想環境104においてレンダリングされた、企業データ108から選択されたデータセットにバインディングされることができる。したがって、モデル1226は、データのタイプが表示されることを要求する一般的な音声コマンドを受信することができ、モデル1226は、仮想環境104に、可視化コンポーネントをロードさせ、データセットをバインディングさせ、モデル出力に基づいてコマンドに応答する可能性の高いビューに従ってデータを表示させることができる。
【0084】
視覚化オブジェクトのビューが仮想環境104においてレンダリングされた後、システムは、クライアントデバイス1220によって提供される任意のビュー入力1224を監視することができる。これらのビュー入力1224は、仮想環境104内でクライアントデバイス1220のための仮想カメラを走査、パン、チルト、回転、および/または他の態様で移動させることによるビューの操作を含み得る。これらのビュー入力1224はまた、視覚化コンポーネントにバインディングされたデータセットを変化させることができる(例えば、ユーザは、ファネルオブジェクトに結合するために異なるデータセットを選択してもよい)。これらのビュー入力1224はまた、視覚化オブジェクトを仮想環境104内で変更させることもできる。例えば、ユーザは、ファネル可視化オブジェクトを3次元グラフオブジェクトと交換することができる。
【0085】
これらのビュー入力1224は、モデル1226によって自動的に提供されるビュー、視覚化オブジェクト、および/またはデータセットに対してなされる修正として解釈され得る。したがって、いくつかの実施形態は、ビュー入力1224をモデル1226および仮想環境104に送ることができる。モデル1226がこれらのビュー入力1224を受信すると、モデルは、モデル1226内のニューラルネットワークをビュー入力1224に従って再トレーニングさせるトレーニングモードに入ることができる。例えば、トレーニングモードでは、モデル1226は、仮想環境104についてビュー、視覚化オブジェクト、およびデータセットを元々生成した、コマンドインタプリタ1222によって提供されるコマンドを考慮してもよい。モデル1226はまた、情報がユーザに提供された後に受信された任意のビュー入力1224を受信してもよい。ビュー入力は、コマンドによって、元の出力の代わりに新たな出力が選択される可能性が高くなるように、ニューラルネットワークの各々上の異なる出力と一致させることができる。上記の例を続けると、視覚化コンポーネントを3Dグラフコンポーネントに変更するビュー入力が、モデル1226に送られ得る。第3のニューラルネットワークを再トレーニングして、コマンドインタプリタ1222からの同じコマンドが、グラフコンポーネントに対応する出力に、第3のニューラルネットワーク内のニューラル経路に沿ってより高い重みを受信させ得るようにしてもよい。これらの重みは、任意の最小化アルゴリズムを用いて調整され得る。次にコマンドインタプリタ1222から同じコマンドが受信されると、モデル1226は、ファネルオブジェクトよりもグラフオブジェクトを選択する可能性が高くなる。
【0086】
このシステムは、モデル1226がさまざまなクライアントデバイスおよびユーザによって用いられるにつれ、モデル1226が常に再トレーニングされることを可能にする。モデル1226は、ユーザがモデル1226の出力を変化させるようビュー入力1224を提供する可能性がより低くなる態様でユーザ入力に対してより応答性があるようになるように経時的に適合してもよい。経時的に、特定のタイプのデータを見る、特定のビューのデータを見る、および特定の視覚化オブジェクトを用いてデータを見るコマンドは、モデルが継続的にトレーニングされるにつれ、より正しくなる可能性があり得る(1226)。
【0087】
図13は、いくつかの実施形態による、3D形状の、より接近したビューである。ユーザのビューがファネルに近づくにつれて、データポイントを表す個々の3Dオブジェクトは、ファネルオブジェクトの3D形状の形状と比較して、強調され始めることができる。データポイントを表すこれらの3Dオブジェクトは、より多くの3Dオブジェクトを示すこと、3Dオブジェクトの透明度を減少させること、3Dオブジェクトの色のコントラストまたは鮮やかさを増加させること、3Dオブジェクトのサイズを増加させること、および/またはこれらの3Dオブジェクトを強調するための任意の他の視覚的技術によって強調することができる。対照的に、3D形状によって形成されるファネルの画像は、データポイントと比較して強調解除され始め得る。強調解除は、テーパされたリング1202の透明性を高めること、テーパされたリング1202の色をミュートすることなどが可能である。ファネルにより近づくことはまた、データポイント値、日付ラベル、段階ラベル、および遠方から見たときに読むには小さすぎる可能性がある他のテキスト情報などのテキスト情報を表示することも可能にする。
【0088】
いくつかの実施形態では、ビューが可視化コンポーネントのビューにより近づくにつれて、可視化コンポーネントの3D形状を明確に示すために挿入された任意の3D構築物は、強調解除および/または除去され得る。対照的に、データポイントを表す個々の3Dオブジェクト(例えばファネル内の球体)は徐々に強調され得る。図13の例では、テーパされたリング1202の半分は、視覚化コンポーネントのビューに対する第1の閾値距離を越えた後、取り除かれてもよい。これは、依然として可視であるテーパされたリング1202の半分によって、依然として明確にファネルオブジェクトであるビューをユーザに提供し得る。このビューはまた、3D構築物の一部分を除去することによって、個々のデータポイントを表す3Dオブジェクト1304によって示されるさらに詳しい詳細をユーザに提供し得る。データポイントを表す3Dオブジェクトは、それらのサイズ、色、動き、軌道、および/または上述の個々のデータポイントに関する情報を提供する他の視覚的特徴とともに、より可視であり得る。
【0089】
図14は、いくつかの実施形態による、データセットの最適化されたビューを示す。このビューは、ユーザのためにファネルオブジェクト内のデータを視覚化するためにシステムによって自動的に提供される初期ビューであり得る。最適化されたビューは、(1)利用可能なデータポイントのすべてを示し、(2)表示領域を埋め、(3)ユーザに最も有用な角度からデータを表示するビューであるよう決定され得る。この実施形態では、ファネルオブジェクトは、ユーザのためのビュー領域を実質的に満たし、個々のデータポイントの各々をフルビューで表示する。このビューはまた、表示の3D性質が強調されるように、ファネルオブジェクトの中心軸に対して斜めの角度からである。
【0090】
ビューが視覚化コンポーネント1302のビューの近くに移動するにつれて、第2の閾値を通過して、視覚化コンポーネント1302の表示に追加の変更を行うことができる。例えば、第2の閾値を超えた後、データポイントを表す3Dオブジェクト1304の各々に対して、第2の詳細レベルを表示してもよい。ファネルのテーパされたリング1202の周りを循環する「ドット」として示す代わりに、3Dオブジェクト1304の各々の十分なレンダリングがなされ、表示されてもよい。テーパされたリング1202の透明度は、3Dオブジェクト1304の回転および動きのすべてが可視であるように増大され得る。さらに、すべての3Dオブジェクト1304のフルカラー、サイズ、速度、および動きが表示され得る。この例では、ファネルの周りを回転する球体の色、位置、サイズ、および動きは、テーパされたリング1202とともに表示されながら十分に可視であり得る。
【0091】
図15は、いくつかの実施形態による、レンダリングされた視覚化コンポーネント1302の十分にズームされたビューを示す。このビューでは、視覚化オブジェクト1302のビューが表示装置のビューを実質的に満たすように、第3の閾値距離を超えてもよい。例えば、視覚化オブジェクト1302のビューは、表示装置のビューの75%近くを満たすことができる。これは、図12Aのコントロール1204からの「ズームイン」ビューに対応し得る。この、より近い距離において、ファネルのテーパされたリング1202は、完全に取り除かれてもよい。より一般的には、視覚化コンポーネントの3D形状の構造を伝達するために以前に追加された任意の3D構築物を除去してもよい。代わりに、個々のデータポイントを表す個々の3Dオブジェクト1304のみが表示に残り得る。データポイントを表す3Dオブジェクト1304に対する近接性が近いため、視覚化コンポーネント1302の全体的な形状は、ユーザにとって明瞭であり得る(例えば、ファネルの形状は、回転する球体から明瞭であり得る)。加えて、視覚化コンポーネント1302の形状を伝達するために追加される任意の3D構築物は、個々のデータポイントを表す3Dオブジェクト1304のビューを不明瞭にするだけである場合がある。ユーザは、この近接範囲において個々のデータポイントと対話する可能性が高くなるので、それらは、以前に提供された任意の構造的形状に対して、十分に強調されてもよい。
【0092】
ファネルの可視化コンポーネントは、例としてのみ提供され、限定することを意図しないことを強調されるべきである。3Dバーグラフなどの他の視覚化コンポーネントも使用され得る。ファネルは、視覚化コンポーネントのビューまでの距離に基づいて、異なるビューがどのように生成され得るかを示すために、一例としてのみ提供される。
【0093】
図16は、上述の視覚化コンポーネントの最適ビューを決定する方法のフローチャート1600を示す。この方法は、比較的遠い距離で視覚化オブジェクトを見ることによって開始することができる(1602)。可視化オブジェクトは、上述のファネルオブジェクトであってもよい。次いで、本方法は、第1の閾値がIズームインの間に横切られたかどうかを判断してもよい(1604)。第1の閾値を越えた場合、ビューがズームインするにつれ、システムは、視覚化コンポーネントを徐々に強調解除し、個々のデータポイントを徐々に強調することができる。可視化コンポーネントを強調または強調解除することは、可視化コンポーネントの形状を表す任意の3D構築物を強調または強調解除することを含み得る。データポイントを強調または強調解除することは、データポイントを表す3Dオブジェクトを強調または強調解除することを含み得る。この段階的な強調/強調解除は、第2の閾値が横切られるまで継続することができる(1608)。この時点で、データポイントは十分に強調されることができ、視覚化オブジェクトは強調解除されてもよい(1610)。
【0094】
別の方法は、企業アプリケーションから1つまたは複数のデータセットを受信することを含み得る。データセットは、単一のデータ属性に対するデータの時系列を含み得る。本方法はまた、1つまたは複数のデータセット中のデータポイントの各々に対応する3Dオブジェクトを生成することを含み得る。3Dオブジェクトは、上で説明または別様に図示されるように、3D球体を含み得る。本方法はまた、3Dオブジェクトを所定の3D形状に配置することを含み得る。3D形状は、3Dオブジェクト自体によって形成されてもよく、または3D形状を取り囲む3Dオブジェクトとともに3D仮想空間内に独立して作成されてもよい。例えば、3D形状は、上で説明および図示されるようなファネルオブジェクトを含み得る。本方法は、3D形状をレンダリングするよう仮想カメラのために最適なビュー位置を判断することをさらに含み得る。最適ビューは、すべてのデータポイントを含み、ビュー領域の閾値パーセント(例えば、90%、75%など)を満たすビュー距離を選択することによって、決定され得る。また、3次元データを強調するビュー角度に基づいて最適ビュー位置を決定してもよい。このビュー角度は、視覚化オブジェクトの種類に基づいて予め定められてもよい。例えば、ファネルオブジェクトは、ファネルの中心軸に対して斜めである初期ビュー角度を有することができる。他のビューオブジェクトは、それらの3D特性を強調する特定のビュー角度を有し得る。さらに、いくつかの実施形態は、特定の視覚化オブジェクトの設計者によって提供される所定のデータに基づいて、初期位置および/またはビュー角度を決定することができる。
【0095】
多くのデータポイントを表示する複雑な視覚化は、ある距離から見たとき、1つまたは複数の、より単純な形状によって表され得、それは、細かな詳細が識別可能でない場合に性能を改善し得る。データポイントの可視性および不透明度ならびにより単純な形状は、視覚化とカメラとの間の距離に比例することができる。例えば、システムは、視覚化の境界ボックスの中心とカメラとの間の距離を計算することができる。この距離が最大閾値より大きいとき、単純な形状は可視であるが、データポイントは可視ではない。距離が最小閾値未満であるとき、データポイントは可視であるが、単純な形状は可視ではない。最小閾値距離と最大閾値距離との間では、データポイントおよび単純な形状の両方が見えるが、それらの不透明度は変化する。データポイントの不透明度は、距離に反比例して変化し、データポイントは、最大閾値では不透明度が最も小さく、最小閾値では不透明度が最も大きい。単純な形状の不透明度は、距離に正比例して変化し、単純な形状は、最大閾値では不透明度が最も大きく、最小閾値では不透明度が最も小さい。ユーザがある距離から接近すると、最初に単純な形状のみが見える。ユーザが近づくにつれて、単純な形状は、データポイントがフェードインするにつれて、フェードアウトする。ユーザが非常に近づくと、データポイントのみが見える。
【0096】
図17は、いくつかの実施形態による、データポイントのセットから視覚化オブジェクトを生成するための方法のフローチャートを示す。視覚化オブジェクトまたは視覚化コンポーネントは、コンポーネントライブラリまたは交換からダウンロードされ、アプリケーションに含まれ得る。アプリケーションは、複数のクライアントデバイスタイプを用いる複数のユーザのためにビューを生成するために3Dオブジェクトが作成およびレンダリングされることを可能にする仮想環境を含み得る。上述したように、ファネルオブジェクトなどの視覚化オブジェクトは、基礎となるデータセットにバインディングされ得るパラメータ化された入力のセットを含み得る。この方法は、これらのデータセットを用いて、所定の3D形状の形状および外観をどのように生成し得るかを記載する。
【0097】
本方法は、企業アプリケーションから1つまたは複数のデータセットを受信することを含み得る(1702)。1つまたは複数のデータセットは、データベース、テーブル、スプレッドシート、テキストファイル、CSVファイル、ウェブサービス、ウェブサイト、XMLファイル、ストレージレポジトリ、および/または任意の他のタイプのデータ構造もしくはデータ記憶装置など、任意のタイプのデータソースから受信され得る。データセットは、企業データを提供する企業アプリケーションなどのアプリケーションから受信することができる。データは、CRMデータ、HCMデータ、金融データ、販売データ、および/または任意の他のタイプのデータを含み得る。視覚化コンポーネントがロードまたはダウンロードされると、設計者および/またはユーザは、1つまたは複数のパラメータ化された入力を通じて、1つまたは複数のデータセットを視覚化コンポーネントにバインディングすることを選択することができる。
【0098】
本方法はまた、1つまたは複数のデータセット中のデータポイントの各々に対応する3Dオブジェクトを生成することを含み得る(1704)。3Dオブジェクトの各々は、1つまたは複数のデータセット内の単一のデータポイントに対応し得る。例えば、各3Dオブジェクトは、データベース内の行に対応し得る。各オブジェクトはまた、データポイントに関連付けられ得る複数の属性または属性値を含み得る。例えば、属性値は、データベーステーブル内の行の列に格納された値を含んでもよい。これらの値のそれぞれは、以下に記載するように、3Dオブジェクトの外観および/または挙動を構築するために用いられ得る。3Dオブジェクトは、上で説明または別様に図示されるように、3D球体を含み得る。3Dオブジェクトはまた、バー、多角形、星、および/または他のソリッドオブジェクトなど、任意の他のタイプの三次元オブジェクトを含み得る。
【0099】
本方法はまた、3Dオブジェクトを所定の3D形状に配置することを含み得る(1706)。3D形状は、3Dオブジェクト自体によって形成されてもよく、または3D形状を取り囲む3Dオブジェクトとともに3D仮想空間内に独立して作成されてもよい。例えば、3D形状は、上で説明および図示されるようなファネルオブジェクトを含み得る。3Dオブジェクトは、それらの集合配置が所定の3D形状を形成するように配置されてもよい。代替的に、サーフェス、ワイヤフレーム、および/または他の3D構築物などの追加の3Dオブジェクトを用いて、所定の3D形状の少なくとも一部を生成および表すことができる。これらの実施形態では、3Dオブジェクトは、それらが所定の3D形状に適合するように、他の3D構築物の周りに配置されてもよい。
【0100】
本方法は、所定の3D形状の第1のビューを示すコマンドを受信することをさらに含んでもよい(1708)。コマンドは、音声コマンド、テキストコマンド、または任意の他のタイプの入力を通じて受信され得る。いくつかの実施形態では、コマンドは、「先月の販売データを見せて」などの平易な英語フレーズとして受信されてもよい。コマンドは、平易な英語フレーズを標準化されたコマンドに変換するコマンドインタプリタによって処理されてもよい。これらの標準化されたコマンドは、モデルまたはニューラルネットワークの入力に対応する入力を含み得る。モデルまたはニューラルネットワークは、単純なコマンドを受信し、出力のセットを生成することができる。いくつかの実施形態では、ニューラルネットワークは、複数のニューラルネットワークを含むことができ、各ニューラルネットワークは、コマンドから異なる種類の出力を生成する。例えば、仮想カメラのためのビュー位置、ロードされるべき特定の視覚化コンポーネント、および/または視覚化コンポーネントのパラメータ化された入力にバインディングされるべき特定のデータセットを出力する特定のニューラルネットワークを提供することができる。モデルからのこれらの出力は、仮想環境に提供され、視覚化コンポーネントは、仮想環境においてインスタンス化され、定義されたビュー位置で見ることができる。この視覚化コンポーネントは、仮想環境において既にインスタンス化された以前の視覚化コンポーネントと置き換わってもよい。代替的に、この視覚化コンポーネントは、仮想ダッシュボード内の新たな3Dウィジェットとして仮想環境に追加されてもよい。単純な場合では、所定の3D形状の第1のビューを示すコマンドは、ニューラルネットワーク上において、異なるビュー位置、角度、焦点などを決定する出力を提供してもよい。次いで、仮想環境において3D形状に配置された既存の3Dオブジェクトを、ニューラルネットワークの出力に従って見ることができる。換言すれば、第1のビューを示すコマンドは、追加または代替の視覚化コンポーネントをロードする必要はなく、その代わりに、既存の視覚化コンポーネントのビューを単に再配向してもよい。
【0101】
本方法はまた、第1のビューに関連付けられる距離を判断すること(1710)を含み得る。この距離は、仮想カメラと視覚化コンポーネントの所定の3D形状との間で測定され得る。この測定は、仮想環境に固有の単位で行われてもよく、これらの単位は、対応する現実世界の環境における物理的単位に対応してもよい。例えば、仮想環境および現実世界の環境の両方において、この距離は20フィートであってもよい。例えば、仮想現実ヘッドセットを着用しているユーザに関して、現実世界の環境において20フィート前方へ歩行することは、仮想環境において20仮想フィートを歩行することと同じであり得る。ユーザが視覚化コンポーネントを見ると、それは仮想環境において20フィート離れているように見え得る。第1のビューに関連付けられる距離はまた、所定の3D形状と、ユーザのための仮想カメラの焦点または焦点面との間で測定され得る。例えば、所定の3D形状に近づくように前方に移動する代わりに、ユーザは、仮想環境におけるカメラの位置または現実世界の環境における彼らの視聴デバイスを移動させることなく、所定の3D形状上で自身の表示をズームインしてもよい。
【0102】
本方法は、さらに、所定の3D形状の第1のビューの表示を提供することを含み得る(1712)。上記で詳細に説明されるように、個々のデータポイントを表す3Dオブジェクトは、所定の3D形状の構造を表す1つまたは複数の3D構築物に対して視覚的に強調または強調解除され得る。ファネルオブジェクトの例では、テーパされたリングまたは他のサーフェス/シェルを含む3D構築物を仮想環境に追加して、ファネルオブジェクトの形状を明確に規定してもよい。第1のビューに関連付けられる距離が増加するにつれて、個々のデータポイントを表す3Dオブジェクトは強調解除され、所定の3D形状の構造を表す3D構築物が強調され得る。この強調は、これらのオブジェクトの透明度、色、輝度、サイズ、および/または他の視覚的特性を調整することを含み得る。第1のビューに関連付けられる距離が減少するにつれて、個々のデータポイントを表す3Dオブジェクトは、3D構築物に対して強調され得る。例えば、3D構築物は、距離が減少するにつれて、より透明になり得る。個々のデータポイントを表す3Dオブジェクトのサイズは増加し、データポイントの属性を示すさまざまな色を示すことができる。いくつかの実施形態は、いつオブジェクトが他のものよりも強調されるかを決定するために、上で説明されているように閾値を用いることができる。
【0103】
図17に示される特定のステップは、さまざまな実施形態による視覚化オブジェクトのビューを生成する特定の方法を提供することを理解されたい。代替の実施形態に従って、他の一連のステップも実行することができる。例えば、本発明の代替実施形態は、上記で概説したステップを異なる順序で実行することができる。さらに、図17に示される個々のステップは、個々のステップに適切であるようにさまざまなシーケンスで実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて追加のステップを追加または削除することができる。当業者は、多くの変形形態、修正形態、および代替形態を認識するであろう。
【0104】
本明細書で説明される方法の各々は、コンピュータシステムによって実現され得る。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および/またはユーザが関与する入力/出力を与えられてもよい。例えば、ユーザは、方法の各ステップに対する入力を提供してもよく、これらの入力の各々は、そのような入力を要求する特定の出力に応答してもよく、その出力は、コンピュータシステムによって生成される。各入力は、対応する要求出力に応答して受信されてもよい。さらに、入力は、ユーザから、別のコンピュータシステムからデータストリームとして受信され、メモリ位置から検索して取得され、ネットワークを介して検索して取得され、ウェブサービスから要求されるなどすることができる。同様に、出力は、ユーザに、データストリームとして別のコンピュータシステムに提供され、メモリ位置に記憶され、ネットワークを介して送信され、ウェブサービスに提供されなどすることができる。要するに、本明細書に記載される方法の各ステップは、コンピュータシステムによって実施されてもよく、ユーザが関与してもしなくてもよい、コンピュータシステムへの、およびコンピュータシステムからの、任意の数の入力、出力、および/または要求を含んでもよい。ユーザが関与しないこれらのステップは、人間の介入なしにコンピュータシステムによって自動的に実行されるといえる。したがって、本開示に照らして、本明細書で説明される各方法の各ステップは、ユーザへの入力およびユーザからの出力を含むように変更され得るか、または任意の決定がプロセッサによって行われる場合、人間の介入なしにコンピュータシステムによって自動的に行われ得ることが理解されるであろう。さらに、本明細書で説明する方法の各々のいくつかの実施形態は、有形のソフトウェア製品を形成するために有形の非一時的記憶媒体に記憶される命令のセットとして実現され得る。
【0105】
図18は、実施形態のうちの1つを実現するための分散型システム1800を示す簡略図である。例示された実施形態においては、分散型システム1800は、1つ以上のネットワーク1810を介して、ウェブブラウザ、プロプライエタリクライアント(たとえばオラクルフォーム)などのクライアントアプリケーションを実行して動作させるように構成される1つ以上のクライアントコンピューティングデバイス1802、1804、1806および1808を含む。サーバ1812は、ネットワーク1810を介してリモートクライアントコンピューティングデバイス1802、1804、1806および1808と通信可能に結合されてもよい。
【0106】
さまざまな実施形態においては、サーバ1812は、システムの構成要素のうち1つ以上によって提供される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態においては、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)モデルのもとで、クライアントコンピューティングデバイス1802,1804,1806および/または1808のユーザに供給されてもよい。そして、クライアントコンピューティングデバイス1802,1804,1806および/または1808を動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、サーバ1812と相互作用して、これらの構成要素によって提供されるサービスを利用し得る。
【0107】
図に示されている構成では、システム1800のソフトウェアコンポーネント1818,1820および1822は、サーバ1812上に実装されるように示されている。また、他の実施形態においては、システム1800の構成要素のうちの1つ以上および/またはこれらの構成要素によって提供されるサービスは、クライアントコンピューティングデバイス1802,1804,1806および/または1808のうちの1つ以上によって実現されてもよい。その場合、クライアントコンピューティングデバイスを動作させるユーザは、1つ以上のクライアントアプリケーションを利用して、これらの構成要素によって提供されるサービスを使用し得る。これらの構成要素は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。分散型システム1800とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。したがって、図に示されている実施形態は、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されたものではない。
【0108】
クライアントコンピューティングデバイス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を介して通信が可能なパーソナルメッセージング装置などのその他の電子装置であってもよい。
【0109】
例示的な分散型システム1800は、4個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを有する装置などの他の装置が、サーバ1812と相互作用してもよい。
【0110】
分散型システム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の一連のプロトコル、ブルートゥース(登録商標)および/またはその他の無線プロトコルのうちのいずれかのもとで動作するネットワーク)、および/またはこれらの任意の組合せ、および/または他のネットワークを含むが、これらに限定されるものではない。
【0111】
サーバ1812は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組合せで構成され得る。さまざまな実施形態においては、サーバ1812は、上記の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ1812は、本開示の実施形態に係る上記の処理を実行するためのサーバに対応してもよい。
【0112】
サーバ1812は、上記のもののうちのいずれか、および、任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ1812は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェース)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的サーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、オラクル社(Oracle)、マイクロソフト社(Microsoft)、サイベース社(Sybase)、IBM社(International Business Machines)などから市販されているものを含むが、これらに限定されるものではない。
【0113】
いくつかの実現例では、サーバ1812は、クライアントコンピューティングデバイス1802,1804,1806および1808のユーザから受信されたデータフィードおよび/またはイベント更新を分析および統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新は、1つ以上の第三者情報源および連続的なデータストリームから受信されるツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、これらに限定されるものではなく、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどに関連するリアルタイムイベントを含み得る。また、サーバ1812は、クライアントコンピューティングデバイス1802,1804,1806および1808の1つ以上の表示装置を介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
【0114】
また、分散型システム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フォーマットコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
【0115】
図19は、本開示の実施形態に係る、実施形態のシステムの1つ以上の構成要素によって提供されるサービスをクラウドサービスとして供給することができるシステム環境1900の1つ以上の構成要素の簡略化されたブロック図である。示されている実施形態においては、システム環境1900は、クラウドサービスを提供するクラウドインフラストラクチャシステム1902と相互作用するようにユーザによって使用され得る1つ以上のクライアントコンピューティングデバイス1904,1906および1908を含む。クライアントコンピューティングデバイスは、クラウドインフラストラクチャシステム1902によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム1902と相互作用するようにクライアントコンピューティングデバイスのユーザによって使用され得る、ウェブブラウザ、専有のクライアントアプリケーション(たとえばオラクルフォームズ)または他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。
【0116】
図に示されているクラウドインフラストラクチャシステム1902が図示されている構成要素とは他の構成要素を有し得ることが理解されるべきである。さらに、図に示されている実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態においては、クラウドインフラストラクチャシステム1902は、図に示されているものよりも多いまたは少ない数の構成要素を有していてもよく、2つ以上の構成要素を組合せてもよく、または構成要素の異なる構成または配置を有していてもよい。
【0117】
クライアントコンピューティングデバイス1904,1906および1908は、1802,1804,1806および1808について上記したものと類似のデバイスであってもよい。
【0118】
例示的なシステム環境1900は3個のクライアントコンピューティングデバイスを有するように示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサなどを有する装置などの他の装置が、クラウドインフラストラクチャシステム1902と相互作用してもよい。
【0119】
ネットワーク1910は、クライアント1904,1906および1908とクラウドインフラストラクチャシステム1902との間のデータの通信およびやりとりを容易にし得る。各々のネットワークは、ネットワーク1810について上記したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよい。
【0120】
クラウドインフラストラクチャシステム1902は、サーバ1812について上記したものを含み得る1つ以上のコンピュータおよび/またはサーバを備え得る。
【0121】
特定の実施形態においては、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータ記憶およびバックアップソリューション、ウェブベースのeメールサービス、ホスト型オフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理技術サポートサービスなどの、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。クラウドインフラストラクチャシステムによって提供されるサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、インターネットなどの通信ネットワークを介してクラウドサービスプロバイダのシステムからユーザが利用可能な任意のサービスは、「クラウドサービス」と称される。通常、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムがアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションを注文および使用してもよい。
【0122】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションへの保護されたコンピュータネットワークアクセス、またはクラウドベンダによってユーザに提供されるかもしくはそうでなければ当該技術分野において公知の他のサービスを含み得る。たとえば、サービスは、インターネットを介したクラウド上のリモートストレージへのパスワードによって保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされるeメールソフトウェアアプリケーションへのアクセスを含み得る。
【0123】
特定の実施形態においては、クラウドインフラストラクチャシステム1902は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に配信される一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
【0124】
さまざまな実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステム1902によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム1902は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、クラウドインフラストラクチャシステム1902が、(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、一般大衆またはさまざまな産業企業がサービスを利用できるパブリッククラウドモデルのもとでサービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム1902が単一の組織のためだけに運営され、当該組織内の1つ以上のエンティティにサービスを提供し得るプライベートクラウドモデルのもとでサービスが提供されてもよい。また、クラウドインフラストラクチャシステム1902およびクラウドインフラストラクチャシステム1902によって提供されるサービスが、関連のコミュニティ内のいくつかの組織によって共有されるコミュニティクラウドモデルのもとでクラウドサービスが提供されてもよい。また、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルのもとでクラウドサービスが提供されてもよい。
【0125】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(Infrastructureas a Service:IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリのもとで提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーによって、クラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスを注文し得る。次いで、クラウドインフラストラクチャシステム1902は、顧客のサブスクリプションオーダーでサービスを提供するために処理を実行する。
【0126】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、SaaSプラットフォームは、一体化された開発およびデプロイメントプラットフォーム上で一連のオンデマンドアプリケーションを構築および配信するための機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムで実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例としては、大規模組織のための販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
【0127】
いくつかの実施形態においては、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通アーキテクチャ上で統合することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、これらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例としては、オラクルJavaクラウドサービス(Java Cloud Service:JCS)、オラクルデータベースクラウドサービス(Database Cloud Service:DBCS)などが挙げられるが、これらに限定されるものではない。
【0128】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態においては、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービル(たとえばオラクルフージョンミドルウェアサービス)およびJavaクラウドサービスを含み得る。一実施形態においては、データベースクラウドサービスは、組織がデータベースリソースをプールしてデータベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステムにおいてさまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得るともに、Javaクラウドサービスは、クラウドインフラストラクチャシステムにおいてJavaアプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
【0129】
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるIaaSプラットフォームによって提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワークなどの基本的な計算リソース、ならびに、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
【0130】
また、特定の実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース1930を含み得る。一実施形態においては、インフラストラクチャリソース1930は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するための、サーバ、ストレージおよびネットワーキングリソースなどのハードウェアの予め一体化された最適な組合せを含み得る。
【0131】
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割り振りされてもよい。また、リソースは、異なる時間帯にユーザに割り振られてもよい。たとえば、クラウドインフラストラクチャシステム1930は、第1の時間帯におけるユーザの第1の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし得るとともに、異なる時間帯に位置するユーザの別の組への同一のリソースの再割り振りを可能にし得ることによって、リソースの利用を最大化することができる。
【0132】
特定の実施形態においては、クラウドインフラストラクチャシステム1902のさまざまな構成要素またはモジュール、および、クラウドインフラストラクチャシステム1902によって提供されるサービス、によって共有されるいくつかの内部共有サービス1932が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、インテグレーションサービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【0133】
特定の実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえばSaaSサービス、PaaSサービスおよびIaaSサービス)の包括的管理を提供し得る。一実施形態においては、クラウド管理機能は、クラウドインフラストラクチャシステム1902によって受信された顧客のサブスクリプションをプロビジョニング、管理および追跡などするための機能を含み得る。
【0134】
一実施形態においては、図に示されるように、クラウド管理機能は、オーダー管理モジュール1920、オーダーオーケストレーションモジュール1922、オーダープロビジョニングモジュール1924、オーダー管理および監視モジュール1926、ならびにアイデンティティ管理モジュール1928などの1つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含み得るか、またはそれらを用いて提供され得る。
【0135】
例示的な動作1934において、クライアントデバイス1904,1906または1908などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1902によって供給される1つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クラウドインフラストラクチャシステム1902と対話し得る。特定の実施形態においては、顧客は、クラウドユーザインターフェース(UserInterface:UI)、すなわちクラウドUI1912、クラウドUI1914および/またはクラウドUI1916にアクセスして、これらのUIを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム1902によって受信されたオーダー情報は、顧客と、顧客がサブスクライブする予定のクラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスとを特定する情報を含み得る。
【0136】
オーダーが顧客によって行われた後、オーダー情報は、クラウドUI1912,1914および/または1916を介して受信される。
【0137】
動作1936において、オーダーは、オーダーデータベース1918に格納される。オーダーデータベース1918は、クラウドインフラストラクチャシステム1918によって動作されるとともに他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであってもよい。
【0138】
動作1938において、オーダー情報は、オーダー管理モジュール1920に転送される。いくつかの例では、オーダー管理モジュール1920は、オーダーの確認および確認時のオーダーの予約などのオーダーに関連する請求書発行機能および会計経理機能を実行するように構成され得る。
【0139】
動作1940において、オーダーに関する情報は、オーダーオーケストレーションモジュール1922に通信される。オーダーオーケストレーションモジュール1922は、顧客によって行われたオーダーについてのサービスおよびリソースのプロビジョニングをオーケストレートするためにオーダー情報を利用し得る。いくつかの例では、オーダーオーケストレーションモジュール1922は、オーダープロビジョニングモジュール1924のサービスを用いてサブスクライブされたサービスをサポートするためにリソースのプロビジョニングをオーケストレートし得る。
【0140】
特定の実施形態においては、オーダーオーケストレーションモジュール1922は、各々のオーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用してオーダーがプロビジョニングに進むべきか否かを判断する。動作1942において、新たなサブスクリプションについてのオーダーを受信すると、オーダーオーケストレーションモジュール1922は、リソースを割り振って当該サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するための要求をオーダープロビジョニングモジュール1924に送る。オーダープロビジョニングモジュール1924は、顧客によってオーダーされたサービスについてのリソースの割り振りを可能にする。オーダープロビジョニングモジュール1924は、クラウドインフラストラクチャシステム1900によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間にあるレベルの抽象化を提供する。したがって、オーダーオーケストレーションモジュール1922は、サービスおよびリソースが実際に実行中にプロビジョニングされるか、事前にプロビジョニングされて要求があったときに割振られる/割当てられるのみであるかなどの実装の詳細から切り離すことができる。
【0141】
動作1944において、サービスおよびリソースがプロビジョニングされると、提供されたサービスの通知が、クラウドインフラストラクチャシステム1902のオーダープロビジョニングモジュール1924によってクライアントデバイス1904,1906および/または1908上の顧客に送られ得る。
【0142】
動作1946において、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール1926によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール1926は、使用される記憶量、転送されるデータ量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などのサブスクリプションオーダーにおけるサービスについての使用統計を収集するように構成され得る。
【0143】
特定の実施形態においては、クラウドインフラストラクチャシステム1900は、アイデンティティ管理モジュール1928を含み得る。アイデンティティ管理モジュール1928は、クラウドインフラストラクチャシステム1900におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成され得る。いくつかの実施形態においては、アイデンティティ管理モジュール1928は、クラウドインフラストラクチャシステム1902によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報と、それらの顧客がさまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することを認可されるかを記載する情報とを含み得る。また、アイデンティティ管理モジュール1928は、各々の顧客についての説明的情報、ならびに、どのようにしておよび誰によってこの説明的情報がアクセスおよび変更され得るかについての情報の管理を含み得る。
【0144】
図20は、本発明のさまざまな実施形態を実現することができる例示的なコンピュータシステム2000を示す。システム2000は、上記のコンピュータシステムのうちのいずれかを実現するために使用され得る。図に示されているように、コンピュータシステム2000は、バスサブシステム2002を介していくつかの周辺サブシステムと通信する処理ユニット2004を含む。これらの周辺サブシステムは、処理加速ユニット2006と、I/Oサブシステム2008と、記憶サブシステム2018と、通信サブシステム2024とを含み得る。記憶サブシステム2018は、有形のコンピュータ読取可能な記憶媒体2022と、システムメモリ2010とを含む。
【0145】
バスサブシステム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)バスを含み得る。
【0146】
1つ以上の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実現可能な処理ユニット2004は、コンピュータシステム2000の動作を制御する。処理ユニット2004には、1つ以上のプロセッサが含まれ得る。これらのプロセッサは、単一コアまたはマルチコアのプロセッサを含み得る。特定の実施形態においては、処理ユニット2004は、各々の処理ユニットに含まれる単一コアまたはマルチコアのプロセッサを有する1つ以上の独立した処理ユニット2032および/または2034として実現されてもよい。また、他の実施形態においては、処理ユニット2004は、2つのデュアルコアプロセッサを単一のチップに組み入れることによって形成されるクアッドコア処理ユニットとして実現されてもよい。
【0147】
さまざまな実施形態においては、処理ユニット2004は、プログラムコードに応答してさまざまなプログラムを実行し得るとともに、同時に実行される複数のプログラムまたはプロセスを維持し得る。任意の所与の時点において、実行されるべきプログラムコードのうちのいくつかまたは全ては、プロセッサ2004および/または記憶サブシステム2018に存在し得る。好適なプログラミングを通じて、プロセッサ2004は、上記のさまざまな機能を提供し得る。また、コンピュータシステム2000は、加えて、デジタル信号プロセッサ(digital signal processor:DSP)、特殊用途プロセッサなどを含み得る処理加速ユニット2006を含み得る。
【0148】
I/Oサブシステム2008は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含み得る。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、タッチパッドまたはタッチスクリーンを含んでいてもよく、これらは、音声コマンド認識システム、マイクロホンおよび他のタイプの入力装置とともに、ディスプレイ、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、オーディオ入力装置に組込まれている。ユーザインターフェイス入力装置は、たとえば、ジェスチャおよび話されたコマンドを用いてナチュラルユーザインターフェースを介してユーザがマイクロソフトXbox(登録商標)360ゲームコントローラなどの入力装置を制御して入力装置と対話することを可能にするマイクロソフトキネクト(登録商標)モーションセンサなどのモーション検知および/またはジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザから眼球運動(たとえば撮影および/またはメニュー選択を行っている間の「まばたき」)を検出して、当該眼球ジェスチャを入力装置への入力として変換するグーグルグラス(登録商標)まばたき検出器などの眼球ジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識検知装置を含み得る。
【0149】
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線検出装置を含み得るが、これらに限定されるものではない。また、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴画像化、位置発光断層撮影、医療用超音波検査装置などの医療用画像化入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえばMIDIキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
【0150】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、表示灯、またはオーディオ出力装置などの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するものなどのフラットパネルディスプレイ、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム2000からの情報をユーザまたは他のコンピュータに出力するための全ての実現可能なタイプの装置および機構を含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車のナビゲーションシステム、プロッタ、音声出力装置およびモデムなどの、テキスト、グラフィックスおよびオーディオ/ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
【0151】
コンピュータシステム2000は、現在のところシステムメモリ2010内に位置しているように示されているソフトウェア要素を備える記憶サブシステム2018を備え得る。システムメモリ2010は、処理ユニット2004上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されるデータとを格納し得る。
【0152】
コンピュータシステム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オペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0153】
また、記憶サブシステム2018は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能な記憶媒体を提供し得る。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム2018に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット2004によって実行され得る。また、記憶サブシステム2018は、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【0154】
また、記憶サブシステム2000は、コンピュータ読取可能な記憶媒体2022にさらに接続可能なコンピュータ読取可能な記憶媒体リーダ2020を含み得る。ともにおよび任意には、システムメモリ2010と組合せて、コンピュータ読取可能な記憶媒体2022は、コンピュータ読取可能な情報を一時的および/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモートの、ローカルの、固定されたおよび/または取外し可能な記憶装置を包括的に表わし得る。
【0155】
コードまたはコードの一部を含むコンピュータ読取可能な記憶媒体2022は、当該技術分野において公知のまたは使用される任意の適切な媒体を含み得る。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ読取可能な媒体などの有形のコンピュータ読取可能な記憶媒体を含み得る。また、これは、データ信号、データ送信などの無形のコンピュータ読取可能な媒体、または、所望の情報を送信するために使用可能であるとともに計算システム2000によってアクセス可能である他の任意の媒体を含み得る。
【0156】
一例として、コンピュータ読取可能な記憶媒体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に提供し得る。
【0157】
通信サブシステム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は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット)を提供し得る。
【0158】
また、いくつかの実施形態においては、通信サブシステム2024は、コンピュータシステム2000を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード2026、イベントストリーム2028、イベント更新2030などの形態で入力通信を受信し得る。
【0159】
一例として、通信サブシステム2024は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード2026をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成され得る。
【0160】
加えて、通信サブシステム2024は、連続的なデータストリームの形態でデータを受信するように構成され得る。当該データは、連続的である場合もあれば本質的に明確な端部をもたない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム2028および/またはイベント更新2030を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【0161】
また、通信サブシステム2024は、構造化されたおよび/または構造化されていないデータフィード2026、イベントストリーム2028、イベント更新2030などを、コンピュータシステム2000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成され得る。
【0162】
コンピュータシステム2000は、手持ち式携帯機器(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの1つであってもよい。
【0163】
コンピュータおよびネットワークの絶え間なく変化し続ける性質のために、図に示されているコンピュータシステム2000の説明は、特定の例として意図されているに過ぎない。図に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が可能である。たとえば、ハードウェア、ファームウェア、(アプレットを含む)ソフトウェア、または組合せにおいて、カスタマイズされたハードウェアが使用されてもよく、および/または、特定の要素が実装されてもよい。さらに、ネットワーク入力/出力装置などの他のコンピューティングデバイスへの接続が利用されてもよい。本明細書中に提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の手段および/または方法を理解するであろう。
【0164】
前述の説明では、説明の目的のために、本発明のさまざまな実施形態の完全な理解を提供するために、多数の具体的な詳細が述べられた。しかしながら、本発明の実施形態は、これらの具体的な詳細のいくつかを伴わずに実施され得ることが当業者には明白であろう。他の例では、周知の構造およびデバイスがブロック図形式で示される。
【0165】
上記の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を制限することを意図していない。むしろ、例示的な実施形態の前述の説明は、例示的な実施形態を実施するための可能な説明を当業者に与えるであろう。特許請求の範囲に記載されている本発明の精神および範囲から逸脱することなく、要素の機能および構成にさまざまな変更を加えることができることを理解されたい。
【0166】
上記の説明では、実施形態の完全な理解を与えるために具体的な詳細が与えられている。しかしながら、当業者には、実施の形態はこれらの具体的な詳細なしに実施されてもよいことが理解される。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、実施形態を不必要な詳細において不明瞭にしないために、ブロック図の形態でコンポーネントとして示されている場合がある。他の事例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細を伴わずに示されていることがある。
【0167】
さらに、個々の実施の形態は、フローチャート、フロー図、データフロー図、構造図またはブロック図として示されるプロセスとして記載されている場合があることが注記される。フローチャートは動作をシーケンシャルなプロセスとして記載している場合があるが、動作の多くは並列または同時に実行され得る。加えて、動作の順序は再構成されてもよい。プロセスは、その動作が完了されるときに終結されるが、図に含まれない追加のステップを含み得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合では、その終結は、その関数が呼出関数または主関数に戻ることに対応し得る。
【0168】
「コンピュータ読取可能媒体」という語は、命令および/またはデータを記憶するか、含むか、または担持することができるポータブルまたは固定された記憶装置、光記憶装置、ワイヤレスチャネルおよびさまざまな他の的媒体を含むが、それらに限定はされない。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または、命令、データ構造もしくはプログラム文のいずれかの組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータまたはメモリコンテンツを受け渡すおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ受渡し、トークン受渡し、ネットワーク伝送などを含む任意の好適な手段を介して渡されるか、転送されるか、または伝送されてもよい。
【0169】
さらに、実施の形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実現される場合には、必要なタスクを実行するプログラムコードまたはコードセグメントを機械読取可能媒体に記憶してもよい。プロセッサが必要なタスクを実行してもよい。
【0170】
上記の明細書では、本発明の局面についてその具体的な実施形態を参照して説明しているが、本発明はそれに限定されるものではないということを当業者は認識するであろう。上記の発明のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、実施形態は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【0171】
さらに、例示の目的のため、方法が特定の順序で説明された。代替の実施形態では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させるマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、1つ以上の機械読取可能媒体、たとえばCD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリなど、または電子命令を記憶するのに適した他の種類の機械読取可能媒体に記憶できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16
図17
図18
図19
図20