(57)【特許請求の範囲】
【請求項１】
アプリケーション内にウェブエレメントを提示するためのシステムであって、前記システムは、
１以上のプロセッサと、
命令が記憶されている機械可読媒体と、を備え、前記命令は前記プロセッサによって実行されるときに前記プロセッサに、
アプリケーション内に提示するための複数のウェブエレメントに関連付けられているレイアウトデータを受信する工程と、
前記複数のウェブエレメントの各々に関連付けられている可視性データを受信する工程と、
受信された前記レイアウトデータと受信された前記可視性データとに基づいて前記複数のウェブエレメントの各ウェブエレメントについての優先度を定義する工程と、
定義された前記優先度に基づいて前記複数のウェブエレメントから前記ウェブエレメントのサブセットを選択する工程と、
前記アプリケーション内の表示用にウェブエレメントの前記サブセットを提示する提示工程と、
前記提示工程よりも前に、事前に定義されたダウンロードスケジュールに基づいてウェブエレメントの前記サブセットをダウンロードする工程と、
ダウンロードされた前記ウェブエレメントの前記サブセットを記憶する記憶工程と、
前記アプリケーション内に前記複数のウェブエレメントのうちの１以上を表示するためのリクエストを受信するリクエスト受信工程と、
前記記憶工程と前記リクエスト受信工程との間の経過時間が所定の期間内であると決定する期間決定工程と、
を含む動作を実行させ、
前記期間決定工程に応じて前記サブセットが提示される、システム。
【請求項２】
前記レイアウトデータは、前記複数のウェブエレメントに対応するハイパーテキストマークアップランゲージ（ＨＴＭＬ）に基づいて生成されるドキュメントオブジェクトモデル（ＤＯＭ）ツリーに対応する、
請求項１に記載のシステム。
【請求項３】
前記複数のウェブエレメントは画像を含む、
請求項１に記載のシステム。
【請求項４】
前記複数のウェブエレメントの各々に関連付けられている前記可視性データは、各ウェブエレメントが前記アプリケーション内に表示される位置に対応する、
請求項１に記載のシステム。
【請求項５】
各ウェブエレメントについて、該ウェブエレメントに関連付けられている前記可視性データは、該ウェブエレメントに関連付けられている前記位置が前記アプリケーションの観察領域内であるか否かを示す、
請求項４に記載のシステム。
【請求項６】
各ウェブエレメントについて、前記優先度は、該ウェブエレメントに関連付けられている前記位置と前記アプリケーションの観察領域との間の距離と、該ウェブエレメントに関連付けられている表示スペースの推定量と、該ウェブエレメントに関連付けられている寸法と、該ウェブエレメントに関連付けられているフォーマットとのうち少なくとも１つに基づく、
請求項４に記載のシステム。
【請求項７】
前記動作は、前記サブセットを提示する提示工程よりも後に、前記アプリケーション内の表示用に前記複数のウェブエレメントの残りのウェブエレメントを提示する工程をさらに含む、
請求項１に記載のシステム。
【請求項８】
命令が記憶されている機械可読媒体であって、前記命令はシステムによって実行されるときに前記システムに、
アプリケーション内に提示するための複数のウェブエレメントに関連付けられているレイアウトデータを受信する工程と、
前記複数のウェブエレメントの各々に関連付けられている可視性データを受信する工程と、
受信された前記レイアウトデータと受信された前記可視性データとに基づいて前記複数のウェブエレメントの各ウェブエレメントについての優先度を定義する工程と、
定義された前記優先度に基づいて前記アプリケーション内の表示用に前記複数のウェブエレメントのうち１以上を提示する工程と、
前記提示する工程よりも前に、事前に定義されたダウンロードスケジュールに基づいてウェブエレメントのサブセットをダウンロードする工程と、
ダウンロードされた前記ウェブエレメントの前記サブセットを記憶する記憶工程と、
前記アプリケーション内に前記複数のウェブエレメントのうちの１以上を表示するためのリクエストを受信するリクエスト受信工程と、
前記記憶工程と前記リクエスト受信工程との間の経過時間が所定の期間内であると決定する期間決定工程と、
を含む動作を実行させ、
前記期間決定工程に応じて前記サブセットが提示される、機械可読媒体。
【請求項９】
前記レイアウトデータは、前記複数のウェブエレメントに対応するハイパーテキストマークアップランゲージ（ＨＴＭＬ）に基づいて生成されるドキュメントオブジェクトモデル（ＤＯＭ）ツリーに対応する、
請求項８に記載の機械可読媒体。
【請求項１０】
前記複数のウェブエレメントは画像を含む、
請求項８に記載の機械可読媒体。
【請求項１１】
前記複数のウェブエレメントの各々に関連付けられている前記可視性データは、各ウェブエレメントが前記アプリケーション内に表示される位置に対応する、
請求項８に記載の機械可読媒体。
【請求項１２】
各ウェブエレメントについて、該ウェブエレメントに関連付けられている前記可視性データは、該ウェブエレメントに関連付けられている前記位置が前記アプリケーションの観察領域内であるか否かを示す、
請求項１１に記載の機械可読媒体。
【請求項１３】
各ウェブエレメントについて、前記優先度は、該ウェブエレメントに関連付けられている前記位置と前記アプリケーションの観察領域との間の距離と、該ウェブエレメントに関連付けられている表示スペースの推定量と、該ウェブエレメントに関連付けられている寸法と、該ウェブエレメントに関連付けられているフォーマットとのうち少なくとも１つに基づく、
請求項１１に記載の機械可読媒体。
【請求項１４】
前記複数のウェブエレメントのうち１以上を提示する工程は、
定義された前記優先度に基づいて前記複数のウェブエレメントから前記ウェブエレメントのサブセットを選択する工程と、
前記アプリケーション内の表示用にウェブエレメントの前記サブセットを提示する工程と、を含む、
請求項８に記載の機械可読媒体。
【請求項１５】
前記動作は、サブセットを提示する工程よりも後に、前記アプリケーション内の表示用に前記複数のウェブエレメントの残りのウェブエレメントを提示する工程をさらに含む、
請求項８に記載の機械可読媒体。
【請求項１６】
アプリケーション内にウェブエレメントを提示するための方法であって、前記方法は、
アプリケーション内に提示するための複数のウェブエレメントに関連付けられているレイアウトデータを受信する工程と、
前記複数のウェブエレメントの各々に関連付けられている可視性データを受信する工程と、
受信された前記レイアウトデータと受信された前記可視性データとに基づいて前記複数のウェブエレメントの各ウェブエレメントについての優先度を定義する工程と、
定義された前記優先度に基づいて前記複数のウェブエレメントから前記ウェブエレメントのサブセットを選択する工程と、
前記アプリケーション内の表示用にウェブエレメントの前記サブセットを提示する提示工程と、
前記提示工程よりも前に、事前に定義されたダウンロードスケジュールに基づいてウェブエレメントの前記サブセットをダウンロードする工程と、
ダウンロードされた前記ウェブエレメントの前記サブセットを記憶する記憶工程と、
前記アプリケーション内に前記複数のウェブエレメントのうちの１以上を表示するためのリクエストを受信するリクエスト受信工程と、
前記記憶工程と前記リクエスト受信工程との間の経過時間が所定の期間内であると決定する期間決定工程と、
を備え、
前記期間決定工程に応じて前記サブセットが提示され、
前記複数のウェブエレメントの各々に関連付けられている前記可視性データは、各ウェブエレメントが前記アプリケーション内に表示される位置に対応する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はウェブアプリケーションに関し、特に、ウェブアプリケーション内のページダウンロードイベントの処理およびリソース最適化に関する。
【背景技術】
【０００２】
ウェブアプリケーション（たとえば、ブラウザ）は、ワールドワイドウェブ上の情報リソースの取出、提示、およびトラバースを行うために用いられる。ページダウンロード時間は、ウェブサイトにアクセスしようとする際のユーザエクスペリエンスの重要な要素である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ウェブアプリケーション、特に、ウェブアプリケーション内のページダウンロードイベントの処理およびリソース最適化を提供する。
【課題を解決するための手段】
【０００４】
開示される主題は、アプリケーション内にウェブエレメントを提示するためのシステムに関する。前記システムは、１以上のプロセッサと、命令が記憶されている機械可読媒体と、を備え、前記命令は前記プロセッサによって実行されるときに前記プロセッサに、アプリケーション内に提示するための複数のウェブエレメントに関連付けられているレイアウトデータを受信する工程を含む動作を実行させる。前記命令はさらに、前記複数のウェブエレメントの各々に関連付けられている可視性データを受信する工程を含む。前記命令はさらに、受信された前記レイアウトデータと受信された前記可視性データとに基づいて前記複数のウェブエレメントの各ウェブエレメントについての優先度を定義する工程を含む。前記命令はさらに、定義された前記優先度に基づいて前記複数のウェブエレメントから前記ウェブエレメントのサブセットを選択する工程を含む。前記命令はさらに、前記アプリケーション内の表示用にウェブエレメントの前記サブセットを提示する工程を含む。
【０００５】
開示される主題はさらに、命令が記憶されている機械可読媒体に関する。前記命令はシステムによって実行されるときに前記システムに、アプリケーション内に提示するための複数のウェブエレメントに関連付けられているレイアウトデータを受信する工程を含む動作を実行させる。前記命令はさらに、前記複数のウェブエレメントの各々に関連付けられている可視性データを受信する工程を含む。前記命令はさらに、受信された前記レイアウトデータと受信された前記可視性データとに基づいて前記複数のウェブエレメントの各ウェブエレメントについての優先度を定義する工程を含む。前記命令はさらに、定義された前記優先度に基づいて前記アプリケーション内の表示用に前記複数のウェブエレメントのうち１以上を提示する工程を含む。
【０００６】
開示される主題はさらに、アプリケーション内にウェブエレメントを提示するための方法に関する。前記方法は、アプリケーション内に提示するための複数のウェブエレメントに関連付けられているレイアウトデータを受信する工程を備える。前記方法はさらに、前記複数のウェブエレメントの各々に関連付けられている可視性データを受信する工程を備える。前記方法はさらに、受信された前記レイアウトデータと受信された前記可視性データとに基づいて前記複数のウェブエレメントの各ウェブエレメントについての優先度を定義する工程を備える。前記方法はさらに、定義された前記優先度に基づいて前記複数のウェブエレメントから前記ウェブエレメントのサブセットを選択する工程を備える。前記方法はさらに、前記アプリケーション内の表示用にウェブエレメントの前記サブセットを提示する工程を備える。前記複数のウェブエレメントの各々に関連付けられている前記可視性データは、各ウェブエレメントが前記アプリケーション内に表示される位置に対応する。
【図面の簡単な説明】
【０００７】
【図１】一実施形態によるページダウンロードイベント中のリソース最適化がウェブアプリケーション内で処理される一例のネットワーク環境を示す図。
【図２】一実施形態によるリソース最適化プラットフォームを示す概略図。
【図３】一実施形態によるリサーチ最適化を提供するためのプロセスを示すフローチャート。
【図４】ウェブアプリケーションに関連付けられているページダウンロードイベント中のリソース最適化の一例を示すブロック図。
【図５】本願の技術のいくつかの実施形態が実装される一例の電子システムを概念的に示す図。
【発明を実施するための形態】
【０００８】
本願の技術の様々な構成が例示のために図示および説明される以下の詳細な説明から、当業者によって本願の技術の他の構成が容易に識別されると理解される。以下から分かるように、本願の技術の範囲を逸脱することなく、本願の技術は他の異なる構成が可能であり、そのいくつかの詳細は他の様々な点において変形が可能である。したがって、図面および詳細な説明は、本質的に例示として考えられるべきものであって、限定として考えられるものではない。
【０００９】
本願の技術の特徴は、添付される請求項に示される。しかしながら、説明の便宜上、本願の技術のいくつかの実施形態は、以下の図面に示される。
以下に示す詳細な説明は、本願の技術の様々な構成の説明を意図し、本願の技術が実施される唯一の構成だけを表すことを意図しない。添付される図面は、本明細書に組み込まれ、詳細な説明の一部を構成する。詳細な説明は、本願の技術の十分な理解を提供するための具体的詳細を含む。しかしながら、本願の技術は本明細書に示される具体的詳細には限定されず、これら具体的詳細なしに実施されることは、当業者にとっては明白である。周知の事例においては、本願の技術の概念を曖昧にすることを避けるために、一定の構造および要素はブロック図で示される。
【００１０】
上述の通り、ウェブアプリケーションは、ワールドワイドウェブ上の情報リソースの取出、提示、およびトラバースを行うために用いられる。ページダウンロード時間は、ウェブサイトにアクセスしようとする際のユーザエクスペリエンスの重要な要素である。しかしながら、ページダウンロード時間のユーザ認知も同様に重要である。したがって、アプリケーションの実際の速度に代えて、または加えて、アプリケーションの認知速度を向上させることが望まれる。
【００１１】
本開示は、ダウンロードされるページが、実際にダウンロードされるよりも速く視覚的に完全な状態に見えるように、画像リソースのスケジューリングの最適化を提供する。一般的には、画像はリソースライブラリにおいて発見されるのと同じ順番でダウンロードされるようスケジューリングされているが、（たとえば、現在のビューポートにおいて）ユーザに最初に提示されている画像が最初にスケジューリングされていない場合もある。そうした画像がライブラリにおいて発見されるまで、ネットワークはビューポート（たとえば、ディスプレイの可視部分）外のリソース処理でビジー状態になる可能性があり、結果としてユーザエクスペリエンスが悪化する。本開示では、レイアウトの際に取得される不完全な可視性情報をキューに入れられた画像の順番を推測的に再決定するために利用することによって、認知されるページダウンロード性能を向上させる。
【００１２】
ウェブアプリケーション（たとえば、ブラウザ）を用いた作業中、ページダウンロード時間のユーザ認知は、実際のページダウンロード時間と同程度に重要であるか、またはそれよりもさらに重要である。アプリケーションの速度を最適化する重要な面は、完全なコンテンツがダウンロードされている間に何らかのコンテンツがユーザに提示されるように認知速度を向上させることである。
【００１３】
たとえば、コンピューティングデバイスのユーザはアプリケーションＡを用いて、１０秒で完全にダウンロードされて表示されるページにナビゲートし得る。一方、アプリケーションＢはページを完全にダウンロードするのに１２秒かかり得るものの、その５秒の時点で視覚的に完全でかつ対話可能に見えるページの何らかの表現を提示することができる。
【００１４】
上記２つのユーザエクスペリエンスにおいて、実際にはアプリケーションＢはページを完全にダウンロードするのにアプリケーションＡよりも長い時間がかかるが、ユーザ認知では、アプリケーションＢはアプリケーションＡよりも速い。ページが視覚的に完全であるとユーザが認知する前に節約されるわずかな時間によって、全体的なユーザエクスペリエンスを劇的に改善することができる。何億人ものユーザが用いるアプリケーションについて考えると、このことによって１日あたりに節約される時間は莫大なものとなる。
【００１５】
図１は、一実施形態によるページダウンロードイベント中のリソース最適化がウェブアプリケーション内で処理される一例のネットワーク環境を示す。ネットワーク環境１００は、コンピューティングデバイス１０１ａ〜１０１ｎと、サービスプロバイダデバイス１０９ａ〜１０９ｍとを備える。コンピューティングデバイス１０１ａ〜１０１ｎとサービスプロバイダデバイス１０９ａ〜１０９ｍとは、ネットワーク１０５を通じて互いに通信可能である。サービスプロバイダデバイス１０９ａ〜１０９ｍは、図示しない１以上のコンピューティングデバイスと１以上のコンピュータ可読記憶デバイスとを含み得る。
【００１６】
コンピューティングデバイス１０１ａ〜１０１ｎの各々は、様々な形態の処理デバイスを表し得る。例示的な処理デバイスは、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、セルラー式電話機、ネットワークアプライアンス、カメラ、スマートフォン、拡張汎用パケット無線システム（ＥＧＰＲＳ）モバイルフォン、メディアプレイヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、または、これらのデータ処理デバイスもしくはその他のデータ処理デバイスの任意の組み合わせを含み得る。コンピューティングデバイス１０１ａ〜１０１ｎとサービスプロバイダデバイス１０９ａ〜１０９ｍとは、それ以外のコンピューティングデバイス１０１ａ〜１０１ｎもしくはサービスプロバイダデバイス１０９ａ〜１０９ｍのうちいずれかにおいて実行もしくは記憶されたアプリケーションソフトウェアへのアクセスを提供されるか、該アプリケーションソフトウェアを受信し得る。
【００１７】
サービスプロバイダデバイス１０９ａ〜１０９ｍは、コンピューティングデバイス１０１ａ〜１０１ｎにコンテンツを提供するためのプロセッサ、メモリ、および通信能力を有する任意のシステムまたはデバイスであり得る。いくつかの態様例では、サービスプロバイダデバイス１０９ａ〜１０９ｍは、１つのコンピューティングデバイス（たとえば、コンピュータサーバ）であり得る。他の実施形態では、サービスプロバイダデバイス１０９ａ〜１０９ｍは、協働してサーバコンピュータのアクション（たとえば、クラウドコンピューティング）を実行する２以上のコンピューティングデバイスを表し得る。さらに、サービスプロバイダデバイス１０９ａ〜１０９ｍは、様々な形態のサーバを表してもよく、ウェブサーバ、アプリケーションサーバ、プロキシサーバ、ネットワークサーバ、またはサーバファームを含むが、これらに限定されない。
【００１８】
いくつかの態様では、コンピューティングデバイス１０１ａ〜１０１ｎは、図示しない通信インターフェースを通じて無線通信してもよい。通信インターフェースは、必要に応じてデジタル信号処理回路を含み得る。通信インターフェースは、様々なモードまたはプロトコル（たとえば、グローバルシステムフォーモバイルコミュニケーション（ＧＳＭ（登録商標））ボイスコール、ショートメッセージサービス（ＳＭＳ）、拡張メッセージングサービス（ＥＭＳ）、あるいは、マルチメディアメッセージングサービス（ＭＭＳ）メッセージング、符号分割多元接続（ＣＤＭＡ）、パーソナルデジタルセルラー（ＰＤＣ）、ワイドバンド符号分割多元接続（ＷＣＤＭＡ（登録商標））、ＣＤＭＡ２０００、または、汎用パケット無線システム（ＧＰＲＳ）、他の形式またはプロトコル）で通信を提供し得る。たとえば通信は、図示しない無線周波数トランシーバを通じて生じ得る。さらに、狭域通信は、たとえばＢＬＵＥＴＯＯＴＨ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、または他のそうしたトランシーバが用いられて生じ得る。
【００１９】
いくつかの態様では、ネットワーク環境１００は、１以上のネットワーク（たとえば、ネットワーク１０５）に広がる分散型クライアント／サーバシステムであり得る。ネットワーク１０５は、大型のコンピュータネットワーク（たとえば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、セルラーネットワーク、または、任意の数のモバイルクライアント、固定クライアント、およびサーバを接続するそれらの組み合わせ）であり得る。さらに、ネットワーク１０５は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層型ネットワークなどを含むネットワークトポロジーのうちの任意の１以上を含むが、これらに限定されない。いくつかの態様では、各クライアント（たとえば、コンピューティングデバイス１０１ａ〜１０１ｎ）とサービスプロバイダデバイス１０９ａ〜１０９ｍとの間の通信は、バーチャルプライベートネットワーク（ＶＰＮ）、セキュアシェル（ＳＳＨ）トンネル、または他のセキュアネットワーク接続を介して生じ得る。いくつかの態様では、ネットワーク１０５はさらに、コーポレートネットワーク（たとえばイントラネット）と、１以上の無線アクセスポイントとを含み得る。
【００２０】
複数の態様例では、コンピューティングデバイス１０１ａ〜１０１ｎのうちのいずれかにおけるユーザは、そのコンピューティングデバイス上のアプリケーション１１１а〜１１１ｎ（たとえば、ウェブブラウザ）内のユーザ入力を提供し得る。このユーザ入力は、どのコンテンツをダウンロードするかを指定し得る。たとえば、ユーザ入力は、サービスプロバイダデバイス１０９ａ〜１０９ｍからどのウェブコンテンツがダウンロードされるかを指定するウェブサイトに関連付けられているユニフォームリソースロケータ（ＵＲＬ）アドレスであり得る。さらにユーザは、入力を行うことで、ユーザがコンピューティングデバイス１０１ａ〜１０１ｎのユーザインターフェース（ＵＩ）１０７ａ〜０１７а上で、ウェブサイトのどの部分をユーザが見たいか指定し得る。そのような態様例では、コンピューティングデバイス１０１ａ〜１０１ｎの各々は、リソース最適化プラットフォーム１０３ａ〜１０３ｎを含み得る。リソース最適化プラットフォーム１０３ａ〜１０３ｎは、ユーザ入力に基づいてダウンロードされたコンテンツのうちの可視であるサブセットを選択し、ＵＩ１０７ａ〜１０７ｎを介してユーザに提供し得る。
【００２１】
図２は、一実施形態によるリソース最適化プラットフォームを示す概略図である。リソース最適化プラットフォーム１０３は、図１のリソース最適化プラットフォーム１０３ａ〜１０３ｎに類似し得る。図２に示すように、リソース最適化プラットフォーム１０３は、入力処理モジュール２１０、優先度モジュール２０３、コンテンツ選択モジュール２０５、提示モジュール２０７、およびデータストア２０９を備え得る。
【００２２】
本明細書で用いられている通り、モジュールは、たとえば任意のアセンブリおよび／または動作可能に結合された複数の電気部品の集合であってもよく、たとえばメモリ、プロセッサ、電気式トレース、光コネクタ、ソフトウェア（ハードウェア内で実行する、または、実行される）などを含み得る。さらに、モジュールは、後述されるように、そのモジュールに関連付けられている１以上の特定の機能を実行することが可能である。
【００２３】
リソース最適化プラットフォーム１０３は、コンピューティングデバイス１０１ａ〜１０１ｎ上でのページダウンロードの向上された認知を提供し得る。いくつかの例では、入力処理モジュール２０１は、ウェブエレメントのセットに関連付けられているレイアウトデータを受信し得る。また、入力処理モジュール２０１は、複数のウェブエレメントの各々に関連付けられている可視性データを受信し得る。可視性データは、アプリケーション１１１ａ〜１１７ａから受信され得る。アプリケーション１１１ａ〜１１７ａは、たとえばウェブブラウザであり得る。しかしながら、本願の技術は、ウェブコンテンツまたはリソース（たとえば、ウェブサイト）にアクセスするための他のアプリケーション（たとえば、モバイルデバイス上のネイティブアプリケーション）にも適用可能である。いくつかの例では、優先度モジュール２０３は、受信されたレイアウトデータと受信された可視性データとに基づいて複数のウェブエレメントの各ウェブエレメントについての優先度を定義する。いくつかの例では、コンテンツ選択モジュール２０５は、定義された優先度に基づいて複数のウェブエレメントからウェブエレメントのサブセットを選択し得る。いくつかの例では、提示モジュール２０７は、アプリケーション内の表示用に選択されたウェブエレメントのサブセットを提示し得る。たとえば、提示モジュール２０７は、アプリケーション１１１ａ〜１１７ｎに対してウェブエレメントのサブセットを送信し得る。
【００２４】
図３は、一実施形態によるリサーチ最適化を提供するためのプロセスを示すフローチャートである。図３は図１および図２を参照して説明されるが、本願の技術はそのようなものに限定されず、他のコンピューティングデバイスやシステムにも適用可能である。ブロック３０１において、入力処理モジュール２０１は、アプリケーション内に提示するためのウェブエレメント（たとえば、画像、テキスト、または他のウェブコンテンツ）のセットに関連付けられているレイアウトデータを受信し得る。レイアウトデータは、ウェブエレメントのセットの各エレメントに位置を関連付け得る。レイアウトデータはたとえば、ハイパーテキストマークアップランゲージ（ＨＴＭＬ）ファイル内でサービスプロバイダデバイス１０９ａ〜１０９ｍによって提供され得る。ＨＴＭＬファイルは、ネットワーク１０５を通じてサービスプロバイダデバイス１０９ａ〜１０９ｍからアプリケーション１１１ａ〜１１１ｎによってダウンロードされてもよく、コンピューティングデバイス１０１ａ〜１０１ｎ上のローカルストレージ（図１には図示せず）に記憶されてもよい。図１のアプリケーション１１１ａ〜１１１ｎは、ＨＴＭＬファイルを処理し、そのＨＴＭＬファイルからレイアウトデータを取得してもよい。アプリケーション１１１ａ〜１１７ｎはその後、取得したレイアウトデータをリソース最適化プラットフォーム１０３ａ〜１０３ｎに対して送信し得る。いくつかの例では、リソース最適化プラットフォーム１０３ａ〜１０３ｎは、コンピューティングデバイス１０１ａ〜１０１ｎ上のＨＴＭＬファイルに直接的にアクセスし、レイアウトデータを取得し得る。入力処理モジュール２０１は、レイアウトデータを受信し、データストア２０９にそのレイアウトデータを記憶し得る。
【００２５】
ブロック３０３において、リソース最適化プラットフォーム１０３は、複数のウェブエレメントの各々に関連付けられている可視性データを受信し得る。可視性データは、アプリケーション１１１ａ〜１１１ｎから受信され得る。可視性データは、レイアウトの観察領域（ｖｉｅｗｉｎｇ  ｒｅｇｉｏｎ）に基づいて、レイアウトデータから、コンピューティングデバイス１０１ａ〜１０１ｎのＵＩ１０７ａ〜１０７ｎ上で可視であるウェブエレメントのサブセットを示し得る。入力処理モジュール２０１は、アプリケーション１１１ａ〜１１１ｎから可視性データを受信し、データストア２０９にその可視性データを記憶し得る。
【００２６】
ブロック３０５において、優先度モジュール２０３は、受信されたレイアウトデータと受信された可視性データとに基づいて、複数のウェブエレメントから各ウェブエレメントについての優先度を定義する。たとえば、優先度モジュール２０３は、レイアウト内のウェブエレメントに関連付けられている位置とＵＩ１０７ａ〜１０７ｎ上のレイアウトの観察領域との間の距離に基づいて、ウェブエレメントについての優先度を定義し得る。優先度モジュール２０３は、複数のウェブエレメントについて定義された優先度をデータストア２０９に記憶し得る。
【００２７】
ブロック３０７において、コンテンツ選択モジュール２０５は、定義された優先度に基づいて複数のウェブエレメントからウェブエレメントのサブセットを選択し得る。たとえば、ウェブエレメントは、そのウェブエレメントとＵＩ１０７ａ〜１０７ｎの観察領域との間の距離が事前に定義された閾値よりも短い場合、コンテンツ選択モジュール２０５によって選択され得る。観察領域からの距離が事前に定義された閾値よりも長い場合、残りのウェブエレメントは選択され得ない。選択されたウェブエレメントのサブセットは、データストア２０９に記憶され得る。
【００２８】
ブロック３０９において、提示モジュール２０７は、アプリケーション内の表示用に選択されたウェブエレメントのサブセットを提示し得る。たとえば、提示モジュール２０７は、アプリケーション１１１ａ〜１１１ｎに対してウェブエレメントのサブセットを送信し得る。アプリケーション１１１ａ〜１１１ｎはその後、ウェブエレメントのサブセットに関連付けられているコンテンツをコンピューティングデバイス１０１ａ〜１０１ｎのＵＩ１０７ａ〜１０７ｎ上に表示し得る。いくつかの例では、アプリケーション１１１ａ〜１１１ｎは、ウェブエレメントのサブセットを事前に定義されたダウンロードスケジュールに基づいて、そのウェブエレメントのサブセットをＵＩ１０７ａ〜１０７ｎ上に提示するよりも前にダウンロードし得る。
【００２９】
図４は、ウェブアプリケーションに関連付けられているページダウンロードイベント中のリソース最適化の一例を示すブロック図である。図４は図１および図２を参照して説明されるが、本願の技術はそのようなものに限定されず、他のコンピューティングデバイスやシステムにも適用可能である。いくつかの例では、図２のリソース最適化プラットフォーム１０３は、コンピューティングデバイス１０１ａ〜１０１ｎのＵＩ１０７ａ〜１０７ｎ上に表示されるページが視覚的に完全な状態により速く見えるように、ウェブエレメント（たとえば、画像リソース）のスケジューリングを最適化する。従来のシステムにおいて、画像はＨＴＭＬファイル内で発見されるのと同様の順番でダウンロードされるようスケジューリングされる場合がある。たとえば、ＨＴＭＬファイルに定義された通りのレイアウト１０４は、ウェブエレメント４０３ａ〜４０３ｆを含み得る。ウェブエレメント４０３ａ〜４０３ｆの各々は、レイアウト４０１に対しての位置を有し得る。たとえば、ウェブエレメント４０３ａ〜４０３ｆの位置は、軸４０７および４０９によって表される２次元領域に対しての各ウェブエレメントに関連付けられる座標によって定義され得る。しかしながら、ウェブエレメント４０３ａ〜４０３ｆがレイアウト４０１に関連付けられるＨＴＭＬファイル内に見える順番は、ウェブエレメントが観察領域（たとえば、ビューポート）４０５内に見えるのと同一の順番であるとは限らない。たとえば、アプリケーション１１１ａ〜１１１ｎがレイアウト４０１に関連付けられているＨＴＭＬファイル内でウェブエレメント４０３ｂを発見するまで、ネットワーク１０５は、観察領域４０５の外部におけるウェブエレメントなどのリソース（たとえば、ウェブエレメント４０３ｆ）をダウンロードしている可能性がある。そういった例では、コンピューティングデバイス１０１ａ〜１０１ｎのユーザは、ウェブエレメント４０３ｂをダウンロードする際に遅延を経験し得る。
【００３０】
いくつかの例では、リソース最適化プラットフォーム１０３は、たとえば、最初のダウンロードの順番とは異なる可能性があるが、ウェブエレメント４０３ｆよりも前にウェブエレメント４０３ｂをダウンロードすることによって、キューに入れられたウェブエレメントの順番を推測的に再決定するためにレイアウトの際に取得される不完全な可視性情報を利用する。優先度モジュール２０３は、各ウェブエレメント４０３ａ〜４０３ｆの優先度をウェブエレメントについての得点として実装し得る。得点は、ウェブエレメントと観察領域４０５との間の距離、観察領域４０５内で利用可能である表示スペース、ウェブエレメントの寸法などの要素に基づいて調整される。その後、ウェブエレメント４０３ａ〜４０３ｆのサブセットを選択する際に（図３のブロック３０７に見られるように）、コンテンツ選択モジュール２０５は、ウェブエレメント４０３ａ〜４０３ｆについての優先度の得点を比較し、最も高い得点を有するウェブエレメントをアプリケーション１１１ａ〜１１１ｎ内に提示されるものとして選択し得る。たとえば、事前に定義された閾値を満たすウェブエレメントが表示され得る。これに代えて、またはこれに加えて、ウェブエレメントは得点に基づいてランクが付けられる可能性があり、それらのウェブエレメントはランク付けに基づいて表示される（たとえば、所定数のウェブエレメントが最初に表示される）。
【００３１】
優先度モジュール２０３は、最初に既定の優先度をウェブエレメント４０３ａ〜４０３ｆの全てに関連付けてもよく、レイアウトデータが利用可能になった時点で、可視になり得る任意のウェブエレメントについての該優先度を高めてもよい。これは、ウェブエレメントと観察領域４０５との間の距離に基づいて優先順位を付けることによって、さらに改良され得る。たとえば、ウェブエレメント４０３ａ〜４０３ｆの中で、ウェブエレメント４０３ａは観察領域４０５から最も近い距離と関連付けられてもよく、ウェブエレメント４０３ｆは観察領域４０５から最も遠い距離を有してもよい。さらに、優先度モジュール２０３は、ウェブエレメントに関連付けられている表示スペースの推定量、ウェブエレメントに関連付けられている寸法、またはウェブエレメントに関連付けられているフォーマットに基づいて、ウェブエレメント４０３ａ〜４０３ｆの優先順位を付けてもよい。
【００３２】
いくつかの例では、レイアウト４０１は、ダウンロードが完了するまでアプリケーション１１１ａ〜１１１ｎによって複数回更新される。そのような例では、リソース最適化プラットフォーム１０３は、図３に関して説明されたような動作を各レイアウト４０１に対して実行してもよく、レイアウトと各レイアウトに関連付けられている可視性とに基づいてウェブエレメントをダウンロードしてもよい。たとえば、レイアウトデータ４０１は、ハイパーテキストマークアップランゲージ（ＨＴＭＬ）に基づいて生成されるドキュメントオブジェクトモデル（ＤＯＭ）ツリーに対応し得る。そのような例では、ダウンロードが完了するまで、ＤＯＭツリーは各レイアウトの更新に伴って修正される。ユーザがスクロールを上または下に行って観察領域４０５が更新されるとき、または、アプリケーション１１１ａ〜１１１ｎによって新しいレイアウトが提供されるとき、レイアウト４０１は更新され得る。
【００３３】
いくつかの例では、リソース最適化プラットフォーム１０３は、様々な技術を用いてウェブエレメント４０３ａ〜４０３ｆと観察領域４０５との間の距離を決定し得る。たとえば、リソース最適化プラットフォーム１０３は、ポイントテストを用いて、ウェブエレメント４０３ａ〜４０３ｆに関連付けられている位置が観察領域４０５の境界の内側にあるのか、境界からの距離の分だけ観察領域４０５の境界の外側にあるのかどうかを決定し得る。ポイントテストはたとえば、ウェブエレメント４０３ａ〜４０３ｆに対応する位置に関連付けられている１以上のポイントが、観察領域４０５の全てのエレメント（たとえば、縁部）と同じ側に位置するのか、エレメントとは異なる側に位置するのかを確認することによって、クロス積の関数を用いて実装される。
【００３４】
いくつかの例では、リソース最適化プラットフォーム１０３はウェブエレメントの優先度を決定するために確率解析を用い得る。たとえば、優先度モジュールは、複数のレイアウトについてのリソース最適化と関連付けられているデータ履歴をデータストア２０９に記憶し、データを分析し、分析結果に基づいて優先度を決定し得る。
【００３５】
いくつかの例において、リソース最適化プラットフォーム１０３は、ダウンロードされたウェブエレメント４０３ａ〜４０３ｆのサブセットをデータストア２０９に記憶し得る。リソース最適化プラットフォーム１０３は、アプリケーション内にウェブエレメント４０３ａ〜４０３ｆのうちの１以上を表示するためのリクエストを受信し得る。たとえば、リソース最適化プラットフォーム１０３は、アプリケーション１１１ａ〜１１１ｎからリクエストを受信し得る。リクエストを受信すると、コンテンツ選択モジュール２０５は、ダウンロードされたサブセットを記憶することとリクエストを受信することとの間の経過時間が所定の期間内であるか否かを決定し得る。経過時間が所定の期間内である場合、提示モジュール２０７は、記憶されたサブセットをＵＩ１０７ａ〜１０７ｎ上に表示されるものとしてアプリケーション１１１ａ〜１１１ｎに対して提示し得る。一方、経過時間が所定の期間内でない場合（たとえば、ダウンロードされたサブセットが保存されてから長時間経過した場合）、図３に関して上記の通り説明されたように、優先度モジュール２０３は各ウェブエレメント４０３ａ〜４０３ｆについての更新された優先度を定義してもよく、コンテンツ選択モジュール２０５は定義された優先度に基づいてウェブエレメントの新しいサブセットを選択してもよい。このように、ダウンロードプロセスを繰り返す必要なく、サブセットがダウンロードされた後の期間、保存されたダウンロードされたサブセットを再び用いることができる。これによって、ダウンロード時間を減少させることができ、アプリケーション１１１ａ〜１１１ｎ内の観察領域４０５における表示用のウェブエレメントのサブセットに関連付けられているデータ提示の速度を増加させることができる。
【００３６】
図５は、本願の技術のいくつかの実施形態が実装される一例の電子システム５００を概念的に示す。電子システム５００は、コンピュータ（たとえば、電話機、ＰＤＡ）であってもよいし、他の任意の電子デバイスであってもよい。このような電子システムは、様々な種類のコンピュータ可読媒体と、他の様々な種類のコンピュータ可読媒体に関するインターフェースとを含む。電子システム５００は、バス５０８、１または複数の処理ユニット５１２、システムメモリ５０４、読出専用メモリ（ＲＯＭ）５１０、パーマネントストレージデバイス５０２、入力デバイスインターフェース５１４、出力デバイスインターフェース５０６、およびネットワークインターフェース５１６を含む。
【００３７】
バス５０８は、電子システム５００の多数の内部デバイスを通信可能に接続する全てのシステムと、周辺機器と、チップセットバスとを集合的に表す。たとえば、バス５００は、１または複数の処理ユニット５１２を、ＲＯＭ５１０と、システムメモリ５０４と、パーマネントストレージデバイス５０２とに通信可能に接続する。
【００３８】
１または複数の処理ユニット５１２は、本開示のプロセスを実行するために、これらの様々なメモリユニットから実行対象の命令と処理対象のデータとを取り出す。１または複数の処理ユニットは、異なる実施形態において、単一のプロセッサであってもよいし、マルチコアプロセッサであってもよい。
【００３９】
ＲＯＭ５１０は、１または複数の処理ユニット５１２と電子システムの他のモジュールとによって必要とされる静的データと命令とを記憶する。一方、パーマネントストレージデバイス５０２は、読出／書込メモリデバイスである。このデバイスは、電子システム５００がオフであるときでも命令とデータとを記憶する不揮発性メモリユニットである。本開示のいくつかの実施形態では、パーマネントストレージデバイス５０２としてマスストレージデバイス（たとえば、磁気または光ディスク、および、対応するディスクドライブ）が用いられる。
【００４０】
他の実施形態では、パーマネントストレージデバイス５０２としてリムーバブルストレージデバイス（たとえば、フロッピー（登録商標）ディスク、フラッシュドライブ、対応するディスクドライブ）が用いられる。システムメモリ５０４は、パーマネントストレージデバイス５０２と同様に、読出／書込メモリデバイスである。しかしながら、システムメモリ５０４は、ストレージデバイス５０２とは異なり、揮発性読出／書込メモリ（たとえば、ランダムアクセスメモリ）である。システムメモリ５０４は、ランタイムにおいてプロセッサが必要とする命令とデータとのいくつかを記憶する。いくつかの実施形態においては、本開示のプロセスは、システムメモリ５０４、パーマネントストレージデバイス５０２、またはＲＯＭ５１０に記憶される。たとえば、様々なメモリユニットは、いくつかの実施形態に従ってウェブエレメントを提示するための命令を含む。１または複数の処理ユニット５１２は、いくつかの実施形態のプロセスを実行するために、これらの様々なメモリユニットから実行予定の命令と処理予定のデータとを取り出す。
【００４１】
さらにバス５０８は、入力デバイスインターフェース５１４と出力デバイスインターフェース５０６とに接続する。入力デバイスインターフェース５１４によって、ユーザが情報を通信し、電子システムに対するコマンドを選択することが可能になる。入力デバイスインターフェース５１４とともに用いられる入力デバイスは、たとえば、英数字キーボード、ポインティングデバイス（「カーソルコントロールデバイス」とも称される）を含む。出力デバイスインターフェース５０６によって、たとえば、電子システム５００によって生成された画像の表示が可能になる。出力デバイスインターフェース５０６とともに用いられる出力デバイスは、たとえば、プリンタ、ディスプレイデバイス（ブラウン管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）など）を含む。いくつかの実施形態は、入力および出力デバイスの両方として機能するタッチスクリーンなどのデバイスを含む。
【００４２】
最後に、図５に示すように、バス５０８はさらに電子システム５００を、ネットワークインターフェース５１６を介して図示しないネットワークに接続する。このように、コンピュータは、コンピュータのネットワーク（たとえば、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、イントラネット）の一部、または、複数のネットワークのうちの１つのネットワーク（たとえば、インターネット）であってもよい。任意の、または、すべての電子システム５００の要素が、本開示とともに用いられる。
【００４３】
上述のフィーチャおよびアプリケーションのうち多くは、コンピュータ可読記憶媒体（コンピュータ可読媒体とも称される）上に記録される一組の命令として記述されるソフトウェアプロセスとして実装される。これらの命令が１以上の処理ユニット（たとえば、１以上のプロセッサ、プロセッサコア、他の処理ユニット）によって実行されるとき、これらの命令によって、処理ユニットは当該命令に示されるアクションを行う。コンピュータ可読媒体の例として、ＣＤ−ＲＯＭ、フラッシュドライブ、ＲＡＭチップ、ハードドライブ、ＥＰＲＯＭが含まれるが、コンピュータ可読媒体の例はこれらに限定されない。コンピュータ可読媒体は、無線または有線接続で送出される搬送波および電子信号を含まない。
【００４４】
本明細書においては、用語「ソフトウェア」は、読出専用メモリ内のファームウェア、または、プロセッサによって処理を行うためのメモリに読み込まれる磁気ストレージを含むことが意図されている。また、いくつかの実施形態では、本開示の複数のソフトウェア態様は、区別がなされる本開示のソフトウェア態様でありつつ、より大きなプログラムの下位区分として実装される。いくつかの実施形態では、複数のソフトウェア態様は別個のプログラムとして実装される。そして、本明細書に記載されるソフトウェア態様を同時に実装する別個のプログラムは、いずれも本願の技術の範囲内にある。いくつかの実施形態では、ソフトウェアプログラムは、インストールされて１以上の電子システムを操作する際、該ソフトウェアプログラムの操作を実行する１以上の特定の機械の実装を規定する。
【００４５】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも称される）は、任意の形式のプログラミング言語（たとえば、コンパイル済みまたはインタプリット済み言語、宣言型言語または手続型言語）で書かれてもよく、どのような形式で配置されてもよい（たとえば、スタンドアロンプログラム、モジュール、コンポーネント、サブルーチン、オブジェクト、コンピューティング環境においての使用が相応しい他のユニットを含む）。コンピュータプログラムは、ファイルシステム内のファイルと対応してもよいが、これに限定されない。プログラムは、他のプログラムやデータを保持するファイルの一部分（マークアップ言語ドキュメントに記憶される１以上のスクリプト）、対象プログラム専用の１つのファイル、または複数の調整ファイル（たとえば、１以上のモジュール、サブプログラム、コードを部分的に記憶するファイル）に記憶される。コンピュータプログラムは、１つのサイトに位置するか、もしくは複数のサイトに広がり、通信ネットワークによって相互接続される１つのコンピュータまたは複数のコンピュータ上で実行されるように配置される。
【００４６】
これら上述の機能は、デジタル電子回路、コンピュータソフトウェア、ファームウェア、またはハードウェアにより実装されることができる。上述の技術は、１以上のコンピュータプログラム製品を用いて実装される。プログラマブルプロセッサおよびコンピュータは、モバイルデバイスに含まれてもよいし、モバイルデバイスとしてパッケージされてもよい。プロセスおよびロジックフローは、１以上のプログラマブルプロセッサと１以上のプログラマブル論理回路とによって行われる。汎用および専用のデバイスと、ストレージデバイスとは、通信ネットワークを通じて相互接続される。
【００４７】
いくつかの実施形態は電子部品（たとえば、機械可読またはコンピュータ可読媒体（あるいは、コンピュータ可読記憶媒体、機械可読媒体、機械可読記憶媒体とも称される）におけるコンピュータプログラムの命令を記憶するマイクロプロセッサ、ストレージ、メモリ）を含む。このようなコンピュータ可読媒体のいくつかの例には、ＲＡＭ、ＲＯＭ、読出専用コンパクトディスク（ＣＤ−ＲＯＭ）、記録可能コンパクトディスク（ＣＤ−Ｒ）、書換可能コンパクトディスク（ＣＤ−ＲＷ）、読出専用デジタル多用途ディスク（たとえば、ＤＶＤ−ＲＯＭ、２層ＤＶＤ−ＲＯＭ）、種々の記録可能／書換可能ＤＶＤ（たとえば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ）、フラッシュメモリ（たとえば、ＳＤカード、ミニＳＤカード、マイクロＳＤカード）、磁気またはソリッドステートハードドライブ、読出専用および記録可能Ｂｌｕ−ｒａｙ（登録商標）ディスク、超高密度光ディスク、他の任意の光または磁気メディア、フロッピーディスクが含まれる。コンピュータ可読媒体は、少なくとも１つの処理ユニットにより実行可能であって、様々な操作を行うための複数組の命令を含むコンピュータプログラムを記憶できる。コンピュータプログラムまたはコンピュータコードの例には、たとえばコンパイラによって生成される機械コードと、インタプリタを用いてコンピュータ、電子部品、またはマイクロプロセッサによって実行される、より高レベルのコードを含むファイルと、が含まれる。
【００４８】
上記議論はソフトウェアを実行するマイクロプロセッサまたはマルチコアプロセッサを指しているが、いくつかの実施形態は１以上の集積回路（たとえば、特定用途向け集積回路（ＡＳＩＣ）またはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ））によって実行される。いくつかの実施形態では、このような集積回路は回路上自体に記憶される命令を実行する。
【００４９】
本明細書および本願の任意の請求項で用いられる通り、用語「コンピュータ」、「サーバ」、「プロセッサ」および「メモリ」はすべて、電子または他の技術分野のデバイスのことを指す。これらの用語から、人または人の集団は除外される。本明細書上では、用語「表示」または「表示する」は、電子デバイス上での表示を意味する。本明細書および本願の任意の請求項で用いられる通り、用語「コンピュータ可読媒体」「複数のコンピュータ可読媒体」は全体として、コンピュータによって読み込まれる形式の情報を記憶する有形の物理的な物体に限定される。これらの用語から、無線信号、有線ダウンロード信号、および他の任意の一時的な信号は除外される。
【００５０】
ユーザとの対話を提供するため、本明細書に記載される主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス（たとえば、ＣＲＴ（ブラウン管）またはＬＣＤ（液晶ディスプレイ）モニタ）と、キーボードと、ユーザがコンピュータに対して入力を提供できるポインティングデバイス（たとえば、マウスまたはトラックボール）と、を有するコンピュータ上で実施可能である。他の種類のデバイスも同様に、ユーザとの対話を提供するために用いられる。たとえば、ユーザに対して提供されるフィードバックは、任意の形式の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、触覚フィードバックなど）であってよいし、ユーザからの入力は任意の形式（音響、音声または触覚入力を含む）で受信されてよい。さらに、ユーザによって用いられるデバイスに対してドキュメントを送信し、該デバイスからドキュメントを受信することによって（たとえば、ユーザのクライアントデバイス上でウェブブラウザに対して、該ウェブブラウザから受信したリクエストに応じてウェブページを送信することによって）、コンピュータはユーザとの対話が可能になる。
【００５１】
本明細書に記載される実施形態の主題は、バックエンドコンポーネント（たとえば、データサーバ）、ミドルウェアコンポーネント（たとえば、アプリケーションサーバ）、フロントエンドコンポーネント（たとえば、ユーザの本明細書に記載される主題の実施形態との対話を可能にするグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ）、または、このようなバックエンド、ミドルウェア、およびフロントエンドコンポーネントのうち１以上の任意の組み合わせを含むコンピューティングシステムにおいて実施可能である。該システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体（たとえば、通信ネットワーク）によって相互接続される。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、インターネットワーク（たとえば、インターネット）、および、ピアツーピアネットワーク（たとえば、アドホックピアツーピアネットワーク）が含まれる。
【００５２】
コンピューティングシステムには、クライアントおよびサーバが含まれる。クライアントおよびサーバは一般的には互いにリモートであり、典型的には通信ネットワークを介して対話する。クライアントおよびサーバの関係が生じるのは、各コンピュータ上で起動しており、互いにクライアント／サーバ関係を有するコンピュータプログラムを介してである。いくつかの実施形態においては、サーバがデータ（たとえば、ＨＴＭＬページ）をクライアントデバイスに対して（たとえば、該クライアントデバイスとの対話を行うユーザに対してデータを表示する目的、および、該ユーザからユーザ入力を受信する目的で）送信する。クライアントデバイスにおいて生成されたデータ（たとえば、ユーザ対話の結果）は、サーバにおいてクライアントデバイスから受信される。
【００５３】
開示されるプロセスにおける工程の任意の特定の順番または階層は例示的アプローチの実例である、と理解される。デザインの嗜好に基づいて、プロセスにおける工程の特定の順番または階層は再配置されてもよい、図示される全ての工程が実行されてもよい、と理解される。いくつかの工程は同時に実行されてもよい。たとえば、ある状況においては、マルチタスキングおよびパラレルプロセッシングは効果的である。さらに、上述の実施形態における様々なシステムコンポーネントの分離については、全ての実施形態内においてそのような分離が必須であるとして理解されるべきではない。上述のプログラムコンポーネントおよびシステムは一般的に１つのソフトウェア製品に統合される、または、複数のソフトウェア製品にパッケージされる、と理解されるべきである。
【００５４】
上記記載は、どの当業者でも本明細書に記載されている様々な態様を実施できるようにするために提供される。これらの態様に対する様々な修正形態は当業者によって容易に識別され、本明細書に規定される包括的な原則は他の態様にも適用される。従って、本請求項は、本明細書に示される態様に限定される意図はなく、請求項の文言と一致する全ての範囲が付与され、単数である要素への参照は「１および１のみ」であることを（そのように特定的に記述されている場合を除いて）意味するのではなく、「１以上」を意味する。用語「いくつか」は、（特定的に記述する場合を除いて）１以上を指す。男性の指示代名詞（たとえば、「彼の」）は、女性および中性（たとえば、「彼女の」「その」）を含み、その逆も同様である。見出しおよび小見出しは、それらがある場合にしても、便宜上用いられているだけであって、本開示を限定するものではない。
【００５５】
たとえば「態様」という語句は、その態様が本願の技術に必要不可欠であること、その態様が本願の技術の全ての構成に適用されること、を暗示しない。態様に関する開示は、全ての構成または１以上の構成に適用される。たとえば態様という語句は、１以上の態様を指してもよいし、その逆も同様である。たとえば「構成」という語句は、そのような構成が本願の技術に必要不可欠であること、その態様が本願の技術の全ての構成に適用されること、を暗示しない。態様に関する開示は、全ての構成または１以上の構成に適用される。たとえば構成という語句は、１以上の構成を指してもよいし、その逆も同様である。
【図１】
0006388962.tif 000002
【図２】
0006388962.tif 000003
【図３】
0006388962.tif 000004
【図４】
0006388962.tif 000005
【図５】
0006388962.tif 000006