(57)【要約】【課題】実行環境のユーザプログラム単位での流量制御を可能にする仮想計算機システムを提供する。【解決手段】ＣＰＵとメモリとインターフェースとを備え、インターフェースを介して端末と通信可能に接続され、ＣＰＵがメモリに格納されたサーバプログラムを実行することによって一以上の実行環境を構成し、実行環境が端末から送信される処理要求に応じた処理をする一以上のアプリケーションプログラムを実行する計算機の制御方法であって、メモリが、処理要求と、当該処理要求に応じた処理を実行するアプリケーションプログラムの宛先情報と、当該アプリケーションプログラムの処理待ちキューと、の対応関係を予め保持し、実行環境が、処理要求の宛先と対応関係とに基づいて、当該宛先に対応する処理待ちキューを識別し、識別された処理待ちキューに処理要求を格納することによって、当該処理待ちキューに対応するアプリケーションプログラムに当該処理要求実行させる。【選択図】図１
2007226402.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとインターフェースとを備え、前記インターフェースを介して端末と通信可能に接続され、前記ＣＰＵが前記メモリに格納されたサーバプログラムを実行することによって一以上の実行環境を構成し、前記実行環境が前記端末から送信される処理要求に応じた処理をする一以上のアプリケーションプログラムを実行する計算機の制御方法であって、
前記メモリが、前記処理要求と、当該処理要求に応じた処理を実行するアプリケーションプログラムの宛先情報と、当該アプリケーションプログラムの処理待ちキューと、の対応関係を予め保持し、
前記実行環境が、
前記処理要求の宛先と前記対応関係とに基づいて、当該宛先に対応する処理待ちキューを識別し、
前記識別された処理待ちキューに前記処理要求を格納することによって、当該処理待ちキューに対応する前記アプリケーションプログラムに当該処理要求実行させることを特徴とする計算機の制御方法。
【請求項２】
前記対応関係は、前記アプリケーションプログラムが実行可能な最大の処理要求数を含み、
前記識別されたアプリケーションプログラムが実行している処理要求が最大に達しているときに、前記要求を前記処理待ちキューに格納することを特徴とする請求項１に記載の計算機の制御方法。
【請求項３】
前記対応関係は、前記処理待ちキューが格納可能な最大の処理要求数を含み、
前記識別されたアプリケーションプログラムに対応する処理待ちキューに格納されている処理要求数が最大数であるときに、前記端末にエラーを通知することを特徴とする請求項１に記載の計算機の制御方法。
【請求項４】
前記処理待ちキューは、前記アプリケーションプログラムによって実行される処理要求のみを格納する第１の処理待ちキューと、前記第１の実行待ちキューに対応するアプリケーションプログラム以外のアプリケーションプログラムによって実行される処理要求を格納する第２の処理待ちキューと、を含むことを特徴とする請求項１に記載の計算機の制御方法。
【請求項５】
前記対応関係は、前記宛先情報の少なくとも一部を含み、
前記処理要求の宛先が前記対応関係に含まれる宛先情報の少なくとも一部に合致するときに、当該宛先情報に対応するアプリケーションプログラムを識別することを特徴とする請求項１に記載の計算機の制御方法。
【請求項６】
前記対応関係は、前記処理要求の種別の情報を含み、
前記処理要求の宛先が前記対応関係に含まれる種別に該当するときに、当該種別に対応するアプリケーションプログラムを識別することを特徴とする請求項１に記載の計算機の制御方法。
【請求項７】
ＣＰＵとメモリとインターフェースとを備え、前記インターフェースを介して端末と通信可能に接続され、前記ＣＰＵが前記メモリに格納されたサーバプログラムを実行することによって一以上の実行環境を構成し、前記実行環境が前記端末から送信される処理要求に応じた処理をする一以上のアプリケーションプログラムを実行する計算機であって、
前記メモリが、前記処理要求と、当該処理要求に応じた処理を実行するアプリケーションプログラムの宛先情報と、当該アプリケーションプログラムの処理待ちキューと、の対応関係を予め保持し、
前記処理要求の宛先と前記対応関係とに基づいて、当該宛先に対応する処理待ちキューを識別し、前記識別された処理待ちキューに前記処理要求を格納することによって、当該処理待ちキューに対応する前記アプリケーションプログラムに当該処理要求実行させること識別部を備えるを特徴とする計算機。
【請求項８】
前記対応関係は、前記アプリケーションプログラムが実行可能な最大の処理要求数を含み、
前記識別部は、前記識別されたアプリケーションプログラムが実行している処理要求が最大に達しているときに、前記要求を前記処理待ちキューに格納することを特徴とする請求項７に記載の計算機。
【請求項９】
前記対応関係は、前記処理待ちキューが格納可能な最大の処理要求数を含み、
前記識別部は、前記識別されたアプリケーションプログラムに対応する処理待ちキューに格納されている処理要求数が最大数であるときに、前記端末にエラーを通知することを特徴とする請求項７に記載の計算機。
【請求項１０】
前記処理待ちキューは、前記アプリケーションプログラムによって実行される処理要求のみを格納する第１の処理待ちキューと、前記第１の実行待ちキューに対応するアプリケーションプログラム以外のアプリケーションプログラムによって実行される処理要求を格納する第２の処理待ちキューと、を含むことを特徴とする請求項７に記載の計算機。
【請求項１１】
前記対応関係は、前記宛先情報の少なくとも一部を含み、
前記識別部は、前記処理要求の宛先が前記対応関係に含まれる宛先情報の少なくとも一部に合致するときに、当該宛先情報に対応するアプリケーションプログラムを識別することを特徴とする請求項７に記載の計算機。
【請求項１２】
前記対応関係は、前記処理要求の種別の情報を含み、
前記識別部は、前記処理要求の宛先が前記対応関係に含まれる種別に該当するときに、当該種別に対応するアプリケーションプログラムを識別することを特徴とする請求項７に記載の計算機。
【請求項１３】
ＣＰＵとメモリとインターフェースとを備え、前記インターフェースを介して端末と通信可能に接続され、前記ＣＰＵが前記メモリに格納されたサーバプログラムを実行することによって一以上の実行環境を構成し、前記実行環境が前記端末から送信される処理要求に応じた処理をする一以上のアプリケーションプログラムを実行する計算機の制御を実行する制御プログラムであって、
前記メモリが、前記処理要求と、当該処理要求に応じた処理を実行するアプリケーションプログラムの宛先情報と、当該アプリケーションプログラムの処理待ちキューと、の対応関係を予め保持し、
前記処理要求の宛先と前記対応関係とに基づいて、当該宛先に対応する処理待ちキューを識別する手順と、
前記識別された処理待ちキューに前記処理要求を格納することによって、当該処理待ちキューに対応する前記アプリケーションプログラムに当該処理要求実行させる手順と、
を前記計算機で実行することを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システムに関し、特に、仮想計算機システムの実行環境のユーザプログラム単位での流量制御を可能にする仮想計算機システムに関する。
【背景技術】
【０００２】
アプリケーションサーバに複数の実行環境を設定し、各実行環境毎に実行されるプログラムがクライアントの処理を実行する分散オブジェクトシステムを実現する計算機システムが知られている。アプリケーションサーバは、クライアントからの複数の要求を受け取ると、ディスパッチャによって負荷や機能を考慮した流量制御を行って、各実行環境に要求を分配する。このようにすることで、特定の実行環境に処理負荷が集中することがなく、アプリケーションサーバ全体としての負荷を軽減できる。
【０００３】
このような分散オブジェクト処理における制御方法には、オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当てを行うオブジェクト割当制御部へのリファレンスを通信手段により応答するステップと、オブジェクトの割当ての際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答するステップと、オブジェクトの実行の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答するステップとを有するプログラム制御方法が知られている（特許文献１参照）。
【０００４】
この特許文献１に記載の発明によると、分散オブジェクト処理を実行する際に、オブジェクト割当制御部リファレンスの応答、ディスパッチャリファレンスの応答及びオブジェクトの実行を一元管理されたオブジェクト情報により行うので、分散オブジェクト処理を負荷状態に基づいて効率的に実行することが可能である。
【特許文献１】特開２００１−１６５５４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述のようにディスパッチャによる流量制御には次のような問題点がある。ディスパッチャでは、実行環境（例えばＳｅｒｖｌｅｔやＪＳＰといったプログラムコンポーネント）単位でしか流量制御ができなかった。そのため、実行環境上で稼働するユーザのプログラム単位では、流量制御ができない。
【０００６】
そこで、より粒度が細かい流量制御をするためには、流量を制御したい単位にプログラムコンポーネントを分割する必要があった。しかしながら、プログラムコンポーネントを分割するには、プログラムコンポーネントを構成するプログラムを再作成する必要があった。
【０００７】
また、前記プログラムがＷｅｂアプリケーションである場合において、流量制御のためにＷｅｂアプリケーション単位で分割した場合は、Ｗｅｂアプリケーション間のセッションを共有できないという問題が生ずる。Ｗｅｂアプリケーション間でセッションが共有できないと、業務の途中で別のＷｅｂアプリケーションが業務を処理した場合は、いままでの業務情報が破棄されてしまう。
【０００８】
また、負荷分散制御を行った場合において、アプリケーションサーバ間で同一のＷｅｂアプリケーションに対するＨＴＴＰセッションが共有できない問題が生じる。
【０００９】
本発明はこのような問題点に鑑みてなされたものであり、プログラムコンポーネントの作り直しを行うことなく、より細かい粒度での流量制御を可能とする仮想計算機システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明による実施の形態の一例は、ＣＰＵとメモリとインターフェースとを備え、インターフェースを介して端末と通信可能に接続され、ＣＰＵがメモリに格納されたサーバプログラムを実行することによって一以上の実行環境を構成し、実行環境が端末から送信される処理要求に応じた処理をする一以上のアプリケーションプログラムを実行する計算機の制御方法であって、メモリが、処理要求と、当該処理要求に応じた処理を実行するアプリケーションプログラムの宛先情報と、当該アプリケーションプログラムの処理待ちキューと、の対応関係を予め保持し、実行環境が、処理要求の宛先と対応関係とに基づいて、当該宛先に対応する処理待ちキューを識別し、識別された処理待ちキューに処理要求を格納することによって、当該処理待ちキューに対応するアプリケーションプログラムに当該処理要求実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によると、プログラムコンポーネント内の処理単位であるユーザプログラム毎にキューを設けることによって、ユーザプログラム毎の流量制御が可能になる。従って、プログラムの作り直しをすることなく、より細かな粒度での流量制御が可能となる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明の実施の形態を図面に基づいて説明する。
【００１３】
図１は、本発明の実施の形態の計算機システムの概要を示す説明図である。
【００１４】
本実施の形態の計算機システムは、計算機２００がネットワーク１０１を介してクライアント端末１００と接続されて構成されている。
【００１５】
計算機２００は、アプリケーションサーバ１０２を実行している。アプリケーションサーバ１０２は、Ｗｅｂアプリケーションディスパッチャ１０３、キュー管理部１０４（１０４Ａ及び１０４Ｂ）、Ｗｅｂアプリケーション１０６（１０６Ａ及び１０６Ｂ）等によって構成されている。
【００１６】
クライアント端末１００は、アプリケーションサーバ１０２のＷｅｂアプリケーションによって処理されるリクエストをネットワーク１０１を介して送信する。そして、Ｗｅｂアプリケーション１０６によって処理された結果を、ネットワーク１０１を介して受け取る。
【００１７】
ネットワーク１０１は、ＬＡＮ等の通信回線によって構成される。なお、ネットワーク１０１は、インターネット等の広帯域網によって構成されていてもよい。
【００１８】
アプリケーションサーバ１０２は、クライアント端末１００からネットワーク１０１を介してリクエストを受信する。アプリケーションサーバ１０２において、Ｗｅｂアプリケーションディスパッチャ１０３がこのリクエストを受信する。
【００１９】
Ｗｅｂアプリケーションディスパッチャ１０３は、受信したリクエストを、キュー管理部１０４を介して、当該リクエストを処理するＷｅｂアプリケーション１０６に送信する。Ｗｅｂアプリケーション１０６において、該当するサーブレット１０７に含まれる業務１０８が受信したリクエストに対応する処理を実行する。
【００２０】
キュー管理部１０４は、リクエストに含まれるＵＲＬ、ＰＯＳＴデータ又はクエリ文字列等のパラメタから、当該リクエストを処理すべきサーブレット内の業務１０８を識別する。そして、識別された業務毎に定義されたキュー１０５（１０５Ａ乃至１０５Ｇ）に、当該リクエストを格納する。このキュー１０５を使用することによって、Ｗｅｂアプリケーション１０６のサーブレット１０７の業務１０８（１０８Ａ乃至１０８Ｆ）に対する流量を制御することができる。
【００２１】
図２は、本実施の形態の計算機２００の構成ブロック図である。
【００２２】
計算機２００は、ＣＰＵ２０１、メモリ２０２及びインターフェース２０９を備える。
【００２３】
ＣＰＵ２０１は、メモリ２０２に格納されているプログラムを実行することによって、そのプログラムに規定された処理を実行する。
【００２４】
メモリ２０２は、Ｗｅｂアプリケーションディスパッチャ１０３、Ｗｅｂアプリケーション１０６及びアプリケーションサーバ１０２を含む。これらはプログラムとして格納されており、ＣＰＵ２０１によって実行されることで、それぞれの処理を実行する。
【００２５】
インターフェース２０９は、ネットワーク１０１に接続され、クライアント端末１００と通信する。
【００２６】
アプリケーションサーバ１０２は、アプリケーション実行部２０３と、キュー管理部１０４とを含む。アプリケーション実行部２０３は、Ｗｅｂアプリケーション１０２を実行する。キュー管理部１０４は、前述のように、Ｗｅｂアプリケーションディスパッチャ１０３によって送信されたリクエストを、アプリケーション実行部によって実行されているＷｅｂアプリケーション１０６のサーブレット１０７の各業務１０８に対応するキュー１０５に格納する。
【００２７】
キュー管理部１０４は、業務識別部２０４、キュー管理テーブル２０５、キュー情報テーブル２０６及び稼働情報テーブル２０７を含む。
【００２８】
業務識別部２０４は、受信したリクエストに含まれるＵＲＬ、ＰＯＳＴデータ又はクエリ文字列等のパラメタから、当該リクエストを処理すべきサーブレット内の業務１０８を識別する。この業務識別部２０４は、前述のようにプログラムとして格納されており、ＣＰＵ２０１がこのプログラムを実行することによって、業務識別部２０４の機能が実現される。
【００２９】
キュー管理テーブル２０５は、リクエストの宛先の情報、キュー１０５の情報及び業務１０８の稼働情報等の対応関係を格納する。
【００３０】
キュー情報テーブル２０６は、キュー１０５に格納されているリクエストの実行待ち数や当該キューに格納可能な最大のリクエスト実行待ち数を格納する。
【００３１】
稼働情報テーブル２０７は、Ｗｅｂアプリケーション１０６のサーブレット１０７の各業務１０８に対応する、現在の業務処理数及び処理可能な最大の業務処理数を格納する。
【００３２】
図３は、キュー管理部１０４が保持するキュー管理テーブル２０５の一例の説明図である。
【００３３】
キュー管理テーブル１０４は、リクエストの宛先と、その宛先に対応するキュー１０５の情報を格納する。
【００３４】
キュー管理テーブル２０５は、リクエストＵＲＬフィールド３０１、パラメタフィールド３０２、キュー情報名フィールド３０３及び稼働情報名３０４を含む。リクエストＵＲＬフィールド３０１は、キュー１０５に対応する宛先情報であるリクエストＵＲＬを格納する。パラメタフィールド３０２は、キュー１０５に対応するＰＯＳＴデータ又はクエリ文字列等を格納する。キュー情報名フィールド３０３は、キュー１０５の識別子を格納する。稼動情報名フィールド３０４は、キュー１０５に対応する業務１０８の識別子である稼働情報名を格納する。なお、キュー１０５に対応する業務１０８が複数ある場合は、その複数の業務１０８をまとめて一つの稼働情報名で扱う。
【００３５】
なお、一番目のエントリは、リクエストＵＲＬ及びパラメタを含まない。このエントリは「デフォルト」と呼ぶ。リクエストＵＲＬ及びパラメタを特に指定しないリクエストは、このデフォルトのエントリが選択される。結果として、リクエストは「デフォルト」として設定されているキューに格納される。
【００３６】
リクエストＵＲＬフィールド３０１に格納されるリクエストＵＲＬは、ＵＲＬの一部の情報のみを格納してもよい。例えば、図３の例では、「＊」記号を使ってマスクされたＵＬＲを格納している。具体的には、５番目のエントリは、「／ＺＺＺ／＊」というＵＲＬが格納されている。これは、リクエストＵＲＬの「／ＺＺＺ／」以下がいかなる文字列であっても、このエントリに対応するキュー情報及び稼働情報を選択することを示す。
【００３７】
また、６番目のエントリは、「＊．ｂｂｂ」というＵＲＬが格納されている。これは、同様にリクエストＵＲＬの「＊」部分がいかなる文字列であっても、このエントリに対応するキュー情報及び稼働情報を選択することを示す。特に、特定の拡張子を持つリクエストを、特定の業務で処理したい場合等に有効である。
【００３８】
図４は、キュー管理部１０４が保持するキュー情報テーブル２０６の一例の説明図である。
【００３９】
キュー情報テーブル２０６は、キュー１０５毎の情報を示し、各キュー１０５に格納されているリクエストの実行待ち数や当該キューに格納可能な最大のリクエスト実行待ち数を管理する情報を格納する。
【００４０】
キュー情報テーブル２０６は、キュー情報名フィールド４０１、現在の実行待ち数フィールド４０２及び最大実行待ち数フィールド４０３を含む。キュー情報名フィールド４０１は、キュー１０５の識別子を格納する。現在の実行待ち数フィールド４０２は、当該キュー１０５に現在格納されているリクエストの数を格納する。最大実行待ち数フィールド４０３は、当該キュー１０５が格納できるリクエストの最大数を格納する。
【００４１】
なお、一番目のエントリは、前述のように「デフォルト」のキューとして定義されている。デフォルトのキューが指定されたリクエストは、Ｗｅｂアプリケーション１０６のうち、ただ一つの業務のみに対応するキュー以外の業務に対応するキューに格納される。このリクエストは、Ｗｅｂアプリケーション１０６において、何れかの適当な業務１０８によって処理される。
【００４２】
図５は、キュー管理部１０４が保持する稼動情報テーブル２０７の一例の説明図である。
【００４３】
稼働情報テーブル２０７は、Ｗｅｂアプリケーション１０６のサーブレット１０７の業務１０８の識別子である稼働情報名毎の情報を示す。特に、当該業務１０８が現在処理している業務処理数及び当該業務１０８が処理可能な最大の業務処理数を格納する。
【００４４】
稼働情報テーブル２０７は、稼働情報名フィールド５０１、現在の業務処理数フィールド５０２及び最大業務処理数フィールド４０３を含む。稼働情報名フィールド５０１は、リクエストを処理する業務１０８の識別子を格納する。現在の業務処理数フィールド５０２は、当該業務１０８が現在処理しているリクエストの数を格納する。最大業務処理数フィールド４０３は、当該業務１０８が処理可能な最大のリクエスト数を格納する。
【００４５】
このように、キュー管理部１０４は、キュー管理テーブル２０５、キュー情報テーブル２０６及び稼働情報テーブル２０７を管理している。
【００４６】
ここで、図１、図３乃至５を参照してこれらの情報とキュー管理部１０４の処理の概要を説明する。
【００４７】
まず、リクエストＵＲＬが「／ＸＸＸ／ａａａ」であり、パラメタが「ｐ＝ｖａｌｕｅ１」であった場合は、キュー管理部１０４は、キュー管理テーブル２０５を参照して、該当するキュー情報名である「Ｑｕｅｕｅ１」を取得する。そこで、このキュー情報名「Ｑｕｅｕｅ１」に対応するキュー１０５Ａにリクエストを格納する。
【００４８】
同様に、リクエストＵＲＬが「／ＸＸＸ／ａａａ」であり、パラメタが「ｐ＝ｖａｌｕｅ２」であった場合は、キュー管理部１０４は、キュー管理テーブル２０５を参照して、該当するキュー情報名である「Ｑｕｅｕｅ２」を取得する。そこで、このキュー情報名「Ｑｕｅｕｅ２」に対応するキュー１０５Ｂにリクエストを格納する。
【００４９】
同様に、リクエストＵＲＬが「／ＹＹＹ／ｂｂｂ」であった場合は、キュー管理部１０４は、キュー管理テーブル２０５を参照して、該当するキュー情報名である「Ｑｕｅｕｅ３」を取得する。そこで、このキュー情報名「Ｑｕｅｕｅ３」に対応するキュー１０５Ｃにリクエストを格納する。
【００５０】
また、リクエストＵＲＬが「／ＺＺＺ／ａａａ」であった場合は、キュー管理部１０４は、キュー管理テーブル２０５を参照して、このリクエストＵＲＬの一部「／ＺＺＺ／＊」に該当するキュー情報名である「Ｑｕｅｕｅ４」を取得する。そこで、このキュー情報名「Ｑｕｅｕｅ４」に対応するキュー１０５Ｅにリクエストを格納する。なお、このキュー１０５Ｅは、業務１０８Ｅ又は１０８Ｆの何れかの業務によって処理されるキューである。
【００５１】
また、リクエストＵＲＬが、このキュー管理テーブに格納されているリクエストＵＲＬ及びパラメタの組合せの何れにも該当しない場合は、キュー管理部１０４は、キュー管理テーブル２０５を参照して、デフォルトのキュー情報名を取得する。そこで、デフォルトのキューであキュー１０５Ｄにリクエストを格納する。このキュー１０５Ｄは、Ｗｅｂアプリケーション１０６Ａの何れかの業務１０８によって処理される。
【００５２】
次に、キュー管理部１０４を中心としたアプリケーションサーバ１０２の処理を具体的に説明する。
【００５３】
図６は、本実施の形態の計算機システムの処理を示すブロック図である。
【００５４】
クライアント端末１００がリクエストを送信する。アプリケーションサーバ１０２において、Ｗｅｂアプリケーションディスパッチャ１０３がクライアント端末１００から送信されたリクエストを受信する（Ｓ６００）。
【００５５】
Ｗｅｂアプリケーションディスパッチャ１０３は、受信したリクエストを、当該リクエストに対応するキュー管理部１０４に送信する。そして、業務識別部２０４に処理を渡す（Ｓ６０１）。
【００５６】
業務識別部２０４は、受信したリクエストからＵＲＬ及びパラメタを取得する。そして、キュー管理テーブル２０５を参照して、取得したＵＲＬ及びパラメタの組合せに対応するキュー１０５の情報があるか否かを検索する（Ｓ６０２）。
【００５７】
検索の結果、業務識別部２０４は、該当するキュー１０５のキュー情報名を取得する。そして、取得したキュー情報名から、キュー情報テーブル及び稼働情報テーブルを検索して、取得したキュー情報名に対応する情報を取得する。そして、これらの情報をアプリケーション実行部２０３に送信する（Ｓ６０３）。
【００５８】
アプリケーション実行部２０３は、キュー情報名及び稼働情報名を受信すると、稼働情報テーブル２０７を参照して、稼働情報名に対応する業務の処理数が最大処理数未満か否かを判定する（Ｓ６０４）。当該業務の処理数が最大処理数に達している場合は、アプリケーション実行部２０３は、キュー情報テーブル２０６を参照して、当該キュー１０５の実行待ち数が最大に達しているか否かを判定する（Ｓ６０５）。
【００５９】
実行待ち数が最大処理数未満の場合は、アプリケーション実行部２０３は、稼働情報テーブルの現在の業務処理数に１を加算して稼働情報テーブル２０７を更新する（Ｓ６０４）。そして、リクエストをＷｅｂアプリケーション１０６に送信する（Ｓ６０６）。
【００６０】
キュー１０５の実行待ち数が最大に達していなければ、アプリケーション実行部２０３は、キュー情報テーブル２０６の現在の実行待ち数に１を加算してキュー情報テーブル２０６を更新する（Ｓ６０５）。リクエストは該当するキュー１０５に格納されて、実行待ちとなる。
【００６１】
Ｗｅｂアプリケーション１０６は、リクエストの情報に基づいて業務を実行する（Ｓ６０７）。このリクエストの処理が終了すると、Ｗｅｂアプリケーション１０６は、アプリケーション実行部２０３に処理結果を送信する（Ｓ６０８）。アプリケーション実行部２０３は、Ｗｅｂアプリケーション１０６の処理結果を受信すると、稼動情報テーブル２０７の、該当する業務の現在の業務処理数から１を減算する（Ｓ６０９）。そして、リクエストの処理結果をクライアントに送信する（Ｓ６１０）。
【００６２】
図７は、本実施の形態の計算機システムの処理を示すブロック図であり、リクエスト先の業務の実行処理数が最大処理数に達している場合の処理を示す。
【００６３】
前述のように、Ｗｅｂアプリケーションディスパッチャ１０３が、クライアント端末１００から送信されたリクエストを受信する（Ｓ７００）。
【００６４】
Ｗｅｂアプリケーションディスパッチャ１０３は、受信したリクエストを、当該リクエストに対応するキュー管理部１０４に送信する。そして、業務識別部２０４に処理を渡す（Ｓ７０１）。
【００６５】
業務識別部２０４は、受信したリクエストからＵＲＬ及びパラメタを取得する。そして、キュー管理テーブル２０５を参照して、取得したＵＲＬ及びパラメタの組合せに対応するキュー１０５の情報があるか否かを検索する（Ｓ７０２）。
【００６６】
検索の結果、業務識別部２０４は、該当するキュー１０５のキュー情報名を取得する。そして、取得したキュー情報名から、キュー情報テーブル及び稼働情報テーブルを検索して、取得したキュー情報名に対応する情報を取得する。そして、これらの情報をアプリケーション実行部２０３に送信する（Ｓ７０３）。
【００６７】
アプリケーション実行部２０３は、キュー情報名及び稼働情報名を受信すると、稼働情報テーブル２０７を参照して、稼働情報名に対応する業務の処理数が最大処理数未満か否かを判定する（Ｓ７０４）。当該業務が最大処理数に達している場合は、アプリケーション実行部２０３は、キュー情報テーブル２０６を参照して、当該キュー１０５の実行待ち数が最大に達しているか否かを判定する（Ｓ７０５）。ここで、実行待ち数が最大に達している場合は、受信したリクエストはＷｅｂアプリケーション１０６にもキュー１０５にも送ることができない。そこで、アプリケーション実行部２０３は、クライアント端末１００にエラーを返す（Ｓ７０６）。
【００６８】
図８は、本実施の形態の計算機システムの処理のフローチャートである。
【００６９】
クライアント端末１００がリクエストを送信する。アプリケーションサーバ１０２において、Ｗｅｂアプリケーションディスパッチャ１０３が、クライアント端末１００から送信されたリクエストを受信する。
【００７０】
Ｗｅｂアプリケーションディスパッチャ１０３は、受信したリクエストから、リクエストＵＲＬ及びパラメタを取得する（Ｓ８０１）。そして、これらの情報を元に当該リクエストを処理するＷｅｂアプリケーション１０６を判定する。そして、リクエストを判定したＷｅｂアプリケーション１０６に対応するキュー管理部１０４に送信する。
【００７１】
業務識別部２０７は、キュー管理テーブル２０５を参照して、リクエストのＵＲＬ及びパラメタの組合せに該当するキュー情報を検索する（Ｓ８０２）。
【００７２】
当該リクエストのＵＲＬ及びパラメタの組合せに該当するキュー情報がないと判定した場合は、業務識別部２０４は、キュー情報テーブル２０６及び稼働情報テーブル２０７を参照して、デフォルトとして設定されているキュー情報及び稼働情報を取得する（Ｓ８０４）。
【００７３】
一方、リクエストのＵＲＬ及びパラメタの組合せに該当するキュー情報があると判定した場合は、業務識別部２０４は、キュー情報テーブル２０６及び稼働情報テーブル２０７を参照して、該当するキュー情報及びそれに対応する稼働情報を取得する（Ｓ８０５）。そして、業務識別部２０４は、これらキュー情報及び稼働情報を、アプリケーション実行部２０３に通知する
この通知を受けて、アプリケーション実行部２０３は、稼働情報テーブル２０７を参照して、該当する業務の処理数が最大処理数未満か否かを判定する（Ｓ８０６）。該当する業務が最大処理数未満であると判定した場合は、アプリケーション実行部２０３は、稼働情報テーブル２０７の現在の業務処理数に１を加算する（Ｓ８０７）。その後、Ｗｅｂアプリケーション１０６が、受信したリクエストを実行する（Ｓ８０８）。
【００７４】
次に、アプリケーション実行部２０３は、当該キューに実行待ちのリクエストが存在するか否かを判定する（Ｓ８１０）。すなわち、当該キューの実行待ち数が０よりも大きいか否かを判定する。実行待ちのリクエストが存在すると判定した場合、すなわち、実行待ち数が０よりも大きい場合は、アプリケーション実行部２０３は、実行待ちのリクエストの処理をＷｅｂアプリケーション１０６に送り、当該リクエストの処理を開始させる（Ｓ８１１）。そして、アプリケーション実行部２０３は、キュー情報テーブル２０６の該当するキューの現在の実行待ち数から１を減算する（Ｓ８０９）。そして、ステップＳ８１０に戻り、再度当該キューに実行待ちのリクエストが存在するか否かを判定する。
【００７５】
実行待ちのリクエストが存在しないと判定した場合、すなわち、実行待ち数が０であると判定した場合は、アプリケーション実行部２０３は、稼動情報テーブル２０７の現在の業務処理数から１を減算する（Ｓ８１６）。その後、本フローチャートの処理を終了する。
【００７６】
一方、ステップＳ８０６において、該当する業務の処理数が最大処理数に達していると判定した場合は、アプリケーション実行部２０３は、はキュー情報テーブル２０９を参照して、当該キューの現在の実行待ち数が最大実行待ち数未満か否かを判定する（Ｓ８１２）。実行待ち数が最大実行待ち数未満であると判定した場合は、アプリケーション実行部２０３は、キュー情報テーブル２０９の該当するキューの現在の実行待ち数に１を加算する（Ｓ８１３）。そして、アプリケーション実行部２０３は、該当キューにリクエストを格納して、処理が実行されるのを待機する（Ｓ８１４）。その後、本フローチャートの処理を終了する。
【００７７】
一方、現在の実行待ち数が最大実行待ち数に達していると判定した場合は、アプリケーション実行部２０３は、リクエスト元のクライアント端末１００にエラーを返す（Ｓ８１５）。その後、本フローチャートの処理を終了する。
【００７８】
以上のように、本発明の実施の形態では、プログラムコンポーネントであるＷｅｂアプリケーション１０６の処理単位である業務１０８毎にキューを設けることによって、これら業務１０８毎の流量制御が可能になる。従って、プログラムの作り直しをすることなく、より細かな粒度での流量制御が可能となる。さらに、各業務１０８単位において、確実に実行できる処理数を予め定義することができる。
【００７９】
また、Ｗｅｂアプリケーション１０６内の各業務１０８毎にキューを分割するため、ＨＴＴＰセッションを業務内で共有することができ、異なるコンポーネントに分割することによるセッションの破棄を防ぐことができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態の計算機システムの概要を示す説明図である。
【図２】本発明の実施の形態の計算機の構成ブロック図である。
【図３】本発明の実施の形態のキュー管理テーブルの一例の説明図である。
【図４】本発明の実施の形態のキュー情報テーブルの一例の説明図である。
【図５】本発明の実施の形態の稼働情報テーブルの一例の説明図である。
【図６】本発明の実施の形態の計算機システムの処理を示すブロック図である。
【図７】本発明の実施の形態の計算機システムの処理を示すブロック図である。
【図８】本発明の実施の形態の計算機システムの処理のフローチャートである。
【符号の説明】
【００８１】
１００      クライアント端末
１０１      ネットワーク
１０２      アプリケーションサーバ
１０３      Ｗｅｂアプリケーションディスパッチャ
１０４      キュー管理部
１０５      キュー
１０６      Ｗｅｂアプリケーション
１０８      業務
２００      計算機
２０１      ＣＰＵ
２０２      メモリ
２０３      アプリケーション実行部
２０４      業務管理部
２０５      キュー管理テーブル
２０６      キュー情報テーブル
２０７      稼動情報テーブル
２０８      アプリケーション実行部
２０９      インターフェース
【図１】
2007226402.tif 000003
【図２】
2007226402.tif 000004
【図３】
2007226402.tif 000005
【図４】
2007226402.tif 000006
【図５】
2007226402.tif 000007
【図６】
2007226402.tif 000008
【図７】
2007226402.tif 000009
【図８】
2007226402.tif 000010