(57)【要約】  開示する発明の概念はウェブブラウザにおいて表わされるウェブページの状態表現を構築することに関する。この概念は、ウェブベースのデータソースから取出されたウェブページを処理することと、ウェブページの、結果として生じる第１の内部ブラウザ状態表現を構築することと、第１の内部表現の状態を表わす外部表現を構築することと、第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築することと、第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、動的コンテンツと第１のコンテンツとの関係を含むマッピングデータを構築することと、第１の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築することとを含む。
2017504129.tif 000002
【特許請求の範囲】
【請求項１】
ウェブブラウザにおいて表わされるウェブページの状態表現を構築する方法であって、前記方法は、前記ウェブブラウザを用いて、
ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、
前記ウェブブラウザにおいて、前記ウェブページの、結果として生じる第１の内部ブラウザ状態表現を構築するステップと、
外部表現を構築するステップとを含み、前記外部表現は前記第１の内部表現の状態を表わし、
前記状態の外部表現を構築するステップは、
前記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、
前記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、
前記動的コンテンツと前記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含み、
前記方法はさらに、
前記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、前記第１の内部ブラウザ状態表現の状態に対応する状態で、前記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む、方法。
【請求項２】
前記外部状態表現を構築するステップは、前記第１の内部ブラウザ状態表現の少なくとも一部をシリアライズするステップを含む、請求項１に記載の方法。
【請求項３】
前記第１の内部ブラウザ状態表現の一部は、前記動的コンテンツおよび前記第１のコンテンツのうちの１つ以上の少なくとも一部分を含む、請求項２に記載の方法。
【請求項４】
前記追加の内部表現を構築するステップは、前記外部表現の少なくとも一部をデシリアライズするステップを含む、請求項１に記載の方法。
【請求項５】
前記追加の内部表現を構築するステップは、前記外部表現の少なくとも一部を前記ウェブブラウザアプリケーションにパースするステップを含む、請求項１に記載の方法。
【請求項６】
前記外部表現は、１つ以上の記憶場所から独立するように構築され、前記１つ以上の記憶場所は、前記第１の内部表現に対応する、請求項１に記載の方法。
【請求項７】
前記外部表現を構築するステップは、複数の識別フレームを含み、前記複数の識別フレームは前記ウェブページの１つ以上のインラインフレームを含む、請求項１に記載の方法。
【請求項８】
外部フレーム表現が２つ以上のフレーム各々に対して構築され、前記２つ以上のフレームのうちの少なくとも１つは、前記ウェブページの少なくとも１つのインラインフレームを含む、請求項１に記載の方法。
【請求項９】
前記外部表現を構築するステップは、フレームアソシエーション表現を構築するステップを含む、請求項１に記載の方法。
【請求項１０】
前記外部表現は、前記ウェブブラウザにおける前記ウェブページの内部ドキュメントオブジェクトモデル表現に基づいて構築される、請求項１に記載の方法。
【請求項１１】
前記外部表現は、前記内部ドキュメントオブジェクトモデルのコンテンツの少なくとも一部をシリアライズすることによって構築される、請求項１０に記載の方法。
【請求項１２】
前記追加の内部表現を構築するステップは、
前記外部表現の少なくとも一部をデシリアライズするステップと、
前記外部表現のデシリアライズされた一部を、前記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするステップとを含む、請求項１に記載の方法。
【請求項１３】
前記第１の内部ブラウザ状態表現の第１のコンテンツはマークアップコンテンツを含み、前記外部表現は前記マークアップコンテンツの表現を含む、請求項１に記載の方法。
【請求項１４】
前記内部ブラウザ状態表現の第１のコンテンツは、スタイルシートコンテンツの表現を含み、前記外部表現は、前記スタイルシートコンテンツの表現を含む、請求項１に記載の方法。
【請求項１５】
前記第１のコンテンツは、前記第１の内部ブラウザ状態表現に関連するクッキーデータを含み、前記外部表現は、前記クッキーデータの表現を含む、請求項１に記載の方法。
【請求項１６】
前記第１のコンテンツは、前記第１の内部ブラウザ状態表現のフォームコンテンツを含み、前記外部表現は、前記フォームコンテンツの表現を含む、請求項１に記載の方法。
【請求項１７】
前記マッピングデータは、前記第１の内部ブラウザ状態表現の前記動的コンテンツとマークアップコンテンツとの間の１つ以上の関係のマッピングを含む、請求項１に記載の方法。
【請求項１８】
前記マッピングデータは、前記第１の内部ブラウザ状態表現の前記動的コンテンツとスタイルシートコンテンツとの間のポインタのマッピングを含む、請求項１に記載の方法。
【請求項１９】
前記マッピングデータは、前記第１の内部ブラウザ状態表現の１つ以上のオブジェクトの１つ以上のメモリアドレスに対する１つ以上のポインタのマッピングを含む、請求項１に記載の方法。
【請求項２０】
前記マッピングを構築するステップは、
前記第１の内部表現を処理するステップと、
前記処理の少なくとも一部に基づいてオブジェクト間の１つ以上のポインタを識別するステップと、
前記ポインタを前記メモリアドレスにマッピングするステップとを含む、請求項１９に記載の方法。
【請求項２１】
前記外部表現を構築するステップは、前記第１のコンテンツを１つ以上のフォーマットに変換するステップを含み、変換後の前記１つ以上のフォーマットは各々、前記内部ブラウザ状態表現のフォーマットと異なる、請求項１に記載の方法。
【請求項２２】
前記外部表現を構築するステップは、前記第１の内部ブラウザ状態表現の少なくとも一部を、前記第１の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含む、請求項１に記載の方法。
【請求項２３】
前記外部表現を構築するステップは、前記第１の内部ブラウザ状態表現の異なるフレームの複数の内部ドキュメントオブジェクトモデルを、前記複数の内部ドキュメントオブジェクトモデルの１つ以上の外部表現に変換するステップを含む、請求項１に記載の方法。
【請求項２４】
前記第１の内部ブラウザ状態表現はマークアップコンテンツを含み、
前記変換するステップは、前記マークアップコンテンツの少なくとも一部をマークアップ言語フォーマットに変換するステップを含む、請求項２３に記載の方法。
【請求項２５】
前記第１の内部ブラウザ状態表現はスタイル情報を含み、
前記変換するステップは、前記スタイル情報の少なくとも一部をカスケードスタイルシートフォーマットに変換するステップを含む、請求項２３に記載の方法。
【請求項２６】
前記第１の内部ブラウザ状態表現は、複数の異なるコンテンツ要素を含み、異なるコンテンツ要素は各々、
前記第１のコンテンツおよび
前記動的コンテンツ
のうちの１つ以上の少なくとも一部を含み、
前記外部表現を構築するステップはさらに、複数の個別表現を構築するステップを含み、個別表現は各々前記第１の内部ブラウザ状態表現に基づいており、
個別表現は各々、前記複数の異なるコンテンツ要素のうちの少なくとも１つに対応する、請求項１に記載の方法。
【請求項２７】
前記追加の内部表現を構築するステップは、前記ウェブブラウザアプリケーションにおいて前記ブラウザのマークアップ言語コンテンツの表現と動的コンテンツとの少なくとも１つの接続をマッピングするステップを含み、
前記マッピングは前記マッピングデータの少なくとも一部に基づく、請求項１に記載の方法。
【請求項２８】
前記追加の内部表現を構築するステップは、前記追加の内部表現の１つ以上のオブジェクト間の１つ以上のポインタを構築するステップを含み、前記構築するステップは、前記マッピングデータの少なくとも一部に基づく、請求項２７に記載の方法。
【請求項２９】
前記第１の内部表現および前記追加の内部表現は各々、
少なくとも１つのウェブブラウザ、
少なくとも１つのウェブブラウザアプリケーション、
少なくとも１つのウェブページ、
のうちの１つ以上に組込まれており、
前記第１の内部表現および前記追加の内部表現は、
１つ以上の前記ウェブブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる１つ、および、
１つ以上の前記ブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる種類、
のうちのいずれかまたは双方に組込まれている、請求項１に記載の方法。
【請求項３０】
複数のウェブブラウザアプリケーションにおける複数の追加の内部表現を構築するステップをさらに含み、前記追加の内部表現が構築された複数の前記ウェブブラウザアプリケーションは各々、前記追加の内部表現が構築された前記ブラウザアプリケーションの他のすべてのウェブブラウザアプリケーションと異なる、請求項１に記載の方法。
【請求項３１】
前記ウェブページのウェブページ処理は、ブラウジング動作中に前記ウェブページの動的コンテンツを処理するステップを含み、前記ブラウジング動作は前記ウェブページに対する動作である、請求項１に記載の方法。
【請求項３２】
前記ウェブページの動的コンテンツは前記ウェブページのスクリプトを含む、請求項１に記載の方法。
【請求項３３】
前記第１の内部表現を含む前記ウェブブラウザは、前記第１の内部表現の少なくとも一部分のシリアライズの少なくとも一部に基づいて、前記第１の内部ブラウザ状態表現を前記外部表現に外部化する、請求項１に記載の方法。
【請求項３４】
前記追加の内部表現に対する前記ウェブブラウザアプリケーションは、前記外部表現の少なくとも一部分のデシリアライズの少なくとも一部に基づいて、前記追加の内部表現を構築する、請求項１に記載の方法。
【請求項３５】
ウェブロボットを用いて、
予め定められた１つ以上の基準が満たされているか否か判断するステップと、
前記予め定められた基準のうちの１つ以上が満たされているという判断の少なくとも一部に基づいて前記外部表現を構築するステップを開始するステップとをさらに含み、
前記ウェブロボットは外部表現に基づいて１つ以上の追加の内部表現を構築するように構成されている、請求項１に記載の方法。
【請求項３６】
ウェブブラウザの第１の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するためのシステムであって、前記システムは、
前記第１の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、前記状態の外部表現を構築することは、
前記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築することと、
前記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、
前記第１の内部ブラウザ状態表現の前記動的コンテンツと前記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含み、
ウェブブラウザアプリケーションは、前記第１の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、前記追加の内部状態表現を構築するように構成されている、システム。
【請求項３７】
前記システムは請求項１〜３５のいずれかに記載の方法に従って動作するように構成されている、請求項３６に記載のシステム。
【請求項３８】
１つ以上のウェブロボットを共に用いる、請求項１〜３７のいずれかに記載の方法および／またはシステムの使用であって、
前記１つ以上のウェブロボットは、第１の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現の構築を開始するように構成され、
前記追加の内部表現は外部状態表現に基づいて構築される、方法および／またはシステムの使用。
【請求項３９】
１つ以上の異なるウェブブラウザアプリケーションにおける複数のブラウジングイベントを構築するための、請求項１〜３８のいずれかに記載の方法、システムおよび／または使用。
【請求項４０】
前記複数のブラウジングイベントは１つ以上のサーバに対して実行される、請求項３９に記載の方法の使用。
【請求項４１】
外部ブラウザ状態表現を構築するためのウェブブラウザであって、前記ウェブブラウザは、
第１の内部ブラウザ状態表現の第１のコンテンツの外部表現を構築するための手段と、
前記第１の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築するための手段と、
前記第１の内部ブラウザ状態表現の前記動的コンテンツと前記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するための手段（ＭＭ）とを含む、ウェブブラウザ。
【請求項４２】
前記ウェブブラウザは、請求項１〜３５のいずれかに記載の方法に従って動作するように構成されている、請求項４１に記載のウェブブラウザ。
【請求項４３】
予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するためのウェブブラウザアプリケーションであって、前記ウェブブラウザアプリケーションは、
予め構築された外部ブラウザ状態表現を処理するための手段と、
前記処理の結果を前記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするための手段と、
前記外部ブラウザ状態表現のマッピングデータを処理し、前記マッピングデータに基づいて前記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第１のコンテンツとの関係を実現するための手段とを含む、ウェブブラウザアプリケーション。
【請求項４４】
前記ウェブブラウザは、請求項１〜３５のいずれかに記載の方法に従って動作するように構成されている、請求項４３に記載のウェブブラウザアプリケーション。
【請求項４５】
複数のウェブページを含むウェブベースのデータソースをブラウジングする方法であって、前記方法は、
ウェブブラウザを用いて前記ウェブベースのデータソースの１以上のウェブページをブラウジングするステップと、
前記ウェブブラウザを用いてブラウジング中に異なる第１の内部ブラウザ状態の少なくとも２つの外部表現を構築するステップと、
１つ以上のウェブブラウザアプリケーションにおける前記外部表現のうちの少なくとも１つに基づいて追加の１つ以上のブラウジングイベントを構築するステップとを含み、
前記追加の１つ以上のブラウジングイベントを構築するステップは、前記外部表現のコンテンツを処理し、前記１つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む、方法。
【請求項４６】
請求項１〜３５のいずれかに記載の方法に従い、および／または請求項３６〜３７のいずれかに記載のシステムを用いて、前記少なくとも２つの外部表現が、構築される、および／または、１つ以上のウェブブラウザアプリケーション内に実現される、請求項４５に記載の方法。
【請求項４７】
前記方法はウェブロボットによって実行される、請求項４５または４６に記載の方法。
【請求項４８】
ウェブブラウザを用いたウェブページのブラウジングのためのウェブロボットの使用であって、
前記ウェブロボットは、１つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、
前記ウェブロボットは、予め定められた１つ以上の基準が満たされたことに応じて、請求項１〜３５のいずれかに記載の１つ以上の外部表現の構築を開始するように構成されている、ウェブロボットの使用。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、２０１３年１１月１日に出願され「ESTABLISHMENT OF STATE REPRESENTATION OF A WEB PAGE REPRESENTED IN A WEB BROWSER（ウェブブラウザにおいて表わされる状態表現の構築）」と題されたデンマーク特許出願ＰＡ２０１３−７０６４０に関連し、これに基づく優先権を主張し、その全体を本明細書に引用により援用する。
【０００２】
発明の分野
ここに開示する発明の概念は、ウェブブラウザにおいて表わされるウェブページの状態表現を構築するように構成された、方法、システム、およびコンピュータプログラムプロダクト、ウェブブラウザの第１の内部ブラウザ状態表現の外部表現を構築するため、かつそれに基づいて追加の内部表現を構築するためのシステム、ウェブブラウザ、ならびにウェブベースのデータソースをブラウジングする方法に関する。
【背景技術】
【０００３】
背景技術
ウェブページのコンテンツおよび基本構造は、近年の間に発展した。そのため、ウェブページの大部分は、マークアップ言語コンテンツおよびその他のコンテンツとともにスクリプティングコンテンツのような動的コンテンツを含む、動的ウェブページである。ウェブページのスクリプティングコンテンツによって、直感的で多機能のウェブページを構築し易くなり、また、ウェブページのブラウジング中のユーザ入力に自動的に適応するウェブページを構築し易くなる。
【０００４】
その結果、動的ウェブページは、ウェブブラウザによって処理されたときに、たとえば、ユーザの動作、ウェブブラウザの場所、スクリプティングコンテンツそのものなどに基づいて、異なるウェブブラウザに、ウェブページの個別の表現を生じさせることがある。しかしながら、その結果として、ウェブブラウザにおいてこうして得られた動的ウェブページの表現を判定することに関連する問題が、発生する。
【０００５】
ここに開示する発明の概念は、特に、上記問題に対する解決策を提供する。
【発明の概要】
【課題を解決するための手段】
【０００６】
開示する発明の概念の概要
ここに開示する発明の概念は、ウェブブラウザにおいて表わされるウェブページの状態表現の構築を容易にするように構成された、システム、方法、コンピュータプログラムプロダクト等を包含する。さまざまな実施形態において、これらの概念は以下のものを含む。
【０００７】
あるアプローチにおいて、ウェブブラウザにおいて表わされるウェブページの状態表現を構築する方法は、上記ウェブブラウザを用いて、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、上記ウェブブラウザにおいて、上記ウェブページの、結果として生じる第１の内部ブラウザ状態表現を構築するステップと、外部表現を構築するステップとを含み、上記外部表現は上記第１の内部表現の状態を表わし、上記状態の外部表現を構築するステップは、上記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、上記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含み、上記方法はさらに、上記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、上記第１の内部ブラウザ状態表現の状態に対応する状態で、上記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む。
【０００８】
別の実施形態において、システムは、ウェブブラウザの第１の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するように構成される。上記システムは、上記第１の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、ウェブブラウザアプリケーションは、上記第１の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、上記追加の内部状態表現を構築するように構成される。上記状態の外部表現を構築することは、上記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築することと、上記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含む。
【０００９】
他の実施形態において、ウェブブラウザは、外部ブラウザ状態表現を構築するように構成され、これは第１の内部ブラウザ状態表現の第１のコンテンツの外部表現を構築し、上記第１の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築し、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することによって、行なわれる。
【００１０】
その他のアプローチにおいて、ウェブブラウザは、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するように構成され、これは、予め構築された外部ブラウザ状態表現を処理し、上記処理の結果を上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースし、上記外部ブラウザ状態表現のマッピングデータを処理し、上記マッピングデータに基づいて上記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第１のコンテンツとの関係を実現することによって、行なわれる。
【００１１】
さらに他の実施形態において、方法は、複数のウェブページを含むウェブベースのデータソースをブラウジングすることに関する。この方法は、ウェブブラウザを用いて、上記ウェブベースのデータソースの１以上のウェブページをブラウジングするステップと、ブラウジング中に異なる第１の内部ブラウザ状態の少なくとも２つの外部表現を構築するステップと、１つ以上のウェブブラウザアプリケーションにおける上記外部表現のうちの少なくとも１つに基づいて追加の１つ以上のブラウジングイベントを構築するステップとを含み、上記追加の１つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記１つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。
【００１２】
ここに開示する発明の概念について、以下において図面を参照しながらさらに詳細に説明する。
【図面の簡単な説明】
【００１３】
【図１】ここに開示する発明の概念のいくつかの実施形態に従うシステムを示す。
【図２】ここに開示する発明の概念の実施形態に従う外部表現を構築する実施形態に関連するフローチャートを示す。
【図３】ここに開示する発明の概念の実施形態に従う外部表現に基づいてウェブブラウザにおいて追加の内部状態表現を構築する実施形態に関連するフローチャートを示す。
【図４】ここに開示する発明の概念の実施形態に従う関係のマッピングを概略的に示す。
【図５】ここに開示する発明の概念の実施形態に従う外部表現を構築する別の実施形態を示す。
【図６】ここに開示する発明の概念の実施形態に従うウェブブラウザを示す。
【図７】複数の追加の内部状態表現の構築に関連する、ここに開示する発明の概念の実施形態を示す。
【図８】たとえばサーバを用いて、予め構築された外部表現に基づいて複数の追加の内部状態表現を構築することに関連する、ここに開示する発明の概念の別の実施形態を示す。
【図９】ここに開示する発明の概念の実施形態に従うクライアントを示す。
【図１０】ここに開示する発明の概念の局面に従うウェブサーバの実施形態を示す。
【図１１】外部表現がクライアントに格納される、ここに開示する発明の概念の実施形態を示す。
【図１２】複数の外部ブラウザ状態表現の使用に関連する、ここに開示する発明の概念の実施形態を示す。
【図１３】ここに開示する発明の概念の実施形態に従う外部表現の実施形態を示す。
【図１４】ここに開示する発明の概念の実施形態に従うウェブブラウザによって画面上に視覚化されたウェブページの一例を示す。
【図１５】コンピュータによって実現されるウェブロボットがブラウジング中に外部状態表現を使用する、ここに開示する発明の概念の実施形態を示す。
【図１６】コンピュータによって実現されるウェブロボットがブラウジング中に外部状態表現を使用する、ここに開示する発明の概念の実施形態を示す。
【発明を実施するための形態】
【００１４】
当然、上記図面は、ここに開示する発明の概念の範囲に含まれる代表的な実施形態を例示するだけであると理解されねばならない。さらに他の実施形態、上記実施形態の変形、および代替の実施形態も、当業者が本明細書を読んで達する理解に従い、本願の範囲に十分含まれるとみなされねばならない。
【００１５】
詳細な説明
本明細書における説明は、当業者が本発明をなし使用することを可能にするために提示され、本発明の特定のアプリケーションおよびそれらの必要条件の文脈で与えられる。開示されている実施形態に対するさまざまな修正が、当業者には直ちに明らかになるであろう。また、本明細書で定義される一般的な原理は、本発明の精神と範囲から逸脱することなく、他の実施形態および応用例に適用し得る。このように、本発明は、示されている実施形態に限定されることを意図したものではなく、本明細書に開示される原理および特徴に一致する最も広い範囲が与えられるものである。
【００１６】
特に、本明細書に記載の発明のさまざまな実施形態は、複数のコンピュータシステム間の通信手段としてのインターネットを用いて実現される。当業者は、本発明が通信媒体としてのインターネットの使用に限定されないこと、および、本発明の代替の方法が私的なイントラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、またはその他の通信手段に適応し得ることを、理解するであろう。加えて、有線、無線（たとえば無線周波数）および光通信リンクをさまざまに組合わせたものを使用してもよい。
【００１７】
本発明のある実施形態を実行し得るプログラム環境は、例として、１つ以上の汎用コンピュータ、またはハンドヘルドコンピュータのような専用装置が組込まれたものである。このような装置（たとえばプロセッサ、メモリ、データ記憶装置、入出力装置）の詳細は、周知であり、明瞭さのために省略する。
【００１８】
本発明の技術はさまざまな科学技術を用いて実現し得ることも理解されるはずである。たとえば、本明細書に記載の方法は、コンピュータシステム上で実行されるソフトウェアにおいて実現されてもよく、または、方法の動作を実行するために１つ以上のプロセッサおよびロジック（ハードウェアおよび／またはソフトウェア）を用いるハードウェアにおいて、特定用途向け集積回路において、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブルロジック装置において、および／またはそのさまざまな組合せにおいて、実現されてもよい。例示としてのあるアプローチにおいて、本明細書に記載の方法は、物理的な（たとえば非一時的な）コンピュータ読取可能な媒体等の記憶媒体上にある、コンピュータによる実行が可能な一連の命令によって、実現されてもよい。加えて、本発明の特定の実施形態は、オブジェクト指向ソフトウェアプログラミングコンセプトを用い得るが、本発明はそのように限定されるものではなく、コンピュータの動作を指示する他の形態に容易に適応する。
【００１９】
本発明は、計算装置（たとえばプロセッサ）および／またはシステムによって実行し得るコンピュータコードを有するコンピュータ読取可能な記憶媒体または信号媒体を含むコンピュータプログラムプロダクトの形態で提供することもできる。コンピュータ読取可能な記憶媒体は、読取専用および書込可能なＣＤおよびＤＶＤ等の光学媒体、磁気メモリまたは媒体（たとえばハードディスクドライブ、テープ）、半導体メモリ（たとえばフラッシュメモリおよびその他のポータブルメモリカード等）、チップ内の符号化されたファームウェア等を含む、計算装置またはシステムが使用するコンピュータコードを格納することが可能な何らかの媒体を含み得る。
【００２０】
コンピュータ読取可能な信号媒体は、上記記憶媒体の部類には適合しないものである。たとえば、例示としてのコンピュータ読取可能な信号媒体は、システム内で、システム間で、たとえば物理または仮想ネットワーク等を介して、一時的な信号をやり取りするかそうでなければ転送する。
【００２１】
いくつかのアプローチに従うと、本明細書に記載の方法およびシステムは、仮想システムおよび／または他の１つ以上のシステムをエミュレートするシステム、たとえばＭＡＣ（登録商標）  ＯＳ環境をエミュレートするＵＮＩＸ（登録商標）システム、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）環境を仮想的にホストするＵＮＩＸシステム、ＭＡＣ  ＯＳ環境をエミュレートするＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳシステム等とともにおよび／または上で、実現し得る。
【００２２】
他のアプローチにおいて、１つ以上のネットワークは、「クラウド」と一般的に呼ばれるシステムのクラスタを表わし得る。クラウドコンピューティングにおいて、共有リソースたとえば処理能力、周辺機器、ソフトウェア、データ処理および／または記憶装置、サーバ等は、クラウド内のいずれかのシステムに、好ましくはオンデマンドの関係で設けられることによって、多数の計算システム全体におけるアクセスおよびサービスの分散を可能にする。クラウドコンピューティングは、典型的には、クラウド内で動作するシステム間のインターネットまたはその他の高速接続（たとえば４Ｇ  ＬＴＥ、光ファイバ等）を含むが、システムを接続するその他の技術も使用し得る。
【００２３】
ある実施形態において、方法は、ウェブブラウザによって、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、上記ウェブブラウザにおいて、上記ウェブページの、結果として生じる第１の内部ブラウザ状態表現を構築するステップと、上記ウェブページ処理中に、上記第１の内部表現の状態を表わす外部表現を構築するステップとを含み、上記状態の外部表現を構築するステップは、上記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、上記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含む。
【００２４】
別の実施形態において、上記方法はさらに、上記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、上記第１の内部ブラウザ状態表現の状態に対応する状態で、上記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む。
【００２５】
好ましくは、ここに開示する発明の概念により、たとえばブラウザによる２つの統一資源ロケータ訪問間における、１つ以上のウェブブラウザ状態の抽出と格納が容易になる。ＵＲＬはウェブアドレスとしても知られている。よって、これらブラウザ状態を、後に、他のウェブブラウザアプリケーションまたは同一のウェブブラウザアプリケーションにおいて再構築してもよい。したがって、たとえばウェブロボット開発者および／またはウェブロボットは、後の時点で前の状態に戻ることができる。これは、外部表現を処理して追加の内部表現を構築することによって容易になる。ユーザまたはウェブロボットはしたがって、追加の内部表現の構築後にウェブページをブラウジングするときに、第１の内部ブラウザ状態表現を外部化したときに示されたウェブページをブラウジングすることができる。こうしてループ特徴が容易になり、ユーザまたはウェブロボットは、第１の内部状態表現から、以前のユーザまたはスクリプティング動作が状態を修正したことを経験することなく、異なるブラウジング経路を辿ることができる。
【００２６】
「ウェブブラウザ」および「ウェブブラウザアプリケーション」という用語は、ワールドワイドウェブ上のウェブページを取出しワールドワイドウェブ上にウェブページを公開するためのソフトウェアアプリケーションに関連する。ウェブページは、画像、テキスト、ビデオ、スクリプティングコンテンツおよび／またはその他のコンテンツ等のデータを含み得る。ウェブページは、ユーザがユーザのブラウザを関連するリソースにナビゲートし易くすることができるハイパーリンクを含み得る。ウェブページは、スクリプティングコンテンツ等の、ユーザまたはコンピュータプログラムによって提供されるまたは操作されるたとえばパラメータに基づいて変化するコンテンツを有する動的ウェブページであることが多い。
【００２７】
ここに開示する発明の概念の局面において、追加の内部表現は、外部表現が表わす第１の最初の内部ブラウザ状態表現を構築するために使用されたであろう同一のウェブブラウザにおいて実現し得ることが、理解される。しかしながら、後に説明するように、追加の内部表現はまた、追加のウェブブラウザアプリケーションにおいて実現されてこのウェブブラウザアプリケーションが第１の内部表現の状態に対応する状態になるようにしてもよい。
【００２８】
追加の内部表現は外部状態表現に基づき得るので、追加の内部表現は、第１の内部表現に実質的に対応するようにウェブブラウザアプリケーションによって構築し得る。これにより、結果として第１の内部表現を得ることになるウェブページとの一連の対話を実行したユーザは、同一のまたは新たなウェブブラウザにおいて追加の内部表現を認識することができ、このポイントから続けることができる。マッピングにより、外部表現が構築される状態の、内部表現の動的コンテンツおよびその他のコンテンツの状態を、外部表現が構築される状態における動的コンテンツの状態を含めて再生することができる。
【００２９】
ここに開示する発明の概念により、さらに、動的ウェブページのウェブページ処理中に実行されるスクリプティングに対してロバストな状態表現が得られる。このようなスクリプティングは、ユーザによってトリガされる動作およびスクリプティングによってトリガされる動作のため、動的ウェブページの内部表現を修正し得る。このような動作は、ウェブページの内部表現を動的に修正して、ユーザの動作およびスクリプティングコンテンツの状態に応じて、ウェブページが異なるように見えるようにおよび異なるウェブブラウザにおいて異なるコンテンツと含み得るようにする。しかしながら、特にマッピングデータのため、ブラウザの状態を、第１の内部ブラウザ状態表現の状態に対応する状態の次の復元の機会を提供するために、外部に対して慎重にかつ広範囲に表現することができる。
【００３０】
また、ここに開示する発明の概念の好ましい局面において、第１の内部ブラウザ状態表現の第１のコンテンツは第１のフォーマットで構築してもよく、動的コンテンツ状態表現は第２のフォーマットで構築してもよく、マッピングデータは第３のフォーマットで構築してもよい。そのため、ここに開示する発明の概念の局面において、外部表現を表わす異なる部分に対して異なるフォーマットを使用し得る。これはたとえば、外部表現に基づく追加の内部表現のより信頼性が高くおよび／または効率的な構築をもたらし得る。よって、あるフォーマットは、たとえばウェブブラウザにおける動的表現の構築に関して好都合であるかもしれないが、たとえばマッピングデータに使用した場合はそれほど好都合ではないかもしれない。
【００３１】
ここに開示する発明の概念の好都合な局面において、外部状態表現を構築するステップは、第１の内部ブラウザ状態表現の少なくとも一部をシリアライズするステップを含む。
【００３２】
シリアライズの結果、第１の内部表現の状態は、ブラウザの外部に（たとえばファイルまたはメモリバッファに）格納し得るフォーマットに翻訳／変換され、同一または別のウェブブラウザにおいて後に再構築されることができる。シリアライズ中、第１の内部表現は、コンピュータプログラムによって処理され、予め定められたシリアライズフォーマットに従ってシリアライズされる。
【００３３】
次に、シリアライズされたデータを用いて第１の内部表現の状態のついか  の内部表現を作成してもよい。シリアライズはしたがって、ウェブブラウザにおける内部表現のデータ構造および／またはオブジェクト状態を、格納し得る、ブラウザの状態を反映するフォーマットに、変換することを含み得る。
【００３４】
マッピングデータは、ここに開示する発明の概念の局面において、シリアライズフォーマットに従うシリアライズ中に構築し得る。
【００３５】
また、ある局面において、シリアライズはさらに、第１の内部表現の部分、たとえばウェブブラウザの内部ドキュメントオブジェクトモデルの、異なるフォーマットへの変換を、容易にし得る。
【００３６】
よって、シリアライズは、第１の内部表現を外部表現に抽出してウェブブラウザの状態の「スナップショット」が効率的に構築されて制御されることを容易にする。
【００３７】
ここに開示する発明の概念の好都合な局面において、ウェブブラウザは、第１の内部表現を外部表現に構築するように処理するための手段を備える第１の内部表現を備える。
【００３８】
ここに開示する発明の概念の局面において、外部状態表現を構築するステップは、第１の内部ブラウザ状態表現の動的コンテンツおよび／または第１のコンテンツの少なくとも一部をシリアライズするステップを含む。
【００３９】
シリアライズされた動的コンテンツおよび／または第１のコンテンツの一部は次に、外部表現として格納される。これはたとえば、外部表現を構築する効率的な方法を提供する。
【００４０】
ここに開示する発明の概念の好都合な局面において、追加の内部表現を構築するステップは、外部表現の少なくとも一部をデシリアライズするステップを含む。
【００４１】
デシリアライズは、追加の内部表現用に意図されたウェブブラウザアプリケーションによって容易にすることができ、外部表現を処理して、たとえばウェブブラウザアプリケーション等を含むクライアントまたはウェブサーバのデータメモリに割当てることを含み得る。たとえば、ＸＭＬは、内部表現のたとえばＨＴＭＬコンテンツまたはその他のマークアップコンテンツの外部表現の提供に関して、厳密に／明確に表現されるという点において、かつ、外部表現に基づく追加の表現の構築に関して正確にパースし得る信頼性のある表現を提供するという点において、特に好都合であるとみなし得る。しかしながら、その他の局面ではその他いずれかのフォーマットも適切であろう。
【００４２】
ここに開示する発明の概念の局面において、追加の内部表現を構築するステップは、外部表現の少なくとも一部をウェブブラウザアプリケーションにパースするステップを含む。
【００４３】
好ましくは、パースは、その他の内部表現用に意図されたウェブブラウザアプリケーションによって容易にされる。パーサは、外部表現から発生したスタイルシートコンテンツ、マークアップ言語コンテンツおよびその他のコンテンツを、ウェブブラウザアプリケーションにおける内部ドキュメントオブジェクトモデルにパースし得る。この目的のために、ウェブブラウザアプリケーションは、マークアップ言語パーサ、たとえばＨＴＭＬパーサ、ＸＭＬパーサ、スタイルシート（ＣＳＳ）パーサおよび／または同様のものを含むことにより、外部表現のコンテンツをウェブブラウザアプリケーションにパースしてブラウザにおいて内部ＤＯＭを構築し得る。
【００４４】
ここに開示する発明の概念の好ましい局面において、外部表現は、第１の内部表現の記憶場所から独立するように構築されてもよい。
【００４５】
これは、たとえば、後に詳細に説明する、第１の内部表現のシリアライズおよび／またはその他の処理によって、第１の内部表現のオブジェクト間の関係のマッピングによって、および／または同様の処理によって、容易にされてもよい。したがって、外部表現は、より一層包括的になりさらに他のブラウザにおける簡単な／好都合な実装を容易にすることができる。
【００４６】
ここに開示する発明の概念の好都合な局面において、外部表現を構築するステップは、ウェブページのインラインフレーム（Iframe）等のフレームを識別するステップを含み得る。
【００４７】
動的ウェブページは複数のフレーム含むことが多い。このようなフレームは、第１の内部表現のそれぞれ異なるドキュメントオブジェクトモデル各々において表現されてもよく、このようなフレームの状態の後の再構築を容易にするために、このフレームを、適切な外部表現を提供するために識別するのが好都合であろう。フレームの識別は、たとえば、内部表現のＤＯＭをソフトウェアアプリケーションに処理させることによって行なうことができる。
【００４８】
ある局面において、外部表現は、ウェブページのインラインフレーム（Iframe）等の、１つ以上のフレームに対して構築してもよい。
【００４９】
第１の内部表現の各フレームはしたがって、外部表現における、それ自身の外部フレーム表現を含むことにより、後の第１の内部状態表現のより好都合な構築を可能にし得る。
【００５０】
ある局面において、外部表現を構築するステップは、フレームアソシエーション表現を構築することを含み得る。
【００５１】
フレームアソシエーション表現は、たとえば、第１の内部表現のフレームツリーの情報を含むことにより、表現されたフレームをそれに応じてウェブブラウザ内の追加の内部表現において設定できるようにしてもよい。
【００５２】
ここに開示する発明の概念の好都合な局面において、外部表現は、ウェブブラウザにおけるウェブページの内部ドキュメントオブジェクトモデルに基づいて構築される。
【００５３】
第１の内部表現を含むウェブブラウザの内部ドキュメントオブジェクトモデルは、連続的に少なくとも部分的にブラウザの状態を表現し、したがって、ウェブブラウザの内部ドキュメントオブジェクトモデルを処理することが好都合である。
【００５４】
好都合な局面において、外部表現は、内部ドキュメントオブジェクトモデルのコンテンツの少なくとも一部をシリアライズすることによって構築してもよい。
【００５５】
このシリアライズは、たとえば、一貫しかつ信頼性がある外部状態表現の提供に役立ち得る。
【００５６】
ここに開示する発明の概念の局面において、追加の内部表現は、外部表現の少なくとも一部をデシリアライズし、デシリアライズの結果をウェブブラウザアプリケーションの結果として生じる内部ドキュメントオブジェクトモデルにパースすることによって、構築してもよい。
【００５７】
デシリアライズは、たとえば、外部表現を実現する状況を考慮する、たとえば追加の内部表現を構築するクライアントのソフトウェアおよび／またはハードウェアを考慮した、一貫しかつ信頼性がある内部状態表現の提供に役立ち得る。
【００５８】
ある局面において、第１の内部ブラウザ状態表現の第１のコンテンツはマークアップコンテンツを含み、外部表現はマークアップコンテンツの表現を含む。
【００５９】
よって、ウェブブラウザのいわば「静的」コンテンツの状態は、好ましくはマークアップ言語コンテンツのシリアライズにより、外部表現に外部化される。
【００６０】
マークアップオンテンツは、マークアップ言語コンテンツと呼んでもよく、ウェブページをウェブブラウザにパースする間にウェブブラウザによって構築されたウェブページの内部表現を含むことが、理解されるはずである。
【００６１】
好都合には、ある局面において内部ブラウザ状態表現の第１のコンテンツは、スタイルシートコンテンツの表現を含み得るものであり、外部表現は、スタイルシートコンテンツの表現を含み得る。
【００６２】
スタイルシートコンテンツは、ウェブページのスタイルシートコンテンツをブラウザにパースする間にウェブページによって構築されたウェブページの内部表現を含むことが、理解されるはずである。
【００６３】
ここに開示する発明の概念の局面において、第１のコンテンツは、第１の内部ブラウザ状態表現に関連するクッキーデータを含み得るものであり、外部表現は、クッキーデータの表現を含み得る。
【００６４】
クッキーデータは、たとえば、最終的に第１の内部表現になるブラウジング中のユーザに関連するデータが関連し得る、追加の内部表現の構築を容易にすることに関連し得る。よって、クッキーデータは、内部表現を含むブラウザアプリケーションから外部表現に導くことができる。
【００６５】
ここに開示する発明の概念の局面において、第１のコンテンツは、第１の内部ブラウザ状態表現のフォームコンテンツを含み得るものであり、外部表現は、フォームコンテンツの表現を含み得る。
【００６６】
これは、たとえば、記入されたフォームがウェブページの追加のブラウジングのための基礎を形成する局面において適切となり得るものであり、したがって、これらフォームに記入されたコンテンツを外部化し実現することにより、フォームに記入することなくウェブページのブラウジングを可能にするブラウザの状態を構築することが可能である。これは特に、フォームに記入できないかもしれないウェブロボットに関連し得る。加えて、外部表現の構築前に、ユーザは、追加の内部表現におけるデータをウェブロボットが如何に処理すべきかを定めるコンテンツをフォームに記入してもよい。フォームコンテンツは、内部表現から導出して、後の使用のために外部表現がこの情報を含むようにしてもよい。
【００６７】
ここに開示する発明の概念の好都合な局面において、マッピングデータは、第１の内部ブラウザ状態表現の動的コンテンツとマークアップコンテンツとの間の関係のマッピングを含む。
【００６８】
ウェブページの動的コンテンツは、内部表現のマークアップコンテンツのオブジェクト等のコンテンツにアクセスするおよび／またはこれを修正することができる。したがって、第１の内部状態に対応するブラウザ状態の構築を可能にするために、このような関係はマップに好都合であろう。
【００６９】
ここに開示する発明の概念の好都合な局面において、マッピングデータは、第１の内部ブラウザ状態表現の動的コンテンツとスタイルシートコンテンツとの間のポインタのマッピングを含む。
【００７０】
ここに開示する発明の概念の局面において、マッピングデータは、第１の内部ブラウザ状態表現のオブジェクトのメモリアドレスに対するポインタのマッピングを含む。
【００７１】
たとえば、第１の内部表現のスクリプティング等の動的コンテンツのポインタは、たとえば、第１の内部表現のスタイルシートコンテンツおよび／またはマークアップコンテンツのオブジェクトのメモリアドレスを指すことができる。しかしながら、これらメモリアドレスは、異なる処理イベントに応じて時間の経過とともに記憶場所が変化するという点において、追加の内部表現では使用できない場合がある。たとえば、外部表現の構築後、ユーザはブラウジングを続ける場合があり、これはメモリアドレスに影響し、結果として、以前のオブジェクトが置換され、補正され、またはメモリから削除されることがある。また、追加の内部表現が、第１の内部表現の構築に使用されたものと異なるクライアントまたはウェブサーバにある場合、データ記憶手段およびその内部設定は全く異なるものになり得る。
【００７２】
したがって、このようなマッピングは、ポインタが指すメモリアドレスのオブジェクトを識別することにより追加の内部表現において後にこのような関係を再構築する可能性を与えるのに好都合となり得る。しかしながら、ここに開示する発明の概念の他の局面ではその他のまたは追加の種類のマッピングを使用し得ることが理解される。
【００７３】
ここに開示する発明の概念の局面において、マッピングデータを構築するステップは、第１の内部表現を処理してオブジェクト間のマップポインタを識別するステップを含み得る。
【００７４】
よって、第１の内部表現の、動的コンテンツと、たとえばマークアップ言語コンテンツおよび／またはスタイルシートコンテンツ等の第１のコンテンツとの間のポインタを、追加の表現において再構築することができる。これらのポインタは、ウェブページ処理、ユーザ入力、ウェブページのスクリプティング等に応じて時間の経過とともに変化し得る。
【００７５】
たとえば、ポインタは、ウェブページを処理して第１の表現を構築するクライアントのデータメモリアドレスにおけるいずれかの場所に格納された別の値を参照する／指し示すことができる。よって、このようなポインタが追加の表現において第１の内部表現を如何にして構築するかに関する情報を含むことにより、追加の表現のポインタを第１の表現のメモリ割当から独立して再構築することができる。クライアントにおける所与の記憶場所の値が、たとえば内部ドキュメントオブジェクトモデルの表現の構築と関連して抽出される場合でも、この値に対するポインタは、追加の表現において実現されるときに、追加の表現における第１の表現の状態の再構築に必要な場合がある。
【００７６】
オブジェクトは、データメモリ内の位置であって値を有しこのオブジェクトを識別する識別子によって参照されるものとみなされる。
【００７７】
ここに開示する発明の概念の局面において、ポインタのマッピングは、内部表現のシリアライズ中のいわゆる「アンスウィズル（unswizzling）」によって実現し得る。
【００７８】
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第１のデータコンテンツを、内部ブラウザ状態表現のフォーマットとは異なる１つ以上のフォーマットに変換するステップを含む。
【００７９】
この変換は、好ましい局面において、内部表現のシリアライズ中に行なってもよい。
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第１の内部ブラウザ状態表現の一部を、たとえば拡張マークアップ言語の、第１の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含み得る。これは、内部表現の判定および再構築に関して利点をもたらし得る。
【００８０】
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第１の内部表現の異なるフレームの複数の内部ドキュメントオブジェクトモデルを、複数の内部ドキュメントオブジェクトモデルの１つ以上の外部表現に変換するステップを含む。
【００８１】
このようにして、状態表現のより深い表現を実現することができ、これは、後に使用するのがより簡単でより確実な、信頼性がありおよび／または柔軟性がある外部表現を容易にする。
【００８２】
ある局面において、この変換は、第１の内部ブラウザ状態表現のマークアップコンテンツを、拡張マークアップ言語（ＸＭＬ）フォーマット等のマークアップ言語フォーマットに変換するステップを含む。
【００８３】
この変換は、外部表現の好都合な後の処理を容易にする。このコンテンツは、好ましい局面において、ウェブブラウザの内部ＤＯＭの少なくとも一部を表わし得る。
【００８４】
ある局面において、この変換は、第１の内部ブラウザ状態表現のスタイル情報をカスケードスタイルシートフォーマットに変換するステップを含む。
【００８５】
よって、このスタイルシートフォーマットを、スタイルシートコンテンツのパース中に直接用いて追加の表現を構築することができる。
【００８６】
外部表現を構築するステップは、ある局面において、第１の内部ブラウザ状態表現の異なるコンテンツの複数の個別表現を構築するステップを含む。
【００８７】
よって、外部表現は、その状態の第１の内部表現のスタイルシートデータに関連するスタイルシートファイル（たとえば、.css）、その状態の第１の内部表現のスタイルシートデータに関連するマークアップ言語ファイル（たとえばＸＭＬ）、その状態の第１の内部表現の動的コンテンツの状態を含むファイル（たとえばスクリプティング言語）、その状態の第１の内部表現に関連するクッキーの表現を含むクッキーデータを有するテキストファイル、その状態の第１の内部表現のフォームコンテンツの表現、および本明細書で説明するマッピング情報を含むファイルを、含み得る。このため、外部表現は、第１の内部表現の状態をともに表現する複数のデータファイルを含み得る。
【００８８】
ここに開示する発明の概念の好都合な局面において、追加の内部表現の構築は、マッピングデータに基づいてウェブブラウザアプリケーションにおいてブラウザマークアップ言語コンテンツと動的コンテンツを再接続することを含み得る。好都合に、追加の内部表現の構築は、マッピングデータに基づいて追加の内部表現のオブジェクト間のポインタを再構築することを含み得る。
【００８９】
外部状態表現をデシリアライズしウェブブラウザアプリケーションにパースした後、ある局面において、第１の内部表現のオブジェクトおよびオブジェクトに対応するオブジェクト値が構築される。しかしながら、このようなオブジェクト間のたとえばポインタの形態の関係はまだ構築する必要があり、よって、マッピングデータをウェブブラウザアプリケーションによって処理することにより、このようなオブジェクト間の関係を再構築する。
【００９０】
ここに開示する発明の概念の局面において、ポインタの再構築は、たとえば、オブジェクト名／識別子に基づいて基準の変換を行ない得る、所謂「ポインタスウィズル（pointer swizzling）」によって、デシリアライズ中に実現し得る。
【００９１】
ここに開示する発明の概念の局面において、第１の内部表現および追加の内部表現は、異なるウェブブラウザに取入れられてもよい／表現されてもよい。
【００９２】
このようにして、異なるウェブブラウザにおいて同一のウェブブラウザ状態からブラウジングを続けることが可能になるであろう。これは、異なるユーザおよび／またはウェブロボット間でブラウジングタスクを委任することに関して、および、ウェブロボットの開発に関して、特に好都合であろう。
【００９３】
ここに開示する発明の概念の局面において、この方法は、外部表現に基づいて、異なるウェブブラウザアプリケーションにおいて複数の追加の内部表現を構築するステップを含む。
【００９４】
結果として、複数のウェブロボットおよび／またはユーザは、時間の経過に伴い、同一のウェブブラウザから、１回以上ブラウジングを続けることができる。
【００９５】
また、ウェブブラウザは、ループしてウェブブラウザ状態から異なる経路を辿ることを容易にし得るという点において、より効率的にすることができ、ウェブロボットまたはユーザによって経路が十分に検査された後に、外部状態表現を再導入して前のウェブブラウザ状態を再構築することができる。
【００９６】
ある局面において、ウェブページのウェブページ処理は、ウェブページのブラウジング中にウェブページの動的コンテンツを処理することを含み得る。
【００９７】
ある局面において、ウェブブラウザは一般的に、ウェブページのスクリプティングコンテンツを処理するように構成された、ｊａｖａ（登録商標）スクリプトエンジン等のスクリプトエンジンを含み得る。この間に、マークアップコンテンツおよび／またはスタイルシートコンテンツ等の、内部ＤＯＭ内の他のオブジェクトに対する動的オブジェクトオブジェクト間のポインタを、ウェブブラウザが構築および／または更新してもよい。
【００９８】
好ましい局面において、ウェブページの動的コンテンツはウェブページのスクリプトを含む。
【００９９】
動的ウェブページは、ウェブブラウザによって、たとえばクライアントサイドで実行すべきたとえばスクリプト等の複数の動的コンテンツを含むことが多い。このような動的コンテンツは、ウェブブラウザにおける表現中に時間の経過とともに適応する。
【０１００】
たとえば、動的コンテンツは、ウェブページをブラウジングするユーザによって行なわれる、特定されたタイミングイベントおよび／または同様のものであってもよい、マウス、キーボードおよび／またはタッチスクリーン操作に応答して、ウェブページ表現および／または挙動を修正する、ＪａｖａＳｃｒｉｐｔ（登録商標）（または別のスクリプティング言語）コンテンツであってもよい。たとえば、ユーザが、表示されたウェブページを「スクロール」すると、スクリプトは、追加のコンテンツを自動的に収集するおよび／または自動的にウェブページを更新するように設定されてもよい。
【０１０１】
ある局面において、ウェブページの動的コンテンツはまた、サーバ側のスクリプティングの結果であるコンテンツを含み得る。サーバ側のコンテンツのスクリプティングは、ウェブページ上のウェブコンテンツおよび／または外観を変更するのに使用される、ウェブサーバ上で実行される１つ以上のプログラムに基づいてウェブページのコンテンツが制御または更新されることであると理解される。これらの埋め込まれたスクリプトの結果、サーバのウェブサイトに対するクライアントの要求が、サーバがクライアントの要求に応じる前に、ウェブサーバ上のサーバ側で実行されている１つ以上のスクリプトによって処理されることになる。たとえば、サーバ側のスクリプティングは、画面上でユーザに対して表示された入力フィールドにユーザが入力したデータを受けることができ、および／またはユーザのブラウジング中に構築されたデータを受けることができる。このデータは次に、ウェブページの埋め込みスクリプトによって、データを処理し結果に従ってデータをブラウザに返すサーバ側のスクリプトに送信される。
【０１０２】
好都合な局面において、第１の内部表現を含むウェブブラウザは、第１の内部ブラウザ状態表現を、好ましくは、第１の内部表現の少なくとも一部をシリアライズするためのシリアライズ手段によって、外部表現に外部化する。
【０１０３】
ある局面において、追加の内部表現に対して使用されるウェブブラウザアプリケーションは、好ましくは、外部表現の少なくとも一部をデシリアライズするためのデシリアライズ手段によって、追加の内部表現を構築してもよい。
【０１０４】
よって、デシリアライズされたコンテンツを、デシリアライズ後に、ウェブブラウザアプリケーションによって内部ＤＯＭにパースすることができる。
【０１０５】
ウェブブラウザは、ウェブページ、ユーザの対話、動的コンテンツおよび／または同様のものによって与えられる、ウェブページの内部状態表現を含む。よって、外部表現および／または追加の内部表現を構築するようにウェブブラウザを構成することにより、ウェブブラウザは、その内部表現にアクセスすることができ、外部状態表現に外部化する時点でウェブブラウザの正確な状態を外部化することができる。
【０１０６】
これに代えて、ブラウザの外部にある手段が、ウェブブラウザの、たとえば内部ＤＯＭ、フォームデータ、クッキーデータ等のコピーといった、ウェブブラウザ状態のコピーを取った後に、コピーされたデータを処理することによって外部表現を構築できるものであってもよい。
【０１０７】
ここに開示する発明の概念の好都合な局面において、ウェブロボットは、予め定められた基準が満たされたときに１つ以上の外部表現の構築を開始するように構成されてもよく、および／または、ウェブロボットは、外部表現に基づいて１つ以上の追加の内部表現を構築するように構成されてもよい。
【０１０８】
ここに開示する発明の概念さらに、ウェブブラウザの第１の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するためのシステムに関し、このシステムは、上記第１の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、上記状態の外部表現を構築することは、上記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、上記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含み、ウェブブラウザアプリケーションは、上記第１の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、上記追加の内部状態表現を構築するように構成されている。
【０１０９】
上記システムのある局面において、このシステムは、請求項１〜３５のいずれかの方法に従って動作するように構成される。
【０１１０】
加えて、ここに開示される発明の概念は、１つ以上のウェブロボットを共に用いる、請求項１〜３７のいずれかに記載の方法および／またはシステムの使用に関し、上記１つ以上のウェブロボットは、第１の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現の構築を開始するように構成され、上記追加の内部表現は外部状態表現に基づいて構築される。
【０１１１】
また、ここに開示される発明の概念は、異なるウェブブラウザアプリケーションにおける複数のブラウジングイベントを構築するための、請求項１〜３８のいずれかに記載の方法、システムおよび／または使用に関連する。
【０１１２】
さらなる用途の局面において、上記複数のブラウジングイベントは１つ以上のサーバに対して実行されてもよい。よって、ある局面において、サーバは、ホストサーバによって実行されるウェブロボットであってもよい。これは、好ましくは１つ以上のウェブロボットによって実質的に同時に、ウェブページの高速で効率的なブラウジングを行なうための効率的で有効な解決策を提供する。
【０１１３】
加えて、ここに開示する発明の概念は、外部ブラウザ状態表現を構築するための第１のウェブブラウザに関し、上記ウェブブラウザは、第１の内部ブラウザ状態表現の第１のコンテンツの外部表現を構築するための手段と、上記第１の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築するための手段と、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するための手段とを含む。
【０１１４】
また、ある局面において「手段」という用語は一般的に機構またはアプリケーションであるとみなし得る。
【０１１５】
ある局面において、第１のウェブブラウザは、請求項１〜３５のいずれかの方法に従って動作するように構成し得る。
【０１１６】
加えて、ここに開示する発明の概念は、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するための第２のウェブブラウザアプリケーションに関連し、上記ウェブブラウザアプリケーションは、予め構築された外部ブラウザ状態表現を処理するための手段と、上記処理の結果を上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするための手段と、上記外部ブラウザ状態表現のマッピングデータを処理し、上記マッピングデータに基づいて上記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第１のコンテンツとの関係を実現するための手段とを含む。
【０１１７】
第２のウェブブラウザの局面において、第２のウェブブラウザは、請求項１〜３５のいずれかに記載の方法に従って動作するように構成し得る。
【０１１８】
上に開示したウェブブラウザは、ウェブページを処理するために使用されるコンピュータ読取を含むコンピュータプログラムプロダクトとみなし得る。上記ウェブブラウザは、上記外部表現を構築し処理するための手段に加えて、ウェブページのブラウジングを容易にするためのパーサ、レイアウトエンジン、データ通信レイヤおよび／または同様のもの等の、ウェブページを処理するためのその他の従来の手段を含み得る。
【０１１９】
加えて、ここに開示する発明の概念は、複数のウェブページを含むウェブベースのデータソースをブラウジングする方法に関する。この方法は、ウェブブラウザを用いて上記ウェブベースのデータソースの１以上のウェブページをブラウジングするステップと、上記ウェブブラウザを用いてブラウジング中に異なる第１の内部ブラウザ状態の少なくとも２つの外部表現を構築するステップと、１つ以上のウェブブラウザアプリケーションにおける上記外部表現のうちの少なくとも１つに基づいて追加の１つ以上のブラウジングイベントを構築するステップとを含み、上記追加の１つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記１つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。
【０１２０】
ある局面において、請求項１〜３５のいずれかに記載の方法に従い、および／または請求項３６〜３７のいずれかに記載のシステムを用いて、上記少なくとも２つの外部表現が、構築されてもよく、および／または、１つ以上のウェブブラウザアプリケーションに実現されてもよい。
【０１２１】
上記ウェブベースのデータソースをブラウジングする方法の局面において、上記方法はウェブロボットによって実行される。
【０１２２】
これに代えて、ここに開示する発明の概念の局面において、ユーザがブラウジングの少なくとも一部を実施してもよい。ロボットがブラウジングの一部を実施するイベントにおいて、このブラウジングの一部はコンピュータの画面上で必ずしもモニタリングされなくてもよい。
【０１２３】
加えて、ここに開示する発明の概念は、ウェブブラウザを用いたウェブページのブラウジングのためのウェブロボットの使用に関し、上記ウェブロボットは、１つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、上記ウェブロボットは、予め定められた基準が満たされたことに応じて、請求項１〜３５のいずれかに記載の１つ以上の外部表現の構築を開始するように構成されている。
【０１２４】
ある局面において、予め定められた基準は、たとえば、実行されたスクリプティングコンテンツ、実行されたパースされたコンテンツのステータス、スタイルシート情報のステータスおよび／またはそれに類似する物に関連する基準等の、１つ以上の基準を、ウェブページのウェブブラウザ処理が満たすときの、たとえばウェブページの処理に関連する基準に関連し得る。これらの基準は、たとえば本明細書に記載の１つ以上の方法に従い、外部表現の構築をトリガし得る。
【０１２５】
ここに開示する発明の概念はさらに、ウェブブラウザにおいて表現されるウェブページの状態表現を構築するさらに他の方法に関連し得る。この方法は以下のステップを含む。ウェブブラウザによって、ウェブベースのデータから取出されたウェブページのウェブページ処理を実行するステップと、ウェブブラウザにおいて、ウェブページの、結果として生じる第１の内部ブラウザ状態表現を構築するステップと、ウェブページの処理中に、第１の内部表現の状態の外部表現を構築するステップとを含み、上記状態の外部表現を構築するステップは、第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、第１の内部ブラウザ状態表現の動的コンテンツと第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップと、外部表現をデータ記憶装置に格納するステップとを含む。
【０１２６】
上記さらに他の方法のこの実施形態を、たとえば図１〜図１１に関して説明するいずれかの適切な実施形態と組合わせてもよい。
【０１２７】
外部表現を構築することおよび／またはブラウザ状態を再構築するための外部表現の使用は、コンピュータによって実施されることにより、外部状態表現を実質的に自動的に生成し得るまたは、たとえばユーザまたはウェブロボットからの要求に応じて外部状態表現を使用／実現し得るものと、一般的に理解される。
【０１２８】
ある一般的なアプローチにおいて、ウェブブラウザにおいて表現されるウェブページの状態表現を構築する方法は、ウェブブラウザを用いて以下の動作を実行するステップを含む。すなわち、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、ウェブブラウザにおいて、ウェブページの、結果として生じる第１の内部ブラウザ表現を構築するステップと、第１の内部表現の状態を表わす外部表現を構築するステップとを含み、状態の外部表現を構築するステップは、第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、動的コンテンツと第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップと、外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、第１の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップとを含む。
【０１２９】
別の一般的な実施形態において、システムは、ウェブブラウザの第１の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するように構成される。このシステムは、第１の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、ウェブブラウザアプリケーションは、第１の内部ブラウザ状態表現の状態に対応するブラウザ状態の外部状態表現に基づいて追加の内部状態表現を構築するように構成される。状態の外部表現を構築することは、第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築することと、第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、第１の内部ブラウザ状態表現の動的コンテンツと第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含む。
【０１３０】
さらに他の一般的な実施形態において、ウェブブラウザは外部ブラウザ状態表現を構築するように構成され、これは、第１の内部ブラウザ状態表現の第１のコンテンツの外部表現を構築することと、第１の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築することと、第１の内部ブラウザ状態表現の動的コンテンツと第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することとによって、実現される。
【０１３１】
他の一般的なアプローチにおいて、ウェブブラウザは、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するように構成され、これは、予め構築された外部ブラウザ状態表現を処理することと、処理の結果をウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースすることと、外部ブラウザ状態表現のマッピングデータを処理し、マッピングデータに基づいて内部ドキュメントオブジェクトモデルにおける動的コンテンツと第１のコンテンツとの関係を実現することとによって、実現される。
【０１３２】
さらに他の一般的な実施形態において、方法は、複数のウェブページを含むウェブベースのデータソースをブラウジングすることに関する。この方法は、ウェブブラウザを用いて、ウェブベースのデータソースの１以上のウェブページをブラウジングするステップと、ブラウジング中に異なる第１の内部ブラウザ状態の少なくとも２つの外部表現を構築するステップと、外部表現のコンテンツの処理に少なくとも一部基づき、１つ以上のウェブブラウザアプリケーションにおける外部表現のうちの少なくとも１つに基づいて追加の１つ以上のブラウジングイベントを構築するステップと、１つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップとを含む。
【０１３３】
好ましいアプローチにおいて、本明細書に開示する発明の実施形態は、任意の数の、下記の機能、特徴、および／または構成要素を含み得る。
【０１３４】
ウェブブラウザにおいて表わされるウェブページの状態表現を構築することは、上記ウェブブラウザを用いて、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、上記ウェブブラウザにおいて、上記ウェブページの、結果として生じる第１の内部ブラウザ状態表現を構築するステップと、外部表現を構築するステップとを含み、上記外部表現は上記第１の内部表現の状態を表わし、上記状態の外部表現を構築するステップは、上記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築するステップと、上記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含み、上記方法はさらに、上記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、上記第１の内部ブラウザ状態表現の状態に対応する状態で、上記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む。上記外部状態表現を構築するステップは、上記第１の内部ブラウザ状態表現の少なくとも一部をシリアライズするステップを含み得る。上記第１の内部ブラウザ状態表現の一部は、上記動的コンテンツおよび上記第１のコンテンツのうちの１つ以上の少なくとも一部分を含み得る。上記追加の内部表現を構築するステップは、上記外部表現の少なくとも一部をデシリアライズするステップを含み得る。上記追加の内部表現を構築するステップは、上記外部表現の少なくとも一部を上記ウェブブラウザアプリケーションにパースするステップを含み得る。上記外部表現は、１つ以上の記憶場所から独立するように構築されてもよい、上記１つ以上の記憶場所は、上記第１の内部表現に対応する。上記外部表現を構築するステップは、複数の識別フレームを含み得るものであり、上記複数の識別フレームは上記ウェブページの１つ以上のインラインフレームを含む。外部フレーム表現が２つ以上のフレーム各々に対して構築されてもよく、上記２つ以上のフレームのうちの少なくとも１つは、上記ウェブページの少なくとも１つのインラインフレームを含む。上記外部表現を構築するステップは、フレームアソシエーション表現を構築するステップを含み得る。上記外部表現は、上記ウェブブラウザにおける上記ウェブページの内部ドキュメントオブジェクトモデル表現に基づいて構築されてもよい。上記外部表現は、上記内部ドキュメントオブジェクトモデルのコンテンツの少なくとも一部をシリアライズすることによって構築されてもよい。上記追加の内部表現を構築するステップは、上記外部表現の少なくとも一部をデシリアライズするステップと、上記外部表現のデシリアライズされた一部を、上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするステップとを含み得る。上記第１の内部ブラウザ状態表現の第１のコンテンツはマークアップコンテンツを含み得るものであり、上記外部表現は上記マークアップコンテンツの表現を含み得る。上記内部ブラウザ状態表現の第１のコンテンツは、スタイルシートコンテンツの表現を含み得るものであり、上記外部表現は、上記スタイルシートコンテンツの表現を含み得る。上記第１のコンテンツは、上記第１の内部ブラウザ状態表現に関連するクッキーデータを含み得るものであり、上記外部表現は、上記クッキーデータの表現を含み得る。上記第１のコンテンツは、上記第１の内部ブラウザ状態表現のフォームコンテンツを含み得るものであり、上記外部表現は、上記フォームコンテンツの表現を含み得る。上記マッピングデータは、上記第１の内部ブラウザ状態表現の上記動的コンテンツとマークアップコンテンツとの間の１つ以上の関係のマッピングを含み得る。上記マッピングデータは、上記第１の内部ブラウザ状態表現の上記動的コンテンツとスタイルシートコンテンツとの間のポインタのマッピングを含み得る。上記マッピングデータは、上記第１の内部ブラウザ状態表現の１つ以上のオブジェクトの１つ以上のメモリアドレスに対する１つ以上のポインタのマッピングを含み得る。上記マッピングを構築するステップは、上記第１の内部表現を処理するステップと、上記処理に少なくとも一部基づいてオブジェクト間の１つ以上のポインタを識別するステップと、上記ポインタを上記メモリアドレスにマッピングするステップとを含み得る。上記外部表現を構築するステップは、上記第１のコンテンツを１つ以上のフォーマットに変換するステップを含み得るものであり、変換後の上記１つ以上のフォーマットは各々、上記内部ブラウザ状態表現のフォーマットと異なる。上記外部表現を構築するステップは、上記第１の内部ブラウザ状態表現の少なくとも一部を、上記第１の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含み得る。上記外部表現を構築するステップは、上記第１の内部ブラウザ状態表現の異なるフレームの複数の内部ドキュメントオブジェクトモデルを、上記複数の内部ドキュメントオブジェクトモデルの１つ以上の外部表現に変換するステップを含み得る。上記第１の内部ブラウザ状態表現はマークアップコンテンツを含み得るものであり、上記変換するステップは、上記マークアップコンテンツの少なくとも一部をマークアップ言語フォーマットに設定するステップを含み得る。上記第１の内部ブラウザ状態表現はスタイル情報を含み得るものであり、上記変換するステップは、上記スタイル情報の少なくとも一部をカスケードスタイルシートフォーマットに設定するステップを含み得る。上記第１の内部ブラウザ状態表現は、複数の異なるコンテンツ要素を含み得るものであり、異なるコンテンツ要素は各々、上記第１のコンテンツおよび上記動的コンテンツのうちの１つ以上の少なくとも一部を含む。上記外部表現を構築するステップはさらに、複数の個別表現を構築するステップを含み得るものであり、個別表現は各々上記第１の内部ブラウザ状態表現に基づいており、個別表現は各々、上記複数の異なるコンテンツ要素のうちの少なくとも１つに対応し得る。上記追加の内部表現を構築するステップは、上記ウェブブラウザアプリケーションにおいて上記ブラウザのマークアップ言語コンテンツの表現と動的コンテンツとの少なくとも１つの接続をマッピングするステップを含み得るものであり、上記マッピングは上記マッピングデータに少なくとも一部基づき得る。上記追加の内部表現を構築するステップは、上記追加の内部表現の１つ以上のオブジェクト間の１つ以上のポインタを構築するステップを含み得るものであり、上記構築するステップは、上記マッピングデータの少なくとも一部に基づき得る。上記第１の内部表現および上記追加の内部表現は各々、少なくとも１つのウェブブラウザ、少なくとも１つのウェブブラウザアプリケーション、少なくとも１つのウェブページ、のうちの１つ以上に組込まれている。上記第１の内部表現および上記追加の内部表現は、１つ以上の上記ウェブブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる１つ、および、１つ以上の上記ブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる種類、のうちのいずれかまたは双方に組込まれている。複数のウェブブラウザアプリケーションにおける複数の追加の内部表現を構築するステップにおいて、上記追加の内部表現が構築された／され得る複数の上記ウェブブラウザアプリケーションは各々、上記追加の内部表現が構築された／され得る上記ブラウザアプリケーションの他のすべてのウェブブラウザアプリケーションと異なっていてもよい。上記ウェブページのウェブページ処理は、ブラウジング動作中に上記ウェブページの動的コンテンツを処理するステップを含み得るものであり、上記ブラウジング動作は上記ウェブページに対する動作である。上記ウェブページの動的コンテンツは上記ウェブページのスクリプトを含み得る。上記第１の内部表現を含む上記ウェブブラウザは、上記第１の内部表現の少なくとも一部分のシリアライズの少なくとも一部に基づいて、上記第１の内部ブラウザ状態表現を上記外部表現に外部化する。上記追加の内部表現に対する上記ウェブブラウザアプリケーションは、上記外部表現の少なくとも一部分のデシリアライズの少なくとも一部に基づいて、上記追加の内部表現を構築し得る。加えておよび／または代替的に、好ましくは、ウェブロボットを用いて、予め定められた１つ以上の基準が満たされているか否か判断するステップと、上記予め定められた基準のうちの１つ以上が満たされているという判断の少なくともに一部基づいて上記外部表現を構築するステップを開始するステップとを容易にすることが好都合である。上記ウェブロボットは外部表現に基づいて１つ以上の追加の内部表現を構築するように構成されてもよい。システムは、ウェブブラウザの第１の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するように構成されてもよい。上記システムは、上記第１の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、上記状態の外部表現を構築することは、上記第１の内部ブラウザ状態表現の第１のコンテンツの表現を構築することと、上記第１の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含む。このシステムにおいて、ウェブブラウザアプリケーションは、上記第１の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、上記追加の内部状態表現を構築するように構成されてもよい。上記システムは、任意で１つ以上のウェブロボットと関連して、上記方法に従って動作するように構成されてもよく、上記１つ以上のウェブロボットは、第１の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現の構築を開始するように構成される。上記追加の内部表現は外部状態表現に基づいて構築されてもよい。上記概念は、複数のブラウジングイベントが１つ以上のサーバ上で実行されていても、１つ以上の異なるウェブブラウザアプリケーションにおける複数のブラウジングイベントを構築するのに有用である。ウェブブラウザを、外部ブラウザ状態表現を構築するように構成してもよい。上記ウェブブラウザは、第１の内部ブラウザ状態表現の第１のコンテンツの外部表現を構築するための手段と、上記第１の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築するための手段と、上記第１の内部ブラウザ状態表現の上記動的コンテンツと上記第１のコンテンツとの関係のマッピングを含むマッピングデータを構築するための手段とを含む。ウェブブラウザアプリケーションを、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するように構成してもよい。上記ウェブブラウザアプリケーションは、予め構築された外部ブラウザ状態表現を処理するための手段と、上記処理の結果を上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするための手段と、上記外部ブラウザ状態表現のマッピングデータを処理し、上記マッピングデータに基づいて上記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第１のコンテンツとの関係を実現するための手段とを含む。ウェブページを含むウェブベースのデータソースをブラウジングする方法は、ウェブブラウザを用いて上記ウェブベースのデータソースの１以上のウェブページをブラウジングするステップと、上記ウェブブラウザを用いてブラウジング中に異なる第１の内部ブラウザ状態の少なくとも２つの外部表現を構築するステップと、１つ以上のウェブブラウザアプリケーションにおける上記外部表現のうちの少なくとも１つに基づいて追加の１つ以上のブラウジングイベントを構築する
ステップとを含み、上記追加の１つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記１つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。上記方法および／またはシステムに従い、上記少なくとも２つの外部表現が、構築されてもよく、および／または、１つ以上のウェブブラウザアプリケーションに実現されてもよい。上記方法も、特にウェブブラウザを用いたウェブページのブラウジングを実現するために、ウェブロボットによって実行されてもよい。上記ウェブロボットは、１つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、上記ウェブロボットは、予め定められた１つ以上の基準が満たされたことに応じて、上記方法および／またはシステムのいずれかに従い、１つ以上の外部表現の構築を開始するように構成されてもよい。
【０１３５】
ここに開示する発明の概念によって示される、その他の特徴、機能、構成要素、および利点を、図面を参照しながら示す。以下の説明は、代表的なものであると理解されるべきものであって、示される特徴のうちのいずれかを、当業者が本開示を読んで理解するであろう任意の適切なやり方で、組合わせても置換してもよい。
【０１３６】
図１は、ここに開示する発明の概念の実施形態に従うシステムを示す。このシステムは第１のクライアントＣ１と第２のクライアントＣ２とを含む。この例のこれらのクライアントは、デスクトップ、ラップトップ、タブレットコンピュータおよび／または同様のもの等の計算ユニットであるが、１つ以上のウェブロボットを含むサーバも、ここに開示する発明の概念の他の実施形態ではクライアントとみなし得る。クライアントＣ１、Ｃ２は、１つ以上のデータプロセッサ／ＣＰＵ、データ記憶装置、回路基板、画面を含み、キーボード（ハードウェアまたはソフトウェア（タッチスクリーンを介する））、コンピュータマウスおよび／または同様のもの等の入力手段を含み得る。
【０１３７】
また、クライアントＣ１、Ｃ２はウェブブラウザ手段ＷＢ、ＷＢＡを含む。これらのウェブブラウザ手段は、インターネットＩＮとも呼ばれるワールドワイドウェブ上のウェブページＷＰ１〜ＷＰｎにアクセスし、これを処理し、表示するように構成されたソフトウェアアプリケーションである。これらのウェブページＷＰ１〜ＷＰｎは、ウェブベースのデータソースＷＢＤＳに位置する。
【０１３８】
よって、ウェブブラウザＷＢ、ＷＢＡは、ウェブブラウザが、ウェブベースのデータソースＷＢＤＳからのウェブページにアクセスし、これを取出し、解釈することを可能にする適切な手段を含み得る。これらの手段は、たとえば、ＪａｖａＳｃｒｉｐｔを解釈する専用コンピュータソフトウェア、たとえばｊａｖａ  ｓｃｒｉｐｔエンジンを含み得る。これは、ＨＴＭＬ、ＸＭＬ、画像ファイルおよび／または同様のもの等のマークアップコンテンツを処理し、カスケードスタイルシート（ＣＳＳ），拡張可能なスタイルシート言語（ＥＳＬ）および／または同様のもの等の情報をフォーマット（書式設定）するための、１つ以上のレイアウト／レンダリングエンジンを含み得る。
【０１３９】
ウェブベースのデータソースＷＢＤＳはウェブサーバとしても知られている。よって、これらのウェブページはインターネットＩＮを通してアクセス可能であり、ウェブブラウザアプリケーションを含むクライアントまたはウェブサーバは、インターネットを通してたとえばウェブベースのデータソースＷＢＤＳと通信するための適切なデータ通信手段を含む。
【０１４０】
クライアントのユーザＵ（またはウェブロボット）は、たとえば、ウェブページを参照するブラウザ内のウェブアドレス／統一資源ロケータ（ＵＲＬ）を入力することにより、ウェブブラウザＷＢを用いて、ウェブページＷＰ１〜ＷＰｎにアクセスする。次に、ウェブブラウザＷＢは、上記ＵＲＬのウェブページＷＰ１を取出し、このウェブページをクライアントＣ１、Ｃ２の画面上に視覚化する。これは、好ましくは、ウェブベースのデータソースＷＢＤＳから取出されたウェブページＷＰ１のウェブページ処理を実行し、ウェブブラウザにおけるウェブページＷＰ１、たとえばウェブページＷＰ１の内部ブラウザ表現ＦＩＲ、ＦＵＩＲを構築することによってなされる。
【０１４１】
これは、取出されたウェブページＷＰ１を処理し、このウェブページのコンテンツをウェブブラウザＷＢにおける内部ドキュメントオブジェクトモデルにパースすることによってなされる。そうすると、ユーザはブラウザを用いてウェブページＷＰ１をブラウジングすることができる。
【０１４２】
ウェブページＷＰ１は、たとえばマークアップ言語コンテンツの形態の静的コンテンツとスタイルシートコンテンツとを含む。マークアップ言語コンテンツは、いずれか適切なマークアップ言語で記述されていればよいが、これはハイパーテキストマークアップ言語（ＨＴＭＬ）であることが多い。
【０１４３】
スタイルシートコンテンツは、クライアントＣ１、Ｃ２の画面上においてユーザに対して如何にしてマークアップ言語コンテンツを視覚的に表示すべきかに関する情報を含むカスケードスタイルシート（ＣＳＳ）を含み得る。
【０１４４】
また、大抵のウェブページは、たとえば、ＪａｖａＳｃｒｉｐｔコンテンツまたは同様のもの等のスクリプティングコンテンツの形態の動的コンテンツを含む。スクリプティングコンテンツは、ユーザおよび／またはウェブページ自身によって行なわれるマウスもしくはキーボード操作またはその他の操作に応じて、ウェブページの挙動を変化させることができる。動的コンテンツは、クライアント側のスクリプティングおよび／またはサーバ側のスクリプティングを容易にするための手段を含み得る。
【０１４５】
ウェブページの動的および「静的」コンテンツは、ウェブブラウザによって処理され、結果として、ウェブブラウザＷＢによって、特に内部ドキュメントオブジェクトモデル表現ＩＤＯＭを用いて、ウェブブラウザにおける、結果として生じる第１の内部ブラウザ状態表現が生成される。この内部ドキュメントオブジェクトモデル表現ＩＤＯＭは、以下において「内部ＤＯＭ」と呼ぶ場合もある。
【０１４６】
しかしながら、内部ＤＯＭは、ユーザＵが行なう動作が原因で、および／またはＩＤＯＭによってウェブページ表現を自動的に修正するスクリプティングコンテンツが原因で、時間の経過とともに修正される。このため、異なるクライアントにおいて構築されているが同一のウェブページＷＰに基づく内部ＤＯＭ、すなわちＩＤＯＭは、ウェブページとのユーザの異なる対話が原因で異なるように見える場合があり、および／またはウェブページのスクリプティングが時間とともに変化して、異なる時間に表示されるウェブページが異なるように見えるおよび／または異なる動作を行なう。よって、ここに開示する発明の概念の実施形態に従ってウェブブラウザＷＢにおいて表現されるウェブページＷＰ１〜ＷＰｎの状態表現を構築するときには、このことを考慮する必要があるであろう。ここに開示する発明の概念の実施形態に従うと、これはたとえば下記のように実現し得る。
【０１４７】
ユーザＵ（またはウェブロボット）が、後の時点において、別のウェブブラウザ（ＷＢＡ）または同一のウェブブラウザにおいてウェブページＷＰ１の第１の内部表現の特定の状態から続けることを容易にしたいと思う場合がある。その場合、ここに開示する発明の概念の実施形態に従い、ユーザＵ（またはウェブロボット）は、ウェブページ処理中のある時点で、第１の内部表現ＦＩＲの状態の外部表現ＥＲの構築および格納を開始する。これは、コンピュータマウスを用いてクライアントの画面上のボタンとクリックすることにより、または特定の場所でタッチスクリーンをタッチすることにより、キーボードおよび／または同様のものによってコマンドを入力することにより、実施してもよい。
【０１４８】
ウェブロボットは、インターネットを通して自動化されたタスクを実行するソフトウェアアプリケーションであると定義してもよい。典型的に、ウェブロボットは、人間が単独でなし得るよりも遥かに速い速度でタスクを実行する。ウェブロボットは、特定のウェブページまたはある種のウェブページからのコンテンツにアクセスしこれを処理して取出すように設計し得る、予め規定された一組のルールおよび／または命令を含む。よって、ロボットは、実装され動作するときに、ブラウザを用いてウェブページにアクセスし、ウェブページからデータを取出して、たとえば、ウェブページを通してアクセス可能なデータベースのコンテンツを格納しおよび／またはインデックスして、ウェブページ（またはウェブページを用いてアクセス可能なデータベース）等のコンテンツの解析を実行するように、設計し得る。ロボットはしたがって、ユーザによって、自動的にウェブページにアクセスしロボットを設計したユーザがアクセスすることを意図したデータにアクセスするよう、ウェブページまたはある種のウェブページに基づいて、構成されてもよい。
【０１４９】
よって、ウェブロボットは、ブラウザにおいて特定の基準が満たされたときに、たとえばブラウザの特定の状態に達し、ロボットが外部表現の構築を開始するように、設計されてもよい。たとえば、ウェブページのスクリプトが実行されウェブページが処理されてロボットが要求するデータにアクセス可能になったときに、外部表現を構築して、他の（別の）ウェブブラウザにおける１つ以上の追加の内部表現を構築できるように、または、外部表現の構築時にブラウザ状態に対応する状態の内部表現にロボットが後で戻ることができるように、してもよい。このことについては本明細書において後にさらに説明する。
【０１５０】
ここに開示する発明の概念の実施形態に従いウェブロボットを使用するイベントにおいて、ウェブロボットは、一組のルールに従って動作するように構成されてもよく、この場合、一組の基準が満たされたときおよび／またはウェブブラウザにおいてブラウザの予め規定された状態に達したときに、１つ以上のウェブロボットＡＰＩ方法が呼び出されて、ここに開示する発明の概念の他の実施形態にのいて説明する外部表現ＥＲを構築してもよく、および／またはウェブページデータを処理してもよい。このように、ここに開示する発明の概念のある局面において、ロボットは、異なる従来の方法を用いてウェブページを通したナビゲートを実行するが、それに加えて、本明細書の他の実施形態に開示する外部表現をロボットが構築できるようにする、統合された機能を含み得る。したがって、ロボットは、ウェブブラウザを用いて、たとえば、ウェブページをロードする、ＵＲＬ情報を抽出する、画像を抽出する、テキストを抽出する等を行なうことができる。
【０１５１】
外部表現ＥＲの構築の開始により、ウェブブラウザＷＢの内部ＤＯＭ表現ＩＤＯＭの処理が開始されて、第１の内部表現ＦＩＲの第１のコンテンツＦＣの表現ＲＦＣを含む外部表現ＥＲが構築される。第１のコンテンツＦＣは、たとえば、マークアップコンテンツの内部ブラウザ表現と、スタイルシートコンテンツの内部ブラウザ表現とを含む。これはさらに、実施形態では、クッキーの内部ブラウザ表現および／またはウェブブラウザにおいて示されたウェブページに関連するフォームコンテンツの内部ブラウザ表現を含み得る。
【０１５２】
また、第１の内部表現（ＦＩＲ）の動的コンテンツＤＣの状態を表わす外部動的コンテンツ状態表現ＤＣＳＲが構築される。上記動的コンテンツ状態の外部表現ＤＣＳＲおよび第１のコンテンツの表現ＲＦＣを構築することは、それぞれの内部表現を処理してコンテンツを所定のデータフォーマットに変換することを含み得る。
【０１５３】
たとえば、内部ブラウザ表現のマークアップコンテンツを、拡張可能なマークアップ言語（ＸＭＬ）または同様のもの等のマークアップ言語フォーマットで外部表現に格納してもよい。
【０１５４】
スタイルシートコンテンツは、カスケードスタイルシート（ＣＳＳ）または同様のもの等のスタイルシートフォーマットで格納してもよい。
【０１５５】
クッキー情報は、クッキーを表わすテキスト列を含むテキスト文書または同様のものに格納してもよく、フォームコンテンツも、マークアップ言語たとえばＸＭＬ等の文書フォーマットで格納してもよい。
【０１５６】
動的コンテンツの表現は、バイナリフォーマットで格納してもよく、動的コンテンツの状態を含み、好ましくは動的コンテンツそのものでもある。
【０１５７】
ここに開示する発明の概念の実施形態において、外部表現はウェブブラウザの外部で構築し得るものと一般的に理解される。よって、これは、クライアントＣ１のデータメモリに格納されてもよく（以下でより詳細に説明する）、クライアントＣ１および／または同様のものの外部のデータ記憶装置に格納されてもよい。
【０１５８】
また、第１の内部状態表現ＦＩＲは、動的コンテンツから、内部表現のマークアップ言語コンテンツおよび／またはスタイルシートコンテンツの変数の値を含むコンピュータメモリアドレスに対する、複数のポインタを含み得る。これらのポインタは、別のウェブブラウザアプリケーションＷＢＡにおいて対応する状態を構築するのを容易にするためにマッピングする必要があるであろう。したがって、ここに開示する発明の概念に従うと、動的コンテンツＤＣと第１の内部表現ＦＩＲのマークアップ言語コンテンツ等の第１のコンテンツＦＩの少なくとも一部との関係のマッピングを含むマッピングデータＭＤが構築される。このマッピングデータＭＤはしたがって、第１の内部表現ＦＩＲの動的コンテンツＤＣと第１の（静的）コンテンツＦＣとがどのように関連付けられたかに関連する情報を含み、したがって、対応するコンテンツを追加の内部表現ＦＵＩＲにおいてどのように関連付けるべきかに関する情報を含む。
【０１５９】
外部表現ＥＲは、クライアントＣ１、クライアントの外部のウェブサーバ、または、その他適切な場所の、いずれかにおける、データ記憶装置に格納される。外部表現ＥＲはさらに、複数の外部表現（図１には示されていない）にコピーされてもよく、複数の外部表現各々を、複数のウェブブラウザアプリケーションＷＢＲにおける１つ以上の追加の内部表現を構築するのに使用してもよい。
【０１６０】
よって、外部表現ＥＲは、ウェブブラウザＷＢの第１の内部状態に対応する状態でウェブブラウザアプリケーションＷＢＡの追加の内部ブラウザ表現ＦＵＩＲを構築するために使用し得る（これについては以下で詳細に説明する）。
【０１６１】
ここに開示する発明の概念の実施形態に従い、外部表現が処理され、追加の内部ＤＯＭ表現ＦＩＤＯＭがそれに基づいてウェブブラウザアプリケーションＷＢＡにおいて構築される。これは、第１のコンテンツＦＣの外部表現ＲＦＣの形態の外部表現ＥＲ，外部動的コンテンツ状態表現ＤＣＳＲ、およびマッピングデータを処理することによって実施される。
【０１６２】
よって、ユーザは、ウェブブラウザアプリケーションＷＢＡにおける追加の内部ブラウザ表現ＦＵＩＲが構築されたときに、第１の内部表現の状態に対応する状態から、ウェブページＷＰのブラウジングを続けることができる。
【０１６３】
図２は、ここに開示する発明の概念の実施形態に従い外部表現ＥＲを構築する実施形態に関連するフローチャートを示す。
【０１６４】
ステップ２１（ＷＢＤＳのウェブページを取出す）において、ウェブブラウザは、たとえば、ユーザがブラウザにＵＲＬを入力したことが原因で、またはブラウザのリンクもしくは文書のハイパーリンクを起動したことが原因で、ウェブベースのデータソースＷＢＤＳからウェブページＷＰを取出す。
【０１６５】
ステップ２２（ウェブページをウェブブラウザにパースする）において、ブラウザは取出されたウェブページを処理しこのウェブページをウェブブラウザＷＢの内部ＤＯＭ表現にパースする。
【０１６６】
この時点で、ユーザＵは、ウェブページのリンクおよびタブをクリックすることによってウェブページＷＰをブラウジングすることができ（ステップＳ２３）、ユーザＵはウェブページ等のフォームコンテンツを入力してもよい。ウェブページＷＰのブラウジング中のある時点で、ユーザＵは、別のブラウザにおいてまたは同一のウェブブラウザのタブにおいてウェブブラウザＷＢの状態を構築することを望む場合がある。
【０１６７】
したがって、ユーザＵは、上記のように外部表現ＥＲの構築を開始してもよい。よって、ブラウザ（または別のツール）は、ブラウザＷＢの状態を外部化する。これは、ウェブブラウザの内部状態表現を、ブラウザの状態をともに表わす１つ以上の外部表現にシリアライズすることによって容易になる（ステップＳ２４）。よって、ブラウザＷＢは、内部表現ＦＩＲの第１のコンテンツＦＣを、外部表現ＥＲにシリアライズする。このシリアライズは、内部表現ＦＩＲのデータ構造を、データメモリにおけるファイル等に格納するフォーマットに変換することを含む。これに代えて、ある局面において、シリアライズされたコンテンツを、直ちに、外部化されたデータを途中で格納せずに、別のウェブブラウザアプリケーションまたはタブにおける追加の内部表現ＦＵＩＲを構築することに関連して使用するために送信してもよい。
【０１６８】
シリアライズは、好ましくは、外部表現ＥＲの構築の時点で外部表現ＥＲにおける内部表現のオブジェクトの値を取得することも含む。
【０１６９】
オブジェクトは、１つのデータを表わし、通常は、オブジェクトに割当てられた記憶場所の値が割当てられる。この／これらの値は、好ましくは外部表現ＥＲにコピーされた追加の内部表現に後で再び挿入される。
【０１７０】
よって、シリアライズされたコンテンツは、同一のクライアントＣ１においてまたは別のクライアントもしくはウェブサーバにおいて、後に再構築することができる。
【０１７１】
内部表現ＦＩＲは、さらに処理されて（ステップＳ２５）、内部表現ＦＩＲの動的コンテンツＤＣと第１のコンテンツＦＣとの間の参照／関係を判断する。これは、マッピングデータＭＤを構築することによって実施される。ここに開示する発明の概念の好ましい実施形態において、マッピングデータＭＤは、以下でより詳細に説明するように、クライアントＣ１またはウェブサーバにおいてウェブサーバＷＢの第１の内部状態表現ＦＩＲで使用される変数のメモリアドレスに対するポインタまたは参照のマッピングに関連する情報を含む。このようにして、内部表現ＦＩＲの、動的オンテンツＤＣと、マークアップ言語関連コンテンツおよび／またはスタイルシート関連コンテンツ等の第１のコンテンツＦＣとの間の関係／参照を判断することが可能である。
【０１７２】
次に、ステップＳ２４およびＳ２５に関連して構築された、外部化されたデータが、追加の内部ブラウザ表現ＦＵＩＲの構築に関連して後に使用するためにデータ記憶装置に格納されるＳ２６。
【０１７３】
そうすると、ユーザは、ウェブブラウザの以前の状態を構築できることが分かっているので、ウェブページのブラウジングを続けることができ、さらに、ウェブページをさらにブラウジングしている間にウェブブラウザの追加の第１の状態表現ＦＩＲを構築し得る。
【０１７４】
図３は、ここに開示する発明の概念の実施形態に従い外部表現ＥＲに基づいてウェブブラウザにおける追加の内部状態表現ＦＵＩＲを構築する実施形態に関連するフローチャートを示す。
【０１７５】
ステップＳ３１において、ウェブブラウザＷＢの前の状態を表わす外部表現ＥＲが取出される。
【０１７６】
ステップＳ３２において、外部表現ＥＲの少なくとも一部が、デシリアライズされ、追加の内部表現を意図したウェブブラウザＷＢＡのパーサがウェブブラウザＷＢＡの追加の内部ドキュメントオブジェクトモデルＦＩＤＯＭにパースできる（ステップＳ３３）フォーマットに変換される。
【０１７７】
第１の内部表現ＦＩＲの外部化の時点で存在していたオブジェクトの値も、好ましくは追加の内部表現ＦＵＩＲに読込まれる。
【０１７８】
ステップ３４（ＭＤを処理し実装する）において、外部表現ＥＲのマッピングデータＭＤが処理されて実装されることにより、第１の内部表現ＦＩＲの状態の再構築が終了する。よって、外部表現ＥＲの情報に基づく、追加の内部表現ＦＵＩＲにおける動的コンテンツＤＣと第１のコンテンツＦＣとの間の関係が、再構築される。これは、たとえば、追加の内部表現ＦＵＩＲの動的コンテンツＤＣと第１のコンテンツＦＣとの間のポインタが第１の内部表現ＦＩＲのポインタに実質的に対応するように設定されるよう、ポインタを構築するおよび／または訂正することを含み得る。しかしながら、第１の内部表現ＦＩＲのメモリアドレスと比較して他のメモリアドレスを指すように、追加の内部表現ＦＵＩＲのポインタ／参照が設定される点が異なる。
【０１７９】
ステップ３５（ウェブページをブラウザ状態からブラウズ）において、ユーザ、ウェブロボットおよび／または同様のものはしたがって、追加の内部表現ＦＵＩＲを用いて、第１の内部表現ＦＩＲの状態に対応するブラウザ状態からウェブページＷＰをブラウジングしてもよい。
【０１８０】
図４は、ここに開示する発明の概念の実施形態に従いポインタをマッピングする実施形態を概略的に示す。
【０１８１】
ウェブブラウザＷＢの第１の内部表現ＦＩＲは、動的コンテンツのオブジェクトＤＯＢ１〜ＤＯＢｎから、ウェブブラウザＷＢの第１の内部表現の第１のコンテンツＦＣオブジェクトＯＢ１〜ＯＢｎの値を含むメモリアドレスＭ＿ＡＤＲへの、ポインタの形態の複数の参照を含む。
【０１８２】
動的コンテンツのこれらのオブジェクトおよびポインタは、ＪａｖａＳｃｒｉｐｔエンジンにより内部バイナリ表現で表わされる。このｊａｖａスクリプティングエンジンは、そのメモリアドレスを使用するコンピュータメモリにおけるいずれかの場所に格納された別の値を直接参照する／指す値を有するデータタイプであるポインタの形態で参照して機能する、たとえばＣ＋＋等のようなプログラミング言語で実現してもよい。
【０１８３】
動的コンテンツのオブジェクトＤＯＢ１〜ＤＯＢｎは、ＪａｖａＳｃｒｉｐｔオブジェクトまたはその他の種類のオブジェクト等のスクリプティングオブジェクトであってもよい。これらのオブジェクトは本来、この例では、第１のコンテンツのオブジェクトＯＢ１〜ＯＢｎ（これらはメモリの０ｘＸＸＺＺ１〜０ｘＸＸＺＺｎに割当てられる）以外のメモリアドレス（０ｘＸＸＺＺ１０〜０ｘＸＸＺＺｚ）に位置する。
【０１８４】
この実施形態における第１のコンテンツＦＣは、第１の内部表現のマークアップ言語コンテンツを含む。好ましくは、マークアップ言語コンテンツＭＬＣは、マークアップ言語の一部、たとえばウェブページＷＰのＨＴＭＬコンテンツをウェブブラウザＷＢにパースしている間に構築されたものである。しかしながら、第１のコンテンツＦＣはまた、他の実施形態において、ウェブページをウェブブラウザＷＢにパースしている間に構築されたものであってもよい。
【０１８５】
矢印によって示されるように、動的コンテンツの第１のオブジェクトＤＯＢ１は、メモリアドレス０ｘＸＸＺＺ１を指す／参照することにより、第１のコンテンツＦＣの第１のオブジェクトＯＢ１の値を得る。動的コンテンツの第２のオブジェクトＤＯＢ２は、メモリアドレス０ｘＸＸＺＺ２を指す／参照することにより、第１のコンテンツＦＣの第２のオブジェクトＯＢ２の値を得る。以下も同様である。なお、動的コンテンツから第１のコンテンツＦＣの第５のオブジェクトＯＢ５に対するポインタはない。しかしながら、実施形態において、追加の内部表現において対応するオブジェクトを構築できるようにするために、このオブジェクトを、これを「タグ付」するよう処理することが好都合であろう。しかしながら、追加の内部表現におけるこのようなオブジェクトに割当てられる記憶場所は必ずしも重要ではない。
【０１８６】
次に、外部表現ＥＲを上記のように構築しようとするとき、ポインタの形態の上記関係がマッピングされる。これは好ましくは、内部表現ＦＩＲの動的コンテンツを処理して、動的コンテンツのオブジェクトＤＯＢ１〜ＤＯＢｎとマークアップ言語コンテンツＭＬＣのオブジェクトＯＢ１〜ＯＢｎとの間のポインタを識別することによってなされる。ポインタが識別された場合、それぞれのメモリアドレスＭ＿ＡＤＲの値を有するオブジェクトＯＢ１〜ＯＢｎが識別され、よって、マッピングデータＭＤはこの情報を含むように構築される。
【０１８７】
よって、外部表現ＥＲのマッピングデータＭＤは、動的コンテンツＤＣの第１のオブジェクトＤＯＢ１が第１のコンテンツＦＣの第１のオブジェクトＯＢＪ１のメモリアドレスを指しており、動的コンテンツＤＣの第２のオブジェクトＤＯＢ２が第１のコンテンツＦＣの第２のオブジェクトＯＢＪ２のメモリアドレスを指しているといった情報を含むことになる。また、第１のコンテンツおよび第２のコンテンツのオブジェクトは、好ましくは、シリアライズ中に識別子でタグ付けされて、追加の内部表現ＦＵＩＲの実装中において後にオブジェクトを識別することを可能にする。これは、以下でより詳細に説明するように、たとえばシリアライズ中に行なわれてもよい。
【０１８８】
次に、追加の内部表現ＦＵＩＲが構築されると、第１のコンテンツの表現ＲＦＣおよび外部表現の動的コンテンツＤＣＳＲが、ウェブブラウザアプリケーションＷＢＲ内に実現される。これは好ましくは、表現ＲＦＣ、ＤＣＳＲの少なくとも一部をデシリアライズしウェブブラウザアプリケーションの内部ＤＯＭにパースすることによってなされ、これはまた、外部表現の構築中に第１の内部表現ＦＩＲから抽出された、たとえばブラウジング履歴データ、クッキーデータ、フォームデータ、および／または同様のもの等の追加のコンテンツを実現することを含み得る（図４には示されない）。
【０１８９】
この間に、第１の表現ＦＩＲの第１のコンテンツおよび動的コンテンツの必要なオブジェクトＯＢ１〜ＯＢｎ、ＤＯＢ１〜ＤＯＢｎのメモリが、追加の内部表現ＦＵＩＲのためのウェブブラウザアプリケーションＷＢＡを含むクライアントのデータメモリのメモリアドレスＦＭ＿ＡＤＲに割当てられる（図４には示されない）。これらメモリアドレスＦＭ＿ＡＤＲは、大抵、示されている第１の内部表現ＦＩＲのアドレスＭ＿ＡＤＲと異なるであろう。
【０１９０】
よって、第１のコンテンツＦＣの第１のオブジェクトＯＢ１はメモリアドレス０ｘＸＸＺＺ３０に割当てられ、第１のコンテンツＦＣの第２のオブジェクトＯＢ２はメモリアドレス０ｘＸＸＺＺ３１に割当てられ、以下同様である。動的コンテンツの第１のオブジェクトＤＯＢ１はメモリアドレス０ｘＸＸＺＺ４０に割当てられ、動的コンテンツの第２のオブジェクトＤＯＢ２はメモリアドレス０ｘＸＸＺＺ５０に割当てられ、以下同様である。
【０１９１】
その後、マッピングデータＭＤが処理される。このマッピングデータに基づいて、動的コンテンツＤＣとマークアップ言語コンテンツとの間のポインタが再構築される。オブジェクト間の参照／ポインタに関連するマッピングされたデータの実現は、第１の内部表現の動的コンテンツおよびマークアップ言語およびスタイルシートコンテンツを表わす外部表現ＥＲのコンテンツの最初のパースの後に行なわれる。その理由は、パース後に、オブジェクトのメモリが割当てられるからであり、よって、ポインタを、追加の内部表現に対して使用される正しいメモリアドレスに対するポインタを再構築することが可能である。
【０１９２】
たとえば、マッピングデータは、動的コンテンツの第１のオブジェクトＤＯＢ１が第１のオブジェクトＯＢ１のメモリアドレスを指している必要があるという情報を含む。よって、第１のオブジェクトＯＢ１のメモリアドレスが識別され（この場合０ｘＸＸＺＺ３０）、次に、動的コンテンツの第１のオブジェクトＤＯＢ１とこのメモリアドレスとの間にポインタが構築される。残りのオブジェクトＤＯＢ２〜ＤＯＢｎに対して対応する処理が行なわれて、第１の表現ＦＩＲのポインタに対応するポインタが構築されるが、メモリアドレスは、デシリアライズおよびウェブブラウザアプリケーションＷＢＡへのパース後の追加の内部表現のメモリアドレスに基づく。
【０１９３】
図５は、ポインタを識別しオブジェクトをタグ付けすることによって外部表現を構築する実施形態を示す。
【０１９４】
ステップＳ５１において、ユーザＵまたはウェブロボットがホームページをブラウジングする。ある時点で、ユーザＵまたはウェブロボットは、外部表現ＥＲの構築（ＥＥＲ＝外部表現構築）を所望する。これは、ブラウザ状態の外部表現を構築せねばならないという意味で、テストＴＥ５１（ＥＥＲ？）が肯定の場合、多数のステップを含むシリアライズプロセスを開始させる。
【０１９５】
よって、ウェブブラウザＷＢは、第１の内部表現ＦＩＲのマークアップ言語コンテンツおよび動的コンテンツＤＣのシリアライズを開始しようとする。これは、内部表現のオブジェクトおよびその関係を識別する（テストＴＥ５２（ＯＢＪ？））ことにより、ウェブブラウザの内部ＤＯＭすなわちＩＤＯＭを処理することによってなされる。オブジェクトが識別された場合、後の識別のためにタグ付けされ（ステップＳ５２）、対応するメモリアドレスの値がコピー等される。
【０１９６】
また、第１の内部表現ＦＩＲの動的コンテンツのオブジェクト（図４のＤＯＢ１〜ＤＯＢｎ）が識別された場合、これは、第１のコンテンツＦＣの別のメモリアドレスに対するポインタを含むか否かテストされる（テストＴＥ５３（Ｐ？））。そうであれば、ステップＳ５３が開始され、指し示された／参照されたメモリアドレスを有する第１のコンテンツ（ＦＣ）のオブジェクトが識別されマッピングされて、マッピングデータＭＤは、ポインタまたは参照の形態の関係を動的コンテンツＤＣのそれぞれのオブジェクトから第１のコンテンツＦＣのオブジェクトに対して構築しなければならないという情報を含む。ここに開示する発明の概念の実施形態において、この情報は、シリアライズ中のオブジェクトのタグ付けに基づいて構築されて、後にそれぞれのオブジェクトを識別するのを容易にしてもよい。次に、ウェブブラウザは上記のようにオブジェクトの識別を続けて、オブジェクトを識別し、動的コンテンツＤＣおよび第１のコンテンツＦＣの外部表現を構築する。オブジェクトがポインタを含まない場合（ＴＥ５３）、ウェブブラウザは引続き、さらに他のオブジェクトを識別する（ＴＥ５２）。
【０１９７】
これは、第１の内部表現ＦＩＲの動的コンテンツＤＣおよび第１のコンテンツのオブジェクト（ＤＯＢ１〜ＤＯＢｎ）のすべての関連するオブジェクトが処理されるまで行なわれる（テストＴＥ５４は、すべての関連するオブジェクトが処理されたか否かテストする（ＡＯＰ？））。
【０１９８】
ステップＳ５２およびＳ５３の処理中に、内部ドキュメントオブジェクトモデルＩＤＯＭの外部表現ＥＲが構築されて、結果として生じた表現ＥＲは、ウェブブラウザの内部ＤＯＭ構造に対応するデータを含む。これは、たとえばオブジェクトの処理中のｘpathによってＸＭＬ表現を生成することにより、容易になるであろう。
【０１９９】
この時点で、外部表現はまた、外部表現が構築された時点の第１の内部表現ＦＩＲにおけるオブジェクトと、ウェブブラウザにおける第１の内部表現ＦＩＲのマークアップ言語コンテンツＭＬＣを表わすデータとの間の参照／ポインタの情報を含むマッピングデータＭＤを含む。
【０２００】
図６は、追加の内部表現を構築するための外部表現ＥＲの構築および外部表現ＥＲの実現を容易にする、ここに開示する発明の概念の実施形態に従うウェブブラウザを示す。
【０２０１】
ウェブブラウザＷＢは、たとえば、ウェブ文書を、内部ＤＯＭ（ドキュメントオブジェクトモデル）ＩＤＯＭ表現（図示せず）にパースするためのパース手段等の、通常のブラウザ手段を含む。このパース中に、オブジェクトは内部ＩＤＯＭに割当てられる。また、ウェブブラウザＷＢは、ユーザインターフェイスＵＩ、ブラウザエンジンＢＥ、ウェブブラウザＷＢがデータをウェブサーバおよび／または同様のものから受信しこれに送信することが容易にできるようにするためのデータ通信機能ＤＣＦ、および、パースしホームページのスクリプティング（たとえばＪａｖａＳｃｒｉｐｔ）を実行するために使用されるＪａｖａＳｃｒｉｐｔエンジン等のスクリプティングエンジンＳＥといった、その他の従来の機能を含む。
【０２０２】
また、ウェブブラウザは、上記のように内部表現をシリアライズするためのシリアライズ手段ＳＭを含む。また、ウェブブラウザ（ＷＢ）は、上記のように外部表現ＥＲをデシリアライズするためのデシリアライズ手段／機構ＤＳＭを含む。
【０２０３】
加えて、ウェブブラウザは、内部表現ＦＩＲにおけるオブジェクト間の関係をマッピングし上記のようにマッピングデータＭＤを構築するためのマッピング手段ＭＭを含む。
【０２０４】
また、ウェブブラウザは、追加の内部表現ＦＵＩＲにおけるマッピングデータを実現するためのマッピングデータインタープリタＭＤＩを含み得る。
【０２０５】
ここに開示する発明の概念の他の実施形態において、デシリアライズ手段ＤＳＭおよびマッピングデータインタープリタＭＤＩは、ウェブブラウザＷＢが、外部表現ＥＲ（図６には示されていない）を構築するためにのみ構成され追加の内部表現ＦＵＩＲを作成するようには構成されていない場合、省略してもよい。
【０２０６】
また、ここに開示する発明の概念の実施形態において、シリアライズ手段ＳＭおよびマッピング手段ＭＭは、ウェブブラウザＷＢが、別のウェブブラウザによって構築される予め構築された外部表現ＥＲ（図６には示されていない）に基づいて追加の内部表現ＦＵＩＲを構築するようにのみ構成されている場合、省略してもよい。
【０２０７】
図７は、第１の内部表現ＦＩＲ（図７には示されていない）の状態の予め構築された１つの外部表現ＥＲに基づいて、複数の追加の内部状態表現ＦＵＩＲ１〜ＦＵＩＲｎを構築することに関連する、ここに開示する発明の概念の実施形態を示す。
【０２０８】
外部表現ＥＲは、上記のように構築されていてもよい。外部表現は、異なるクライアントＣ２〜Ｃｎにおける複数の追加の内部状態表現ＦＵＩＲ１〜ＦＵＩＲｎを構築するために使用される。よって、これらクライアントＣ２〜Ｃｎは各々、ウェブブラウザアプリケーションＷＢＡ１〜ＷＢＡｎを含み、これは、外部表現ＥＲに基づいて追加の内部表現ＦＵＩＲが構築されたときに、第１の内部表現ＦＩＲ（図７には示されていない）において表現されたウェブベースのデータソースＷＢＤＳのウェブページに個別にアクセスするために使用し得る。このことはたとえば図１に関連して説明した通りである。異なる個々のユーザＵ１〜Ｕ３（またはウェブロボット）はしたがって、第１の内部表現ＦＩＲに対応する状態からウェブページにアクセスし得る。
【０２０９】
よって、ウェブブラウザアプリケーションＷＢＡ１〜ＷＢＡｎは、外部表現ＥＲに基づいて第１の内部表現ＦＩＲ（図７には示されていない）に対応するブラウザ状態表現ＦＵＩＲ１〜ＦＵＩＲｎを個別に構築する。
【０２１０】
図示されていない、ここに開示する発明の概念の実施形態において、クライアントＣ１〜Ｃｎは、個々の追加の内部表現ＦＵＩＲごとに２つ以上のウェブブラウザアプリケーションを含んでいてもよい。
【０２１１】
図示されていない、ここに開示する発明の概念の他の実施形態において、クライアントＣ１〜Ｃｎは、２つ以上の個別の追加の内部表現ＦＵＩＲを含む１つのウェブブラウザアプリケーションを含み得る。これは、ウェブブラウザＷＢの異なるタブにおいていくつかのウェブページ（または１つのウェブページのサブページ）を１つのウェブブラウザがブラウジングできる「タブ機能」を含むウェブブラウザアプリケーションによって容易にすることができる。
【０２１２】
図８は、１つの予め構築された外部表現ＥＲに基づいて複数の追加の内部状態表現ＦＵＩＲ１〜ＦＵＩＲｎを構築することに関連する、ここに開示する発明の概念の他の実施形態を示す。
【０２１３】
この実施形態において、第１の内部表現の複数の追加の内部表現が、サーバＳにあるウェブブラウザアプリケーションＷＢＡ１〜ＷＢＡｎにおいて構築される。サーバＳは、インターネットＮに接続されているので、個々のウェブブラウザアプリケーションＷＢＡ１〜ＷＢＡｎは、内部表現構築後の第１の内部表現（ＦＩＲ）（図８には示されていない）の状態に対応する状態から、それぞれのウェブページにアクセスすることができる。
【０２１４】
よって、ウェブブラウザアプリケーションＷＢＡ１〜ＷＢＡｎは、外部表現ＥＲに基づいて、第１の内部表現ＦＩＲ（図８には示されていない）の状態に対応するブラウザ状態表現ＦＵＩＲ１〜ＦＵＩＲｎを構築する。
【０２１５】
よって、複数の個々のウェブロボットＷＲ１〜ＷＲｎおよび／またはユーザが、ウェブサーバにおける個々のウェブブラウザアプリケーションを用いて、第１の内部状態ＦＩＲの状態に対応する状態からウェブページをブラウジングすることができる。
【０２１６】
実施形態において、ウェブブラウザアプリケーションＷＢＡ１〜ＷＢＡｎは２つ以上の異なるサーバ（図８には示されていない）間で分散させてもよいことが理解される。
【０２１７】
図９は、ここに開示する発明の概念の実施形態に従う手段を含むクライアントＣ１（またはサーバ）を示す。クライアントは、図１、図２、図４、および図５との関連で先に説明したように第１の内部表現を構築し外部化するために、および／または図１、図３、図４、および図５に関連して説明したように追加の内部状態表現ＦＵＩＲを構築するために、使用し得る。
【０２１８】
クライアントＣ１は、クライアントＣ１にインストールされたウェブブラウザアプリケーションＷＢ、ＷＢＡによって視覚化されたものをユーザＵが見ることができるようにするための画面ＳＣを含む。また、クライアントＣ１は、指示に従ってデータを処理するための１つ以上のデータプロセッサＤＰを含む。データプロセッサＤＰは、中央処理装置ＣＰＵと呼ばれることもある。
【０２１９】
加えて、クライアントＣ１は、１つ以上のデータ記憶装置ＤＳを含む。このデータ記憶装置ＤＳは、ウェブブラウザ、および、第１の内部表現ＦＩＲおよび／または追加の内部表現ＦＵＩＲ等の、ウェブブラウザアプリケーションＷＢＡによって生成されたデータを格納するために使用される。データ記憶装置ＤＳは、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブＨＤＤおよび／または固体状態ドライブおよび／または同様のものを含み得る。
【０２２０】
クライアントＣ１はまた、クライアントＣ１によってインターネットをユーザＵがブラウジングできるようにするためのキーボードＫＢを含む。画面がタッチスクリーンである局面において、キーボードは、クライアントＣ１にインストールされユーザＵ１によってアクセスされるソフトウェアキーボードであってもよい。
【０２２１】
図１０は、ここに開示する発明の概念の実施形態に従うサーバＳの実施形態を示す。サーバＳは、指示に従ってデータを処理するための１つ以上のデータプロセッサＤＰを含む。データプロセッサＤＰは中央処理装置ＣＰＵと呼ばれることもある。加えて、サーバＷＳは１つ以上のデータ記憶装置ＤＳを含む。この／これらのデータ記憶装置ＤＳは、１つ以上のウェブブラウザアプリケーションＷＢＡを格納するために使用され、第１の内部表現ＦＩＲ（図示せず）の外部表現ＥＲおよび／またはウェブブラウザアプリケーションにおいて生成された追加の内部表現等の、ウェブブラウザアプリケーションＷＢＡによって生成されたデータを格納するためにも使用し得る。データ記憶装置ＤＳは、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブＨＤＤおよび／または固体状態ドライブおよび／または同様のものを含み得る。データプロセッサＤＰ、データ記憶装置ＤＳと理解される。
【０２２２】
他の実施形態において、サーバＳは、ウェブロボット（図示せず）によって作動／操作される複数のウェブブラウザアプリケーションＷＢＡを含み得る。図８の実施形態および以下の図面参照。
【０２２３】
加えて、サーバＳは、第１の内部表現を含むウェブブラウザＷＢと、外部表現を構築するための手段とを含み得る。ウェブサーバが複数のウェブブラウザアプリケーションを含むここに開示する発明の概念の局面において、これら複数のウェブブラウザアプリケーションは、たとえば、本明細書に記載のようにウェブロボットによって実現されるサーバによってトリガされて、本明細書において定められるようにブラウジング中に外部表現ＥＲを生成するための手段を含み得る。
【０２２４】
図１１は、外部表現ＥＲが、第１の内部表現ＦＩＲを含むウェブブラウザＷＢを含むクライアントＣ１におけるデータ記憶装置に格納される、ここに開示する発明の概念の実施形態を示す。よって、外部表現ＥＲは、後の時点で、ウェブブラウザＷＢを、外部状態表現ＥＲをデシリアライズしウェブブラウザＷＢ内に実現することによって追加の内部状態表現ＦＵＩＲ（図１０には示されていない）を構築することによりウェブブラウザの第１の内部状態に対応するブラウザ状態にリストアするために、使用してもよい。
【０２２５】
また、代替的に、外部表現ＥＲは、外部表現ＥＲを数個のウェブブラウザアプリケーションで共有し得る、または、それに代えて、外部表現をウェブブラウザＷＢごとに格納し得るが外部表現は同じ内部表現ＦＩＲを表わし得る、図８に関連して説明したウェブサーバまたは別のサーバに、格納してもよい。
【０２２６】
図１２は、外部表現ＥＲ１〜ＥＲ３が異なる第１の内部ブラウザ表現ＦＩＲを表わす、複数の外部表現ＥＲ１〜ＥＲ３の使用に関連する、ここに開示する発明の概念の実施形態を示す。図１２は、４つのブラウジングイベントＢＥ＿ＷＢ１、ＢＥ＿ＷＢＡ１、ＢＥ＿ＷＢＡ２、ＢＥ＿ＷＢＡｎを開示する。これらブラウジングイベントは、たとえば上記説明に関連して開示した外部ウェブベースのデータソースのウェブページのブラウジングに関連する。
【０２２７】
第１のブラウザＷＢ１は、ウェブページをブラウジングするためにウェブロボットまたはユーザ（図１２には示されていない）によって使用される。ウェブページのブラウジングＢＥ＿ＷＢ１中に、ユーザまたはウェブロボットは、ブラウジングイベントＢＥ＿ＷＢ１中の第１のポイントＰ１において外部表現ＥＲ１を構築して、後の時点でこの第１の内部ブラウザ状態ＦＩＲ１の再構築をし易くすることを望む。よって、第１の内部表現ＦＩＲ１は、その時点Ｐ１における特定のブラウジングイベントＢＥ＿ＷＢ１中のウェブブラウザＷＢ１の特定の状態を表わす。よって、ユーザまたはウェブロボットは、時点Ｐ１において第１の内部表現を表わす第１の外部表現ＥＲ１の構築を開始する。
【０２２８】
よって、ユーザまたはウェブロボットは、前の第１の内部表現ＦＩＲ１を後の時点でリストアできることがわかっているので、引続きウェブページのブラウジングを行なう。
【０２２９】
よって、ユーザまたはウェブロボットは、ブラウジングイベントＢＥ１＿ＷＢ１中の時点Ｐ２、Ｐ３において追加の外部表現ＥＲ２、ＥＲ３を構築することができ、したがって、これらは各々、時点Ｐ２、Ｐ３におけるウェブブラウザＷＢ１の追加の第１の内部方言ＦＵＩＲ２、ＦＵＩＲ３を後に構築するために用いることができる。よって、追加の外部表現ＥＲ２、ＥＲ３は、ブラウジングイベントＢＥ＿ＷＢ１中の後の時点において構築される、ウェブブラウザＷＢ１の追加の第１の内部状態表現ＦＩＲ２、ＦＩＲ３の状態を表わす。
【０２３０】
時点Ｐ４において、ユーザまたはウェブブラウザは、前の第１の内部ブラウザ状態ＦＩＲ１を再構築することにより、前のブラウザ状態ＦＩＲ１からウェブページをブラウジングすることを希望する。ウェブブラウザはしたがって、ユーザまたはウェブロボットの命令に応じて、第１の内部ブラウザ状態ＦＩＲ１の外部表現ＥＲ１を処理し、したがってウェブブラウザは時点Ｐ４においてブラウザ状態ＦＵＩＲ１にリストアされ、ここから、ユーザまたはウェブロボットは、第１の内部表現ＦＩＲ１に対応するブラウザ状態でブラウジングイベントＢＥ＿ＷＢ１を続けることができる。これは、上記のように、たとえば図１、図３、および図４に関して述べたようにデシリアライズしマッピングデータを用いることにより、上記実施形態について記載したように外部表現ＥＲ１を実現することによって容易になるであろう。後者のシナリオはまたルーピングと呼ばれることもある。
【０２３１】
ここに開示する発明の概念の実施形態において、別のウェブブラウザアプリケーションＷＢＡ１を用いて、追加の個別のブラウジングイベントＢＥ＿ＷＢＡ１を、第１のウェブブラウザＷＢ１の第１の内部ブラウザ状態ＦＩＲ１に対応するブラウザ状態から、開始する。このように、追加の内部表現ＦＵＩＲ１が外部表現ＥＲ１を処理することによって構築される。これは、本明細書において先に述べたように実現してもよい。
【０２３２】
同じようにして、追加の内部ブラウザ状態表現ＦＵＩＲ２、ＦＵＩＲ３を、それぞれウェブブラウザ状態ＦＩＲ２、ＦＩＲ３に対応する異なる追加のウェブブラウザアプリケーションＷＢＡ２、ＷＢＡｎにおいて、第２および第３の表現ＥＲ２、ＥＲ３を用いて構築してもよい。これにより、それぞれのブラウザ状態から、他の個別のブラウジングイベントＢＥ＿ＷＢＡ２、ＢＥ＿ＷＢＡｎが開始される。これらブラウザにおけるルーピングもまた、それぞれブラウジングイベントＢＥ＿ＷＢＡ２、ＢＥ＿ＷＢＡ３におけるウェブブラウザ状態ＦＩＲ２、ＦＩＲ３の再構築によって容易にすることができる。
【０２３３】
ここに開示する発明の概念の実施形態では、開示される発明の概念の実施形態にかかる複数のブラウジングイベントの構築および処理を容易にし得る、同じウェブブラウザアプリケーションＷＢ、ＷＢＡによって、複数のブラウジングイベントＢＥ＿ＷＢ１、ＢＥ＿ＷＢＡ１、ＢＥ＿ＷＢＡ２、ＢＥ＿ＷＢＡｎを容易にし得ることが、理解される。
【０２３４】
図１３は、外部表現ＥＲ、および、第１の内部状態表現ＦＩＲの外部化後にこれが含み得るものの実施形態を示す。
【０２３５】
外部表現ＥＲは、動的コンテンツＤＣの外部表現ＤＣＳＲおよびその状態を含む。この外部表現ＤＣＳＲは、先に説明したように、ウェブブラウザＷＢの第１の内部表現ＦＩＲの動的コンテンツＤＣの状態を表わす。
【０２３６】
加えて、外部表現ＥＲは、動的コンテンツＤＣと、マークアップ言語コンテンツ、スタイルシートコンテンツ（または第１の内部表現ＦＩＲの視覚的レイアウトを示す同様のコンテンツ）等の第１のコンテンツＦＣの少なくとも一部との間の関係を説明するマッピングデータＭＤを含む。
【０２３７】
また、外部表現ＥＲは、第１の内部表現ＦＩＲの第１のコンテンツＦＣの状態の表現ＲＦＣを含む。
【０２３８】
好ましくは、第１の内部表現ＦＩＲの第１のコンテンツＦＣの状態の表現ＲＦＣは、少なくとも、マークアップ言語コンテンツＭＬＣの表現ＭＬＲを含み、また、内部状態表現ＦＩＲのスタイルシートコンテンツＳＳＣの表現ＳＳＲを含み得る。
【０２３９】
第１の内部表現ＦＩＲの第１のコンテンツＦＣの状態の表現ＲＦＣはまた、ここに開示する発明の概念の実施形態において、第１の内部表現ＦＩＲのクッキーデータＣＯＤを表わすクッキー情報ＣＯＤＲを含み得る。このデータは、外部ブラウザ状態表現ＥＲの構築中に第１の内部状態表現ＦＩＲから識別されてコピーされてもよい。よって、第１の内部表現ＦＩＲにおけるクッキーは、追加の内部表現ＦＵＩＲにおいて構築されてもよい。
【０２４０】
ここに開示する発明の概念の他の実施形態において、第１の内部表現ＦＩＲの第１のコンテンツＦＣの状態の表現ＲＦＣを構築してフォームコンテンツ表現ＦＣＯＲを含むようにしてもよい。このフォームコンテンツ表現ＦＯＣＲは、ウェブページの第１の内部表現ＦＩＲのフォームに記入されたフォームコンテンツＦＯＣに関連する情報を含む。
【０２４１】
また、第１の内部表現ＦＩＲの第１のコンテンツＦＣの状態の表現ＲＦＣは、ここに開示する発明の概念の実施形態において、第１の内部表現ＦＩＲの時点におけるウェブブラウザＷＢのブラウジング履歴データＢＨＤの表現ＢＨＤＲを含む。この表現は、ブラウジング履歴データのシリアライズによって得ることができる。よって、このブラウジング履歴表現ＢＨＤＲがウェブブラウザアプリケーションＷＢＡにおいて後に実現されるときに、これは、第１の内部表現ＦＩＲを生じさせることになるブラウジングイベント中に訪問された前のＵＲＬに、ユーザまたはウェブロボットが達することを可能にする。よって、ユーザは、外部表現ＥＲに基づいて追加の内部表現ＦＵＩＲを構築した後に、たとえばブラウザアプリケーションにおける「バックボタン／機能」を用いて、外部状態表現ＥＲの構築前にウェブブラウザＷＢが訪問したＵＲＬを訪れてもよい。
【０２４２】
第１のコンテンツＦＣおよび動的コンテンツＤＣは、第１の内部表現ＦＩＲに応じて適切なやり方で抽出し得ることが、一般的に理解される。よって、スタイルシートコンテンツを外部表現におけるカスケードスタイルシートフォーマットに変換してもよく、マークアップ言語コンテンツＭＬＣをたとえばＸＭＬフォーマットに変換してもよく、動的コンテンツＤＣをバイナリフォーマット等に変換またはコピーしてもよい。
【０２４３】
好都合な実施形態において、外部表現は、ウェブブラウザＷＢの内部ドキュメントオブジェクトモデルＩＤＯＭ表現（図１３には示されていない）に基づいて構築されることが、一般的に理解される。この内部ドキュメントオブジェクトモデルは、外部表現ＥＲを構築した時点におけるブラウザＷＢの状態を表わす。
【０２４４】
ウェブブラウザＷＢは一般的に、内部表現ＦＩＲの関連する部分を識別し必要であればシリアライズすることによって外部表現ＥＲを構築できるようにするソフトウェアコード（図示せず）を含み得る。よって、ソフトウェアコードは、ユーザまたはウェブロボットが外部表現の構築を開始したときに、ソフトウェアコードが、内部ＤＯＭ、動的コンテンツＤＣ、マークアップコンテンツＭＬＣ、スタイルシートコンテンツＳＳＣ、クッキーデータＣＯＤ，動的コンテンツＤＣとマークアップコンテンツＭＬＣとの間のポインタ、および／またはスタイルシートコンテンツＳＳＣ、フォームデータＦＯＣ，履歴データＢＤＨおよび／または同様のものを処理し得るように、実現し得る。
【０２４５】
他の実施形態において、ソフトウェアコードは、ウェブブラウザに対するアドオンとみなしてもよく、ウェブブラウザ（ＷＢ）はこのような実施形態において、このソフトウェアと協力して、内部ＤＯＭ、動的コンテンツＤＣ、マークアップコンテンツＭＬＣ、スタイルシートコンテンツＳＳＣ、クッキーデータＣＯＤ、動的コンテンツＤＣとマークアップコンテンツＭＬＣとの間のポインタ、および／またはスタイルシートコンテンツＳＳＣ、フォームデータＦＯＣ、履歴データＢＨＤおよび／または同様のものに対するアクセスを提供してもよい。
【０２４６】
図１４は、ウェブブラウザＷＢによって画面ＳＣ上に視覚化されたウェブページの例を示す。
【０２４７】
ウェブページは複数の（この例では３）フレームＦＲ１〜ＦＲ３（インラインフレーム（iframe）等）を含む。各フレームＦＲ１〜ＦＲ３は、ウェブページを、異なる文書／データを示すことができる異なるセグメントに分割する。ユーザは、アドレスフィールドＡＦにＵＲＬアドレスを入力し、これに基づいて、ウェブブラウザＷＢ、ＷＢＡは、ウェブベースのデータソースのウェブページにアクセスし、これを取出して視覚化する。
【０２４８】
フレームＦＲ１〜ＦＲ３は各々、異なるコンテンツを表わし、ウェブブラウザＷＢにおける、自身の内部ドキュメントオブジェクトモデル構造、スタイルシートコンテンツ等を含む。よって、実施形態に従う外部表現は、ウェブページの第１の内部表現ＦＩＲの異なるフレームを表わす複数のフレーム表現ＦＲ１Ｒ〜ＦＲ３Ｒを構築することを含み得る。これらは各々、上記のように第１のコンテンツＦＣと動的コンテンツＤＣ双方を含み得る。よって、フレーム表現ＦＲ１Ｒ〜ＦＲ３Ｒは、ウェブブラウザにおける各フレームＦＲ１〜ＦＲ３の内部状態の外部表現ＥＲを含む。
【０２４９】
加えて、フレームＦＲ１〜ＦＲ３は、ウェブブラウザにおいてフレームツリー構造と関連付けられ、このフレームツリー構造はさらに、外部表現ＥＲにおいて、フレームアソシエーション表現ＦＲＡＲとして判断され外部化されることで、先に説明したように同一のまたは別のウェブブラウザにおいて、追加の内部フレーム表現ＦＵＩＲで、後にフレームＦＲ１〜ＦＲ３と正しく関連付けるおよび／または視覚化することができる。
【０２５０】
フレームツリーおよびフレームのコンテンツは、好ましくは、ブラウザＷＢの内部ドキュメントオブジェクトモデルＩＤＯＭに基づいて処理されシリアライズされる。
【０２５１】
各フレームとともに、マッピングデータＭＤを構築することにより、オブジェクトと各個別フレームのメモリアドレスとの間のポインタおよび／またはもしあればフレーム間のポインタ等の関係を後に構築し易くすることができる。
【０２５２】
ウェブページは、外部化すべき１つ、２つ、３つ、４つ、５つまたはそれ以上のフレームを含み得ることが一般的に理解される。
【０２５３】
よって、フレームＦＲ１〜ＦＲ３は、ウェブブラウザのＩＤＯＭを処理することによって識別してもよく、したがって、外部表現ＥＲは、ここに開示する発明の概念のある局面において、ＩＤＯＭの構成に基づいて構築してもよい。たとえば、ＩＤＯＭは、マークアップ言語コンテンツ表現の外部表現の数と各フレームのその他の部分の数を判断してもよい。
【０２５４】
たとえば、ウェブブラウザは、内部ＤＯＭを処理し、ＤＯＭが個別のフレームＦＲ１〜ＦＲ３を有するウェブページを表現すると判断してもよい。よって、３つの動的コンテンツ状態表現ＤＣＳＲが構築されるはずであり、各々がそのフレームに関連する第１のコンテンツＦＣの３つの表現が構築されるはずである（図示せず）。また、フレームの３表現／フレームアソシエーション表現ＦＲＡＲが構築されるはずである。これらはすべて、ウェブブラウザＷＢの第１の内部表現ＦＩＲの状態をともに説明する外部表現の一部である。
【０２５５】
このため、後に外部表現ＥＲに基づいてウェブブラウザアプリケーションＷＢＡにおいて追加の内部表現ＦＵＩＲを生成するとき、結果として生じる、ウェブページの視覚化は、第１の内部表現において示されたものと全く同じに見えるであろう。
【０２５６】
これに代えて、たとえばウェブロボットが外部表現を使用することが原因で、外部表現が視覚化されなくても、フレーム表現ＦＲ１Ｒ〜ＦＲ３Ｒおよびフレームアソシエーション表現ＦＲＡＲを処理することによって、外部表現ＥＲに基づき、ウェブブラウザアプリケーションにおける追加の内部表現を構築してもよい。
【０２５７】
図１５は、たとえば本明細書において先に述べた、ウェブロボットが外部状態表現ＥＲを使用する、ウェブロボットの動作の実施形態を示す。
【０２５８】
ステップＳ１５１においてウェブロボットは、ウェブブラウザを用いて、ウェブロボットに与えられた一組のルールおよび命令に従い、ウェブページＬＷＰをロードする。
【０２５９】
テストＴ１５１において、ロボットは、１つ以上の予め定められた基準が満たされているか否かテストする（ＰＣＣＰ？）。これらの基準は、たとえば、満了したときにロボットを先に進ませるタイマを含んでいてもよく、これは、ブラウザにおけるウェブページの実行されたスクリプティングコンテンツ等の、１つ以上のウェブページロードパラメータのサーベイランスを含み得るものであり、これは、ウェブページがウェブブラウザに十分にロードされたのはいつか識別するのに役立ち得る、タイミングファクタまたはその他の関連する状態インジケータを含み得る。
【０２６０】
ステップＳ１５２において、予め定められた基準が満たされ、ロボットは次に外部表現（ＥＥＲ）の構築／生成を開始する。これは、たとえば図１〜図１４のいずれかとの関連で本明細書で説明したように行なわれてもよい。
【０２６１】
ステップＳ１５３において、ロボットは、ウェブブラウザにおいて表現されたウェブページのリンク／ＵＲＬのサマリを抽出する（サマリを抽出）。このことは、関連するリンク／ＵＲＬをクリック／起動した場合にどのような情報が期待されるかを示す短いサマリまたは販促情報とみなされる広告の情報を抽出することを含み得る。このステップは任意とみなされてもよい。
【０２６２】
ステップＳ１５４において、ウェブロボットは、リンクを起動することにより、リンク／ＵＲＬを追従する。ステップ１５３がロボットの一部である場合、これは、追従されるサマリに対する関連リンクであることが好ましい。
【０２６３】
ステップＳ１５５において、ロボットは、ステップ１５４でリンクを起動したときにブラウザによって処理されたウェブページのデータを抽出する（または代わりにインデックスする）。
【０２６４】
ステップＳ１５６において、ステップ１５５においてデータが抽出されると、ロボットは、ステップ１５２におけるウェブページ状態に対応する状態でウェブページをリストアする。したがって、ウェブページは、ステップ１５２で構築された外部表現にアクセスし、次にこの外部表現ＥＲを用いて、ウェブブラウザを、外部表現を構築したときの状態にリストアする。これはたとえば、図１〜図１４のうちのいずれかに関連して説明したように行なわれてもよい。
【０２６５】
テストＴ１５２において、ロボットは次に、ウェブページのすべての（または所望された）リンク／ＵＲＬがロボットによって追従／処理されたか否かテストする。よって、このシステム／ロボットは、ロボットによって追従／処理されたリンク／ＵＲＬを追跡し続ける。
【０２６６】
ウェブページのすべての（または所望された）リンク／ＵＲＬがロボットによって追従／処理されていない場合、ロボットは、たとえばステップ１５３〜１５６に関して開示したように、新たなリンク／ＵＲＬによって与えられた新たな処理を開始する。
【０２６７】
ウェブページのすべての（または所望された）リンク／ＵＲＬがウェブロボットによって追従／処理された場合、ロボットは図１５に開示されるように終了してもよい。これに代えて、ロボットは、たとえば、上記処理済のウェブページまたは新たなウェブページのリンクのうちの１つによって与えられたウェブページに基づいて、図１５に開示されるように新たなウェブページを処理し続けてもよい。
【０２６８】
図１６は、複数のウェブロボットを用いる実施形態を示す。
ステップＳ１６１において、ウェブページがブラウザにロードされて（ＬＷＰ）ブラウザにおいて表現される。
【０２６９】
ステップＳ１６２および１６３において、ユーザ名（ＥＵＮ）およびパスワード（ＥＰＷ）が入力されることにより、そうでなければ制限されるデータにアクセスすることができる。これは、ユーザ名（ＥＵＮ）およびパスワード（ＥＰＷ）を入力し、これらをたとえば「ＯＫ」または「続行」ボタンのクリック／起動によって処理できるように構成された、表わされたウェブページ内のフィールドに入力してもよい（実施形態ではこの起動もロボットにより容易にし得る）。
【０２７０】
ステップＳ１６４において、外部表現の構築／生成ＥＲ  ＥＥＲが行なわれる。これは、たとえば図１〜図１５との関連で本明細書において説明したように行なわれてもよい。よって、外部表現ＥＲは、パスワードとユーザ名を含むウェブブラウザの状態を表わす。この目的のために、たとえばフォームデータを、たとえば好都合には抽出することによって、フォームデータがユーザ名および／またはパスワード情報を含む場合は、外部表現の一部として表わしてもよい。これに加えてまたはこれに代えて、入力されたパスワードおよび／またはユーザ名情報を含むその他の情報を取出して外部表現ＥＲに抽出してもよい。
【０２７１】
ステップＳ１６１〜１６４は、上記のようにロボットＲ１によって行なわれてもよい。これに代えて、ユーザが、ウェブブラウザを操作してウェブページを取出すことにより、ステップＳ１６１〜１６４を実行してもよい。ユーザは、キーボードまたはタッチスクリーンまたは別の入力機能を用いてユーザ名とパスワードを入力した後にブラウザを操作して外部表現ＥＥＲを構築してもよい。
【０２７２】
次に、複数のロボットＲ１〜Ｒｎが、ステップＳ１６４において構築された外部表現ＥＲにアクセスして、以前に制限されたデータのコンテンツにアクセスする。これは、ユーザ名とパスワードの必要性によって制限されたものである。
【０２７３】
このように、ロボットＲ２〜Ｒｎは各々、それぞれのウェブブラウザにおいてステップＳ１６４からの外部表現をリストアして、状態が、ステップＳ１６４のウェブブラウザの状態に対応するようにする。これは、図１〜図１５に関連して開示され説明されたように行なってもよい。
【０２７４】
このように、ロボットは、好ましくは、ウェブページの異なるコンテンツにアクセスし、ＨＴＭＬデータ等の所望の／希望するデータを抽出する（ＥＸＨＭＴＬ）またはウェブページから他の適切なデータを抽出する（ステップＳ１６６）ことによって、ウェブページの並列処理を実行し、さらに、データをデータ記憶装置にログし（ＬＴＤ）、データをデータベースに格納し（ＳＴＤＢ）、コンテンツおよび／または同様のものをインデックスしてもよい（ステップＳ１６７）。
【０２７５】
さらに他の実施形態では、ロボットＲ１〜Ｒｎによって実行されるステップを、ステップＳ１５１〜１５６と組合わせてもよくおよび／または置換えてもよいことが、理解される。
【０２７６】
よって、図１５および図１６との関連で説明したロボットは、本明細書で先に述べたように、特定のウェブページまたは何らかの種類のウェブページからのコンテンツにアクセスし、これを処理し、取出すように設計し得る、１組以上のルールおよび／または命令を含むソフトウェアコードであってもよいことが、一般的に理解される。
【０２７７】
ここに開示する発明の概念が上記例に限定されるのではなくたとえば請求項で特定される複数の変形において組合わせ得るものであることが、一般的に理解される。また、図１〜図１１に関連して説明した実施形態はウェブロボットの使用との関連で使用し得ることが理解される。
【０２７８】
当然、上記説明は、ここに開示する発明の概念の範囲に含まれると発明者らがみなすいくつかの代表的な実施形態を示しているにすぎないと理解されるものである。上述の特徴の、いかなる組合わせ、入替え、変形、または合成も、たとえ具体的な組合せ、入替え、変形、合成等がどの実施形態にも、または上記説明とともに提供されるどの図面にも、明示されていなくても、本願のある局面として理解されるものである。
【０２７９】
また、追加の実施形態、上記実施形態に対する変形、および代替の実施形態も、当業者が上記説明を読むことによって達する理解による本願の範囲に、全体が含まれるとみなされるものである。
【０２８０】
したがって、上記説明は決して本願の範囲を限定するとみなされるべきではない。むしろ、本明細書に記載の主題は、本発明の概念の広がりを例示するために示されている。本願に従って得ようとする財産権の境界は、以下の請求項と、当業者が上記開示を検討して理解するであろう上記請求項に対して均等の形態すべてによって定められるものである。
【図１】
2017504129.tif 000003
【図２】
2017504129.tif 000004
【図３】
2017504129.tif 000005
【図４】
2017504129.tif 000006
【図５】
2017504129.tif 000007
【図６】
2017504129.tif 000008
【図７】
2017504129.tif 000009
【図８】
2017504129.tif 000010
【図９】
2017504129.tif 000011
【図１０】
2017504129.tif 000012
【図１１】
2017504129.tif 000013
【図１２】
2017504129.tif 000014
【図１３】
2017504129.tif 000015
【図１４】
2017504129.tif 000016
【図１５】
2017504129.tif 000017
【図１６】
2017504129.tif 000018
【国際調査報告】
2017504129.tif 000019
2017504129.tif 000020
2017504129.tif 000021
2017504129.tif 000022
2017504129.tif 000023