(57)【要約】  実施形態は、仮想データソースから受信されるデータを実装し、仮想データソースのデータを効率的に提供することを企図している。ある実施形態において、コンピュータシステムのユーザインタフェース（ＵＩ）は、データ要素に関する要求をデータソースに送信する。コンピュータシステムは、要求対象データが読み出されて移送される間はプレースホルダデータを表示するべき旨の指示を、データソースから受信する。次いでコンピュータシステムは、要求対象データ要素のそれぞれに対してＵＩ内にプレースホルダデータを表示し、各データ要素がデータソースから受信されると、表示されたプレースホルダデータに要求対象データ要素を動的に追加する。データ要素は、それらがデータソースから受信されるとＵＩに動的に追加される。
2014526742.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピューティングシステムを備えたコンピュータネットワーキング環境中の、少なくとも１つのプロセッサとメモリを含むコンピュータシステムにおける、仮想データソースから受信されるデータを実装する、コンピュータに実装される方法であって、
ユーザインタフェース（ＵＩ）が１つまたは複数のデータ要素に関する要求をデータソースに送信するステップと、
前記要求対象データが読み出されて移送される間はプレースホルダデータを表示するべき旨の指示を前記データソースから受信するステップと、
前記要求対象データ要素のそれぞれに対して前記ＵＩ内にプレースホルダデータを表示するステップと、
各データ要素が前記データソースから受信されると、前記表示されたプレースホルダデータに前記要求対象データ要素を動的に追加するステップと、
を含む方法。
【請求項２】
前記プレースホルダデータは対応するデータ要素を表すデータの所定部分を含む、請求項１に記載の方法。
【請求項３】
前記データ要素は受信される順序で動的に追加される、請求項１に記載の方法。
【請求項４】
ユーザがある所定の時間にわたって前記データ要素とのインタラクトを停止していると判定するステップと、
１つまたは複数の後続データ要素を前記データソースから事前に取り出すステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
ユーザがある所定の時間内にデータ要素の１つまたは複数とインタラクトしたと判定するステップと、
前記データ事前取り出しをキャンセルするステップと、
をさらに含む、請求項４に記載の方法。
【請求項６】
事前に取り出すページ数がユーザによってカスタマイズ可能である、請求項４に記載の方法。
【請求項７】
ある所与のデータコレクションの前記データ要素が前記コレクションの終端から数えてｎページであるときに、データの事前取り出しが自動的に開始される、請求項１に記載の方法。
【請求項８】
ある所与のデータコレクションの最後のデータ要素が前記ＵＩに表示されているときに、データの事前取り出しが自動的に開始される、請求項１に記載の方法。
【請求項９】
仮想データソースのデータを効率的に提供する方法を実装するコンピュータプログラム製品であって、前記コンピュータプログラム製品はコンピュータが実行可能な命令を格納した１つまたは複数のコンピュータ可読記憶媒体を備え、前記命令はコンピューティングシステムの１つまたは複数のプロセッサによって実行されるときに前記コンピューティングシステムに前記方法を実行させ、前記方法は、
データソースに格納された複数の異なるデータ要素をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供するステップと、
第１のナビゲーション入力を前記ユーザから受け取るステップであって、前記ナビゲーション入力は、前記第１のナビゲーション入力に基づいて前記ユーザに送信するべき１つまたは複数のデータ要素を前記データソースに示す、ステップと、
前記ユーザが前記第１のナビゲーション入力でナビゲートした先のデータ要素を表示するステップと、
第２のナビゲーション入力を前記ユーザから受け取るステップであって、前記第２のナビゲーション入力は、前記ナビゲーション入力に基づいて前記ユーザに送信するべき１つまたは複数の新しいデータ要素を前記データソースに示す、ステップと、
各データ要素が前記データソースから受信されると、前記ユーザナビゲート可能なインタフェースを前記新しいデータ要素によって動的に更新するステップと、
を含む、コンピュータプログラム製品。
【請求項１０】
１つまたは複数の事前取り出しトリガに基づいて１つまたは複数のデータ要素を事前に取り出すステップをさらに含む、請求項９に記載のコンピュータプログラム製品。
【請求項１１】
前記ユーザによってその後に最も閲覧されそうだと判定されたページが、前記事前取り出しトリガのうちの少なくとも１つの発生時に事前に取り出される、請求項１０に記載のコンピュータプログラム製品。
【請求項１２】
前記事前取り出しトリガが、
データコレクションの終端から数えてｎページに達する、前記データコレクションの前記終端に達する、およびデータを事前に取り出すべき旨の手動ユーザ指示を受け取る、のうちの少なくとも１つを含む、請求項１０に記載のコンピュータプログラム製品。
【請求項１３】
前記データソースから読み出すべき後続データ要素群に関する要求の契機となるデータ要素を前記第２のナビゲーション入力が要求した、と判定するステップと、
各データ要素が前記データソースから受信されると、前記ユーザナビゲート可能なインタフェースを前記後続データ要素群によって動的に更新するステップと、
をさらに含む、請求項９に記載のコンピュータプログラム製品。
【請求項１４】
コンピュータシステムであって、
１つまたは複数のプロセッサと、
システムメモリと、
コンピュータが実行可能な命令を格納した１つまたは複数のコンピュータ可読記憶媒体であって、前記命令は前記１つまたは複数のプロセッサによって実行されるときに仮想データソースのデータを効率的に提供する方法を前記コンピューティングシステムに実行させる、媒体と、
を備え、前記方法は、
データソースに格納された複数の異なるデータ要素のうちの１つまたは複数内をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供するステップと、
ナビゲーション入力を前記ユーザから受け取るステップであって、前記ナビゲーション入力は、前記ナビゲーション入力に基づいて前記ユーザに送信するべき１つまたは複数のデータ要素を前記データソースに示す、ステップと、
前記ユーザが前記第１のナビゲーション入力でナビゲートした先のデータ要素を表示するステップと、
前記データソースから読み出すべき後続データ要素群に関する要求の契機となるデータ要素を前記ナビゲーション入力が要求した、と判定するステップと、
各データ要素が前記データソースから受信されると、前記ユーザナビゲート可能なインタフェースを前記後続データ要素群によって動的に更新するステップと、
を含む、コンピュータシステム。
【請求項１５】
前記ユーザによってその後に最も閲覧されそうだと判定されたページが、少なくとも事前取り出しトリガの発生時に事前に取り出され、前記事前取り出しトリガは、データコレクションの終端から数えてｎページに達する、前記データコレクションの前記終端に達する、およびデータを事前に取り出すべき旨の手動ユーザ指示を受け取る、のうちの少なくとも１つを含む、請求項１４に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータは職場、家庭、モバイル機器、およびその他の多くの場所において高度に統合されている。コンピュータは多量の情報を迅速かつ効率的に処理することができる。コンピュータシステム上で動作するように設計されたソフトウェアアプリケーションにより、ユーザは業務用アプリケーション、学業、エンターテインメントなどを含む多様な機能を実行することができる。多くの場合、ソフトウェアアプリケーションは文書作成のためのワードプロセッサアプリケーション、または電子メールの送信、受信、および体系化のための電子メールプログラムのように、特定のタスクを実行するように設計されている。
【０００２】
ある場合には、ソフトウェアアプリケーションは各種ユーザインタフェースを介してユーザに情報を提示するように設計されている。それらのインタフェースは、アプリケーション開発者が選択したデータの配置様態に応じて、さまざまな異なる方法でデータを表示するように構成されうる。ある場合には、アプリケーションユーザは、ローカルデータソースもしくはリモートデータソースとインタラクトするために、またはそれらに対して（例えばインターネットに対して）データを要求するために、ユーザインタフェースを使用しうる。そのような場合、（例えばブラウザの）ユーザインタフェースは下層のアプリケーションとインタラクトしてサーバにデータ要求を送信することになる。サーバはその要求を受信し、可能なとき（例えば、そのデータ要求が処理キューの先頭に来た後に）アプリケーションに応答することになる。サーバがデータ要求を処理している間、アプリケーションは一般に要求前と同じインタフェースを示すか、または何も示さない。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書に記載する実施形態は、仮想データソースから受信されるデータを実装し、仮想データソースのデータを効率的に提供することを企図している。一実施形態において、コンピュータシステムのユーザインタフェース（ＵＩ）は、データ要素に関する要求をデータソースに送信する。コンピュータシステムは、要求対象データが読み出されて移送される間はプレースホルダデータを表示するべき旨の指示を、データソースから受信する。次いでコンピュータシステムは、要求対象データ要素のそれぞれに対してＵＩ内にプレースホルダデータを表示し、各データ要素がデータソースから受信されると、表示されたプレースホルダデータに要求対象データ要素を動的に追加する。
【０００４】
別の実施形態において、コンピュータシステムは、データソースに格納された一連の異なるデータ要素内をユーザがナビゲートできるようにする、ユーザナビゲート可能な（ｕｓｅｒ−ｎａｖｉｇａｂｌｅ）インタフェースを提供する。コンピュータシステムは第１のナビゲーション入力をユーザから受け取る。ナビゲーション入力は、第１のナビゲーション入力に基づいてユーザに送信するべき各種データ要素をデータソースに示す。次いでコンピュータシステムは、ユーザが第１のナビゲーション入力でナビゲートした先のデータ要素を表示する。コンピュータシステムは、ナビゲーション入力に基づいてユーザに送信するべき各種の新しいデータ要素をデータソースに示す第２のナビゲーション入力を、ユーザから受け取る。コンピュータシステムはまた、各データ要素がデータソースから受信されると、ユーザナビゲート可能なインタフェースを新しいデータ要素によって動的に更新する。
【０００５】
さらに別の実施形態において、コンピュータシステムは、データソースに格納された一連の異なるデータ要素内をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供する。コンピュータシステムは、第１のナビゲーション入力に基づいてユーザに送信するべき各種データ要素をデータソースに示すナビゲーション入力を、ユーザから受け取る。次いでコンピュータシステムは、ユーザが第１のナビゲーション入力でナビゲートした先のデータ要素を表示する。コンピュータシステムは、データソースから読み出すべき後続データ要素群に関する要求の契機となるデータ要素をナビゲーション入力が要求した、と判定する。次いでコンピュータシステムは、各データ要素がデータソースから受信されると、ユーザナビゲート可能なインタフェースを後続データ要素群によって動的に更新する。
【０００６】
この「概要」を記載する目的は、以下の「発明を実施するための形態」でさらに説明する概念の一部を簡略化して紹介することにある。この「概要」の意図は、特許請求の範囲に記載される対象の主な特徴または本質的な特徴を明らかにすることでもなければ、特許請求の範囲に記載される対象の範囲を判断する際の一助として用いることでもない。
【０００７】
追加的な特徴および利点は後述の説明に記載される。その一部は、説明によって当業者に明らかとなるか、または本明細書の教示の実践によって会得されうる。本発明の実施形態の特徴および利点は、添付の特許請求の範囲に具体的に示される手段および組み合わせによって実現および達成されうる。本発明の実施形態の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかとなるか、または以下に記載する発明の実施によって会得されうる。
【０００８】
本発明の実施形態の上記およびそれ以外の利点と特徴とをさらに明らかにするため、本発明の実施形態のより具体的な説明を添付図面への参照によって提供する。なお、これらの図面は本発明の典型的な実施形態のみを示すものであり、したがってその範囲を限定するものとみなしてはならない。本発明の実施形態は添付図面の使用を通してさらに具体的かつ詳細に記載および説明される。
【図面の簡単な説明】
【０００９】
【図１】仮想データソースから受信されるデータの実装を含め、本発明の実施形態が実施されるコンピュータアーキテクチャを示す図である。
【００１０】
【図２】仮想データソースから受信されるデータを実装する方法例のフローチャートである。
【００１１】
【図３】仮想データソースのデータを効率的に提供する方法例のフローチャートである。
【００１２】
【図４】仮想データソースのデータを効率的に提供する代替的な方法例のフローチャートである。
【００１３】
【図５Ａ】データ要素が古典的な方法でロードされる実施形態を示す図である。
【図５Ｂ】データ要素が追加的にロードされる実施形態を示す図である。
【発明を実施するための形態】
【００１４】
本明細書に記載する実施形態は、仮想データソースから受信されるデータを実装し、仮想データソースのデータを効率的に提供することを企図している。一実施形態において、コンピュータシステムのユーザインタフェース（ＵＩ）は、データ要素に関する要求をデータソースに送信する。コンピュータシステムは、要求対象データが読み出されて移送される間はプレースホルダデータを表示するべき旨の指示を、データソースから受信する。次いでコンピュータシステムは、要求対象データ要素のそれぞれに対してＵＩ内にプレースホルダデータを表示し、各データ要素がデータソースから受信されると、表示されたプレースホルダデータに要求対象データ要素を動的に追加する。
【００１５】
別の実施形態において、コンピュータシステムは、データソースに格納された一連の異なるデータ要素内をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供する。コンピュータシステムは第１のナビゲーション入力をユーザから受け取る。ナビゲーション入力は、第１のナビゲーション入力に基づいてユーザに送信するべき各種データ要素をデータソースに示す。次いでコンピュータシステムは、ユーザが第１のナビゲーション入力でナビゲートした先のデータ要素を表示する。コンピュータシステムは、ナビゲーション入力に基づいてユーザに送信するべき各種の新しいデータ要素をデータソースに示す第２のナビゲーション入力を、ユーザから受け取る。コンピュータシステムはまた、各データ要素がデータソースから受信されると、ユーザナビゲート可能なインタフェースを新しいデータ要素によって動的に更新する。
【００１６】
さらに別の実施形態において、コンピュータシステムは、データソースに格納された一連の異なるデータ要素内をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供する。コンピュータシステムは、第１のナビゲーション入力に基づいてユーザに送信するべき各種データ要素をデータソースに示すナビゲーション入力を、ユーザから受け取る。次いでコンピュータシステムは、ユーザが第１のナビゲーション入力でナビゲートした先のデータ要素を表示する。コンピュータシステムは、データソースから読み出すべき後続データ要素群に関する要求の契機となるデータ要素をナビゲーション入力が要求した、と判定する。次いでコンピュータシステムは、各データ要素がデータソースから受信されると、ユーザナビゲート可能なインタフェースを後続データ要素群によって動的に更新する。
【００１７】
ここで、以下の議論において、実施されうるいくつかの方法および方法ステップについて述べる。なお、方法ステップがある順序で説明される、またはフローチャートにおいてある特定の順序で生じるように示されることがあるが、特に記載がない限り、あるいはあるステップがそのステップの実施前に完了されている別のステップに依存する故に必要となる場合を除き、特定の順序は必ずしも必要ではない。
【００１８】
本発明の実施形態は、以下においてより詳細に説明するように、例えば１つまたは複数のプロセッサおよびシステムメモリなどのコンピュータハードウェアを備えた、専用または汎用のコンピュータを備えうるか、または利用しうる。本発明の範囲内の実施形態はまた、コンピュータが実行可能な（ｃｏｍｐｕｔｅｒ−ｅｘｅｃｕｔａｂｌｅ）命令および／またはデータ構造を搬送もしくは記憶する物理的またはその他のコンピュータ可読媒体をも含む。かかるコンピュータ可読媒体は、汎用もしくは専用のコンピュータシステムによってアクセス可能な、あらゆる利用可能媒体でありうる。コンピュータが実行可能な命令をデータの形態で記憶するコンピュータ可読媒体は、コンピュータ記憶媒体である。コンピュータが実行可能な命令を搬送するコンピュータ可読媒体は伝送媒体である。したがって、限定ではなく一例として、本発明の実施形態は明瞭に異なる少なくとも２種類のコンピュータ可読媒体、すなわち、コンピュータ記憶媒体と伝送媒体とを含むことができる。
【００１９】
コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ＲＡＭに基づく半導体ドライブ（ＳＳＤ）、フラッシュメモリ、相変化メモリ（ＰＣＭ）、もしくはその他の種類のメモリ、またはその他の光ディスクストレージ、磁気ディスクストレージ、もしくはその他の磁気記憶デバイス、あるいは所望のプログラムコード手段をコンピュータが実行可能な命令、データ、もしくはデータ構造の形態で記憶するために使用でき、かつ汎用もしくは専用のコンピュータによってアクセス可能なあらゆるその他の媒体を含む。
【００２０】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／またはその他の電子機器の間で電子データの輸送を可能にする、１つまたは複数のデータリンクおよび／またはデータスイッチとして定義される。情報があるネットワーク（有線、無線、または有線と無線の組み合わせのいずれか）を介してコンピュータに転送または提供されるとき、コンピュータはその接続を正しく伝送媒体とみなす。伝送媒体は、データまたは所望のプログラムコード手段をコンピュータが実行可能な命令の形態で、もしくはデータ構造の形態で搬送するために使用でき、かつ汎用もしくは専用のコンピュータによってアクセス可能なネットワークを含みうる。上記の組み合わせもコンピュータ可読媒体の範囲に含めるべきである。
【００２１】
さらに、コンピュータが実行可能な命令もしくはデータ構造の形態のプログラムコード手段は、各種のコンピュータシステムコンポーネントに到達すると、伝送媒体からコンピュータ記憶媒体に（またはその逆の方向に）自動的に転送されうる。例えば、ネットワークまたはデータリンクを介して受信された、コンピュータが実行可能な命令もしくはデータ構造は、ネットワークインタフェースモジュール（例えばネットワークインタフェースカード、すなわち「ＮＩＣ」）内のＲＡＭにバッファリングされ、その後、コンピュータシステムのＲＡＭおよび／またはコンピュータシステムにおけるより揮発性の低いコンピュータ記憶媒体に最終的に転送されうる。したがって、コンピュータ記憶媒体は、伝送媒体も使用する（あるいは、むしろそれを主として使用する）コンピュータシステムコンポーネントに含まれうることを理解するべきである。
【００２２】
コンピュータが実行可能な（またはコンピュータが解釈可能な）命令は、例えば汎用コンピュータ、専用コンピュータ、または専用処理機器に対してある機能（ｆｕｎｃｔｉｏｎ）もしくは機能群を実行させる命令を含む。コンピュータが実行可能な命令は、例えばバイナリ、アセンブリ言語など中間形式の命令、またはソースコードでさえありうる。対象は構造的特徴および／または方法上のステップに特有の言語で記載されてきたが、添付の特許請求の範囲に規定される対象が記載の特徴または上述のステップに必ずしも限定されないことは理解されるべきである。むしろ、記載される特徴およびステップは、特許請求の範囲を実施する形態の例として開示されている。
【００２３】
本発明がネットワークコンピューティング環境において多くの種類のコンピュータシステム構成によって実施されうることを当業者は理解するだろう。かかる構成は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、携帯型機器、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話機、ＰＤＡ、ページャ、ルータ、スイッチなどを含む。本発明は、ネットワークを介して（有線データリンク、無線データリンク、または有線と無線のデータリンクの組み合わせのいずれかによって）リンクされるローカルとリモートのコンピュータシステムがそれぞれタスクを実行する、分散型システム環境（例えば、クラウドコンピューティング、クラウドサービスなど）においても実施されうる。分散型システム環境において、プログラムモジュールはローカルとリモートの両方のメモリストレージデバイスに置かれうる。
【００２４】
図１は、本発明の原理が使用されうるコンピュータアーキテクチャ１００を示す。コンピュータアーキテクチャ１００はユーザインタフェース１１０を含む。ユーザインタフェース（ＵＩ）は任意の種類のソフトウェアアプリケーションに対するインタフェースでありえるうえ、マウス、キーボード、タッチスクリーン、およびその他の入力を含むさまざまな異なる種類のユーザ入力を受け取りうる。アプリケーション（およびＵＩそのもの）はローカルまたは分散型（例えばクラウドコンピューティングシステム）であるコンピュータシステム上で動作しうる。ＵＩは、データソース１３０とインタラクトするように構成されうる。このデータソースはデータを格納しうるか、または単に、データが格納される実際の位置にデータ要求１１７を転送するプロキシとして動作しうる。データソース１３０は、それぞれがさまざまな異なるデータ要素１３２を含む、複数の異なるデータコレクション１３１を含みうる。これらのデータ要素はデータソース上で仮想化されてもよく、さらに、任意の順序でＵＩに送信されてもよい。このように、ユーザがデータを要求すると、データは利用可能になったときに任意の順序で送信されうる。
【００２５】
ある実施形態において、仮想データソースとの作業を、そのデータソースによって実現されるインタフェースを介してサポートする制御が提供されうる。さまざまな異なるモードのデータ仮想化が使用されうる。一つの例では「古典的」モードが使用されうる。その場合、データコレクション全体がロードされた場合にコレクション内のデータが現れる。次いで、制御はユーザのナビゲーション動作に応じてさらにデータを取り出す。ある場合には、ユーザがデータコレクション内の追加データにアクセスしたい場合（例えば、それにナビゲートすることによる）、それが用意されるようにそれを事前に取り出してもよい。別の例では「増分」モードが使用されうる。その場合、ユーザがコレクションの終端（本当の終端または終端からあるページ数のいずれか）に近づくにつれて、コレクションデータは決まったサイズの増分ずつ追加的に増大する。
【００２６】
本明細書に記載する古典的なデータ仮想化では、（例えば、データを取り出す非同期要求の開始によって）実際のデータが読み出される間、データソース１３０はあるプレースホルダ値に復帰することができる。実際のデータが読み出される間、制御はそのデータアイテムに対してＵＩ内にプレースホルダデータを表示することになる。このように、たとえデータの一部しかロードされていなくても、コレクションは完全に存在する（または完全にダウンロードされている）ように見える。所望により、現在は表示されていないが近々表示されそうな一連のアイテムを要求する、事前取り出しインタフェースを実装してもよい。
【００２７】
増分型データ仮想化は、ある所定量のデータをロードした後、必要に応じて後続データアイテム群を読み出す。増分型データ制御は（例えば、コレクションの終端で、コレクションの終端から数えてＮページで、または手動で呼び出されたときに）カスタマイズ可能なトリガがないか監視し、次のデータアイテム群に関する要求を誘起する。所望により、アイテムに対するプレースホルダデータをアイテムの要求中にＵＩ内に表示してもよい。ある場合には、データソース１３０は両タイプのデータ仮想化を同時にサポートしうる（例えば、ユーザがすべて（または実質的にすべて）をブラウズ可能になるサーチデータソースであって、サーチ結果が一つの大きなリストで与えられるか、またはユーザが一度に１ページずつページにアクセスできるもの）。かかる場合、制御はいずれのモード（または所望時は両方のモード）を使用するか判定することになる。これらの概念については図２、図３、および図４の方法２００、方法３００、および方法４００と関連して以下にそれぞれ詳しく説明する。
【００２８】
上述したシステムおよびアーキテクチャに鑑みれば、開示対象に従って実施されうる方法は、図２および図３のフローチャートを参照することでよりよく理解されるだろう。説明を簡単にするため、方法は一連のブロックの形で表示および説明する。ただし、特許請求の範囲に記載される対象はブロックの順序によって制限されないことを理解および認識するべきである。これは、一部のブロックが本明細書中で描写および説明する内容とは異なる順序で、および／または他のブロックと同時に発生しうるためである。さらに、後述の方法を実現するにあたり、提示したすべてのブロックが必要になるとは限らない。
【００２９】
図２は、仮想データソースから受信されるデータを実装する方法２００のフローチャートを示す。ここで、環境１００のコンポーネントおよびデータを度々参照しながら方法２００について説明する。
【００３０】
方法２００は、１つまたは複数のデータ要素に関する要求をデータソースに送信する、ユーザインタフェース（ＵＩ）のステップ（ステップ２１０）を含む。例えば、ＵＩ１１０のデータ要求モジュール１１５は、データコレクション１３１の各種データ要素１３２に関する要求１１７を送信しうる。データ要素はあらゆる種類のテキスト、画像、動画、またはその他の種類のデータでありうる。これらのデータ要素はデータソース１３０に格納されている。データソースはローカルでもリモートでもよく、また単一もしくは分散型のいずれのストレージソリューション（例えば、ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ（ＳＡＮ））であってもよい。ローカルデータソースからのデータアクセスは、ハードディスク（もしくは別の種類のコンピュータ可読媒体）上にローカルファイルを用意することを含みうる。なお、（上述した）古典的および増分型の両方のデータ仮想化は、ローカルデータソースに対しても、またリモートデータソースに対しても実現されうる。データ要素要求１１７は、ユーザ１０５から入力１０６を受け取った結果として送信されてもよい。ここで、入力はユーザがコレクション内のデータ要素を閲覧したい旨を示している。
【００３１】
方法２００はまた、要求対象データが読み出されて移送される間にプレースホルダデータを表示するべき旨の指示をデータソースから受信するステップ（ステップ２２０）も含む。例えば、ＵＩ１１０はプレースホルダ指示１３３をデータソース１３０から受信しうる。プレースホルダ指示は、要求対象データが読み出される間にプレースホルダデータを表示するべき旨の、あらゆる種類のデータ、コード、関数、信号、またはその他の指標でありうる。プレースホルダそのものは、ＵＩの作成者／使用者の決定内容に応じて異なる形状および形態を取りうる。例えば、データ要素がムービーコレクション内のムービーである場合、プレースホルダはグレーのボックスもしくはムービーボックス枠、または実際のデータが未着であることを示す何らかの他の画像もしくはテキストの一部でありうる。
【００３２】
次に、方法２００は、要求対象データ要素のそれぞれに対してＵＩ内にプレースホルダデータを表示するステップ（ステップ２３０）を含む。ユーザインタフェース１１０はＵＩ内に示される６つのデータ要素のそれぞれに対してプレースホルダデータを表示しうる（理解されるように、ＵＩには実質的に任意の数のデータ要素が表示されうる）。このように、要素１１６Ｂ内に示すように、テキストおよび画像の代わりにプレースホルダが表示されうる。データがデータソースから受信されると自動的に書き込まれるようにしてもよい。このように、要素１１６Ａ内に示すように、画像とテキストが受信されて表示されている。同様に、要素１１６Ｄでは、２つの部分のテキストが受信されている。要素１１６Ｅにはいかなるデータ要素も受信されておらず、したがってプレースホルダのみが示されている。要素１１６Ｆでは下部において画像が受信されているが、上部の画像は未受信である。要素１１６Ｃは、テキストが受信されているが、下部の画像が未受信である状況を示している。図１では画像とテキストを使用しているが、ＵＩ１１０にはあらゆる種類のデータ要素が表示および使用されうることに留意されたい。
【００３３】
方法２００は、各データ要素がデータソースから受信されると、表示されるプレースホルダデータに要求対象データ要素を動的に追加するステップ（ステップ２４０）をさらに含む。データ要素１３２がデータソース１３０から受信されると、それらは受信された状態で（かつ、少なくともあるケースでは受信された順序で）動的に追加もしくは「素早く表示（ｐｏｐｐｅｄ−ｉｎ）」することができる。ＵＩ（またはＵＩを実行するコンピュータシステム）は、ユーザがある所定の時間にわたってデータ要素（１１６Ａ〜Ｆ）とのインタラクトを停止していると判定しうる。ユーザが要素を閲覧している（または、少なくとも新しい要素にナビゲートしていない）と判定されたら、データ事前取り出しモジュール１２０はデータソース１３０から後続のデータ要素を事前に取り出してもよい。このように、コレクションが数百、数千、または数百万の文書を含み、かつ最初の６つがＵＩ１１０に表示されている場合、データ事前取り出しモジュールは例えば７番目から１０番目までの要素を事前に取り出しうる。事前取り出し要素１２１の数は、ユーザごと、コンピュータシステムごと、アプリケーションごと、あるいは何らかの他の方針ごとにカスタマイズされうる。
【００３４】
ユーザが要求対象データ要素を閲覧している間、ＵＩは、ユーザ１０５がある所定の時間内にデータ要素の１つまたは複数とインタラクトしたと判定しうる。そのインタラクションは、新しいデータ要素がロードされて表示されるべきであることを示しうる。その結果、未完了のデータ事前取り出しがあればすべてキャンセルされえ、さらに、その新しいデータ要素がデータソース１３０に対して要求されうる。ある場合には、ある所与のデータコレクションのデータ要素がコレクションの終端から数えてｎページである（ここに「ｎ」はカスタマイズ可能な変数である）ときに、データの事前取り出しが自動的に開始されうる。データの事前取り出しはまた、ある所与のデータコレクションの最後のデータ要素がＵＩに表示されているときに自動的に開始されうる。こうして、ユーザがデータコレクションの終端までブラウズし終えると、ユーザは先頭に戻るだろうとの予想のもとにコレクションの先頭にあるデータが事前に取り出されうる。他の要素を事前に取り出している間にあるデータ要素を表示するべきことを示す開始指示がユーザから受け取ったときも、データの事前取り出しが行われうる。このように、事前に取り出されるデータは、ユーザのデータ要素ブラウジング体験を向上させるために使用されうる。
【００３５】
図３は、仮想データソースのデータを効率的に提供する方法３００のフローチャートを示す。ここで、環境１００のコンポーネントおよびデータを度々参照しながら方法３００について説明する。
【００３６】
方法３００は、データソースに格納された一連の異なるデータ要素内をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供するステップ（ステップ３１０）を含む。例えば、コンピュータシステムは、ユーザ１０５がデータコレクション１３１内をナビゲートできるようにするユーザインタフェース１１０を提供可能である。データコレクションは、異種類の多くの異なるデータ要素１３２を含みうる。データコレクションは、データソース１３０に格納される多くの異なるデータコレクションの１つでありうる。ＵＩは、ナビゲーション入力１０６をユーザから受け取るように構成されている。ナビゲーション入力は、そのナビゲーション入力に基づいてユーザに送信するべき各種データ要素をデータソースに示しうる（ステップ３２０）。例えば、データコレクションが一連の料理レシピである場合、ユーザは異なるレシピ写真と付随するテキストの間をナビゲートしているかもしれない。ある場合には、レシピはビデオまたはその他のウェブコンテンツを含みうる。ユーザがブラウズしたこれらの要素はＵＩ内に表示されうる（ステップ３３０）。
【００３７】
上述のように、データの要求および受信は異なる時間に行われうる。その結果、データソース１３０は、要求対象要素のそれぞれについてプレースホルダデータを表示するべき旨をＵＩに示すプレースホルダ指示１３３を、ＵＩに送信しうる。その後、データ要素がデータソースから受信されると、それらは自動的かつ動的にＵＩに追加できる。このように、データ要素１１６Ａ〜１１６Ｆは異なるデータ受信段階を示す。要素１１６Ａでは、テキストと画像の両方が受信されて表示されている。要素１１６Ｂではテキストと画像がいずれも未受信であり、その結果、それぞれに対してプレースホルダデータが表示されている。図示したそれ以外の要素では、データ要素がまったく受信されていないか、またはデータ要素の一部もしくは全部が受信されている。ユーザがコレクション内の他のデータ要素にスクロールもしくは（例えばハイパーリンクを介して）ナビゲートすると、対応するデータが読み出されている間、それらの新しい要素に対するプレースホルダデータを表示してもよい。このように、実際にはデータソースからはコレクションの一部しか移送されていないが、その一連のデータ要素はユーザナビゲート可能なインタフェースにおいて完全にロードされたように見える。
【００３８】
方法３００は、第２のナビゲーション入力であって、そのナビゲーション入力に基づいてユーザに送信するべき１つまたは複数の新しいデータ要素をデータソースに示す第２のナビゲーション入力を、ユーザから受け取るステップ（ステップ３４０）をさらに含む。こうしてユーザ１０５は、コレクションからの新しい異なるデータ要素を表示するべき旨を示す第２の入力１０６を、ＵＩに送信しうる。例えば、最初に返されたデータ要素がウェブサーチからのハイパーリンクであり、かつ第２の入力が追加的な結果を表示するべきことを示している場合、ＵＩは、追加的なデータ要素を要求する要求１１７をデータソース１３０に送信しうる。データソースは新しいデータ要素に対するプレースホルダ指示１３３を送信し、新たに要求されたデータの移送を開始しうる。
【００３９】
ＵＩはまた、１つまたは複数の追加データアイテムを事前に取り出すように要求しうる。事前取り出しは自動的であってもよいほか、あるトリガが満たされたときに自動的に実施されても、また手動で要求されたときに実施されてもよい。コンピュータシステムは、どのデータ要素またはページがユーザによってその後に最も閲覧されそうかを判定しうる。それらのページは、ユーザが現在表示中の要素を閲覧および／または現在表示中の要素とインタラクトしている間に事前に取り出されうる。事前取り出しトリガは少なくとも一部の実施形態においてユーザカスタマイズ可能でありえ、かつ以下の１つまたは複数を含んでもよい：データコレクションの終端から数えてｎページに達する（ここに「ｎ」は変数である）、データコレクションの終端に達する、およびデータを事前に取り出すべき旨の手動ユーザ指示を受け取る。
【００４０】
ここで上記の例を続けると、コンピュータシステムは、データソース１３０から読み出すべき後続データ要素群に関する要求の契機となるデータ要素を第２のナビゲーション入力が要求した、と判定しうる。次いで、各データ要素がデータソースから受信されると、ＵＩは後続データ要素群によって動的に更新されうる（ステップ３５０）。したがって、図５Ａに示すように、ユーザがＵＩ５１０Ａにおいて要素Ｋ（５４１）を閲覧している場合、要素Ｋの周りに要素Ｉ、Ｊ、Ｌ、およびＭ（５４０）が動的にロードされうる。こうして、ユーザがブラウズしている間、現在閲覧中の要素の周りにデータ要素が絶えずロードされる。
【００４１】
図４は、仮想データソースのデータを効率的に提供する代替方法４００のフローチャートを示す。ここで、環境１００のコンポーネントおよびデータを度々参照しながら方法４００について説明する。
【００４２】
方法４００は、データソースに格納された複数の異なるデータ要素のうちの１つまたは複数内をユーザがナビゲートできるようにする、ユーザナビゲート可能なインタフェースを提供するステップ（ステップ４１０）を含む。例えば、コンピュータシステムは、ユーザが下層のソフトウェアアプリケーションとインタラクトできるようにする、ＵＩ１１０を提供しうる。このアプリケーションは、データコレクション１３１のデータ要素１３２を表示する、および／またはそれらとのインタラクションを可能にするように構成されうる。ＵＩは、ナビゲーション入力またはその他の形態のインタラクションをユーザ１０５から受け取るように構成されている（ステップ４２０）。ナビゲーション入力は、そのナビゲーション入力に基づいてユーザに送信するべきデータ要素をデータソースに示しうる（ステップ４２０）。こうしてユーザから入力を受け取った後、データ要求モジュール１１５は、ユーザから要求されたデータ要素を読み出すために、要求１１７をデータソースに送信しうる。
【００４３】
方法４００はまた、ユーザが第１のナビゲーション入力でナビゲートした先のデータ要素を表示するステップ（ステップ４３０）をも含む。こうして、例えば図５Ｂに示すように、ユーザが要素Ｔ（５４３）にナビゲートした場合、ユーザインタフェース５１０Ｂは、追加的にロードされる他の要素（すなわち、要素Ｕ、Ｖ、Ｗ、Ｘ、およびＹ（５４１））と合わせて要素Ｔを表示しうる。各データ要素に対するデータがまだ完全には受信されていない場合は、各要素（またはデータ要素内の各部分のデータ）に対してプレースホルダデータが表示されうる。
【００４４】
方法４００は、データソースから読み出すべき後続データ要素群に関する要求の契機となるデータ要素をナビゲーション入力が要求した、と判定するステップ（ステップ４４０）をさらに含む。こうして、トリガの１つが満たされると、新しい要素群が追加的にロードされる。トリガは以下のいずれを含んでもよい：データコレクションの終端から数えてｎページに達する（ここに「ｎ」は変数である）、データコレクションの終端に達する、およびデータを事前に取り出すべき旨の手動ユーザ指示を受け取る。したがって、図５Ｂにおいて、要素Ｔはコレクションの最後の１０ページ以内に存在しうる（コレクションは要素Ｚで終わると仮定する）。変数「ｎ」が仮に１０だとすると、トリガは満たされることになり、追加的にロードされる次の（設定可能な）個数の要素がロードされることになる。その後、各データ要素がデータソースから受信されると、これらの要素はＵＩ５１０Ｂにおいて動的に更新される（ステップ４５０）。こうして、ユーザがデータコレクションをブラウザしている、またはデータコレクションとインタラクトしている間に、データ要素が追加的かつ動的にロードされる。
【００４５】
したがって、仮想データソースから受信されるデータを表示し、かつかかるデータとのインタラクションを可能にする方法、システム、およびコンピュータプログラム製品が提供される。さらに、仮想データソースのデータをユーザインタフェースを介してユーザに効率的に提供する方法、システム、およびコンピュータプログラム製品が提供される。
【００４６】
本発明は、その趣旨または本質的な特性から逸脱することなく他の具体的な形態で実施することができる。上述の実施形態はあらゆる点において単なる例示とみなすべきであり、限定的に解釈してはならない。したがって、本発明の範囲は上記の説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲の均等物の意味および範囲に入るすべての変更は、それらの範囲内に含まれることになる。
【図１】
2014526742.tif 000003
【図２】
2014526742.tif 000004
【図３】
2014526742.tif 000005
【図４】
2014526742.tif 000006
【図５Ａ】
2014526742.tif 000007
【図５Ｂ】
2014526742.tif 000008
【国際調査報告】
2014526742.tif 000009
2014526742.tif 000010