以下、図面と共に本発明に係る通信システム、オーディットノード及びオーディット方法の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る通信システムである移動体通信システム1の構成を示す。移動体通信システム1は、移動通信端末(移動機、UE:User Equipment)10に移動体通信の機能を提供するシステムである。移動通信端末10は、ユーザにより用いられて移動体通信システム1(移動体通信網)に無線通信によって接続して移動体通信を行う装置である。具体的には、移動通信端末10は、携帯電話機等に相当する。移動通信端末10は、例えば、移動体通信システム1を介して別の移動通信端末10やその他の対向ノードとの間に呼接続等の通信接続を確立して通信を行う。その他の対向ノードは、例えば、移動通信端末10に様々なサービスを提供するサーバ装置、あるいは他の通信網に接続するための装置(例えば、GGSN(Gateway GPRS Support Node))等に相当する。移動通信端末10は、移動通信端末10のユーザが移動体通信システム1の通信事業者と契約することによって移動体通信を行うことが可能になる。なお、移動通信端末10は、従来の移動通信端末と同様のものでよい。
図1に示すように移動体通信システム1は、1以上あるいは複数の物理ノード(物理サーバ)20と、オープンフローネットワーク30と、ネットワークマネージャ40とを含んで構成されている。これらの構成20,30,40は、移動体通信システム1(移動体通信網)のコアネットワークを構成するものである。物理ノード20は、移動体通信システム1において通信処理を行う物理的な装置である。通信処理は、各物理ノード20で実現される通信処理ノードによって行われる。
通信処理は、移動通信端末が移動体通信を行うための処理である。通信処理は、移動通信端末10毎に行われる。通信処理には、例えば呼処理が含まれる。ここで呼処理とは、移動体通信システム1を介して移動通信端末10と通信相手の装置との呼接続に係る処理である。例えば、移動通信端末10と通信相手の装置との間の呼接続(通信セッション接続、あるいは通信接続とも呼ばれる)を確立する処理、あるいは切断する処理等である。
物理ノード20は、図1に示すようにオープンフローネットワーク30を介して、移動通信端末10と接続されており、情報の送受信を行うことができるようになっている。また、複数の物理ノード20間も接続されており、物理ノード20同士で情報の送受信ができるようになっている。また、複数の拠点(データセンタ等の場所)を設け、それぞれの拠点に1つ以上の物理ノード20を設けるようにすることが望ましい。複数の拠点に物理ノード20を設けるのは、各拠点の物理ノードが最寄の地域の通信処理を担当すると共に、災害により隣接地域の物理ノード20が故障する場合の代替処理等を考慮したものである。
物理ノード20では、機能的な構成として、分散データベース50と、S−CSCF60と、ステート管理機構70と、オーディットサーバ90とが実現される。分散データベース50は、複数の物理ノード20上の分散データベース50と互いに連携することでデータベースとしての機能を発揮する。なお、分散データベース50と、S−CSCF60と、ステート管理機構70と、オーディットサーバ90との全てが物理ノード20上で実現されていなくてもよく、それらの少なくとも一つが物理ノード20上で実現されていればよい。例えば、図1に示すように、オーディットサーバ90が実現されていない物理ノード20や、S−CSCF60及びステート管理機構70が実現されていない物理ノード20があってもよい。但し、S−CSCF60とステート管理機構70とは組み合わせて通信処理ノードとして機能が発揮されるため、それらは、通常、同一の物理ノード20上で実現される。
分散データベース50は、通信処理に必要なデータを保持するデータベースである。分散データベース50は、このデータを、例えば、移動通信端末10を特定する情報に対応付けて、移動通信端末10毎に保持する。通信処理に必要なデータとしては、具体的には通信処理の状態を示すステート情報や移動通信端末10に係る加入者プロファイルを保持する。ステート情報としては、例えば、移動通信端末10が通信中であるか(通話状態であるか)、待受中(終話状態)であるかを示す情報(通信接続の状態を示す情報)である。また、ステート情報には、上記の情報がいつ更新されたかの時刻を示すタイムスタンプ(例えば、unix時間)の情報が含まれる。この情報は、後述するように各ステート管理機構70及びオーディットサーバ90によって読み出されると共に更新(書き込み)される。また、ステート情報には移動通信端末10の在圏エリアの情報が含まれていてもよい。
なお、通信処理に必要なデータを保持するデータベースは、必ずしも分散データベース50の構成をとる必要はなく、データベースとして任意の構成をとることができる。例えば、S−CSCF60、ステート管理機構70及びオーディットサーバ90が実現される物理ノード20とは別の装置上で実現されていてもよいし、あるいは、1つの装置上で実現されていてもよい。但し、本実施形態のようにSPOF(Single Point of Failure)が無いように、複数の物理ノード20で実現される分散データベース50とすることが望ましい。
分散データベース50は、図1に示すように複数の物理ノード20にわたって実現されている場合には、各物理ノード20の分散データベース50では、分散データベース50全体の一部の情報が格納されている。例えば、1つの物理ノード20の分散データベース50には、1000人分のユーザ(1000台分の移動通信端末10)の情報が格納されている。また、1つの移動通信端末10の情報が、複数の物理ノード20の分散データベース50に格納されていてもよい。即ち、移動通信端末10の情報が、冗長化されていてもよい。
本実施形態に係る通信処理ノード80は、S−CSCF60と、ステート管理機構70とを含んで構成する。S−CSCF60は、移動体通信システム1において通信処理を行う通信処理手段である。例えば、移動通信端末10間の呼接続を確立する処理、あるいは切断する処理を行う。S−CSCF60は、移動通信端末10からの要求等に応じて呼接続を行う。上記の通信処理自体は、従来の通信処理ノードと同様に行われる。また、S−CSCF60は、物理ノード上で仮想化された仮想マシン(VM:Virtual Machine)上の仮想化サーバとして構成される。これは、後述するスケールイン又はスケールアウト時の処理を容易にするためである。移動通信端末10毎に通信処理を行うS−CSCF60が、ネットワークマネージャ40によって定められている。
本実施形態では、移動通信端末10に対する通信処理を、任意のS−CSCF60において行わせることができる。そのためにステート情報を分散データベース50で保持しておくようにしている(ステート情報の外出し)。即ち、S−CSCF60は、ステートレス化したサーバ(ステートレスサーバ)である。但し、通信処理の迅速化のため、後述するようにステート情報は物理ノード20上のキャッシュに保持されている。
また、S−CSCF60は、オーディット処理を行うための機能を有する。オーディット処理は、ステート情報によって示される通信処理の状態が実際の移動通信端末10の状態と不整合な状態(不整合な状態に)にある場合に、ステート情報を実際の移動通信端末10の状態に整合するように修正する(状態遷移させる)処理である。具体的には例えば、オーディット処理は、通信接続が確立されていることを示すステート情報のうち、本来は通信接続が終了しているとされるべきステート情報を適正な情報にするための処理である。即ち、オーディット処理は、実際には移動通信端末10の通信が終了している(通話が終了している)にもかかわらず、当該情報が通信中(通話状態)であることを示すステート情報を是正するための処理である。上記の処理は、具体的には、ステート情報に含まれる通信中であることを示す情報を削除したり、当該情報を通信が終了しているものに書き換えたりすることにより行われる。なお、当該処理は、従来のオーディット処理と同様の処理である(必ずしも上記の例に限られない)。
S−CSCF60は、移動通信端末10と通信相手との間で通信接続を確立する処理を行うと、当該移動通信端末10の通信接続に対してオーディット処理のための監視を行うようにオーディットサーバ90に指示(依頼)する。当該指示には、監視対象の通信接続(呼接続)が特定できるよう、ID等の監視対象の通信接続を特定する情報が含められる。当該情報に基づいて、通信を行っている移動通信端末10を特定することができる。また、当該指示には、監視対象の通信を行っている移動通信端末10を特定する情報が含められてもよい。また、S−CSCF60は、移動通信端末10と通信相手との間で通信接続を切断する処理を行うと、当該移動通信端末10の通信接続に対するオーディット処理のための監視を終了するようにオーディットサーバ90に指示する。
また、オーディット処理のために、移動通信端末10は、通信相手の装置との間で移動体通信システム1を介して通信接続が確立されている際に、一定時間毎にステート情報の更新をS−CSCF60に要求する。例えば、移動通信端末10は、REINVITE(UPDATE)の信号を移動体通信システム1に含まれるP−CSCF(Proxy-Call Session Control Function)を介してS−CSCF60に送信することで上記の要求を行う。
S−CSCF60は、移動通信端末10から上記の要求を受信すると、要求に応じて、分散データベース50に格納されている移動通信端末10に係るステート情報の更新を行う。なお、このステート情報の更新は、要求を送信した移動通信端末10に対してのみ行われてもよいし、要求を送信した移動通信端末10の通信相手の移動通信端末10に対しても行われてもよい。前者の場合、要求の送信は、通信を行っている移動通信端末10それぞれが行う必要がある。後者の場合、要求の送信は、通信を行っている移動通信端末10の何れか一方が行えばよい。即ち、S−CSCF60は、ステート情報の更新を行う更新手段を備える。ステート情報の更新の処理自体は、従来の移動体通信網と同様に行われる。S−CSCF60は、この更新の際、分散データベース50に格納されている移動通信端末10に係るステート情報の更新時刻を示すタイムスタンプを自身が把握している現在時刻に更新する。あるいは、ステート情報の更新時刻は、ステート情報の更新を受けた分散データベース50側で更新することとしてもよい。
なお、下記のように、S−CSCF60は、分散データベース50へのアクセスをステート管理機構70に代理させている。ステート情報の更新についても、同様にS−CSCF60が分散データベース50に対して直接行うのではなく、ステート管理機構70に代理させることとしてもよい。
S−CSCF60は、通信処理を実行する上で分散データベース50に保持される情報の読み出し及び書き込みが必要となる。本実施形態では、S−CSCF60は、分散データベース50に保持される情報の読み出し及び書き込みを直接行わず、ステート管理機構70に代理させる。即ち、S−CSCF60は、分散データベース50に保持される情報の読み出し及び書き込みをステート管理機構70に依頼する。即ち、ステート管理機構70が、S−CSCF60による分散データベース50に保持される情報の読み出し及び書き込みをフックする。S−CSCF60は、当該依頼に対するステート管理機構70からの応答を受領すると通信処理を継続して進める。その具体例については後述する。
ステート管理機構70は、S−CSCF60からの依頼に基づき、分散データベース50に保持される情報の読み出し及び書き込みに係る処理を行う手段である。即ち、ステート管理機構70は、S−CSCF60を代理して分散データベース50へのアクセスを行う代理処理手段である。ステート管理機構70の機能の詳細については後述する。ステート管理機構70は当該機能を実現するために、キャッシュ(機構)701及びロック(機構)702を有している。
キャッシュ701は、移動通信端末10毎に分散データベース50に保持されている情報をキャッシュしておく手段である。キャッシュ701は、S−CSCF60が、分散データベース50に保持されている情報を迅速に参照できるようにするためのものである。キャッシュ701は、物理ノード20上の高速にアクセス可能なメモリ等によって実現される。また、ロック702は、分散データベース50に保持されている情報の一貫性を保つためのものである。より詳細には後述する。なお、ロック702は、上記のキャッシュ701上に構成されていてもよい。
オーディットサーバ90は、分散データベース50に保持されたステート情報に対するオーディット処理を行うオーディットノードである。オーディットサーバ90は、ネットワークマネージャ40、分散データベース50、S−CSCF60及びステート管理機構70との間でそれぞれ、オーディット処理のための情報の送受信を行うことができる。具体的にどのようにオーディット処理を行うかについては後述する。
図2は、物理ノード20のソフトウェア構成を示す図である。物理ノード20は、物理的な装置のコンピュータである物理マシン21上でソフトウェアが実行されることで実現される。物理マシン21上では、まず、ホストOS(Operating System)22が実行される。ホストOS22上では、仮想マシンを実現するための仮想マシンゲストOS23が実行され、仮想マシンゲストOS23上でアプリケーションが実行されてS−CSCF60が実現される。また、分散データベース50、ステート管理機構70及びオーディットサーバ90はホストOS22上で実現される。
図1に戻り、説明を続ける。図1に示すようにオープンフローネットワーク30は、移動通信端末10及び物理ノード20とそれぞれ接続されており、それらの装置間の通信路を構成するフロー制御ネットワークである。なお、通常、オープンフローネットワーク30と移動通信端末10とは、基地局(BTS)や無線制御装置(RNC)を介して接続されている。オープンフローネットワーク30は、互いに接続されている複数のオープンフロースイッチ31によって構成されている。オープンフローネットワーク30は、ネットワークマネージャ40のオープンフローコントローラからの制御を受けて情報の送受信を行う。具体的には、オープンフローネットワーク30の各オープンフロースイッチ31が、自身が受信した情報をどのノードに送信するかを示すフローエントリをネットワークマネージャ40から受信して当該フローエントリに従った情報の送受信を行う。本説明では、オープンフローネットワークとして説明を行うが、SDN(Software defined network)と呼ばれる、同様のフロー制御とその制御に従ってフロー転送処理を行うネットワークでもよい。
ネットワークマネージャ40は、ネットワーク管理制御システムを構成する制御ノードである。ネットワーク管理制御システムには、ネットワーク運用ポリシ、ネットワーク運用・制御シナリオ、ネットワークリソース管理、ネットワークトポロジ管理、ネットワークトポロジ変更、ネットワークリソース制御、仮想サーバ制御及びフロー制御の機能を有している。ネットワーク運用ポリシは、ネットワークリソース管理が把握した状態(輻輳や故障等)に基づいて、どのようにネットワークを制御するかを決定するための判断基準(サービスに関わる品質条件や確保すべき帯域等)を保持する機能である。ネットワーク運用・制御シナリオは、ネットワークリソース運用ポリシを参照して、ネットワーク管理が把握した状態を、ポリシを満たす状態にするための制御手順を与える機能である。ネットワークリソース管理は、ネットワーク内に配備されるサーバやスイッチ等から情報を受信して把握する機能である。
ネットワークトポロジ管理は、ネットワークリソース管理により把握した情報から、ネットワーク内の装置接続状況を把握して管理する機能である。ネットワークトポロジ変更は、仮想化サーバの仮想化マシンの配置・移動制御やスイッチ等の設定変更制御により、ネットワークの装置接続状態を変更する機能である。ネットワークリソース制御は、仮想化サーバの仮想マシンの配置・移動制御やスイッチ等の設定変更制御である。仮想サーバ制御は、仮想化サーバ(物理サーバに同じ)から、サーバの情報を受信してサーバの状態を把握する機能である(CPU使用率や故障の有無等)。フロー制御は、オープンフローネットワーク30のフロー制御を行う機能である。本実施形態に係るネットワークマネージャ40は、上記の機能を利用したものである。上記の制御の一部は、例えば、ネットワークマネージャ40が備える、負荷分散制御を行うオープンフローコントローラによって行われる。
ネットワークマネージャ40は、仮想マシン制御線によって、物理ノード20のそれぞれと接続されており、情報の送受信を行うことができる。また、ネットワークマネージャ40は、オープンフロースイッチ制御線によって、オープンフローネットワーク30のオープンフロースイッチ31のそれぞれと接続されており、情報の送受信を行うことができる。
引き続いて、ステート管理機構70及びネットワークマネージャ40の機能についてより詳細に説明する。図3に示すようにステート管理機構70は、保持部71と、依頼受付部72と、ロック部73と、書込部74と、読出部75と、ロック解除部76とを備えて構成される。
保持部71は、分散データベース50に保持された移動通信端末10に係るステート情報を取得してキャッシュ701として保持する保持手段である。以下の通り、保持部71にキャッシュ701として保持されるステート情報は、分散データベース50に格納されているステート情報と一貫性を有するものである。保持部71は、保持部71を備えるステート管理機構70に対応付けられたS−CSCF60が通信処理を行う移動通信端末10のステート情報を分散データベース50から取得する。なお、ステート情報には、分散データベース50に保持された情報と同様に、情報がいつ更新されたかの時刻を示すタイムスタンプ(例えば、unix時間)が含まれる。
移動通信端末10には通信処理を行う1つのS−CSCF60が割り当てられる。この割当は、後述するように例えばネットワークマネージャ40によって行われる。割当が行われた際、ネットワークマネージャ40からS−CSCF60に対して通信処理対象となる移動通信端末10が通知される。その際、ステート管理機構70でもその通知を受け、S−CSCF60が通信処理を行う移動通信端末10が把握される。保持部71は、S−CSCF60が通信処理を行う移動通信端末10を把握したタイミングで、分散データベース50に当該移動通信端末10のステート情報を要求し、分散データベース50から当該要求に応じて当該移動通信端末10に係るステート情報を入力(受信)することでステート情報を取得する。また、保持部71は、当該保持部71を備えるステート管理機構70に対応付けられたS−CSCF60(移動後のS−CSCF60)の前に移動通信端末10の通信処理を担当していたS−CSCF60(移動前のS−CSCF60)に対応付けられたステート管理機構70から移動通信端末10に係るステート情報を入力(受信)することとしてもよい。
また、保持部71は、ステート情報だけでなく、例えば、加入者プロファイル等の移動通信端末10に対する通信処理を行うために必要な情報も分散データベース50から取得してキャッシュとして保持しておく。保持部71に保持される情報(キャッシュ)は、書込部74及び読出部75からアクセスされる。
依頼受付部72は、S−CSCF60から分散データベース50へのアクセスの依頼を受け付ける依頼受付手段である。上述したように当該依頼は、S−CSCF60が移動通信端末10に係る通信処理を行う際に、当該移動通信端末10のステート情報にアクセスする際に行われる。従って、当該依頼は移動通信端末10が特定されて行われる。依頼受付部72は、S−CSCF60からの依頼を受け付けると依頼に係る情報をロック部73に出力する。
ロック部73は、移動通信端末10に応じた分散データベース50へのアクセス権を示すキーを、上述したロック(機構)702において保持するロック手段である。上述したように移動通信端末10には通信処理を行う1つのS−CSCF60が割り当てられる。そのため、分散データベース50へアクセスできるのは、移動通信端末10毎に1つの割り当てられたS−CSCF60に対応付けらえたステート管理機構70だけである。移動通信端末10のキーを保持していないステート管理機構70は、分散データベース50の当該移動通信端末10に係るステート情報にアクセスすることができない。即ち、移動通信端末10のキーを保持していないステート管理機構70に対応するS−CSCF60は、当該移動通信端末10に係る通信処理が禁止されている。
上記のように各ステート管理機構70では、S−CSCF60に割り当てられた移動通信端末10のキャッシュとキーとが保持されている。例えば、S−CSCF60に割り当てられた移動通信端末10が2000台であれば、2000台分のキャッシュとキーとが保持されている。
ロック部73は、保持部71がステート情報を保持するタイミングと同様のS−CSCF60が通信処理を行う移動通信端末10を把握したタイミングで、当該移動通信端末10のキーを取得する。この取得は、例えば、ネットワークマネージャ40によって指示される。また、ロック部73は、当該ロック部73を備えるステート管理機構70に対応付けられたS−CSCF60(移動後のS−CSCF60)の前に移動通信端末10の通信処理を担当していたS−CSCF60(移動前のS−CSCF60)に対応付けられたステート管理機構70から移動通信端末10のキーを入力(受信)することとしてもよい。なお、キーに係る情報を実際にステート管理機構70間で送受信する必要はなく、ネットワークマネージャ40からキーの生成が指示された場合にロック部73において移動通信端末10のキーを生成すればよい。
ロック部73は、依頼受付部72から依頼に係る情報を入力すると、アクセスの対象のステート情報に係る移動通信端末10に対応するキーがロックされていないか否かを確認する。当該キーがロックされていなければ、ロック部73は当該キーをロックする。キーをロックすることで、依頼受付部72から入力された情報に係る依頼に対してのみ、保持部71に保持されたキャッシュ及び分散データベース50へのアクセスを可能とする。当該キーがロックされていたら、ロック部73は当該キーのロックが解除されるのを待ち、当該キーのロックが解除されたら当該キーをロックする。この場合、具体的には、ロックの要求をしておき、ロックが解除される順番待ちを行う。これにより、保持部71に保持されたキャッシュ及び分散データベース50に保持されている情報の一貫性が保たれる。なお、キーをロックした際、最後にロックした者(最終ロック者)を示す情報(例えば、ステート管理機構70を特定する情報)をキーに対応付けて記憶しておいてもよい。
ロック部73は、キーのロックを行った後、依頼受付部72から依頼に係る情報を参照して、当該依頼が分散データベース50への書き込みを行うものであるか、当該依頼が分散データベース50からの読み出しを行うものであるかを確認する。なお、分散データベース50への書き込みを行うものであるか、又は分散データベース50からの読み出しを行うものであるかは、通信処理に応じて予め設定されており、上記の確認は上記に設定に応じて行うことができる。分散データベース50への書き込みを行う場合は、例えば、移動通信端末10の通信状態が変化して、変化した状態を示す情報を分散データベース50に格納させる場合である。具体的には例えば、通信を行っていた移動通信端末10の通信接続がBYEシーケンス等により切断され、移動通信端末10の通信状態が通信中から待受中に変化した場合である。
分散データベース50からの読み出しを行う場合は、例えば、分散データベース50に格納された情報を変更する必要はないが、通信処理に必要な情報を取得する場合である。具体的には例えば、BYEシーケンス等の通信処理において、信号を別の通信処理ノード等に送信する場合である。
ロック部73は、依頼受付部72から依頼が分散データベース50への書き込みを行うものであると判断した場合は、当該依頼を示す情報を書込部74に出力する。依頼を示す情報は、例えば、書き込み対象となる情報や書き込みに係る移動通信端末10を示す情報を含む。ロック部73は、依頼受付部72から依頼が分散データベース50からの読み出しを行うものであると判断した場合は、当該依頼を示す情報を読出部75に出力する。依頼を示す情報は、例えば、読み出し対象となる情報や読み出しに係る移動通信端末10を示す情報を含む。
書込部74は、保持部71に保持されたキャッシュ及び分散データベース50に保持されている情報への書き込みを行う書込手段である。書込部74は、ロック部73によってキーがロックされた後、ロック部73から依頼を示す情報が入力されると、S−CSCF60に対して当該依頼に対する応答を出力する。S−CSCF60は、当該応答を入力すると引き続き通信処理を継続して行う。
移動体通信網において、ステート情報を分散データベースにおいて管理する形態では、通常、分散データベースに保持されている情報の一貫性を保つため、通信処理サーバは分散データベースへの書き込みの応答を受信してから、続きの通信処理を行う。分散データベースへの書き込みは、通信の発生等によりキャッシュへのアクセス等と比べて時間がかかる。そのため、通信処理の遅延の原因となっていた。一方、本実施形態においては、S−CSCF60は、実際に分散データベース50に書き込みが行われる前に応答を入力して、通信処理を継続するため非常に通信処理の遅延を防止することができる。
書込部74は、S−CSCF60に対して当該依頼に対する応答を出力した後、保持部71に保持されたキャッシュ及び分散データベース50に保持されている情報への、当該依頼に係る書き込みを実行する。書込部74は、書き込みを実行するとその旨をロック解除部76に通知する。書込部74は、分散データベース50への書き込みを行う際にデータを複数の物理ノード20の分散データベース50に書き込むこととしてもよい。これにより、ステート情報の可用性、分散耐性を向上させることができる。
読出部75は、ロック部73によってキーがロックされた後、ロック部73から依頼を示す情報が入力されると、保持部71にキャッシュとして保持されている当該依頼に係る情報を読み出して、読み出した情報をS−CSCF60に対して当該依頼に対する応答として出力する読出手段である。読出部75による読み出しは、キャッシュから行われるため、分散データベース50から読み出す場合と比べて高速に行われる。S−CSCF60は、当該応答を入力すると、応答の情報を利用して引き続き通信処理を継続して行う。読出部75は、読み出しを完了するとその旨をロック解除部76に通知する。
ロック解除部76は、ロック部73によってロックされたキーのロックを解除する(キー解除する)ロック解除手段である。ロック解除部76は、書込部74から、分散データベース50への書き込みが終了した旨の通知を受けると、又は読出部75から、保持部71によって保持されている情報の読み出しが終了した旨の通知を受けるとロックを解除する。ロックが解除されると、ロック部73は、S−CSCF60から別の依頼に対してキーをロックすることができる。以上が、ステート管理機構70の機能構成である。
図4に示すようにネットワークマネージャ40は、決定部41と、移動部42と、中止情報出力部43とを備えて構成される。また、本実施形態のようにS−CSCF60を仮想マシンによって構成されることとした場合、ネットワークマネージャ40は、仮想化されたS−CSCF60の制御を行う仮想マシン制御部(図示せず)を、更に備えることとしてもよい。この制御によって、具体的には、S−CSCF60のプロビジョニングが行われる。
決定部41は、移動通信端末10毎に通信処理を行うS−CSCF60を決定する決定手段である。具体的には、決定部41は、S−CSCF60又は物理ノード20の状態を把握し、当該状態に応じて移動通信端末10に対する通信処理が適切に行われるように移動通信端末10に対してS−CSCF60を決定する。決定部41に把握されるS−CSCF60の状態は、例えば、各S−CSCF60又は各物理ノード20の負荷や、各S−CSCF60又は各物理ノード20が故障していないか否かの状態である。これらの情報は、例えば、定期的な決定部41から各S−CSCF60又は各物理ノード20への問い合わせによって、あるいは、各S−CSCF60又は各物理ノード20からの自発的な送信によって、状態を示す情報を受信することによって決定部41で把握される。なお、移動通信端末10に対するS−CSCF60の割当は、必ずしも上記に限られず、ラウンドロビン等の任意の方法で行われればよい。また、当該割当は、移動通信端末10が移動体通信網に新たに在圏したタイミングや、その他特定のS−CSCF60又は各物理ノード20の負荷が高まった状態や故障した場合に行われる。また、一定時間毎に行われてもよい。
決定部41は、移動通信端末10毎に通信処理を行うS−CSCF60を決定すると、当該移動通信端末10からの信号が決定したS−CSCF60に送信されるようにオープンフローネットワーク30を制御する。具体的には、決定部41は、移動通信端末10からの信号が決定したS−CSCF60に送信されるようにフローエントリを生成して、生成したフローエントリをオープンフローネットワーク30の各オープンフロースイッチ31に送信する。
また、決定部41は、物理ノード20上に新たな仮想マシンを起動して、新たなS−CSCF60を生成して、新たなS−CSCF60に移動通信端末10を割り当ててもよい。即ち、決定部41は、仮想マシンのスケールアウトを行ってもよい。また、決定部41は、S−CSCF60に割り当てられた移動通信端末10全てを別のS−CSCF60に割り当てて、仮想マシンを終了(巻き取り)してもよい。即ち、決定部41は、仮想マシンのスケールインを行ってもよい。上記のスケールアウトやスケールインは、仮想マシン制御部がHypervisorに指示を送ることで仮想マシンを新たにプロビジョニングさせる等の制御によって行われる。
決定部41は、移動通信端末10に対するS−CSCF60の割当を変更した場合(S−CSCF60の移動があった場合)、あるいは、新たに移動通信端末10に対してS−CSCF60を割り当てた場合、その旨を移動部42に通知する。
移動部42は、決定部41による決定に応じて移動通信端末10毎にステート管理機構70のキーを通信処理ノード80間で移動させる制御を行う移動手段である。移動部42は、移動前後のステート管理機構70に対して、移動通信端末10を指定してキーを移動させるように指示を行う。移動元のステート管理機構70では、当該指示が受信されて、ロック部73が当該指示に係る移動通信端末10のキーをロックし、ロックしたキーを移動する。
移動後のステート管理機構70では、ロック部73が当該移動通信端末10のキーを受け付ける。移動後のステート管理機構70では、ロック部73が当該キーをロックし、保持部71が当該キーに係る移動通信端末10の、分散データベース50で保持されるステート情報を取得してキャッシュとして保持する。ステート情報の取得は、上述したように分散データベース50から行われてもよいし、移動前のステート管理機構70から行われてもよい。また、移動元(スケール元)のステート管理機構70又は物理ノード20が故障していた場合には、上記の移動の処理ができないため、新たに移動後のステート管理機構70に移動通信端末10のキーを割り当ててもよい。また、新たに移動通信端末10が移動体通信網に在圏した場合も同様である。保持部71によってステート情報が取得されて保持されると、ロック解除部76が当該キーのロックを解除する。上記のようにステート管理機構70のロック部73は、移動部42による制御を受けてキーの移動を行う。
中止情報出力部43は、S−CSCF60によるステート情報の更新が中止されている(S−CSCF60によるステート情報の更新が不可能になっている)ことを検出して、その旨を示す中止情報をオーディット処理の停止指示としてオーディットサーバ90に出力する手段である。S−CSCF60によるステート情報の更新が中止される場合とは、具体的には例えば、S−CSCF60、あるいはS−CSCF60が実現されている物理ノード20に故障が発生している場合である。中止情報出力部43は、具体的には、S−CSCF60又は物理ノード20の故障を検出することで、ステート情報の更新の中止を検出する。この検出は、例えば、決定部41による故障の検出と同様に行われる(決定部41による故障の検出と共通化してもよい)。また、ステート情報更新中止の検出は、故障の検出以外でも、ステート情報更新中止が生じるような任意の状況(事象)を検出することとしてもよい。
中止情報出力部43は、ステート情報更新中止を検出すると、その旨を示す中止情報をオーディット処理の停止指示としてオーディットサーバ90に送信することで出力する。中止情報出力部43は、中止情報に、何れのS−CSCF60において、ステート情報の更新が中止されているかを示す情報(例えば、S−CSCF60のID等のS−CSCF60を特定する情報)を含めてもよい。
また、中止情報出力部43は、ステート情報の更新の中止を検出した後、S−CSCF60によるステート情報の更新が復旧されている(S−CSCF60によるステート情報の更新が可能になっている)ことを検出して、その旨を示す復旧情報をオーディット処理の再開指示としてオーディットサーバ90に出力する。なお、ステート情報の更新復旧は、移動通信端末10の通信処理を行うS−CSCF60が変更(移動)されてステート情報の更新が可能になるものを含む。中止情報出力部43は、具体的には、S−CSCF60又は物理ノード20の故障からの復旧、あるいは、移動通信端末10の移動通信端末10の通信処理を行うS−CSCF60が変更(移動)されたことを検出することで、ステート情報の更新の復旧を検出する。また、ステート情報更新復旧の検出は、上記以外でも、ステート情報更新復旧が生じるような任意の状況(事象)を検出することとしてもよい。
中止情報出力部43は、ステート情報更新復旧を検出すると、その旨を示す復旧情報をオーディット処理の再開指示としてオーディットサーバ90に送信することで出力する。中止情報出力部43は、復旧情報に、何れのS−CSCF60において、ステート情報の更新が復旧されているかを示す情報(例えば、S−CSCF60のID等のS−CSCF60を特定する情報)を含めてもよい。また、中止情報出力部43は、復旧情報には、ステート情報の更新が中止されていた時間を含めてもよい。以上が、ネットワークマネージャ40の機能構成である。
引き続いて、オーディットサーバ90の機能についてより詳細に説明する。図5に示すようにオーディットサーバ90は、ステート情報取得部91と、オーディット部92と、中止情報入力部93と、オーディット停止部94とを備えて構成される。
ステート情報取得部91は、オーディット処理のために、分散データベース50に格納されているステート情報のうち、監視対象のステート情報を取得するステート情報取得手段である。本実施形態では、ステート情報取得部91は、監視対象のステート情報として、通信接続が確立されていることを示すステート情報を取得する。具体的には、ステート情報取得部91は、S−CSCF60から、移動通信端末10の通信接続に対してオーディット処理のための監視を行う指示を受け取る。ステート情報取得部91は、当該指示を受け取ると当該指示に示される通信接続に係る移動通信端末10のステート情報を分散データベース50から取得する。この取得は、予め設定された一定時間間隔(オーディット処理が行われる間隔)で繰り返して行われる。ステート情報取得部91は、取得したステート情報をオーディット部92に出力する。
また、ステート情報取得部91は、S−CSCF60から、移動通信端末10の通信接続に対するオーディット処理のための監視を終了する指示を受け取る。ステート情報取得部91は、当該指示を受け取ると当該指示に示される通信接続に係る移動通信端末10のステート情報の取得を終了する。また、ステート情報取得部91は、オーディット部92によって通信接続が終了された(即ち、浮き呼が削除された)場合(ステート情報の修正が行われた場合)にも、当該通信接続に係る移動通信端末10のステート情報の取得を終了してもよい。
オーディット部92は、ステート情報取得部91から入力された監視対象のステート情報の更新時刻に基づき、オーディット処理として当該ステート情報を修正するオーディット手段である。オーディット部92は、例えば、図6に示すステート情報を更新するか否かの判断基準の表を予め記憶しておき、当該判断基準に基づいてステート情報に不整合が生じていないかの判断を行う。オーディット部92は、判断の結果、ステート情報が不整合判断基準を満たしており、不整合が確認された場合には、監視している状態を特定の修正方法に従って修正する。以降の説明では、一定の時間間隔で情報が更新されるべきものが、本来の更新時間間隔を超えて更新されていない場合に、不整合と判断し、整合状態へ修正を行う手順について説明する。
本実施形態では、オーディット部92は、ステート情報の更新時刻に基づき、オーディット処理として当該ステート情報に係る通信接続を終了したものとする。具体的には、オーディット部92は、浮き呼に関する不整合の修正に関して、図6に示す表の通り、監視対象であるコールID(呼接続を特定するID)に関するステート情報「通話状態」が「通話中」であることを確認する。オーディット部92は、ステート情報の更新時刻から現時点の時刻までの経過時間を計算する。続いて、オーディット部92は、当該経過時間が閾値を超えているか否かを判断する。閾値は、予めオーディットサーバ90の管理者(例えば、移動体通信システム1を管理する通信事業者)等によって設定されてオーディット部92に図6に示す表により記憶されている。閾値は、例えば、300秒(s)とされる。オーディット部92は、計算した経過時間が閾値を超えていると判断した場合、上述したようにステート情報に含まれる通信中であることを示す情報を削除する(即ち、浮き呼の削除、あるいは、セッションタイマーの失効)。あるいは、当該削除に代えて、当該情報を通信が終了しているものに書き換えることとしてもよい。
また、オーディット部92は、計算した経過時間が閾値を超えていると判断した場合、通信接続に係る移動通信端末10に対して通信を終了させる(通信が終了した旨を通知する)信号を送信してもよい。例えば、オーディット部92は、BYE信号をS−CSCF60を介してそれぞれの移動通信端末10に対してBYE信号を送信する。当該BYE信号によるBYEシーケンスにより、確実に通信接続が終了される(終話状態に遷移する)。オーディット部92は、上記のように通信接続を終了したものとするとその旨をステート情報取得部91に通知する。
オーディット部92は、計算した経過時間が閾値を超えていないと判断した場合、特段の処理を行わない。また、オーディット部92は、オーディット停止部94からの制御を受ける。オーディット停止部94からの制御による動作については後述する。
中止情報入力部93は、S−CSCF60によるステート情報の更新の中止に係る中止情報を入力する中止情報入力手段である。具体的には、中止情報入力部93は、ネットワークマネージャ40から送信される中止情報を受信することで入力を行う。中止情報入力部93は、入力した中止情報をオーディット停止部94に出力する。また、中止情報入力部93は、上記の中止が行われた後、S−CSCF60によるステート情報の更新の復旧に係る復旧情報を入力する。具体的には、中止情報入力部93は、ネットワークマネージャ40から送信される復旧情報を受信することで入力を行う。中止情報入力部93は、入力した復旧情報をオーディット停止部94に出力する。なお、ステート情報の更新中止及び更新復旧の検出は、ネットワークマネージャ40で行うこととしていたが、オーディットサーバ90で行われることとしてもよい。
オーディット停止部94は、中止情報入力部93から中止情報が入力されると、当該入力に応じて、オーディット部92によるオーディット処理を停止させる制御を行うオーディット停止手段である。当該制御が行われると、オーディット部92は、オーディット処理を停止する。なお、オーディット処理の停止は、処理を停止させる以外にも、例えば、オーディット部92による判断に用いる閾値を通常用いる値と比べて極めて大きい時間(例えば、1時間)に設定する等して、実質的に停止させることとしてもよい。なお、オーディット部92によるオーディット処理が停止すればよいので、オーディット停止部94は、ステート情報取得部91によるステート情報の取得を停止させるようにすることとしてもよい。この場合、分散データベース50への負荷をかけずにオーディット処理を停止させることができる。
上記のようにステート情報の更新を行うS−CSCF60は、当該ステート情報の監視の指示をオーディットサーバ90に対して行う。即ち、ステート情報は、更新を行うS−CSCF60と対応付けられており、オーディットサーバ90では当該対応付けが把握されている。オーディット停止部94は、中止情報入力部93から中止情報に係るS−CSCF60(ステート情報の更新を中止しているS−CSCF60)に対応付けられたステート情報に対してのみ、オーディット処理を停止させる。但し、中止情報が入力された場合に、全てのステート情報に対してオーディット処理を停止させることとしてもよい。
オーディット停止部94は、中止情報入力部93から復旧情報が入力されると、当該入力に応じて、オーディット部92によるオーディット処理を再開させる制御を行う。当該制御が行われると、オーディット部92は、停止していたオーディット処理を再開する。ステート情報更新が復旧され、オーディット処理が再開される際、当該復旧に係る1度目のステート情報の更新が行われる前にオーディット処理のためにステート情報が取得されると、ステート情報の更新が行われていなかった時間が原因となり更新時刻からの経過時間が閾値を超えていると判断されてしまうおそれがある。
そこで、オーディット処理の再開が行われる場合には、当該ステート情報の更新が行われていなかった時間が考慮されたオーディット処理が行われる。具体的には、オーディット停止部94は、ステート情報の更新の中止から復旧までの時間をタイムスタンプオフセットとしてオーディット部92に通知する。当該時間は、例えば、復旧情報に含まれる時間を用いてもよいし、中止情報が入力された時刻から、復旧情報が入力された時刻までの時間を計算することとしてもよい。ステート情報の更新が中止している時間(即ち、オーディット処理が停止している時間)が150秒(s)であれば、上記のタイムスタンプオフセットは150秒(s)とされる。オーディット部92は、通知されたタイムスタンプオフセットの値を予め設定された閾値(例えば、上記の300秒(s))に加算して、加算した閾値を用いて上記の判断を行う。なお、復旧から2度目以降の判断については、元の閾値を用いて判断を行う。以上が、オーディットサーバ90の機能である。
ここで、分散データベース50、オーディットサーバ90、S−CSCF60、移動通信端末10及びネットワークマネージャ40の物理的な配置について、図7を用いて説明する。
S−CSCF60及びオーディットサーバ90は、地域毎に設けられる。但し、S−CSCF60及びオーディットサーバ90が設けられてない地域があってもよい。例えば、図7に示すように、S−CSCF60は、地域2と地域3とに位置しており、それぞれの地域に位置する移動通信端末10に対する通信処理を行う。例えば、地域2に位置しているS−CSCF(VM1)は、地域2に位置している移動通信端末1に対する通信処理を行い、地域3に位置しているS−CSCF(VM2)は、地域3に位置している移動通信端末2に対する通信処理を行い、また、S−CSCF60が設けられていない地域に位置する移動通信端末10に対しては、近隣の地域のS−CSCF60が通信処理を行う。
オーディットサーバ90は、同一の地域又は近隣の地域のS−CSCF60に予め対応付けられている。オーディットサーバ90は、対応付けられたS−CSCF60の通信処理によって確立された通信接続に係るステート情報に対してオーディット処理を行う。例えば、地域2に位置しているS−CSCF(VM1)は、地域1に位置しているオーディットサーバ(O1)に対して通信接続に係るステート情報の監視を依頼し、地域3に位置しているS−CSCF(VM2)は、地域1に位置しているオーディットサーバ(O2)に対して通信接続に係るステート情報の監視を依頼する。
ネットワークマネージャ40は、何れかの地域に設けられるが、地域に対応する対応付けはなされていない。ネットワークマネージャ40は、各地域に設けられた各ノードの配置や対応付けを管理することとしてもよい。
図8に本実施形態に係る物理ノード20、オープンフローネットワーク30のオープンフロースイッチ31及びネットワークマネージャ40を構成するサーバ装置のハードウェア構成を示す。図8に示すように当該サーバ装置は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述した各ノード20,31,40の機能が発揮される。以上が、移動体通信システム1の構成である。
引き続いて、図9のシーケンス図を用いて、本実施形態に係る移動体通信システム1で実行される処理であるオーディット方法を説明する。ここでは、移動通信端末10の1つである「移動通信端末1」と通信相手の装置(対向側装置)との間で通信接続が確立されている。また、「移動通信端末1」は、「S−CSCF1」で示されるS−CSCF60で通信処理されるものとされている。即ち、「S−CSCF1」に対応付けられた(同じ物理ノード20上で実現される)ステート管理機構70の保持部71では、「移動通信端末1」のステート情報(キャッシュ)とキーとが保持されている。分散データベース50及びステート管理機構70に保持される「移動通信端末1」のステート情報には、「移動通信端末1」が通信接続を確立している旨の情報が含まれている。また、S−CSCF60と移動通信端末10とは、P−CSCFを介して信号の送受信が行われてもよい。また、「S−CSCF1」から、オーディットサーバ90に対して、通信接続の監視の指示がなされている。即ち、「S−CSCF1」から、オーディットサーバ90に対して、「移動通信端末1」のステート情報に対してオーディット処理を行うよう指示がなされている。
本処理では、まず、「移動通信端末1」から「S−CSCF1」にステート情報を更新するためのREINVITE(UPDATE)の信号が送信される(S001)。「S−CSCF1」では、当該信号が受信される。続いて、REINVITE(UPDATE)の信号を処理するため、通信相手の装置(対向側装置)側に送信する(S002)。なお、本処理では、通信相手の装置(対向側装置)側の処理は、従来の移動体通信システムと同様の処理であるため説明を省略する。続いて、REINVITE(UPDATE)の信号への応答が、通信相手の装置(対向側装置)側から「S−CSCF1」に送信され、「S−CSCF1」によって受信される(S003)。続いて、当該応答が、「S−CSCF1」から「移動通信端末1」に送信され、「移動通信端末1」によって受信される(S004)。
続いて、当該応答の受信に対するACKが、「移動通信端末1」から「S−CSCF1」に送信され、「S−CSCF1」によって受信される(S005)。続いて、「S−CSCF1」から、分散データベース50に対して、REINVITE(UPDATE)の信号の処理に応じた「移動通信端末1」のステート情報の書き込みが行われる(S006、更新ステップ)。この書き込みによって、「移動通信端末1」のステート情報は更新され、当該ステート情報の更新時刻を示すタイムスタンプが「S−CSCF1」によって把握されている現在時刻に更新される。続いて、分散データベース50から「S−CSCF1」に対して書き込みに対する応答が行われる(S007)。続いて、ACKが、「S−CSCF1」から、通信相手の装置(対向側装置)側に送信される(S008)。
なお、図9では省略しているが、「S−CSCF1」から分散データベース50へのステート情報の読み出し及び書き込みは、「S−CSCF1」に対応付けられた(同一の物理ノード20上の)ステート管理機構70によって行われる。ステート管理機構70を用いた分散データベース50へのアクセスでは、分散データベース50からの応答を待たずに、S−CSCF60は通信処理を進めることができる。従って、S007の処理の前にS008の処理が行われえる。
ここで、「S−CSCF1」に故障が発生する。当該故障により、S−CSCF1は、通信処理が不可能な状態となる。この通信処理には、通信中の移動通信端末10のステート情報の更新処理が含まれる。「S−CSCF1」の故障中に、「移動通信端末1」から「S−CSCF1」にステート情報を更新するためのREINVITE(UPDATE)の信号が送信されても(S009)、「S−CSCF1」では当該信号に対する処理がなされない。
ネットワークマネージャ40では、中止情報出力部43によって、上記の故障が検出され、S−CSCF60によるステート情報の更新が中止されていることが検出される(S010)。続いて、当該検出に応じて、S−CSCF60によるステート情報の更新中止を示す中止情報が、オーディット処理の停止指示として中止情報出力部43からオーディットサーバ90に送信される(S011)。オーディットサーバ90では、中止情報入力部93によって当該中止情報が受信される(S011、中止情報入力ステップ)。中止情報は、中止情報入力部93からオーディット停止部94に入力される。続いて、オーディット停止部94によって、オーディット部92によるオーディット処理が停止される(S012、オーディット停止ステップ)。
上記の「S−CSCF1」の故障後、ネットワークマネージャ40では、また、決定部41によって「S−CSCF1」の故障が把握されて、「S−CSCF1」で通信処理されていた移動通信端末10を、「S−CSCF2」で通信処理されるように決定される。即ち、移動通信端末10を「S−CSCF1」から「S−CSCF2」に移動するように決定する。続いて、決定部41及び移動部42によって、上記の移動を実施する処理が行われる(S013)。
なお、上記の処理のようなオーディット処理の停止が行われない場合、オーディットサーバ90では、ステート情報取得部91によってステート情報の取得が行われ、当該ステート情報に対するオーディット部92によるオーディット処理が行われる。ステート情報の更新中止が、オーディット部92による判断の閾値を超える時間に渡る場合(故障検出や移動の処理に時間がかかる場合)には、移動通信端末10が通信中であるにもかかわらず、オーディット処理により通信接続を終了したものとされてしまう(呼が切断される)こととなる。
上記の移動が完了すると、ネットワークマネージャ40では、中止情報出力部43によって、「S−CSCF2」による、移動通信端末10のステート情報の更新が復旧されていることが検出される。続いて、当該検出に応じて、S−CSCF60によるステート情報の更新復旧を示す復旧情報が、オーディット処理の再開指示として中止情報出力部43からオーディットサーバ90に送信される(S014)。また、当該復旧情報には、ステート情報の更新が中止されていた停止時間が含められる。
オーディットサーバ90では、中止情報入力部93によって当該復旧情報が受信される(S014、中止情報入力ステップ)。復旧情報は、中止情報入力部93からオーディット停止部94に入力される。続いて、オーディット停止部94によって、オーディット部92によるオーディット処理が再開される(S015)。このとき、再開される移動通信端末10のステート情報毎の1度目のオーディット処理の判断の閾値に、復旧情報に含まれる停止時間が加算されるようにする。
続いて、オーディットサーバ90では、オーディット処理を行うタイミングになると、ステート情報取得部91によって、通信接続が確立されている「移動通信端末1」のステート情報が分散データベース50から取得される(S016,S017、ステート情報取得ステップ)。取得されたステート情報は、ステート情報取得部91からオーディット部92に出力される。続いて、オーディット部92によって、オーディット処理が行われる(S018、オーディットステップ)。具体的には、ステート情報の更新時刻から現時点の時刻までの経過時間と閾値とが比較されて、経過時間が閾値を超えていると判断された場合、分散データベース50に格納されているステート情報に含まれる通信中であることを示す情報が削除される(S019,S020、オーディットステップ)。また、この場合、オーディット部92から、通信接続に係る移動通信端末10(「移動通信端末1」及びその通信相手の移動通信端末10)に対してBYE信号が送信される(S021,S022、オーディットステップ)。なお、ここで用いられる閾値は、予め設定された閾値の値に復旧情報に含まれる停止時間が加算されたものである。本処理例では、「移動通信端末1」は通信中であるので、経過時間は閾値を超えていないと判断されて、ステート情報に含まれる通信中であることを示す情報が削除されない。
続いて、REINVITE(UPDATE)の信号が送信されるタイミングになると、「移動通信端末1」から「S−CSCF2」にステート情報を更新するためのREINVITE(UPDATE)の信号が送信される(S023)。続いて、REINVITE(UPDATE)の信号を処理するため、通信相手の装置(対向側装置)側に送信する(S024)。S024の処理は、上記のS002の処理に対応するものであり、以下適宜、処理が行われる。以上が、本実施形態に係る移動体通信システム1で実行される処理であるオーディット方法である。
上述したように本実施形態では、オーディットサーバ90に中止情報が入力された際には、当該入力に応じてステート情報に対するオーディット処理が停止される。従って、S−CSCF60や物理ノード20といった通信処理ノードの故障等によってステート情報の更新が行われない場合には、オーディット処理において、当該ステート情報の修正がなされない。具体的には、当該ステート情報に係る通信接続が終了したものとはされない。更新が中止されているステート情報には、修正するべきでない情報が含まれ得る。具体的には、更新が中止されているステート情報には、移動通信端末10がその時点で行っている通信に係るものがあり、終了したものとするべきでない情報が含まれ得る。即ち、本実施形態によれば、移動体通信システム1におけるオーディット処理による不適切なステート情報の修正を防止することができる。また、これにより、通信の切断を防止することができる。
また、本実施形態のようにステート情報の更新が行われた場合には、オーディットサーバ90に復旧情報が入力されて、当該入力に応じてオーディット処理を再開することとしてもよい。この構成によれば、ステート情報の更新が復旧した場合にオーディット処理を再開することができる。
また、本実施形態のようにオーディット処理が復旧した場合には、更新の中止から復旧までの時間を考慮したオーディット処理が行われてもよい。この構成によれば、オーディット処理が再開された場合に適切なオーディット処理を行うことができる。
また、本実施形態のように更新が中止しているS−CSCF60に対応付けられたステート情報についてのみオーディット処理を停止することとしてもよい。この構成によれば、オーディット処理の停止が必要なステート情報に対してのみ、オーディット処理を停止することができる。但し、オーディットサーバ90に中止情報が入力された際に、一律に全てのステート情報についてのオーディット処理を停止することしてもよい。
なお、上述した実施形態では、通信処理ノードとして、S−CSCF60とステート管理機構70とを含むこととしたが、通信処理を行うと共にステート情報の更新を行う任意のノードとすることができる。また、通信処理ノードにおいて、本実施形態のように必ずしもステート情報をキャッシュとして保持している必要はない。即ち、ステート管理機構を備えていない通信処理ノードとすることもできる。その場合には、S−CSCFは、必要に応じて直接、分散データベースに格納されているステート情報にアクセスする。
また、本実施形態は、仮想マシンを用いて通信処理手段を構成することとしていたが、上述した必ずしも仮想マシンによって実現される必要はない。但し、仮想マシンを用いることで、ステート情報を分散データベース50で保持し、移動通信端末10の通信処理を行う通信処理ノードを変更しうる構成を容易にとることができる。
また、上述した実施形態では、移動通信端末に移動体通信の機能を提供する移動体通信システムであるものとしたが、本発明は、必ずしも移動体通信システムである必要はない。本発明は、固定の通信端末に固定通信の機能を提供する固定通信システムに適用することが可能である。固定の通信端末と固定通信システムとは、上述した移動体通信システムとは異なり、有線で接続されている。上述した実施形態を、移動通信端末を固定通信端末と、移動体通信を固定通信と、移動体通信システムを固定通信システムとそれぞれ置き換えることで本発明に係る固定通信システムの実施形態とすることができる。但し、この場合、具体的なノードは固定通信システムに応じたものである。また、上述した実施形態における移動体通信に特有の情報は、固定通信システムにおいては不要である。また、移動体通信と固定通信とが混在した通信システムにおいて本発明を実施することも可能である。
即ち、本発明は、移動通信端末、移動体通信及び移動体通信システムに限られるものではなく、上述した実施形態と同様の枠組みを有するものであれば、任意の通信端末、任意の通信、及び任意の通信システムに適用することが可能である。
引き続いて、実施形態の変形例について説明する。上述したようにS−CSCF60に、分散データベース50に格納されたステート情報と一貫性を有するステート情報をキャッシュ701として保持するステート管理機構70が対応付けられている場合、オーディットサーバ90のオーディット部92は、ステート管理機構70のキャッシュ701として保持されたステート情報に対してオーディット処理を行うこととしてもよい。
即ち、ステート情報取得部91は、分散データベース50に格納されているステート情報として、ステート管理機構70にキャッシュ701として保持されたステート情報を取得する。ステート情報取得部91は、取得したステート情報をオーディット部92に出力する。
オーディット部92は、ステート情報取得部91から入力されたステート情報に対してオーディット処理を行う。オーディット部92は、ステート情報に含まれる通信中であることを示す情報の削除、あるいは書き換えを上述したように分散データベース50に格納されたステート情報ではなく、ステート管理機構70にキャッシュ701として保持されたステート情報に対して行う。ステート管理機構70では、当該ステート情報を基準として、分散データベース50に格納されたステート情報を書き換える。これにより、ステート管理機構70にキャッシュ701として保持されたステート情報と分散データベース50に格納されたステート情報とが同一のものになるため、上述した実施形態と同様のオーディット処理の結果が得られる。なお、オーディット処理の停止については、上述した実施形態と同様に行われる。
図10のフローチャートを用いて、この場合に移動体通信システム1で実行される処理を説明する。ここでは、移動通信端末10の1つである「移動通信端末1」と通信相手の装置(対向側装置)との間で通信接続が確立されている。また、「移動通信端末1」は、「S−CSCF1」で示されるS−CSCF60で通信処理されるものとされている。即ち、「S−CSCF1」に対応付けられた(同じ物理ノード20上で実現される)ステート管理機構70の保持部71では、「移動通信端末1」のステート情報(キャッシュ)とキーとが保持されている。分散データベース50及びステート管理機構70に保持される「移動通信端末1」のステート情報には、「移動通信端末1」が通信接続を確立している旨の情報が含まれている。また、S−CSCF60と移動通信端末10とは、P−CSCFを介して信号の送受信が行われてもよい。また、「S−CSCF1」から、オーディットサーバ90に対して、通信接続の監視の指示がなされている。即ち、「S−CSCF1」から、オーディットサーバ90に対して、「移動通信端末1」のステート情報に対してオーディット処理を行うよう指示がなされている。
本処理では、まず、「移動通信端末1」から「S−CSCF1」にステート情報を更新するためのREINVITE(UPDATE)の信号が送信される(S101)。「S−CSCF1」では、当該信号が受信される。続いて、REINVITE(UPDATE)の信号を処理するため、通信相手の装置(対向側装置)側に送信する(S102)。なお、本処理では、通信相手の装置(対向側装置)側の処理は、従来の移動体通信システムと同様の処理であるため説明を省略する。続いて、REINVITE(UPDATE)の信号への応答が、通信相手の装置(対向側装置)側から「S−CSCF1」に送信され、「S−CSCF1」によって受信される(S103)。続いて、当該応答が、「S−CSCF1」から「移動通信端末1」に送信され、「移動通信端末1」によって受信される(S104)。
続いて、当該応答の受信に対するACKが、「移動通信端末1」から「S−CSCF1」に送信され、「S−CSCF1」によって受信される(S105)。続いて、以下のように分散データベース50に対して、REINVITE(UPDATE)の信号の処理に応じた「移動通信端末1」のステート情報の書き込みが行われる。まず、「S−CSCF1」から、「S−CSCF1」に対応付けられたステート管理機構70に対して、データ書き込みの依頼がなされる(S106、更新ステップ)。このデータ書き込みは、分散データベース50に対して、REINVITE(UPDATE)の信号の処理に応じた「移動通信端末1」のステート情報の書き込みである。ステート管理機構70では、依頼受付部72によって当該依頼が受け付けられる(S106)。当該依頼に係る情報は、依頼受付部72からロック部73に出力される。
続いて、ロック部73によって、依頼に係る「移動通信端末1」に対応するキーがロックされていないことが確認され、当該キーがロックされる。このロックにより、当該依頼に係るキャッシュへのアクセスが可能になる。続いて、当該依頼は書き込みに係るものであるため、当該依頼を示す情報がロック部73から書込部74に出力される。続いて、書込部74に当該依頼を示す情報が入力されると、まず、書込部74からに依頼に対する応答が「S-CSCF1」に対して出力される(S107)。「S−CSCF1」では、書き込み依頼に対する応答を入力すると通信処理が進められる。具体的には、続いて、ACKが、「S−CSCF1」から、通信相手の装置(対向側装置)側に送信される(S108)。
一方、書込部74から「S−CSCF1」に依頼に対する応答が出力された後、続いて、書込部74によって保持部71にキャッシュとして保持されている情報に対して、当該依頼に係る書き込みが実行される。続いて、書込部74によって分散データベース50に保持されている情報に対して、当該依頼に係る書き込みが実行される(S109,S110、更新ステップ)。書き込みが完了すると、その旨が書込部74からロック解除部76に通知される。続いて、ロック解除部76によって、ロック部73によってロックされたキーのロックが解除される。上記のような処理によって、保持部71にキャッシュ701として保持されているステート情報と、分散データベース50に保持されているステート情報との一貫性が保たれる。
オーディットサーバ90では、オーディット処理を行うタイミングになると、ステート情報取得部91によって、通信接続が確立されている「移動通信端末1」のステート情報がステート管理機構70のキャッシュ701から取得される(S111,S112、ステート情報取得ステップ)。本処理では、ステート情報の取得対象は、分散データベース50ではなく、ステート管理機構70である。但し、上記の通り、ステート管理機構70のキャッシュ701として保持されているステート情報と、分散データベース50に保持されているステート情報との一貫性が保たれているため、分散データベース50から取得する場合と同様のステート情報が得られる。
取得されたステート情報は、ステート情報取得部91からオーディット部92に出力される。続いて、オーディット部92によって、オーディット処理が行われる(S113、オーディットステップ)。具体的には、ステート情報の更新時刻から現時点の時刻までの経過時間と閾値とが比較されて、経過時間が閾値を超えていると判断された場合、ステート管理機構70のキャッシュ701に格納されているステート情報に含まれる通信中であることを示す情報が削除される(S114,S115、オーディットステップ)。ステート管理機構70のキャッシュ701のステート情報が上記のように更新された場合には、分散データベース50に格納されている対応するステート情報がステート管理機構70によって同様に更新される。また、この場合、オーディット部92から、通信接続に係る移動通信端末10(「移動通信端末1」及びその通信相手の移動通信端末10)に対してBYE信号が送信される(S116,S117、オーディットステップ)。経過時間は閾値を超えていないと判断された場合、ステート情報に含まれる通信中であることを示す情報が削除されない(この場合、特段の処理は行われない)。
上述した変形例によれば、オーディットサーバ90から直接、分散データベース50へのアクセスをせずにオーディット処理を行うことができる。従って、オーディット処理のための分散データベース50の処理負荷を減らすことができる。
上述した実施形態では、オーディット処理は、「通話状態」が「通話中」であるステート情報に対して、当該ステート情報に係る通信接続を終了したものとするもの(浮き呼の検出)であった。オーディット処理は、上記のものに限られず、ステート情報の更新時刻に基づいて不整合状態を解消するために当該ステート情報を修正するものであれば任意の処理としてもよい。例えば、上記のオーディット処理に加えて、あるいは代えて、「登録状態」が「登録中」であるステート情報に対するオーディット処理(登録情報の監視)を行ってもよい。
「登録状態」とは、移動通信端末10が、通信を行うためにS−CSCF60に登録されている状態をいう。移動通信端末10は、上述した実施形態と同様に「登録状態」にある場合には、S−CSCF60に対してステート情報の更新を要求する。オーディット部92は、例えば、図11に示すステート情報を更新するか否かの判断基準の表を予め記憶しておき、当該判断基準の2段目の情報に基づいて「登録状態」に係るステート情報に不整合が生じていないかの判断を行う。このように、オーディット部92は、不整合状態を表に記された判断基準に従い、様々な不整合の状態判断検出、修正することが可能である。