(57)【要約】【課題】ローカルサイトとリモートサイトとの間のデータ転送効率を向上させ、かつＷｅｂサーバ側の負荷を軽減させる。【解決手段】ブラウザからのリクエストに応じてＲプロキシからオブジェクトを取得してブラウザへ送信するための処理を行うＬプロキシにおけるデータの処理方法において、ブラウザからのファイル取得リクエストを受けて、Ｒプロキシにリクエストを送信し、Ｒプロキシから受信したレスポンスを解析して、そのレスポンスに含まれるオブジェクトに関するリストを作成する。そしてオブジェクトリスト中のオブジェクトを取得するためにそのオブジェクトリストをＲプロキシへ送信すると共に、Ｒプロキシから受信したレスポンスをブラウザへ送信する。ブラウザでは受信したレスポンスに基き例えばフレームの表示を行う。Ｒプロキシではオブジェクトリストに関連するオブジェクトの実体を取得し、ＬプロキシはＲプロキシからそのオブジェクトの実体を受信し、それをブラウザへ送信する。【選択図】  図２
2005267499.tif 000002
【特許請求の範囲】
【請求項１】
ローカルプロキシとリモートプロキシと間のデータの通信方法において、
ブラウザからのファイル取得リクエストを受けて、リモートプロキシにリクエストを送信するステップと、
リモートプロキシは、該リクエストを関連するＷｅｂサーバに送信して、レスポンスを受信し、該レスポンスをローカルプロキシへ送信するステップと、
ローカルプロキシは、受信したレスポンスを解析して、該レスポンスに含まれるオブジェクトに関するリストを作成し、オブジェクトを取得するために該オブジェクトリストをリモートプロキシへ送信すると共に、ブラウザへはオブジェクトを含まないことがあるレスポンスを送信するステップと、
リモートプロキシは、受信した該オブジェクトリストに含まれるオブジェクトを、関連するＷｅｂサーバから取得して、ローカルプロキシへレスポンスを送信するステップと、
ローカルプロキシは、リモートプロキシから受信したレスポンスからオブジェクトの実体をブラウザに送信するステップと、
を有することを特徴とする通信方法。
【請求項２】
前記ブラウザは、
ローカルプロキシから受信したレスポンスからオブジェクトを含まないフレームを表示器に表示するステップと、
該フレーム中に含まれる全てのオブジェトの実体を取得するまで、順次該ローカルプロキシに対してリクエストを送信し、該リクエストに対するオブジェクトの実体を取得するステップと、
を有することを特徴とする請求項１記載の通信方法。
【請求項３】
該リモートプロキシは、関連するＷｅｂサーバから取得した１又は複数のオブジェクトの実体をパック(pack)かつ圧縮処理したデータを、レスポンスとして該ローカルプロキシに送信するステップと、
該ローカルプロキシは、受信した該レスポンスのデータの圧縮を解凍し、かつアンパック(unpack)処理すると共に、該オブジェクトの実体のデータをキャッシュメモリに格納する処理を行うステップと、
を含むことを特徴とする請求項１又は２記載の通信方法。
【請求項４】
ローカルプロキシからブラウザへオブジェクトを含まないレスポンスデータを送信して、オブジェクトを含まないフレームを表示器に表示するステップと、該リモートプロキシが、該オブジェクトリストに含まれるオブジェクトを、関連するＷｅｂサーバから取得するための処理ステップとを並行的に行うことを特徴とする請求項１乃至３のいずれか記載の通信方法。
【請求項５】
該オブジェクトリストに含まれるオブジェクトが複数有る場合、リモートプロキシとローカルプロキシとの間で行われるオブジェクトの実体を送るための通信は、予め定められたセッションの数ずつ分けて行われることを特徴とする請求項１乃至４のいずれか記載の通信方法。
【請求項６】
該ローカルプロキシは、該リモートプロキシから送信され、受信したレスポンスの情報中のＨＴＭＬ記述に基いてオブジェクトリストを作成することを特徴とする請求項１乃至５のいずれか記載の通信方法。
【請求項７】
該ローカルプロキシは、作成したオブジェクトリスト中のオブジェクトが該キャッシュメモリに登録されているか否かをチェックし、登録されている場合にはそのオブジェクトをIf Modified-Sinceリストに登録することを特徴とする請求項１乃至６のいずれか記載の通信方法。
【請求項８】
該ローカルプロキシは、該ブラウザから要求されたオブジェクトをリモートプロキシから取得して、該ブラウザへレスポンスを送信したら、該オブジェクトリストから送信済みのオブジェクトに関する情報を削除することを特徴とする請求項１乃至７いずれか記載の通信方法。
【請求項９】
ブラウザからのリクエストに応じてリモートプロキシからオブジェクトを取得してブラウザへ送信するための処理を行うローカルプロキシにおけるデータの処理方法において、
ブラウザからのファイル取得リクエストを受けて、リモートプロキシにリクエストを送信するステップと、
該リモートプロキシから受信したレスポンスを解析して、該レスポンスに含まれるオブジェクトに関するリストを作成するステップと、
該オブジェクトリスト中のオブジェクトを取得するために該オブジェクトリストをリモートプロキシへ送信するステップと、
該リモートプロキシから受信したレスポンスをブラウザへ送信するステップと、
該オブジェクトリストに関連するオブジェクトの実体を該リモートプロキシから受信するステップと、
取得したオブジェクトの実体のデータをブラウザへ送信するステップと、
を有するローカルプロキシにおけるデータ処理方法。
【請求項１０】
該ローカルプロキシは、受信した該レスポンスのデータの圧縮を解凍し、かつパックされたオブジェクトをアンパック(unpack)処理すると共に、該オブジェクトの実体のデータをキャッシュメモリに格納する処理を行うステップを有することを特徴とする請求項９記載のローカルプロキシにおけるデータ処理方法。
【請求項１１】
ローカルプロキシは、ブラウザへオブジェクトを含まないレスポンスデータを送信して、オブジェクトを含まないフレームを表示器に表示させるステップと、該リモートプロキシから該オブジェクトリストに含まれるオブジェクトを取得する処理ステップとを並行的に行うことを特徴とする請求項９又は１０記載のローカルプロキシにおけるデータ処理方法。
【請求項１２】
該オブジェクトリストに含まれるオブジェクトが複数有る場合、該リモートサイトは、予め定められたセッションの数ずつ分けて、該リモートプロキシからオブジェクトの実体を受信することを特徴とする請求項９又は１１記載のローカルプロキシにおけるデータ処理方法。
【請求項１３】
該ローカルプロキシは、該リモートプロキシから送信されて、受信したレスポンスの情報中のＨＴＭＬ記述からオブジェクトリストを作成することを特徴とする請求項９又は１２記載のローカルプロキシにおけるデータ処理方法。
【請求項１４】
該ローカルプロキシは、作成したオブジェクトリスト中のオブジェクトが該キャッシュメモリに登録されているか否かをチェックし、登録されている場合にはそのオブジェクトをIf Modified-Sinceリストに登録することを特徴とする請求項９又は１３記載のローカルプロキシにおけるデータ処理方法。
【請求項１５】
ローカルプロキシからのリクエストを受けてＷｅｂサーバに対する問い合せ処理を行うリモートプロキシにおけるデータ処理方法において、
該ローカルプロキシからのリクエストを受信し、Ｗｅｂサーバに該リクエストを送信するステップと、
Ｗｅｂサーバから該リクエストに対するレスポンスを受信して、それをローカルプロキシへ送信する第１の送信ステップと、
ローカルプロキシから送信されたオブジェクトリストを受信し、該リストに含まれるオブジェクトを、該Ｗｅｂサーバから取得するステップと、
取得した該オブジェクトをパック処理及び圧縮処理した後、レスポンスとして該ローカルプロキシへ送信する第２の送信ステップと、
を有することを特徴とするリモートプロキシにおけるデータ処理方法。
【請求項１６】
請求項９又は１５記載の処理を実行することを特徴とするプログラム。
【請求項１７】
ブラウザからのリクエストに応じてリモートプロキシからオブジェクトを取得してブラウザへ送信するための処理を行うローカルプロキシにおいて、
ブラウザからのファイル取得リクエスト及びリモートプロキシからのレスポンスの送受信を行う基本処理部と、
該リモートプロキシから受信したレスポンスを解析すると共に、該レスポンスに含まれるオブジェクトに関するリストを作成する解析処理部と、
該リモートプロキシから取得したオブジェクトのデータを格納するキャッシュメモリと、
圧縮されたオブジェクトのデータを解凍処理する解凍処理部と、を有し、
該基本処理部は、該リモートプロキシから受信したレスポンスをブラウザへ送信し、また該オブジェクトリスト中のオブジェクトを取得するために、作成された該オブジェクトリストをリモートプロキシへ送信し、
該ブラウザからの要求に従い、リモートプロキシから取得した、又は該キャッシュメモリに格納されているオブジェクトの実体のデータをブラウザへ送信することを特徴とするローカルプロキシ。
【請求項１８】
ブラウザからのリクエストに応じてリモートプロキシからオブジェクトを取得してブラウザへ送信するための処理を行うプロキシシステムにおいて、
ブラウザからのリクエストを中継して、該リモートプロキシへ該リクエストを送信し、該リモートプロキシから受信したレスポンスを解析して、該レスポンスに含まれるオブジェクトを算出し、
算出した該オブジェクトを取得するための要求を該リモートプロキシへ送信して、該リモートプロキシから該オブジェクトの実体データを含むレスポンスを取得し、
該ブラウザからのリクエストに応じて該オブジェクトの実体データを該ブラウザへ送信することを特徴とするプロキシシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信方法に係り、特にネットワークを介してＷＷＷ（World Wide Web）サーバとクライアントとの間でデータの送受信を行うＷＷＷシステムにおけるデータの通信方法、より詳細にはローカルプロキシとリモートプロキシの間のデータ送受信及びプロキシにおけるデータ処理に関するものである。
【背景技術】
【０００２】
インターネットを利用して、クライアントＰＣ（パーソナルコンピュータ）側のＷＷＷブラウザから要求に応じて、ＷＷＷサーバに保持されているホームページなどのファイルを取得し、クライアントＰＣに表示することが日常的に行われている。
ＷＷＷサーバが保持する多量のファイルには、通常、テキストデータや画像、音楽、動画などのコンテンツが含まれているので、ファイルをクライアントＰＣへ送信する時には、これらのコンテンツもそれぞれ転送する。
【０００３】
あるホームページに関するファイルおよびそれに関係するコンテンツをＷＷＷサーバからクライアントＰＣへ送信する場合、コンテンツ毎にネットワーク上での呼設定が発生し、その度に大量のコンテンツを含むファイルがＷＷＷサーバからクライアントＰＣへ送信されることなる。この場合、ＰＣではコンテンツの取得に時間がかかり、コンテンツの種類によっては表示に相当の時間を要したり、またあるコンテンツはＷＷＷサーバから受信できないこともある。
【０００４】
従来、ネットワークの呼設定を減らし、転送効率を向上させるために、ＷＷＷブラウザが要求したファイルおよびそのファイルから参照されるコンテンツを一括してＷＷＷサーバプロキシからＷＷＷブラウザへ転送するＷＷＷシステムが提案されている。この技術は、例えば特開２０００−２０４１５公報（特許文献１）に開示されている。
【０００５】
また、ＷＷＷシステムにおけるデータの転送のスループットを向上させるために、ＷＷＷサーバとしてキャッシュサーバを備え、ＷＷＷブラウザが一度アクセスしたファイルやコンテンツはこのキャッシュサーバに保持しておき、新しいファイルを受信するとキャッシュサーバ内の関係するファイルを更新すると共に、クライアントＰＣからの要求に対して、このキャッシュサーバに目的のファイルが存在すればこのキャッシュサーバから１回のリクエストで表示に必要な全てのデータファイルを転送する技術が知られている。この種の技術は例えば、特開２００２−１４９５３３公報（特許文献２）に開示されている。
【０００６】
【特許文献１】特開２０００−２０４１５公報
【０００７】
【特許文献２】特開２００２−１４９５３３公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献１によれば、ブラウザから要求されたファイルに含まれるコンテンツを一括して要求元へ転送するようにしている。そのため、例えば図１４に示すように、１つのＷｅｂページＡにＢからＩまで8個のコンテンツが含まれる場合には、ＷＷＷサーバではこれら９個全てのコンテンツを取得して一括処理するまでは、その転送が行われない。またサーバでは、ＷｅｂページＡの構文チェックおよび多くのコンテンツの収集処理を行うので、サーバの負荷も増大する。
【０００９】
然るに、上記文献のいずれにも、要求されたコンテンツの転送効率を如何に向上させるか、及びサーバ側の負荷を軽減する手法については具体的に言及されていない。またクライアント側で受信したコンテンツの構文チェック等の処理についても具体的に開示されていない。
本発明の目的は、ローカルサイトとリモートサイトとの間のデータ転送効率を向上させるデータ通信方法及びプロキシを提供することにある。
本発明の他の目的は、クライアント側でコンテンツの構文チェックを行うことで、サーバ側の負荷を軽減させるデータ通信方法及びプロキシシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係るローカルプロキシとリモートプロキシと間のデータの通信方法は、ブラウザからのファイル取得リクエストを受けて、リモートプロキシにリクエストを送信するステップと、リモートプロキシは、リクエストを関連するＷｅｂサーバに送信して、レスポンスを受信し、このレスポンスをローカルプロキシへ送信するステップと、ローカルプロキシは、受信したレスポンスを解析して、このレスポンスに含まれるオブジェクトに関するリストを作成し、オブジェクトを取得するために該オブジェクトリストをリモートプロキシへ送信すると共に、ブラウザへはオブジェクトを含まないことがあるレスポンスを送信するステップと、リモートプロキシは、受信したオブジェクトリストに含まれるオブジェクトを、関連するＷｅｂサーバから取得して、ローカルプロキシへレスポンスを送信するステップと、ローカルプロキシは、リモートプロキシから受信したレスポンスからオブジェクトの実体を送信するステップと、を有する通信方法である。
【００１１】
上記ブラウザは、好ましくは、ローカルプロキシから受信したレスポンスからオブジェクトを含まないフレームを表示器に表示するステップと、このフレーム中に含まれる全てのオブジェトの実体を取得するまで、順次該ローカルプロキシに対してリクエストを送信し、リクエストに対するオブジェクトの実体を取得するステップとを有する。
【００１２】
上記リモートプロキシは、好ましくは、関連するＷｅｂサーバから取得した１又は複数のオブジェクトの実体をパックし(pack)かつ圧縮処理したデータを、レスポンスとしてローカルプロキシに送信するステップと、ローカルプロキシは、受信したレスポンスのデータの圧縮を解凍しかつアンパック(unpack)処理すると共に、該オブジェクトの実体のデータをキャッシュメモリに格納する処理を行うステップと、を含む。
好ましい例では、ローカルプロキシからブラウザへオブジェクトを含まないレスポンスデータを送信して、オブジェクトを含まないフレームを表示器に表示するステップと、リモートプロキシが、オブジェクトリストに含まれるオブジェクトを、関連するＷｅｂサーバから取得する処理ステップとを並行的に行う。
これにより、従来のように、Ｗｅｂサーバで全てのオブジェクトが取得できるまでの間ローカルプロキシ側では、表示器に何も表示されない状態が続き、結果的に全てのオブジェクトの表示に長い時間を要すると言うことが回避できる。すなわち本発明によれば、オブジェクトを含まないフレームの表示と、関連するオブジェクトの取得を並行的に処理するようにしたので、Ｗｅｂサーバの負荷が軽減される。また取得したオブジェクトを順次ローカルプロキシからブラウザに送信するようにしているので、ブラウザは、取得したオブジェクトを順次表示できる。
【００１３】
本発明は、また、オブジェクトリストに複数のオブジェクトが含まれる場合、ローカルサイトとリモートサイトとの間で行われるオブジェクトの実体を送るための通信を、予め定められたセッションの数ずつ分けて行なうことができる。これによりオブジェクト数が少なければ、少ない数のセッションでオブジェクトが取得でき、またオブジェクトが多ければ、セッションの数を増やせばよく、全体としてデータの転送効率が向上する。
好ましい例では、ローカルプロキシは、リモートプロキシから送信されて、受信したレスポンスの情報中のＨＴＭＬ記述に基いてオブジェクトリストを作成する。
また、ローカルプロキシは、作成したオブジェクトリスト中のオブジェクトがキャッシュメモリに登録されているか否かをチェックし、登録されている場合にはそのオブジェクトをIf Modified-Sinceリストに登録する。
また、好ましい例では、ローカルプロキシは、ブラウザから要求されたオブジェクトを取得し、ブラウザへレスポンスを送信したら、オブジェクトリストから送信済みのオブジェクトに関する情報を削除する。
【００１４】
本発明は、また、ブラウザからのリクエストに応じてリモートプロキシからオブジェクトを取得してブラウザへ送信するための処理を行うローカルプロキシにおけるデータの処理方法として把握される。すなわち、ブラウザからのファイル取得リクエストを受けて、リモートプロキシにリクエストを送信するステップと、リモートプロキシから受信したレスポンスを解析して、レスポンスに含まれるオブジェクトに関するリストを作成するステップと、オブジェクトリスト中のオブジェクトを取得するためにオブジェクトリストをリモートプロキシへ送信するステップと、リモートプロキシから受信したレスポンスをブラウザへ送信するステップと、オブジェクトリストに関連するオブジェクトの実体をリモートプロキシから受信するステップと、取得したオブジェクトの実体のデータをブラウザへ送信するステップと、を有するローカルプロキシにおけるデータ処理方法である。
【００１５】
本発明は、また、ローカルプロキシからのリクエストを受けてＷｅｂサーバに対する問い合せ処理を行うリモートプロキシにおけるデータ処理方法としても把握される。即ち、ローカルプロキシからのリクエストを受信し、Ｗｅｂサーバにリクエストを送信するステップと、Ｗｅｂサーバから該リクエストに対するレスポンスを受信して、それをローカルプロキシへ送信する第１の送信ステップと、ローカルプロキシから送信されたオブジェクトリストを受信し、そのリストに含まれるオブジェクトを、Ｗｅｂサーバから取得するステップと、取得した該オブジェクトをパック処理及び圧縮処理した後、レスポンスとしてローカルプロキシへ送信する第２の送信ステップと、を有するリモートプロキシにおけるデータ処理方法である。
本発明は、また上記ステップを実行するローカルプロキシにおけるデータ処理用のプログラム、及びリモートプロキシにおけるデータ処理用のプログラムとして把握される。
【００１６】
本発明は、また、ブラウザからのリクエストに応じてリモートプロキシからオブジェクトを取得してブラウザへ送信するための処理を行うローカルプロキシとして把握され得る。すなわち、本発明は、ブラウザからのファイル取得リクエスト及びリモートプロキシからのレスポンスの送受信を行う基本処理部と、
該リモートプロキシから受信したレスポンスを解析すると共に、該レスポンスに含まれるオブジェクトに関するリストを作成する解析処理部と、リモートプロキシから取得したオブジェクトのデータを格納するキャッシュメモリと、圧縮されたオブジェクトのデータを解凍処理する解凍処理部とを有し、基本処理部は、リモートプロキシから受信したレスポンスをブラウザへ送信し、またオブジェクトリスト中のオブジェクトを取得するために、作成されたオブジェクトリストをリモートプロキシへ送信し、ブラウザからの要求に従い、リモートプロキシから取得した、又はキャッシュメモリに格納されているオブジェクトの実体のデータをブラウザへ送信するローカルプロキシである。
【発明の効果】
【００１７】
本発明によれば、ローカルサイトとリモートサイトとの間のデータ転送効率を向上させることができる。また、クライアント側でコンテンツの構文チェックを行うために、サーバ側の負荷を軽減させることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施例について図面を参照して具体的に説明する。
図１は本発明の一実施例が適用されるネットワークシステムの例を示す図である。
リモートサイト１とローカルサイト２は、インターネットやＷＡＮ（Wide Area Network）等のネットワーク３を介して接続され、双方の間でＨＴＴＰによる拡張通信が可能である。
ローカルサイト２はクライアント側であり、例えばユビキタスネットワークの環境下では、クライアントは企業、家庭、ホテルや出張先の施設等からいつでも情報通信が行える。これら種々の場所を想定して、クライアントは複数のＰＣ（パーソナルコンピュータ）２０を含み、各ＰＣ２０はブラウザ２１及びローカルプロキシ（Ｌプロキシ）２２を有している。ブラウザ２１は、Ｗｅｂページを閲覧するためのアプリケーションソフトであり、ネットワーク３を通してＨＴＭＬ形式のファイルや、画像ファイル、音楽ファイル等をダウンロードして、レイアウトを解析して再生し、表示器に表示する。Ｌプロキシ２２は、ブラウザ２１とネットワーク３との間に介在して、ネットワーク３との接続や情報の通信を行うコンピュータ或いはソフトウェアである。なお、このプロキシ２２の機能および動作は、本実施例に特徴的であり、後で詳述される。
【００１９】
一方、リモートサイト１は、プロキシサーバ１０を有し、複数のＷｅｂサーバ１２との間でＨＴＴＰにより通信を行い、Ｗｅｂ情報を取得する。このプロキシサーバ１０の処理については、後で詳述する。
【００２０】
図２は、リモートプロキシ（Ｒプロキシ）１０及びＬプロキシ２２のモジュール構成を示す。
Ｒプロキシ１０及びＬプロキシ２２を構成するこれらのモジュールはソフトウェアによって実行される機能である。
まず、Ｌプロキシ２２におけるモジュールの機能について述べる。基本部分２２１は、初期処理や子スレッドの作成等の基本的な処理を行う部分である。オブジェクトリスト作成部２２２は、Ｒプロキシ１０から取得した情報からオブジェクトリストを作成するための処理部分である。アンパック（unpack）部２２３は、受信された所定の纏まりになっているオブジェクトのデータを１つ１つ切り出す処理である。解凍部２２４は圧縮されたデータを伸長する処理である。キャッシュ２２５は、受信したデータ即ちＷｅｂ情報であるオブジェクト等のデータを一次的に格納するメモリから目的のデータを読み書きする処理を言う。
【００２１】
Ｒプロキシ１０において、基本部分１０１は初期処理や子スレッドの作成等の基本的な処理を行う部分である。パック（pack）１０２は、Ｗｅｂサーバ１２から取得した複数のオブジェクトを１つに纏める処理である。圧縮１０３は、パックされたデータを一定の規則に従って圧縮処理する。リクエスト生成部１０４は、目的とするＷｅｂサーバ１２に対してオブジェクトを取得するために要求を発行する処理部である。
【００２２】
次に図３の処理シーケンスを参照して、Ｌプロキシ２２とＲプロキシ１０における処理動作について説明する。尚、主要部における処理動作については、図４乃至図１０のフローチャートを随時参照して詳細に説明する。
【００２３】
Ｌプロキシ２２は起動時に初期処理を行う（Ｌ−１）。この初期処理は、Ｌプロキシ自体の初期設定を行う処理であり、処理の起動により起動条件の読み込みを行う。起動条件の読み込み処理では、Ｌプロキシポート番号、Ｒプロキシホスト名又はＩＰアドレス、及びＲプロキシポート番号等を含む起動条件ファイルを読み込む。初期処理の次に、子スレッドの生成処理が行われる（Ｌ−２）。この処理は、ブラウザ２１からのリクエストを待ち、リクエストを受領すると子スレッドを起動する。
子スレッドが起動されると、子スレッドの初期処理が行われる（Ｌ−３）。図４に示すように、子スレッドの初期処理において、ブラウザ２１からＨＴＴＰリクエストを受信して（４０１）、オブジェクトリストに同一のＨＴＴＰリクエストが存在するかチェックする（４０２）。
【００２４】
オブジェクトリストは、取得すべきオブジェクトを登録したリストである。その一例を図１１に示すように、オブジェクトリストには、ステータス、リスト登録時刻、送信先リクエストポインタ、レスポンスデータ、及び取得すべきオブジェクトのＵＲＬが登録される。
さて、ステップ４０２におけるチェックの結果、同一のリクエストがオブジェクトリストに存在しない場合には、Ｒプロキシへリクエストを中継する処理に移る（４０３）。一方、リストに同一のリクエストが存在する場合には、オブジェクトの実体を取得し、オブジェクトリストから削除する処理を行う（４０４）。いずれの処理についても後で詳述する。
【００２５】
一方、Ｒプロキシでは、同様にして初期処理が行われる（Ｒ−１）。この初期処理は、Ｒプロキシポート番号を含む起動条件ファイルを読み込むことで行なう。引き続いて、Ｌプロキシからのリクエストを待ち、リクエストを受信すると子プロセスを起動して子プロセスを生成する（Ｒ−２）。
ＲプロキシでＬプロキシからＨＴＴＰリクエストを受信すると、子プロセスを生成して（Ｒ−２）、子プロセスの初期処理を行う（Ｒ−３）。
【００２６】
この初期処理は、図８に示すように、ＬプロキシからのＨＴＴＰリクエストを受信して（８０１）、そのリクエストがＷプロキシの拡張メソッドかを判定する（８０２）。
ここで、Ｗプロキシ拡張メソッドとは、ＬプロキシとＲプロキシ間のデータの通信に関する本発明に特徴的な方法（プロコトル）であり、Ｌプロキシが取得すべきオブジェクトをオブジェクトリストとして作成し、このリストをＲプロキシへ送信することにより、Ｒプロキシからそれらのオブジェクトを取得する方法を言う。図１〜３では、ＨＴＴＰ拡張通信と表現している。この方法によるオブジェクトの取得方法については、図３のＬ−５〜Ｌ−７に関連する処理であり、図４以降を参照して詳しく述べる。
【００２７】
また、リクエストがＷプロキシ拡張メソッドであるか否かの判定は、例えば、HTTPのリクエストヘッダ内にWプロキシ拡張メソッドであることを示す情報を設定しておき、この情報を参照することにより判定する。通信シーケンスの最初の段階でLプロキシからＲプロキシへ送信されるリクエスト（Ｒ−２）は、通常のHTTPリクエストなので、ヘッダ内のフラグはＯＦＦであり、そのリクエストはそのままWebサーバ１２へ送信され、Ｗｅｂサーバ１２よりレスポンスの受領を待つ。一方、Lプロキシからオブジェクトリストが送られてくるとき、ＨＴＴＰリクエストヘッダの情報が拡張メソッドであることを示しているので、Rプロキシはオブジェクトリストに基づいたリクエストを生成し、それを関連するＷｅｂサーバへ送信する。
【００２８】
ステップ８０２における判定の結果、Ｗプロキシ拡張メソッドでなければ、リクエスト／レスポンスの中継処理（Ｒ−４）へ移行する（８０３）。一方、Ｗプロキシ拡張メソッドならば、リクエスト生成、パック、圧縮処理（Ｒ−５）へ移行する（８０４）。
【００２９】
図９に示すように、リクエスト／レスポンスの中継処理（Ｒ−４）は、関連するＷｅｂサーバ１２へＨＴＴＰリクエストを送信して、Ｗｅｂサーバからレスポンスを取得するための処理である。即ち、取得したＨＴＴＰリクエストを関連するＷｅｂサーバ１２に送信し（９０１）、そのＷｅｂサーバ１２からＨＴＴＰレスポンスを受信する（９０２）。Ｒプロキシは、取得したレスポンスをＬプロキシへ送信し（９０３）、処理を終了する（９０４）。
【００３０】
次に、図５を参照して、ＬプロキシにおけるＨＴＴＰ拡張メソッド通信の動作について説明する。
Ｒプロキシからレスポンスを受信すると（５０１）、コンテンツタイプがコンテンツリストに存在するかをチェックする（５０２）。
【００３１】
ここで、コンテンツリストとは、図１２に示すように、オブジェクトリストを作成する対象のコンテンツのタイプを登録する。通常、コンテンツタイプとしては例えば、テキスト/HTML、ＸＭＬ、イメージ、動画等があるが、この内、コンテンツリストに登録されるのは、テキスト/HTMLやＸＭＬである。この場合、受信したＨＴＴＰレスポンスを解析した結果、コンテンツタイプがテキスト/HTMLやＸＭＬであるときには、内容を解析しオブジェクトリストを作成する。一方、受信するコンテンツタイプが、例えばイメージや動画等の場合には、それらの中にこれ以上他のコンテンツが含まれる可能性が無いので、これらイメージや動画は、解析せずにそのままブラウザへ送信される。従って、イメージや動画を示すコンテンツタイプは、コンテンツリストに登録する必要がなく、そのためイメージや動画等については、オブジェクトリストを作成しない。
【００３２】
ステップ５０２におけるチェックの結果、コンテンツタイプがコンテンツリスト中に存在していれば、レスポンス情報中のＨＴＭＬの記述からオブジェクトリストを作成する（５０３）。一方、コンテンツタイプがコンテンツリストに登録されていない場合、例えば受信したコンテンツがイメージや動画である場合には、それらは構文解析の必要がないため、それらのレスポンスは直ちにブラウザへ送信され（５０７）、一連の処理を終了する。
【００３３】
さて、ステップ５０３でオブジェクトリストが作成されると、次に、作成されたオブジェクトリスト中のオブジェクトがＬプロキシ内のキャッシュに在るか否かをチェックし、在る場合にはそのオブジェクトを「if modified-since リスト」に登録する（５０４）。
ここで、このif modified-sinceリストとは、キャッシュに登録されているオブジェクトが最新であるかどうかを問合せるためのテーブルであり、図１３に示すように、キャッシュに登録されているオブジェクトのＵＲＬとオブジェクトの最終修正時刻を登録する。
【００３４】
このようにして作成されたオブジェクトリスト及びif modified-since リストは、ＷプロキシＨＴＴＰ拡張メソッドに従って、ＨＴＴＰリクエストとしてＲプロキシへ送信される（５０５）。このとき、オブジェクトの数に応じて同時に使用するセッション数が決まる。例えば、図１４に示すようにオブジェクトがＢからＩまでの８個有る場合、１つ目のセッションで３個ずつのオブジェクトがＬプロキシへ送信されるとすると、２つ目のセッションでは３個ずつのオブジェクトの転送が行われ、３つ目のセッションでは２個のオブジェクトの転送が行われることになる。
一方、Ｒプロキシにおけるこのリクエストは、オブジェクトリスト中のオブジェクトを取得するための処理であり、詳細は後述する。
【００３５】
その後、Ｌプロキシはレスポンスをブラウザへ送信する（５０６）。ブラウザでは、受信したＨＴＴＰのレスポンス処理が行なわれる。このＨＴＴＰレスポンスの処理とは、受信したレスポンスを例えばＰＣの表示器に表示する動作である。本実施形態によれば、この表示動作とＲプロキシにおけるオブジェクトを取得するための処理とは平行して実行される。この段階では、ブラウザへ送信されるレスポンスには目的のオブジェクトが含まれていないので、表示器にはＷｅｂページＡのフレームだけが表示され、フレーム内のオブジェクトの部分、例えばＢ〜Ｉが表示されるべき場所には何も表示されない。しかし、表示画面の状態から、ＰＣの利用者はオブジェクトの取得待ちの状態であることが認識できる。
【００３６】
次に、オブジェクトリスト及びif modified-sinceを受信したＲプロキシにおける処理動作（Ｒ−２〜Ｒ−７）について説明する。
Ｒプロキシではオブジェクトの数に応じて生成されるセッションに対するリクエストを受け、それに対応して子プロセスの生成を行う。前述したように、Ｌプロキシからのリクエストに応じて、子プロセスの生成（Ｒ−２）が行われる。子プロセスを生成されると、それに応じてその初期処理が行われる（Ｒ−３）。
【００３７】
図１０のフローに示すように、Ｒプロキシは、リクエストの生成処理（１０１）、取得したレスポンスのパック処理（１０２）、及びパック処理したレスポンスの圧縮処理（１０３）を行う。
まず、リクエストの生成では、Ｗプロキシ拡張メソッドで送信されたリクエストを分解して（１０１１）、関係するＷｅｂサーバ１２へリクエストを順次送信する。Ｗｅｂサーバ１２では、受信したリクエスト毎にオブジェクトを取得し、その取得したオブジェクトをＲプロキシ１１へ送信する。Ｒプロキシ１１は、Ｗｅｂサーバ１２からそのオブジェクトを含むデータをレスポンスとして取得する（１０２１）。そして取得したレスポンスをパック処理して一纏めにする（１０２２）。パック処理されたレスポンスのデータは、次に圧縮処理され（１０３１）、それをレスポンスとしてＬプロキシへ送信し（１０３２）、一連の処理を終わる(１０３３)。
【００３８】
例えば図１４に示すように、オブジェクトリストに、ＷｅｂページＡを構成する８つのオブジェクトＢ〜ＩのＵＲＬが登録されているとすると、関係するＷｅｂサーバ１２からはこれらＢ〜Ｉのオブジェクトがそれぞれ取得される。そして、例えば１回のセッションで３個ずつのオブジェクトがＬプロキシへ送信されるとすると、例えばまずオブジェクトＢ、Ｃ，Ｄのデータがパック処理及び圧縮処理されて送信される。同じく３つのオブジェクトＥ，Ｆ，Ｇが同様に処理され、また２つのオブジェクトＨ，Ｉも同様に処理されて、Ｌプロキシへ送信される。
【００３９】
次に図６を参照して、Ｌプロキシ側でのレスポンスの受信処理について説明する。
Ｌプロキシでは、Ｒプロキシから送信されたレスポンスを受信すると（６０１）、そのレスポンス情報を解凍し（６０２）、解凍したレスポンス情報をアンパック（unpack）、即ちオブジェクトを切り離す処理をする（６０３）。アンパック処理して取り出されたオブジェクトは、メモリ（例えばバッファメモリ）に一時的に格納される（６０４）。
その後、そのオブジェクトはメモリから順次取り出されて、キャッシュに登録され（６０６）、この段階の処理を終わる（６０７）。
【００４０】
一方、ブラウザでは、ＷｅｂページＡの表示画面にはオブジェクトが表示されず、フレームにのみの表示状態にある。そこでオブジェクトの取得のためのリクエストがブラウザからＬプロキシへ送信され、その度にＬプロキシでは子スレッドが生成され、子スレッドの初期処理が行われて、オブジェクトの取得処理が実行される（Ｌ−２、Ｌ−３、Ｌ−７）。例えば、ＷｅｂページＡ内の８つのオブジェクトＢ〜Ｉの実体の取得が必要な場合、このＧＥＴ要求に対するレスポンスのやり取りは、ミスヒットが無い場合、最低でも８回行われることになる。
【００４１】
図７を参照して、オブジェクトの実体取得処理について説明する。
この処理は、Ｌプロキシのメモリに目的のオブジェクトが存在するかチェックする（７０１）。チェックの結果、もしメモリ内に目的のオブジェクトが存在すれば、メモリからそのオブジェクトを取得して（７０２）、レスポンスとしてブラウザへ送信する（７０５）。その後、オブジェクトリストから本件オブジェクトを削除して（７０６）、対象とする全てのオブジェクトが取得されたら、一連の処理を終了する（７０７）。なお、ここでメモリとは、受信したオブジェクトを一時的に格納しておくバッファメモリ又は前述したキャッシュを指す。
【００４２】
一方、未だＲプロキシからオブジェクトの取得が出来ていない段階では、そのオブジェクトはメモリ内に存在しない。このようにメモリ内にオブジェクトが存在しなければ、Ｒプロキシからのレスポンスを待つ（７０３）。この間、ブラウザからの要求があると、その要求はキューイングして待される。その後Ｒプロキシからのレスポンスを受け取ると（７０４）、メモリからオブジェクトを取得する動作（７０２）へ移る。もしブラウザからの要求があれば、それに応えてそのレスポンスをブラウザへ送信する（７０５）。ブラウザからの要求がキューイングされて待機状態にあれば、その要求に対して順にレスポンスを送信する。
この処理は、当初リクエストしたオブジェクトの全てが取得されるまで、例えばオブジェクトＢ〜Ｉの実体が取得されるまで繰り返される。このようにして、ブラウザから要求されたファイル及びその中身が取得されて、ＰＣの表示画面に表示される。
【００４３】
このように本実施形態によれば、ローカルサイト側でコンテンツの構文チェックを行うので、プロキシサーバ側の負荷が軽減される。また、ローカルサイトとリモートサイト間の通信において、複数セッション使用できるので、データの転送効率が向上する。
更に、ローカルサイトとリモートサイト間のデータ通信を、特徴的なＨＴＴＰ拡張メソッドにより実現しているので、ローカルサイト側でブラウザ以外のツール、例えばメーラへの拡張が容易に行える。即ち、一般的にHTTPとメールはクライアントとサーバの間で行う通信のプロトコルが異なるため、プロトコルごとに通信の仕組みを実装する必要があるが、本実施形態によれば、Wプロキシでプロトコルの違いを吸収するため、プロトコルの拡張が容易になる。このため、Ｌプロキシとメーラ、及びＲプロキシとメールサーバのインタフェースを実装することにより、メールプロトコルに容易に対応できる。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施例が適用されるネットワークシステムの構成を示す図。
【図２】一実施例によるリモート及びＬプロキシのモジュール構成を示す図。
【図３】一実施例によるプロキシシステムにおける処理シーケンスを示す図。
【図４】一実施例によるプロキシの処理動作における、子スレッドの初期処理の動作を説明するための図。
【図５】一実施例によるプロキシの処理動作における、ＨＴＴＰ拡張メソッド送信の動作を説明するための図。
【図６】一実施例によるプロキシの処理動作における、解凍、unpack、キャッシュ登録の動作を説明するための図。
【図７】一実施例によるプロキシの処理動作における、オブジェクト実体取得の動作を説明するための図。
【図８】一実施例によるプロキシの処理動作における、Ｒプロキシ子プロセスの初期処理の動作を説明するための図。
【図９】一実施例によるプロキシの処理動作における、リクエスト、レスポンス中継の動作を説明するための図。
【図１０】一実施例によるプロキシの処理動作における、リクエスト生成、pack等の動作を説明するための図。
【図１１】一実施例のプロキシの処理におけるオブジェクトリストの構成例を示す図。
【図１２】一実施例のプロキシの処理におけるコンテンツリストの構成例を示す図。
【図１３】一実施例のプロキシの処理におけるif modified リストの構成例を示す図。
【図１４】ブラウザの表示画面例を示す図。
【符号の説明】
【００４５】
１：リモートサイト              ２：ローカルサイト
１０：プロキシサーバ            １０：Ｒプロキシ
１１：Ｗｅｂサーバ            ２０：ＰＣ
２１：ブラウザ                ２２：Ｌプロキシ
【図１】
2005267499.tif 000003
【図２】
2005267499.tif 000004
【図３】
2005267499.tif 000005
【図４】
2005267499.tif 000006
【図５】
2005267499.tif 000007
【図６】
2005267499.tif 000008
【図７】
2005267499.tif 000009
【図８】
2005267499.tif 000010
【図９】
2005267499.tif 000011
【図１０】
2005267499.tif 000012
【図１１】
2005267499.tif 000013
【図１２】
2005267499.tif 000014
【図１３】
2005267499.tif 000015
【図１４】
2005267499.tif 000016