以下、本発明に係る実施例について添付の図面を参照しつつ詳細に説明する。
<第1の実施例>
図1には、本実施例のコールセンタ装置100の構成が、IP網210、公衆網220、通話端末300及び管理端末400と共に示されている。
コールセンタ装置100は、コールセンタ業務に関する各種処理を行なう。
IP網ゲートウェイサーバ111は、IP網210を介して到来した着信呼等の呼制御手順データ及び通話データをネットワーク120を介して中継する。公衆網ゲートウェイサーバ112は、公衆網220を介して到来した着信呼等の呼制御手順データ及び通話データをネットワーク120を介して中継する。ネットワーク120は、例えばLAN(Local Area Network)である。
コールサーバ130は、着信呼に対する自動応答や着信呼の転送等の処理を行なう。
通信部131は、通話端末300及びオペレータ端末151−1〜151−Nとの間で通信を行なう。例えば、通話端末300からの呼接続要求信号の受信や、通話端末300への自動応答データの送信等の通信を行なう。また、通信部131は、後述の呼振分け部132によって着信呼の振分け先とされたオペレータ端末と通話端末300との間に通話路を設定し、当該通話路を介して音声データを中継する。
通信部131は、後述の負荷制御部(以下、モード設定部とも称する)135によって設定され通知される通話モードの種類に応じて通信レートを設定する。通話モードの種類は、通常モードと負荷軽減モードからなる。通常モード通知を受けた場合には、通信部131は、通常レートによる音声データ中継を行なう。負荷軽減モード通知を受けた場合には、通信部131は、通常レートよりも通信レートが低い低通信レートによる音声データ中継を行なう。
呼振分け部132は、ネットワーク120を介して到来した着信呼に含まれる宛先情報に応じて当該着信呼の振分け処理を行なう。呼振分け部132は、テナント150−1〜150−Nのうちから宛先情報によって指定される1つのテナントに属するオペレータ端末151−1〜151−Nのうちの空き端末の1つを着信呼の振分け先とする。宛先情報は、例えば宛先電話番号である。呼振分け部132は、負荷制御部135による振分け許可通知を待って着信呼の振分けを行なう。
自動応答部133は、着信呼に対して音声による自動応答を行なう。自動応答部133は、例えば、呼接続できない旨の通知(以下、呼接続不可通知と称する)を負荷制御部135から受けたときに「ただ今込みあっておりますのでしばらくしてから掛け直してください」等の音声応答を行なう。
データ処理部134は、ネットワーク120を介して到来したデータ処理要求に応じてデータ処理を行なう。データ処理は、管理端末400から発せられる。データ処理は、例えば、一定期間内における各テナント又はコールサーバ全体についての着信呼数の計数処理や、データ処理要求受信時点における各テナント又はコールサーバ全体についての現在負荷量の算出処理などの統計処理である。
データ処理部134は、負荷制御部135によって設定され通知されるデータ処理モードによりデータ処理を行なう。データ処理モードの種類は、通常モードと負荷軽減モードからなる。通常モード通知を受けた場合には、データ処理部134は、データ処理要求毎にデータ処理を行なう。負荷軽減モード通知を受けた場合には、データ処理部134は、例えばデータ処理要求が示すデータ処理を少なくとも一定時間行なわない、すなわちデータ処理を間引く。また、負荷軽減モード通知を受けた場合には、データ処理部134は、例えば通常の処理速度よりも低い速度でデータ処理するなど低負荷のデータ処理を行なうこともできる。
負荷制御部135は、着信呼があった場合に当該着信呼に対応するテナント(以下、着信テナントと称する)についての現在の処理負荷量を実測して得られた実測負荷量(ポイント)の、テナント負荷上限量に対する割合(パーセンテージ(%))を当該着信テナントのテナント負荷値として算出し、当該着信テナントのテナント負荷値が、テナント毎の所定の閾値(以下、負荷閾値と称する)を超えているか否かを判定する。負荷制御部135は、着信呼の宛先情報(例えば宛先電話番号等のテナントID)に対応する1つのテナントを着信テナントとする。テナント負荷値としては、例えばCPUに関するもの、メモリに関するもの、及びディスクに関するものがある。コールサーバ130に含まれる通信部131、呼振分け部132、自動応答部133、及び負荷制御部135によって実行される各処理その他のコールサーバ130に関する各種処理は、コールサーバ130内のCPU(図示せず)がハードディスクやRAM等のメモリ(図示せず)に記憶されている各種の処理プログラムを読出して実行することによって行なわれる。負荷制御部135は、当該実行時のCPUの処理負荷、ハードディスク及びメモリへのアクセス負荷を監視して、着信テナントのテナント負荷値を求める。負荷制御部135は、これらのいずれについてのテナント負荷値も負荷閾値を超えていない場合にアンダー判定とし、これらのうちの少なくとも1つについてのテナント負荷値が負荷閾値を超えている場合にオーバー判定とする。負荷閾値は、テナント毎に異なる閾値とすることもできる。
同様に、負荷制御部135は、当該データ処理要求に対応するテナント(以下、対象テナントと称する)についての現在の処理負荷量を実測して得られた実測負荷量(ポイント)の、テナント負荷上限量に対する割合(パーセンテージ(%))を当該対象テナントのテナント負荷値として算出し、当該対象テナントのテナント負荷値が、負荷閾値を超えているか否かを判定する。
また、負荷制御部135は、コールサーバ130全体についての現在の処理負荷量を実測して得られた実測負荷量(ポイント)の、コールサーバ130全体の負荷上限量(ポイント)に対する割合(パーセンテージ(%))を当該コールサーバ全体の負荷値として算出し、当該コールサーバ全体の負荷値が、所定の全負荷上限値に達しているか否かについても判定できる。コールサーバ全体の負荷値が全負荷上限値に達していない場合にはアンダー判定とし、全負荷上限値に達している場合にはオーバー判定とする。また、負荷制御部135は、テナント負荷値及び/又はコールサーバ全体の負荷値についてオーバー判定をした場合には、音声信号の通信レートを低減することによって呼接続が可能であるか否かを更に判定する。負荷制御部135は、着信テナントについての現在の処理負荷量から想定負荷減少量を減算して得られた値が負荷閾値よりも小さい場合には呼接続可能であると判定する。想定負荷減少量は、低通信レートにより音声信号を中継したときの負荷減少量の想定値である。
負荷制御部135は、これらの判定結果に応じて、通話モードを通信部131に通知する。また、負荷制御部135は、これらの判定結果に応じて、振分け許可通知を呼振分け部132に対して行なう。また、負荷制御部135は、これらの判定結果に応じて、呼接続不可通知を自動応答部133に対して通知する。また、負荷制御部135は、これらの判定結果に応じて、データ処理の間引きを用いた負荷軽減モードによるデータ処理指令、低速のデータ処理を用いた負荷軽減モードによるデータ処理指令、通常モードによるデータ処理指令をデータ処理部134に通知する。これらの処理の詳細については後述する(図5)。
データベース140は、呼制御処理のためのデータテーブルを保持する。データテーブルの詳細については後述する(図2、図3及び図4)。
テナント150−1〜150−N(Nは2以上の整数)の各々には、オペレータ端末151−1〜151−M(Mは2以上の整数)が属している。なお、テナント150−2〜150−Nについてはオペレータ端末の図示を省略している。テナントは、コールサーバ130を利用する物理的又は仮想的な単位である。各テナントが例えば1つの企業や1つの部署に対応している。
オペレータ端末151−1〜151−Mの各々は、オペレータによる顧客対応のために用いられる電話端末である。通信部152は、コールサーバ130及び通話端末300との間で通信を行なう。表示部153は、ネットワーク120を介して到来した表示データに基づく画面表示を行う。
IP網210は、例えばインターネットである。公衆網220は、音声信号通信のための公衆電話網である。
通話端末300は、顧客がコールセンタに発呼する際に用いられる例えば固定電話機や携帯型電話機などの電話機能を有する端末である。通信部310は、IP網210又は公衆網220を介して呼接続確立のための各種信号や音声信号を通信する。
管理端末400は、コールセンタ装置100の管理者がネットワーク120を介してコールセンタ装置100との間で通信するために用いられる例えばパーソナルコンピュータ等の通信機能を有する端末である。
通信部410は、ネットワーク120を介してコールセンタ装置100との間で通信を行なう。例えば、管理者によって入力部420に統計情報要求が入力された場合、通信部410は、統計情報要求信号をコールセンタ装置100に送信する。また、通信部410は、当該要求に応じたコールセンタ装置100からの統計データを受信する。
入力部420は、管理者からの例えば統計情報要求等の各種入力を受け付ける。入力部420は、例えばキーボードである。
表示部430は、画面表示を行うディスプレイである。表示部430は、通信部410によって受信されたデータに基づく画面表示を行うことができる。画面表示は、例えば、統計データによって示される統計値を数値やグラフによって表したものある。
図2には、データベース140に含まれる閾値テーブル141の一例が示されている。閾値テーブル141は、負荷制御部135による通話モード設定及び呼接続可否判断の際に用いられる。閾値テーブル141は、CPU動作に関する閾値テーブル141aと、メモリ動作に関する閾値テーブル141bと、ディスク動作に関する閾値テーブル141cと、からなる。
「テナントID」は、テナント150−1〜150−Nの各々に対応する固有の識別子である。テナントIDは、例えば電話番号とし得る。「小閾値」及び「大閾値」は、負荷制御部135による負荷軽減判定に用いられる負荷閾値である。大閾値の方が小閾値よりも大きい値に設定されている。閾値テーブル141aにおける「小閾値」及び「大閾値」は、CPUの最大処理能力に対する、テナント毎の許容処理負荷量を示している。閾値テーブル141bにおける「小閾値」及び「大閾値」は、メモリアクセスの最大処理能力に対する、テナント毎の許容処理負荷量を示している。閾値テーブル141cにおける「小閾値」及び「大閾値」は、ディスクアクセスの最大処理能力に対する、テナント毎の許容処理負荷量を示している。例えば、閾値テーブル141aにおけるテナントID「0001」に対応する小閾値「60%」は、CPU最大処理能力を100%としたときの、当該テナントについての許容処理負荷量の割合を示している。
「呼接続不可判定時の処理」は、負荷制御部135によって呼接続不可判定がなされた場合に実行される処理である。当該処理としては、例えば、呼振分け部132が着信呼を他のコールセンタシステム(図示せず)に転送する処理や、自動応答部133が発呼元の通話端末300に対して呼接続できない旨を通知する処理が挙げられる。
図3には、データベース140に含まれる優先度テーブル142の一例が示されている。優先度テーブル142は、負荷制御部135によってデータ処理について負荷軽減モードが設定された場合に、負荷軽減対象とすべきデータ処理の種類を決定する際に用いられる。
「データ処理ID」は、データ処理の種類毎に割り当てられた固有の識別子である。データ処理は、例えば、呼接続処理、統計処理、自動音声応答処理である。
「単位負荷量」は、あるデータ処理を実行するときに生じる負荷量すなわちデータ処理単位での負荷量である。単位負荷量は、CPU、メモリ、及びディスクについてそれぞれ同様に設定される。例えば、D0002についての負荷量は300ポイントに設定されているので、D0002の方がD0001よりも負荷量が小さい。この場合、D0001を負荷軽減モードで実行する方が、D0002を軽減処理モードで実行するよりも負荷軽減効果が大きい。単位負荷量については初期値が与えられており、呼制御ルーチン(図5)の実行毎に負荷制御部135によって更新される。
「間引き可能時間」は、管理端末400からのデータ処理要求に対して軽減処理モードでデータ処理できるか否かを判定するために用いられる指標の1つである。例えば、管理端末400から1つのデータ処理要求があった時点から「間引き可能時間」が経過する前に当該要求と同一種類のデータ処理についてのデータ処理要求があった場合には、負荷制御部135は当該データ処理要求についてデータ処理を実行しない、すなわちデータ処理を間引くための要件の1つを満たすと判定する。例えば、あるデータ処理要求に対応するデータ処理IDがD0001である場合には、前回の間引き時点から2秒経過するまでは、同一種類のデータ処理についてのデータ処理要求があってもデータ処理を実行しない。
「優先度」は、軽減処理モードでデータ処理できるか否かを判定するために用いられるもう1つの指標である。例えば、障害対応のためのデータ収集など間引くことが適当でないデータ処理については優先度が高く設定され、テナント毎の呼接続要求数を算出する統計処理など間引くことによる影響が小さいデータ処理ついては優先度が低く設定される。負荷制御部135は、あるデータ処理についての優先度が所定値よりも小さい場合に当該データ処理を間引きくための要件の1つを満たすと判定する。負荷制御部135は、例えば、データ処理要求に係るデータ処理についての優先度が「50」よりも小さく、且つ上記の「間引き可能時間」の要件を満たす場合に当該データ処理を間引くと判定する。
図4には、データベース140に含まれる統計テーブル143の一例が示されている。統計テーブル143は、優先度テーブル142の「単位負荷量」の更新に用いられる。
「テナントID」は、テナント150−1〜150−Nの各々に対応する固有の識別子である。「処理開始時刻」は、データ処理の実行開始時刻である。「処理ID」は、データ処理の種類毎に割り当てられた固有の識別子である。データ処理は、例えば、呼接続処理、統計処理、自動音声応答処理である。「実測負荷量」は、あるデータ処理を実行したときに生じた負荷量の実測値である。実測負荷量は、CPU、メモリ、及びディスクの各々について記憶される。例えば、テナントID「T0001」についてのD0001を2011年7月11日15時00分00秒において開始したときに当該処理によってCPUに生じた負荷量の実測値が265ポイントとして記録されている。統計テーブル143は、呼制御ルーチン(図5)の実行毎に更新される。
以下、図5を参照しつつ、負荷制御部135による呼制御処理について説明する。
先ず、通信部131は、通話端末300から発せられた呼を受け付ける(ステップS101)。
次に、負荷制御部135は、当該着信呼に対応するテナント(着信テナント)の負荷量を実測して得られたテナント負荷値が大閾値(図2)を超えているか否かを判定する(ステップS102)。この際、負荷制御部135は、着信呼の宛先情報(例えば宛先電話番号等のテナントID)に対応するテナントを着信テナントと判定する。
着信テナントのテナント負荷値が大閾値を超えていると判定した場合には、負荷制御部135は、音声通話レートを低減することによって呼接続可能か否かを判定する(ステップS103)。
呼接続可能であると判定した場合には、負荷制御部135は、呼振分け部132に対して振分け許可通知を行なうと共に、通信部131に対して負荷軽減モード通知を行なう(ステップS104)。呼振分け部132は、着信テナントに属するオペレータ端末151−1〜151−Nのうちの空き端末の1つを着信呼の振分け先オペレータとする。通信部131は、振分け先オペレータ端末と通話端末300との間に通話路を設定し、当該通話路を介して、通常レートよりも低い通信レートにより音声データを中継する。
負荷制御部135は、通話端末300、管理端末400、振分け先オペレータ端末のうちの少なくとも1つに対して、負荷軽減モードによる呼接続を行なっていることを通知する(ステップS105)。
ステップS103において、音声通話レートを低減することによっても呼接続できないと判定した場合には、負荷制御部135は、呼振分け部132に対して振分け許可通知を行なわずに、自動応答部133に対して呼接続不可通知を行なう(ステップS106)。自動応答部133は、当該指令に応じて呼接続不可時処理を行う。当該処理は、図2に示されるように例えば他のコールセンタシステム(図示せず)への着信呼の転送や、通話端末300への呼接続できない旨の自動音声応答などである。
ステップS102において、着信テナントのテナント負荷値が大閾値を超えていないと判定した場合には、負荷制御部135は、着信テナントのテナント負荷値が小閾値(図2)を超えているか否かを判定する(ステップS107)。
着信テナントのテナント負荷値が小閾値を超えていると判定した場合には、負荷制御部135は、コールサーバ130全体の負荷値が全負荷上限値に達しているか否かを判定する(ステップS108)。
コールサーバ130全体の負荷値が全負荷上限値に達していると判定した場合には、負荷制御部135は、ステップS103に進んで同様の処理を行なう。
コールサーバ130全体の負荷値が全負荷上限値に達していないと判定した場合には、負荷制御部135は、呼振分け部132に対して振分け許可通知を行なうと共に、通信部131に対して通常モード通知を行なう(ステップS109)。呼振分け部132は、着信テナントに属するオペレータ端末151−1〜151−Nのうちの空き端末の1つを着信呼の振分け先オペレータとする。通信部131は、振分け先オペレータ端末と通話端末300との間に通話路を設定し、当該通話路を介して、通常レートにより音声データを中継する。
ステップS107において、着信テナントのテナント負荷値が小閾値を超えていないと判定した場合には、負荷制御部135は、ステップS109に進んで同様の処理を行なう。
ステップS105、ステップS106又はステップS109の後に、負荷制御部135は、統計テーブル143を更新する(ステップS110)。例えば、着信テナントのテナントIDがT0001であり、通信部131による音声データの中継処理が2011年07月11日15時00分00秒に開始され、当該中継処理のデータIDが「D0001」である場合、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量265、15、32ポイントが統計テーブル143に記憶される(図4)。
次に、負荷制御部135は、統計テーブル143に基づいて優先度テーブル142(図3)を更新する。負荷制御部135は、統計テーブル143に記録されている実測負荷量のうち、例えば現在時刻から1時間前までの期間内に含まれる実測負荷量の平均値をデータ処理ID毎に算出して得られた負荷量を優先度テーブル142に単位負荷量として記録する(ステップS110)。
なお、ステップS104に関する負荷軽減モードによる呼接続処理、ステップS106に関する呼接続不可処理、又はステップS109に関する呼接続処理が終了すると、ステップS110と同様に、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量が統計テーブル143(図4)に記憶され、負荷制御部135は、統計テーブル143に基づいて優先度テーブル142(図3)を更新する(図示せず)。
以下、図6を参照しつつ、負荷制御部135によるデータ応答処理について説明する。
先ず、通信部131は、管理端末300から発せられたデータ処理要求を受け付ける(ステップS201)。
次に、負荷制御部135は、当該データ処理要求に対応するテナント(対象テナント)の負荷量を実測して得られたテナント負荷値が大閾値(図2)を超えているか否かを判定する(ステップS202)。この際、負荷制御部135は、データ処理要求に含まれるテナントIDに対応するテナントを対象テナントと判定する。
対象テナントのテナント負荷値が大閾値を超えていると判定した場合には、負荷制御部135は、当該データ処理要求が示すデータ処理を実行しなくても良いか、すなわちデータ処理を間引くか否かを判定する(ステップS203)。例えば、当該データ処理に対応するテナントIDについての優先度が「50」以下であり、且つ同一のデータ処理についての前回の間引き時点から2秒以上経過している場合に(図3)、負荷制御部135は、当該データ処理を間引くと判定する。
データ処理を間引くと判定した場合には、負荷制御部135は、データ処理部134に対して間引きを用いた負荷軽減モードの実行指令を発する(ステップS204)。データ処理部134は、当該指令に応じて、データ処理を間引いて実行する。
負荷制御部135は、通話端末300、管理端末400、振分け先オペレータ端末のうちの少なくとも1つに対して、データ処理の間引きを用いた負荷軽減モードによるデータ処理を行なっていることを通知する(ステップS205)。
ステップS203において、データ処理を間引くことができないと判定した場合には、負荷制御部135は、データ処理部134に対して低速のデータ処理を用いた負荷軽減モード通知を行なう(ステップS206)。データ処理部134は、当該通知に応じて通常モード時の処理速度よりも低速でデータ処理するなど負荷軽減モードによるデータ処理を行なう。
負荷制御部135は、通話端末300、管理端末400、振分け先オペレータ端末のうちの少なくとも1つに対して、低速のデータ処理を用いた負荷軽減モードによるデータ処理を行なっていることを通知する(ステップS207)。
ステップS202において、対象テナントのテナント負荷値が大閾値を超えていないと判定した場合には、負荷制御部135は、対象テナントのテナント負荷値が小閾値(図2)を超えているか否かを判定する(ステップS208)。
対象テナントのテナント負荷値が小閾値を超えていると判定した場合には、負荷制御部135は、コールサーバ130全体の負荷値が全負荷上限値に達しているか否かを判定する(ステップS209)。
コールサーバ130全体の負荷値が全負荷上限値に達していると判定した場合には、負荷制御部135は、ステップS203に進んで同様の処理を行なう。
コールサーバ130全体の負荷値が全負荷上限値に達していないと判定した場合には、負荷制御部135は、データ処理部134に対して通常モード通知を行なう(ステップS209)。データ処理部134は、当該通知に応じて通常のデータ処理を行なう。
ステップS208において、対象テナントのテナント負荷値が小閾値を超えていないと判定した場合には、負荷制御部135は、ステップS210に進んで同様の処理を行なう。
ステップS205、ステップS207又はステップS210の後に、負荷制御部135は、統計テーブル143を更新する(ステップS210)。例えば、着信テナントのテナントIDがT0001であり、データ処理部134によるデータ処理の間引きを用いた負荷軽減モードでの統計処理等のデータ処理が2011年07月11日15時20分00秒に開始され、当該データ処理のデータIDが「D0002」である場合、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量297、18、56ポイントが統計テーブル143に記憶される(図4)。
次に、負荷制御部135は、統計テーブル143に基づいて優先度テーブル142(図3)を更新する。負荷制御部135は、統計テーブル143に記録されている実測負荷量のうち、例えば現在時刻から1時間前までの期間内に含まれる実測負荷量の平均値をデータ処理ID毎に算出して得られた負荷量を優先度テーブル142に単位負荷量として記録する(ステップS211)。
なお、ステップS204に関するデータ処理の間引きを用いた負荷軽減モードによるデータ処理、ステップS206に関する低速のデータ処理を用いた負荷軽減モードによるデータ処理、又はステップS210に関する通常モードによるデータ処理が終了すると、ステップS211と同様に、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量が統計テーブル143(図4)に記憶され、負荷制御部135は、統計テーブル143に基づいて優先度テーブル142(図3)を更新する(図示せず)。
このように、本実施例のコールセンタ装置においては、着信呼があった場合に当該着信呼に対応するテナント(着信テナント)についてのCPU等の処理負荷量を算出して得られたテナント負荷値が所定の負荷閾値を超えているか否か判定する。第1に、着信テナントのテナント負荷値が大閾値を超えている場合には当該着信呼についての音声信号を低通信レートで中継したり、音声信号の中継自体を行なわないことにより、コールサーバ全体の処理負荷値が全負荷上限値を超えないようにする。かかる動作により、着信テナントについての処理に起因する負荷量の増加が他のテナントに影響しないようにすることができる。
第2に、着信テナントのテナント負荷値が小閾値を超えているものの、コールサーバ130全体の負荷値が全負荷上限値に達していないときには、通常モードでの音声中継を行なう。かかる動作により、着信テナントのテナント負荷値に基づいて負荷軽減可否の判定をしつつも、コールサーバ130の処理能力に余裕があるときには、通常モードによりすなわち負荷軽減モードに比較して高品質の音声中継処理を行なうことができる。
また、本実施例のコールセンタ装置においては、管理端末300からデータ処理要求があった場合にも当該要求に対応するテナント(対象テナント)についてのCPU等の処理負荷量を算出して得られたテナント負荷値が所定の負荷閾値を超えているか否か判定する。第1に、対象テナントのテナント負荷値が大閾値を超えている場合には当該データ処理を間引いたり、低速度で行なうことにより、コールサーバ全体の処理負荷値が全負荷上限値を超えないようにする。かかる動作により、対象テナントについての処理に起因する負荷量の増加が他のテナントに影響しないようにすることができる。
第2に、対象テナントのテナント負荷値が小閾値を超えているものの、コールサーバ130全体の負荷値が全負荷上限値に達していないときには、通常モードでのデータ処理を行なう。かかる動作により、対象テナントのテナント負荷値に基づいて負荷軽減可否の判定をしつつも、コールサーバ130の処理能力に余裕があるときには、通常モードによりすなわち負荷軽減モードに比較して高速のデータ処理を行なうことができる。
また、負荷軽減モードにより音声信号中継やデータ処理を行なっていることを管理端末400やオペレータ端末に通知するので、管理者やオペレータが各テナントの混雑状況を把握することができる。
上記の実施例は、図3の単位負荷量を更新する場合の例であるが、単位負荷量は固定量とすることもできる。かかる動作によれば、負荷制御部135の処理量を軽減できる。
また、上記の実施例は、CPU、メモリ及びディスクの少なくとも1つについての実測負荷量に基づく負荷値が負荷閾値を超えたときに負荷制御部135がオーバー判定とする場合の例であるが、CPU、メモリ及びディスクの各々の実測負荷量に基づく負荷値がそれぞれの負荷閾値を超えているときにはじめてオーバー判定とすることもできる。かかる動作によれば、着信テナントについての現在負荷量に基づく負荷値についてより詳細な比較判定を行なうことができる。
また、上記の実施例は、CPU、メモリ、及びディスクについて単体で実測負荷量に基づく負荷値と負荷閾値とを比較判定する場合の例であるが、これに限られない。例えば、CPU、メモリ、及びディスクの各々の負荷量に基づく合計値と1つの負荷閾値とを比較してアンダー判定及びオーバー判定を行なうこともできる。かかる動作によれば、負荷処理の増加要因が何であるかにかかわらず、着信テナントについてのトータルの処理負荷量に基づいて比較判定を行なうことができる。また、各負荷量に対して重み付けされた負荷量に基づく合計値を求めることもできる。かかる動作によれば、負荷処理の増加要因を考慮しつつ、着信テナントについてのトータルの処理負荷量に基づいて比較判定を行なうことができる。
また、上記実施例は、現在処理負荷量に基づく負荷値と負荷閾値との比較結果に応じて通信モードを設定し、通信部131がその通信モードに応じて音声信号の通信レートを調整する場合の例であるが、必ずしもモード設定という手続を経る必要は無い。要するに、通信部131は、現在処理負荷量に基づく負荷値が負荷閾値を超えないように音声信号の通信レートを調整するのである。同様に、データ処理部134についても必ずしもモード設定という手続を経る必要は無く、要するに、データ処理部134は、現在処理負荷値が負荷閾値を超えないようにデータ処理量を調整するのである。
<第2の実施例>
図7には、本実施例のコールセンタ装置100の構成が、IP網210、公衆網220、通話端末300及び管理端末400と共に示されている。以下、第1の実施例と異なる部分について主に説明する。
仮想サーバ160は、ソフトウェア上で動作する仮想のサーバである。仮想コールサーバ130−1〜130−Nの各々は、ソフトウェア上で動作する仮想のコールサーバである。コールセンタ内に含まれるCPU(図示せず)が、メモリ(図示せず)に記憶されている仮想化ソフトウェアを読み出して実行することにより、これらのサーバが構成される。
仮想コールサーバ130−1に含まれる通信部131、呼振分け部132、自動応答部133、及びデータ処理部134は、第1の実施例と同様の処理を行う。
負荷制御部135は、仮想コールサーバ130−1内の現在負荷量を後述のリソース管理部136に断続的に送信する。現在負荷量は、例えばCPU、メモリ、及びディスクの各々についての負荷量である。また、負荷制御部135は、着信呼に応じてリソース管理部136にリソース割当要求を行なう。また、負荷制御部135は、リソース管理部136からのリソース割当についての可否通知に応じて、通信部131、呼振分け部132、自動応答部133、及びデータ処理部134に対してモード通知や各種指令等の処理を行なう。これらの処理の詳細については後述する(図11及び図12)。
仮想コールサーバ130−2〜仮想コールサーバ130−Nの各々も、仮想コールサーバ130−1と同様の構成である。仮想コールサーバ130−1〜仮想コールサーバ130−Nの1つが、テナント150−1〜150−Nの1つに対応している。すなわち、仮想コールサーバ130−1がテナント150−1に対応し、仮想コールサーバ130−2がテナント150−2に対応し、・・・、仮想コールサーバ130−Nがテナント150−Nに対応している。仮想コールサーバ130−1〜仮想コールサーバ130−Nの各々には固有の仮想コールサーバIDが対応付けられている。また、仮想コールサーバIDとテナントIDとは1対1で対応付けられている(図8)。仮想コールサーバ130−1〜仮想コールサーバ130−Nの各々は、着信呼の宛先情報(例えば宛先電話番号等のテナントID)と仮想コールサーバIDとの対応から、当該着信呼について自身が処理すべき呼であるか否かを判定する。
リソース管理部136は、仮想コールサーバ130−1〜130−Nの各々から現在負荷量を断続的に受信する。リソース管理部136は、これらの現在負荷量を仮想コールサーバ毎に保持する。また、リソース管理部136は、仮想コールサーバ各々についての最新の現在負荷量を合計して、仮想コールサーバ130−1〜130−Nからなる仮想サーバ160全体の現在負荷量を算出する。リソース管理部136は、仮想コールサーバ130−1〜130−Nのうちの1つからのリソース割当要求に応じて以下の処理を行なう。第1に、リソース管理部136は、当該1つの仮想コールサーバの現在負荷量(ポイント)の、サーバ負荷上限量に対する割合(パーセンテージ(%))を当該1つの仮想コールサーバのサーバ負荷値として算出し、当該サーバ負荷値と負荷閾値とを比較し、その比較結果に応じてリソース割り当てについての可否通知を当該1つの仮想コールサーバに通知する。第2に、リソース管理部136は、仮想サーバ160全体の現在負荷量(ポイント)の、トータル負荷上限量に対する割合(パーセンテージ(%))を仮想サーバ160のトータル負荷値として算出し、当該トータル負荷値と全負荷上限値とを比較し、その比較結果に応じてリソース割り当てについての可否通知を当該1つの仮想コールサーバに通知する。全負荷上限値は、例えば、仮想サーバ160全体の処理能力の最大値や、最大値よりも小さい例えば最大値の7割程度の値とし得る。以下、負荷制御部135とリソース管理部136とからなる構成をモード設定部とも称する。
図8には、データベース140に含まれる閾値テーブル145の一例が示されている。「仮想コールサーバID」は、仮想コールサーバ130−1〜130−Nの各々に対応する固有の識別子である。仮想コールサーバIDの各々はテナントIDの1つに対応付けられている。例えば、仮想コールサーバID「V0001」がテナントID「T0001」に対応付けられている。「テナントID」、「小閾値」、「大閾値」、及び「呼接続不可判定時の処理」は第1の実施例の図2と同様である。
図9には、データベース140に含まれる優先度テーブル146の一例を示す図である。「データ処理ID」、「単位負荷量」、「負荷軽減処理時間」、及び「優先度」は第1の実施例の図3と同様である。
図10には、データベース140に含まれる統計テーブル147の一例を示す図である。「仮想コールサーバID」は、仮想コールサーバ130−1〜130−Nの各々に対応する固有の識別子である。仮想コールサーバIDの各々はテナントIDの1つに対応付けられている。例えば、仮想コールサーバID「V0001」がテナントID「T0001」に対応付けられている。「テナントID」、「処理開始時刻」、「データ処理ID」、及び「実測負荷量」は第1の実施例の図4と同様である。
以下、図11を参照しつつ、リソース管理部136と仮想コールサーバ130−1の負荷制御部135とによる呼制御処理について説明する。
仮想コールサーバ130−1〜130−Nの各々は、現在負荷量をリソース管理部136に断続的に送信している(ステップS300)。現在負荷量は、例えば3秒毎など周期的に送信される。リソース管理部136は、仮想コールサーバ毎に最新の現在負荷量をサーバ負荷量として保持する。なお、仮想コールサーバ130−2〜130−Nについては図示を省略している。
先ず、仮想コールサーバ130−1の負荷制御部135は、自身に対応するテナント150−1を宛先とする着信呼を通信部131が受け付けたときに、リソース管理部136に対してリソース割当て要求を行なう(ステップS301)。
次に、リソース管理部136は、仮想コールサーバ130−1のサーバ負荷値が大閾値(図8)を超えているか否かを判定する(ステップS302)。
仮想コールサーバ130−1のサーバ負荷値が大閾値を超えていると判定した場合には、負荷制御部135は、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当て不可回答を行なう(ステップS302)。
仮想コールサーバ130−1の負荷制御部135は、当該回答に応じて、音声通話レートを低減することによって呼接続可能か否かを判定する(ステップS303)。
呼接続可能であると判定した場合には、負荷制御部135は、呼振分け部132に対して振分け許可通知を行なうと共に、通信部131に対して負荷軽減モード通知を行なう(ステップS304)。呼振分け部132は、テナント150−1に属するオペレータ端末151−1〜151−Nのうちの空き端末の1つを着信呼の振分け先オペレータとする。通信部131は、振分け先オペレータ端末と通話端末300との間に通話路を設定し、当該通話路を介して、通常レートよりも低い通信レートにより音声データを中継する。
負荷制御部135は、通話端末300、管理端末400、振分け先オペレータ端末のうちの少なくとも1つに対して、負荷軽減モードによる呼接続を行なっていることを通知する(ステップS305)。
ステップS303において、音声通話レートを低減することによっても呼接続できないと判定した場合には、負荷制御部135は、呼振分け部132に対して振分け許可通知を行なわずに、自動応答部133に対して呼接続不可通知を行なう(ステップS306)。自動応答部133は、当該指令に応じて呼接続不可時処理を行う。当該処理は、図8に示されるように例えば他のコールセンタシステム(図示せず)への着信呼の転送や、通話端末300への呼接続できない旨の自動音声応答などである。
ステップS302において、仮想コールサーバ130−1のサーバ負荷値が大閾値を超えていないと判定した場合には、リソース管理部136は、仮想コールサーバ130−1のサーバ負荷値が小閾値(図8)を超えているか否かを判定する(ステップS307)。
仮想コールサーバ130−1のサーバ負荷値が小閾値を超えていると判定した場合には、リソース管理部136は、仮想サーバ160全体の負荷値が全負荷上限値に達しているか否かを判定する(ステップS308)。
仮想サーバ160のトータル負荷値が全負荷上限値に達していると判定した場合には、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当て不可回答を行なう(ステップS308)。以下、ステップS303に進んで同様の処理を行なう。
仮想サーバ160のトータル負荷値が全負荷上限値に達していないと判定した場合には、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当て可能回答を行なう(ステップS308)。
負荷制御部135は、当該回答に応じて、呼振分け部132に対して振分け許可通知を行なうと共に、通信部131に対して通常モード通知を行なう(ステップS309)。呼振分け部132は、テナント150−1に属するオペレータ端末151−1〜151−Nのうちの空き端末の1つを着信呼の振分け先オペレータとする。通信部131は、振分け先オペレータ端末と通話端末300との間に通話路を設定し、当該通話路を介して、通常レートにより音声データを中継する。
ステップS307において、仮想コールサーバ130−1のサーバ負荷値が小閾値を超えていないと判定した場合には、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当可能回答を行なう。以下、ステップS309に進んで同様の処理を行なう。
ステップS305、ステップS306又はステップS309の後に、負荷制御部135は、統計テーブル147を更新する(ステップS310)。例えば、テナント150−1のテナントIDがT0001であり、通信部131による音声データの中継処理が2011年07月11日15時00分00秒に開始され、当該中継処理のデータIDが「D0001」である場合、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量500、40、80ポイントが統計テーブル147に記憶される(図10)。
次に、負荷制御部135は、統計テーブル147に基づいて優先度テーブル146(図9)を更新する。負荷制御部135は、統計テーブル147に記録されている実測負荷量のうち、例えば現在時刻から1時間前までの期間内に含まれる実測負荷量の平均値をデータ処理ID毎に算出して得られた負荷量を優先度テーブル146に単位負荷量として記録する(ステップS310)。
なお、ステップS304に関する負荷軽減モードによる呼接続処理、ステップS306に関する呼接続不可処理、又はステップS309に関する呼接続処理が終了すると、ステップS310と同様に、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量が統計テーブル147(図10)に記憶され、負荷制御部135は、統計テーブル143に基づいて優先度テーブル146(図9)を更新する(図示せず)。
以下、図12を参照しつつ、リソース管理部136と仮想コールサーバ130−1の負荷制御部135によるデータ応答処理について説明する。
仮想コールサーバ130−1〜130−Nの各々は、現在負荷量をリソース管理部136に断続的に送信している(ステップS400)。現在負荷量は、例えば3秒毎など周期的に送信される。リソース管理部136は、仮想コールサーバ毎に最新の現在負荷量をサーバ負荷量として保持する。なお、仮想コールサーバ130−2〜130−Nについては図示を省略している。
先ず、仮想コールサーバ130−1の負荷制御部135は、自身に対応するテナント150−1を宛先とするデータ処理要求を通信部131が受け付けたときに、リソース管理部136に対してリソース割当て要求を行なう(ステップS401)。
次に、リソース管理部136は、仮想コールサーバ130−1のサーバ負荷値が大閾値(図8)を超えているか否かを判定する(ステップS402)。
仮想コールサーバ130−1のサーバ負荷値が大閾値を超えていると判定した場合には、負荷制御部135は、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当て不可回答を行なう(ステップS402)。
仮想コールサーバ130−1の負荷制御部135は、当該回答に応じて、当該データ処理要求が示すデータ処理を実行しなくても良いか、すなわちデータ処理を間引くか否かを判定する(ステップS403)。例えば、当該データ処理に対応するテナントIDについての優先度が「50」以下であり、且つ同一のデータ処理についての前回の間引き時点から2秒以上経過している場合に(図3)、負荷制御部135は、当該データ処理を間引くと判定する。
データ処理を間引くと判定した場合には、負荷制御部135は、データ処理部134に対して間引きを用いた負荷軽減モードの実行指令を発する(ステップS404)。データ処理部134は、当該指令に応じて、データ処理を間引いて実行する。
負荷制御部135は、通話端末300、管理端末400、振分け先オペレータ端末のうちの少なくとも1つに対して、負荷軽減モードによるデータ処理を行なっていることを通知する(ステップS405)。
ステップS403において、データ処理を間引くことができないと判定した場合には、負荷制御部135は、データ処理部134に対して低速のデータ処理を用いた負荷軽減モード通知を行なう(ステップS406)。データ処理部134は、当該通知に応じて通常モード時の処理速度よりも低速でデータ処理するなど負荷軽減モードによるデータ処理を行なう。
負荷制御部135は、通話端末300、管理端末400、振分け先オペレータ端末のうちの少なくとも1つに対して、低速のデータ処理を用いた負荷軽減モードによるデータ処理を行なっていることを通知する(ステップS407)。
ステップS402において、仮想コールサーバ130−1のサーバ負荷値が大閾値を超えていないと判定した場合には、リソース管理部136は、仮想コールサーバ130−1のサーバ負荷値が小閾値(図8)を超えているか否かを判定する(ステップS408)。
仮想コールサーバ130−1のサーバ負荷値が小閾値を超えていると判定した場合には、リソース管理部136は、仮想サーバ160全体の負荷値が全負荷上限値に達しているか否かを判定する(ステップS409)。
仮想サーバ160のトータル負荷値が全負荷上限値に達していると判定した場合には、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当て不可回答を行なう(ステップS409)。以下、ステップS403に進んで同様の処理を行なう。
仮想サーバ160のトータル負荷値が全負荷上限値に達していないと判定した場合には、リソース管理部136は、仮想コールサーバ130−1に対してリソース割当て可能回答を行なう(ステップS409)。
負荷制御部135は、当該回答に応じて、データ処理部134に対して通常モード通知を行なう(ステップS410)。データ処理部134は、当該通知に応じて通常のデータ処理を行なう。
ステップS408において、仮想コールサーバ130−1のサーバ負荷値が小閾値を超えていないと判定した場合には、負荷制御部135は、ステップS409に進んで同様の処理を行なう。
ステップS404、ステップS406又はステップS410の後に、負荷制御部135は、統計テーブル147を更新する(ステップS410)。例えば、テナント150−1のテナントIDがT0001であり、データ処理部134によるデータ処理の間引きを用いた負荷軽減モードでの統計処理等のデータ処理が2011年07月11日15時20分00秒に開始され、当該データ処理のデータIDが「D0002」である場合、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量400、50、20ポイントが統計テーブル147に記憶される(図10)。
次に、負荷制御部135は、統計テーブル147に基づいて優先度テーブル146(図9)を更新する。負荷制御部135は、統計テーブル147に記録されている実測負荷量のうち、例えば現在時刻から1時間前までの期間内に含まれる実測負荷量の平均値をデータ処理ID毎に算出して得られた負荷量を優先度テーブル146に単位負荷量として記録する(ステップS411)。
なお、ステップS404に関するデータ処理の間引きを用いた負荷軽減モードによるデータ処理、ステップS406に関する低速のデータ処理を用いた負荷軽減モードによるデータ処理、又はステップS410に関する通常モードによるデータ処理が終了すると、ステップS411と同様に、負荷制御部135によって実測されたCPU、メモリ、ディスクそれぞれについての実測負荷量が統計テーブル147(図10)に記憶され、負荷制御部135は、統計テーブル143に基づいて優先度テーブル146(図9)を更新する(図示せず)。
このように、本実施例のコールセンタ装置においては、1つのコールセンタ装置100内にソフトウェア上で動作する複数の仮想コールサーバを構成し、これらを複数のテナントに1対1で対応させる。そして、着信呼があった場合に当該着信呼に対応する仮想コールサーバ(着信コールサーバ)についての処理負荷値(サーバ負荷値)が所定の負荷閾値を超えているか否か判定する。第1に、仮想コールサーバのサーバ負荷値が大閾値を超えている場合には当該着信呼についての音声信号を低通信レートで中継したり、音声信号の中継自体を行なわないことにより、仮想サーバ160全体の処理負荷値が全負荷上限値を超えないようにする。かかる動作により、着信コールサーバの処理に起因する負荷量の増加が他の仮想コールサーバに影響しないようにすることができる。
第2に、着信コールサーバのサーバ負荷量が小閾値を超えているものの、仮想サーバ160全体の負荷値(トータル負荷値)が全負荷上限値に達していないときには、通常モードでの音声中継を行なう。かかる動作により、着信コールサーバのサーバ負荷量に基づいて負荷軽減可否の判定をしつつも、仮想サーバ160の処理能力に余裕があるときには、通常モードによりすなわち負荷軽減モードに比較して高品質の音声中継処理を行なうことができる。
また、本実施例のコールセンタ装置においては、管理端末300からデータ処理要求があった場合にも当該要求に対応するコールサーバ(対象コールサーバ)についての処理負荷値(サーバ負荷値)が所定の負荷閾値を超えているか否か判定する。第1に、対象コールサーバのサーバ負荷値が大閾値を超えている場合には当該データ処理を低速度で行なったり、データ処理自体を行なわないことにより、仮想サーバ160全体の処理負荷値が全負荷上限値を超えないようにする。かかる動作により、対象コールサーバについての処理に起因する負荷量の増加が他のテナントに影響しないようにすることができる。
第2に、対象コールサーバのサーバ負荷値が小閾値を超えているものの、仮想サーバ160全体の負荷値(トータル負荷値)が全負荷上限値に達していないときには、通常モードでのデータ処理を行なう。かかる動作により、対象コールサーバのサーバ負荷値に基づいて負荷軽減可否の判定をしつつも、仮想サーバ160の処理能力に余裕があるときには、通常モードによりすなわち負荷軽減モードに比較して高速のデータ処理を行なうことができる。
また、負荷軽減モードにより音声信号中継やデータ処理を行なっていることを管理端末400やオペレータ端末に通知するので、管理者やオペレータが各コールサーバの混雑状況を把握することができる。