(57)【要約】【課題】  一度、クライアント端末から受けつけた要求は、異なるシステムへ要求する際に一定のレスポンスを保証し、単位時間内に受け付ける要求の数の上限値を定めることなく、クライアント端末から要求されたデータを破棄しないようにする。【解決手段】  クライアントからの要求をサービスレベルに対応した高速、中速及び低速のいずれかのキューに入れ、キューの中の要求の有無をサービスレベルに応じた時間間隔で監視し、高速、中速、低速仮想端末キューに要求が滞留することを避け、サービスレベルによる一定のスループットを確保するため、キューの中にあった要求を直ちに取り出さずに、要求の取り出しのタイミングを制御して上位システムへのアクセス集中を回避する。【選択図】図１
2014089632.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、少なくとも１台のクライアント端末と、前記クライアント端末からの要求に対応する処理を行う少なくとも１台の上位システムと、前記要求のサービスレベルに応じて前記クライアント端末からの前記要求の入力の流量を制御し、前記上位システムへの前記要求の出力の流量を制御する受付システムからなる流量制御システムであって、前記受付システムは、
前記サービスレベルのそれぞれに応じて設けられた領域を有する仮想端末キューに前記要求を設定するための端末定義テーブルに基づいて、前記要求を前記仮想端末キューに格納する手段、及び
前記要求に関する情報を格納するキューイング管理テーブルを含む仮想端末キュー振分け制御手段を有することを特徴とする流量制御システム。
【請求項２】
前記受付システムは、さらに、
前記仮想端末キュー内にある前記サービスレベルに応じた前記領域における前記要求の有無を、前記サービスレベルに応じた監視時間隔で監視する仮想端末キュー監視手段、及び
前記仮想端末キュー内の前記要求を前記上位システムに送信するための、前記サービスレベル毎に少なくとも１台設けられた仮想端末の使用状況を格納する仮想端末ステータスを含む仮想端末制御手段を有することを特徴とする請求項１に記載の流量制御システム。
【請求項３】
前記仮想端末制御手段は、
前記仮想端末ステータスに基づいて使用可能な前記仮想端末を検索し、前記検索した仮想端末によって、前記仮想端末キュー内にある前記サービスレベルに応じた前記領域における前記要求を、所定の前記上位システムに送信することを特徴とする請求項２記載の流量制御システム。
【請求項４】
前記仮想端末制御手段は、
前記キューイング管理テーブルに格納された前記要求の前記仮想端末キューへの入力時刻から現在時刻までの経過時間が、前記サービスレベルに応じて設定された検索時間間隔を超過していた前記要求を前記仮想端末キューから取り出し、
前記仮想端末ステータスに基づいて検索した空き状態の前記仮想端末によって、前記取り出した要求を前記上位システムに送信することを特徴とする請求項３記載の流量制御システム。
【請求項５】
前記受付システムは、
前記サービスレベルのそれぞれで、前記監視時間間隔の値が互いに素（１以外の約数を持たない）になるように設定することを特徴とする請求項２記載の流量制御システム。
【請求項６】
前記受付システムは、さらに、
前記サービスレベルのそれぞれで、前記監視時間間隔の値の１／２だけ、前記仮想端末キューの監視の開始時間をずらすことを特徴とする請求項５記載の流量制御システム。
【請求項７】
前記サービスレベルは、前記要求に対する対応の速さに応じて定めた高速、中速、及び低速の３つのレベルであることを特徴とする請求項１記載の流量制御システム。
【請求項８】
ネットワークを介して、少なくとも１台のクライアント端末と、前記クライアント端末からの要求に対応する処理を行う少なくとも１台の上位システムと接続され、前記要求のサービスレベルに応じて前記クライアント端末からの前記要求の入力の流量を制御し、前記上位システムへの前記要求の出力の流量を制御する受付システムにおける流量制御方法であって、
前記サービスレベルのそれぞれに応じて設けられた領域を有する仮想端末キューに前記要求を設定するための端末定義テーブルに基づいて、前記要求を前記仮想端末キューに格納し、
前記要求に関する情報をキューイング管理テーブルに格納することを特徴とする流量制御方法。
【請求項９】
前記方法は、さらに、
前記仮想端末キュー内にある前記サービスレベルに応じた前記領域における前記要求の有無を、前記サービスレベルに応じた監視時間隔で監視し、
前記仮想端末キュー内の前記要求を前記上位システムに送信する際に、前記要求を前記上位システムに送信するための、前記サービスレベル毎に少なくとも１台設けられた仮想端末の使用状況を仮想端末ステータスに格納することを特徴とする請求項８に記載の流量制御方法。
【請求項１０】
前記要求を前記上位システムの送信する際に、
前記仮想端末ステータスに基づいて使用可能な前記仮想端末を検索し、前記検索した仮想端末によって、前記仮想端末キュー内にある前記サービスレベルに応じた前記領域における前記要求を、所定の前記上位システムに送信することを特徴とする請求項８記載の流量制御方法。
【請求項１１】
前記要求を前記上位システムの送信する際に、
前記キューイング管理テーブルに格納された前記要求の前記仮想端末キューへの入力時刻から現在時刻までの経過時間が、前記サービスレベルに応じて設定された検索時間間隔を超過していた前記要求を前記仮想端末キューから取り出し、
前記仮想端末ステータスに基づいて検索した空き状態の前記仮想端末によって、前記取り出した要求を前記上位システムに送信することを特徴とする請求項１０記載の流量制御方法。
【請求項１２】
前記仮想端末キューの監視の際に、
前記サービスレベルのそれぞれで、前記監視時間間隔の値が互いに素（１以外の約数を持たない）になるように設定することを特徴とする請求項９記載の流量制御方法。
【請求項１３】
前記仮想端末キューの監視の際に、さらに、
前記サービスレベルのそれぞれで、前記監視時間間隔の値の１／２だけ、前記仮想端末キューの監視の開始時間をずらすことを特徴とする請求項１２記載の流量制御方法。
【請求項１４】
前記サービスレベルは、前記要求に対する対応の速さに応じて定めた高速、中速、及び低速の３つのレベルであることを特徴とする請求項８記載の流量制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
トランザクション流量制御技術。トランザクションは、ある取り決めたサービスレベルによって一定量の流量制御処理する技術である。
【背景技術】
【０００２】
従来のトランザクション流量制御は、取り決められた性能要件により一定量の要求を受け付け処理する。その際、一定量のトランザクションデータのレスポンスを保証、制御するために、取り決められた一定量やその範囲内でトランザクションデータを流量制御し、一定量を超えた要求は破棄することが従来技術であった。これに関連する技術として、特許文献１が挙げられる。特許文献１には、単位時間内に定められた上限値に達するまで流量制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２２３８１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１では、トランザクションデータ（要求）が単位時間内に定められた上限値に達した場合、過剰性能が出ることを防止するために上限値に達した以降のデータを破棄してしまい、クライアント端末から再要求が必要となる。一度クライアント端末から受けつけた要求は、異なるシステムへ要求する際に一定のレスポンスを保証し、単位時間内に受け付ける要求の数の上限値を定めることなく、クライアント端末から要求されたデータを破棄しないようにする。
【課題を解決するための手段】
【０００５】
そこで本願発明では、トランザクション要求を受けつけた受付システムが、異なる上位システムへ要求する場合、受け付けた要求に対する対応の速さによって決まるサービスレベル（端末定義テーブル）によって、それぞれ専用の仮想端末キューと仮想端末により、上位システムへの要求データを流量制御する。流量制御する際、一度受けつけたトランザクションデータは仮想端末キューに保存した状態とすることで複数のクライアント端末から受けつけたデータを破棄することなく上位システムへのアクセス集中を回避する。
【発明の効果】
【０００６】
本発明によれば、トランザクションを受けつける受付システムが、一定量以上のトランザクションを受けつけてもデータ破棄することなく、上位システムへのアクセス集中回避と過剰性能防止し流量制御を行える。
【図面の簡単な説明】
【０００７】
【図１】サービスレベルに応じた流量制御システムのハードウエアおよびソフトウェア構成図である。
【図２】端末要求受信後、サービスレベルに応じた仮想端末キューへキューイング処理を行うプロセスのフローチャートである。
【図３】サービスレベル毎の仮想端末キューへキュー振分け制御する処理概要図である。
【図４】仮想端末キュー振分け制御における端末定義テーブル取得しサービスレベルを特定する処理である。
【図５】仮想端末キュー振分け制御におけるサービスレベル毎のキューイング処理である。
【図６】仮想端末キューを監視して仮想端末を取得する仮想端末キュー監視プロセスのフローチャートである。
【図７】仮想端末キュー監視プロセスの概要図であり、高速用、中速用、低速用それぞれプロセスは別ということを示している。
【図８】高速仮想端末キュー監視プロセスの仮想端末制御処理である。
【図９】図２仮想端末キューへキューイング時、キューイングテーブルを用いたフローチャートである。
【図１０】仮想端末キューイングテーブルである。
【図１１】仮想端末キュー振分け制御におけるキューイングテーブル設定処理である。
【図１２】仮想端末キュー監視プロセスの仮想端末制御処理で時間超過チェックを行うフローチャートである。
【図１３】高速仮想端末キュー監視プロセスの仮想端末制御処理で時間超過チェックを行う制御である。
【図１４】高速仮想端末キュー監視プロセスの時間超過チェック処理のフローチャートである。
【図１５】端末、キュー及び上位システムとの対応関係である。
【図１６Ａ】高速端末キューの場合の仮想端末キューの監視のタイミングである。
【図１６Ｂ】低速（又は中速）端末キューの場合（検索時間間隔＞監視時間間隔）の仮想端末キューの監視のタイミングである。
【図１６Ｃ】低速（又は中速）端末キューの場合（検索時間間隔＜監視時間間隔）の仮想端末キューの監視のタイミングである。
【発明を実施するための形態】
【実施例１】
【０００８】
本実施例では、クライアントからの要求をサービスレベルに対応した高速、中速及び低速のいずれかのキューに入れ、キューの中の要求の有無をサービスレベルに応じた時間間隔で監視し、キューの中に要求があった場合は直ちにそれを取り出して上位のシステムに送信する場合を説明する。
【０００９】
以下、図面を用いて本発明に関する実施の形態を説明する。
（システム構成の概要）
図１は、複数のクライアント端末２、３から受け口となる受付システム１に要求があった場合、この受付システム１から所定の業務処理を行うための上位システム５ａ，ｂに要求を送信する際に流量制御を行うシステムの全体図である。
【００１０】
図１のシステムでは、上位システム５ａ，ｂの何れかに所定の処理を依頼する複数のクライアント端末２ａ，ｂが、ネットワーク４を介して、上位システム５ａ，ｂへの要求の流量制御を行う受付システム１に接続されており、さらに、受付システム１は、ネットワーク３を介して上位システム５ａ，ｂに接続されている。ネットワーク３と４は同じネットワークであってもよい。
【００１１】
受付システム１は、ＣＰＵ６とメモリ１０を有する計算機であり、メモリ１０内には、クライアント端末２ａ，ｂからの要求を受け付ける端末受信制御１００、サービスレベルに応じた仮想端末キューに要求を振り分ける仮想端末キュー振分け制御２００、所定のタイミングで上位システム５ａ，ｂに要求を送信する仮想端末制御３００、及び、要求に対応する回答を上位システム５ａ，ｂから受け取ってクライアント端末２ａ，ｂに送信する回答受信制御４００のそれぞれを実行するプログラムが格納されている。
【００１２】
仮想端末キュー振分け制御２００には、クライアント端末２ａ，ｂからの各要求を高速、中速及び低速のいずれかのキューに振り分けるための端末定義テーブルＴ１００、このテーブルＴ１００を設定する端末定義取得２１０、キューに格納された各要求に関する情報を一括管理するためのキューイング管理２５０、及び、サービスレベルに応じた高速、中速及び低速、更には上記システム５ａ，ｂ毎に設けた各仮想端末キューを保持する仮想端末キュー領域Ｔ２００を有する。なお、クライアント端末２ａ，ｂからの各要求は、一度、共通のバッファ（図示せず）に格納された後で、仮想端末キュー振分け制御２００によって各仮想端末キューに振り分けられる。
【００１３】
仮想端末制御３００は、仮想端末キュー領域Ｔ２００が保持する高速、中速及び低速の各仮想端末キューの中の要求の有無をサービスレベルに応じた時間間隔で監視し、所定のタイミングで上位システム５ａ，ｂに要求を送信する仮想端末キュー監視３１０、及び、上位システム５ａ，ｂへの要求の送信の可否を判断するための仮想端末ステータスＴ３００を有する。
【００１４】
仮想端末制御３００は、上位システム５ａ，ｂに要求を送信する際に、上位システム５ａ，ｂのそれぞれのインターフェイスに合わせて要求を送信できるように、仮想端末の機能（通常の端末エミュレータのような機能）を有し、かつ、サービスレベルに応じた高速、中速及び低速、更には上記システム５ａ，ｂ毎にそれぞれの仮想端末が動作するような機能を有する。更に、高速、中速及び低速のそれぞれには、サービスレベルに応じた処理の多重度に応じて少なくとも１つの仮想端末が割り当てられる。従って、仮想端末制御３００では、（高速の多重度＋中速の多重度＋低速の多重度）×（上位システム５ａ＋上位システム５ｂ）台の仮想端末が動作しているように機能する。それに対応して、仮想端末ステータスＴ３００は、（高速＋中速＋低速）×（上位システム５ａ＋上位システム５ｂ）個のステータス領域を有し、各ステータス領域には、それぞれの多重度に応じた（仮想端末に対応した）個数のステータスが格納される。通常、サービスレベルが高い程、多重度を高くする、即ち、割り当てる仮想端末の数を多くなるように設定する。
【００１５】
ここで、図１５を用いて、上記で説明したクライアント端末２、仮想端末キューＴ２００及び上位システム５との対応関係を説明する。
【００１６】
クライアント端末２から送信された要求は、一度はバッファに格納された後、端末定義テーブルＴ１００に基づいて、仮想端末キューＴ２００内の高速、中速及び低速のサービスレベルに応じた各領域に格納される。仮想端末キューＴ２００には、複数（本実施例の場合は２）の上位システム５ａ，ｂのそれぞれに対応して領域が設けられている。仮想端末キューＴ２００内の各領域における要求の有無が、サービスレベルに応じた時間間隔で監視され、監視によって要求の存在が確認されると、仮想端末ステータスＴ３００によって未使用の仮想端末を検索し、検索された仮想端末から上位システムに対して要求が送信される。
【００１７】
図１５の下に示したサービスレベルの制御パラメータは、仮想端末キューＴ２００内の要求の有無の監視及び上位システム５への送信を制御するためのパラメータの一覧表であり、仮想端末キューＴ２００内の高速、中速及び低速のサービスレベルに応じた各領域に格納された要求の有無を監視する監視時間間隔、要求が入力されてから未使用の仮想端末を検索するまでの時間隔を定義した検索時間間隔（後述する第２実施例で使用）、及び要求を上位システム５に送信するための仮想端末数を、上位システム５ａ，ｂ毎に定義したものである。
【００１８】
図１５のサービスレベルの制御パラメータの一覧表の下には、各パラメータの、設定すべき大小関係を示した。検索時間間隔及び仮想端末数は、上位システム５ａ，ｂ毎に変える必要はないが、監視時間間隔は、上位システム５ａ，ｂ毎に変えておいたほうが、後述するように、所定のサービスレベルを維持するために、受付システム１の処理負荷を分散する上で有効である。
【００１９】
また、各サービスレベルの単位時間当たりに受け付けた要求の数に基づいて監視時間間隔を設定又は変更することも可能である。即ち、高速、中速、低速のそれぞれの仮想端末キューに対する監視時間間隔ｔＨ、ｔＭ、ｔＬを、各サービスレベルの単位時間当たりに受け付けた要求の数を適宜監視し、その要求の数ｎＨ、ｎＭ、ｎＬの逆数に比例し、かつ、互いに素となる値に設定する。但し、サービスレベルが高い要求ほど数が多く、ｎＨ＞ｎＭ＞ｎＬとする。
【００２０】
（受付システム）
受付システム１の端末受信制御１００で受信したトランザクションデータは、仮想端末キュー振分け制御２００で端末定義テーブルＴ１００によってクライアント端末のサービスレベルが特定される。サービスレベルとは、複数存在するクライアント端末が各システムにトランザクションデータを要求する際の流量制御において、相手先システムのアクセス集中を回避するとともに一定のスループットを確保できるように、そのスループット、即ち、単位時間当たりの処理件数に格差をつけるため端末に与えられたランク付けの定義である。本実施例では、このサービスレベルを高速、中速、低速に分ける。そのサービスレベルの設定は、契約により取り決めるが、この形態では契約内容について限定、特定はしない。
【００２１】
端末定義テーブルＴ１００は、システムの管理者などによって予め設定されているものとする。
【００２２】
特定したサービスレベルにより流量制御するにあたって、受け付けた要求は、端末定義テーブルＴ１００に基づいて、特定したサービスレベルの仮想端末キューＴ２００へキューイング(設定)する。
【００２３】
一方、端末受信制御１００、及び仮想端末キュー振分け制御２００とは別のプロセスである仮想端末キュー監視プロセス３１０として動作する仮想端末制御３００は、キューイングされたトランザクションデータが存在するかどうかを調べるため、一定時間毎に仮想端末キューＴ２００を監視している。仮想端末キューＴ２００の監視時時間隔は、サービスレベルによって異なり、高速（Ｈ）、中層（Ｍ）及び低速（Ｌ）の場合のそれぞれの監視時間間隔ｔＨ、ｔＭ及びｔＬは、ｔＨ＜ｔＭ＜ｔＬとなるように設定され、高速のサービスレベルほど仮想端末キューＴ２００の中の要求の存在が頻繁に監視されるため、要求に対する対応（サービス）が速やかに行われる。
【００２４】
仮想端末キューＴ２００に要求が存在した場合、仮想端末ステータスＴ３００に基づいて使用可能な仮想端末を検索する。使用可能な仮想端末が存在した場合、その仮想端末を取得する。仮想端末が取得出来た場合、仮想端末キューから要求を取り出し上位システム５ａ又はｂに要求を送信する。
【００２５】
この仮想端末をサービスレベルに応じていくつ用意しておくことによって流量制御が行える。仮想端末が取得出来ない場合は、仮想端末キューＴ２００から要求を取り出さず、次の仮想端末キュー取り出し契機を待つ。必ず一度受けつけた要求を破棄することはしないので、サービスレベルはそのまま維持される。即ち、仮想端末ステータスＴ３００における当該上位システム５ａ又はｂの当該サービスレベル（Ｈ／Ｍ／Ｌ）の多重度分の仮想端末全てが使用中の場合は、仮想端末キューＴ２００から要求を取り出さず、仮想端末が空くまで待ち、各仮想端末キューＴ２００に格納されている各要求の入力順序をそのまま保持し、要求に対するサービスの順序が変わらないようにする。この部分が本発明の特徴である改善の１つである。仮想端末キューからのデータの取り出しや仮想端末の取得の手段の詳細については後述する。
【００２６】
上位システム５は、受付システム１からの要求に対応する業務処理を行い、受付システム１に処理結果を回答する。受付システム１は、上位システム５の処理結果を回答受信制御４００によって回答データを受信した後、要求の送信に使用した仮想端末に対応する、仮想端末ステータスＴ３００のステータスを「使用中」から「空き」に変更し、他の要求が当該仮想端末を使用できるようにする。その後、クライアント端末への回答に必要な業務処理を実行し、要求を受けつけたクライアント端末へ各種処理結果、画面データ等を回答する（４２０）。なお、本実施例では、上位システム５に要求を送信し、回答を受信するまでの間（即ち、上位システム５との間で情報の授受を行っている間）は、仮想端末は「使用中」の状態に設定される。
【００２７】
図２は、図１のクライアント端末からの要求受信後、サービスレベルに応じた仮想端末キューＴ２００へキューイング処理を行うプロセスのフローチャートである。
【００２８】
本プロセスは、サービスレベルに関係なく共通のプロセスであり、端末定義テーブルＴ１００で定義されたサービスレベルによって、そのサービスレベルに合わせた仮想端末キューＴ２００へ要求を設定する処理である。
【００２９】
端末定義テーブルからサービスレベルを特定すると、サービスレベル毎に設けた各プロセスで流量制御が可能となる。各サービスレベルの仮想端末キューＴ２００へ要求を設定する際、それぞれのサービスレベルの仮想端末キューイングテーブルへ必要な情報を設定する（２４０、２５５、２５６）。キューイングテーブルに設定する情報は後述する。なお、ここでのサービスレベルは、高速、中速、低速の３段階で定義する。
【００３０】
図３は、仮想端末キュー振分け制御２００の概要図であり、図４、５は、その詳細を示した図である。
【００３１】
図３〜図５で示す通り、仮想端末キュー振分け制御２００は、端末定義テーブルＴ１００に基づいてクライアント端末２ａ，ｂからの要求をキューイングする処理を行う。図４は、端末定義テーブルＴ１００に基づいて、クライアント端末２と受付システム１間のインターフェイスに存在する端末番号をキーとして、サービスレベルを特定する処理を示す。
【００３２】
図５は、キューイング処理を示しており、端末定義テーブルＴ１００で定義されたサービスレベルである高速、中速、低速によって、高速の場合は高速仮想端末キューＴ２００ａ、中速の場合は中速仮想端末キューＴ２００ｂ、低速の場合は低速仮想端末キューＴ２００ｃのそれぞれの領域へ要求を格納する。クライアント端末より要求を受信したプロセスの処理は、各仮想端末キュー（Ｔ２００ａ、ｂ、ｃ）へキューイングした時点で終了する。
【００３３】
次に、図６は、仮想端末制御３００を行う仮想端末キュー監視プロセス３１０のフローチャートである。図７でも示す通り、仮想端末キュー監視プロセス３１０は、高速、中速、低速用でそれぞれ別のプロセスであり、それぞれ専用の仮想端末キューを一定間隔でキュー内のデータの有無を監視する。高速、中速、低速用のそれぞれのプロセスの論理は全て同じである。以降、仮想端末キューを高速、中速、低速のサービスレベルのそれぞれ一定間隔で監視する一定時間は、監視時間間隔と定義する。
【００３４】
仮想端末キュー監視プロセス３１０が、仮想端末キューＴ２００の監視を行い、仮想端末キューに要求が存在した場合、使用可能な仮想端末を検索する。仮想端末キューＴ２００に要求が存在しない場合、一定時間待ち（３２０）となる。一定時間待ちについては後述する。
【００３５】
仮想端末検索（３４０）では、空き状態の仮想端末を検索する。仮想端末の空き状態とは、クライアント端末２からの要求を送信する相手先の上位システム５向けとして、仮想端末を使用していないことを意味する。空き状態の仮想端末がなかった場合、規定の仮想端末の全てが上位システム５向けとして使用しているということであり、この場合一定時間待ち（３２０）となる。一定時間待ちについては後述する。
【００３６】
空き状態の仮想端末が見つかった場合、仮想端末取得処理（３５０）で、その仮想端末を取得して使用中とすることで、上位システム５向けに処理の実行を要求している状態とする。仮想端末が取得出来た場合、相手先システムへ要求を送信する（３６０）。要求の送信を実行した後、再度、仮想端末キュー監視（３０５）からこれらの処理を繰り返す。
【００３７】
先述した一定時間待ちに関して説明する。
高速、中速、低速用の仮想端末キュー監視プロセスが、一定時間待つことなく常に仮想端末キュー上のトランザクションデータの存在を確認しているとＣＰＵの処理負荷が増えるため、要求に対するサービスのレベルが低下する。これを避けるために、各プロセスで仮想端末キューに要求がない場合、あるいは空きの仮想端末がなかった場合は、それぞれのサービスレベルに合わせてスループットが満たされるように、監視時間間隔を設定する。
【００３８】
また、サービスレベルに格差をつけるために、より高速なサービスを与えるための流量制御を行う高速サービスレベルでは、この監視時間間隔を極めて小さくすることで、低速、中速との優位性を見出すことが可能である。監視時間間隔は、サービスレベルに応じて予め制御パラメタ（図１５）で定義する。
【００３９】
図７は、高速仮想端末キューＴ２００ａと高速仮想端末キュー監視プロセスの関係、中速仮想端末キューＴ２００ｂと中速仮想端末キュー監視プロセスの関係、低速仮想端末キューＴ２００ｃと低速仮想端末キュー監視プロセスの関係を示した概要図である。各サービスレベルの仮想端末キュー監視プロセスは、サービスレベル毎にそれぞれ別のプロセスとして動作し、それぞれの仮想端末キューを監視している。
【００４０】
図８は、図６の処理概要図である。サービスレベル高速の仮想端末キュー監視プロセスは、仮想端末キューＴ２００を監視し、トランザクションデータが存在した場合、複数ある仮想端末の中から空き（使用可能）の仮想端末を取得し、その仮想端末の状態を空きから使用中に書換え、相手の上位システムへ要求を送信する。図８では、サービスレベルが高速の場合を示したが、中速及び低速の場合も同様である。
なお、仮想端末はサービスレベル毎の処理の多重度に応じて任意に複数個備えることが可能である。
【００４１】
以上、実施例１では、仮想端末キュー、仮想端末を使用して、サービスレベル毎の仮想端末の数によって相手の上位システム５へのアクセス集中を回避し、一定のスループット確保しながら流量制御を行う。
【実施例２】
【００４２】
実施例１では、キューの中に要求があった場合は直ちにそれを取り出して上位のシステム５に送信する場合を説明したが、実施例２では、高速、中速、低速仮想端末キューに要求が滞留することを避け、サービスレベルによるスループットを確保する実施例を示す。即ち、一定のスループットを確保するため、キューの中にあった要求を直ちに取り出さずに、要求の取り出しのタイミングを制御して上位システム５へのアクセス集中を回避する処理を説明する。
【００４３】
図９は、図２の仮想端末キュー振分け制御２００のフローチャートである。サービスレベルによるスループットを確保するために、キューに格納された各要求に関する情報を一括管理するためのキューイング管理テーブル２５０を用意し、要求のキューイング前に、キューイング管理テーブル２５０内の仮想端末キューイングテーブルＴ２５０へ各要求に関する情報を設定する。例えば、サービスレベルが高速の要求が入力された場合は（２９０）、高速の要求に関する情報を仮想端末キューイングテーブルＴ２５０に設定（登録）し（２２０）、その後、高速の要求を高速仮想端末キューＴ２００ａに格納（キューイング）する（２４０）。サービスレベルが中速及び低速の場合も同様である。
【００４４】
図１０に仮想端末キューイングテーブルＴ２５０の例、図１１に高速の要求の仮想端末キューイングテーブル設定（２２０）処理を示す。
【００４５】
仮想端末キューイングテーブルＴ２５０には、相手先の上位システム５ａ，ｂ、及びサービスレベル（高速、中速、低速）のそれぞれの区別なく、入力された全ての要求に関する情報が登録され、一括管理される。
【００４６】
図１０に示すように、仮想端末キューイングテーブルＴ２５０は、個々の要求を識別する「電文番号」、要求の送信元のクライアント端末２ａ，ｂを示す「端末番号」、要求の送信先の上位システム５ａ，ｂを示す「相手先システム」、要求のサービスレベルが高速、中速及び低速のいずれであるかを示す「サービスレベル」、及び仮想端末キュー領域Ｔ２００内のサービスレベルに応じた領域に要求が格納された時刻を示す「キュー設定時刻」で構成される。一方、仮想端末キュー領域Ｔ２００内には、各要求の内容のみが上記の「電文番号」とともに格納されるが、「電文番号」を介して、図１０の仮想端末キューイングテーブルＴ２５０を検索することで各要求に関する情報を把握できる。
【００４７】
仮想端末キュー振分け制御２００では、キューイングテーブル設定２２０が、仮想端末キューイングテーブルＴ２５０の空きエントリに、入力された要求に対して電文番号生成２２１で生成した電文番号、要求を送信した端末の端末番号、要求する相手先の上位システム、端末定義テーブルＴ１００で定義された当該端末のサービスレベル、キューイング時に現在時刻設定２２２で生成した現在時刻を設定する。
【００４８】
一方、図１２、１３、１４で示す仮想端末キュー監視プロセス３１０は、監視時間毎に仮想端末キューを監視する。図１２に示すように、仮想端末キュー上にトランザクションデータが存在した場合（３１５）、実施例１とは違い、すぐに相手の上位システム５へ要求する訳ではなく、相手の上位システム５へ要求するための仮想端末を取得する契機となる仮想端末検索処理（３４０）を、仮想端末キューへの要求の入力から一定の間隔を空けながら実行する。つまり、仮想端末キュー振分け制御を行うプロセスでは、仮想端末監視プロセス３１０が、仮想端末キューに要求をキューイングしてから現在時刻までの経過時間をチェックし、その経過時間が、図１５に示したサービスレベルの制御パラメータに定義した検索時間間隔を超過していた場合に仮想端末検索を行う。（３３０、３３５、３４０）
【００４９】
上記のように、仮想端末キューに要求が存在した場合、すぐに仮想端末検索を行うのではなく、時間超過チェック（３３０）による仮想端末キューのキューイングから仮想端末キュー取り出しまでの時間監視を行うことで、取り決めたサービスレベルのスループットの確保と上位システム５へのアクセス集中を回避することが出来る。その理由は具体例で後述する。
【００５０】
受付システムからの要求に対する上位システムの応答（回答）の早さに基づいて、上位システムの負荷が増大していることが検知された場合は、仮想端末キューの監視から仮想端末の検索に至る検索時間間隔を長くして上位システムへの要求の送信を抑制することもできる。
【００５１】
また、図１３に示すように、仮想端末検索によって「空き」状態となっている端末が見つかった場合は、仮想端末ステータスＴ３００の「空き」を「使用中」に変更して仮想端末を取得し（３５０）、上位システム５に要求を送信した後は一定時間待ち（監視時間）に入らず、仮想端末キューの監視を行う。
【００５２】
図１４は、高速用の時間超過チェック（３３０）の処理詳細を示したものである。時間超過チェック方法は、仮想端末キューイングテーブルＴ２５０を調べ、現在時刻取得（３３２）で取得した現在時刻から仮想端末キューイングテーブルＴ２５０の該当するキュー設定時刻を減算した時間が、図１５のサービスレベルの制御パラメータで定義された検索時間間隔と等しいか上回っていた場合（上回った場合のみでもかまわない）に時間超過とみなす。（＜計算式＞  検索時間間隔  ＜  現在時刻 − キュー設定時刻）
なお、時間超過していない場合は、実施例１と同様に、一定時間待ち（監視時間待つ）とする。
【００５３】
ここで、仮想端末キューと仮想端末、そしてこれらを監視する仮想端末キュー監視プロセスは、サービスレベル毎に備えているため、それぞれのサービスレベルに対する、それぞれ取り決めた監視時間と間隔時間によって仮想端末キューイングから仮想端末キュー取り出しまでの処理が並行に動作する。
【００５４】
各サービスレベルの仮想端末キュー監視プロセスは、制御パラメータで定義した監視時間毎に仮想端末キューを監視するが、上記理由からトランザクションデータが到着した瞬間に高速、中速、低速どのサービスレベルの仮想端末キュー監視プロセスが動作するか分からない。
【００５５】
このため、出来るだけ高速と中速、低速、さらには中速と低速サービスレベルの格差をつける手法として、複数のクライアント端末から一斉にトランザクション要求された瞬間、あるいは比較的トランザクション要求が少ない閑散時間に注目する。
【００５６】
（仮想端末キューの監視のタイミングチャート）
図１６Ａ，Ｂ及びＣは、実施例２における仮想端末キューの監視及び仮想端末の検索、取得の具体例を示すタイミングチャートである。図１６Ａ，Ｂ及びＣのいずれも、２つのキュー入力のタイミングは同じであるが、仮想端末キューの中の要求の有無をチェックする監視時間間隔及び、仮想端末キューへの要求の入力からの経過時間を判断するための検索時間間隔が、サービスレベルによってそれぞれ異なる。図１６Ａはサービスレベルが高速の場合であり、図１６ＢとＣはサービスレベルが低速（又は中速）の場合であるが、監視時間間隔と検索時間間隔のそれぞれの値の大小関係が異なる場合を示している。
【００５７】
図１６Ａ，Ｂ，Ｃでは、仮想端末キューへの要求の入力からキューの監視時間までの経過時間をｔＣ１、ｔＣ２、ｔＣ３、ｔＣ４で示す。また、Ｐ１及びＰ２は、以下の説明で用いる特定の監視時間を示し、仮想端末キューへの要求の入力から検索時間間隔が経過して仮想端末の検索及び取得を行うタイミングにも関係する。なお、本実施例では、図１６Ａの高速の監視時間間隔ｔＨと図１６Ｂ，Ｃの低速（中速）の監視時間間隔ｔＬの関係は、ｔＬ＝５ｔＨと仮定した。
【００５８】
図１６Ａは、サービスレベルが高速の場合であって、但し、検索時間間隔＞監視時間間隔（ＴＨ＞ｔＨ）としたときのタイミングチャートである。
キュー１入力後の最初の２つのキュー監視時間では、キュー入力から検索時間間隔が経過していないが（ｔＣ１＜ＴＨ）、Ｐ１で示すキュー監視時間では、キュー入力から検索時間間隔が経過しているので（ＴＨ＜ｔＣ２）、黒丸で示すように仮想端末の検索及び取得が行われる。キュー２入力についても同様に、Ｐ２で示すキュー監視時間では、キュー入力から検索時間間隔が経過しているので（ＴＨ＜ｔＣ３）、黒丸で示すように仮想端末の検索及び取得が行われる。
【００５９】
図１６Ｂは、サービスレベルが低速（又は中速）の場合であって、但し、検索時間間隔＞監視時間間隔（ＴＬ＞ｔＬ）としたときのタイミングチャートである。
キュー１入力後の最初のキュー監視時間Ｐ１では、キュー入力から検索時間間隔が経過していないが（ｔＣ２＜ＴＬ）、Ｐ２で示すキュー監視時間では、キュー入力から検索時間間隔が経過しているので（ＴＬ＜ｔＣ３）、黒丸で示すように仮想端末の検索及び取得が行われる。
【００６０】
一方、キュー２入力後の最初のキュー監視時間Ｐ１では、キュー入力から検索時間間隔が経過していないが（ｔＣ１＜ＴＬ）、Ｐ２で示すキュー監視時間では、キュー入力から検索時間間隔が経過しているので（ＴＬ＜ｔＣ４）、黒丸で示すように仮想端末の検索及び取得が行われる。
従って、図１６Ｂでは、Ｐ２で示すキュー監視時間において、キュー１入力及びキュー２入力の２つの要求に対するそれぞれの仮想端末の検索と取得がほとんど同時に行われる。
【００６１】
図１６Ｃは、サービスレベルが低速（又は中速）の場合であって、但し、検索時間間隔＜監視時間間隔（ＴＬ＜ｔＬ）としたときのタイミングチャートである。
キュー１入力後の最初のキュー監視時間Ｐ１では、キュー入力から検索時間間隔が経過しているので（ＴＬ＜ｔＣ２）、黒丸で示すようにキュー１入力の要求に対する仮想端末の検索及び取得が行われる。
【００６２】
一方、キュー２入力後の最初のキュー監視時間Ｐ１では、キュー入力から検索時間間隔が経過していないが（ｔＣ１＜ＴＬ）、Ｐ２で示すキュー監視時間では、キュー入力から検索時間間隔が経過しているので（ＴＬ＜ｔＣ３）、黒丸で示すようにキュー２入力の要求に対する仮想端末の検索及び取得が行われる。
従って、図１６Ｃでは、Ｐ１とＰ２で示すそれぞれ異なるキュー監視時間において、キュー１入力及びキュー２入力の２つの要求のそれぞれに対する仮想端末の検索と取得が行われる。
【００６３】
図１６Ａの高速端末キューの場合は、図１６Ｂ及びＣの低速（又は中速）端末キューの場合に比べて、キューの監視時間が短く、かつ、要求がキューに入力されてから仮想端末の検索及び取得までの時間が短く、高速なサービスを行っていることが分かる。
【００６４】
図１６Ｂと図１６Ｃとではキューの監視時間隔が同じであっても、要求がキューに入力されてから仮想端末の検索及び取得に至る時間が異なるため、図１６Ｂの場合は２つのキュー入力に対する仮想端末の検索及び取得のタイミングが重なるのに対し、図１６Ｃの場合は２つのキュー入力に対する仮想端末の検索及び取得のタイミングが時間的に分散される。従って、図１６Ｂのように仮想端末の検索及び取得のタイミングが重なったために上位システム５の処理負荷が増した場合は、図１６Ｃのように仮想端末の検索及び取得のタイミングを分散させることにより、上位システム５の処理負荷を低減することができる。
【００６５】
また、図１６Ａ、Ｂ及びＣに示すように、仮想端末の検索及び取得のタイミングが、キューの中に要求が存在するか否かに関わらず実行されるキューの監視のタイミングと重なると、その時点における受付システム１の処理負荷が一時的に増えるので、サービスレベルに応じてキューの監視のタイミングをずらすことは重要になる。
【００６６】
以上に述べたように、本実施例では、サービスレベルに応じてキューの監視時間間隔を変えることによって、要求のキューへの入力の流量を制御し、検索時間間隔を変えることによって、上位システム５への要求の出力の流量を制御していることになる。
【００６７】
（キュー監視のタイミングの調節）
ここで、各サービスレベル間で互いの処理が集中して受付システム１の処理負荷が増えてサービスレベルが低下しないようにするための、キュー監視のタイミング調節について説明する。
【００６８】
（１）サービスレベル間でのキュー監視処理の集中防止するために、各サービスレベルで、キューの監視時間が重ならないように、キュー検知の監視時間間隔の値が互いに素（１以外の約数を持たない、即ち、時間間隔の値が互いに整数倍にならない）になるように設定する。即ち、各サービスレベルのキュー検知の監視時間間隔の値をｔｋ（但し、ｋ＝Ｈ、Ｍ、Ｌ）とすると、（(ｔＭ/ｔＨ)、(ｔＬ/ｔＨ)）＝１。（ここで、（Ａ、Ｂ）＝１はＡとＢの最大公約数が１、即ち、互いに素であることを示す。）例えば、高速、中速及び低速の時間間隔の値を１、３、５の比率（互いに素）にすると、３つのサービスレベルのキュー検知の処理が集中する割合は、１／１５となるが（１５は３と５の最小公倍数）、１、２、４の比率（（２、４）＝２）にすると、３つのサービスレベルの処理が集中する割合は、１／４となり、前者に比べて処理が集中する割合が高くなる。
【００６９】
上記のように、時間間隔の値を互いに素になるように設定することで、互いの処理が同じ時間にかち合うことを極力抑えることができ、処理の集中による処理負荷の一時的な増加を防ぐことができる。
【００７０】
（２）上記（１）の場合、上記の具体例で述べたように、キュー検知の監視時間間隔の値を互いに素になるように設定しても時間間隔の最大公約数となる時間間隔で、少なくとも２つのサービスレベルのキュー検知の処理が集中する。そこで、上記（１）の時間間隔の値の関係に加え、キュー検知の監視における最初の開始時間を、サービスレベル毎にずらす（例えば、監視時間間隔の値の１／２）ことにより、上記（１）で述べたようなキューの監視時間の重なりをほとんど抑止できる。監視時間のずれを監視時間間隔の値の１／２としたときの、双方の監視時間が一致する場合の条件を以下に示す。
【００７１】
監視時間間隔がｔｋの場合の高速端末キューの監視時間をｔｋ(ｎ)＝(１／２)ｔｋ＋ｎｔｋ（ｎ＝０，１，２・・・）、及び監視時間間隔がｔｋ’の場合の低速端末キューの監視時間をｔｋ’(ｍ)＝(１／２)ｔｋ’＋ｍｔｋ’（ｍ＝０，１，２・・・）とし、ｔｋ’＝αｔｋ（監視時間間隔の比：α＞１）とすると、双方の監視時間の差は、（ｔｋ’(ｍ)−ｔｋ(ｎ)）/ｔｋ＝(１／２)(α−１)＋(αｍ−ｎ)となる。この式の値が０になる時、即ち、条件式ｎ＝αｍ＋(１／２)(α−１)が成り立つ時に双方の監視時間が同じになる。
【００７２】
ｔｋ’とｔｋは互いに素であるため、α＝ｑ/ｐ (ｑ/ｐは既約分数で、(ｐ,ｑ)＝１、ｑ＞ｐ≧２)と置くと、条件式は、ｎ＝(ｑ/ｐ)ｍ＋(１／２)((ｑ/ｐ)−１)  となる。一方、 (ｐ,ｑ)＝１の条件から、ｑ−ｐ＝ｓｐ＋ｒ (ｐ＞ｒ＞０)と置ける（ｐ≠２のとき、ｓ、ｒは共に偶数又は奇数）。
【００７３】
ほとんどの場合（特に、ｐ＝２の場合）、条件式の右辺は１／２よりも小さい分数と整数との和になるため、条件式を満たす整数ｎとｍは存在せず、キュー監視時間の開始時間のずれをそれぞれの監視時間間隔の１／２とすれば、双方の監視時間がかち合うことはほとんど無い。
【００７４】
しかし、ｐ≠２であって、ｍが２ｍ＋１＝ｋｐを満たし、その時のｋと、ｐとｑによって決まるｓとｒが、ｓ＋ｋｒ＝偶数の場合は、条件式を満たす整数ｎとｍが存在し、双方の監視時間がかち合う場合が生じる。
【００７５】
ここで、時間超過チェックを行うことで、取り決めたスループット確保および上位システム５へのアクセス集中を回避する具体例を述べる。
【００７６】
例えば、低速サービスレベルの要求数件（低速の仮想端末数程度が到着と仮定する）が、高速サービスレベルの要求よりマイクロ秒、あるいはミリ秒の差で先に受付システム１に到着した場合、低速サービスレベルの要求が仮想端末キュー上に高速サービスレベルより先にキューイングされる。
【００７７】
数件の低速サービスレベルの要求があった直後に、高速サービスレベルの要求が一斉に到着していた場合、仮想端末キューにキューイングされている時間を一定に保たなければ低速サービスレベルの要求が全て仮想端末を取得してしまう可能性があり、その後に高速サービスレベルの要求による仮想端末キュー取り出し、仮想端末取得が行われる。
【００７８】
しかし、各サービスレベルの仮想端末キュー監視プロセスで時間超過チェックを行うことによって、各サービスレベル毎に取り決めたキューイングテーブルに定義した間隔時間の隙間を各プロセスに与え、高速サービスレベルの要求が低速サービスレベルを追い越して隙間に入る余地を与える。これによって、図１６Ｃに示す低速のサービスの間に図１６Ａに示す高速のサービスのそれぞれが分散して実行されるため、単位時間あたりのスループットを満たすことが可能となる。
【００７９】
上記で述べたように、高速が低速サービスレベルを追い越すのと同じように、中速が低速サービスレベルを追い越すこともある。
【００８０】
実施例２では、仮想端末キューイングテーブルを用いて、仮想端末キューイングの検知からキュー取り出しまでの時間を一定に保ち、各サービスレベルの監視プロセスを並行に動作することを利用して、間隔時間と監視時間を定義することによって、相手の上位システム５へのアクセス集中を回避し、一定のスループット確保を実現する。
【００８１】
なお、高速サービスレベルでは、間隔時間や監視時間のいずれかを０秒と設定することや、仮想端末の個数を中速、低速と差をつけることによって、より高速な業務が処理され、上位システム５に対する一定のスループットを確保しながら、アクセス集中を回避することが可能となる。
【００８２】
なお、この実施例では受付システム１から他業務を行う上位システム５が複数存在する場合にも適用可能である。
【００８３】
複数の上位システム５向けに実施例を組み合わせることによって、ＣＰＵパワーの少ない受付システムへのアクセス集中を回避することや、一定のスループットを確保可能となる。
【００８４】
システム全体としてのスループットやクライアント端末のスループットを確保できるようにするには、システム性能試験を実施する必要がある。
【符号の説明】
【００８５】
１：受付システム、２：クライアント端末、３、４：ネットワーク、５：上位システム、６：ＣＰＵ、１０：メモリ、１００：端末受信制御、２００：仮想端末キュー振分け制御、２５０：キューイング管理テーブル、Ｔ１００：端末定義テーブル、Ｔ２００：仮想端末キュー領域、３００：仮想端末制御、３１０：仮想端末キュー監視、Ｔ３００：仮想端末ステータス、４００：回答受信制御、４１０：回答受信、４２０：端末回答
【図１】
2014089632.tif 000003
【図２】
2014089632.tif 000004
【図３】
2014089632.tif 000005
【図４】
2014089632.tif 000006
【図５】
2014089632.tif 000007
【図６】
2014089632.tif 000008
【図７】
2014089632.tif 000009
【図８】
2014089632.tif 000010
【図９】
2014089632.tif 000011
【図１０】
2014089632.tif 000012
【図１１】
2014089632.tif 000013
【図１２】
2014089632.tif 000014
【図１３】
2014089632.tif 000015
【図１４】
2014089632.tif 000016
【図１５】
2014089632.tif 000017
【図１６Ａ】
2014089632.tif 000018
【図１６Ｂ】
2014089632.tif 000019
【図１６Ｃ】
2014089632.tif 000020