(57)【要約】  アカウンティング要求を複数の課金データ機能（ＣＤＦ）に分配するシステム、方法、及びソフトウェア。１つの実施形態は、ＣＤＦに接続する分配器ユニットを含む。ＣＤＦは、それらのキューを分配器ユニットに登録する。セッションのアカウンティング要求（例えば、中間又は停止）を受信すると、分配器ユニットは、セッションについて以前に選択された宛先キューを示す識別子をこのアカウンティング要求から抽出する。宛先キューが、新たなセッションも進行中のセッションも受け付けていないとき、分配器ユニットは、セッションの優先順位リストを特定し、この優先順位リストにおける宛先キューの位置を特定し、宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する代替のキューを得るために優先順位リストを検索する。分配器ユニットは、次に、この代替のキューをセッションの代替の宛先キューとして選択する。【選択図】図１
2019518281.tif 000002
【特許請求の範囲】
【請求項１】
インターフェースを通じてオフライン課金システム（ＯＦＣＳ）の複数の課金データ機能（ＣＤＦ）に接続し、前記ＣＤＦに関連したキューを登録するための前記ＣＤＦからの情報を受信するように構成された分配器ユニット、
を備え、
前記分配器ユニットは、前記インターフェースを通じて課金トリガー機能（ＣＴＦ）からセッションの最初のアカウンティング要求を受信し、分配アルゴリズムに基づいて前記セッションの前記キューの優先順位リストを生成し、前記セッションの前記優先順位リストから宛先キューを選択し、前記最初のアカウンティング要求を、前記インターフェースを通じて前記宛先キューに送信するように構成されたプロセッサを備え、
前記プロセッサは、前記インターフェースを通じて前記ＣＴＦから前記セッションの後続のアカウンティング要求を受信し、前記後続のアカウンティング要求のパラメーターから前記セッションについて以前に選択された前記宛先キューを示す第１の識別子を抽出し、前記宛先キューのステータスを判断するように構成され、
前記宛先キューの前記ステータスが、前記宛先キューが新たなセッションも進行中のセッションも受け付けていないことを示しているとき、前記プロセッサは、
前記セッションの前記優先順位リストを特定し、
前記優先順位リストにおける前記宛先キューの位置を特定し、
前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する第１の代替のキューを得るために前記優先順位リストを検索し、
前記セッションについて前記第１の代替のキューを代替の宛先キューとして選択し、
前記後続のアカウンティング要求を、前記インターフェースを通じて前記代替の宛先キューに送信する、
ように構成されている、システム。
【請求項２】
前記後続のアカウンティング要求は、ダイアメーターアカウンティング要求（ＡＣＲ）を含み、
前記プロセッサは、前記宛先キューを示す前記第１の識別子を前記ＡＣＲの宛先ホスト属性値対（ＡＶＰ）から抽出するように構成されている、請求項１に記載のシステム。
【請求項３】
前記プロセッサは、前記後続のアカウンティング要求のアカウンティング回答を、前記代替の宛先キューに関連したＣＤＦから前記インターフェースを通じて受信し、前記代替の宛先キューの第２の識別子を前記アカウンティング回答のパラメーター内に追加し、前記アカウンティング回答を、前記インターフェースを通じて前記ＣＴＦに向けて送信するように構成され、
前記アカウンティング回答は、ダイアメーターアカウンティング回答（ＡＣＡ）を含み、
前記プロセッサは、前記代替の宛先キューの前記第２の識別子を前記ＡＣＡのオリジンホスト属性値対（ＡＶＰ）に追加するように構成されている、請求項１に記載のシステム。
【請求項４】
前記プロセッサが、前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する前記第１の代替のキューを前記優先順位リストにおいて見つけることができないとき、前記プロセッサは、新たなセッションを受け付けていることを示すステータスを有する第２の代替のキューを前記優先順位リストの最上位から検索するように構成されている、請求項１に記載のシステム。
【請求項５】
前記プロセッサが、新たなセッションを受け付けていることを示すステータスを有する前記第２の代替のキューを前記優先順位リストにおいて見つけることができないとき、前記プロセッサは、前記ＯＦＣＳが過負荷状態にあると判断するように構成されている、請求項４に記載のシステム。
【請求項６】
セッションのアカウンティング要求を分配器ユニットからオフライン課金システム（ＯＦＣＳ）の複数の課金データ機能（ＣＤＦ）に分配する方法であって、
前記分配器ユニットにおいて、前記ＣＤＦに関連したキューを登録するための前記ＣＤＦからの情報を受信することと、
前記分配器ユニットにおいて、セッションの最初のアカウンティング要求を課金トリガー機能（ＣＴＦ）から受信することと、
前記分配器ユニットにおいて、分配アルゴリズムに基づいて前記セッションについて前記キューの優先順位リストを生成することと、
前記分配器ユニットにおいて、前記セッションについて前記優先順位リストから宛先キューを選択することと、
前記最初のアカウンティング要求を前記分配器ユニットから前記宛先キューに送信することと、
前記分配器ユニットにおいて、前記セッションの後続のアカウンティング要求を前記ＣＴＦから受信することと、
前記分配器ユニットにおいて、前記セッションについて以前に選択された前記宛先キューを示す第１の識別子を前記後続のアカウンティング要求のパラメーターから抽出することと、
前記分配器ユニットにおいて、前記宛先キューのステータスを判断することと、
前記宛先キューの前記ステータスが、前記宛先キューが新たなセッションも進行中のセッションも受け付けていないことを示しているとき、
前記セッションの前記優先順位リストを特定することと、
前記優先順位リストにおける前記宛先キューの位置を特定することと、
前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する第１の代替のキューを得るために前記優先順位リストを検索することと、
前記セッションについて前記第１の代替のキューを代替の宛先キューとして選択することと、
前記後続のアカウンティング要求を前記分配器ユニットから前記代替の宛先キューに送信することと、
を含む、方法。
【請求項７】
前記後続のアカウンティング要求は、ダイアメーターアカウンティング要求（ＡＣＲ）を含み、
前記第１の識別子を前記後続のアカウンティング要求の前記パラメーターから抽出することは、前記ＡＣＲの宛先ホスト属性値対（ＡＶＰ）から前記宛先キューを示す前記第１の識別子を抽出することを含む、請求項６に記載の方法。
【請求項８】
前記分配器ユニットにおいて、前記後続のアカウンティング要求のアカウンティング回答を前記代替の宛先キューに関連したＣＤＦから受信することであって、前記アカウンティング回答は、ダイアメーターアカウンティング回答（ＡＣＡ）を含むことと、
前記分配器ユニットにおいて、前記代替の宛先キューの第２の識別子を前記ＡＣＡのオリジンホスト属性値対（ＡＶＰ）に追加することと、
前記ＡＣＡを前記分配器ユニットから前記ＣＴＦに向けて送信することと、
を更に含む、請求項６に記載の方法。
【請求項９】
前記検索が、前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する前記第１の代替のキューを前記優先順位リストにおいて見つけることができないとき、新たなセッションを受け付けていることを示すステータスを有する第２の代替のキューを前記優先順位リストの最上位から検索すること、
を含む、請求項６に記載の方法。
【請求項１０】
前記検索が、新たなセッションを受け付けていることを示すステータスを有する前記第２の代替のキューを前記優先順位リストにおいて見つけることができないとき、前記分配器ユニットにおいて、前記ＯＦＣＳが過負荷状態にあると判断すること、
を含む、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信システムの分野に関し、特に、オフライン課金に関する。
【背景技術】
【０００２】
サービスプロバイダは、通常、非常に多くの音声サービス及びデータサービスをエンドユーザー（加入者とも呼ばれる）に提供する。音声サービスの例は、音声呼、呼自動転送、コールウェイティング等である。データサービスの例は、ストリーミングオーディオ、ストリーミングビデオ、ボイスオーバーインターネットプロトコル（ＶｏＩＰ：Voice over Internet Protocol）、オンラインゲーミング、及びＩＰ−ＴＶである。データサービスは、エンドユーザーをインターネット等の外部のパケットデータネットワーク（ＰＤＮ：Packet Data Networks）とインターフェースするパケットコアネットワークによって管理される。パケットコアネットワークの幾つかの例は、汎用パケット無線サービス（ＧＰＲＳ：General Packet Radio Service）コアネットワーク、ロングタームエボリューション（ＬＴＥ：Long Term Evolution）ネットワークの進化形パケットコア（ＥＰＣ：Evolved Packet Core）等である。携帯電話、パーソナルデータアシスタント、スマートフォン、ノートブックコンピューター等のモバイルデバイスは、１つ以上の基地局とのエアインターフェースを介してネットワークによって提供されるデータサービスにアクセスすることができる。
【０００３】
サービスプロバイダは、オフライン課金機能及びオンライン課金機能を用いて、各デバイスが様々なサービスにアクセスすることによって招かれるリソース使用の記録を取る。３ＧＰＰ／３ＧＰＰ２標準規格グループは、様々なネットワークドメイン（例えば、回線交換ドメイン、パケット交換ドメイン、及び／又は無線ドメイン）、ＩＰマルチメディアサブシステム、及び新たに登場した３Ｇ／ＯＭＡアプリケーションサービスにおいてオンライン課金システム及びオフライン課金システムを実施するのに用いることができる一組の仕様を定義してきた。
【０００４】
３ＧＰＰ  ＴＳ３２．２４０によれば、オフライン課金は、ネットワークリソース使用の課金情報がリソース使用と同時に収集されるプロセスである。この課金情報は、課金機能チェーンを通され、その結果、課金データレコード（ＣＤＲ：Charging Data Record）ファイルが生成される。これらのファイルは、加入者料金請求及び／又は事業者間アカウンティングのためにネットワーク事業者の料金請求（Billing）ドメインに転送される。オフライン課金を実施するために、課金トリガー機能（ＣＴＦ：Charging Trigger Function）が、サービスを提供するネットワーク要素において実施される。ＣＴＦは、課金可能イベントに関する情報を収集し、この情報を、一致する課金イベントに組み立て、これらの課金イベントを課金データ機能（ＣＤＦ：Charging Data Function）に送信する。この課金データ機能は、ネットワーク要素又はオフライン課金システム（ＯＦＣＳ：Offline Charging System）において実施することができる。課金イベントは、ＣＴＦによって、ダイアメーター（Diameter）アカウンティング要求（ＡＣＲ：Accounting Request）等のアカウンティング要求において提供することができる。
【０００５】
ＣＤＦは、１つ以上のＣＴＦから課金イベントを受信し、これらの課金イベントに含まれるこの情報を用いて、ＣＤＲを作成する。ＣＤＲは、料金請求及びアカウンティングにおいて用いられる課金可能イベントについての情報（例えば、呼セットアップ又はセッションセットアップの時刻、呼ティアダウン又はセッションティアダウンの時刻、転送されるデータの量等）のフォーマットされた集合体である。次に、ＣＤＦは、ＯＦＣＳの課金ゲートウェイ機能（ＣＧＦ：Charging Gateway Function）にＣＤＲを送信する。ＣＧＦは、ネットワークと料金請求ドメインとの間のゲートウェイとして機能する。したがって、ＣＧＦは、このＣＤＦ（及び他のＣＤＦ）からＣＤＲを収集し、任意選択で、ＣＤＲを相関させ、ＣＤＲをＣＤＲファイルに書き込み、このＣＤＲファイルを料金請求ドメインに利用可能にする。
【０００６】
通常の事業者ネットワークは、複数のＣＤＦ及びＣＧＦを利用して、オフライン課金を実施する。したがって、ダイアメータールーティングエージェント（ＤＲＡ：Diameter Routing Agent）等のフロントエンドデバイスが、ＯＦＣＳとともに用いられて、課金イベントをＣＴＦからＣＤＦに分配する。ＣＤＦが非稼働になると、フロントエンドデバイスは、課金イベントの代替の宛先を特定する必要がある。フロントエンドデバイスは、代替の宛先を効果的に求め、ＯＦＣＳの別のＣＤＦを過負荷状態にすることを回避することが望ましい。
【発明の概要】
【０００７】
本明細書において説明される実施の形態は、ＣＤＦが非稼働（ＯＯＳ：out-of-service）になり、その後の課金イベントをハンドリングするのに利用不能であるときに、セッションの課金イベントのハンドリングを提供する。各ＣＤＦは、アカウンティング要求を受信するフロントエンドデバイスに１つ以上のキューを登録する。フロントエンドデバイスは、本明細書において説明される実施の形態では、アカウンティング要求をＣＤＦのそれぞれのキューに分配するように高度化されている。より詳細には、フロントエンドデバイスは、キューがＣＤＦによって非稼働にされ、代替のキューがセッションについて選択されるシナリオをハンドリングするように構成されている。フロントエンドデバイスは、アカウンティング要求が過負荷状態になる可能性があるＣＤＦに送信されないように、代替のキューを選択する前にキューのステータスを判断する。
【０００８】
１つの実施の形態は、オフライン課金システム（ＯＦＣＳ）の複数の課金データ機能（ＣＤＦ）に接続するように構成された分配器ユニットを含む。該分配器ユニットは、（インターフェースを通じて）前記ＣＤＦに関連したキューを登録するための前記ＣＤＦからの情報を受信するように構成されている。該分配器ユニットは、課金トリガー機能（ＣＴＦ）からセッションの最初のアカウンティング要求を受信し、分配アルゴリズムに基づいて前記セッションの前記キューの優先順位リストを（プロセッサを通じて）生成し、前記セッションの前記優先順位リストから宛先キューを選択し、前記最初のアカウンティング要求を前記宛先キューに送信するように構成されている。該分配器ユニットは、前記ＣＴＦから前記セッションの後続のアカウンティング要求を受信し、前記後続のアカウンティング要求のパラメーターから、前記セッションについて以前に選択された前記宛先キューを示す第１の識別子を抽出し、前記宛先キューのステータスを判断するように構成されている。前記宛先キューの前記ステータスが、前記宛先キューが新たなセッションも進行中のセッションも受け付けていないことを示しているとき、該分配器ユニットは、前記セッションの前記優先順位リストを特定し、前記優先順位リストにおける前記宛先キューの位置を特定し、前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する第１の代替のキューを得るために前記優先順位リストを検索するように構成されている。該分配器ユニットは、前記セッションについて前記第１の代替のキューを代替の宛先キューとして選択し、前記後続のアカウンティング要求を前記代替の宛先キューに送信するように構成されている。
【０００９】
別の実施の形態では、前記後続のアカウンティング要求は、ダイアメーターアカウンティング要求（ＡＣＲ）を含み、前記分配器ユニットは、前記宛先キューを示す前記第１の識別子を前記ＡＣＲの宛先ホスト属性値対（ＡＶＰ）から抽出するように構成されている。
【００１０】
別の実施の形態では、前記分配器ユニットは、前記後続のアカウンティング要求のアカウンティング回答を、前記代替の宛先キューに関連したＣＤＦから受信し、前記代替の宛先キューの第２の識別子を前記アカウンティング回答のパラメーター内に追加し、前記アカウンティング回答を前記ＣＴＦに向けて送信するように構成されている。
【００１１】
別の実施の形態では、前記アカウンティング回答は、ダイアメーターアカウンティング回答（ＡＣＡ）を含み、前記分配器ユニットは、前記代替の宛先キューの前記第２の識別子を前記ＡＣＡのオリジンホスト属性値対（ＡＶＰ）に追加するように構成されている。
【００１２】
別の実施の形態では、前記プロセッサが、前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する前記第１の代替のキューを前記優先順位リストにおいて見つけることができないとき、前記分配器ユニットは、新たなセッションを受け付けていることを示すステータスを有する第２の代替のキューを前記優先順位リストの最上位から検索するように構成されている。
【００１３】
別の実施の形態では、前記プロセッサが、新たなセッションを受け付けていることを示すステータスを有する前記第２の代替のキューを前記優先順位リストにおいて見つけることができないとき、前記分配器ユニットは、前記ＯＦＣＳが過負荷状態にあると判断するように構成されている。
【００１４】
別の実施の形態では、前記分配アルゴリズムは、前記セッションのセッション識別子と前記キューの名称とに基づいて、前記キューの前記優先順位リストを生成するコンシステントハッシングアルゴリズムを含む。
【００１５】
別の実施の形態では、前記分配器ユニットは、前記キューのそれぞれの前記ステータスを監視するように構成されている。前記キューのそれぞれの前記ステータスは、次のもの、すなわち、新たなセッション及び進行中のセッションを受け付けていること、進行中のセッションのみを受け付けていること、又は新たなセッションも進行中のセッションも受け付けていないことのうちの１つを示す。
【００１６】
別の実施の形態では、前記最初のアカウンティング要求に応答して、前記分配器ユニットは、新たなセッションを受け付けていることを示すステータスを有する候補キューを得るために前記優先順位リストを検索し、前記候補キューを前記セッションの前記宛先キューとして選択するように構成されている。
【００１７】
別の実施の形態は、セッションのアカウンティング要求を分配器ユニットからＯＦＣＳの複数のＣＤＦに分配する方法を含む。該方法は、前記分配器ユニットにおいて、前記ＣＤＦに関連したキューを登録するための前記ＣＤＦからの情報を受信することを含む。該方法は、前記分配器ユニットにおいて、セッションの最初のアカウンティング要求を課金トリガー機能（ＣＴＦ）から受信することと、分配アルゴリズムに基づいて前記セッションについて前記キューの優先順位リストを生成することと、前記セッションについて前記優先順位リストから宛先キューを選択することと、前記最初のアカウンティング要求を前記分配器ユニットから前記宛先キューに送信することとを更に含む。該方法は、前記分配器ユニットにおいて、前記セッションの後続のアカウンティング要求を前記ＣＴＦから受信することと、前記セッションについて以前に選択された前記宛先キューを示す第１の識別子を前記後続のアカウンティング要求のパラメーターから抽出することと、前記宛先キューのステータスを判断することとを更に含む。前記宛先キューの前記ステータスが、前記宛先キューが新たなセッションも進行中のセッションも受け付けていないことを示しているとき、該方法は、前記セッションの前記優先順位リストを特定することと、前記優先順位リストにおける前記宛先キューの位置を特定することと、前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する第１の代替のキューを得るために前記優先順位リストを検索することとを含む。該方法は、前記セッションについて前記第１の代替のキューを代替の宛先キューとして選択することと、前記後続のアカウンティング要求を前記分配器ユニットから前記代替の宛先キューに送信することとを更に含む。
【００１８】
別の実施の形態は、ＯＦＣＳの複数のＣＤＦに接続する分配器ユニットのプロセッサによって実行されるプログラミングされた命令を具現化した非一時的コンピューター可読媒体を含む。前記命令は、前記ＣＤＦに関連したキューを登録するための前記ＣＤＦからの情報を受信するように前記プロセッサに指示する。前記命令は、セッションについて最初のアカウンティング要求を課金トリガー機能（ＣＴＦ）からインターフェースを通じて受信し、分配アルゴリズムに基づいて、前記セッションについて前記キューの優先順位リストを生成し、前記セッションについて前記優先順位リストから宛先キューを選択し、前記最初のアカウンティング要求を、前記インターフェースを通じて前記宛先キューに送信するように前記プロセッサに指示する。前記命令は、前記セッションについて後続のアカウンティング要求を前記ＣＴＦから前記インターフェースを通じて受信し、前記セッションについて以前に選択された前記宛先キューを示す第１の識別子を前記後続のアカウンティング要求のパラメーターから抽出し、前記宛先キューのステータスを判断するように前記プロセッサに指示する。前記宛先キューの前記ステータスが、前記宛先キューが新たなセッションも進行中のセッションも受け付けていないことを示しているとき、前記命令は、前記セッションについて前記優先順位リストを特定し、前記優先順位リストにおける前記宛先キューの位置を特定し、前記宛先キューよりも下位の優先順位を有し、かつ、新たなセッションを受け付けていることを示すステータスを有する第１の代替のキューを得るために前記優先順位リストを検索するように前記プロセッサに指示する。前記命令は、前記セッションについて前記第１の代替のキューを代替の宛先キューとして選択し、前記後続のアカウンティング要求を、前記インターフェースを通じて前記代替の宛先キューに送信するように前記プロセッサに指示する。
【００１９】
上記概要は、本明細書の幾つかの態様の基本的な理解を提供する。この概要は、本明細書の広範な概略ではない。この概要は、本明細書の主要な要素又は重要な要素を特定することも、本明細書の特定の実施の形態の範囲又は請求項の範囲を画定することも意図するものではない。その唯一の目的は、本明細書の幾つかの概念を、後に提示されるより詳細な説明の前置きとして簡略化された形式で提示することである。
【００２０】
次に、本開示の幾つかの実施形態が、専ら例示を目的として、添付図面を参照して説明される。同じ参照符号は、全ての図面において同じ要素又は同じタイプの要素を表す。
【図面の簡単な説明】
【００２１】
【図１】一例示的な実施形態におけるオフライン課金アーキテクチャを示す図である。
【図２】一例示的な実施形態における複数のＣＤＦ間でアカウンティング要求を分配する方法を示すフローチャートである。
【図３】一例示的な実施形態における複数のＣＤＦ間でアカウンティング要求を分配する方法を示すフローチャートである。
【図４】一例示的な実施形態におけるＣＤＦを示すオフライン課金アーキテクチャのブロック図である。
【図５】一例示的な実施形態におけるダイアメーターＡＣＲの分配を示すメッセージ図である。
【図６】一例示的な実施形態におけるＣＤＦを示すオフライン課金アーキテクチャのブロック図である。
【図７】一例示的な実施形態におけるＣＤＦを示すオフライン課金アーキテクチャのブロック図である。
【発明を実施するための形態】
【００２２】
上記図及び以下の説明は、特定の例示的な実施形態を示している。したがって、当業者であれば、本明細書において明示的に説明も図示もされていないが、実施形態の原理を具現化し、実施形態の範囲内に含まれる様々な構成を考案することができることが理解されよう。さらに、本明細書において説明されるいずれの例も、実施形態の原理の理解を助けることを意図したものであり、そのような具体的に挙げられた例及び条件に限定されることがないものと解釈されるべきである。その結果、本発明概念（複数の場合もある）は、以下に説明される特定の実施形態にも例にも限定されるものでなく、特許請求の範囲及びその均等物によって限定される。
【００２３】
図１は、一例示的な実施形態におけるオフライン課金アーキテクチャ１００を示している。アーキテクチャ１００は、加入者のオフライン課金を提供するために、サービスをその加入者（すなわち、エンドユーザー及び関連したユーザー機器（ＵＥ：User Equipment））に提供する回線交換ネットワーク又はパケット交換ネットワークにおいて実施することができる。幾つかの例示的なネットワークには、ＩＰマルチメディアサブシステム（ＩＭＳ：IP Multimedia Subsystem）ネットワーク、ロングタームエボリューション（ＬＴＥ）ネットワーク、汎用パケット無線サービス（ＧＰＲＳ）等が含まれる。
【００２４】
アーキテクチャ１００は、分配器ユニット１１０を通じてオフライン課金システム（ＯＦＣＳ）１２０に接続するネットワーク要素１０２を備える。ネットワーク要素１０２は、ネットワークによって提供されるサービスを提供する際に用いられる装置又は機器である。例えば、ネットワーク要素は、ＩＭＳネットワークのサービング呼セッション制御機能（Ｓ−ＣＳＣＦ：Serving-Call Session Control Function）又はアプリケーションサーバー（ＡＳ：application server）、ＬＴＥネットワークのサービングゲートウェイ（ＳＧＷ：Serving Gateway）又はパケットデータネットワークゲートウェイ（ＰＧＷ：Packet Data Network Gateway）等を含むことができる。ネットワーク要素１０２は、課金トリガー機能（ＣＴＦ）１０４を備える。この課金トリガー機能は、ネットワーク要素１０２によって提供されるサービスの課金可能イベントを検出し、これらの課金可能イベントの情報を一致する課金イベントに組み立て、これらの課金イベントを課金データ機能（ＣＤＦ）に送信する。ネットワーク要素１０２の場合、ＣＴＦ１０４は、ダイアメーターＲｆインターフェースを用いることができる。ＣＴＦ１０４は、課金情報を、ダイアメーターＲｆアカウンティング要求（ＡＣＲ）等のアカウンティング要求に組み立てる。図１には、１つのＣＴＦ１０４が示されているが、分配器ユニット１１０と連絡する多くのＣＴＦが存在してもよい。図１には明確に示されていないが、ネットワーク要素１０２は、ＣＴＦ１０４を実施するプロセッサ又は他のハードウェア構成要素を備えることができる。
【００２５】
図１には、課金プロトコルとしてダイアメータープロトコルが示されている。しかしながら、他の課金プロトコルを用いることができる。したがって、本明細書において論述されるようなアカウンティング要求又はアカウンティング回答への言及は、ダイアメータープロトコルを指す場合もあるし、別の課金プロトコルを指す場合もある。
【００２６】
ＯＦＣＳ１２０は、ネットワークによって提供されるセッション又はサービスのオフライン課金を実施するように構成された装置、サーバー、デバイス、又は機器である。オフライン課金は、セッションベース又はイベントベースの２つのタイプとすることができる。イベントベースの課金では、ＣＴＦは、使用又はレンダリングされるサービスを報告する。ここで、サービス提供は、加入者登録、再登録、登録解除等の単一の動作においてレンダリングされる。ＣＴＦは、タイプ「イベント」（例えば、ＡＣＲ  ＥＶＥＮＴ）のアカウンティング要求において使用を報告する。セッションベースの課金は、セッションの使用報告を報告するプロセスであり、ＳＴＡＲＴ（開始）、ＩＮＴＥＲＩＭ（中間）、及びＳＴＯＰ（停止）のアカウンティングデータを用いる。セッションの間、ＣＴＦ１０４は、セッションの進行に応じて０個、１個、又は複数個の中間アカウンティング要求を送信することができる。
【００２７】
この実施形態では、ＯＦＣＳ１２０は、複数のＣＤＦ（ＣＤＦ１〜ＣＤＦｎ）１２１〜１２４を備える。ＣＤＦは、ネットワーク要素内のＣＴＦから課金イベントを受信し、これらの課金イベントをＣＤＲにフォーマットし、これらのＣＤＲをＣＧＦに送信するＯＦＣＳ１２０内の要素又はモジュールを備える。各ＣＤＦインスタンスは、ブレードサーバーのアプリケーションブレードによって提供することができる。ブレードサーバーは、サーバーブレードとして知られている複数の電子回路基板を収容するサーバーシャーシである。各ブレードは、サーバーとみなされ、通常、単一のアプリケーションに専用化される。各ＣＤＦインスタンスは、代替として、仮想マシン（ＶＭ）によって提供することができる。仮想マシンは、オペレーティングシステム及び１つ以上のアプリケーションを動作させる、ハードウェアを模倣したソフトウェアコンピューターである。「ハイパーバイザー」と呼ばれる特殊化されたソフトウェアは、中央処理装置（ＣＰＵ）、メモリ、ハードディスク、ネットワーク、及び他のハードウェアリソースをエミュレーションする。多くの仮想マシンが、ホストの物理リソースを共有することができ、異なるハードウェアプラットフォームからの分散ハードウェアリソースのプールを用いて、複数の仮想マシンを実施することができる。
【００２８】
ＯＦＣＳ１２０は、複数のＣＧＦ（ＣＧＦ１〜ＣＧＦｎ）１３１〜１３４も備える。ＣＧＦは、セッションのＣＤＲを相関させ、これらの相関されたＣＤＲを有するＣＤＲファイルを料金請求ドメイン１４０に転送するＯＦＣＳ１２０内の要素又はモジュールを備える。料金請求ドメイン１４０は、料金請求調停及び他の料金請求アプリケーション（例えば、統計アプリケーション）のＣＤＲファイルを受信して処理する事業者ネットワークの部分である。ＯＦＣＳ１２０内のＣＤＦは、ダイアメーターＧａインターフェースを介してＣＧＦと通信することができる。図１に示す場合では、ＧＴＰ’をＧａインターフェース上で用いてＣＤＲをＣＤＦからＣＧＦに搬送することができる。図１には、ＣＤＦとＣＧＦとの間の１：１の関係が示されているが、Ｎ：１の関係も可能である。図１には明確に示されていないが、ＯＦＣＳ１２０は、ＣＤＦ１２１〜１２４及びＣＧＦ１３１〜１３４を実施する１つ以上のプロセッサ又は他のハードウェア構成要素を備えることができる。
【００２９】
分配器ユニット１１０は、ＣＴＦ（例えば、ＣＴＦ１０４）とＯＦＣＳ１２０内のＣＤＦ１２１〜１２４との間で実施される。分配器ユニット１１０の目的は、アカウンティング要求（例えば、ダイアメーターＡＣＲ）をＣＴＦからＯＦＣＳ１２０内の複数のＣＤＦ１２１〜１２４間に分配することである。アカウンティング要求は、課金イベントを報告するオフライン課金のメッセージを含む。このメッセージの１つの例はダイアメーターＡＣＲである。
【００３０】
この実施形態では、分配器ユニット１１０は、インターフェース（Ｉ／Ｆ）１１２及びプロセッサ（ＰＲＯＣ’Ｒ）１１４を備える。インターフェース１１２は、ダイアメーターＲｆプロトコル又は別のタイプの課金プロトコルを介して通信する構成要素（例えば、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせ）を備える。プロセッサ１１４は、アカウンティング要求をＣＤＦ１２１〜１２４に分配するロジックを実行する構成要素（すなわち、ハードウェア）を備える。分配器ユニット１１０は、ＯＦＣＳ１２０の外部に存在するものとして示されているが、分配器ユニット１１０は、ＯＦＣＳ１２０と同じプラットフォーム上で実施することができる。
【００３１】
アカウンティング要求を分配するタスクは、ＣＤＦ１２１〜１２４の重み、現在の負荷インデックス、及び他のパラメーターを考慮して、セッションのアカウンティング要求をハンドリングするＣＤＦインスタンスを選択することを含むことができる。分配器ユニット１１０は、特定のセッションのＣＤＦを選択する際にラウンドロビンストラテジーに従うことができる。分配器ユニット１１０は、バックツーバックユーザーエージェント（Ｂ２ＢＵＡ：Back to Back User Agent）として機能することができ、この場合、ＣＴＦとの課金セッション（例えば、ダイアメーターセッション）は、分配器ユニット１１０上で終了され、同等で対応する課金セッションが、分配器ユニット１１０と、選択されたＣＤＦとの間で開始される。各ＣＴＦは、分配器ユニット１１０との接続を確立し、セッション識別子（ＩＤ）を含むアカウンティング要求を分配器ユニット１１０に送信することになる。このセッションＩＤは、ＣＴＦについては、ＣＴＦが報告するセッションごとに一意である。
【００３２】
ＣＤＦ１２１〜１２４は、分配器ユニット１１０から受信されたアカウンティング要求を、分配器ユニットの関連したＣＤＦによる処理のために一時的に記憶するのに用いられる処理キュー１５１〜１５４をそれぞれ備える。キュー１５１〜１５４は、処理要素によって取り出されるデータアイテム（例えば、アカウンティング要求）のリストを記憶する物理的又は仮想的な要素である。データアイテムは、受信された順序又は処理要素によって決定された順序等の特定の順序で取り出し可能とすることができる。各ＣＤＦ１２１〜１２４は、処理キュー１５１〜１５４を分配器ユニット１１０に集中的に登録することによってこれらの処理キューを公開する。これらのキューの数は、ＣＤＦ１２１〜１２４の処理能力及び負荷条件に応じてＣＤＦ１２１〜１２４ごとに変化する場合がある（例えば、０．．．１６）。各ＣＤＦ１２１〜１２４は、そのキューのうちの１つ以上をオフにすることによってその入力する負荷を調整することができる。ＣＤＦ１２１〜１２４に関連したキュー１５１〜１５４には、それらを互いに区別するために、名称又は他の或る識別子が割り当てられる。
【００３３】
分配器ユニット１１０は、分配アルゴリズムに基づいて、アカウンティング要求をハンドリングする宛先としてキュー１５１〜１５４を選択するように構成されている。この分配アルゴリズムは、セッションのキューの順序付きリストを計算する任意の一組のルールを含む。１つの実施形態では、分配器ユニット１１０は、「コンシステントハッシング」アルゴリズムを用いて、セッションの順序付きリストを生成することができる。コンシステントハッシングアルゴリズムは、セッションＩＤ（例えば、アカウンティング要求内のダイアメーターセッションＩＤ（ＤＳＩＤ））と、キュー識別子（例えば、キューの名称）とを用いて、順序付きリストを生成することができる。上述のように、各ＣＤＦ１２１〜１２４は、その処理能力と同等の或る特定の数のキューを用いる。或る配備において、ＣＤＦ１２１〜１２４の全てのインスタンスにわたってＮ個のキューが分散している場合、コンシステントハッシングアルゴリズムは、所与のセッションＩＤについてＮ個の値を生成する。最も高い値は、セッションの宛先として選ばれる。そのため、コンシステントハッシングアルゴリズムは、以下の式のように、キューの名称から各キューインスタンスのハッシュ値を静的に求める。
Ｈｓ＝Ｆ（ＱｕｅｕｅＮａｍｅ）
【００３４】
一例では、６個の登録されたキューをそれぞれ有する２６個のＣＤＦインスタンスの場合、１５６個のハッシュ値が計算される。その場合、進行中のセッションごとに、分配器ユニット１１０は、以下の式のように、各セッションＩＤ（例えば、ＤＳＩＤ）のハッシュ値を動的に求めることができる。
Ｈｉ＝Ｆ（ＳｅｓｓｉｏｎＩＤ）
【００３５】
この値は、以下の式のように、（ＳｅｓｓｉｏｎＩＤ，ＱｕｅｕｅＮａｍｅ）の各組のハッシュを計算する際に用いられる。
Ｈｃ＝Ｆ（Ｈｓ，Ｈｉ）
【００３６】
したがって、「Ｈｃ」は、特定のセッションに関するキューの優先順位リストを表す。ここでもまた、６個の登録されたキューをそれぞれ有する２６個のＣＤＦインスタンスがある場合、この優先順位リストは、優先順位に従って順序付けられた１５６個のハッシュ値を含む。分配器ユニット１１０は、最大Ｈｃ（Ｈｃ＿ｍａｘ）をセッションのアカウンティング要求の宛先キューとして選択することができる。分配器ユニット１１０は、その後、セッションのアカウンティング要求を、その関連したＣＤＦ（本明細書において宛先ＣＤＦと呼ばれる）によって処理される宛先キューにルーティングすることができる。Ｈｃ＿ｍａｘによって示されるキューが利用可能でない場合（例えば、宛先ＣＤＦが非稼働である場合又は宛先ＣＤＦがキューを停止させている場合）、分配器ユニット１１０は、次に最も高いＨｃ（Ｈｃ＿ｍａｘ−１）をセッションのアカウンティング要求の宛先キューとして選択することができる。分配器ユニット１１０は、その後、セッションのアカウンティング要求を、その関連したＣＤＦによって処理されるこの宛先キューにルーティングすることができる。このプロセスは、アカウンティング要求をハンドリングすることができる宛先キューが特定されるまで続く。
【００３７】
上記で説明したような分配アルゴリズムに基づいて宛先キューを選択することは、セッションのアカウンティング要求が最初に受信された時も許容可能であり得る。しかしながら、分配アルゴリズムは、プロセッサ集中型である可能性があり、アカウンティング要求が受信されるごとに分配アルゴリズムを用いると、リソースが浪費される可能性がある。また、分配アルゴリズムに基づいてセッションの宛先キューを選択することは、ＯＦＣＳ上のＣＤＦが正しく動作しているときも許容可能であり得るが、１つ以上のＣＤＦが或る期間の間非稼働になると、望ましくない場合がある。この問題を例示するために、セッションの最初のアカウンティング要求を受信したことに応答して、分配アルゴリズムを用いて、セッションの第１の宛先キューが選択されるものと仮定する。この第１の宛先キューに関連した第１のＣＤＦが、その後に非稼働になった場合、分配アルゴリズムを用いて、後続のアカウンティング要求（例えば、中間（複数の場合もある）又は停止）用に第２のＣＤＦに関連付けられた代替の宛先キューを選択することができる。このセッションが依然としてアクティブである間に、第１のＣＤＦが偶然回復した場合、分配アルゴリズムは、後続のアカウンティング要求用に、このセッションについて上記第１の宛先キューを再度選択する場合がある。このシナリオは、セッションのハンドリングが第１のＣＤＦの回復後に第１のＣＤＦに逆戻りするので、逆戻り（reversion）と呼ばれる問題である。これによって、セッションの第１の部分については、第１のＣＤＦ上に「不完全なＣＤＲ」が生成され、セッションの第２の部分については、第２のＣＤＦ上に不完全なＣＤＲが生成され、セッションの最後の部分については、第１のＣＤＦ上に不完全なＣＤＲが再度生成される。これによって、下流の料金請求調停システムが、そのセッションについて、複数の不完全なＣＤＲを組み合わせて、コヒーレントかつ完全なＣＤＲにする複雑さが増大する。第１の宛先キューに関連したＣＤＦが回復するとすぐに、セッションが再びこのＣＤＦに転送される場合、このＣＤＦが再度過負荷状態になるリスクも存在する。
【００３８】
逆戻りを回避するために、セッションの宛先キューが分配アルゴリズムに基づいて選択されると、この宛先キューの識別子又は他の情報を、ＣＴＦと分配器ユニット１１０との間でこのセッションについて交換されるアカウンティングメッセージ（要求又は回答）に挿入又は追加することができる。例えば、分配器ユニット１１０が、セッションの開始アカウンティング要求を受信した場合、分配器ユニット１１０は、優先順位リストに基づいて（正：based on）このセッションの宛先キューを選択する。分配器ユニット１１０は、その後、ＣＴＦに返信するのに用いられる開始アカウンティング要求及び／又は開始アカウンティング回答に宛先キューの識別子を挿入することができる。そのように、ＣＴＦは、セッションの選択された宛先キューの通知を受け、この宛先キューの識別子をセッションの後続のアカウンティング要求に挿入する。分配器ユニット１１０が、後続のアカウンティング要求をＣＴＦから受信すると、分配器ユニット１１０は、優先順位リストを用いる代わりにこのアカウンティング要求から、宛先キューの識別子を抽出することができる。したがって、セッションのアカウンティングは、この宛先キューが稼働中である間、この宛先キューに固定される。
【００３９】
本明細書において説明するような逆戻りを回避する別の方法は、キューのうちの１つをアカウンティング要求の宛先として選択する前に、ＣＤＦ１２１〜１２４に関連したキューのステータスを調べることである。１つの提案は、新たなセッション及び進行中のセッションのアカウンティング要求を受信するためにキューが利用可能であるかどうかを示すステータス又は状態を宛先キューのそれぞれに関連付けることである。これらのキューのステータスは、透過性（permeable）、半透過性（semi-permeable）、及び不透過性（impermeable）として指定することができる。透過性ステータスがキューに割り当てられると、このキューは、新たなセッション、進行中のセッション、及びイベント等の全てのタイプのアカウンティング要求を受け付けるのに利用可能である。例えば、透過性ステータスを割り当てられたキューは、ＡＣＲ［開始］メッセージ、ＡＣＲ［中間］メッセージ、ＡＣＲ［停止］メッセージ、及びＡＣＲ［イベント］メッセージを受け付けるのに利用可能である。半透過性ステータスがキューに割り当てられると、このキューは、進行中のセッションのみ（新たなセッションではない）のアカウンティング要求を受け付けるのに利用可能である。例えば、半透過性ステータスを割り当てられたキューは、ＡＣＲ［中間］メッセージ又はＡＣＲ［停止］メッセージを受け付けるのに利用可能である。不透過性ステータスがキューに割り当てられると、このキューは、新たなセッションのアカウンティング要求も進行中のセッションのアカウンティング要求も受け付けるのに利用可能でない。分配器ユニット１１０は、ＣＤＦ１２１〜１２４に関連したキュー１５１〜１５４のそれぞれのステータスを監視することができる。
【００４０】
逆戻りを回避する概念は、以下でより詳細に説明される。
【００４１】
図２及び図３は、一例示的な実施形態における複数のＣＤＦ１２１〜１２４の間でアカウンティング要求を分配する方法２００を示すフローチャートを示している。方法２００のステップは、図１における分配器ユニット１１０に関して説明されるが、当業者であれば、方法２００は、他のシステムにおいても実行することができることを理解するであろう。また、本明細書において説明するフローチャートのステップは、全てを含む包括的なものではなく、図示していない他のステップを含むことができ、ステップは、代替の順序で実行することもできる。
【００４２】
分配器ユニット１１０のインターフェース１１２又はプロセッサ１１４は、ＣＤＦ１２１〜１２４に関連したキュー１５１〜１５４を登録するためのＣＤＦ１２１〜１２４からの情報を受信する（ステップ２０２）。分配器ユニット１１０によって受信される情報は、各ＣＤＦ１２１〜１２４によって登録されたキューの数、キューの名称又は識別子、キューのステータス等を示すことができる。プロセッサ１１４は、その後、キュー１５１〜１５４のこの情報をローカルメモリ等に記憶することができる。
【００４３】
この実施形態について、ネットワーク要素１０２がセッションのサービスを提供するものと仮定する。ネットワーク要素１０２内のＣＴＦ１０４は、ネットワーク要素１０２によって提供されるサービスの課金可能イベントを検出し、ＣＴＦ１０４は、課金可能イベントの情報をアカウンティング要求（例えば、開始又はイベント）に組み立てる。例えば、アカウンティング要求は、ダイアメーターＲｆＡＣＲを含むことができる。ＣＴＦ１０４は、次に、このセッションのアカウンティング要求をＯＦＣＳ１２０に向けて送信する。本明細書において説明するような「セッション」は、課金セッション又はダイアメーターセッションを指すことができる。
【００４４】
分配器ユニット１１０のインターフェース１１２は、セッションのアカウンティング要求をＣＴＦ１０４から受信する（ステップ２０４）。プロセッサ１１４は、開始、中間、停止、又はイベント等のアカウンティング要求のタイプを判断する。アカウンティング要求が「開始」又は「イベント」のタイプであるとき、プロセッサ１１４は、分配アルゴリズムに基づいてキュー１５１〜１５４の優先順位リストを生成する（ステップ２０６）。優先順位リストは、セッションの分配アルゴリズムによって求められるようなキュー１５１〜１５４の順序付きリストである。例えば、優先順位リストは、セッションのセッションＩＤと、上記で説明したようなＣＤＦ１２１〜１２４によって登録されたキュー１５１〜１５４の名称とに基づいて、コンシステントハッシングアルゴリズムによって生成することができる。プロセッサ１１４は、新たなセッションを受け付けていることを示すステータスを有する候補キューを得るために優先順位リストを検索する（ステップ２０８）。例えば、プロセッサ１１４は、優先順位リスト内の最上位キューを候補キューとして特定することができる。プロセッサ１１４は、次に、候補キューのステータスを判断又は確認する。１つ以上のＣＤＦ１２１〜１２４が或る期間の間非稼働になること、又は、１つ以上のＣＤＦ１２１〜１２４がそれらに関連したキュー１５１〜１５４のステータスを変更する場合があり得る。したがって、プロセッサ１１４は、候補キューが透過性ステータスを割り当てられており、新たなセッション又はイベントを受け付けるのに利用可能であるか否かを判断する。新たなセッション又はイベントの候補キューが利用可能である場合、プロセッサ１１４は、この候補キューをセッションの宛先キューとして選択する（ステップ２１０）。候補キューが新たなセッションを受け付けるものでない場合、プロセッサ１１４は、優先順位リストから次のキューを次の候補キューとして選択する。プロセッサ１１４は、次の候補キューが透過性ステータスを割り当てられており、新たなセッション又はイベントを受け付けるのに利用可能であるか否かを判断する。このプロセスは、透過性ステータスを割り当てられている候補キューが優先順位リストにおいて特定されるまで継続し、プロセッサ１１４は、この候補キューをセッションの宛先キューとして選択する（ステップ２１０）。インターフェース１１２は、次に、アカウンティング要求を宛先キューに送信する（ステップ２１２）。
【００４５】
図１において、アカウンティング要求は、宛先キューにおいて受信され、その関連したＣＤＦ（すなわち、宛先ＣＤＦ）によって処理される。この宛先ＣＤＦは、アカウンティング要求に対する応答としてアカウンティング回答（例えば、ダイアメーターアカウンティング回答（ＡＣＡ：Accounting Answer））を生成する。宛先ＣＤＦは、次に、このアカウンティング回答を分配器ユニット１１０に送信する。分配器ユニット１１０のインターフェース１１２は、このアカウンティング回答を宛先ＣＤＦから受信する（図２におけるステップ２１４）。プロセッサ１１４は、宛先キューのキューＩＤがまだ存在していない場合、このキューＩＤをアカウンティング回答のパラメーター内に追加又はアペンドすることができる（ステップ２１６）。例えば、アカウンティング回答がダイアメーターＡＣＡを含む場合、プロセッサ１１４は、キューＩＤをＡＣＡメッセージのオリジンホスト（Origin-Host）ＡＶＰに追加することができる。インターフェース１１２は、次に、アカウンティング回答をＣＴＦ１０４に向けて送信する（ステップ２１８）。
【００４６】
図１において、ＣＴＦ１０４は、アカウンティング回答を分配器ユニット１１０から受信し、アカウンティング回答からキューＩＤを抽出する。ＣＴＦ１０４は、次に、セッションの宛先キューの情報をローカルメモリ等に記憶する。ＣＴＦ１０４は、オープンしているセッションのためのバッファーを有することができ、セッションは、このバッファーにおいて「ＳｅｓｓｉｏｎＩｄ（セッションＩｄ）」に従ってインデックス付け又は参照される。ＣＴＦ１０４は、したがって、宛先キューの情報をセッションの他の情報とともに記憶することができる。ＣＴＦ１０４は、セッションが存続している間宛先キュー情報を記憶し、セッションが終了すると宛先キュー情報を削除する。
【００４７】
ＣＴＦ１０４がセッションの別の課金可能イベントを検出し（すなわち、セッションベースの課金）、セッションの別のアカウンティング要求を生成するものと更に仮定する。ＣＴＦ１０４は、セッションについて記憶している情報に基づいて、宛先キューがこのセッションについて既に選択されていると判断することができる。したがって、ＣＴＦ１０４は、セッションの宛先キューを示すキューＩＤをアカウンティング要求のパラメーター内に追加する。例えば、アカウンティング要求がダイアメーターＡＣＲを含む場合、ＣＴＦ１０４は、宛先キューのキューＩＤをＡＣＲの宛先ホスト（Destination-Host）ＡＶＰ内に追加することができる。ＣＴＦ１０４は、次に、アカウンティング要求を分配器ユニット１１０に送信する。
【００４８】
分配器ユニット１１０のインターフェース１１２は、アカウンティング要求をＣＴＦ１０４から受信する（図２におけるステップ２０４）。プロセッサ１１４は、開始、中間、停止、又はイベント等のアカウンティング要求のタイプを判断する。アカウンティング要求が、進行中のセッションの「中間」又は「停止」のタイプのものであるとき、プロセッサ１１４は、宛先キューのキューＩＤをアカウンティング要求から抽出する（ステップ２２０）。中間又は停止のアカウンティング要求が受信されたとき、セッションの宛先キューは既に選択されていると仮定され、アカウンティング要求には、宛先キューのキューＩＤが格納されていると仮定される。プロセッサ１１４は、アカウンティング要求において示されている宛先キューのステータスを判断又は確認する（ステップ２２２）。宛先キューに関連したＣＤＦ１２１〜１２４が或る期間の間非稼働になること、又は、宛先キューのステータスを変更する（すなわち、透過性から半透過性に変更するか又は半透過性から不透過性に変更する）場合があり得る。したがって、プロセッサ１１４は、宛先キューが透過性状態（すなわち、新たなセッション及び進行中のセッションのアカウンティング要求を受け付けるのに利用可能である）又は半透過性状態（すなわち、進行中のセッションのみのアカウンティング要求を受け付けるのに利用可能である）にあるのか否かを判断する。宛先キューが、進行中のセッション及び新たなセッションを受け付けるのに利用可能である場合、インターフェース１１２は、アカウンティング要求をこの宛先キューに送信する（ステップ２２４）。
【００４９】
アカウンティング要求は、上記で説明したように、宛先キューにおいて受信され、その関連したＣＤＦによって処理される。分配器ユニット１１０のインターフェース１１２は、アカウンティング回答を宛先キューに関連したＣＤＦから受信する（ステップ２２６）。プロセッサ１１４は、宛先キューのキューＩＤがまだ存在していない場合、このキューＩＤをアカウンティング回答内に追加又はアペンドすることができる（ステップ２２８）。インターフェース１１２は、次に、アカウンティング回答をＣＴＦ１０４に向けて送信する（ステップ２３０）。方法２００は、次に、ステップ２０４に戻ることができる。
【００５０】
図３を参照すると、宛先キューが、新たなセッションも進行中のセッションも受け付けるのに利用可能でない場合（すなわち、不透過性ステータス）、プロセッサ１１４は、分配アルゴリズムに基づいて、セッションのキュー１５１〜１５４の優先順位リストを特定する（ステップ２３２）。このステップにおいて、プロセッサ１１４は、優先順位リストを再度生成することもできるし、メモリ等から優先順位リストを取り出すこともできる。プロセッサ１１４は、優先順位リストにおける宛先キューの位置又は順序を特定する（ステップ２３４）。プロセッサ１１４は、次に、代替のキューを得るために優先順位リストを検索する（ステップ２３６）。この代替のキューは、１）（以前の）宛先キューよりも下位の優先順位を有し、２）当該代替のキューが新たなセッションを受け付けていることを示すステータスを有するものである。換言すれば、プロセッサ１１４は、その関連したＣＤＦによって透過性ステータスを割り当てられている優先順位リスト上の下位の代替のキューを選択する。以前の宛先キューよりも下位の優先順位を有する優先順位リスト内の代替のキューを検索する１つの目的は、セッションハンドリングが、稼働状態に戻った優先順位リスト上の上位のキューに逆戻りしないようにすることである。例えば、優先順位リストが、セッションのキューＡ、キューＢ、キューＣ、及びキューＤを（その順序で）列挙しているものと仮定する。キューＡが、そのセッションのアカウンティング要求を受信するのに利用可能でない場合、分配器ユニット１１０は、キューＢを選択して、そのセッションのアカウンティング要求をハンドリングする。キューＢが、進行中のセッションの間に利用不能になり、キューＡが再度利用可能になった場合、分配器ユニット１１０は、キューＡが優先順位リストの最上位にあるので、優先順位リストに基づいてそのセッションについてキューＡを再度選択することができる。しかし、この例では、キューＡは、近時に利用可能になったものであり、キューＡ及びその関連したＣＤＦに進行中のセッションのアカウンティング要求の負荷を再度与えることを回避することが有益であり得る。したがって、セッションハンドリングが、近時に回復した又は利用可能になった上位の優先順位のキューに自動的に逆戻りしないように、プロセッサ１１４は、優先順位が以前の宛先キューよりも下位のキュー（例えば、キューＣ及びキューＤ）を得るために優先順位リストを検索する。
【００５１】
新たなセッションを受け付けていることを示すステータスを有するキューを得るために優先順位リストを検索する１つの目的は、セッションハンドリングが半透過性ステータスを有するキューに転送されないようにすることである。その関連したＣＤＦによって半透過性ステータスを割り当てられたキューは、進行中のセッション（新たなセッションではない）のアカウンティング要求を受け付ける。プロセッサ１１４が、タイプ「中間」又は「停止」のアカウンティング要求を受信すると、このアカウンティング要求は、進行中のセッション用のものである。半透過性ステータスをキューに割り当てる目的は、ＣＤＦが、現在ハンドリングしているセッションへのそのキューに対するその負荷レベルを調整することを可能にすることである。過負荷状態の幾つかの特定の条件下、又は、事業者がＣＤＦを隔離したいとき、ＣＤＦは、セッションのアカウンティング要求を選択的に受け付けることができる。この場合、ＣＤＦは、セッション開始メッセージ（例えば、ＡＣＲ開始）とセッション継続メッセージ（例えば、ＡＣＲ中間又はＡＣＲ停止）とを区別する。ＣＤＦは、処理する新たなセッション（又はイベント）を受け付けていない間、その進行中のセッションの処理を継続し、それによって、アカウンティング要求の受け付けに選択的透過性特性を与える。このように、ＣＤＦは、その負荷レベルを調整することができるとともに、進行中のセッションの処理を完了するまで継続し、完全なＣＤＲを生成することができる。正しく行われなかった場合、突然のセッションリダイレクション又はリジェクションによって、通常、下流の料金請求調停システムによって拒否され得る不完全なＣＤＲが生成される。半透過性ステータスを割り当てられたキューには、タイプ「中間」又は「停止」のアカウンティング要求が、そのキューによって現在ハンドリングされているセッションのためのものでなくても、誤って送信される場合がある。これは、このキューにとって新しいセッションのアカウンティング要求をこのキューに与えることによって、選択的な透過性の目標と矛盾する。したがって、プロセッサ１１４は、進行中のセッションのアカウンティング要求を、そのセッションをこれまでハンドリングしたことがないキューに転送しないように、新たなセッションを受け付けていることを示すステータス（すなわち、透過性）を有するキューを得るために優先順位リストを検索する。
【００５２】
図３において、プロセッサ１１４が、新たなセッションを受け付けていることを示すステータスを有する下位の優先順位のキューを優先順位リストにおいて特定した場合、プロセッサ１１４は、そのキューを代替の宛先キューとして選択する（ステップ２３８）。インターフェース１１２は、次に、アカウンティング要求をこの代替の宛先キューに送信する（ステップ２４０）。
【００５３】
アカウンティング要求は、代替の宛先キューにおいて受信され、上記で説明したように、その関連したＣＤＦによって処理される。分配器ユニット１１０のインターフェース１１２は、代替の宛先キューに関連したＣＤＦからアカウンティング回答を受信する（ステップ２４２）。プロセッサ１１４は、代替の宛先キューのキューＩＤがまだ存在していない場合、このキューＩＤをアカウンティング回答のパラメーター内に追加又はアペンドすることができる（ステップ２４４）。インターフェース１１２は、次に、このアカウンティング回答をＣＴＦ１０４に向けて送信する（ステップ２４６）。方法２００は、次に、ステップ２０４に戻ることができる。
【００５４】
優先順位リスト上で下位でありかつ新たなセッションを受け付けているキューが、優先順位リスト内にもはや存在しない場合、プロセッサ１１４は、新たなセッションを受け付けている代替のキューを得るために優先順位リストを最上位から検索する（ステップ２４８）。新たなセッションを受け付けているキューが優先順位リスト内に見つからない場合、プロセッサ１１４は、ＯＦＣＳ１２０が過負荷状態又は枯渇（drain：ドレイン）状態にあると判断する（ステップ２５０）。したがって、ＯＦＣＳ１２０は、アカウンティング要求をハンドリングするのに利用可能でなく、分配器ユニット１１０は、別のＯＦＣＳに変わらなければならない場合がある。
【００５５】
方法２００は、ＣＤＦ１２１〜１２４が非稼働になるか、又は、キュー１５１〜１５４が分配器ユニット１１０による考慮の対象から取り除かれると、セッション中に複数回繰り返すことができる。中間又は停止のアカウンティング要求において示された宛先キューが利用可能でないとき、分配器ユニット１１０は、優先順位リストにおける宛先キューの位置を特定し（ステップ２３４）、１）（以前の）宛先キューよりも下位の優先順位を有し、かつ、２）新たなセッションを受け付けていることを示すステータスを有する、代替のキューを得るために優先順位リストを検索する（ステップ２３６）。したがって、以前の宛先キューがそのセッション中に偶然に利用可能になった場合であっても、以前の宛先キュー及びその関連したＣＤＦが回復する時間を有するように、分配器ユニット１１０は以前の宛先キューへの逆戻りを回避する。
【００５６】
図４〜図７は、アカウンティング要求を複数のＣＤＦ１２１〜１２４の間で分配する一例を提供している。図４は、一例示的な実施形態におけるＣＤＦ１２１〜１２３を示すオフライン課金アーキテクチャ１００のブロック図である。ＣＤＦ１２１は、その処理キューのうちの１つとしてキューＡを有し、ＣＤＦ１２２は、その処理キューのうちの１つとしてキューＢを有し、ＣＤＦ１２３は、その処理キューのうちの１つとしてキューＣを有する。ＣＤＦ１２１〜１２３は、それらのキューを分配器ユニット１１０に登録する。この時点で、分配器ユニット１１０は、コンシステントハッシングアルゴリズム用いて、キューの名称から各キューインスタンスのハッシュ値を静的に求めることができる。
【００５７】
ＣＴＦ１０４は、ダイアメーターメッセージを分配器ユニット１１０と交換することができ、分配器ユニット１１０は、ダイアメーターＡＣＲをＣＤＦ１２１〜１２４の間で分配することが可能になる。図５は、一例示的な実施形態におけるダイアメーターＡＣＲの分配を示すメッセージ図である。図５において、まず、ＣＴＦ１０４は、セッションについてネットワーク要素１０２によって提供されるサービスの課金可能イベントを検出する（図１参照）。ＣＴＦ１０４は、この課金可能イベントの情報をダイアメーターＲｆＡＣＲに組み立てる。このサービスのアカウンティングのタイプはセッションベースであり、そのため、ＣＴＦ１０４は、ＡＣＲのアカウンティングレコードタイプＡＶＰに「開始」値を挿入する。ＣＴＦ１０４は、次に、ＡＣＲ（開始）を分配器ユニット１１０に送信する。
【００５８】
ＡＣＲ（開始）の受信に応答して、分配器ユニット１１０は、ＡＣＲのタイプを判断する。このタイプは、この例では「開始」である。分配器ユニット１１０は、次に、コンシステントハッシングアルゴリズム（又は別のタイプの分配アルゴリズム）に基づいて、キューの優先順位リスト４００を生成する。例えば、分配器ユニット１１０は、セッションに割り当てられているセッションＩＤ（例えば、ＤＳＩＤ）のハッシュ値を動的に求める。分配器ユニット１１０は、次に、（ＳｅｓｓｉｏｎＩＤ，ＱｕｅｕｅＮａｍｅ）の各組のハッシュを計算する。この例では、優先順位リスト４００は、キューＡ、キューＢ、及びキューＣをその順序で示している。分配器ユニット１１０は、ＡＣＲ（開始）が、そのセッションについて既に選択された宛先キューを示すキューＩＤを含むか否かを判断する。より詳細には、分配器ユニット１１０は、ＡＣＲ（開始）に含まれる宛先ホストＡＶＰを処理して、キューＩＤがこのＡＶＰに追加されているか否かを判断することができる。セッションが開始されたばかりであるので、このセッションの宛先キューは選択されておらず、ＡＣＲ（開始）はキューＩＤを含まない。したがって、分配器ユニット１１０は、優先順位リスト４００に基づいてセッションの宛先キューを選択する。
【００５９】
この場合、分配器ユニット１１０は、新たなセッションを受け付けている候補キューを得るために優先順位リスト４００の最上位から検索する。この実施形態について、分配器ユニット１１０は、ＣＤＦ１２１のキューＡを宛先キューとして選択すると仮定する。分配器ユニット１１０は、次に、ＡＣＲ（開始）をＣＤＦ１２１のキューＡにルーティングする。ＣＤＦ１２１は、キューＡを通じてＡＣＲ（開始）を受信し、ＡＣＲ（開始）を正常に処理する。ＣＤＦ１２１は、ＡＣＲ（開始）に対する応答としてダイアメーターＲｆアカウンティング回答（ＡＣＡ）も生成する。分配器ユニット１１０は、ＡＣＡ（開始）をＣＤＦ１２１から受信し、宛先キューのキューＩＤがまだ含まれていない場合、このキューＩＤをＡＣＡ（開始）に挿入することができる。分配器ユニット１１０は、次に、ＡＣＡ（開始）をＣＴＦ１０４にルーティングする。ＣＴＦ１０４は、宛先キューのキューＩＤをセッションの他の情報とともに記憶する。
【００６０】
その後において、ＣＴＦ１０４は、別の課金可能イベントを検出し、この課金可能イベントの情報をセッションの別のダイアメーターＡＣＲに組み立てる。ＣＴＦ１０４は、このＡＣＲを「中間」メッセージとして示すレコードタイプをこのダイアメーター要求に挿入する。ＣＴＦ１０４は、以前のＡＣＡメッセージ（すなわち、ＡＣＡ（開始））において提供された情報に基づいて、宛先キューが、このセッションについて既に選択されていることも判断する。したがって、ＣＴＦ１０４は、キューＩＤをＡＣＲ（中間）に挿入し、ＡＣＲ（中間）を分配器ユニット１１０に送信する。
【００６１】
ＡＣＲ（中間）の受信に応答して、分配器ユニット１１０は、ＡＣＲのタイプを判断する。このタイプは、この例では「中間」である。ＡＣＲがタイプ「中間」のものであるとき、分配器ユニット１１０は、宛先キューのキューＩＤをＡＣＲ（中間）から抽出する。分配器ユニット１１０は、次に、宛先キュー（すなわち、キューＡ）のステータスを判断し、キューＡが透過性ステータス又は半透過性ステータスを有する場合に、ＡＣＲ（中間）をＣＤＦ１２１のキューＡにルーティングする。セッションは、したがって、ダイアメーターメッセージに示された宛先キューに固定される。
【００６２】
ＣＤＦ１２１は、キューＡを通じてＡＣＲ（中間）を受信し、ＡＣＲ（中間）がキューＩＤを含むものと判断する。ＣＤＦ１２１は、ＡＣＲ（中間）を正常に処理し、ＡＣＲ（中間）に対する応答としてＡＣＡ（中間）を生成する。分配器ユニット１１０は、ＡＣＡ（中間）を受信し、宛先キューのキューＩＤがまだ含まれていない場合に、このキューＩＤをＡＣＡ（中間）に挿入することができる。分配器ユニット１１０は、次に、ＡＣＡ（中間）をキューＩＤとともにＣＴＦ１０４にルーティングする。
【００６３】
ＣＴＦ１０４は、複数の中間イベントを検出し、これらの複数のＡＣＲ（中間）を分配器ユニット１１０に送信することができる。分配器ユニット１１０は、受信するＡＣＲ（中間）ごとに、上記で説明したように動作する。
【００６４】
ここでもまた、ＣＴＦ１０４は、別の課金可能イベントを検出し、この課金可能イベントの情報をセッションの別のダイアメーターＡＣＲに組み立てると仮定する。ＣＴＦ１０４は、このＡＣＲを「中間」メッセージとして示すレコードタイプをこのダイアメーター要求に挿入する。ＣＴＦ１０４は、以前のＡＣＡメッセージ（すなわち、ＡＣＡ（開始）又はＡＣＲ（中間））において提供された情報に基づいて、宛先キューが、このセッションについて既に選択されていることも判断する。したがって、ＣＴＦ１０４は、キューＩＤをＡＣＲ（中間）に挿入し、ＡＣＲ（中間）を分配器ユニット１１０に送信する。
【００６５】
ＡＣＲ（中間）の受信に応答して、分配器ユニット１１０は、ＡＣＲのタイプを判断する。このタイプは、この例では「中間」である。ＡＣＲがタイプ「中間」又は「停止」のものであるとき、分配器ユニット１１０は、宛先キューのキューＩＤをＡＣＲから抽出する。分配器ユニット１１０は、次に、宛先キュー（すなわち、キューＡ）のステータスを判断する。図６に示すように、ＣＤＦ１２１は、非稼働（ＯＯＳ）になっており、キューＡは、要求（新たなセッションについても進行中のセッションについても）を受信するのに利用可能でない。したがって、分配器ユニット１１０は、セッションの優先順位リスト４００を特定し、この優先順位リスト４００における宛先キュー（キューＡ）の位置を特定する。分配器ユニット１１０は、次に、１）（以前の）宛先キューよりも下位の優先順位を有し、かつ、２）新たなセッションを受け付けていることを示すステータスを有する（すなわち、透過性ステータスを有する）、代替のキューを得るために優先順位リスト４００を検索する。ＣＤＦ１２２のキューＢが、優先順位リストにおいてキューＡよりも下位の優先順位を有し、かつ、透過性ステータスを有すると仮定する。分配器ユニット１１０は、したがって、図６に示すように、ＣＤＦ１２２のキューＢをセッションの代替の宛先キューとして選択する。分配器ユニット１１０は、次に、ＡＣＲ（中間）をＣＤＦ１２２のキューＢにルーティングする（図５参照）。動作は、上記で説明したように継続する。
【００６６】
ＣＴＦ１０４は、別の中間課金可能イベントを検出した場合、更に別のＡＣＲ（中間）を組み立てる。ＣＴＦ１０４は、宛先キューが、以前のＡＣＡメッセージにおいて提供されているようにこのセッションについて既に選択されていると判断する。したがって、ＣＴＦ１０４は、キューＩＤをＡＣＲ（中間）のパラメーター内に追加し、ＡＣＲ（中間）を分配器ユニット１１０に送信する。
【００６７】
ＡＣＲ（中間）の受信に応答して、分配器ユニット１１０は、ＡＣＲのタイプを判断する。このタイプは、この例では「中間」である。ＡＣＲがタイプ「中間」又は「停止」のものであるとき、分配器ユニット１１０は、セッションについて選択された代替の宛先キューの同一性を示すキューＩＤを抽出する。この代替の宛先キューは、ＣＤＦ１２２のキューＢである。分配器ユニット１１０は、代替の宛先キュー（すなわち、ＣＤＦ１２２のキューＢ）のステータスを判断する。図７に示すように、ＣＤＦ１２２は、非稼働（ＯＯＳ）になっており、キューＢは、要求（新たなセッションについても進行中のセッションについても）を受信するのに利用可能でない。また、ＣＤＦ１２１は、回復しており、キューＡを、透過性ステータスを有する稼働状態（ＩＳ）に戻している。分配器ユニット１１０は、セッションの優先順位リスト４００を特定し、この優先順位リスト４００における代替の宛先キュー（キューＢ）の位置を特定する。分配器ユニット１１０は、次に、１）（以前の）宛先キューよりも下位の優先順位を有し、かつ、２）新たなセッションを受け付けていることを示すステータスを有する（すなわち、透過性ステータスを有する）、代替のキューを得るために優先順位リスト４００を検索する。ＣＤＦ１２３のキューＣが、優先順位リストにおいてＣＤＦ１２２のキューＢよりも下位の優先順位を有し、かつ、透過性ステータスを有すると仮定する。分配器ユニット１１０は、したがって、図７に示すように、ＣＤＦ１２３のキューＣをセッションの代替の宛先キューとして選択する。分配器ユニット１１０は、次に、ＡＣＲ（中間）をＣＤＦ１２３のキューＣにルーティングする。動作は、上記で説明したように継続する。
【００６８】
上記で説明したようなフェイルオーバーシナリオがあるとき、分配器ユニット１１０は、代替の宛先キューを選択するときに優先順位リスト４００において下位のキューを検索する。分配器ユニット１１０が、セッションのリホーム（re-home：再誘導）を試みていたときに優先順位リスト４００の最上位のキュー（キューＡ）が回復しても、分配器ユニット１１０は、優先順位リスト４００において下位のキューを検索する。分配器ユニット１１０は、これを行って、近時に稼働状態に戻ったキュー（すなわち、キューＡ）にセッションを逆戻りさせることを回避する。そのように、ＣＤＦ１２１が、近時に過負荷状態から回復した場合に、分配器ユニット１１０は、セッションが再びキューＡに転送されて、ＣＤＦ１２１を別の過負荷状態にする危険性を回避する。代わりに、分配器ユニット１１０は、新たなセッションを受け付けるのに利用可能である優先順位リストにおける下位のキューを検索する。上記例において、ＣＤＦ１２３が、キューＣを非稼働にした場合、分配器ユニット１１０は、優先順位リスト４００において下位のキューを再度検索して、代替の宛先キューを選択する。下位の優先順位のキューが利用可能でない場合、分配器ユニット１１０は、透過性ステータスを有する候補キューを得るために優先順位リストの先頭から検索する。
【００６９】
或る時点において、ＣＴＦ１０４は、最終の課金可能イベントを検出し、この課金可能イベントの情報をダイアメーターセッションのダイアメーターＡＣＲ（停止）に組み立てる。ＣＴＦ１０４は、このＡＣＲを「停止」メッセージとして示すレコードタイプをＡＣＲ内に挿入する。ＣＴＦ１０４は、宛先キューがこのセッションについて既に選択されていることも判断し、キューＩＤをＡＣＲ（停止）に追加し、ＡＣＲ（停止）を分配器ユニット１１０に送信する（図５参照）。分配器ユニット１１０は、ＡＣＲ（停止）の分配を上記で説明したようにハンドリングするよう動作する。
【００７０】
図に示されているか又は本明細書に説明されている様々な要素又はモジュールのいずれも、ハードウェア、ソフトウェア、ファームウェア、又はこれらの或る組み合わせとして実施することができる。例えば、要素は、専用ハードウェアとして実施することができる。専用ハードウェア要素は、「プロセッサ」、「コントローラー」、又は或る同様の術語として呼ばれる場合がある。機能は、プロセッサによって提供されるとき、単一の専用プロセッサ、単一の共有プロセッサ、又は一部は共有される場合がある複数の個別プロセッサによって提供することができる。さらに、「プロセッサ」又は「コントローラー」という用語が明示的に用いられていても、これは、ソフトウェアの実行が可能なハードウェアのみを専ら指すものと解釈されるべきではなく、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ネットワークプロセッサ、特定適用向け集積回路（ＡＳＩＣ）若しくは他の回路機構、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ソフトウェアを記憶するためのリードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、不揮発性記憶装置、ロジック、又は他の或る物理ハードウェア構成要素若しくはモジュールを制限なく暗黙的に含むことができる。
【００７１】
また、要素は、当該要素の機能を実行するプロセッサ又はコンピューターによって実行可能な命令として実施することができる。これらの命令の幾つかの例は、ソフトウェア、プログラムコード、及びファームウェアである。命令は、プロセッサによって実行されると、要素の機能を実行するようにプロセッサに指示するよう動作する。命令は、プロセッサによって可読な記憶デバイスに記憶することができる。これらの記憶デバイスの幾つかの例は、デジタルメモリ若しくは固体メモリ、磁気ディスク及び磁気テープ等の磁気記憶媒体、ハードドライブ、又は光学的可読デジタルデータ記憶媒体である。
【００７２】
本明細書では、特定の実施形態が説明されたが、本開示の範囲は、それらの特定の実施形態に限定されるものではない。本開示の範囲は、以下の特許請求の範囲及びその任意の均等物によって画定される。
【図１】
2019518281.tif 000003
【図２】
2019518281.tif 000004
【図３】
2019518281.tif 000005
【図４】
2019518281.tif 000006
【図５】
2019518281.tif 000007
【図６】
2019518281.tif 000008
【図７】
2019518281.tif 000009
【国際調査報告】
2019518281.tif 000010
2019518281.tif 000011
2019518281.tif 000012