(57)【要約】【課題】クライアントからの実行要求に対して応答するまでの時間を短縮すると共に、クライアントからの再度の実行要求によってサーバの高負荷状態を招くことが無い業務システム及び実行要求管理方法を提供する。【解決手段】サーバは、キューから実行要求が出力されると、該実行要求がキューで保管されていた時間である最新のキュー滞留時間を計算して保持する。また、過去に実行した各オペレーションの実行時間の最新値を計算して保持しておく。そして、クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と最新のキュー滞留時間とを加算して要求されたオペレーションの実行時間を予測し、該予測値が予め設定された上限値を超えるとき、オペレーションの実行要求元のクライアントに実行不可のエラーメッセージを含む応答を返送する。【選択図】図１
2008210110.tif 000002
【特許請求の範囲】
【請求項１】
オペレーションの実行要求を送信するクライアントと、
前記実行要求を一時的に保管するためのキューを備え、前記キューから前記実行要求が出力されると、該実行要求が前記キューで保管されていた時間である最新のキュー滞留時間を計算して保持し、過去に実行したオペレーションの実行時間の最新の値を前記オペレーション毎に計算して保持し、前記クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と前記最新のキュー滞留時間とを加算して該実行要求によるオペレーションの実行時間の予測値を計算し、該予測値が、予め設定された前記クライアントに対する応答時間の上限値を超えるとき、前記オペレーションの実行要求を送信したクライアントに実行不可のエラーメッセージを含む応答を返送する、前記クライアントとネットワークを介して接続されたサーバと、
を有する業務システム。
【請求項２】
クライアントから送信されるオペレーションの実行要求を受信するサーバであって、
前記実行要求を一時的に保管するためのキューと、
前記キューから前記実行要求が出力されると、該実行要求が前記キューで保管されていた時間である最新のキュー滞留時間を計算して保持し、過去に実行したオペレーションの実行時間の最新の値を前記オペレーション毎に計算して保持し、前記クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と前記最新のキュー滞留時間とを加算して該実行要求によるオペレーションの実行時間の予測値を計算し、該予測値が、予め設定された前記クライアントに対する応答時間の上限値を超えるとき、前記オペレーションの実行要求を送信したクライアントに実行不可のエラーメッセージを含む応答を返送する処理装置と、
を有するサーバ。
【請求項３】
クライアントから送信されるオペレーションの実行要求を管理するための実行要求管理方法であって、
前記実行要求を一時的に保管するためのキューから前記実行要求が出力されると、該実行要求が前記キューで保管されていた時間である最新のキュー滞留時間を計算して保持し、
過去に実行したオペレーションの実行時間の最新の値を前記オペレーション毎に計算して保持し、
前記クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と前記最新のキュー滞留時間とを加算して該実行要求によるオペレーションの実行時間の予測値を計算し、
該予測値が、予め設定された前記クライアントに対する応答時間の上限値を超えるとき、前記オペレーションの実行要求を送信したクライアントに実行不可のエラーメッセージを含む応答を返送する実行要求管理方法。
【請求項４】
クライアントから送信されるオペレーションの実行要求を受信するコンピュータに実行させるためのプログラムであって、
前記実行要求を一時的に保管するためのキューから前記実行要求が出力されると、該実行要求が前記キューで保管されていた時間である最新のキュー滞留時間を計算して保持し、
過去に実行したオペレーションの実行時間の最新の値を前記オペレーション毎に計算して保持し、
前記クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と前記最新のキュー滞留時間とを加算して該実行要求によるオペレーションの実行時間の予測値を計算し、
該予測値が、予め設定された前記クライアントに対する応答時間の上限値を超えるとき、前記オペレーションの実行要求を送信したクライアントに実行不可のエラーメッセージを含む応答を返送する処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサーバとクライアントとを備える業務システム及びその実行要求管理方法に関する。
【背景技術】
【０００２】
一般に、種々の産業分野の業務に適したコンピュータシステムは業務システムと呼ばれる。業務システムは、プリンタやモデム等のハードウェア資源及びアプリケーションソフトウェアやデータベース等の情報資源を集中管理するコンピュータ（サーバ）と、サーバが管理している資源を利用するコンピュータである複数のクライアントとによって構成される。
【０００３】
このような業務システムでは、各クライアントからサーバに対して上記ハードウェア資源や情報資源の各種資源を利用した処理（オペレーション）がネットワークを介して要求される。
【０００４】
サーバは、クライアントからオペレーションの実行要求（リクエスト）を受け付けると、複数のサーバアプリケーションのうち、オペレーションを実行していないアプリケーション（以下、このようなアプリケーションを「空きプロセス」と称す）が生じるまでクライアントからのリクエストをキューで一時的に保管する。そして、空きプロセスが生じた時点で要求されたオペレーションを実行し、クライアントへその結果（応答）を返送する。このとき、サーバが処理負荷の大きい状態（以下、高負荷状態と称す）にあると、クライアントには実行要求に対する応答がなかなか返送されなくなる。また、サーバがストール状態になった場合はクライアントに応答が返送されない。
【０００５】
このような高負荷状態に対応するため、従来の業務システムでは、予めオペレータの操作によってサーバにクライアントへの応答時間の上限値を設定しておき、オペレーションの実行時間が該上限値を超えた場合は、クライアントに実行不可のエラーメッセージを含む応答を返送することで、クライアントに何らかの応答を必ず返送するようにしている。
【０００６】
しかしながら、このような従来の業務システムでは、クライアントのユーザは、予めサーバに設定された応答時間の上限値を超えるまでサーバからの応答を待たなければならないという問題がある。また、クライントのユーザの操作により、エラーメッセージを含む応答の受信後に同じオペレーションの実行要求を再びサーバに対して送出することで、サーバの処理負荷が増大して高負荷状態を招いてしまうことがある。特にサーバから応答が長時間返送されないと、応答を待ちきれずにクライアントのユーザが実行要求を何度もサーバへ送出することがあるため、サーバの高負荷状態に拍車をかけることになってしまう。さらに、サーバは、実行完了の見込みの無いオペレーションでも、クライントからの要求に応じて実行しようとするため、サーバのリソースを無駄に使用してしまう問題もあった。
【０００７】
このような問題に対処するため、例えば特許文献１には、クライアントからのリクエストをリクエストキューで保持し、該リクエストの滞留時間、リクエスト転送頻度（単位時間あたりで処理可能なクライアントからのリクエスト数）をそれぞれ計測し、それらの計測結果と予め設定された転送頻度上限値とに基づき、該リクエストをサーバへ転送するか、またはクライアントに再送を指示することで、無駄な再送要求の発生を抑制すると共に、ユーザの不快な待ち時間の不要な発生を抑制することが記載されている。
【特許文献１】特開２００６−２０１９７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように従来の業務システムでは、クライアントのユーザは、予めサーバに設定された応答時間の上限値を超えるまで、サーバからの応答を待たなければならないという問題がある。特に、サーバが高負荷状態であると、クライアントのユーザはサーバからの応答を待たされるだけでなく、要求したオペレーションが実行されないこともある。したがって、より早い段階でクライアントに対して何らかの応答を返送する手段が望まれていた。
【０００９】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、クライアントからの実行要求に対して応答するまでの時間を短縮すると共に、クライアントからの再度の実行要求によってサーバの高負荷状態を招くことが無い業務システム及び実行要求管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため本発明の業務システムは、オペレーションの実行要求を送信するクライアントと、
前記実行要求を一時的に保管するためのキューを備え、前記キューから前記実行要求が出力されると、該実行要求が前記キューで保管されていた時間である最新のキュー滞留時間を計算して保持し、過去に実行したオペレーションの実行時間の最新の値を前記オペレーション毎に計算して保持し、前記クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と前記最新のキュー滞留時間とを加算して該実行要求によるオペレーションの実行時間の予測値を計算し、該予測値が、予め設定された前記クライアントに対する応答時間の上限値を超えるとき、前記オペレーションの実行要求を送信したクライアントに実行不可のエラーメッセージを含む応答を返送する、前記クライアントとネットワークを介して接続されたサーバと、
を有する。
【００１１】
一方、本発明の実行要求管理方法は、クライアントから送信されるオペレーションの実行要求を管理するための実行要求管理方法であって、
前記実行要求を一時的に保管するためのキューから前記実行要求が出力されると、該実行要求が前記キューで保管されていた時間である最新のキュー滞留時間を計算して保持し、
過去に実行したオペレーションの実行時間の最新の値を前記オペレーション毎に計算して保持し、
前記クライアントからオペレーションの実行要求を受信すると、該実行要求に対応する過去に実行したオペレーションの実行時間と前記最新のキュー滞留時間とを加算して該実行要求によるオペレーションの実行時間の予測値を計算し、
該予測値が、予め設定された前記クライアントに対する応答時間の上限値を超えるとき、前記オペレーションの実行要求を送信したクライアントに実行不可のエラーメッセージを含む応答を返送する方法である。
【００１２】
上記のような構成及び方法では、サーバによりオペレーションの実行要求を受信してからクライアントへ応答を返送するまでの実行時間を予測し、該実行時間の予測値が予め設定された応答時間の上限値を超える場合、サーバは要求されたオペレーションを実行することなくクライアントへ実行不可のエラーメッセージを含む応答を返送する。したがって、クライアントからの実行要求に対してサーバが応答するまでの時間が短縮される。そのため、クライアントのユーザは、サーバにオペレーションの実行要求を送信してから長時間応答を待つ必要が無くなり、不快な応答待ち時間のストレスから解放される。また、エラーメッセージを含む応答の受信後にクライアントがオペレーションの実行要求を再びサーバに送信しても、該実行要求の実行時間の予測値が上限値を超える場合、サーバは要求されたオペレーションを実行することなくクライアントへエラーメッセージを含む応答を再び返送する。よって、クライアントからの再度の実行要求によってサーバの処理負荷が増大することが無く、またリソースを無駄に使用することもない。
【発明の効果】
【００１３】
本発明によれば、クライアントからの実行要求に対してサーバが応答するまでの時間が短縮される。また、クライアントからの再度の実行要求によってサーバの高負荷状態を招くことが無い。
【発明を実施するための最良の形態】
【００１４】
次に本発明について図面を参照して説明する。
【００１５】
本発明の業務システムでは、サーバにより、オペレーションの実行要求を受信してからクライアントへ応答を返送するまでの時間を予測し、該実行時間の予測値が予め設定された応答時間の上限値を超える場合は、要求されたオペレーションを実行することなく要求元のクライアントへ実行不可のエラーメッセージを含む応答を返送する。このようにして、サーバが高負荷状態であってもクライアントのユーザが長時間応答を待たされることがない仕組みを提供する。
【００１６】
図１は本発明の業務システムの一構成例を示すブロック図である。
【００１７】
図１に示すように、本発明の業務システムは、業務システムを管理するサーバ８０と、サーバ８０とネットワークを介して接続され、サーバ８０に各種のオペレーションの実行要求を送信する複数のクライアント１０とを有する構成である。
【００１８】
サーバ８０は、キュー３０、サーバアプリケーション４０、キュー滞留時間監視部５０、オペレーション実行時間監視部６０及び実行時間予測部７０を備えている。
【００１９】
キュー３０は、クライアント１０から送信されたオペレーションの実行要求（リクエスト）を順次格納し、サーバアプリケーション４０で空きプロセスが発生する度に、リクエストを受信した順にサーバアプリケーション４０へ出力する。
【００２０】
サーバアプリケーション４０は、キュー３０から受け取ったリクエストにしたがってオペレーションを実行し、その処理結果を含む応答を要求元のクライアント１０へ返送する。
【００２１】
キュー滞留時間監視部５０は、複数のクライアント１０から送信されたリクエストのキュー滞留時間を監視する。キュー滞留時間監視部５０は、リクエストを受信したオペレーション毎のキューイン時間と、最後にキュー３０から出力されたリクエストがキュー３０で保管されていた時間であるキュー滞留時間、すなわち最新のキュー滞留時間とをそれぞれ表形式で管理・保持する。キューイン時間の管理例を表１に示し、最新のキュー滞留時間の管理例を表２に示す。
【００２２】
【表１】
2008210110.tif 000003
【００２３】
【表２】
2008210110.tif 000004
【００２４】
キュー滞留時間監視部５０は、表２を用いて管理している最新のキュー滞留時間を実行時間予測部７０に通知する。また、キュー滞留時間監視部５０は、リクエストのキュー滞留数を監視し（表１に示す例では「４」）、リクエストのキュー滞留数が「０」になったときは表２に示した最新のキュー滞留時間を「０」にリセットする。
【００２５】
オペレーション実行時間監視部６０は、過去に実行したオペレーションの実行開始時刻、実行終了時刻及び実行時間をオペレーション毎に表形式で管理・保持する。各オペレーションの実行開始時刻、実行終了時刻及び実行時間は、同一オペレーションが実行される度に最新の値に更新される。オペレーション実行時間監視部６０は、実行開始時刻及び実行終了時刻からオペレーション毎の実行時間を計算し、該計算結果を実行時間予測部７０へ通知する。オペレーション毎の実行時間の管理例を表３に示す。
【００２６】
【表３】
2008210110.tif 000005
【００２７】
実行時間予測部７０は、キュー滞留時間監視部５０から最新のキュー滞留時間を取得し、オペレーション実行時間監視部６０から現在受信しているリクエストに対応するオペレーションの実行時間の最新の値を取得する。そして、それらの値を加算し、現在受信しているリクエストの実行時間の予測値である実行予測時間を計算する。また、実行時間予測部７０は、現在受信しているリクエストの実行予測時間と予め設定された応答時間の上限値とを比較し、現在受信しているリクエストの実行予測時間が該上限値を超える場合は、該リクエストの送信元のクライアント１０に対して実行不可のエラーメッセージを含む応答を返送する。
【００２８】
サーバ８０は、例えばコンピュータによって実現され、図２に示すように、プログラムにしたがって所定の処理を実行する処理装置１と、処理装置１に対してコマンドや情報等を入力するための入力装置２と、処理装置１の処理結果をモニタするための出力装置３とを備えている。
【００２９】
処理装置１は、ＣＰＵ１１と、ＣＰＵ１１の処理に必要な情報を一時的に記憶すると共にキュー３０としても用いられる主記憶装置１２と、ＣＰＵ１１に後述するサーバ８０としての処理を実行させるためのプログラムが記録された記録媒体１３と、上記表１〜表３で示したキューイン時間、最新のキュー滞留時間、各オペレーションの実行時間等の情報が格納されるデータ蓄積装置１４と、主記憶装置１２、記録媒体１３及びデータ蓄積装置１４とのデータ転送を制御するメモリ制御インタフェース部１５と、入力装置２及び出力装置３とのインタフェース装置であるＩ／Ｏインタフェース部１６と、クライアント１０と情報を送受信するためのネットワークとのインタフェースである通信制御装置１７とを有する構成である。ＣＰＵ１１と、メモリ制御インタフェース部１５、Ｉ／Ｏインタフェース部１６及び通信制御装置１７とはバス１８を介して接続されている。
【００３０】
処理装置１は、記録媒体１３に記録されたプログラムにしたがってキュー滞留時間監視部５０、オペレーション実行時間監視部６０．実行時間予測部７０及びサーバアプリケーション４０の機能をそれぞれ実現する。記録媒体１３は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。
【００３１】
なお、サーバ８０は、図１に示したキュー３０、サーバアプリケーション４０、キュー滞留時間監視部５０、オペレーション実行時間監視部６０及び実行時間予測部７０を備え、業務システムを管理することが可能であれば、コンピュータに限定する必要はない。サーバ８０は、例えばネットワークとのインタフェースである通信制御装置１７に加えて、論理回路等から構成されるＬＳＩ（Large Scale Integration）やＤＳＰ（Digital Signal Processor）等の半導体集積回路装置及びメモリ等により、上記キュー滞留時間監視部５０、オペレーション実行時間監視部６０．実行時間予測部７０及びサーバアプリケーション４０の機能を実現する構成であってもよい。
【００３２】
クライアント１０も、上記記録媒体１３に格納されるプログラム及びデータ蓄積装置１４に格納されるデータが異なることを除けば、図２に示したサーバ８０と同様の構成で実現できる。
【００３３】
次に本発明の業務システムの動作について図面を用いて説明する。
【００３４】
図３は図１に示した実行時間予測部の処理手順を示すフローチャートである。図４は図１に示したキュー滞留時間監視部の処理手順を示すフローチャートであり、図５は図１に示したオペレーション実行時間監視部の処理手順を示すフローチャートである。
【００３５】
なお、サーバ８０には、予めオペレータの操作によってクライアント１０からのリクエストに対する応答時間の上限値が所定の記憶装置（例えば、図２に示したデータ蓄積装置１４）に格納されているものとする。
【００３６】
図３に示すように、サーバ８０は、まず、実行時間予測部７０により応答時間の上限値を所定の記憶装置から読み出す（ステップＡ１）。
【００３７】
クライアント１０から送信されたリクエストを受信すると（ステップＡ２）、実行時間予測部７０は、キュー滞留時間監視部５０から最新のキュー滞留時間を取得する（ステップＡ３）。
【００３８】
図４に示すように、キュー滞留時間監視部５０は、クライアント１０からリクエストを受信し、該リクエストがキュー３０に格納されると（ステップＢ１）、該リクエストの格納時刻（キューイン時間）を上記表１に記録する（ステップＢ２）。また、リクエストがキュー３０から出力されると（ステップＢ３）、該リクエストの出力時刻（キューアウト時間）及び該当リクエストのキューイン時間からキュー滞留時間を計算し、上記表２に格納している最新のキュー滞留時間を更新する（ステップＢ４）。
【００３９】
次に、キュー滞留時間監視部５０は、キューアウトしたリクエストの情報を上記表１から削除し（ステップＢ５）、表１で管理しているリクエストのキュー滞留数が「０」であるか否かを判定する（ステップＢ６）。キュー滞留数が「０」でない場合はステップＢ１の処理に戻って次のリクエストのキューインを待ち受ける。また、キュー滞留数が「０」である場合は、上記表２に格納している最新のキュー滞留時間を「０」にリセットし（ステップＢ７）、ステップＢ１の処理に戻って次のリクエストのキューインを待ち受ける。なお、キュー滞留時間は、図４に示した手順による方法だけでなく、全てのオペレーションの平均実行時間を計算し、その平均実行時間とキュー滞留数の積から計算することも可能である。
【００４０】
図３に示すように、実行時間予測部７０は、ステップＡ３にてキュー滞留時間監視部５０から最新のキュー滞留時間を取得すると、オペレーション実行時間監視部６０から該当オペレーションの最新の実行時間を取得する（ステップＡ４）。
【００４１】
図５に示すように、オペレーション実行時間監視部６０は、オペレーションが実行開始されると（ステップＣ１）、上記表３に格納された該当オペレーションの実行開始時刻を更新する（ステップＣ２）。
【００４２】
次に、オペレーション実行時間監視部６０は、オペレーションが正常に終了したか否かを判定し（ステップＣ３）、オペレーションが正常に終了した場合は、上記表３に格納された該当オペレーションの実行終了時刻を更新する（ステップＣ４）。また、更新したオペレーションの実行開始時刻及び実行終了時刻から該当オペレーションの実行時間を計算し、上記表３に格納された該当オペレーションの実行時間を更新する（ステップＣ５）。実行時間の更新が終了すると、ステップＣ１の処理に戻ってオペレーションの実行開始を待ち受ける。ステップＣ３の処理にてオペレーションが正常に終了していない場合、オペレーション実行時間監視部６０は、上記表３に格納した該当オペレーションのオペレーション実行開始時刻をクリアし（ステップＣ６）、ステップＣ１の処理に戻ってオペレーションの実行開始を待ち受ける。
【００４３】
図３に示すように、実行時間予測部７０は、ステップＡ４にてオペレーション実行時間監視部６０から該当オペレーションの最新の実行時間を取得すると、キュー滞留時間監視部５０から取得したキュー滞留時間とオペレーション実行時間監視部６０から取得したオペレーションの実行時間とを加算し、現在受信しているリクエストによるオペレーションの実行予測時間を計算する（ステップＡ５）。
【００４４】
次に、実行時間予測部７０は、計算した実行予測時間とステップＡ１で読み出した応答時間の上限値とを比較し（ステップＡ６）、実行予測時間が上限値を超えない場合は現在受信しているリクエストをキュー３０に格納する。該リクエストによるオペレーションは、所要のキュー滞留時間の経過後に実行される（ステップＡ７）。また、実行予測時間が上限値を超えている場合は、該リクエストの送信元のクライアント１０へ実行不可のエラーメッセージを含む応答を返送する（ステップＡ８）。
【００４５】
なお、サーバ８０は、キュー滞留時間監視部５０で計算したキュー滞留時間やオペレーション実行時間監視部６０で計算したオペレーション毎の実行時間をクライアント１０からの要求に応じて返送してもよい。その場合、クライアント１０のユーザは、オペレーションの実行要求をサーバ８０に送信する前にサーバ８０の処理負荷を確認できるため、速やかに実行可能なオペレーションや所望のオペレーションの実行終了までに要する時間等を知ることができる。
【００４６】
本発明の業務システムによれば、サーバ８０によりオペレーションの実行要求を受信してからクライアント１０へ応答を返送するまでの実行時間を予測し、該実行時間の予測値が予め設定された応答時間の上限値を超える場合、サーバ８０は要求されたオペレーションを実行することなくクライアント１０へ実行不可のエラーメッセージを含む応答を返送する。したがって、クライアント１０からの実行要求に対してサーバ８０が応答するまでの時間が短縮される。そのため、クライアント１０のユーザは、サーバ８０にオペレーションの実行要求を送信してから長時間応答を待つ必要が無くなり、不快な応答待ち時間のストレスから解放される。また、エラーメッセージを含む応答の受信後にクライアント１０がオペレーションの実行要求を再びサーバ８０に送信しても、該実行要求の実行時間の予測値が上限値を超える場合、サーバ８０は要求されたオペレーションを実行することなくクライアント１０へエラーメッセージを含む応答を再び返送する。よって、クライアント１０からの再度の実行要求によってサーバ８０の処理負荷が増大することが無く、またリソースを無駄に使用することもない。
【図面の簡単な説明】
【００４７】
【図１】本発明の業務システムの一構成例を示すブロック図である。
【図２】図１に示したサーバの実現例を示すブロック図である。
【図３】図１に示した実行時間予測部の処理手順を示すフローチャートである。
【図４】図１に示したキュー滞留時間監視部の処理手順を示すフローチャートである。
【図５】図１に示したオペレーション実行時間監視部の処理手順を示すフローチャートである。
【符号の説明】
【００４８】
１    処理装置
２    入力装置
３    出力装置
１１    ＣＰＵ
１２    主記憶装置
１３    記録媒体
１４    データ蓄積装置
１５    メモリ制御インタフェース部
１６    Ｉ／Ｏインタフェース部
１７    通信制御装置
１８    バス
１０    クライアント
３０    キュー
４０    サーバアプリケーション
５０    キュー滞留時間監視部
６０    オペレーション実行時間監視部
７０    実行時間予測部
８０    サーバ
【図１】
2008210110.tif 000006
【図２】
2008210110.tif 000007
【図３】
2008210110.tif 000008
【図４】
2008210110.tif 000009
【図５】
2008210110.tif 000010