(57)【要約】      （修正有）【課題】第１のコンピュータからは遠隔の第２のコンピュータ上にあるサーバ・アプリケーションと通信するクライアント・アプリケーションを有するクライアント／サーバ・システムのパフォーマンスを向上させる方法、装置、プログラムを提供する。【解決手段】ウェブ・ブラウザ１０はクライアント側インタセプト・モジュール３０と通信する。ウェブ・サーバ２０はサーバ側インタセプト・モジュール４０と通信する。次にクライアント側インタセプト・モジュール３０が通信リンク３５を介してサーバ側インタセプト・モジュール４０と通信する。ウェブ・ブラウザ１０とクライアント側インタセプト・モジュール３０は、第１のコンピュータ５に組み込むことができる。サーバ側インタセプト・モジュール４０とウェブ・サーバ２０は第２のコンピュータ６に組み込むことができる。第１のコンピュータ５と第２のコンピュータ６は外部通信リンク３５を介して通信する。【選択図】図２
2004164630.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記第２のコンピュータに前記クライアント／サーバ固有データ・ストリームとして送信するステップと、
前記外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを受信するステップと、
前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・ブラウザからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップと、
前記ウェブ・ブラウザによって発信された前記通信を、前記ウェブ・サーバにＨＴＴＰデータ・ストリームとして供給するステップと
を含み、
前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップと
をさらに含み、
前記格納するステップが、クライアント・キャッシュ項目の作成時刻を格納して、クライアント・キャッシュ項目時間レコードを作成するステップをさらに含み、
前記問い合わせするステップが、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が、前記ウェブ・ブラウザが前記情報を要求する前の所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記供給するステップが、前記判断するステップによってクライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合、前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給するステップを含む、方法。
【請求項２】
前記送信するステップが、前記変換されたウェブ・ブラウザ発信通信を、無線通信リンクを介して送信するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在する場合には、前記変換するステップ、前記送信するステップ、前記受信するステップ、前記再構築するステップ、および前記供給するステップの代わりに、
前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給するステップを行う、請求項１に記載の方法。
【請求項４】
前記第１のコンピュータ内にある前記ユーザ定義情報を提供するために、特定のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された前記情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断するステップと、
をさらに含み、
前記問い合わせするステップによって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応すると判断された場合に、前記供給するステップが、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップを含み、
前記ユーザ定義格納情報がウェブ・ブラウザに供給される場合に、前記送信するステップ、前記受信するステップ、および前記再構築するステップの代わりに前記問い合わせするステップが行われる、請求項１に記載の方法。
【請求項５】
前記通信リンクを介して、前記第１のコンピュータから前記ユーザ定義情報を受信するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ要求キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目が前記キャッシュに前に格納されているかどうかを判断するステップと、
前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップと、
前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信するステップと、及び
前記外部通信リンクを介して送信された前記クライアント／サーバ固有データ・ストリームを入手するステップと
をさらに含み、
前記再構築するステップが、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記サーバ要求キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記供給するステップが、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップを含む、請求項１に記載の方法。
【請求項８】
ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ要求キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信を評価して、前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が存在するかどうかを判断するステップと、
前記ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクでクライアント／サーバ固有データ・ストリームを送信することによって、前記外部通信リンクを介して前記第１のコンピュータに前記サーバ要求キャッシュ項目を送信するステップと、
前記第２のコンピュータによって前記外部通信リンクを介して送信された前記クライアント／サーバ特定データを入手するステップと
をさらに含み、
前記再構築するステップが、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、サーバ・キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記供給するステップが、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送するステップを含む、請求項１に記載の方法。
【請求項９】
前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記変換するステップが、前記判断するステップによって前記サーバ要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップを含む、請求項８に記載の方法。
【請求項１０】
前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じ前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップをさらに含み、
前記変換するステップが、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点とウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の間隔を計算して項目エージ・データを供給するステップを含み、
前記送信するステップが、前記ウェブ・ブラウザ発信通信に対応する前記サーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして前記外部通信リンクを介して前記第１のコンピュータに送信するステップを含み、
前記再構築するステップが、前記第１のコンピュータの現在時刻からコヒーレント項目応答から受け取った項目エージ・データを引くことによって、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目時間レコードを更新するステップを含み、
前記供給するステップが、前記外部通信リンクからコヒーレント項目応答を受け取った場合に、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目として格納されたＨＴＴＰデータ・ストリームをウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送するステップを含む、請求項８に記載の方法。
【請求項１１】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記ウェブ・サーバに前記クライアント／サーバ固有データ・ストリームとして送信するステップと
を含み、
前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップと
をさらに含み、
前記格納するステップが、クライアント・キャッシュ項目の作成時刻を格納して、クライアント・キャッシュ項目時間レコードを作成するステップをさらに含み、
前記問い合わせするステップが、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記供給するステップが、前記判断するステップによってクライアント・キャッシュ項目が前記ウェブ・ブラウザが情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に応答してクライアント・キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップを含む、方法。
【請求項１２】
前記送信するステップが、前記変換されたウェブ・ブラウザ発信通信を無線通信リンクを介して送信するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在する場合には、前記変換するステップおよび前記送信するステップの代わりに、
前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給するステップを行う、請求項１１に記載の方法。
【請求項１４】
前記第１のコンピュータ内にある前記ユーザ定義情報が提供するために、固有のウェブ・ブラウザ情報に関連づけられたユーザ定義情報を格納するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断するステップと、
前記問い合わせするステップによって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応していると判断された場合に、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップとをさらに含み、
前記ユーザ定義格納情報を前記ウェブ・ブラウザに供給する場合、前記問い合わせするステップおよび前記供給するステップの代わりに前記送信するステップが行われる、請求項１１に記載の方法。
【請求項１５】
前記通信リンクを介して前記第１のコンピュータから前記ユーザ定義情報を受信するステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持するステップをさらに含む、請求項１１に記載の方法。
【請求項１７】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・サーバ発信通信を前記ウェブ・ブラウザに前記クライアント／サーバ固有データ・ストリームとして送信するステップと
を含み、
ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ要求キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信をインタセプトして、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目がキャッシュに前に格納されているかどうかを判断するステップとをさらに含み、
前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記変換するステップが、前記判断するステップによって前記サーバ要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔で作成されたと判断された場合に前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップを含む、方法。
【請求項１８】
前記変換するステップが、前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップを含み、
前記送信するステップが、前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信するステップを含む、請求項１７に記載の方法。
【請求項１９】
前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じ前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップをさらに含み、
前記変換するステップが、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点と前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間間隔を計算して項目エージ・データを供給するステップを含み、
前記送信するステップが、前記ウェブ・ブラウザ発信通信に対応する前記サーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして外部通信リンクを介して第１のコンピュータに送信するステップを含む、請求項１８に記載の方法。
【請求項２０】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上させる装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記第２のコンピュータに前記クライアント／サーバ固有データ・ストリームとして送信する手段と、
前記外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを受信する手段と、
前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・ブラウザからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段と、
前記ウェブ・ブラウザによって発信された前記通信を、前記ウェブ・サーバにＨＴＴＰデータ・ストリームとして供給する手段と
を含み、
前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成する手段と、
前記ウェブ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段と、
ウェブ・ブラウザ発信通信に応答してウェブ・ブラウザにクライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給する手段と
を含み、
前記格納手段が、クライアント・キャッシュ項目の作成時刻を格納して、クライアント・キャッシュ項目時間レコードを作成する手段をさらに含み、
前記問い合わせする手段が、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が、前記ウェブ・ブラウザが前記情報を要求する前の所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記供給する手段が、前記判断手段によってクライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合、前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給する手段を含む、装置。
【請求項２１】
前記送信する手段が、前記変換されたウェブ・ブラウザ発信通信を、無線通信リンクを介して送信する手段をさらに含む、請求項２０に記載の装置。
【請求項２２】
前記第１のコンピュータ内にある前記ユーザ定義情報が提供するために、特定のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された前記情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断する手段と、
をさらに含み、
前記問い合わせする手段によって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応すると判断された場合に、前記供給する手段が、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段を含む、請求項２０に記載の装置。
【請求項２３】
前記通信リンクを介して、前記第１のコンピュータから前記ユーザ定義情報を受信する手段をさらに含む、請求項２０に記載の装置。
【請求項２４】
前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持する手段をさらに含む、請求項２０に記載の装置。
【請求項２５】
前記ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ要求キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目が前記キャッシュに前に格納されているかどうかを判断する手段と、
前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段と、
前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信する手段と、及び
及び外部通信リンクを介して送信された及びクライアント／サーバ固有データ・ストリームを入手する手段と
をさらに含み、
前記再構築する手段が、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記サーバ要求キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段を含み、
前記供給する手段が、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段と
を含む、請求項２０に記載の装置。
【請求項２６】
ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ要求キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信を評価して、前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が存在するかどうかを判断する手段と、
前記ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクでクライアント／サーバ固有データ・ストリームを送信することによって、前記外部通信リンクを介して前記第１のコンピュータに前記サーバ要求キャッシュ項目を送信する手段と、
前記第２のコンピュータによって前記外部通信リンクを介して送信された前記クライアント／サーバ固有データ・ストリームを入手する手段と
をさらに含み、
前記再構築する手段が、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、サーバ・キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段を含み、
前記供給する手段が、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送する手段と
を含む、請求項２０に記載の装置。
【請求項２７】
前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータがウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記変換する手段が、前記判断する手段によって前記サーバ要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段をさらに含む、請求項２６に記載の装置。
【請求項２８】
前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段をさらに含み、
前記変換する手段が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点とウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間の間隔を計算して項目エージ・データを供給する手段を含み、
前記送信する手段が、前記ウェブ・ブラウザ発信通信に対応する前記サーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして前記外部通信リンクを介して前記第１のコンピュータに送信する手段を含み、
前記再構築する手段が、前記第１のコンピュータの現在時刻からコヒーレント項目応答から受け取った項目エージ・データを引くことによって、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャシュ項目時間レコードを更新する手段を含み、
前記供給する手段が、前記外部通信リンクからコヒーレント項目応答を受け取った場合に、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目として格納されたＨＴＴＰデータ・ストリームをウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送する手段を含む、請求項２６に記載の装置。
【請求項２９】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上させる装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクリンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記ウェブ・サーバに前記クライアント／サーバ固有データ・ストリームとして送信する手段と
を含み、
前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段と、
前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給する手段と
を含み、
前記格納する手段が、クライアント・キャッシュ項目の作成時刻を格納してクライアント・キャッシュ項目時間レコードを作成する手段をさらに含み、
前記問い合わせ手段が、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記供給する手段が、前記判断する手段によってクライアント・キャッシュ項目が前記ウェブ・ブラウザが情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に応答してクライアント・キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段を含む、装置。
【請求項３０】
前記送信する手段が、前記変換されたウェブ・ブラウザ発信通信を無線通信リンクを介して送信する手段を含む、請求項２９に記載の装置。
【請求項３１】
前記第１のコンピュータ内にある前記ユーザ定義情報が提供するために、固有のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断する手段と、
前記問い合わせする手段によって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応していると判断された場合に、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段と
をさらに含む、請求項２９に記載の装置。
【請求項３２】
前記通信リンクを介して前記第１のコンピュータから前記ユーザ定義情報を受信する手段をさらに含む、請求項３１に記載の装置。
【請求項３３】
前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持する手段をさらに含む、請求項２９に記載の装置。
【請求項３４】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・サーバ発信通信を前記ウェブ・ブラウザに前記クライアント／サーバ固有データ・ストリームとして送信する手段と
を含み、
ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納してサーバ要求キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信をインタセプトして、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目がキャッシュに前に格納されているかどうかを判断する手段とをさらに含み、
前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータがウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記変換する手段が、前記判断手段によって前記サーバと要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔で作成されたと判断された場合に前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段を含む、装置。
【請求項３５】
前記変換する手段が、前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段を含み、
前記送信する手段が、前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信する手段を含む、請求項３４に記載の装置。
【請求項３６】
前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じ前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段をさらに含み、
前記変換する手段が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点と前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間間隔を計算して項目エージ・データを供給する手段を含み、
前記送信する手段が、前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして外部通信リンクを介して第１のコンピュータに送信する手段を含む、請求項３５に記載の装置。
【請求項３７】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記第２のコンピュータに前記クライアント／サーバ固有データ・ストリームとして送信するステップと、
前記外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを受信するステップと、
前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・ブラウザからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップと、
前記ウェブ・ブラウザによって発信された前記通信を、前記ウェブ・サーバにＨＴＴＰデータ・ストリームとして供給するステップと
を含み、
前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記方法が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を供給するステップと、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を供給するステップと、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成するステップと、
ＣＧＩに対する要求であるブラウザ発信通信に応答して前記ウェブ・ブラウザに供給されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータにあるキャッシュに格納して、クライアント・ベース・キャッシュ項目を作成するステップと、
前記インタセプトされたＣＧＩ要求に応答して前記ウェブ・サーバによって発信された前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで前記ＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記インタセプトされたＣＧＩ要求を前記サーバＣＧＩベース書式と比較して、前記インタセプトされたＣＧＩ応答とサーバＣＧＩベース書式との差分に対応するＣＧＩ差分データを供給するステップと、
前記ウェブ・ブラウザに対する送信前記ＣＧＩ差分データを前記外部通信リンクを介して前記第１のコンピュータに、クライアント／サーバ固有データ・ストリームとして送信するステップと、
前記第２のコンピュータによって送信された前記外部通信リンクを介して伝送された前記クライアント／サーバ固有データ・ストリームを入手するステップと
をさらに含む、方法。
【請求項３８】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・サーバ発信通信を前記ウェブ・ブラウザに前記クライアント／サーバ固有データ・ストリームとして送信するステップと
を含み、
前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記方法が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を提供するステップと、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成するステップと
をさらに含む、方法。
【請求項３９】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上させる装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記第２のコンピュータに前記クライアント／サーバ固有データ・ストリームとして送信する手段と、
前記外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを受信する手段と、
前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・ブラウザからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段と、
前記ウェブ・ブラウザによって発信された前記通信を、前記ウェブ・サーバにＨＴＴＰデータ・ストリームとして供給する手段と
を含み、
前記インタセプトされたウェブ・ブラウザ発信通信がインタセプトされたＣＧＩ要求であり、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を供給する手段と、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を供給する手段と、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成する手段と、
ＣＧＩに対する要求であるブラウザ発信通信に応答して前記ウェブ・ブラウザに供給されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータにあるキャッシュに格納して、クライアント・ベース・キャッシュ項目を作成する手段と、
前記インタセプトされたＣＧＩ要求に応答して前記ウェブ・サーバによって発信された前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで前記ＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記インタセプトされたＣＧＩ要求を前記サーバＣＧＩベース書式と比較して、前記インタセプトされたＣＧＩ応答とサーバＣＧＩベース書式との差分に対応するＣＧＩ差分データを供給する手段と、
前記ウェブ・ブラウザに対するＣＧＩ差分データを前記外部通信リンクを介して前記第１のコンピュータに、クライアント／サーバ固有データ・ストリームとして送信する手段と、
前記第２のコンピュータによって送信された前記外部通信リンクを介して伝送された前記クライアント／サーバ固有データ・ストリームを入手する手段と
をさらに含む、装置。
【請求項４０】
第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・サーバ発信通信を前記ウェブ・ブラウザに前記クライアント／サーバ固有データ・ストリームとして送信する手段と
を含み、
前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記装置が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を提供する手段と、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成する手段と
をさらに含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ・ブラウザとウェブ・サーバ間などのクライアント・サーバ・アプリケーション間の通信に関する。具体的には、本発明は、一方のコンピュータがクライアント・アプリケーションを稼働させ、他方のコンピュータがサーバ・アプリケーションを稼働させている２台のコンピュータ間の低速通信または無線通信リンクを介した通信に関する。
【背景技術】
【０００２】
最近、「情報スーパーハイウェイ」に関して宣伝され、重要視されていることにより、マスコミュニケーション媒体としてのインターネットがますます知られ、受け入れられるようになってきた。複数のネットワークにまたがる通信と対話のための実現可能な媒体としてインターネットがこのように広く認識されるようになったことにより、コンピュータ・ネットワーク間の対話のためのインターネット標準化プロトコルに基づく大規模なユーザ基盤も確立されている。
【０００３】
インターネットのパラダイムは、インターネット・クライアント（ブラウザ）がインターネット・サーバと通信するクライアント−サーバ関係のパラダイムである。インターネットへのアクセスを拡大するために、クライアントとサーバが使用する通信プロトコルと言語が標準化されるようになった。これらのプロトコルには、クライアントとサーバの間の通信に使用される通信プロトコルであるハイパーテキスト転送プロトコル（ＨＴＴＰ）と、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）がある。ＴＣＰ／ＩＰのＴＣＰ部分は、コンピュータ間またはアプリケーション間の通信のためのトランスポート固有のプロトコルである。クライアントとサーバが通信する言語も標準化されており、これはハイパーテキスト・マークアップ言語（ＨＴＭＬ）と呼ばれる。これらのプロトコルと言語は機械から独立しており、コネクションレスの最善のプロトコルを使用して情報を送信し、各トランザクションは完全に自己完結している。したがって、たとえば、クライアントからの各メッセージにはブラウザの機能に関する情報が含まれ、通信を完結させるために他のどの通信からも独立している。クライアントとサーバの間の通信のこの自己完結性は「ステートレス」通信と呼ばれることがあり、これは所与の通信のためにクライアントとサーバの間で伝送しなければならないデータの量を増大させる。
【０００４】
ワールド・ワイド・ウェブのクライアント／サーバ・アプリケーションの関連では、ユーザ・インタフェースとして機能するウェブ・ブラウザがクライアントであろう。ウェブ・ブラウザは適切なウェブ・サーバにユーザ要求を送り、ウェブ・サーバから返されたＨＴＭＬデータのフォーマットと表示を行う。また、ウェブ・ブラウザはＨＴＭＬデータを評価して、ブラウザが発行する後続のブラウザ要求を必要とすることになるハイパーリンク・ステートメントがＨＴＭＬデータに埋め込まれていないかどうかを判断する。ウェブ・サーバはクライアントのためのサーバの役割を果たし、ウェブ・ブラウザ要求を処理し、要求された応答をＨＴＴＰデータ・ストリームのＨＴＭＬデータ部分として返す。
【０００５】
典型的なワールド・ワイド・ウェブ通信の例として、ウェブ・ブラウザがウェブ・サーバに対して「ホーム・ページ」を求める要求を出す事例を用いて、ＨＴＴＰとＨＴＭＬとＴＣＰとウェブ・ブラウザとウェブ・サーバとの間の基本的な関係を例示する。ウェブ・ブラウザのユーザが特定のウェブ・サイトに対して情報を要求すると、ウェブ・ブラウザはウェブ・サーバに所望のウェブ・サイト（この例では「ホーム・ページ」）のユニバーサル・リソース・ロケータ（ＵＲＬ）を指定する「ｇｅｔ」要求を送ることによって、ウェブ・サーバの通信を開始する。ＵＲＬはウェブ・サイトのアドレスの役割を果たし、インターネット全体を通じて固有である。次にウェブ・サーバは、ＵＲＬで指定されたホーム・ページに対応するＨＴＭＬデータを入手してウェブ・ブラウザに供給する。この操作には、インターネット・ウェブ・サーバによるインターネット上での通信がさらに必要となったり、ブラウザが接続しているローカル・ネットワーク内にあるサーバをＵＲＬによって指定する必要がある場合がある。次にウェブ・ブラウザはウェブ・サーバからＨＴＴＰデータ・ストリームとして受け取ったＨＴＭＬデータを評価して、アイコンやイメージなどのハイパーリンクが埋め込まれていないかどうかを調べ、そのようなハイパーリンクがある場合は、そのハイパーリンクのＵＲＬを指定する要求を出して、指定されたデータを入手する。このデータはホーム・ページに組み込まれ、ユーザに対して表示されることになる。この単純な例でわかるように、ウェブ・ブラウザによる１つのユーザ入力要求の結果、ユーザ要求に対応するＨＴＭＬデータの受信に応答してウェブ・ブラウザが自動的に複数の追加の要求を行うことになる。
【０００６】
インターネット・ベースのシステムの基本的な通信構造を第１図に示す。第１図では、ウェブ・ブラウザ１０が通信リンク１５を介してウェブ・サーバ２０と通信する。この通信リンクは典型的にはローカル・エリア・ネットワーク接続、ワイド・エリア・ネットワーク接続、電話回線による接続、または各種接続方法の組合せである。ウェブ・ブラウザ１０はＴＣＰ／ＩＰを使用してウェブ・サーバ２０と通信する。インターネット通信では一般に、ウェブ・ブラウザは、ウェブ・ブラウザとウェブ・サーバの間のＴＣＰ／ＩＰリンクを介してウェブ・ブラウザとウェブ・サーバの間で伝送される汎用通信プロトコルＨＴＴＰを使用して、ウェブ・サーバと通信する。ウェブ・ブラウザ１０とウェブ・サーバ２０の間で伝送される実データは前述のＨＴＴＰデータ・オブジェクト（たとえばＨＴＭＬデータ）である。ウェブ・サーバ２０はいくつかのウェブ・ブラウザからウェブ・ブラウザ通信を受け取り、それらを適切なサーバにルーティングするプロキシとすることもできる。
【０００７】
ウェブ・ブラウザ／ウェブ・サーバと、それらの共通の情報とトランスポート・プロトコルであるＨＴＭＬとＨＴＴＰの普及によって、ウェブ技法が情報へのネットワーク・アクセスのための汎用インタフェースとして急速に受け入れられるようになった。さらに、ウェブ・ブラウザとウェブ・サーバの間の通信のためのプロトコルと言語が標準化されているため、ユーザがネットワーク情報にアクセスするためのウェブ・ブラウザとしてＮｅｔｓｃａｐｅＮａｖｉｇａｔｏｒＴＭ、ＮＣＳＡ、ＭｏｓａｉｃＴＭ、ＷｅｂＥｘｐｌｏｒｅｒＴＭ、または他のどのブラウザを使用するかを問わず、通信プロトコルおよび言語は同じになる。したがって、ウェブ・ブラウザの大規模なインストール済みユーザ基盤と、インタフェースの接続性と、ＨＴＴＰ定義の共通ゲートウェイ・インタフェース（ＣＧＩ）を使用したウェブ・アプリケーション・サーバの作成の容易さとが組合わさって、ウェブ技法を大規模なクラスの書式ベース・アプリケーションにとってきわめて魅力的なものにしている。
【０００８】
インタフェースの普及と受け入れの拡大と同時に、移動体コンピューティングも普及している。ラップトップ、ノートブック、パーソナル・ディジタル／通信アシスタント（ＰＤＡ／ＰＣＡ）およびその他の携帯用装置の使用によって、無線通信の需要が増大している。しかし、無線ワイド・エリア・ネットワーク、セルラ通信、およびパケット無線には、ウェブの環境で使用した場合に共通の制約がある。１バイト当たりの高い通信コストと、遅い応答時間と、低帯域幅と、信頼性のなさはすべて、ワールド・ワイド・ウェブのステートレス通信プロトコルに無線技法を使用するのを阻害している。また、ウェブ・プロトコルはステートレスであるため、１要求当たりのデータ量と無線接続を介して伝送される要求の数は、通信が自己完結型でない場合に必要となる量と数よりも大きい。したがって、無線技法またはいずれかの低速通信技法をウェブ技法と組み合わせることは、ウェブ技法の汎用的性質の強さによって無線技法の弱点がさらにひどくなるため実際的ではないと思われる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記の制約に鑑みて、本発明の目的は、無線通信などの低速通信環境においてワールド・ワイド・ウェブ技法のインストール済みユーザ基盤を利用することである。
【００１０】
本発明の他の目的は、ウェブ・ブラウザまたはウェブ・サーバのアプリケーションに変更を加える必要なしに低速または無線通信システムにおいて既存の通信プロトコルおよび言語を使用することである。
【００１１】
本発明の他の目的は、必要な通信量を減らし、それによって通信システムのパフォーマンスを向上させる、外部通信リンクを介した通信方法を提供することである。
【課題を解決するための手段】
【００１２】
上記およびその他の目的に鑑みて、本発明は、第１のコンピュータ上にあり、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して第１のコンピュータからは遠隔の第２のコンピュータ上にあるウェブ・サーバ・アプリケーションと通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上させる方法を提供する。第１のコンピュータにおけるウェブ・ブラウザ・アプリケーションと第２のコンピュータにおけるウェブ・サーバ・アプリケーションとの間の通信の少なくとも１つのセグメントは外部通信リンクを介して行われる。本発明の方法の一実施例は、ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、外部通信リンクで送信される前にインタセプトすることを含む。ウェブ・ブラウザによって開始されたインタセプトされたＨＴＴＰデータ・ストリームを、ＨＴＴＰプロトコルからクライアント／サーバ固有の通信プロトコルに変換し、変換されたウェブ・ブラウザ発信通信をクライアント／サーバ固有のデータ・ストリームとして外部通信リンクを介して第２のコンピュータに送信する。第２のコンピュータは、外部通信リンクを介して送られたクライアント／サーバ固有データ・ストリームを受け取り、クライアント／サーバ固有通信プロトコルで受け取ったクライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、外部通信リンクを介して受け取ったクライアント／サーバ固有データ・ストリームから、ウェブ・ブラウザからの通信に対応するＨＴＴＰデータ・ストリームを再構築する。ウェブ・ブラウザによって発信された通信はＨＴＴＰデータ・ストリームとしてウェブ・サーバに供給される。
【００１３】
本発明の他の実施例では、変換されたウェブ・ブラウザ発信通信は無線通信リンクを介して伝送される。
【００１４】
第１のコンピュータ内にあるキャッシュを使用する本発明の他の態様は、ウェブ・サーバとのウェブ・ブラウザ発信通信に応答してウェブ・ブラウザが受け取るＨＴＴＰデータ・ストリームを、第１のコンピュータにあるキャッシュに格納し、ウェブ・サーバとのウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成するステップをさらに含む。ウェブ・ブラウザ発信通信に問い合わせて、ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目があるかどうかを判断する。ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目がある場合、ウェブ・ブラウザ発信通信に応答してそのクライアント・キャッシュ項目がＨＴＴＰデータ・ストリームとしてウェブ・ブラウザに供給される。
【００１５】
本発明の他の態様は、特定のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納して、第１のコンピュータ内にあるユーザ定義情報が供給されるようにするステップを含む。ウェブ・ブラウザ発信通信に問い合わせて、ウェブ・ブラウザによって要求された情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断し、ウェブ・ブラウザ通信がユーザ提示情報が格納されている要求に対応している場合は、ウェブ発信通信に応答してそのユーザ定義格納情報をＨＴＴＰデータ・ストリームとしてウェブ・ブラウザに供給する。
【００１６】
時間コヒーレント・キャッシュを使用する本発明の他の実施例は、クライアント・キャッシュ項目の作成時刻を格納してクライアント・キャッシュ項目時間レコードを作成するステップと、クライアント・キャッシュ項目時間レコードを評価してウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目がウェブ・ブラウザが情報を要求する前の所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップとを含む。クライアント・キャッシュ項目がウェブ・ブラウザが情報を要求する前の所定のクライアント・コヒーレンシ時間間隔内に作成された場合は、ウェブ・ブラウザ発信通信に応答してクライアント・キャッシュ項目がＨＴＴＰデータ・ストリームとしてウェブ・ブラウザに供給される。クライアント・キャッシュ項目はウェブ・ブラウザの複数のインスタンスにわたって維持することもできる。
【００１７】
本発明の他の態様は、ブラウザ発信通信に応答してウェブ・サーバから受け取ったＨＴＴＰデータ・ストリームを第２のコンピュータ内のキャッシュに格納してサーバ要求キャッシュ・項目を作成するサーバ・キャッシュを含む。ウェブ・ブラウザ発信通信に問い合わせて、ブラウザ発信通信に対応するサーバ要求キャッシュ項目が前にキャッシュに格納されているかどうかを判断する。サーバ・キャッシュ項目が存在する場合、ブラウザ発信通信に関連づけられたサーバ・キャッシュ項目がクライアント／サーバ固有通信プロトコルに変換され、外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして第１のコンピュータに送られる。第１のコンピュータは、外部リンクを介して送られたクライアント／サーバ固有データ・ストリームを入手し、クライアント／サーバ固有通信プロトコルで受け取ったクライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、外部通信リンクを介して受け取ったクライアント／サーバ固有データ・ストリームからクライアント／サーバ固有データ・ストリームからサーバ要求キャッシュ項目に対応するＨＴＴＰデータ・ストリームを再構築する。ウェブ・ブラウザが受け取った情報に対応するサーバ要求キャッシュ項目は、ＨＴＴＰデータ・ストリームとしてウェブ・ブラウザに供給される。
【００１８】
本発明のキャッシュ態様の他の実施例は、ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が第２のコンピュータがウェブ・ブラウザ発信通信を受け取る前の所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップと、サーバ要求キャッシュ項目が所定のクライアント・コヒーレンシ時間間隔内に作成された場合は、ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップとを含む。他の実施態様は、ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップを含む。第２のコンピュータがウェブ・ブラウザ発信通信を受け取った時点とウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間間隔を計算して項目エージ・データを求める。２つのキャッシュ項目が同じ場合は、ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目の項目エージ・データを含むコヒーレント項目応答を外部通信リンクを介して第１のコンピュータに送る。ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目時間レコードは、第１のコンピュータの現在時刻から、コヒーレント項目応答から受け取った項目エージ・データを差し引くことによって更新される。
【００１９】
差分を計算して外部通信リンク上のデータを削減する本発明の実施例では、ウェブ・ブラウザ発信通信は共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応する。インタセプトされたＣＧＩ要求に問い合わせて、インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を提供する。インタセプトされたＣＧＩ要求に問い合わせて、インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかも判断し、サーバＣＧＩベース書式を提供する。共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答してウェブ・サーバから受け取ったＨＴＴＰデータ・ストリームを第２のコンピュータにあるキャッシュに格納してサーバ・ベース・キャッシュ項目を作成し、ＣＧＩに対する要求であるブラウザ発信通信に応答してウェブ・ブラウザに提供されるＨＴＴＰデータ・ストリームを第１のコンピュータにあるキャッシュに格納してクライアント・ベース・キャッシュ項目を作成する。インタセプトされたＣＧＩ要求に応答してウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、外部通信リンクで伝送される前にインタセプトする。インタセプトされたＣＧＩ応答をサーバＣＧＩベース書式と比較して、インタセプトされたＣＧＩ応答とサーバＣＧＩベース書式との差に対応するＣＧＩ差分データを求め、そのＣＧＩ差分データを外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして第１のコンピュータのウェブ・ブラウザに送る。第２のコンピュータによって外部通信リンクを介して送られたクライアント／サーバ固有データ・ストリームを第１のコンピュータが獲得し、クライアントＣＧＩベース書式を外部通信リンクを介して受け取ったＣＧＩ差分データと結合してインタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、ウェブ・サーバからの通信に対応するＨＴＴＰデータ・ストリームが外部通信リンクを介して受信したクライアント／サーバ固有データ・ストリームから再構築される。ウェブ・サーバによって発信された通信はウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給される。
【００２０】
本発明の差分計算態様のベース変更計算実施例は、サーバＣＧＩベース書式がクライアントＣＧＩベース書式と同じかどうかを判断し、サーバＣＧＩベース書式とＣＧＩ差分データを外部通信リンクを介してクライアント／サーバ固有データ・ストリームとしてウェブ・ブラウザに送る。サーバＣＧＩベース書式を、外部通信リンクを介して受け取ったＣＧＩ差分データと結合してインタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、外部通信リンクを介して受け取ったクライアント／サーバ固有データ・ストリームから、ウェブ・サーバからの通信に対応するＨＴＴＰデータ・ストリームを再構築する。ＣＧＩ要求に対応するクライアントＣＧＩベース書式は、受け取ったサーバＣＧＩベース書式をＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目として格納することによって更新される。
【００２１】
本発明の他の態様では、サーバＣＧＩベース書式は、サーバＣＧＩベース書式とＣＧＩ応答との間の差が事前定義差分しきい値より大きいかどうかを判断することによって更新することもできる。ＣＧＩ差分データおよび比較が第１のコンピュータに送られる更新されたサーバＣＧＩベース書式を使用する場合、ＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目としてウェブ・サーバから受け取ったＣＧＩ応答を格納することによってＣＧＩ要求に対応するサーバＣＧＩベース書式を更新することができる。
【００２２】
本発明のプロトコル縮小態様では、外部通信リンクを介して第１のコンピュータと第２のコンピュータの間に持続的接続を確立する。この持続的接続は、すべてのウェブ・ブラウザ発信通信が完了するまで維持される。持続的接続が維持されている間に複数のウェブ・ブラウザ発信通信がインタセプトされ、多重化されて外部通信リンクに送られる。次にクライアント／サーバ固有データ・ストリームを多重化解除して複数のＨＴＴＰデータ・ストリームを作成し、その複数のＨＴＴＰデータ・ストリームをウェブ・サーバに送る。
【００２３】
本発明のヘッダ削減態様は、外部通信リンクを介して第２のコンピュータに、第１のコンピュータの所定の特性に対応するコンピュータ固有情報を供給し、第１のコンピュータの所定の特性に対応するコンピュータ固有情報を格納して、ブラウザ・ヘッダ情報を提供する。第１のコンピュータはウェブ・ブラウザ発信通信からこのコンピュータ固有情報を取り除き、第２のコンピュータは格納されたブラウザ・ヘッダ情報をクライアント／サーバ固有データ・ストリームと結合してＨＴＴＰデータ・ストリームを作成する。
【００２４】
本発明の他の態様では、ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームが、ＨＴＴＰデータ・ストリームを外部通信リンクで送る前にキャプチャされ、ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換される。変換されたウェブ・サーバ発信通信は外部通信リンクを介してクライアント／サーバ固有データ・ストリームとしてウェブ・ブラウザに送られる。第１のコンピュータは外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを獲得し、クライアント／サーバ固有通信プロトコルで受け取ったクライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、ウェブ・サーバからの通信に対応するＨＴＴＰデータ・ストリームを外部通信リンクを介して受け取ったクライアント／サーバ固有データ・ストリームから再構築する。ウェブ・サーバによって発信された通信はＨＴＴＰデータ・ストリームとしてウェブ・ブラウザに供給される。
【００２５】
本発明のヘッダ削減態様の他の実施例は、第１のコンピュータに外部通信リンクを介して第２のコンピュータの所定の特性に対応するコンピュータ固有情報を供給するステップと、第２のコンピュータの所定の特性に対応するコンピュータ固有情報を格納してサーバ・ヘッダ情報を提供するステップとを含む。第２のコンピュータは、ウェブ・サーバ発信通信からコンピュータ固有情報を取り除き、第１のコンピュータはサーバ・ヘッダ情報をクライアント／サーバ固有データ・ストリームと結合してＨＴＴＰデータ・ストリームを作成する。
【００２６】
本発明のプロトコル縮小態様の他の実施例では、外部通信リンクを介して第１のコンピュータと第２のコンピュータとの間に持続的接続を確立する。この持続的接続を、全てのウェブ・サーバ発信通信が完了するまで維持する。持続的接続を維持している間に複数のウェブ・サーバ発信通信をインタセプトし、外部通信リンクに多重化して送る。クライアント／サーバ固有データ・ストリームを多重化解除して複数のＨＴＴＰデータ・ストリームを作成し、その複数のＨＴＴＰデータ／ストリームをウェブ・サーバに供給することができる。
【００２７】
本発明の他の実施例は、第１のコンピュータ上にあり、第１のコンピュータから遠隔にある第２のコンピュータ上にあるサーバ・アプリケーションと通信するクライアント・アプリケーションを有するクライアント／サーバ・システムのパフォーマンスを向上させる方法を提供する。クライアント・アプリケーションとサーバ・アプリケーションは、クライアントとサーバの間の通信のためにクライアント／サーバから独立した通信プロトコル（すなわちステートレス）を使用し、第１のコンピュータにあるクライアント・アプリケーションと第２のコンピュータにあるサーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われる。この方法は、クライアント／サーバ独立通信プロトコルで遠隔クライアントから発信された通信を、その通信が外部通信リンクで送られる前にインタセプトするステップを含む。クライアントから発信されたインタセプトされた通信は、第２のクライアント／サーバ固有通信プロトコルに変換され、外部通信リンクを介して伝送される。第２のコンピュータが、外部通信リンクを介して送られた通信を受信し、外部通信リンクを介して受信した通信をクライアント／サーバ固有通信プロトコルからクライアント／サーバ独立通信プロトコルに変換する。遠隔クライアントによって発信された通信はクライアント・サーバ独立通信プロトコルでサーバに共有される。本発明の他の態様は、サーバからクライアント／サーバ独立通信プロトコルで発信された通信を、外部通信リンクで送信する前にインタセプトするステップを組み込む。インタセプトされた通信は、第２のクライアント／サーバ固有通信プロトコルに変換され、外部通信リンクを介して送信される。この通信を外部通信リンクで第１のコンピュータが受け取り、クライアント／サーバ固有通信プロトコルからクライアント・サーバ独立プロトコルに変換する。サーバによって発信された通信はクライアント／サーバ独立通信プロトコルで遠隔クライアントに供給される。
【００２８】
当業者ならわかるように、本発明の前述の態様は装置またはコンピュータ可読プログラム手段としても提供することができる。
【発明を実施するための最良の形態】
【００２９】
以下に、本発明の好ましい実施例が図示されている添付図面を参照しながら本発明について詳述する。しかし、本発明は多くの異なる態様で実施することができ、本明細書に記載の実施例に限定されるものと解釈してはならない。これらの実施例は、本開示を綿密かつ十全なものとし、本発明の範囲を当業者に完全に伝えるために示すものである。全体を通じて同様の番号は同様の要素を指す。
【００３０】
第３図ないし第１０図と第１３図ないし第１７−２図は、本発明による方法およびシステムを示すフローチャートである。フローチャートの各ブロックと、フローチャートのブロックの組合せは、コンピュータ・プログラム命令によって実施することができることがわかるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム式装置にロードし、それによってコンピュータまたはその他のプログラム式装置上で実行される命令がフローチャートの１つまたは複数のブロックに指定されている機能を実施する手段を生じさせるように機械を作り出すことができる。これらのコンピュータ・プログラム命令を、コンピュータまたはその他のプログラム式装置に対して特定の方式で機能するように指示することができるコンピュータ可読メモリに格納し、それによってコンピュータ可読メモリに格納された命令がフローチャートの１つまたは複数のブロックに指定されている機能を実施する命令手段を含む製品を作り出すようにすることができる。また、コンピュータ・プログラム命令をコンピュータまたはその他のプログラム式装置にロードして、コンピュータまたはその他のプログラム式装置上で一連の操作ステップが行われるようにし、コンピュータまたはその他のプログラム式装置上で実行される命令がフローチャートの１つまたは複数のブロックに指定されている機能を実施するステップを提供するようにコンピュータ実施プロセスを作り出すこともできる。
【００３１】
したがって、フローチャートのブロックは、指定された機能を実行する手段の組合せと、指定された機能を実行するステップの組合せとに対応する。また、フローチャートの各ブロックと、フローチャートのブロックの組合せは、指定された機能またはステップを実行する特定用途向けハードウェア・ベースのコンピュータ・システムによって、または特定用途向けハードウェアとコンピュータ命令の組合せによって実施することができることがわかるであろう。
【００３２】
第２図に、本発明の一実施例を示す。第２図に示すように、ウェブ・ブラウザ１０はクライアント側インタセプト・モジュール３０と通信する。ウェブ・サーバ２０はサーバ側インタセプト・モジュール４０と通信する。次にクライアント側インタセプト・モジュール３０が通信リンク３５を介してサーバ側インタセプト・モジュール４０と通信する。ウェブ・ブラウザ１０とクライアント側インタセプト・モジュール３０は、第１のコンピュータ５に組み込むことができる。サーバ側インタセプト・モジュール４０とウェブ・サーバ２０は第２のコンピュータ６に組み込むことができる。第１のコンピュータ５と第２のコンピュータ６は外部通信リンク３５を介して通信する。
【００３３】
ウェブ・ブラウザ１０は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）とハイパーテキスト・マークアップ言語（ＨＴＭＬ）を使用して、やはりＨＴＴＰとＨＴＭＬを使用するインターネット・ウェブ・サーバ２０と通信するインターネット・ウェブ・ブラウザであることが好ましい。動作中、ウェブ・ブラウザ１０はＨＴＴＰデータ・ストリームを出力し、それがクライアント側インタセプト・モジュール３０によってインタセプトされる。クライアント側インタセプト・モジュール３０によるＨＴＴＰデータ・ストリームのインタセプトは、クライアント側インタセプト・モジュール３０が１２７．０．０．１のようなネットワーク番号１２７を有するＩＰアドレスにあるＴＣＰ／ＩＰループバック機構を使用して行うことができる。次に、クライアント側インタセプト・モジュール３０はＨＴＴＰデータ・ストリームをクライアント／サーバ固有プロトコルに変換または変形し、そのクライアント／サーバ固有データ・ストリームを外部通信リンク３５に送る。サーバ側インタセプト・モジュール４０はこのクライアント／サーバ固有データ・ストリームを受け取り、ウェブ・ブラウザ発信通信に対応する元のＨＴＴＰデータ・ストリームを再構築する。この再構築されたＨＴＴＰデータ・ストリームは次にウェブ・サーバ２０に転送される。ウェブ・サーバ２０はインターネット・ウェブ・サーバの通常の方式でＨＴＴＰデータ・ストリームに応答する。当業者ならわかるように、ウェブ・サーバ２０は複数のブラウザがインターネットに接続することができるようにするプロキシとすることもできる。
【００３４】
たとえば特定のＵＲＬホーム・ページを求めるブラウザ要求に応答してウェブ・サーバ２０がウェブ・ブラウザ１０に送る情報を受け取ると、ウェブ・サーバ２０はウェブ・ブラウザ１０に送る通信に対応するＨＴＴＰデータ・ストリームを出力する。このウェブ・サーバ発信通信はサーバ側インタセプト・モジュール４０によってインタセプトされ、クライアント／サーバ固有データ・ストリームに変換される。次に、ウェブ・サーバ発信通信に対応するクライアント／サーバ固有データ・ストリームは外部通信リンク３５で第２のコンピュータから第１のコンピュータに送られる。このクライアント／サーバ固有データ・ストリームをクライアント側インタセプト・モジュール３０が受け取り、ウェブ・サーバ発信通信に対応するＨＴＴＰデータ・ストリームが再構築され、ウェブ・ブラウザ１０に供給される。
【００３５】
本発明の特定の実施例では、外部通信リンク３５は無線通信リンクである。その場合、ユーザにとって受容可能なシステム・パフォーマンスを得るために、外部通信リンク３５を介する通信量を、通信リンク３５を介して伝送しなければならない通信の頻度と情報量の両方について減らすことが望ましい。したがって、本発明はキャッシング技法と、差分計算技法と、プロトコル縮小技法とを使用して、外部通信リンク３５を介する必要通信量を最小限にする。これらの技法は、ＨＴＴＰのステートレスまたは確率論的プロトコルを、クライアントおよびサーバに固有の情報を使用するクライアント／サーバ固有プロトコルに変換して通信の量と頻度を減らすことによって実現される。
【００３６】
本発明について、単一のウェブ・ブラウザ・アプリケーションと単一のウェブ・サーバ・アプリケーションに関して説明するが、当業者ならわかるように、本発明の利便および利点は、単一のウェブ・サーバに関連づけられた複数のウェブ・ブラウザを使用した場合にも得ることができる。したがって、本発明の方法、装置、およびプログラム製品は、各ブラウザがクライアント側インタセプト・モジュールと通信する複数のブラウザと共に使用することもでき、その場合それらのクライアント側インタセプト・モジュールはウェブ・サーバまたはウェブ・プロキシのサーバ側インタセプト・モジュールと通信することになる。
【００３７】
本発明の一実施例では、クライアント側インタセプト・モジュール３０とサーバ側インタセプト・モジュール４０の情報がキャッシュ格納機能を有する。第１のコンピュータにあるクライアント・キャッシュには、ウェブ・ブラウザ発信通信に応答してウェブ・ブラウザが受け取るＨＴＴＰデータ・ストリームが格納される。第２のコンピュータにあるサーバ・キャッシュには、ブラウザ発信通信に応答してウェブ・サーバから受け取るＨＴＴＰデータ・ストリームが格納される。
【００３８】
当業者ならわかるように、第１のコンピュータまたは第２のコンピュータにあるキャッシュは、コンピュータの特定のハードウェア構成に基づく任意の容量とすることができる。これらのキャッシュには、各通信について、通信のＵＲＬ、巡回冗長検査（ＣＲＣ）などの通信内容に基づく固有識別子、キャッシュ項目の作成またはリフレッシュが行われた時刻を示すデータ格納時刻（ＳＤＴ）、および通信のデータを含む情報が格納される。したがって、キャッシュに格納されている各通信についてキャッシュ項目のディレクトリを作成することができる。さらに、所与のハードウェア構成で使用可能な資源は限られているため、第１のコンピュータおよび第２のコンピュータにあるキャッシュを維持するために当業者に周知の任意の数のキャッシング技法を使用することができる。したがって、たとえば、新しい項目の追加によってユーザ定義キャッシュサイズを超える場合、キャッシュは最も古いディレクトリ項目を無効化し、無効化された項目の代わりに新しい項目を追加することができる。さらに、ウェブ・ブラウザ・アプリケーションまたはウェブ・サーバ・アプリケーションの複数のインスタンスにわたって、あるいは第１または第２のコンピュータの電源投入サイクルについてさえもキャッシュ項目を維持して持続キャッシュを作成することができる。
【００３９】
以下に、クライアント側インタセプタ・モジュール３０とサーバ側インタセプト・モジュール４０の動作を示すフローチャートである第３図ないし第６図を参照しながら本発明の一態様によるキャッシング構造について説明する。
【００４０】
具体的に第３図を参照すると、ブロック１００はクライアント側インタセプト・モジュール３０がウェブ・ブラウザ１０から要求を受け取ったことを示している。この要求は、ＨＴＴＰデータ・ストリームの形式をとることができる。ブロック１０５に示すように、クライアント側インタセプト・モジュール３０は着信した要求のユニフォーム・リソース・ロケータ（ＵＲＬ）を検査する。クライアント側インタセプト・モジュール３０はＵＲＬから、ウェブ・ブラウザ発信要求に対応する情報が前に第１のコンピュータにある第１のクライアント・キャッシュに格納されているかどうかを判断する。
【００４１】
ＵＲＬに対応する情報が前にクライアント・キャッシュに格納されていなかった場合、ブロック１０６に示す操作がクライアント側インタセプト・モジュールによって行われる。クライアント側インタセプト・モジュール３０は外部通信リンク３５でサーバ側インタセプト・モジュール４０に要求を送る。
【００４２】
しかし、ブロック１０５に示すようにウェブ・ブラウザ発信通信に問い合わせたときに、ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在する場合、最も単純な実施例では、その情報がＨＴＴＰデータ・ストリームとしてウェブ・ブラウザに供給される。しかし、第３図に示すように、本発明の好ましい実施例は、ウェブ・ブラウザ発信通信に対応するキャッシュ項目に対して本明細書でコヒーレンシ間隔検査と呼ぶ操作を行う。この操作は第３図のブロック１１０に示されている。
【００４３】
クライアント側インタセプト・モジュールのコヒーレンシ間隔はユーザ定義とすることができ、キャッシュ項目が陳腐化し、存在はしていてもウェブ・サーバに対してウェブ・ブラウザ発信通信に対応する情報を要求することによって最新化しなければならなくなるまでのキャッシュ項目が存在することができる時間の長さである。ブロック１１０に示すコヒーレンシ間隔検査は、現在日時をウェブ・ブラウザ発信通信に対応するキャッシュ項目のＳＤＴとユーザによって指定されたコヒーレンシ間隔との和と比較することによって行うことができる。現在日時がこの和より大きい場合、ウェブ・ブラウザ発信通信に対応するキャッシュ内に格納されている情報は陳腐化しており、ブロック１１０の「Ｎｏ」に分岐する。しかし、現在日時がＳＤＴにユーザ定義コヒーレンシ間隔を足した和よりも小さい場合は、ブロック１１０で「Ｙｅｓ」に分岐し、ブロック１１１に示すように、そのキャッシュ項目がＨＴＴＰデータ・ストリームとしてブラウザに供給される。したがって、第３図のブロック１００でクライアント側インタセプト・モジュール３０が受け取ったブラウザ発信通信が完了する。
【００４４】
ブロック１１０に示すコヒーレンシ間隔検査によって、第１のコンピュータにあるキャッシュ項目が陳腐化していると判断された場合、サーバ側インタセプト・モジュール４０に対して要求を行い、第２のコンピュータにあるキャッシュ項目のコヒーレンシを検査する。この操作は第３図のブロック１１２に示されている。これは、外部通信リンク３５を介してサーバ側インタセプト・モジュール４０に、特定のクライアント側インタセプト・モジュール３０のコヒーレンシ間隔と、ウェブ・ブラウザ１０によって発信されたＨＴＴＰ要求と、ウェブ・ブラウザ発信通信のＵＲＬに対応するクライアント・キャッシュの内容を示す固有の標識を供給することによって行われる。好ましい実施例では、この固有の標識はキャッシュ項目の巡回冗長検査（ＣＲＣ）である。
【００４５】
次に第５図を参照すると、外部通信リンク３５を介してクライアント側インタセプト・モジュール３０から受け取った情報に応答したサーバ側インタセプト・モジュール操作が示されている。サーバ側インタセプト・モジュール４０がクライアント側インタセプト・モジュールから要求を受け取ると、サーバ側インタセプト・モジュール４０は所定のクライアント・コヒーレンシ時間間隔と、クライアント・キャッシュ項目のＣＲＣ値と、ウェブ・ブラウザによって発信されたＨＴＴＰ要求を受け取る。この情報の受信は、第５図のブロック１２０に示されている。
【００４６】
クライアント側インタセプト・モジュール３０から情報を受け取った後、サーバ側インタセプト・モジュール４０は第２のコンピュータにあるそのサーバ・キャッシュを検査して、ウェブ・ブラウザによって発信されたＨＴＴＰ要求のＵＲＬに対応するサーバ・キャッシュ項目が存在するかどうかを判断する。ブロック１２５に示すようにウェブ・ブラウザ発信通信に問い合わせた後、サーバ側インタセプト・モジュール４０が、ウェブ・ブラウザ発信通信によって要求された情報に対応するキャッシュ項目が存在すると判断した場合、ブロック１２５で「Ｙｅｓ」分岐をとる。次に、サーバ側インタセプト・モジュール４０はＳＳＩモジュール４０の現在日時を、ウェブ・ブラウザ発信通信によって要求された情報に対応するサーバ・キャッシュ項目のＳＤＴとクライアント側インタセプト・モジュールから受け取った所定のクライアント・コヒーレンシ時間間隔との和と比較する。
【００４７】
現在日時がサーバ・キャッシュ項目のＳＤＴとコヒーレンシ間隔との和より小さい場合、第５図のブロック１３０の「Ｙｅｓ」経路をとる。次にサーバ側インタセプト・モジュール４０はサーバ・キャッシュ項目のＣＲＣとクライアント・キャッシュのＣＲＣとを比較して、その２つのキャッシュ項目が同じかどうかを判断する。２つのキャッシュ項目が同じ場合、ブロック１３５の「Ｙｅｓ」分岐をとり、ブロック１３６に示すように、「コヒーレント」応答がクライアント側インタセプト・モジュール３０に送られる。
【００４８】
ブロック１３５の条件で、ＣＲＣが等しくないと判断された場合、クライアント・キャッシュに入っている情報とサーバ・キャッシュに入っている情報は同じでなく、ブロック１３７に示すようにサーバ側インタセプト・モジュールは外部通信リンクを介して第１のコンピュータにサーバ・キャッシュ項目を送る。サーバ・キャッシュ項目をクライアント側インタセプト・モジュール３０に送信する際に、サーバ側インタセプト・モジュールはその項目を、サーバ・キャッシュ項目のＣＲＣと、サーバ・キャッシュ項目データと、サーバ・キャッシュ項目のエージとを含むクライアント固有通信プロトコルに変換する。サーバ・キャッシュ項目のエージは、現行日時からキャッシュ項目のＳＤＴを引くことによって計算する。
【００４９】
第５図に関して最後に、ＳＤＴに所定のクライアント・コヒーレンシ時間間隔を足した和が現在日時よりも小さいか、またはウェブ・ブラウザ発信通信のＵＲＬに対応する項目がない場合、それぞれブロック１３０の「Ｎｏ」経路またはブロック１２５の「Ｎｏ」経路がとられる。したがって、ブロック１２６の操作が行われ、サーバ側インタセプト・モジュール４０がサーバにウェブ・ブラウザ発信通信をＨＴＴＰデータ・ストリームとして送ることになる。サーバ側インタセプト・モジュール４０がウェブ・ブラウザ発信通信をサーバにＨＴＴＰデータ・ストリームとして送らなければならない場合、サーバ側インタセプト・モジュール４０は第６図の操作を実行する。
【００５０】
第６図のブロック１４０に示すように、ウェブ・ブラウザ発信通信に応答して、サーバ側インタセプト・モジュールがウェブ・サーバ２０からＨＴＴＰデータ・ストリームを受け取る。ＨＴＴＰデータ・ストリームを受け取ると、サーバ側インタセプト・モジュール４０はＨＴＴＰデータ・ストリームのＣＲＣを計算し、ＨＴＴＰデータ・ストリームを一時的に格納する。次に、ブロック１４５に示すように、サーバ側インタセプト・モジュールはＨＴＴＰデータ・ストリームに問い合わせて、ＨＴＴＰデータ・ストリームのＵＲＬに対応するサーバ・キャッシュ項目が存在するかどうかを判断する。そのような項目が存在しない場合、ブロック１４５の「Ｙｅｓ」経路が実行される。次にサーバ側インタセプト・モジュール４０は、ブロック１５０に示すように、ウェブ・サーバ２０から受け取ったＨＴＴＰデータ・ストリームの最も最近に計算されたＣＲＣを、ウェブ・サーバ発信応答通信のＵＲＬに対応するサーバ・キャッシュ項目のＣＲＣと比較する。ＣＲＣが同じ場合、ブロック１５０の「Ｙｅｓ」分岐が行われる。サーバ側インタセプト・モジュール４０はブロック１５１に示すようにサーバ・キャッシュ項目のＳＤＴ項目を更新し、ブロック１５２に示すようにウェブ・サーバ２０によって受信されたＨＴＴＰデータ・ストリームを一時格納域から除去する。
【００５１】
ＣＲＣ比較の結果によって、サーバ・キャッシュ項目がウェブ・サーバ２０から受け取ったＨＴＴＰデータ・ストリームと異なることが示された場合、ブロック１５０の「Ｎｏ」経路が行われる。サーバ側インタセプト・モジュール４０はブロック１５３に示すようにサーバ・キャッシュから既存のデータを除去し、次にブロック１５４に示すようにより新しい方の情報によってサーバ・キャッシュを更新する。ブロック１５４に示すように、この更新にはサーバ・キャッシュにウェブ・サーバ通信のＣＲＣを格納するステップと、キャッシュ項目の一部として現在日時をキャッシュ項目のＳＤＴとして格納するステップと、ＨＴＴＰデータ・ストリームを格納するステップとが含まれる。サーバ・キャッシュ項目を更新するかどうか、またはサーバ・キャッシュ項目がウェブ・サーバ２０から受け取ったＨＴＴＰデータ・ストリームと同じであることが判明したかどうかを問わず、いずれの場合もサーバ側インタセプト・モジュールは次にサーバ・キャッシュ項目がウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目と同じかどうかを判断する。この操作をブロック１５５に示す。
【００５２】
サーバ側インタセプト・モジュール４０が、ウェブ・サーバ２０から受け取った応答に対応するキャッシュ項目が存在しないと判断した場合、ブロック１４５の「Ｎｏ」経路がとられる。ブロック１４６に示すように、ウェブ・サーバからの応答のＵＲＬを格納し、ウェブ・サーバからの応答のＣＲＣを格納し、ＨＴＴＰデータ・ストリームを格納し、ＳＤＴとして現在日時を格納することによって、サーバ・キャッシュ項目が作成される。ウェブ・ブラウザ発信通信に対応するキャッシュ項目を作成した後、サーバ側インタセプト・モジュール４０は次に、ブロック１５５に示すように、再度、このサーバ・キャッシュ項目のＣＲＣを対応するクライアント・キャッシュのＣＲＣと比較する。
【００５３】
サーバ・キャッシュ項目とクライアント・キャッシュ項目との比較の結果によって、キャッシュ項目が同じであることがわかった場合、ブロック１５５の「Ｙｅｓ」分岐がとられ、ブロック１５６の操作が行われる。ブロック１５６に示すように、サーバ側インタセプト・モジュール４０がクライアント側インタセプト・モジュール３０に応答を送る。サーバ側インタセプト・モジュール４０は、クライアント側インタセプト・モジュールにコヒーレント応答を送り、ゼロのエージを送ることによって、サーバ要求キャッシュ項目をクライアント／サーバ固有データ・ストリームに変形する。
【００５４】
サーバ側インタセプト・モジュール４０が、クライアント・キャッシュ項目がウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じではないと判断した場合、ブロック１５５の「Ｎｏ」分岐がとられ、ブロック１５７の操作が行われる。ブロック１５７に示すように、サーバ側インタセプト・モジュール４０は、サーバ・キャッシュ項目をクライアント／サーバ固有データ・ストリームに変換または変形する。このデータ・ストリームには、サーバ・キャッシュ項目のＣＲＣと、サーバ・キャッシュ項目ＨＴＴＰデータ・ストリームと、キャッシュ項目のゼロに設定されたエージとが含まれる。このクライアント／サーバ固有通信は次に外部通信リンク３５を介してクライアント側インタセプト・モジュール３０に送信される。
【００５５】
サーバ側インタセプト・モジュールから通信を受け取ったときのクライアント側インタセプト・モジュール３０の機能について、第４図を参照しながら以下に説明する。ブロック１６０に示すように、クライアント側インタセプト・モジュール３０は外部通信リンク３５を介して送信されたクライアント／サーバ固有データ・ストリームを受信または入手する。クライアント側インタセプト・モジュールは次に、ブロック１６５に示すように、サーバ側インタセプト・モジュール４０からどのようなタイプの応答を受け取ったかを判断する。サーバ側インタセプト・モジュール４０が、クライアントがクライアント・キャッシュ項目がコヒーレントであること、すなわちサーバ・キャッシュ項目とクライアント・キャッシュ項目が同じであることを示している場合、ブロック１６６に示す操作が行われる。ブロック１６６に示すように、クライアント側インタセプト・モジュール３０は、現在日時とサーバ側インタセプト・モジュール４０から受け取ったエージとの差を使用してウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目のＳＤＴを更新する。したがって、本発明は、第１のコンピュータ５と第２のコンピュータ６の２つのクロックの同期をとらずに、第１のコンピュータのキャッシュ項目のコヒーレンシ時間を更新して第２のコンピュータの新しい方のデータを反映させたことになる。ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目のＳＤＴを更新した後、クライアント側インタセプト・モジュール３０はクライアント・キャッシュ項目をウェブ・ブラウザ１０にＨＴＴＰデータ・ストリームとして転送する。この操作をブロック１７４に示す。
【００５６】
しかし、クライアント側インタセプト・モジュール３０が応答のタイプがデータまたはデータ・ストリーム応答であると判断した場合は、ブロック１６５から「ストリーム」経路をとり、ブロック１６７の操作が行われる。クライアント側インタセプト・モジュール３０はＨＴＴＰデータ・ストリームを受け取り、そのデータを一時的に格納する。次に、第４図のブロック１７０に示すように、クライアント側インタセプト・モジュール３０は、ウェブ・ブラウザ発信通信に対応するキャッシュ項目が存在するかどうかを判断する。キャッシュ項目が存在する場合、ブロック１７０の「Ｙｅｓ」経路をとって、ブロック１７１に示すように、既存のキャッシュ項目がフラッシュされる。クライアント側インタセプト・モジュールは次に、サーバ側インタセプト・モジュール４０から受け取ったＨＴＴＰデータ・ストリームのＣＲＣを格納し、現在日時とサーバ側インタセプト・モジュール４０から受け取ったエージとの差をＳＤＴとして格納し、ＨＴＴＰデータ・ストリームを格納することによって、ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を更新する。この操作をブロック１７２に示す。
【００５７】
ウェブ・ブラウザ発信通信に対応するキャッシュ項目が存在しない場合、ブロック１７０の「Ｎｏ」経路が取られる。ブロック１７３に示す操作を行うことによってクライアント・キャッシュ項目が作成される。ブロック１７３に示すように、クライアント側インタセプト・モジュール３０は、サーバ側インタセプト・モジュール４０から受け取ったＨＴＴＰデータ・ストリームのＵＲＬを格納し、サーバ側インタセプト・モジュール４０から受け取ったＨＴＴＰデータ・ストリームのＣＲＣを格納し、ＨＴＴＰデータ・ストリームを格納することによって、クライアント・キャッシュ項目を作成する。また、クライアント側インタセプト・モジュール３０は、サーバ側インタセプト・モジュール４０から外部通信リンク３５を介して受け取ったエージＳＤＴを現在日時から引くことによって、ＳＤＴを更新または格納する。
【００５８】
しかし、ブロック１６６、１７２、１７３のいずれの操作によってクライアント・キャッシュ項目が作成されるかを問わず、クライアント側インタセプト・モジュールはクライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとしてウェブ・ブラウザ１０に転送または供給する。これらの操作は第４図のブロック１７４に示されている。
【００５９】
当業者ならわかるように、クライアント・キャッシュとサーバ・キャッシュは、メモリによって、またはハード・ディスク、読書きＣＤ−ＲＯＭ、光ディスク、その他の格納技法などの大容量格納装置によって実装することができる。さらに、当業者ならわかるように、クライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールは、ソフトウェア、ハードウェア、またはその組合せによって実装することができる。
【００６０】
特定の第１または第２のコンピュータにあるキャッシュについて言及したが、当業者ならわかるように、本発明の利点は、キャッシュが第１のコンピュータにではなく、単に外部通信リンクの第１のコンピュータと同じ側にある場合でも得られる。したがって、ハードウェア・キャッシュをクライアント・キャッシュとして機能する第１のコンピュータの外部に実装し、高速通信によって第１のコンピュータに接続することもでき、しかもその場合でも、キャッシュが外部通信リンクの第１のコンピュータと同じ側にある限り、本発明の利点が得られる。
【００６１】
本発明の他の実施例では、サーバ側インタセプト・モジュール４０は、ウェブ・サーバ２０から受け取ったＨＴＴＰデータ・ストリームのコピーを維持せず、単にその通信のディレクトリ項目を維持するに過ぎない。このディレクトリ項目には、通信のＵＲＬと、ＨＴＴＰデータ・ストリームのために計算されたＣＲＣと、ＨＴＴＰデータ・ストリームをウェブ・サーバから受け取った時刻と、その通信のＳＤＴとが含まれ、このＳＤＴはＣＲＣを計算した時刻に設定することができる。このような場合、クライアント側インタセプト・モジュール３０はサーバ側インタセプト・モジュール４０に対して、サーバ側インタセプト・モジュールがＣＲＣとＳＤＴを維持していたＵＲＬに対応する通信を求める要求を送り、次にサーバ側インタセプト・モジュール３０はクライアント側インタセプト・モジュール３０から受け取ったＣＲＣを検査して、それが指定されたＵＲＬの最新のＨＴＴＰデータ・ストリームに対応しているかどうかを判断する。一致している場合、クライアント側インタセプト・モジュールにコヒーレント応答が送られる。一致していない場合、サーバ側インタセプト・モジュールは、クライアント側インタセプト・モジュールから受け取ったＨＴＴＰデータ・ストリームをウェブ・サーバ２０に送り、ウェブ・サーバ２０から受け取った応答をクライアント側インタセプト・モジュール３０に返す。
【００６２】
第７図、第８図、第９図、および第１０図に、本発明の他の態様においてクライアント側インタセプト・モジュール３０とサーバ側インタセプト・モジュール４０によって行われる操作を示す。この態様は、差分計算を使用して、外部通信リンク３５を介して伝送されるデータを削減する。第７図を参照すると、ブロック２００にクライアント側インタセプト・モジュール３０によるウェブ・ブラウザ１０からのＨＴＴＰ要求の受信が示されている。ブロック２０５に示すように、クライアント側インタセプト・モジュール３０はウェブ・ブラウザ１０からのインタセプトしたＨＴＴＰ要求に問い合わせて、その要求が共通ゲートウェイ・インタフェース（ＣＧＩ）に送るものかどうかを判断する。要求が共通ゲート・インタフェースに送るものでない場合、クライアント側インタセプト・モジュール３０は、第３図ないし第６図に示し、第７図のブロック２０６に図示するように、その要求をサーバ側インタセプト・モジュールに渡す。
【００６３】
しかし、ウェブ・ブラウザ発信通信がＣＧＩ要求に対応する場合、ブロック２０５の「Ｙｅｓ」経路がとられる。ブロック２１０に示すように、クライアント／サーバ・インタセプト・モジュール３０は、対応するＣＧＩ要求に応答して前にウェブ・ブラウザに供給されていたＨＴＴＰデータ・ストリームに対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断する。このＣＧＩ要求の問い合わせは、ウェブ・ブラウザ発信通信のＵＲＬをクライアント・ベース・キャッシュに格納されているＵＲＬと比較することによって行うことができる。
【００６４】
クライアント・ベース・キャッシュは、所与のＵＲＬについてウェブ・ブラウザ１０に供給するクライアント側インタセプト・モジュール３０が受信した最初のＨＴＴＰデータ・ストリームを格納することによって初期設定することができる。このベース・キャッシュ項目は、ウェブ・ブラウザ１０の多くのインスタンスまたはセッションにわたって維持することができる。クライアント・ベース・キャッシュ項目は、第７図、第８図、第９図、および第１０図に示すように更新することができる。ウェブ・ブラウザ発信通信のＵＲＬに対応するクライアント・ベース・キャッシュ項目が存在する場合、第７図のブロック２１１に示すように、外部通信リンク３５を介してサーバ側インタセプト・モジュール４０に送るＣＲＣが、クライアント・ベース・キャッシュ項目のＣＲＣに等しく設定される。クライアント・ベース・キャッシュ項目がない場合、第７図のブロック２１０から「Ｎｏ」経路をとり、外部通信リンク３５を介してサーバ側インタセプト・モジュール４０に送る要求のＣＲＣがナルにされる。この操作は第７図のブロック２１２に示されている。
【００６５】
ブロック２１３に、ＣＧＩ要求を外部通信リンクを介してサーバ側インタセプト・モジュール４０に送る操作を示す。ブロック２１３に示すように、クライアント側インタセプト・モジュール３０がＨＴＴＰ要求と要求ＣＲＣを送る。要求ＣＲＣは、ＣＧＩ要求のＵＲＬのクライアント・ベース・キャッシュ項目が存在しない場合にはナルに設定されており、クライアント・ベース・キャッシュ項目が存在する場合にはその項目のＣＲＣに設定されている。したがって、クライアント側インタセプト・モジュールは、ＣＧＩ要求をクライアント／サーバ固有プロトコルに変換し、そのクライアント／サーバ固有通信を、外部通信リンクを介して送信して、サーバ側インタセプト・モジュール４０が受信するようにしたことになる。
【００６６】
ＣＧＩ要求を受け取るときのサーバ側インタセプト・モジュールの動作を第９図に示す。サーバ側インタセプト・モジュール４０によるＣＧＩ要求の受信がブロック２２０に示されている。サーバ側インタセプト・モジュール４０はＣＧＩ要求を受け取ると、ＣＲＣ値とＨＴＴＰ要求のコピーを保存する。ブロック２２１に示すように、サーバ側インタセプト・モジュール４０はＨＴＴＰ要求をウェブ・サーバ２０に渡す。
【００６７】
第１０図のブロック２３０に示すように、サーバ側インタセプト・モジュール４０がウェブ・ブラウザ発信通信またはＣＧＩ要求に対応するＨＴＴＰ要求に対する応答を受け取るとき、サーバ側インタセプト・モジュール４０はこの応答をＨＴＴＰデータ・ストリームとして受け取る。ブロック２３０に示すように、サーバ側インタセプト・モジュール４０は、ＨＴＴＰデータ・ストリームを保存し、ウェブ・サーバ２０から受け取ったＨＴＴＰデータ・ストリームのＣＲＣ値を計算する。また、サーバ側インタセプト・モジュール４０は、差分値をナルにして差分データを初期設定する。次に、ブロック２３５に示すように、サーバ側インタセプト・モジュールは、ウェブ・サーバ発信通信として受け取った応答がＣＧＩ要求に対する応答であるかどうかを判断する。答えが否定の場合、第１０図のブロック２３５から「Ｎｏ」経路をとり、ブロック２３６の操作を実行して、ＨＴＴＰデータ・ストリームがクライアント側インタセプト・モジュールに送る。ブロック２３６に示すように、この操作には第３図ないし第６図で説明したキャッシング操作が必要な場合がある。ブロック２３０で受け取った応答がＣＧＩに対する応答の場合、ブロック２３５の「Ｙｅｓ」経路をとり、サーバ側インタセプト・モジュールは次に、ブロック２４０に示すように、ＣＧＩ応答のサーバ・ベース・キャッシュ項目が存在するかどうかを判断する。
【００６８】
サーバ側インタセプト・モジュール４０がＣＧＩ要求に対する応答を初めて受け取ったとき、サーバ・ベース・キャッシュ項目を作成することができる。この場合、ブロック２４０に示す条件の結果によって、ブロック２４０から「Ｎｏ」経路がとられる。次に、サーバ側インタセプト・モジュール４０は、ＣＧＩのＵＲＬと、ＣＧＩ要求に対する応答のＨＴＴＰデータ・ストリームと、ＨＴＴＰデータ・ストリームのＣＲＣとを格納することによって、サーバ・ベース・キャッシュ項目を作成する。この操作をブロック２４１に示す。第３図ないし第６図で説明したコヒーレント・キャッシュとの互換性を持たせるために、サーバ・ベース・キャッシュ項目にはＳＤＴも組み込むことができる。本明細書では、サーバＣＧＩベース書式という用語を使用して、ウェブ・ブラウザ１０から受け取ったＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目を指す。
【００６９】
ＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目がある場合、ブロック２４０の「Ｙｅｓ」経路がとられる。サーバ側インタセプト・モジュールはサーバ・ベース・キャッシュ項目のＣＲＣを、ウェブ・サーバ２０から受け取った応答のＣＲＣと比較する。これらの操作を第１０図のブロック２４５に示す。ＣＲＣが同じ場合、サーバ側インタセプト・モジュールは、サーバ・ベース・キャッシュ項目のＣＲＣがクライアント・ベース・キャッシュ項目のＣＲＣに対応するかどうかを判断する。この２つのＣＲＣ値が同じ場合、クライアント・ベース・キャッシュ項目と、サーバ・ベース・キャッシュ項目と、ウェブ・サーバ２０から受け取った応答のすべてがＨＴＴＰデータ・ストリームに入れられる。サーバ・ベース・キャッシュ項目とクライアント・ベース・キャッシュ項目との比較をブロック２５０に示す。
【００７０】
２つのベース・キャッシュ項目が同じ場合、サーバ側インタセプト・モジュールはベース・キャッシュ項目をクライアント側インタセプト・モジュール３０に送る必要がなく、したがって、ブロック２５１に示すように、クライアント側インタセプト・モジュール３０に送るＨＴＴＰデータ・ストリーム・データをナルにする。次に、ブロック２５２に示すように、サーバ側インタセプト・モジュール４０は、ＣＧＩ要求に対応するサーバ・ベース・キャッシュに格納されているＨＴＴＰデータ・ストリームのＣＲＣと、ナルにしたＨＴＴＰデータ・ストリームと、ナルにした差分データとを送信して、ＣＧＩ要求がクライアント・ベース・キャッシュ項目と同じであったことを示すことによって、ウェブ・サーバ２０から受け取ったＨＴＴＰデータ・ストリームをクライアント／サーバ固有通信プロトコルに変換する。
【００７１】
ブロック２４５に戻って、ＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目のＣＲＣが、ウェブ・ブラウザによって発信されたＣＧＩ要求に応答してウェブ・サーバから受け取った応答のＣＲＣと異なる場合、ブロック２４５から「Ｎｏ」経路がとられる。次に、サーバ側インタセプト・モジュール４０はブロック２４６に示す操作を行う。サーバ側インタセプト・モジュール４０は、インタセプトしたＣＧＩ応答を、インタセプトしたＣＧＩに対応するサーバ・ベース・キャッシュ項目すなわちサーバＣＧＩベース書式と比較する。このインタセプトしたＣＧＩ応答とサーバＣＧＩベース書式との比較によって、インタセプトしたＣＧＩ応答とサーバＣＧＩベース書式との差分に対応するＣＧＩ差分データが得られる。
【００７２】
差分計算は、ベース書式と修正済み書式との間の差分を求める当業者に周知の任意の方法で行うことができる。本発明で使用するのに適した差分計算の一方法は、コピーターズ（Coppieters）による・・・・・・・・・・・・・・・・・・・・・・・・・・・（Dr. Dobb's Journal １９９５年５月号３２〜３６ページ）に記載されており、その開示は参照により、その全部が記載されているかのように本明細書に組み込まれる。差分データを求める際に使用することができるその他の方法には、・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（Vol.22,No.8A、１９８０年１月）に記載されている方法が含まれ、これも参照によりその全部が記載されているかのように本明細書に組み込まれる。次に、ブロック２４７に示すように、サーバ側インタセプト・モジュール４０はサーバＣＧＩベース書式が更新を必要とするかどうかを判断する。この判断は、インタセプトされたＣＧＩ応答とサーバＣＧＩベース書式との平均差分データが所定のしきい値を超えているかどうかを判断することによって行うことができる。ＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目を更新する必要があるかどうかを判断する他の方法には、第３図ないし第６図で説明したような時間コヒーレンシ方式や、ベース変更を行って新しいベース・キャッシュ項目を作成すればシステム・パフォーマンスが向上するほど差分データが増加したかどうかを判断する当業者に周知のその他の方法が含まれる。
【００７３】
サーバのベース変更計算が不要な場合、ブロック２４７から「Ｎｏ」経路がとられ、サーバ側インタセプト・モジュール４０はブロック２５０の操作を行って、クライアント・ベース・キャッシュ項目のＣＲＣがサーバ・ベース・キャッシュ項目のＣＲＣと同じかどうか、またはサーバＣＧＩベース書式が、ウェブ・ブラウザ発信通信のその特定のＣＧＩ要求に対応するサーバとクライアントのベース・キャッシュ項目であるクライアントＣＧＩベース書式と同じかどうかを判断する。ベース書式が同じ場合、クライアントはベース変更を行う必要がなく、ブロック２５１に示すようにＨＴＴＰデータ・ストリーム情報がナルにされる。次に、サーバ側インタセプト・モジュール４０は、ＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目のＣＲＣ（すなわちサーバＣＧＩベース書式のＣＲＣ）を送り、ベース・データに対応するナルにしたＨＴＴＰデータ・ストリームを送り、ブロック２４６で求めた差分データを送ることによって、クライアント側インタセプト・モジュール３０に差分応答を送る。これらの操作は第１０図のブロック２５２として示されている。
【００７４】
サーバ側インタセプト・モジュール４０が、クライアントＣＧＩベース書式とサーバＣＧＩベース書式のＣＲＳが同じでないと判断した場合、クライアントのベース変更計算を行う必要がある。クライアントのベース変更操作は、クライアント側インタセプト・モジュール３０にサーバＣＧＩベース書式を送るステップを含む。この操作を行うために、サーバ側インタセプト・モジュールはクライアント側インタセプト・モジュール３０に送るＨＴＴＰデータ・ストリーム・データを、サーバＣＧＩベース書式と等しく設定する。この操作をブロック２５３に示す。次に、サーバ側インタセプト・モジュール４０は、ブロック２５２に示すように、サーバＣＧＩベース書式のＣＲＣと、サーバＣＧＩベース書式に対応するＨＴＴＰデータ・ストリーム・データを送信し、ＣＧＩベース書式とウェブ・サーバから受け取った応答との差分データを送信することによって、ウェブ・サーバから受け取ったＨＴＴＰデータ・ストリームをクライアント／サーバ固有プロトコルに変換する。次にこの情報を外部通信リンク３５を介してクライアント側インタセプト・モジュール３０に送る。
【００７５】
ブロック２４７に戻って、サーバのベース変更が必要な場合、ブロック２４７から「Ｙｅｓ」経路がとられる。ブロック２４８に示すように、サーバ側インタセプト・モジュールは、ウェブ・サーバから受け取ったＨＴＴＰデータ・ストリームを使用してブラウザ発信通信に対応するサーバ・ベース・キャッシュを更新する。応答のＣＲＣも更新され、ＣＧＩ差分データがナルにされる。次に、サーバ側インタセプト・モジュールは、ブロック２５０に示すように新しいサーバ側キャッシュ項目のＣＲＣを比較し、前述のようにこの転送を完了する。
【００７６】
サーバ側インタセプト・モジュール４０から応答を受け取ったときのクライアント側インタセプト・モジュールの操作を第８図に示す。クライアント側インタセプト・モジュール３０によるサーバ側インタセプト・モジュール４０からの応答の受信は、ブロック２６０に示されている。ブロック２６５に示すように、クライアント側インタセプト・モジュール３０は、応答がＣＧＩ要求に対する応答かどうかを判断する。応答がＣＧＩ要求に対する応答ではない場合、クライアント側インタセプト・モジュールはブロック２６７の操作を行う。この操作には、第３図ないし第６図に示すキャッシュ操作を組み込むことができる。しかし、応答がＣＧＩ要求に対する応答の場合、ブロック２６５から「Ｙｅｓ」経路がとられる。クライアント側インタセプト・モジュール３０は、外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームから入手した、ＨＴＴＰデータ・ストリーム・データと、差分データと、ＣＲＣとを保管する。これらの操作は第８図のブロック２６６に示されている。
【００７７】
次に、クライアント側インタセプト・モジュール３０は、ＣＧＩベース書式を含むインタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断する。この問い合わせはブロック２７０に示されており、ＨＴＴＰ要求またはＨＴＴＰ応答のＵＲＬを調べることによって行うことができる。クライアントＣＧＩベース書式が存在する場合、ブロック２７０から「Ｙｅｓ」経路がとられる。次に、ブロック２７５に示すように、クライアント側インタセプト・モジュール３０は外部通信リンクを介して受け取ったＣＲＣを、クライアントＣＧＩベース書式のＣＲＣと比較する。ＣＲＣが異なる場合、ブロック２７５から「Ｎｏ」経路がとられ、クライアントは、ウェブ・ブラウザ発信通信にＣＧＩ要求のＵＲＬに対応するクライアント・ベース・キャッシュ項目を、外部通信リンク３５を介してサーバ側インタセプト・モジュール４０から受け取ったＨＴＴＰデータ・ストリーム・データに置き換えてＣＧＩベース書式を更新することによって、ベース変更を行う。クライアント・ベース・キャッシュ項目も、ＨＴＴＰデータ・ストリームのＣＲＣを基準にして更新される。これらの操作は第８図のブロック２７６に示されている。
【００７８】
外部通信リンク３５を介して受け取ったＣＲＣがＧＧＩベース書式と同じ場合、サーバ側インタセプタ・モジュール・サーバＣＧＩベース書式は、クライアント側インタセプト・モジュール・クライアントＣＧＩベース書式と同じであり、ブロック２７５の「Ｙｅｓ」経路がとられる。
【００７９】
ベース書式が同じであるかクライアントをベース変更するかを問わず、クライアント側インタセプタ・モジュール３０によってブロック２７７に示す操作が行われる。ブロック２７７は、クライアント側インタセプタ・モジュール３０が、クライアントＣＧＩベース書式を外部通信リンク３５を介して受け取ったＣＧＩ差分データと比較して、インタセプトしたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、外部通信リンク３５を介して受け取ったクライアント／サーバ固有データ・ストリームから、ウェブ・サーバ２０から受け取った通信に対応するＨＴＴＰデータ・ストリームを再構築する操作を示す。ブロック２７８に示すように、この応答は次にＨＴＴＰデータ・ストリームとしてウェブ・ブラウザ１０に供給される。
【００８０】
クライアントにＣＧＩ要求のＵＲＬに対応するＣＧＩベース書式が存在しない場合、第８図のブロック２７０から「Ｎｏ」経路がとられる。ブロック２７１に示すように、クライアント側インタセプト・モジュール３０は、ＵＲＬと、サーバ側インタセプト・モジュール４０から外部通信リンクを介して受信したＨＴＴＰデータ・ストリームのＣＲＣと、実ＨＴＴＰデータ・ストリーム・データとを格納することによってＣＧＩ要求のＵＲＬに対応するクライアント・ベース・キャッシュ項目を作成する。この情報を格納することによって、インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が作成され、したがってクライアントＣＧＩベース書式が作成される。次に、クライアント側インタセプト・モジュールは、クライアントＣＧＩベース書式をＣＧＩ差分データ（ナル化されていることがある）と結合またはマージすることによって、ＨＴＴＰデータ・ストリームを再構築することでブロック２７７の操作を行う。
【００８１】
本発明の差分計算技法は非ＣＧＩデータにも適用可能である。その場合、サーバ側インタセプト・モジュール４０は、ウェブ・サーバに接続されているウェブ・ブラウザのクライアント側インタセプト・モジュールが異なるベース書式を持っている可能性を見込んで、複数の世代のサーバ・ベース・キャッシュ項目を維持する必要がある。その場合、サーバ側インタセプト・モジュールは、一致するものが得られるまで、クライアント側インタセプト・モジュールから受け取ったＣＲＣを各世代のサーバ・ベース書式のＣＲＣと比較する。その際、サーバ側インタセプト・モジュール４０は、任意選択でクライアント側インタセプト・モジュール３０のベース変更を行うか、または単にクライアント側インタセプト・モジュール３０に差分データを供給することができる。したがって、本明細書でＣＧＩ要求に関して説明した差分計算方法は、どのようなＨＴＴＰ要求および応答にも等しく適用可能である。
【００８２】
複数の世代のベース書式を維持する上述のシステムでは、非ＣＧＩ要求について差分計算を使用することができるが、この方法はメモリまたは格納域を多用し、前述のキャッシング機能が十分に活用されない。メモリまたは格納域必要量を少なくし、前述のキャッシング方法を活用するために、非ＣＧＩ要求に差分計算を使用する以下の好ましい方法を使用することできる。この好ましい実施態様では、サーバ側インタセプト・モジュールは、要求に対応するサーバ・ベース書式とウェブ・サーバからの応答のＨＴＴＰデータ・ストリームとの差分を計算する。次に、ベース書式をウェブ・サーバからの新しい応答で置き換えることによって、サーバ・ベース書式を更新する。これにはベース書式のＣＲＣの更新も含まれる。しかし、古いＣＲＣを廃棄するのではなく、前のベース書式のＣＲＣは差分データとして格納する。次に、前の世代の差分データとＣＲＣを、非ＣＧＩ要求に対応するクライアント・ベースのＣＲＣに基づいて選択的にクライアント側インタセプト・モジュールに送る。
【００８３】
非ＣＧＩ差分計算方法の一例として、サーバ側インタセプト・モジュールが非ＣＧＩ要求を受け取った場合、その要求には非ＣＧＩ要求のＵＲＬに対応するクライアント側インタセプト・モジュールにあるベース書式のＣＲＣも付随していることになる。サーバ側インタセプト・モジュールは、ウェブ・サーバから応答を受け取ると、その応答のＣＲＣを計算する。次に、サーバ側インタセプト・モジュールは応答とＵＲＬのサーバ・ベース書式との差分を計算し、その差分データを保管する。サーバ側インタセプト・モジュールは、応答データを使用してサーバ・ベース書式を更新し、前のベース書式のＣＲＣと、応答と古いベース書式との間の差分データとをアーカイブする。次に、サーバ側インタセプト・モジュールは、クライアント・ベース書式のＣＲＣをサーバ・ベース書式のＣＲＣおよび格納またはアーカイブされているＣＲＣと比較し、一致しているものがあるかどうかを判断する。一致が見つからない場合、その応答は単にクライアント側インタセプト・モジュールに送られる。
【００８４】
一致が見つかった場合、一致するＣＲＣに対応する差分データと、それ以降の、現行差分データを含む現行差分データまでの差分データがクライアント側インタセプト・モジュールに送られる。クライアント側インタセプト・モジュールは、その差分データをクライアント・ベース書式に適用して応答を再構築する。したがって、３世代古いベース書式のＣＲＣについてＣＲＣ一致があった場合、３セットの差分データがクライアント側インタセプト・モジュールに送られることになり、３セットの連続した差分データをクライアント・ベース書式に適用することによって、応答の構築が行われることになる。しかし、応答を再構築するのに必要な差分データ・セットの数が多すぎるかまたは差分データ・セットの大きさが大き過ぎて、実応答を送信した方がデータ転送が少なくて済む場合、サーバ側インタセプト・モジュールは応答自体を送信することができる。いずれにしても、応答の再構築または受信の後、クライアント側インタセプト・モジュールは、要求のＵＲＬのクライアント・ベース書式を応答データによって更新し、ＣＲＣを要求のＣＲＣで更新する。クライアント・ベース書式は特定のＵＲＬについて応答を受信するたびに更新されるため、非ＣＧＩ要求に対して差分計算を使用した場合、上述のクライアント・キャッシュをクライアント・ベース書式のキャッシュとして使用することができ、それによってクライアント・ベース書式の別個のキャッシュを不要にすることができる。
【００８５】
本発明の他の態様では、ＨＴＴＰなどのステートレス通信プロトコルの冗長性に基づいて、通信をさらに節約することができる。そのようなプロトコルでは、クライアントは通信を開始するたびにクライアント自体に関する情報をサーバに送信する。同様に、サーバは応答を出すたびにサーバ自体に関する特定の情報をクライアントに伝達する。
【００８６】
本発明の一実施例では、第１のコンピュータ５は第２のコンピュータ６に、第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を伝達する。第２のコンピュータはこのコンピュータ固有情報を格納する。次に、第１のコンピュータはそれ以降のウェブ・ブラウザ発信通信からそのコンピュータ固有情報を除去してから外部通信リンク３５で送信する。第２のコンピュータ６は、外部通信リンク３５を介して受信したそれ以降の通信と格納しているコンピュータ固有情報とを組み合わせてＨＴＴＰデータ・ストリームを作成することによって、元のウェブ・ブラウザ発信通信を再構築する。
【００８７】
ウェブ・ブラウザによって発信される通信からコンピュータ固有情報を除去するほかに、このコンピュータ固有情報をウェブ・サーバによって発信される通信からも除去することができる。その場合、第２図の第２のコンピュータ６は第１のコンピュータ５に外部通信リンク３５を介して、第２のコンピュータ６の事前定義特性に対応するコンピュータ固有情報を供給する。第１のコンピュータ５はそのコンピュータ固有情報を格納して、サーバ・ヘッダ情報を備える。その後の通信の時には、第２のコンピュータ６はウェブ・サーバ発信通信からコンピュータ固有情報を除去し、ウェブ・サーバ発信通信の残りの部分を外部通信リンク３５で送信する。第１のコンピュータ５は外部通信リンクでその通信を受信し、サーバ・ヘッダ情報を外部通信リンクを介して受信したクライアント／サーバ固有データ・ストリームと結合してＨＴＴＰデータ・ストリームを作成することによって、元のウェブ・サーバ発信通信を再構築する。どちらの場合も、操作が第１のコンピュータ５と第２のコンピュータ６のどちらで行われるかに応じて、コンピュータ固有情報を取り除き、その情報を格納してサーバ・ヘッダ情報またはクライアント・ヘッダ情報を作成する操作がクライアント側インタセプト・モジュール３０またはサーバ側インタセプト・モジュール４０によって行われる。
【００８８】
本発明の一実施例では、ウェブ・ブラウザ１０は伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）を使用してクライアント側インタセプト・モジュール３０と通信する。ＴＣＰは、外部通信リンク３５を介したクライアント側インタセプト・モジュール３０とサーバ側インタセプト・モジュール４０との間の通信にも使用することができる。最後に、ＴＣＰはサーバ側インタセプト・モジュール４０とウェブ・サーバ２０との間の通信にも使用することができる。ＴＣＰは本発明のシステムを構成する様々な構成要素間の通信に使用することができるが、ＨＴＴＰプロトコルは外部通信リンクを介した通信にとって最も効率的な手段を提供するものではない。外部通信リンク３５のパフォーマンスを向上させるために、本発明の一実施例は本明細書で「仮想ソケット」と呼ぶものを作成する。これは、ウェブ・ブラウザとクライアント側インタセプト・モジュール３０の間の接続と、サーバ側インタセプト・モジュール４０とウェブ・サーバ２０との間の接続に使用される。これらの仮想ソケットの動作について、第１１図ないし第１７図を参照しながら以下に説明する。
【００８９】
第１１図は、仮想ソケットを使用する本発明の１つの可能な実施態様を示すブロック図である。第１１図に示すように、第１のコンピュータ５と第２のコンピュータ６は外部通信リンク３５を介して接続されている。ウェブ・ブラウザ１０は、ウェブ・ブラウザ１０をクライアント側インタセプト・モジュール３０と接続する複数の実ソケットを有する。第１１図に示すように、第１の実ソケットはウェブ・ブラウザ１０上に６５ａとして図示され、それに対応するソケットはクライアント側インタセプト・モジュール３０上の６５ｂである。この第１の実ソケットは、それを介してウェブ・ブラウザ１０がクライアント側インタセプト・モジュール３０に対してさらに接続を要求するＴＣＰソケットである。
【００９０】
ウェブ・ブラウザ１０が新しいＴＣＰ接続を要求すると、実ソケット６５ａを介して通信が行われ、それが実ソケット６５ｂによって受信される。次にクライアント側インタセプト・モジュール３０は、ウェブ・ブラウザ１０との通信のために別の実ソケットを作成する。第１１図に示すように、ウェブ・ブラウザ１０上で複数の実ソケットが作成され、それに対応する実ソケットがクライアント側インタセプト・モジュール３０上で作成される。これらの実ソケットは、ウェブ・ブラウザ１０上の６０ａ〜６４ａおよびクライアント側インタセプト・モジュール３０上の６０ｂ〜６４ｂとして図示されている。これらの実ソケットは、ウェブ・ブラウザ１０がそれを介してクライアント側インタセプト・モジュール３０と通信するための手段である。実ソケット６０ａ〜６４ａおよび６０ｂ〜６４ｂを作成した後、これらのソケットを介した通信を多重化して実ソケット３６ａに送り、実ソケット３６ａはクライアント側インタセプト・モジュール３０に外部通信リンク３５へのアクセスを提供する。実ソケット３６ａおよび３６ｂはコンピュータ５の実ソケット３７ａを介してコンピュータ６の実ソケット３７ｂに要求を送るときに作成される。実ソケット３７ｂが接続要求を受け取ると、実ソケット３６ａおよび３６ｂが作成される。ソケット３７ａおよび３７ｂは、クライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールとの間の通信のための最初の実ソケットとして機能し、ソケット３６ａおよび３６ｂによって示されているこの２つのモジュールの間の接続を確立するためにのみ使用することができる。これらの実ソケットのそれぞれは標準ＴＣＰ／ＩＰプロトコルの下で動作する。第２のコンピュータ６が外部通信リンク３５を介して通信を受信するとき、それらの通信は実ソケット３６ｂで受信される。次にサーバ側インタセプト・モジュール４０は、ソケット３６ｂで受信した通信を多重化解除し、それらをウェブ・サーバ２０に送信するために適切なソケットに供給する。したがって、たとえば、特定のＵＲＬに対して情報を要求するためのソケット６０ａからソケット６０ｂまでの通信は、ソケット３６ａ上に多重化され、ソケット３６ｂによって受信され、サーバ側インタセプト・モジュール４０によって多重化解除され、ソケット６０ｃからウェブ・サーバ２０上のソケット６０ｄに送られることになる。同様に、ソケット６１ａを介して行われる通信はソケット６１ｂによって受信され、クライアント側インタセプト・モジュール３０によって多重化され、ソケット３６ａからソケット３６ｂに送られ、そこでサーバ側インタセプト・モジュール４０がその通信を多重化解除してソケット６１ｃからソケット６１ｄに送る。したがって、ソケット６０ａと６０ｂ、６１ａと６１ｂ、６２ａと６２ｂ、６３ａと６３ｂ、６４ａと６４ｂを介した通信は、サーバ側インタセプト・モジュール４０とウェブ・サーバ２０との間のソケット６０ｃと６０ｄ、６１ｃと６１ｄ、６２ｃと６２ｄ、６３ｃと６３ｄ、および６４ｃと６４ｄのうちのそれぞれの対応するソケットを介して送信される。
【００９１】
同様に、ウェブ・サーバ２０によるウェブ・ブラウザ１０からの要求に対する応答も、ウェブ・サーバ２０をサーバ側インタセプト・モジュール４０に接続するソケットを介して送られ、外部通信リンク３５を介してクライアント側インタセプト・モジュール３０に送られた後、ウェブ・ブラウザ１０に送られる。したがって、たとえばウェブ・サーバ２０によって発信された応答はソケット６０ｄから６０ｃを介して送られ、サーバ側インタセプト・モジュール４０によってソケット３６ｂに多重化され、そこから外部通信リンク３５を介してソケット３６ａに送られる。次にクライアント側インタセプト・モジュール３０がその通信を多重化解除し、それをソケット６０ｂに送り、それがウェブ・ブラウザ１０上のソケット６０ａに送られる。ウェブ・ブラウザ１０またはウェブ・サーバ２０が使用する各ソケットについて同様の通信経路が確立される。当業者ならわかるように、本発明についてウェブ・ブラウザ１０とウェブ・サーバ２０との間の４ソケット通信に関して説明したが、ウェブ・ブラウザ１０とウェブ・サーバ２０との間の通信アクセスを実現するために任意の数のソケットを開くことができる。
【００９２】
第１２図は、クライアント側インタセプト・モジュール３０とサーバ側インタセプト・モジュール４０における仮想ソケット・システムの実施例を示すブロック図である。これらのモジュールの外部で、クライアント側インタセプト・モジュール３０とウェブ・ブラウザ１０およびサーバ側インタセプト・モジュール４０とウェブ・サーバ２０の間の実ソケットが、通常のＴＣＰ／ＩＰソケットとして機能する。したがって、仮想ソケットの使用はウェブ・ブラウザ１０およびウェブ・サーバ２０には透過である。
【００９３】
第１２図のブロック図と第１３図ないし第１７図の流れ図を参照しながら本発明の特定の実施例について説明する。第１３図は、第１２図にブロック６８として図示されているソケット・マネージャのフローチャートである。第１３図を参照すると、ブロック３００はクライアント側インタセプト・モジュール３０の実ソケット・マネージャ６８の作成を示している。実ソケット・マネージャ６８が作成された後、実ソケット・マネージャは第１２図にソケット６５ｂとして図示されている第１の実ソケットを作成する。この第１の実ソケットの作成は第１３図のブロック３０１として示されている。第１の実ソケット６５ｂを作成した後、クライアント側インタセプト・モジュール３０内にあるソケット・マネージャ６８（本明細書ではクライアント・ソケット・マネージャとも呼ぶ）は、第１３図のブロック３０２に示すように、第１の実ソケット６５ｂ上での事象を待つ。
【００９４】
第１の実ソケット６５ｂ上で事象を受け取ると、第１３図のブロック３０５に示すように実ソケット・マネージャ６８はその事象を検査し、その検査に基づいて５通りの経路のうちの１つをとる。第１の実ソケット６５ｂで受信した通信要求に応答して実ソケットが作成された場合は、第１３図のブロック３０５から３０６までの経路に示すように、実ソケット・マネージャ６８はその実ソケットを実事象リストに追加する。次に、実ソケット・マネージャはブロック３０７に示すようにシンプレックス仮想ソケットを作成する。クライアント側インタセプト・モジュールの場合、実ソケット・マネージャは、第１３図のブロック３０８に示すように、作成された仮想ソケットについてクライアント側インタセプト・モジュールの機能を実行するアプリケーション機能を開始する。
【００９５】
本明細書では、「シンプレックス・ソケット」または「シンプレックス仮想ソケット」という用語は、単一のソケットまたは単一のアプリケーションに直接接続するソケットを指す。本明細書では、「マルチプレックス・ソケット」とは他の複数のソケットに接続するソケットを指す。したがって、マルチプレックス・ソケットは、多重化または多重化解除機能を実行し、シンプレックス・ソケットは１対１接続を行う。したがって、たとえば、第１３図のブロック３０６から３０８までの機能を実行する際、クライアント・ソケット・マネージャ６８は第１の実ソケット６５ｂが受信した第１の接続要求に応答して、実ソケット６０ｂ、シンプレックス仮想ソケット７０を作成し、アプリケーション８０のクライアント側インタセプト機能を開始することになる。実ソケットが作成されたその後の事象の場合も同様に、実ソケット・マネージャは実ソケット６１ｂ、６２ｂ、６３ｂ、または６４ｂとシンプレックス仮想ソケット７１、７２、７３、または７４を作成し、第１２図でブロック８１、８２、８３、または８４として図示されている、作成された実ソケットおよび仮想ソケットに対応するＣＳＩ機能を開始する。
【００９６】
以下に、クライアント側インタセプト機能の操作について、第１２図に示す実ソケット６０Ｂとシンプレックス仮想ソケット７０とクライアント側インタセプト機能８０とを参照しながら説明する。第１４図のブロック３２５はクライアント側インタセプト機能８０の作成を示している。作成されると、クライアント側インタセプト機能８０はブロック３２６に示すようにシンプレックス仮想ソケット７０上の事象を待つ。この待機操作は、第１６−４図に示す仮想選択機能を実行することによって行われる。事象を受け取ると、ブロック３３０に示すようにその事象が検査される。事象が仮想ソケット閉鎖である場合、第１４図のブロック３４９に示すようにクライアント側インタセプト機能８０はシンプレックス仮想ソケット７０を削除し、ブロック３５０に示すように終了する。
【００９７】
事象がデータの受信である場合、ブロック３３０からブロック３３１への経路がとられ、クライアント側インタセプト機能８０は第１６−３図を参照しながら説明する仮想受信操作を実行することによって、シンプレックス仮想ソケット７０からブラウザ発信通信を受け取る。次に、クライアント側インタセプト機能は前述のクライアント側インタセプト・モジュールの機能（たとえば第３図および第７図を参照）を実行する。これはブロック３３２に示されている。次にクライアント側インタセプト機能８０は、クライアント側インタセプト・モジュール３０内の実ソケット３６ａに接続されるマルチプレックス仮想ソケット９０を作成する。実ソケット３６ａはサーバ側インタセプト・モジュール４０上の実ソケット３６ｂに接続される。マルチプレックス仮想ソケットの作成は、第１４図のブロック３３３に示されており、本明細書で第１６−１図を参照しながら説明する仮想作成操作を実行することによって行われる。ブロック３３４は、ウェブ・ブラウザ発信通信のためにクライアント側インタセプト機能８０が実行された後で、実ソケット６０ｂとシンプレックス仮想ソケット７０を介してウェブ・ブラウザから受け取った情報を送信する操作を示す。この通信は、第１６−２図を参照しながら説明する仮想送信操作を実行することによってマルチプレックス仮想ソケット９０の待ち行列に入れられる。クライアント側インタセプト機能８０は、要求をマルチプレックス仮想ソケット９０の待ち行列に入れた後、第１４図のブロック３３５に示すようにマルチプレックス仮想ソケット９０の待ち行列に入れられているデータをフラッシュし、次にブロック３３６に示すようにマルチプレックス仮想ソケット上の事象を待つ。仮想フラッシュ機能は、第１７−１図を参照しながら説明する仮想フラッシュ操作を実行することによって行われ、マルチプレックス仮想ソケット待ち行列からデータを取り出してそのデータを実ソケット３６ａに供給する。待機機能は、第１６−４図に示す仮想選択機能を実行することによって行うことができる。この時点で、クライアント側インタセプト・モジュールはウェブ・ブラウザ発信通信をインタセプトし、その通信を外部通信リンク３５を介してサーバ側インタセプト・モジュールに送信し終わったことになる。
【００９８】
第１３図に戻ると、サーバ側インタセプト・モジュール４０またはクライアント側インタセプト・モジュール３０におけるソケット・マネージャのフローチャートが示されている。第１２図のブロック６９に示すように、サーバ側インタセプト・モジュール内の実ソケット・マネージャ、すなわちサーバ・ソケット・マネージャは、ブロック６８に示すクライアント・ソケット・マネージャと同じ機能を実行する。ブロック３０１に示すように、第１の実ソケットを作成する際、サーバ側インタセプト・モジュール３０は、サーバ側インタセプト・モジュール４０に関連づけられたクライアント側インタセプト・モジュール３０からのソケットの要求を受け取る「周知のポート」３７ｂを作成する。サーバ側インタセプト・モジュール４０の実ソケット３６ｂ上で実事象が発生すると、ブロック３０５に示すようにその事象が検査される。この場合、この事象は実ソケット３６ａからのデータの受信であり、したがって第１３図のブロック３０５からブロック３２０までの経路がとられる。実ソケット３６ｂ上で受信したデータが検査され、この例ではデータはクライアント側インタセプト・モジュールによって送信されたウェブ・ブラウザ発信通信であるため、サーバ側インタセプト・モジュール４０において新しい仮想ソケットを作成しなければならない。したがって、第１３図のブロック３２０からブロック３２１への経路がとられる。次にサーバ・ソケット・マネージャ６９は、第１３図のブロック３２１、ブロック３２２、ブロック３２３、およびブロック３２４に示す操作を行う。サーバ・ソケット・マネージャ６９はブロック３２１に示すようにマルチプレックス仮想ソケット９５を作成し、ブロック３２２に示すようにマルチプレックス・ソケット活動タイマをキャンセルし、第１３図のブロック３２３と第１２図のブロック８５に示すサーバ側インタセプト機能のアプリケーションを開始する。実ソケット３６ｂで受け取ったデータは次にマルチプレックス仮想ソケット９５の待ち行列に入れられ、仮想事象が通知される。
【００９９】
ブロック３２３に示すサーバ側インタセプト機能の作成は、第１５図のブロック３６０に示されている。サーバ側インタセプト機能８５の作成後、この機能は、クライアント側インタセプト・モジュール３０から送信され、ウェブ・ブラウザ発信通信に対応するデータを、マルチプレックス仮想ソケット９５から受け取る。この操作は第１５図のブロック３６１に示されている。クライアント側インタセプト・モジュールからデータを受け取った後、サーバ側インタセプト機能８５は、そのデータを、サーバ側インタセプト・モジュールについて前述したように処理する。このサーバ側機能の実行はブロック３６２に示されている（たとえば第５図および第９図を参照）。情報を処理した後、サーバ側インタセプト機能８５は仮想作成を行うことによってシンプレックス仮想ソケット７５を作成する。この操作については本明細書で第１６−１図を参照しながら説明する。この操作は第１５図のブロック３６３に示されている。次に、サーバ側インタセプト機能８５は、仮想送信を行うことによって、ブロック３６４に示すようにウェブ・ブラウザ発信通信をシンプレックス仮想ソケット７５に送る。仮想送信の操作については本明細書で第１６−２図を参照しながら説明する。次に、サーバ側インタセプト機能８５は、仮想フラッシュを行ってシンプレックス仮想ソケット７５の待ち行列に入っているデータをソケット６０ｃにフラッシュし、シンプレックス仮想ソケット７５上の事象を待つ。仮想フラッシュ操作については本明細書で第１７−１図を参照しながら説明する。この送信操作とフラッシュ操作は第１５図のブロック３６４および３６５に示されている。待機操作は、第１６−４図で説明されている仮想選択機能を実行することによって行うことができる。サーバ側インタセプト機能８５がシンプレックス仮想ソケット７５を作成したとき、対応する実ソケット６０ｃも作成されている。サーバ側インタセプト機能８５は、ウェブ・ブラウザ発信通信をシンプレックス仮想ソケット７５に送信することによって、ウェブ・ブラウザ発信通信をウェブ・サーバに転送した。
【０１００】
サーバ側インタセプト・モジュール４０が実ソケット６０ｃ上でウェブ・サーバからの応答を受信すると、実事象が発生し、サーバ・ソケット・マネージャ６９は第１３図のブロック３０２を終了して、ブロック３０５に示すように実ソケット６０ｃ上で発生した事象を検査する。この事例の場合、これは既存の仮想ソケットのデータであり、第１３図のブロック３２０からブロック３２４までの経路がとられる。実ソケット６０ｃ上で受信したデータは仮想ソケット７５の待ち行列に入れられ、仮想事象が通知される。仮想事象が通知されると、サーバ側インタセプト機能８５は第１５図のブロック３６６を終了し、ブロック３７０に示すようにその事象を検査する。事象がソケット閉鎖である場合、エラー条件が発生し、第１５図のブロック３７５に示すように応答としてエラー・メッセージが作成される。しかし、事象がデータの受信の場合は、ブロック３７０からブロック３７１への経路をとり、サーバ側インタセプト機能８５は、第１６−３図を参照しながら説明するように仮想受信を実行して、ブロック３７１に示すようにシンプレックス仮想ソケット７５から応答を入手する。次にサーバ側インタセプト機能８５は、ブロック３７２に示し、第１７−２図を参照しながら説明するように、シンプレックス仮想ソケット７５の仮想閉鎖を実行し、サーバ側インタセプト・モジュールに関して前述し、ブロック３７３に示すように、その応答を処理する（たとえば第６図および第１０図を参照）。
【０１０１】
第１５図のブロック３７０の終了経路がブロック３７５へのエラー経路であるかブロック３７１へのデータ経路であるかを問わず、ブロック３７４でシンプレックス仮想ソケット７５が削除される。
【０１０２】
次にサーバ側インタセプト機能は、ブロック３７６に示すようにマルチプレックス仮想ソケット９５への仮想送信操作を行ってウェブ・サーバ発信通信をクライアント側インタセプト・モジュール３０に送信する。サーバ側インタセプト機能８５は次に、仮想フラッシュ操作を行って、マルチプレックス仮想ソケット９５の待ち行列に入っているデータをフラッシュする。これらの操作はブロック３７７に示されている。次にサーバ側インタセプト機能８５は、第１５図のブロック３７８に示すように仮想閉鎖操作を行ってマルチプレックス仮想ソケット９５を閉じる。最後に、サーバ側インタセプト機能８５は、ブロック３７９および３８０に示すようにマルチプレックス仮想ソケットを削除して終了する。
【０１０３】
サーバ側インタセプト機能は、マルチプレックス仮想ソケット９５への仮想送信操作とフラッシュ操作を行う。これらの操作によって、実ソケット３６ａ上で事象がトリガされ、クライアント・ソケット・マネージャ６８はブロック３０２を終了し、ブロック３０５に示すように事象を検査する。これは実ソケット３６ａでデータを受信し、第１３図のブロック３０５からブロック３２０までの経路がとられ、データがマルチプレックス仮想ソケット９０の待ち行列に入れられるためである。したがって、実ソケット３６ａが外部通信リンク３５を介して実ソケット３６ｂからウェブ・サーバ応答を受け取ると、その情報が多重化解除され、マルチプレックス仮想ソケットに供給される。データの受信によって、第１３図のブロック３２４に示すように仮想事象が発生し、第１４図のブロック３３６が終了してクライアント側インタセプト機能８０は第１４図のブロック３４０に示すようにその事象を検査することになる。
【０１０４】
事象がソケット閉鎖応答である場合、第１４図のブロック３４０からブロック３４５への経路をとり、クライアント側インタセプト機能８０はエラー・メッセージ応答を作成して第１４図のブロック３４４に進む。この例の場合のように事象がデータ受信の場合、第１４図のブロック３４０からブロック３４１の経路をとり、クライアント側インタセプト機能８０は仮想受信操作を行ってマルチプレックス仮想ソケット９０から応答を受信する。この受信操作は第１４図のブロック３４１に示されている。マルチプレックス仮想ソケット９０からデータを受信した後、クライアント側インタセプト機能８０はブロック３４２に示すように仮想閉鎖操作を行ってマルチプレックス仮想ソケット９０を閉じる。次にクライアント側インタセプト機能８０は、ブロック３４３に示すように、クライアント側インタセプト・モジュールに関して前述したように応答を処理する（たとえば第４図および第８図を参照）。
【０１０５】
ブロック３４０を終了してどちらの経路をとる場合も、ブロック３４４の操作が行われる。クライアント側インタセプト機能８０は、ブロック３４４に示すようにマルチプレックス仮想ソケットを削除し、次にブロック３４６に示すように仮想送信操作を行ってシンプレックス仮想ソケット７０を介してブラウザに応答を送信する。この仮想送信操作が完了すると、クライアント側インタセプト機能８０はブロック３４７に示すように仮想フラッシュ操作を行ってシンプレックス仮想ソケットの待ち行列に入っているデータを実ソケット６０ｂにフラッシュし、次にブロック３４８に示すように仮想閉鎖操作を行ってシンプレックス仮想ソケットを閉じる。クライアント側インタセプト機能のシンプレックス仮想ソケットを閉じた後、第１４図のブロック３４９および３５０に示すようにシンプレックス仮想ソケットが削除され、クライアント側インタセプト機能は終了する。
【０１０６】
当業者ならわかるように、本発明についてシンプレックス仮想ソケットおよびマルチプレックス仮想ソケットとクライアント側インタセプト機能およびサーバ側インタセプト機能の１つの特定のインスタンスに関して説明したが、単一のクライアント側インタセプト・モジュールまたはサーバ側インタセプト・モジュール内でこれらの機能を複数作成することができる。したがって、本発明によるクライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールは、クライアント側インタセプト・モジュール３０とサーバ側インタセプト・モジュール４０との間にＴＣＰ／ＩＰ接続を作成し、次に、そのＴＣＰ／ＩＰ接続を維持しながらそのＴＣＰ／ＩＰ接続上で複数のウェブ・ブラウザ発信通信またはウェブ・サーバ発信通信を多重化することができる。
【０１０７】
クライアント・ソケット・マネージャとサーバ・ソケット・マネージャの残りの機能は、第１６−１図ないし第１６−４図と第１７−１図および第１７−２図を参照すれば最もよく理解できよう。これらの図では、第１４図および第１５図のフローチャートに示されているように仮想作成、仮想送信、仮想受信、仮想選択、仮想フラッシュ、または仮想閉鎖操作を実行するときに、クライアント側インタセプト・モジュールおよびサーバ側インタセプト・モジュールによって行われる操作が説明されている。第１４図のブロック３３３および第１５図のブロック３６３に示すような仮想作成操作を行う場合、第１６−１図のブロック４００から始まる操作を行う。ブロック４０５に示すように、ソケット・マネージャは、実ソケットが必要かどうかを判断する。作成操作によって既存の実ソケットに接続するマルチプレックス仮想ソケットを作成する場合などのように、実ソケットがすでに存在する場合は、ブロック４０５から「Ｎｏ」経路をとり、ブロック４０９に示すようにその仮想ソケットが実ソケットに接続される。しかし、実ソケットが必要な場合は、ブロック４０５から「Ｙｅｓ」経路をとる。ブロック４０６に示すように実ソケットを作成する。次に、第１３図のブロック３０２に示す監視のために、ブロック４０８に示すようにその実ソケットを事象リストに追加する。実ソケットを作成し、接続を確立した後、ブロック４０９に示すように仮想ソケットを実ソケットに接続し、ブロック４１０に示すように作成操作が完了する。
【０１０８】
第１４図のブロック３３４および３４６または第１５図のブロック３６４および３７６に示す仮想送信操作を行う場合、第１６−２図のブロック４２０から始まる操作が行われる。ブロック４２７に示すようにデータが仮想ソケット待ち行列に加えられ、完了すると、送信操作はブロック４２８に示すように終了する。
【０１０９】
第１４図のブロック３３１および３４１と第１５図のブロック３６１および３７１に示す仮想受信操作は、第１６−３図のブロック４３０から始まる操作を行うことによって行われる。ブロック４３５に示すように、仮想ソケット待ち行列を調べて仮想ソケット待ち行列に何かデータが入っているか判断する。仮想ソケット待ち行列にデータがある場合、ブロック４３５の「Ｙｅｓ」経路をとり、ブロック４３６に示すように受信操作を呼び出した機能にそのデータが返される。仮想ソケット待ち行列にデータがなく、ソケットに閉鎖のマークが付けられていない場合、決定ブロック４４０の「Ｎｏ」経路をとり、ブロック４４１に示すように何も返されない。しかし、待ち行列にデータがなく、ソケットに閉鎖のマークが付けられている場合、ブロック４４０の「Ｙｅｓ」経路をとり、ブロック４４２に示すようにソケットに閉鎖のマークが付けられて、ブロック４４３に示すように、受信を要求する操作にソケット閉鎖応答が返される。
【０１１０】
第１４図のブロック３２６および３３６と第１５図のブロック３６６で行われる仮想選択操作は、第１６−４図のブロック４４５から始まる操作を実行することによって行われる。ブロック４４６に示すように、まず、選択された仮想ソケットについてデータまたは仮想閉鎖操作が保留状態になっていないかどうかを判断する。保留状態のデータまたは仮想閉鎖がない場合、ブロック４４６の「Ｎｏ」経路をとり、プロセスはブロック４４７に示すように選択された仮想ソケット上の仮想ソケットを待ち、そのような事象を受け取った後でブロック４４８に示すように終了する。選択された仮想ソケットについてデータまたは仮想閉鎖が保留状態になっている場合、仮想事象がすでに発生しており、ブロック４４６の「Ｙｅｓ」経路をとって、ブロック４４８に示すようにプロセスが終了する。
【０１１１】
第１４図のブロック３３５および３４７と第１５図のブロック３６５および３７７で言及した仮想フラッシュ操作は、第１７−１図のブロック４５０から始まる操作を実行することによって行われる。仮想フラッシュ操作が呼び出されると、決定ブロック４５５に示すように、フラッシュする仮想ソケット待ち行列にデータが入っているかどうかを調べる。仮想ソケット待ち行列にデータが入っていない場合、ブロック４５５の「Ｎｏ」経路が示すようにフラッシュ操作は単に終了して呼出し側機能に戻る。しかし、待ち行列にデータが入っている場合、ブロック４５５の「Ｙｅｓ」経路をとり、ブロック４６０に示すようにその仮想ソケット待ち行列がマルチプレックス・ソケットのものであるかどうかを判断する。マルチプレックス・ソケットである場合は、ブロック４６１に示すようにソケットの固有識別子と転送中のデータ量を示す３バイトから成るソケット・ヘッダが実ソケット・バッファに加えられる。マルチプレックス・ソケットであるかシンプレックス・ソケットであるかを問わず、いずれの場合もブロック４６２に示すように実ソケットのためのデータが実ソケット・バッファに移される。実ソケット・バッファがいっぱいの場合、ブロック４６５の「Ｙｅｓ」
経路をとり、ブロック４６６に示すように実ソケット・バッファからデータが実ソケットに送られる。実バッファがいっぱいになっていない場合は、ブロック４６５の「Ｎｏ」経路をとる。次に、仮想フラッシュ機能は、他のいずれかのマルチプレックス仮想ソケット待ち行列に実ソケットに送るべき他のデータがあるかどうかを判断する。答えが肯定の場合、ブロック４７０の「Ｙｅｓ」経路をとり、実ソケット・バッファ内のデータは、他の仮想ソケット待ち行列の１つをフラッシュするために仮想フラッシュ操作が再び呼び出されるまで送られない。他のデータがない場合、または他のマルチプレックス仮想ソケットからデータを付加した後は、ブロック４６６の操作を行い、実ソケット・バッファ内のデータを実ソケットに送る。仮想フラッシュ操作を呼び出した機能に対応する仮想ソケット待ち行列内のすべてのデータが実ソケットに送られた後、ブロック４６７に示すように仮想フラッシュ操作は終了する。
【０１１２】
第１４図のブロック３４２および３４８と第１５図のブロック３７２および３７８に示す仮想閉鎖操作は、第１７−２図のブロック４８０から始まる操作を実行することによって行われる。仮想閉鎖操作が呼び出されると、まずブロック４８５に示すようにその仮想閉鎖がマルチプレックス仮想ソケットの閉鎖であるかどうかを判断する。マルチプレックス仮想ソケットである場合、ブロック４８５の「Ｙｅｓ」経路をとり、仮想ソケット待ち行列に「閉鎖」操作標識が付加される。仮想閉鎖がマルチプレックス仮想ソケットの閉鎖であるか否かを問わず、ブロック４８７に示すように仮想閉鎖操作によって仮想フラッシュ操作が呼び出され、ブロック４８８に示すように実ソケットとの接続を断つ。次に、ブロック４９０に示すように仮想閉鎖がシンプレックス仮想ソケットの閉鎖であるかどうかを調べ、そうでない場合は「Ｎｏ」経路をとってブロック４９５に進む。閉鎖はマルチプレックス仮想ソケットの閉鎖であるため、ブロック４９５でそれが最後のマルチプレックス仮想ソケットであるかどうかを判断し、最後のマルチプレックス仮想ソケットである場合は、ブロック４９６に示すようにマルチプレックス活動タイマをセットする。最後のマルチプレックス仮想ソケットでない場合は、ブロック４９６をスキップする。
【０１１３】
ブロック４９０に戻って、仮想閉鎖がシンプレックス仮想ソケットの閉鎖である場合、ブロック４９１に示すようにそれに対応する実ソケットを事象リストから除去し、ブロック４９２に示すように実ソケットを閉鎖し、削除する。ソケットがシンプレックスとマルチプレックスのどちらの仮想ソケットであるかを問わず、ブロック４９７に示すようにその仮想ソケットに閉鎖のマークを付け、ブロック４９８で閉鎖操作は終了する。
【０１１４】
次に、第１６−１図ないし第１６−４図および第１７−１図ないし第１７−２図に関連する第１３図について説明する。実事象が発生すると、第１３図のブロック３０２を終了し、ソケット・マネージャは事象がどのように生成されたかに基づいてその事象を調べる。事象が第１７−２図のブロック４９６で設定されたマルチプレックス・ソケット活動タイマのタイム・アウトである場合、第１３図のブロック３０５からブロック３１２までの経路がとられる。第１３図に示すように、次にソケット・マネージャによってブロック３１２および３１３の操作が行われ、マルチプレックス実ソケットが閉じられ、クライアント側インタセプト・モジュールをサーバ側インタセプト・モジュールに接続するソケットに対応するマルチプレックス実ソケットが削除される。その後、ソケット・マネージャは次の実事象を待つ。ブロック３２２に示すように、このマルチプレックス事象タイマはマルチプレックス仮想ソケットの作成によってリセットされる。
【０１１５】
実ソケット上で発生した事象が、ウェブ・サーバがウェブ・サーバとサーバ側インタセプト・モジュールとの間のソケット接続に対する閉鎖操作を行う場合などの実ソケット閉鎖である場合、第１３図のブロック３０５からブロック３０９への経路がとられる。ソケット・マネージャはブロック３０９に示すように実事象リストからその実ソケットを除去し、ブロック３１０に示すように１つの仮想ソケット（または複数のマルチプレックス・ソケットの場合は複数の仮想ソケット）をその１つの実ソケットまたは複数の実ソケットから切断する。次に、ソケット・マネージャはその仮想ソケットに閉鎖のマークを付け、仮想事象を通知する。この操作はブロック３１１に示されており、仮想ソケット待ち行列からすべてのデータが空にされると、仮想ソケットは閉じる。仮想ソケットに閉鎖のマークを付けた後、決定ブロック３１５に示すようにソケット・マネージャは閉じる実ソケットがシンプレックス・ソケットであるかどうかを判断する。閉じる実ソケットがシンプレックス・ソケットである場合、ブロック３１６に示すようにその実ソケットを閉じ、削除する。次にソケット・マネージャはブロック３０２に示すように次の実事象を待つ。
【０１１６】
閉じるソケットがシンプレックス実ソケットではない場合、ブロック３１５の「Ｎｏ」経路をとり、ソケット・マネージャは次の実事象を待つ。したがって、マルチプレックス実ソケット、すなわちクライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールとを接続するソケットを、マルチプレックス・ソケット活動タイマのタイム・アウトのみによって閉じることができる。これによって、ユーザ指定の所定時間の間、クライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールとの間の接続を、モジュール間の最後の通信が行われた後でも維持することができる。マルチプレックス・ソケット活動タイマのタイム・アウトの前にブラウザからその後の接続要求があった場合、クライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールとの間に接続を再確立せずに通信を行うことができ、それによってそのような接続を再確立するオーバーヘッドが不要になる。
【０１１７】
第１３図で説明する最後の経路は、実事象が発生し、その事象が第１２図の１つまたは複数のマルチプレックス実ソケット３６ａまたは３６ｂ上でのデータの受信である場合である。マルチプレックス実ソケット上でデータを受信すると、そのデータは検査され、第１７−２図のブロック４８６で仮想待ち行列に付加されるもののようにデータに閉鎖操作標識が含まれている場合は、仮想閉鎖操作が行われ、ブロック３２０からブロック３１０への経路がとられる。ソケット・マネージャは、ブロック３１０に示すように実ソケット上で受信したデータで識別されたマルチプレックス仮想ソケットを実ソケットから切断し、次にブロック３１１に示すように仮想ソケットに「閉鎖」のマークを付け、仮想事象を通知する。この閉鎖はマルチプレックス仮想ソケットの閉鎖であるため、ブロック３１５から「Ｎｏ」経路がとられ、ブロック３０２に示すようにソケット・マネージャは別の実事象を待つ。
【０１１８】
第１３図ないし第１７図で説明されている操作を行うことによって、本発明の特定の態様は外部通信リンクを介して第１のコンピュータと第２のコンピュータとの間に持続的接続を確立する。この持続的接続は、すべてのウェブ・ブラウザ発信通信が完了するまで維持され、持続的接続が維持されている間に複数のウェブ・ブラウザ発信通信がインタセプトされ、外部通信リンクに多重化されて送られる。次にクライアント／サーバ固有データ・ストリームを多重化解除して複数のＨＴＴＰデータ・ストリームを作成し、その複数のＨＴＴＰデータ・ストリームをウェブ・サーバに供給することができる。また、持続的接続は、すべてのウェブ・サーバ発信通信がインタセプト完了するまで維持される。持続的接続が維持されている間に、複数のウェブ・サーバ発信通信がインタセプトされ、外部通信リンクに多重化されて送られる。さらに、クライアント／サーバ固有データ・ストリームを多重化解除して複数のＨＴＴＰデータ・ストリーを作成し、その複数のＨＴＴＰデータ・ストリームをウェブ・サーバに供給することができる。
【０１１９】
図面および本明細書では、本発明の典型的な好ましい実施例を開示し、特定の用語を使用したが、これらの用語は総称および説明のためのものに過ぎず、請求の範囲に記載されている本発明の範囲を限定するためのものではない。
【０１２０】
以下に、本発明の内容をまとめて述べる。
【０１２１】
（１）第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記第２のコンピュータに前記クライアント／サーバ固有データ・ストリームとして送信するステップと、
前記外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを受信するステップと、
前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・ブラウザからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップと、
前記ウェブ・ブラウザによって発信された前記通信を、前記ウェブ・サーバにＨＴＴＰデータ・ストリームとして供給するステップと
を含む方法。
（２）前記送信するステップが、前記変換されたウェブ・ブラウザ発信通信を、無線通信リンクを介して送信するステップをさらに含む、（１）に記載の方法。
（３）前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップと
をさらに含み、
前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在する場合には、前記変換するステップ、前記送信するステップ、前記受信するステップ、前記再構築するステップ、および前記供給するステップの代わりに、
前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給するステップを行う、（１）に記載の方法。
（４）前記第１のコンピュータ内にある前記ユーザ定義情報を提供するために、特定のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された前記情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断するステップと、
をさらに含み、
前記問い合わせするステップによって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応すると判断された場合に、前記供給するステップが、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップを含み、
前記ユーザ定義格納情報がウェブ・ブラウザに供給される場合に、前記送信するステップ、前記受信するステップ、および前記再構築するステップの代わりに前記問い合わせするステップが行われる、（１）に記載の方法。
（５）前記通信リンクを介して、前記第１のコンピュータから前記ユーザ定義情報を受信するステップをさらに含む、（４）に記載の方法。
（６）前記格納するステップが、クライアント・キャッシュ項目の作成時刻を格納して、クライアント・キャッシュ項目時間レコードを作成するステップをさらに含み、
前記問い合わせするステップが、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が、前記ウェブ・ブラウザが前記情報を要求する前の所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記供給するステップが、前記判断するステップによってクライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合、前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給するステップを含む、（３）に記載の方法。
（７）前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持するステップをさらに含む、（６）に記載の方法。
（８）前記ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ要求キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目が前記キャッシュに前に格納されているかどうかを判断するステップと、
前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップと、
前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信するステップと、及び
前記外部通信リンクを介して送信された前記クライアント／サーバ固有データ・ストリームを入手するステップと
をさらに含み、
前記再構築するステップが、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記サーバ要求キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記供給するステップが、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップを含む、（１）に記載の方法。
（９）ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ要求キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信を評価して、前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が存在するかどうかを判断するステップと、
前記ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクでクライアント／サーバ固有データ・ストリームを送信することによって、前記外部通信リンクを介して前記第１のコンピュータに前記サーバ要求キャッシュ項目を送信するステップと、
前記第２のコンピュータによって前記外部通信リンクを介して送信された前記クライアント／サーバ特定データを入手するステップと
をさらに含み、
前記再構築するステップが、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、サーバ・キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記供給するステップが、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送するステップを含む、（６）に記載の方法。
（１０）前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記変換するステップが、前記判断するステップによって前記サーバ要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップを含む、（９）に記載の方法。
（１１）前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じ前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップをさらに含み、
前記変換するステップが、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点とウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の間隔を計算して項目エージ・データを供給するステップを含み、
前記送信するステップが、前記ウェブ・ブラウザ発信通信に対応する前記サーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして前記外部通信リンクを介して前記第１のコンピュータに送信するステップを含み、
前記再構築するステップが、前記第１のコンピュータの現在時刻からコヒーレント項目応答から受け取った項目エージ・データを引くことによって、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目時間レコードを更新するステップを含み、
前記供給するステップが、前記外部通信リンクからコヒーレント項目応答を受け取った場合に、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目として格納されたＨＴＴＰデータ・ストリームをウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送するステップを含む、（９）に記載の方法。
（１２）前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記方法が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を供給するステップと、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を供給するステップと、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成するステップと、
ＣＧＩに対する要求であるブラウザ発信通信に応答して前記ウェブ・ブラウザに供給されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータにあるキャッシュに格納して、クライアント・ベース・キャッシュ項目を作成するステップと、
前記インタセプトされたＣＧＩ要求に応答して前記ウェブ・サーバによって発信された前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで前記ＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記インタセプトされたＣＧＩ要求を前記サーバＣＧＩベース書式と比較して、前記インタセプトされたＣＧＩ応答とサーバＣＧＩベース書式との差分に対応するＣＧＩ差分データを供給するステップと、
前記ウェブ・ブラウザに対する送信前記ＣＧＩ差分データを前記外部通信リンクを介して前記第１のコンピュータに、クライアント／サーバ固有データ・ストリームとして送信するステップと、
前記第２のコンピュータによって送信された前記外部通信リンクを介して伝送された前記クライアント／サーバ固有データ・ストリームを入手するステップと
をさらに含み、
前記再構築するステップが、前記クライアントＣＧＩベース書式を前記外部通信リンクを介して受信したＣＧＩ差分データと結合して前記インタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、ウェブ・サーバからの通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記供給するステップが、前記ウェブ・サーバによって発信された前記通信を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する、（１）に記載の方法。
（１３）前記サーバＣＧＩベース書式が前記クライアントＣＧＩベース書式と同じかどうかを判断するステップをさらに含み、
前記送信するステップが、前記サーバＣＧＩベース書式を送信し、かつ前記ＣＧＩ差分データを前記外部通信回線を介して前記ウェブ・ブラウザにクライアント／サーバ固有データ・ストリームとして送信するステップを含み、
前記再構築するステップが、前記サーバＣＧＩベース書式を外部通信回線を介して受信したＣＧＩ差分データと結合して前記インタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、前記ウェブ・サーバからの前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記受信したサーバＣＧＩベース書式を前記ＣＧＩ要求に対応する前記クライアント・ベース・キャッシュ項目として格納することによって、前記ＣＧＩ要求に対応する前記クライアントＣＧＩベース書式を更新するステップをさらに含む、（１２）に記載の方法。
（１４）前記サーバＣＧＩベース書式と前記ＣＧＩ応答との前記差分が事前定義差分しきい値より大きいかどうかを判断するステップと、
前記サーバＣＧＩベース書式とＣＧＩ応答との間の差分が事前定義差分しきい値より大きいと前記判断手段が判断した場合、前記ウェブ・サーバから受信した前記ＣＧＩ応答を前記ＣＧＩ要求に対応する前記サーバ・ベース・キャッシュ項目として格納することによって、前記ＣＧＩ要求に対応する前記サーバＣＧＩベース書式を更新するステップとをさらに含み、
前記比較するステップおよび前記送信するステップが、更新されたサーバＣＧＩベース書式を使用する、（１２）に記載の方法。
（１５）前記外部通信リンクを介して前記第１のコンピュータと前記第２のコンピュータとの間に持続的接続を確立するステップと、
すべてのウェブ・ブラウザ発信通信が完了するまで前記持続的接続を維持するステップと
をさらに含み、
前記インタセプト・ステップが、複数のウェブ・ブラウザ発信通信をインタセプトするステップと、及び前記持続的接続を維持している間にそれらのウェブ・ブラウザ発信通信を前記外部通信リンクに多重化するステップとを含む、（１）に記載の方法。
（１６）前記再構築するステップが、前記クライアント／サーバ固有データ・ストリームを多重化解除して、複数のＨＴＴＰデータ・ストリームを作成するステップを含み、
前記供給するステップが、前記複数のＨＴＴＰデータ・ストリームを前記ウェブ・サーバに供給するステップを含む、（１５）に記載の方法。
（１７）前記外部通信リンクを介して前記第２のコンピュータに前記第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を供給するステップと、
前記第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を格納してブラウザ・ヘッダ情報を供給するステップと
をさらに含み、
前記変換するステップが、前記ウェブ・ブラウザ発信通信から前記コンピュータ固有情報を取り除くステップを含み、
前記再構築するステップが、前記ブラウザ・ヘッダ情報を前記クライアント／サーバ固有データ・ストリームと結合してＨＴＴＰデータ・ストリームを作成するステップを含む、（１）に記載の方法。
（１８）前記ウェブ・サーバによって発信された通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで送信する前に、キャプチャするステップと、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記変換されたウェブ・サーバ発信通信を前記外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして前記ウェブ・ブラウザに送信するステップと、
前記外部通信リンクを介して送信された前記クライアント／サーバ固有データ・ストリームを入手するステップと、
前記クライアント／サーバ固有通信プロトコルで受信したクライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから、前記ウェブ・サーバからの通信に対応する前記ＨＴＴＰデータ・ストリームを再構築するステップと、及び
前記ウェブ・サーバによって発信された前記通信を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップと
をさらに含む、（１）に記載の方法。
（１９）前記外部通信リンクを介して前記第１のコンピュータに、前記第２のコンピュータの事前定義特性に対応するコンピュータ固有情報を提供するステップと、
第２のコンピュータの前記事前定義特性に対応する前記コンピュータ固有情報を格納して、サーバ・ヘッダ情報を供給するステップと
をさらに含み、
前記変換するステップが前記ウェブ・サーバ発信通信から前記コンピュータ固有情報を取り除くステップを含み、
前記再構築するステップが、前記サーバ・ヘッダ情報を前記クライアント／サーバ固有データ・ストリームと結合して、ＨＴＴＰデータ・ストリームを作成するステップを含む、（１８）に記載の方法。
（２０）前記第１のコンピュータと前記第２のコンピュータの間に前記外部通信リンクを介して持続的接続を確立するステップと、
すべてのウェブ・サーバ発信通信が完了するまで前記持続的接続を維持するステップと
をさらに含み、
前記キャプチャするステップが、複数のウェブ・サーバ発信通信をインタセプトし、かつ前記持続的接続を維持している間にそれらのウェブ・サーバ発信通信を前記外部通信リンクに多重化するステップとを含む、（１８）に記載の方法。
（２１）前記再構築するステップが前記クライアント／サーバ固有データ・ストリームを多重化解除して、複数のＨＴＴＰデータ・ストリームを作成するステップを含み、
前記（１８記載の供給するステップが前記複数のＨＴＴＰデータ・ストリームを前記ウェブ・サーバに供給するステップを含む、（２０）に記載の方法。
（２２）第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記ウェブ・サーバに前記クライアント／サーバ固有データ・ストリームとして送信するステップと
を含む方法。
（２３）前記送信するステップが、前記変換されたウェブ・ブラウザ発信通信を無線通信リンクを介して送信するステップを含む、（２２）に記載の方法。
（２４）前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップと
をさらに含み、
前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在する場合には、前記変換するステップおよび前記送信するステップの代わりに、
前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給するステップを行う、（２２）に記載の方法。
（２５）前記第１のコンピュータ内にある前記ユーザ定義情報が提供するために、固有のウェブ・ブラウザ情報に関連づけられたユーザ定義情報を格納するステップと、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断するステップと、
前記問い合わせするステップによって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応していると判断された場合に、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップとをさらに含み、
前記ユーザ定義格納情報を前記ウェブ・ブラウザに供給する場合、前記問い合わせするステップおよび前記供給するステップの代わりに前記送信するステップが行われる、（２２）に記載の方法。
（２６）前記通信リンクを介して前記第１のコンピュータから前記ユーザ定義情報を受信するステップをさらに含む、（２５）に記載の方法。
（２７）前記格納するステップが、クライアント・キャッシュ項目の作成時刻を格納して、クライアント・キャッシュ項目時間レコードを作成するステップをさらに含み、
前記問い合わせするステップが、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記供給するステップが、前記判断するステップによってクライアント・キャッシュ項目が前記ウェブ・ブラウザが情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に応答してクライアント・キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップを含む、（２４）に記載の方法。
（２８）前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持するステップをさらに含む、（２７）に記載の方法。
（２９）前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記方法が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を供給するステップと、
ＣＧＩに対する要求であるブラウザ発信通信に応答して前記ウェブ・ブラウザに供給されるべきＨＴＴＰデータ・ストリームを、第１のコンピュータ内にあるキャッシュに格納して、クライアント・ベース・キャッシュ項目を作成するステップと、
前記クライアントＣＧＩベース書式を外部通信リンクを介して受信したＣＧＩ差分データと結合してＨＴＴＰデータ・ストリームを作成することによって、前記ウェブ・サーバからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップと、
前記ウェブ・サーバによって発信された前記通信をウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給するステップと
をさらに含む、（２２）に記載の方法。
（３０）前記再構築するステップが、前記外部通信リンクを介して受信したＣＧＩベース書式を前記外部通信リンクを介して受信したＣＧＩ差分データと結合して前記インタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、前記ウェブ・サーバからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築するステップを含み、
前記受信したサーバＣＧＩベース書式を前記ＣＧＩ要求に対応する前記クライアント・ベース・キャッシュ項目として格納することによって、前記ＣＧＩ要求に対応する前記クライアントＣＧＩベース書式を更新するステップをさらに含む、（２９）に記載の方法。
（３１）前記外部通信リンクを介して前記第１のコンピュータと前記第２のコンピュータの間に持続的接続を確立するステップと、
すべてのウェブ・ブラウザ発信通信が完了するまで前記持続的接続を維持するステップとをさらに含み、
前記インタセプト・ステップが、複数のウェブ・ブラウザ発信通信をインタセプトするステップと、及び前記持続的接続を維持している間にそれらの複数のウェブ・ブラウザ発信通信を前記外部通信リンクに多重化するステップを含む、（２２）に記載の方法。
（３２）前記外部通信リンクを介して前記第２のコンピュータからクライアント／サーバ固有データ・ストリームを受信するステップと、
前記ウェブ・ブラウザに前記複数のＨＴＴＰデータ・ストリームを供給するためにクライアント／サーバ固有データ・ストリームを多重化解除して複数のＨＴＴＰデータ・ストリームを作成するステップと、
前記複数のＨＴＴＰデータ・ストリームを前記ウェブ・ブラウザに供給するステップとをさらに含む、（３１）に記載の方法。
（３３）前記外部通信リンクを介して前記第２のコンピュータに前記第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を供給するステップをさらに含み、
前記変換するステップが、ウェブ・ブラウザ発信通信からコンピュータ固有情報を取り除くステップを含む、（２２）に記載の方法。
（３４）第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトするステップと、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換するステップと、
前記外部通信リンクを介して、前記変換されたウェブ・サーバ発信通信を前記ウェブ・ブラウザに前記クライアント／サーバ固有データ・ストリームとして送信するステップと
を含む方法。
（３５）ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ要求キャッシュ項目を作成するステップと、
前記ウェブ・ブラウザ発信通信をインタセプトして、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目がキャッシュに前に格納されているかどうかを判断するステップとをさらに含み、
前記変換するステップが、前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップを含み、
前記送信するステップが、前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信するステップを含む、（３４）に記載の方法。
（３６）前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断するステップをさらに含み、
前記変換するステップが、前記判断するステップによって前記サーバ要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔で作成されたと判断された場合に前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換するステップを含む、（３５）に記載の方法。
（３７）前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じ前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断するステップをさらに含み、
前記変換するステップが、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点と前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間間隔を計算して項目エージ・データを供給するステップを含み、
前記送信するステップが、前記ウェブ・ブラウザ発信通信に対応する前記サーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして外部通信リンクを介して第１のコンピュータに送信するステップを含む、（３５）に記載の方法。
（３８）前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記方法が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を提供するステップと、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成するステップと
をさらに含み、
前記インタセプトするステップが、前記インタセプトされたＣＧＩ要求に応答して前記ウェブ・サーバによって発信された前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで送信する前にインタセプトするステップと、
前記インタセプトされたＣＧＩ応答を前記サーバＣＧＩベース書式と比較して、前記インタセプトされたＣＧＩ応答と前記サーバＣＧＩベース書式との差分に対応するＣＧＩ差分データを提供するステップとを含み、
前記送信するステップが、前記ＣＧＩ差分データを前記外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして前記ウェブ・ブラウザに送信するステップを含む、（３４）に記載の方法。
（３９）前記サーバＣＧＩベース書式が前記ＣＧＩ要求に対応するクライアントＣＧＩベース書式と同じかどうかを判断するステップをさらに含み、
前記送信するステップが、前記サーバＣＧＩベース書式を送信し、かつ前記ＣＧＩ差分データを前記外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして前記ウェブ・ブラウザに送信するステップを含む、（３８）に記載の方法。
（４０）前記サーバＣＧＩベース書式と前記ＣＧＩ応答との前記差分が事前定義差分しきい値より大きいかどうかを判断するステップと、
前記判断するステップによってサーバＣＧＩベース書式とＣＧＩ応答との間の差分が事前定義差分しきい値より大きいと判断された場合、前記ＣＧＩ要求に対応する前記サーバ・ベース・キャッシュ項目として前記ウェブ・サーバから前記受信したＣＧＩ応答を格納することによって、前記ＣＧＩ要求に対応する前記サーバＣＧＩベース書式を更新するステップとをさらに含み、
前記比較するステップおよび前記送信するステップが、前記更新されたサーバＣＧＩベース書式を使用する、（３８）に記載の方法。
（４１）前記外部通信リンクを介して前記第１のコンピュータと前記第２のコンピュータの間に持続的接続を確立するステップと、
すべてのウェブ・ブラウザ発信通信が完了するまで前記持続的接続を維持するステップと
をさらに含み、
前記インタセプト・ステップが、複数のウェブ・サーバ発信通信をインタセプトするステップと、及び前記持続的接続を維持している間にそれらのウェブ・サーバ発信通信を前記外部通信リンクに多重化するステップとを含む、（３４）に記載の方法。
（４２）第１のコンピュータ上に常駐するクライアント・アプリケーションを有しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するサーバ・アプリケーションと通信するクライアント／サーバ・システムのパフォーマンスを向上させる方法であって、前記クライアント・アプリケーション及び前記サーバ・アプリケーションは、前記クライアントと前記サーバとの間の通信のためにクライアント／サーバ独立通信プロトコルを使用し、及び前記第１のコンピュータ内の前記クライアント・アプリケーションと前記第２のコンピュータ内のサーバ・アプリケーションとの間の前記通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記方法は、
前記遠隔クライアントによって発信された前記クライアント／サーバ独立通信プロトコルでの通信を、前記外部通信リンクで送信する前にインタセプトするステップと、
前記クライアントによって発信された前記通信を第２のクライアント／サーバ固有通信プロトコルに変換するステップと、
前記変換された通信を前記外部通信リンクを介して送信するステップと、
前記外部通信リンクを介して送信された前記通信を受信するステップと、
前記外部通信リンクを介して受信した前記通信を前記クライアント／サーバ固有通信プロトコルから前記クライアント／サーバ独立通信プロトコルに変換するステップと、
前記遠隔クライアントによって発信された前記通信を前記クライアント／サーバ独立通信プロトコルで前記サーバに供給するステップと
を含む方法。
（４３）前記サーバによって発信された前記クライアント／サーバ独立通信プロトコルでの通信を、前記外部通信リンクで前記通信の送信する前にインタセプトするステップと、
前記サーバによって発信された前記通信を第２のクライアント／サーバ固有通信プロトコルに変換するステップと、
前記変換された通信を外部通信リンクを介して送信するステップと、
前記外部通信リンクを介して送信された前記通信を受信するステップと、
前記外部通信リンクを介して受信した前記通信を前記クライアント／サーバ固有通信プロトコルから前記クライアント／サーバ独立通信プロトコルに変換するステップと、
前記サーバによって発信された前記通信を前記クライアント／サーバ独立通信プロトコルで前記遠隔クライアントに供給するステップと
をさらに含む、（４２）に記載の方法。
（４４）第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上向上させる装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・ブラウザによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記第２のコンピュータに前記クライアント／サーバ固有データ・ストリームとして送信する手段と、
前記外部通信リンクを介して送信されたクライアント／サーバ固有データ・ストリームを受信する手段と、
前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・ブラウザからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段と、
前記ウェブ・ブラウザによって発信された前記通信を、前記ウェブ・サーバにＨＴＴＰデータ・ストリームとして供給する手段と
を含む装置。
（４５）前記送信する手段が、前記変換されたウェブ・ブラウザ発信通信を、無線通信リンクを介して送信する手段をさらに含む、（４４）に記載の装置。
（４６）前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成する手段と、
前記ウェブ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段と、
ウェブ・ブラウザ発信通信に応答してウェブ・ブラウザにクライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給する手段と
を含む、（４４）に記載の装置。
（４７）前記第１のコンピュータ内にある前記ユーザ定義情報が提供するために、特定のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された前記情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断する手段と、
をさらに含み、
前記問い合わせする手段によって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応すると判断された場合に、前記供給する手段が、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段を含む、（４４）に記載の装置。
（４８）前記通信リンクを介して、前記第１のコンピュータから前記ユーザ定義情報を受信する手段をさらに含む、（４６）に記載の装置。
（４９）前記格納手段が、クライアント・キャッシュ項目の作成時刻を格納して、クライアント・キャッシュ項目時間レコードを作成する手段をさらに含み、
前記問い合わせする手段が、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が、前記ウェブ・ブラウザが前記情報を要求する前の所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記供給する手段が、前記判断手段によってクライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合、前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給する手段を含む、（４４）に記載の装置。
（５０）前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持する手段をさらに含む、（４９）に記載の装置。
（５１）前記ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ要求キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目が前記キャッシュに前に格納されているかどうかを判断する手段と、
前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段と、
前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信する手段と、及び
及び外部通信リンクを介して送信された及びクライアント／サーバ固有データ・ストリームを入手する手段と
をさらに含み、
前記再構築する手段が、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記サーバ要求キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段を含み、
前記供給する手段が、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段と
を含む、（４４）に記載の装置。
（５２）ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ要求キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信を評価して、前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が存在するかどうかを判断する手段と、
前記ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクでクライアント／サーバ固有データ・ストリームを送信することによって、前記外部通信リンクを介して前記第１のコンピュータに前記サーバ要求キャッシュ項目を送信する手段と、
前記第２のコンピュータによって前記外部通信リンクを介して送信された前記クライアント／サーバ固有データ・ストリームを入手する手段と
をさらに含み、
前記再構築する手段が、前記クライアント／サーバ固有通信プロトコルで受信した前記クライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、サーバ・キャッシュ項目に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段を含み、
前記供給する手段が、前記ウェブ・ブラウザによって要求された前記情報に対応する前記サーバ要求キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送する手段と
を含む、（４９）に記載の装置。
（５３）前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータがウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記変換する手段が、前記判断する手段によって前記サーバ要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段をさらに含む、（５２）に記載の装置。
（５４）前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段をさらに含み、
前記変換する手段が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点とウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間の間隔を計算して項目エージ・データを供給する手段を含み、
前記送信する手段が、前記ウェブ・ブラウザ発信通信に対応する前記サーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして前記外部通信リンクを介して前記第１のコンピュータに送信する手段を含み、
前記再構築する手段が、前記第１のコンピュータの現在時刻からコヒーレント項目応答から受け取った項目エージ・データを引くことによって、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャシュ項目時間レコードを更新する手段を含み、
前記供給する手段が、前記外部通信リンクからコヒーレント項目応答を受け取った場合に、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目として格納されたＨＴＴＰデータ・ストリームをウェブ・ブラウザにＨＴＴＰデータ・ストリームとして転送する手段を含む、（５２）に記載の装置。
（５５）前記インタセプトされたウェブ・ブラウザ発信通信がインタセプトされたＣＧＩ要求であり、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を供給する手段と、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を供給する手段と、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータにあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成する手段と、
ＣＧＩに対する要求であるブラウザ発信通信に応答して前記ウェブ・ブラウザに供給されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータにあるキャッシュに格納して、クライアント・ベース・キャッシュ項目を作成する手段と、
前記インタセプトされたＣＧＩ要求に応答して前記ウェブ・サーバによって発信された前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで前記ＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記インタセプトされたＣＧＩ要求を前記サーバＣＧＩベース書式と比較して、前記インタセプトされたＣＧＩ応答とサーバＣＧＩベース書式との差分に対応するＣＧＩ差分データを供給する手段と、
前記ウェブ・ブラウザに対するＣＧＩ差分データを前記外部通信リンクを介して前記第１のコンピュータに、クライアント／サーバ固有データ・ストリームとして送信する手段と、
前記第２のコンピュータによって送信された前記外部通信リンクを介して伝送された前記クライアント／サーバ固有データ・ストリームを入手する手段と
をさらに含み、
前記再構築する手段が、前記クライアントＣＧＩベース書式を前記外部通信リンクを介して受信したＣＧＩ差分データと結合して前記インタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、ウェブ・サーバからの通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段を含み、
前記供給する手段が、前記ウェブ・サーバによって発信された前記通信を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する、（４４）に記載の装置。
（５６）前記サーバＣＧＩベース書式がクライアントＣＧＩベース書式と同じかどうかを判断する手段をさらに含み、
前記送信する手段が、前記サーバＣＧＩベース書式を送信し、かつ前記ＣＧＩ差分データを前記外部通信リンクを介して前記ウェブ・ブラウザにクライアント／サーバ固有データ・ストリームとして送信する手段を含み、
前記再構築する手段が、前記サーバＣＧＩベース書式を外部通信リンクを介して受信したＣＧＩ差分データと結合して前記インタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、前記ウェブ・サーバからの前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアントサーバ固有データ・ストリームから再構築する手段を含み、
前記受信したサーバＣＧＩベース書式を前記ＣＧＩ要求に対応する前記クライアント・ベース・キャッシュ項目として格納することによって、前記ＣＧＩ要求に対応する前記クライアントＣＧＩベース書式を更新する手段をさらに含む、（５５）に記載の装置。
（５７）前記サーバＣＧＩベース書式と前記ＣＧＩ応答との前記差分が事前定義差分しきい値より大きいかどうかを判断する手段と、
前記サーバＣＧＩベース書式とＣＧＩ応答との間の差分が事前定義差分しきい値より大きいと前記判断手段が判断した場合、前記ウェブ・サーバから受信した前記ＣＧＩ要求を前記ＣＧＩ要求に対応する前記サーバ・ベース・キャッシュ項目として格納することによって、前記ＣＧＩ要求に対応する前記サーバＣＧＩベース書式を更新する手段とをさらに含み、
前記比較手段および前記送信する手段が、更新されたサーバＣＧＩベース書式を使用する、（５６）に記載の装置。
（５８）前記外部通信リンクを介して前記第１のコンピュータと前記第２のコンピュータとの間に持続的接続を確立する手段と、
すべてのウェブ・ブラウザ発信通信が完了するまで前記持続的接続を維持する手段と
をさらに含み、
前記インタセプト手段が、複数のウェブ・ブラウザ発信通信をインタセプトする手段と、及び前記持続的接続を維持している間にそれらのウェブ・ブラウザ発信通信を前記外部通信リンクに多重化する手段とを含む、（４４）に記載の装置。
（５９）前記再構築する手段が、前記クライアント／サーバ固有データ・ストリームを多重化解除して、複数のＨＴＴＰデータ・ストリームを作成する手段を含み、
前記供給する手段が、前記複数のＨＴＴＰデータ・ストリームを前記ウェブ・サーバに供給する手段を含む、（５８）に記載の装置。
（６０）前記外部通信リンクを介して前記第２のコンピュータに前記第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を供給する手段と、
前記第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を格納してブラウザ・ヘッダ情報を供給する手段と
をさらに含み、
前記変換する手段が、前記ウェブ・ブラウザ発信通信から前記コンピュータ固有情報を取り除く手段を含み、
前記再構築する手段が、前記ブラウザ・ヘッダ情報を前記クライアント／サーバ固有データ・ストリームと結合してＨＴＴＰデータ・ストリームを作成する手段を含む、（４４）に記載の装置。
（６１）前記ウェブ・サーバによって発信された通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで送信する前にキャプチャする手段と、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記変換されたウェブ・サーバ発信通信を前記外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして前記ウェブ・ブラウザに送信する手段と、
前記外部通信リンクを介して送信された前記クライアント／サーバ固有データ・ストリームを入手する手段と、
前記クライアント／サーバ固有通信プロトコルで受信したクライアント／サーバ固有データ・ストリームをＨＴＴＰデータ・ストリームに変換することによって、前記ウェブ・サーバからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段と、及び
前記ウェブ・サーバによって発信された前記通信を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段とをさらに含む、（４４）に記載の装置。
（６２）前記外部通信リンクを介して前記第１のコンピュータに、前記第２のコンピュータの事前定義特性に対応するコンピュータ固有情報を提供する手段と、
第２のコンピュータの前記事前定義特性に対応する前記コンピュータ固有情報を格納して、サーバ・ヘッダ情報を供給する手段と
をさらに含み、
前期変換する手段が前記ウェブ・サーバ発信通信から前記コンピュータ固有情報を取り除く手段を含み、
前記再構築する手段が、前記サーバ・ヘッダ情報を前記クライアント／サーバ固有データ・ストリームと結合して、ＨＴＴＰデータ・ストリームを作成する手段を含む、（６１）に記載の装置。
（６３）前記第１のコンピュータと前記第２のコンピュータの間に前記外部通信リンクを介して持続的接続を確立する手段と、
すべてのウェブ・サーバ発信通信が完了するまで前記持続的接続を維持する手段と
をさらに含み、
前記キャプチャ手段が、複数のウェブ・サーバ発信通信をインタセプトし、かつ前記持続的接続を維持している間にそれらのウェブ・サーバ発信通信を前記外部通信リンクに多重化する手段とを含む、（６１）に記載の装置。
（６４）前記再構築する手段が前記クライアント／サーバ固有データ・ストリームを多重化解除して、複数のＨＴＴＰデータ・ストリームを作成する手段を含み、
前記（６１記載の供給する手段が前記複数のＨＴＴＰデータ・ストリームをウェブ・サーバに供給する手段を含む、（６３）に記載の装置。
（６５）第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上させる装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・ブラウザによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクリンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・ブラウザによって発信され前記たＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・ブラウザ発信通信を前記ウェブ・サーバに前記クライアント／サーバ固有データ・ストリームとして送信する手段と
を含む装置。
（６６）前記送信する手段が、前記変換されたウェブ・ブラウザ発信通信を無線通信リンクを介して送信する手段を含む、（６５）に記載の装置。
（６７）前記ウェブ・サーバとのウェブ・ブラウザ発信通信に応答して、前記ウェブ・ブラウザによって受信されるべきＨＴＴＰデータ・ストリームを前記第１のコンピュータ内にあるキャッシュに格納して、前記ウェブ・サーバとの前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段と、
前記ウェブ・ブラウザ発信通信に応答して前記ウェブ・ブラウザに前記クライアント・キャッシュ項目をＨＴＴＰデータ・ストリームとして供給する手段と
を含む、（６５）に記載の装置。
（６８）前記第１のコンピュータ内にある前記ユーザ定義情報が提供するために、固有のウェブ・ブラウザ情報要求に関連づけられたユーザ定義情報を格納する手段と、
前記ウェブ・ブラウザ発信通信に問い合わせて、前記ウェブ・ブラウザによって要求された情報が、ユーザ定義情報が格納されている要求に対応しているかどうかを判断する手段と、
前記問い合わせする手段によって前記ウェブ・ブラウザ通信がユーザ定義情報が格納されている要求に対応していると判断された場合に、前記ウェブ・ブラウザ発信通信に応答して前記ユーザ定義格納情報を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段と
をさらに含む、（６５）に記載の装置。
（６９）前記通信リンクを介して前記第１のコンピュータから前記ユーザ定義情報を受信する手段をさらに含む、（６８）に記載の装置。
（７０）前記格納する手段が、クライアント・キャッシュ項目の作成時刻を格納してクライアント・キャッシュ項目時間レコードを作成する手段をさらに含み、
前記問い合わせ手段が、前記クライアント・キャッシュ項目時間レコードを評価して、前記ウェブ・ブラウザ発信通信に対応する前記クライアント・キャッシュ項目が前記ウェブ・ブラウザが前記情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記供給する手段が、前記判断する手段によってクライアント・キャッシュ項目が前記ウェブ・ブラウザが情報を要求する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたと判断された場合に、前記ウェブ・ブラウザ発信通信に応答してクライアント・キャッシュ項目を前記ウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段を含む、（６７）に記載の装置。
（７１）前記ウェブ・ブラウザの複数のインスタンスにわたってクライアント・キャッシュ項目を維持する手段をさらに含む、（７０）に記載の装置。
（７２）前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記装置が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するクライアント・ベース・キャッシュ項目が存在するかどうかを判断し、クライアントＣＧＩベース書式を供給する手段と、
ＣＧＩに対する要求であるブラウザ発信通信に応答してウェブ・ブラウザに供給されるべきＨＴＴＰデータ・ストリームを、第１のコンピュータ内にあるキャッシュに格納して、クライアント・ベース・キャッシュ項目を作成する手段と、
前記クライアントＣＧＩベース書式を外部通信リンクを介して受信したＣＧＩ差分データと結合してＨＴＴＰデータ・ストリームを作成することによって、前記ウェブ・サーバからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段と、
前記ウェブ・サーバによって発信された前記通信をウェブ・ブラウザにＨＴＴＰデータ・ストリームとして供給する手段と
をさらに含む、（６５）に記載の装置。
（７３）前記再構築する手段が、前記外部通信リンクを介して受信したサーバＣＧＩベース書式を前記外部通信リンクを介して受信したＣＧＩ差分データと結合して前記インタセプトされたＣＧＩ応答に対応するＨＴＴＰデータ・ストリームを作成することによって、前記ウェブ・サーバからの通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクを介して受信した前記クライアント／サーバ固有データ・ストリームから再構築する手段を含み、
前記受信したサーバＣＧＩベース書式を前記ＣＧＩ要求に対応する前記クライアント・ベース・キャッシュ項目として格納することによって、前記ＣＧＩ要求に対応する前記クライアントＣＧＩベース書式を更新する手段をさらに含む、（７２記載の装置。
（７４）前記外部通信リンクを介して前記第１のコンピュータと前記第２のコンピュータの間に持続的接続を確立する手段と、
すべてのウェブ・ブラウザ発信通信が完了するまで前記持続的接続を維持する手段とをさらに含み、
前記インタセプト手段が、複数のウェブ・ブラウザ発信通信をインタセプトする手段と、及び前記持続的接続を維持している間にそれらの複数のウェブ・ブラウザ発信手段を外部通信リンクに多重化する手段を含む、（６５）に記載の装置
（７５）前記外部通信リンクを介して前記第２のコンピュータからクライアント／サーバ固有データ・ストリームを受信する手段と、
前記ウェブ・ブラウザに前記複数のＨＴＴＰデータ・ストリームを供給するためにクライアント／サーバ固有データ・ストリームを多重化解除して複数のＨＴＴＰデータ・ストリームを作成する手段と、
前記複数のＨＴＴＰデータ・ストリームを前記ウェブ・ブラウザに供給する手段とをさらに含む、（７４）に記載の装置。
（７６）前記外部通信リンクを介して前記第２のコンピュータに前記第１のコンピュータの事前定義特性に対応するコンピュータ固有情報を供給する手段をさらに含み、
前記変換する手段が、ウェブ・ブラウザ発信通信からコンピュータ固有情報を取り除く手段を含む、（６５）に記載の装置。
（７７）第１のコンピュータ上に常駐しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するウェブ・サーバ・アプリケーションとハイパーテキスト転送プロトコル（ＨＴＴＰ）を使用して通信するウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する装置であって、前記第１のコンピュータ内のウェブ・ブラウザ・アプリケーションと前記第２のコンピュータ内のウェブ・サーバ・アプリケーションとの間の通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記ウェブ・サーバによって発信された通信に対応するＨＴＴＰデータ・ストリームを、前記外部通信リンクでＨＴＴＰデータ・ストリームを送信する前にインタセプトする手段と、
前記ウェブ・サーバによって発信された前記ＨＴＴＰデータ・ストリームを、前記ＨＴＴＰプロトコルからクライアント／サーバ固有通信プロトコルに変換する手段と、
前記外部通信リンクを介して、前記変換されたウェブ・サーバ発信通信を前記ウェブ・ブラウザに前記クライアント／サーバ固有データ・ストリームとして送信する手段と
を含む装置。
（７８）ブラウザ発信通信に応答して前記ウェブ・サーバから受信した前記ＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納してサーバ要求キャッシュ項目を作成する手段と、
前記ウェブ・ブラウザ発信通信をインタセプトして、前記ブラウザ発信通信に対応するサーバ要求キャッシュ項目がキャッシュに前に格納されているかどうかを判断する手段とをさらに含み、
前記変換する手段が、前記ブラウザ発信通信に関連づけられた前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段を含み、
前記送信する手段が、前記変換されたサーバ要求キャッシュ項目を前記外部通信リンクを介して前記第１のコンピュータにクライアント／サーバ固有データ・ストリームとして送信する手段を含む、（７７）に記載の装置。
（７９）前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が、前記第２のコンピュータがウェブ・ブラウザ発信通信を受信する前に所定のクライアント・コヒーレンシ時間間隔内に作成されたかどうかを判断する手段をさらに含み、
前記変換する手段が、前記判断手段によって前記サーバと要求キャッシュ項目が前記所定のクライアント・コヒーレンシ時間間隔で作成されたと判断された場合に前記ウェブ・ブラウザ発信通信に対応する前記サーバ要求キャッシュ項目をクライアント／サーバ固有通信プロトコルに変換する手段を含む、（７８）に記載の装置。
（８０）前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目と同じ前記ウェブ・ブラウザ発信通信に対応するクライアント・キャッシュ項目が存在するかどうかを判断する手段をさらに含み、
前記変換する手段が、前記第２のコンピュータが前記ウェブ・ブラウザ発信通信を受信した時点と前記ウェブ・ブラウザ発信通信に対応するサーバ要求キャッシュ項目が作成された時点との間の時間間隔を計算して項目エージ・データを供給する手段を含み、
前記送信する手段が、前記ウェブ・ブラウザ発信通信に対応するサーバ・キャッシュ項目の前記項目エージ・データを含むコヒーレント項目応答を前記クライアント／サーバ固有プロトコルとして外部通信リンクを介して第１のコンピュータに送信する手段を含む、（７８）に記載の装置。
（８１）前記ウェブ・ブラウザ発信通信が、共通ゲートウェイ・インタフェース（ＣＧＩ）要求に対応し、
前記装置が、
前記インタセプトされたＣＧＩ要求に問い合わせて、前記インタセプトされたＣＧＩ要求に対応するサーバ・ベース・キャッシュ項目が存在するかどうかを判断し、サーバＣＧＩベース書式を提供する手段と、
共通ゲートウェイ・インタフェース（ＣＧＩ）に対する要求であるブラウザ発信通信に応答して前記ウェブ・サーバから受信したＨＴＴＰデータ・ストリームを前記第２のコンピュータ内にあるキャッシュに格納して、サーバ・ベース・キャッシュ項目を作成する手段と
をさらに含み、
前記インタセプトする手段が、前記インタセプトされたＣＧＩ要求に応答して前記ウェブ・サーバによって発信された前記通信に対応する前記ＨＴＴＰデータ・ストリームを、前記外部通信リンクで送信する前にインタセプトする手段と、
前記インタセプトされたＣＧＩ応答を前記サーバＣＧＩベース書式と比較して、前記インタセプトされたＣＧＩ応答と前記サーバＣＧＩベース書式との差分に対応するＣＧＩ差分データを提供する手段とを含み、
前記送信する手段が、前記ＣＧＩ差分データを前記外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして前記ウェブ・ブラウザに送信する手段を含む、（７７）に記載の装置。
（８２）前記サーバＣＧＩベース書式が前記ＣＧＩ要求に対応するクライアントＣＧＩベース書式と同じかどうかを判断する手段をさらに含み、
前記送信する手段が、前記サーバＣＧＩベース書式を送信し、かつ前記ＣＧＩ差分データを前記外部通信リンクを介してクライアント／サーバ固有データ・ストリームとして前記ウェブ・ブラウザに送信する手段とを含む、（８１）に記載の装置。
（８３）前記サーバＣＧＩベース書式と前記ＣＧＩ応答との前記差分が事前定義差分しきい値より大きいかどうかを判断する手段と、
前記判断手段によってサーバＣＧＩベース書式とＣＧＩ応答との間の差分が事前定義差分しきい値より大きいと判断された場合、前記ＣＧＩ要求に対応する前記サーバ・ベース・キャッシュ項目として前記ウェブ・サーバから前記受信したＣＧＩ応答を格納することによって、前記ＣＧＩ要求に対応する前記サーバＣＧＩベース書式を更新する手段とをさらに含み、
前記比較する手段および前記送信する手段が、前記更新されたサーバＣＧＩベース書式を使用する、（８１）に記載の装置。
（８４）前記外部通信リンクを介して前記第１のコンピュータと前記第２のコンピュータの間に持続的接続を確立する手段と、
すべてのウェブ・ブラウザ発信通信が完了するまで前記持続的接続を維持する手段と
をさらに含み、
前記インタセプトする手段が、複数のウェブ・サーバ発信通信をインタセプトする手段と、及び前記持続的接続を維持している間にそれらのウェブ・サーバ発信通信を前記外部通信リンクに多重化する手段とを含む、（７７）に記載の装置。
（８５）第１のコンピュータ上に常駐するクライアント・アプリケーションを有しかつ第１のコンピュータからは遠隔にある第２のコンピュータ上に常駐するサーバ・アプリケーションと通信するクライアント／サーバ・システムのパフォーマンスを向上させる装置であって、前記クライアント・アプリケーション及び前記サーバ・アプリケーションは、前記クライアントと前記サーバとの間の通信のためにクライアント／サーバ独立通信プロトコルを使用し、及び前記第１のコンピュータ内の前記クライアント・アプリケーションと前記第２のコンピュータ内のサーバ・アプリケーションとの間の前記通信の少なくとも１セグメントが外部通信リンクを介して行われ、
前記装置は、
前記遠隔クライアントによって発信された前記クライアント／サーバ独立通信プロトコルでの通信を、前記外部通信リンクで送信する前にインタセプトする手段と、
前記クライアントによって発信された前記通信を第２のクライアント／サーバ固有通信プロトコルに変換する手段と、
前記変換された通信を前記外部通信リンクを介して送信する手段と、
前記外部通信リンクを介して送信された前記通信を受信する手段と、
前記外部通信リンクを介して受信した前記通信を前記クライアント／サーバ固有通信プロトコルから前記クライアント／サーバ独立通信プロトコルに変換する手段と、
前記前記遠隔クライアントによって発信された通信を前記クライアント／サーバ独立通信プロトコルで前記サーバに供給する手段と
を含む装置。
（８６）前記サーバによって発信された前記クライアント／サーバ独立通信プロトコルでの通信を、前記外部通信リンクで前記通信の送信する前にインタセプトする手段と、
前記サーバによって発信された前記通信を第２のクライアント／サーバ固有通信プロトコルに変換する手段と、
前記変換された通信を外部通信リンクを介して送信する手段と、
前記外部通信リンクを介して送信された前記通信を受信する手段と、
前記外部通信リンクを介して受信した前記通信を前記クライアント／サーバ固有通信プロトコルから前記クライアント／サーバ独立通信プロトコルに変換する手段と、
前記サーバによって発信された前記通信を前記クライアント／サーバ独立通信プロトコルで前記遠隔クライアントに供給する手段と
をさらに含む、（８５）に記載の装置。
【図面の簡単な説明】
【０１２２】
【図１】第１図は、典型的なウェブ・ブラウザ／ウェブ・サーバ・システムを示すブロック図である。
【図２】第２図は、クライアント・インタセプトとサーバ・インタセプトを使用する本発明の一実施態様によるウェブ・ブラウザ／ウェブ・サーバ・システムを示すブロック図である。
【図３】第３図は、コヒーレント・キャッシュ・システムを実施する本発明の好ましい実施例において、クライアント側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図４】第４図は、コヒーレント・キャッシュ・システムを実施する本発明の好ましい実施例において、クライアント側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図５】第５図は、コヒーレント・キャッシュ・システムを実施する本発明の好ましい実施例において、サーバ側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図６】第６図は、コヒーレント・キャッシュ・システムを実施する本発明の好ましい実施例において、サーバ側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図７】第７図は、差分計算データ転送システムを実施する本発明の好ましい実施例において、クライアント側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図８】第８図は、差分計算データ転送システムを実施する本発明の好ましい実施例において、クライアント側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図９】第９図は、差分計算データ転送システムを実施する本発明の好ましい実施例において、サーバ側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図１０】第１０図は、差分計算転送システムを実施する本発明の好ましい実施例において、サーバ側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図１０Ａ】第１０図は、差分計算転送システムを実施する本発明の好ましい実施例において、サーバ側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図１０Ｂ】第１０図は、差分計算転送システムを実施する本発明の好ましい実施例において、サーバ側インタセプト・モジュールによって行われる操作を図示する流れ図である。
【図１１】第１１図は、仮想ソケットを使用する本発明の一態様を示すブロック図である。
【図１２】第１２図は、仮想ソケットを使用する本発明の一実施例による、クライアント側インタセプト・モジュールとサーバ側インタセプト・モジュールを示すブロック図である。
【図１３】第１３図は、仮想ソケットを使用する本発明の一実施例による、クライアント側インタセプト・モジュールまたはサーバ側インタセプト・モジュールのソケット・マネージャによって行われる操作を図示する流れ図である。
【図１３Ａ】第１３図は、仮想ソケットを使用する本発明の一実施例による、クライアント側インタセプト・モジュールまたはサーバ側インタセプト・モジュールのソケット・マネージャによって行われる操作を図示する流れ図である。
【図１３Ｂ】第１３図は、仮想ソケットを使用する本発明の一実施例による、クライアント側インタセプト・モジュールまたはサーバ側インタセプト・モジュールのソケット・マネージャによって行われる操作を図示する流れ図である。
【図１４】第１４図は、仮想ソケットを使用する本発明の一実施例において、クライアント側インタセプト機能によって行われる操作を図示する流れ図である。
【図１５】第１５図は、仮想ソケットを使用する本発明の一実施例において、サーバ側インタセプト機能によって行われる操作を図示する流れ図である。
【図１６−１】第１６−１図は、仮想ソケットを使用する本発明の一実施例による、仮想作成操作を図示する流れ図である。
【図１６−２】第１６−２図は、仮想ソケットを使用する本発明の一実施例による仮想送信操作を図示する流れ図である。
【図１６−３】第１６−３図は、仮想ソケットを使用する本発明の一実施例による仮想受信操作を図示する流れ図である。
【図１６−４】第１６−４図は、仮想ソケットを使用する本発明の一実施例による仮想選択操作を図示する流れ図である。
【図１７−１】第１７−１図は、仮想ソケットを使用する本発明の一実施例による仮想フラッシュ操作を図示する流れ図である。
【図１７−２】第１７−２図は、仮想ソケットを使用する本発明の一実施例による仮想クローズ操作を図示する流れ図である。
【図１】
2004164630.tif 000003
【図２】
2004164630.tif 000004
【図３】
2004164630.tif 000005
【図４】
2004164630.tif 000006
【図５】
2004164630.tif 000007
【図６】
2004164630.tif 000008
【図７】
2004164630.tif 000009
【図８】
2004164630.tif 000010
【図９】
2004164630.tif 000011
【図１０】
2004164630.tif 000012
【図１０Ａ】
2004164630.tif 000013
【図１０Ｂ】
2004164630.tif 000014
【図１１】
2004164630.tif 000015
【図１２】
2004164630.tif 000016
【図１３】
2004164630.tif 000017
【図１３Ａ】
2004164630.tif 000018
【図１３Ｂ】
2004164630.tif 000019
【図１４】
2004164630.tif 000020
【図１５】
2004164630.tif 000021
【図１６−１】
2004164630.tif 000022
【図１６−２】
2004164630.tif 000023
【図１６−３】
2004164630.tif 000024
【図１６−４】
2004164630.tif 000025
【図１７−１】
2004164630.tif 000026
【図１７−２】
2004164630.tif 000027