(57)【要約】【課題】Ｗｅｂサーバに到着したリクエストを、リクエストのＵＲＬに応じて複数存在するＡＰサーバの一つに転送する際に、Ｗｅｂサーバから、ＡＰサーバにリクエストを転送するための設定の更新とその更新内容のＷｅｂサーバの動作への反映を、Ｗｅｂサーバの管理者に依頼することなしに行う。【解決手段】ブラウザからＷｅｂサーバに到着したリクエストのＵＲＬから、転送先のＡＰサーバを求めるためにＷｅｂサーバが用いる転送先情報を、ＡＰサーバが、Ｗｅｂサーバの参照できるファイルに出力する。そして、Ｗｅｂサーバがブラウザからのリクエストを受け取り、そのリクエストを処理する過程で、ＡＰサーバが出力した転送先情報を参照し、リクエストの転送先を決定する。【選択図】  図１
2004151799.tif 000002
【特許請求の範囲】
【請求項１】
クライアントプログラムから第一のサーバプログラムに到着するリクエストを、そのリクエストの宛先に応じて、複数存在する第二のサーバプログラムの一つに転送するリクエスト転送方法であって、
クライアントプログラムから第一のサーバプログラムに到着したリクエストの宛先から、転送先の第二のサーバプログラムを求めるために前記第一のサーバプログラムが用いる転送先情報を、前記第二のサーバプログラムが、前記第一のサーバプログラムの参照できる記憶手段に出力する転送先情報出力ステップと、
前記第一のサーバプログラムが、前記クライアントプログラムからのリクエストを受け取り、そのリクエストを前記第二のサーバプログラムに転送するリクエスト転送ステップとを有し、
さらに前記リクエスト転送ステップは、前記第二のサーバプログラムが前記転送先情報出力ステップで出力した前記転送先情報を参照することによって前記リクエストの転送先を決定する転送先決定ステップを有することを特徴とするリクエスト転送方法。
【請求項２】
請求項１記載のリクエスト転送方法において、前記転送先決定ステップでは、前記第一のサーバプログラムのリクエスト処理の過程で参照した転送先情報を、前記第一のサーバプログラムの主記憶装置上のキャッシュに保存し、前記第一のサーバプログラムはリクエストの処理時に、まず、前記キャッシュの転送先情報を参照し、転送先が決定しない場合にのみ、前記第二のサーバプログラムが転送先情報出力ステップで出力した転送先情報を参照することを特徴としたリクエスト転送方法。
【請求項３】
請求項１記載のリクエスト転送方法において、前記リクエスト転送ステップでは、前記第一のサーバプログラムは、前記転送先決定ステップの後に、そのリクエストの転送の失敗が判明した場合、前記転送先を決定する際に使用した前記転送先情報を無効化する転送先情報無効化ステップを有することを特徴としたリクエスト転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の階層から成るサーバプログラムのリクエスト処理方法に係わり、クライアントプログラムから第一のサーバプログラムに到着するリクエストを、そのリクエストの宛先に応じて、複数存在するうちのある一つの第二のサーバプログラムに転送するリクエスト転送方法に関する。
【０００２】
【従来の技術】
今日、企業が商品やサービスのＰＲや販売のチャネルを増やすために、インターネット上にＷｅｂサイトを開設することが当然となっている。それらのＷｅｂサイトでは、商品情報の閲覧だけでなく、商品の検索や見積もり、決済まで行えることが多い。Ｗｅｂサイトで、商品の検索や見積もり、決済といったオンライン処理を実現するためには、Ｗｅｂサーバの背後でアプリケーションプログラムを実行する手段が必要である。
【０００３】
Ｗｅｂサーバの背後でアプリケーションプログラムを実行する手段としては、非常駐プロセス方式と、常駐プロセス方式がある。
【０００４】
非常駐プロセス方式は、アプリケーションプログラムを単体で起動可能な実行形式ファイルとして作成し、リクエスト毎にこの実行形式ファイルを新規プロセスとして起動する方式である。
【０００５】
常駐プロセス方式は、アプリケーションプログラムをサブルーチンとして作成し、リクエスト実行時には、サブルーチンを呼び出す役割を持つプロセスが、サブルーチンを呼び出すことによって、リクエストを処理する方式である。常駐プロセス方式では、同じプロセスがリクエストの度にサブルーチンを呼び出す。そのため、リクエスト毎にプロセスを起動する必要がない。
【０００６】
非常駐プロセス方式はリクエスト毎にプロセス起動のオーバヘッドがかかってしまうのに対し、常駐プロセス方式ではそのオーバヘッドが存在しないため、常駐プロセス方式の方が性能面で有利である。
【０００７】
しかし、性能面での不利にも関わらず、非常駐プロセス方式は、Ｗｅｂサーバに簡単な設定をしておくだけで手軽に使えるため、Ｗｅｂサーバを独自に運用できるユーザだけでなく、各ユーザがＷｅｂサーバの設定を自由に変更できない、個人ユーザ向けＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）でも広く使用されている。
【０００８】
これに対し、常駐プロセス方式は，Ｗｅｂサーバに多くの設定をしなければならないので、Ｗｅｂサーバを独自に運用できるユーザにしか利用されていない。そのため、個人ユーザ向けＩＳＰでＷｅｂサイトを公開したいと考える中小企業や商店からは利用できていない。
【０００９】
常駐プロセス方式を実現するＡＰサーバの例として、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎの開発したＴｏｍｃａｔがある（例えば、非特許文献１を参照）。ＴｏｍｃａｔはＪａｖａ  Ｓｅｒｖｌｅｔ仕様に沿ったサブルーチンであるサーブレットを実行するＡＰサーバである。（Ｊａｖａ  およびすべてのＪａｖａ関連の商標は、米国およびその他の国における米国  Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．の商標または登録商標です。）
Ｔｏｍｃａｔでは、Ｗｅｂサーバに到着したリクエストのうち、ＡＰサーバに処理させるべきリクエストを選択し、ＡＰサーバにリクエストを転送して、処理させる。リクエストの選択と転送の処理は、Ｗｅｂサーバの機能を拡張して実現する。現存する多くのＷｅｂサーバには、Ｗｅｂサーバの機能拡張のためのライブラリを登録するインタフェースが用意されており、このインタフェースに適合したライブラリであるＷｅｂサーバ拡張ライブラリをＷｅｂサーバに登録することにより、任意の機能をＷｅｂサーバに追加できる。
【００１０】
上記Ｔｏｍｃａｔでは、このＷｅｂサーバ拡張ライブラリとして、リクエストの選択と転送の機能を持つ、リクエスト転送ライブラリを登録する。リクエスト転送ライブラリは、転送要否の判断を、ＵＲＬパターンに基づいて行う。リクエスト転送ライブラリは、ＵＲＬパターンをＡＰサーバのネットワークアドレスに対応付けるテーブルである転送先決定テーブルを保有しており、リクエストのＵＲＬが転送先決定テーブルに登録されているＵＲＬパターンに適合する場合には、そのＵＲＬパターンに対応付けて登録されているネットワークアドレスにリクエストを転送する。
【００１１】
転送先決定テーブルの内容は、Ｗｅｂサーバにつき一つの転送情報設定ファイルに記述されており、Ｗｅｂサーバの起動時にそのファイルをメモリ上に読み込む。
【非特許文献１】
“Ａｐａｃｈｅ  Ｊａｋａｒｔａ−Ｔｏｍｃａｔ”，    ｐ．１５１，  Ｊａｍｅｓ  Ｇｏｏｄｗｉｌｌ著，  Ａｐｒｅｓｓ，  ２００２
【００１２】
【発明が解決しようとする課題】
中小企業や商店が個人ユーザ向けＩＳＰで、非常駐プロセス方式より性能面で有利なＡＰサーバを利用できるようにするために、上記の従来技術を用いて、個人ユーザ向けＩＳＰにＡＰサーバを導入することを想定する。
【００１３】
個人ユーザ向けＩＳＰでは、あるユーザのアプリケーションプログラムの障害が他のユーザのアプリケーションプログラムに影響を及ぼさないようにするために、ユーザごとに別々のＡＰサーバを各自で起動させることが望ましい。
【００１４】
しかし、ユーザごとに別々のＡＰサーバを起動させようとすると、以下の二つの問題が生じる。
【００１５】
第一の問題は、ＩＳＰのＷｅｂサーバから、ＩＳＰの各ユーザが起動するＡＰサーバにリクエストを転送するための設定を、各ユーザが自分で行うことができないという問題である。なぜなら、Ｗｅｂサーバにつき一つのファイルとして管理されている転送情報設定ファイルには、すべてのユーザのＡＰサーバに関する情報が混在することになるため、各ユーザが他のユーザに関する設定を故意や過失によって改変してしまう危険性を考慮すると、このファイルの更新は、セキュリティ上、各ユーザに行わせるわけにはいかない。そのため、システム管理者がユーザからの依頼を受けて実施せざるを得ない。
【００１６】
第二の問題は、転送情報設定ファイルを更新したとしても、各ユーザが自分で、その更新をＷｅｂサーバの動作に反映させられないという問題がある。なぜなら、転送情報設定ファイルの更新をＷｅｂサーバの動作に反映させるためには、Ｗｅｂサーバのメモリ上の転送先決定テーブルに転送情報設定ファイルを読み込まなくてはならないが、ここにデータを読み込むのはＷｅｂサーバ起動時だけなので、更新を反映させるには、Ｗｅｂサーバの再起動が必要である。しかし、Ｗｅｂサーバの再起動は、すべてのユーザに影響を及ぼす操作であるため、各ユーザに行わせるわけにはいかず、システム管理者がユーザからの依頼を受けて実施せざるを得ない。
【００１７】
以上二つの問題があるため、従来技術を個人向けＩＳＰで利用することができない。本発明では、上記従来技術の問題点を鑑みて、以下の二つの課題を解決することを目的とする。
【００１８】
第一に、Ｗｅｂサーバから、ＡＰサーバにリクエストを転送するための設定の更新を、システム管理者に依頼することなしに、各ユーザが行うことを可能とする。
【００１９】
第二に、設定を更新した時に、システム管理者に依頼することなしに、その内容をＷｅｂサーバの動作に反映させることを可能とする。
【００２０】
【課題を解決するための手段】
本発明は上記の目的を達成するために、Ｗｅｂサーバに到着するリクエストを、そのリクエストのＵＲＬに応じて、ＡＰサーバに転送するリクエスト転送方法において、Ｗｅｂサーバに到着したリクエストのＵＲＬから、転送先のＡＰサーバを求めるために、上記Ｗｅｂサーバが用いる転送先情報を、上記ＡＰサーバが、上記Ｗｅｂサーバの参照できるファイルに出力する転送先情報出力ステップと、上記Ｗｅｂサーバがブラウザからのリクエストを受け取り、そのリクエストを処理する過程で、上記ＡＰサーバが上記転送先情報出力ステップでファイルに出力した上記転送先情報を参照し、上記リクエストの転送先を決定する転送先決定ステップとを有する。
【００２１】
本発明では、転送先情報出力ステップにおいて、ＡＰサーバが転送先情報を出力することにより、ＷｅｂサーバがＡＰサーバにリクエストを転送するための設定の更新が行われる。すなわち、ＷｅｂサーバがＡＰサーバにリクエストを転送するための設定の更新を、システム管理者に依頼することなしに、各ユーザがＡＰサーバを起動するだけで可能となり、本発明の第一の目的は達成される。
【００２２】
また、転送先決定ステップにおいて、Ｗｅｂサーバが、リクエスト処理の過程でＡＰサーバの出力した転送先情報を参照することにより、ＷｅｂサーバがＡＰサーバにリクエストを転送するための設定の更新を、Ｗｅｂサーバの動作に反映させている。すなわち、ＷｅｂサーバがＡＰサーバにリクエストを転送するための設定の更新を、システム管理者に依頼することなしに、Ｗｅｂサーバの動作に反映させることが可能となり、本発明の第二の目的は達成される。
【００２３】
【発明の実施の形態】
以下に、本発明の一実施例を、図面を用いて詳細に説明する。
【００２４】
本実施例では、本発明を、リクエスト転送ライブラリとＡＰサーバプログラムへの追加機能として実現している。リクエスト転送ライブラリは、Ｗｅｂサーバに追加の処理を行わせるためにＷｅｂサーバに登録することができるＷｅｂサーバ拡張ライブラリの一つである。
【００２５】
また、本発明の実施者として、以下のような特徴を持つ個人ユーザ向けＩＳＰ業者を想定する。
【００２６】
まず、ＩＳＰ業者が運用するサーバ装置では、ＩＳＰのシステム管理者が管理するＷｅｂサーバが稼動しており、一般のユーザは停止・起動や再起動などのＷｅｂサーバの管理作業は許されていないものとする。そして、ＩＳＰ契約ユーザ毎にホームページ公開用ディレクトリが割り当てられており、ＩＳＰ契約ユーザは、このディレクトリにＨＴＭＬファイルなどのホームページコンテンツを置くことによって、ホームページの公開が可能となるものとする。また、ＩＳＰ契約ユーザは自身で運用管理可能なＡＰサーバを起動することができるものとする。
【００２７】
本発明の目的は、このようなＩＳＰにおいて、ＩＳＰ契約ユーザがＡＰサーバを新規に起動した場合に、ＩＳＰのシステム管理者に依頼することなく、そのＡＰサーバを利用可能にすることである。すなわち、ＩＳＰのＷｅｂサーバからそのＡＰサーバへリクエストを転送するためにＷｅｂサーバが必要とする設定の更新、およびその設定の更新をＷｅｂサーバの動作へ反映させることである。
【００２８】
以下では、本発明を利用して、上記目的を達成するためのシステムの構成および処理手順を説明する。
【００２９】
まず、図２を用いて、本実施例のシステム構成について説明する。
【００３０】
本実施例では、ＩＳＰ業者が運用するサーバ装置（以下、ＩＳＰサーバ装置８００と呼ぶ）や端末装置１０００がインターネット１１００を介して接続されている。
【００３１】
ここで、ＩＳＰサーバ装置８００をパーソナルコンピュータ（以下、パソコンと呼ぶ）などの汎用の計算機と、その上で実行されるＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバプログラム（以下、Ｗｅｂサーバプログラムと呼ぶ）、ＡＰサーバプログラム、ＴＥＬＮＥＴサーバプログラム、リクエスト転送ライブラリによって構成している。
【００３２】
また、ＩＳＰ契約ユーザ１０１やホームページ閲覧者１０２がＩＳＰサーバ装置８００と通信を行うために利用する端末装置１０００を、パソコンなどの汎用の計算機と、その上で実行されるＨＴＴＰクライアントプログラム（以下ブラウザと呼ぶ）とＴＥＬＮＥＴクライアントプログラムによって構成している。
【００３３】
ＩＳＰ契約ユーザ１０１は端末装置１０００上でＴＥＬＮＥＴクライアントプログラムを実行することによって、ＩＳＰサーバ装置８００上のＴＥＬＮＥＴサーバプログラムと通信を行い、ＨＴＭＬなどのホームページコンテンツファイルの作成といったホームページ作成作業や、ＡＰサーバの起動・停止といったＡＰサーバ運用管理作業を行う。
【００３４】
また、ホームページ閲覧者１０２は、端末装置１０００上でブラウザを実行し、インターネット１１００経由で、ＩＳＰサーバ装置８００上のＷｅｂサーバプログラムと通信を行い、ホームページの閲覧を行う。
【００３５】
本実施例では、ＩＳＰ契約ユーザ１０１がホームページ作成作業を行う際のＩＳＰサーバ装置８００と端末装置１０００間のプロトコルとして、ＴＥＬＮＥＴを使用しているが、上記のプロトコルとしては、ホームページ作成作業が可能なプロトコルであれば、他の通信プロトコルであってもよい。
【００３６】
上記のシステム構成において、端末装置１０００は、汎用の計算機と、汎用のブラウザ、汎用のＴＥＬＮＥＴクライアントプログラムにより実現でき、本発明と関係ないので説明を省略する。一方、ＩＳＰサーバ装置８００は、以下で詳細に説明する構成と処理手順によって実現できる。
【００３７】
図３はＩＳＰサーバ装置８００の構成図である。図３において、ＩＳＰサーバ装置８００はＣＰＵ８０１とネットワークインタフェース回路８０２、二次記憶装置制御回路８０３、主記憶装置８０４、二次記憶装置８０５から構成される。
【００３８】
ネットワークインタフェース回路８０２はＣＰＵ８０１の指示に従い、端末装置１０００上のブラウザやＴＥＬＮＥＴクライアントプログラムとやりとりするインターネット１１００上のメッセージを送受信する。
【００３９】
二次記憶装置制御回路８０３は、ＣＰＵ８０１からの指示に従い、二次記憶装置８０５上にデータを入出力する。
【００４０】
また、主記憶装置８０４上には、端末装置１０００を操作するホームページ閲覧者１０２が要求するＵＲＬに応じて、ＵＲＬに対応する二次記憶装置８０５上のホームページコンテンツ６０２を提供するＷｅｂサーバプログラム２００や、Ｗｅｂサーバプログラム２００の機能拡張のためにＷｅｂサーバプログラム２００からリクエスト処理の過程で呼び出され、ＵＲＬに対応するＡＰサーバプログラム４００に要求を転送するライブラリであるリクエスト転送ライブラリ２０２と、端末装置１０００を操作するＩＳＰ契約ユーザ１０１の指示に応じて、ファイルの作成や編集といったＩＳＰサーバ装置８００上でのリモート操作を受け付けるプログラムであるＴＥＬＮＥＴサーバプログラム８０６と、リクエスト転送ライブラリ２０２から転送されてくるリクエストのＵＲＬに応じてアプリケーションプログラムを実行するプログラムであるＡＰサーバプログラム４００と、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）８０７が格納される。
【００４１】
また、二次記憶装置８０５は、ＩＳＰ契約ユーザ毎のホームページ公開用ディレクトリ６００に分割されており、各々のホームページ公開用ディレクトリ６００には、各ＩＳＰ契約ユーザが作成するＨＴＭＬファイルなどのホームページコンテンツ６０１や、ＡＰサーバプログラム４００がリクエスト転送ライブラリ２０２から転送されてくるリクエストを受け付けるためのポートのネットワークアドレスをリクエスト転送ライブラリ２０２から参照できるようにするために起動時に作成するファイルである宛先情報ファイル６０１が置かれる。
【００４２】
上記のＩＳＰサーバ装置８００の主記憶装置８０４内の構成において、ＯＳ８０７としては、市販の汎用ＯＳを使用することが可能であり、ＴＥＬＮＥＴサーバプログラム８０６としては、市販の汎用のＴＥＬＮＥＴサーバプログラムを使用することが可能であり、Ｗｅｂサーバプログラム２００としては市販の汎用のＷｅｂサーバプログラムを使用できる。
【００４３】
一方、ＡＰサーバプログラム４００とリクエスト転送ライブラリ２０２は、それぞれ、汎用のＡＰサーバプログラムと既存のリクエスト転送ライブラリに、本実施例で詳細に説明する処理内容を追加することによって実現できる。
【００４４】
ここで、本発明におけるＡＰサーバプログラム４００とリクエスト転送ライブラリ２０２の詳細な説明を行う前に、この２つのプログラムが本発明に果たす役割を説明するために、本発明の動作説明図である図１を用いて、本発明の利用手順とそれに伴うＩＳＰサーバ装置８００内の動作の概要について説明する。
【００４５】
以下の説明では，ＩＳＰ契約ユーザ１０１およびシステム管理者１００がＡＰサーバプログラム４００およびＷｅｂサーバプログラム２００を起動する際に、ＴＥＬＮＥＴプロトコルによる通信を用いているが、本発明とは関係ないため、以降では特記しない。
【００４６】
本発明の利用手順は、ＩＳＰのシステム管理者がＷｅｂサーバの起動を行う、Ｗｅｂサーバ起動フェーズと、ＩＳＰ契約ユーザがＡＰサーバを起動する、ＡＰサーバ起動フェーズと、ホームページ閲覧者が、ＩＳＰ契約ユーザのホームページにアクセスする、リクエスト実行フェーズからなる。
【００４７】
まず、Ｗｅｂサーバ起動フェーズでは、図１において、ＩＳＰのシステム管理者１００は、Ｗｅｂサーバプログラム２００を起動する。
【００４８】
Ｗｅｂサーバプログラム２００には、リクエスト転送ライブラリ２０２が登録されており、Ｗｅｂサーバプログラム２００の起動時にこのライブラリもメモリ上に読み込まれる。このライブラリには、Ｗｅｂサーバプログラム２００に到着するリクエストのＵＲＬに応じて、ＡＰサーバプログラム４００にリクエストを転送する、リクエストの選択と転送の処理が実装されている。
【００４９】
本フェーズは、サーバ計算機８００のメンテナンスといったＩＳＰの都合で、ＩＳＰ契約ユーザ１０１の都合とは無関係に行ってよい。
【００５０】
次に、ＡＰサーバ起動フェーズにおいて、ＩＳＰ契約ユーザ１０１はＡＰサーバプログラム４００を起動する。
【００５１】
ＡＰサーバプログラム４００は起動されると、リクエスト転送ライブラリ２０２から転送されてくるリクエストを受け付けるための転送リクエスト受付用ポート４０１を開く。転送リクエスト受付用ポート４０１のネットワークアドレスは、ＩＳＰユーザ１０１がパラメタとしてＡＰサーバプログラム４００起動時に指定してもよいし、計算機上で利用可能な空きポートを自動的に割り当ててもよい。
【００５２】
そして、そのポートのネットワークアドレスをリクエスト転送ライブラリ２０２が参照できるように、宛先情報ファイル６０１を生成し、そこに転送リクエスト受付用ポート４０１のネットワークアドレスを出力する。
【００５３】
この宛先情報ファイル６０１は、後にリクエスト転送ライブラリ２０２から参照されるファイルである。本ファイルは、ホームページコンテンツ６０２と同様に、ＩＳＰ契約ユーザ１０１のホームページ公開用ディレクトリ６００に生成する。また、宛先情報ファイル６０１には、転送リクエスト受付用ポート４０１のネットワークアドレスに加えて、ＡＰサーバプログラム４００に転送するリクエストを選択する条件であるＵＲＬパターンを出力する。このＵＲＬパターンは、各ＩＳＰ契約ユーザ１０１のホームページ公開用ディレクトリ６００下のある特定のディレクトリに相当するＵＲＬパターンとして、あらかじめＩＳＰからＩＳＰ契約ユーザ１０１に決まったＵＲＬパターンを指定してもよいし、ＡＰサーバプログラム４００起動時にＩＳＰ契約ユーザ１０１が指定してもよい。
【００５４】
以下の説明では前者の方法による指定、すなわち、あらかじめＩＳＰから各ＩＳＰ契約ユーザへ決まったＵＲＬパターンの指定がなされるとする。本フェーズにより、Ｗｅｂサーバプログラム２００に到着したリクエストをＡＰサーバプログラム４００に転送するための準備が完了する。
【００５５】
本発明では、ＡＰサーバプログラム４００が起動時に宛先情報ファイル６０１を生成することが、Ｗｅｂサーバプログラム２００が必要とする設定の更新に相当する操作になっており、この操作を実行する際に、ＩＳＰ契約ユーザ１０１がシステム管理者１００に何も依頼しなくてよい点に本発明の一つの特徴がある。
【００５６】
従来技術では、Ｗｅｂサーバプログラム２００が必要とする設定の更新は、ＩＳＰ契約ユーザ１０１がＩＳＰのシステム管理者１００に依頼して行ってもらわなくてはならなかった。
【００５７】
最後に、リクエスト実行フェーズにおいて、ホームページ閲覧者１０２が、Ｗｅｂブラウザ３００を介して、ＡＰサーバプログラム４００に対応するＵＲＬを持つリクエストを、Ｗｅｂサーバプログラム２００に送信する。
【００５８】
Ｗｅｂサーバプログラム２００は、リクエストを受理し、リクエストのＵＲＬをパラメタとしてＷｅｂサーバプログラム２００に登録されているリクエスト転送ライブラリ２０２を呼び出す。リクエスト転送ライブラリ２０２は、リクエストのＵＲＬに基づき、リクエスト先のＩＳＰ契約ユーザ１０１のホームページ公開用ディレクトリ６００を特定し、そこにある宛先情報ファイル６０１を読み込む。そして、リクエストのＵＲＬが宛先情報ファイル６０１に記述されているＵＲＬパターンに適合しているか判断し、適合しているようなら、ＵＲＬパターンに対応する転送リクエスト受付用ポート４０１にリクエストを転送する。以上の手順により、Ｗｅｂサーバプログラム２００に到着したリクエストが、ＡＰサーバプログラム４００まで届く。
【００５９】
本発明では、リクエスト転送ライブラリ２０２がリクエスト実行の過程で宛先情報ファイル６０１を読み込むことにより、宛先情報ファイル６０１への更新をＷｅｂサーバプログラム２００の動作に自動的に反映できる点に一つの特徴がある。このフェーズにおいて、ＩＳＰ契約ユーザ１０１はシステム管理者１００に何も依頼しなくてよい。
【００６０】
以上の手順によれば、ＩＳＰのシステム管理者１００がＷｅｂサーバプログラム２００を起動した後は、ＩＳＰ契約ユーザ１０１はシステム管理者１００に依頼することなく、ＩＳＰ契約ユーザ１０１が任意の時点で起動したＡＰサーバプログラム４００に、Ｗｅｂサーバプログラム２００からリクエストを転送させるためのＷｅｂサーバプログラム２００の設定の更新を行うこと、及び、設定の更新をＷｅｂサーバプログラム２００の動作への反映させることができる。
【００６１】
最後に、上記に説明した動作を行うＡＰサーバプログラムとリクエスト転送ライブラリについて詳細に説明する。
【００６２】
ＡＰサーバプログラム４００は、次の２つの処理から構成されているプログラムであり、ＩＳＰ契約ユーザによって起動される。
【００６３】
ＡＰサーバプログラム４００の処理の１つは、リクエスト転送ライブラリ２０２から転送されてくるリクエストを受け取るためのリクエスト受付用ポート４０１を開き、そのポートのネットワークアドレスをリクエスト転送ライブラリ２０２が参照できるように、宛先情報ファイル６０１を生成し、そこに転送リクエスト受付用ポート４０１のネットワークアドレスと、このＡＰサーバプログラム４００に転送するリクエストを選択する条件であるＵＲＬパターンを出力するアドレス記録処理４０２である。
【００６４】
もう一つは、転送リクエスト受付用ポート４０１に転送されてくるリクエストを受け取り、転送されてきたリクエストを解析し、リクエストのＵＲＬに対応するアプリケーションプログラムを実行するリクエスト実行処理４０３である。リクエスト実行処理４０３は汎用のＡＰサーバプログラムにより提供されており、本発明とは関係ないため、説明を省略する。
【００６５】
以下ではアドレス記録処理４０２について説明する。
【００６６】
アドレス記録処理４０２の処理手順を、図４に示すＰＡＤ図に沿って説明する。アドレス記録処理４０２は、ＡＰサーバプログラム４００の起動時に一回行われる処理である。
（ステップ４０２１）ＡＰサーバプログラム４００は、リクエスト転送ライブラリ２０２から転送されてくるリクエストを受け取るための転送リクエスト受付用ポート４０１を開く。
（ステップ４０２２）ＡＰサーバプログラム４００は、当該プログラムを起動したＩＳＰ契約ユーザ１０１に割り当てられているホームページコンテンツ公開用ディレクトリ６００を特定する。
（ステップ４０２３）ＡＰサーバプログラム４００は、ステップ４０２２で特定したディレクトリに宛先情報ファイル６０１を生成し、そのファイルに、ステップ４０２１で開いたポートのネットワークアドレスと、このＡＰサーバプログラム４００に転送するリクエストを選択する条件であるＵＲＬパターンを出力する。このＵＲＬパターンは、あらかじめＩＳＰがＩＳＰ契約ユーザ１０１に対して決まったＵＲＬパターンを指定してもよいし、ＩＳＰ契約ユーザ１０１が指定してもよい。
【００６７】
以上のアドレス記録処理４０２をＡＰサーバプログラム４００の起動時に行うことによって、起動されたＡＰサーバプログラム４００の転送リクエスト受付用ポート４０１のネットワークアドレスを、リクエストの実行時にリクエスト転送ライブラリ２０２に読み込まれる宛先情報ファイル６０１に更新することができる。これは、すなわち、Ｗｅｂサーバプログラム２００が受理したリクエストをＡＰサーバプログラム４００へ転送するための設定を、ＩＳＰのシステム管理者１００に依頼することなく行うことができることを意味する。
【００６８】
次に、図５に、本実施例におけるＷｅｂサーバプログラム２００とリクエスト転送ライブラリ２０２の構成を示す。
【００６９】
Ｗｅｂサーバプログラム２００には、その機能拡張のためにライブラリを登録するインタフェースが用意されており、このインタフェースに適合したライブラリとして、リクエスト転送ライブラリ２０２が登録されている。Ｗｅｂサーバプログラム２００は、ＩＳＰシステム管理者１００によって起動され、起動時にＷｅｂサーバプログラム２００とＷｅｂサーバプログラム２００に登録されているリクエスト転送ライブラリ２０２が主記憶装置８０４上に展開される。
【００７０】
Ｗｅｂサーバプログラム２００は、ブラウザからＨＴＴＰリクエストを受理し、ＨＴＴＰリクエストを解析するリクエスト受理処理２１０と、ＨＴＴＰリクエストのＵＲＬに対応するホームページコンテンツ６０２をブラウザに返すホームページコンテンツ処理２１２から構成されている。
【００７１】
また、リクエスト転送ライブラリ２０２はＨＴＴＰリクエストのＵＲＬに応じて、ＡＰサーバプログラム４００にＨＴＴＰリクエストを転送するリクエスト選択転送処理２１１を有し、リクエスト選択転送処理２１１は、ＨＴＴＰリクエストのＵＲＬから転送すべきＡＰサーバプログラム４００のネットワークアドレスを求めるために転送先決定テーブル２１３を参照する。
【００７２】
Ｗｅｂサーバプログラム２００は、一回のＨＴＴＰリクエストに対して、次の手順でリクエストの処理を行う。Ｗｅｂサーバプログラム２００のリクエスト受理処理２１０がＨＴＴＰリクエストを受理し、ＨＴＴＰリクエストを解析すると、ＨＴＴＰリクエストのＵＲＬをパラメタとしてリクエスト転送ライブラリ２０２のリクエスト選択転送処理２１１を呼び出す。リクエスト選択転送処理２１１は、パラメタとして渡されたＵＲＬから、このリクエストの処理をＷｅｂサーバプログラム２００のホームページコンテンツ処理２１２で行うか、ＡＰサーバプログラム４００に転送して行うかを、転送先決定テーブル２１３を用いて判断し、ＡＰサーバプログラム４００にリクエストを転送すると判断した場合には、ＨＴＴＰリクエストをＡＰサーバプログラム４００の転送リクエスト受付用ポート４０１に転送する。
【００７３】
また、リクエスト選択転送処理２１１で、このＨＴＴＰリクエストの処理をホームページコンテンツ処理２１２で行うと判断した場合には、ホームページコンテンツ処理２１２を呼び出す。
【００７４】
Ｗｅｂサーバプログラム２００の処理であるリクエスト受理処理２１０とホームページコンテンツ処理２１２は、汎用のＷｅｂサーバプログラムにより提供されている。従って、汎用のＷｅｂサーバプログラムに、以下で説明するリクエスト選択転送処理２１１を、リクエスト転送ライブラリ２０２という形で追加し、以下で説明する転送先決定テーブル２１３を主記憶装置８０４上に生成することによって、本実施例を実現できる。
【００７５】
図６を用いて転送先決定テーブル２１３に格納する情報について説明する。
【００７６】
転送先決定テーブル２１３は、Ｗｅｂサーバプログラム２００から呼ばれるリクエスト処理の過程でリクエスト転送ライブラリ２０２がＩＳＰ契約ユーザ１０１のホームページ公開用ディレクトリ６００から読み込む宛先情報ファイル６０１の内容である、リクエストのＵＲＬから転送すべきＡＰサーバプログラム４００のネットワークアドレスを求めるためのＵＲＬパターンと転送先ネットワークアドレスをメモリ上にキャッシュするためのテーブルであり、ＵＲＬパターン２２０とネットワークアドレス２２１に加えて、読み込んだ宛先情報ファイルの更新日時２２２を有する。
【００７７】
読み込んだ宛先情報ファイル６０１の更新日時２２２は、主記憶装置８０４上にあるテーブルのエントリの内容が、二次記憶装置８０５上のホームページ公開用ディレクトリ６００にある宛先情報ファイル６０１の内容と同じものかどうかを判断するために使用される。
【００７８】
本テーブルはリクエストのＵＲＬとテーブルのエントリにあるＵＲＬパターン２２０が適合するかを調べることによって、リクエストのＵＲＬに対応した、転送するＡＰサーバプログラム４００のネットワークアドレス２２１を知ることができる。ＵＲＬパターン２２０の書式および、リクエストのＵＲＬとＵＲＬパターン２２０との適合を調べる方法は本発明と関係ないので説明を省略する。
【００７９】
リクエスト選択転送処理２１１の処理手順を図７に示すＰＡＤ図に沿って説明する。
【００８０】
リクエスト選択転送処理２１１は、Ｗｅｂサーバプログラム２００がＨＴＴＰリクエストを受け取ると、そのリクエストのＵＲＬをパラメタとして、リクエストの度にＷｅｂサーバプログラム２００から呼び出される処理である。
（ステップ２１１１）リクエスト転送ライブラリ２０２は、呼び出し時にパラメタとして渡されたリクエストのＵＲＬが、転送先決定テーブル２１３に登録されているエントリのＵＲＬパターン２２０に適合するかどうかを調べる。適合するＵＲＬパターン２２０を持つエントリがある場合には、ステップ２１１２を実行する。適合するＵＲＬパターン２２０を持つエントリがない場合にはステップ２１１３を実行する。
（ステップ２１１２）リクエスト転送ライブラリ２０２は、リクエストのＵＲＬが適合したＵＲＬパターン２２０を持つエントリの転送先アドレス２２１を転送先決定テーブル２１３から求め、ステップ２１１６を実行する。
（ステップ２１１３）リクエスト転送ライブラリ２０２は、転送先決定テーブル２１３から転送先アドレス２２１を求めることができなかったので、ＵＲＬに対応するユーザのホームページ公開用ディレクトリ６００に存在する宛先情報ファイル６０１を参照して、転送先アドレス２２１を決定する、転送先判定ルーチン２１５を実行する。転送先判定ルーチン２１５は、転送先アドレス２２１が求まれば、そのアドレスを返し、転送先アドレス２２１が求まらなければ、転送先アドレス２２１として無効な値を返す。転送先判定ルーチン２１５を実行した後、ステップ２１１４を実行する。
（ステップ２１１４）リクエスト転送ライブラリ２０２は、転送先判定ルーチン２１５の返り値を見て、転送先アドレス２２１が求まったがどうか判断する。求まらなかった場合には、ステップ２１１５を実行する。求まった場合にはステップ２１１６を実行する。
（ステップ２１１５）リクエスト転送ライブラリ２０２は、転送先ルーチンの返り値が、無効な転送先アドレスの場合、すなわち、転送先アドレス２２１が求まらなかった場合には、このリクエストはＡＰサーバプログラム４００へ転送すべきリクエストではないと判断し、リクエスト選択転送処理２１１を終了する。
（ステップ２１１６）リクエスト転送ライブラリ２０２は、求めた転送先アドレス２２１に、リクエストを転送する。リクエスト転送後、ステップ２１１７を実行する。
（ステップ２１１７）リクエスト転送ライブラリ２０２は、リクエストの転送が成功したか失敗したかを判断する。転送が成功した場合には、リクエスト選択転送処理２１１を終了する。失敗した場合には、ステップ２１１８を実行する。
（ステップ２１１８）リクエスト転送ライブラリ２０２は、通信エラーが起きたということは、転送先アドレス２２１を求める際に参照した転送先決定テーブル２１３のエントリが誤っていると判断する。誤っている原因としては、ＵＲＬに対応するＡＰサーバプログラム４００が再起動したことにより別のネットワークアドレスを持つポートでリクエストを待ち受けている場合と、ＡＰサーバプログラム４００が停止したことにより、リクエストを待ち受けていない場合がある。リクエスト転送ライブラリ２０２は、その２つの場合のどちらかを判断するために、メモリ上の転送先決定テーブル２１３における当該エントリの更新日時２２２と、二次記憶上の当該宛先情報ファイルの更新日時を比較する。
（ステップ２１１９）リクエスト転送ライブラリ２０２は、ステップ２１１８で比較した２つの日時が一致する場合には、ＡＰサーバプログラム４００は停止しているとみなし、ステップ２１２０を実行する。２つの日付が一致しない場合には、ＡＰサーバプログラム４００は別のポートで待ち受けているとみなし、ステップ２１２１を実行する。
（ステップ２１２０）リクエスト転送ライブラリ２０２は、ＵＲＬに対応するＡＰサーバプログラム４００は存在せず、ＵＲＬに対応するホームページ公開用ディレクトリ６００に存在する宛先情報ファイル６０１の内容は誤っていると判断し、その宛先情報ファイル６０１を削除し、ステップ２１２１を実行する。
（ステップ２１２１）リクエスト転送ライブラリ２０２は、転送先決定テーブル２１３から、転送先アドレス２２１を求める際に参照した転送先決定テーブル２１３のエントリを削除し、リクエスト選択転送処理２１１を終了する。このステップで、転送先決定テーブル２１３のエントリを消したことにより、誤った転送先アドレス２２１を持つエントリがメモリ上に残ることを防ぐ。
【００８１】
次に、転送先決定テーブル２１３にリクエストのＵＲＬに対応するエントリがなかった場合に呼ばれる、転送先判定ルーチン２１５の処理内容について、図８のＰＡＤ図を用いて説明する。
（ステップ２１５１）転送先判定ルーチン２１５は、リクエストのＵＲＬから、そのＵＲＬに対応するＩＳＰ契約ユーザ１０１のホームページ公開用ディレクトリ６００を特定する。特定した後、ステップ２１５２を実行する。
（ステップ２１５２）転送先判定ルーチン２１５は、リクエストがホームページコンテンツ宛のものとみなして、特定したホームページ公開用ディレクトリ６００からリクエストのＵＲＬに対応するファイルを探す。その後、ステップ２１５３を実行する。
（ステップ２１５３）転送先判定ルーチン２１５は、ＵＲＬに対応するファイルが発見できたら、Ｗｅｂサーバプログラム２００にリクエスト処理を委ねるために、転送先判定ルーチン２１５を終了する。ＵＲＬに対応するファイルが発見できなかった場合には、ステップ２１５４を実行する。
（ステップ２１５４）転送先判定ルーチン２１５は、リクエストがＡＰサーバプログラム４００宛のものとみなして、特定したホームページ公開用ディレクトリ６００から宛先情報ファイル６０１を探す。その後、ステップ２１５５を実行する。
（ステップ２１５５）転送先判定ルーチン２１５は、宛先情報ファイル６０１が見つかった場合には、ステップ２１５６を実行する。宛先情報ファイル６０１が見つからなかった場合には、Ｗｅｂサーバプログラム２００にリクエストの処理を委ねるために、転送先判定ルーチン２１５を終了する。
（ステップ２１５６）転送先判定ルーチン２１５は、見つかった宛先情報ファイル６０１から転送先アドレス２２１とＵＲＬパターン２２０と、ファイルの更新日時２２２を求め、転送先決定テーブル２１３のエントリに登録する。
【００８２】
以上説明した処理内容により、リクエスト選択転送処理２１１は、Ｗｅｂサーバプログラム２００がリクエストを受理するたびに呼ばれ、ＡＰサーバプログラム４００宛のリクエストのＵＲＬがパラメタとして渡されると、リクエスト処理の過程でリクエストのＵＲＬに対応するＩＳＰ契約ユーザ１０１のホームページ公開用ディレクトリ６００に存在する宛先情報ファイル６０１を参照し、転送先アドレス２２１を得る。
【００８３】
このため、ＩＳＰ契約ユーザ１０１がＡＰサーバプログラム４００を起動したことによる宛先情報ファイル６０１への更新、すなわち、Ｗｅｂサーバプログラム２００が受理したリクエストをＡＰサーバプログラム４００へ転送するための設定の更新が、ＡＰサーバプログラム４００の起動後直ちに、ＩＳＰシステム管理者１００に依頼することなしに、Ｗｅｂサーバプログラム２００からＡＰサーバプログラム４００にリクエストを転送する動作に反映される。
【００８４】
また、宛先情報ファイル６０１から読み込まれた情報を、主記憶装置８０４上の転送先決定テーブル２１３に登録することによって、登録されたＵＲＬパターン２２０に適合するリクエストが何回来たとしても、リクエストの度に宛先情報ファイル６０１を読みに行かずに転送先アドレス２２１が得られるようになっているため、従来技術と比較した場合の性能面での低下を最小限に抑えている。
【００８５】
さらに、ＡＰサーバプログラム４００の停止や再起動などによって、宛先情報ファイル６０１が更新された場合や、無効になった場合でも、リクエストの転送が失敗した場合には、転送先決定テーブル２１３から該当エントリは削除する処理を行うことによって、誤った転送先アドレス２２１を持ったエントリがメモリ上の転送先決定テーブル２１３に残ることを防いでいる。
【００８６】
【発明の効果】
以上説明したように、本発明によれば、Ｗｅｂサーバプログラムが用いる転送先情報を、ＡＰサーバプログラムが、上記Ｗｅｂサーバプログラムの参照できるファイルに出力し、上記Ｗｅｂサーバプログラムのリクエスト処理の過程で、上記ＡＰサーバプログラムが出力した転送先情報を参照することによって、上記Ｗｅｂサーバプログラムから、上記ＡＰサーバプログラムにリクエストを転送するための設定の更新とその更新内容の上記Ｗｅｂサーバプログラムの動作への反映を、上記Ｗｅｂサーバプログラムを管理するシステム管理者に依頼することなしに行うことができる。
【図面の簡単な説明】
【図１】本発明の動作説明図である。
【図２】本発明の実施例のシステム構成図である。
【図３】ＩＳＰサーバ装置８００の構成図である。
【図４】アドレス記録処理４０２のＰＡＤ図である。
【図５】Ｗｅｂサーバプログラム２００とリクエスト転送ライブラリ２０２の構成図である。
【図６】転送先決定テーブル２１３の構成図である。
【図７】リクエスト選択転送処理２１１のＰＡＤ図である。
【図８】転送先判定ルーチン２１５のＰＡＤ図である。
【符号の説明】
１００：システム管理者、１０１：ＩＳＰ契約ユーザ、１０２：ホームページ閲覧者、２００：Ｗｅｂサーバプログラム、２０２：リクエスト転送ライブラリ、２１０：リクエスト受理処理、２１１：リクエスト選択転送処理、２１２：ホームページコンテンツ処理、２１３：転送先決定テーブル、２１５：転送先判定ルーチン、３００：Ｗｅｂブラウザ、３０１：ＴＥＬＮＥＴクライアントプログラム、４００：ＡＰサーバプログラム、４０１：転送リクエスト受付用ポート、４０２：アドレス記録処理、４０３：リクエスト実行処理、６００：ホームページ公開用ディレクトリ、６０１：宛先情報ファイル、６０２：ホームページコンテンツ、８００：ＩＳＰサーバ装置、８０１：ＣＰＵ、８０２：ネットワークインタフェース回路、８０３：二次記憶装置制御回路、８０４：主記憶装置、８０５：二次記憶装置、８０６：ＴＥＬＮＥＴサーバプログラム、８０７：ＯＳ、１０００：端末装置、１１００：インターネット
【図１】
2004151799.tif 000003
【図２】
2004151799.tif 000004
【図３】
2004151799.tif 000005
【図４】
2004151799.tif 000006
【図５】
2004151799.tif 000007
【図６】
2004151799.tif 000008
【図７】
2004151799.tif 000009
【図８】
2004151799.tif 000010