詳細な説明
以下の記載では、説明の目的のため、この発明の実施形態の完全な理解を提供するために具体的な詳細が述べられる。しかしながら、これらの具体的な詳細がなくてもさまざまな実施形態が実施され得ることは明らかであるだろう。図および説明は、限定的であるよう意図されてはいない。
特定の実施形態においては、図形による視覚化を用いて、データをユーザに対して効果的に提示するための(1つ以上のコンピュータプロセッサによって実行されるシステム、デバイス、方法、コードまたはプログラム命令を含む)技術が提供される。いくつかの実施形態は、視覚化によって提示されている1以上の次元のデータを修正するようにとのユーザ要求を受取ると、既存の視覚化を更新することができるビジュアルアナライザシステムを提供する。いくつかの実施形態においては、ユーザ入力は、既存の視覚化に対する或る次元のデータの追加または除去に対応し得る。特定の実施形態においては、ビジュアルアナライザシステムは、さまざまな視覚化タイプのための複数の構成を決定し、それらの構成の各々について、視覚化スコアを計算することができる。計算された視覚化スコアに基づいて、ビジュアルアナライザシステムは、いくつかの実施形態において最高スコアを有する構成を選択することができる。次いで、ビジュアライザシステムは、選択された構成に対応するように視覚化を更新し、更新された視覚化をグラフィカル・ユーザ・インタフェース(graphical user interface:GUI)上でユーザに提供し得る。いくつかの例においては、更新された視覚化は、既存の視覚化の視覚化タイプとは異なる視覚化タイプであってもよい。これらのさまざまな実施形態は、次元を追加または除去するようにとのユーザの要求を組込んだ更新された視覚化が効果的にさらには直観的に提示されるように、既存の視覚化を更新することができる。
いくつかの実施形態においては、ビジュアルアナライザシステムはまた、所望の視覚化を用いて同じセットのデータが提示されている態様がユーザにとって効果的かつ直観的であることを確実にしながらも、当該同じセットのデータをユーザによって指定されるとおりにさまざまな視覚化タイプで提示することができる。いくつかの実施形態は、既存の視覚化の視覚化タイプを第1のソース視覚化タイプから第2のターゲット視覚化タイプへと変更するようにとの要求に対応するユーザ入力を受取ることができる。たとえば、ユーザは、同じセットのデータを、その時点で表示されている棒グラフではなく、円グラフで視認することを要望するかもしれない。ビジュアルアナライザシステムは、第1のソース視覚化タイプである既存の視覚化についての第1のセットのエッジを決定し得る。エッジの例は、行、列、カテゴリ、値、色、形状、サイズなどを含み得る。いくつかの実施形態においては、視覚化のエッジは、さまざまな次元のデータ、たとえば、年、会社名、製品タイプなどを表現することができる。ビジュアルアナライザシステムはまた、第2のターゲット視覚化タイプのための第2のセットのエッジを決定し得る。特定の実施形態においては、ビジュアルアナライザシステムは、さらに、第1のセットのエッジと第2のセットのエッジとの間においてマッピングを実行してもよい。いくつかの実施形態においては、マッピングは、第1のセットのエッジにおけるエッジと第2のセットのエッジにおけるエッジとの間の距離決定を含み得る。既存の視覚化におけるエッジがターゲット視覚化においてエッジにマッピングされた後、ビジュアルアナライザシステムは、さらに、第2のターゲット視覚化タイプのターゲット視覚化を対応するエッジ値でレンダリングし得る。視覚化タイプが修正されている一方で、ビジュアルアナライザシステムは、ユーザにとって効果的かつ直観的な態様で、データをターゲット視覚化タイプでターゲット視覚化して提示する。
いくつかの実施形態においては、ビジュアルアナライザシステムは、(たとえばモバイルデバイス上の)ウェブブラウザによって提示されるビジュアルアナライザアプリケーションによってユーザに対して1つ以上の視覚化を提示することができる。特定の実施形態においては、視覚化は何らかのデータのビジュアル表現である。一実施形態においては、視覚化によって、図形要素、形状および/またはテキストを表示することができる。視覚化の例は、表、クロス表、グラフ形式の表、棒グラフ、線グラフ、組合せチャート、円グラフ、散布図、マップチャート、ツリーマップ、ヒートマップ、平行座標プロット、集計テーブル、ボックスプロット、テキスト領域、ユーザによって作成されたチャートまたはカスタマイズ可能なチャートなどを含み得る。ビジュアルアナライザシステムは、各々が指定された次元に対応している複数の図表属性(エッジとも称される)を用いて視覚化を生成してもよい。たとえば、ビジュアルアナライザアプリケーションは、色属性、軸属性、サイズ属性を備えた棒グラフを生成することができる。色属性、軸属性、サイズ属性は各々、時間、売上高およびエンティティなどのユーザによって指定される次元に対応している。各々の次元はまた、1つ以上の次元メンバ、たとえば、2009年、2010年および2011年といった年、会社名X、YおよびZ、ならびにさまざまな製品タイプなどを有してもよい。
各々の視覚化は、いくつかの実施形態において、データベースにおける1つ以上の列からの複数次元のデータについての値を含み得る。データベースは1つ以上の表を含むリレーショナルデータベースであり得る。表は1セットの行および1セットの列を有し得る。次元は、表(またはデータベース)の列に対応し、レコードは表(またはデータベース)の行に対応し得る。いくつかの実施形態においては、(たとえば、ウェブブラウザを介して表示される)ビジュアルアナライザアプリケーションユーザインターフェイスは、1つ以上のデータベースの射影(projection)を提供することができる。ユーザは、1つ以上のデータベースにおいて利用可能な1以上の次元のデータを識別することができ、かつ、データベースから検索された1以上の次元のデータを表わすビジュアル表現を生成するようにビジュアルアナライザアプリケーションに要求することができる。
いくつかの実施形態においては、視覚化は、視覚化のさまざまな次元(データベースの基準または列とも称される)を表わす1以上のエッジを有し得る(しばしば、属性とも称される)。共通セットのエッジは、行(x軸とも称される)、列(y軸とも称される)、カテゴリ、値、色、形状、サイズなどを含み得る。たとえば、散布図はそれらのエッジをすべて用いる可能性がある。棒グラフは行、列、カテゴリ、値、色およびサイズを用いる可能性がある。ピボットテーブルは、共通セットのエッジのうち細目を除くすべてを用いる可能性がある。マップは、行、列、カテゴリ、色(マップ形状)、色(バブル)およびサイズを用いる可能性がある。さまざまな次元は収益、ブランド、年、会社名、製品タイプなどを含み得る。次元は、視覚化のエッジによって表わすことができる。たとえば、ブランド次元は、円グラフの色エッジ(または他のタイプの視覚化)によって表わすことができ、収益の次元は、棒グラフの値エッジ(または他のいずれかのタイプの視覚化)で示すことができ、年の次元は、行エッジ(たとえば小さな倍数にとって十分な格子行)で示すことができ、会社の次元は列エッジ(たとえば格子列)で示すことができ、製品タイプの次元は形状エッジによって表わすことができる。この場合、各々の別個の値(次元メンバとも称される)には、形状(たとえば円、正方形、ダイヤモンドなど)が割当てられている。
各々の視覚化は、視覚化のエッジを識別する1以上のエッジ識別子と、各々のエッジに対応する1以上のエッジ値と、各エッジごとに1以上のエッジタグとを含む構成情報を有し得る。視覚化のエッジを識別するエッジ識別子は、視覚化タイプ、色、サイズ、エリア、x軸、y軸、地理座標などを含み得る。さまざまな視覚化タイプのさまざまな視覚化は、異なるセットのエッジを有し得る。たとえば、円グラフは色、サイズなどのエッジを有し得る。棒グラフは、x/列、y/行、色、カテゴリ、値、色、サイズなどのエッジを有し得る。
各々のエッジは、1以上のエッジ値および1以上のエッジタグ(機能的なタグまたは単にタグとも称される)を有し得る。いくつかの実施形態においては、機能的なタグは、それらのエッジがデータ列に対して何を行なうかを記述する視覚化についてのエッジのプロパティであり得る。いくつかの実施形態においては、エッジタグは、エッジが視覚化のために必要なエッジであるか不必要なエッジであるかを示すことができる。エッジが必要なエッジであることをエッジタグが示している場合、エッジは、いくつかの実施形態においてレンダリングすべき視覚化のための値を有するはずである。特定の実施形態は、いずれの視覚化にとっても必要なエッジを有していない可能性がある。
特定の実施形態においては、タグの追加または除去は、単に、視覚化タイプ間の移行時に列が如何に移動するかに対して影響を及ぼすだけであるかもしれない。いくつかの実施形態においては、1エッジ当たりの機能的タグのリストは、位置、マーク、x、y、行、列、半径、角度、テキスト、色、形状、積重ね、内側、外側、データポイントを含み得る。各々のエッジに関して、視覚化は、そのエッジを用いるべきかを如何に決定すべきかを記述しているタグがどんなものであっても追加することができる。たとえば、散布図では、「色」エッジは「マーク」、「内側」、「データポイント」、および「色」でタグ付けすることができる。別の例においては、棒グラフでは、「色」エッジは、「マーク」、「内側」、「データポイント」、「色」、および「列」でタグ付けすることができる。さまざまな視覚化タイプについてのさまざまなエッジはさまざまな機能的なタグを有し得る。
ビジュアルアナライザシステムは、ユーザによって指定される1以上の次元のデータに基づいて1つ以上の視覚化を生成することができる。たとえば、ユーザは、視覚化によって表わされるべき時間、売上高およびエンティティなどの複数の次元を指定し得る。次いで、ビジュアルアナライザシステムは、各々が指定された次元に対応している複数のエッジ(図表属性とも称される)を用いて視覚化を生成してもよい。たとえば、ビジュアルアナライザアプリケーションは、各々が時間、売上高およびエンティティなどのユーザによって指定される次元にそれぞれ対応している色エッジ、軸エッジ、サイズエッジを用いて棒グラフを生成することができる。上述のように、ビジュアル表現は、円グラフ、棒グラフまたは他の如何なるタイプの図形であってもよく、この場合、色、軸、サイズなどのさまざまなエッジは、ユーザによって指定される所望の次元を表現し得る。
多数のタイプの視覚化や、複数次元のデータを視覚化のさまざまなエッジに割当てることができるさまざまな方法があるので、データを多くの方法で表示することが可能となる。データを図形による視覚化で表示する方法を指定する際にヒトの干渉を必要することなく、ユーザにとって直観的かつ迅速に理解可能となり得るように大量のデータをアセンブルしてユーザに提示する方法を自動的に決定することは、非常に困難である。さらに、視覚化の複数のエッジに複数の次元をマッピングする方法をユーザが扱うことが可能な場合であっても、これらの次元を大抵の閲覧者にとって効果的および直観的な態様で表示することができなくなる可能性がある。ビジュアルアナライザシステムのユーザは、他者によって容易に理解できるように表現を表示させることを確実にするように視覚化のエッジに次元をマッピングする方法に精通していない可能性がある。
本発明のさまざまな実施形態においては、階層関係グラフは各々のビジュアル表現ごとに生成することができる。ビジュアル表現のために次元を追加するかまたは除去するようにとのユーザ指示を受取ると、ビジュアルアナライザシステムは、構成の各々が異なるビジュアル表現を表わしている階層関係グラフを1つ以上の新しい構成で生成することができる。いくつかの実施形態は、視覚化構成アルゴリズムを用いて生成された階層関係グラフの複数の構成の各々をスコアリングすることができる。いくつかの実施形態においては、ビジュアルアナライザシステムは、次いで、最高のスコアを有する構成を決定し、最高のスコアを有する構成に対応するビジュアル表現を生成する。したがって、本発明の実施形態は、人の介入または干渉を必要とすることなく、ユーザによって容易に理解される効果的な視覚化を提供することができる。
実施形態は、ユーザが直観的にデータを理解することができるように、複数次元のデータをユーザに提示する。いくつかの実施形態においては、その時点で行われている視覚化により、ユーザが追加することを所望する列(次元とも称される)を追加することができる。いくつかの実施形態は、新しい次元が数値(値とも称される)タイプの次元またはカテゴリタイプの次元であるかどうかに基づいて、新しい次元が追加され得るかどうかと、どのエッジが新しい次元を表現するかとを決定し得る。数値の次元は数値を有する次元である。カテゴリ次元は、物、名前、オフィス、色などの個別のアイテムを有する次元である。
上述のとおり、さまざまな視覚化タイプは、異なる数のカテゴリ別の列および異なる数の値列を処理し得る。たとえば、散布図は、単に、x軸、y軸、色の図表属性およびサイズ図表属性間で分布される最大4個までの数値列を処理することができるだけであるかもしれない。実施形態は、たとえば、視覚化において、新しく追加された列を消費することができる利用可能なエッジが追加されている場合、ユーザが追加することを所望する新しい列を視覚化によって追加することができる限りにおいては、視覚化のエッジに新しい列のデータをマッピングし得る。いくつかの実施形態は、(たとえば、エッジタグおよび次元タイプが数値であるかまたはカテゴリ別である場合)データタイプ互換性に基づいて、および/または、新しく追加された列に存在する次元メンバの数に基づいて、新しく追加された列を消費し得るエッジが視覚化において追加されているどうかを判断し得るとともに、エッジが次元メンバの数に対応することができるかどうかを判断し得る。
いくつかの実施形態においては、どのエッジが新しく追加された列をマッピングすべきかを決定する際に、アルゴリズムにより意味的相違を相殺してもよい。なぜなら、視覚化をあまりに異なった態様で示すことは所望されないからである。列がx軸によって表わされた場合、新しい列を追加した後に列をx軸によって表わしたままにしておくことが望ましい。いくつかの実施形態においては、視覚化階層ツリー構造は、行エッジ、列エッジ、細目エッジ、値エッジを含む構造的ノードと、色エッジ、サイズエッジおよび形状エッジを含む表現エッジとを含み得る。実施形態は、ターゲット視覚化された(たとえば、エッジ間の最も重複するタグを有する)同様の特徴を有するエッジにおいて、先在の視覚化で得られるこれらのさまざまなエッジによって列を表示させたままにしておくことにより、意味的相違を最小限にしてもよい。
いくつかの視覚化タイプは特定のタイプの列を処理することができないかもしれない。たとえば、グリフ(glyph)は、会社などのカテゴリ別の列の追加、または数値タイプのデータの追加をサポートしないかもしれない。棒グラフは形状軸をサポートしないかもしれない。それらの場合には、ユーザが(たとえば、その時点で行われている視覚化においてサポートされていない軸上にそれらの列表現をドロップすることによって)それらのタイプの列を追加することを所望する場合、ビジュアルアナライザシステムは視覚化タイプを切換えてもよい。
いくつかの実施形態は、ユーザによって示される変更を組込むと、同じ視覚化タイプを可能な限り維持しようと試みる。しかしながら、視覚化が変更される場合、システムは、移動させる必要のある列とエッジとのマッピングの量を最小限にしようと試みるかもしれない。実施形態は、構成スコアリングアルゴリズムを提供する。構成スコアリングアルゴリズムは、どの視覚化によって表わされるデータのどんな構成がユーザにとって最も直観的かつ有用になり得るかを決定するのを助け得る。Vizgoodnessスコアリング式(ベーススコアアルゴリズムとも称される)は、既存の視覚化においてすべてのエッジを利用することができ、スコアを得るためにそれらエッジを実現可能なすべての視覚化上にドロップすることができる。特定の構成のためのvizgoodnessスコアが別のスコアよりも高い可能性がある場合でも、エッジをどれくらい移動させなければならなかったかを示す意味的相違スコアが高ければ、特定の構成は依然として他の構成ほど望ましいものでないかもしれない(たとえば、列/エッジがあったとしても、それら列/エッジを多く移動させる必要はなかったかもしれない)。
さらに、合計スコアは、元の視覚化と視覚化の新しい構成との差だけ減じられる可能性がある。そのため、大きく変更することによってスコアがより高くなり得るのに応じて、視覚化間の変更は最小限にされてもよい。元の視覚化タイプに応じて、他の視覚化タイプに切換えるための移行スコアは異なっていてもよい。たとえば、水平バーからstatバーに切換える場合、移行スコアは散布図に切換える場合と比べて大きくならないように決定され得る。さまざまな実施形態は、たとえば、列が追加されている場合、既存の列が除去されている場合、または、視覚化タイプが変更されている場合に、最適な列とエッジとのマッピングを決定する際に異なるスコアリングコンポーネントが得られる理由を説明し得る。
I.例示的なコンピューティング環境
図1は、本発明の特定の実施形態に従ったコンピューティング環境100の例示的なブロック図を示す。図示のとおり、コンピューティング環境100は、通信ネットワーク108を介してクライアントデバイス104および1つ以上のデータサービス106に通信可能に結合されたビジュアルアナライザシステム102を含む。図1に示される実施形態は、単に一例であって、本発明の主張された実施形態を過度に限定するように意図されたものではない。当業者であれば、多くの変形例、代替例および変更例を認識するだろう。たとえば、ビジュアルアナライザシステム102は、クライアントデバイス104の一部であり得るかまたは1つ以上のサーバ上で実行させることができる。
クライアントデバイス104は、パーソナルコンピュータ、デスクトップ、モバイルデバイスまたは携帯型デバイス、たとえばラップトップ、携帯電話、タブレットなど、および他のタイプのデバイスを含むがこれらに限定されないさまざまな異なるタイプのデバイスであり得る。この明細書中において用いられる「サーバ」という語は、典型的には、クライアントサーバプロトコルに従ってサーバとして実行されて動作するアプリケーションを指している。サーバのいくつかの例は、データベースサーバ、ウェブサーバ、アプリケーションサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ゲーミングサーバなどを含む。但し、いくつかのコンテキストにおいては、「サーバ」という語はまた、サーバアプリケーションを実行し得るかまたは実行するコンピューティングハードウェアを指していてもよい。しかしながら、「サーバ」という語を使用する際の特定の意味は、それが使用されるコンテキストに基づくと当業者には明らかになるだろう。
通信ネットワーク108は、クライアントデバイス104およびビジュアルアナライザシステム102などの1つ以上のクライアントデバイスの間の通信を容易にする。通信ネットワーク108はさまざまなタイプであってもよく、1つ以上の通信ネットワークを含み得る。たとえば、通信ネットワーク108は、インターネット、ワイドエリアネットワーク(wide area network:WAN)、ローカルエリアネットワーク(local area network:LAN)、イーサネット(登録商標)ネットワーク、パブリックネットワークまたはプライベートネットワーク、有線ネットワーク、無線ネットワークなど、およびそれらの組合せを含み得るが、それらに限定されない。さまざまな通信プロトコルは、IEEE802XXスイートのプロトコル、TCP/IP、IPX、SAN、アップルトーク、Bluetooth(登録商標)および他のプロトコルなどの有線プロトコルおよび無線プロトコルをともに含む通信を容易にするために用いられてもよい。一般に、通信ネットワーク108は、クライアントデバイス104およびビジュアルアナライザシステム102などの1つ以上のクライアントデバイス間の通信を容易にする如何なる通信ネットワークまたはインフラストラクチャをも含み得る。
クライアントデバイス104は、いくつかの実施形態において、ビジュアルアナライザアプリケーションのユーザインターフェイスまたはウェブブラウザを介して1つ以上の視覚化(グラフィックスまたはチャートとも称される)を表示することができる。視覚化は、クライアントデバイス104のユーザによって識別されるデータの次元(データベースまたはビジネスオブジェクトにおける列とも称される)に基づいて生成することができる。いくつかの実施形態においては、クライアントデバイス104のユーザは、さまざまなデータサービス106から利用可能な1以上の次元のデータ118を選択することができる。1以上の次元のデータ118についてのユーザの選択を受取ると、ビジュアルアナライザモジュール120は、要求されたデータを通信ネットワーク108を介してデータサービス106から取得し、視覚化126を生成することができる。ビジュアルアナライザモジュール120は、アプリケーションプログラムまたは1片のコードであってもよく、個々のコンピューティング装置上で実行可能である。次いで、レンダラー122は、クライアントデバイス104のGUI124上において1つ以上の視覚化126をレンダリングすることができる。GUI124は、複数の視覚化126ならびに/または他のオブジェクトおよびツールをユーザに提示することができる。
いくつかの実施形態においては、クライアントデバイス104上のビジュアルアナライザモジュール120は、スタンドアロンの実行可能なアプリケーション、アプリケーションの一部(たとえば、ブラウザアプリケーションまたはローカルアプリケーション)、別のアプリケーションとともに用いられるべき構成ファイルなどであり得る。ウェブブラウザまたはビジュアルアナライザアプリケーションユーザインターフェイスは、1つ以上のデータベースの射影を提供することができる。ユーザは、1つ以上のデータベースにおいて利用可能な1以上の次元のデータを識別することができ、データベースから検索された1以上の次元のデータを表わす視覚化を生成することをビジュアルアナライザアプリケーションに要求することができる。上述のように、データベースの一例として、列および行を備えたリレーショナルデータベースがある。データの次元はデータベースにおける列に対応し得るものであり、レコードはデータベースにおける行に対応し得る。いくつかの実施形態においては、階層関係グラフ(たとえばエッジのツリー構造)は、ノードが視覚化のさまざまなエッジに対応し得る図形による視覚化のために生成することができる。
上述のように、ビジュアルアナライザアプリケーションは、クライアントデバイス104のGUI124上に1つ以上の視覚化126を表示することができる。いくつかの実施形態においては、視覚化は、いくつかの実施形態においては、ビジュアルアナライザモジュール120によって生成され、レンダラー122によってレンダリングされ、ビジュアルアナライザアプリケーションのユーザインターフェイスまたはウェブブラウザを介してデバイス104上に表示され得る。ウェブブラウザまたはビジュアルアナライザアプリケーションのユーザインターフェイスは、1つ以上の表現(たとえばタブ、テキスト、メニュー、ビジネスオブジェクト、フォルダ)を用いて、1つ以上のデータベースの射影を提供することができる。ユーザは、1つ以上のデータベースにおいて利用可能な1以上の次元のデータ(データベースにおける列、またはビジネスオブジェクトとも称される)を選択することができる。当該1以上の次元のデータは、視覚化によって提示されるようにビジュアルアナライザアプリケーションにおけるデータ要素ペインを介して表示され得る。次いで、アプリケーションは、ユーザが選択してビジュアルアナライザアプリケーションのキャンバスレイアウトにドロップした1以上の次元のデータに基づいて、視覚化を生成して表示し得る。いくつかの実施形態においては、視覚化がビジュアルアナライザモジュール120によって生成され、さらにビジュアルアナライザモジュール120がデータサービス106にクエリを送信し、さらにデータサービス106が関連データ118をデータベースから検索する。
1つ以上の視覚化が生成されてクライアントデバイス104上に提示された後、ユーザは、視覚化に対する1つ以上の修正を指定することができる。当該修正は、1以上の次元のデータについての追加、除去、または他の何らかのタイプの修正であり得る。いくつかの実施形態においては、ユーザは、データベースにおけるデータを表わしているオブジェクト(たとえば、ビジュアルアナライザアプリケーションのデータ要素ペインにおける選択可能な要素)をドラッグし、当該オブジェクトをビジュアル表現を表示しているキャンバスレイアウトのいずれかの部分にドロップすることによって、次元データを追加するように指定することができる。特定の実施形態においては、ユーザは、次元データを表わしている識別子オブジェクトまたは当該次元データがその時点でマッピングされているエッジ識別子を選択解除するかまたは削除することによって、当該次元データを除去することができる。視覚化によって提示されるべきコンテンツにおける変更の指示を受取ると、クライアントデバイス104上のビジュアルアナライザモジュール120は、ビジュアルアナライザシステム102に所望の変更情報を伝えることができる。
ビジュアルアナライザシステム102は、いくつかの実施形態においては、視覚化モディファイア110、メモリ128およびレンダリングエンジン132などを含むがこれらに限定されない複数のコンポーネントを含む。特定の実施形態においては、視覚化モディファイア110は、視覚化がユーザ入力に基づいて如何に提示され得るかを決定する。たとえば、視覚化モディファイア110は、視覚化によって表わされているとともにユーザが所望しているデータ(たとえば複数の列)に対応するように特定の視覚化タイプを選択してもよい。選択を行う際に、視覚化モディファイア110は、データの列を表わすのに最も効果的な視覚化を決定するために、いくつかの視覚化構成について1セットのスコアを計算し得る。最も効果的な視覚化は、データが視覚化のさまざまなエッジによって表わされている態様および特定の視覚化タイプを含み得る。別の場合には、視覚化モディファイア110は、第1のソース視覚化のエッジにおける値を、ユーザによって識別された別のターゲット視覚化のエッジに対して如何にマップすべきかを決定し得る。この決定は、さらに以下に述べられるように、いくつかの実施形態において2つの視覚化間のエッジ距離を計算することによって行うことができる。
いくつかの実施形態においては、視覚化モディファイア110は、距離決定部112、マッパー114、視覚化タイプ(viz type)セレクタ116、構成ジェネレータ150、および構成スコアラー134を含み得る。メモリ128は、1つ以上の視覚化についての構成情報、既存のGUI情報138、プリファレンス情報140、ルール142、およびユーザによって構成された視覚化タイプ144を記憶することができる。いくつかの実施形態においては、レンダリングエンジン132は、更新された視覚化を用いてGUIをレンダリングすることができる。いくつかの実施形態においては、レンダリングエンジン132はリモートサーバの一部であり得るとともに、特定の実施形態においては、レンダリングエンジン132は、クライアントデバイス(たとえばレンダラー122)上で実行され得る。ビジュアルアナライザシステム102におけるさまざまなコンポーネント(たとえば、視覚化モディファイア110または内部のサブコンポーネント)は、サーバの一部またはクライアントデバイス104の一部であってもよい。この場合、ビジュアルアナライザモジュール120は通信ネットワーク108のみを介してアクセスされる必要はない。いくつかの実施形態はまたプラグイン・アダプタ130を有し得る。プラグイン・アダプタ130は、このフレキシブルなプラグインシステムに対して所望されるように、ユーザが他の任意のタイプの視覚化(または、視覚化と相互に干渉し得るツールなどの他のビジュアルアナライザシステムコンポーネント)を追加することを可能にする。フレキシブルなプラグインシステムの拡張性は、ユーザが、新しい視覚化タイプを作成またはインストールし、データを創造的、効果的かつ直観的に提示することを可能にする。
メモリ128は、さまざまな視覚化タイプについての構成情報136を含み得る。いくつかの実施形態においては、構成情報136は、各々の視覚化タイプについてのエッジ情報を含み得る。たとえば、さまざまなタイプのさまざまな視覚化が異なるセットのエッジを有し得るので、構成情報136は、特定のタイプの各々の視覚化ごとにエッジのリストを含み得る。上述のように、エッジは、軸(たとえばx、y)、色、サイズ、形状などを含む各々の視覚化の属性を表わす。いくつかの実施形態においては、各々のエッジは、エッジに関連付けられたエッジ値およびエッジタグを有し得る。1タイプのタグは、エッジが「必要な」エッジであるかどうかを示すことができる。この場合、エッジ値は、視覚化をレンダリングさせるためにエッジにとって必要である。
メモリ128はまた、いくつかの実施形態において既存のGUI情報138を含み得る。既存のGUI情報138は、その時点でGUIに表示されている1つ以上の視覚化についての情報を含み得る。たとえば、既存のGUI情報138は、視覚化の1つ以上の追加のエッジおよび視覚化タイプなどの1つ以上の視覚化についてのエッジ情報を含み得る。
特定の実施形態においては、メモリ128はまた、ユーザにとって好ましい視覚化のタイプについての情報を含むプリファレンス情報140を含む。いくつかの実施形態においては、プリファレンス情報140は構成可能なシステム設定によってユーザによって示され得る。いくつかの実施形態におけるビジュアルアナライザシステムは、ユーザのプリファレンスを決定する際にユーザの履歴挙動を追跡し得る。たとえば、ユーザが、特定のタイプの視覚化による情報を視認することを好むことを、たとえばそのタイプの視覚化に切換えることによって、過去に繰返し示していた場合、プリファレンス情報は、ユーザが特定のタイプの視覚化を好むことを示し得る。いくつかの実施形態においては、プリファレンス情報はまた、統計によって得られた一般ユーザのプリファレンスを含み得る。たとえば、(たとえばビジュアルアナライザシステムまたは他のタイプの視覚化システムの)一般ユーザが、特定のタイプの視覚化によって特定のタイプの情報を閲覧することを好む場合、プリファレンス情報は、データを提示する際にどのタイプの視覚化を用いるべきであるかを決定する際に、特定のタイプの視覚化に対してより多くの重みを与える可能性がある。
いくつかの実施形態においては、メモリ128はルール142を含む。ルール142は、1つ以上の構成を決定して当該構成をスコアリングする際に、構成ジェネレータ150および構成スコアラー134によって使用され得る。特定の実施形態においては、構成ジェネレータ150は、構成を生成する際に視覚化のどのエッジがどのタイプの次元を消費し得るかを決定するためにルール142を用い得る。いくつかの実施形態においては、構成スコアラー134は、どのマッピングがどんなスコアを受取り得るかを決定するためにルール142を用い得る。たとえば、ルール142は、カテゴリ(geo)エッジへの会社位置次元の割当てが30の値を有し得ること、さらに、カテゴリ(x)エッジへの会社位置次元の割当てが7の値を有し得ることを指定し得る。いくつかの実施形態においては、構成スコアラー134はまた、エッジに対する次元のどのマッピングが最高のスコアを達成し得るかを決定し得る。特定の実施形態においては、ルール142はまた、2つの視覚化のエッジ間の距離を計算する際にも用いることができる。たとえば、ルール142は、異なる視覚化タイプの各視覚化についてのツリー構造を指定することができる。
視覚化が開始されない場合には、視覚化によって提示されることをユーザが好むであろう1以上の次元のデータ(たとえば、年、会社名、収益、製品タイプなど)が、ユーザ入力によって指定され得る。特定の実施形態においては、ビジュアルアナライザシステム100は、ユーザによって選択されたデータを提示する際に用いるべき視覚化タイプを決定することができる。いくつかの実施形態においては、ビジュアルアナライザシステム100はまた、視覚化タイプを用いてデータを提示するべき態様を決定することができる。たとえば、ビジュアルアナライザシステム100は、ユーザによって選択されるどの次元に視覚化のどのエッジを対応させるかを決定してもよい。
特定の実施形態においては、新しい視覚化を作成するためにユーザが次元を指定することに加えて、ユーザ入力は、次元を追加するかまたは既存の視覚化から次元を除去するように修正を指定することができる。(追加するかまたは除去するべき)次元を指定するユーザ入力に基づいて、構成ジェネレータ150は、(プラグイン・アダプタ130を介して追加される、ユーザによって構成された任意の視覚化タイプを含む)利用可能な視覚化タイプのうちのいくつかまたはすべてのために、いくつかの視覚化構成を生成することができる。視覚化構成は、視覚化のさまざまなエッジに対するさまざまな次元のマッピングを含み得る。上述のように、視覚化タイプに応じた各視覚化ごとにさまざまなエッジがあってもよい。特定の実施形態においては、構成情報136は視覚化構成を含み得る。
さまざまな視覚化構成は、ユーザによって指定された次元に対する修正を組込んだものであってもよい。たとえば、ユーザ入力が視覚化に対する次元の追加を指定していた場合、さまざまな視覚化構成は、ユーザによってさまざまな視覚化のエッジに追加されるように新たに指定された次元のマッピングを含み得る。ユーザ入力が視覚化に対する次元の除去を指定していた場合、さまざまな視覚化構成は、さまざまな視覚化のエッジに対する残りの次元(指定された次元はより少なくなっている)のマッピングを含み得る。
いくつかの実施形態においては、構成スコアラー134がさまざまな構成をスコアリングし得る。特定の実施形態においては、構成スコアラー134は、ベーススコア、プリファレンススコア、移行スコアおよび意味的相違スコアのうち少なくとも1つを含む構成スコアリングアルゴリズムを用いて、各々の構成をスコアリングし得る。ベーススコアは、特定のエッジに対する特定の次元のマッピングの適合性を示し得る。たとえば、ビジュアルアナライザシステム102は、マップにおけるカテゴリ(geo)エッジに対する会社位置次元のマッピングが、棒グラフにおけるカテゴリ(x)エッジに対する会社位置次元のマッピングと比べて、より高いスコアを有し得ると判断し得る。プリファレンススコアは、さまざまな視覚化タイプの視覚化に対する一般的なプリファレンス、または、さまざまな視覚化タイプの視覚化に対するユーザのプリファレンスを示すことができる。たとえば、ビジュアルアナライザシステム102は、一般集団が散布図よりも棒グラフを好んでいると判断し、これにより、より高いプリファレンススコアを棒グラフタイプの視覚化に割当て得る。別の場合においては、ビジュアルアナライザシステム102は、ユーザの過去の挙動の監視に基づいて、ユーザが特定のタイプの視覚化を他のものよりも好んでいると判断し、それら特定のタイプに、他と比べてより高いプリファレンススコアを割当て得る。
実施形態はまた、ユーザの修正を組込んだ新しい視覚化を表示する方法を決定する際に、視覚化タイプ切換えペナルティについて説明し得る。いくつかの実施形態は、既存の視覚化に対して修正がなされている場合に、構成をスコアリングするための移行スコアを含み得る。いくつかの実施形態においては、移行スコアは、既存の視覚化の視覚化タイプとは異なる視覚化タイプを表わしている構成に対するペナルティを表現することができる。たとえば、移行スコアは、既存の視覚化とは異なる視覚化タイプを有する構成に割当てられている負のスコアであってもよい。特定の実施形態においては、移行スコアは、視覚化タイプが既存の視覚化の視覚化タイプと同じである場合に、それらの構成に追加される正のスコアであってもよい。
いくつかの実施形態においては、切換えペナルティは、修正を組込んだ後であっても視覚化にその視覚化タイプを保持させ得る。上述のように、この修正は、視覚化のエッジによって表わされている次元の追加または除去であってもよい。切換えペナルティが先在する視覚化タイプを保持するほど十分に大きくない可能性がある場合、更新された視覚化は、先在する視覚化とは異なる視覚化タイプを有する可能性がある。
いくつかの実施形態はまた意味的相違スコアを説明し得る。特定の実施形態においては、より多くのデータ列を視覚化に追加する場合、割当てられたすべてのデータ次元をより最適に描写できるようにするために、その時点で行われている視覚化を異なるチャートタイプに変換することが所望され得る。チャートタイプが変更されると、いくつかの実施形態は、データが如何に図表化されるかについての意味的相違を最小限にするように、当該変更を実現し得る。すなわち、好ましくは、軸、色づけ、サイズおよび他のプロパティのような既存の割当てを維持し得る。いくつかの実施形態においては、意味的相違スコアは、先在する構成と潜在的な構成との間の相違スコアを計算することができるエッジ距離決定部112を用いて計算することができる。相違スコアが視覚化構成にとって高い場合、その視覚化構成は、元の構成を可能な限り保持するために、より低い相違スコアを有する別の構成と比べて、それほど望ましいものではない可能性がある。
いくつかの実施形態においては、或る構成のための構成スコアは、ベーススコア、プリファレンススコアおよび移行スコアを合計して相違スコアを減じることによって、計算することができる。特定の実施形態においては、すべての構成についての構成スコアを計算すると、視覚化タイプセレクタ116は最高の構成スコアを有する構成を選択し得る。いくつかの実施形態においては、視覚化タイプセレクタ116は、次いで、最高の構成スコアを有する構成に対応する視覚化タイプを決定し得る。特定の実施形態においては、どの構成が最高のスコアを有するかに応じて、視覚化タイプセレクタ116は、既存の視覚化のタイプと比較して、既存の視覚化と同じタイプまたは異なるタイプである視覚化タイプを選択し得る。
上述のように、ビジュアルアナライザシステム100は、異なるスコアリングアルゴリズムを用いて、指定された入力エッジについての視覚化タイプを決定することができる。いくつかの実施形態においては、エッジ距離スコアラー(ここでは図示せず)は、ユーザによって選択された入力エッジとさまざまなタイプの視覚化のための個々の構成のエッジとの間で類似性比較を実行することができる。類似性比較を実行する際に、エッジ距離スコアラーは、入力エッジと視覚化タイプの各々のエッジとについての距離スコアおよびを計算し得る。次いで、視覚化タイプセレクタ116は、入力エッジを表示するために用いられる最高の距離スコアを有する視覚化タイプを選択し得る。特定の実施形態においては、距離スコアはベーススコアおよびプリファレンススコアを含み得る。プリファレンススコアは、特定のタイプの視覚化を他のタイプの視覚化と比べたときに、他のタイプの視覚化よりも、特定のタイプの視覚化に対して、一般ユーザのプリファレンスまたはターゲットにされたユーザのプリファレンスを示すことができる。
いくつかの実施形態においては、エッジ距離スコアラーは、ベーススコアおよびプリファレンススコアに加えて、バイアススコア(切換えペナルティスコアまたは粘性スコアとも称される)を含む距離スコアを計算し得る。バイアススコアは、元の視覚化タイプを保持することに対するバイアスを示し得る。このため、既存の視覚化の視覚化タイプとは異なる視覚化タイプの場合、バイアススコアは、同じ視覚化タイプについてのバイアススコアと比較して、より低い(または負数である)かもしれない。異なる視覚化タイプを有する1つの構成のプリファレンススコアおよびベーススコアの合計が、先在する視覚化タイプを有する構成のプリファレンススコアおよびベーススコアの合計よりもはるかに大きい場合、バイアススコアは先在する視覚化タイプを保持するほど十分には大きくないかもしれない。それらの場合、新しい視覚化の視覚化タイプが新しい視覚化タイプに更新されてもよい。
いくつかの実施形態においては、構成スコアラー134は、構成情報136、既存のGUI情報138(ユーザが調整を行う前に先在する視覚化が存在していた場合)、プリファレンス情報140、ルール142、および、ユーザによって構成された視覚化タイプ144(ビジュアルアナライザアプリケーションにおいて容易に利用可能なものに加えて、ユーザが付加的な視覚化タイプを指定していた場合)のうち、1つ以上に基づいて各々の構成についてのスコアを計算することができる。当該スコアに基づいて、視覚化タイプセレクタ116は、最高のスコアを有する構成を選択し、最高のスコアを有する構成に対応する視覚化タイプを決定することができる。いくつかの実施形態においては、視覚化構成をレンダラー132または122に送信することができ、レンダラー132または122は、構成に基づいてGUI124上で視覚化をレンダリングし得る。
いくつかの場合、ユーザは、1つの視覚化タイプの表示から別の表示に切換えることを所望する可能性もある。たとえば、ユーザによってあらかじめ選択されたデータの次元をその時点で表示している棒グラフが存在する可能性があり、ユーザは、棒グラフから円グラフなどの別のタイプのチャートへの切換えを示してもよい。いくつかの実施形態は、視覚化のエッジ間の距離計算を実行することによって、ソース視覚化におけるエッジの値をターゲット視覚化におけるエッジへと如何にマッピングするかについて決定し得る。
特定の実施形態においては、エッジ距離決定部112は、値を、1つの視覚化タイプを有する第1の視覚化のエッジから別の視覚化タイプを有する第2の視覚化のエッジに転送するために、2つの視覚化間のエッジマッピングを実行することができる。エッジ距離決定部112は、既存の視覚化タイプについてのエッジ情報を既存のGUI情報138から取得することができる。次いで、エッジ距離決定部112は、ターゲット視覚化のエッジに対する既存の視覚化のエッジ間のエッジマッピングを作成することができる。いくつかの実施形態においては、エッジマッピングは、ソース視覚化のエッジとターゲット視覚化のエッジとの間の距離を決定することによって実行することができる。特定の実施形態においては、エッジ間の距離は各々のエッジに関連付けられたタグに基づいて決定することができる。たとえば、エッジ識別子をともに色として有するエッジ間の距離は、エッジ識別子を色として有するエッジとエッジ識別子をサイズとして有する別のエッジとの間の距離と比較して、より短くなるだろう。
特定の実施形態においては、エッジマッピングはまた、必要なエッジがそれにマッピングされている値を有することを確実にするために、ターゲット視覚化の必要なエッジをマッピングすることを優先させ得る。必要なエッジの情報は、メモリ128に記憶された構成情報136から取得することができる。いくつかの実施形態においては、エッジ距離決定部112は、ターゲット視覚化における必要なエッジを決定し、最初にそれらを充填し得る。たとえば、ターゲット視覚化における地理位置エッジが(たとえば視覚化をレンダリングさせるために)本質的な必要とされるエッジとして識別されていた場合、エッジ距離決定部112は、ソース視覚化において必要なエッジをエッジ値で満たすことを優先させ得る。
エッジ距離決定部112が視覚化のエッジ間におけるマッピングを決定すると、マッパー114はマッピング機能を実行することができる。この場合、エッジからの値はターゲット視覚化における対応するエッジにマッピングされる。エッジ値をマッピングすると、マッパー114は、マッピングされた値をレンダリングエンジン132またはレンダラー122に送信して、新しい更新された視覚化をレンダリングさせ得る。レンダリングされた視覚化は、この時、ターゲット視覚化タイプである。上述のように、エッジ値は、次元もしくはデータにおける値、またはデータベースの列における値に対応し得る。
いくつかの実施形態はまた、新しい視覚化タイプ(たとえばドーナツマップ)144についての構成情報をユーザが提供することを可能にするプラグイン・アダプタ130を有する。いくつかの実施形態においては、ユーザはユーザによって構成された1つ以上の視覚化および関連情報144をプラグイン・アダプタ130に提供し得る。ビジュアルアナライザシステム100は、ビジュアルアナライザシステム100に先在していない視覚化タイプを有する、ユーザによって構成された視覚化を組込むことができる。システムの融通性により、システムが、ユーザ構成可能視覚化タイプに対応すること、およびユーザがユーザによって構成された視覚化に干渉できるようにすることを可能にする一方で、明細書に記載された機能(たとえばマッピング、エッジ距離決定など)をユーザによって構成されたこれらの視覚化にも適用できるようにすることを確実にし得る。いくつかの実施形態においては、ユーザによって指定されたこれらの視覚化についての構成情報はエッジ情報を含み得る。視覚化は、システムにおいて予め規定されたものと同様に、エッジ識別子およびエッジ値を有する1セットのエッジを有してもよい。さらに、構成情報はまた、たとえば、エッジが必要なエッジであるか否かを識別するエッジについてのタグを含んでもよい。ユーザによって構成された視覚化タイプ144についての構成情報136は、プラグイン・アダプタ130を介してユーザによって提供され、メモリ128に記憶されてもよい。
図のうちのいくつかにおいて示されるシステムは、さまざまな構成で提供され得る。いくつかの実施形態においては、システムは、システムのうち1つ以上のコンポーネントが、1つ以上のクラウドインフラストラクチャシステムにおける1つ以上のネットワークを介して分散されている分散型システムとして構成されてもよい。
クラウドインフラストラクチャシステムは、1つ以上のサーバコンピューティング装置、ネットワーク装置および/または記憶装置の集合である。これらのリソースは、クラウドサービスプロバイダによって分割され、何らかの態様でその顧客に割当てられ得る。たとえば、カリフォルニア州(California)のレッドウッドショアズ(Redwood Shores)にあるオラクル社(Oracle Corporation)などのクラウドサービスプロバイダは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリのもとで提供される1つ以上のサービス;プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリのもとで提供されるサービス;インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS)カテゴリのもとで提供されるサービス;または、ハイブリッドサービスを含む他のカテゴリのサービス;を含むが、これらに限定されないさまざまなタイプのクラウドサービスを提供し得る。SaaSサービスの例は、オラクル・フュージョン・アプリケーションなどのオンデマンドアプリケーション一式を構築して提供する能力を含むが、これらに限定されない。SaaSサービスは、顧客がアプリケーションのためのソフトウェアを購入する必要なしに、当該顧客がクラウドインフラストラクチャシステム上で実行されるアプリケーションを利用することを可能にする。PaaSサービスの例は、(オラクルなどの)組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合することを可能にするサービス、さらには、オラクルJava(登録商標)クラウドサービス(Javula Cloud Service:JCS)、オラクル・データベース・クラウドサービス(Database Cloud Service:DBCS)などのプラットフォームによって提供される共有サービスを利用する新しいアプリケーションを構築する能力を含むが、これらに限定されない。IaaSサービスは、典型的には、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のためのストレージ、ネットワークおよび他の基本的なコンピューティングリソースなどの、基礎をなすコンピューティングリソースの管理および制御を容易にする。
II.新しい視覚化を決定および提示する例示的プロセス
いくつかの実施形態は、ユーザによって選択された1以上の次元のデータを表示するのに最も適した視覚化タイプを有する視覚化を決定することができる。図2は、本発明のいくつかの実施形態に従った、既存の視覚化についての次元を修正するようにとのユーザ要求に応じて、ユーザに提示すべき新しい視覚化を決定する例示的なプロセス200を示す。いくつかの実施形態においては、フロー200は、クライアントデバイスもしくは1つ以上のサーバデバイスまたはそれらの組合せによって実行することができる。
ブロック202において、プロセス200は、既存の視覚化の修正に対応するユーザ入力を受取ることができる。この場合、当該修正は、ある次元のデータの追加または既存の視覚化からの除去を含んでいる。既存の視覚化は、当該既存の視覚化が第1の視覚化タイプであることを示す既存の視覚化タイプ情報を有してもよい。既存の視覚化はまた、その1以上のエッジによって1以上の次元のデータを表示することであってもよい。いくつかの実施形態においては、ユーザ入力は、(たとえばデータ要素ペインから次元が選択され、キャンバスレイアウトに表示されている視覚化へとドラッグされる場合におけるドラッグ・アンド・ドロップ動作によって)既存の視覚化に追加すべき1以上の次元を選択することであってもよい。特定の実施形態においては、ユーザ入力は、視覚化においてその時点で提示されており視覚化から除去されるべき或る次元を識別することであってもよい。視覚化が開始されていないいくつかの実施形態においては、ユーザ入力は、新しい視覚化を生成するために1以上の次元のデータを選択することに対応し得る。ユーザ入力は、データ要素ペインから或る次元を選択すること、および、この選択したものをGUIのキャンバスレイアウト部分のどこかにドラッグすることであってもよい。
ブロック204において、プロセス200は、視覚化タイプごとに、既存の視覚化の次元に対する修正を組込んだ視覚化構成を決定することができる。視覚化構成は、図1の構成ジェネレータ150などのコンポーネントによって決定することができる。いくつかの実施形態は、最初の視覚化を構築する際に用いられたデータの最初の次元および修正に基づいていくつかの視覚化構成を生成してもよい。構成の各々は異なる視覚化を表現することができる。いくつかの実施形態においては、同じカテゴリの視覚化タイプ内に複数の構成が存在し得る(たとえば棒グラフのさまざまなエッジにマッピングされた次元を有する複数の棒グラフ)。さまざまな視覚化タイプを有する複数の視覚化のための複数の構成も存在し得る。
いくつかの実施形態においては、各視覚化タイプごとに視覚化構成が1つだけ生成されていてもよい。視覚化構成の生成は、修正がなされた後に上記セットの次元(すなわち、修正によって次元が追加されたかまたは除去されたかどうか)を決定し、次いで、当該セットの次元の各々を視覚化のエッジにマッピングすることを含み得る。特定の実施形態においては、視覚化構成は1セットのルールに基づいて決定され得る。いくつかの実施形態は、視覚化のエッジに対する或る次元のマッピングを、当該次元を視覚化の他のエッジにマッピングする場合と比べて、値が最も高い場合に、実行し得る。たとえば、会社位置次元をカテゴリエッジにマッピングすることによって、会社位置を色エッジにマッピングする場合よりも高いスコアが得られる場合、構成は会社位置次元をカテゴリエッジにマッピングすることを含み得る。特定の実施形態においては、「必要な」タグに関連付けられた視覚化のエッジが存在する可能性があり、このため、次元を別のエッジにマッピングする場合と比べて、マッピングされたスコアがより高くなるかどうかにかかわらず、構成は、当該セットの次元のうち少なくとも1つを「必要な」エッジにマッピングし得る。
ブロック206において、プロセス200は、複数の構成の各々のために、構成スコアリング式を用いて構成スコアを計算することができる。構成スコアは、図1の構成スコアラー134などのコンポーネントによって計算することができる。いくつかの実施形態においては、構成スコアリング式は、ベーススコア、プリファレンススコア、移行スコア(ペナルティスコアまたはバイアススコアとも称される)、またはそれらのいずれかの組合せを含み得る。特定の実施形態においては、ベーススコアおよびプリファレンススコア(および/または移行スコア)を計算する代わりに、構成スコアは、ユーザによって選択されたエッジ情報とさまざまな視覚化タイプのためのさまざまな構成との間の距離スコアを含み得る。
いくつかの実施形態は、視覚化のエッジに対する或る次元の各マッピングについてのベーススコアを割当て得る。特定の実施形態は、表(たとえばルックアップテーブル(lookup table:LUT))を含み得る1セットのルール(たとえば図1のルール142)に基づいて各々のマッピングを割当てるためにベーススコアを決定し得る。たとえば、いくつかの実施形態は、棒グラフの値エッジに収益次元をマッピングするために10のベース値を割当て得る。別の例においては、いくつかの実施形態は、地理的マップタイプのチャートのカテゴリ(geo)エッジに会社位置をマッピングするために30のベース値を割当て得る。さまざまな実施形態は、さまざまな視覚化タイプを視覚化するためにさまざまなマッピングのためのさまざまなベース値を割当て得る。ユーザによって構成された視覚化タイプが(たとえばプラグイン・アダプタを介して)ビジュアルアナライザシステムに追加されている実施形態においては、各々のマッピングをスコアリングするためのルールもプラグインによって指定され得る。
いくつかの実施形態においては、構成スコアはまた、プリファレンススコアを含み得る。プリファレンススコアは、さまざまなタイプの視覚化に対するユーザのプリファレンスを示し得る。たとえば、ユーザが概して円グラフより棒グラフを好む場合、棒グラフについてのプリファレンススコアは、円グラフに割当てられたプリファレンススコアよりも高くなり得る。ユーザのプリファレンスは、ビジュアルアナライザアプリケーションによって監視されたユーザの履歴挙動に基づいて決定することができる。ユーザが円グラフ視覚化を棒グラフ視覚化に変更することをビジュアルアナライザアプリケーションが一貫して検出する場合、ビジュアルアナライザアプリケーションは、ユーザが円グラフよりも棒グラフを好んでいると判断し得る。特定の実施形態においては、プリファレンススコアは、一般大衆(またはビジュアルアナライザアプリケーションのユーザ)のプリファレンスを示してもよい。たとえば、一般的な人の挙動に関する過去の研究は、一般大衆が、他のタイプよりも或る1タイプの視覚化を好んでいることを示し得る。そのため、ビジュアルアナライザアプリケーションは、概してよりポピュラーであると見なされている視覚化タイプについて、より高いプリファレンススコアを割当てる可能性がある。特定の実施形態は、表(たとえばルックアップテーブル(LUT))を含み得る1セットのルール(たとえば図1のルール142)に基づいて各々の構成についてのプリファレンススコアを割当ててもよい。さまざまなタイプの視覚化についてのプリファレンススコアは、時間とともに変化し得るものであるとともに、付加的なユーザアクティビティが追跡されるのに応じて、かつ、ユーザのプリファレンスの指示が付加的なユーザアクティビティに基づいて変化するのに応じて、定期的に更新され得る。
特定の実施形態においては、構成スコアは、既存の視覚化と同じ視覚化タイプを有する視覚化構成についてのプリファレンスを示す移行スコアを含み得る。移行スコアは、正の(またはより高い)スコアを割当てることによって同じ視覚化タイプを有する視覚化構成に追加の重みを与えることができる一方で、同じ視覚化タイプを持たない構成に負のスコア、ゼロのスコアまたはより低いスコアを割当て得る。さまざまな異なる視覚化タイプに移行させるための移行スコアも異なっている可能性がある。たとえば、棒グラフから円グラフへの移行は、棒グラフから散布図への移行と比べて、より高いスコアを有する可能性がある。ビジュアルアナライザアプリケーションは、表(たとえばルックアップテーブル(LUT))を含み得る1セットのルール(たとえば図1のルール142)に基づいてさまざまな移行スコアを割当てることができる。
ブロック208において、プロセス200は、計算されたスコアに基づいて、いくつかの構成から特定の視覚化構成を選択することができる。いくつかの実施形態においては、この選択は、図1における視覚化タイプセレクタ116などのコンポーネントによって行なうことができる。視覚化構成は、元の既存の視覚化と比べて、同じタイプの視覚化または異なるタイプの構成であり得る。いくつかの実施形態においては、視覚化タイプセレクタは、最高の構成スコアを有する特定の視覚化構成を選択し得る。
ブロック210において、プロセス200は、特定の視覚化構成に対応する更新済み視覚化をレンダリングさせることができる。いくつかの実施形態においては、更新済み視覚化は、図1におけるレンダリングエンジン132またはレンダラー122などのコンポーネントによって生成することができる。いくつかの実施形態は、選択された構成の視覚化タイプが元の既存の視覚化タイプと同じであるかどうかを判断し得る。特定の実施形態においては、視覚化タイプが同じであると判断されると、視覚化が更新された次元でレンダリングされ得る。情報は、GUI124上でレンダリングされるように、レンダリングエンジン132またはレンダラー122などのレンダラーに送信され得る。同じ視覚化タイプを有する視覚化が表示され得るが、何らかの追加情報を備え得る。いくつかの実施形態においては、追加情報は、視覚化に追加された追加のエッジであってもよく、または、以前から視覚化の一部であったエッジを除去したものであってもよい。エッジの値に対する変更などの他のタイプの追加情報も、ユーザの要求に応じて表示され得る。
いくつかの実施形態は、更新された視覚化を決定する際に、特定の構成を有する潜在的な視覚化と元の先在する視覚化との間の意味的相違を考慮に入れ得る。いくつかの実施形態においては、構成スコアリング式はまた、意味的相違コンポーネントを含み得る。この意味的相違コンポーネントにおいて、意味的相違のスコアが計算され得る。上述のように、いくつかの実施形態は、視覚化タイプが変化していない場合であっても、ユーザの修正に対応するように視覚化を調整し得る。エッジ値(列または次元とも称される)は、修正を有効に組込むために視覚化の際にさまざまなエッジにマッピングされ得る。いくつかの実施形態においては、視覚化タイプが同じであると判断されると、プロセス200は、図1におけるエッジ距離決定部112などのエッジ距離決定部に情報を送信し得る。エッジ距離決定部は、元の視覚化のエッジとターゲット視覚化のエッジとの間のエッジ距離(意味的相違とも称される)を決定することができる。マッパーは、元の視覚化におけるエッジに対応する値をターゲット視覚化におけるさまざまなエッジにマッピングし得る。いくつかの実施形態においては、マッパーは、新しく追加された次元について最も近い空のエッジを識別し、新しく更新された視覚化において、新しく追加された次元をこのエッジに対してマッピングし得る。
特定の実施形態においては、視覚化タイプが同じではないと判断されると、プロセス200は、元の既存の視覚化のエッジから新しい視覚化タイプを有する新しい視覚化のエッジへの値のマッピングを決定することができる。いくつかの実施形態においては、図1における視覚化タイプセレクタ116などの視覚化タイプセレクタは、図1におけるエッジ距離決定部112などのエッジ距離決定部に対して、選択された視覚化を送信することができる。エッジ距離決定部112は、(ここではターゲット視覚化タイプである)選択された視覚化タイプについての構成情報を検索し、2つの視覚化のエッジ間の距離を決定し得る。
次いで、図1におけるマッパー114などのマッパーは、視覚化のエッジ間において計算された距離に基づいてマッピング構成を選択することができる。いくつかの実施形態においては、マッパーは、エッジ距離が最短であると判断された場合、値を或る1つのエッジから別のエッジにマッピングし得る。特定の実施形態においては、マッパーは、最初に、選択された視覚化において必要なエッジを識別し、残りのエッジのマッピング前に、まず、それらの必要なエッジに値が確実にマッピングされるようにし得る。マッパーが視覚化のエッジ間における値のマッピングを実行した後、プロセス200は、新しい更新された視覚化をGUI上でレンダリングさせるためにレンダラーにマッピング情報を送信することができる。
III.新しい次元を追加して視覚化を修正するシーケンスを示すためのスクリーンショット
図3〜図8は、新しい次元のデータを追加して視覚化を作成するためのシーケンスを示すスクリーンショット300〜800を含む。図3に示されるように、ビジュアルアナライザアプリケーションのGUI302は、たとえば、モバイルデバイスなどのユーザのコンピューティング装置上で実行されるウェブブラウザまたはアプリケーションを介して表示することができる。GUI302は、さまざまな次元のデータを表わす1つ以上の選択可能な要素が表示され得るデータ要素ペイン306;1つ以上の視覚化が表示され得るキャンバスレイアウト308;視覚化タイプを有する視覚化のエッジが表示され得るエッジペイン310;ユーザが表示されたデータをフィルタリングするためにフィルタを追加し得るフィルタ列312;および、1つ以上の制御要素314(たとえば、取消しボタン、設定ボタンなど)を含み得る。さまざまな実施形態は、ビジュアルアナライザアプリケーションにおけるさまざまな要素をさまざまに表示し得る。
GUI302に示されるように、データ要素ペイン306における収益の次元304が強調されて、それがビジュアルアナライザアプリケーションのユーザによって選択されたことを示している。ユーザは、この選択をキャンバスレイアウト308にドラッグし、キャンバスレイアウト308にこの選択をドロップして、ユーザが選択された次元を用いて作成された新しい視覚化を好むであろうことを示し得る。この例においては、デフォルトの視覚化タイプは水平な棒グラフである。さまざまな実施形態はさまざまなデフォルトの視覚化タイプを有し得る。いくつかの実施形態は、視覚化の作成のためにユーザが選択した次元(たとえば次元特徴、次元メンバ)に応じて視覚化タイプを決定し得る。次元特徴は、選択された次元が数値タイプの次元であるかまたはカテゴリタイプの次元であるかを示すことができる。次元メンバは、次元メンバがいくつ存在しているかと、次元メンバの値の範囲とを示すことができる。
図4は、棒グラフ視覚化402における選択された収益次元のレンダリングを示す。ユーザが次元を表現する際に用いるべき視覚化のエッジを示し得る一方で、いくつかの実施形態は、選択された次元のデータを表現するのに最も適切であり得るエッジを自動的に決定する。実施形態は図1および図2において記載された技術を用いてもよい。この技術は、図1における構成ジェネレータ150および構成スコアラー134を含むビジュアルアナライザアプリケーションのさまざまなコンポーネントによって実行される。いくつかの実施形態においては、スコアラーなどのビジュアルアナライザコンポーネントは、収益次元を値(x軸)エッジにマッピングする場合、収益次元を視覚化の他のエッジにマッピングする場合よりも高いスコアを取得するだろうと判断し得る。そのため、視覚化により、水平な棒グラフの値エッジにおいて収益次元が表示され得る。
図5は、ユーザが別の次元:大型オブジェクト(large objects:LOB)次元を追加することを選択したことと、視覚化502が視覚化502のカテゴリ(y軸)エッジにおけるLOB次元を表示するために更新されたこととを示す。また、ユーザは新しく追加された次元を表現するのに視覚化のどのエッジを用いるべきかを指定し得るとともに、ビジュアルアナライザアプリケーションは、新しく追加されたデータを提示するのに最適な方法を自動的に決定し得る。いくつかの実施形態においては、スコアラーは、カテゴリ(y軸)エッジに対してLOB次元をマッピングすることで、視覚化の他のエッジに対してLOB次元をマッピングする場合と比べて、より高いスコアが提供されると判断し得る。
さらに、他の視覚化タイプを有するさまざまな視覚化構成がまた、さまざまな視覚化構成が新しい次元の追加を組込んだ場合に、決定されてスコアリングされ得る。いくつかの実施形態は、ベーススコア、プリファレンススコアおよび移行スコアの合計に基づいて、収益次元が値(x軸)にマッピングされており、LOB次元がカテゴリ(y軸)にマッピングされている構成が最高のスコアを有していると判断し得る。上述のとおり、より高いベースおよび/またはプリファレンススコアを有する異なる視覚化タイプを有する他の構成が存在し得る一方で、移行スコアが元の視覚化タイプの方を支持していることにより、構成スコアの総計が、元の視覚化タイプを有する構成の方を支持することになり得る。
図6は、ターゲット収益次元が視覚化に追加されたことを示す。図示のとおり、視覚化タイプは変化していない。いくつかの実施形態においては、ビジュアルアナライザアプリケーションは、また、構成が決定されてスコアリングされる図2に記載されるのと同様のプロセスを実行し得る。同じ視覚化タイプを有する構成は、この例において最高の構成スコアを有すると判断された。選択された構成は、視覚化の色エッジにマッピングされるようにターゲット収益次元を指定し得る。構成のこれらのマッピングはこの視覚化602においてこのように図示されている。いくつかの実施形態においては、視覚化のエッジに対する予め示された次元のマッピングを維持することにより、当初に示された視覚化と更新された視覚化との間の意味的距離が最小限になり得る。そのため、いくつかの実施形態は、先在する構成との類似性がより多い構成を、先在する構成との類似性がより少ない構成よりも高くスコアリングすることによって、意味的相違を最小限にし得る。
図7は、請求量の次元が視覚化に追加されたことを示す。ユーザが、請求量の次元を表わす要素をキャンバスレイアウトに表示された視覚化702にドロップすると、ビジュアルアナライザアプリケーションは、新しく追加された請求量の次元が値(x軸)エッジによって表現されている視覚化を表示し得る。図7は新しい請求量の次元のデータの追加を表示する一方法を示し、図8は、視覚化への新しい次元のデータの追加を表示する別の方法を示す。いくつかの実施形態は図7の代わりに図8を示し得る。なぜなら、図8における視覚化802に対応する視覚化構成が、視覚化スコアリングアルゴリズムにおいて、よりも高くスコアリングし得るからである。ビジュアルアナライザアプリケーションは、新しい次元のデータを追加するようにとの指示を受取ると、ユーザにスクリーンショット1100を自動的に提示し得る。この例においては、図2のプロセス200などのプロセスを用いて、ビジュアルアナライザアプリケーションは、請求量の次元が追加された場合には、データを表示するのに別の視覚化タイプの方がより適しているだろうと自動的に判断した。この例においては、ビジュアルアナライザアプリケーションは、先在する視覚化602によって表現されていた他の次元と共に、散布図を用いて値(x軸)エッジにおいて請求量次元を表示することが、ユーザにとって最も直観的になり得ると判断した。
上述のように、いくつかの実施形態は、視覚化エッジに対するデータ要素(複数次元のデータとも称される)の、意味的距離に基づいた割当てを用いてもよい。特定の実施形態においては、視覚化に対してより多くのデータ列を追加する場合、割当てられたデータ次元をすべてより適切に描写できるようにするために、その時点での視覚化を異なるチャートタイプに変換することが望ましい可能性もある。チャートタイプが変更されると、いくつかの実施形態は、データが如何に図表化されるかについての意味的相違を最小限にするように当該変更を実現し得る。すなわち、好ましくは、軸、色づけ、サイズおよび他のプロパティのような既存の割当てを維持し得る。
いくつかの実施形態は、i)視覚化によってサポートされるプロパティに対する使用済みデータ列ごとの最良の配置、ii)視覚化タイプの全体的な優秀性(ベーススコアとも称される);およびiii)元の視覚化およびプロパティ割当てまでの意味的距離;のうち少なくとも1つ以上に基づいて、視覚化選択およびプロパティ割当てを実行するためのスコアリング機能を用いるアルゴリズムを提供する。いくつかの実施形態は、最適な配置がなされているエリアにおいてさまざまなスコアリング機能を用いる。いくつかの実施形態におけるアルゴリズムは、図9〜図12における下記のアルゴリズムと同様の距離関数を用いる意味的相違を説明し得る。
IV.例示的な構成スコア計算
いくつかの実施形態は、(たとえば、新しい列を表現するためのエッジをユーザが指定することなく)視覚化内に新しい列をドロップすることによってスコアリングアルゴリズムをトリガしてもよい。上述のように、各々の視覚化は1以上のエッジ(たとえば、E1、E2、E3、…En)を有し得る。いくつかの実施形態においては、E1は、棒グラフ、円グラフ、散布図、他の何らかのカスタマイズされたチャートなどのうちの1つのエッジ値を有し得る視覚化タイプであり得る。E2は色であり得る。E3はサイズなどであり得る。エッジの各々は、エッジが視覚化のために必要であるか否かを示すことができる1セットのタグを有する。いくつかの実施形態においては、視覚化の構成情報はまた、視覚化の機能(たとえば、エッジがカテゴリタイプのエッジであるかまたは値タイプのエッジであるか)などを記述する機能的情報(機能的なタグとも称される)などの視覚化の他の文脈情報を含み得る。
一例においては、ユーザは、収益次元を選択(たとえば、ダブルクリック、キャンバスレイアウトにドラッグ・アンド・ドロップ)してもよい。いくつかの実施形態においては、スコアリングアルゴリズムをトリガすることができる。スコアリングアルゴリズムをトリガする別の方法は、視覚化内にある「提案(Suggest)」ドロップターゲットに新しい列をドロップすることである。スコアリングアルゴリズムをトリガするための別の方法は、その時点で用いられているデータについての他の実現可能なオプションを示すことができるユーザインターフェイス上の「再提案(Re-suggest)」ボタンを選択することである。この場合、アルゴリズムは、類似度(意味的相違スコアとも称される)よりも視覚化(ベーススコアとも称される)の優秀性に対してより多くの重みを与えてもよい。この例においては、スコアリングアルゴリズムは、選択された収益次元を表わすのに棒グラフが最適な視覚化タイプであると判断する可能性もある。収益次元がカテゴリ(y軸)エッジによって表わされている棒グラフがレンダリングされ得る。
次いで、ユーザは会社位置次元を選択し得る。いくつかの実施形態においては、スコアリングアルゴリズムが再びトリガされる。いくつかの実施形態は、さまざまな視覚化タイプのためのいくつかの構成を決定し、構成の各々についての構成スコアを計算してもよい。一構成は、収益次元が値エッジにマッピングされており、会社位置次元がカテゴリ(x軸)エッジにマッピングされている棒グラフであり得る。別の構成は、収益次元が色エッジにマッピングされており、会社位置次元がカテゴリ(geo)エッジにマッピングされているマップであり得る。さらに別の構成は、収益が値エッジにマッピングされており、会社位置次元がカテゴリエッジにマッピングされている線グラフであり得る。表現されるべきセットの次元のために決定されたさまざまな視覚化タイプに対応するさらに多くの構成も他にあり得る。
いくつかの実施形態においては、構成スコアリングアルゴリズムは、ベーススコア、プリファレンススコアおよび移行スコアの合計であり得る。特定の実施形態においては、構成スコアリングアルゴリズムはまた意味的相違スコアを含んでもよい。特定の実施形態においては、移行スコアは意味的相違スコアを組込んでもよい。さまざまな実施形態は、各々の構成についての構成スコアを決定するためにスコアのさまざまな組合せを用いてもよい。いくつかの実施形態は、特定のスコア(たとえば意味的相違スコア、ベーススコア)に追加の重みを配置してもよい。いくつかの実施形態は、1セットのルール(たとえば図1のルール142)を調べることによってスコアの各々に配置された重みを決定し得る。
いくつかの実施形態においては、ベーススコア、プリファレンススコアおよび移行スコアは、構成スコアラー(たとえば、図1の構成スコアラー134)、アクセスルール(たとえば、図1のルール142)または、何らかのデータストレージ(たとえば、LUTなどの表)によって決定することができる。たとえば、いくつかの実施形態においては、各マッピングごとに割当てられた値(たとえば、棒グラフにおける値エッジマッピングに対する収益次元、マップにおける色エッジマッピングに対する収益次元)はまた、1セットのルール(図1のルール142)またはデータストレージ(たとえばLUTなどの表)において見出すことができる。或る1つの視覚化タイプから別のタイプへの移行値も、いくつかの実施形態において1セットのルール(図1のルール142)またはデータストレージ(たとえばLUTなどの表)において見出すことができる。これらのスコアは、アドミニストレータまたはビジュアルアナライザシステムのユーザによって予め割当てることができる。構成アルゴリズムはまた、(たとえばプリファレンス設定下で)アドミニストレータまたはビジュアルアナライザシステムのユーザによって調整されてもよい。
この例においては、棒グラフに関して、値に対する収益のマッピングは10の値を有する。カテゴリ(x)に対する会社位置のマッピングは7のスコアを有する。棒グラフ間の移行スコアには10の値を与えることができる。この例においてはプリファレンススコアはない。この例においては上述のスコアのうちのいずれにも重みは追加されていない。この棒グラフ構成についての総構成スコアは(10x1)+(7x1)+10=27である。
マップに関して、値に対する収益のマッピングは5の値を有する。カテゴリ(geo)に対する会社位置のマッピングは30の値を有する。棒グラフからマップへの移行スコアは2である。このマップ構成についての総構成スコアは(5x1)+(30x1)+2=37である。
線グラフに関して、値に対する収益のマッピングは10の値を有する。カテゴリに対する会社位置のマッピングは7の値を有する。棒グラフから線グラフへの移行スコアは2である。この線グラフ構成についての総構成スコアは(10x1)+(7x1)+2=19である。ビジュアルアナライザシステムは、最高のスコアが最も所望される構成であると判断し得る。そのため、この例においては、マップ構成が選択される。
V.その時点での視覚化と比べて異なる視覚化タイプを有する新しい視覚化において1以上の次元を効果的に表示するための例示的なフロー
ユーザは、複数次元のデータの表示を、使用中の或る1つのタイプの視覚化から別のタイプの視覚化に変更するようにとの要求を示し得る。たとえば、ユーザは、既存の視覚化を用いるデータの表示を棒グラフから円グラフの1つへと切換えるようにとの要求を指定し得る。いくつかの実施形態は、新しい視覚化タイプがユーザによって選択されていた場合に、1以上の次元のデータを新しい視覚化で効果的に表示する方法を決定することができる。特定の実施形態は意味的距離アルゴリズムを利用して、第1の視覚化タイプの第1の視覚化における(次元を表わす)エッジを第2の視覚化タイプの第2の視覚化におけるエッジに対してマッピングし易くすることにより、新しい視覚化がユーザにとって直観的に見えるようにし得る。
いくつかの実施形態においては、ビジュアルアナライザシステムは、初期の既存のソース視覚化とターゲット視覚化との間におけるエッジのマッピングを決定することができる。いくつかの実施形態はエッジ間の距離を決定することによってマッピングを実行する。いくつかの実施形態においては、エッジ間の距離はエッジに関連付けられたタグに基づいて決定される。たとえば、エッジが名前を表現するのに適したものであることを示す機能的タグを有する第1の視覚化タイプのエッジは、エッジが会社名を表現するのに適したものであることを示す機能的タグを有する第2の視覚化タイプのエッジまでの距離が短くなり得る。
いくつかの実施形態は、第1の視覚化タイプから第2の視覚化タイプのものに視覚化を移行させる際に1セットのルールに従う。いくつかの実施形態においては、ルールは、(1)或るもの(something)を示すこと−いくつかの実施形態では、視覚化が或るものを表示することができるように列を移動させ得る;および、(2)同じことを実行するエッジ上で列を維持すること−いくつかの実施形態では、同様に機能するエッジにまで列を移動させ得る。同じことを実行するエッジ上で列を維持することにより、2つの視覚化間の意味的相違が最小限にされる。いくつかの実施形態は移行を可能にするために両方のルールを満たすことを必要とする。いくつかの実施形態においては、視覚化によって或るものをレンダリングできるようにすることを必要とする第1のルールに対して、より多くの重みが与えられる。2つのルール間に矛盾がある場合、いくつかの実施形態は、単に、視覚化が或るものを示し得ることを確実にするように第1のルールのみに従い得る。いくつかの実施形態においては、当該1セットのルールは、図1におけるルール142に格納することができる。図1のエッジ距離決定部112などのビジュアルアナライザコンポーネントは、一方の視覚化のエッジから別の視覚化のエッジにまでエッジ値をマッピングする方法を決定する際にこれらのルールを用いてもよい。
図9は、本発明のいくつかの実施形態に従った、第1の視覚化タイプの視覚化を第2の視覚化タイプの別の視覚化に変換するための例示的なプロセス900を示す。いくつかの実施形態は、第1のソース視覚化における各々のエッジを経た後、第2のターゲット視覚化におけるエッジに対するエッジの値(エッジ値、データ次元、またはエッジによって表現されている列とも称される)のマッピング先を決定することができる。特定の実施形態においては、視覚化タイプ距離決定部(図1における視覚化タイプ距離決定部136など)は、マッピング分析を実行し、視覚化のエッジ間の距離に基づいて値をマッピングすることができる。視覚化タイプ距離決定部は、第1のソース視覚化におけるに各エッジごとに、第2のターゲット視覚化における最も近接しているエッジを決定して、第1のソース視覚化におけるエッジの情報を、第2のターゲット視覚化における最も近接しているエッジにマッピングすることができる。
ブロック902においては、プロセス900は、既存の視覚化についての既存のエッジ情報を受取ることができる。既存の視覚化は第1のセットのエッジを有し得る。いくつかの実施形態においては、既存の視覚化に対応する第1のセットのエッジは、視覚化の視覚化タイプを識別することができる。この例においては、既存の視覚化は第1の視覚化タイプである。
ブロック904においては、プロセス900は、ターゲット視覚化についてのエッジ情報を受取ることができる。ターゲット視覚化は第2のセットのエッジを有し得る。いくつかの実施形態においては、ターゲット視覚化は第2の視覚化タイプであり得る。
ブロック906においては、プロセス900は、既存のエッジ情報およびターゲットエッジ情報を用いて、第1のセットのエッジと第2のセットのエッジとの間のマッピングを決定することができる。いくつかの実施形態は、第1のソース視覚化からエッジを選択し、新しい視覚化から最も近接しているエッジを決定してもよい。
第1の視覚化タイプを用いる第1の視覚化は、3つのエッジを含む構成情報を有し得る。第2の視覚化タイプを用いる第2の視覚化は、4つのエッジを含む構成情報を有し得る。視覚化タイプ距離決定部は、第1の視覚化における第1のエッジを選択し、第2の視覚化から最も近接しているエッジを決定することができる。次いで、第1の視覚化における第1のエッジからの値は、第2の視覚化における最も近接しているエッジに転送されてもよい。次いで、視覚化タイプ距離決定部は、さらに第2のエッジを選択し、第2の視覚化から最も近接しているエッジを決定すること等々を、すべてのエッジが一致を検出するまで行い得る。
いくつかの実施形態は、「必要な」エッジとタグ付されたターゲット視覚化におけるエッジを識別し、これらのエッジについての一致を決定し得る。いくつかの実施形態においては、エッジは、エッジが視覚化の「必要な」エッジであるか否かを識別するタグを有することができる。いくつかの実施形態は、最初に、視覚化のために「必要な」ものとしてタグ付されたそれらのエッジを識別し、必要なエッジを補充してから、視覚化の他のエッジが補充され得る。
いくつかの実施形態においては、エッジ間の距離は、各々のエッジに関連付けられたタグを比較することによって決定することができる。たとえば、タグT1およびT2を有するエッジ、ならびにタグT1、T2およびT3を有するエッジは2つの重複するタグを有する。これらの2つのエッジ間の距離は、重複するタグ1つだけ有するエッジと比べて、より短くなる可能性がある。各々のエッジについてのタグは、エッジの特徴を識別することができる。たとえば、エッジのためのタグは、エッジが必要なエッジであるかどうか、または、エッジがそのエッジ値についての地理座標に対応するかどうかを示すことができる。エッジ間の距離に基づいて、システムは、ある1つの視覚化におけるエッジから別の視覚化におけるエッジにまで値を移すための方法を決定することができる。
いくつかの実施形態においては、一致する識別子を有するエッジは非常に小さな距離値を有するだろう。エッジ識別子同士が一致していない場合、距離計算は、階層グラフにおいて詳細に検討すべきノードの数を決定することによって実行される。
ブロック908においては、プロセス900は、マッピングに基づいて、マッピングされた第2のセットのエッジにおいて第1のセットのエッジに対応する次元でターゲット視覚化を提示することができる。
VI.第1のタイプの視覚化から第2のタイプの視覚化への移行時に従うべきルール
上述のように、いくつかの実施形態は、第1の視覚化タイプの第1の視覚化を第2の視覚化タイプの第2の視覚化へと移行させる際に1セットのルールに従う。いくつかの実施形態においては、ルールは、或るものを示すことおよび/または同様のエッジの機能についての列を維持することのうち1つ以上を含み得る。
いくつかの実施形態は、エッジマッピングが完成される前にターゲット視覚化が或るものを示すことができるようになるというルールを必要とする。たとえば、棒グラフは、その「値」エッジにおいて少なくとも1つの基準列を有していなければ、何も示すことができない。このため、図10に示されるように、ツリーマップから棒グラフへと移行させるとき、アルゴリズムは、棒グラフが或るものを示し得るように、基準の「収益」を色から値にまで移動させることとなる。
特定の実施形態はまた、機能的に同様のエッジ上に列を維持するためのルールを必要とするかもしれない。たとえば、ピボットグラフおよび棒グラフがともに「行」エッジを有していたとしても、「行」における「都市」列を有するピボットテーブルから移行する際に、アルゴリズムは、代わりに、「都市」列を「カテゴリ」エッジに移動させることを選ぶ。なぜなら、棒グラフ上の「カテゴリ」エッジがピボットテーブル上の「行」エッジと機能的に最も類似していたからである。図11に示されるように、ピボットテーブルから水平な棒グラフにまで移行する場合、「都市」列は、ピボットテーブルにおける「行」エッジから棒グラフにおける「カテゴリ(y軸)」エッジへと移動させられている。
VII.エッジ間の距離を決定するためのプロセス、および、或るエッジから別のエッジへの値のマッピング
特定の実施形態は、視覚化のエッジ間の距離に基づいて、第1の視覚化タイプの1つの視覚化から第2の視覚化タイプの別の視覚化におけるエッジへとエッジをマッピングし得る。いくつかの実施形態は、或る1つの視覚化から別の視覚化にエッジをマッピングする場合に、図10および図11において上述されたルールのような1セットのルールに従い得る。図12は、本発明のいくつかの実施形態に従った、ソース視覚化からターゲット視覚化にエッジをマッピングするための擬似コード1200を示す。さまざまな実施形態は、従うべきルール;ステップが実行される順序;または、視覚化のエッジ間のマッピングを実行する際に必要になり得るコンポーネント;についての変形例を有し得る。
いくつかの実施形態は、第1の視覚化(たとえばソース視覚化)のエッジと第2の視覚化(たとえばターゲット視覚化)のエッジとの間のエッジ類似度を計算し得る。特定の実施形態においては、視覚化のエッジ間のエッジ類似度を計算することによって、ビジュアルアナライザシステムが機能的に同様のエッジ上に列を維持することが可能になり得る。さまざまな実施形態は、異なる機能を実現することによって、さまざまな態様で、列を機能的に同様のエッジ上に維持する方法を決定し得る。
いくつかの実施形態においては、2つのエッジ間のエッジ類似度は、両方のエッジについて定義されたタグの数に基づいて決定することができる。上述のように、視覚化のエッジは当該エッジに関連付けられた1つ以上のタグを有し得る。この場合、これらタグは、当該エッジによって表現することができるデータのタイプ(たとえば、次元、列)などのエッジの特徴を定義している。2つのエッジ間のエッジ類似度は、第1のエッジに関連付けられたタグのリストおよび第2のエッジに関連付けられたタグのリストを決定して、比較を実行することによって決定することができる。いくつかの実施形態においては、2つのリストにおいて重複するタグは、2つのエッジがどれほど類似しているかを示すことができる。たとえば、2つのエッジ間に4つの重複するタグが存在している場合、これらの2つのエッジは、重複するタグが2つしかない2つのエッジと比較して、より高い類似度値を有すると見なされている。
ソース視覚化のエッジとターゲット視覚化のエッジと間のエッジ類似度値を決定した後、特定の実施形態は、最適に一致するエッジのソート済みリストを決定し得る。いくつかの実施形態においては、比較すべき一連のエッジにおける各々のエッジごとに、全体的な一致スコアを計算することができる。この例においては、全体的な一致スコアは類似度スコアおよび優先度スコアに基づいて計算することができる。いくつかの実施形態においては、類似度スコアは、先の段落において記載されたアルゴリズムを用いて計算することができ、この場合、重複するタグを見出すために、エッジに関連付けられたタグが比較されている。特定の実施形態においては、重複するタグが多ければ多いほど、類似度スコアはより高くなる。
いくつかの実施形態においては、優先度スコアは、エッジ優先度および最大最優度に基づいて計算することができる。視覚化のエッジは各々、数値優先度を有し得る。いくつかの実施形態においては、数値優先度は、エッジの重要性、および/または、エッジが「必要な」エッジであるか否かを示すことができる。たとえば、さまざまなエッジ間で高優先度を有するエッジは、高い数値の優先度値を有することができ、優先度のより低いと別のエッジと比べて、より高い数値の優先度値を有することができる。最大優先度はすべてのエッジにわたる優先度の最大値であり得る。優先度スコアは、エッジ優先度の値を最大優先度の値で割ることによって計算することができる。エッジが他のエッジと比べて最高優先度を有するものである場合、優先度スコアは1であり得る。エッジが他のエッジと比べて低優先度を有するものである場合、優先度スコアは1の分数であり得る。
全体的な一致スコアは類似度スコアおよび優先度スコアの合計であり得る。いくつかの実施形態は、各対のエッジごとの全体的な一致スコアを決定し、それら全体の一致スコアに基づいて複数のエッジ対をソートし得る。特定の実施形態は、複数のエッジ対の全体的な一致スコアに基づいてソートされる一連のエッジを(たとえば、ソース視覚化の各エッジごとに)決定してもよい。いくつかの実施形態においては、この一連のエッジは、或るエッジに対する一致度の最も高いもの(すなわち、最高の全体一致スコア)から一致度の最も低いものへの順序でソートされた(ターゲット視覚化の)複数のエッジを有し得る。
いくつかの実施形態は、最も一致するエッジのソート済みリストを用いることによって、第1の視覚化(ソース視覚化)上のエッジを第2の視覚化(ターゲット視覚化)にマッピングし得る。特定の実施形態においては、最も一致するエッジのソート済みのリストを詳しく検討し、エッジがエッジの特徴(たとえば、エッジに関連付けられたタグ)に基づいて列を消費することができるかどうか判断することによって、ビジュアルアナライザシステムは、ターゲット視覚化によって確実に或るものを示すことができるようにし、これにより、いくつかの実施形態における必要なルールのうちの1つを満たし得る。さまざまな実施形態は、異なる機能を実現することによって、確実に、ターゲット視覚化で或るものをさまざまな態様で示すことができるようにするための方法を決定し得る。
上述のように、特定の実施形態は、最も一致するエッジのソート済みのリストを詳しく検討し、エッジが列を受付けることができるかどうか(すなわち、エッジが列データを消費することができるかどうか)を決定し得る。いくつかの実施形態は、エッジの特徴に基づいてエッジが列を受付けることができるかどうかを決定することができる。たとえば、エッジが値タイプのエッジである場合、エッジは、単にカテゴリタイプの値だけを有する列を受付けることができないかもしれない。別の例においては、エッジが7つのカテゴリタイプの値だけを受付けることができるカテゴリタイプのエッジ(たとえば色)である場合、当該エッジは、8以上の次元のメンバを有するカテゴリタイプの列を受付けることができないかもしれない。エッジが列を受付けることができない場合、ソート済みのリストからの次のエッジが用いられる。エッジは、たとえば、そのエッジが単一の列しかサポートしない場合、または、エッジによって表現することができるデータのタイプが列のデータのタイプを含まない場合(たとえば、エッジがカテゴリタイプのエッジであり、列が数値タイプの列である場合)、列を受付けることができないかもしれない。上述のように、エッジの機能的タグは、エッジが表現するのに適したものになり得るデータのタイプ(たとえば、地理的情報、位置データ)を示すことができる。
VIII.視覚化の表示を第1の視覚化タイプから第2の視覚化タイプに切換えるための例示的なスクリーンショット
図13は、1以上の次元を表す視覚化の表示を散布図から棒グラフに切換えるためのスクリーンショットを示す。図示のとおり、散布図における「形状」エッジからの「D4会社」次元は、棒グラフにおける「カテゴリ」エッジに移動させられている。
図14は、1以上の次元を表す視覚化の表示を水平な棒グラフから表に切換えるためのスクリーンショットを示す。図示のとおり、「割引額」次元および「年」次元は、「列」エッジに移動させられている。なぜなら、表が「値」エッジまたは「カテゴリ」エッジをサポートしていないからである。
図15は、1以上の次元を表す視覚化の表示をピボットチャートから線グラフに切換えるためのスクリーンショットを示す。図示のとおり、いくつかの実施形態は、「年」次元を「列」エッジから「カテゴリ」エッジに移動させてもよい。なぜなら、これが最適な一致であると判断されたからである。図16は、最適一致論理が用いられていない場合における、1以上の次元を表わす視覚化の表示をピボットチャートから線グラフに切換えるスクリーンショットを例示している。この図は、最適一致論理が用いられていない場合に、列が同じエッジ(すなわち、「行」エッジから「行」エッジまでの間)において維持され、結果がさほど好ましいものではなく、ユーザが読取るのがより困難になるであろうことを示す。
図17は、1以上の次元を表す視覚化の表示を棒グラフから散布図に切換えるためのスクリーンショットを示す。棒グラフでは、それらの「値」エッジにおける列の数を無限にすることが可能となる。散布図は、それらの「値」エッジには2列しか配置できない。値に関して3以上の列を有する棒グラフから散布図に移行する場合、残りの列は、それら(たとえば、この例においては「色」エッジ)を受付けることができる他のエッジに配置されてもよい。
IX.例示的な分散型システム
図18は、一実施形態を実現するための分散型システム1800の簡略図を示す。図示される実施形態においては、分散型システム1800は、1つ以上のネットワーク1810を介して、ウェブブラウザ、プロプライエタリクライアント(たとえば、オラクルフォームズ(Oracle Forms))などのクライアントアプリケーションを実行して動作させるように構成される1つ以上のクライアントコンピューティング装置1802、1804、1806および1808を含む。サーバ1812は、ネットワーク1810を介してリモートクライアントコンピューティング装置1802、1804、1806および1808に通信可能に連結され得る。
さまざまな実施形態においては、サーバ1812は、文書(たとえばウェブページ)分析および修正関連の処理を提供するサービスおよびアプリケーションなどの1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。特定の実施形態においては、サーバ1812はまた、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの実施形態においては、これらのサービスは、ウェブベースのサービスまたはクラウドサービスとして、またはソフトウェア・アズ・ア・サービス(SaaS)モデルのもと下で、クライアントコンピューティング装置1802、1804、1806および/または1808のユーザに対して提供されてもよい。クライアントコンピューティング装置1802、1804、1806および/または1808を動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用して、サーバ1812と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。
図18に示される構成においては、システム1800のソフトウエアコンポーネント1818、1820および1822はサーバ1812上において実現されるように示されている。他の実施形態においては、システム1800のコンポーネントのうち1つ以上および/またはこれらのコンポーネントによって提供されるサービスはまた、クライアントコンピューティング装置1802、1804、1806および/または1808のうち1つ以上によって実現され得る。クライアントコンピューティング装置を動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用してこれらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組合せで実現され得る。分散型システム1800とは異なり得るさまざまな異なるシステム構成が実現可能であることが認識されるはずである。このため、図18に示される実施形態は、一実施形態のシステムを実現するための分散型システムの一例であって、限定されるように意図されたものではない。
クライアントコンピューティング装置1802、1804、1806および/または1808はさまざまなタイプのコンピューティングシステムを含み得る。たとえば、クライアントコンピューティング装置は、手持ち式携帯機器(たとえばiPhone(登録商標)、携帯電話、iPad(登録商標)、計算タブレット、パーソナルデジタルアシスタント(personal digital assistant:PDA))またはウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)であってもよく、当該装置は、マイクロソフト・ウィンドウズ・モバイル(登録商標)などのソフトウェアを実行し、および/または、iOS、ウィンドウズ・フォン、アンドロイド、ブラックベリー10、パームOSなどのさまざまなモバイルオペレーティングシステムを実行し得る。当該装置は、さまざまなアプリケーション、たとえば、さまざまなインターネット関連のアプリ、電子メール、ショートメッセージサービス(short message service:SMS)アプリケーションなどをサポートし得るとともに、他のさまざまな通信プロトコルを用い得る。クライアントコンピューティング装置は、汎用パーソナルコンピュータを含み得るものであって、当該汎用パーソナルコンピュータは、一例として、マイクロソフト・ウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/またはリナックス(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティング装置は、ワークステーションコンピュータであってもよく、当該ワークステーションコンピュータは、たとえばGoogle Chrome OSなどのさまざまなGNU/リナックス(登録商標)オペレーティングシステムを含むがこれらに限定されるものではないさまざまな市販のUNIX(登録商標)またはUNIXライクオペレーティングシステムのうちのいずれかを実行する。クライアントコンピューティング装置は、シン・クライアントコンピュータ、インターネットにより可能なゲームシステム(たとえばキネクト(登録商標)ジェスチャ入力装置を備えるかまたは備えないマイクロソフトXボックスゲーム機)、および/または、ネットワーク1810を介して通信が可能なパーソナルメッセージング装置などの電子装置を含み得る。
図18における分散型システム1800は、4個のクライアントコンピューティング装置を有するように示されているが、任意の数のクライアントコンピューティング装置がサポートされてもよい。センサを有する装置などの他の装置が、サーバ1812と相互作用してもよい。
分散型システム1800におけるネットワーク1810は、さまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよく、当該プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトークなどを含むが、これらに限定されるものではない。単に一例として、ネットワーク1810は、ローカルエリアネットワーク(LAN)、イーサネットに基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば米国電気電子学会(Institute of Electrical and Electronics:IEEE)1002.11の一連のプロトコル、ブルートゥース(登録商標)および/もしくはその他の無線プロトコルのうちのいずれかのもとで動作するネットワーク)、ならびに/またはこれらの任意の組合せ、ならびに/または他のネットワークであってもよい。
サーバ1812は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組合せで構成され得る。サーバ1812は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を含む他のコンピューティングアーキテクチャを含み得る。論理記憶装置の1つ以上のフレキシブルプールは、サーバのための仮想記憶デバイスを維持するように仮想化することができる。仮想ネットワークは、ソフトウェア定義型ネットワーキングを用いて、サーバ1812によって制御することができる。さまざまな実施形態においては、サーバ1812は、上記の開示に記載されている1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ1812は、本開示の実施形態に係る上記の処理を実行するためのサーバに対応してもよい。
サーバ1812は、上記のもののうちのいずれか、および、任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行し得る。また、サーバ1812は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェース)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらなるサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、オラクル社、マイクロソフト社、サイベース社、IBM社(International Business Machines)などから市販されているものを含むが、これらに限定されるものではない。
いくつかの実現例では、サーバ1812は、クライアントコンピューティング装置1802,1804,1806および1808のユーザから受信されたデータフィードおよび/またはイベント更新を分析および統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新は、1つ以上の第三者情報源および連続的なデータストリームから受信されるツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含み得るが、これらに限定されるものではなく、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどに関連するリアルタイムイベントを含み得る。また、サーバ1812は、クライアントコンピューティング装置1802,1804,1806および1808の1つ以上の表示装置を介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含み得る。
また、分散型システム800は、1つ以上のデータベース1814および1816を含み得る。これらのデータベースが提供し得るメカニズムは、情報を記憶するためのものであって、当該情報として、たとえば、ユーザインタラクション情報、使用パターン情報、適合ルール情報、および本発明の実施形態によって用いられる他の情報などが挙げられる。データベース1814および1816は、さまざまな場所に存在し得る。一例として、データベース1814および1816の1つ以上は、サーバ1812にローカルな(および/または存在する)非一時的な記憶媒体に存在していてもよい。代替的に、データベース1814および1816は、サーバ1812から遠く離れていて、ネットワークベースまたは専用の接続を介してサーバ1812と通信してもよい。一組の実施形態においては、データベース1814および1816は、記憶領域ネットワーク(storage-area network:SAN)に存在していてもよい。同様に、サーバ1812に起因する機能を実行するための任意の必要なファイルが、サーバ1812上にローカルに、および/または、リモートで適宜格納されていてもよい。一組の実施形態においては、データベース1814および1816は、SQLフォーマットコマンドに応答してデータを格納、更新および検索するように適合された、オラクル社によって提供されるデータベースなどのリレーショナルデータベースを含み得る。
X.例示的なシステム環境
いくつかの実施形態においては、上述の文書分析および修正サービスはクラウド環境を介するサービスとして提供され得る。図19は、本開示の実施形態に係る、サービスがクラウドサービスとして供給され得るシステム環境1900の1つ以上の構成要素の簡略化されたブロック図である。図19に示される実施形態においては、システム環境1900は、使用パターンに応答して文書(たとえばウェブページ)を動的に変更するためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム1902と相互作用するようにユーザによって使用され得る1つ以上のクライアントコンピューティング装置1904,1906および1908を含む。クラウドインフラストラクチャシステム1902は、サーバ1812のための、上述のものを含み得る1つ以上のコンピュータおよび/またはサーバを含み得る。
図19に示されているクラウドインフラストラクチャシステム1902が、示されている構成要素以外の他の構成要素を有し得ることが理解されるべきである。さらに、図19に示されている実施形態は、本発明の実施形態を組込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態においては、クラウドインフラストラクチャシステム1902は、図に示されているものよりも多いかまたは少ない数の構成要素を有していてもよく、2つ以上の構成要素を組合せてもよく、または構成要素の異なる構成または配置を有していてもよい。
クライアントコンピューティング装置1904、1906および1908は、1802、1804、1806および1808について上述されたものと同様の装置であり得る。クライアントコンピューティング装置1904、1906および1908は、クラウドインフラストラクチャシステム1902によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム1902と相互作用するようにクライアントコンピューティング装置のユーザによって使用され得る、ウェブブラウザ、専有のクライアントアプリケーション(たとえばオラクルフォームズ)または他のアプリケーションなどのクライアントアプリケーションを動作させるように構成され得る。3つのクライアントコンピューティング装置とともに例示的なシステム環境1900が図示されているが、クライアントコンピューティング装置はいくつサポートされてもよい。センサを有する装置などの他の装置はクラウドインフラストラクチャシステム1902と対話し得る。
ネットワーク1910は、クライアント1904、1906および1908とクラウドインフラストラクチャシステム1902との間のデータの通信およびやりとりを容易にし得る。各々のネットワークは、ネットワーク1810について上記したものを含むさまざまな市販のプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者になじみのある任意のタイプのネットワークであってもよい。
特定の実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、クラウドインフラストラクチャシステムのユーザがオンデマンドで利用可能な多数のサービスを含み得る。使用パターンに応じて文書を動的に変更することに関するサービスに加えて、オンラインデータ記憶およびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理技術サポートサービスなどを含むが、これらに限定されないさまざまな他のサービスも提供され得る。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザのニーズを満たすように動的にスケーリング可能である。
特定の実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスの具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、インターネットなどの通信ネットワークを介してクラウドサービスプロバイダのシステムからユーザが利用可能な任意のサービスは、「クラウドサービス」と称される。通常、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムがアプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドで当該アプリケーションを注文および使用してもよい。
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、記憶装置、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーションへの保護されたコンピュータネットワークアクセス、またはクラウドベンダによってユーザに提供されるかもしくはそうでなければ当該技術分野において公知の他のサービスを含み得る。たとえば、サービスは、インターネットを介したクラウド上のリモート記憶装置へのパスワードによって保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のためのウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
特定の実施形態においては、クラウドインフラストラクチャシステム1902は、セルフサービスの、サブスクリプションベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、安全な態様で顧客に配信される一連のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含み得る。このようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクルパブリッククラウドである。
クラウドインフラストラクチャシステム1902はまた、「ビッグデータ」に関連する計算および分析のサービスを提供し得る。「ビッグデータ」という語は、一般に、大量のデータを視覚化し、トレンドを検出し、および/または、データと相互作用させるために、分析者および研究者によって格納し処理することができる極めて大きいデータ集合を称するのに用いられる。このビッグデータは、多くのレベルで、かつさまざまなスケールでインフラストラクチャシステムによってホストおよび/または処理され得る。平行にリンクされた何十、何百または何千ものプロセッサがこのようなデータに対して作用可能であり、これにより、このようなデータを表示し得るか、または、データに対する外力をシミュレートし得るかもしくはそれが表しているものをシミュレートし得る。これらのデータ集合は、データベースにおいて編制されたデータ、もしくは構造化モデルに従ったデータなどの構造化されたデータ、および/または、非体系的なデータ(たとえば電子メール、画像、データブロブ(バイナリ大型オブジェクト)、ウェブページ、複雑なイベント処理)を必要とする可能性がある。目標物に対してより多くの(またはより少数の)コンピューティングリソースを比較的迅速に集中させるために実施形態の能力を強化することにより、ビジネス、政府関係機関、研究組織、私人、同じ目的をもった個々人もしくは組織のグループ、または他のエンティティからの要求に基づいて大量のデータ集合上でタスクを実行するために、クラウドインフラストラクチャシステムがより良好に利用可能となる。
さまざまな実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステム1902によって供給されるサービスへの顧客のサブスクリプションを自動的にプロビジョニング、管理および追跡するように適合され得る。クラウドインフラストラクチャシステム1902は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。たとえば、クラウドインフラストラクチャシステム1902が、(たとえばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、一般大衆またはさまざまな産業企業がサービスを利用できるパブリッククラウドモデルのもとでサービスが提供されてもよい。別の例として、クラウドインフラストラクチャシステム1902が単一の組織のためだけに運営され、当該組織内の1つ以上のエンティティにサービスを提供し得るプライベートクラウドモデルのもとでサービスが提供されてもよい。また、クラウドインフラストラクチャシステム1902およびクラウドインフラストラクチャシステム1902によって提供されるサービスが、関連のコミュニティ内のいくつかの組織によって共有されているコミュニティクラウドモデルのもとでクラウドサービスが提供されてもよい。また、2つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルのもとでクラウドサービスが提供されてもよい。
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)カテゴリ、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)カテゴリ、インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS)カテゴリ、またはハイブリッドサービスを含むサービスの他のカテゴリのもとで提供される1つ以上のサービスを含み得る。顧客は、サブスクリプションオーダーによって、クラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスを注文し得る。次いで、クラウドインフラストラクチャシステム1902は、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を実行する。
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含み得るが、これらに限定されるものではない。いくつかの例では、アプリケーションサービスは、SaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。たとえば、SaaSプラットフォームは、一体化された開発およびデプロイメントプラットフォーム上で一連のオンデマンドアプリケーションを構築および配信するための機能を提供し得る。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムで実行されるアプリケーションを利用することができる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。例としては、大規模組織のための販売実績管理、企業統合およびビジネスの柔軟性のためのソリューションを提供するサービスが挙げられるが、これらに限定されるものではない。
いくつかの実施形態においては、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステム1902によって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに分類されるクラウドサービスを提供するように構成され得る。プラットフォームサービスの例としては、組織(オラクル社など)が既存のアプリケーションを共有の共通アーキテクチャ上で統合することを可能にするサービス、および、プラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、これらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御し得る。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステム1902によって提供されるPaaSサービスを取得することができる。プラットフォームサービスの例としては、オラクルJava(登録商標)クラウドサービス(Java Cloud Service:JCS)、オラクルデータベースクラウドサービス(Database Cloud Service:DBCS)などが挙げられるが、これらに限定されるものではない。
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを利用することができ、デプロイされたサービスを制御することもできる。いくつかの実施形態においては、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービル(たとえばオラクルフージョンミドルウェアサービス)およびJava(登録商標)クラウドサービスを含み得る。一実施形態においては、データベースクラウドサービスは、組織がデータベースリソースをプールしてデータベースクラウドの形態でデータベース・アズ・ア・サービスを顧客に供給することを可能にする共有のサービスデプロイメントモデルをサポートし得る。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステムにおいてさまざまなビジネスアプリケーションを開発およびデプロイするために顧客にプラットフォームを提供し得て、Java(登録商標)クラウドサービスは、クラウドインフラストラクチャシステムにおいてJava(登録商標)アプリケーションをデプロイするために顧客にプラットフォームを提供し得る。
さまざまな異なるインフラストラクチャサービスは、クラウドインフラストラクチャシステムにおけるIaaSプラットフォームによって提供されてもよい。インフラストラクチャサービスは、記憶装置、ネットワークなどの基本的な計算リソース、ならびに、SaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客のための他の基礎的な計算リソースの管理および制御を容易にする。
また、特定の実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース1930を含み得る。一実施形態においては、インフラストラクチャリソース1930は、PaaSプラットフォームおよびSaaSプラットフォームならびに他のリソースによって提供されるサービスを実行するための、サーバ、記憶装置およびネットワーキングリソースなどのハードウェアの事前に一体化された最適な組合せを含み得る。
いくつかの実施形態においては、クラウドインフラストラクチャシステム1902におけるリソースは、複数のユーザによって共有され、デマンドごとに動的に再割り振りされ得る。また、リソースは、異なる時間帯にユーザに割り振られ得る。たとえば、クラウドインフラストラクチャシステム1902は、第1の時間帯におけるユーザの第1の組が規定の時間にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし、次いで、異なる時間帯に位置するユーザの別の組への同一のリソースの再割り振りを可能にし、それによってリソースの利用を最大化することができる。
特定の実施形態においては、クラウドインフラストラクチャシステム1902によって提供されるサービスのプロビジョニングを可能にするようにクラウドインフラストラクチャシステム1902のさまざまな構成要素またはモジュールによって共有されるいくつかの内部共有サービス932が提供され得る。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、インテグレーションサービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性・バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
特定の実施形態においては、クラウドインフラストラクチャシステム1902は、クラウドインフラストラクチャシステムにおけるクラウドサービス(たとえばSaaS、PaaSおよびIaaSサービス)の包括的管理を提供し得る。一実施形態においては、クラウド管理機能は、クラウドインフラストラクチャシステム1902などによって受信された顧客のサブスクリプションをプロビジョニング、管理および追跡するための機能を含み得る。
一実施形態においては、図19に示されているように、クラウド管理機能は、オーダー管理モジュール1920、オーダーオーケストレーションモジュール1922、オーダープロビジョニングモジュール1924、オーダー管理および監視モジュール1926、ならびにアイデンティティ管理モジュール1928などの1つ以上のモジュールによって提供され得る。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含み得るか、またはそれらを用いて提供され得る。
例示的な動作の場合、1934において、顧客は、クラウドインフラストラクチャシステム1902によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム1902によって供給される1つ以上のサービスのサブスクリプションについてオーダーを行うことによって、クライアント装置1904、1906または1908などのクライアント装置を用いてクラウドインフラストラクチャシステム1902と対話し得る。特定の実施形態においては、顧客は、クラウドユーザインターフェース(User Interface:UI)、すなわちクラウドUI1912、クラウドUI914および/またはクラウドUI1916にアクセスして、これらのUIを介してサブスクリプションオーダーを行い得る。顧客がオーダーを行ったことに応答してクラウドインフラストラクチャシステム1902によって受信されたオーダー情報は、顧客および顧客がサブスクライブする予定のクラウドインフラストラクチャシステム1902によって供給される1つ以上のサービスを特定する情報を含み得る。
1936において、顧客から受取られたオーダー情報が、オーダーデータベース1918に記憶され得る。これが新規オーダーである場合、このオーダーのために新しい記録が作成され得る。一実施形態においては、オーダーデータベース1918は、クラウドインフラストラクチャシステム1918によって動作され、かつ、他のシステム要素と連携して動作されるいくつかのデータベースのうちの1つであってもよい。
動作1938において、オーダー情報は、オーダー管理モジュール1920に転送され得る。オーダー管理モジュール1920は、オーダーの確認および確認時のオーダーの予約などのオーダーに関連するビリングおよびアカウンティング機能を実行するように構成され得る。
動作1940において、オーダーに関する情報は、オーダーオーケストレーションモジュール1922に通信され得る。オーダーオーケストレーションモジュール1922は、顧客によって行われたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレートするように構成され得る。いくつかの例では、オーダーオーケストレーションモジュール1922は、プロビジョニングのためにオーダープロビジョニングモジュール1924のサービスを用いてもよい。特定の実施形態においては、オーダーオーケストレーションモジュール1922は、互いに関連付けられたビジネスプロセスの管理を可能にし、オーダーがプロビジョニングされるべきかどうかを決めるためにビジネス論理を適用し得る。
図19に示される実施形態に示されるように、1942においては、新たなサブスクリプションについてのオーダーを受信すると、オーダーオーケストレーションモジュール1922は、リソースを割り振って当該サブスクリプションオーダーを満たすのに必要とされるそれらのリソースを構成するための要求をオーダープロビジョニングモジュール1924に送る。オーダープロビジョニングモジュール1924は、顧客によってオーダーされたサービスのためのリソースの割り振りを可能にする。オーダープロビジョニングモジュール1924は、クラウドインフラストラクチャシステム1900によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間にあるレベルの抽象化を提供する。これにより、オーダーオーケストレーションモジュール1922は、サービスおよびリソースが実際に実行中にプロビジョニングされるか、事前にプロビジョニングされて要求があったときに割振られる/割当てられるのみであるかなどの実装の詳細から分離させることができる。
1944において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが現在使える状態にあることを示す通知が、加入している顧客に送信され得る。場合によっては、要求されたサービスを顧客が利用し始めることを可能にする情報(たとえば、リンク)が顧客に送信され得る。
1946においては、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール1926によって管理および追跡され得る。いくつかの例では、オーダー管理および監視モジュール1926は、申し込まれたサービスを顧客が使用することに関して、使用統計を収集するように構成され得る。たとえば、使用される記憶量、転送されるデータ量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間の量などについての統計が収集され得る。
特定の実施形態においては、クラウドインフラストラクチャシステム1900は、アイデンティティ管理モジュール1928を含み得る。アイデンティティ管理モジュール1928は、クラウドインフラストラクチャシステム1900におけるアクセス管理および認可サービスなどのアイデンティティサービスを提供するように構成される。いくつかの実施形態においては、アイデンティティ管理モジュール1928は、クラウドインフラストラクチャシステム1902によって提供されるサービスを利用したい顧客についての情報を制御し得る。このような情報は、このような顧客のアイデンティティを認証する情報、および、それらの顧客がさまざまなシステムリソース(たとえばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することを認可されるかを記載する情報を含み得る。また、アイデンティティ管理モジュール1928は、各々の顧客についての説明的情報、ならびに、どのようにしておよび誰によって当該説明的情報がアクセスおよび変更され得るかについての情報の管理を含み得る。
XI.例示的なコンピュータシステム
図20は、本発明の実施形態を実現するために用いられ得る例示的なコンピュータシステム2000を示す。いくつかの実施形態においては、コンピュータシステム2000は、上述のさまざまなサーバおよびコンピュータシステムのいずれかを実現するために用いられてもよい。図20に示されるように、コンピュータシステム2000は、バスサブシステム2002を介していくつかの周辺サブシステムと通信する処理ユニット2004を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット2006と、I/Oサブシステム2008と、記憶サブシステム2018と、通信サブシステム2024とを含み得る。記憶サブシステム2018は、有形のコンピュータ読取り可能記憶媒体2022と、システムメモリ2010とを含み得る。
バスサブシステム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)バスを含み得る。
処理サブシステム2004は、コンピュータシステム2000の動作を制御するとともに、1つ以上の処理ユニット2034、2032などを含み得る。処理ユニットは、単一のコアまたはマルチコアプロセッサ、プロセッサの1つ以上のコアまたはそれらの組合せを含む1つ以上のプロセッサを含み得る。いくつかの実施形態においては、処理サブシステム2004は、グラフィックスプロセッサ、デジタル信号プロセッサ(digital signal processor:DSP)などの1つ以上の専用コプロセッサを含み得る。いくつかの実施形態においては、処理サブシステム2004の処理ユニットのうちのいくつかまたはすべては、特定用途向け集積回路(application specific integrated circuit:ASIC)またはフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)などのカスタマイズされた回路を用いて実現することができる。
いくつかの実施形態においては、処理サブシステム2004における処理ユニットは、システムメモリ2010内に格納されたかまたはコンピュータ読取り可能な記憶媒体2022上に格納された命令を実行することができる。さまざまな実施形態においては、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、かつ、同時に実行される複数のプログラムまたはプロセスを維持することができる。如何なる所与の場合でも、実行されるべきプログラムコードのうちのいくらかまたはすべては、1つ以上の記憶装置上に含まれる可能性のあるシステムメモリ2010および/またはコンピュータ読取り可能記憶媒体2022上に常駐してもよい。好適なプログラミングによって、処理サブシステム2004は、使用パターンに応答して文書(たとえばウェブページ)を動的に変更するための上述のさまざまな機能を提供することができる。
特定の実施形態においては、処理加速ユニット2006は、コンピュータシステム2000によって実行される全体的処理を加速させるように、カスタマイズされた処理を実行するために、または、処理サブシステム2004によって実行される処理のうちのいくらかの負荷を減らすために、提供されてもよい。
I/Oサブシステム2008は、コンピュータシステム2000へ情報を入力するための、および/または、コンピュータシステム2000から、もしくはコンピュータシステムを介して情報を出力するための、装置およびメカニズムを含み得る。一般に、「入力装置」という語を使用する場合、それは、コンピュータシステム2000に情報を入力するためのあらゆる実現可能なタイプの装置およびメカニズムを含むように意図されている。ユーザインターフェイス入力装置は、たとえば、キーボード、マウスまたはトラックボールなどのポインティング装置、タッチパッドまたはタッチスクリーンを含み得て、これらは、音声コマンド認識システム、マイクロホンおよび他のタイプの入力装置とともに、ディスプレイ、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、オーディオ入力装置に組込まれている。ユーザインターフェイス入力装置は、たとえば、ユーザが、入力装置、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャおよび話されたコマンドを用いて入力を受信するためのインターフェイスを備えた装置などを制御して入力装置と相互作用することを可能にするマイクロソフトキネクト(登録商標)モーションセンサなどのモーション検知および/またはジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザから眼球運動(たとえば撮影および/またはメニュー選択を行っている間の「まばたき」)を検出して、当該眼球ジェスチャを入力装置(たとえば、グーグルグラス(登録商標))への入力として変換するグーグルグラス(登録商標)まばたき検出器などの眼球ジェスチャ認識装置を含み得る。また、ユーザインターフェイス入力装置は、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識検知装置を含み得る。
ユーザインターフェイス入力装置の他の例は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、およびスピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線検出装置を含み得るが、これらに限定されるものではない。また、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影、磁気共鳴画像化、位置発光断層撮影、医療用超音波検査装置などの医療用画像化入力装置を含み得る。また、ユーザインターフェイス入力装置は、たとえばMIDIキーボード、デジタル楽器などのオーディオ入力装置を含み得る。
ユーザインターフェイス出力装置は、ディスプレイサブシステム、表示灯、またはオーディオ出力装置などの非視覚的ディスプレイなどを含み得る。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するようなフラットパネルディスプレイ、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム2000からの情報をユーザまたは他のコンピュータに出力するための全ての可能なタイプの装置および機構を含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車のナビゲーションシステム、プロッタ、音声出力装置およびモデムなどの、テキスト、グラフィックスおよびオーディオ/ビデオ情報を視覚的に伝えるさまざまな表示装置を含み得るが、これらに限定されるものではない。
ストレージサブシステム2018は、コンピュータシステム2000によって用いられる情報を記憶するためのリポジトリまたはデータストアを提供する。ストレージサブシステム2018は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形の非一時的なコンピュータ読取り可能記憶媒体を提供する。ソフトウェア(プログラム、コードモジュール、命令)は、処理サブシステム2004によって実行されると上述の機能を提供するものであって、ストレージサブシステム2018に記憶されてもよい。ソフトウェアは処理サブシステム2004の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム2018はまた、本発明に従って用いられるデータを記憶するためのリポジトリを提供し得る。
ストレージサブシステム2018は、揮発性メモリ装置および不揮発性メモリ装置を含む1つ以上の非一時的なメモリ装置を含み得る。図20に示されるように、ストレージサブシステム2018はシステムメモリ2010およびコンピュータ読取り可能記憶媒体2022を含む。システムメモリ2010は、プログラム実行中に命令およびデータを記憶するための揮発性のメインランダムアクセスメモリ(random access memory:RAM)と、一定の命令が記憶されている不揮発性の読取専用メモリ(read only memory:ROM)またはフラッシュメモリとを含むいくつかのメモリを含み得る。いくつかの実現例においては、起動中などにおけるコンピュータシステム2000内の要素間における情報の転送を支援する基本的なルーチンを含む基本入出力システム(basic input/output system:BIOS)は典型的にはROMに記憶され得る。RAMは、典型的には、処理サブシステム2004によって現在作動および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例においては、システムメモリ2010は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数のさまざまなタイプのメモリを含み得る。
図20に示されるように、一例としておよび非限定的に、システムメモリ2010は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム2012、プログラムデータ2014およびオペレーティングシステム2016を格納し得る。一例として、オペレーティングシステム2016は、マイクロソフト・ウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはリナックス(登録商標)オペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/リナックス(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、ならびに/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10OSおよびパーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
コンピュータ読取り可能記憶媒体2022は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。処理サブシステム2004によって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム2018に格納され得る。一例として、コンピュータ読取り可能記憶媒体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を含み得る。コンピュータ読取り可能媒体2022は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム2000に提供し得る。
特定の実施形態においては、記憶サブシステム2000はまた、コンピュータ読取可能記憶媒体2022にさらに接続され得るコンピュータ読取可能記憶媒体リーダ2020を含んでいてもよい。システムメモリ2010とともに、およびオプションでシステムメモリ2010と組合わされて、コンピュータ読取可能記憶媒体2022は、リモート、ローカル、固定および/またはリムーバブルの記憶装置に加えて、コンピュータ読取可能情報を格納するための記憶媒体を包括的に表わしてもよい。
特定の実施形態においては、コンピュータシステム2000は、1つ以上の仮想マシンを実行するためのサポートを提供し得る。コンピュータシステム2000は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行し得る。各々の仮想マシンには、メモリ、計算(たとえばプロセッサ、コア)、I/Oおよびネットワークリソースが割当てられてもよい。各々の仮想マシンは、典型的には、コンピュータシステム2000によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであり得るかまたは異なり得るそれ自体のオペレーティングシステムを実行する。したがって、複数のオペレーティングシステムが、場合によっては、コンピュータシステム2000によって同時に実行されるかもしれない。各々の仮想マシンは、概して、他の仮想マシンから独立して実行される。
通信サブシステム2024は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム2024は、他のシステムからデータを受信したり、コンピュータシステム2000から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム2024は、コンピュータシステム2000が、情報をクライアントデバイスから受信したりクライアントデバイスに送信したりするために、インターネットを介する1つ以上のクライアントデバイスへの通信チャネルを確立することを可能にし得る。たとえば、図1に示されるビジュアルアナライザシステム102は、通信サブシステム2024を用いて、クライアントデバイスから、ユーザインタラクション情報およびウェブページ要求を受信し得る。加えて、通信サブシステム2024は、ウェブページを、適応可能なビジュアルアナライザシステム102から要求しているクライアントにまで伝達するために用いられてもよい。
通信サブシステム2024は、有線通信プロトコルおよび/または無線通信プロトコルをともにサポートし得る。たとえば、特定の実施形態においては、(たとえば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバコンポーネント、WiFi(IEEE802.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組合せ)、全地球測位システム(global positioning system:GPS)レシーバコンポーネント、および/または、他のコンポーネントを含み得る。いくつかの実施形態においては、通信サブシステム1024は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット(登録商標))を提供し得る。
通信サブシステム2024は、データをさまざまな形式で受信または送信することができる。たとえば、いくつかの実施形態においては、通信サブシステム2024は、構造化されたおよび/または構造化されていないデータフィード2026、イベントストリーム2028、イベント更新2030などの形態で入力通信を受信し得る。たとえば、通信サブシステム2024は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード2026をリアルタイムでソーシャルメディアネットワークおよび/または他の通信サービスのユーザから受信(または送信)し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信(または送信)するように構成され得る。
特定の実施形態においては、通信サブシステム2024は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部をもたない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム2028および/またはイベント更新2030を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
また、通信サブシステム2024は、構造化されたおよび/または構造化されていないデータフィード2026、イベントストリーム2028、イベント更新2030などを、コンピュータシステム2000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成され得る。
コンピュータシステム2000は、手持ち式携帯機器(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウェアラブル装置(たとえばグーグルグラス(登録商標)ヘッドマウントディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの1つであってもよい。
コンピュータおよびネットワークの絶え間なく変化し続ける性質のために、図20に示されているコンピュータシステム2000の説明は、特定の例として意図されているに過ぎない。図20に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が実現可能である。本明細書で提供される開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の手段および/または方法を理解するであろう。
本発明の特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本発明の実施形態について説明してきたが、本発明の範囲が、記載されている一連のトランザクションおよびステップに限定されるものではないということが当業者に明らかになるはずである。上述の実施形態のさまざまな特徴および局面が個々にまたは共同で用いられてもよい。
さらに、ハードウェアおよびソフトウェアの特定の組合せを使用して本発明の実施形態について説明してきたが、ハードウェアおよびソフトウェアの他の組合せも本発明の範囲内であることが認識されるべきである。本発明の実施形態は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組合せを使用して実現されてもよい。この明細書中に記載されたさまざまなプロセスは、同じプロセッサ上で、またはさまざまなプロセッサを任意に組合せて、実現することができる。したがって、コンポーネントまたはモジュールが、特定の動作を実行するように構成されるものとして記述されており、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行するようにプログラマブルな電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらを任意に組合せて、達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれらに限定されないさまざまな技術を用いて通信することができ、さまざまな対のプロセスはさまざまな技術を用いてもよく、または、同じ対のプロセスは異なる時にさまざまな技術を用いてもよい。
このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。しかしながら、追加、削減、削除、および他の変形および変更が、特許請求の範囲に記載されている広範囲の精神および範囲から逸脱することなく実施され得ることが明らかになるだろう。このように、特定の発明の実施形態が記載されてきたが、これらは限定するように意図されたものではない。さまざまな変更例および同等例は添付の特許請求の範囲内である。