(57)【特許請求の範囲】
【請求項１】
複数のクライアント端末からのデータ検索結果表示要求に対して、検索の結果をクライアント端末に応答するアプリケーションサーバのフロントエンド処理方法において、
前記アプリケーションサーバにおいて、所定の期間中、前記複数のクライアント端末から受けた要求に対して、各要求に対する応答が作成される処理時間を計測し、処理に要した時間の累計と要求の処理回数から１要求あたりの予定処理時間を作成するステップと、
前記アプリケーションサーバにおいて、前記複数のクライアント端末から受けた要求のうち未応答の要求に要する前記予定処理時間を累積することで、前記複数のクライアント端末からの次の要求に対するアプリケーションサーバの応答が返されるまでの予想応答待ち時間を作成するステップと、
前記アプリケーションサーバにおいて、前記複数のクライアント端末からの要求の発生時に、前記予想応答待ち時間が規定の時間を超える場合に、前記アプリケーションサーバが受けた最後の有効な要求から前記予定処理時間を経過していない場合には、当該クライアント端末にエラーの応答を送信し、前記アプリケーションサーバが受けた最後の有効な要求から前記予定処理時間を経過している場合には、当該要求を有効にするステップと、
を含むことを特徴とするアプリケーションサーバのフロントエンド処理方法。
【請求項２】
前記アプリケーションサーバにおいて、前記クライアント端末からの要求に対してエラー応答する際に、前記クライアント端末に規定時間経過後の要求の再送を促すメッセージを送信することを特徴とする請求項１記載のアプリケーションサーバのフロントエンド処理方法。
【請求項３】
前記アプリケーションサーバにおいて、前記クライアント端末からの要求に対してエラー応答する際に、当該クライアント端末に再要求が不許可である旨のメッセージを送信し、前記要求の結果を当該クライアントからの要求とは非同期にプッシュ技術で送付するステップをさらに実行することを特徴とする請求項１記載のアプリケーションサーバのフロントエンド処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアント端末からのデータ検索結果表示要求に対して、検索の結果をクライアント端末に応答するアプリケーションサーバの処理方法に関する。
【０００２】
【従来の技術】
複数のクライアント端末から随時発生するデータベース検索結果の表示要求は、Ｗｅｂサーバ経由でアプリケーションサーバで要求内容を解析し結果をデータベースから検索し規定された画面形式を作成して応答し、応答はＷｅｂサーバ経由でネットワークを介して、クライアント端末に送られ画面に表示される。クライアント端末からの要求は、アプリケーションサーバで要求の到着順に処理されるが、処理中に到着した要求はアプリケーションサーバで蓄積され順次処理されるために、各要求の応答が返るまでに次の要求が発生する場合は、要求発生後に処理が完了し応答が送られる間での時間は不定である。
【０００３】
図７は、従来のアプリケーションサーバの処理方式において、クライアント要求が集中してタイムアウトが連発する状況を示すタイムチャートである。
図７において、Ｃ１，Ｃ２，…，Ｃｎはクライアント端末、●印は各クライアント端末Ｃ１，Ｃ２，…，Ｃｎからの要求発生時刻、黒三角印は要求に対する応答、Ｒ１，Ｒ２，…，Ｒｎはアプリケーション処理部の応答時刻を表す。
【０００４】
クライアント端末Ｃ１の要求は、アプリケーションサーバで処理中の要求がないため、応答はＣ１の要求Ｒ１の処理に必要な時間のみで応答が返るが、Ｒ１の処理中に発生したクライアント端末Ｃ２の要求Ｒ２はＲ２の処理時間とＲ２が発生した時刻からＲ１の応答が返るまでの時間が付加された時間経過後に応答が返される。
【０００５】
クライアント端末は、通常要求送出後に一定の時間を経過するとサーバが無応答でタイムアウトエラーとなり、その後の応答は受け付けられない。このような場合、アプリケーションサーバに蓄積された要求が一定数を超えた状態でアプリケーションサーバで処理された要求は有効な応答とならない。図７では、Ｃ１からＣｉまでの要求は、クライアント端末でタイムアウトと判断されるまで時間内に応答を返すためにそれに対する応答は有効であるが、その後も要求が続いているＣi+1以降の要求に対する応答Ｒi+1はクライアント端末でタイムアウトと判断されたあとで応答が送られるので、すべて無効な応答となる。
【０００６】
【発明が解決しようとする課題】
このような従来のアプリケーションサーバの処理方式にあっては、以下のような問題点があった。
すなわち、Ｗｅｂブラウザなどのクライアント端末からネットワーク経由でのデータの要求に対して、アプリケーションサーバは要求に対して順次処理するが、クライアント端末ではある規定の時間応答が無いとタイムアウトエラーとなりその時間経過後の応答を受け付けず、アプリケーションサーバの処理が無駄になる。例えば、クライアント端末Ｃ１からの要求処理中にＣ２，Ｃ３，…，Ｃｋからの要求が発生し、Ｃ２，Ｃ３，…，Ｃｋからの要求の処理の合計がクライアント端末のタイムアウト時間を超える場合、この次の要求はタイムアウトエラーとなり、これ以後要求処理数を超える要求が続く場合、処理した結果がすべてエラーとなる。
【０００７】
この状態は、最初に状態が発生した要求をｉ、ある時点で処理が完了した要求をｊ、その時点で発生した要求をｋ、各要求の処理時間をＴとすると、この状態は、
Ｔｉ＋…＋Ｔｊ＋（規定時間）＜Ｔｉ＋…＋Ｔｊ＋…Ｔｋ
の間継続する。
この状態で、アプリケーションサーバが処理できる要求数以上の要求がクライアント端末から発生した場合に、それ以後のアプリケーションサーバの応答がクライアント端末にはすべて無効とされ、各クライアント端末は長時間にわたり有効な応答を受け取れなくなる。
【０００８】
また、各クライアント端末が、要求の再送を繰り替えした場合はアプリケーションサーバの無効処理が蓄積され、混雑状況から回避できなくなる。
本発明は、このような課題に鑑みてなされたものであって、アプリケーションサーバでの無効なデータベース検索処理をなくし、アプリケーションサーバの負荷の軽減、ネットワーク負荷の軽減を行うことができ、長時間の無応答状態を回避することができるアプリケーションサーバの処理方法を提供する。
【０００９】
【課題を解決するための手段】
本発明のアプリケーションサーバの処理方法は、クライアント端末からのデータ検索結果表示要求に対して、検索の結果をクライアント端末に応答するアプリケーションサーバの処理方法において、複数のクライアント端末からの要求に対して、順次その要求を満たす情報を作成するアプリケーションサーバに要求を連携させるステップと、クライアント端末からアプリケーションサーバに連携された要求に対して、各要求に対する応答が作成される処理時間を計測し、処理に要した時間の累計と要求の処理回数から１要求あたりの予測処理時間を作成するステップと、クライアント端末からアプリケーションサーバに連携された要求に対して、未応答の要求に要する前記予想処理時間を累積することで、次の要求に対するアプリケーションサーバの応答が返されるまでの予想応答待ち時間を作成するステップと、クライアント端末からの要求が発生時に、前記予想応答待ち時間が規定の時間を超える場合に、要求をアプリケーションサーバに連携せずに、即座にクライアント端末にエラーの応答を送信するステップと、を含むアプリケーションサーバのフロントエンド処理を実行することを特徴とする。
【００１０】
また、前記アプリケーションサーバのフロントエンド処理では、クライアント端末からの要求に対する、前記予想応答待ち時間が規定の時間を超える場合、クライアント端末にエラー応答する際に、クライアント端末に規定時間経過後の要求の再送を促すメッセージを送信することを特徴とする。
【００１１】
また、前記アプリケーションサーバのフロントエンド処理では、クライアント端末からの要求に対する前記予想応答待ち時間が規定の時間を超える場合で、かつクライアント端末に規定時間内に応答できない場合に、クライアント端末に再要求が不許可である旨のメッセージを送信するステップと、要求の結果をクライアントからの要求とは非同期にプッシュ技術で送付するステップとをさらに実行することを特徴とする。
【００１２】
また、前記アプリケーションサーバのフロントエンド処理では、クライアント端末からの要求に対する前記予想応答待ち時間が規定の時間を超える場合に、エラー応答として要求を再送させるか、例えばメールなどのプッシュ技術でアプリケーションサーバのフロントエンド処理部から送付させるかを選択させるようにしてもよい。
【００１３】
このようにアプリケーションサーバが処理することにより、クライアント端末からの要求のうち、アプリケーションサーバからの応答時間が規定時間を超え、クライアント端末で受け付けられなくなるような、アプリケーションサーバでのデータベースの検索処理が発生した場合、エラーとなる要求の処理をすることなくエラー応答をする。これにより、エラーとなる要求の処理をなくすことで、混雑時のアプリケーションサーバの無効処理をなくし、負荷を軽減することができ、混雑状況からの回避を早くすることができる。あるいは、クライアント端末からの要求のうち、アプリケーションサーバからの応答時間が規定時間を超え、クライアント端末で受け付けられなくなった場合でも、その後にメールなどで結果を返すことで、同じクライアント端末からの同じ要求を抑止することで、アプリケーションサーバの無効処理をなくし、また混雑状況からの回避を早くすることができる。
【００１４】
【発明の実施の形態】
以下、添付図面を参照しながら本発明の好適なアプリケーションサーバの処理方法の実施の形態について詳細に説明する。
図１は、本発明の実施の形態のアプリケーションサーバの全体構成図であり、中間サーバと連携する構成要素を示す。
【００１５】
図１において、Ｎ１はインターネット等のネットワーク、Ｓ１はネットワークＮ１に接続されたＷｅｂサーバ、Ｃ１，Ｃ２，…，ＣｎはネットワークＮ１に接続されたクライアント端末、Ｓ２はＷｅｂサーバＳ１に接続されたアプリケーションサーバであり、アプリケーションサーバＳ２は、処理時間計測部Ｓ３、アプリケーション処理部Ｓ４、データベース処理部Ｓ５を備えて構成される。また、Ｔ４１は処理待ち要求リスト、Ｔ３１は処理待ち時間、Ｔ３２は要求と処理時間の対応表（図２参照）、Ｔ３３は規定時間である。
【００１６】
要求を発生する複数のクライアント端末Ｃ１，Ｃ，…，Ｃｎとは、インターネットＮ１を介してＷｅｂサーバＳ１で要求を受理、応答を送信する。インターネットＮ１にはイントラネットも含まれてよい。ＷｅｂサーバＳ１経由で入ったクライアント端末Ｃ１，Ｃ，…，Ｃｎからの要求は、その要求を処理するアプリケーションサーバＳ２に送られ、またアプリケーションサーバＳ２で作成された応答データはＷｅｂサーバＳ１に送られる。
【００１７】
クライアント端末Ｃ１，Ｃ，…，Ｃｎからの要求をアプリケーションサーバＳ２で処理し、アプリケーションサーバＳ２で作成された応答データをＷｅｂサーバＳ１に送るまでの時間を計測する処理時間計測部がＳ３であり、実際にアプリケーション処理を行うのがアプリケーション処理部Ｓ４である。この処理時間計測部Ｓ３は、主としてアプリケーションサーバのフロントエンド処理を行う機能部に対応する。
【００１８】
アプリケーション処理部Ｓ４は、アプリケーション処理に必要なデータをデータベース処理部Ｓ５から抽出したり処理したデータをデータベース処理部Ｓ５に保存する。アプリケーション処理部Ｓ４は、要求発生の都度処理待ち発生リストＴ４１に要求の内容を保持して、要求を順次処理し、その処理結果をＷｅｂサーバＳ１を経由して要求もとのクライアント端末に応答を返す。
【００１９】
ＷｅｂサーバＳ１、処理時間計測部Ｓ３、アプリケーション処理部Ｓ４及びデータベース処理部Ｓ５は、それぞれ同一のコンピュータ上で存在することも、ネットワーク接続された複数のコンピュータ上に存在することもある。
【００２０】
処理時間計測部Ｓ３は、クライアント端末に表示された画面様式に割り当てられた要求番号とその画面様式での指示により発生する指示番号より予定される処理時間との対比表Ｔ３２を参照するとともに、アプリケーション処理部Ｓ４に送付した要求に対する予定処理時間を累積し、応答された要求の予定処理時間を差し引くことで、アプリケーション処理部Ｓ４で処理予定の要求の予定処理時間の総和を保持する処理待時間Ｔ３１を計測し、及び処理待時間がエラーか否かを判断するための規定時間Ｔ３３を保持する。
【００２１】
図２は、要求と処理時間の対応表Ｔ３２を示す図である。
図２において、要求と処理時間の対応表Ｔ３２は、必要とするデータの検索項目を入力するための画面の番号を示す「要求番号」と、その画面のどのボタンで要求指示を出したかの「ボタン番号」及び「要求番号」と、「ボタン番号」の組み合わせでのアプリケーション処理部の処理に要すると予想される時間「予定処理時間」と、その処理に要した時間の累計である「総処理時間」と、その処理を行った回数「処理回数」とから構成される。
【００２２】
「予定処理時間」は、初期値として論理的に予想される初期時間を計算して設定しておく、あるいは初期値として「０」を設定しておく、あるいは追加要求の場合は他の予定処理時間の平均値を設定しておくなどの方法がある。いずれにしても、一定期間の運用後、各要求の「総処理時間」と「処理回数」から平均値を求めて予定処理時間を構成する。
【００２３】
アプリケーション処理部Ｓ４は、処理時間計測部Ｓ３経由で受け取ったクライアント端末からの要求を逐次保存し、要求処理を順次実行できるようにするＦＩＦＯ（first-in first-out）型の処理待ち要求リストＴ４１を有する。
【００２４】
図３は、クライアント端末での画面例Ｄ１とそれに対応する要求例Ｐ１と画面例Ｄ１を表示するに至った直前の要求に対する応答例Ｐ２を示す図であり、クライアント端末からアプリケーションサーバへの要求の構成要素、アプリケーションサーバからクライアント端末への応答の構成要素、クライアント端末の画面要素を示す。
【００２５】
図３において、画面例Ｄ１は、クライアント端末操作者に、必要な情報や入力や指示の意味を示す情報を文字列及び画像などを交えて表示される。これらは、応答例Ｐ２により規定されており、応答例Ｐ２には、文字列や画像、入力文字の配置・ボタンの配置、画面例Ｄ１に対応する要求番号が含まれる。また、要求例Ｐ１には、画面例Ｄ１で入力された引数と要求発生のトリガーとなるボタン番号と画面例に割り当てられた要求番号とクライアント端末を識別するクライアントＩＤ、規定時間内に応答を返せない場合の応答方法を指定するエラー応答方法を有している。
【００２６】
以下、上述のように構成されたアプリケーションサーバの処理方法の動作を説明する。
図４は、クライアント端末からの要求が発生した場合の処理時間計測部Ｓ３の処理を示すフローチャートである。図中、Ｆｎは本フローチャートＦ１の処理ステップを示す。
【００２７】
クライアント端末からの要求が発生すると、まず、ステップＦ１１で付加時間と該当要求の処理時間の合計である処理待ち時間Ｔ３１が規定時間Ｔ３３より大きいか（Ｔ３１＞Ｔ３３か）を判別する。Ｔ３１≦Ｔ３３のときはステップＦ１２で要求に開始時刻を追加し、ステップＦ１３で要求をアプリケーション処理部Ｓ４に送付する。次いで、ステップＦ１４で処理待ち時間Ｔ３１にＴ３２から得られる要求番号・ボタン番号に相当する予定処理時間を加えて（Ｔ３１←Ｔ３１＋予定処理時間）本フローを終了する。
【００２８】
一方、ステップＦ１１でＴ３１＞Ｔ３３のときはステップＦ１５で要求内のエラー応答の方法を判別し、エラー応答の方法が再送を促すメッセージを出していない場合はプッシュ（Ｐｕｓｈ技術）を指定していると判断してステップＦ１２に進む。エラー応答の方法が再送を促すメッセージを出している場合は、ステップＦ１６で再要求を促す応答を返して本フローを終了する。上記プッシュ技術とは、ＷｅｂサーバＳ１からいかに効率的にクライアント端末に情報を提供するかという技術をいう。
【００２９】
上記フローによる処理をタイムチャートを参照して具体的に説明する。
図５は、本実施の形態でクライアント要求が集中しタイムアウトが発生する状況に、タイムアウトとなる要求は処理せず、以後の要求を有効と判断し処理できる状況を示すタイムチャートである。図中、Ｃ１，Ｃ２，…，Ｃｎはクライアント端末、●印は各クライアント端末Ｃ１，Ｃ２，…，Ｃｎからの要求発生時刻、黒三角印は要求に対する応答、Ｒ１，Ｒ２，…，Ｒｎはアプリケーション処理部Ｓ４の応答時刻を表し、図７の従来例に対応するものである。
【００３０】
処理時間計測部Ｓ３では、ネットワークＮ１及びＷｅｂサーバＳ１を経由して到着した各クライアント端末からの要求があった時点で、図５におけるＣ１，Ｃ２，…，Ｃｉのように各クライアント端末からの要求に対する処理が開始されるまでの、付加時間と該当要求の処理時間の合計である処理待ち時間Ｔ３１が規定時間Ｔ３３以下であることを判別する。各クライアント端末からの要求に対する処理が開始されるまでの、付加時間と該当要求の処理時間の合計である処理待ち時間Ｔ３１が規定時間Ｔ３３以下の場合は、処理Ｆ１２で要求に開始時刻を追加し、処理Ｆ１２で要求をアプリケーション処理部Ｓ４に送付し、処理Ｆ１４で処理待ち時間Ｔ３１にＴ３２から得られる要求番号・ボタン番号に相当する処理時間を加える。
【００３１】
図５のクライアント端末Ｃi+1からの要求のように、処理待ち時間Ｔ３１が規定時間Ｔ３３を上回る場合は、処理待ち時間Ｔ３１から該当要求の予定処理時間を減じておき、要求内のエラー応答の方法が再送を促すメッセージをしている場合は、処理Ｆ１６で再送を促すメッセージを応答として返す。エラー応答の方法がプッシュを指定している場合は、エラーフラグを立て処理Ｆ１２に進む。この場合、次の要求であるクライアント端末Ｃi+2からの要求がＣｉの要求後、Ｃi+2の要求の予定処理時間経過後に発生すると、処理待ち時間Ｔ３１が規定時間Ｔ３３以下になり、Ｃi+2の要求は有効な要求となる。すなわち最後の有効な要求から予定処理時間を経過して発生した要求は有効となるようになる。
【００３２】
図６は、アプリケーション処理部Ｓ４から応答が発生した場合の処理時間計測部Ｓ３の処理を示すフローチャートである。
応答が発生した時には、まず、ステップＦ２１で処理待ち時間Ｔ３１から、Ｔ３２から得られる要求番号・ボタン番号に相当する処理を差し引く（Ｔ３１←Ｔ３１−予定処理時間）。次いで、ステップＦ２２で要求番号・ボタン番号・開始時刻からＴ３２に総時間と回数を加算する。すなわち、Ｔ３２の「総時間」に、今回の処理に要した実時間（要求に対する処理を開始した時刻から応答時刻までの時間）を加算するとともに「処理回数」に１を加え、「予定処理時間」を再計算（総処理時間／処理回数）する。
【００３３】
ステップＦ２３でエラーフラグが立っているか否かを判別する。上記応答が図４のステップＦ１１及びステップＦ１５経由で処理された要求であった場合はエラーフラグが立ってる場合であり、この場合にはステップＦ２５で応答（処理結果）をプッシュで送信して本フローを終了する。エラーフラグが立っていなければステップＦ２４で応答をＷｅｂサーバＳ１経由で対応するクライアント端末に返して本フローを終了する。
【００３４】
以上述べたように、本実施の形態では、クライアント端末Ｃ１、Ｃ２、…、ＣｎにはアプリケーションサーバＳ２で作成された画面構成要素がＷｅｂサーバＳ１にて対応クライアント端末を指定され、ネットワークＮ１を経由して送られており、その画面構成要素をもとに表示された画面で入力されたデータがネットワークＮ１経由でＷｅｂサーバＳ１に送られアプリケーションサーバＳ２で処理される。アプリケーションサーバＳ２は、アプリケーション処理部Ｓ４がデータベース処理部Ｓ５からのデータを元に応答データを作成するが、その時間を処理時間計測部Ｓ３で計測する。処理時間計測部Ｓ３は、アプリケーション処理部Ｓ４で処理されるために蓄積されている要求の時間の処理に要する処理待ち時間の累計を有する処理待ち時間Ｔ３１と、要求の種類と処理時間の対応表Ｔ３２と、要求が応答を返すまでに許される規定時間Ｔ３３を有する。アプリケーション処理部Ｓ４は処理すべき要求を要求処理待ちリストＴ４１で順次保管する。
【００３５】
そして、クライアント端末からの要求のうち、アプリケーションサーバからの応答時間が規定時間を超え、クライアント端末で受け付けられなくなるような、アプリケーションサーバでのデータベースの検索処理が発生した場合、エラーとなる要求の処理をすることなくエラー応答をし、エラーとなる要求の処理をなくしているので、複数のクライアント端末からネットワーク経由でのデータの要求に対して、アプリケーションサーバに対する要求数が多くなりすぎて、サーバの処理がタイムアウトで無効となる状態が続いてしまう状況になったときに、アプリケーションサーバの負荷を軽減することができ、有効なデータ処理数を増加させることが可能になる。
【００３６】
【発明の効果】
以上、詳述したように、本発明によれば、アプリケーションサーバでのクライアント要求を適切に間引くことができ、アプリケーションサーバでの無効なデータベース検索処理をなくし、アプリケーションサーバの負荷の軽減、ネットワーク負荷の軽減を行い、長時間の無応答状態を回避することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のアプリケーションサーバの全体構成図である。
【図２】本実施の形態のアプリケーションサーバの要求と処理時間の対応表Ｔ３２を示す図である。
【図３】本実施の形態のアプリケーションサーバのクライアント端末での画面例Ｄ１とそれに対応する要求例Ｐ１と画面例Ｄ１を表示するに至った直前の要求に対する応答例Ｐ２を示す図である。
【図４】本実施の形態のアプリケーションサーバのクライアント端末からの要求が発生した場合の処理時間計測部Ｓ３の処理を示すフローチャートである。
【図５】本実施の形態のアプリケーションサーバのクライアント要求が集中しタイムアウトが発生する状況に、タイムアウトとなる要求は処理せず、以後の要求を有効と判断し処理できる状況を示すタイムチャートである。
【図６】本実施の形態のアプリケーションサーバのアプリケーション処理部Ｓ４から応答が発生した場合の処理時間計測部Ｓ３の処理を示すフローチャートである。
【図７】従来のアプリケーションサーバの処理方式において、クライアント要求が集中してタイムアウトが連発する状況を示すタイムチャートである。
【符号の説明】
Ｓ１ Ｗｅｂサーバ
Ｓ２  アプリケーションサーバ
Ｓ３  処理時間計測部
Ｓ４  アプリケーション処理部
Ｓ５  データベース処理部
Ｎ１  ネットワーク
Ｃ１，Ｃ２，…，Ｃｎ  クライアント端末
Ｔ３１  処理待ち時間
Ｔ３２  要求と処理時間の対応表
Ｔ３３  規定時間
Ｔ４１  処理待ち要求リスト
【図１】
0004509302.tif 000002
【図２】
0004509302.tif 000003
【図３】
0004509302.tif 000004
【図４】
0004509302.tif 000005
【図５】
0004509302.tif 000006
【図６】
0004509302.tif 000007
【図７】
0004509302.tif 000008