(57)【要約】      （修正有）【課題】処理の履歴情報が存在しない場合でも、外部のクライアントからのアクセス要求時に、受け取った外部アドレスを正しく目的の内部アドレスに変換する。【解決手段】リバースプロキシ装置は、内部ネットワーク上のサーバから外部ネットワーク上のクライアントへの、応答コンテンツの内容を動的に書き換える機能を備え、クライアントへ渡す応答コンテンツが、外部クライアント上で内部サーバを参照するアドレスを作成するプログラムを含み、そのプログラムが内部サーバのアドレスを相対パスで作成する場合、リバースプロキシ装置は、ｘｍｌＨＴＴＰオブジェクトを付加して、内部ネットワーク上のサーバのマウントポイント情報を取得させるように、上述のプログラムを書き換える。同様に、内部サーバのアドレスを絶対パスで作成する場合、リバースプロキシ装置は、絶対パスを指定せずに本リバースプロキシ装置を通過するように、そのプログラムを書き換える。【選択図】図１
2013182396.tif 000002
【特許請求の範囲】
【請求項１】
内部ネットワーク上のサーバのアドレスと、上記内部ネットワーク上のサーバを外部ネットワーク上のクライアントから参照するためのアドレスとを変換し、上記内部ネットワーク上のサーバと上記外部ネットワーク上のクライアントとの間でやり取りする、データコンテンツの内容を書き換える機能を持つリバースプロキシ部と、事前に上記書き換え処理の対象ファイルを選定する事前処理部とを備えるリバースプロキシ装置。
【請求項２】
前記リバースプロキシ部は、前記外部ネットワーク上のクライアントへ渡す応答コンテンツに対し、具体的にどのような変換処理を行うのかを規定した変換ルールを参照して、
上記応答コンテンツが、前記内部ネットワーク上のサーバを前記外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを含む場合で、かつ上記プログラムの実行結果が上記アドレスを相対パスで作成する場合は、ｘｍｌＨＴＴＰオブジェクトを付加して、上記内部ネットワーク上のサーバのマウントポイント情報を取得させる変換処理手段と、
上記応答コンテンツ中に含まれる上記プログラムの実行結果が、上記アドレスを絶対パスで作成する場合は、上記プログラムを書き換えて上記絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする変換処理手段を含む、請求項１に記載のリバースプロキシ装置。
【請求項３】
前記事前処理部は、前記ｘｍｌＨＴＴＰオブジェクトを付加して内部ネットワーク上のサーバのマウントポイント情報を取得させるように変換処理を行うか、
前記外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを書き換えるように変換処理を行うか、
またはどちらも行わないか、を判断するために、
どの応答コンテンツのファイルがどのような変換処理を行うか、を定めたファイルリスト分類ルールを参照し、一つまたは複数の上記サーバ全てをチェックして、予め一覧を作成するデータ処理手段を含む、請求項１に記載のリバースプロキシ装置。
【請求項４】
前記リバースプロキシ部で参照する前記変換ルールは、前記内部ネットワーク上のサーバのファイルパスと、具体的にどのような変換処理を行うかを記述した変換処理関数名を含む、請求項１または請求項２に記載のリバースプロキシ装置。
【請求項５】
前記事前処理部と前記リバースプロキシ部で参照する前記ファイルリスト分類ルールは、分類の条件と、出力先ファイルリスト名、を含む、請求項１乃至３に記載のリバースプロキシ装置。
【請求項６】
前記事前処理部と前記リバースプロキシ部で参照する前記ファイルリスト分類ルールは、分類のルール番号と、分類の条件と、次条件のルール番号と、次条件との結合子と、出力先ファイルリスト名、を含む、請求項１乃至３に記載のリバースプロキシ装置。
【請求項７】
前記ｘｍｌＨＴＴＰオブジェクトを付加して内部ネットワーク上のサーバのマウントポイント情報を保持させるように変換処理を行うか、
前記外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを書き換えるように変換処理を行うか、
またはどちらも行わないか、を判断するために、
どの応答コンテンツのファイルがどのような変換処理を行うか、を定めたファイルリスト分類ルールを参照し、一つまたは複数の上記サーバ全てをチェックして、予め一覧を作成するリバースプロキシ処理方法。
【請求項８】
前記外部ネットワーク上のクライアントへ渡す応答コンテンツに対し、具体的にどのような変換処理を行うのかを規定した変換ルールを参照して、
上記応答コンテンツが、前記内部ネットワーク上のサーバを前記外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを含む場合で、かつ上記プログラムの実行結果が上記アドレスを相対パスで作成する場合は、ｘｍｌＨＴＴＰオブジェクトを付加して、上記内部ネットワーク上のサーバのマウントポイント情報を取得させ、
上記応答コンテンツ中に含まれる上記プログラムの実行結果が、上記アドレスを絶対パスで作成する場合は、上記プログラムを書き換えて上記絶対パスを指定せずに、通過するリバースプロキシ処理方法。
【請求項９】
前記ｘｍｌＨＴＴＰオブジェクトを付加して内部ネットワーク上のサーバのマウントポイント情報を取得させるように変換処理を行うか、
前記外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを書き換えるように変換処理を行うか、
またはどちらも行わないか、を判断するために、
どの応答コンテンツのファイルがどのような変換処理を行うか、を定めたファイルリスト分類ルールを参照し、一つまたは複数の上記サーバ全てをチェックして、予め一覧を作成する処理をコンピュータに実行させるプログラム。
【請求項１０】
前記外部ネットワーク上のクライアントへ渡す応答コンテンツに対し、具体的にどのような変換処理を行うのかを規定した変換ルールを参照して、
上記応答コンテンツが、前記内部ネットワーク上のサーバを前記外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを含む場合で、かつ上記プログラムの実行結果が上記アドレスを相対パスで作成する場合は、ｘｍｌＨＴＴＰオブジェクトを付加して、上記内部ネットワーク上のサーバのマウントポイント情報を取得させる変換処理と、
上記応答コンテンツ中に含まれる上記プログラムの実行結果が、上記アドレスを絶対パスで作成する場合は、上記プログラムを書き換えて上記絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする変換処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローカルなネットワーク上のアドレスと外部から参照するためのアドレスとの変換をするリバースプロキシ装置、及びそのリバースプロキシ処理方法とプログラムに関する。
【背景技術】
【０００２】
社内ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のローカルなネットワーク上にあるＷｅｂサーバ等をインターネット側に向けて公開する場合において、外部のクライアント（以下、クライアントとも言う）から内部のＷｅｂサーバ等（以下、バックエンドサーバとも言う）へのアクセス要求を中継するため、リバースプロキシ装置が使用される。
【０００３】
リバースプロキシ装置は、クライアントからのアクセス要求に対して、クライアントが指定するＵＲＬ（以下、外部ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）とも言う）と、実際にバックエンドサーバに割り当てられているＵＲＬ（以下、内部ＵＲＬとも言う）との変換（以下、上り方向のＵＲＬ変換、とも言う）を行い、要求先のバックエンドサーバを判別し、そのバックエンドサーバに前述のアクセス要求を中継する機能を持つ。
【０００４】
また、バックエンドサーバからクライアントへの応答時には、前述とは逆に、内部ＵＲＬから外部ＵＲＬへの変換（以下、下り方向のＵＲＬ変換、とも言う）を行い、クライアントに正しい外部ＵＲＬを知らせる機能も持つ。
【０００５】
さらに、クライアントからバックエンドサーバに対するアクセス要求は必ずリバースプロキシ装置を中継して行われる。そのため、リバースプロキシ装置に、アクセス要求を行ったクライアントがバックエンドサーバへのアクセスを許可されているか否かをチェックするユーザ認証機能や、バックエンドサーバへ中継するデータの内容をチェックする機能を持たせることにより、セキュリティの強化が可能になる。
【０００６】
リバースプロキシ装置での前述の内部ＵＲＬから外部ＵＲＬへの下り方向の変換処理においては、一般的に、バックエンドサーバからクライアントに渡される応答コンテンツ内部にテキスト形式で記述されたＵＲＬの変換は容易に行える。
【０００７】
しかし、例えば、応答コンテンツ内部にＪａｖａＳｃｒｉｐｔ（登録商標）等のプログラムが含まれ、クライアントでそのプログラムを実行することにより外部ＵＲＬが作成されるような場合、クライアントに渡される前のリバースプロキシ装置でのＵＲＬの変換は非常に困難である。
【０００８】
具体的には、前述の例のように、応答コンテンツがクライアント上でバックエンドサーバを示す外部ＵＲＬを作成するプログラムを実行させる内容を含む場合、バックエンドサーバのマウントポイント情報が欠落した相対パスによる外部ＵＲＬや、リバースプロキシ装置を経由せずに直接バックエンドサーバを指定する絶対パスによる外部ＵＲＬが作成される場合などがある。その場合は、クライアントが正しく目的のバックエンドサーバにアクセス要求を返すことができない。
【０００９】
マウントポイント情報が欠落した相対パスによる、上り方向の変換の問題を解決する技術の一例が特許文献１に記載されている。特許文献１に記載のリバースプロキシシステムは、クライアントからのアクセス要求時に受け取った外部ＵＲＬを履歴として保存する機能を持つ。そして、マウントポイント情報が付加されたアクセス要求を受け取った場合には、特許文献１に記載のリバースプロキシシステムは、ユーザＩＤ、処理時刻、マウントポイント情報、ファイル位置情報（相対パス）を履歴情報として保存する。また、マウントポイント情報がないアクセス要求を受け取った場合には、特許文献１に記載のリバースプロキシシステムは、ユーザＩＤとファイル位置情報（相対パス）を元に前述の履歴情報を検索し、ユーザＩＤとファイル位置情報（相対パス）が一致するものの中で処理時刻が一番近い履歴情報を参照し、マウントポイント情報を決定する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−２２３６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、前述の特許文献1に記載の技術は、履歴情報がまったく存在しないか、若しくは該当するユーザＩＤとファイル位置情報（相対パス）を持つデータが履歴情報に存在しない場合には、リバースプロキシシステムが付加すべきマウントポイント情報を決定できない。そのため、そのような場合は、クライアントからのアクセス要求時に受け取った外部ＵＲＬを、正しく目的の内部ＵＲＬに変換することができない、という問題点がある。
【００１２】
また、バックエンドサーバの複数サーバに、マウントポイント情報以外のファイル位置情報（相対パス）が全く同じ内部ＵＲＬが存在する場合には、前述の履歴情報からではどのサーバの内部ＵＲＬを指しているのか判断することができない。そのため、直近に処理した内部ＵＲＬが選択されてしまい、正しい目的の内部ＵＲＬにクライアントのアクセス要求を中継することができない場合がある、という問題がある。
【００１３】
さらに、特許文献１での上述の問題の他にも、応答コンテンツがクライアント上でバックエンドサーバの外部ＵＲＬを作成するプログラムを実行させる内容を含み、かつ、外部ＵＲＬとして絶対パスを作成してしまう場合は、クライアントが直接当該のバックエンドサーバにアクセスしようとする。その場合、リバースプロキシシステムにそのアクセスを拒否されてしまう、という問題がある。
【００１４】
本発明の目的の一例は、上述した問題点を解決できる、リバースプロキシ処理装置、リバースプロキシ処理方法、及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明の一形態におけるリバースプロキシ装置は、内部ネットワーク上のサーバのアドレスと、その内部ネットワーク上のサーバを外部ネットワーク上のクライアントから参照するためのアドレスとを変換し、内部ネットワーク上のサーバと外部ネットワーク上のクライアントとの間でやり取りする、データコンテンツの内容を書き換える機能を持つリバースプロキシ部と、事前に書き換え処理の対象ファイルを選定する事前処理部とを備える。
【００１６】
本発明の一形態におけるリバースプロキシ処理方法は、外部ネットワーク上のクライアントへ渡す応答コンテンツに対し、具体的にどのような変換処理を行うのかを規定した変換ルールを参照して、
その応答コンテンツが、内部ネットワーク上のサーバを外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを含む場合で、かつそのプログラムの実行結果がアドレスを相対パスで作成する場合は、ｘｍｌＨＴＴＰオブジェクトを付加して、内部ネットワーク上のサーバのマウントポイント情報を取得させ、
上述の応答コンテンツ中に含まれるプログラムの実行結果が、アドレスを絶対パスで作成する場合は、そのプログラムを書き換えて絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする変換処理を実行する。
【００１７】
本発明の一形態におけるリバースプロキシ処理プログラムは、コンピュータに、外部ネットワーク上のクライアントへ渡す応答コンテンツに対し、具体的にどのような変換処理を行うのかを規定した変換ルールを参照して、
その応答コンテンツが、内部ネットワーク上のサーバを外部ネットワーク上のクライアントから参照するアドレスを作成するプログラムを含む場合で、かつそのプログラムの実行結果がアドレスを相対パスで作成する場合は、ｘｍｌＨＴＴＰオブジェクトを付加して、内部ネットワーク上のサーバのマウントポイント情報を取得させる変換処理と、
上述の応答コンテンツ中に含まれるプログラムの実行結果が、アドレスを絶対パスで作成する場合は、そのプログラムを書き換えて絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする変換処理を実行させる。
【発明の効果】
【００１８】
本発明によれば、バックエンドサーバからクライアントへの下り方向のアドレス変換を行い、バックエンドサーバの応答コンテンツに含まれる、外部アドレスを作成するプログラムを、リバースプロキシ装置上で動的に書き換える。そのため、その後のクライアントからバックエンドサーバへの上り方向のアドレス変換時には、履歴情報を必要としない。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の第１の実施形態における全体システムの概要を示す概要図である。
【図２】図２は、本発明の第１の実施形態の構成を示すブロック図である。
【図３】図３は、第１の実施の形態におけるリバースプロキシ処理部の構成を示す図である。
【図４】図４は、第１の実施の形態におけるリバースプロキシ装置をコンピュータ装置とその周辺装置で実現したハードウェア構成を示す図である。
【図５】図５は、第１の実施の形態におけるリバースプロキシ装置のデータ処理部の動作を示すフローチャートである。
【図６】図６は、第１の実施の形態におけるリバースプロキシ装置のファイルリスト作成処理の動作を示すフローチャートである。
【図７】図７は、第１の実施の形態におけるリバースプロキシ装置のリバースプロキシ処理部の動作を示すフローチャートである。
【図８】図８は、第１の実施の形態における対象ファイル抽出ルールに格納されるデータの一例を示す図である。
【図９】図９は、第１の実施の形態におけるファイルリスト分類ルールに格納されるデータの一例を示す図である。
【図１０】図１０は、第１の実施の形態におけるｘｍｌＨＴＴＰ付加用ファイルリストに格納されるデータの一例を示す図である。
【図１１】図１１は、第１の実施の形態におけるプログラム書き換え用ファイルリスト、及び変換処理なし用ファイルリストに格納されるデータの一例を示す図である。
【図１２】図１２は、第１の実施の形態における変換ルールに格納されるデータの一例を示す図である。
【図１３】図１３は、本発明の第２の実施の形態におけるファイルリスト分類ルールに格納されるデータの一例を示す図である。
【発明を実施するための形態】
【００２０】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２１】
［第１の実施の形態］
図１は、本発明の第１の実施の形態における全体システムの概要を表した図である。
【００２２】
図１を参照すると、リバースプロキシ装置２００は、インターネットを介して外部のクライアント１００に接続され、社内ＬＡＮを介してバックエンドサーバ３００に接続される。クライアント１００は、インターネットに接続される。そして、リバースプロキシ装置２００は、従来のリバースプロキシシステムと同様に、クライアント１００からバックエンドサーバ３００へのアクセス要求時の上り方向のアドレス変換（ＵＲＬ変換）と、バックエンドサーバ３００からクライアント１００への応答時の下り方向のアドレス変換（ＵＲＬ変換）を行う。
【００２３】
図２は第１の実施の形態におけるリバースプロキシ装置２００の構成を示すブロック図である。
【００２４】
図２を参照すると、リバースプロキシ装置２００は、事前処理部４００と、リバースプロキシ部５００とを備える。
【００２５】
事前処理部４００は、データ処理部４１０と、インターフェース部４２０と、第１の記憶部４３０と、第２の記憶部４４０とを備える。第１の記憶部４３０は、対象ファイル抽出ルール４３１を記憶する。第２の記憶部４４０は、ファイルリスト分類ルール４４１を記憶し、さらにｘｍｌＨＴＴＰ付加用ファイルリスト４４２と、プログラム書き換え用ファイルリスト４４３と、変換処理なし用ファイルリスト４４４とをファイルデータとして記憶する。
【００２６】
事前処理部４００は、事前に、リバースプロキシ部５００での書き換え処理の対象ファイルを選定する。
【００２７】
リバースプロキシ部５００は、リバースプロキシ処理部５１０と、インターフェース部５２０と、第３の記憶部５３０とを備える。第３の記憶部５３０は、変換ルール５３１を記憶する。
リバースプロキシ部５００は、上り方向または下り方向のアドレス変換のときに、バックエンドサーバ３００（内部ネットワーク上のサーバ）と、クライアント１００（外部ネットワーク上のクライアント）との間でやり取りするデータコンテンツ（応用コンテンツとも呼ぶ）の内容を書き換える機能を有する。具体的に、リバースプロキシ部５００は、下り方向のＵＲＬ変換時に、事前処理部４００で作成した書き換え対象ファイルの一覧を基に、バックエンドサーバ３００からの応答コンテンツに含まれる、外部ＵＲＬを作成するプログラムを、動的に書き換える。たとえば、リバースプロキシ部５００は、応答コンテンツ中に含まれるプログラムの実行結果が、アドレスを絶対パスで作成する場合は、プログラムを書き換えて上記絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする。また、リバースプロキシ部５００は、応答コンテンツが、バックエンドサーバ３００をクライアント１００から参照するアドレス（ＵＲＬ）を作成するプログラムを含む場合で、かつそのプログラムの実行結果が上記アドレスを相対パスで作成する場合は、ｘｍｌＨＴＴＰオブジェクトを付加して、バックエンドサーバ３００のマウントポイント情報（コンテンツ格納場所を識別するための情報）をクライアントに取得させる。ここで、ｘｍｌＨＴＴＰオブジェクトは、クライアントからアクセス要求を送信して、結果のＸＭＬ、ＨＴＭＬまたはバイナリデータを取得するためのアプリケーションである。
【００２８】
なお、第１の記憶部４３０、第２の記憶部４４０、第３の記憶部５３０は、それぞれ物理的に別の記憶装置でも、同じ記憶装置で記憶領域を分けたものでも良い。
【００２９】
インターフェース部４２０は、バックエンドサーバ３００からデータ処理部４１０への、データの受け渡しを行う。インターフェース部５２０は、クライアント１００と、バックエンドサーバ３００と、リバースプロキシ部５１０との間で、データの受け渡しを行う。
【００３０】
なお、インターフェース部４２０とインターフェース部５２０は、必ずしも個々に独立した構成要素として存在する必要は無い。例えば、共通で使用される一つのモジュールとして実現されてもよい。
【００３１】
対象ファイル抽出ルール４３１は、バックエンドサーバ３００からクライアント１００に渡される可能性のあるファイルを特定するための、一つまたは複数のルールを含む。これらルールは、予め作成されて第１の記憶部４３０に記憶される。対象ファイル抽出ルール４３１の例を図８に示す。対象ファイル抽出ルール４３１には、拡張子がｈｔｍｌファイル及びＳｅｒｖｅｒＣ/ｇｙｏｕｍｕ＿ｓｙｓｔｅｍ/配下にあるファイルを抽出する抽出ルール、を含む。
【００３２】
また、リバースプロキシ処理部５１０は、バックエンドサーバ３００からの応答コンテンツの内容に応じて、どの応答コンテンツのファイルがどのようなアドレス変換処理を行う必要があるか、を事前に分類するためのファイルリストが必要となる。この場合の応答コンテンツのファイルに対するアドレス変換処理とは、応答コンテンツに含まれるプログラムを書き換える、ｘｍｌＨＴＴＰオブジェクトを付加する、あるいは何もしない等の処理を含む。第２の記憶部４４０に格納されたファイルリスト分類ルール４４１は、そのための、一つまたは複数のルールを有する。ファイルリスト分類ルール４４１の例を図９に示す。図９に示すように、ファイルリスト分類ルール４４１は、４つの条件、出力先ファイルリスト名、を含む。図９では、各ルールは応答コンテンツの処理の対象となるファイル（対象ファイル）を分類するための条件，出力先ファイルリスト（たとえば、ｘｍｌＨＴＴＰ．ｔｘｔ）の順に記載されている。
【００３３】
データ処理部４１０は、バックエンドサーバ３００上に存在するファイルに対し、対象ファイル抽出ルール４３１の前述の条件に従って、対象ファイルを抽出する。そして、データ処理部４１０は、対象ファイルを、ファイルリスト分類ルール４４１の出力先ファイルリストを基に、ｘｍｌＨＴＴＰ付加用ファイルリスト４４２、プログラム書き換え用ファイルリスト４４３、変換処理なし用ファイルリスト４４４に振り分けて格納する。
【００３４】
ｘｍｌＨＴＴＰ付加用ファイルリスト４４２の例を図１０に示す。ｘｍｌＨＴＴＰ付加用ファイルリスト４４２は、サーバ情報、ファイルパス、マウントポイント情報を保持する。図１０において、「ＳｅｒｖｅｒＡ」、「１０．１１．２３４．１１１」が、サーバ情報で、「ｐｏｒｔａｌ・ｉｎｄｅｘｈｔｍｌ」「ｇｙｏｕｍｕ/ｔｙｏｕｈｙｏｕ・ｈｔｍｌ」が、ファイルパスであり、「/Ａ」「/Ｂ」が、コンテンツ格納場所を識別するためのマウントポイント情報である。
【００３５】
また、プログラム書換え用ファイルリスト４４３と変換処理なし用ファイルリスト４４４の例を図１１に示す。プログラム書換え用ファイルリスト４４３と変換処理なし用ファイルリスト４４４は、サーバ情報、ファイルパス、を保持する。図１１の上段がプログラム書換え用ファイルリスト４４３で、下段が変換処理なし用ファイルリスト４４４である。
【００３６】
第３の記憶部５３０に格納される変換ルール５３１は、リバースプロキシ処理部５１０が対象ファイルに対し変換処理を行うための一つまたは複数のルールを規定する。変換ルール５３１の例を図１２に示す。変換ルール５３１は、ファイルパス、変換処理関数名、を含む。
【００３７】
リバースプロキシ処理部５１０は、バックエンドサーバ３００から受信する応答コンテンツファイルに対して、ｘｍｌＨＴＴＰ付加用ファイルリスト４４２、プログラム書き換え用ファイルリスト４４３、変換処理なし用ファイルリスト４４４、に対象ファイルが記録（記載とも言う）されているかを、ファイルパスをキーとしてチェックする。
【００３８】
対象ファイルが図１０に示すようにｘｍｌＨＴＴＰ付加用ファイルリスト４４２に記載されている場合、リバースプロキシ処理部５１０は、変換ルール５３１に記載されているルールに従ったｘｍｌＨＴＴＰオブジェクト付加処理を行い、クライアント１００に応答コンテンツを送信する。
【００３９】
また、対象ファイルがプログラム書き換え用ファイルリスト４４３に記載されている場合、リバースプロキシ処理部５１０は、変換ルール５３１に記載されているルールに従ったプログラムの書換えを行い、クライアント１００に応答コンテンツを送信する。
【００４０】
さらに、対象ファイルが変換処理なし用ファイルリスト４４４に記載されている場合、リバースプロキシ処理部５１０は、そのままクライアント１００に応答コンテンツを返却する。
【００４１】
図３は、リバースプロキシ処理部５１０の構成を示すブロック図である。
【００４２】
図３を参照すると、リバースプロキシ処理部５１０は、第１の変換処理部５１１と、第２の変換処理部５１２とを備える。
【００４３】
第１の変換処理部５１１は、変換ルール５３１の第１の変換処理関数を実行する。その変換処理関数は、クライアント１００への下り方向の応答コンテンツの、外部ＵＲＬを作成するプログラムに、ｘｍｌＨＴＴＰオブジェクトを付加して、バックエンドサーバ３００のマウントポイント情報を取得させるｘｍｌＨＴＴＰオブジェクト付加処理を含む。
【００４４】
第２の変換処理部５１２は、変換ルール５３１の第２の変換処理関数を実行する。その変換処理関数は、クライアント１００への下り方向の応答コンテンツの、外部ＵＲＬを作成するプログラムを書き換えて、絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする、プログラムの書き換え処理を含む。
【００４５】
図４は、本発明の第１の実施の形態におけるリバースプロキシ装置２００をコンピュータ装置で実現したハードウェア構成を示す図である。図４に示されるように、リバースプロキシ装置２００は、ＣＰＵ９１０、メモリ９２０、プログラムやデータを格納するハードディスク等の外部記憶装置９３０、ネットワーク接続用の通信インターフェース装置９４０、プログラムやデータの入力や結果の出力を行う入出力装置９５０、及びそれらを相互に接続するバス９６０、を含む。また、リバースプロキシ装置２００は、通信インターフェース装置９４０を介して社内ＬＡＮ９７０及びインターネット９８０に接続されている。通信インターフェース装置９４０は、図２のインタフェース部４２０および５２０に対応する。
【００４６】
ＣＰＵ９１０は、オペレーティングシステムを動作させて本発明の第１の実施の形態に係るリバースプロキシ装置２００の全体を制御する。また、ＣＰＵ９１０は、例えば外部記憶装置９３０に装着された記録媒体からメモリ９２０にプログラムやデータを読み込む。また、ＣＰＵ９１０は、第１の実施の形態における事前処理部４００、リバースプロキシ部５００として機能し、プログラムに基づいて各種の処理を実行する。
【００４７】
入出力装置９５０は、例えばマウス、キーボード、内蔵のキーボタン、タッチパネルなどで実現され入力操作に用いられる入力部と、例えばディスプレイで実現され出力を確認するために用いられる出力部とで実現される。
【００４８】
外部記憶装置９３０は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。外部記憶装置の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムやデータを記録する。また、プログラムやデータは、社内ＬＡＮ９７０に接続されている図示しない外部コンピュータからダウンロードされてもよい。
【００４９】
以上のように、図２及び図３に示す第１の実施の形態は、図４に示されるハードウェア構成によって実現される。ただし、図２のリバースプロキシ装置２００が備える各部の実現手段は特に限定されない。すなわち、リバースプロキシ装置２００は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【００５０】
以上のように構成されたリバースプロキシ装置２００の動作について、図５、図６、図７のフローチャートを参照して説明する。
【００５１】
図５は、第１の実施の形態におけるリバースプロキシ装置２００での、データ処理部４１０の動作の概要を示すフローチャートである。なお、このフローチャートによる処理は、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。
【００５２】
図５に示すように、まず、データ処理部４１０は、第１の記憶部４３０から対象ファイル抽出ルール４３１を読み込み（ステップＳ１０１）、第２の記憶部４４０からファイルリスト分類ルール４４１を読み込む（ステップＳ１０２）。
【００５３】
次に、データ処理部４１０は、一つのバックエンドサーバ３００からファイルを一つ読み込む（ステップＳ１０３）。
【００５４】
そして、データ処理部４１０は、読み込んだファイルの情報を対象ファイル抽出ルール４３１に記載のルールと比較し（ステップＳ１０４）、抽出ルールが合致した場合は、読み込んだファイルの情報を対象ファイルとしてファイルリスト作成処理を実行し（ステップＳ１０５）、ステップＳ１０７に進む。なお、このファイルリスト作成処理はサブルーチンであり、処理の詳細については図６のファイルリスト作成処理フローで説明する。
【００５５】
また、読み込んだファイルの情報が対象ファイル抽出ルール４３１に記載の全てのルールと合致しなかった場合は、当該のファイルはリバースプロキシ装置２００の処理対象ではないので、次のステップＳ１０７に進む（ステップＳ１０６）。
【００５６】
次に、データ処理部４１０は、一つのバックエンドサーバ３００内の全てのファイルを処理したかを判別し、まだ未処理のファイルが残っている場合は、ステップＳ１０３に戻る（ステップＳ１０７）。
【００５７】
次に、データ処理部４１０は、全てのバックエンドサーバ３００を処理したかを判別し、まだ未処理のバックエンドサーバ３００が残っている場合は、ステップＳ１０３に戻る（ステップＳ１０８）。
【００５８】
以上で、リバースプロキシ装置２００は、データ処理部４１０の動作を終了する。
【００５９】
図６は、第１の実施の形態におけるリバースプロキシ装置２００での、ファイルリスト作成処理の動作の概要を示すフローチャートである。これは、前述の図５のデータ処理部４１０のフローチャートの、ステップＳ１０５で実行されるものであり、また、後述の図７のリバースプロキシ処理部５１０の、ステップＳ３０８で実行されるものである。なお、このフローチャートによる処理も、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。
【００６０】
図６に示すように、まず、ファイルリスト作成処理は、当該ファイルがファイルリスト分類ルール４４１に記載のルールの条件と合致するかを比較する（ステップＳ２０１）。
【００６１】
ファイルリスト分類ルール４４１に記載のルールの条件と合致した場合、ファイルリスト作成処理は、そのルールに記載の出力先ファイルリスト、つまり、ｘｍｌＨＴＴＰ付加用ファイルリスト４４２、若しくはプログラム書き換え用ファイルリスト４４３に、当該ファイル（対象ファイル）の情報を出力する（ステップＳ２０２）。
【００６２】
次に、ファイルリスト分類ルール４４１に記載の全てのルールの条件と合致しなかった場合は、ファイルリスト作成処理は、変換処理なし用ファイルリスト４４４に当該ファイルの情報を出力する（ステップＳ２０４）。
【００６３】
以上で、リバースプロキシ装置２００は、ファイルリスト作成処理の動作を終了する。
【００６４】
図７は、第１の実施の形態におけるリバースプロキシ装置２００での、リバースプロキシ処理部５１０の動作の概要を示すフローチャートである。なお、このフローチャートによる処理も、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。また、上り方向のＵＲＬ変換処理については、通常のリバースプロキシシステムで実行されている処理と同じなので、ここでは省略する。
【００６５】
図７に示すように、まず、リバースプロキシ処理部５１０は、バックエンドサーバ３００から送られてくる応答コンテンツのファイルを受信する（ステップＳ３０１）。
【００６６】
次に、リバースプロキシ処理部５１０は、第３の記憶部５３０から、変換ルール５３１を読み込む（ステップＳ３０２）。
【００６７】
次に、リバースプロキシ処理部５１０は、受信ファイルのファイルパスが、変換処理なし用ファイルリスト４４４に記載されているかどうかを判定する（ステップＳ３０３）。
【００６８】
受信ファイルのファイルパスが、変換処理なし用ファイルリスト４４４に記載されている場合、リバースプロキシ処理部５１０は、そのままクライアント１００に応答コンテンツを送信する（ステップＳ３１０）。変換処理なし用ファイルリスト４４４に記載されていない場合は、次のステップＳ３０４に進む。
【００６９】
ステップＳ３０４では、リバースプロキシ処理部５１０は、ｘｍｌＨＴＴＰ付加用ファイルリスト４４２に受信ファイルのファイルパスが記載されているかどうかを判定する。
【００７０】
ｘｍｌＨＴＴＰ付加用ファイルリスト４４２に記載されている場合、第１の変換処理部５１１が、受信ファイルのファイルパスを基に、応答コンテンツに対して変換ルール５３１の変換処理関数を実行する（ステップＳ３０５）。具体的に、リバースプロキシ処理部５１０は、クライアント１００への下り方向の応答コンテンツの、外部ＵＲＬを作成するプログラムに、ｘｍｌＨＴＴＰオブジェクトを付加して、バックエンドサーバ３００のマウントポイント情報をクライアントに取得させるｘｍｌＨＴＴＰオブジェクト付加処理を実行させる。そして、リバースプロキシ処理部５１０は、クライアント１００に、変換処理関数によって変換処理された応答コンテンツを送信する（ステップＳ３１０）。
【００７１】
ｘｍｌＨＴＴＰ付加用ファイルリスト４４２に記載されていない場合は、次のステップＳ３０６に進む。
【００７２】
ステップＳ３０６では、リバースプロキシ処理部５１０は、プログラム書き換え用ファイルリスト４４３に受信ファイルのファイルパスが記載されているかを判定する。
【００７３】
プログラム書き換え用ファイルリスト４４３に記載されている場合、第２の変換処理部５１２が、当該のファイルのファイルパスを基に、応答コンテンツに対して変換ルール５３１のプログラム書き換えの変換処理関数を実行する（ステップＳ３０７）。具体的に、リバースプロキシ処理部５１０は、クライアント１００への下り方向の応答コンテンツの、外部ＵＲＬを作成するプログラムを書き換えて、絶対パスを指定せずに、本リバースプロキシ装置を通過するようにする、プログラムの書き換え処理を実行する。そして、リバースプロキシ処理部５１０は、クライアント１００に、プログラム書き換えされた応答コンテンツを送信する（ステップＳ３１０）。
【００７４】
プログラム書き換え用ファイルリスト４４３に記載されていない場合は、次のステップＳ３０８に進む。
【００７５】
ステップＳ３０３、ステップＳ３０４、ステップＳ３０６のいずれの判定にも該当しないファイルは、データ処理部４１０の実行後に新規に作成されたファイルの可能性があるため、リバースプロキシ処理部５１０は、第２の記憶部４４０からファイルリスト分類ルール４４１を読み込み（ステップＳ３０８）、さらに、ファイルリスト作成処理を実行しステップＳ３０３に戻る（ステップＳ３０９）。なお、このファイルリスト作成処理はサブルーチンであり、処理の詳細については前述の図６のファイルリスト作成処理フローで説明した。
【００７６】
以上で、リバースプロキシ装置２００は、リバースプロキシ処理部５１０の動作を終了する。
【００７７】
次に、本発明の第１の実施の形態の効果について説明する。
【００７８】
上述した本実施形態におけるリバースプロキシ装置２００は、下り方向のＵＲＬ変換と同時に、バックエンドサーバ３００の応答コンテンツに含まれる、外部ＵＲＬを作成するプログラムを修正する。そのため、上り方向のＵＲＬ変換時に履歴情報を必要とせずに、クライアント１００からのアクセス要求を、正しく目的のバックエンドサーバ３００に中継することが可能となる。
【００７９】
また、マウントポイント情報以外のファイルパスが全く同じファイルが、バックエンドサーバ３００の複数サーバ上に存在している場合でも、リバースプロキシ装置２００が、下り方向のＵＲＬ変換時に、マウントポイント情報を取得するｘｍｌＨＴＴＰオブジェクトを付加するため、上り方向のＵＲＬ変換時には、クライアント１００からのアクセス要求がどのサーバを指定しているのかが判別可能になる。
【００８０】
さらに、バックエンドサーバ３００の応答コンテンツに含まれるプログラムが、バックエンドサーバ３００の外部ＵＲＬとして絶対パスを作成してしまう場合でも、上述と同様に、リバースプロキシ装置２００が下り方向のＵＲＬ変換と同時に、プログラムを修正する。そのため、クライアント１００からのアクセス要求が、リバースプロキシ装置２００を介して、正しく目的のバックエンドサーバ３００にアクセスすることが可能になる。
【００８１】
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【００８２】
図１３は、本発明の第２の実施形態に係るファイルリスト分類ルール４４１の例である。
【００８３】
図１３を参照すると、本実施形態におけるファイルリスト分類ルール４４１は、第１の実施形態のそれと比べて、分類ルール番号、次ルール番号、次ルールとの結合子、を追加で含む。これは、複雑な条件を作成する際に、複数のルールを結合した結合条件を作成することを可能としている。
【００８４】
第２の実施形態におけるファイルリスト分類ルール４４１は、データ処理部４１０とリバースプロキシ処理部５１０の中で実行されるファイルリスト作成処理の、図６のフローチャートのステップＳ２０１の判定処理で参照される。
【００８５】
図６のフローチャートの流れは第１の実施形態のそれと同じなので、説明を省略する。
【００８６】
次に、本発明の第２の実施の形態の効果について説明する。
【００８７】
上述した本実施形態におけるファイルリスト作成処理は、バックエンドサーバ３００のファイルを、どのような変換処理を適用すればよいかを判断するためのファイルリスト、すなわち、ｘｍｌＨＴＴＰ付加用ファイルリスト４４２や、プログラム書き換え用ファイルリスト４４３や、変換処理なし用ファイルリスト４４４に振り分ける際に、複雑な条件を複数のルールの結合条件として設定したファイルリスト分類ルール４４１を使用することができる。
【００８８】
したがって、一つ一つのルールをわかりやすく記述できることで、人手による事前のファイルリスト分類ルール４４１の設定ミスを少なくすることができる。
【００８９】
以上説明した、本発明の各実施形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【００９０】
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【００９１】
たとえば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【００９２】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００９３】
さらに、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【００９４】
さらに、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【符号の説明】
【００９５】
１００    クライアント
２００    リバースプロキシ装置
３００    バックエンドサーバ
４００    事前処理部
４１０    データ処理部
４２０    インターフェース部
４３０    第１の記憶部
４３１    対象ファイル抽出ルール
４４０    第２の記憶部
４４１    ファイルリスト分類ルール
４４２    ｘｍｌＨＴＴＰ付加用ファイルリスト
４４３    プログラム書き換え用ファイルリスト
４４４    変換処理なし用ファイルリスト
５００    リバースプロキシ部
５１０    リバースプロキシ処理部
５１１    第１の変換処理部
５１２    第２の変換処理部
５２０    インターフェース部
５３０    第３の記憶部
５３１    変換ルール
【図１】
2013182396.tif 000003
【図２】
2013182396.tif 000004
【図３】
2013182396.tif 000005
【図４】
2013182396.tif 000006
【図５】
2013182396.tif 000007
【図６】
2013182396.tif 000008
【図７】
2013182396.tif 000009
【図８】
2013182396.tif 000010
【図９】
2013182396.tif 000011
【図１０】
2013182396.tif 000012
【図１１】
2013182396.tif 000013
【図１２】
2013182396.tif 000014
【図１３】
2013182396.tif 000015