(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-20
(45)【発行日】2023-03-29
(54)【発明の名称】制御装置、課金取得方法、課金取得プログラムおよび課金システム
(51)【国際特許分類】
H04W 24/04 20090101AFI20230322BHJP
H04M 15/00 20060101ALI20230322BHJP
H04W 4/24 20180101ALI20230322BHJP
G06Q 30/04 20120101ALI20230322BHJP
H04W 76/10 20180101ALI20230322BHJP
【FI】
H04W24/04
H04M15/00 G
H04M15/00 E
H04W4/24
G06Q30/04
H04W76/10
(21)【出願番号】P 2018107237
(22)【出願日】2018-06-04
【審査請求日】2021-03-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】米永 伸江
【審査官】石原 由晴
(56)【参考文献】
【文献】特表2018-501685(JP,A)
【文献】特表2013-535881(JP,A)
【文献】米国特許出願公開第2015/0358480(US,A1)
【文献】3GPP TS 32.295 V14.0.0,2017年03月17日,pages 12-23
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24-7/26
H04W 4/00-99/00
H04M 15/00
G06Q 30/04
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
通信料金の請求に利用される課金情報を生成する課金生成装置との間で確立される第1のコネクションを経由して、前記課金情報を受信する受信部と、
前記課金生成装置との通信が遮断された後、前記課金生成装置との通信が復旧した場合に、前記課金生成装置との間で前記第1のコネクションおよび第2のコネクションを確立する確立部と、
前記第1のコネクションを経由して、前記通信が復旧した後に生成された第1の課金情報を受信し、前記第2のコネクションを経由して、前記通信の遮断中に生成された第2の課金情報を取得する受信制御部と
を有することを特徴とする制御装置。
【請求項2】
前記確立部は、前記第2の課金情報の取得が完了した場合に、前記第1のコネクションの確立を維持しつつ、前記第2のコネクションを切断することを特徴とする請求項1に記載の制御装置。
【請求項3】
前記受信制御部は、前記第2の課金情報の取得または削除に関する対応指示を含めた要求を、前記第2のコネクションを経由して前記課金生成装置に送信することを特徴とする請求項1に記載の制御装置。
【請求項4】
前記制御装置は、冗長化された複数の制御装置のうちの待機系の制御装置であり、
前記確立部は、前記複数の制御装置と前記課金生成装置との通信が遮断されて復旧した後に、前記課金生成装置との間で、退避用の第2のコネクションを確立し、
前記受信制御部は、前記
退避用の第2のコネクションを経由して、前記第2の課金情報を取得することを特徴とする請求項1に記載の制御装置。
【請求項5】
前記確立部は、3GPP(Third Generation Partnership Project)ネットワークのオフライン課金アーキテクチャで利用されるGPRS(General Packet Radio Service)トンネリングプロトコルを用いて、前記第1のコネクションおよび前記第2のコネクションを確立することを特徴とする請求項1に記載の制御装置。
【請求項6】
コンピュータが、
通信料金の請求に利用される課金情報を生成する課金生成装置との間で確立される第1のコネクションを経由して、前記課金情報を受信し、
前記課金生成装置との通信が遮断された後、前記課金生成装置との通信が復旧した場合に、前記課金生成装置との間で前記第1のコネクションおよび第2のコネクションを確立し、
前記第1のコネクションを経由して、前記通信が復旧した後に生成された第1の課金情報を受信し、前記第2のコネクションを経由して、前記通信の遮断中に生成された第2の課金情報を取得する
処理を実行することを特徴とする課金取得方法。
【請求項7】
コンピュータに、
通信料金の請求に利用される課金情報を生成する課金生成装置との間で確立される第1のコネクションを経由して、前記課金情報を受信し、
前記課金生成装置との通信が遮断された後、前記課金生成装置との通信が復旧した場合に、前記課金生成装置との間で前記第1のコネクションおよび第2のコネクションを確立し、
前記第1のコネクションを経由して、前記通信が復旧した後に生成された第1の課金情報を受信し、前記第2のコネクションを経由して、前記通信の遮断中に生成された第2の課金情報を取得する
処理を実行させることを特徴とする課金取得プログラム。
【請求項8】
課金生成装置と制御装置とを含む課金システムにおいて、
前記課金生成装置は、
通信料金の請求に利用される課金情報を生成する生成部と、
前記制御装置との間で確立される第1のコネクションを経由して、前記課金情報を送信する送信部と、を有し、
前記制御装置は、
前記課金生成装置との間で確立される前記第1のコネクションを経由して、前記課金情報を受信する受信部と、
前記課金生成装置との通信が遮断された後、前記課金生成装置との通信が復旧した場合に、前記課金生成装置との間で前記第1のコネクションおよび第2のコネクションを確立する確立部と、
前記第1のコネクションを経由して、前記通信が復旧した後に生成された第1の課金情報を受信し、前記第2のコネクションを経由して、前記通信の遮断中に生成された第2の課金情報を取得する受信制御部と
を有することを特徴とする課金システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、課金取得方法、課金取得プログラムおよび課金システムに関する。
【背景技術】
【0002】
3GPP(Third Generation Partnership Project)ネットワークのオフライン課金アーキテクチャにおけるGa(Reference point between a CDF and the CGF for CDR transfer)参照ポイントに関して、3GPP TS 32.295で規定されている。オフライン課金は、月々請求される料金請求のように、呼(電話)の開始や終了時刻などの詳細な記録(CDR:Charging Data Record)を通じて、料金請求がされる課金の仕組みである。オフライン課金では、通信中のサービスに影響を即時に通信中に与えることはなく、料金請求後にサービスへの料金未払い等により、サービスが使えなくなるなどの影響が発生する。Gaは、課金データ機能(CDF:Charging Data Function)から課金ゲートウェイ機能(CGF:Charging Gateway Function)への参照ポイントであり、課金データレコード(CDR)の転送に使用される。
【0003】
図23は、オフライン課金アーキテクチャを説明する図である。
図23に示すように、CTF(Charging Trigger Function)は、ネットワーク要素内の課金可能な事象に関する情報を収集し、この情報を対応する課金イベントに組み立て、Rf(Reference Point between the CTF within a 3G network element and the CDF for offline charging)参照ポイントを介してCDFに転送する。CDF(Charging Data Function)は、Rf参照ポイントを経たCTFからのChargingイベントを受信し、受信したChargingイベントに含まれている情報を用いてCDRを生成し、Ga参照ポイントを介してCGF(Charging Gateway Function)に転送する。CGFは、CDFによって生成されたCDRをGa参照ポイントを介して受信し、受信したCDRの検証、統合、再フォーマットなどを行い、CDRファイルを生成してBx(The reference point between any (generic) 3G domain, subsystem or service CGF and the BD)参照ポイントを介して、BD(Billing Domain)に転送する。
【0004】
図23に示すネットワークにおけるCDRパケットの転送について具体的に説明する。まず、CDFは、CGFへData Record Transfer Requestメッセージを用いてCDRを送信する。続いて、CGFは、受信したCDRを冗長RAM(Random Access Memory)メモリユニットまたはミラーリングされた不揮発性メモリなどに格納する。格納したCDRは、BDに転送するためにBxフォーマットに変換される。その後、CGFは、CDFへData Record Transfer Responseメッセージを用いてCDR受信成功を送信する。このときのCause値は「Request Accepted」となる。そして、CDFは、Request Acceptedを受信した後、正常に送信されたCDRを送信バッファから削除する。このようにして、CDFで生成されたCDRは、CGFへリアルタイムに送信される。なお、CDFからCGFへのCDRの転送のための機能を提供するGa参照ポイントに関連するトランスポートプロトコルとしては、GTPプライム(GTP’)が利用される。近年では、システム障害やリンク障害などの障害時に備えて、CGFを冗長化することも行われている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2010-147644号公報
【文献】特表2010-515355号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、障害によって遮断されたCDFとCGFとの通信が復旧した後、障害によって送信されなかった旧CDRと障害が復旧するまでの間に新規に生成された新CDRとが混在することがある。上記技術では、CDFの退避用ストレージに旧CDRを保持したとしても、復旧後にCGFへ自動的に転送するプロトコルの規定がないことから、CDFに直接ログインして旧CDRを手動で収集し、Bxフォーマットに変換してBDに送信することが行われている。
【0007】
また、CDFが、旧CDRを退避用ストレージに保存しておき、障害復旧後に、旧CDRおよび新CDRをCGFへ送信することも考えられるが、この手法では新CDRの送信遅延が発生する。例えば、シーケンス番号100のCDRを送信中に障害が発生し、障害の間にシーケンス番号500までのCDRが生成されたとする。この場合、CDFは、シーケンス番号100から500までの400個の旧CDRを蓄積しておき、障害復旧後に順次送信する。しかし、障害復旧後には新たに生成されたシーケンス番号501の新CDRが、障害時に蓄積された400個の旧CDRの送信後に送信されることになり、リアルタイム送信が実行できない。
【0008】
なお、CDRの送信には、3GPPにおいて「near real time」として1分が設定されており、障害時に蓄積されるCDRの数が多いほど、この制約を遵守することができない。また、障害時に蓄積されたCDRを廃棄することも考えられるが、廃棄すると課金を正しく行うことができなくなるので、好ましい手法ではない。
【0009】
一つの側面では、課金情報の送信遅延を抑制することができる制御装置、課金取得方法、課金取得プログラムおよび課金システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の案では、制御装置は、通信料金の請求に利用される課金情報を生成する課金生成装置との間で確立される第1のコネクションを経由して、前記課金情報を受信する受信部を有する。制御装置は、前記課金生成装置との通信が遮断された後、前記課金生成装置との通信が復旧した場合に、前記課金生成装置との間で前記第1のコネクションおよび第2のコネクションを確立する確立部を有する。制御装置は、前記第1のコネクションを経由して、前記通信が復旧した後に生成された第1の課金情報を受信し、前記第2のコネクションを経由して、前記通信の遮断中に生成された第2の課金情報を取得する受信制御部を有する。
【発明の効果】
【0011】
一実施形態によれば、課金情報の送信遅延を抑制することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例1にかかるオフライン課金アーキテクチャのシステム構成を示す図である。
【
図3】
図3は、実施例1にかかるCDFとCGFの機能構成を示す機能ブロック図である。
【
図4】
図4は、通常運用時から障害復旧後までのコネクションの確立関係を説明する図である。
【
図5】
図5は、実施例1にかかるCDFの障害発生時の全体的な処理の流れを示すフローチャートである。
【
図6】
図6は、実施例1にかかるCGFの障害発生時の全体的な処理の流れを示すフローチャートである。
【
図7】
図7は、実施例1にかかる通信障害時の流れを示すシーケンス図である。
【
図8】
図8は、Data Record Transfer Requestのフォーマット例を示す図である。
【
図9】
図9は、Redirection Requestのフォーマット例を示す図である。
【
図10】
図10は、Data Record Transfer Requestのフォーマット例を示す図である。
【
図11】
図11は、Data Record Transfer Responseのフォーマット例を示す図である。
【
図12】
図12は、実施例1にかかるシステム障害時の流れを示すシーケンス図である。
【
図13】
図13は、Node Alive Responseのフォーマット例を示す図である。
【
図14】
図14は、実施例2にかかるCGF冗長化システムにおける通信障害時の流れを示すシーケンス図である。
【
図15】
図15は、実施例2にかかるCGF冗長化システムにおけるシステム障害時の流れを示すシーケンス図である。
【
図16】
図16は、実施例3にかかる保守端末主導による通信障害時の流れを示すシーケンス図である。
【
図17】
図17は、実施例3にかかる保守端末主導時に退避CDRがない場合の処理の流れを示すシーケンス図である。
【
図18】
図18は、実施例3にかかる保守端末主導による退避CDRの削除時の流れを示すシーケンス図である。
【
図19】
図19は、実施例4にかかる障害復旧後の送信エラー時の流れを示すシーケンス図である。
【
図20】
図20は、実施例4にかかる障害復旧後の応答エラー時の流れを示すシーケンス図である。
【
図21】
図21は、実施例4にかかる退避CDRの最後でエラーが発生した時の流れを示すシーケンス図である。
【
図23】
図23は、オフライン課金アーキテクチャを説明する図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する制御装置、課金取得方法、課金取得プログラムおよび課金システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0014】
[全体構成]
図1は、実施例1にかかるオフライン課金アーキテクチャのシステム構成を示す図である。
図1に示すシステムは、RNC(Radio Network Controller)、SGSN(Serving GPRS Support Node)、eNodeB(E-UTRAN NodeB)、EPC(Evolved Packet Core)、他EPC、BD(Billing Domain)、VGN(VoLTE Gateway Node)、ISP(Internet Service Provider)を有するシステムであり、音声通話などのように月々の料金請求に使用される詳細記録(CDR)を収集して課金を行うオフライン課金システムである。
【0015】
RNCは、無線通信ネットワーク全体を制御する制御局である。SGSNは、3G無線アクセスにおける端末の移動管理や認証(セキュリティ制御)などを行う装置である。eNodeBは、LTE(Long Term Evolution)を利用した携帯電話の通信で使われている基地局である。EPCは、LTEのアクセス網を収容するコアネットワークである。BDは、課金情報を収集して課金を行う課金装置を含む料金請求システムである。VGNは、LTEのデータ通信を用いて音声通話を実現させるためのゲートウェイノードである。ISPは、インターネットを利用するユーザに対して、ユーザのコンピュータをインターネットへ接続するための手段をサービスとして提供する事業者である。
【0016】
また、EPCは、MME(Mobility Management Entity)、PCRF(Policy and Charging Rule Function)/DRA(Diameter Routing Agent)、S-GW(Serving Gateway)、P-GW(Packet Data Network Gateway)、CDF10、CGF30を有する。MMEは、端末の移動管理、認証(セキュリティ制御)およびS-GWとeNodeB区間におけるユーザデータの転送経路の設定処理や制御信号に関する処理を実行する。PCRFは、P-GW、S-GWにおいて適用する、QoSなどのポリシー制御や課金制御ルールを決定するポリシー制御装置である。DRAは、Diameterルーティングエージェントであり、Diameterシグナリングを制御および管理する装置である。S-GWは、LTEおよび3G無線などの3GPP無線を収容し、ユーザデータを伝送する装置ある。また、S-GWは、LTEと3G無線アクセス収容網へのユーザデータ転送経路を切り替えるポイントでもある。P-GWは、IMS(IP Multimedia Subsystem)などのコアネットワーク外のパケット・ネットワーク(PDN:packet data network)との接続点となる装置である。P-GWは、IPアドレスの割り当てなどを行うとともに、3GPPアクセスおよび非3GPPアクセスを収容するゲートウェイ装置である。
【0017】
CDF10は、Rf参照ポイントを経たCTFからのChargingイベントを受信し、受信したChargingイベントに含まれている情報を用いてCDRを生成し、Ga参照ポイントを介してCGFに転送する装置である。CGF30は、CDFによって生成されたCDRを、Ga参照ポイントを介して受信し、受信したCDRの検証、統合、再フォーマットなどを行い、CDRファイルを生成してBx参照ポイントを介して、BDに転送する装置である。
【0018】
また、CDF10は、3GPP標準で課金が定義されているネットワーク要素の実装形態により、システム内での配置位置が異なる。そのような場合であっても、CDF10からCGF30へのGa参照ポインタの位置によってCDRの送信経路を特定することができる。
図2は、CDRの送信経路を示す図である。
図2の(a)は、CDF10が他のネットワーク要素に統合されているシステム例を示す。この場合、物理的なNEがCDRを生成し、それらをCGFに送信する。したがって、Ga参照ポインタは、物理インタフェースとしてNE内に実装される。
【0019】
図2の(b)は、CDF10がネットワーク要素として存在するシステム例を示す。この場合、NE、CDF10、及びCGF30の物理インタフェースとしてすべての参照ポイントを実装する。つまり、NEは、Rf参照ポインタを用いて、システム内から収集した課金イベントをCDF10に送信する。CDF10は、課金イベントからCDRを生成し、Ga参照ポイントを介してCGF30に送信する。CGF30は、CDF10から受信したCDRに対して所定の処理を行い、Bx参照ポインタを介して、BDに送信する。
【0020】
上記いずれの場合でも実施例1を適用することができるが、実施例1では、一例として、
図2の(b)を用いて説明する。
【0021】
このようなシステムにおいて、CGF30は、通信料金の請求に利用される課金情報を生成するCDF10との間で確立される第1のコネクションを経由して、課金情報を受信する。そして、CGF30は、CDF10との通信が遮断された後、CDF10との通信が復旧した場合に、CDF10との間で第1のコネクションおよび第2のコネクションを確立する。その後、CGF30は、第1のコネクションを経由して、通信が復旧した後に生成された第1の課金情報を受信し、第2のコネクションを経由して、通信の遮断中に生成された第2の課金情報を取得する。
【0022】
つまり、CGF30は、障害が復旧した後は、帯域やメモリなどの空きリソースを用いて、通常時に使用される第1のコネクションと異なる第2のコネクションを、CDF10との間で構築する。そして、CGF30は、障害復旧後に生成される通常時のCDRを、障害発生前と同様の第1のコネクションで受信する。その一方で、CGF30は、障害発生中に生成されて退避されていたCDRを、通常の第1のコネクションとは異なる第2のコネクションで受信する。
【0023】
このようにすることで、CGF30は、正常なCDRの受信に影響を与えることなく、障害発生中に生成されたCDRを正常に受信することができるとともに、障害復旧後に正常に生成されるCDRを遅滞なく受信することができる。
【0024】
[機能構成]
次に、
図1に示したシステムの各要素(装置)について説明するが、CDF10とCGF30以外の他の要素は、3GPPの課金アーキテクチャで使用される要素と同様の構成を有するので、詳細な説明は省略する。ここでは、
図3を用いて、CDF10とCGF30について説明する。
図3は、実施例1にかかるCDF10とCGF30の機能構成を示す機能ブロック図である。
【0025】
(CDF10の機能構成)
図3に示すように、CDF10は、通信部11、記憶部12、制御部20を有する。通信部11は、ネットワークを介して、他の装置のとの間の通信を制御する処理部である。例えば、通信部11は、S-GWやP-GWのCTFから課金イベントを受信し、CDRをCGF30に送信する。また、通信部11は、CGF30との間で、コネクションを確立要求や各種メッセージの送受信を実行する。また、通信部11は、CGF30との間で、GTPコネクションを確立して、CDRを送信する。
【0026】
記憶部12は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、制御部20によって生成されたCDRを記憶する。また、記憶部12は、退避DB13を記憶する。退避DB13は、障害等によってCGF30への送信が未完了であるCDR(以降では退避CDRと記載する場合がある)を記憶する記憶部である。例えば、退避DB13は、生成された順でCDRを一時的に記憶する。
【0027】
制御部20は、CDF10全体を司る処理部であり、例えばプロセッサなどである。制御部20は、イベント受付部21、CDR生成部22、CDR送信部23、障害処理部24を有する。なお、イベント受付部21、CDR生成部22、CDR送信部23、障害処理部24は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0028】
イベント受付部21は、CTFから課金イベントを受信する処理部である。具体的には、イベント受付部21は、端末間の通話等が発生したなどの課金対象のイベントが発生した場合に、課金対象の事象に関する情報である課金イベントをCTFから受信する。例えば、イベント受付部21は、ユーザ間で音声通話が発生した場合に、セッションの開始、終了など、通信に必要なネットワークリソースの使用状況を通知する課金イベントをCTFから受信する。
【0029】
CDR生成部22は、イベント受付部21により受け付けられた課金イベントに基づいて、CDRを生成する処理部である。例えば、CDR生成部22は、イベント受付部21から課金イベントを取得し、通話時間、通話時間帯、通話相手などの課金に必要な情報を含むCDRを生成する。そして、CDR生成部22は、生成したCDRをCDR送信部23に出力する。
【0030】
CDR送信部23は、GTPコネクション(GTPトンネル)を介して、CDRをCGF30に送信する処理部である。例えば、CDR送信部23は、CDR10とCGF30との間で通常時に確立されているGTPコネクションを介して、CDR生成部22から入力されたCDRをCGF30に送信する。また、CDR送信部23は、CDRが生成されてから1分以内のように3GPPで規定される遅延時間を遵守して、CDRの送信を実行する。
【0031】
障害処理部24は、CDR退避部25と障害対応部26とを有し、CDF10とCGF30との通信障害、または、CDR10やCGF30のシステム障害を検出し、障害対応を実行する処理部である。例えば、障害処理部24は、CDRを送信した後に受信応答を所定時間の間にCGF30から受信できない場合に、障害を検出する。また、障害処理部24は、障害復旧通知やCDRの再送要求などをCGF30から受信した場合に、障害復旧と判定する。
【0032】
CDR退避部25は、障害が検出された場合に、CDRを退避する処理部である。例えば、CDR退避部25は、障害が検出された場合に、障害が復旧するまでに生成されたCDRを退避DB13に退避させる。このとき、CDR退避部25は、退避対象の各CDRに対して、生成された順、すなわち送信順でシーケンシャル番号を付与することで、退避対象のCDRを管理することもできる。
【0033】
障害対応部26は、障害復旧時に、コネクション等の管理や退避されるCDRの送信を行う処理部である。具体的には、障害対応部26は、CGF30との通信が復旧した場合に、CGF30との間で、通常時に使用されるGTPコネクションを確立する。そして、障害対応部26は、CDR送信部23に通常処理を指示する。これにより、障害復旧後に生成されるCDRは、通常時と同様のGTPコネクションを用いて送信される。
【0034】
障害対応部26は、障害復旧後に上記処理と並行して、CGF30からの要求に応じて、退避されたCDR送信用の退避用GTPコネクションをCGF30との間に確立する。そして、障害対応部26は、新たに退避した退避用GTPコネクションを介して、退避DB13に記憶される各退避CDRをCGF30に送信する。すなわち、障害対応部26は、未使用の帯域やメモリなどの空きリソースを使用して新たな退避用GTPコネクションを確立し、退避用GTPコネクションを介して未送信のCDRの再送を実行する。
【0035】
このとき、障害対応部26は、管理しているシーケンシャル番号の順番で退避CDRを送信することで、CDRを生成順で送信することができる。また、障害対応部26は、退避DB13に記憶される全退避CDRの送信が完了すると、退避用GTPコネクションを切断する。この結果、CDF10とCGF30との間のGTPコネクションは、障害発生前と同様、通常時に使用されるGTPコネクションのみが確立された状態となる。
【0036】
(CGF30の機能構成)
図3に示すように、CGF30は、通信部31、記憶部32、制御部40を有する。通信部31は、ネットワークを介して、他の装置のとの間の通信を制御する処理部である。例えば、通信部31は、CDF10との間で、コネクションを確立要求や各種メッセージの送受信を実行する。また、通信部31は、CDF10との間でGTPコネクションを確立して、CDRを受信する。また、通信部31は、BDとの間の通信を制御する。
【0037】
記憶部32は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。記憶部12は、受信されたCDRを記憶するCDR格納DB33を記憶する。CDR格納DB33は、CDF10から受信されたCDRを、BDに送信されるまで保持する。
【0038】
制御部40は、CGF30全体を司る処理部であり、例えばプロセッサなどである。制御部40は、通常処理部50と障害処理部60を有する。なお、通常処理部50と障害処理部60は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0039】
通常処理部50は、CDR受信部51とCDR処理部52とを有し、障害発生前や障害復旧後に、通常通り、CDF10からCDRを受信してBDへ送信する処理部である。
【0040】
CDR受信部51は、CDF10との間でGTPコネクションを確立し、GTPコネクションを介して、CDRを受信する処理部である。例えば、CDR受信部51は、3GPPの遅延時間を遵守して送信されたCDRを、生成された順でCDF10から順次受信する。そして、CDR受信部51は、受信したCDRを、受信順でCDR格納DB33に格納する。
【0041】
CDR処理部52は、CDF10から受信されたCDRを、Bx参照ポイントを介してBDに送信する処理部である。例えば、CDR処理部52は、CDR格納DB33に記憶されるCDRを読み出し、読み出したCDRに対して、CDRの検証、統合、再フォーマットなどの各種処理を実行する。その後、CDR処理部52は、Bxフォーマットに変換したCDRを、BDに送信する。このとき、CDR処理部52は、CDRが生成された順で、各種処理を実行してBDに送信する。なお、上記各種処理は、3GPPのオフライン課金で実行される一般的な処理と同様の処理なので、詳細な説明は省略する。
【0042】
障害処理部60は、プロトコル制御部61とCDR対応部62とを有し、CDF10とCGF30との通信障害、または、CDR10やCGF30のシステム障害を検出し、障害対応を実行する処理部である。例えば、障害処理部60は、CDRを受信してから予め指定される所定時間が経過するまでに次のCDRを受信しない場合に、通信障害を検出する。また、障害処理部60は、CGF30のシステム障害により各種データ(パケット)の送受信がエラーとなった場合に、障害を検出する。また、障害処理部60は、通信障害やシステム障害が復旧した場合、GTPコネクションの確立要求やCDRの再送要求などをCDF10に送信する。
【0043】
プロトコル制御部61は、障害復旧後に、GTPコネクションの確立を実行する処理部である。例えば、プロトコル制御部61は、障害処理部60によって障害復旧が検出されると、障害発生前の通常時に確立されていたGTPコネクションを、CDF10との間で再度確立する。この結果、CDF10が障害発生後に新たに生成したCDRを、通常時のGTPコネクションを受信することができる。
【0044】
この通常時のGTPコネクションの確立と並行して、プロトコル制御部61は、障害復旧後に、退避用のGTPコネクションの確立を実行する。例えば、プロトコル制御部61は、障害が復旧すると、CDF10に退避用コネクションの確立要求を送信する。そして、プロトコル制御部61は、当該要求に対する応答をCDF10から受信すると、未使用の帯域やメモリなどの空きリソースを使用して、退避された退避CDRの送信用である退避用GTPコネクションをCDF10との間に確立する。その後、プロトコル制御部61は、障害中に退避されたCDRの送信が完了すると、退避用GTPコネクションを切断して、リソースを解放する。
【0045】
CDR対応部62は、障害復旧後に、CDF10内で退避されていた退避CDRに関する処理を実行する処理部である。例えば、CDR対応部62は、退避用GTPコネクションが確立されると、退避用GTPコネクションを介して、障害発生中に生成されて退避されていたCDR(退避CDR)を受信する。そして、CDR対応部62は、受信した退避CDRに受信順でシーケンシャル番号などを付与してCDR格納DB33に格納する。このようにして、CDR対応部62は、退避されていた退避CDRの受信状況を管理する。なお、CDR格納DB33に格納されたCDR(退避CDR)は、障害発生後の新たに生成されたCDR(新CDR)よりも先に、CDR処理部52によってBDに送信される。このようにして、CDRの生成順でBDに送信することができる。
【0046】
[コネクション状況]
次に、
図4を用いて、GTPコネクションの確立関係を説明する。
図4は、通常運用時から障害復旧後までのコネクションの確立関係を説明する図である。
図4に示すように、障害発生前の通常時は、CDF10とCGF30との間で、1つのGTPコネクションを常時確立し、CDRの送受信を実行する。
【0047】
そして、障害が発生し、GTPコネクションが切断されると、CDF10は、生成したCDRを退避DB13に退避させて、CGF30への送信を抑制する。その後、障害が復旧すると、CGF30は、CDF10との間に、通常時のGTPコネクションと退避用GTPコネクションの2つのコネクションを確立する。
【0048】
そして、CDF10は、通常時のGTPコネクションを用いて、障害発生後に生成されたCDRをCGF30に送信する一方で、退避用GTPコネクションを用いて、障害時に退避されていた退避CDRをCGF30に送信する。
【0049】
その後、CGF30は、退避されていた全退避CDRの受信が完了すると、退避用GTPコネクションのみを切断する。この結果、CDF10とCGF30のコネクションは、障害発生前と同様の状態となる。
【0050】
[フローチャート]
次に、CDF10とCGF30のそれぞれについて、障害発生時の全体的な処理の流れを説明する。
【0051】
(CDF10のフローチャート)
図5は、実施例1にかかるCDF10の障害発生時の全体的な処理の流れを示すフローチャートである。CDF10は、CGF30との通信が一定期間以上切断した場合、CDF10のストレージもしくは外部ストレージなどに全CDRを退避する。
【0052】
図5に示すように、CDF10の障害処理部24は、CGF30へData Record Transfer RequestをCGF30へ送信し(S101)、応答メッセージであるData Record Transfer Responseの受信待ちタイマを設定する(S102)。
【0053】
その後、応答メッセージが未受信かつ受信待ちタイマが満了となった場合(S103:Yes)、障害処理部24は、Data Record Transfer RequestをCGF30へ送信し(S104)、応答メッセージであるData Record Transfer Responseの受信待ちタイマを設定する(S105)。
【0054】
そして、応答メッセージが未受信かつ受信待ちタイマが満了かつ再送回数が満了となった場合(S106:Yes)、障害処理部24は、CGF30との間の障害発生を検出する(S107)。その後、障害処理部24は、障害発生中にCDR生成部22による生成されるCDRを退避DB13に退避させる(S108)。
【0055】
そして、障害処理部24は、定期的にCGF30に、Echo Requestを送信する(S109)。ここで、障害処理部24は、Node Alive RequestをCGF30から受信すると(S110:Yes)、障害復旧を検出する(S111)。続いて、障害処理部24は、Node Alive ResponseをCGF30へ送信した後(S112)、Data Record Transfer Request(空パケット)をCGF30へ送信する(S113)。この結果、通常時とは別のGTPコネクションが確立される。
【0056】
一方、障害処理部24は、Echo ResponseをCGF30から受信すると(S114:Yes)、障害復旧を検出する(S115)。続いて、障害処理部24は、Data Record Transfer Request(空パケット)をCGF30へ送信する(S116)。この結果、通常時とは別のGTPコネクションが確立される。
【0057】
(CGF30のフローチャート)
図6は、実施例1にかかるCGF30の障害発生時の全体的な処理の流れを示すフローチャートである。CGF30は、自動または保守者手動で退避されたCDRを収集することを可能とする。なお、ここでは、システム障害時のフローと通信障害時のフローとをあわせて説明するが、これに限定されるものではなく、別々のフローを用いて判定することもできる。
【0058】
図6に示すように、CGF30の通常処理部50は、CDFG10からData Record Transfer Requestを受信すると(S201)、CDRをCDR格納DB33に格納し、Data Record Transfer ResponseをCDF10へ送信する(S202)。
【0059】
その後、CGF30の障害処理部60は、Data Record Transfer RequestをCDF10から受信できない場合(S203:Yes)、通信障害を検出する(S204)。その後、障害処理部60は、Echo RequestをCDF10から受信すると(S205:Yes)、障害復旧を検出し(S206)、Echo ResponseをCDF10へ送信する(S207)。
【0060】
その後、障害処理部60は、Data Record Transfer Request(空パケット)をCDF10から受信すると(S208:Yes)、Data Record Transfer ResponseをCDF10へ送信する(S209)。
【0061】
そして、障害処理部60は、退避CDRが存在する場合(S210:Yes)、退避用のGTPコネクションの確立等を含む退避処理を実行し(S211)、退避CDRが存在しない場合(S210:No)、処理を終了する。
【0062】
一方、CGF30の通常処理部50は、CDFG10からData Record Transfer Requestを受信すると(S212)、通常処理を実行する。その後、CGF30でシステム障害が発生したとする(S213)。
【0063】
そして、システム障害が復旧すると(S214:Yes)、障害処理部60は、Node Alive RequestをCDF10へ送信し(S215)、Node Alive ResponseをCDF10から受信すると(S216)、S208以降を実行する。
【0064】
[シーケンス図(通信障害)]
図7は、実施例1にかかる通信障害時の流れを示すシーケンス図である。
図7に示すように、CDF10とCGF30との間で通信障害が発生し(S301)、その後に障害復旧して(S302)、通信可能となったとする。
【0065】
すると、CDF10は、障害の間に再送を繰り返していたEcho RequestをCGF30に送信する(S303とS304)。障害復旧により、このEcho Requestを受信したCGF30の通常処理部50は、Echo ResponseをCDF10に応答する(S305とS306)。
【0066】
続いて、CDF10の障害処理部24は、Data Record Transfer Request(空パケット)をCGF30に送信する(S307とS308)。その際、オプションIE(Information Element)であるSave CDR Information IEを設定することで、退避CDRが存在することをCGF30に通知する。
図8は、Data Record Transfer Requestのフォーマット例を示す図である。
図8に示すように、Data Record Transfer Requestに、IE(Information Element)として、Packet Transfer Commandなどの既存の項目に加えて、新たに「Save CDR Information」を追加する。CGF30は、この「Save CDR Information」がData Record Transfer Requestに設定されている場合、退避CDRが存在することを検出できる。なお、「Save CDR Information」は、8ビットのTypeによって指定することができる。
【0067】
その後、CDF10とCGF30との間で通常のGTPコネクションが再確立されて、障害発生後の生成されたCDRの送信が、通常のGTPコネクションを介して実行される(S309)。
【0068】
この通常処理と並行して、CGF30の障害処理部60は、退避用のコネクション要求をCDF10に送信し(S310とS311)、CDF10の障害処理部24は、コネクション要求に対する応答をCGF30に送信する(S312とS313)。この結果、CGF30の障害処理部60は、CDF10との間で、退避用GTPコネクションを確立する(S314)。
【0069】
続いて、CGF30の障害処理部60は、CDF10に対し、Redirection Requestを送信する(S315とS316)。このとき、当該メッセージのCause IEに「Saved CDR transfer request」を設定し、CDF10に対し退避CDRの転送を要求する。
図9は、Redirection Requestのフォーマット例を示す図である。
図9に示すように、Redirection Requestの設定として、Address of Recommended Nodeなどの既存の項目に加えて、新たに「Saved CDR transfer request」を追加する。CDF10は、この「Saved CDR transfer request」がRedirection Requestに設定されていることによって、退避CDRの要求を検出することができる。
【0070】
そして、CDF10の障害処理部24は、CGF30からのRedirection Requestの応答として、Redirection ResponseをCGF30に送信する(S317とS318)。このとき、Cause IEに「Request Accepted」が設定される。また、CDF10は、退避用CDR転送のためのシーケンス番号を管理する。
【0071】
その後、CDF10の障害処理部24は、退避していたCDR(退避CDR)を、退避用のGTPコネクションを介してCGF30に送信する(S319とS320)。このとき、CDF10は、CGF30に、Packet Transfer Command IEに「Send Data Record Packet」を設定したData Record Transfer Requestを送信し、CDR(退避CDR)を転送する。
図10は、Data Record Transfer Requestのフォーマット例を示す図である。
図10に示すように、Data Record Transfer Requestの「Packet Transfer Command IE」には、1(Send Data Record Packet)などの4つの情報を指定できる。
【0072】
その後、CGF30の障害処理部60は、受信したCDRを記憶部32のCDR格納DB33に格納し(S321とS322)、受信応答のメッセージとしてData Record Transfer ResponseをCDF10に送信する(S323とS324)。このとき、Data Record Transfer ResponseのメッセージのCause IEに「Request Accepted」が設定される。
図11は、Data Record Transfer Responseのフォーマット例を示す図である。
図11に示すように、Data Record Transfer Responseの「Cause」に、既存の「Request Accepted」を設定して、CDFへ送信される。
【0073】
そして、Data Record Transfer Responseメッセージを受信したCDF10の障害処理部24は、退避DB13から転送済みの退避CDRを削除する(S325)。このようにして、退避されていたCDR(退避CDR)の転送が、退避用GTPコネクションを用いて実行される。
【0074】
その後、CDF10の障害処理部24は、最後の退避CDRを送信するとき、Data Record Transfer RequestのPacket Transfer Command IEに「Last Send Data Record Packet」を設定し、CGF30に終了を通知する(S326とS327)。
図11に示すように、Data Record Transfer Requestの「Packet Transfer Command IE」には、1から4の既存の情報に加えて、新たに5(Last Send Data Record Packet)を追加する。
【0075】
続いて、CGF30の障害処理部60は、受信したCDRを記憶部32のCDR格納DB33に格納し(S328とS329)、受信応答のメッセージとしてData Record Transfer ResponseをCDF10に送信する(S330とS331)。このとき、Data Record Transfer ResponseのメッセージのCause IEに「Request Accepted」が設定される。CGF30で管理される、退避CDR用のインスタンスデータ(シーケンス番号など)は、ここで解放される。
【0076】
その後、Data Record Transfer Responseメッセージを受信したCDF10の障害処理部24は、退避DB13から転送済みの最後の退避CDRを削除する(S332)。そして、CGF30の障害処理部60は、退避用GTPコネクションを切断し、リソースを解放する(S333とS334)。
【0077】
[シーケンス図(システム障害)]
図12は、実施例1にかかるシステム障害時の流れを示すシーケンス図である。
図12に示すように、CGF30にシステム障害が発生してCDF10とCGF30との通信が遮断され(S401)、その後に障害復旧して(S402)、通信可能となったとする。
【0078】
すると、CGF30の通常処理部50は、Node Alive RequestのメッセージをCDF10に送信し(S403とS404)、CDF10は、応答として、Node Alive ResponseをCGF30に送信する(S405とS406)。ここで、オプションIEであるSave CDR Information IEを設定することで、退避CDRが存在することをCGF30に通知することもできる。
図13は、Node Alive Responseのフォーマット例を示す図である。
図13に示すように、Node Alive responseに、IE(Information Element)として、Node Addressなどの既存の項目に加えて、新たに「Save CDR Information」を追加する。CGF30は、この「Save CDR Information」がNode Alive responseに設定されている場合、退避CDRが存在することを検出できる。
【0079】
その後、CDF10の障害処理部24は、Data Record Transfer Request(空パケット)をCGF30に送信する(S407とS408)。その際、S405の代わりに、
図7と同様、オプションIEであるSave CDR Information IEを設定することで、退避CDRが存在することをCGFに通知することもできる。
【0080】
その後、CDF10とCGF30との間で通常のGTPコネクションが再確立されて、障害発生後の生成されたCDRの送信が、通常のGTPコネクションを介して実行される(S409)。
【0081】
この通常処理と並行して、CGF30の障害処理部60は、退避用のコネクション要求をCDF10に送信し(S410とS411)、CDF10の障害処理部24は、コネクション要求に対する応答をCGF30に送信する(S412とS413)。この結果、CGF30の障害処理部60は、CDF10との間で、退避用GTPコネクションを確立する(S414)。
【0082】
続いて、CGF30の障害処理部60は、CDF10に対し、Redirection Requestを送信する(S415とS416)。このとき、当該メッセージのCause IEに「Saved CDR transfer Request」を設定し、CDF10に対し退避CDR30の転送を要求する。
【0083】
そして、CDF10の障害処理部24は、CGF30からのRedirection Requestの応答として、Redirection ResponseをCGF30に送信する(S417とS418)。このとき、Cause IEに「Request Accepted」が設定される。また、CDF10は、退避用CDR転送のためのシーケンス番号を管理する。
【0084】
その後、CDF10の障害処理部24は、退避していたCDR(退避CDR)を、退避用GTPコネクションを介してCGF30に送信する(S419とS420)。このとき、CDF10は、CGF30に、Packet Transfer Command IEに「Send Data Record Packet」を設定したData Record Transfer Requestを送信し、CDR(退避CDR)を転送する。
【0085】
その後、CGF30の障害処理部60は、受信したCDRを記憶部32のCDR格納DB33に格納し(S421とS422)、受信応答のメッセージとしてData Record Transfer ResponseをCDF10に送信する(S423とS424)。このとき、Data Record Transfer ResponseのメッセージのCause IEに「Request Accepted」が設定される。
【0086】
そして、Data Record Transfer Responseメッセージを受信したCDF10の障害処理部24は、退避DB13から転送済みの退避CDRを削除する(S425)。このようにして、退避されていたCDR(退避CDR)の転送が、退避用GTPコネクションを用いて実行される。なお、その後の処理は、
図7と同様なので、詳細な説明は省略する。
【0087】
[効果]
上述したように、CDF10とCGF30との間の通信障害が復旧した際、CDF10は、CDRが退避されていることをCGF30へ通知する。CGF30は、自動で退避されたCDRを収集することができる。このとき、退避されたCDRの収集は、通常のCDR転送用のGTPトンネルを使用せず、CGF30より新たにCDF10へGTPトンネルを作成し、GTP’プロトコルを用いることでnear real timeなCDR転送に影響することなく、自動的に並列転送が可能となる。すなわち、3GPPオフライン課金アーキテクチャのGa参照ポイントにおけるCDR転送方式(GTP’プロトコル)を新たに定義し、通信障害からの復旧の際に、新規に発生するCDRのnear real time転送に影響を与えずにCGF30に転送することができる。
【0088】
この結果、Ga参照ポイントのCDR転送に影響を与えずに、通信障害中に退避されたCDRの転送を実現することが可能となり、CDRが欠損することなく自動で自動的に収集できる。また、Bxフォーマットに変換後に、BDに転送することができる。また、CGF30主導で退避CDRの収集を行うことで、保守者に柔軟な選択を提供することができる。
【0089】
ここで、通信障害中に退避されるCDRの数から、退避されたCDRを一般的なプロトコル規定で転送した場合のCDRの転送遅延時間を算出し、実施例1と一般技術とを対比する。まず、算出条件として、1時間あたりに生成されるCDR数を「1,800,000[CDR/H]」、通信障害が発生した時間は5分間、Ga参照ポイントで1分間に転送できるCDRの数を「60,000[CDR]」とする。
【0090】
このような条件で、退避されたCDRを一般的なプロトコル規定で転送した場合のリアルタイムに生成されたCDRの転送遅延時間を算出する。通信障害が5分間発生しているので、退避されたCDR数は、1,800,000[CDR]/60[分]×5[分]=150,000[CDR]・・・(1)となる。続いて、1分間に転送できるCDR数は、60,000[CDR]なので、(1)の全退避CDRの転送にかかる時間は、150,000[CDR]/60,000[CDR]= 2分30秒・・・(2)となる。また、(2)の退避CDRを転送している時間に生成される新たなCDR数は、1,800,000[CDR]/60[分]×2.5[分]=75,000[CDR]・・・(3)となる。
【0091】
そして、(3)のCDRの転送にかかる時間は、75,000[CDR]/60,000[CDR]=1分15秒・・・(4)となる。さらに、(4)のCDRを転送している時間に新たに生成されるCDR数は、1,800,000[CDR]/60[分]×1.25[分]=37,500[CDR]・・・(5)となり、(5)のCDRの転送にかかる時間は、37,500[CDR]/60,000[CDR]=40秒・・・(6)となる。さらに、(6)のCDRを転送している時間に新たに生成されるCDR数は、1,800,000[CDR]/60[分]×0.63[分]=18,750[CDR]・・・(7)となり、(7)のCDRの転送にかかる時間は、18,750[CDR]/60,000[CDR]=20秒・・・(8)となる。そして、(8)のCDRを転送している時間に新たに生成されるCDR数は、1,800,000[CDR]/60[分]×0.31[分]=9,375[CDR]となる。
【0092】
このように、最終的にリアルタイムに転送できるようになるまでの時間は、(2)+(4)+(6)+(8)+α(約20秒)=約5分となる。つまり、障害復旧後から約5分後に、新たに生成されるCDRのリアルタイム転送が可能となり、約5分の間に生成されるCDRについては3GPPの制約を遵守できない恐れが高い。これに対して、実施例1による手法では、新規のCDRと退避CDRとを別々のコネクションで送信することができるので、一般的なプロトコルによる送信遅延を改善することができる。
【実施例2】
【0093】
ところで、課金アーキテクチャでは、CGF30としてプライマリ(運用系)とセカンダリ(待機系)を用意することで、CGF30を冗長化することもある。この場合、通常時は使用されない空きリソースであるセカンダリのCGFを用いることで、一般的なプロトコルによる送信遅延を改善することができる。
【0094】
そこで、実施例2では、CGF冗長化システムを例にして、退避CDRの転送を説明する。ここでは、プライマリとしてCGF30、セカンダリとしてCGF80を用いるが、CGF80は、CGF30と同様の機能構成を有するものとする。
【0095】
[シーケンス図(通信障害)]
図14は、実施例2にかかるCGF冗長化システムにおける通信障害時の流れを示すシーケンス図である。
図14に示すように、CDF10と各CGF(CGF30、CGF80)との間で通信障害が発生し(S501)、その後に障害復旧して(S502)、通信可能となったとする。
【0096】
すると、CDF10は、障害の間に再送を繰り返していたEcho RequestをCGF30に送信する(S503とS504)。障害復旧により、このEcho Requestを受信したCGF30は、Echo RequestをCDF10に応答する(S505とS506)。
【0097】
続いて、CDF10は、Data Record Transfer Request(空パケット)をCGF30に送信する(S507とS508)。この結果、CDF10とプライマリであるCGF30との間で通常のGTPコネクションが再確立されて、障害発生後の生成されたCDRの送信が、通常のGTPコネクションを介して実行される(S509)。
【0098】
CDF10は、プライマリのCGF30への上記処理と並行して、Echo RequestをセカンダリのCGF80に送信する(S510とS511)。障害復旧により、このEcho Requestを受信したCGF80は、Echo ResponseをCDF10に応答する(S512とS513)。
【0099】
続いて、CDF10は、Data Record Transfer Request(空パケット)をCGF80に送信する(S514とS515)。その際、オプションIEであるSave CDR Information IEを設定することで、退避CDRが存在することをCGFに通知する。
【0100】
そして、CGF80は、Data Record Transfer Requestの応答として、リクエスト受信応答であるData Record Transfer ResponseをCDF10に送信する(S516とS517)。このとき、Cause IEに「Request Accepted」が設定される。
【0101】
その後、CGF80は、退避用のコネクション要求をCDF10に送信し(S518とS519)、CDF10は、コネクション要求に対する応答をCGF80に送信する(S520とS521)。この結果、CDF10とセカンダリであるCGF80との間で、退避用GTPコネクションが確立される(S522)。
【0102】
続いて、CGF860は、CDF10に対し、Redirection Requestを送信する(S523とS524)。このとき、当該メッセージのCause IEに「Saved CDR transfer Request」を設定し、CDF10に対し退避CDRの転送を要求する。
【0103】
そして、CDF10は、CGF80からのRedirection Requestの応答として、Redirection ResponseをCGF80に送信する(S525とS526)。このとき、Cause IEに「Request Accepted」が設定される。また、CDF80は、退避用CDR転送のためのシーケンス番号を管理する。
【0104】
その後、CDF10は、退避していたCDR(退避CDR)を、退避用のGTPコネクションを介してCGF80に送信する(S527とS528)。このとき、CDF10は、CGF80に、Packet Transfer Command IEに「Send Data Record Packet」を設定したData Record Transfer Requestを送信し、CDR(退避CDR)を転送する。
【0105】
その後、CGF80は、受信したCDRを記憶部に格納し(S529)、受信応答のメッセージとしてData Record Transfer ResponseをCDF10に送信する(S530とS531)。このとき、Data Record Transfer ResponseのメッセージのCause IEに「Request Accepted」が設定される。
【0106】
そして、Data Record Transfer Responseメッセージを受信したCDF10は、退避DB13から転送済みの退避CDRを削除する(S532)。このようにして、退避されていたCDR(退避CDR)が、退避用のGTPコネクションを用いてセカンダリのCGF80に転送される。
【0107】
その後、CDF10は、最後の退避CDRを送信するとき、Data Record Transfer RequestのPacket Transfer Command IEに「Last Send Data Record Packet」を設定し、CGF80に終了を通知する(S533とS534)。
【0108】
続いて、CGF80は、受信したCDRを記憶部に格納し(S535)、受信応答のメッセージとしてData Record Transfer ResponseをCDF10に送信する(S536とS537)。このとき、Data Record Transfer ResponseのメッセージのCause IEに「Request Accepted」が設定される。
【0109】
その後、Data Record Transfer Responseメッセージを受信したCDF10は、退避DB13から転送済みの最後の退避CDRを削除する(S538)。そして、CGF80は、退避用のGTPコネクションを切断し、リソースを解放する(S539とS540)。
【0110】
[シーケンス図(システム障害)]
図15は、実施例2にかかるCGF冗長化システムにおけるシステム障害時の流れを示すシーケンス図である。
図15に示すように、CGF30にシステム障害が発生してCDF10とCGF30との通信が遮断され(S601とS602)、その後に障害復旧して(S603)、通信可能となったとする。
【0111】
すると、CGF30は、Node Alive RequestのメッセージをCDF10に送信し(S604とS605)、CDF10は、応答として、Node Alive ResponseをCGF30に送信する(S606とS607)。
【0112】
その後、CDF10は、Data Record Transfer Request(空パケット)をCGF30に送信する(S608とS609)。このようにして、CDF10とCGF30との間で通常のGTPコネクションが再確立されて、障害発生後の生成されたCDRの送信が、通常のGTPコネクションを介して実行される(S610)。
【0113】
プライマリのCGF30への上記処理と並行して、CGF80は、Node Alive RequestのメッセージをCDF10に送信し(S611とS612)、CDF10は、応答として、Node Alive ResponseをCGF30に送信する(S613とS614)。ここで、CDF10は、Node Alive Responseに「Save CDR Information」を設定することで、退避CDRが存在することをCGF80に通知する。
【0114】
その後、GF80は、退避用のコネクション要求をCDF10に送信し(S615とS616)、CDF10は、コネクション要求に対する応答をCGF80に送信する(S617とS618)。この結果、CGF80は、CDF10との間で、退避用のGTPコネクションを確立する(S619)。なお、その後の処理は、
図14と同様なので、詳細な説明は省略する。
【0115】
このように、冗長化構成されているセカンダリのCGF80を利用することで、プライマリであるCGF30の処理負荷が高くなることを抑制でき、通常業務の影響を極小化し、CGF30の故障発生や処理遅延発生を抑制することができる。なお、実施例2では、CDF10とプライマリであるCGF80との間で、退避用のGTPコネクションを確立する例を説明したが、これに限定されるものではない。例えば、CGF30の縮退時用としてCDF10とCGF80との間で通常時から確立されるGTPコネクションを用いて、CDF10からCGF80へ退避CDRを転送することもできる。
【実施例3】
【0116】
ところで、退避されていたCDRの転送は、保守者のタイミングで実行することもできる。そこで、実施例3では、保守者が使用する保守端末90が主導で、退避されていたCDRの取得などの各種処理を実行する例を説明する。なお、ここでは、一例として、通信障害を例にして説明すると、システム障害や冗長化構成であっても同様に処理することができる。
【0117】
[シーケンス図(通信障害)]
図16は、実施例3にかかる保守端末主導による通信障害時の流れを示すシーケンス図である。
図16に示すように、CDF10とCGF30との間で通信障害が発生し(S701)、その後に障害復旧して(S702)、通信可能となったとする。
【0118】
すると、CDF10は、障害の間に再送を繰り返していたEcho RequestをCGF30に送信する(S703とS704)。障害復旧により、このEcho Requestを受信したCGF30は、Echo ResponseをCDF10に応答する(S705とS706)。
【0119】
続いて、CDF10は、Data Record Transfer Request(空パケット)をCGF30に送信する(S707とS708)。その際、CDF10は、オプションIEであるSave CDR Information IEを設定することで、退避CDRが存在することをCGF30に通知する。この結果、CDF10とCGF30との間で通常のGTPコネクションが再確立されて、障害発生後の生成されたCDRの送信が、通常のGTPコネクションを介して実行される(S709)。
【0120】
その後、保守端末90は、CGF30に、退避CDRの収集要求を送信する(S710とS711)。この要求を受信したCGF30の障害処理部60は、退避用のコネクション要求をCDF10に送信し(S712とS713)、CDF10は、コネクション要求に対する応答をCGF30に送信する(S714とS715)。この結果、CGF30の障害処理部60は、CDF10との間で、退避用のGTPコネクションを確立する(S716)。その後の処理は、実施例1の
図7と同様なので、詳細な説明は省略する。
【0121】
なお、CGF30の障害処理部60は、退避用のGTPコネクションを切断してリソースを解放した後(S717とS718)、退避CDRの収集終了通知(正常)を保守端末90に送信する(S719とS720)。
【0122】
[シーケンス図(退避CDRなし)]
図17は、実施例3にかかる保守端末主導時に退避CDRがない場合の処理の流れを示すシーケンス図である。
図17に示すように、CDF10とCGF30との間で発生した通信障害が復旧し、通常処理が実行されているものとする(S801)。
【0123】
その後、保守端末90は、CGF30に、退避CDRの収集要求を送信する(S802とS803)。この要求を受信したCGF30の障害処理部60は、退避用のコネクション要求をCDF10に送信し(S804とS805)、CDF10は、コネクション要求に対する応答をCGF30に送信する(S806とS807)。この結果、CGF30の障害処理部60は、CDF10との間で、退避用のGTPコネクションを確立する(S808)。
【0124】
続いて、CGF30の障害処理部60は、CDF10に対し、Redirection Requestを送信する(S809とS810)。このとき、当該メッセージのCause IEに「Saved CDR transfer Request」を設定し、CDF10に対し退避CDR30の転送を要求する。
【0125】
そして、CDF10の障害処理部24は、CGF30からのRedirection Requestの応答として、Redirection ResponseをCGF30に送信する(S811とS812)。このとき、障害処理部24は、退避CDRが存在しないことから、Cause IEに「CDR does not exist」を設定する。なお、Redirection Responseの設定として、既存の項目に加えて、新たに「CDR does not exist」を追加する。CGF30は、この「CDR does not exist」がRedirection Responseに設定されていることによって、退避CDRがないことを検出することができる。
【0126】
この結果、CGF30の障害処理部60は、退避用のGTPコネクションを切断してリソースを解放し(S813とS814)、退避CDRの収集終了通知(退避CDRなし)を保守端末90に送信する(S815とS816)。
【0127】
[シーケンス図(退避CDRの削除)]
図18は、実施例3にかかる保守端末主導による退避CDRの削除時の流れを示すシーケンス図である。
図18に示すように、CDF10とCGF30との間で発生した通信障害が復旧し、通常処理が実行されているものとする(S901)。
【0128】
その後、保守端末90は、CGF30に、退避CDRの削除要求を送信する(S902とS903)。この要求を受信したCGF30の障害処理部60は、退避用のコネクション要求をCDF10に送信し(S904とS905)、CDF10は、コネクション要求に対する応答をCGF30に送信する(S906とS907)。この結果、CGF30の障害処理部60は、CDF10との間で、退避用のGTPコネクションを確立する(S908)。
【0129】
続いて、CGF30の障害処理部60は、CDF10に対し、Redirection Requestを送信する(S909とS910)。このとき、当該メッセージのCause IEに「Saved CDR delete request」を設定し、CDF10に対し退避CDR30の削除を要求する。なお、
図9に示すように、Redirection Requestの設定として、Address of Recommended Nodeなどの既存の項目に加えて、新たに「Saved CDR delete request」を追加する。CDF10は、この「Saved CDR delete request」がRedirection Requestに設定されていることによって、退避CDRの削除要求を検出することができる。
【0130】
そして、CDF10の障害処理部24は、CGF30からのRedirection Requestに「Saved CDR delete request」が設定されていることにより、退避DB13に退避していた退避CDRを、CGF30へ送信することなく削除する(S911)。
【0131】
その後、CDF10の障害処理部24は、「Request Accepted」が設定されたRedirection ResponseをCGF30に送信する(S912とS913)。そして、CGF30の障害処理部60は、退避用のGTPコネクションを切断してリソースを解放し(S914とS915)、退避CDRの削除終了通知(正常)を保守端末90に送信する(S916とS917)。
【0132】
[効果]
上述したように、CGF30主導で退避CDRの収集を行うことで、退避CDRの取得や削除などのサービスを提供することができる結果、保守者は、障害状況や契約状況等に基づく柔軟な対応を選択することができる。また、柔軟な対応の提供により、汎用性が向上し、システムの普及も期待できる。
【実施例4】
【0133】
ところで、障害復旧後の退避CDRの送信中に新たな障害が発生し、退避CDRの送信エラーが発生することも考えられる。そこで、実施例4では、退避CDRの送信エラー時の対応例を説明する。
【0134】
[送信エラー]
図19は、実施例4にかかる障害復旧後の送信エラー時の流れを示すシーケンス図である。
図19に示すように、S1001からS1014までの処理は、
図7のS310からS314までの処理と同様なので、詳細な説明は省略する。
【0135】
退避用のGTPコネクションが確立されると、CGF30の障害処理部60は、CDF10に対し、「Saved CDR transfer request」を設定したRedirection Requestを送信する(S1015とS1016)。
【0136】
そして、CDF10は、CGF30からのRedirection Requestの応答として、「Request Accepted」を設定したRedirection Responseを、CGF30の障害処理部60に送信する(S1017とS1018)。
【0137】
その後、CDF10は、シーケンシャル番号1(Seq:1)の退避CDRに該当するData Record Transfer Requestに、「Send Data Record Packet」を設定し、退避用のGTPコネクションを介して、障害処理部60に送信する(S1019とS1020)。ところが、転送途中で通信障害が発生し、CGF30の障害処理部60はシーケンシャル番号1の退避CDRを受信できない。このため、CGF30の障害処理部60は、CDF10に、応答であるData Record Transfer Responseを送信できない。
【0138】
そして、障害が復旧すると(S1021)、CDF10は、シーケンシャル番号1(Seq:1)のData Record Transfer Requestの受信応答を受信していないことから、退避用のGTPコネクションを介して、シーケンシャル番号1(Seq:1)の退避CDR(Data Record Transfer Request)を、CGF30の障害処理部60に再度送信する(S1022とS1023)。このときのData Record Transfer Requestにも「Send Data Record Packet」が設定される。
【0139】
その後、CGF30の障害処理部60は、受信したシーケンシャル番号1の退避CDRを記憶部32のCDR格納DB33に格納し(S1024とS1025)、受信応答のメッセージとしてData Record Transfer ResponseをCDF10に送信する(S1026とS1027)。
【0140】
そして、Data Record Transfer Responseメッセージを受信したCDF10は、退避DB13から、転送済みであるシーケンシャル番号1の退避CDRを削除する(S1028)。このようにして、退避されていたCDR(退避CDR)の転送が、退避用のGTPコネクションを用いて実行される。その後のシーケンシャル番号:2以降の送信処理については、
図7のS319からS334と同様なので、詳細な説明は省略する。
【0141】
[応答エラー]
図20は、実施例4にかかる障害復旧後の応答エラー時の流れを示すシーケンス図である。
図20に示すように、S2001からS2014までの処理は、
図7のS310からS314までの処理と同様なので、詳細な説明は省略する。
【0142】
退避用のGTPコネクションが確立されると、CGF30の障害処理部60は、CDF10に対し、「Saved CDR transfer request」を設定したRedirection Requestを送信する(S2015とS2016)。
【0143】
そして、CDF10は、CGF30からのRedirection Requestの応答として、「Request Accepted」を設定したRedirection Responseを、CGF30の障害処理部60に送信する(S2017とS2018)。
【0144】
その後、CDF10は、シーケンシャル番号1(Seq:1)の退避CDRに該当するData Record Transfer Requestに、「Send Data Record Packet」を設定し、退避用のGTPコネクションを介して、障害処理部60に送信する(S2019とS2020)。
【0145】
続いて、CGF30の障害処理部60は、受信したCDRを記憶部32のCDR格納DB33に格納し(S2021とS2022)、受信応答のメッセージとして、「Request Accepted」を設定したData Record Transfer ResponseをCDF10に送信する(S2023と2024)。ところが、転送途中で通信障害が発生し、CDF10は、Data Record Transfer Responseを受信できない。
【0146】
そして、障害が復旧すると(S2025)、CDF10は、シーケンシャル番号1(Seq:1)のData Record Transfer Requestの受信応答を受信していないことから、退避用のGTPコネクションを介して、シーケンシャル番号1(Seq:1)のCDR(Data Record Transfer Request)を、CGF30の障害処理部60に再度送信する(S2026とS2027)。このときのData Record Transfer Requestにも「Send Data Record Packet」が設定される。
【0147】
その後、CGF30の障害処理部60は、受信したシーケンシャル番号1の退避CDRがすでに受信済みであることから破棄し(S2028)、受信応答のメッセージとして、「Request already fulfilled」を設定したData Record Transfer ResponseをCDF10に送信する(S2029とS2030)。
【0148】
その後のシーケンシャル番号:2以降の送信処理については、
図7のS319からS334と同様なので、詳細な説明は省略する。
【0149】
[最後のCDRで送信エラー]
図21は、実施例4にかかる退避CDRの最後でエラーが発生した時の流れを示すシーケンス図である。
図21に示すように、障害が発生してから最後の退避CDRを転送するまでの処理であるS3001からS3011は、
図7のS301からS325までの処理と同様なので、詳細な説明は省略する。
【0150】
その後、CDF10は、最後のCDRである(Seq:Last)の退避CDRを退避CDRに該当するData Record Transfer Requestに、「Last Send Data Record Packet」を設定し、退避用のGTPコネクションを介して、障害処理部60に送信する(S3012とS3013)。
【0151】
続いて、CGF30の障害処理部60は、受信した最後の退避CDRを記憶部32のCDR格納DB33に格納する(S3014とS3015)。ここで、CGF30の障害処理部60は、退避CDR用のインスタンスデータ(シーケンス番号など)を解放する。
【0152】
そして、CGF30の障害処理部60は、受信応答のメッセージとして、「Request Accepted」を設定したData Record Transfer ResponseをCDF10に送信する(S3016とS3017)。ところが、転送途中で通信障害が発生し、CDF10は、Data Record Transfer Responseを受信できない。
【0153】
そして、障害が復旧すると(S3018)、CDF10は、シーケンシャル番号(Seq:Lat)のData Record Transfer Requestの受信応答を受信していないことから、退避用のGTPコネクションを介して、シーケンシャル番号(Seq:Last)のCDR(Data Record Transfer Request)を、CGF30の障害処理部60に再度送信する(S3019とS3020)。このときのData Record Transfer Requestにも「Last Send Data Record Packet」が設定される。
【0154】
その後、CGF30の障害処理部60は、受信したシーケンシャル番号1の退避CDRがすでに受信済みであることから破棄する(S3021)。そして、CGF30の障害処理部60は、退避CDR用のインスタンスデータが解放済みであることから、受信応答のメッセージとして、「Instance data already released」を設定したData Record Transfer ResponseをCDF10に送信する(S3022とS3023)。なお、
図10に示すように、Data Record Transfer Requestの「Packet Transfer Command IE」には、1(Send Data Record Packet)などの4つの情報を以前から指定できるが、新たな項目として「Instance data already released」を設定する。
【0155】
その後、Data Record Transfer Responseメッセージを受信したCDF10は、退避DB13から転送済みの最後の退避CDRを削除する(S3024)。そして、CGF30の障害処理部60は、退避用のGTPコネクションを切断し、リソースを解放する(S3025とS3026)。なお、S3017からS3018までの障害発生中に新たに発生した退避CDRに対しては、S3025の前に、実施例1と同様の手法で転送処理が実行される。
【0156】
[効果]
上述したように、退避CDRの送信処理でエラーが発生した場合であっても、エラーのタイミングに関わらず、退避エラーの送信を遅滞なく実行することができるとともに、シーケンシャル番号を遵守して送信することができる。
【実施例5】
【0157】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0158】
[対応指示の指定]
上記実施例では、退避CDRの削除を指定する例を説明したが、これに限定されるものではない。例えば、退避CDRの取得開始時間の指定、複数のCGFが存在する場合に転送先のCGFを指定するなど、各種対応指示を指定することもできる。
【0159】
[CGFの冗長化]
例えば、CGFが冗長化されている場合に待機系のCGFを利用して退避CDRを取得する例を説明したが、退避用のGTPコネクションの代わりに、縮退時用のGTPコネクションを利用することもできる。この場合、待機系のCGFは、障害復旧後に、退避用のコネクションの確立を抑制し、通常時に確立される縮退時用のGTPコネクションのみを復旧させることもできる。
【0160】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【0161】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0162】
[ハードウェア]
図22は、ハードウェア構成例を説明する図である。なお、CDF10とCGF30とは同様の構成を有するので、ここでは、情報処理装置100として説明する。
図22に示すように、情報処理装置100は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図22に示した各部は、バス等で相互に接続される。
【0163】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図3に示した機能を動作させるプログラムやDBを記憶する。
【0164】
プロセッサ10dは、
図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図3等で説明した各機能を実行するプロセスを動作させる。例えば、CDF10を例にすると、このプロセスは、CDF10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、イベント受付部21、CDR生成部22、CDR送信部23、障害処理部24等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、イベント受付部21、CDR生成部22、CDR送信部23、障害処理部24等と同様の処理を実行するプロセスを実行する。
【0165】
このように情報処理装置100は、プログラムを読み出して実行することで制御方法を実行する情報処理装置として動作する。また、情報処理装置100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0166】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0167】
10 CDF
11 通信部
12 記憶部
13 退避DB
20 制御部
21 イベント受付部
22 CDR生成部
23 CDR送信部
24 障害処理部
25 CDR退避部
26 障害対応部
30 CGF
31 通信部
32 記憶部
33 CDR格納DB
40 制御部
50 通常処理部
51 CDR受信部
52 CDR処理部
60 障害処理部
61 プロトコル制御部
62 CDR対応部