(57)【特許請求の範囲】
【請求項１】
クライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法であって、
クライアント・コンピュータ・システム上で動作するブラウザ内で、ウェブ・サーバからのウェブページ・コンテンツを受信するステップと、
前記ウェブページ・コンテンツを前記ブラウザ内で表示するステップと、
前記ブラウザ内に表示される前記ウェブページの状態を取り込むステップと、
前記ブラウザの動作環境のメタデータをメタデータ・ストリングにコンパイルするステップと、
前記ウェブページの前記取り込まれた状態の各ドキュメント・オブジェクト・モデル（以下、「ＤＯＭ」という）要素をトラバースするステップと、
前記各ＤＯＭ要素及び当該各ＤＯＭ要素に関連付けられたデータをＤＯＭ要素ストリングにコンパイルするステップと、
前記メタデータ・ストリング及び前記ＤＯＭ要素ストリングを前記ウェブ・サーバに送信するステップであって、当該サーバに送信されたメタデータ・ストリング及び前記ＤＯＭ要素ストリングは前記ウェブ・サーバによってアクセス可能なデータ・ストア内にログされ、当該ログされたメタデータ・ストリング及びＤＯＭ要素ストリングが仮想計算機クライアント・コンピュータによって検索され且つ再作成されることにより、前記クライアント・コンピュータ・システムの前記ブラウザの前記取り込まれたウェブページの前記状態のシミュレーションが前記仮想計算機クライアント・コンピュータ上で提供される、前記送信するステップと
を含む、前記方法。
【請求項２】
前記ウェブページの前記状態が、前記ブラウザ内に表示されているウェブページ・コンテンツに応答して取り込まれる、請求項１に記載の方法。
【請求項３】
前記ウェブページの前記状態が、前記クライアント・ブラウザによるスクリプトの実行に応答して取り込まれる、請求項１に記載の方法。
【請求項４】
前記ウェブページの前記状態が、前記ウェブページの前記状態がログされるべきであるというユーザからの信号を受信することに応答して取り込まれる、請求項１に記載の方法。
【請求項５】
前記ウェブページ内で実行されるスクリプトが、前記ウェブページの前記状態をいつ取り込むかを決定する、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記ブラウザ内に表示される前記ウェブページの前記状態が、ユーザによって提供される入力値を含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記メタデータ・ストリング及び前記ＤＯＭ要素ストリングが、ＨＴＴＰ要求を介して前記ウェブ・サーバに送信される、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記メタデータは、ブラウザ名、ブラウザのバージョン、ウィンドウ・サイズ、及びオペレーティング・システムのバージョンを含む、請求項７に記載の方法。
【請求項９】
クライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法であって、
クライアント・コンピュータ・システム上で動作するブラウザ内で、ウェブ・サーバからのウェブページ・コンテンツを受信するステップと、
前記ウェブページ・コンテンツを前記ブラウザ内で表示するステップと、
前記ブラウザ内に表示される前記ウェブページの状態を取り込むステップと、
前記ブラウザの動作環境のメタデータをメタデータ・ストリングにコンパイルするステップと、
前記ウェブページの前記取り込まれた状態の各ドキュメント・オブジェクト・モデル（以下、「ＤＯＭ」という）要素をトラバースするステップと、
前記各ＤＯＭ要素及び当該各ＤＯＭ要素に関連付けられたデータをＤＯＭ要素ストリングにコンパイルするステップと、
前記メタデータ・ストリング及び前記ＤＯＭ要素ストリングを前記ウェブ・サーバに送信するステップと、
前記メタデータ・ストリング及び前記ＤＯＭストリングを前記ウェブ・サーバによってアクセス可能なデータ・ストア内にログするステップであって、当該ログされたメタデータ・ストリング及びＤＯＭ要素ストリングが仮想計算機クライアント・コンピュータによって検索され且つ再作成されることにより、前記クライアント・コンピュータ・システムの前記ブラウザの前記取り込まれたウェブページの前記状態のシミュレーションが前記仮想計算機クライアント・コンピュータ上で提供される、前記ログするステップと
を含む、前記方法。
【請求項１０】
クライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法であって、
クライアント・コンピュータ・システム上で動作するブラウザ内で、ウェブ・サーバからのウェブページ・コンテンツを受信するステップと、
前記ウェブページ・コンテンツを前記ブラウザ内で表示するステップと、
前記ブラウザ内に表示される前記ウェブページの状態を取り込むステップと、
前記ブラウザの動作環境のメタデータをメタデータ・ストリングにコンパイルするステップと、
前記ウェブページの前記取り込まれた状態の各ドキュメント・オブジェクト・モデル（以下、「ＤＯＭ」という）要素をトラバースするステップと、
前記各ＤＯＭ要素及び当該各ＤＯＭ要素に関連付けられたデータをＤＯＭ要素ストリングにコンパイルするステップと、
前記メタデータ・ストリング及び前記ＤＯＭ要素ストリングを前記ウェブ・サーバに送信するステップと、
前記メタデータ・ストリング及び前記ＤＯＭストリングを前記ウェブ・サーバによってアクセス可能なデータ・ストア内にログするステップと、
仮想計算機クライアント・コンピュータが前記ログされたメタデータ・ストリング及びＤＯＭ要素ストリングを検索して且つ再生成することにより、前記クライアント・コンピュータ・システムの前記ブラウザの前記取り込まれたウェブページの前記状態のシミュレーションを前記仮想計算機クライアント・コンピュータ上で提供するステップと
を含む、前記方法。
【請求項１１】
クライアント・コンピュータ・システムであって、
少なくとも１つのプロセッサと、
クライアント・ブラウザ状態のサーバ側ロギングを遂行するために前記少なくとも１つのプロセッサ上で動作可能な命令を格納する少なくとも１つのメモリと
を備えており、
前記命令が、請求項１〜８のいずれか一項に記載の方法の各ステップをそれぞれ実施するために実行される、前記クライアント・コンピュータ・システム。
【請求項１２】
請求項１１に記載のクライアント・コンピュータ・システムに接続されたウェブ・サーバであって、
前記クライアント・コンピュータ・システムから送信されたメタデータ・ストリング及び前記ＤＯＭストリングを前記ウェブ・サーバによってアクセス可能なデータ・ストア内にログする、前記ウェブ・サーバ。
【請求項１３】
請求項１２に記載のサーバ・コンピュータ・システムに接続された仮想計算機クライアント・コンピュータであって、
前記ウェブ・サーバによってログされたメタデータ・ストリング及びＤＯＭ要素ストリングを検索して且つ再生成することにより、前記クライアント・コンピュータ・システムの前記ブラウザの前記取り込まれたウェブページの前記状態のシミュレーションを当該仮想計算機クライアント・コンピュータ上で提供する、前記仮想計算機クライアント・コンピュータ。
【請求項１４】
クライアント・ブラウザ状態のサーバ側ロギングを遂行するためのコンピュータ・プログラムであって、クライアント・コンピュータ・システムに、請求項１〜８のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【請求項１５】
請求項１４に記載の前記コンピュータ・プログラムをコンピュータ読み取り可能な記録媒体に記録した、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ・サーバ及びクライアント・ブラウザ・インタフェースに関連するデータ・トラッキング及びストレージ動作に係り、さらに詳細に説明すれば、クライアント・ブラウザから得られたデータについてロギング及びサーバ側アクセスを可能にするための動作に係る。
【背景技術】
【０００２】
最近の多くのユーザ・インタフェースであるウェブサイトは、インタフェースのコンテンツにアクセスするためにブラウザの使用を必要とする。しかし、種々のブラウザは、クライアント・ユーザに対し同じコンテンツを異なった態様で表示することがある。例えば、マイクロソフト社のインターネット・エクスプローラ及びＭｏｚｉｌｌａ ＦｉｒｅＦｏｘの各々は、ＸＭＬ  ＤＯＭ（ドキュメント・オブジェクト・モデル）を異なった態様で実装する。さらに、ＪａｖａＳｃｒｉｐｔ又はＡＪＡＸのような動的ウェブページ技術の使用を通して、ユーザが現に見ているコンテンツは、サーバによって提供されるようなその元の状態から修正されていることがある。従って、クライアントが何を行っているか、クライアントに対しコンテンツがどのように表示されているかを正確に決定することは、しばしば困難である。なぜなら、クライアントのコードは、ウェブ・サーバとは異なるシステム上で実行しているからである。このことは、特にクライアント・エンドで生じているエラー又は他の予期しない振る舞いを理解しようとする場合に、問題判別（problem determination）を困難にすることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
既存のシステム内に頑強な問題判別ソリューションを提供するためには、クライアント・コンピュータ上にブラウザ側のロギングを実装することにより、ユーザが何を見ており、何を行っているか正確に記録しなければならない。このことは、典型的には、ユーザが制御に入力したであろう全ての値を記録するとともに、表示されたコンテンツに対しスクリプトが加えた全ての変更をトラッキングすることを含んでいる。現状では、ある時点におけるクライアント側の包括的なブラウザ・ディスプレイ情報を効率的に記録するとともに、当該情報を分析のためにサーバ又は他の第三者に伝えるためのシステムは存在しない。
【課題を解決するための手段】
【０００４】
本発明の１つの側面は、クライアント・ブラウザ状態のサーバ側ロギングを可能にする、拡張された動作を含んでいる。一実施形態では、ＤＯＭ（ドキュメント・オブジェクト・モデル）のコンテンツをトラバースし且つ記録することにより、クライアント・ユーザによってアクセスされるようなウェブページの完全な現状態を、文字ストリングに書き込むことができる。このことは、入力ウィジェットに入力された任意のデータ及びウェブページに対しスクリプトが加えた任意の修正を含んでいる。次に、ウェブページの状態を表すデータを保持する当該ストリングが、サーバに渡され、標準のロギング方法を使用してログされる。従って、このログされた情報を構文解析し且つ分析することにより、ロギングの時点で存在していたクライアント・ブラウザ状態を再作成することができる。
【０００５】
本明細書に開示したロギング動作を使用すると、コンテンツ・プロバイダは、任意の所与の時点において、ユーザが何を行っていたか、そしてユーザに対し何が表示されていたかを正確に知ることが可能となる。従って、本明細書に開示したロギング動作は、コンテンツを生成するスクリプト・コードをデバッグすること、特定のブラウザ又はブラウザのあるバージョン内で生じているレンダリング問題を識別すること、ある未検証の入力が予期しない振る舞いに帰着する場合に、ウェブページに入力された値を決定すること、クライアント側のスクリプト・ファイルが旧式のものであって、これをリフレッシュする必要がある（又はcontent-no-cache でサービスする）場合のような「キャッシュ」問題を識別すること、ユーザに対し描画されているコンテンツを全体的に監査することを可能にする。さらに、本明細書に開示したロギング動作は、トラブルシュータ及びサポート要員が、ウェブ・サーバ又はそのデータベースにアクセスすることを必要とせずに、ユーザが関与していたシナリオを正確に再作成することを可能にする。
【０００６】
一実施形態では、クライアント・ブラウザ状態のサーバ側ロギングを遂行するための動作は、ウェブページ・コンテンツがウェブ・サーバから受信された後に、クライアント・コンピュータ・システム上で動作するブラウザのために実行される。このウェブページ・コンテンツがブラウザ内に表示された後、ブラウザ内に表示されるウェブページの状態が取り込まれる。
【０００７】
取り込み（capture）の際、ブラウザの動作環境が、ストリングにコンパイルされる。さらに、ウェブページの取り込まれた状態の各ＤＯＭ要素を表すストリングを作成するため、当該ウェブページの各ＤＯＭ要素をトラバースし且つ各ＤＯＭ要素及びその関連するデータをストリングにコンパイルする。他の実施形態では、ブラウザ内に表示されるウェブページの状態は、ユーザによって入力フィールドに提供された入力値を含む。
【０００８】
次に、メタデータ及びＤＯＭストリング・データが、ウェブ・サーバに送信される。他の実施形態では、このストリングは、ＨＴＴＰ要求を介して送信される。一旦ウェブ・サーバが当該ストリングを受信すると、ウェブ・サーバは、メタデータ及びＤＯＭ情報をウェブ・サーバによってアクセス可能なデータ・ストアにログするような、必要な処理を行うことができる。
【０００９】
他の実施形態では、ウェブページの状態は、異なる時点に又は特定のイベントに応答して、取り込まれる。例えば、ウェブページの取り込みは、（１）ウェブページ・コンテンツがブラウザ内に表示される直後に、（２）クライアント・ブラウザによるスクリプトの実行に応答して、（３）ウェブページの状態がログされるべきであるという（ユーザによるボタン又はメニュー駆動型コマンドによってのように）ユーザからの信号を受信することに応答して、又は（４）ウェブページの状態をいつ取り込むべきかを決定するウェブページ内で実行されるスクリプトに応答して、これを開始することができる。
【発明の効果】
【００１０】
本発明に従ったロギング動作を使用すると、コンテンツ・プロバイダは、任意の所与の時点において、ユーザが何を行っていたか、そしてユーザに対し何が表示されていたかを正確に知ることが可能となる。従って、本発明に従ったロギング動作は、コンテンツを生成するスクリプト・コードをデバッグすること、特定のブラウザ又はブラウザのあるバージョン内で生じているレンダリング問題を識別すること、ある未検証の入力が予期しない振る舞いに帰着する場合に、ウェブページに入力された値を決定すること、クライアント側のスクリプト・ファイルが旧式のものであって、これをリフレッシュする必要がある（又はcontent-no-cache でサービスする）場合のような「キャッシュ」問題を識別すること、ユーザに対し描画されているコンテンツを全体的に監査することを可能にする。さらに、本発明に従ったロギング動作は、トラブルシュータ及びサポート要員が、ウェブ・サーバ又はそのデータベースにアクセスすることを必要とせずに、ユーザが関与していたシナリオを正確に再作成することを可能にする。
【図面の簡単な説明】
【００１１】
【図１】従来技術に従ったウェブ・クライアント／サーバ・アーキテクチャを例示する図である。
【図２】本発明の一実施形態に従った、クライアント・ブラウザ状態のロギングを実装するウェブ・クライアント／サーバ・アーキテクチャを例示する図である。
【図３】本発明の一実施形態に従った、クライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法を例示するフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の１つの側面は、クライアント・ブラウザ状態をログすること、そして問題判別、サポート及びテスト目的に関連して分析及び使用するために、このログされたブラウザ状態データをウェブ・サーバに送信することを含む。一実施形態では、クライアント・ブラウザ状態は、メタデータ及びＨＴＭＬから成るストリングに取り込まれる。ログされたデータ内に取り込まれたＨＴＭＬは、クライアントに対し最初にサービスされた「ソース」ＨＴＭＬではなく、ページの動的に生成された「ランタイム」ＨＴＭＬを表す。メタデータは、ブラウザ名、ブラウザのバージョン、ウィンドウ・サイズ及びオペレーティング・システムのようなデータを含むことができる。クライアント・ブラウザ状態及びメタデータがストリングに取り込まれた後、このストリングは、ウェブ・サーバ及び／又は第三者の位置に送信される。
【００１３】
取り込まれたブラウザ状態情報を使用することにより、サポート・チームは、ブラウザ状態がログされた時点においてユーザが経験したようなユーザ・インタフェースの状態を正確に再生することができる。例えば、これは、ウェブページ入力フィールドのユーザ入力値、又はブラウザ内で動的に変更されたコンテンツ・ディスプレイの状態を含むことができる。ロギング動作は、「ブラウザ状態ログ」ボタンのようなユーザ・コマンドによって手動的にトリガすることができるし、又はスクリプト内で定義された所定の間隔でトリガすることもできる。他の実施形態では、ユーザが入力するパスワード・フィールドのようなクライアント・ウェブページ上の機密データのロギングを防止するために、クライアント・ブラウザ状態の取り込み中に諸条件を適用することができる。
【００１４】
従来技術に従った標準のロギング方法は、クライアント及びそのブラウザの包括的な状態を容易にログすることができない。特に、このことが当てはまるのは、種々のタイプのブラウザ及びブラウザ・プラットフォームに対し異なった態様で描画されるウェブページのディスプレイをモニタすることを試みる場合である。本発明の利点の１つは、サーバ側及びクライアント側状態データの両方のために、ロギング及び問題判別を配備（deploy）し及び／又は調整できるということである。さらに、本発明の実施形態は、コンテンツがサーバ側又はクライアント側のどちらで生成されたかに拘わらず、描画された正確なＨＴＭＬを取り込むことを可能にする。
【００１５】
さらに、本発明の一実施形態では、管理者は、ユーザがページの入力ウィジェットに入力したデータがまだサーバに発信されていないとしても、このデータのためのロギングを分析することができる。画面取り込みを使用する既存のシステムとは異なり、この実施形態は、ピクセル・データを格納しない。その代わりに、マークアップがテキストとして格納される。こうすると、スペースが節約され、検査にもっと役立つ。おそらく、遂行される全てのユーザ・アクションについても、マークアップ「画面ショット」を取り込むことができるであろう。スクリプト・システムは、一定の間隔でページの状態を保存するように構成することができるので、この実施形態は、オーバーヘッドを著しく減少させるか又は実際のビデオ・データの節約を図りつつ、クライアントが使用する「ビデオ等」の再生を可能にするであろう。
【００１６】
ウェブページがクライアント上で描画される際にディスプレイを取り込むことによって、本発明の種々の実施形態は、基本的なウェブ・ブラウジング活動を利用する多様なクライアント・プラットフォーム上で実行することができる。これは、デスクトップ・コンピュータ上で動作する一般に用いられているブラウザに加えて、電話、モバイル装置及びポータブルの電子計算装置上で動作する他のブラウザを含んでいる。従って、クライアント・ブラウザが、Ｆｉｒｅｆｏｘ、インターネット・エクスプローラ、Ｓａｆａｒｉ、グーグル社のＣｈｒｏｍｅ等の何れであるかに拘わらず、クライアントから収集したデータのロギングを一様に遂行することができる。
【００１７】
先ず、従来技術に従ったウェブ・クライアント／サーバ・アーキテクチャを例示する図１を参照して説明する。一般に、動的ウェブ・アプリケーションは、次のように構成される。すなわち、ブラウザ１１０のＵＲＬがサーバ１２０において指示される場合、これは最初の要求１３０を形成し、サーバ１２０は、この要求１３０を要求ハンドラ１２１内で処理する。ウェブ・サーバのアプリケーション論理１２２及び応答ジェネレータ１２３から作成されるサーバの応答１３１は、ページの初期ロードを構成する。一般に、この応答は、ディスプレイ１１３用のＨＴＭＬページを提供する形式を取るが、当該応答は、理論的には、ドキュメント・オブジェクト・モデル（ＤＯＭ）によって表される任意のタイプのファイルを提供することができるであろう。
【００１８】
一旦このページがロードされると、ブラウザ１１０は、当該ページに関連する任意のスクリプト１１１の実行を開始する。これらのスクリプトは、当該ページのコンテンツをアニメーション表示し、ユーザ入力をモニタし且つ当該ユーザ入力に応答し、より多くのデータについてサーバに追加の要求を行う等の、多くのタスクを遂行することができる。後者の場合、スクリプトは、要求を形成することができる。この要求は、サーバに送信され、処理され、その結果、動的応答１３２が、コールバック機能を介して当該ページのスクリプトに直接的に返送される。
【００１９】
これらのアクションのうち任意のアクションは、ＤＯＭ１１２を更新するスクリプト１１１に帰着することがある。さらに、ユーザ入力１１４も、ＤＯＭを修正する。従って、典型的なクライアント／ウェブ・サーバ構成によれば、サーバにとって、所与の時点に描画されたページの正確な状態を知るための明白な方法は存在しない。サーバ側のロギング・データストア１４０内に容易に取り込むことができる唯一のデータは、サーバ１２０を通して通信されるようなデータ要求又は応答であろう。
【００２０】
図２は、本発明の一実施形態に従った、クライアント・ブラウザ状態のロギングを実装する同様のウェブ・クライアント／サーバ・アーキテクチャを例示する。次の動作は、クライアント・データを取り込み且つサーバ側でログするために、当該クライアント・データをサーバに送信する方法の１つの例を提供する。
【００２１】
先ず、表示されたウェブページＤＯＭを取り込むために、クライアント側ブラウザ１１０内でロギング動作が開始される。このロギング動作は、ディスプレイの状態がログされるべきであるというブラウザ・ユーザからの通知に応答する等の、多数の方法で開始することができる。この通知は、例えば、ブラウザ１１０内のボタンをクリックすることにより行うことができる。代替的に、このロギング動作は、所定の間隔又は述語に基づいて、ページの状態がログされるべきであることを決定する、当該ページ内で実行中のスクリプト１１１によってトリガすることができる。
【００２２】
さらに、クライアント・ブラウザ状態を取り込む一部として、スクリプト・システム１１１は、ブラウザの現バージョン、画面解像度、オペレーティング・システムのバージョン等の、ウェブページのディスプレイに関係するメタ情報を決定する。このメタデータ情報は、取り込まれて、ストリング内で表される。
【００２３】
次に、スクリプト・システム１１１は、ウェブページの各ＤＯＭ要素を訪れる。ＤＯＭ  １１２の内の要素ごとに、ＨＴＭＬが、当該要素を表すストリングに書き込まれる。例えば、ＤＯＭ内でテーブル要素に遭遇する場合、＜テーブル＞タグが書き込まれる。各要素内に保持されるデータは、当該ストリングに同様に書き込まれる。他の実施形態では、当該要素がパスワード・フィールドのように「機密」であると見なされる場合、当該フィールドは、機密データがログされることを防止するために読み取られないであろう。次に、参照番号２０１を付した動作によって示されるように、メタデータ情報及びブラウザのＤＯＭ  ＨＴＭＬの組み合わせを保持するストリングは、ブラウザ状態保存を指示する要求を介してサーバに送信される。
【００２４】
この要求をサーバの要求ハンドラ１２１内で処理した後、メタデータ・ロギング機能２０２内の論理は、参照番号２０３を付した動作中に、クライアント状態を保存したメタデータ及びＨＴＭＬを処理して、これをロギング・データストア１４０内に格納する。その後、任意のユーザは、サーバのロギング・データストア１４０にアクセスして、保存されたデータを開くことができ、そしてメタデータ内に指示されたブラウザのバージョンを使用することによって、この状態の保存時点でユーザが見ていたものを正確に見ることができる。
【００２５】
当業者には明らかなように、本発明に従ったブラウザ状態のロギング及びデータ収集技術は、種々のサーバ側環境内で達成することができる。例えば、これらのサーバ側環境は、図２に示す簡単なウェブ・サーバであるか、又はこれを高機能のデータ・ストレージ、検索及び分析技術の大規模な組み合わせと結合することができる。特に、これらのロギング動作は、ストレージ・エリア・ネットワーク（ＳＡＮ）、ネットワーク接続ストレージ（ＮＡＳ）装置、バックアップ・ユーティリティ及び電気製品のような管理されたストレージ環境内に格納されるデータを生成するために達成することができる。
【００２６】
さらに、クライアント側ブラウザから収集されたデータは、自動化テスト環境、ハイパーバイザー又は他の仮想環境の動作において、これを選択し、起動し、再作成することができる。例えば、そのロギングを、遠隔の仮想計算機クライアント内で検索し且つ再作成することにより、仮想設定内でクライアントのブラウザ経験の現実的なシミュレーションを提供することができる。
【００２７】
以下、前述のロギング動作の追加のアプリケーション及び用途を実証する、２つの非制限的な例を説明する。第１の例として、ウェブ・サーバからＰＨＰ又はＪＳＰページをサービスした直後に、ブラウザ状態のロギング動作を実行することができる。この第１の例は、クライアントによって受信されるようなサーバが生成したＨＴＭＬの正確な分析を可能にするとともに、サーバ側論理及びスクリプトが意図した方法で動作しているという検証を可能にするであろう。
【００２８】
第２の例として、ＪａｖａＳｃｒｉｐｔイベントがトリガされるか又はある特定のＪａｖａＳｃｒｉｐｔコードが実行された後に、ブラウザ状態のロギング動作を実行することができる。あるイベントが発生する際にロギング動作をトリガする１つの理由は、種々の値等から現に選択されているラジオ・ボタンの正確なスナップショットを得ることにある。この第２の例は、任意のウェブページ入力がエラー又は予期されない振る舞いを引き起こしている場合に、トラブルシューティングを支援するであろう。
【００２９】
図３は、本発明の一実施形態に従った、マークアップ言語を通してクライアント・ブラウザ状態のサーバ側ロギングを遂行するための動作を例示するフローチャートである。先ず、ステップ３０１で、ロギング動作が開始される。ロギング動作は、ユーザによって手動的に開始されるか、ある定義された期間に自動的に開始されるか、又はスクリプトのような所定の論理の実行に応答して開始される。
【００３０】
次に、ステップ３０２で、スクリプト・システム１１１は、ブラウザの現バージョン、画面解像度、オペレーティング・システムのバージョン等の、ウェブページ及びクライアント・ディスプレイ環境に関する適切なメタデータ情報を決定する。この情報は、コンパイルされ、テキスト・フォーマットで格納される。
【００３１】
次に、ステップ３０３で、スクリプト・システム１１１は、表示されたウェブページの各ＤＯＭ要素をトラバースする。ステップ３０４で、ＤＯＭ要素ごとに、ＨＴＭＬは、当該要素及びそのデータを表すストリングにコンパイルされる。例えば、テーブル要素に遭遇する場合、＜テーブル＞タグが書き込まれ、そして当該要素に保持されていたテキスト又は他の任意のデータが当該ストリングに書き込まれる。パスワード・フィールドのような要素からのデータの収集を除外するための諸規則を定義することもできる。
【００３２】
ステップ３０５で、クライアント・ディスプレイ環境のメタデータ情報を保持するブラウザ状態を表すストリングと、ＨＴＭＬにおけるウェブページＤＯＭの表現を保持するコンパイルされたストリングは、ＨＴＴＰ要求を介してサーバに送信される。ステップ３０６で、サーバは、このデータについて構成された任意のストレージ方法を通して、状態が保存されたメタデータ及びＨＴＭＬストリングをその構成されたデータ・ストアにログする。
【００３３】
最後に、ステップ３０７で、メタデータ及びＨＴＭＬストリングは、さらなる分析のためにアクセスすることができる。例えば、メタデータによって指示されたブラウザは、状態保存の時点でユーザが見ていたものを正確に見るために、これを配備することができる。予期されないか又は意図されないウェブページの振る舞いを修正するために、適切な分析、テスト及び／又は開発の変更を遂行することができる。
【００３４】
当業者には明らかなように、本発明は、方法、システム又はコンピュータ・プログラム製品として具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェア及びハードウェア要素の両方を含む実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明は、コンピュータが使用可能なプログラム・コードを有する表現を任意の有形的媒体内に具体化した、コンピュータ・プログラム製品の形式を取ることができる。
【００３５】
１つ以上のコンピュータ使用可能媒体又はコンピュータ可読媒体の任意の組み合わせを利用することができる。例えば、コンピュータ使用可能媒体又はコンピュータ可読媒体は、電子、磁気、光学、電磁気、赤外線、半導体式のシステム又は伝搬媒体とすることができる。コンピュータ可読媒体の特定の例は、１つ以上の線を有する電気接続、フレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、読み取り専用ＣＤ−ＲＯＭ、光ストレージ装置、インターネット若しくはイントラネットをサポートする伝送媒体又は磁気ストレージ装置等を含む。さらに、コンピュータ使用可能媒体又はコンピュータ可読媒体を、紙又は他の適切な媒体とすることもできる。すなわち、紙又は他の適切な媒体上に印刷されたプログラムを、光学式スキャン等を介して取り込み、コンパイルし、解釈し、又は必要に応答して適宜処理した後、その結果をコンピュータ・メモリに格納することができるからである。本明細書の文脈では、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持し、格納し、通信し、伝搬し、移送することができる、任意の媒体とすることができる。コンピュータ使用可能媒体は、伝搬されるデータ信号の形式を有することもできるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ使用可能プログラム・コードを具体化することができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等を含む、適切な任意の媒体を使用して伝送することができる。
【００３６】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋  等のようなオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行することができ、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、或いは遠隔コンピュータ又はサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を（例えば、インターネット・サービス・プロバイダを利用するインターネットを通して）外部コンピュータに行うことができる。
【００３７】
以上では、本発明の種々の代表的な実施形態はある程度の特殊性を有するように説明されたが、当業者は、本明細書及び請求項に記載した発明性のある主題の要旨又は範囲から逸脱することなく、開示された実施形態に対し種々の変更を施すことができるであろう。
【符号の説明】
【００３８】
１１０・・・ブラウザ
１１１・・・スクリプト・システム
１１２・・・ＤＯＭ（ドキュメント・オブジェクト・モデル）
１１３・・・ディスプレイ
１１４・・・ユーザ入力
１２０・・・サーバ
１２１・・・要求ハンドラ
１２２・・・アプリケーション論理
１２３・・・応答ジェネレータ
１３０・・・要求
１３２・・・動的応答
１４０・・・ロギング・データストア
２０１・・・ＨＴＭＬストリングを保持する要求
２０２・・・メタデータ・ロギング
【図１】
0005511845.tif 000002
【図２】
0005511845.tif 000003
【図３】
0005511845.tif 000004