(57)【要約】  ブラウザのウェブページ処理状態を、ブラウザを用いたウェブページの処理中に、待ち行列中の処理タスクに関連する予め定められた処理イベントに基づいて状態判定器におけるパラメータを設定することにより、判定する。状態判定器は、予め定められた１つ以上の基準に従い、上記パラメータに基づいて、上記ウェブページ処理状態を判定する。
2017501512.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
状態判定器（ＳＤ）における１つ以上のパラメータ（Ｐ１...Ｐｎ）を設定するステップを含み、前記１つ以上のパラメータは各々、待ち行列中の１つ以上の処理タスク（ＱＰＴ）に関連する予め定められた１つ以上の処理イベントに少なくとも一部基づいており、
予め定められた１つ以上の基準に従い、前記１つ以上のパラメータ（Ｐ１...Ｐｎ）に少なくとも一部基づいて、ブラウザ（ＷＢ）のウェブページ処理状態（ＷＰＰＳ）を判定するステップを含む、方法。
【請求項２】
前記方法は、前記予め定められた１つ以上の処理イベントを追跡するステップを含む、請求項１に記載の方法。
【請求項３】
前記予め定められた１つ以上の処理イベントを追跡する前記ステップは、前記状態判定器における前記１つ以上のパラメータを設定する前記ステップが、関連するオブジェクト情報とともに予め定められた処理イベントの発生に従って、実行されることを含む、請求項１に記載の方法。
【請求項４】
前記待ち行列中の１つ以上の処理タスク（ＱＰＴ）は、
１つ以上のタイマタスク、
１つ以上の非同期ＸＭＬ  Ｈｔｔｐ要求タスク、
１つ以上のスケジュールされたリダイレクトタスク、
１つ以上のカスケードスタイルシート遷移タスク、
１つ以上の待ち行列中スクリプトタスク、および
１つ以上のディファードイベントタスク、
のうちの１つ以上を含む、請求項１に記載の方法。
【請求項５】
ウェブロボット（ＷＲ）を前記ウェブページ処理状態（ＷＰＰＳ）に通信可能に結合するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記待ち行列中の１つ以上の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上の遅延を減じるステップをさらに含み、
前記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて前記ウェブページ処理状態（ＷＰＰＳ）を判定する前記ステップは、前記パラメータのうちの１つ以上によって表わされる待ち行列中の処理タスクに関連する予め定められた処理イベントのウェブページ処理状態との関連性を考慮することを含む、請求項１に記載の方法。
【請求項７】
前記予め定められた１つ以上の基準のうちの少なくとも１つの基準は、前記１つ以上のパラメータのうちの１つ以上の評価に使用し得る、請求項１に記載の方法。
【請求項８】
前記予め定められた１つ以上の基準は、
１つ以上のさらに他の待ち行列中のタスクの存在、
しきい値を超える、前記さらに他の待ち行列中のタスクの数、
しきい値を超える、タイマイベントのチェーン、ＸＭＬ  Ｈｔｔｐ要求のチェーン、またはその他の非同期タスクのチェーンの長さ、
タイムアウト値を超える、ＸＭＬ  Ｈｔｔｐ要求のディスパッチ以来の非応答の期間、
しきい値を超える、ウェブページのリダイレクトまたはリフレッシュについてスケジュールされた時間、
しきい値を超える、インターバルタイマの繰返しの数、および、
しきい値を超える、タイマイベントに対して設定された時間、
のうちの１つ以上を含む、請求項１に記載の方法。
【請求項９】
システムであって、
ブラウザ（ＷＢ）を用いたウェブページの処理中に待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、
前記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）と、
予め定められた１つ以上の基準と、
前記１つ以上の基準のうちの少なくとも１つに従い、前記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、前記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含む、システム。
【請求項１０】
前記ブラウザ（ＷＢ）は、前記待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントを追跡するように構成されたインストルメンテーションを含む、請求項９に記載のシステム。
【請求項１１】
前記パラメータは、関連するオブジェクト情報とともに前記待ち行列中の処理タスクに関連する予め定められた処理イベントの発生と関連付けられている、請求項９に記載のシステム。
【請求項１２】
前記待ち行列中の処理タスク（ＱＰＴ）は、
１つ以上のタイマタスク、
１つ以上の非同期ＸＭＬ  Ｈｔｔｐ要求タスク、
１つ以上のスケジュールされたリダイレクトタスク、
１つ以上のカスケードスタイルシート遷移タスク、
１つ以上の待ち行列中スクリプトタスク、および
１つ以上のディファードイベントタスク、
のうちの１つ以上のタスクを含む、請求項９に記載のシステム。
【請求項１３】
前記ウェブページ処理状態（ＷＰＰＳ）に通信可能に結合されたウェブロボット（ＷＲ）をさらに含む、請求項９に記載のシステム。
【請求項１４】
前記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるように構成された遅延変換器（ＤＣ）をさらに含む、請求項９に記載のシステム。
【請求項１５】
方法であって、
ブラウザ（ＷＢ）に対してウェブページを処理することを要求するステップを含み、前記要求はウェブロボット（ＷＲ）を用いて出され、
前記ウェブページの前記ブラウザによる処理中に確立された待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントに基づいて、状態判定器（ＳＤ）におけるパラメータ（Ｐ１...Ｐｎ）を設定するステップと、
予め定められた１つ以上の基準に従い、前記パラメータ（Ｐ１...Ｐｎ）に基づいて、ウェブページ処理状態（ＷＰＰＳ）を判定するステップとを含み、前記判定するステップは、少なくとも部分的に前記状態判定器（ＳＤ）を用いて実行され、
前記ウェブページ処理状態（ＷＰＰＳ）が予め定められた完了値に達したことがわかった後に前記情報を検索するステップを含み、前記検索するステップは、少なくとも部分的に前記ウェブロボットを用いて実行される、方法。
【請求項１６】
前記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるステップをさらに含む、請求項１５に記載の方法。
【請求項１７】
システムであって、
ブラウザ（ＷＢ）を用いて情報を検索するように構成されたウェブロボット（ＷＲ）と、
前記ウェブロボットによる、前記ブラウザから要求されたウェブページの処理中に、待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、
パラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）とを含み、前記状態判定器（ＳＤ）は、前記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成され、
予め定められた１つ以上の基準と、
前記１つ以上の基準のうちの少なくとも１つに従い、前記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、前記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含み、前記ウェブページ処理状態（ＷＰＰＳ）は、前記ウェブロボットが前記ウェブページから情報を検索すべきか否かを示す、システム。
【請求項１８】
前記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるための遅延変換器（ＤＣ）をさらに含む、請求項１７に記載のシステム。
【請求項１９】
ウェブページを処理するように構成されたブラウザ（ＷＢ）であって、前記ブラウザは、
ウェブページの処理中に待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、
前記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）と、
予め定められた１つ以上の基準と、
前記１つ以上の基準のうちの少なくとも１つに従い、前記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、前記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含む、ブラウザ。
【請求項２０】
ウェブページ処理状態（ＷＰＰＳ）を判定するように構成された状態判定器であって、前記状態判定器（ＳＤ）は、
ブラウザ（ＷＢ）を用いたウェブページの処理に関連する待ち行列中の１つ以上の処理タスク（ＱＰＴ）と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）と、
予め定められた１つ以上の基準と、
前記１つ以上の基準のうちの少なくとも１つに従い、前記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて判定される、ウェブページ処理状態（ＷＰＰＳ）とを含む、状態判定器。
【請求項２１】
ブラウザ（ＷＢ）のウェブページ処理状態（ＷＰＰＳ）を判定するためにコンピュータによって実行されるコンピュータ読取可能な命令を含むコンピュータプログラムプロダクトであって、
前記コンピュータは、少なくとも、処理部と、メモリ部と、ネットワーク接続性とを含み、
前記コンピュータ読取可能な命令は、
実行されたときに、待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントに基づいて状態判定器（ＳＤ）におけるパラメータ（Ｐ１...Ｐｎ）を設定させる、第１のコンピュータ読取可能な命令と、
実行されたときに、予め定められた１つ以上の基準に従い前記パラメータ（Ｐ１...Ｐｎ）に基づいて前記ウェブページ処理状態（ＷＰＰＳ）を判定することを前記状態判定器（ＳＤ）に行なわせる、第２のコンピュータ読取可能な命令とを含む、コンピュータプログラムプロダクト。
【請求項２２】
ブラウザ（ＷＢ）を用いたウェブページの処理中に、前記ウェブページのソースコードによって待ち行列中の処理タスク（ＱＰＴ）の実行の開始を遅延させるように設定された時間を減じるステップを含む、方法。
【請求項２３】
前記時間を減じるステップは、前記待ち行列中の処理タスク（ＱＰＴ）の生成に関連して遅延変換器（ＤＣ）によって実行される、請求項２２に記載の方法。
【請求項２４】
関連付けられた遅延を有する待ち行列中の処理タスク（ＱＰＴ）の生成を生じさせ得る予め定められた処理イベントを追跡するステップと、
遅延変換器（ＤＣ）を呼出して、前記遅延を、絶対デクリメント、相対デクリメント、および比例デクリメントのうちの１つ以上によって変更させるステップとをさらに含む、請求項２２に記載の方法。
【請求項２５】
前記待ち行列中の処理タスク（ＱＰＴ）は、
１つ以上のタイマタスク、
１つ以上の非同期ＸＭＬ  Ｈｔｔｐ要求タスク、
１つ以上のスケジュールされたリダイレクトタスク、
１つ以上のカスケードスタイルシート遷移タスク、
１つ以上の待ち行列中スクリプトタスク、および
１つ以上のディファードイベントタスク、
のうちの１つ以上を含む、請求項２２に記載の方法。
【請求項２６】
待ち行列中の２つ以上の処理タスクの減じられた遅延時間を、前記ウェブページのソースコードによって定められたのと同じ順序で前記処理タスクが実行され得るように、管理するステップをさらに含む、請求項２２に記載の方法。
【請求項２７】
システムであって、
ブラウザ（ＷＢ）を用いたウェブページの処理中に、待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）を含み、前記処理タスクのうちの少なくとも１つは、前記ウェブページのソースコードによって前記待ち行列中の処理タスク（ＱＰＴ）の実行の開始を遅延させるように設定された時間と関連し、
前記待ち行列中の処理タスクの実行の開始を遅延させるように設定された時間を減じるように構成された遅延変換器（ＤＣ）を含む、システム。
【請求項２８】
前記ブラウザ（ＷＢ）は、前記待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントを追跡するためのインストルメンテーションを含む、請求項２７に記載のシステム。
【請求項２９】
前記待ち行列中の処理タスク（ＱＰＴ）は、
タイマタスク、
スケジュールされたリダイレクトタスク、
カスケードスタイルシート遷移タスク、
待ち行列中スクリプトタスク、および
ディファードイベントタスク、
のうちの１つ以上を含む、請求項２７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、２０１３年１１日１日に出願され「DETERMINING WEB PAGE PROCESSING STATE（ウェブページ処理状態の判定）」と題されたデンマーク特許出願ＰＡ２０１３−７０６３９に基づく優先権を主張し、これを本明細書に引用により援用する。
【０００２】
発明の分野
ここに開示する発明の概念は、ウェブブラウザおよびウェブページのブラウジングに関し、より具体的にはブラウザの処理状態の判定に関する。
【背景技術】
【０００３】
発明の背景
ウェブページのロードおよび処理は、ますます複雑化し予測不能になっており全く際限がない。従来のアプローチでは、１つのＨＴＭＬ文書が１つのウェブページ全体を構成していることが多く、ブラウザは、この１つの文書のロード、パース、およびレンダリングを行なうだけでよい。ブラウザが最後の＜／ＨＴＭＬ＞タグに達すると、処理は終了する。そうなると、ブラウザは、そのプログレスバーのインジケータを終了状態にするまたは削除することで、ユーザに対し、ページのロードが終了しこのページとの対話が可能であることを示してもよい。従来のアプローチは、たとえばメインリソース（たとえばＨＴＭＬ文書）において参照される画像等のサブリソースを用いるときでも、典型的なブラウザによってサブリソースが発見されると、これらがロードされ、パースされ、レンダリングされる。加えて、従来のシステムにおいて、このロードはすべて、ウェブページソース情報（たとえばＨＴＭＬ文書）の、一列のシーケンシャルな同期処理の中で行なわれる。
【０００４】
それ以来、スクリプトおよびカスケードスタイルシート（ＣＳＳ）を含む、他の数種類のサブリソースが出現した。これらのおよびその他の、現代のウェブページ要素のおかげで、ウェブデザイナーは、非同期またはディファード処理を利用できるようになった。このことは、ブラウザは、メインリソースの最後に達しロードされたサブリソースすべてをパースしレンダリングしても、ウェブページの処理を続行し得ることを意味する。たとえば、ディファードスクリプトまたは時間が決められた（timed）スクリプトおよびＣＳＳ遷移が、依然として、処理のための待ち行列の中にある場合があり、タイマが、まだ始動していないまたは繰返しループの真っただ中にある場合がある。したがって、従来のウェブサイトは、たとえばウェブサイト上のコンテンツを動的に更新するために、ウェブページがブラウザウィンドウの中に示されている限り、スクリプトまたはその他の非同期タスクの実行を続けるのが、極めて一般的になった。
【０００５】
ディファードまたは非同期タスクの中には、ウェブページのセマンティクスすなわちコンテンツを変更する、たとえばニュースを更新する、または、コンテンツの表現、たとえば順序、可視範囲、強調等を変更することによって、ウェブページの新たなレンダリングをトリガし、ユーザが知覚できる変化を生じさせるものがある。また、ディファードまたは非同期タスクの中には、ウェブデザイナーによって意図されおよび／または人間のユーザによってウェブページのロードおよび／または初期化（たとえば処理の一回目の反復中）の一部として知覚されるものがある。一方、ウェブページを探索または使用する経験を高めるための操作プロセスとして経験されるであろうディファードタスクもある。
【０００６】
このような状況では、従来の技術に従って、ウェブページの処理をブラウザがいつ終了したか判定するのは、実際不可能になる。典型的なブラウザのプログレスバーまたはその他の「ビジー」表示でさえ、ウェブページのレンダリングがいつ終了状態になったかユーザが知覚することまたはウェブページのレンダリングが終了状態なったとユーザが考えることに、対応しないことが多い。このように終了状態になると、ユーザは、予想される情報が表示されると考える、またはウェブページとの対話を開始することができる。
【０００７】
プログラム的に考える、たとえば、ウェブクローラーまたはそれ以外のロボットの視点から考えると、ページのセマンティクスが終了したとみなすべき時間、または、自動対話を続行すべき時間を判定する能力の必要性が、非常に重要である。ウェブロボットまたは自動化されたブラウジングスクリプトの、ウェブページがいつ準備できたか、および、どの動作タスクを無視すべきかを検知または感受する能力は、人間のユーザよりも遥かに低い。
【０００８】
この問題の一般的な解決策は、ロボット、スクリプト等に、続行する前に予め定められた期間待機させるだけであった。これは、いつブラウザが実行されたか判断するのに非常に効率的な方法ではない。なぜなら、ブラウザが準備できるまでに要する時間には極めて大きなばらつきがあるからである。そのため、不必要な待機、または不十分な待機が発生することが多い。さらに、自動スクリプトまたはロボットを記述するプログラマーにとって、各タスクに必要なまたは関連する時間の量を推測しなければならないことは、退屈である。
【０００９】
また、所定の長さの休止を用いることは、特定のウェブサイトに対する所与のアクションを実行する時間が一定でなくユーザクライアントのソフトウェアおよびハードウェア、ネットワークレイテンシ等に応じて決まることも無視することになる。許容可能な誤り率に応じて、ウェブロボットを、ウェブロボットの待機中にブラウザが実際処理を完了する確率が高いことが望ましいのであれば、たとえば５〜１０秒間またはそれよりも長くたとえば１分間でも待機させることになる場合がある。
【００１０】
したがって、ウェブページ処理状態の判定について改善され、また効率の良い、また適応性のある方法を実行するように構成された、システム、技術、およびコンピュータプログラムプロダクトを提供することが、有益であろう。
【発明の概要】
【課題を解決するための手段】
【００１１】
発明の概要
発明者らは、先行技術のブラウザおよび自動化されたブラウジングの上記課題と問題点を明らかにし、下記の関連する解決策を発明した。
【００１２】
ある実施形態において、方法は、状態判定器（ＳＤ）における１つ以上のパラメータ（Ｐ１...Ｐｎ）を設定するステップを含み、上記１つ以上のパラメータは各々、待ち行列中の１つ以上の処理タスク（ＱＰＴ）に関連する予め定められた１つ以上の処理イベントに少なくとも一部基づいており、予め定められた１つ以上の基準に従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に少なくとも一部基づいて、ブラウザ（ＷＢ）のウェブページ処理状態（ＷＰＰＳ）を判定するステップを含む。
【００１３】
ある実施形態において、システムは、ブラウザ（ＷＢ）を用いたウェブページの処理中に待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、上記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、上記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含む。
【００１４】
別の実施形態において、方法は、ウェブロボット（ＷＲ）が、ブラウザ（ＷＢ）に対してウェブページを処理することを要求するステップと、上記ウェブページの上記ブラウザによる処理中に確立された待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントに基づいて、状態判定器（ＳＤ）におけるパラメータ（Ｐ１...Ｐｎ）を設定するステップと、状態判定器（ＳＤ）が、予め定められた１つ以上の基準に従い、上記パラメータ（Ｐ１...Ｐｎ）に基づいて、ウェブページ処理状態（ＷＰＰＳ）を判定するステップとを含み、上記判定するステップは、少なくとも部分的に上記を用いて実行され、ウェブロボットが、上記ウェブページ処理状態（ＷＰＰＳ）が予め定められた完了値に達したことがわかった後に上記情報を検索するステップを含む。
【００１５】
他の実施形態において、システムは、ブラウザ（ＷＢ）を用いて情報を検索するように構成されたウェブロボット（ＷＲ）と、上記ウェブロボットによる、上記ブラウザから要求されたウェブページの処理中に、待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、パラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）とを含み、上記状態判定器（ＳＤ）は、上記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成され、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、上記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含み、上記ウェブページ処理状態（ＷＰＰＳ）は、上記ウェブロボットが上記ウェブページから情報を検索すべきか否かを示す。
【００１６】
さらに他の実施形態において、ブラウザ（ＷＢ）は、ウェブページを処理するように構成され、ウェブページの処理中に待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、上記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、上記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含む。
【００１７】
さらに他の実施形態において、状態判定器は、ウェブページ処理状態（ＷＰＰＳ）を判定するように構成された状態判定器であって、上記状態判定器（ＳＤ）は、ブラウザ（ＷＢ）を用いたウェブページの処理に関連する待ち行列中の１つ以上の処理タスク（ＱＰＴ）と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて判定される、ウェブページ処理状態（ＷＰＰＳ）とを含む。
【００１８】
ある実施形態において、コンピュータプログラムプロダクトは、ブラウザ（ＷＢ）のウェブページ処理状態（ＷＰＰＳ）を判定するためにコンピュータによって実行されるコンピュータ読取可能な命令を含む。上記コンピュータは、少なくとも、処理部と、メモリ部と、ネットワーク接続性とを含む。上記コンピュータ読取可能な命令は、実行されたときに、待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントに基づいて状態判定器（ＳＤ）におけるパラメータ（Ｐ１...Ｐｎ）を設定させる、第１のコンピュータ読取可能な命令と、実行されたときに、予め定められた１つ以上の基準に従い上記パラメータ（Ｐ１...Ｐｎ）に基づいて上記ウェブページ処理状態（ＷＰＰＳ）を判定することを上記状態判定器（ＳＤ）に行なわせる、第２のコンピュータ読取可能な命令とを含む。
【００１９】
別の実施形態において、方法は、ブラウザ（ＷＢ）を用いたウェブページの処理中に、上記ウェブページのソースコードによって待ち行列中の処理タスク（ＱＰＴ）の実行の開始を遅延させるように設定された時間を減じるステップを含む。
【００２０】
他の実施形態において、システムは、ブラウザ（ＷＢ）を用いたウェブページの処理中に、待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）を含み、上記処理タスクのうちの少なくとも１つは、上記ウェブページのソースコードによって上記待ち行列中の処理タスク（ＱＰＴ）の実行の開始を遅延させるように設定された時間と関連し、上記待ち行列中の処理タスクの実行の開始を遅延させるように設定された時間を減じるように構成された遅延変換器（ＤＣ）を含む。
【００２１】
当然ながら、これまで述べた例は、例示にすぎず、ここに開示する発明の概念の範囲を限定するものとみなされるべきではない。むしろ、当業者が本明細書を読んで理解するであろう、本明細書に開示する発明の概念を、組合わせた、変形した、入替えた、または合成したものが、本開示の範囲に含まれるとみなされるべきものである。その他の実施形態、実施例等については以下でさらに詳細に説明する。
【００２２】
以下、ここで開示する発明の概念について下記図面を参照しながら説明する。
【図面の簡単な説明】
【００２３】
【図１】状態判定器を用いる、ここに開示する発明の概念のある実施形態を示す。
【図２】単純なウェブページに対する先行技術のウェブページ処理を示す、簡略化したシーケンス図である。
【図３】待ち行列中のタスクを用いてウェブページを処理する先行技術のウェブページ処理に関連する問題を示す、簡略化したシーケンス図である。
【図４】ここに開示する発明の概念に従うウェブページ処理のある実施形態を示す、簡略化したシーケンス図である。
【図５】ここに開示する発明の概念に従うブラウザとウェブロボットとの対話のある実施形態を示す。
【図６】遅延変換器を用いる、ここに開示する発明の概念の実施形態を示す。
【図７】遅延変換器を用いる、ここに開示する発明の概念の実施形態を示す。
【図８】状態判定器と遅延変換器の組合わせを用いる、ここに開示する発明の概念の実施形態を示す。
【図９】状態判定器と遅延変換器の組合わせを用いる、ここに開示する発明の概念の実施形態を示す。
【図１０】状態判定器と遅延変換器の組合わせを用いる、ここに開示する発明の概念の実施形態を示す。
【図１１】ここに開示する発明の概念のある実施形態を示す。
【図１２】ここに開示する発明の概念に従うブラウザとウェブロボットとの対話のある実施形態を示す。
【発明を実施するための形態】
【００２４】
詳細な説明
一実施形態は方法に関連し、この方法は、状態判定器ＳＤにおける１つ以上のパラメータＰ１...Ｐｎを設定するステップを含み、この１つ以上のパラメータは各々、待ち行列中の１つ以上の処理タスクＱＰＴに関連する予め定められた１つ以上の処理イベントに少なくとも一部基づいており、予め定められた１つ以上の基準に従い、上記１つ以上のパラメータＰ１...Ｐｎに少なくとも一部基づいて、ブラウザ（ＷＢ）のウェブページ処理状態ＷＰＰＳを判定するステップを含む。
【００２５】
ウェブページの処理状態を判定する、たとえば、ウェブページが予想される情報を含むのに十分処理されているか否かまたはウェブページが対話できる状態にあるか否か判定する、改善された効率的で適応性のある方法が、こうして提供される。さまざまな好ましい実施形態において、この方法は、ブラウザを使用したウェブページの処理中に実行される、コンピュータによって実現される方法であることが好ましく、および／または、ウェブページの処理状態ＷＰＰＳは、状態判定器によって判定されることが好ましい。
【００２６】
この方法は、先行技術に関連するいくつかの問題および課題を解決する。第１に、上記実施形態は通常、予め定められた時間待機するだけであり安全のために非常に長い時間待機することも多い一般的な方法よりも遥かに速い。本明細書に開示する方法は、実際に生じる処理イベントに基づいて、いつ続行するのが安全か判定することにより、イベントに関連する基準が満たされると直ちに続行することを可能にする。
【００２７】
ウェブページの処理が円滑に進むとき、本明細書に記載の方法は、先行技術における固定された待機時間の経過前に、準備完了状態を判定することができるので、典型的な先行技術の自動システムに必要であったであろう待機時間を大幅に、たとえば約２５％から約５０％以上も、典型的には短縮する。特定の状況における処理が、たとえばネットワークのレイテンシが原因で、それほど円滑でない場合、この方法は、続行のために、待機時間が予め定められている先行技術のシステムに匹敵する時間またはそれ以上を費やしてもよいが、その場合は、ウェブページが処理を完了するのを待つかまたは準備または完了状態が予め定められた程度に達するのを待つことになる。
【００２８】
このようにして、より信頼性の高い結果を提供する。なぜなら、判定されたウェブページ処理状態は実際の処理を反映するからであり、したがって、同じ結果を、すなわち実際の処理に関連して判定された状態を、同じウェブページが処理される別の時間に予想できるからである。一方、先行技術のシステムは、たとえばダウンロードが円滑でない場合、その時点におけるブラウザの処理状態とは関係なく、予め定められた待機時間が経過すると、単純に続行する。結果として、先行技術の技法は、たとえばウェブページの必須の要素のロードが完了する前に、ある状態から別の状態に不確実に進む（または続行しようとするが致命的な結果を伴う）ことが多い。
【００２９】
代表的な先行技術における技法が、比較的短い待機時間、たとえば５秒を用いる場合、これは、たとえばこの例では時間にして５０％早く続行することで、確実性を犠牲にする。本方法において、待機時間の短縮は比較的少なくたとえば０〜１０％だけであろうが、その一方で、処理が実際に完了したことが極めて確実であるので、時間にして１００％に近い正しい時間に続行する。
【００３０】
他の代表的な先行技術における技法は、たとえば７０％長い待機時間、たとえば８．５秒を選択し得るが、この場合、上述の例と同じ誤りの確率で、先行技術における技術は、時間にして１％だけ早く続行する（それでも多くのウェブロボットの応用例にしては長い）。本方法はしたがって、この例では待機時間を大幅に、約４１％短縮しつつ、当然、非応答ウェブサーバ等のような修復できないロードエラーを条件として、準備ができる度に続行するだけであるという、絶対的な確実性を提供し得る。
【００３１】
ここに開示する発明の概念の、予め定められた待機時間を用いる先行技術の技法に対する他の利点は、ここに開示するウェブページ処理状態が、処理ステップが同一であると仮定すると、異なるインスタンスおよび異なる状況でも、毎回処理の待ち行列内の同じポイントで同じ値に達することである。なぜなら、実際に生じる処理イベントおよび対応する基準から判断するからである。よって、待機時間が予め定められているシステムと比較して、確実性と予測精度が改善される。このシステムでは、時間がきたらその状態を単にシフトするので、２つの異なるインスタンスにおいて、待機時間が終了したときに処理が異なるポイントに達する場合に自動ブラウジングスクリプトが異なる結果に達するという危険性がある。
【００３２】
加えて、開示する方法は、異なるウェブページおよびアクションにある程度自動的に適応するが、その程度を限定するのは特定の実装例における予め定められた基準およびサポートされる処理イベントのみである。これとは逆に、待機時間が予め定められているシステムでは、予め定められた待機時間は、すべてのウェブページおよびアクションに対して等しいか、または、ユーザが煩わしい手作業で関連するウェブページおよびアクションごとに前もって個別に設定しなければならない。
【００３３】
本明細書に開示する方法はまた、メインリソースおよび同期タスクの処理の終了を関連する処理の終わりであると単純にみなすことに関連する問題も解決する。ウェブページ処理状態が、待ち行列中の処理タスクに関連するイベントに基づくようにすることによって、確実に、非同期、ディファード、または時間が決められたタスクも考慮され予め定められた基準に照らされる。これは典型的に、メインリソースの処理の完了を判断するだけの場合には当て嵌まらないであろう。これにより、本方法は全体的により信頼性が高くなる。なぜなら、本開示が提供するウェブページ処理状態は、メインリソースの処理が終了した後であっても実際の状態を反映し続けるであろうからである。また、これはさまざまなウェブページに対する適応性がより高い。なぜなら、本開示のウェブページ処理状態は、メインリソース処理の終了前および後の、かつ、同期タスクおよび非同期タスクに対する、実際に処理されたイベントに関連し得るからである。
【００３４】
さらに、待ち行列中の処理イベントを含めていくつかの処理イベントを考慮することにより、精密に、特定のウェブページが情報抽出の準備完了状態とみなされる処理ステップから出ること、または、たとえば予め定められた基準を適切に選択することによって次の対話に進むことが可能になる。言い換えると、自動化スクリプトライター、たとえばウェブロボットデザイナーは、以前はメインリソースが処理されるときにまたは予め定められた時間が経過した後にロボットに続行させる必要があったが、開示されている方法は、ウェブページ処理のどのステップでロボットに次の命令に進ませたいかを選択できる。
【００３５】
本明細書に記載の方法に従うと、待ち行列中の処理タスクに関連する処理イベントは、ウェブページの処理中に発生するイベントを含み得ることが注目される。これはたとえば、検索、パース、実行、レンダリング等の処理動作の実行である。このことは当業者が本明細書を読んで理解するであろう。表１に列挙されているイベントは、たとえばモニタリングおよび追跡に関連し得る代表的ないくつかの処理イベントを示す。なぜなら、たとえば待ち行列中の処理タスクの生成、実行、または削除を示すことにより、これらは、待ち行列中の処理タスクＱＰＴ１...ＱＰＴｎに関連し得るからである。
【００３６】
本明細書の代表的なある実施形態に従う待ち行列中の処理タスクは、後続の実行のために、相対、絶対、または未規定の時間によって、スケジュールされる、時間が決められる、据え置かれる、延期される等の場合がある、任意のタスク、ジョブ、スクリプト、命令等を含む。これは特に、ウェブページのメインリソースの処理と非同期で実行されるようなタスク、すなわち、ウェブページは処理の前に非同期タスクが完了するのを待たされることはない。当然、当業者が本明細書を読んで理解するであろう代替のおよび／または同等の待ち行列中の処理タスクの種類、コンポーネント等も、本開示の範囲から逸脱することなく採用し得る。
【００３７】
より多くの実施形態において、特にウェブページの処理の状態を示すことを含む実施形態において、状態判定器は、ウェブページ処理状態ＷＰＰＳに対して１つ以上の異なる値を決定し得る。単純な代表的な実施形態において、ウェブページ処理状態ＷＰＰＳは、「ビジー」の値とたとえば「事実上終了」の値との間で、または同等のまたは類似する意味の値の間でシフトし得る。ある実施形態に従うと、「事実上終了」のまたはこれに類似するものの値は、たとえば、ウェブページに対してセマンティクスに関する変更を生じさせないかまたはセマンティクスに関する重要でない変更を生じさせる、待ち行列中のタスクのみが、残っていること、および／または残っているタスクはおそらく終わることのない繰返しであることを意味する。
【００３８】
代替の実施形態において、ウェブページ処理状態は、処理が発生すると、完了の異なる段階および程度のモニタリングをある程度可能にする、いくつかのまたは多数の可能な値を有し得る。
【００３９】
状態判定器ＳＤにおけるパラメータＰ１...Ｐｎは、好都合に、ウェブページプロセッサＷＰＰが実際に終了したかまたはある程度の完了状態に達したかを状態判定器に知らせることができる情報を提供し、戻されていない、ディスパッチされていない、実行されていない等の、待ち行列中の重要な処理タスクＱＰＴは、残っていない。本明細書に記載の方法に従うパラメータは、好ましくは、待ち行列中の処理タスクからの情報、またはパラメータが基づく関連する処理イベントからの情報、たとえばオブジェクトＩＤ、タイミング情報、状態等を含み得る。
【００４０】
本明細書に記載の方法に従うブラウザは、サブリソースがあるまたはないウェブページを検索するように構成されたメカニズムを含み得る。ウェブページの処理は、場合によって、スクリプトの実行、スタイルシートの遷移の実施、タイマの管理等のうちの１つ以上を含む。好ましくは、ブラウザは、少なくとも、ウェブページプロセッサＷＰＰと、ウェブページのグラフィカル表現ＧＲを保持するためのメモリに対するアクセスと、待ち行列中の１つ以上の処理タスクＱＰＴを保持するためのタスク待ち行列ＴＱとを含む。タスク待ち行列は、待ち行列中の処理タスクのためのいくつかのレジスタまたはバッファを含み得る。
【００４１】
ブラウザは、一般的な市販のブラウザが採用するもののような、従来の、ユーザによる操作が可能な、グラフィカルユーザインターフェイスを備えたブラウザを含み得る。これはたとえば、FIREFOX（登録商標）、CHROME（登録商標）、またはINTERNET EXPLORER（登録商標）、ウェブページを検索し処理するがグラフィカルユーザインターフェイスを提供しないヘッドレスブラウザ、たとえばGHOST（登録商標）、PHANTOMJS（登録商標）、またはSPYNNERのようなブラウザ、または、たとえばウェブロボットによるブラウジング専用に作られたカスタムビルドブラウザである。現在、WEBKIT等のオープンソースブラウザエンジンに基づくブラウザ（たとえばブラウザSAFARI）、GECKO（たとえばブラウザFIREFOX）、およびBLINK（たとえばブラウザCHROMEおよびOPERA)が好ましい。なぜなら、これらブラウザは、状態判定器におけるパラメータを設定するためにブラウザをインストルメント化するという点で、または本明細書に記載の方法に従う状態判定器をカスタマイズされたブラウザの一部にするという点でも、高度なカスタマイズを可能にするからである。本明細書で使用するインストルメント化（インストルメンテーション）は、ソフトウェアまたはハードウェアにより機能を拡張して、情報を利用できるようにするまたは内部変数、プロセス、状態等に関する情報を検索できるようにするための、何らかの方法および／またはメカニズムを意味し得る。
【００４２】
より具体的には、好ましい実施形態において、ブラウザをインストルメント化して状態判定器内のパラメータを設定することとは、ブラウザを拡張してイベントをモニタリングするまたはイベントのモニタリングを可能にすること、ブラウザ内のイベントプロセッサに機能を追加すること、またはブラウザ内のイベントに接続すること、および、このモニタリングまたは機能を予め定められたイベントに関連して用いて、予め定められたイベントが発生するたびに関連するパラメータを設定することである。
【００４３】
本明細書に記載の方法に従うウェブページの処理は、メインリソースの検索の開始から、サブリソースの検索と処理を含む同期処理を経て、非同期タスクの管理と実行までの、何らかの処理を指す。また、ウェブページの処理は、イベントおよび関連するスクリプトの実行または検索のハンドリング、および、ユーザまたはウェブロボットとウェブページとの対話によって開始されるサブリソースの処理を含み得る。これはたとえば、リンク、フォーム、キーストローク、マウスオーバまたはマウスダウン、クリック、ディスプレイとの物理的対話（たとえばタッチセンスディスプレイに対する容量性および／または抵抗性フィードバック）のようなユーザインターフェイスイベント、可聴刺激を与えること（たとえば音声コマンド、トーン）、視覚的刺激を与えること（たとえばジェスチャー、ポーズ、またはシンボルを表示すること）等から発生し、そのため、新たなウェブページのロードが関係するときだけではない。
【００４４】
好都合な実施形態は、上記方法が、上記予め定められた１つ以上の処理イベントを追跡するステップを含むときに得られる。
【００４５】
上記方法に従うと、処理イベントを追跡することは、予め定められた処理イベントが始動するまたは始動したことをモニタリングするかそうでなければ発見する何らかの方法を指す。好ましい実施形態において、ブラウザは、たとえば上記のようにインストルメント化されることによって、この方法に従う状態判定器に関連し得る処理イベントすべてを追跡することができる。予め定められた処理イベントを追跡することにより、状態判定器におけるパラメータの設定が容易になり、したがって、ウェブページ処理状態の判定が容易になる。
【００４６】
好都合な実施形態は、上記予め定められた１つ以上の処理イベントを追跡するステップが、上記状態判定器における１つ以上のパラメータの設定が、関連するオブジェクト情報とともに予め定められた処理イベントの発生に従って、実行されることを含むときに、得られる。
【００４７】
状態判定器がウェブページ処理状態を判定するというジョブは、同じオブジェクトに関連する処理イベントをまとめてリンクすることができるときに、極めて容易になる。関連する処理イベントは、たとえば、特定のタイマのインストール、同じタイマの始動、および最終的には同じタイマの削除である。この場合、関連するオブジェクト情報は、オブジェクトＩＤ、たとえばタイマＩＤであり、好ましくはタイマの値であってもよい。「ライフ」、たとえばタスクの作成からタスクの実行を経てタスクの削除に至るまでを追跡できることで、状態判定器は、ウェブページ処理状態にこのタスクが如何に影響するかを判定し易くなる。例として、たとえばタスクが存在するすなわち作成されたもしくは実行中であるがまだ完了していないもしくは削除されていないときに、「ビジー」であるのか、または、タスクが削除されたことによって示される「完了した」状態なのかという観点から、判定し易くなる。
【００４８】
好都合な実施形態は、上記待ち行列中の１つ以上の処理タスクＱＰＴが、タイマタスク、非同期ＸＭＬ  Ｈｔｔｐ要求タスク、スケジュールされたリダイレクトタスク、カスケードスタイルシート遷移タスク、待ち行列中スクリプトタスク、およびディファードイベントタスクというタスクのうちの、１つ以上を含むときに得られる。
【００４９】
本明細書に記載の方法は、たとえば上記タスクのうちのいくつかによって非同期処理を生じさせるウェブページのウェブページ処理状態を判定するのに、特に好都合である。なぜなら、これが、メインリソース処理の終わりが処理全体の終わりであると定義する従来の技術と、予め定められた待機時間に依存する従来の技術双方に欠けているものであるからである。なぜなら、非同期タスクは、メインリソース処理の終了後にも続行することがあり、エンドレスなループまたは繰返しにおいて続くこともあり、そのために、待機時間を予め定めるアプローチは不適切になるからである。
【００５０】
好都合な実施形態は、ウェブロボットＷＲを上記ウェブページ処理状態ＷＰＰＳに通信可能に結合できるように、システムが構成されるときに得られる。
【００５１】
上記方法の格別に有益な使用は、ウェブロボットのブラウジングに関係がある。なぜなら、上記のようにウェブロボットの待機時間を、先行技術の方法との比較で、典型的には２５％〜５０％以上、大幅に短縮できるからである。一例は、たとえば、先行技術の技法における、たとえば誤り率が１％の固定された待機時間８．５秒を、本開示による、誤り率が実質的に０％の平均待機時間５秒に短縮することを含み得る。ウェブページ処理状態をウェブロボットが使用できるようにする、たとえば、ウェブロボットを状態判定器に通信可能に結合することによって、ウェブロボットは、たとえば固定の予め定められた待機時間、単純に待つのではなく、ブラウザからの実際の現時点の処理情報に基づいていつ続行するかを判定し得る。
【００５２】
好都合な実施形態は、方法が、上記待ち行列中の１つ以上の処理タスクＱＰＴのうちの１つ以上と関連付けられた１つ以上の遅延を減じるステップを含むときに得られる。
【００５３】
この方法の効率をさらに高めるには、たとえば、タイマ値、スケジュールされたリダイレクトの時間、ＣＳＳ遷移間隔等の、遅延のうちのいくつかまたはすべてをも減じることが有益である。このことは当業者が本明細書を読んで理解するであろう。
【００５４】
ウェブロボットのブラウジングにとって、この、遅延の低減と、ウェブロボットがいつ続行すべきかの判定との組合わせは、先行技術の方法よりも極めて効率が高い。
【００５５】
好都合な実施形態は、上記１つ以上のパラメータＰ１...Ｐｎに基づいて上記ウェブページ処理状態ＷＰＰＳを判定する上記ステップが、上記パラメータのうちの１つ以上によって表わされる待ち行列中の処理タスクに関連する予め定められた処理イベントのウェブページ処理状態との関連性を考慮することを含むときに、得られる。
【００５６】
パラメータをその関連性について考慮するときは、たとえば、完全に実行されたタスクを表わすパラメータは無視し、ペンディングまたは未終了のタスクを表わすパラメータを予め定められた基準と比較する。完了したタスクを含む履歴を考慮して、たとえば、ペンディングタスクが実際多数の完了タスクのチェーンにいつ入ったか判断してもよく、またはこれが他のタスクに関連性がないか否か判断してもよい。
【００５７】
好都合な実施形態は、上記予め定められた１つ以上の基準のうちの１つの基準が、上記１つ以上のパラメータのうちの１つ以上の評価に使用し得るときに得られる。
【００５８】
本方法に従うと、いくつかの基準は、数種のタスクのみに関連する場合があるので、いくつかのパラメータは、多数またはすべての基準に照らした評価に関連し得るのに対し、１つまたは２、３の基準だけは、それ以外のパラメータの評価に関連し得る。
【００５９】
好都合な実施形態は、上記予め定められた１つ以上の基準が、さらに他の待ち行列中のタスクの存在、しきい値を超える、さらに他の待ち行列中のタスクの数、しきい値を超える、タイマイベントのチェーン、ＸＭＬ  Ｈｔｔｐ要求のチェーン、またはその他の非同期タスクのチェーンの長さ、タイムアウト値を超える、ＸＭＬ  Ｈｔｔｐ要求のディスパッチ以来の非応答の期間、しきい値を超える、ウェブページのリダイレクトまたはリフレッシュについてスケジュールされた時間、しきい値を超える、インターバルタイマの繰返しの数、および、しきい値を超える、タイマイベントに対して設定された時間、のうちの１つ以上を含むときに得られる。
【００６０】
しきい値の考慮を含むこの基準を、１つの固定されたしきい値に関して評価してもよく、または、数個のしきい値を評価することで所与の基準の評価の３つ以上の結果が得られるようにしてもよい。
【００６１】
他の実施形態はシステムに関連し、このシステムは、ブラウザＷＢを用いたウェブページの処理中に待ち行列中の１つ以上の処理タスクＱＰＴを格納するように構成されたタスク待ち行列ＴＱと、上記待ち行列中の処理タスクＱＰＴのうちの１つ以上と関連付けられた１つ以上のパラメータＰ１...Ｐｎを格納するように構成されたパラメータレジスタＰＲを含む状態判定器ＳＤと、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータＰ１...Ｐｎに基づいて、上記状態判定器ＳＤによって判定される、ウェブページ処理状態ＷＰＰＳとを含む。
【００６２】
ブラウザにおけるウェブページの処理状態の基準を確立するための、改善された効率的で適応性のあるシステムが、こうして提供される。このシステムの要素およびその利点は、上記方法の同様の特徴に対応する。
【００６３】
好都合な実施形態は、上記ブラウザＷＢが、上記待ち行列中の処理タスクＱＰＴに関連する予め定められた処理イベントを追跡するように構成されたインストルメンテーションを含むときに得られる。
【００６４】
好都合な実施形態は、上記パラメータが、関連するオブジェクト情報とともに上記待ち行列中の処理タスクに関連する予め定められた処理イベントの発生と関連付けられているときに得られる。
【００６５】
好都合な実施形態は、上記待ち行列中の処理タスクＱＰＴが、タイマタスク、非同期ＸＭＬ  Ｈｔｔｐ要求タスク、スケジュールされたリダイレクトタスク、カスケードスタイルシート遷移タスク、待ち行列中スクリプトタスク、およびディファードイベントタスク、のうちの１つ以上のタスクを含むときに得られる。
【００６６】
好都合な実施形態は、上記システムが、上記ウェブページ処理状態ＷＰＰＳにウェブロボットＷＲを通信可能に結合できるように構成されているときに得られる。
【００６７】
本明細書において、要素が「通信可能に結合される」とは、一方の要素が「結合されている」と記載されているときに、この要素が、結合の対象である要素に対するアクセスおよび／または操作を行なうように構成されていることであると理解される。たとえば、要素は、この要素が通信可能に結合されている要素に対し、呼出し、検索、参照、格納、リコール等を行なうように構成し得る。当然、当業者が本明細書を読んで理解するであろう、通信可能な結合の他の形態も、上記開示の範囲に含まれ、この範囲から逸脱することなく採用し得る。
【００６８】
ウェブページ処理状態をウェブロボットが利用できるようにすることによって、ウェブロボットは、たとえば固定された予め定められた待機時間単純に待つのではなく、ブラウザからの実際の現在の処理情報に基づいて、いつ続行すべきか判断することができる。
【００６９】
好都合な実施形態は、システムが、上記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるように構成された遅延変換器ＤＣをさらに含むときに得られる。
【００７０】
さらに他の実施形態は方法に関し、この方法は、ウェブロボット（ＷＲ）がブラウザＷＢに対してウェブページを処理することを要求するステップと、上記ウェブページの上記ブラウザによる処理中に確立された待ち行列中の処理タスクＱＰＴに関連する予め定められた処理イベントに基づいて、状態判定器ＳＤにおけるパラメータＰ１...Ｐｎを設定するステップと、状態判定器ＳＤが、予め定められた１つ以上の基準に従い、上記パラメータＰ１...Ｐｎに基づいて、ウェブページ処理状態ＷＰＰＳを判定するステップと、ウェブロボットが、上記ウェブページ処理状態ＷＰＰＳが予め定められた完了値に達したことがわかった後に上記情報を検索するステップとを含む。
【００７１】
本明細書に記載の方法のある実施形態に従うと、ウェブロボットによるブラウジングは、従来の技術と比較して、たとえば先に例示した量、改善し得る。なぜなら、ウェブロボットは、たとえば状態判定器に通信可能に結合されていることにより、ブラウザの処理状態を知ることができる、すなわち、たとえば予め定められた待機時間単純に待つのではなく、所望の情報が利用できると考えられるか否かまたは対話を開始できるか否かを、知ることができる。好ましいさまざまな実施形態において、この方法はコンピュータによって実現される方法であることが好ましい。
【００７２】
ウェブロボットが検索する情報は、典型的には、ウェブページがユーザに与えることが意図されている情報、たとえばニュース、オファー、概要等、および／またはさらに他のウェブページへのリンクに関する情報、たとえばメニュー等、または、ウェブページとの対話の可能性、たとえばスクリプト、イベントハンドラ、動的スタイルシート特性等を含む。このことは当業者が本明細書を読んで理解するであろう。たとえば、ある代表的なアプローチにおいて、情報は、選択肢として、情報の更新、ログイン、またはその他同様の保証された動作、または、視覚的に隠された情報を、含み得る。これらはすべて、ウェブページのリロードが不要であることが好ましい。
【００７３】
好都合な実施形態は、上記方法が、上記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるステップを含むときに得られる。
【００７４】
この方法の効率を一層高めるためには、いくつかのアプローチにおいて、いくつかまたはすべての遅延、たとえばタイマ値、スケジュールされたリダイレクト時間、ＣＳＳ遷移間隔等の期間も減じるかまたは排除することが、有益である。この、遅延の低減と、ウェブロボットがいつ続行し得るかの判定との組合わせは、先行技術の方法よりも効率が高い。なぜなら、いくつかまたはすべての不必要な遅延を回避するものの、同時に、実際の処理タスクを参照しながら処理を追跡し続けることにより、減じられる遅延量と短縮できない処理時間の量との関係が異なっていても、ウェブページの処理状態の適切な判定が、容易になる。
【００７５】
さらに他の実施形態はシステムに関連し、このシステムは、ブラウザ（ＷＢ）を用いて情報を検索するように構成されたウェブロボット（ＷＲ）と、上記ウェブロボット（ＷＲ）による、上記ブラウザから要求されたウェブページの処理中に、待ち行列中の１つ以上の処理タスクＱＰＴを格納するように構成されたタスク待ち行列ＴＱと、パラメータレジスタＰＲを含む状態判定器ＳＤとを含み、上記状態判定器ＳＤは、上記待ち行列中の処理タスクＱＰＴのうちの１つ以上と関連付けられた１つ以上のパラメータＰ１...Ｐｎを格納するように構成され、システムはさらに、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータＰ１...Ｐｎに基づいて、上記状態判定器ＳＤによって判定される、ウェブページ処理状態ＷＰＰＳとを含み、上記ウェブページ処理状態ＷＰＰＳは、上記ウェブロボットが上記ウェブページから情報を検索すべきか否かを示す。
【００７６】
ブラウザにおけるウェブページの処理状態の基準を確立するように構成された、改善された効率的で適応性のあるシステムが、こうして提供される。このシステムの要素およびその利点は、上記方法の同様の特徴に対応する。
【００７７】
好都合な実施形態は、上記システムが、上記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるための遅延変換器ＤＣをさらに含むときに得られる。
【００７８】
さらに他の実施形態は、ウェブページを処理するように構成されたブラウザＷＢに関連し、このブラウザは、ウェブページの処理中に待ち行列中の１つ以上の処理タスクＱＰＴを格納するように構成されたタスク待ち行列ＴＱと、上記待ち行列中の処理タスクＱＰＴのうちの１つ以上と関連付けられた１つ以上のパラメータＰ１...Ｐｎを格納するように構成されたパラメータレジスタＰＲを含む状態判定器ＳＤと、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータＰ１...Ｐｎに基づいて、上記状態判定器ＳＤによって判定される、ウェブページ処理状態ＷＰＰＳとを含む。
【００７９】
さらに他の実施形態は、ウェブページ処理状態ＷＰＰＳを判定するように構成された状態判定器に関連し、上記状態判定器ＳＤは、ブラウザＷＢを用いたウェブページの処理に関連する待ち行列中の１つ以上の処理タスクＱＰＴと関連付けられた１つ以上のパラメータＰ１...Ｐｎを格納するように構成されたパラメータレジスタＰＲと、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータＰ１...Ｐｎに基づいて判定される、ウェブページ処理状態ＷＰＰＳとを含む。
【００８０】
さらに他の実施形態は、ブラウザＷＢのウェブページ処理状態ＷＰＰＳを判定するためにコンピュータによって実行されるコンピュータ読取可能な命令を含むコンピュータプログラムプロダクトに関連し、上記コンピュータは、少なくとも、処理部と、メモリ部と、ネットワーク接続性とを含み、上記コンピュータ読取可能な命令は、実行されたときに、待ち行列中の処理タスクＱＰＴに関連する予め定められた処理イベントに基づいて状態判定器ＳＤにおけるパラメータＰ１...Ｐｎを設定させる、第１のコンピュータ読取可能な命令と、実行されたときに、予め定められた１つ以上の基準に従い上記パラメータＰ１...Ｐｎに基づいて上記ウェブページ処理状態ＷＰＰＳを判定することを上記状態判定器ＳＤに行なわせる、第２のコンピュータ読取可能な命令とを含む。
【００８１】
さらに他の実施形態は方法に関連し、この方法は、ブラウザＷＢを用いたウェブページの処理中に、上記ウェブページのソースコードによって待ち行列中の処理タスクＱＰＴの実行の開始を遅延させるように設定された時間を減じるステップを含む。
【００８２】
ウェブページの処理中に、いくつかまたはすべての遅延、たとえばタイマ値、スケジュールされたリダイレクト時間、ＣＳＳ遷移間隔等を減じる有益な方法が提供される。好ましいさまざまな実施形態において、上記方法は、コンピュータによって実現される方法であることが好ましい。ウェブロボットのブラウジングにとって、これは特に関連性がある。なぜなら、ウェブページにおいて用いられるほとんどの相対的に長い遅延は、一般的にはウェブロボットのユーザには無関係の、特定の経験または視覚効果をユーザに対して与えるために使用されるからである。よって、本方法により、典型的には７０％〜８０％さらには１００％にさえ近づくこの種の遅延の低減を実現できる。
【００８３】
本明細書に記載の方法に従うと、注目されることは、本明細書のある代表的な実施形態に従う待ち行列中の処理タスクが、次の実行のために、相対または絶対時間によって、スケジュールする、時間を決める、据え置く、延期する等が可能な、何らかのタスク、ジョブ、スクリプト、命令等を含むことである。当然、当業者が本明細書を読んで理解するであろう、代替のおよび／または同等の待ち行列中の処理タスクの種類、コンポーネント等も、本開示の範囲から逸脱することなく採用し得る。表１に示す処理イベントのうちのいくつかは、たとえば待ち行列中の処理タスクの作成、実行または削除をたとえば示唆することにより、ある実施形態ではその実行が意図的に遅延される場合がある待ち行列中の処理タスクに関連する。
【００８４】
本明細書に記載の方法に従うブラウザは、サブリソースがあるまたはないウェブページを検索するように構成されたメカニズムを含み得る。ウェブページの処理は、場合によって、スクリプトの実行、スタイルシートの遷移の実施、タイマの管理等のうちの１つ以上を含む。好ましくは、ブラウザは、少なくとも、ウェブページプロセッサＷＰＰと、ウェブページのグラフィカル表現ＧＲを保持するためのメモリに対するアクセスと、待ち行列中の１つ以上の処理タスクＱＰＴを保持するためのタスク待ち行列ＴＱとを含む。タスク待ち行列は、待ち行列中の処理タスクのためのいくつかのレジスタまたはバッファを含み得る。
【００８５】
ブラウザは、一般的な市販のブラウザが採用するもののような、従来の、ユーザによる操作が可能な、グラフィカルユーザインターフェイスを備えたブラウザを含み得る。これはたとえば、FIREFOX、CHROME、またはINTERNET EXPLORER、ウェブページを検索し処理するがグラフィカルユーザインターフェイスを提供しないヘッドレスブラウザ、たとえばGHOST、PHANTOMJS、またはSPYNNERのようなブラウザ、または、たとえばウェブロボットによるブラウジング専用に作られたカスタムビルドブラウザである。現在、WEBKIT等のオープンソースブラウザエンジンに基づくブラウザ（たとえばブラウザSAFARI）、GECKO（たとえばブラウザFIREFOX）、およびBLINK（たとえばブラウザCHROMEおよびOPERA)が好ましい。なぜなら、これらブラウザは、状態判定器におけるパラメータを設定するためにブラウザをインストルメント化するという点で、または本明細書に記載の方法に従う状態判定器をカスタマイズされたブラウザの一部にするという点でも、高度なカスタマイズを可能にするからである。本明細書で使用するインストルメント化は、ソフトウェアまたはハードウェアにより機能を拡張して、情報を利用できるようにするまたは内部変数、プロセス、状態等に関する情報を検索できるようにするための、何らかの方法および／またはメカニズムを意味し得る。より具体的には、好ましい実施形態において、ブラウザをインストルメント化して状態判定器内のパラメータを設定することとは、ブラウザを拡張してイベントをモニタリングするまたはイベントのモニタリングを可能にすること、ブラウザ内のイベントプロセッサに機能を追加すること、またはブラウザ内のイベントに接続すること、および、このモニタリングまたは機能を予め定められたイベントに関連して用いて、予め定められたイベントが発生するたびに関連するパラメータを設定することである。
【００８６】
本明細書に記載の方法に従うウェブページの処理は、メインリソースの検索の開始から、サブリソースの検索と処理を含む同期処理を経て、非同期タスクの管理と実行までの、何らかの処理を指す。また、ウェブページの処理は、イベントおよび関連するスクリプトの実行または検索のハンドリング、および、ユーザまたはウェブロボットとウェブページとの対話によって開始されるサブリソースの処理を含み得る。これはたとえば、リンク、フォーム、キーストローク、マウスオーバまたはマウスダウン、クリック、ディスプレイとの物理的対話（たとえばタッチセンスディスプレイに対する容量性および／または抵抗性フィードバック）のようなユーザインターフェイスイベント、可聴刺激を与えること（たとえば音声コマンド、トーン）、視覚的刺激を与えること（たとえばジェスチャー、ポーズ、またはシンボルを表示すること）等から発生し、そのため、新たなウェブページのロードが関係するときだけではない。
【００８７】
この方法に従うと、ウェブページのソースコードは、何らかの形態および言語の何らかのコードである。これはたとえば、HTML、CSS、JavaScript（登録商標）、XML等の標準または基準に従う言語またはフォーマットであり、これにより、処理中のウェブページにおいて、時間遅延された待ち行列中の処理タスクを作成することができる。ソースコードは、たとえば、メインリソースであってもよく、または、特定の遅延時間を有するタイマおよび遅延時間の経過時に実行される関連付けられたスクリプトを作成するためのコード文を含むスクリプトサブリソース、または、規定された遅延時間を伴う遷移を確立させるスタイルシートサブリソースであってもよい。ウェブページのソースコードを、本明細書では、特定のタスクについて所望されたまたは意図された遅延時間のためのソースと呼び、このソースコードはしたがって、ウェブページデザイナー、所有者、著者、コーダー、プログラマー等がタスクについて意図された遅延を記述するための何らかの手段を含む。開示されている方法は、ウェブページのソースコードと呼ばれるものによって表わされる所望のまたは意図された遅延時間を変更、特に低減できるので、好都合である。
【００８８】
好都合な実施形態は、上記時間を減じるステップが、上記待ち行列中の処理タスクＱＰＴの生成に関連して遅延変換器ＤＣによって実行されるときに得られる。
【００８９】
遅延変換器は、ブラウザの一部、ブラウザプラグイン、または外部アプリケーションとして実現してもよい。好ましくは、遅延変換器は、少なくとも何らかの種類の遅延と関連付けられている場合の待ち行列中の処理タスクが作成されるたびに通知されなければならず、および／または遅延変換は、待ち行列中の処理タスクおよび／または遅延の生成を管理しなければならない。
【００９０】
好都合な実施形態は、上記ウェブページの処理時間を減じる方法が、関連付けられた遅延を有する待ち行列中の処理タスクＱＰＴの生成を生じさせ得る予め定められた処理イベントを追跡するステップと、遅延変換器ＤＣを呼出して、上記遅延を、絶対デクリメント、相対デクリメント、および比例デクリメントのうちの１つ以上によって変更させるステップとをさらに含むときに得られる。
【００９１】
上記方法に従うと、処理イベントを追跡することは、予め定められた処理イベントが始動するまたは始動したことをモニタリングするかそうでなければ発見する何らかの方法を指す。好ましい実施形態において、ブラウザは、たとえば上記のようにインストルメント化されることによって、この方法に従う状態判定器に関連し得る処理イベントすべてを追跡することができる。予め定められた処理イベントを追跡することにより、状態判定器におけるパラメータの設定が容易になり、したがって、ウェブページ処理状態の判定が容易になる。
【００９２】
本明細書に記載の方法に従うと、待ち行列中の処理タスクに関連する処理イベントは、ウェブページの処理中に発生するイベントを含み得ることが注目される。これはたとえば、検索、パース、実行、レンダリング等の処理動作の実行である。このことは当業者が本明細書を読んで理解するであろう。表１に列挙されているイベントは、たとえばモニタリングおよび追跡に関連し得る代表的ないくつかの処理イベントを示す。なぜなら、たとえば待ち行列中の処理タスクの生成、実行、または削除を示すことにより、これらは、待ち行列中の処理タスクＱＰＴ１...ＱＰＴｎに関連し得るからである。
【００９３】
好都合な実施形態は、上記待ち行列中の処理タスクＱＰＴが、タイマタスク、スケジュールされたリダイレクトタスク、カスケードスタイルシート遷移タスク、待ち行列中スクリプトタスク、およびディファードイベントタスク、のうちの１つ以上のタスクを含むときに得られる。
【００９４】
好都合な実施形態は、上記ウェブページの処理時間を減じる方法が、待ち行列中の２つ以上の処理タスクの減じられた遅延時間を、上記ウェブページのソースコードによって定められたのと同じ順序で上記処理タスクが実行され得るように、管理するステップをさらに含むときに得られる。
【００９５】
上記方法に従うと、好ましくは、待ち行列中のタスクは、これらタスクについて意図された順序で実行されねばならない。ウェブページのコンテンツにとって実際の遅延は重要でないと想定するのが無難であることが多いが、おそらく人間のユーザの経験では、タスクが実行される順序は重要でないと同じように想定することができないことが時々ある。したがって、好ましい実施形態は、意図されているのと同じ順序で、ただ意図されているよりも大幅に早く、タスクを実行させるようにして、遅延を減じるように、タスクを管理することを含む。
【００９６】
さらに他の実施形態はシステムに関連し、このシステムは、ブラウザＷＢを用いたウェブページの処理中に、待ち行列中の１つ以上の処理タスクＱＰＴを格納するように構成されたタスク待ち行列ＴＱを含み、上記処理タスクのうちの少なくとも１つは、上記ウェブページのソースコードによって上記待ち行列中の処理タスクＱＰＴの実行の開始を遅延させるように設定された時間と関連し、上記システムはさらに、上記待ち行列中の処理タスクの実行の開始を遅延させるように設定された時間を減じるように構成された遅延変換器ＤＣを含む。
【００９７】
ウェブページの処理中に、いくつかまたはすべての遅延、たとえばタイマ値、スケジュールされたリダイレクト時間、ＣＳＳ遷移間隔等を減じる有益なシステムが提供される。ウェブロボットのブラウジングにとって、これは特に関連性がある。なぜなら、ウェブページにおいて用いられるほとんどの相対的に長い遅延は、一般的にはウェブロボットのユーザには無関係の、特定の経験または視覚効果をユーザに対して与えるために使用されるからである。このシステムの要素およびその利点は、上記方法の同様の特徴に対応する。
【００９８】
好都合な実施形態は、上記ブラウザＷＢが、上記待ち行列中の処理タスクＱＰＴに関連する予め定められた処理イベントを追跡するためのインストルメンテーションを含むときに得られる。
【００９９】
開示されているシステムに従うと、追跡するためのインストルメンテーションは、処理イベント、たとえば表１に開示されているイベントに接続する何らかの方法を含み得る。
【０１００】
本明細書で使用するインストルメンテーション（インストルメント化）は、ソフトウェアまたはハードウェアにより機能を拡張して、情報を利用できるようにするまたは内部変数、プロセス、状態等に関する情報を検索できるようにするための、何らかの方法および／またはメカニズムを意味し得る。より具体的には、好ましい実施形態において、ブラウザをインストルメント化して処理イベントを追跡することは、ブラウザを拡張してイベントをモニタリングするまたはイベントのモニタリングを可能にすること、ブラウザ内のイベントプロセッサに機能を追加すること、またはブラウザ内のイベントに接続すること、および、このモニタリングまたは機能を予め定められたイベントに関連して用いて、遅延変換器による待ち行列中の処理タスクの遅延の低減を容易にすることである。
【０１０１】
好都合な実施形態は、上記待ち行列中の処理タスクＱＰＴが、タイマタスク、スケジュールされたリダイレクトタスク、カスケードスタイルシート遷移タスク、待ち行列中スクリプトタスク、およびディファードイベントタスク、のうちの１つ以上のマスクを含むときに得られる。
【０１０２】
ウェブページ処理状態
図１は、ここに開示する発明の概念の実施形態を示す。ウェブページを処理するには、典型的にはＨＴＭＬ文書であるメインリソースＭＲを、ネットワークＮを介してフェッチし、ブラウザの一部を構成するウェブページプロセッサＷＰＰによって処理する。典型的に、多数の、その他のリソース、サブリソースＳＲ１、ＳＲｎ、たとえばスタイルシート文書、画像ファイル、スクリプトファイル等も、ウェブページプロセッサＷＰＰにおける処理中に、メインリソースまたはその他のサブリソースにの参照に従い、または、スクリプトもしくはその他のクライアント側処理済コンテンツにおける命令の実行の結果として、フェッチされる。ウェブページを処理すると、典型的にはウェブページのグラフィカル表現ＧＲがレンダリングされることになる。グラフィカル表現は、ブラウザが使用するメモリの内部にあるが、当然、コンピュータのモニタまたはディスプレイ上においてユーザにも示される。なお、本発明の範囲に含まれるブラウザは、典型的なウェブブラウザであってもよく、場合によっては、コンピュータまたはスマートフォンにおいて見られる適切なブラウザプラグインを有する、または、上記ブラウザは、ヘッドレスブラウザ、すなわち、ウェブページの内部処理を実行するだけでそのグラフィカルレンダリングをユーザに示さないブラウザであってもよい。
【０１０３】
このブラウザは、待ち行列中の処理タスクＱＰＴ１...ＱＰＴｎを格納するためのタスク待ち行列ＴＱをさらに含む。これらタスクは、メインリソースの処理に対して非同期のタスクであり、たとえば、タイマ、ディファードスクリプト、スタイルシートアニメーション、非同期ＸＭＬ  Ｈｔｔｐ要求等を含み得る。このことは当業者が本明細書を読んで理解するであろう。
【０１０４】
いくつかのアプローチでは、ウェブページを処理するとき、ブラウザは、メインリソースＭＲ内の命令を同期的にすなわちシーケンシャルにパースおよび実行し得る。このとき、各タスクは前のタスクの完了を待つ。同期処理中にサブリソースに対する参照がある場合、同期処理は、この参照に従ってシーケンス内でサブリソースをパースおよび実行し、その後、メインリソースに戻り、終わりに達するまで続ける。メインリソースに対して非同期的に実行すべき命令があればまたはタスクへの参照がある場合、すなわち、メインシーケンスが非同期タスクの完了を待たずに続けられる場合、この命令または参照は、タスク待ち行列ＴＱに入れられ、時間があるとき、実行できる状態になったとき、一定時間が経過したもしくは特定のイベントが生じたとき、または、特定の種類のブラウザによってその他の非同期基準が認識されたときに、実行される。
【０１０５】
なお、さまざまな実施形態において、タスク待ち行列ＴＱは、単純な先入れ先出しバッファから、タスクの種類、優先順位、またはその他のカテゴリに分類されるバッファを経て、ランダムアクセスバッファまでのうちの、いずれであってもよい。ここに開示する発明の概念に関して、待ち行列中の処理タスクの関連する性質として、これらの待ち行列中の処理タスクが、メインリソースの同期処理が完了するまで、決して、間違いなく、実行されないことが、挙げられる。これらの処理タスクが実行されるならばいつ実行されるか、または、実行された結果さらに他の待ち行列中のタスクにつながるか否か、判断することは、不可能であろう。
【０１０６】
図１に示される発明の実施形態において、ここに開示する発明の概念に従う状態判定器ＳＤがさらに示される。この状態判定器は、ブラウザの一部としてたとえばブラウザに本来属するものとしてもしくはプラグインとして実現されてもよく、または、ウェブページを処理しているブラウザと通信する外部の特徴であってもよい。状態判定器ＳＤは、ウェブページの処理の完了の度合いを判定するまたは予想される情報を含むまでもしくは対話の準備ができるまで十分にウェブページが処理されたか否かを判定するための、たとえばアルゴリズム、一組のルールまたは論理ステートメント等を形成する、ソフトウェア命令および／またはハードウェア構成の形態の、ロジックを含む。上記情報は、状態判定器ＳＤから、ウェブページ処理状態ＷＰＰＳとして出力される。
【０１０７】
本発明の好ましい実施形態において、状態判定器ＳＤは、少なくとも待ち行列中の処理タスクに関連する、特定の処理イベントの発生時に、状態判定器内に設定されたパラメータＰ１...Ｐｎに基づき、ウェブページ処理状態ＷＰＰＳを判定する。パラメータは、たとえばパラメータレジスタＰＲに格納されてもよく、たとえば、待ち行列中の処理タスクの存在に関する情報、操作または対話している対象がどのようなオブジェクトかに関する情報、どのイベントがタスクの生成をトリガしたかに関する情報、もしあればどのタスクがタスク中に生じるイベントによって生成されたかに関する情報等を含み得る。たとえば、待ち行列中のタスクがタイマであれば、パラメータは、タイマＩＤ、タイムアウト時に実行されるスクリプトまたは命令、タイマについて設定された時間または間隔、タイマが始動したか否かに関する情報、またはすでにタイムアウトしたか否かに関する情報、タイマのチェーンもしくはその他の待ち行列中のタスクの一部であるか否かに関する情報、どのタスクがタイマを生成したかに関する情報、どの新たな待ち行列中のタスクがタイマによって実行されたスクリプトによって生成されるかに関する情報のうちの、１つ以上を含み得る。たとえば、待ち行列中のタスクが非同期ＸＭＬ  Ｈｔｔｐ要求である場合、パラメータは、ＸＭＬ  Ｈｔｔｐ要求のＩＤ、要求の種類および内容に関する情報、要求の対象であるサーバに関する情報、応答を受けたか否かに関する情報、応答の種類および内容に関する情報、応答の受信に関連して実行されるスクリプトに関する情報、ＸＭＬ  Ｈｔｔｐ要求のチェーンまたはその他の待ち行列中のタスクの一部であるか否かに関する情報、どのタスクが要求を生成したかに関する情報、どの新たな待ち行列中のタスクがたとえば応答への反応などとして要求をハンドリングするスクリプトによって生成されるかに関する情報のうちの、１つ以上を含み得る。
【０１０８】
ここに開示する発明の概念のある実施形態のより詳細な例において、タイマをインストールするイベントの、ブラウザ内の処理によって、たとえば状態判定器ＳＤにおけるパラメータＰ１を設定することにより、パラメータＰ１を設定してもよい。パラメータは、たとえば、クラス、テーブル、アレイ、またはその他の適切なデータ構造に格納してもよく、データ構造中の他の情報は、その出所を反映する変数またはデータフォーマットで格納するのが好ましい。たとえば、整数タイプの変数またはクラスプロパティでミリ秒時間間隔を格納する、ストリングタイプのプロパティまたは機能ポインタタイプのプロパティで機能名を格納する、等である。パラメータの設定は、好ましくは、ブラウザ内のイベントハンドラまたはイベントリスナークラスまたは方法によって行なわれてもよく、たとえば、状態判定器内の関連するクラスまたは方法を呼出すことにより、関連する処理イベントが検出されると、上記インストルメンテーションによって、可能になってもよい。ある実施形態において、ブラウザと状態判定器を統合することは、状態判定器のイベントリスナー方法またはクラスが、自身でイベントをインターセプトしそれに応じてパラメータ内の情報の分析と格納を生じさせるのに、十分強力であろう。パラメータＰ１は、たとえば、タイマの存在、タイマＩＤ、タイマ間隔および／または残り時間、タイマの始動時に実行すべき機能等に関する情報を含み得る。ウェブページの処理中に別のイベントが発生すると、非同期ＸＭＬ  Ｈｔｔｐ要求が開始される場合があり、これにより、たとえば、パラメータＰ２が状態判定器ＳＤに設定される。パラメータＰ２は、たとえば、ＸＭＬ  Ｈｔｔｐ要求（ＸＨＲ）の存在、固有ＩＤ、検索対象のオブジェクトの種類たとえばウェブページについてのその他のコンテンツ、実行すべきスクリプト等、または、ＸＨＲの目的のカテゴリ等に関する情報を含み得る。この例におけるパラメータＰ１およびＰ２が設定されてペンディングタイマおよび未終了のＸＨＲの存在が明らかになると、状態判定器のロジックは、好ましい実施形態において、メインリソースおよび何らかの同期サブリソースのシーケンシャルな処理がすでに終了しておりブラウザによってロード終了イベントの放出がすでに始動されていても、ウェブページ処理状態が、実際は処理がまだ終了していないことを示す値であると、判定し得る。
【０１０９】
引続き上記の例について、本発明の実施形態に従うと、ブラウザ内で、特定の固有ＩＤを有するＸＨＲが、ロードを終了し、そこから現われた同期イベントハンドラとともに実行されたことを示す、イベントが発生すると、状態判定器ＳＤにおけるパラメータＰ２は、このＸＨＲが終了したことを反映するように設定される。たとえば、ある実施形態において、パラメータＰ２を単純にクリアしてもよい。同様に、パラメータＰ１と一致するタイマＩＤを有するタイマが始動したことを、イベントが示すとき、関連する機能が実行され、同期イベントが処理され、パラメータＰ１は、たとえばペンディングまたは完了等を表わす値を用いてブーリアン（boolean）タイプのプロパティを設定することによって、無関係であることを反映してもよく、または単純にクリアされてもよい。そこで、状態判定器のロジックは、待ち行列中のタスクのペンディングの実行は残っていないと判定することができ、したがって、ウェブページ処理状態は処理が完了したことを示すように設定できる。
【０１１０】
本発明の好ましい実施形態において、状態判定器のロジックは、完了または準備の程度を示すための経路を含んでいてもよく、および／または必要な処理が実行されたこと、（たとえば初期化タスクではなく）演算タスクのみが残っていること等を示してもよい。このことは当業者が本明細書を読んで理解するであろう。この可能性は特に、ウェブページがブラウザ内で開いている限りたとえば多数の未終了の待ち行列中のタスクを維持するようにウェブページコードを設計および／または採用し得る実施形態において、好都合である。このことは特に、たとえばタイマによって制御されて周期的および／または連続的なコンテンツのロードを実行する、いわゆる１ページウェブのアプリケーションに当てはまる。たとえば、コンテンツの周期的な全体または部分リロードを利用するアプリケーションである。たとえば、ソーシャルメディアは、ブラウザ内でウェブページが開いている限り、または、繰返しタイマ、ディファードタスク、またはスタイルシート動画等を有するウェブページである限り、たとえばＸＨＲによって連続的に更新される。このことは当業者が本明細書を読んで理解するであろう。
【０１１１】
好ましいアプローチにおいて、周期的および／または連続的なコンテンツのロードは、ユーザがウェブページを探索するときにユーザに特別な経験を与えるように設計されるが、これは、特にユーザがウェブロボットであるときは、ユーザが探しているウェブページコンテンツの実際のロードおよび／またはハンドリングに関しては無意味かもしれない。このようなウェブページに対し、状態判定器ＳＤは、情報がおそらく準備されていることまたはすべてのロードが終了したこと等を示すようにウェブページ処理状態ＷＰＰＳを設定するためのロジックを含み得る。このことは当業者が本明細書を読んで理解するであろう。
【０１１２】
たとえば、あるアプローチにおいて、特定の種類の待ち行列中の処理タスクしか残っていないとき、または、残っているタスクがすべて、すでに実行されたタスクの繰返しであって実行されると自身を繰返し生成、呼出し、コールする等の場合、および／または特定の数の新たな（たとえばチェーン状の）タスクが実行されたときに、ウェブページ処理状態ＷＰＰＳは、情報が「おそらく準備されている」ことを示し得る。さまざまなアプローチにおいて、上記状態判定器のロジックはファジーロジックを含み得る。
【０１１３】
メインリソースの同期処理が完了する前に、存在している未処理の待ち行列中の処理タスクについて知ることができるようにするために、ウェブページプロセッサＷＰＰは、好ましくは、同期処理における命令またはイベントによって関連する種類の待ち行列中の処理タスクが確立されるたびにパラメータを設定する（たとえば状態判定器ＳＤにおけるパラメータＰ１...Ｐｎを設定する）ように構成する必要がある。言い換えると、すでに存在していなくても、ここ開示する発明の概念の実施形態におけるブラウザは、好ましくは、タスクの関連するすべての待ち行列作成および待ち行列中のタスクの実行または削除のために状態判定器のパラメータを観察し設定することができるよう、その他のハンドラを用いてインストルメント化される。言い換えると、ここに開示する発明の概念の実施形態は、同期実行環境の中に一種の観察ポイントを設けて、非同期の処理タスクのすべての生成を検出する。従来のブラウザ処理の場合はアイドル状態が処理が終了したことを意味するのかまたは同期タスクが戻ってくるのを単に待っているだけなのか判別することが不可能な場合がある。この従来の場合と異なり、ここに開示する発明の概念では、特定のウェブページについてのブラウザ内のすべての処理をまとめてリンクすることができ、このすべての処理には、最初の同期処理の完了後に生じる処理も含まれる。これは、ここに開示する発明の概念の実施形態に従うと、状態判定器内のパラメータによって可能になるので、いつでも、処理が終了したか否か、または、ウェブページの初期化をどの程度までおそらく完了したか判断することができる。
【０１１４】
図２および図３は、問題のさらに他の側面を示すための簡略化したシーケンス図とし提供される。このシーケンス図は、メッセージフロー中に原則のみを示すことによって簡略化したものである。実際は、当業者にはわかるように、示されている原則を実現するためのさらに他のメッセージおよびプロセスが存在し得る。図２は、典型的な単純なウェブページに対する先行技術のウェブページ処理の一例を示す、簡略化したシーケンス図である。メッセージ２−１により、ユーザは、たとえばインターネットアドレスとしてＵＲＬを入力することによってブラウザにウェブページを要求し、ブラウザは、このアドレス等を解釈した後、メッセージ２−２により、関連するウェブサーバにＨＴＭＬ文書すなわちウェブページのメインリソースを要求する。ウェブサーバは、ＨＴＭＬ文書とともに応答２−３をブラウザに送り、ブラウザはその処理を開始する。ある時点で、ブラウザは、メインリソースがサブリソースとしてＣＳＳ文書を参照していることを認識し、ブラウザは、メッセージ２−４により、ＣＳＳを、同期的にすなわちＣＳＳを待つことにより、要求する。ウェブサーバは、スタイルシートとともに応答２−５を返し、ブラウザはその同期処理を続ける。また、要求２−６によって別のサブリソースとして画像を要求し、それを２−７で受取った後、ブラウザは、メインリソースの処理を終了する。この例ではすべての処理およびイベントが同期であるため、メインリソースの処理の終了は、ブラウザがウェブページのロードおよび処理を終了したことも意味し、ブラウザはユーザのビューの更新２−８によってウェブページをユーザに対して表示する。
【０１１５】
図３は、非同期タスクを使用する複雑なウェブページに対する先行技術のウェブページ処理の一例を示す、簡略化したシーケンス図である。最初のウェブページの要求とメインリソースのロードおよび処理とサブリソースの同期ロードは、図２に関する先の説明と同様に、メッセージ３−１〜３−７によって行なわれる。しかしながら、この例では、図２に示されているものに加えた、メインリソースの処理により、非同期ＸＭＬ  Ｈｔｔｐ要求が３−８によってウェブサーバに送信され、以下でわかるように、これにより、ディファードスクリプトおよびタイマも作成される。しかしながらこれらはメインリソースのライフラインの中で同期処理されるのではない。よって、メインリソースが同期で扱われるすべてのサブリソースとともにロードを終了したとき、ブラウザは（明らかに）終了しており、ユーザのビューを３−９によって更新する。
【０１１６】
しかしながら、ある時点で、ブラウザのプロセッサは再び３−１０によって、先の同期処理において作成されたが実行されなかったディファードスクリプトを実行する。このスクリプトが終わりに達したとき、プロセッサは（明らかに）終了し、ユーザのビューを３−１０によって更新する。
【０１１７】
同様に、ある時点で、ブラウザのプロセッサはもう一度起動して先の同期処理によってインストールされたが始動されなかったタイマによってトリガされたスクリプトを３−１２によって実行する。再び、タイマスクリプトが終了すると、ブラウザは終了しユーザのビューを３−１３によって更新する。
【０１１８】
また、ある時点で、ウェブサーバは、これも以前に送信されたものであるＸＭＬ  Ｈｔｔｐ要求の結果とともに３−１４によって非同期で応答する。ブラウザは、結果を処理し、ユーザのビューを３−１５によって更新し、再び、ウェブページの処理をおそらく終了したことを知る。
【０１１９】
図３に示される例では、さらに他の非同期イベントは発生しないものの、他の例では、他のいくつかのタスクが設定されている可能性があり、または、これも典型的であるが、非同期タスクがさらに他の非同期タスクを確立させる可能性があり、または、インターバルタイマがそのスクリプトを何度も非同期で実行する可能性がある。
【０１２０】
図４は本発明の実施形態を簡略化したシーケンス図で示し、図４では、簡略化したメッセージフローが、たとえば図３を参照しながら先に説明したような、複雑なウェブページのロードが、如何にして、状態判定器ＳＤを用いる、ここに開示する発明の概念の実施形態になるかを概念的に示す。シーケンス図は、メッセージフロー内に原則のみを示すことによって簡略化している。実際は、当業者にはわかるように、示されている原則を実現するためのさらに他のメッセージおよびプロセスが存在し得る。
【０１２１】
ユーザはメッセージ４−１によってブラウザにウェブページを要求し、ブラウザはメッセージ４−２によって状態判定器ＳＤにブラウザがメインリソースのロードを開始することを知らせる。このイベントは、たとえば状態判定器におけるパラメータＰ１にたとえばどのウェブページおよびどのような文書がメインリソースを構成するか等に関する情報とともに、格納されてもよい。ブラウザはまた、４−３によってウェブサーバにＨＴＭＬ文書を要求し、ウェブサーバはＨＴＭＬ文書とともに応答４−４をブラウザに送信する。
【０１２２】
処理中に、ブラウザは、メインリソースがサブリソースとしてＣＳＳ文書を参照していることを認識し、ブラウザは、メッセージ４−５により、ブラウザがサブリソースをロードしていることを状態判定器ＳＤに知らせる。状態判定器は、たとえば、この情報をサブリソースの種類に関する情報とともにたとえばパラメータＰ２に格納してもよい。次に、ブラウザは、ＣＳＳ文書をメッセージ４−６によって同期的にすなわちＣＳＳを待つことにより要求する。ブラウザは、スタイルシート文書を４−７で受けると、状態判定器ＳＤに、４−８によって、ブラウザがこの特定のサブリソースのロードを終了したことを知らせる。ある実施形態では、状態判定器はパラメータＰ２をクリアする。なぜなら、ブラウザが何に対してビジーなのか判定することにはもはや関係がないからである。本発明のこれに代わる実施形態において、状態判定器は、パラメータＰ２をパラメータレジスタに保持してもよいが完了したことをマークしておく。
【０１２３】
図４のイベント４−９〜４−１２は、イベント４−５〜４−８に関して説明したのと同様に、メッセージを用いて別のサブリソースをロードしたとえば第３のパラメータＰ３により追跡を続けることを示す。
【０１２４】
画像サブリソースの同期処理を終えた後、ブラウザは、図４の例では明リソース中の、非同期ＸＭＬ  Ｈｔｔｐ要求がなされようとするポイントに達する。このイベントを反映するメッセージ４−１３が、この情報をたとえばパラメータＰ４に格納する状態判定器ＳＤにされ、ブラウザは４−１４によって非同期ＸＭＬ  Ｈｔｔｐ要求をウェブサーバに送信する。これは非同期タスクなので、ブラウザプロセッサは休止してウェブサーバからの応答を待つことはないが、直ちにメインリソース処理に進む。この例において、このことは、実行を後までディファードするスクリプトを待ち行列に入れること、およびタイマをインストールして指定時間後に始動させることを含む。すなわち、これらはどちらも非同期タスクでありブラウザの処理を休止させない。ディファードスクリプトを待ち行列に入れるとき、ブラウザは、メッセージ４−１５によって、状態判定器ＳＤに知らせ、状態判定器はこのイベントを、ディファードスクリプトに関する情報をそのパラメータレジスタ、この例ではたとえばパラメータＰ５に格納することによって、追跡してもよい。同様に、タイマのインストール時に、ブラウザは、メッセージ４−１６によって状態判定器ＳＤに知らせ、これは、たとえばパラメータＰ６によって、たとえばタイマのＩＤ、タイマの始動の時間、場合によってはタイマの始動時に実行する命令またはスクリプトに関する情報を格納することによって、追跡される。
【０１２５】
引続き図４の例において、ブラウザが、メインリソースに関する同期処理を完了したとき、ブラウザはそのことをメッセージ４−１７によって状態判定器に知らせる。状態判定器はこのことを、メインリソースのロードの開始時に先に生成されたパラメータＰ１と関連付けられたものと認識し、この実施形態では、パラメータＰ１をクリアすることによって、これがブラウザの準備完了状態の判定にもはや影響しないことを示してもよく、または、これに代わる実施形態ではＰ１を単に完了したものとマークするだけで情報を保持してもよい。最後に、ブラウザや、その時点までに実行された処理に基づいて、４−１８によりユーザのビューを更新する。
【０１２６】
ユーザに対する応答４−１８後、ブラウザは明らかにウェブページの処理を行なっていないが、本発明に従う状態判定器ＳＤは非同期タスクを追跡し続けているので、この例では状態判定器に対する問合せ４−１９によって、状態判定器にパラメータＰ１〜Ｐ６を考慮させ、ビジーメッセージ４−２０によって示されるように実際はまだブラウザが処理していると評価してもよい。なぜなら、パラメータＰ１〜Ｐ３に関連するタスクのみが完了とマークされタイマはまだ始動されていないからである。
【０１２７】
ある時点において、図４のブラウザプロセッサは、４−２１によってディファードスクリプトを実行し、これに関するメッセージ４−２２を、関連する同期処理すべてが実行されたときに、状態判定器に送信する。状態判定器はパラメータＰ５をクリアするかまたは完了したことをマークする。ブラウザは４−２３によってユーザのビューを更新し、ディファードスクリプトの実行によってなされた変更を反映する。ここでもまた、ブラウザプロセッサは明らかにウェブページの処理を終了しているが、上記のように、状態判定器に対する問合せ４−２４がなされることにより、この場合も処理がまだ終了していないことが応答４−２５から明らかにされる。なぜなら、ＸＭＬ  Ｈｔｔｐ要求に関するパラメータＰ３およびタイマに関するパラメータＰ５が依然としてペンディングの非同期タスクを反映しているからである。
【０１２８】
同様に、タイマが始動する時間を、この例における状態判定器は、タイマのスクリプトの実行の開始前に４−２６によって通知され、上記のように、タイマによりトリガされたすべての同期処理４−２７が終了したときに４−２８によって通知される。この特定のＩＤを有するタイマに関する新たな情報を受信するたびに、状態判定器はパラメータＰ６を更新し、メッセージ４−２８を受信したことにより、Ｐ６をクリアするかまたは完了したとマークする。上記のように、４−２９によってビューが更新されすべての処理が完了したように見えると、状態判定器に対する問合せ４−３０に対し、ビジー！応答４−３１がなされる。なぜなら、パラメータＰ３によってペンディングの非同期ＸＭＬ  Ｈｔｔｐ要求をまだ追跡しているからである。
【０１２９】
非同期ＸＭＬ  Ｈｔｔｐ要求に応答したウェブブラウザからの結果４−３２が最終的に受信され応答の非同期処理に関連するすべてのタスクが実行されたとき、状態判定器はそれを４−３３によって通知され、ＸＭＬ  Ｈｔｔｐ要求に関するパラメータＰ３における情報をクリアするまたは完了とマークすることができる。次に、ウェブページ処理状態ＷＰＰＳに関する状態判定器に対する別の問合せ４−３５の結果、４−３６によって準備完了！応答４−３６がなされる。なぜなら、すべてのタスクがクリアされまたは完了しており、パラメータレジスタには、ペンディングの、すけージュールされた、ディファード、時間が決められた、待ち行列中等のまたは他の非同期のタスクはないからである。
【０１３０】
上記例において、状態判定器は、通知されたすべてのイベントを、同期イベントと非同期イベントどちらも追跡し続ける。他の実施形態において、非同期イベントのみが、場合によっては重要な同期イベント、たとえばメインリソースの処理の開始および終了とともに、パラメータレジスタに保持される。
【０１３１】
図３と図４の比較からわかるように、ブラウザがメインリソースと関連する同期タスクの処理を終了した後に、準備または完了の程度を反映するウェブページ処理状態を状態判定器が判定することを容易にするのは、主として非同期イベントの追跡である。言い換えると、同期処理中に、状態判定器は、作成されているすべての非同期タスクに接続して、これらタスクが存在するという事実を用いてこれらがいつ実行されるか追跡できるようにする。しかしながら、本発明の他の実施形態でも、たとえばペンディングタスクに関する情報を用いて、下記のように、より確かな情報に基づくウェブページ処理状態ＷＰＰＳを確立するために、これらペンディングタスクの関連性または優先順位を判定する。ここに開示する発明の概念の実施形態では、同期処理中に非同期タスクをこれらが作成されたときに登録できるようにすることで、状態判定器は、非同期タスクのチェーニング（chaining)を追跡することができる、すなわち、非同期で作成されたタスクの実行によって新たな非同期タスクが生成されたとき、たとえばタイマはそれが実行されるたびに始動し直し、たとえば、バナーもしくは画像回転器を駆動するかまたは３０秒ごとに自動ニュース更新を実行する。
【０１３２】
ここに開示する発明の概念のある実施形態に従うと、非同期に実行するために待ち行列に入れるべきタスクの作成は、状態判定器内のパラメータの作成または更新をモニタリングし使用することに関連し得る。これは、本発明の範囲に含まれると考えられる。しかしながら、実際的ないくつかの例を挙げると、現代のブラウザおよびウェブページを扱う好ましい実施形態は、たとえば、以下の表１に列挙した状況に関連するイベントの追跡を用いてインストルメント化してもよい。なお、記載したイベントのうちのいくつかは、標準ブラウザによって自動的に始動されるものではないが、ブラウザは、ここに開示する発明の概念の実施形態における目的に合わせてインストルメント化し得る。また、特定したイベントのうちのいくつかは、必ずしも非同期のタスク実行に関連していないが、本発明の好ましい実施形態に含まれて、ウェブページ処理状態の、状態判定器による評価およびモニタリングを容易にすることができる。上記のように、典型的に、追跡イベントの次には、開始されているまたは変更されている特定のオブジェクトを識別する情報またはその他の関連情報が続き、追跡イベントに応じて作成され更新されたパラメータに基づいてウェブページ処理状態全体における変更を状態判定器が判定し易くする。なお、表１はすべてを網羅したものではなく、必須でもない。ここに開示する発明の概念の特定の実施形態における用途に関連するイベントは、より少ない、多い、および／またはその他のイベントである場合もある。上記特定の実施形態は、たとえば、ウェブページプロセッサＷＰＰの他の実装例、可能なタスクの範囲を拡張する他のブラウザアドオン、および当然ながら今後の種類の非同期タスクについての実施形態である。
【０１３３】
【表１−１】
2017501512.tif 000003
【０１３４】
【表１−２】
2017501512.tif 000004
【０１３５】
上記のように、本発明の実施形態において、ウェブページ処理状態ＷＰＰＳを「終了した処理」等に設定するために使用することができる１つの基準は、単に、すべての非同期タスクが実行されるのを待つことである。これは、本発明の実施形態では、たとえば図４を参照しながら先に述べたように、状態判定器のパラメータをモニタリングすることによって行なうことができる。しかしながら、これも先に述べたように、いくつかのウェブページは、たとえば更新のロードのためまたは向上したユーザ経験を提供するために、非同期タスクを繰返し作成する。このようなウェブページの場合、すべての非同期タスクがなくなるのを待つという単純な基準は、典型的に、状態判定器が、ウェブページ処理状態ＷＰＰＳを処理状態の完了を示すように変更することがあり得ないことを意味し得る。
【０１３６】
本発明の好ましい実施形態では、したがって、状態判定器は、異なる基準を使用するように設定されてもよく、または、たとえば特定の状況に応じて選択する一組の基準を有するように設定されてもよい。好ましい実施形態において、この基準は、状態判定器のパラメータのモニタリングにおよび／または以下でより詳細に説明するようにウェブページの解析の実行に基づくが、ここに開示する発明の概念の実施形態では時間基準との組合わせも実現し得る。
【０１３７】
以下の表２には、ウェブページ処理状態ＷＰＰＳを、たとえアクティビティがまだ続けられていても、たとえば、完了、完了もしくは準備完了状態の程度、または対話の準備ができている状態に設定するための、代替の基準の例が記載されている。この基準のリストはすべてを網羅したものではなく、必須でもない。本発明の他の実施形態ではこれよりも少ない、多い、および／または他の基準が関連し採用される場合がある。異なる基準は、異なる実施形態では、たとえば累積において重み付けが異なることによって、優先順位付けが異なる場合があり、および／またはいくつかの基準を、他を考慮する前に満たす必要がある場合もある。
【０１３８】
【表２−１】
2017501512.tif 000005
【０１３９】
【表２−２】
2017501512.tif 000006
【０１４０】
先に述べたように、上記の例のような基準を用いると、際限ない更新の繰返し、画像の回転、株式相場表示機等のアクティビティが依然として生じておりブラウザによって処理されていても、状態判定器がウェブページ処理状態ＷＰＰＳをたとえば完了または準備完了状態に設定するのが容易になる。また、状態判定器は、処理が完了するまで長い固定時間単純に待つのではなく、ウェブページ処理状態ＷＰＰＳを判定後直ちに完了または準備完了状態に設定することができる。
【０１４１】
また、単純な総時間の基準ではなく、上記の定性的な基準または同様の基準を用いることにより、特定のウェブページについて、ウェブページ処理状態ＷＰＰＳが、ウェブページが処理されるたびに同じ段階で確実に変化するようになる。このことは、たとえば、リソースのロードが行なわれる時間、処理が行なわれる時間等の時折の小さな変化とは無関係であり、かつ、ＸＭＬ  Ｈｔｔｐ要求に対する異なる応答が異なる順序で到達するか否か等とは無関係である。このことは特に、ウェブロボットによる自動ブラウジングに関連がある。なぜなら、ウェブロボットは、本質的に訪問されるたびに挙動が変化するウェブページを解析または使用することができない場合があるからである。その理由は、固定されたタイムアウトによってロボットは処理の異なる段階で進行することになるからである。状態判定器が使用する基準のうちのいくつかは、取り得る値が多数である場合があり、したがって、上記基準のうちのいくつかについて述べたように、しきい値との比較、値空間内の異なる範囲に異なる重みをマッピングすること等によって、評価し得る。
【０１４２】
状態判定器は異なる基準を考慮してもよく、最終的には、わずか数個たとえば場合によっては２つのウェブページ処理状態ＷＰＰＳのうちの１つ、たとえば「ビジー」または「準備完了」、または、「ビジー」、「準備完了」または「完了」になる。ある代替の実施形態において、ウェブページ処理状態を、たとえば、しきい値ではなく重み付けによって基準値を考慮することにより、準備完了または完了状態の確率または程度で判定してもよい。ある実施形態において、ウェブロボットまたはその他のユーザは、しきい値、重みを設定することができる、または、状態判定器内の基準の追加または無視さえできる。ある実施形態において、ウェブページ処理状態ＷＰＰＳは、状態判定器によって、状態についての理由またはコメントとともに、たとえば、繰返しタイマがまだアクティブであるが１００回の繰返しを超えているものの処理は完了したと思われるというコメント等とともに、提供される
ある実施形態において、状態判定器において設定されたパラメータの解析を、レンダリングされたウェブページの解析と組合わせてもよい。いくつかのウェブページについて、極端に量が多い非同期タスクまたは非常に多いタスクの繰返しおよびチェーニングが原因で、状態判定器が、イベント追跡のみに依拠して、適切な処理状態を判定すること、または、関連する、ウェブページが対話の準備ができていることまたはその内容の使用の準備ができていることを信号で知らせる時間を判定することが、難しくなる場合がある。いくつかのウェブページについて、ウェブページが画像、広告バナーのロード、統計または目標設定のためのスクリプトの実行等を完了する時点よりも相当時間前に、関連する、対話のためのオブジェクトまたは使用するコンテンツをロードして準備してもよい。これらの状況いずれにおいても、イベント追跡のアプローチを、ブラウザによってレンダリングされたウェブページの地理的解析すなわちブラウザのメモリ内のグラフィカル表現ＧＲと、および／またはブラウザのドキュメントオブジェクトモデル（ＤＯＭ）ツリーすなわちブラウザのメモリ内のウェブページの形式的表現と、組合わせるのが好都合であろう。
【０１４３】
ウェブページのグラフィカル表現の地理的解析を使用する例として、たとえば、ウェブサイトの関連コンテンツに到達するのにログインが必要であり、ログインフォームがそうでなければ無関係のフロントページにありユーザ名およびパスワード用のテキストボックスとログインボタンを含むことがわかっている状況が挙げられる。この解析は、たとえば先行技術で利用できる画像解析技術を用いて、場合によってはある程度のテキスト認識と組合わせて、フロントページのグラフィカル表現の右上の角の、上記性質のログインフォームの出現について、調べることを含み得る。ログインフォームが現われると、状態判定器は、ウェブページ処理状態ＷＰＰＳを、「続行準備完了状態」等のような状態に設定してもよい、または、グラフィカルな解析による情報を、イベント追跡に関連して設定したパラメータに基づく情報とともに用いて、準備完了状態を信号で知らせるのに適した時間を判定してもよい。
【０１４４】
ここに開示する発明の概念の実施形態においてウェブページのグラフィカル表現の解析を用いることは主として、ユーザが前もって探す対象とそれがどのように見えるはずであるかを定めている場合、たとえば、自動的に同一のウェブページからのデータを頻繁に見るようウェブロボットをユーザが設定している場合に、ウェブページをブラウジングするのに好都合である。しかしながら、ここに開示する発明の概念のこの実施形態はまた、たとえば視覚障害があるユーザ、そうでなければ常に画面をモニタリングできないもしくはそれを望まないユーザのために、待ち時間を減じるのにも有益であろう。
【０１４５】
ウェブページのグラフィカル表現の地理的解析の使用の上記例はまた、必要な変更を加えて、ＤＯＭツリーの解析によってイベントのモニタリングを補助する本発明の実施形態に適用し得る。たとえば、状態判定器は、ＤＯＭツリーをモニタリングすることにより、２つのテキストボックスとログインボタンを有するフォームのためのＨＴＭＬタグがいつ現われるかを、関連するログインランディングページのＵＲＬとともに、直ちに知ることができる。この解析は、関連するフォームの検証スクリプトがロードされること等を待つことを含む場合も含まない場合もある。現われると、状態判定器は、ウェブページ処理状態ＷＰＰＳを、「続行準備完了状態」のような状態に設定してもよく、または、ＤＯＭツリー解析からの情報を、イベント追跡に関連して設定したパラメータに基づく情報とともに用いて、準備完了状態を信号で知らせるのに適した時間を判定してもよい。
【０１４６】
グラフィカル解析に関連して先に説明したのと同様に、補助するＤＯＭツリー解析は、特定のウェブページについてＤＯＭツリー解析で探す対象を前もってユーザに定めさせることができる場合、たとえばウェブロボットを用いて、わかっているウェブページを繰返しロードするときに、特に有用である。ＤＯＭツリー解析を含むここに開示する発明の概念の実施形態を用いて、障害のあるユーザのためにブラウジングを改善してもよい。
【０１４７】
ここに開示する発明の概念は、図５に示されるように、ウェブロボットＷＲにウェブページをブラウジングさせるときに、特に有用である。ウェブロボットＷＲはロボット記憶装置ＲＳを含む。すなわちこれは、ウェブページから取出したコンテンツおよびその他の情報を格納する。これは一時的にはたとえばＲＡＭ等であってもよく、および／またはより永続的にはハードドライブまたはフラッシュドライブであってもよい。
【０１４８】
図５は、ウェブロボットＷＲが、特定のウェブページがウェブページプロセッサＷＰＰによってロードされ処理されることを要求することを示す。状態判定器ＳＤは、特定の間隔で、ペンディングの待ち行列中のタスク等を反映する現在のパラメータに従ってウェブページプロセッサＷＰＰＳを判定および設定し、この情報を、積極的にプッシュすることによってまたはウェブロボットからの問合せに答えることによって、ウェブロボットＷＲが利用できるようにする。ウェブページプロセッサＷＰＰが、許容可能な状態ＷＰＰＳ、たとえば、処理完了状態、対話準備完了状態、コンテンツロード済状態等を示す状態に達したとき、ウェブロボットＷＲは、好ましくは、ウェブロボット記憶装置に格納するための関連コンテンツ、例としてたとえば新たなウェブページを要求することによってまたはたとえばログインもしくは探索のためにウェブページのフォームに記入して通知することによって、収集する予定であったコンテンツ、および／または対話する予定の形態の対話の対象のロード済みウェブページのコンテンツを、格納する。
【０１４９】
図１１は、ブラウザＷＢが、ウェブページプロセッサＷＰＰと、グラフィカル表現ＧＲを保持するためのメモリと、タスク待ち行列とを含む、本発明の実施形態を示す。ブラウザＷＢと通信するのは、パラメータレジスタＰＲからのパラメータを格納し検索するとともにウェブページ処理状態ＷＰＰＳを出力するように配置された状態判定器ＳＤである。好ましくは、ブラウザＷＢは、ウェブサーバまたはその他のネットワーク接続可能な装置から、ウェブページをともに形成するメインリソースＭＲおよびサブリソースＳＲ１、ＳＲｎを、検索できるようにするために、ネットワークＮたとえばインターネットに接続される。さまざまなブロック、特に状態判定器、および、状態判定器とブラウザが相互にサポートするように配置する方法を、たとえば先に図１〜図５を参照して本明細書で説明した実施形態のいずれかに従い、実施することができる。また、上記のように、本発明の範囲に含まれる代替の実施形態では、ブラウザＷＢが、状態判定器を外部構成要素とするのではなく、パラメータレジスタＰＲとともにまたはパラメータレジスタなしで、状態判定器ＳＤを本来属するものとしてもしくはプラグインとして含んでいてもよい。
【０１５０】
遅延変換
特にウェブロボットであるがしばしば人間のユーザにとっても、いくつかのウェブページに対するアクセス可能性を減じるまたはいくつかのウェブページをブラウジングの対象として無効にする、異なる側面は、タイマ、ディファードスクリプト、遅延されたリダイレクト、および、未来の絶対または相対時間に対してスケジュールされたその他すべてのウェブページ処理タスクの使用である。ユーザまたはロボットは、特定のコンテンツにしか興味がないとき、または別のウェブページに進むためにまたは対話するために特定のリンクまたはフォームが現われるのを待っているとき、一般的に、コンテンツを画面の側部から飛び込ませる気まぐれなＣＳＳ遷移、フォームがゆっくりと現われるようにするスクリプト、先に進む前に広告を１０秒間見ることを強いるタイマ、５秒でリダイレクトが生じるであろうというメッセージ等を待つことには興味がない。意図的な遅延を利用するウェブページをブラウジングするロボットが経験する課題は、たとえば、ロボットが、ウェブページのロードを要求してから、ウェブページがロードされ対話の準備ができたと想定する前に、所定時間待つようにされている場合は、もっと悪い場合がある。認識可能な経験をユーザに与えることを意図しているので、ウェブページにおける量にして何秒かの意図的な待機時間は、重要であることが多く、そのため、累積された待機時間は、しばしばまたは少なくとも適当なリスクを伴って、ロボットがより安全性が高いがより遅くなる極端に長い待機時間を設定されているのでない限り、ロボットに設定された想定される安全な待機時間を超えている場合がある。
【０１５１】
図６に示す、ここに開示する発明の概念の好ましい実施形態において、遅延変換器ＤＣは、タイマおよびその他の遅延を含むウェブページのブラウジングを改善するために提供され、いくつかまたはすべての意図的なウェブページ処理遅延が不要または無関係とみなされる状況において、特に有用である。
【０１５２】
図６は、図１と同様、ブラウザの一部を構成するウェブページプロセッサＷＰＰによってネットワークＮを介してフェッチされて処理される、典型的にはＨＴＭＬ文書であるメインリソースＭＲを示す。典型的に、多数の、その他のリソース、サブリソースＳＲ１、ＳＲｎ、たとえばスタイルシート文書、画像ファイル、スクリプトファイル等も、ウェブページプロセッサＷＰＰにおける処理中に、メインリソースまたはその他サブリソースの参照に従い、または、スクリプトもしくはその他のクライアント側処理済コンテンツにおける命令の実行の結果として、フェッチされる。ウェブページを処理すると、典型的にはウェブページのグラフィカル表現ＧＲがレンダリングされることになる。グラフィカル表現は、ブラウザが使用するメモリの内部にあるが、当然、コンピュータのモニタまたはディスプレイ上においてユーザにも示される。なお、本発明の範囲に含まれるブラウザは、典型的なウェブブラウザであってもよく、場合によっては、コンピュータまたはスマートフォンにおいて見られる適切なブラウザプラグインを有する、または、上記ブラウザは、ヘッドレスブラウザ、すなわち、ウェブページの内部処理を実行するだけでそのグラフィカルレンダリングをユーザに示さないブラウザであってもよい。
【０１５３】
このブラウザは、待ち行列中の処理タスクＱＰＴ１...ＱＰＴｎを格納するためのタスク待ち行列ＴＱをさらに含む。これらタスクは、メインリソースの処理に対して非同期のタスクであり、たとえば、タイマ、ディファードスクリプト、スタイルシートアニメーション、非同期ＸＭＬ  Ｈｔｔｐ要求等を含み得る。待ち行列中の処理タスクのうちのいくつかは、関連付けられたタイミング情報、たとえば、タスクの実行前に経過する時間、および、繰返しタスクの実行と実行の間に経過する時間間隔、場合によってはタスクを実行する最も早い許容可能な時間の絶対時間等、とともに、生成されるであろう。ウェブページ処理するとき、ブラウザは基本的に、メインリソースＭＲ内の命令を同期的にすなわちシーケンシャルにパースし実行する。このとき、各タスクは前のタスクの完了を待つ。同期処理中にサブリソースに対する参照がある場合、同期処理は、この参照に従ってシーケンス内でサブリソースをパースおよび実行し、その後、メインリソースに戻り、終わりに達するまで続ける。メインリソースに対して非同期的に実行すべき命令または参照があれば、すなわち、メインシーケンスが非同期タスクの完了を待たずに続けられる場合、この命令または参照は、タスク待ち行列ＴＱに入れられ、時間があるとき、または、上記タイミング情報に従って、実行される。また、同期的に処理されているタスクには、同期処理を遅延させ得るまたは特定の時間もしくは特定の時間まで待機させ得る、関連するタイミング情報がある場合がある。
【０１５４】
遅延変換器ＤＣは、遅延変換器が上記タイミング情報のうちのいくつかまたはすべてを制御できるように、ウェブページプロセッサＷＰＰと関連して配置される。これは、本発明の好ましい実施形態において、関連するタイミング情報がある待ち行列中の処理タスクＱＰＴが生成されるたびに、遅延変換器ＤＣに知らせるよう、ブラウザをインストルメント化することによって、実現し得る。ある実施形態において、これは、上記表１に列挙されているイベントのうちのいくつかまたはすべてを追跡することによって、実現し得る。本発明の代替の実施形態は、すべての待ち行列中のタスクまたは時間が決められたいくつかまたはすべてのタスクが、遅延変換器ＤＣを介して、または、時間が決められたタスクがいつ生成されるかまたは存在するか判断するためにタスク待ち行列ＴＱをモニタリングするように遅延変換器ＤＣを配置することによって、生成されるように、実装し得る。
【０１５５】
上記実施形態のうちのいずれにおいても、遅延変換器は、時間が決められたタスク、すなわちタイミング情報がある待ち行列中の処理タスクが実行される前に経過する時間の量を減じるまたは制限するように配置される。これはたとえば、遅延変換器ＤＣが、すべてのタイミング値を、絶対、相対、または比例デクリメントによって、時間が決められたタスクがより早くおよび／または高速に実行されるようにする新たな値に変更することによって、実現し得る。ある実施形態において、遅延変換器は、たとえば、すべての遅延、タイマ値、待機時間等を、ウェブページ文によって与えられた実際の値にかかわらず、特定のブラウザにとって可能な最小のまたは妥当な値、たとえば１ｍｓに、設定し得る。これにより、遅延等は実際無意味になり、少なくとも、リソースの検索において生じ得るボトルネックを無視したとき、処理は瞬間的になるように見える。代替の好ましい実施形態において、遅延変換器ＤＣは、たとえば、いくつかまたはすべてのタイミング値を、元の値の特定の比率、たとえば１／１０００に設定し得る。こうすれば、実際、すべての待機は、ウェブページデザイナーが意図した待機の１０００分の１になる。上記実施形態は、本発明の一実施形態において、特定の遅延が可能な最小値にリセットされてこれらが瞬間的なものに見えるようにする一方で、それ以外の遅延は代わりに比例して短縮されてこれらが遅延があるものに見えるが意図されたものよりも速くなるように、組合わせてもよい。
【０１５６】
本発明のある実施形態において、たとえば図７に示されるように、遅延変換器ＤＣを、タスク待ち行列ＴＱを制御する機能、たとえばタスクを生成しモニタリングしディスパッチする機能において、実装してもよい。このようにすると、遅延変換器は、特定のウェブページについてブラウザに現われる、遅延、タイマ等を完全に制御し、たとえば、要求された値と比較して減じられたタイミング情報を有するタスクを生成することができる、および／または、タスクを、実際ディスパッチされるように設定された時間よりも、相対、または比例時間だけ前の時間に、ディスパッチすると判断してもよい。
【０１５７】
本発明の好ましい実施形態において、遅延変換器ＤＣは、明らかにウェブページデザイナーによって設計されたものであろう順序で、タスクのうちの少なくともいくつかが実行されるよう管理するための、ロジックを含み得る。これはたとえば、元のタイミング情報と変換されたタイミング情報のリストを維持しており、リストに対応して遅延値を増した新たなタイミング値を適用し、および／または、タスク待ち行列を制御する場合は元のタイミング情報に従って待ち行列中のタスクの順序付けをする、遅延変換器ＤＣによって実現し得る。
【０１５８】
本発明に従う遅延変換器ＤＣは、ブラウザの一部としてたとえばブラウザに本来属するものとしてもしくはプラグインとして実現されてもよく、または、ウェブページを処理しているブラウザと通信する外部の特徴であってもよい。
【０１５９】
ここに開示する発明の概念に従う遅延変換は、ウェブロボットによってウェブページをブラウジングするときに、大抵はユーザに特別な経験を提供するためにウェブデザイナーが利用する遅延が、せいぜい無関係であるがウェブロボットの有効性および検索されたコンテンツの品質に対して負利益である場合に、特に有用である。
【０１６０】
組合わせ
本発明の好ましい実施形態において、ウェブページ処理がいつ完了したかまたは少なくともウェブページとの対話に十分な程度であるかの判定に関連する上記実施形態のうちの１つ以上を、ウェブページの遅延、タイマ等を高速化することに関する上記実施形態のうちの１つ以上と、組合わせる。本発明に従う組合わせの実施形態のいくつかの例が、図８〜図１０に示される。図８において、状態判定器ＳＤと遅延変換器ＤＣ双方が、ウェブページプロセッサＷＰＰと関連付けられて、ブラウザの一部として、プラグインとして、または、少なくともウェブページプロセッサと通信するものとして、配置される。イベントを追跡するためのブラウザのインストルメント化は、好ましくは、遅延変換器ＤＣが、タイミング情報を、状態判定器ＳＤがそのパラメータを更新する前に変換して、変換されたタイミング情報がパラメータレジスタＰＲに登録されるように、実現される。これに代えて、遅延変換器は、タスク待ち行列およびパラメータレジスタ双方のタイミング値を変換してもよい。
【０１６１】
図９は、遅延変換器ＤＣがウェブページプロセッサＷＰＰと状態判定器ＳＤとの間に位置し、遅延変換器が、遅延を制御し、変換されたタイミングに関する情報を含めて関連するイベントすべてを状態判定器に知らせる、実施形態を示す。図１０は、遅延変換器ＤＣが、タスク待ち行列を管理することによって、遅延変換器に接続されている状態判定器ＳＤにおいて一貫して同じ値を維持することができるように配置された、実施形態を示す。ここに加持する発明の概念の他の好ましい実施形態は、図１１を参照して先に説明した実施形態を、たとえば図６を参照して先に説明した遅延変換器ＤＣと組合わせたものを含む。
【０１６２】
上記のように、ここに開示する発明の概念に従う遅延変換は、より効果的なコンテンツ検索のためにウェブロボットを用いてブラウジングするときに有用である。しかしながら、ここに開示する発明の概念の遅延変換を、ここに開示する発明の概念のウェブページ処理状態と組合わせることにより、非常に有利な、ロボットに都合が良いブラウジングが得られる。なぜなら、遅延変換器は、出来る限りすべての待機を減じるように働き、状態判定器はウェブロボットが続行するのに安全であるとみなされるとすぐに信号で知らせるように配置されるからである。好ましい実施形態は、図５を参照して先に述べたウェブロボットブラウジングの実施形態を、図６を参照して先に述べた遅延変換器と組合わせてもよい。
【０１６３】
本発明の好ましい実施形態が図１２に示され、この実施形態において、ウェブロボットＷＲはブラウザＷＢにウェブページを要求する。ブラウザは、ウェブページの処理およびロード時間を最小にするために、たとえば上記実施形態のうちのいいずれかに従う遅延変換器ＤＣと対話する。ブラウザはさらに、たとえば上記実施形態のうちのいずれかに従う状態変換器ＳＤにおけるパラメータを設定することにより、関連するウェブページ処理状態を状態判定器が判定し易くなるようにする。ウェブロボットは、ウェブページ処理状態をモニタリングするために、および／または所望の状態が得られたときに通知されるようにするために、状態判定器と対話することによって、次のタスクに進むことができる、たとえばウェブブラウザに新たなウェブページを要求することができる、または、現在のウェブページと対話することができる。なお、本発明の範囲に含まれるウェブページとの対話によって、技術的にはウェブページのリロードを必要としないであろうが、遅延変換器ＤＣによって最適化でき状態判定器ＳＤによってモニタリングできる処理が得られる。ブラウザＷＢ，状態判定器ＳＤ、遅延変換器ＤＣ、またはウェブロボットＷＲ、または関連する構成要素を参照して先に述べたいずれの実施形態も、本発明の範囲において図１２の実施形態と組合わせることができる。
【０１６４】
方法は、状態判定器（ＳＤ）における１つ以上のパラメータ（Ｐ１...Ｐｎ）を設定するステップを含み得る。１つ以上のパラメータは各々、待ち行列中の１つ以上の処理タスク（ＱＰＴ）に関連する予め定められた１つ以上の処理イベントに少なくとも一部基づく。方法はまた、予め定められた１つ以上の基準に従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に少なくとも一部基づいて、ブラウザ（ＷＢ）のウェブページ処理状態（ＷＰＰＳ）を判定するステップと、上記予め定められた１つ以上の処理イベントを追跡するステップとを含み得る。上記状態判定器における上記１つ以上のパラメータを設定する上記ステップは、関連するオブジェクト情報とともに予め定められた処理イベントの発生に従って、実行し得る。方法はまた、ウェブロボット（ＷＲ）を上記ウェブページ処理状態（ＷＰＰＳ）に通信可能に結合できるようにするステップと、上記待ち行列中の１つ以上の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上の遅延を減じるステップとを含み得る。上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて上記ウェブページ処理状態（ＷＰＰＳ）を判定する上記ステップは、上記パラメータのうちの１つ以上によって表わされる待ち行列中の処理タスクに関連する予め定められた処理イベントのウェブページ処理状態との関連性を考慮することを含む。これに加えておよび／またはこれに代えて、方法は、ウェブロボット（ＷＲ）が、ブラウザ（ＷＢ）に対してウェブページを処理することを要求するステップと、上記ウェブページの上記ブラウザによる処理中に確立された待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントに基づいて、状態判定器（ＳＤ）におけるパラメータ（Ｐ１...Ｐｎ）を設定するステップと、上記状態判定器（ＳＤ）が、予め定められた１つ以上の基準に従い、上記パラメータ（Ｐ１...Ｐｎ）に基づいて、ウェブページ処理状態（ＷＰＰＳ）を判定するステップと、上記ウェブロボットが、上記ウェブページ処理状態（ＷＰＰＳ）が予め定められた完了値に達したことがわかった後に上記情報を検索するステップと、上記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるステップとを含み得る。これに加えておよび／またはこれに代えて、方法は、ブラウザ（ＷＢ）を用いたウェブページの処理中に、上記ウェブページのソースコードによって待ち行列中の処理タスク（ＱＰＴ）の実行の開始を遅延させるように設定された時間を減じるステップを含み得る。上記時間を減じるステップは、上記待ち行列中の処理タスク（ＱＰＴ）の生成に関連して遅延変換器（ＤＣ）によって実行されてもよい。この方法は、関連付けられた遅延を有する待ち行列中の処理タスク（ＱＰＴ）の生成を生じさせ得る予め定められた処理イベントを追跡するステップと、遅延変換器（ＤＣ）を呼出して、上記遅延を、絶対デクリメント、相対デクリメント、および比例デクリメントのうちの１つ以上によって変更させるステップとを含み得る。この方法は、待ち行列中の２つ以上の処理タスクの減じられた遅延時間を、上記ウェブページのソースコードによって定められたのと同じ順序で上記処理タスクが実行され得るように、管理するステップを含み得る。
【０１６５】
システムは、ブラウザ（ＷＢ）を用いたウェブページの処理中に待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、上記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、上記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含み得る。上記ブラウザ（ＷＢ）は、上記待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントを追跡するように構成されたインストルメンテーションを含み得る。上記パラメータは、関連するオブジェクト情報とともに上記待ち行列中の処理タスクに関連する予め定められた処理イベントの発生と関連付けられていてもよい。このシステムはまた、ウェブロボット（ＷＲ）を上記ウェブページ処理状態（ＷＰＰＳ）に通信可能に結合できるように構成されてもよい。システムはまた、上記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるように構成された遅延変換器（ＤＣ）を含み得る。これに加えておよび／またはこれに代えて、システムはさらに、ブラウザ（ＷＢ）を用いて情報を検索するように構成されたウェブロボット（ＷＲ）と、上記ウェブロボットによる、上記ブラウザから要求されたウェブページの処理中に、待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、上記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含み得る状態判定器（ＳＤ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、上記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含み得る。上記ウェブページ処理状態（ＷＰＰＳ）は、上記ウェブロボットが上記ウェブページから情報を検索すべきか否かを示す。システムはさらに、上記待ち行列中の処理タスクのうちの１つ以上と関連付けられた１つ以上の遅延を減じるための遅延変換器（ＤＣ）を含み得る。ウェブページを処理するように構成されたブラウザ（ＷＢ）は、ウェブページの処理中に待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）と、上記待ち行列中の処理タスク（ＱＰＴ）のうちの１つ以上と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）を含む状態判定器（ＳＤ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて、上記状態判定器（ＳＤ）によって判定される、ウェブページ処理状態（ＷＰＰＳ）とを含み得る。ウェブページ処理状態（ＷＰＰＳ）を判定するように構成された状態判定器であって、上記状態判定器（ＳＤ）は、ブラウザ（ＷＢ）を用いたウェブページの処理に関連する待ち行列中の１つ以上の処理タスク（ＱＰＴ）と関連付けられた１つ以上のパラメータ（Ｐ１...Ｐｎ）を格納するように構成されたパラメータレジスタ（ＰＲ）と、予め定められた１つ以上の基準と、上記１つ以上の基準のうちの少なくとも１つに従い、上記１つ以上のパラメータ（Ｐ１...Ｐｎ）に基づいて判定される、ウェブページ処理状態（ＷＰＰＳ）とを含み得る。システムは、待ち行列中の１つ以上の処理タスク（ＱＰＴ）を格納するように構成されたタスク待ち行列（ＴＱ）を含み得る。上記処理タスクのうちの少なくとも１つは、上記ウェブページのソースコードによって上記待ち行列中の処理タスク（ＱＰＴ）の実行の開始を遅延させるように設定された時間と関連する。このシステムは、上記待ち行列中の処理タスクの実行の開始を遅延させるように設定された時間を減じるように構成された遅延変換器（ＤＣ）を含み得る。
【０１６６】
コンピュータプログラムプロダクトは、ブラウザ（ＷＢ）のウェブページ処理状態（ＷＰＰＳ）を判定するためにコンピュータによって実行されるコンピュータ読取可能な命令を含み得る。上記コンピュータは、少なくとも、処理部と、メモリ部と、ネットワーク接続性とを含み得る。上記コンピュータ読取可能な命令は、実行されたときに、待ち行列中の処理タスク（ＱＰＴ）に関連する予め定められた処理イベントに基づいて状態判定器（ＳＤ）におけるパラメータ（Ｐ１...Ｐｎ）を設定させる、第１のコンピュータ読取可能な命令と、実行されたときに、予め定められた１つ以上の基準に従い上記パラメータ（Ｐ１...Ｐｎ）に基づいて上記ウェブページ処理状態（ＷＰＰＳ）を判定することを上記状態判定器（ＳＤ）に行なわせる、第２のコンピュータ読取可能な命令とを含み得る。
【０１６７】
待ち行列中の処理タスク（ＱＰＴ）は、タイマタスク、非同期ＸＭＬ  Ｈｔｔｐ要求タスク、スケジュールされたリダイレクトタスク、カスケードスタイルシート遷移タスク、待ち行列中スクリプトタスク、および、ディファードイベントタスク、のうちの１つ以上を含み得る。上記予め定められた１つ以上の基準のうちの少なくとも１つの基準は、上記１つ以上のパラメータのうちの１つ以上の評価に使用し得る。上記予め定められた１つ以上の基準は、１つ以上のさらに他の待ち行列中のタスクの存在、しきい値を超える、上記さらに他の待ち行列中のタスクの数、しきい値を超える、タイマイベントのチェーン、ＸＭＬ  Ｈｔｔｐ要求のチェーン、またはその他の非同期タスクのチェーンの長さ、タイムアウト値を超える、ＸＭＬ  Ｈｔｔｐ要求のディスパッチ以来の非応答の期間、しきい値を超える、ウェブページのリダイレクトまたはリフレッシュについてスケジュールされた時間、しきい値を超える、インターバルタイマの繰返しの数、および、しきい値を超える、タイマイベントに対して設定された時間、のうちの１つ以上を含み得る。
【０１６８】
発明の概要において先に述べたように、上記実施形態の何らかの組合わせ、変形、入替え、合成等は、本発明の範囲に含まれる。ここに開示する発明の概念の範囲は、上記説明に基づいて何らかのやり方で制限されるのではなく、むしろ以下の請求項によって規定される。
【図１】
2017501512.tif 000007
【図２】
2017501512.tif 000008
【図３】
2017501512.tif 000009
【図４】
2017501512.tif 000010
【図５】
2017501512.tif 000011
【図６】
2017501512.tif 000012
【図７】
2017501512.tif 000013
【図８】
2017501512.tif 000014
【図９】
2017501512.tif 000015
【図１０】
2017501512.tif 000016
【図１１】
2017501512.tif 000017
【図１２】
2017501512.tif 000018
【国際調査報告】
2017501512.tif 000019
2017501512.tif 000020
2017501512.tif 000021
2017501512.tif 000022
2017501512.tif 000023