(57)【特許請求の範囲】
【請求項１】
第２のコンピュータに一時的かつ断続的に接続される第１のコンピュータで実行されているウェブ・ブラウザと第２のコンピュータ内のウェブ・サーバ間で通信する方法であって、
前記第１のコンピュータはウェブ・ブラウザとクライアント側インタセプト・モジュールを有し、前記ウェブ・ブラウザは前記クライアント側インタセプト・モジュールと通信でき、
前記方法は、
前記第１のコンピュータが前記第２のコンピュータに接続されていない場合又は前記ウェブ・ブラウザからの要求に対する処理が後の時点まで据え置かれるように指示されている場合に、
前記クライアント側インタセプト・モジュール内の要求待ち行列に、前記第２のコンピュータのウェブ・サーバに対する前記ウェブ・ブラウザからの要求を記憶するステップと、
前記ウェブ・ブラウザからの前記要求に応答して、前記ウェブ・ブラウザに暫定応答を、前記クライアント側インタセプト・モジュールが供給するステップと、
前記クライアント側インタセプト・モジュールが前記第２のコンピュータに前記要求を供給する前に、前記記憶された要求を再呼び出しして前記記憶された要求のユーザ修正を行えるようにするステップと
を含む方法。
【請求項２】
前記第１のコンピュータが前記第２のコンピュータに接続されているときに、前記記憶された要求を該第２のコンピュータに送信するステップと、
前記第２のコンピュータを介して前記サーバからの要求に対する応答を受信するステップと、
前記要求に対する前記応答を前記第１のコンピュータに記憶するステップと、
前記記憶された要求に前記記憶された応答を関連づけるステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記記憶された応答を前記ウェブ・ブラウザに供給するステップをさらに含む、請求項２に記載の方法。
【請求項４】
ユーザに対して提示するために、記憶されている要求のリストを前記ウェブ・ブラウザに供給するステップと、
記憶された要求の前記リスト内の記憶されている要求のうちの１つの要求を選択するユーザ入力を受け入れるステップと、
前記ユーザ入力に基づいて、記憶されている要求のリストの中の選択された１つの要求に対する関連づけられた応答を前記ウェブ・ブラウザに供給するステップと
をさらに含む、請求項２に記載の方法。
【請求項５】
前記第１のコンピュータによって前記応答が受信されたときに、前記受信応答が入手可能であることを前記ユーザに通知するステップと、
前記ユーザが前記応答を要求した場合に、前記ウェブ・ブラウザに対して応答を供給するステップと
をさらに含む、請求項２に記載の方法。
【請求項６】
ウェブ・ブラウザからの要求を記憶する前記ステップが、
前記要求に関連づけられたＨＴＭＬフォームを記憶するステップと、
前記要求に関連づけられたユーザ入力を記憶するステップと、
前記記憶されたユーザ入力を前記記憶されたＨＴＭＬフォームに関連づけるステップと
を含む、請求項１に記載の方法。
【請求項７】
ユーザに対して提示するために、記憶された要求のリストを前記ウェブ・ブラウザに供給するステップと、
記憶された要求の前記リスト内の前記記憶された要求のうちの１つの要求を選択するユーザ入力を受け入れるステップと
をさらに含み、
前記再呼び出しするステップが、前記ユーザ入力によって選択された前記記憶された要求を再呼び出しすることを含む、請求項６に記載の方法。
【請求項８】
前記記憶された要求を再呼び出しするステップが、
前記要求に関連づけられた記憶されたフォームを再呼び出しするステップと、
前記要求に関連づけられた前記記憶されたユーザ入力を再呼び出しするステップと、
前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とをウェブ・ブラウザに供給し、それによって前記ユーザ入力を使用して前記フォームを再作成するようにするステップと
を含む、請求項７に記載の方法。
【請求項９】
前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とを供給する前記ステップが、
前記再呼び出しされたフォームを走査して前記再呼び出しされたフォーム内の名前指定されたフィールドを探すステップと、
前記再呼び出しされたユーザ入力を走査して前記ユーザ入力内の名前／値の対を探すステップと、
前記再呼び出しされたフォーム内の前記名前指定されたフィールドのデフォルト選択またはユーザ入力を、前記ユーザ入力からの一致する名前／値の対の値に置き換えるステップと
を含む、請求項８に記載の方法。
【請求項１０】
前記再呼び出しされた記憶済み要求に対する応答が前記第１のコンピュータに記憶されているかどうかを判断するステップと、
前記記憶済み応答を再呼び出しするためのハイパーリンクをユーザに提供するように、前記再呼び出しされたフォームに前記記憶済み応答へのリンクを付加するステップと
をさらに含む、請求項８に記載の方法。
【請求項１１】
前記ウェブ・ブラウザからの元の要求を改訂するユーザ入力を受け入れ、それによって前記ユーザ入力によって修正された前記元の要求に基づいて改訂された要求が供給されるようにするステップと、
前記改訂された要求を前記要求待ち行列に記憶するステップと
をさらに含む、請求項８に記載の方法。
【請求項１２】
前記改訂された要求を記憶する前記ステップが、前記要求待ち行列内の前記要求を前記改訂された要求に置き換えるステップを含む、請求項１１に記載の方法。
【請求項１３】
前記第１のコンピュータが、前記第２のコンピュータにリンクされているかどうかを判断するステップをさらに含み、
前記判断ステップによって前記第１のコンピュータが前記第２のコンピュータにリンクされていないと判断された場合、前記記憶するステップと前記供給するステップが行われる、請求項１に記載の方法。
【請求項１４】
第２のコンピュータに一時的および断続的に接続される第１のコンピュータで実行されているウェブ・ブラウザと第２のコンピュータ内のウェブ・サーバ間で通信するシステムであって、
前記第１のコンピュータはウェブ・ブラウザとクライアント側インタセプト・モジュールを有し、前記ウェブ・ブラウザは前記クライアント側インタセプト・モジュールと通信でき、
前記システムは、
前記第１のコンピュータが前記第２のコンピュータに接続されていない場合又は前記ウェブ・ブラウザからの要求に対する処理が後の時点まで据え置かれるように指示されている場合に、
前記クライアント側インタセプト・モジュール内の要求待ち行列に、前記第２のコンピュータのウェブ・サーバに対する前記ウェブ・ブラウザからの要求を記憶する手段と、
前記ウェブ・ブラウザからの前記要求に応答して、前記ウェブ・ブラウザに暫定応答を、前記クライアント側インタセプト・モジュールが供給する手段と、
前記クライアント側インタセプト・モジュールが前記第２のコンピュータに前記要求を供給する前に、前記記憶された要求を再呼び出しして前記記憶された要求のユーザ修正を行えるようにする手段と
を含むシステム。
【請求項１５】
前記第１のコンピュータが前記第２のコンピュータに接続されているときに、前記記憶された要求を該第２のコンピュータに送信する手段と、
前記第２のコンピュータを介して前記サーバからの要求に対する応答を受信する手段と、
前記要求に対する前記応答を前記第１のコンピュータに記憶する手段と、
前記記憶された要求に前記記憶された応答を関連づける手段と
をさらに含む、請求項１４に記載のシステム。
【請求項１６】
前記記憶された応答を前記ウェブ・ブラウザに供給する手段をさらに含む、請求項１５に記載のシステム。
【請求項１７】
ユーザに対して提示するために、記憶されている要求のリストを前記ウェブ・ブラウザに供給する手段と、
記憶された要求の前記リスト内の記憶されている要求のうちの１つの要求を選択するユーザ入力を受け入れる手段と、
前記ユーザ入力に基づいて、記憶されている要求のリストの中の選択された１つの要求に対する関連づけられた応答を前記ウェブ・ブラウザに供給する手段と
をさらに含む、請求項１５に記載のシステム。
【請求項１８】
前記第１のコンピュータによって前記応答が受信されたときに、前記受信応答が入手可能であることを前記ユーザに通知する手段と、
前記ユーザが前記応答を要求した場合に、前記ウェブ・ブラウザに対して応答を供給する手段と
をさらに含む、請求項１５に記載のシステム。
【請求項１９】
ウェブ・ブラウザからの要求を記憶する前記手段が、
前記要求に関連づけられたＨＴＭＬフォームを記憶する手段と、
前記要求に関連づけられたユーザ入力を記憶する手段と、
前記記憶されたユーザ入力を前記記憶されたＨＴＭＬフォームに関連づける手段と
を含む、請求項１４に記載のシステム。
【請求項２０】
ユーザに対して提示するために、記憶された要求のリストを前記ウェブ・ブラウザに供給する手段と、
記憶された要求の前記リスト内の前記記憶された要求のうちの１つの要求を選択するユーザ入力を受け入れる手段と
をさらに含み、
前記再呼び出しする手段が、前記ユーザ入力によって選択された前記記憶された要求を再呼び出しする、請求項１９に記載のシステム。
【請求項２１】
前記記憶された要求を再呼び出しする前記手段が、
前記要求に関連づけられた記憶されたフォームを再呼び出しする手段と、
前記要求に関連づけられた前記記憶されたユーザ入力を再呼び出しする手段と、
前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とをウェブ・ブラウザに供給し、それによって前記ユーザ入力を使用して前記フォームを再作成するようにする手段と
を含む、請求項２０に記載のシステム。
【請求項２２】
前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とを供給する前記手段が、
前記再呼び出しされたフォームを走査して前記再呼び出しされたフォーム内の名前指定されたフィールドを探す手段と、
前記再呼び出しされたユーザ入力を走査して前記ユーザ入力内の名前／値の対を探す手段と、
前記再呼び出しされたフォーム内の前記名前指定されたフィールドのデフォルト選択またはユーザ入力を、前記ユーザ入力からの一致する名前／値の対の値に置き換える手段と
を含む、請求項２１に記載のシステム。
【請求項２３】
前記再呼び出しされた記憶済み要求に対する応答が前記第１のコンピュータに記憶されているかどうかを判断する手段と、
前記記憶済み応答を再呼び出しするためのハイパーリンクをユーザに提供するように、前記再呼び出しされたフォームに前記記憶済み応答へのリンクを付加する手段と
をさらに含む、請求項２１に記載のシステム。
【請求項２４】
前記ウェブ・ブラウザからの元の要求を改訂するユーザ入力を受け入れ、それによって前記ユーザ入力によって修正された前記元の要求に基づいて改訂された要求が供給されるようにする手段と、
前記改訂された要求を前記要求待ち行列に記憶する手段と
をさらに含む、請求項２１に記載のシステム。
【請求項２５】
前記改訂された要求を記憶する前記手段が、前記要求待ち行列内の前記要求を前記改訂された要求に置き換える手段を含む、請求項２４に記載のシステム。
【請求項２６】
前記第１のコンピュータが前記第２のコンピュータにリンクされているかどうかを判断する手段をさらに含み、
前記判断手段によって前記第１のコンピュータが前記第２のコンピュータにリンクされていないと判断された場合、前記記憶する手段および前記供給する手段が要求の記憶および供給を行う、請求項１４に記載のシステム。
【請求項２７】
第２のコンピュータに一時的および断続的に接続される第１のコンピュータで実行されているウェブ・ブラウザと第２のコンピュータ内のウェブ・サーバ間で通信するコンピュータ可読プログラムを記録したコンピュータ可読記録媒体であって、
前記第１のコンピュータはウェブ・ブラウザとクライアント側インタセプト・モジュールを有し、前記ウェブ・ブラウザは前記クライアント側インタセプト・モジュールと通信でき、
前記第１のコンピュータが前記第２のコンピュータに接続されていない場合又は前記ウェブ・ブラウザからの要求に対する処理が後の時点まで据え置かれるように指示されている場合に、
前記クライアント側インタセプト・モジュール内の要求待ち行列に、前記第２のコンピュータのウェブ・サーバに対する前記ウェブ・ブラウザからの要求を記憶する手段、
前記ウェブ・ブラウザからの前記要求に応答して、前記ウェブ・ブラウザに暫定応答を、前記クライアント側インタセプト・モジュールが供給する手段、
前記クライアント側インタセプト・モジュールが前記第２のコンピュータに前記要求を供給する前に、前記記憶された要求を再呼び出しして前記記憶された要求のユーザ修正を行えるようにする手段
として機能させるためのコンピュータ可読プログラムを記録したコンピュータ可読記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、遠隔／モバイル・コンピューティングに関し、具体的には、ウェブ・ブラウザ／ウェブ・サーバ通信モデルを使用した遠隔／モバイル・コンピューティングに関する。
【０００２】
【従来の技術】
「情報スーパーハイウェイ」が宣伝され、力説されていることにより、インターネットがマスコミュニケーション媒体としてますます知られ、受け入れるようになった。このように、インターネットが複数のネットワーク間の通信と対話のための実現可能な媒体として広く認識されるようになったため、コンピュータ・ネットワーク間の対話のための、インターネット標準プロトコルに基づいて構築された大規模なユーザ基盤も確立されている。
【０００３】
インターネットのパラダイムはクライアント−サーバ関係のパラダイムであり、インターネット・クライアント（ブラウザ）がインターネット・サーバと通信する。インターネットへのアクセスを拡大するために、クライアントとサーバが使用する通信プロトコルと言語が標準化されている。これらのプロトコルには、クライアントとサーバとの間の通信に使用される通信プロトコルであるハイパーテキスト転送プロトコル（ＨＴＴＰ）と、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）が含まれる。ＴＣＰ／ＩＰのＴＣＰ部分は、コンピュータ間またはアプリケーション間の通信のためのトランスポート固有プロトコルである。ハイパーテキスト・マークアップ言語（ＨＴＭＬ）と呼ばれる、クライアントとサーバが通信する言語も標準化されている。
【０００４】
ワールド・ワイド・ウェブのクライアント／サーバ・アプリケーション環境では、クライアントはユーザ・インタフェースとして機能するウェブ・ブラウザとすることができる。ウェブ・ブラウザは適切なウェブ・サーバにユーザ要求を送り、ウェブ・サーバから返されたＨＴＭＬデータの形式設定と表示を行う。また、ウェブ・ブラウザは、ＨＴＭＬデータを評価して、ＨＴＭＬ内に埋め込まれたハイパーリンク・ステートメントがないかどうかを判断する。ハイパーリンク・ステートメントは、後でブラウザによって開始されることになるブラウザ要求を必要とする。ウェブ・サーバはクライアントのためにサーバとして機能し、ウェブ・ブラウザ要求を処理して要求された応答をＨＴＴＰデータ・ストリームのＨＴＭＬデータ部分として返す。
【０００５】
インターネットを使用するシステムの基本通信構造を図１に示す。図１では、ウェブ・ブラウザ１０が通信リンク１５を介してウェブ・サーバ２０と通信する。この通信リンクは、一般には、ローカル・エリア・ネットワーク接続、ワイド・エリア・ネットワーク接続、電話回線を介した接続、またはこれらの組合せである。ウェブ・ブラウザ１０は、ＴＣＰ／ＩＰを使用してウェブ・サーバ２０と通信する。インターネット通信の大半では、ウェブ・ブラウザが汎用通信プロトコルＨＴＴＰを使用してウェブ・サーバと通信する。ＨＴＴＰはウェブ・ブラウザとウェブ・サーバとの間のＴＣＰ／ＩＰリンクを介してウェブ・ブラウザとウェブ・サーバとの間で伝送される。ウェブ・ブラウザ１０とウェブ・サーバ２０との間で伝送される実際のデータは、前述のＨＴＴＰデータ・オブジェクト（たとえばＨＴＭＬデータ）である。ウェブ・サーバ２０は、いくつかのウェブ・ブラウザからブラウザ要求を受け取り、それらを適切なサーバに送るプロキシとすることもできる。
【０００６】
ウェブ・ブラウザ／ウェブ・サーバのとそれらの共通情報およびトランスポート・プロトコルであるＨＴＭＬおよびＨＴＴＰの普及の結果、ウェブ技法は情報にネットワーク・アクセスするための汎用インタフェースとして受け入れられるようになっている。さらに、ウェブ・ブラウザとウェブ・サーバとの間の通信のためのプロトコルおよび言語が標準化されているため、ユーザがネットワーク情報にアクセスするためにウェブ・ブラウザとして、Netscape NavigatorTM、NCSA MosaicTM、WebExplorerTM、またはその他のウェブ・ブラウザのいずれを使用しているかを問わず、通信プロトコルおよび言語は同じである。したがって、ウェブ・ブラウザの大規模なインストール済みユーザ基盤は、インターネットの接続可能性およびＨＴＴＰ定義の共通ゲートウェイ・インタフェース（ＣＧＩ）を使用したウェブ・アプリケーション・サーバの作成の容易さと相まって、ウェブ技法を大規模クラスのフォーム・ベース応用分野にとってきわめて魅力的な技法にしている。
【０００７】
インターネットが普及し、受け入れられるようになると同時に、モバイル・コンピューティングもますます普及するようになった。ラップトップ、ノートブック、パーソナル・ディジタル／通信アシスタンツ（ＰＤＡ／ＰＣＡ）およびその他の装置の使用により、無線通信の需要が伸びている。しかし、無線ワイド・エリア・ネットワーク、セルラ通信、およびパケット無線は、ウェブ環境で使用した場合に共通した限界がある。１バイト当たりの通信コストの高さ、遅い応答時間、低帯域幅、信頼性の低さはすべて、ワールド・ワイド・ウェブのステートレス通信プロトコルのために無線技法を使用することを妨げている。また、ウェブ・プロトコルはステートレスであるため、１要求当たりのデータ量と無線接続を介して伝送される通信要求の数は、通信が自立型でない場合に必要な数よりも多くなる。
【０００８】
さらに、ウェブ・ブラウズの基礎機構とプロトコルは、従来のネットワーク・モデルを念頭において開発された。これらの機構は、関与するコンピュータが高帯域幅で安価な信頼性の高いリンクを介して接続されているという暗黙の前提に基づいて開発された。しかし、有線ＬＡＮやＷＡＮ環境と異なり、モバイル・リンクは一般に低帯域幅でコストがかかり、信頼性が低い。モバイル接続の中には他のモバイル接続よりもましなものもある。たとえば単純なダイヤルアップ・モデムはパケット無線よりも高速で安価である。しかし、すべてＬＡＮよりは著しく遅い。また、モバイル接続は信頼性も低い。信号劣化、妨害物、およびその他の問題による通信切断が珍しくない。したがって、ＬＡＮ環境を対象としたウェブ・ブラウザなどのアプリケーションは、ネットワーク制約環境ではしばしばきわめてパフォーマンスが低い。
【０００９】
さらに、モバイル環境は、切断動作の問題を引き起こす。標準ウェブ・ブラウズ（および多くの既存のネットワーク化アプリケーション）は、切断は比較的まれなエラー事例であることを前提としている。クライアントがサーバから切断されると一般には操作ができない。
【００１０】
接続の弱さと切断の可能性によってさらに、移動性の問題、すなわちユーザの接続性の動的性質という第３の局面が生じる。一人のユーザが異なる時点で強く接続されたり（ＬＡＮ）、弱く接続されたり（セルラまたはその他のモバイル・リンク）、切断されたりする。
【００１１】
無線通信の特徴である資源制約的または信頼性の低い通信環境でブラウザを使用した場合、いくつかの要因によって使用可能度の低さとユーザ生産性の低下が生じる。第一に、ブラウザ・プロトコルは同期的である。すなわち、ユーザは要求が完了するまで待ってからでなければ他の要求を出すことができない。低速の無線伝送、インターネットまたはイントラネット・トラフィックの混在のために遅延が長くなると、ユーザは欲求不満になったり生産性が低下したりすることがある。
【００１２】
第二に、低速リンクまたは時間コスト・ベースのリンクを介した場合、同期要求／応答方式の当然のバースト性が重大な問題になることがある。有線ＬＡＮを介した場合、通常はサーバ応答時間が主な問題であるが、無線環境では一般には帯域幅と待ち時間が主要な要因である。（パケット無線ネットワークでの待ち時間は、数秒程度になることがある。）第三に、通常の同期要求／応答モデルは意図的切断または意図しない切断に直面するとまったく機能しない。要求をただちに満たすことができない場合、典型的にはエラー・コードが返され、ユーザは後でその要求を明示的に再試行しなければならない。
【００１３】
上述の説明に照らして、変化する通信パフォーマンスおよび信頼性レベルによって特徴づけられるモバイル・コンピューティング環境におけるウェブ・ブラウザ／ウェブ・サーバ動作を改良する必要がある。
【００１４】
【発明が解決しようとする課題】
以上の説明に鑑みて、本発明の目的は、接続の弱い環境または切断された環境においてブラウザ通信の同期的性質の影響を少なくすることである。
【００１５】
本発明の他の目的は、通信時間、待ち時間、またはその他の通信上の制約によってブラウザ／サーバ通信の応答性が低下する遠隔環境またはモバイル環境におけるブラウザの限界を克服することである。
【００１６】
本発明の他の目的は、環境の性質がユーザにとって透過なモバイル環境におけるブラウザ機能を提供することである。
【００１７】
本発明の他の目的は、モバイル環境で既存のブラウザを使用することができるように、接続状況をブラウザにとって透過にすることである。
【００１８】
【課題を解決するための手段】
本発明の上記およびその他の目的は、一時的および断続的に第２のコンピュータに接続される遠隔／モバイル処理システム上で実行されているウェブ・ブラウザとの通信方法、システム、およびコンピュータ・プログラム製品によって実現される。本発明によると、第２のコンピュータにとってアクセス可能なサーバ・アプリケーションに対するウェブ・ブラウザからの要求が、遠隔／モバイル処理システムにおける持続要求待ち行列に記憶される。ウェブ・ブラウザからの要求に応答してウェブ・ブラウザに暫定応答が送られる。サーバ・アプリケーションに送信するために第２のコンピュータに要求を供給する前に、記憶された要求を再呼び出しして、記憶済み要求をユーザが修正することができる。
【００１９】
さらに、遠隔／モバイル・データ処理システムが第２のコンピュータに接続されているときに記憶されている要求を第２のコンピュータに送信することができ、第２のコンピュータを介してサーバから要求に対する応答を受信することができる。要求に対する応答は、記憶されている要求に関連づけられた遠隔／モバイル処理システムで記憶することができる。記憶された応答はウェブ・ブラウザに供給することもできる。
【００２０】
要求を要求待ち行列に記憶し、ウェブ・ブラウザに暫定応答を供給することによって、ウェブ・ブラウザの非同期動作を実現することができる。さらに、接続が確立するまで要求を記憶しておくことによって、要求を再呼出して編集し、処理の前にユーザが要求に変更を加えることができるようにする。したがって、本発明は弱い接続の限界を克服する。さらに、低速環境では、本発明によって、ユーザはバックグラウンドで通信が行われている間に作業を続けることができる。
【００２１】
本発明の特定実施形態では、記憶されている要求のリストが、ユーザに提示するためにウェブ・ブラウザに供給される。記憶されている要求のリストの中の記憶済み要求の１つを選択するユーザ入力を受け入れ、そのユーザ入力に基づいて、記憶済み要求のリストのうちの選択された１つの記憶済み要求に対応する関連づけられた応答がウェブ・ブラウザに供給される。
【００２２】
他の実施形態では、遠隔／モバイル・データ処理システムが応答を受信すると、受信応答が入手可能であることがユーザに通知され、ユーザがその応答を要求した場合、ウェブ・ブラウザにその応答が供給される。
【００２３】
本発明の他の実施形態では、要求に関連づけられたＨＴＭＬフォームと、要求に関連づけられたユーザ入力が記憶される。記憶されたユーザ入力は、記憶されたＨＴＭＬフォームに関連づけられる。したがって、要求を作成した元のフォームとその要求のユーザ入力を記憶することによって、ユーザはその要求を再呼び出しして修正や確認を行うことができる。このような再呼出しは、記憶済み要求のリストをウェブ・ブラウザに供給してユーザに提示し、記憶済み要求のリスト内の記憶済み要求の１つを選択するユーザ入力を受け入れることによって実現することができる。次に、ユーザ入力によって選択された記憶済み要求を、要求が生成された元のフォームでユーザに供給することができる。
【００２４】
要求の元のフォームを、要求に関連づけられた記憶済みフォームと、要求に関連づけられた記憶済みユーザ入力を再呼出しすることによって生成することができる。次に、再呼出しされたフォームと再予備されたユーザ入力をウェブ・ブラウザに供給して、ユーザ入力によってそのフォームを作成し直すことができるようにする。再呼出しされたフォームとユーザ入力は、再呼出しされたフォームを走査して再呼出しされたフォーム内にある名前を指定されたフィールドを探し、再呼出しされたユーザ入力を走査してユーザ入力内にある名前／値の対を探すことによって結合することができる。次に、再呼出しされたフォーム内の名前指定されたフィールドのデフォルト選択またはユーザ入力を、ユーザ入力からの一致する名前／値の対の値に置き換えることができる。
【００２５】
本発明の他の実施形態では、再呼出しされた記憶済み要求に対する応答が遠隔／モバイル・データ処理システムに記憶されているかどうかを判断する。次に、再呼出しされたフォームに記憶済み応答へのリンクを提供して、記憶済み応答を再呼出しするためのハイパーリンクがユーザに提供されるようにすることができる。
【００２６】
さらに、ウェブ・ブラウザから元の要求を改訂するユーザ入力を受け入れ、それによってユーザ入力によって修正された元の要求に基づいて改訂された要求が供給されるようにすることができる。改訂された要求は次に要求待ち行列に記憶することができる。任意選択により、要求待ち行列内の要求を改訂された要求に置き換えることもできる。
【００２７】
本発明の他の実施形態では、遠隔／モバイル・データ処理システムが第２のコンピュータにリンクされているかどうかが判断される。このような実施形態では、遠隔／モバイル・データ処理システムが第２のコンピュータにリンクされていない場合にのみ要求が記憶される。
【００２８】
当業者ならさらによくわかるように、本発明は方法、装置／システム、またはコンピュータ可読プログラムを記録したコンピュータ可読記録媒体として実施することができる。
【００２９】
【発明の実施の形態】
以下に、本発明の好ましい実施形態が図示されている添付図面を参照しながら本発明について詳細に説明する。しかし本発明は、多くの異なる態様で実施可能であり、本明細書に記載の実施形態に限定されるものと解釈してはならない。これらの実施形態は、本開示を詳細で完全なものになり、本発明の範囲が当業者に十分に伝わるように示すものである。全体を通じて同様の番号は同様の要素を指す。当業者ならわかるように、本発明は方法としても装置としても実施可能である。したがって、本発明は完全にハードウェア実施形態、完全にソフトウェア実施形態、またはソフトウェア態様とハードウェア態様を組み合わせた実施形態の形を取ることができる。
【００３０】
図２に、本発明の一実施形態を示す。図２に示すように、ウェブ・ブラウザ１０はクライアント側インタセプト・モジュール３０と通信する。ウェブ・サーバ２０はサーバ側インタセプト・モジュール４０と通信する。次に、クライアント側インタセプト・モジュール３０は、通信リンク３５を介してサーバ側インタセプト・モジュール４０と通信する。ウェブ・ブラウザ１０とクライアント側インタセプト・モジュール３０は、第１のコンピュータ５内に含めることができる。サーバ側インタセプト・モジュール４０とウェブ・サーバ２０は第２のコンピュータ６内に含めることができる。第１のコンピュータ５と第２のコンピュータ６は外部通信リンク３５を介して通信する。第１のコンピュータ５は、遠隔／モバイル・データ処理システムであることが好ましい。本明細書で使用する「遠隔／モバイル」とは「一時的および断続的にリンクされる」ことを意味し、一時的とは「限定された時間のあいだ続くこと」を意味し、断続的とは「間隔をおいて行われたり終わったりすること、連続していないこと、または時折行われること」を意味する。遠隔／モバイル・データ処理システムには、ネットワークなどを介して他のシステムに遠隔アクセスするデータ処理システムも含めることができる。
【００３１】
ウェブ・ブラウザ１０はハイパーテキスト転送プロトコル（ＨＴＴＰ）およびハイパーテキスト・マークアップ言語（ＨＴＭＬ）を使用して、同じくＨＴＴＰおよびＨＴＭＬを使用するインターネット・ウェブ・サーバ２０と通信するインターネット・ウェブ・ブラウザであることが好ましい。動作中、ウェブ・ブラウザ１０はＨＴＴＰデータ・ストリームを出力し、それがクライアント側インタセプト・モジュール３０によってインタセプトされる。このクライアント側インタセプト・モジュール３０によるＨＴＴＰデータ・ストリームのインタセプトは、ＴＣＰ／ＩＰループバック機能を使用して行うことができ、クライアント側インタセプト・モジュール３０は１２７．０．０．１のようなネットワーク番号１２７を有するＩＰアドレスに常駐する。クライアント側インタセプト・モジュール３０は次にＨＴＴＰデータ・ストリームをクライアント／サーバ固有のプロトコルに変換または変形し、そのクライアント／サーバ固有データ・ストリームを外部通信リンク３５上に送出する。サーバ側インタセプト・モジュール４０がそのクライアント／サーバ固有データ・ストリームを受け取り、ウェブ・ブラウザ発信通信に対応する元のＨＴＴＰデータ・ストリームを再構築する。この再構築されたＨＴＴＰデータ・ストリームは次にウェブ・サーバ２０に転送される。ウェブ・サーバ２０は、インターネット・ウェブ・サーバの通常の方式でＨＴＴＰデータ・ストリームに応答する。当業者ならわかるように、ウェブ・サーバ２０はインターネットに複数のブラウザが接続できるようにするプロキシであってもよい。
【００３２】
ウェブ・サーバ２０が、たとえば特定のＵＲＬホーム・ページを求めるブラウザ要求に応答して、ウェブ・ブラウザ１０に送信する情報を受け取ると、ウェブ・サーバ２０はウェブ・ブラウザ１０に送る通信に対応するＨＴＴＰデータ・ストリームを出力する。このウェブ・サーバ発信通信は、サーバ側インタセプト・モジュール４０によってインタセプトされ、クライアント／サーバ固有データ・ストリームによって変換される。次に、ウェブ・サーバ発信通信に対応するクライアント／サーバ固有データ・ストリームは外部通信リンク３５で第２のコンピュータから第１のコンピュータに送信される。このクライアント／サーバ固有データ・ストリームをクライアント側インタセプト・モジュール３０が受け取り、サーバ発信通信に対応する元のＨＴＴＰデータ・ストリームが再構築され、ウェブ・ブラウザ１０に供給される。
【００３３】
本発明の特定の実施形態では、外部通信リンク３５は無線通信リンクである。この場合、ユーザにとって受容可能なシステム・パフォーマンスを達成するために、通信リンク３５で転送しなければならない通信の頻度と情報量の両方について、外部通信リンク３５を介した通信量を減らすことが望ましい。したがって、本発明はキャッシュ技法、差分表現技法、およびプロトコル削減技法を使用して、外部通信リンク３５を介する必要通信量を最小限にすることが好ましい。これらの技法は、ＨＴＴＰのステートレス・プロトコルまたは確率的プロトコルを、クライアントおよびサーバ固有の情報を使用するクライアント／サーバ固有プロトコルに変換して通信の量と頻度を減らすことによって実現される。
【００３４】
動作中、クライアント側インタセプト３０とサーバ側インタセプト４０はブラウザとウェブ（プロキシ）サーバの両方にとって透過であり、それ故にどのようなウェブ・ブラウザとでも使用することができる。ＳＳＩ４０とＣＳＩ３０は両方とも、グラフィック・オブジェクトおよびＨＴＭＬオブジェクトをキャッシュに入れる。ブラウザ要求のＵＲＬによって、ＣＳＩのキャッシュ内のオブジェクトが指定されている場合、それがブラウザ応答として即時に返される。このキャッシュ機能は、クライアント指定時間間隔内でキャッシュ整合性を保証する。ＳＳＩキャッシュには、要求されたウェブ・サーバからの応答が入れられる。ＣＳＩから受け取った要求ＵＲＬがＳＳＩでキャッシュに入れられている場合、それが要求に対応する応答として返される。
【００３５】
上記および下記では、本発明について単一のウェブ・ブラウザ・アプリケーションおよび単一のウェブ・サーバ・アプリケーションに関して説明するが、当業者ならわかるように、本発明の利点は単一のウェブ・サーバに付随する複数のウェブ・ブラウザでも得られる。したがって、本発明の方法、装置、およびプログラム製品は複数のブラウザと共に使用することができ、その場合、各ブラウザがクライアント側インタセプト・モジュールと通信し、次にそれらのクライアント側インタセプト・モジュールがウェブ・サーバまたはウェブ・プロキシのサーバ側インタセプト・モジュールと通信することになる。
【００３６】
さらに、本明細書では本発明についてクライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールの両方に関して説明するが、当業者ならわかるように、本発明に必要なのはクライアント側インタセプトだけである。したがって、本発明はクライアント側とサーバ側の両方のインタセプト・モジュールを有するシステムに限定されるものと解釈してはならない。
【００３７】
本発明は、前の要求がまだ完了していなくてもユーザが継続して要求を行うことができるようにする非同期要求および応答処理機能を備える。バックグラウンド処理のために要求は内部的に記録される。要求が完了すると、その結果の保管と状況の更新が非同期的に行われる。（任意選択により）要求が完了するとユーザに通知され、ユーザは随時、状況ページに切り替えて１つまたは複数の要求の状況を確認することができる。各要求の状況項目によって、要求の状態（未発行、処理中、または完了）が伝えられ、要求が完了した場合は状況項目に応答ページへのリンクが入れられる。
【００３８】
本発明は、サーバ・アプリケーションへのアクセスによって遠隔／モバイル・データ処理システムがコンピュータにリンクされていないときに切断状態動作も提供する。ユーザは、同期モードまたは非同期モードで操作することができる。いずれの場合も接続が失われたことが検出された場合、または通信不能な場合（たとえば信号範囲外）、要求を待ち行列に入れて保留にし、後で処理する。通信が再確立されると、待ち行列に入れられた要求がバックグラウンドで自動的に処理される。この機能によって、ユーザはオフラインで生産的を維持することができる。さらに、多くの場合、トランザクションに必要なすべてのページをローカル・キャッシュに記憶することができ、通信は不要である。以下に、これらの操作について図３および図４ないし図６のフローチャートを参照しながら説明する。
【００３９】
図３に、本発明の特定の実施形態を使用する遠隔／モバイル・データ処理システムを示す。図３に示すように、遠隔／モバイル・データ処理システム５は、遠隔／モバイル・データ処理システム５上で実行されるウェブ・ブラウザ１０などのアプリケーションを含む。ブラウザ１０からの要求はＨＴＴＰ要求インタセプタ３１によってインタセプトされ、要求待ち行列３２に入れられる。要求待ち行列３２内の要求はＨＴＴＰ要求待ち行列プロセッサ３３によって処理され、要求待ち行列プロセッサ３３は、要求で指定されているサーバにアクセスすることができる第２のコンピュータとの接続が確立されるとそれらの要求を行う。これらの要求が処理されると、各要求のサービス・スレッド３４が開始され、要求が実行される。要求に対する応答はキャッシュ３５に入れられ、要求を生成した要求待ち行列からの要求に関連づけられる。このような関連づけを図３で破線で示す。図３で要求待ち行列からキャッシュまでの実線は、要求項目と要求を作成するために使用されたフォームとの関連づけを表す。このような関連づけによって、要求が生成された後でもユーザによる要求の編集が可能になる。任意選択により、要求と応答の両方を待ち行列内の項目に関連づけ、それによって要求と応答の両方をユーザに提供できるようにすることもできる。
【００４０】
要求待ち行列３２は、ＨＴＴＰ要求インタセプタ３１がブラウザから受け取った要求を状況情報および制御情報と共にリストしたものである。各要求要素には、ブラウザから受け取ったすべての情報（ＨＴＴＰヘッダおよび本体）が含まれる。これによって、要求を後でネットワークに対して再実行することができる。各要求要素は、要求に付随する状態情報も保持する。これには、要求の処理中に行われた処理の進捗状況の要約と、これらから行う残りの作業のリストが含まれる。
【００４１】
要求待ち行列内の要求には特別な処理命令も関連づけられる。たとえば、無線環境では通常、ページに埋め込まれたグラフィックスをダウンロードするのは費用がかかり過ぎる。その要求についてグラフィックスが抑止されている場合、その処理制御情報が要求要素に組み込まれる。要求待ち行列はクライアント・セッション全体を通じて存続する。
【００４２】
内部的には、要求は１組の属性から成る。各属性は名前と値との対である。要求が作成されると、その要求にはブラウザ要求を含む属性が与えられる。処理が進むにつれて、その進捗状況やブラウザから返された状況情報などを記述する属性が追加される。進捗状況の表示など、ある種の属性は要求単位である。属性は待ち行列単位の場合もあり、その場合、待ち行列に追加されたすべての要素の処理を制御する。待ち行列単位の属性を使用して、要求の発行元または特性に基づいて異なる方法で要求を扱う複数の待ち行列をサポートする。したがって、本発明によると、複数の要求待ち行列を作成することができ、クライアント側インタセプトが要求を受信すると要求を適切な待ち行列に自動的に記憶したり、ユーザ入力によって要求を手動で記憶したりすることができる。
【００４３】
本発明では、同期オンライン処理用に設計されたブラウザなどのアプリケーションを使用したオフライン処理が可能なため、切断状態動作および非同期動作のために新しいユーザ・インタフェースが必要である。したがって、本発明によると、ユーザの要求をキャッシュから満たすことができる場合、応答をただちに提供し、標準ブラウザ・インタフェースは変更されないまま維持される。しかし、キャッシュ・ミス時には、本発明のオフライン処理に付随する機構およびインタフェースによってブラウザのセマンティクスを拡大することができる。
【００４４】
ブラウザは本発明に関しては不変のコードであるため、遠隔／モバイル・データ処理システムが非同期動作していたり、第２のコンピュータから切断されていてユーザの要求をキャッシュから満たすことができない場合、代替ページを返すことができる。このページには、何が起こったかを示す説明（「要求は後で処理するために待ち行列に入れられました」）が含まれ、要求された場合にはペンディング状態のすべての要求の現在の状況が表示される。ブラウザに関する限り、この代替ページは要求に対する応答であることに留意されたい。言い換えると、ブラウザは要求／応答機構を維持すると同時に、本発明を使用するインタセプト・モジュールは要求に対する応答の詳細を扱う。さらに、要求に対する応答として通知ページがブラウザに返されるという点で、切断状態の要求と非同期要求の両方に同じ機構を使用することができる。
【００４５】
あるいは、中間確認応答を提示するのではなく現行ページに戻るという選択肢も利用可能である。この選択肢は、ブラウザに対してコード２０４を返すことによって実施することができる。ユーザから見ると、リンクをクリックしてもブラウザは同じページ上のままであるが、本発明によるインタセプト・モジュールはバックグラウンドでその要求を待ち行列に入れる。
【００４６】
以下に、本発明について、本発明の一実施形態を示すフローチャートである図４ないし図６を参照しながら説明する。フローチャートの各ブロックおよびフローチャートの各ブロックの組合せは、コンピュータ・プログラム命令によって実施可能であることを理解されたい。これらのプログラム命令をプロセッサに送って、プロセッサ上で実行される命令が、フローチャートの１つまたは複数のブロックで指定されている機能を実施する手段を生じさせるように機械を作り出すことができる。コンピュータ・プログラム命令をプロセッサによって実行し、プロセッサによって一連の操作ステップが行われるようにし、プロセッサ上で実行される命令がフローチャートの１つまたは複数のステップに指定されている機能を実施するステップを実現するようにコンピュータ実施プロセスを作り出すことができる。
【００４７】
したがって、フローチャートのブロックは、指定されている機能を実行する手段の組合せと、指定されている機能を実行するステップの組合せと、指定されている機能を実行するプログラム命令手段とをサポートする。また、フローチャートの各ブロックおよびフローチャートの各ブロックの組合せは、指定されている機能またはステップを実行する専用ハードウェア・ベース・システムによっても、専用ハードウェアとコンピュータ命令との組合せによっても実施可能であることを理解されたい。
【００４８】
図４に、本発明を使用するクライアント側インタセプトの動作を示す。図４に示すように、クライアント側インタセプト３０はブラウザ１０からの要求をインタセプトする（ブロック５０）。次に、クライアント側インタセプトはその要求に対する応答がキャッシュに入っているかどうかを判断し（ブロック５２）、入っている場合はそのキャッシュ内の応答がウェブ・ブラウザに返される（ブロック５４）。
【００４９】
応答がキャッシュに入れられていない場合、クライアント側インタセプトはデータ処理システムがサーバにアクセスする第２のコンピュータに接続されているかどうかを判断する（ブロック５６）。データ処理システムが接続されている場合、要求が据え置きでなければ（ブロック５８）、その要求は第２のコンピュータに送られる（ブロック６０）。しかし、データ処理システムが接続されていないか、要求処理が据え置かれる場合、要求は要求待ち行列に記憶され、その要求に対する応答として暫定応答がブラウザに送られる（ブロック６２）。
【００５０】
待ち行列化された要求の処理は、クライアント側インタセプト内の他のどの活動からも独立して実行されるスレッドによって扱われる。待ち行列上の要求は通常、先入れ先出し（ＦＩＦＯ）方式で扱われる。しかし、選択された要求を
保留要求としてマークすることができ、すべての新しい要求が保留される（ブロック５８）。これによって、ユーザは接続が使用可能な場合であってもこれらの要求に対する処理が後の時点まで据え置かれるように指示することができる。たとえば、要求によっては特定のリンク上で扱うには費用がかかり過ぎるものがある場合があり、したがってユーザはＬＡＮやダイヤルアップ接続が使用可能になるまでそれらの処理を据え置く方を選択することになる。保留属性は、クライアントを最初に始動させたときに残っている未処理の待ち行列化された要求があればそれにも適用される。これによって、安価なリンクから潜在的にそれよりはるかに高価な無線リンクに切り替わるときの驚きを回避することができる。
【００５１】
図４に示すように、待ち行列化された要求を処理する最初のステップは、要求するサーバにアクセスすることができる第２のコンピュータとの接続を獲得することである（ブロック６４）。最初に要求を受け取ると、接続を獲得する試みが行われ、接続が確立されない場合（ブロック６６）、待ち行列プロセッサによって、またはその他の活動のために接続が行われるまで、試行を続ける（ブロック７０およびブロック６４）。指数関数バックオフ手続きを使用して接続試行間の遅延を制御する（ブロック６８）。したがって、接続試行間の時間は試行回数が増えるにつれて長くなる。このバックオフ手続きによって、障害が長期にわたる場合にネットワークに負担をかけることなく、通信障害が一時的なときに応答性が得られる。
【００５２】
接続が確立されると、ブラウザから元々保管され、要求待ち行列に記憶されていた情報を使用して要求を再構成し、その要求を第２のコンピュータに送る（ブロック７２）。この時点で、要求はサーバにとってはブラウザから直接送られてきたかのように見える。無線リンクにおける障害のために要求が失敗した場合（ブロック７４）、後で後続の試行が行われる。要求の再試行によって一時的な通信障害が隠蔽される。他のタイプの障害も記録されて後でユーザに返される。
【００５３】
図５に、前に待ち行列に入れられていた要求に対する応答を受け取るときの、クライアント側インタセプト・モジュールの動作を示す。図５に示すように、サーバから応答を受け取る（ブロック８０）。しかし、現在、ウェブ・ページではグラフィックス、アプレット、およびその他の埋込みがほとんど一般的に使用されている。ユーザがこの情報の表示を求めた場合、返されたページを解析して埋込みを探す（ブロック８２）。次に各埋込みを取り出し（ブロック８４）、元の応答と共にキャッシュに追加する（ブロック８６）。この応答に、要求が関連づけられ、応答と共に返される状況情報がその要求に関連づけられる（ブロック８８）。この時点で要求は完了し、それが使用可能であることをユーザに通知することができる（ブロック９０）。
【００５４】
本発明は、透過なＨＴＴＰプロキシを提供するため、どのようなブラウザと共にでも機能する。バックグラウンド処理の待ち行列要求はブラウザが期待するモデルとは一致せず、したがってブラウザにはＨＴＭＬまたはＨＴＴＰコードを介した暫定的な応答が返され、それによってブラウザとユーザは処理を続行することができる（図４のブロック６２を参照）。同様に、ＨＴＭＬページと埋込みＨＴＭＬ情報を使用して状況を報告し、ブラウザの独立を維持することができる。
【００５５】
未処理要求の状況は、幾通りの方法でも報告することができ、これには任意選択の完了ポップアップや、返されるウェブ・ページの最上部に埋め込まれた任意選択の状況バー、待ち行列の状態をまとめたＨＴＭＬページ上の報告などが含まれる。
【００５６】
ポップアップによって、バックグラウンド・ページ上で見ることができる新たに完了したページがあることをユーザに知らせ、そのページのＵＲＬをリストする。このようなポップアップの一つは、新しい情報が最初に入手可能になったとときに生成され、それ以上のメッセージはユーザがそのページを訪れて情報を見るまで抑止される。これによってユーザは高速リンク上で混乱することなく非同期の完了通知を受け取ることができる。
【００５７】
ユーザは、返される各ページ内にクライアント側インタセプトの状態を説明する状況バーを埋め込むことを選択することもできる。この状況バーには、完了した要求の数、未処理要求の数、保留要求の数に関する情報が含まれる。また、新しい結果が入手可能になったことを説明するポップアップのテキスト版や、生成された様々な状況ページへのリンクも含まれる。
【００５８】
このようなリンクの１つによって、ユーザは要求の状態を要約したページに行くことができる。そのページには、１つの要求について１行ずつ待ち行列が表示される。各要求は、以下のような交通信号灯のモデルなどの可視標識を使用して要求処理の進捗状況を示すグラフィック表現を含む。
・  赤：要求が送信された
・  黄：基本ページを受信し、埋込みは未処理
・  緑：要求完了
グラフィックスは、赤は白抜きの円、黄色は半月、緑は中実の球など、色のほかに明確に区別できる外見を有することもできる。エラーの場合（たとえば要求が送られたが基本ページを取り出すことができなかった場合など）、交通信号記号全体の上にＸを配置することもできる。
【００５９】
状況グラフィックスに加えて、要求を削除するか保留するかを選択する選択肢も表示することもできる。フォームの場合、ユーザは要求を表示したり再編集したりすることもできる。要求が完了した場合、キャッシュに入れられた結果へのリンクもこのページに含めることができる。
【００６０】
バックグラウンド待ち行列およびその他の内部生成ページへのＵＲＬ方式のアクセスを可能にするために、クライアント側インタセプトのドメイン名（たとえばartour.web.express）もその他のオプションと適切に組み合わせて使用することができる。たとえば、バックグラウンド待ち行列には、http://artour.web.express/HTEP/というＵＲＬを使用してアクセスすることができる。標準ブラウザは未知のプロトコルを拒否する可能性があるため、そのような要求について固有プロトコル名を定義するよりもＨＴＴＰと予約名の方が好ましい。
【００６１】
ユーザに要求処理の進捗状況を報告することもできる。要求は、処理されるにつれて、受け渡しから始まり、処理の開始、初期ページの取り出し、そして最後に完了と、一連の状態を通過して進む。要求がある状態に移行すると、その移行を記述するイベントを内部イベント・マネージャに送ることができる。内部イベント・マネージャは要求の状況を受け取り、状況情報を他の構成要素またはアプリケーションに転送する。他の構成要素は、イベント・マネージャに登録し、イベントの状態およびその他の基準によってふるいにかけられたイベントを受け取ることができる。イベントの処理を使用してクライアント側インタセプトとの動的なインタフェースを生成することができる。このようなイベントの一使用例は、ポップアップ通知である。
【００６２】
応答を受け取った後、その応答はユーザが将来オフラインで見ることができるように保管する必要がある。しかし、ブラウザは要求を行って応答を受け取るときに、一般にそれを２通りの方法のうちのいずれかで処理する。応答が比較的静的であると予測される場合、そのページに対する将来の要求を迅速に処理することができるように、その応答はブラウザによってキャッシュに入れられる。しかし、そのページがフォーム要求に対する応答の場合、またはその他の方法で生成された場合（いわゆる「cgi-bin」要求）、ブラウザは応答を表示するだけで、キャッシュには入れない。これは、その応答が一般に１つのcgi-bin要求と次のcgi-bin要求とでは異なるためである。また、ソース・サーバが「キャッシュなし」とマークしたオブジェクトについては、その指示に従うブラウザおよびプロキシはそれらの項目を保管しない。しかし、待ち行列化された要求の処理の一環として取り出された場合には、それを後で表示するために保管しなければならない。
【００６３】
これらの通常は一時的なオブジェクトは、ユーザ・データという新しい範疇のキャッシュ情報として保管される（ブロック８６）。これらは、ユーザ要求に応答して取り出されたデータであり、その要求の文脈でのみ意味を持つ。通常のウェブ・データとは異なり、ユーザ・データ・オブジェクトには、待ち行列状況ページ上の応答としてのみアクセスすることができる。これらは時間や要求に左右される一時的な応答であるため、他の要求を処理するためには使用されない。ユーザ・データは、キャッシュの管理に使用される通常のコヒーレンシ・アルゴリズムやエージング・アルゴリズムの対象とはならない。ユーザ・データはユーザによって削除されるまで存続し、有効である。
【００６４】
ウェブ・ページ設計者は、単純な対話しか必要としないデータ入力用のＨＴＭＬフォームを使用することが多い。ＨＴＭＬフォーム・タグは、ウェブ対話用の電子フォームを作成するための便利な方法である。ＨＴＭＬフォーム・タグによって、ウェブ・ユーザはリストからの選択、ボックスのチェックのオン／オフ、ラジオ・ボタンからの選択、テキスト・フィールドや広い複数行テキスト領域へのテキストの入力、アクション・ボタンを押すなどの操作を行うことができる。ユーザがアクション・ボタンを押すと、名前／値の対を使用してそのアクションによって指定された入力データがウェブ・サーバに送られる。各名前は入力フィールドを表し、各値はフィールドへのユーザ入力値を表す。さらに、ウェブ・サーバがフォームと共に送る事前設定値を保持する隠れフィールドがある場合もある。これらの隠れ値は可視フィールド内の値と共にサーバに送り戻される。
【００６５】
あらゆるＨＴＭＬページと同様に、将来の使用のためにＨＴＭＬフォームをキャッシュに入れることができる。本発明によると、キャッシュに入れられたＨＴＭＬフォームを編集して後で発信したり、異なるユーザ入力値を使用して再発信することができる。たとえば、検索入力フォームを何度も編集して異なる検索要求を送出することができる。同様に、入院フォームなどのイントラネット・データ入力フォームを編集してデータ入力エラーを修正したり、異なる患者の新規データを再発信したりすることができる。ほとんどのフォームは、単純なワンフォーム対話モデルを有するか、または自己完結型隠れフィールドを含み、それによってウェブ・アプリケーションが発信を別々に受け入れることができるため、将来独立して発信するように有意義にキャッシュに入れることができる。
【００６６】
モバイル環境では、サーバに接続できないときでも切断フォーム送信によってユーザの生産性を高めることができる。これによって、どのネットワークにも接続せずに複数のデータ入力ページに記入することができる。また、本発明の再編集機能を使用して、ユーザは２、３件のフォームの原稿を作成し、それを最終的にサーバに送る前に見直し、承認、または編集することができる。
【００６７】
前述のように、フォームはどのようなＨＴＭＬページとしても扱うことができ、図４の操作を行って、記入済みフォームに対応する要求待ち行列内の項目を作成することができる。通常のＨＴＭＬページと同様に、ユーザはＵＲＬを使用してキャッシュに入っているＨＴＭＬフォームを入手する。ユーザはフォームに記入し、それをアクション・ボタンの１つを使用して発信する。フォームが発信されると、名前／値の対が提供元フォームＵＲＬと共に記憶され、待ち行列に入れられる。ユーザが同じＵＲＬフォームを再び要求し、新しい結果を発信した場合、その新しい発信は前の発信とは別にされる。接続が使用可能になったときに自動的に発信されるように、すべての発信は待ち行列内の別個の項目としてカウントされる。これらの項目は、ユーザが削除するまで記憶されている。
【００６８】
図６に、本発明を使用したフォームの再編集プロセスを示す。この再編集は、図４の待ち行列内のフォームを使用する。図６に示すように、待ち行列内の使用可能なフォームのリストがブラウザに供給され（ブロック１００）、待ち行列項目を選択するユーザ入力が入手される（ブロック１０２）。ユーザにＨＴＭＬページを提示し、ハイパーリンクを使用してアクセス可能な待ち行列内の項目を表示することができる。
【００６９】
ユーザ入力に基づいて、待ち行列化された要求を生成するために使用されたフォームのＵＲＬに対応するフォームを、ローカル・キャッシュから入手する（ブロック１０４）。フォームの提供元を示す、前に挿入されたデータに基づいて基本フォームを取り出すことができる。サーバから空白のフォームを最初に取り出すとき、クライアント側インタセプトはＨＴＭＬに隠れ値を挿入してからそのページをブラウザに返す。この隠れ情報には、供給元ＵＲＬとページ内のフォーム番号とが含まれる。フォームを再編集するために、要求に要求を生成したフォームを関連づけるために要求と共に要求待ち行列に記憶されているフォームのＵＲＬに含まれる隠れ値を使用して、空白フォームを取り出す。
【００７０】
フォームと待ち行列に入れられた要求を走査して名前／値の対を突き合わせる（ブロック１０６）。一致が見つかった場合、そのユーザ発信を反映するようにデフォルトの選択値または入力値を変更する（ブロック１０８）。複数のＨＴＭＬフォームから成るウェブ・ページは異なるサブフォームで同じフィールド名を使用している可能性があるため特別な注意を払う必要がある。したがって、本発明によると、サブフォームには固有の識別子が割り当てられて追跡され、それによって適切なフォームを再呼出しして元の要求を作成し直すことができる。次に、元の入力フォームとデータを再構築する。要求に対する応答をすでに受け取っている場合（ブロック１１０）、任意選択により、発信ボタンをその応答へのリンクに置き換え、それによってユーザが発信の結果を見ることができるようにすることもできる（ブロック１１２）。応答を受け取っていない場合は、再構築された要求をブラウザに供給してユーザが編集できるようにする（ブロック１１４）。再発信する場合、既存の待ち行列項目を新しいデータで上書きするか、あるいは任意選択により、ユーザは待ち行列内の新しい項目を供給することを選択することができる。このような機能を使用すれば、ユーザは記入済みのフォームをテンプレートとして使用して、類似データを使用する追加の要求を、わずかな追加入力だけで作成することができる。
【００７１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００７２】
（１）  第２のコンピュータに一時的かつ断続的に接続される第１のコンピュータで実行されているウェブ・ブラウザと第２のコンピュータ内のウェブ・サーバ間で通信する方法であって、
前記第１のコンピュータはウェブ・ブラウザとクライアント側インタセプト・モジュールを有し、前記ウェブ・ブラウザは前記クライアント側インタセプト・モジュールと通信でき、
前記方法は、
前記第１のコンピュータが前記第２のコンピュータに接続されていない場合又は前記ウェブ・ブラウザからの要求に対する処理が後の時点まで据え置かれるように指示されている場合に、
前記クライアント側インタセプト・モジュール内の要求待ち行列に、前記第２のコンピュータのウェブ・サーバに対する前記ウェブ・ブラウザからの要求を記憶するステップと、
前記ウェブ・ブラウザからの前記要求に応答して、前記ウェブ・ブラウザに暫定応答を、前記クライアント側インタセプト・モジュールが供給するステップと、
前記クライアント側インタセプト・モジュールが前記第２のコンピュータに前記要求を供給する前に、前記記憶された要求を再呼び出しして前記記憶された要求のユーザ修正を行えるようにするステップと
を含む方法。
（２）  前記第１のコンピュータが前記第２のコンピュータに接続されているときに、前記記憶された要求を該第２のコンピュータに送信するステップと、
前記第２のコンピュータを介して前記サーバからの要求に対する応答を受信するステップと、
前記要求に対する前記応答を前記第１のコンピュータに記憶するステップと、
前記記憶された要求に前記記憶された応答を関連づけるステップと
をさらに含む、（１）に記載の方法。
（３）  前記記憶された応答を前記ウェブ・ブラウザに供給するステップをさらに含む、（２）に記載の方法。
（４）  ユーザに対して提示するために、記憶されている要求のリストを前記ウェブ・ブラウザに供給するステップと、
記憶された要求の前記リスト内の記憶されている要求のうちの１つの要求を選択するユーザ入力を受け入れるステップと、
前記ユーザ入力に基づいて、記憶されている要求のリストの中の選択された１つの要求に対する関連づけられた応答を前記ウェブ・ブラウザに供給するステップと
をさらに含む、（２）に記載の方法。
（５）  前記第１のコンピュータによって前記応答が受信されたときに、前記受信応答が入手可能であることを前記ユーザに通知するステップと、
前記ユーザが前記応答を要求した場合に、前記ウェブ・ブラウザに対して応答を供給するステップと
をさらに含む、（２）に記載の方法。
（６）  ウェブ・ブラウザからの要求を記憶する前記ステップが、
前記要求に関連づけられたＨＴＭＬフォームを記憶するステップと、
前記要求に関連づけられたユーザ入力を記憶するステップと、
前記記憶されたユーザ入力を前記記憶されたＨＴＭＬフォームに関連づけるステップと
を含む、（１）に記載の方法。
（７）  ユーザに対して提示するために、記憶された要求のリストを前記ウェブ・ブラウザに供給するステップと、
記憶された要求の前記リスト内の前記記憶された要求のうちの１つの要求を選択するユーザ入力を受け入れるステップと
をさらに含み、
前記再呼び出しするステップが、前記ユーザ入力によって選択された前記記憶された要求を再呼び出しすることを含む、（６）に記載の方法。
（８）  前記記憶された要求を再呼び出しするステップが、
前記要求に関連づけられた記憶されたフォームを再呼び出しするステップと、
前記要求に関連づけられた前記記憶されたユーザ入力を再呼び出しするステップと、
前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とをウェブ・ブラウザに供給し、それによって前記ユーザ入力を使用して前記フォームを再作成するようにするステップと
を含む、（７）に記載の方法。
（９）  前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とを供給する前記ステップが、
前記再呼び出しされたフォームを走査して前記再呼び出しされたフォーム内の名前指定されたフィールドを探すステップと、
前記再呼び出しされたユーザ入力を走査して前記ユーザ入力内の名前／値の対を探すステップと、
前記再呼び出しされたフォーム内の前記名前指定されたフィールドのデフォルト選択またはユーザ入力を、前記ユーザ入力からの一致する名前／値の対の値に置き換えるステップと
を含む、（８）に記載の方法。
（１０）  前記再呼び出しされた記憶済み要求に対する応答が前記第１のコンピュータに記憶されているかどうかを判断するステップと、
前記記憶済み応答を再呼び出しするためのハイパーリンクをユーザに提供するように、前記再呼び出しされたフォームに前記記憶済み応答へのリンクを付加するステップと
をさらに含む、（８）に記載の方法。
（１１）  前記ウェブ・ブラウザからの元の要求を改訂するユーザ入力を受け入れ、それによって前記ユーザ入力によって修正された前記元の要求に基づいて改訂された要求が供給されるようにするステップと、
前記改訂された要求を前記要求待ち行列に記憶するステップと
をさらに含む、（８）に記載の方法。
（１２）  前記改訂された要求を記憶する前記ステップが、前記要求待ち行列内の前記要求を前記改訂された要求に置き換えるステップを含む、（１１）に記載の方法。
（１３）  前記第１のコンピュータが、前記第２のコンピュータにリンクされているかどうかを判断するステップをさらに含み、
前記判断ステップによって前記第１のコンピュータが前記第２のコンピュータにリンクされていないと判断された場合、前記記憶するステップと前記供給するステップが行われる、（１）に記載の方法。
（１４）  第２のコンピュータに一時的および断続的に接続される第１のコンピュータで実行されているウェブ・ブラウザと第２のコンピュータ内のウェブ・サーバ間で通信するシステムであって、
前記第１のコンピュータはウェブ・ブラウザとクライアント側インタセプト・モジュールを有し、前記ウェブ・ブラウザは前記クライアント側インタセプト・モジュールと通信でき、
前記システムは、
前記第１のコンピュータが前記第２のコンピュータに接続されていない場合又は前記ウェブ・ブラウザからの要求に対する処理が後の時点まで据え置かれるように指示されている場合に、
前記クライアント側インタセプト・モジュール内の要求待ち行列に、前記第２のコンピュータのウェブ・サーバに対する前記ウェブ・ブラウザからの要求を記憶する手段と、
前記ウェブ・ブラウザからの前記要求に応答して、前記ウェブ・ブラウザに暫定応答を、前記クライアント側インタセプト・モジュールが供給する手段と、
前記クライアント側インタセプト・モジュールが前記第２のコンピュータに前記要求を供給する前に、前記記憶された要求を再呼び出しして前記記憶された要求のユーザ修正を行えるようにする手段と
を含むシステム。
（１５）  前記第１のコンピュータが前記第２のコンピュータに接続されているときに、前記記憶された要求を該第２のコンピュータに送信する手段と、
前記第２のコンピュータを介して前記サーバからの要求に対する応答を受信する手段と、
前記要求に対する前記応答を前記第１のコンピュータに記憶する手段と、
前記記憶された要求に前記記憶された応答を関連づける手段と
をさらに含む、（１４）に記載のシステム。
（１６）  前記記憶された応答を前記ウェブ・ブラウザに供給する手段をさらに含む、（１５）に記載のシステム。
（１７）  ユーザに対して提示するために、記憶されている要求のリストを前記ウェブ・ブラウザに供給する手段と、
記憶された要求の前記リスト内の記憶されている要求のうちの１つの要求を選択するユーザ入力を受け入れる手段と、
前記ユーザ入力に基づいて、記憶されている要求のリストの中の選択された１つの要求に対する関連づけられた応答を前記ウェブ・ブラウザに供給する手段と
をさらに含む、（１５）に記載のシステム。
（１８）  前記第１のコンピュータによって前記応答が受信されたときに、前記受信応答が入手可能であることを前記ユーザに通知する手段と、
前記ユーザが前記応答を要求した場合に、前記ウェブ・ブラウザに対して応答を供給する手段と
をさらに含む、（１５）に記載のシステム。
（１９）  ウェブ・ブラウザからの要求を記憶する前記手段が、
前記要求に関連づけられたＨＴＭＬフォームを記憶する手段と、
前記要求に関連づけられたユーザ入力を記憶する手段と、
前記記憶されたユーザ入力を前記記憶されたＨＴＭＬフォームに関連づける手段と
を含む、（１４）に記載のシステム。
（２０）  ユーザに対して提示するために、記憶された要求のリストを前記ウェブ・ブラウザに供給する手段と、
記憶された要求の前記リスト内の前記記憶された要求のうちの１つの要求を選択するユーザ入力を受け入れる手段と
をさらに含み、
前記再呼び出しする手段が、前記ユーザ入力によって選択された前記記憶された要求を再呼び出しする、（１９）に記載のシステム。
（２１）  前記記憶された要求を再呼び出しする前記手段が、
前記要求に関連づけられた記憶されたフォームを再呼び出しする手段と、
前記要求に関連づけられた前記記憶されたユーザ入力を再呼び出しする手段と、
前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とをウェブ・ブラウザに供給し、それによって前記ユーザ入力を使用して前記フォームを再作成するようにする手段と
を含む、（２０）に記載のシステム。
（２２）  前記再呼び出しされたフォームと前記再呼び出しされたユーザ入力とを供給する前記手段が、
前記再呼び出しされたフォームを走査して前記再呼び出しされたフォーム内の名前指定されたフィールドを探す手段と、
前記再呼び出しされたユーザ入力を走査して前記ユーザ入力内の名前／値の対を探す手段と、
前記再呼び出しされたフォーム内の前記名前指定されたフィールドのデフォルト選択またはユーザ入力を、前記ユーザ入力からの一致する名前／値の対の値に置き換える手段と
を含む、（２１）に記載のシステム。
（２３）  前記再呼び出しされた記憶済み要求に対する応答が前記第１のコンピュータに記憶されているかどうかを判断する手段と、
前記記憶済み応答を再呼び出しするためのハイパーリンクをユーザに提供するように、前記再呼び出しされたフォームに前記記憶済み応答へのリンクを付加する手段と
をさらに含む、（２１）に記載のシステム。
（２４）  前記ウェブ・ブラウザからの元の要求を改訂するユーザ入力を受け入れ、それによって前記ユーザ入力によって修正された前記元の要求に基づいて改訂された要求が供給されるようにする手段と、
前記改訂された要求を前記要求待ち行列に記憶する手段と
をさらに含む、（２１）に記載のシステム。
（２５）  前記改訂された要求を記憶する前記手段が、前記要求待ち行列内の前記要求を前記改訂された要求に置き換える手段を含む、（２４）に記載のシステム。
（２６）  前記第１のコンピュータが前記第２のコンピュータにリンクされているかどうかを判断する手段をさらに含み、
前記判断手段によって前記第１のコンピュータが前記第２のコンピュータにリンクされていないと判断された場合、前記記憶する手段および前記供給する手段が要求の記憶および供給を行う、（１４）に記載のシステム。
（２７）  第２のコンピュータに一時的および断続的に接続される第１のコンピュータで実行されているウェブ・ブラウザと第２のコンピュータ内のウェブ・サーバ間で通信するコンピュータ可読プログラムを記録したコンピュータ可読記録媒体であって、
前記第１のコンピュータはウェブ・ブラウザとクライアント側インタセプト・モジュールを有し、前記ウェブ・ブラウザは前記クライアント側インタセプト・モジュールと通信でき、
前記第１のコンピュータが前記第２のコンピュータに接続されていない場合又は前記ウェブ・ブラウザからの要求に対する処理が後の時点まで据え置かれるように指示されている場合に、
前記クライアント側インタセプト・モジュール内の要求待ち行列に、前記第２のコンピュータのウェブ・サーバに対する前記ウェブ・ブラウザからの要求を記憶する手段、
前記ウェブ・ブラウザからの前記要求に応答して、前記ウェブ・ブラウザに暫定応答を、前記クライアント側インタセプト・モジュールが供給する手段、
前記クライアント側インタセプト・モジュールが前記第２のコンピュータに前記要求を供給する前に、前記記憶された要求を再呼び出しして前記記憶された要求のユーザ修正を行えるようにする手段
として機能させるためのコンピュータ可読プログラムを記録したコンピュータ可読記録媒体。
【図面の簡単な説明】
【図１】典型的なウェブ・ブラウザ／ウェブ・サーバ・システムを示すブロック図である。
【図２】クライアント・インタセプトおよびサーバ・インタセプトを使用する、本発明の一実施形態によるウェブ・ブラウザ／ウェブ・サーバ・システムを示すブロック図である。
【図３】本発明による遠隔／モバイル・データ処理システムを示すブロック図である。
【図４】本発明による切断動作または据置き処理動作を示すフローチャートである。
【図５】本発明による、遠隔／モバイル・データ処理システムにおけるブラウザ要求に対する応答の受信に付随する動作を示すフローチャートである。
【図６】本発明による、要求の改訂に付随する動作を示すフローチャートである。
【符号の説明】
５  第１のコンピュータ
６  第２のコンピュータ
１０  ウェブ・ブラウザ
１５  通信リンク
２０  ウェブ・サーバ
３０  クライアント側インタセプト・モジュール
３１  ＨＴＴＰ要求インタセプタ
３２  要求待ち行列
３３  ＨＴＴＰ要求待ち行列プロセッサ
３４  サービス・スレッド
３５  通信リンク
４０  サーバ側インタセプト・モジュール
【図１】
0004233638.tif 000002
【図２】
0004233638.tif 000003
【図３】
0004233638.tif 000004
【図４】
0004233638.tif 000005
【図５】
0004233638.tif 000006
【図６】
0004233638.tif 000007