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

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

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

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