JP2017504129A - ウェブブラウザにおいて表わされる状態表現の構築 - Google Patents
ウェブブラウザにおいて表わされる状態表現の構築 Download PDFInfo
- Publication number
- JP2017504129A JP2017504129A JP2016551004A JP2016551004A JP2017504129A JP 2017504129 A JP2017504129 A JP 2017504129A JP 2016551004 A JP2016551004 A JP 2016551004A JP 2016551004 A JP2016551004 A JP 2016551004A JP 2017504129 A JP2017504129 A JP 2017504129A
- Authority
- JP
- Japan
- Prior art keywords
- representation
- internal
- web
- browser
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
開示する発明の概念はウェブブラウザにおいて表わされるウェブページの状態表現を構築することに関する。この概念は、ウェブベースのデータソースから取出されたウェブページを処理することと、ウェブページの、結果として生じる第1の内部ブラウザ状態表現を構築することと、第1の内部表現の状態を表わす外部表現を構築することと、第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築することと、第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、動的コンテンツと第1のコンテンツとの関係を含むマッピングデータを構築することと、第1の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築することとを含む。
Description
優先権の主張
本願は、2013年11月1日に出願され「ESTABLISHMENT OF STATE REPRESENTATION OF A WEB PAGE REPRESENTED IN A WEB BROWSER(ウェブブラウザにおいて表わされる状態表現の構築)」と題されたデンマーク特許出願PA2013−70640に関連し、これに基づく優先権を主張し、その全体を本明細書に引用により援用する。
本願は、2013年11月1日に出願され「ESTABLISHMENT OF STATE REPRESENTATION OF A WEB PAGE REPRESENTED IN A WEB BROWSER(ウェブブラウザにおいて表わされる状態表現の構築)」と題されたデンマーク特許出願PA2013−70640に関連し、これに基づく優先権を主張し、その全体を本明細書に引用により援用する。
発明の分野
ここに開示する発明の概念は、ウェブブラウザにおいて表わされるウェブページの状態表現を構築するように構成された、方法、システム、およびコンピュータプログラムプロダクト、ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するため、かつそれに基づいて追加の内部表現を構築するためのシステム、ウェブブラウザ、ならびにウェブベースのデータソースをブラウジングする方法に関する。
ここに開示する発明の概念は、ウェブブラウザにおいて表わされるウェブページの状態表現を構築するように構成された、方法、システム、およびコンピュータプログラムプロダクト、ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するため、かつそれに基づいて追加の内部表現を構築するためのシステム、ウェブブラウザ、ならびにウェブベースのデータソースをブラウジングする方法に関する。
背景技術
ウェブページのコンテンツおよび基本構造は、近年の間に発展した。そのため、ウェブページの大部分は、マークアップ言語コンテンツおよびその他のコンテンツとともにスクリプティングコンテンツのような動的コンテンツを含む、動的ウェブページである。ウェブページのスクリプティングコンテンツによって、直感的で多機能のウェブページを構築し易くなり、また、ウェブページのブラウジング中のユーザ入力に自動的に適応するウェブページを構築し易くなる。
ウェブページのコンテンツおよび基本構造は、近年の間に発展した。そのため、ウェブページの大部分は、マークアップ言語コンテンツおよびその他のコンテンツとともにスクリプティングコンテンツのような動的コンテンツを含む、動的ウェブページである。ウェブページのスクリプティングコンテンツによって、直感的で多機能のウェブページを構築し易くなり、また、ウェブページのブラウジング中のユーザ入力に自動的に適応するウェブページを構築し易くなる。
その結果、動的ウェブページは、ウェブブラウザによって処理されたときに、たとえば、ユーザの動作、ウェブブラウザの場所、スクリプティングコンテンツそのものなどに基づいて、異なるウェブブラウザに、ウェブページの個別の表現を生じさせることがある。しかしながら、その結果として、ウェブブラウザにおいてこうして得られた動的ウェブページの表現を判定することに関連する問題が、発生する。
ここに開示する発明の概念は、特に、上記問題に対する解決策を提供する。
開示する発明の概念の概要
ここに開示する発明の概念は、ウェブブラウザにおいて表わされるウェブページの状態表現の構築を容易にするように構成された、システム、方法、コンピュータプログラムプロダクト等を包含する。さまざまな実施形態において、これらの概念は以下のものを含む。
ここに開示する発明の概念は、ウェブブラウザにおいて表わされるウェブページの状態表現の構築を容易にするように構成された、システム、方法、コンピュータプログラムプロダクト等を包含する。さまざまな実施形態において、これらの概念は以下のものを含む。
あるアプローチにおいて、ウェブブラウザにおいて表わされるウェブページの状態表現を構築する方法は、上記ウェブブラウザを用いて、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、上記ウェブブラウザにおいて、上記ウェブページの、結果として生じる第1の内部ブラウザ状態表現を構築するステップと、外部表現を構築するステップとを含み、上記外部表現は上記第1の内部表現の状態を表わし、上記状態の外部表現を構築するステップは、上記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、上記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含み、上記方法はさらに、上記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、上記第1の内部ブラウザ状態表現の状態に対応する状態で、上記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む。
別の実施形態において、システムは、ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するように構成される。上記システムは、上記第1の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、ウェブブラウザアプリケーションは、上記第1の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、上記追加の内部状態表現を構築するように構成される。上記状態の外部表現を構築することは、上記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築することと、上記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含む。
他の実施形態において、ウェブブラウザは、外部ブラウザ状態表現を構築するように構成され、これは第1の内部ブラウザ状態表現の第1のコンテンツの外部表現を構築し、上記第1の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築し、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することによって、行なわれる。
その他のアプローチにおいて、ウェブブラウザは、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するように構成され、これは、予め構築された外部ブラウザ状態表現を処理し、上記処理の結果を上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースし、上記外部ブラウザ状態表現のマッピングデータを処理し、上記マッピングデータに基づいて上記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第1のコンテンツとの関係を実現することによって、行なわれる。
さらに他の実施形態において、方法は、複数のウェブページを含むウェブベースのデータソースをブラウジングすることに関する。この方法は、ウェブブラウザを用いて、上記ウェブベースのデータソースの1以上のウェブページをブラウジングするステップと、ブラウジング中に異なる第1の内部ブラウザ状態の少なくとも2つの外部表現を構築するステップと、1つ以上のウェブブラウザアプリケーションにおける上記外部表現のうちの少なくとも1つに基づいて追加の1つ以上のブラウジングイベントを構築するステップとを含み、上記追加の1つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記1つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。
ここに開示する発明の概念について、以下において図面を参照しながらさらに詳細に説明する。
当然、上記図面は、ここに開示する発明の概念の範囲に含まれる代表的な実施形態を例示するだけであると理解されねばならない。さらに他の実施形態、上記実施形態の変形、および代替の実施形態も、当業者が本明細書を読んで達する理解に従い、本願の範囲に十分含まれるとみなされねばならない。
詳細な説明
本明細書における説明は、当業者が本発明をなし使用することを可能にするために提示され、本発明の特定のアプリケーションおよびそれらの必要条件の文脈で与えられる。開示されている実施形態に対するさまざまな修正が、当業者には直ちに明らかになるであろう。また、本明細書で定義される一般的な原理は、本発明の精神と範囲から逸脱することなく、他の実施形態および応用例に適用し得る。このように、本発明は、示されている実施形態に限定されることを意図したものではなく、本明細書に開示される原理および特徴に一致する最も広い範囲が与えられるものである。
本明細書における説明は、当業者が本発明をなし使用することを可能にするために提示され、本発明の特定のアプリケーションおよびそれらの必要条件の文脈で与えられる。開示されている実施形態に対するさまざまな修正が、当業者には直ちに明らかになるであろう。また、本明細書で定義される一般的な原理は、本発明の精神と範囲から逸脱することなく、他の実施形態および応用例に適用し得る。このように、本発明は、示されている実施形態に限定されることを意図したものではなく、本明細書に開示される原理および特徴に一致する最も広い範囲が与えられるものである。
特に、本明細書に記載の発明のさまざまな実施形態は、複数のコンピュータシステム間の通信手段としてのインターネットを用いて実現される。当業者は、本発明が通信媒体としてのインターネットの使用に限定されないこと、および、本発明の代替の方法が私的なイントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはその他の通信手段に適応し得ることを、理解するであろう。加えて、有線、無線(たとえば無線周波数)および光通信リンクをさまざまに組合わせたものを使用してもよい。
本発明のある実施形態を実行し得るプログラム環境は、例として、1つ以上の汎用コンピュータ、またはハンドヘルドコンピュータのような専用装置が組込まれたものである。このような装置(たとえばプロセッサ、メモリ、データ記憶装置、入出力装置)の詳細は、周知であり、明瞭さのために省略する。
本発明の技術はさまざまな科学技術を用いて実現し得ることも理解されるはずである。たとえば、本明細書に記載の方法は、コンピュータシステム上で実行されるソフトウェアにおいて実現されてもよく、または、方法の動作を実行するために1つ以上のプロセッサおよびロジック(ハードウェアおよび/またはソフトウェア)を用いるハードウェアにおいて、特定用途向け集積回路において、フィールドプログラマブルゲートアレイ(FPGA)等のプログラマブルロジック装置において、および/またはそのさまざまな組合せにおいて、実現されてもよい。例示としてのあるアプローチにおいて、本明細書に記載の方法は、物理的な(たとえば非一時的な)コンピュータ読取可能な媒体等の記憶媒体上にある、コンピュータによる実行が可能な一連の命令によって、実現されてもよい。加えて、本発明の特定の実施形態は、オブジェクト指向ソフトウェアプログラミングコンセプトを用い得るが、本発明はそのように限定されるものではなく、コンピュータの動作を指示する他の形態に容易に適応する。
本発明は、計算装置(たとえばプロセッサ)および/またはシステムによって実行し得るコンピュータコードを有するコンピュータ読取可能な記憶媒体または信号媒体を含むコンピュータプログラムプロダクトの形態で提供することもできる。コンピュータ読取可能な記憶媒体は、読取専用および書込可能なCDおよびDVD等の光学媒体、磁気メモリまたは媒体(たとえばハードディスクドライブ、テープ)、半導体メモリ(たとえばフラッシュメモリおよびその他のポータブルメモリカード等)、チップ内の符号化されたファームウェア等を含む、計算装置またはシステムが使用するコンピュータコードを格納することが可能な何らかの媒体を含み得る。
コンピュータ読取可能な信号媒体は、上記記憶媒体の部類には適合しないものである。たとえば、例示としてのコンピュータ読取可能な信号媒体は、システム内で、システム間で、たとえば物理または仮想ネットワーク等を介して、一時的な信号をやり取りするかそうでなければ転送する。
いくつかのアプローチに従うと、本明細書に記載の方法およびシステムは、仮想システムおよび/または他の1つ以上のシステムをエミュレートするシステム、たとえばMAC(登録商標) OS環境をエミュレートするUNIX(登録商標)システム、MICROSOFT WINDOWS(登録商標)環境を仮想的にホストするUNIXシステム、MAC OS環境をエミュレートするMICROSOFT WINDOWSシステム等とともにおよび/または上で、実現し得る。
他のアプローチにおいて、1つ以上のネットワークは、「クラウド」と一般的に呼ばれるシステムのクラスタを表わし得る。クラウドコンピューティングにおいて、共有リソースたとえば処理能力、周辺機器、ソフトウェア、データ処理および/または記憶装置、サーバ等は、クラウド内のいずれかのシステムに、好ましくはオンデマンドの関係で設けられることによって、多数の計算システム全体におけるアクセスおよびサービスの分散を可能にする。クラウドコンピューティングは、典型的には、クラウド内で動作するシステム間のインターネットまたはその他の高速接続(たとえば4G LTE、光ファイバ等)を含むが、システムを接続するその他の技術も使用し得る。
ある実施形態において、方法は、ウェブブラウザによって、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、上記ウェブブラウザにおいて、上記ウェブページの、結果として生じる第1の内部ブラウザ状態表現を構築するステップと、上記ウェブページ処理中に、上記第1の内部表現の状態を表わす外部表現を構築するステップとを含み、上記状態の外部表現を構築するステップは、上記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、上記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含む。
別の実施形態において、上記方法はさらに、上記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、上記第1の内部ブラウザ状態表現の状態に対応する状態で、上記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む。
好ましくは、ここに開示する発明の概念により、たとえばブラウザによる2つの統一資源ロケータ訪問間における、1つ以上のウェブブラウザ状態の抽出と格納が容易になる。URLはウェブアドレスとしても知られている。よって、これらブラウザ状態を、後に、他のウェブブラウザアプリケーションまたは同一のウェブブラウザアプリケーションにおいて再構築してもよい。したがって、たとえばウェブロボット開発者および/またはウェブロボットは、後の時点で前の状態に戻ることができる。これは、外部表現を処理して追加の内部表現を構築することによって容易になる。ユーザまたはウェブロボットはしたがって、追加の内部表現の構築後にウェブページをブラウジングするときに、第1の内部ブラウザ状態表現を外部化したときに示されたウェブページをブラウジングすることができる。こうしてループ特徴が容易になり、ユーザまたはウェブロボットは、第1の内部状態表現から、以前のユーザまたはスクリプティング動作が状態を修正したことを経験することなく、異なるブラウジング経路を辿ることができる。
「ウェブブラウザ」および「ウェブブラウザアプリケーション」という用語は、ワールドワイドウェブ上のウェブページを取出しワールドワイドウェブ上にウェブページを公開するためのソフトウェアアプリケーションに関連する。ウェブページは、画像、テキスト、ビデオ、スクリプティングコンテンツおよび/またはその他のコンテンツ等のデータを含み得る。ウェブページは、ユーザがユーザのブラウザを関連するリソースにナビゲートし易くすることができるハイパーリンクを含み得る。ウェブページは、スクリプティングコンテンツ等の、ユーザまたはコンピュータプログラムによって提供されるまたは操作されるたとえばパラメータに基づいて変化するコンテンツを有する動的ウェブページであることが多い。
ここに開示する発明の概念の局面において、追加の内部表現は、外部表現が表わす第1の最初の内部ブラウザ状態表現を構築するために使用されたであろう同一のウェブブラウザにおいて実現し得ることが、理解される。しかしながら、後に説明するように、追加の内部表現はまた、追加のウェブブラウザアプリケーションにおいて実現されてこのウェブブラウザアプリケーションが第1の内部表現の状態に対応する状態になるようにしてもよい。
追加の内部表現は外部状態表現に基づき得るので、追加の内部表現は、第1の内部表現に実質的に対応するようにウェブブラウザアプリケーションによって構築し得る。これにより、結果として第1の内部表現を得ることになるウェブページとの一連の対話を実行したユーザは、同一のまたは新たなウェブブラウザにおいて追加の内部表現を認識することができ、このポイントから続けることができる。マッピングにより、外部表現が構築される状態の、内部表現の動的コンテンツおよびその他のコンテンツの状態を、外部表現が構築される状態における動的コンテンツの状態を含めて再生することができる。
ここに開示する発明の概念により、さらに、動的ウェブページのウェブページ処理中に実行されるスクリプティングに対してロバストな状態表現が得られる。このようなスクリプティングは、ユーザによってトリガされる動作およびスクリプティングによってトリガされる動作のため、動的ウェブページの内部表現を修正し得る。このような動作は、ウェブページの内部表現を動的に修正して、ユーザの動作およびスクリプティングコンテンツの状態に応じて、ウェブページが異なるように見えるようにおよび異なるウェブブラウザにおいて異なるコンテンツと含み得るようにする。しかしながら、特にマッピングデータのため、ブラウザの状態を、第1の内部ブラウザ状態表現の状態に対応する状態の次の復元の機会を提供するために、外部に対して慎重にかつ広範囲に表現することができる。
また、ここに開示する発明の概念の好ましい局面において、第1の内部ブラウザ状態表現の第1のコンテンツは第1のフォーマットで構築してもよく、動的コンテンツ状態表現は第2のフォーマットで構築してもよく、マッピングデータは第3のフォーマットで構築してもよい。そのため、ここに開示する発明の概念の局面において、外部表現を表わす異なる部分に対して異なるフォーマットを使用し得る。これはたとえば、外部表現に基づく追加の内部表現のより信頼性が高くおよび/または効率的な構築をもたらし得る。よって、あるフォーマットは、たとえばウェブブラウザにおける動的表現の構築に関して好都合であるかもしれないが、たとえばマッピングデータに使用した場合はそれほど好都合ではないかもしれない。
ここに開示する発明の概念の好都合な局面において、外部状態表現を構築するステップは、第1の内部ブラウザ状態表現の少なくとも一部をシリアライズするステップを含む。
シリアライズの結果、第1の内部表現の状態は、ブラウザの外部に(たとえばファイルまたはメモリバッファに)格納し得るフォーマットに翻訳/変換され、同一または別のウェブブラウザにおいて後に再構築されることができる。シリアライズ中、第1の内部表現は、コンピュータプログラムによって処理され、予め定められたシリアライズフォーマットに従ってシリアライズされる。
次に、シリアライズされたデータを用いて第1の内部表現の状態のついか の内部表現を作成してもよい。シリアライズはしたがって、ウェブブラウザにおける内部表現のデータ構造および/またはオブジェクト状態を、格納し得る、ブラウザの状態を反映するフォーマットに、変換することを含み得る。
マッピングデータは、ここに開示する発明の概念の局面において、シリアライズフォーマットに従うシリアライズ中に構築し得る。
また、ある局面において、シリアライズはさらに、第1の内部表現の部分、たとえばウェブブラウザの内部ドキュメントオブジェクトモデルの、異なるフォーマットへの変換を、容易にし得る。
よって、シリアライズは、第1の内部表現を外部表現に抽出してウェブブラウザの状態の「スナップショット」が効率的に構築されて制御されることを容易にする。
ここに開示する発明の概念の好都合な局面において、ウェブブラウザは、第1の内部表現を外部表現に構築するように処理するための手段を備える第1の内部表現を備える。
ここに開示する発明の概念の局面において、外部状態表現を構築するステップは、第1の内部ブラウザ状態表現の動的コンテンツおよび/または第1のコンテンツの少なくとも一部をシリアライズするステップを含む。
シリアライズされた動的コンテンツおよび/または第1のコンテンツの一部は次に、外部表現として格納される。これはたとえば、外部表現を構築する効率的な方法を提供する。
ここに開示する発明の概念の好都合な局面において、追加の内部表現を構築するステップは、外部表現の少なくとも一部をデシリアライズするステップを含む。
デシリアライズは、追加の内部表現用に意図されたウェブブラウザアプリケーションによって容易にすることができ、外部表現を処理して、たとえばウェブブラウザアプリケーション等を含むクライアントまたはウェブサーバのデータメモリに割当てることを含み得る。たとえば、XMLは、内部表現のたとえばHTMLコンテンツまたはその他のマークアップコンテンツの外部表現の提供に関して、厳密に/明確に表現されるという点において、かつ、外部表現に基づく追加の表現の構築に関して正確にパースし得る信頼性のある表現を提供するという点において、特に好都合であるとみなし得る。しかしながら、その他の局面ではその他いずれかのフォーマットも適切であろう。
ここに開示する発明の概念の局面において、追加の内部表現を構築するステップは、外部表現の少なくとも一部をウェブブラウザアプリケーションにパースするステップを含む。
好ましくは、パースは、その他の内部表現用に意図されたウェブブラウザアプリケーションによって容易にされる。パーサは、外部表現から発生したスタイルシートコンテンツ、マークアップ言語コンテンツおよびその他のコンテンツを、ウェブブラウザアプリケーションにおける内部ドキュメントオブジェクトモデルにパースし得る。この目的のために、ウェブブラウザアプリケーションは、マークアップ言語パーサ、たとえばHTMLパーサ、XMLパーサ、スタイルシート(CSS)パーサおよび/または同様のものを含むことにより、外部表現のコンテンツをウェブブラウザアプリケーションにパースしてブラウザにおいて内部DOMを構築し得る。
ここに開示する発明の概念の好ましい局面において、外部表現は、第1の内部表現の記憶場所から独立するように構築されてもよい。
これは、たとえば、後に詳細に説明する、第1の内部表現のシリアライズおよび/またはその他の処理によって、第1の内部表現のオブジェクト間の関係のマッピングによって、および/または同様の処理によって、容易にされてもよい。したがって、外部表現は、より一層包括的になりさらに他のブラウザにおける簡単な/好都合な実装を容易にすることができる。
ここに開示する発明の概念の好都合な局面において、外部表現を構築するステップは、ウェブページのインラインフレーム(Iframe)等のフレームを識別するステップを含み得る。
動的ウェブページは複数のフレーム含むことが多い。このようなフレームは、第1の内部表現のそれぞれ異なるドキュメントオブジェクトモデル各々において表現されてもよく、このようなフレームの状態の後の再構築を容易にするために、このフレームを、適切な外部表現を提供するために識別するのが好都合であろう。フレームの識別は、たとえば、内部表現のDOMをソフトウェアアプリケーションに処理させることによって行なうことができる。
ある局面において、外部表現は、ウェブページのインラインフレーム(Iframe)等の、1つ以上のフレームに対して構築してもよい。
第1の内部表現の各フレームはしたがって、外部表現における、それ自身の外部フレーム表現を含むことにより、後の第1の内部状態表現のより好都合な構築を可能にし得る。
ある局面において、外部表現を構築するステップは、フレームアソシエーション表現を構築することを含み得る。
フレームアソシエーション表現は、たとえば、第1の内部表現のフレームツリーの情報を含むことにより、表現されたフレームをそれに応じてウェブブラウザ内の追加の内部表現において設定できるようにしてもよい。
ここに開示する発明の概念の好都合な局面において、外部表現は、ウェブブラウザにおけるウェブページの内部ドキュメントオブジェクトモデルに基づいて構築される。
第1の内部表現を含むウェブブラウザの内部ドキュメントオブジェクトモデルは、連続的に少なくとも部分的にブラウザの状態を表現し、したがって、ウェブブラウザの内部ドキュメントオブジェクトモデルを処理することが好都合である。
好都合な局面において、外部表現は、内部ドキュメントオブジェクトモデルのコンテンツの少なくとも一部をシリアライズすることによって構築してもよい。
このシリアライズは、たとえば、一貫しかつ信頼性がある外部状態表現の提供に役立ち得る。
ここに開示する発明の概念の局面において、追加の内部表現は、外部表現の少なくとも一部をデシリアライズし、デシリアライズの結果をウェブブラウザアプリケーションの結果として生じる内部ドキュメントオブジェクトモデルにパースすることによって、構築してもよい。
デシリアライズは、たとえば、外部表現を実現する状況を考慮する、たとえば追加の内部表現を構築するクライアントのソフトウェアおよび/またはハードウェアを考慮した、一貫しかつ信頼性がある内部状態表現の提供に役立ち得る。
ある局面において、第1の内部ブラウザ状態表現の第1のコンテンツはマークアップコンテンツを含み、外部表現はマークアップコンテンツの表現を含む。
よって、ウェブブラウザのいわば「静的」コンテンツの状態は、好ましくはマークアップ言語コンテンツのシリアライズにより、外部表現に外部化される。
マークアップオンテンツは、マークアップ言語コンテンツと呼んでもよく、ウェブページをウェブブラウザにパースする間にウェブブラウザによって構築されたウェブページの内部表現を含むことが、理解されるはずである。
好都合には、ある局面において内部ブラウザ状態表現の第1のコンテンツは、スタイルシートコンテンツの表現を含み得るものであり、外部表現は、スタイルシートコンテンツの表現を含み得る。
スタイルシートコンテンツは、ウェブページのスタイルシートコンテンツをブラウザにパースする間にウェブページによって構築されたウェブページの内部表現を含むことが、理解されるはずである。
ここに開示する発明の概念の局面において、第1のコンテンツは、第1の内部ブラウザ状態表現に関連するクッキーデータを含み得るものであり、外部表現は、クッキーデータの表現を含み得る。
クッキーデータは、たとえば、最終的に第1の内部表現になるブラウジング中のユーザに関連するデータが関連し得る、追加の内部表現の構築を容易にすることに関連し得る。よって、クッキーデータは、内部表現を含むブラウザアプリケーションから外部表現に導くことができる。
ここに開示する発明の概念の局面において、第1のコンテンツは、第1の内部ブラウザ状態表現のフォームコンテンツを含み得るものであり、外部表現は、フォームコンテンツの表現を含み得る。
これは、たとえば、記入されたフォームがウェブページの追加のブラウジングのための基礎を形成する局面において適切となり得るものであり、したがって、これらフォームに記入されたコンテンツを外部化し実現することにより、フォームに記入することなくウェブページのブラウジングを可能にするブラウザの状態を構築することが可能である。これは特に、フォームに記入できないかもしれないウェブロボットに関連し得る。加えて、外部表現の構築前に、ユーザは、追加の内部表現におけるデータをウェブロボットが如何に処理すべきかを定めるコンテンツをフォームに記入してもよい。フォームコンテンツは、内部表現から導出して、後の使用のために外部表現がこの情報を含むようにしてもよい。
ここに開示する発明の概念の好都合な局面において、マッピングデータは、第1の内部ブラウザ状態表現の動的コンテンツとマークアップコンテンツとの間の関係のマッピングを含む。
ウェブページの動的コンテンツは、内部表現のマークアップコンテンツのオブジェクト等のコンテンツにアクセスするおよび/またはこれを修正することができる。したがって、第1の内部状態に対応するブラウザ状態の構築を可能にするために、このような関係はマップに好都合であろう。
ここに開示する発明の概念の好都合な局面において、マッピングデータは、第1の内部ブラウザ状態表現の動的コンテンツとスタイルシートコンテンツとの間のポインタのマッピングを含む。
ここに開示する発明の概念の局面において、マッピングデータは、第1の内部ブラウザ状態表現のオブジェクトのメモリアドレスに対するポインタのマッピングを含む。
たとえば、第1の内部表現のスクリプティング等の動的コンテンツのポインタは、たとえば、第1の内部表現のスタイルシートコンテンツおよび/またはマークアップコンテンツのオブジェクトのメモリアドレスを指すことができる。しかしながら、これらメモリアドレスは、異なる処理イベントに応じて時間の経過とともに記憶場所が変化するという点において、追加の内部表現では使用できない場合がある。たとえば、外部表現の構築後、ユーザはブラウジングを続ける場合があり、これはメモリアドレスに影響し、結果として、以前のオブジェクトが置換され、補正され、またはメモリから削除されることがある。また、追加の内部表現が、第1の内部表現の構築に使用されたものと異なるクライアントまたはウェブサーバにある場合、データ記憶手段およびその内部設定は全く異なるものになり得る。
したがって、このようなマッピングは、ポインタが指すメモリアドレスのオブジェクトを識別することにより追加の内部表現において後にこのような関係を再構築する可能性を与えるのに好都合となり得る。しかしながら、ここに開示する発明の概念の他の局面ではその他のまたは追加の種類のマッピングを使用し得ることが理解される。
ここに開示する発明の概念の局面において、マッピングデータを構築するステップは、第1の内部表現を処理してオブジェクト間のマップポインタを識別するステップを含み得る。
よって、第1の内部表現の、動的コンテンツと、たとえばマークアップ言語コンテンツおよび/またはスタイルシートコンテンツ等の第1のコンテンツとの間のポインタを、追加の表現において再構築することができる。これらのポインタは、ウェブページ処理、ユーザ入力、ウェブページのスクリプティング等に応じて時間の経過とともに変化し得る。
たとえば、ポインタは、ウェブページを処理して第1の表現を構築するクライアントのデータメモリアドレスにおけるいずれかの場所に格納された別の値を参照する/指し示すことができる。よって、このようなポインタが追加の表現において第1の内部表現を如何にして構築するかに関する情報を含むことにより、追加の表現のポインタを第1の表現のメモリ割当から独立して再構築することができる。クライアントにおける所与の記憶場所の値が、たとえば内部ドキュメントオブジェクトモデルの表現の構築と関連して抽出される場合でも、この値に対するポインタは、追加の表現において実現されるときに、追加の表現における第1の表現の状態の再構築に必要な場合がある。
オブジェクトは、データメモリ内の位置であって値を有しこのオブジェクトを識別する識別子によって参照されるものとみなされる。
ここに開示する発明の概念の局面において、ポインタのマッピングは、内部表現のシリアライズ中のいわゆる「アンスウィズル(unswizzling)」によって実現し得る。
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第1のデータコンテンツを、内部ブラウザ状態表現のフォーマットとは異なる1つ以上のフォーマットに変換するステップを含む。
この変換は、好ましい局面において、内部表現のシリアライズ中に行なってもよい。
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第1の内部ブラウザ状態表現の一部を、たとえば拡張マークアップ言語の、第1の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含み得る。これは、内部表現の判定および再構築に関して利点をもたらし得る。
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第1の内部ブラウザ状態表現の一部を、たとえば拡張マークアップ言語の、第1の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含み得る。これは、内部表現の判定および再構築に関して利点をもたらし得る。
ここに開示する発明の概念の局面において、外部表現を構築するステップは、第1の内部表現の異なるフレームの複数の内部ドキュメントオブジェクトモデルを、複数の内部ドキュメントオブジェクトモデルの1つ以上の外部表現に変換するステップを含む。
このようにして、状態表現のより深い表現を実現することができ、これは、後に使用するのがより簡単でより確実な、信頼性がありおよび/または柔軟性がある外部表現を容易にする。
ある局面において、この変換は、第1の内部ブラウザ状態表現のマークアップコンテンツを、拡張マークアップ言語(XML)フォーマット等のマークアップ言語フォーマットに変換するステップを含む。
この変換は、外部表現の好都合な後の処理を容易にする。このコンテンツは、好ましい局面において、ウェブブラウザの内部DOMの少なくとも一部を表わし得る。
ある局面において、この変換は、第1の内部ブラウザ状態表現のスタイル情報をカスケードスタイルシートフォーマットに変換するステップを含む。
よって、このスタイルシートフォーマットを、スタイルシートコンテンツのパース中に直接用いて追加の表現を構築することができる。
外部表現を構築するステップは、ある局面において、第1の内部ブラウザ状態表現の異なるコンテンツの複数の個別表現を構築するステップを含む。
よって、外部表現は、その状態の第1の内部表現のスタイルシートデータに関連するスタイルシートファイル(たとえば、.css)、その状態の第1の内部表現のスタイルシートデータに関連するマークアップ言語ファイル(たとえばXML)、その状態の第1の内部表現の動的コンテンツの状態を含むファイル(たとえばスクリプティング言語)、その状態の第1の内部表現に関連するクッキーの表現を含むクッキーデータを有するテキストファイル、その状態の第1の内部表現のフォームコンテンツの表現、および本明細書で説明するマッピング情報を含むファイルを、含み得る。このため、外部表現は、第1の内部表現の状態をともに表現する複数のデータファイルを含み得る。
ここに開示する発明の概念の好都合な局面において、追加の内部表現の構築は、マッピングデータに基づいてウェブブラウザアプリケーションにおいてブラウザマークアップ言語コンテンツと動的コンテンツを再接続することを含み得る。好都合に、追加の内部表現の構築は、マッピングデータに基づいて追加の内部表現のオブジェクト間のポインタを再構築することを含み得る。
外部状態表現をデシリアライズしウェブブラウザアプリケーションにパースした後、ある局面において、第1の内部表現のオブジェクトおよびオブジェクトに対応するオブジェクト値が構築される。しかしながら、このようなオブジェクト間のたとえばポインタの形態の関係はまだ構築する必要があり、よって、マッピングデータをウェブブラウザアプリケーションによって処理することにより、このようなオブジェクト間の関係を再構築する。
ここに開示する発明の概念の局面において、ポインタの再構築は、たとえば、オブジェクト名/識別子に基づいて基準の変換を行ない得る、所謂「ポインタスウィズル(pointer swizzling)」によって、デシリアライズ中に実現し得る。
ここに開示する発明の概念の局面において、第1の内部表現および追加の内部表現は、異なるウェブブラウザに取入れられてもよい/表現されてもよい。
このようにして、異なるウェブブラウザにおいて同一のウェブブラウザ状態からブラウジングを続けることが可能になるであろう。これは、異なるユーザおよび/またはウェブロボット間でブラウジングタスクを委任することに関して、および、ウェブロボットの開発に関して、特に好都合であろう。
ここに開示する発明の概念の局面において、この方法は、外部表現に基づいて、異なるウェブブラウザアプリケーションにおいて複数の追加の内部表現を構築するステップを含む。
結果として、複数のウェブロボットおよび/またはユーザは、時間の経過に伴い、同一のウェブブラウザから、1回以上ブラウジングを続けることができる。
また、ウェブブラウザは、ループしてウェブブラウザ状態から異なる経路を辿ることを容易にし得るという点において、より効率的にすることができ、ウェブロボットまたはユーザによって経路が十分に検査された後に、外部状態表現を再導入して前のウェブブラウザ状態を再構築することができる。
ある局面において、ウェブページのウェブページ処理は、ウェブページのブラウジング中にウェブページの動的コンテンツを処理することを含み得る。
ある局面において、ウェブブラウザは一般的に、ウェブページのスクリプティングコンテンツを処理するように構成された、java(登録商標)スクリプトエンジン等のスクリプトエンジンを含み得る。この間に、マークアップコンテンツおよび/またはスタイルシートコンテンツ等の、内部DOM内の他のオブジェクトに対する動的オブジェクトオブジェクト間のポインタを、ウェブブラウザが構築および/または更新してもよい。
好ましい局面において、ウェブページの動的コンテンツはウェブページのスクリプトを含む。
動的ウェブページは、ウェブブラウザによって、たとえばクライアントサイドで実行すべきたとえばスクリプト等の複数の動的コンテンツを含むことが多い。このような動的コンテンツは、ウェブブラウザにおける表現中に時間の経過とともに適応する。
たとえば、動的コンテンツは、ウェブページをブラウジングするユーザによって行なわれる、特定されたタイミングイベントおよび/または同様のものであってもよい、マウス、キーボードおよび/またはタッチスクリーン操作に応答して、ウェブページ表現および/または挙動を修正する、JavaScript(登録商標)(または別のスクリプティング言語)コンテンツであってもよい。たとえば、ユーザが、表示されたウェブページを「スクロール」すると、スクリプトは、追加のコンテンツを自動的に収集するおよび/または自動的にウェブページを更新するように設定されてもよい。
ある局面において、ウェブページの動的コンテンツはまた、サーバ側のスクリプティングの結果であるコンテンツを含み得る。サーバ側のコンテンツのスクリプティングは、ウェブページ上のウェブコンテンツおよび/または外観を変更するのに使用される、ウェブサーバ上で実行される1つ以上のプログラムに基づいてウェブページのコンテンツが制御または更新されることであると理解される。これらの埋め込まれたスクリプトの結果、サーバのウェブサイトに対するクライアントの要求が、サーバがクライアントの要求に応じる前に、ウェブサーバ上のサーバ側で実行されている1つ以上のスクリプトによって処理されることになる。たとえば、サーバ側のスクリプティングは、画面上でユーザに対して表示された入力フィールドにユーザが入力したデータを受けることができ、および/またはユーザのブラウジング中に構築されたデータを受けることができる。このデータは次に、ウェブページの埋め込みスクリプトによって、データを処理し結果に従ってデータをブラウザに返すサーバ側のスクリプトに送信される。
好都合な局面において、第1の内部表現を含むウェブブラウザは、第1の内部ブラウザ状態表現を、好ましくは、第1の内部表現の少なくとも一部をシリアライズするためのシリアライズ手段によって、外部表現に外部化する。
ある局面において、追加の内部表現に対して使用されるウェブブラウザアプリケーションは、好ましくは、外部表現の少なくとも一部をデシリアライズするためのデシリアライズ手段によって、追加の内部表現を構築してもよい。
よって、デシリアライズされたコンテンツを、デシリアライズ後に、ウェブブラウザアプリケーションによって内部DOMにパースすることができる。
ウェブブラウザは、ウェブページ、ユーザの対話、動的コンテンツおよび/または同様のものによって与えられる、ウェブページの内部状態表現を含む。よって、外部表現および/または追加の内部表現を構築するようにウェブブラウザを構成することにより、ウェブブラウザは、その内部表現にアクセスすることができ、外部状態表現に外部化する時点でウェブブラウザの正確な状態を外部化することができる。
これに代えて、ブラウザの外部にある手段が、ウェブブラウザの、たとえば内部DOM、フォームデータ、クッキーデータ等のコピーといった、ウェブブラウザ状態のコピーを取った後に、コピーされたデータを処理することによって外部表現を構築できるものであってもよい。
ここに開示する発明の概念の好都合な局面において、ウェブロボットは、予め定められた基準が満たされたときに1つ以上の外部表現の構築を開始するように構成されてもよく、および/または、ウェブロボットは、外部表現に基づいて1つ以上の追加の内部表現を構築するように構成されてもよい。
ここに開示する発明の概念さらに、ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するためのシステムに関し、このシステムは、上記第1の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、上記状態の外部表現を構築することは、上記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、上記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含み、ウェブブラウザアプリケーションは、上記第1の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、上記追加の内部状態表現を構築するように構成されている。
上記システムのある局面において、このシステムは、請求項1〜35のいずれかの方法に従って動作するように構成される。
加えて、ここに開示される発明の概念は、1つ以上のウェブロボットを共に用いる、請求項1〜37のいずれかに記載の方法および/またはシステムの使用に関し、上記1つ以上のウェブロボットは、第1の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現の構築を開始するように構成され、上記追加の内部表現は外部状態表現に基づいて構築される。
また、ここに開示される発明の概念は、異なるウェブブラウザアプリケーションにおける複数のブラウジングイベントを構築するための、請求項1〜38のいずれかに記載の方法、システムおよび/または使用に関連する。
さらなる用途の局面において、上記複数のブラウジングイベントは1つ以上のサーバに対して実行されてもよい。よって、ある局面において、サーバは、ホストサーバによって実行されるウェブロボットであってもよい。これは、好ましくは1つ以上のウェブロボットによって実質的に同時に、ウェブページの高速で効率的なブラウジングを行なうための効率的で有効な解決策を提供する。
加えて、ここに開示する発明の概念は、外部ブラウザ状態表現を構築するための第1のウェブブラウザに関し、上記ウェブブラウザは、第1の内部ブラウザ状態表現の第1のコンテンツの外部表現を構築するための手段と、上記第1の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築するための手段と、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するための手段とを含む。
また、ある局面において「手段」という用語は一般的に機構またはアプリケーションであるとみなし得る。
ある局面において、第1のウェブブラウザは、請求項1〜35のいずれかの方法に従って動作するように構成し得る。
加えて、ここに開示する発明の概念は、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するための第2のウェブブラウザアプリケーションに関連し、上記ウェブブラウザアプリケーションは、予め構築された外部ブラウザ状態表現を処理するための手段と、上記処理の結果を上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするための手段と、上記外部ブラウザ状態表現のマッピングデータを処理し、上記マッピングデータに基づいて上記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第1のコンテンツとの関係を実現するための手段とを含む。
第2のウェブブラウザの局面において、第2のウェブブラウザは、請求項1〜35のいずれかに記載の方法に従って動作するように構成し得る。
上に開示したウェブブラウザは、ウェブページを処理するために使用されるコンピュータ読取を含むコンピュータプログラムプロダクトとみなし得る。上記ウェブブラウザは、上記外部表現を構築し処理するための手段に加えて、ウェブページのブラウジングを容易にするためのパーサ、レイアウトエンジン、データ通信レイヤおよび/または同様のもの等の、ウェブページを処理するためのその他の従来の手段を含み得る。
加えて、ここに開示する発明の概念は、複数のウェブページを含むウェブベースのデータソースをブラウジングする方法に関する。この方法は、ウェブブラウザを用いて上記ウェブベースのデータソースの1以上のウェブページをブラウジングするステップと、上記ウェブブラウザを用いてブラウジング中に異なる第1の内部ブラウザ状態の少なくとも2つの外部表現を構築するステップと、1つ以上のウェブブラウザアプリケーションにおける上記外部表現のうちの少なくとも1つに基づいて追加の1つ以上のブラウジングイベントを構築するステップとを含み、上記追加の1つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記1つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。
ある局面において、請求項1〜35のいずれかに記載の方法に従い、および/または請求項36〜37のいずれかに記載のシステムを用いて、上記少なくとも2つの外部表現が、構築されてもよく、および/または、1つ以上のウェブブラウザアプリケーションに実現されてもよい。
上記ウェブベースのデータソースをブラウジングする方法の局面において、上記方法はウェブロボットによって実行される。
これに代えて、ここに開示する発明の概念の局面において、ユーザがブラウジングの少なくとも一部を実施してもよい。ロボットがブラウジングの一部を実施するイベントにおいて、このブラウジングの一部はコンピュータの画面上で必ずしもモニタリングされなくてもよい。
加えて、ここに開示する発明の概念は、ウェブブラウザを用いたウェブページのブラウジングのためのウェブロボットの使用に関し、上記ウェブロボットは、1つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、上記ウェブロボットは、予め定められた基準が満たされたことに応じて、請求項1〜35のいずれかに記載の1つ以上の外部表現の構築を開始するように構成されている。
ある局面において、予め定められた基準は、たとえば、実行されたスクリプティングコンテンツ、実行されたパースされたコンテンツのステータス、スタイルシート情報のステータスおよび/またはそれに類似する物に関連する基準等の、1つ以上の基準を、ウェブページのウェブブラウザ処理が満たすときの、たとえばウェブページの処理に関連する基準に関連し得る。これらの基準は、たとえば本明細書に記載の1つ以上の方法に従い、外部表現の構築をトリガし得る。
ここに開示する発明の概念はさらに、ウェブブラウザにおいて表現されるウェブページの状態表現を構築するさらに他の方法に関連し得る。この方法は以下のステップを含む。ウェブブラウザによって、ウェブベースのデータから取出されたウェブページのウェブページ処理を実行するステップと、ウェブブラウザにおいて、ウェブページの、結果として生じる第1の内部ブラウザ状態表現を構築するステップと、ウェブページの処理中に、第1の内部表現の状態の外部表現を構築するステップとを含み、上記状態の外部表現を構築するステップは、第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、第1の内部ブラウザ状態表現の動的コンテンツと第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップと、外部表現をデータ記憶装置に格納するステップとを含む。
上記さらに他の方法のこの実施形態を、たとえば図1〜図11に関して説明するいずれかの適切な実施形態と組合わせてもよい。
外部表現を構築することおよび/またはブラウザ状態を再構築するための外部表現の使用は、コンピュータによって実施されることにより、外部状態表現を実質的に自動的に生成し得るまたは、たとえばユーザまたはウェブロボットからの要求に応じて外部状態表現を使用/実現し得るものと、一般的に理解される。
ある一般的なアプローチにおいて、ウェブブラウザにおいて表現されるウェブページの状態表現を構築する方法は、ウェブブラウザを用いて以下の動作を実行するステップを含む。すなわち、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、ウェブブラウザにおいて、ウェブページの、結果として生じる第1の内部ブラウザ表現を構築するステップと、第1の内部表現の状態を表わす外部表現を構築するステップとを含み、状態の外部表現を構築するステップは、第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、動的コンテンツと第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップと、外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、第1の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップとを含む。
別の一般的な実施形態において、システムは、ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するように構成される。このシステムは、第1の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、ウェブブラウザアプリケーションは、第1の内部ブラウザ状態表現の状態に対応するブラウザ状態の外部状態表現に基づいて追加の内部状態表現を構築するように構成される。状態の外部表現を構築することは、第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築することと、第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、第1の内部ブラウザ状態表現の動的コンテンツと第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含む。
さらに他の一般的な実施形態において、ウェブブラウザは外部ブラウザ状態表現を構築するように構成され、これは、第1の内部ブラウザ状態表現の第1のコンテンツの外部表現を構築することと、第1の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築することと、第1の内部ブラウザ状態表現の動的コンテンツと第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することとによって、実現される。
他の一般的なアプローチにおいて、ウェブブラウザは、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するように構成され、これは、予め構築された外部ブラウザ状態表現を処理することと、処理の結果をウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースすることと、外部ブラウザ状態表現のマッピングデータを処理し、マッピングデータに基づいて内部ドキュメントオブジェクトモデルにおける動的コンテンツと第1のコンテンツとの関係を実現することとによって、実現される。
さらに他の一般的な実施形態において、方法は、複数のウェブページを含むウェブベースのデータソースをブラウジングすることに関する。この方法は、ウェブブラウザを用いて、ウェブベースのデータソースの1以上のウェブページをブラウジングするステップと、ブラウジング中に異なる第1の内部ブラウザ状態の少なくとも2つの外部表現を構築するステップと、外部表現のコンテンツの処理に少なくとも一部基づき、1つ以上のウェブブラウザアプリケーションにおける外部表現のうちの少なくとも1つに基づいて追加の1つ以上のブラウジングイベントを構築するステップと、1つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップとを含む。
好ましいアプローチにおいて、本明細書に開示する発明の実施形態は、任意の数の、下記の機能、特徴、および/または構成要素を含み得る。
ウェブブラウザにおいて表わされるウェブページの状態表現を構築することは、上記ウェブブラウザを用いて、ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、上記ウェブブラウザにおいて、上記ウェブページの、結果として生じる第1の内部ブラウザ状態表現を構築するステップと、外部表現を構築するステップとを含み、上記外部表現は上記第1の内部表現の状態を表わし、上記状態の外部表現を構築するステップは、上記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、上記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含み、上記方法はさらに、上記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、上記第1の内部ブラウザ状態表現の状態に対応する状態で、上記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む。上記外部状態表現を構築するステップは、上記第1の内部ブラウザ状態表現の少なくとも一部をシリアライズするステップを含み得る。上記第1の内部ブラウザ状態表現の一部は、上記動的コンテンツおよび上記第1のコンテンツのうちの1つ以上の少なくとも一部分を含み得る。上記追加の内部表現を構築するステップは、上記外部表現の少なくとも一部をデシリアライズするステップを含み得る。上記追加の内部表現を構築するステップは、上記外部表現の少なくとも一部を上記ウェブブラウザアプリケーションにパースするステップを含み得る。上記外部表現は、1つ以上の記憶場所から独立するように構築されてもよい、上記1つ以上の記憶場所は、上記第1の内部表現に対応する。上記外部表現を構築するステップは、複数の識別フレームを含み得るものであり、上記複数の識別フレームは上記ウェブページの1つ以上のインラインフレームを含む。外部フレーム表現が2つ以上のフレーム各々に対して構築されてもよく、上記2つ以上のフレームのうちの少なくとも1つは、上記ウェブページの少なくとも1つのインラインフレームを含む。上記外部表現を構築するステップは、フレームアソシエーション表現を構築するステップを含み得る。上記外部表現は、上記ウェブブラウザにおける上記ウェブページの内部ドキュメントオブジェクトモデル表現に基づいて構築されてもよい。上記外部表現は、上記内部ドキュメントオブジェクトモデルのコンテンツの少なくとも一部をシリアライズすることによって構築されてもよい。上記追加の内部表現を構築するステップは、上記外部表現の少なくとも一部をデシリアライズするステップと、上記外部表現のデシリアライズされた一部を、上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするステップとを含み得る。上記第1の内部ブラウザ状態表現の第1のコンテンツはマークアップコンテンツを含み得るものであり、上記外部表現は上記マークアップコンテンツの表現を含み得る。上記内部ブラウザ状態表現の第1のコンテンツは、スタイルシートコンテンツの表現を含み得るものであり、上記外部表現は、上記スタイルシートコンテンツの表現を含み得る。上記第1のコンテンツは、上記第1の内部ブラウザ状態表現に関連するクッキーデータを含み得るものであり、上記外部表現は、上記クッキーデータの表現を含み得る。上記第1のコンテンツは、上記第1の内部ブラウザ状態表現のフォームコンテンツを含み得るものであり、上記外部表現は、上記フォームコンテンツの表現を含み得る。上記マッピングデータは、上記第1の内部ブラウザ状態表現の上記動的コンテンツとマークアップコンテンツとの間の1つ以上の関係のマッピングを含み得る。上記マッピングデータは、上記第1の内部ブラウザ状態表現の上記動的コンテンツとスタイルシートコンテンツとの間のポインタのマッピングを含み得る。上記マッピングデータは、上記第1の内部ブラウザ状態表現の1つ以上のオブジェクトの1つ以上のメモリアドレスに対する1つ以上のポインタのマッピングを含み得る。上記マッピングを構築するステップは、上記第1の内部表現を処理するステップと、上記処理に少なくとも一部基づいてオブジェクト間の1つ以上のポインタを識別するステップと、上記ポインタを上記メモリアドレスにマッピングするステップとを含み得る。上記外部表現を構築するステップは、上記第1のコンテンツを1つ以上のフォーマットに変換するステップを含み得るものであり、変換後の上記1つ以上のフォーマットは各々、上記内部ブラウザ状態表現のフォーマットと異なる。上記外部表現を構築するステップは、上記第1の内部ブラウザ状態表現の少なくとも一部を、上記第1の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含み得る。上記外部表現を構築するステップは、上記第1の内部ブラウザ状態表現の異なるフレームの複数の内部ドキュメントオブジェクトモデルを、上記複数の内部ドキュメントオブジェクトモデルの1つ以上の外部表現に変換するステップを含み得る。上記第1の内部ブラウザ状態表現はマークアップコンテンツを含み得るものであり、上記変換するステップは、上記マークアップコンテンツの少なくとも一部をマークアップ言語フォーマットに設定するステップを含み得る。上記第1の内部ブラウザ状態表現はスタイル情報を含み得るものであり、上記変換するステップは、上記スタイル情報の少なくとも一部をカスケードスタイルシートフォーマットに設定するステップを含み得る。上記第1の内部ブラウザ状態表現は、複数の異なるコンテンツ要素を含み得るものであり、異なるコンテンツ要素は各々、上記第1のコンテンツおよび上記動的コンテンツのうちの1つ以上の少なくとも一部を含む。上記外部表現を構築するステップはさらに、複数の個別表現を構築するステップを含み得るものであり、個別表現は各々上記第1の内部ブラウザ状態表現に基づいており、個別表現は各々、上記複数の異なるコンテンツ要素のうちの少なくとも1つに対応し得る。上記追加の内部表現を構築するステップは、上記ウェブブラウザアプリケーションにおいて上記ブラウザのマークアップ言語コンテンツの表現と動的コンテンツとの少なくとも1つの接続をマッピングするステップを含み得るものであり、上記マッピングは上記マッピングデータに少なくとも一部基づき得る。上記追加の内部表現を構築するステップは、上記追加の内部表現の1つ以上のオブジェクト間の1つ以上のポインタを構築するステップを含み得るものであり、上記構築するステップは、上記マッピングデータの少なくとも一部に基づき得る。上記第1の内部表現および上記追加の内部表現は各々、少なくとも1つのウェブブラウザ、少なくとも1つのウェブブラウザアプリケーション、少なくとも1つのウェブページ、のうちの1つ以上に組込まれている。上記第1の内部表現および上記追加の内部表現は、1つ以上の上記ウェブブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる1つ、および、1つ以上の上記ブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる種類、のうちのいずれかまたは双方に組込まれている。複数のウェブブラウザアプリケーションにおける複数の追加の内部表現を構築するステップにおいて、上記追加の内部表現が構築された/され得る複数の上記ウェブブラウザアプリケーションは各々、上記追加の内部表現が構築された/され得る上記ブラウザアプリケーションの他のすべてのウェブブラウザアプリケーションと異なっていてもよい。上記ウェブページのウェブページ処理は、ブラウジング動作中に上記ウェブページの動的コンテンツを処理するステップを含み得るものであり、上記ブラウジング動作は上記ウェブページに対する動作である。上記ウェブページの動的コンテンツは上記ウェブページのスクリプトを含み得る。上記第1の内部表現を含む上記ウェブブラウザは、上記第1の内部表現の少なくとも一部分のシリアライズの少なくとも一部に基づいて、上記第1の内部ブラウザ状態表現を上記外部表現に外部化する。上記追加の内部表現に対する上記ウェブブラウザアプリケーションは、上記外部表現の少なくとも一部分のデシリアライズの少なくとも一部に基づいて、上記追加の内部表現を構築し得る。加えておよび/または代替的に、好ましくは、ウェブロボットを用いて、予め定められた1つ以上の基準が満たされているか否か判断するステップと、上記予め定められた基準のうちの1つ以上が満たされているという判断の少なくともに一部基づいて上記外部表現を構築するステップを開始するステップとを容易にすることが好都合である。上記ウェブロボットは外部表現に基づいて1つ以上の追加の内部表現を構築するように構成されてもよい。システムは、ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するように構成されてもよい。上記システムは、上記第1の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、上記状態の外部表現を構築することは、上記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築することと、上記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含む。このシステムにおいて、ウェブブラウザアプリケーションは、上記第1の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、上記追加の内部状態表現を構築するように構成されてもよい。上記システムは、任意で1つ以上のウェブロボットと関連して、上記方法に従って動作するように構成されてもよく、上記1つ以上のウェブロボットは、第1の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現の構築を開始するように構成される。上記追加の内部表現は外部状態表現に基づいて構築されてもよい。上記概念は、複数のブラウジングイベントが1つ以上のサーバ上で実行されていても、1つ以上の異なるウェブブラウザアプリケーションにおける複数のブラウジングイベントを構築するのに有用である。ウェブブラウザを、外部ブラウザ状態表現を構築するように構成してもよい。上記ウェブブラウザは、第1の内部ブラウザ状態表現の第1のコンテンツの外部表現を構築するための手段と、上記第1の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築するための手段と、上記第1の内部ブラウザ状態表現の上記動的コンテンツと上記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するための手段とを含む。ウェブブラウザアプリケーションを、予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するように構成してもよい。上記ウェブブラウザアプリケーションは、予め構築された外部ブラウザ状態表現を処理するための手段と、上記処理の結果を上記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするための手段と、上記外部ブラウザ状態表現のマッピングデータを処理し、上記マッピングデータに基づいて上記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第1のコンテンツとの関係を実現するための手段とを含む。ウェブページを含むウェブベースのデータソースをブラウジングする方法は、ウェブブラウザを用いて上記ウェブベースのデータソースの1以上のウェブページをブラウジングするステップと、上記ウェブブラウザを用いてブラウジング中に異なる第1の内部ブラウザ状態の少なくとも2つの外部表現を構築するステップと、1つ以上のウェブブラウザアプリケーションにおける上記外部表現のうちの少なくとも1つに基づいて追加の1つ以上のブラウジングイベントを構築する
ステップとを含み、上記追加の1つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記1つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。上記方法および/またはシステムに従い、上記少なくとも2つの外部表現が、構築されてもよく、および/または、1つ以上のウェブブラウザアプリケーションに実現されてもよい。上記方法も、特にウェブブラウザを用いたウェブページのブラウジングを実現するために、ウェブロボットによって実行されてもよい。上記ウェブロボットは、1つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、上記ウェブロボットは、予め定められた1つ以上の基準が満たされたことに応じて、上記方法および/またはシステムのいずれかに従い、1つ以上の外部表現の構築を開始するように構成されてもよい。
ステップとを含み、上記追加の1つ以上のブラウジングイベントを構築するステップは、上記外部表現のコンテンツを処理し、上記1つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む。上記方法および/またはシステムに従い、上記少なくとも2つの外部表現が、構築されてもよく、および/または、1つ以上のウェブブラウザアプリケーションに実現されてもよい。上記方法も、特にウェブブラウザを用いたウェブページのブラウジングを実現するために、ウェブロボットによって実行されてもよい。上記ウェブロボットは、1つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、上記ウェブロボットは、予め定められた1つ以上の基準が満たされたことに応じて、上記方法および/またはシステムのいずれかに従い、1つ以上の外部表現の構築を開始するように構成されてもよい。
ここに開示する発明の概念によって示される、その他の特徴、機能、構成要素、および利点を、図面を参照しながら示す。以下の説明は、代表的なものであると理解されるべきものであって、示される特徴のうちのいずれかを、当業者が本開示を読んで理解するであろう任意の適切なやり方で、組合わせても置換してもよい。
図1は、ここに開示する発明の概念の実施形態に従うシステムを示す。このシステムは第1のクライアントC1と第2のクライアントC2とを含む。この例のこれらのクライアントは、デスクトップ、ラップトップ、タブレットコンピュータおよび/または同様のもの等の計算ユニットであるが、1つ以上のウェブロボットを含むサーバも、ここに開示する発明の概念の他の実施形態ではクライアントとみなし得る。クライアントC1、C2は、1つ以上のデータプロセッサ/CPU、データ記憶装置、回路基板、画面を含み、キーボード(ハードウェアまたはソフトウェア(タッチスクリーンを介する))、コンピュータマウスおよび/または同様のもの等の入力手段を含み得る。
また、クライアントC1、C2はウェブブラウザ手段WB、WBAを含む。これらのウェブブラウザ手段は、インターネットINとも呼ばれるワールドワイドウェブ上のウェブページWP1〜WPnにアクセスし、これを処理し、表示するように構成されたソフトウェアアプリケーションである。これらのウェブページWP1〜WPnは、ウェブベースのデータソースWBDSに位置する。
よって、ウェブブラウザWB、WBAは、ウェブブラウザが、ウェブベースのデータソースWBDSからのウェブページにアクセスし、これを取出し、解釈することを可能にする適切な手段を含み得る。これらの手段は、たとえば、JavaScriptを解釈する専用コンピュータソフトウェア、たとえばjava scriptエンジンを含み得る。これは、HTML、XML、画像ファイルおよび/または同様のもの等のマークアップコンテンツを処理し、カスケードスタイルシート(CSS),拡張可能なスタイルシート言語(ESL)および/または同様のもの等の情報をフォーマット(書式設定)するための、1つ以上のレイアウト/レンダリングエンジンを含み得る。
ウェブベースのデータソースWBDSはウェブサーバとしても知られている。よって、これらのウェブページはインターネットINを通してアクセス可能であり、ウェブブラウザアプリケーションを含むクライアントまたはウェブサーバは、インターネットを通してたとえばウェブベースのデータソースWBDSと通信するための適切なデータ通信手段を含む。
クライアントのユーザU(またはウェブロボット)は、たとえば、ウェブページを参照するブラウザ内のウェブアドレス/統一資源ロケータ(URL)を入力することにより、ウェブブラウザWBを用いて、ウェブページWP1〜WPnにアクセスする。次に、ウェブブラウザWBは、上記URLのウェブページWP1を取出し、このウェブページをクライアントC1、C2の画面上に視覚化する。これは、好ましくは、ウェブベースのデータソースWBDSから取出されたウェブページWP1のウェブページ処理を実行し、ウェブブラウザにおけるウェブページWP1、たとえばウェブページWP1の内部ブラウザ表現FIR、FUIRを構築することによってなされる。
これは、取出されたウェブページWP1を処理し、このウェブページのコンテンツをウェブブラウザWBにおける内部ドキュメントオブジェクトモデルにパースすることによってなされる。そうすると、ユーザはブラウザを用いてウェブページWP1をブラウジングすることができる。
ウェブページWP1は、たとえばマークアップ言語コンテンツの形態の静的コンテンツとスタイルシートコンテンツとを含む。マークアップ言語コンテンツは、いずれか適切なマークアップ言語で記述されていればよいが、これはハイパーテキストマークアップ言語(HTML)であることが多い。
スタイルシートコンテンツは、クライアントC1、C2の画面上においてユーザに対して如何にしてマークアップ言語コンテンツを視覚的に表示すべきかに関する情報を含むカスケードスタイルシート(CSS)を含み得る。
また、大抵のウェブページは、たとえば、JavaScriptコンテンツまたは同様のもの等のスクリプティングコンテンツの形態の動的コンテンツを含む。スクリプティングコンテンツは、ユーザおよび/またはウェブページ自身によって行なわれるマウスもしくはキーボード操作またはその他の操作に応じて、ウェブページの挙動を変化させることができる。動的コンテンツは、クライアント側のスクリプティングおよび/またはサーバ側のスクリプティングを容易にするための手段を含み得る。
ウェブページの動的および「静的」コンテンツは、ウェブブラウザによって処理され、結果として、ウェブブラウザWBによって、特に内部ドキュメントオブジェクトモデル表現IDOMを用いて、ウェブブラウザにおける、結果として生じる第1の内部ブラウザ状態表現が生成される。この内部ドキュメントオブジェクトモデル表現IDOMは、以下において「内部DOM」と呼ぶ場合もある。
しかしながら、内部DOMは、ユーザUが行なう動作が原因で、および/またはIDOMによってウェブページ表現を自動的に修正するスクリプティングコンテンツが原因で、時間の経過とともに修正される。このため、異なるクライアントにおいて構築されているが同一のウェブページWPに基づく内部DOM、すなわちIDOMは、ウェブページとのユーザの異なる対話が原因で異なるように見える場合があり、および/またはウェブページのスクリプティングが時間とともに変化して、異なる時間に表示されるウェブページが異なるように見えるおよび/または異なる動作を行なう。よって、ここに開示する発明の概念の実施形態に従ってウェブブラウザWBにおいて表現されるウェブページWP1〜WPnの状態表現を構築するときには、このことを考慮する必要があるであろう。ここに開示する発明の概念の実施形態に従うと、これはたとえば下記のように実現し得る。
ユーザU(またはウェブロボット)が、後の時点において、別のウェブブラウザ(WBA)または同一のウェブブラウザにおいてウェブページWP1の第1の内部表現の特定の状態から続けることを容易にしたいと思う場合がある。その場合、ここに開示する発明の概念の実施形態に従い、ユーザU(またはウェブロボット)は、ウェブページ処理中のある時点で、第1の内部表現FIRの状態の外部表現ERの構築および格納を開始する。これは、コンピュータマウスを用いてクライアントの画面上のボタンとクリックすることにより、または特定の場所でタッチスクリーンをタッチすることにより、キーボードおよび/または同様のものによってコマンドを入力することにより、実施してもよい。
ウェブロボットは、インターネットを通して自動化されたタスクを実行するソフトウェアアプリケーションであると定義してもよい。典型的に、ウェブロボットは、人間が単独でなし得るよりも遥かに速い速度でタスクを実行する。ウェブロボットは、特定のウェブページまたはある種のウェブページからのコンテンツにアクセスしこれを処理して取出すように設計し得る、予め規定された一組のルールおよび/または命令を含む。よって、ロボットは、実装され動作するときに、ブラウザを用いてウェブページにアクセスし、ウェブページからデータを取出して、たとえば、ウェブページを通してアクセス可能なデータベースのコンテンツを格納しおよび/またはインデックスして、ウェブページ(またはウェブページを用いてアクセス可能なデータベース)等のコンテンツの解析を実行するように、設計し得る。ロボットはしたがって、ユーザによって、自動的にウェブページにアクセスしロボットを設計したユーザがアクセスすることを意図したデータにアクセスするよう、ウェブページまたはある種のウェブページに基づいて、構成されてもよい。
よって、ウェブロボットは、ブラウザにおいて特定の基準が満たされたときに、たとえばブラウザの特定の状態に達し、ロボットが外部表現の構築を開始するように、設計されてもよい。たとえば、ウェブページのスクリプトが実行されウェブページが処理されてロボットが要求するデータにアクセス可能になったときに、外部表現を構築して、他の(別の)ウェブブラウザにおける1つ以上の追加の内部表現を構築できるように、または、外部表現の構築時にブラウザ状態に対応する状態の内部表現にロボットが後で戻ることができるように、してもよい。このことについては本明細書において後にさらに説明する。
ここに開示する発明の概念の実施形態に従いウェブロボットを使用するイベントにおいて、ウェブロボットは、一組のルールに従って動作するように構成されてもよく、この場合、一組の基準が満たされたときおよび/またはウェブブラウザにおいてブラウザの予め規定された状態に達したときに、1つ以上のウェブロボットAPI方法が呼び出されて、ここに開示する発明の概念の他の実施形態にのいて説明する外部表現ERを構築してもよく、および/またはウェブページデータを処理してもよい。このように、ここに開示する発明の概念のある局面において、ロボットは、異なる従来の方法を用いてウェブページを通したナビゲートを実行するが、それに加えて、本明細書の他の実施形態に開示する外部表現をロボットが構築できるようにする、統合された機能を含み得る。したがって、ロボットは、ウェブブラウザを用いて、たとえば、ウェブページをロードする、URL情報を抽出する、画像を抽出する、テキストを抽出する等を行なうことができる。
外部表現ERの構築の開始により、ウェブブラウザWBの内部DOM表現IDOMの処理が開始されて、第1の内部表現FIRの第1のコンテンツFCの表現RFCを含む外部表現ERが構築される。第1のコンテンツFCは、たとえば、マークアップコンテンツの内部ブラウザ表現と、スタイルシートコンテンツの内部ブラウザ表現とを含む。これはさらに、実施形態では、クッキーの内部ブラウザ表現および/またはウェブブラウザにおいて示されたウェブページに関連するフォームコンテンツの内部ブラウザ表現を含み得る。
また、第1の内部表現(FIR)の動的コンテンツDCの状態を表わす外部動的コンテンツ状態表現DCSRが構築される。上記動的コンテンツ状態の外部表現DCSRおよび第1のコンテンツの表現RFCを構築することは、それぞれの内部表現を処理してコンテンツを所定のデータフォーマットに変換することを含み得る。
たとえば、内部ブラウザ表現のマークアップコンテンツを、拡張可能なマークアップ言語(XML)または同様のもの等のマークアップ言語フォーマットで外部表現に格納してもよい。
スタイルシートコンテンツは、カスケードスタイルシート(CSS)または同様のもの等のスタイルシートフォーマットで格納してもよい。
クッキー情報は、クッキーを表わすテキスト列を含むテキスト文書または同様のものに格納してもよく、フォームコンテンツも、マークアップ言語たとえばXML等の文書フォーマットで格納してもよい。
動的コンテンツの表現は、バイナリフォーマットで格納してもよく、動的コンテンツの状態を含み、好ましくは動的コンテンツそのものでもある。
ここに開示する発明の概念の実施形態において、外部表現はウェブブラウザの外部で構築し得るものと一般的に理解される。よって、これは、クライアントC1のデータメモリに格納されてもよく(以下でより詳細に説明する)、クライアントC1および/または同様のものの外部のデータ記憶装置に格納されてもよい。
また、第1の内部状態表現FIRは、動的コンテンツから、内部表現のマークアップ言語コンテンツおよび/またはスタイルシートコンテンツの変数の値を含むコンピュータメモリアドレスに対する、複数のポインタを含み得る。これらのポインタは、別のウェブブラウザアプリケーションWBAにおいて対応する状態を構築するのを容易にするためにマッピングする必要があるであろう。したがって、ここに開示する発明の概念に従うと、動的コンテンツDCと第1の内部表現FIRのマークアップ言語コンテンツ等の第1のコンテンツFIの少なくとも一部との関係のマッピングを含むマッピングデータMDが構築される。このマッピングデータMDはしたがって、第1の内部表現FIRの動的コンテンツDCと第1の(静的)コンテンツFCとがどのように関連付けられたかに関連する情報を含み、したがって、対応するコンテンツを追加の内部表現FUIRにおいてどのように関連付けるべきかに関する情報を含む。
外部表現ERは、クライアントC1、クライアントの外部のウェブサーバ、または、その他適切な場所の、いずれかにおける、データ記憶装置に格納される。外部表現ERはさらに、複数の外部表現(図1には示されていない)にコピーされてもよく、複数の外部表現各々を、複数のウェブブラウザアプリケーションWBRにおける1つ以上の追加の内部表現を構築するのに使用してもよい。
よって、外部表現ERは、ウェブブラウザWBの第1の内部状態に対応する状態でウェブブラウザアプリケーションWBAの追加の内部ブラウザ表現FUIRを構築するために使用し得る(これについては以下で詳細に説明する)。
ここに開示する発明の概念の実施形態に従い、外部表現が処理され、追加の内部DOM表現FIDOMがそれに基づいてウェブブラウザアプリケーションWBAにおいて構築される。これは、第1のコンテンツFCの外部表現RFCの形態の外部表現ER,外部動的コンテンツ状態表現DCSR、およびマッピングデータを処理することによって実施される。
よって、ユーザは、ウェブブラウザアプリケーションWBAにおける追加の内部ブラウザ表現FUIRが構築されたときに、第1の内部表現の状態に対応する状態から、ウェブページWPのブラウジングを続けることができる。
図2は、ここに開示する発明の概念の実施形態に従い外部表現ERを構築する実施形態に関連するフローチャートを示す。
ステップ21(WBDSのウェブページを取出す)において、ウェブブラウザは、たとえば、ユーザがブラウザにURLを入力したことが原因で、またはブラウザのリンクもしくは文書のハイパーリンクを起動したことが原因で、ウェブベースのデータソースWBDSからウェブページWPを取出す。
ステップ22(ウェブページをウェブブラウザにパースする)において、ブラウザは取出されたウェブページを処理しこのウェブページをウェブブラウザWBの内部DOM表現にパースする。
この時点で、ユーザUは、ウェブページのリンクおよびタブをクリックすることによってウェブページWPをブラウジングすることができ(ステップS23)、ユーザUはウェブページ等のフォームコンテンツを入力してもよい。ウェブページWPのブラウジング中のある時点で、ユーザUは、別のブラウザにおいてまたは同一のウェブブラウザのタブにおいてウェブブラウザWBの状態を構築することを望む場合がある。
したがって、ユーザUは、上記のように外部表現ERの構築を開始してもよい。よって、ブラウザ(または別のツール)は、ブラウザWBの状態を外部化する。これは、ウェブブラウザの内部状態表現を、ブラウザの状態をともに表わす1つ以上の外部表現にシリアライズすることによって容易になる(ステップS24)。よって、ブラウザWBは、内部表現FIRの第1のコンテンツFCを、外部表現ERにシリアライズする。このシリアライズは、内部表現FIRのデータ構造を、データメモリにおけるファイル等に格納するフォーマットに変換することを含む。これに代えて、ある局面において、シリアライズされたコンテンツを、直ちに、外部化されたデータを途中で格納せずに、別のウェブブラウザアプリケーションまたはタブにおける追加の内部表現FUIRを構築することに関連して使用するために送信してもよい。
シリアライズは、好ましくは、外部表現ERの構築の時点で外部表現ERにおける内部表現のオブジェクトの値を取得することも含む。
オブジェクトは、1つのデータを表わし、通常は、オブジェクトに割当てられた記憶場所の値が割当てられる。この/これらの値は、好ましくは外部表現ERにコピーされた追加の内部表現に後で再び挿入される。
よって、シリアライズされたコンテンツは、同一のクライアントC1においてまたは別のクライアントもしくはウェブサーバにおいて、後に再構築することができる。
内部表現FIRは、さらに処理されて(ステップS25)、内部表現FIRの動的コンテンツDCと第1のコンテンツFCとの間の参照/関係を判断する。これは、マッピングデータMDを構築することによって実施される。ここに開示する発明の概念の好ましい実施形態において、マッピングデータMDは、以下でより詳細に説明するように、クライアントC1またはウェブサーバにおいてウェブサーバWBの第1の内部状態表現FIRで使用される変数のメモリアドレスに対するポインタまたは参照のマッピングに関連する情報を含む。このようにして、内部表現FIRの、動的オンテンツDCと、マークアップ言語関連コンテンツおよび/またはスタイルシート関連コンテンツ等の第1のコンテンツFCとの間の関係/参照を判断することが可能である。
次に、ステップS24およびS25に関連して構築された、外部化されたデータが、追加の内部ブラウザ表現FUIRの構築に関連して後に使用するためにデータ記憶装置に格納されるS26。
そうすると、ユーザは、ウェブブラウザの以前の状態を構築できることが分かっているので、ウェブページのブラウジングを続けることができ、さらに、ウェブページをさらにブラウジングしている間にウェブブラウザの追加の第1の状態表現FIRを構築し得る。
図3は、ここに開示する発明の概念の実施形態に従い外部表現ERに基づいてウェブブラウザにおける追加の内部状態表現FUIRを構築する実施形態に関連するフローチャートを示す。
ステップS31において、ウェブブラウザWBの前の状態を表わす外部表現ERが取出される。
ステップS32において、外部表現ERの少なくとも一部が、デシリアライズされ、追加の内部表現を意図したウェブブラウザWBAのパーサがウェブブラウザWBAの追加の内部ドキュメントオブジェクトモデルFIDOMにパースできる(ステップS33)フォーマットに変換される。
第1の内部表現FIRの外部化の時点で存在していたオブジェクトの値も、好ましくは追加の内部表現FUIRに読込まれる。
ステップ34(MDを処理し実装する)において、外部表現ERのマッピングデータMDが処理されて実装されることにより、第1の内部表現FIRの状態の再構築が終了する。よって、外部表現ERの情報に基づく、追加の内部表現FUIRにおける動的コンテンツDCと第1のコンテンツFCとの間の関係が、再構築される。これは、たとえば、追加の内部表現FUIRの動的コンテンツDCと第1のコンテンツFCとの間のポインタが第1の内部表現FIRのポインタに実質的に対応するように設定されるよう、ポインタを構築するおよび/または訂正することを含み得る。しかしながら、第1の内部表現FIRのメモリアドレスと比較して他のメモリアドレスを指すように、追加の内部表現FUIRのポインタ/参照が設定される点が異なる。
ステップ35(ウェブページをブラウザ状態からブラウズ)において、ユーザ、ウェブロボットおよび/または同様のものはしたがって、追加の内部表現FUIRを用いて、第1の内部表現FIRの状態に対応するブラウザ状態からウェブページWPをブラウジングしてもよい。
図4は、ここに開示する発明の概念の実施形態に従いポインタをマッピングする実施形態を概略的に示す。
ウェブブラウザWBの第1の内部表現FIRは、動的コンテンツのオブジェクトDOB1〜DOBnから、ウェブブラウザWBの第1の内部表現の第1のコンテンツFCオブジェクトOB1〜OBnの値を含むメモリアドレスM_ADRへの、ポインタの形態の複数の参照を含む。
動的コンテンツのこれらのオブジェクトおよびポインタは、JavaScriptエンジンにより内部バイナリ表現で表わされる。このjavaスクリプティングエンジンは、そのメモリアドレスを使用するコンピュータメモリにおけるいずれかの場所に格納された別の値を直接参照する/指す値を有するデータタイプであるポインタの形態で参照して機能する、たとえばC++等のようなプログラミング言語で実現してもよい。
動的コンテンツのオブジェクトDOB1〜DOBnは、JavaScriptオブジェクトまたはその他の種類のオブジェクト等のスクリプティングオブジェクトであってもよい。これらのオブジェクトは本来、この例では、第1のコンテンツのオブジェクトOB1〜OBn(これらはメモリの0xXXZZ1〜0xXXZZnに割当てられる)以外のメモリアドレス(0xXXZZ10〜0xXXZZz)に位置する。
この実施形態における第1のコンテンツFCは、第1の内部表現のマークアップ言語コンテンツを含む。好ましくは、マークアップ言語コンテンツMLCは、マークアップ言語の一部、たとえばウェブページWPのHTMLコンテンツをウェブブラウザWBにパースしている間に構築されたものである。しかしながら、第1のコンテンツFCはまた、他の実施形態において、ウェブページをウェブブラウザWBにパースしている間に構築されたものであってもよい。
矢印によって示されるように、動的コンテンツの第1のオブジェクトDOB1は、メモリアドレス0xXXZZ1を指す/参照することにより、第1のコンテンツFCの第1のオブジェクトOB1の値を得る。動的コンテンツの第2のオブジェクトDOB2は、メモリアドレス0xXXZZ2を指す/参照することにより、第1のコンテンツFCの第2のオブジェクトOB2の値を得る。以下も同様である。なお、動的コンテンツから第1のコンテンツFCの第5のオブジェクトOB5に対するポインタはない。しかしながら、実施形態において、追加の内部表現において対応するオブジェクトを構築できるようにするために、このオブジェクトを、これを「タグ付」するよう処理することが好都合であろう。しかしながら、追加の内部表現におけるこのようなオブジェクトに割当てられる記憶場所は必ずしも重要ではない。
次に、外部表現ERを上記のように構築しようとするとき、ポインタの形態の上記関係がマッピングされる。これは好ましくは、内部表現FIRの動的コンテンツを処理して、動的コンテンツのオブジェクトDOB1〜DOBnとマークアップ言語コンテンツMLCのオブジェクトOB1〜OBnとの間のポインタを識別することによってなされる。ポインタが識別された場合、それぞれのメモリアドレスM_ADRの値を有するオブジェクトOB1〜OBnが識別され、よって、マッピングデータMDはこの情報を含むように構築される。
よって、外部表現ERのマッピングデータMDは、動的コンテンツDCの第1のオブジェクトDOB1が第1のコンテンツFCの第1のオブジェクトOBJ1のメモリアドレスを指しており、動的コンテンツDCの第2のオブジェクトDOB2が第1のコンテンツFCの第2のオブジェクトOBJ2のメモリアドレスを指しているといった情報を含むことになる。また、第1のコンテンツおよび第2のコンテンツのオブジェクトは、好ましくは、シリアライズ中に識別子でタグ付けされて、追加の内部表現FUIRの実装中において後にオブジェクトを識別することを可能にする。これは、以下でより詳細に説明するように、たとえばシリアライズ中に行なわれてもよい。
次に、追加の内部表現FUIRが構築されると、第1のコンテンツの表現RFCおよび外部表現の動的コンテンツDCSRが、ウェブブラウザアプリケーションWBR内に実現される。これは好ましくは、表現RFC、DCSRの少なくとも一部をデシリアライズしウェブブラウザアプリケーションの内部DOMにパースすることによってなされ、これはまた、外部表現の構築中に第1の内部表現FIRから抽出された、たとえばブラウジング履歴データ、クッキーデータ、フォームデータ、および/または同様のもの等の追加のコンテンツを実現することを含み得る(図4には示されない)。
この間に、第1の表現FIRの第1のコンテンツおよび動的コンテンツの必要なオブジェクトOB1〜OBn、DOB1〜DOBnのメモリが、追加の内部表現FUIRのためのウェブブラウザアプリケーションWBAを含むクライアントのデータメモリのメモリアドレスFM_ADRに割当てられる(図4には示されない)。これらメモリアドレスFM_ADRは、大抵、示されている第1の内部表現FIRのアドレスM_ADRと異なるであろう。
よって、第1のコンテンツFCの第1のオブジェクトOB1はメモリアドレス0xXXZZ30に割当てられ、第1のコンテンツFCの第2のオブジェクトOB2はメモリアドレス0xXXZZ31に割当てられ、以下同様である。動的コンテンツの第1のオブジェクトDOB1はメモリアドレス0xXXZZ40に割当てられ、動的コンテンツの第2のオブジェクトDOB2はメモリアドレス0xXXZZ50に割当てられ、以下同様である。
その後、マッピングデータMDが処理される。このマッピングデータに基づいて、動的コンテンツDCとマークアップ言語コンテンツとの間のポインタが再構築される。オブジェクト間の参照/ポインタに関連するマッピングされたデータの実現は、第1の内部表現の動的コンテンツおよびマークアップ言語およびスタイルシートコンテンツを表わす外部表現ERのコンテンツの最初のパースの後に行なわれる。その理由は、パース後に、オブジェクトのメモリが割当てられるからであり、よって、ポインタを、追加の内部表現に対して使用される正しいメモリアドレスに対するポインタを再構築することが可能である。
たとえば、マッピングデータは、動的コンテンツの第1のオブジェクトDOB1が第1のオブジェクトOB1のメモリアドレスを指している必要があるという情報を含む。よって、第1のオブジェクトOB1のメモリアドレスが識別され(この場合0xXXZZ30)、次に、動的コンテンツの第1のオブジェクトDOB1とこのメモリアドレスとの間にポインタが構築される。残りのオブジェクトDOB2〜DOBnに対して対応する処理が行なわれて、第1の表現FIRのポインタに対応するポインタが構築されるが、メモリアドレスは、デシリアライズおよびウェブブラウザアプリケーションWBAへのパース後の追加の内部表現のメモリアドレスに基づく。
図5は、ポインタを識別しオブジェクトをタグ付けすることによって外部表現を構築する実施形態を示す。
ステップS51において、ユーザUまたはウェブロボットがホームページをブラウジングする。ある時点で、ユーザUまたはウェブロボットは、外部表現ERの構築(EER=外部表現構築)を所望する。これは、ブラウザ状態の外部表現を構築せねばならないという意味で、テストTE51(EER?)が肯定の場合、多数のステップを含むシリアライズプロセスを開始させる。
よって、ウェブブラウザWBは、第1の内部表現FIRのマークアップ言語コンテンツおよび動的コンテンツDCのシリアライズを開始しようとする。これは、内部表現のオブジェクトおよびその関係を識別する(テストTE52(OBJ?))ことにより、ウェブブラウザの内部DOMすなわちIDOMを処理することによってなされる。オブジェクトが識別された場合、後の識別のためにタグ付けされ(ステップS52)、対応するメモリアドレスの値がコピー等される。
また、第1の内部表現FIRの動的コンテンツのオブジェクト(図4のDOB1〜DOBn)が識別された場合、これは、第1のコンテンツFCの別のメモリアドレスに対するポインタを含むか否かテストされる(テストTE53(P?))。そうであれば、ステップS53が開始され、指し示された/参照されたメモリアドレスを有する第1のコンテンツ(FC)のオブジェクトが識別されマッピングされて、マッピングデータMDは、ポインタまたは参照の形態の関係を動的コンテンツDCのそれぞれのオブジェクトから第1のコンテンツFCのオブジェクトに対して構築しなければならないという情報を含む。ここに開示する発明の概念の実施形態において、この情報は、シリアライズ中のオブジェクトのタグ付けに基づいて構築されて、後にそれぞれのオブジェクトを識別するのを容易にしてもよい。次に、ウェブブラウザは上記のようにオブジェクトの識別を続けて、オブジェクトを識別し、動的コンテンツDCおよび第1のコンテンツFCの外部表現を構築する。オブジェクトがポインタを含まない場合(TE53)、ウェブブラウザは引続き、さらに他のオブジェクトを識別する(TE52)。
これは、第1の内部表現FIRの動的コンテンツDCおよび第1のコンテンツのオブジェクト(DOB1〜DOBn)のすべての関連するオブジェクトが処理されるまで行なわれる(テストTE54は、すべての関連するオブジェクトが処理されたか否かテストする(AOP?))。
ステップS52およびS53の処理中に、内部ドキュメントオブジェクトモデルIDOMの外部表現ERが構築されて、結果として生じた表現ERは、ウェブブラウザの内部DOM構造に対応するデータを含む。これは、たとえばオブジェクトの処理中のxpathによってXML表現を生成することにより、容易になるであろう。
この時点で、外部表現はまた、外部表現が構築された時点の第1の内部表現FIRにおけるオブジェクトと、ウェブブラウザにおける第1の内部表現FIRのマークアップ言語コンテンツMLCを表わすデータとの間の参照/ポインタの情報を含むマッピングデータMDを含む。
図6は、追加の内部表現を構築するための外部表現ERの構築および外部表現ERの実現を容易にする、ここに開示する発明の概念の実施形態に従うウェブブラウザを示す。
ウェブブラウザWBは、たとえば、ウェブ文書を、内部DOM(ドキュメントオブジェクトモデル)IDOM表現(図示せず)にパースするためのパース手段等の、通常のブラウザ手段を含む。このパース中に、オブジェクトは内部IDOMに割当てられる。また、ウェブブラウザWBは、ユーザインターフェイスUI、ブラウザエンジンBE、ウェブブラウザWBがデータをウェブサーバおよび/または同様のものから受信しこれに送信することが容易にできるようにするためのデータ通信機能DCF、および、パースしホームページのスクリプティング(たとえばJavaScript)を実行するために使用されるJavaScriptエンジン等のスクリプティングエンジンSEといった、その他の従来の機能を含む。
また、ウェブブラウザは、上記のように内部表現をシリアライズするためのシリアライズ手段SMを含む。また、ウェブブラウザ(WB)は、上記のように外部表現ERをデシリアライズするためのデシリアライズ手段/機構DSMを含む。
加えて、ウェブブラウザは、内部表現FIRにおけるオブジェクト間の関係をマッピングし上記のようにマッピングデータMDを構築するためのマッピング手段MMを含む。
また、ウェブブラウザは、追加の内部表現FUIRにおけるマッピングデータを実現するためのマッピングデータインタープリタMDIを含み得る。
ここに開示する発明の概念の他の実施形態において、デシリアライズ手段DSMおよびマッピングデータインタープリタMDIは、ウェブブラウザWBが、外部表現ER(図6には示されていない)を構築するためにのみ構成され追加の内部表現FUIRを作成するようには構成されていない場合、省略してもよい。
また、ここに開示する発明の概念の実施形態において、シリアライズ手段SMおよびマッピング手段MMは、ウェブブラウザWBが、別のウェブブラウザによって構築される予め構築された外部表現ER(図6には示されていない)に基づいて追加の内部表現FUIRを構築するようにのみ構成されている場合、省略してもよい。
図7は、第1の内部表現FIR(図7には示されていない)の状態の予め構築された1つの外部表現ERに基づいて、複数の追加の内部状態表現FUIR1〜FUIRnを構築することに関連する、ここに開示する発明の概念の実施形態を示す。
外部表現ERは、上記のように構築されていてもよい。外部表現は、異なるクライアントC2〜Cnにおける複数の追加の内部状態表現FUIR1〜FUIRnを構築するために使用される。よって、これらクライアントC2〜Cnは各々、ウェブブラウザアプリケーションWBA1〜WBAnを含み、これは、外部表現ERに基づいて追加の内部表現FUIRが構築されたときに、第1の内部表現FIR(図7には示されていない)において表現されたウェブベースのデータソースWBDSのウェブページに個別にアクセスするために使用し得る。このことはたとえば図1に関連して説明した通りである。異なる個々のユーザU1〜U3(またはウェブロボット)はしたがって、第1の内部表現FIRに対応する状態からウェブページにアクセスし得る。
よって、ウェブブラウザアプリケーションWBA1〜WBAnは、外部表現ERに基づいて第1の内部表現FIR(図7には示されていない)に対応するブラウザ状態表現FUIR1〜FUIRnを個別に構築する。
図示されていない、ここに開示する発明の概念の実施形態において、クライアントC1〜Cnは、個々の追加の内部表現FUIRごとに2つ以上のウェブブラウザアプリケーションを含んでいてもよい。
図示されていない、ここに開示する発明の概念の他の実施形態において、クライアントC1〜Cnは、2つ以上の個別の追加の内部表現FUIRを含む1つのウェブブラウザアプリケーションを含み得る。これは、ウェブブラウザWBの異なるタブにおいていくつかのウェブページ(または1つのウェブページのサブページ)を1つのウェブブラウザがブラウジングできる「タブ機能」を含むウェブブラウザアプリケーションによって容易にすることができる。
図8は、1つの予め構築された外部表現ERに基づいて複数の追加の内部状態表現FUIR1〜FUIRnを構築することに関連する、ここに開示する発明の概念の他の実施形態を示す。
この実施形態において、第1の内部表現の複数の追加の内部表現が、サーバSにあるウェブブラウザアプリケーションWBA1〜WBAnにおいて構築される。サーバSは、インターネットNに接続されているので、個々のウェブブラウザアプリケーションWBA1〜WBAnは、内部表現構築後の第1の内部表現(FIR)(図8には示されていない)の状態に対応する状態から、それぞれのウェブページにアクセスすることができる。
よって、ウェブブラウザアプリケーションWBA1〜WBAnは、外部表現ERに基づいて、第1の内部表現FIR(図8には示されていない)の状態に対応するブラウザ状態表現FUIR1〜FUIRnを構築する。
よって、複数の個々のウェブロボットWR1〜WRnおよび/またはユーザが、ウェブサーバにおける個々のウェブブラウザアプリケーションを用いて、第1の内部状態FIRの状態に対応する状態からウェブページをブラウジングすることができる。
実施形態において、ウェブブラウザアプリケーションWBA1〜WBAnは2つ以上の異なるサーバ(図8には示されていない)間で分散させてもよいことが理解される。
図9は、ここに開示する発明の概念の実施形態に従う手段を含むクライアントC1(またはサーバ)を示す。クライアントは、図1、図2、図4、および図5との関連で先に説明したように第1の内部表現を構築し外部化するために、および/または図1、図3、図4、および図5に関連して説明したように追加の内部状態表現FUIRを構築するために、使用し得る。
クライアントC1は、クライアントC1にインストールされたウェブブラウザアプリケーションWB、WBAによって視覚化されたものをユーザUが見ることができるようにするための画面SCを含む。また、クライアントC1は、指示に従ってデータを処理するための1つ以上のデータプロセッサDPを含む。データプロセッサDPは、中央処理装置CPUと呼ばれることもある。
加えて、クライアントC1は、1つ以上のデータ記憶装置DSを含む。このデータ記憶装置DSは、ウェブブラウザ、および、第1の内部表現FIRおよび/または追加の内部表現FUIR等の、ウェブブラウザアプリケーションWBAによって生成されたデータを格納するために使用される。データ記憶装置DSは、ランダムアクセスメモリ(RAM)、ハードディスクドライブHDDおよび/または固体状態ドライブおよび/または同様のものを含み得る。
クライアントC1はまた、クライアントC1によってインターネットをユーザUがブラウジングできるようにするためのキーボードKBを含む。画面がタッチスクリーンである局面において、キーボードは、クライアントC1にインストールされユーザU1によってアクセスされるソフトウェアキーボードであってもよい。
図10は、ここに開示する発明の概念の実施形態に従うサーバSの実施形態を示す。サーバSは、指示に従ってデータを処理するための1つ以上のデータプロセッサDPを含む。データプロセッサDPは中央処理装置CPUと呼ばれることもある。加えて、サーバWSは1つ以上のデータ記憶装置DSを含む。この/これらのデータ記憶装置DSは、1つ以上のウェブブラウザアプリケーションWBAを格納するために使用され、第1の内部表現FIR(図示せず)の外部表現ERおよび/またはウェブブラウザアプリケーションにおいて生成された追加の内部表現等の、ウェブブラウザアプリケーションWBAによって生成されたデータを格納するためにも使用し得る。データ記憶装置DSは、ランダムアクセスメモリ(RAM)、ハードディスクドライブHDDおよび/または固体状態ドライブおよび/または同様のものを含み得る。データプロセッサDP、データ記憶装置DSと理解される。
他の実施形態において、サーバSは、ウェブロボット(図示せず)によって作動/操作される複数のウェブブラウザアプリケーションWBAを含み得る。図8の実施形態および以下の図面参照。
加えて、サーバSは、第1の内部表現を含むウェブブラウザWBと、外部表現を構築するための手段とを含み得る。ウェブサーバが複数のウェブブラウザアプリケーションを含むここに開示する発明の概念の局面において、これら複数のウェブブラウザアプリケーションは、たとえば、本明細書に記載のようにウェブロボットによって実現されるサーバによってトリガされて、本明細書において定められるようにブラウジング中に外部表現ERを生成するための手段を含み得る。
図11は、外部表現ERが、第1の内部表現FIRを含むウェブブラウザWBを含むクライアントC1におけるデータ記憶装置に格納される、ここに開示する発明の概念の実施形態を示す。よって、外部表現ERは、後の時点で、ウェブブラウザWBを、外部状態表現ERをデシリアライズしウェブブラウザWB内に実現することによって追加の内部状態表現FUIR(図10には示されていない)を構築することによりウェブブラウザの第1の内部状態に対応するブラウザ状態にリストアするために、使用してもよい。
また、代替的に、外部表現ERは、外部表現ERを数個のウェブブラウザアプリケーションで共有し得る、または、それに代えて、外部表現をウェブブラウザWBごとに格納し得るが外部表現は同じ内部表現FIRを表わし得る、図8に関連して説明したウェブサーバまたは別のサーバに、格納してもよい。
図12は、外部表現ER1〜ER3が異なる第1の内部ブラウザ表現FIRを表わす、複数の外部表現ER1〜ER3の使用に関連する、ここに開示する発明の概念の実施形態を示す。図12は、4つのブラウジングイベントBE_WB1、BE_WBA1、BE_WBA2、BE_WBAnを開示する。これらブラウジングイベントは、たとえば上記説明に関連して開示した外部ウェブベースのデータソースのウェブページのブラウジングに関連する。
第1のブラウザWB1は、ウェブページをブラウジングするためにウェブロボットまたはユーザ(図12には示されていない)によって使用される。ウェブページのブラウジングBE_WB1中に、ユーザまたはウェブロボットは、ブラウジングイベントBE_WB1中の第1のポイントP1において外部表現ER1を構築して、後の時点でこの第1の内部ブラウザ状態FIR1の再構築をし易くすることを望む。よって、第1の内部表現FIR1は、その時点P1における特定のブラウジングイベントBE_WB1中のウェブブラウザWB1の特定の状態を表わす。よって、ユーザまたはウェブロボットは、時点P1において第1の内部表現を表わす第1の外部表現ER1の構築を開始する。
よって、ユーザまたはウェブロボットは、前の第1の内部表現FIR1を後の時点でリストアできることがわかっているので、引続きウェブページのブラウジングを行なう。
よって、ユーザまたはウェブロボットは、ブラウジングイベントBE1_WB1中の時点P2、P3において追加の外部表現ER2、ER3を構築することができ、したがって、これらは各々、時点P2、P3におけるウェブブラウザWB1の追加の第1の内部方言FUIR2、FUIR3を後に構築するために用いることができる。よって、追加の外部表現ER2、ER3は、ブラウジングイベントBE_WB1中の後の時点において構築される、ウェブブラウザWB1の追加の第1の内部状態表現FIR2、FIR3の状態を表わす。
時点P4において、ユーザまたはウェブブラウザは、前の第1の内部ブラウザ状態FIR1を再構築することにより、前のブラウザ状態FIR1からウェブページをブラウジングすることを希望する。ウェブブラウザはしたがって、ユーザまたはウェブロボットの命令に応じて、第1の内部ブラウザ状態FIR1の外部表現ER1を処理し、したがってウェブブラウザは時点P4においてブラウザ状態FUIR1にリストアされ、ここから、ユーザまたはウェブロボットは、第1の内部表現FIR1に対応するブラウザ状態でブラウジングイベントBE_WB1を続けることができる。これは、上記のように、たとえば図1、図3、および図4に関して述べたようにデシリアライズしマッピングデータを用いることにより、上記実施形態について記載したように外部表現ER1を実現することによって容易になるであろう。後者のシナリオはまたルーピングと呼ばれることもある。
ここに開示する発明の概念の実施形態において、別のウェブブラウザアプリケーションWBA1を用いて、追加の個別のブラウジングイベントBE_WBA1を、第1のウェブブラウザWB1の第1の内部ブラウザ状態FIR1に対応するブラウザ状態から、開始する。このように、追加の内部表現FUIR1が外部表現ER1を処理することによって構築される。これは、本明細書において先に述べたように実現してもよい。
同じようにして、追加の内部ブラウザ状態表現FUIR2、FUIR3を、それぞれウェブブラウザ状態FIR2、FIR3に対応する異なる追加のウェブブラウザアプリケーションWBA2、WBAnにおいて、第2および第3の表現ER2、ER3を用いて構築してもよい。これにより、それぞれのブラウザ状態から、他の個別のブラウジングイベントBE_WBA2、BE_WBAnが開始される。これらブラウザにおけるルーピングもまた、それぞれブラウジングイベントBE_WBA2、BE_WBA3におけるウェブブラウザ状態FIR2、FIR3の再構築によって容易にすることができる。
ここに開示する発明の概念の実施形態では、開示される発明の概念の実施形態にかかる複数のブラウジングイベントの構築および処理を容易にし得る、同じウェブブラウザアプリケーションWB、WBAによって、複数のブラウジングイベントBE_WB1、BE_WBA1、BE_WBA2、BE_WBAnを容易にし得ることが、理解される。
図13は、外部表現ER、および、第1の内部状態表現FIRの外部化後にこれが含み得るものの実施形態を示す。
外部表現ERは、動的コンテンツDCの外部表現DCSRおよびその状態を含む。この外部表現DCSRは、先に説明したように、ウェブブラウザWBの第1の内部表現FIRの動的コンテンツDCの状態を表わす。
加えて、外部表現ERは、動的コンテンツDCと、マークアップ言語コンテンツ、スタイルシートコンテンツ(または第1の内部表現FIRの視覚的レイアウトを示す同様のコンテンツ)等の第1のコンテンツFCの少なくとも一部との間の関係を説明するマッピングデータMDを含む。
また、外部表現ERは、第1の内部表現FIRの第1のコンテンツFCの状態の表現RFCを含む。
好ましくは、第1の内部表現FIRの第1のコンテンツFCの状態の表現RFCは、少なくとも、マークアップ言語コンテンツMLCの表現MLRを含み、また、内部状態表現FIRのスタイルシートコンテンツSSCの表現SSRを含み得る。
第1の内部表現FIRの第1のコンテンツFCの状態の表現RFCはまた、ここに開示する発明の概念の実施形態において、第1の内部表現FIRのクッキーデータCODを表わすクッキー情報CODRを含み得る。このデータは、外部ブラウザ状態表現ERの構築中に第1の内部状態表現FIRから識別されてコピーされてもよい。よって、第1の内部表現FIRにおけるクッキーは、追加の内部表現FUIRにおいて構築されてもよい。
ここに開示する発明の概念の他の実施形態において、第1の内部表現FIRの第1のコンテンツFCの状態の表現RFCを構築してフォームコンテンツ表現FCORを含むようにしてもよい。このフォームコンテンツ表現FOCRは、ウェブページの第1の内部表現FIRのフォームに記入されたフォームコンテンツFOCに関連する情報を含む。
また、第1の内部表現FIRの第1のコンテンツFCの状態の表現RFCは、ここに開示する発明の概念の実施形態において、第1の内部表現FIRの時点におけるウェブブラウザWBのブラウジング履歴データBHDの表現BHDRを含む。この表現は、ブラウジング履歴データのシリアライズによって得ることができる。よって、このブラウジング履歴表現BHDRがウェブブラウザアプリケーションWBAにおいて後に実現されるときに、これは、第1の内部表現FIRを生じさせることになるブラウジングイベント中に訪問された前のURLに、ユーザまたはウェブロボットが達することを可能にする。よって、ユーザは、外部表現ERに基づいて追加の内部表現FUIRを構築した後に、たとえばブラウザアプリケーションにおける「バックボタン/機能」を用いて、外部状態表現ERの構築前にウェブブラウザWBが訪問したURLを訪れてもよい。
第1のコンテンツFCおよび動的コンテンツDCは、第1の内部表現FIRに応じて適切なやり方で抽出し得ることが、一般的に理解される。よって、スタイルシートコンテンツを外部表現におけるカスケードスタイルシートフォーマットに変換してもよく、マークアップ言語コンテンツMLCをたとえばXMLフォーマットに変換してもよく、動的コンテンツDCをバイナリフォーマット等に変換またはコピーしてもよい。
好都合な実施形態において、外部表現は、ウェブブラウザWBの内部ドキュメントオブジェクトモデルIDOM表現(図13には示されていない)に基づいて構築されることが、一般的に理解される。この内部ドキュメントオブジェクトモデルは、外部表現ERを構築した時点におけるブラウザWBの状態を表わす。
ウェブブラウザWBは一般的に、内部表現FIRの関連する部分を識別し必要であればシリアライズすることによって外部表現ERを構築できるようにするソフトウェアコード(図示せず)を含み得る。よって、ソフトウェアコードは、ユーザまたはウェブロボットが外部表現の構築を開始したときに、ソフトウェアコードが、内部DOM、動的コンテンツDC、マークアップコンテンツMLC、スタイルシートコンテンツSSC、クッキーデータCOD,動的コンテンツDCとマークアップコンテンツMLCとの間のポインタ、および/またはスタイルシートコンテンツSSC、フォームデータFOC,履歴データBDHおよび/または同様のものを処理し得るように、実現し得る。
他の実施形態において、ソフトウェアコードは、ウェブブラウザに対するアドオンとみなしてもよく、ウェブブラウザ(WB)はこのような実施形態において、このソフトウェアと協力して、内部DOM、動的コンテンツDC、マークアップコンテンツMLC、スタイルシートコンテンツSSC、クッキーデータCOD、動的コンテンツDCとマークアップコンテンツMLCとの間のポインタ、および/またはスタイルシートコンテンツSSC、フォームデータFOC、履歴データBHDおよび/または同様のものに対するアクセスを提供してもよい。
図14は、ウェブブラウザWBによって画面SC上に視覚化されたウェブページの例を示す。
ウェブページは複数の(この例では3)フレームFR1〜FR3(インラインフレーム(iframe)等)を含む。各フレームFR1〜FR3は、ウェブページを、異なる文書/データを示すことができる異なるセグメントに分割する。ユーザは、アドレスフィールドAFにURLアドレスを入力し、これに基づいて、ウェブブラウザWB、WBAは、ウェブベースのデータソースのウェブページにアクセスし、これを取出して視覚化する。
フレームFR1〜FR3は各々、異なるコンテンツを表わし、ウェブブラウザWBにおける、自身の内部ドキュメントオブジェクトモデル構造、スタイルシートコンテンツ等を含む。よって、実施形態に従う外部表現は、ウェブページの第1の内部表現FIRの異なるフレームを表わす複数のフレーム表現FR1R〜FR3Rを構築することを含み得る。これらは各々、上記のように第1のコンテンツFCと動的コンテンツDC双方を含み得る。よって、フレーム表現FR1R〜FR3Rは、ウェブブラウザにおける各フレームFR1〜FR3の内部状態の外部表現ERを含む。
加えて、フレームFR1〜FR3は、ウェブブラウザにおいてフレームツリー構造と関連付けられ、このフレームツリー構造はさらに、外部表現ERにおいて、フレームアソシエーション表現FRARとして判断され外部化されることで、先に説明したように同一のまたは別のウェブブラウザにおいて、追加の内部フレーム表現FUIRで、後にフレームFR1〜FR3と正しく関連付けるおよび/または視覚化することができる。
フレームツリーおよびフレームのコンテンツは、好ましくは、ブラウザWBの内部ドキュメントオブジェクトモデルIDOMに基づいて処理されシリアライズされる。
各フレームとともに、マッピングデータMDを構築することにより、オブジェクトと各個別フレームのメモリアドレスとの間のポインタおよび/またはもしあればフレーム間のポインタ等の関係を後に構築し易くすることができる。
ウェブページは、外部化すべき1つ、2つ、3つ、4つ、5つまたはそれ以上のフレームを含み得ることが一般的に理解される。
よって、フレームFR1〜FR3は、ウェブブラウザのIDOMを処理することによって識別してもよく、したがって、外部表現ERは、ここに開示する発明の概念のある局面において、IDOMの構成に基づいて構築してもよい。たとえば、IDOMは、マークアップ言語コンテンツ表現の外部表現の数と各フレームのその他の部分の数を判断してもよい。
たとえば、ウェブブラウザは、内部DOMを処理し、DOMが個別のフレームFR1〜FR3を有するウェブページを表現すると判断してもよい。よって、3つの動的コンテンツ状態表現DCSRが構築されるはずであり、各々がそのフレームに関連する第1のコンテンツFCの3つの表現が構築されるはずである(図示せず)。また、フレームの3表現/フレームアソシエーション表現FRARが構築されるはずである。これらはすべて、ウェブブラウザWBの第1の内部表現FIRの状態をともに説明する外部表現の一部である。
このため、後に外部表現ERに基づいてウェブブラウザアプリケーションWBAにおいて追加の内部表現FUIRを生成するとき、結果として生じる、ウェブページの視覚化は、第1の内部表現において示されたものと全く同じに見えるであろう。
これに代えて、たとえばウェブロボットが外部表現を使用することが原因で、外部表現が視覚化されなくても、フレーム表現FR1R〜FR3Rおよびフレームアソシエーション表現FRARを処理することによって、外部表現ERに基づき、ウェブブラウザアプリケーションにおける追加の内部表現を構築してもよい。
図15は、たとえば本明細書において先に述べた、ウェブロボットが外部状態表現ERを使用する、ウェブロボットの動作の実施形態を示す。
ステップS151においてウェブロボットは、ウェブブラウザを用いて、ウェブロボットに与えられた一組のルールおよび命令に従い、ウェブページLWPをロードする。
テストT151において、ロボットは、1つ以上の予め定められた基準が満たされているか否かテストする(PCCP?)。これらの基準は、たとえば、満了したときにロボットを先に進ませるタイマを含んでいてもよく、これは、ブラウザにおけるウェブページの実行されたスクリプティングコンテンツ等の、1つ以上のウェブページロードパラメータのサーベイランスを含み得るものであり、これは、ウェブページがウェブブラウザに十分にロードされたのはいつか識別するのに役立ち得る、タイミングファクタまたはその他の関連する状態インジケータを含み得る。
ステップS152において、予め定められた基準が満たされ、ロボットは次に外部表現(EER)の構築/生成を開始する。これは、たとえば図1〜図14のいずれかとの関連で本明細書で説明したように行なわれてもよい。
ステップS153において、ロボットは、ウェブブラウザにおいて表現されたウェブページのリンク/URLのサマリを抽出する(サマリを抽出)。このことは、関連するリンク/URLをクリック/起動した場合にどのような情報が期待されるかを示す短いサマリまたは販促情報とみなされる広告の情報を抽出することを含み得る。このステップは任意とみなされてもよい。
ステップS154において、ウェブロボットは、リンクを起動することにより、リンク/URLを追従する。ステップ153がロボットの一部である場合、これは、追従されるサマリに対する関連リンクであることが好ましい。
ステップS155において、ロボットは、ステップ154でリンクを起動したときにブラウザによって処理されたウェブページのデータを抽出する(または代わりにインデックスする)。
ステップS156において、ステップ155においてデータが抽出されると、ロボットは、ステップ152におけるウェブページ状態に対応する状態でウェブページをリストアする。したがって、ウェブページは、ステップ152で構築された外部表現にアクセスし、次にこの外部表現ERを用いて、ウェブブラウザを、外部表現を構築したときの状態にリストアする。これはたとえば、図1〜図14のうちのいずれかに関連して説明したように行なわれてもよい。
テストT152において、ロボットは次に、ウェブページのすべての(または所望された)リンク/URLがロボットによって追従/処理されたか否かテストする。よって、このシステム/ロボットは、ロボットによって追従/処理されたリンク/URLを追跡し続ける。
ウェブページのすべての(または所望された)リンク/URLがロボットによって追従/処理されていない場合、ロボットは、たとえばステップ153〜156に関して開示したように、新たなリンク/URLによって与えられた新たな処理を開始する。
ウェブページのすべての(または所望された)リンク/URLがウェブロボットによって追従/処理された場合、ロボットは図15に開示されるように終了してもよい。これに代えて、ロボットは、たとえば、上記処理済のウェブページまたは新たなウェブページのリンクのうちの1つによって与えられたウェブページに基づいて、図15に開示されるように新たなウェブページを処理し続けてもよい。
図16は、複数のウェブロボットを用いる実施形態を示す。
ステップS161において、ウェブページがブラウザにロードされて(LWP)ブラウザにおいて表現される。
ステップS161において、ウェブページがブラウザにロードされて(LWP)ブラウザにおいて表現される。
ステップS162および163において、ユーザ名(EUN)およびパスワード(EPW)が入力されることにより、そうでなければ制限されるデータにアクセスすることができる。これは、ユーザ名(EUN)およびパスワード(EPW)を入力し、これらをたとえば「OK」または「続行」ボタンのクリック/起動によって処理できるように構成された、表わされたウェブページ内のフィールドに入力してもよい(実施形態ではこの起動もロボットにより容易にし得る)。
ステップS164において、外部表現の構築/生成ER EERが行なわれる。これは、たとえば図1〜図15との関連で本明細書において説明したように行なわれてもよい。よって、外部表現ERは、パスワードとユーザ名を含むウェブブラウザの状態を表わす。この目的のために、たとえばフォームデータを、たとえば好都合には抽出することによって、フォームデータがユーザ名および/またはパスワード情報を含む場合は、外部表現の一部として表わしてもよい。これに加えてまたはこれに代えて、入力されたパスワードおよび/またはユーザ名情報を含むその他の情報を取出して外部表現ERに抽出してもよい。
ステップS161〜164は、上記のようにロボットR1によって行なわれてもよい。これに代えて、ユーザが、ウェブブラウザを操作してウェブページを取出すことにより、ステップS161〜164を実行してもよい。ユーザは、キーボードまたはタッチスクリーンまたは別の入力機能を用いてユーザ名とパスワードを入力した後にブラウザを操作して外部表現EERを構築してもよい。
次に、複数のロボットR1〜Rnが、ステップS164において構築された外部表現ERにアクセスして、以前に制限されたデータのコンテンツにアクセスする。これは、ユーザ名とパスワードの必要性によって制限されたものである。
このように、ロボットR2〜Rnは各々、それぞれのウェブブラウザにおいてステップS164からの外部表現をリストアして、状態が、ステップS164のウェブブラウザの状態に対応するようにする。これは、図1〜図15に関連して開示され説明されたように行なってもよい。
このように、ロボットは、好ましくは、ウェブページの異なるコンテンツにアクセスし、HTMLデータ等の所望の/希望するデータを抽出する(EXHMTL)またはウェブページから他の適切なデータを抽出する(ステップS166)ことによって、ウェブページの並列処理を実行し、さらに、データをデータ記憶装置にログし(LTD)、データをデータベースに格納し(STDB)、コンテンツおよび/または同様のものをインデックスしてもよい(ステップS167)。
さらに他の実施形態では、ロボットR1〜Rnによって実行されるステップを、ステップS151〜156と組合わせてもよくおよび/または置換えてもよいことが、理解される。
よって、図15および図16との関連で説明したロボットは、本明細書で先に述べたように、特定のウェブページまたは何らかの種類のウェブページからのコンテンツにアクセスし、これを処理し、取出すように設計し得る、1組以上のルールおよび/または命令を含むソフトウェアコードであってもよいことが、一般的に理解される。
ここに開示する発明の概念が上記例に限定されるのではなくたとえば請求項で特定される複数の変形において組合わせ得るものであることが、一般的に理解される。また、図1〜図11に関連して説明した実施形態はウェブロボットの使用との関連で使用し得ることが理解される。
当然、上記説明は、ここに開示する発明の概念の範囲に含まれると発明者らがみなすいくつかの代表的な実施形態を示しているにすぎないと理解されるものである。上述の特徴の、いかなる組合わせ、入替え、変形、または合成も、たとえ具体的な組合せ、入替え、変形、合成等がどの実施形態にも、または上記説明とともに提供されるどの図面にも、明示されていなくても、本願のある局面として理解されるものである。
また、追加の実施形態、上記実施形態に対する変形、および代替の実施形態も、当業者が上記説明を読むことによって達する理解による本願の範囲に、全体が含まれるとみなされるものである。
したがって、上記説明は決して本願の範囲を限定するとみなされるべきではない。むしろ、本明細書に記載の主題は、本発明の概念の広がりを例示するために示されている。本願に従って得ようとする財産権の境界は、以下の請求項と、当業者が上記開示を検討して理解するであろう上記請求項に対して均等の形態すべてによって定められるものである。
Claims (48)
- ウェブブラウザにおいて表わされるウェブページの状態表現を構築する方法であって、前記方法は、前記ウェブブラウザを用いて、
ウェブベースのデータソースから取出されたウェブページのウェブページ処理を実行するステップと、
前記ウェブブラウザにおいて、前記ウェブページの、結果として生じる第1の内部ブラウザ状態表現を構築するステップと、
外部表現を構築するステップとを含み、前記外部表現は前記第1の内部表現の状態を表わし、
前記状態の外部表現を構築するステップは、
前記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築するステップと、
前記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築するステップと、
前記動的コンテンツと前記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するステップとを含み、
前記方法はさらに、
前記外部表現をウェブブラウザアプリケーションが使用できるようにすることにより、前記第1の内部ブラウザ状態表現の状態に対応する状態で、前記ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現を構築するステップを含む、方法。 - 前記外部状態表現を構築するステップは、前記第1の内部ブラウザ状態表現の少なくとも一部をシリアライズするステップを含む、請求項1に記載の方法。
- 前記第1の内部ブラウザ状態表現の一部は、前記動的コンテンツおよび前記第1のコンテンツのうちの1つ以上の少なくとも一部分を含む、請求項2に記載の方法。
- 前記追加の内部表現を構築するステップは、前記外部表現の少なくとも一部をデシリアライズするステップを含む、請求項1に記載の方法。
- 前記追加の内部表現を構築するステップは、前記外部表現の少なくとも一部を前記ウェブブラウザアプリケーションにパースするステップを含む、請求項1に記載の方法。
- 前記外部表現は、1つ以上の記憶場所から独立するように構築され、前記1つ以上の記憶場所は、前記第1の内部表現に対応する、請求項1に記載の方法。
- 前記外部表現を構築するステップは、複数の識別フレームを含み、前記複数の識別フレームは前記ウェブページの1つ以上のインラインフレームを含む、請求項1に記載の方法。
- 外部フレーム表現が2つ以上のフレーム各々に対して構築され、前記2つ以上のフレームのうちの少なくとも1つは、前記ウェブページの少なくとも1つのインラインフレームを含む、請求項1に記載の方法。
- 前記外部表現を構築するステップは、フレームアソシエーション表現を構築するステップを含む、請求項1に記載の方法。
- 前記外部表現は、前記ウェブブラウザにおける前記ウェブページの内部ドキュメントオブジェクトモデル表現に基づいて構築される、請求項1に記載の方法。
- 前記外部表現は、前記内部ドキュメントオブジェクトモデルのコンテンツの少なくとも一部をシリアライズすることによって構築される、請求項10に記載の方法。
- 前記追加の内部表現を構築するステップは、
前記外部表現の少なくとも一部をデシリアライズするステップと、
前記外部表現のデシリアライズされた一部を、前記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするステップとを含む、請求項1に記載の方法。 - 前記第1の内部ブラウザ状態表現の第1のコンテンツはマークアップコンテンツを含み、前記外部表現は前記マークアップコンテンツの表現を含む、請求項1に記載の方法。
- 前記内部ブラウザ状態表現の第1のコンテンツは、スタイルシートコンテンツの表現を含み、前記外部表現は、前記スタイルシートコンテンツの表現を含む、請求項1に記載の方法。
- 前記第1のコンテンツは、前記第1の内部ブラウザ状態表現に関連するクッキーデータを含み、前記外部表現は、前記クッキーデータの表現を含む、請求項1に記載の方法。
- 前記第1のコンテンツは、前記第1の内部ブラウザ状態表現のフォームコンテンツを含み、前記外部表現は、前記フォームコンテンツの表現を含む、請求項1に記載の方法。
- 前記マッピングデータは、前記第1の内部ブラウザ状態表現の前記動的コンテンツとマークアップコンテンツとの間の1つ以上の関係のマッピングを含む、請求項1に記載の方法。
- 前記マッピングデータは、前記第1の内部ブラウザ状態表現の前記動的コンテンツとスタイルシートコンテンツとの間のポインタのマッピングを含む、請求項1に記載の方法。
- 前記マッピングデータは、前記第1の内部ブラウザ状態表現の1つ以上のオブジェクトの1つ以上のメモリアドレスに対する1つ以上のポインタのマッピングを含む、請求項1に記載の方法。
- 前記マッピングを構築するステップは、
前記第1の内部表現を処理するステップと、
前記処理の少なくとも一部に基づいてオブジェクト間の1つ以上のポインタを識別するステップと、
前記ポインタを前記メモリアドレスにマッピングするステップとを含む、請求項19に記載の方法。 - 前記外部表現を構築するステップは、前記第1のコンテンツを1つ以上のフォーマットに変換するステップを含み、変換後の前記1つ以上のフォーマットは各々、前記内部ブラウザ状態表現のフォーマットと異なる、請求項1に記載の方法。
- 前記外部表現を構築するステップは、前記第1の内部ブラウザ状態表現の少なくとも一部を、前記第1の内部表現の内部ドキュメントオブジェクトモデルの外部表現に変換するステップを含む、請求項1に記載の方法。
- 前記外部表現を構築するステップは、前記第1の内部ブラウザ状態表現の異なるフレームの複数の内部ドキュメントオブジェクトモデルを、前記複数の内部ドキュメントオブジェクトモデルの1つ以上の外部表現に変換するステップを含む、請求項1に記載の方法。
- 前記第1の内部ブラウザ状態表現はマークアップコンテンツを含み、
前記変換するステップは、前記マークアップコンテンツの少なくとも一部をマークアップ言語フォーマットに変換するステップを含む、請求項23に記載の方法。 - 前記第1の内部ブラウザ状態表現はスタイル情報を含み、
前記変換するステップは、前記スタイル情報の少なくとも一部をカスケードスタイルシートフォーマットに変換するステップを含む、請求項23に記載の方法。 - 前記第1の内部ブラウザ状態表現は、複数の異なるコンテンツ要素を含み、異なるコンテンツ要素は各々、
前記第1のコンテンツおよび
前記動的コンテンツ
のうちの1つ以上の少なくとも一部を含み、
前記外部表現を構築するステップはさらに、複数の個別表現を構築するステップを含み、個別表現は各々前記第1の内部ブラウザ状態表現に基づいており、
個別表現は各々、前記複数の異なるコンテンツ要素のうちの少なくとも1つに対応する、請求項1に記載の方法。 - 前記追加の内部表現を構築するステップは、前記ウェブブラウザアプリケーションにおいて前記ブラウザのマークアップ言語コンテンツの表現と動的コンテンツとの少なくとも1つの接続をマッピングするステップを含み、
前記マッピングは前記マッピングデータの少なくとも一部に基づく、請求項1に記載の方法。 - 前記追加の内部表現を構築するステップは、前記追加の内部表現の1つ以上のオブジェクト間の1つ以上のポインタを構築するステップを含み、前記構築するステップは、前記マッピングデータの少なくとも一部に基づく、請求項27に記載の方法。
- 前記第1の内部表現および前記追加の内部表現は各々、
少なくとも1つのウェブブラウザ、
少なくとも1つのウェブブラウザアプリケーション、
少なくとも1つのウェブページ、
のうちの1つ以上に組込まれており、
前記第1の内部表現および前記追加の内部表現は、
1つ以上の前記ウェブブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる1つ、および、
1つ以上の前記ブラウザ、ウェブブラウザアプリケーション、およびウェブページの異なる種類、
のうちのいずれかまたは双方に組込まれている、請求項1に記載の方法。 - 複数のウェブブラウザアプリケーションにおける複数の追加の内部表現を構築するステップをさらに含み、前記追加の内部表現が構築された複数の前記ウェブブラウザアプリケーションは各々、前記追加の内部表現が構築された前記ブラウザアプリケーションの他のすべてのウェブブラウザアプリケーションと異なる、請求項1に記載の方法。
- 前記ウェブページのウェブページ処理は、ブラウジング動作中に前記ウェブページの動的コンテンツを処理するステップを含み、前記ブラウジング動作は前記ウェブページに対する動作である、請求項1に記載の方法。
- 前記ウェブページの動的コンテンツは前記ウェブページのスクリプトを含む、請求項1に記載の方法。
- 前記第1の内部表現を含む前記ウェブブラウザは、前記第1の内部表現の少なくとも一部分のシリアライズの少なくとも一部に基づいて、前記第1の内部ブラウザ状態表現を前記外部表現に外部化する、請求項1に記載の方法。
- 前記追加の内部表現に対する前記ウェブブラウザアプリケーションは、前記外部表現の少なくとも一部分のデシリアライズの少なくとも一部に基づいて、前記追加の内部表現を構築する、請求項1に記載の方法。
- ウェブロボットを用いて、
予め定められた1つ以上の基準が満たされているか否か判断するステップと、
前記予め定められた基準のうちの1つ以上が満たされているという判断の少なくとも一部に基づいて前記外部表現を構築するステップを開始するステップとをさらに含み、
前記ウェブロボットは外部表現に基づいて1つ以上の追加の内部表現を構築するように構成されている、請求項1に記載の方法。 - ウェブブラウザの第1の内部ブラウザ状態表現の外部表現を構築するとともにそれに基づいて追加の内部表現を構築するためのシステムであって、前記システムは、
前記第1の内部ブラウザ状態表現を状態の外部表現に外部化するように構成されたウェブブラウザを含み、前記状態の外部表現を構築することは、
前記第1の内部ブラウザ状態表現の第1のコンテンツの表現を構築することと、
前記第1の内部ブラウザ状態表現の動的コンテンツの状態を表わす動的コンテンツ状態表現を構築することと、
前記第1の内部ブラウザ状態表現の前記動的コンテンツと前記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築することとを含み、
ウェブブラウザアプリケーションは、前記第1の内部ブラウザ状態表現の状態に対応する、ブラウザ状態の外部状態表現に基づいて、前記追加の内部状態表現を構築するように構成されている、システム。 - 前記システムは請求項1〜35のいずれかに記載の方法に従って動作するように構成されている、請求項36に記載のシステム。
- 1つ以上のウェブロボットを共に用いる、請求項1〜37のいずれかに記載の方法および/またはシステムの使用であって、
前記1つ以上のウェブロボットは、第1の内部ブラウザ状態表現の状態に対応する状態で、ウェブブラウザアプリケーションにおけるウェブページの追加の内部表現の構築を開始するように構成され、
前記追加の内部表現は外部状態表現に基づいて構築される、方法および/またはシステムの使用。 - 1つ以上の異なるウェブブラウザアプリケーションにおける複数のブラウジングイベントを構築するための、請求項1〜38のいずれかに記載の方法、システムおよび/または使用。
- 前記複数のブラウジングイベントは1つ以上のサーバに対して実行される、請求項39に記載の方法の使用。
- 外部ブラウザ状態表現を構築するためのウェブブラウザであって、前記ウェブブラウザは、
第1の内部ブラウザ状態表現の第1のコンテンツの外部表現を構築するための手段と、
前記第1の内部表現の動的コンテンツの状態を表わす外部動的コンテンツ状態表現を構築するための手段と、
前記第1の内部ブラウザ状態表現の前記動的コンテンツと前記第1のコンテンツとの関係のマッピングを含むマッピングデータを構築するための手段(MM)とを含む、ウェブブラウザ。 - 前記ウェブブラウザは、請求項1〜35のいずれかに記載の方法に従って動作するように構成されている、請求項41に記載のウェブブラウザ。
- 予め構築された外部ブラウザ状態表現に基づいて追加の内部ブラウザ状態表現を構築するためのウェブブラウザアプリケーションであって、前記ウェブブラウザアプリケーションは、
予め構築された外部ブラウザ状態表現を処理するための手段と、
前記処理の結果を前記ウェブブラウザアプリケーションの内部ドキュメントオブジェクトモデルにパースするための手段と、
前記外部ブラウザ状態表現のマッピングデータを処理し、前記マッピングデータに基づいて前記内部ドキュメントオブジェクトモデルにおける動的コンテンツと第1のコンテンツとの関係を実現するための手段とを含む、ウェブブラウザアプリケーション。 - 前記ウェブブラウザは、請求項1〜35のいずれかに記載の方法に従って動作するように構成されている、請求項43に記載のウェブブラウザアプリケーション。
- 複数のウェブページを含むウェブベースのデータソースをブラウジングする方法であって、前記方法は、
ウェブブラウザを用いて前記ウェブベースのデータソースの1以上のウェブページをブラウジングするステップと、
前記ウェブブラウザを用いてブラウジング中に異なる第1の内部ブラウザ状態の少なくとも2つの外部表現を構築するステップと、
1つ以上のウェブブラウザアプリケーションにおける前記外部表現のうちの少なくとも1つに基づいて追加の1つ以上のブラウジングイベントを構築するステップとを含み、
前記追加の1つ以上のブラウジングイベントを構築するステップは、前記外部表現のコンテンツを処理し、前記1つ以上のウェブブラウザアプリケーションの内部状態表現へのパースを実行するステップを含む、方法。 - 請求項1〜35のいずれかに記載の方法に従い、および/または請求項36〜37のいずれかに記載のシステムを用いて、前記少なくとも2つの外部表現が、構築される、および/または、1つ以上のウェブブラウザアプリケーション内に実現される、請求項45に記載の方法。
- 前記方法はウェブロボットによって実行される、請求項45または46に記載の方法。
- ウェブブラウザを用いたウェブページのブラウジングのためのウェブロボットの使用であって、
前記ウェブロボットは、1つ以上のウェブページを処理するために、予め定められた一組のルールに従って動作し、
前記ウェブロボットは、予め定められた1つ以上の基準が満たされたことに応じて、請求項1〜35のいずれかに記載の1つ以上の外部表現の構築を開始するように構成されている、ウェブロボットの使用。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DKPA201370640 | 2013-11-01 | ||
DKPA201370640 | 2013-11-01 | ||
PCT/EP2014/073434 WO2015063260A1 (en) | 2013-11-01 | 2014-10-31 | Establishment of state representation of a web page represented in a web browser |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017504129A true JP2017504129A (ja) | 2017-02-02 |
JP2017504129A5 JP2017504129A5 (ja) | 2017-11-16 |
Family
ID=51897247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016551004A Withdrawn JP2017504129A (ja) | 2013-11-01 | 2014-10-31 | ウェブブラウザにおいて表わされる状態表現の構築 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20170004221A1 (ja) |
EP (1) | EP3063673A1 (ja) |
JP (1) | JP2017504129A (ja) |
CN (1) | CN105745644A (ja) |
WO (1) | WO2015063260A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11201803927SA (en) | 2015-11-13 | 2018-06-28 | Playground Xyz Ip Pty Ltd | A method and system for distributing electronic publishing content |
US11132717B2 (en) | 2016-02-22 | 2021-09-28 | Ad Lightning Inc. | Synthetic user profiles and monitoring online advertisements |
US10693705B2 (en) | 2016-03-23 | 2020-06-23 | Arista Networks, Inc. | Show command service aka CLI relay |
US10917284B2 (en) * | 2016-05-23 | 2021-02-09 | Arista Networks, Inc. | Method and system for using an OpenConfig architecture on network elements |
US10826936B2 (en) | 2017-05-10 | 2020-11-03 | Ad Lightning, Inc. | Detecting and attributing undesirable automatic redirects |
US11178018B2 (en) | 2018-09-28 | 2021-11-16 | Arista Networks, Inc. | Method and system for managing real network systems using simulation results |
US10880166B2 (en) | 2019-02-21 | 2020-12-29 | Arista Networks, Inc. | Multi-cluster management plane for network devices |
CN110297830B (zh) * | 2019-06-26 | 2021-09-14 | 成都品果科技有限公司 | 一种Redshift外部表动态列的处理方法及装置 |
US11057275B1 (en) | 2020-09-18 | 2021-07-06 | Arista Networks, Inc. | Method and system for achieving high availability of a primary network controller in a network controller cluster using distributed network device state information |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8104017B2 (en) * | 2001-10-25 | 2012-01-24 | The Mathworks, Inc. | Traceability in a modeling environment |
US20050066037A1 (en) * | 2002-04-10 | 2005-03-24 | Yu Song | Browser session mobility system for multi-platform applications |
WO2007099544A2 (en) * | 2006-03-01 | 2007-09-07 | Infogin Ltd. | Methods and apparatus for enabling use of web content on various types of devices |
US7720835B2 (en) * | 2006-05-05 | 2010-05-18 | Visible Technologies Llc | Systems and methods for consumer-generated media reputation management |
US8819542B2 (en) * | 2007-04-27 | 2014-08-26 | Oracle International Corporation | Enterprise web application constructor system and method |
US8041763B2 (en) * | 2007-06-12 | 2011-10-18 | International Business Machines Corporation | Method and system for providing sharable bookmarking of web pages consisting of dynamic content |
CN101296255B (zh) * | 2008-06-30 | 2012-09-05 | 腾讯科技(深圳)有限公司 | 网页浏览方法、***、代理服务器和手机浏览器 |
US7962547B2 (en) * | 2009-01-08 | 2011-06-14 | International Business Machines Corporation | Method for server-side logging of client browser state through markup language |
US20110166938A1 (en) * | 2010-01-05 | 2011-07-07 | Bionic Click Llc | Methods For Advertising |
-
2014
- 2014-10-31 WO PCT/EP2014/073434 patent/WO2015063260A1/en active Application Filing
- 2014-10-31 JP JP2016551004A patent/JP2017504129A/ja not_active Withdrawn
- 2014-10-31 US US15/112,680 patent/US20170004221A1/en not_active Abandoned
- 2014-10-31 EP EP14796731.9A patent/EP3063673A1/en not_active Ceased
- 2014-10-31 CN CN201480059613.0A patent/CN105745644A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP3063673A1 (en) | 2016-09-07 |
WO2015063260A1 (en) | 2015-05-07 |
US20170004221A1 (en) | 2017-01-05 |
CN105745644A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017504129A (ja) | ウェブブラウザにおいて表わされる状態表現の構築 | |
JP5821678B2 (ja) | ウェブ・アプリケーションのブラウザに依存しない自動互換性チェックのためのウェブ・サービス | |
US10108715B2 (en) | Transformation and presentation of on-demand native application crawling results | |
JP6051337B2 (ja) | クライアント側ページ処理 | |
KR101908162B1 (ko) | 통합 개발 환경에서의 라이브 브라우저 툴 제공 기법 | |
KR101623223B1 (ko) | 하나의 인터넷 호스팅 시스템 집합에 의해 제공되는 다수의 병렬 사용자 경험 | |
US9384005B2 (en) | Systems and methods for dynamic configuration of client-side development environments through use of application servers | |
US9727354B2 (en) | System and methods for loading an application and its modules in a client device | |
US10419568B2 (en) | Manipulation of browser DOM on server | |
US20110015917A1 (en) | Browser emulator system | |
JP2013506175A (ja) | 統一リソース識別子(uri)による、アプリケーション状態情報の管理 | |
KR20080053293A (ko) | 클라이언트 스크립트 웹 페이지에 대한 서버측 초기 콘텐츠렌더링 | |
US8037484B2 (en) | Building compound extensible AJAX applications | |
US10574724B2 (en) | Automatic discovery of management nodes and generation of CLI using HA module | |
US20120158961A1 (en) | System for enabling rich network applications | |
US20160072927A1 (en) | Odata enabled mobile software applications | |
TWI683225B (zh) | 腳本生成方法與裝置 | |
JP2014513821A (ja) | Webアクセスを実装するための方法およびWebサーバ | |
US9122484B2 (en) | Method and apparatus for mashing up web applications | |
US9575617B1 (en) | Navigation payload injection | |
US20240179224A1 (en) | Systems and methods for rendering interactive web pages | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
US20120216132A1 (en) | Embedding User Selected Content In A Web Browser Display | |
US20110295966A1 (en) | Methods, systems, and computer program products for processing a combined command response based on a markup element | |
JP5393242B2 (ja) | データ提供方法および中間サーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171003 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171003 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20180511 |