JP2022505097A - ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体 - Google Patents

ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体 Download PDF

Info

Publication number
JP2022505097A
JP2022505097A JP2021521003A JP2021521003A JP2022505097A JP 2022505097 A JP2022505097 A JP 2022505097A JP 2021521003 A JP2021521003 A JP 2021521003A JP 2021521003 A JP2021521003 A JP 2021521003A JP 2022505097 A JP2022505097 A JP 2022505097A
Authority
JP
Japan
Prior art keywords
message
queue
diameter
network node
partition key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021521003A
Other languages
English (en)
Other versions
JPWO2020081224A5 (ja
JP7270036B2 (ja
Inventor
ワン,ジンホン
シー,ジンチャオ
ユィ,シアオビン
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2022505097A publication Critical patent/JP2022505097A/ja
Publication of JPWO2020081224A5 publication Critical patent/JPWO2020081224A5/ja
Application granted granted Critical
Publication of JP7270036B2 publication Critical patent/JP7270036B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/627Queue scheduling characterised by scheduling criteria for service slots or service orders policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/66Policy and charging system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Figure 2022505097000001
ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体が開示される。1つの方法が、複数のキューにメッセージを追加するように構成された第1のネットワークノードで生じ、複数のキューの各々は、複数のスレッドのうちの1つによってアクセスされる。方法は、第1のモバイル加入者に関連付けられた第1のメッセージを受信するステップと、第1のメッセージが第1のパーティションキーに関連付けられていると判定するステップと、第1のパーティションキーに基づいて、第1のメッセージを複数のキューのうちの第1のキューに割り当てるステップとを含み、第1のキューは、第1のモバイル加入者に関連付けられたメッセージを含み、第1のキューは、複数のスレッドのうちの第1のスレッドによってアクセス可能であり、方法はさらに、第1のスレッドによって、第1のキューのメッセージを先入れ先出し順で処理するステップを含む。

Description

優先権主張
本願は、2018年10月16日に出願された米国特許出願連続番号第16/162,112号の優先権利益を主張する。当該米国特許出願の開示は、その全体がここに引用により援用される。
技術分野
ここに説明される主題は、ネットワーク通信処理に関する。より特定的には、ここに説明される主題は、ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体に関する。
背景
ネットワークノードは、複数のユーザからかなりのトラフィックを受信する場合がある。たとえば、電気通信ネットワークでは、ポリシーおよび課金ルール機能(policy and charging rules function:PCRF)サーバは、同じ加入者に関連付けられたポリシールールについての複数の同時の要求を、たとえば複数のインターフェイスおよび/またはさまざまなネットワークノードを介して受信する場合がある。この例では、これらの要求に関連付けられたメッセージが順不同で処理される可能性、ならびに/もしくは、依存または関連するメッセージが異なるプロセッサまたはノードによって並列処理される可能性が高い。なぜなら、リモートパーティのネットワーク要素が、たとえば3GPP規格に従って厳密に定義されたシーケンスでネットワーク要素と相互作用するという保証が一般にないためである。メッセージが順不同で処理される場合、もしくは、関連するメッセージが同じノードまたはプロセッサによって処理されない場合、サービスを中断する問題が生じるおそれがある。たとえば、加入者がネットワークまたは関連サービスにアクセスするのを妨げる競合状態(たとえば、共有リソースおよび/または複数のスレッドを伴うタイミングが不正確な結果を生み出すおそれがある状態)が生じるかもしれない。トラフィック処理問題を緩和するための1つの方法は、所与のコールフローにおけるメッセージが、当該コールフローのためのロックが利用可能になるまで待機するように、コールフローごとにロックメカニズムを実現することであり、それにより、少なくともいくつかの順不同の処理イベントを防止する。しかしながら、ロックベースのメカニズムは、メモリ(たとえば、ロック競合オーバーヘッド)要件を増加させるおそれがあり、また、診断し解決することが困難であり得る他の問題(たとえば、競合、デッドロック、枯渇、優先順位逆転、コンボイなど)を引き起こすおそれがある。
概要
ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体が開示される。1つの方法が、複数のキューにメッセージを追加するように構成された第1のネットワークノードで生じ、複数のキューの各々は、複数のスレッドのうちの1つによってアクセスされる。方法は、第1のモバイル加入者に関連付けられた第1のメッセージを受信するステップと、第1のメッセージが第1のパーティションキーに関連付けられていると判定するステップと、第1のパーティションキーに基づいて、第1のメッセージを複数のキューのうちの第1のキューに割り当てるステップとを含み、第1のキューは、第1のモバイル加入者に関連付けられたメッセージを含み、第1のキューは、複数のスレッドのうちの第1のスレッドによってアクセス可能であり、方法はさらに、第1のスレッドによって、第1のキューのメッセージを先入れ先出し順で処理するステップを含む。
1つのシステムは、第1のネットワークノードを含む。第1のネットワークノードは、少なくとも1つのプロセッサと、メモリとを含む。第1のネットワークノードは、複数のキューにメッセージを追加するように構成され、複数のキューの各々は、複数のスレッドのうちの1つによってアクセスされる。第1のネットワークノードはさらに、第1のモバイル加入者に関連付けられた第1のメッセージを受信し、第1のメッセージが第1のパーティションキーに関連付けられていると判定し、第1のパーティションキーに基づいて、第1のメッセージを複数のキューのうちの第1のキューに割り当てるために構成され、第1のキューは、第1のモバイル加入者に関連付けられたメッセージを含み、第1のキューは、複数のスレッドのうちの第1のスレッドによってアクセス可能であり、第1のネットワークノードはさらに、第1のスレッドによって、第1のキューのメッセージを先入れ先出し順で処理するために構成される。
ここに説明される主題は、ハードウェアおよび/またはファームウェアと組合されたソフトウェアにおいて実現され得る。たとえば、ここに説明される主題は、プロセッサによって実行されるソフトウェアにおいて実現され得る。1つの例示的な実現化例では、ここに説明される主題は、コンピュータのプロセッサによって実行されると複数のステップを行なうようにコンピュータを制御するコンピュータ実行可能命令が格納されたコンピュータ読取可能媒体を使用して実現されてもよい。ここに説明される主題を実現するのに好適な例示的なコンピュータ読取可能媒体は、ディスクメモリデバイス、チップメモリデバイス、プログラマブルロジックデバイス、および特定用途向け集積回路といった非一時的デバイスを含む。加えて、ここに説明される主題を実現するコンピュータ読取可能媒体は、単一のデバイスまたはコンピューティングプラットフォーム上に位置していてもよく、もしくは、複数のデバイスまたはコンピューティングプラットフォームにわたって分散されていてもよい。
ここに使用されるように、「ノード」という用語は、1つ以上のプロセッサとメモリとを含む少なくとも1つの物理的コンピューティングプラットフォームを指す。
ここに使用されるように、「機能」または「モジュール」という用語は、ここに説明される特徴を実現するためにハードウェアおよび/またはファームウェアと組合されたソフトウェアを指す。
図面の簡単な説明
以下に、ここに説明される主題が、添付図面を参照して説明される。
ネットワークノードでのロックなし通信処理のための例示的な通信環境を示す図である。 ルーティングノードを伴う例示的なロックなし通信処理を示す図である。 セッション識別子を伴うロックなし通信処理のための例示的な通信環境を示す図である。 ポリシーエンジンでの例示的なロックなし通信処理を示す図である。 ネットワークノードでのロックなし通信処理のための例示的なプロセスを示す図である。
詳細な説明
ここに説明される主題は、ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体に関する。電気通信ネットワークでは、あるモバイル加入者が、さまざまなノード(たとえば、Diameterルーティングエージェント(Diameter routing agent:DRA)、ポリシーおよび課金実施機能(policy and charging enforcement function:PCEF)サーバ、オンライン課金機能(online charging function:OCF)、アプリケーションサーバ(application server:AS)、モビリティ管理エンティティ(mobility management entity:MME)、ホーム加入者サーバ(home subscriber server:HSS)、ユーザデータリポジトリ(user data repository:UDR)など)、および/または、インターフェイス(たとえば、Gx、Rx、Sh、S9、Syなど)を介して、あるネットワークノードへの複数の同時のまたは並行する要求を起動またはトリガする場合がある。競合状態または他のメッセージ処理エラーもしくは問題(たとえば、メッセージが順不同に処理されること)を防止または緩和するために、さまざまな手法またはメカニズムが利用されてもよい。同じモバイル加入者からの同時の要求を伴う競合状態を取り扱うかまたは緩和するための1つの例示的な手法は、加入者識別子ベースのロックメカニズムを含み得る。この例では、加入者識別子ベースのロックメカニズムは、エンド・ツー・エンドレベルではなく、構成要素またはホップ・バイ・ホップレベルで作動してもよい。すなわち、要求の取り扱いに関与する(たとえばDiameterエンドポイント、Diameterバックエンド、Diameterバランサ、データベースプラグイン構成要素、Diameterマネージャ、ポリシーエンジン、およびDiameterマネージャに戻る)構成要素パイプラインの各構成要素ごとに、ロックが取得されてもよく、要求またはその一部が構成要素によって処理されてもよく、次にロックが解除されてもよい。加入者識別子ベースのロックメカニズムまたは他のロックベースのメカニズムは、競合状態の緩和を助けるために使用され得るものの、そのようなメカニズムは、たとえば異なるスレッドにおける複数の構成要素のインターリーブを考慮した場合、データ整合性または順序付けられた処理を保証せず、関連付けられた要求が並行処理されるかもしれない。また、ロックベースのメカニズムは概して、メモリ(たとえば、ロック競合オーバーヘッド)要件を増加させるおそれがあり、また、診断し解決することが困難であり得る他の問題(たとえば、競合、デッドロック、枯渇、優先順位逆転、コンボイなど)を引き起こすおそれがある。
ここに説明される主題のいくつかの局面に従って、ネットワークノードでのロックなし通信処理のための手法、方法、システム、および/またはメカニズムが開示される。たとえば、ここに説明される局面に従ったネットワークノードは、複数のキューにメッセージを追加するように構成されてもよく、複数のキューの各々は、複数のスレッドのうちの1つによってアクセスされる(たとえば、各キューは単一のスレッドのみによってアクセスされ得る)。この例では、ネットワークノードはまた、第1のモバイル加入者に関連付けられた第1のメッセージを受信し、第1のメッセージが第1のパーティションキーに関連付けられていると判定し、第1のパーティションキーに基づいて、第1のメッセージを複数のキューのうちの第1のキューに割り当てるように構成されてもよく、第1のキューは、第1のモバイル加入者に関連付けられたメッセージを含み、第1のキューは、複数のスレッドのうちの第1のスレッドによってアクセス可能であり、ネットワークノードはさらに、第1のスレッドによって、第1のキューのメッセージを先入れ先出し(first in, first out:FIFO)順で処理するために構成されてもよい。
有利には、ロックなし通信処理手法および/またはシステムを使用することにより、ネットワークノード(たとえば信号転送点)は、競合状態および/または他の処理問題を効果的に緩和するとともに、たとえばデッドロック、枯渇、および/またはロックオーバーヘッドメモリ要件といった、ロックベースのシステムに関連付けられた問題を回避し得る。
ここに説明される主題のさまざまな実施形態について、これから詳細に参照する。その例は、添付図面に示される。同じまたは同様の部分を指すために、可能な限り、同じ参照番号が、図面全体にわたって使用されるであろう。
図1は、ネットワークノードでのロックなし通信処理のための例示的な通信環境100を示す図である。いくつかの実施形態では、通信環境100は、進化型パケットコア(evolved packet core:EPC)ネットワーク、ロング・ターム・エボリューション(long-term evolution:LTE)ネットワーク、LTEアドバンストネットワーク、Diameterネットワーク、第4世代(4G)ネットワーク、第3世代(3G)ネットワーク、および/または別のネットワークに関連付けられた1つ以上のノードを含んでいてもよい。
通信環境100は、ルーティングノード(routing node:RN)104と、ポリシーエンジン(policy engine:PE)108と、たとえばユーザ装置(user equipment:UE)、HSS、MME、PCEF、ASなどの複数の他のネットワークノードとを含んでいてもよい。たとえば、環境100におけるさまざまなノードは、Diameterおよび/または他のプロトコルを使用して通信することができる。Diameterとは、コンピュータネットワークのための認証、認可および会計プロトコルである。Diameterアプリケーションは、新しいコマンドおよび/または属性、たとえば拡張認証プロトコル(extensible authentication protocol:EAP)とともに使用するためのコマンドおよび属性を追加することによって、ベースプロトコルを拡張する。典型的なDiameterパケットは、Diameterメッセージに関する情報をカプセル化するためのDiameterヘッダと可変数の属性値ペア(attribute-value pair:AVP)とを含む。
RN104は、インターネットプロトコル(internet protocol:IP)メッセージ、伝送制御プロトコル(transmission control protocol:TCP)メッセージ、Diameterメッセージ、ハイパーテキスト転送プロトコル(hypertext transfer protocol:HTTP)メッセージ、および他のメッセージなどのメッセージを受信し、処理し、ルーティングし、および/または破棄するための任意の好適なエンティティ(たとえば、少なくとも1つのプロセッサ、1つ以上のコンピューティングプラットフォーム上などで実行されるソフトウェア)を表わしていてもよい。たとえば、RN104は、マルチプロトコルルーティングエージェント(multi-protocol routing agent:MRA)、IPルータ、IPスイッチ、LTEシグナリングルータ、Diameterシグナリングルータ、Diameterプロキシ、Diameterエージェント、Diameterルーティングエージェント、Diameter中継エージェント、Diameter変換エージェント、またはDiameterリダイレクトエージェントを含むかまたは表わしていてもよい。RN104は、さまざまなメッセージを処理および/またはルーティングするための機能性を含んでいてもよい。いくつかの実施形態では、そのような機能性は、1つ以上のモジュール(たとえばセッションルーティングモジュール)に含まれてもよい。
RN104は、さまざまなメッセージを受信、処理、および/またはスイッチングまたはルーティングするための機能性を含んでいてもよく、また、たとえば、第3世代パートナーシッププロジェクト(3rd Generation Partnership Project:3GPP)LTE通信インターフェイス、および他の(たとえば非LTE)通信インターフェイスといった、さまざまなノードと通信するためのさまざまな通信インターフェイス102を含んでいてもよい。さまざまなノードと通信するためのいくつかの例示的な通信インターフェイス102は、IPインターフェイス、TCPインターフェイス、UDPインターフェイス、HTTPインターフェイス、RDPインターフェイス、SCTPインターフェイス、RTPインターフェイス、Diameterインターフェイス、LTEインターフェイス、および/またはIMSインターフェイスのうちの1つ以上を含んでいてもよい。いくつかの例示的なDiameterインターフェイスは、Gx、Rx、S9、Sd、Sx、Sy、およびShを含んでいてもよい。
いくつかの実施形態では、RN104は、ここに説明される機能を行なうためのソフトウェアとともに、ハードウェア(たとえばプロセッサおよびメモリ)を含んでいてもよい。RN104の例示的なプロセッサは、物理的プロセッサ、汎用マイクロプロセッサ、シングルコアプロセッサ、マルチコアプロセッサ、フィールドプログラマブルゲートアレイ(field-programmable gate array:FPGA)、および/または特定用途向け集積回路(application-specific integrated circuit:ASIC)のうちの少なくとも1つを含んでいてもよい。いくつかの実施形態では、RN104および/または関連するプロセッサは、ランダムアクセスメモリ(random-access memory:RAM)またはデータ記憶装置などの1つ以上の非一時的コンピュータ読取可能媒体に格納されたソフトウェアを実行してもよい。たとえば、ソフトウェアは、RN104のプロセッサによる実行のためにメモリ構造にロードされてもよい。この例では、いくつかのプロセッサ、またはそれらの上で実行されるスレッドは、他のプロセッサ、またはそれらの上で実行されるスレッドとは独立して動作するように構成されてもよい。
いくつかの実施形態では、RN104は、パーティションキー割り当て器(partition key assigner:PKA)106を含んでいてもよい。PKA106は、パーティションキーを判定し、および/またはメッセージに割り当て、および/またはパーティションキーをメッセージに挿入するための任意の好適なエンティティ(たとえば、1つ以上のプロセッサで実行されるソフトウェア)を表わしていてもよい。たとえば、RN104は、パーティションキーを生成し、特定のネットワークノード、たとえばPE108にルーティグまたは送信されることになっているいくつかまたはすべてのメッセージにパーティションキーを挿入するように、ネットワークオペレータからの1つ以上の命令を介して構成されてもよい。この例では、RN104は、ハッシュアルゴリズムおよび/または加入者関連情報を使用して、あるメッセージのためのパーティションキーを生成するように構成されてもよく、パーティションキーは、当該メッセージをメッセージ処理キューに割り当てる方法を定めるために(たとえばPE108または関連するエンティティによって)使用可能な値である。パーティションキーを生成する際に使用可能な例示的な加入者関連情報は、セッション識別子、シーケンス番号、E.164番号、国際モバイル加入者識別番号(international mobile subscriber identity:IMSI)、および/または移動局統合サービスデジタルネットワーク(mobile station integrated services digital network:MSISDN)番号を含んでいてもよい。
いくつかの実施形態では、パーティションキーがハッシュ値である代わりに、パーティションキーは、修正がほとんどまたはまったくない1つ以上の加入者関連識別子であってもよい。そのような実施形態では、PE108または関連するエンティティは、メッセージ処理のための適切なキューを識別するために、以下に説明されるような追加のステップを行なう必要があるかもしれない。たとえば、パーティションキーがキューに容易にマッピングしない場合(たとえば、パーティションキーが、ハッシュ出力ではなく、IMSIまたは他の加入者関連識別子である場合)、PE108または関連するエンティティは、パーティションキーが入力された場合、および、ハッシュアルゴリズムがPE108でキューを一意的に識別する値を出力するように設計されている場合に、ハッシュアルゴリズムを使用することによって、適切なキューを識別してもよい。
PE108は、ポリシー情報を生成し、および/または環境100におけるさまざまなノードに提供するための任意の好適なエンティティ(たとえば、1つ以上のコンピューティングプラットフォームまたはデバイス)を表わしていてもよい。たとえば、PE108は、ポリシー関連メッセージを受信し、処理し、当該ポリシー関連メッセージに応答することが可能であってもよい。いくつかの実施形態では、PE108は、マルチメディアポリシーエンジン(multimedia policy engine:MPE)、および/または、ポリシーおよび課金ルール機能(PCRF)を含んでいてもよい。たとえば、PE108は、3GPPポリシー課金制御(policy charging control:PCC)アーキテクチャの一部であってもよい。この例では、PCC要素は、アクセス、リソース、およびサービス品質(quality-of-service:QoS)制御を提供してもよい。
いくつかの実施形態では、PE108は、ここに説明される機能を行なうためのソフトウェアとともに、ハードウェア(たとえばプロセッサおよびメモリ)を含んでいてもよい。PE108の例示的なプロセッサは、物理的プロセッサ、汎用マイクロプロセッサ、シングルコアプロセッサ、マルチコアプロセッサ、FPGA、および/またはASICのうちの少なくとも1つを含んでいてもよい。いくつかの実施形態では、RN104および/または関連するプロセッサは、データストレージ114などの1つ以上の非一時的コンピュータ読取可能媒体に格納されたソフトウェアを実行してもよい。たとえば、ソフトウェアは、PE108のプロセッサによる実行のためにメモリ構造にロードされてもよい。この例では、いくつかのプロセッサ、またはそれらの上で実行されるスレッドは、他のプロセッサ、またはそれらの上で実行されるスレッドとは独立して動作するように構成されてもよい。
いくつかの実施形態では、PE108は、ポリシー関連アクションを行なう1つ以上のプロセッサを含んでいてもよい。いくつかの実施形態では、PE108は、1つ以上のコンピュータの分散コンピューティングシステムまたは任意の適切なシステムにおいて実現されてもよい。たとえば、PE108は、PCRFまたは他の機能を各々実現する1つ以上のプロセッサブレードを含むコンピューティングプラットフォーム上で実現されてもよい。
動作時、PE108は、モバイルネットワークにおけるポリシールールを判定するために、リアルタイムまたはほぼリアルタイムで機能してもよい。PE108は、ネットワークコアで動作し、ユーザ情報および他の特殊機能に集中的にアクセスしてもよい。PE108は、リアルタイムまたはほぼリアルタイムで、モバイルネットワーク、操作支援システム、および他のソースとの間で情報を集約してもよく、それは、ルールの生成のために、および、モバイルネットワーク上でアクティブなユーザごとにポリシー決定を自動的に行なうために有用であり得る。PE108を使用して、モバイルネットワークは、複数のサービス、QoSレベル、および課金ルールを提供してもよい。
いくつかの実施形態では、PE108は、リアルタイムまたはほぼリアルタイムでネットワークおよびユーザポリシーの双方を管理する能力を提供してもよい。たとえば、PE108は、ネットワークトラフィックを効率的にかつ動的にルーティングし、優先順位をつけてもよい。PE108はまた、デバイス、ネットワーク、場所、および請求データのうちの1つ以上に基づいて、ユーザコンテキストの統一見解を提供してもよい。たとえば、PE108は、収益保証および帯域幅管理へのキー入力を提供することができる。
PE108は、構成要素パイプライン118を含んでいてもよく、または、構成要素パイプライン118に通信可能に結合されてもよい。構成要素パイプライン118は、ポリシー関連要求または他のメッセージを処理するための、および/または、関連するアクションを行なうための任意の好適なエンティティ(たとえば、1つ以上のコンピューティングプラットフォームまたはデバイス)を表わしていてもよい。いくつかの実施形態では、構成要素パイプライン118は、PE108の内部にある、またはPE108に通信可能に結合された、さまざまなモジュールまたは機能を表わしていてもよい。いくつかの実施形態では、構成要素パイプライン118は、PE108の外部にあるノードまたは機能を表わしていてもよい。構成要素パイプライン118は、Diameterメッセージを順次または連鎖的に取り扱うかまたは処理する構成要素を含んでいてもよい。たとえば、スレッドが、Diameterメッセージを処理のための第1の構成要素に送信することによってDiameter要求を処理してもよく、第1の構成要素は、Diameterメッセージを処理してから、Diameterメッセージを処理のための第2の構成要素に送信する、などとなっていてもよい。この例では、異なるメッセージは、構成要素パイプライン118の異なる構成要素を必要とするかもしれず、必要とされる構成要素の順序は、処理中のメッセージに依存して変わるかもしれない。構成要素パイプライン118の例示的な構成要素は、Diameterエンドポイント、Diameterバックエンド、Diameterバランサ、データベースプラグイン構成要素、またはDiameterマネージャを含んでいてもよい。
いくつかの実施形態では、PE108は、負荷分散器110と、メッセージ処理のための複数のキュー112と、データストレージ114とを含んでいてもよい。負荷分散器110は、複数のキュー112のうちの1つにメッセージを分配し、および/または割り当てるための任意の好適なエンティティ(たとえば、1つ以上のプロセッサで実行されるソフトウェア)を表わしていてもよい。たとえば、PE108または負荷分散器110は、入力/出力(I/O)層で(たとえば、単一の包括的なTCPまたはSCTPメッセージキューで)受信された(たとえばRN104からの)メッセージを検査してもよく、スケジューリングアルゴリズム(たとえば負荷分散アルゴリズム)および/またはメッセージデータに基づいて、メッセージをさらなる処理のためにキュー112に分配する方法を定めてもよい。この例では、DiameterメッセージがTCPまたはSCTPパケットを通して送信されると仮定すると、PE108または負荷分散器110は、受信されたパケットからDiameterメッセージを抽出してから、Diameterメッセージをキュー112に割り当ててもよい。
データストレージ114は、負荷分散に関連付けられたデータを格納するかまたはメッセージ処理をスケジュールするための任意の好適なエンティティを表わしていてもよい。いくつかの実施形態では、データストレージ114は、パーティションキーと割り当てられたキューとの関連性を格納するためのデータストア116(たとえば、データテーブル、または他のデータ構造)を含んでいてもよい。たとえば、あるメッセージをあるキューに割り当てた後に、対応するパーティションキーがまだデータストア116になかった場合、PE108または負荷分散器110は、パーティションキーがそのキューに関連付けられていることを示すようにデータストア116を更新してもよい。この例では、PE108または負荷分散器110は、受信されたメッセージからのパーティションキーをルックアップ値として使用してデータストア116を検査し、受信されたメッセージがすでにキューに関連付けられているかどうかを判定することができる。いくつかの実施形態では、データストレージ114はまた、他のメッセージデータ、パーティションキー、および/またはキューを関連付けるための追加のデータおよび/またはデータストアを含んでいてもよい。たとえば、データストレージ114は、加入者関連識別子と割り当てられたキューとの関連性、および/または、加入者関連識別子と割り当てられたパーティションキーとの関連性を格納するためのデータストア116(たとえば、データテーブル、または他のデータ構造)を含んでいてもよい。
いくつかの実施形態では、PE108および/または別のネットワークノードは、ロックなし通信処理またはその関連局面を行なうために(たとえば適切なプログラミングを介して)構成されてもよい。たとえば、PE108は、RN104を介して、および/またはさまざまなネットワークノードから受信されたメッセージを処理するための複数のスレッドを実行するように構成されてもよい。この例では、キュー112からの各キューは単一のスレッドに割り当てられてもよく、関連するメッセージ(たとえば、特定の加入者に関連付けられたメッセージ)は同じキューに追加される。この例を続けると、そのそれぞれのキューからの各スレッドプロセスメッセージをFIFO順で有することにより、関連するメッセージは順次処理される。そのため、PE108でロックベースのメッセージ処理手法を必要とすることなく、競合状態および/または他のメッセージ処理問題(たとえば、メッセージが順不同に処理されること)を緩和するロックなし通信処理を達成することができる。
いくつかの実施形態では、例示的なロックなし通信処理手法は、メッセージを処理するための複数のスレッドNと、処理のためにメッセージを格納または保持するための複数のキューMとを伴ってもよく、MおよびNは双方とも整数を表わし、MはN以上である。いくつかの実施形態では、各スレッドは、同じ数のキューにアクセスするように構成されてもよい。たとえば、Mが10と等しく、Nが5と等しいと仮定すると、各スレッドは、2つの異なるキューを利用するように割り当てられてもよい。いくつかの実施形態では、スレッドは、異なる数のキューにアクセスするように構成されてもよい。たとえば、Mが10と等しく、Nが4と等しいと仮定すると、1つのスレッドは1つのキューを利用するように割り当てられてもよく、他のスレッドは各々、3つの異なるキューを利用するように割り当てられてもよい。
いくつかの実施形態では、1つ以上のスケジューリングアルゴリズムが、PE108または別のネットワークノードでのメッセージ処理のためのキュー112にメッセージを割り当てるために使用可能であってもよい。たとえば、ハイブリッドの類似性ベースの負荷分散されたスケジューリングアルゴリズムが、PE108でのキュー112にメッセージを割り当てるために利用されてもよい。この例では、スケジューリングアルゴリズムは、関連するメッセージ(たとえば、同じモバイル加入者に関連付けられたメッセージ、もしくは、同じセッションまたはフローの一部であるメッセージ)を識別するために、1つ以上のキー(たとえば、パーティションキー、加入者関連識別子、および/またはメッセージデータ)を使用してもよい。ある受信メッセージがあるキューに関連付けられている(たとえば、当該メッセージに格納されたパーティションキーがすでにキューに割り当てられている)場合、受信メッセージは同じキューに割り当てられるであろう。そのため、スケジューリングアルゴリズムは、関連するメッセージについてのキュー類似性を提示してもよい。この例を続けると、スケジューリングアルゴリズムは、キュー112のうちのあるキューに関連付けられていないメッセージ(たとえば、モバイルネットワークにちょうどログイン中のモバイル加入者からのDiameterセッション生成要求)を、分配してもよい(たとえば、重み付けラウンドロビンまたは重み付け最小負荷などの1つ以上のさまざまなアルゴリズムを介して負荷分散してもよい)。上述のハイブリッドの類似性ベースの負荷分散されたスケジューリングアルゴリズム、または同様のスケジューリングアルゴリズムを使用することにより、関連メッセージを同じキューに割り当てつつ、非関連メッセージをすべてのキュー112にわたって割り当てる(たとえば負荷分散する)ことができ、それにより、キュー内の関連メッセージが予期された順序(たとえばFIFO順)で順次処理されることを可能にしつつ、キュー間の非関連メッセージが同時に(たとえば並行に)処理されることを可能にする。
いくつかの実施形態では、メッセージは、PE108または関連するエンティティによって受信される前に、メッセージがメッセージ処理のためのPE108での適切なキューを示すためのパーティションキーまたは他の情報を含むように、RN104またはPKA106によって処理されてもよい。たとえば、RNまたはPKA106は、モバイル加入者に関連付けられたDiameter要求メッセージを受信してもよく、Diameter要求メッセージにおける加入者関連識別子(たとえば、IMSIまたはE.164番号)に基づいてパーティションキーを判定してもよい。この例では、RN104またはPKA106は、(たとえばヘッダフィールドまたはAVPにおける)パーティションキーをDiameter要求メッセージに追加してもよい。
いくつかの実施形態では、PE108または別のネットワークノードでロックなし通信処理を構成することは、環境100におけるさまざまなノードに構成情報を提供することを伴ってもよい。たとえば、ロックなし通信処理に関連する構成情報が、1つ以上のAVPを使用して、Diameterメッセージまたは他のメッセージにおいて提供されてもよい。
表1~3は、例示的なパーティションキーAVPデータを含む。各表は、異なるノードまたは範囲(たとえば使用)に関連する設定および/またはキーについての情報を含んでいてもよい。表1は、共通使用に関連し得る(たとえば、ノード固有ではない)パーティションキーAVPデータを含む。特に、表1は、「Diameter.Partition.Enabled」キー、「Diameter.Partition.Stateless」キー、「Diameter.Partition.Applications」キー、「Diameter.Partition.Commands」キー、および「Diameter.Partition.Debug」キーについてのキー名、説明、およびデフォルト値を提供する。
Figure 2022505097000002
表2は、ルーティングノード(たとえばRN104)使用に関連し得るパーティションキーAVPデータを含む。特に、表2は、「Diameter.Partition.Enabled」キーについてのキー名、説明、およびデフォルト値を提供する。
Figure 2022505097000003
表3は、ポリシーエンジン(たとえばPE108)使用に関連し得るパーティションキーAVPデータを含む。特に、表3は、「Diameter.Partition.Applications」キー、「Diameter.Partition.KeyTag」キー、および「Diameter.Partition.BufferImpl」キーについてのキー名、説明、およびデフォルト値を提供する。
Figure 2022505097000004
図1は例示のためのものであること、ならびに、図1に関して上述されたさまざまなノードおよび/またはモジュール、場所、および/または機能性は変更、修正、追加、または除去されてもよいことが理解されるであろう。
図2は、RN104を伴う例示的なロックなし通信処理を示す図である。いくつかの実施形態では、PE108は、ロックなし通信処理手法またはシステムに関連付けられたパーティションキーまたは関連するAVPを有するDiameterメッセージを受信してもよく、これらのパーティションキーまたは関連するAVPに基づいてDiameterメッセージをキューに割り当ててもよい。そのような実施形態では、パーティションキーまたは関連するAVPは、DiameterメッセージがPE108によって受信される前に、RN104または関連するエンティティ(たとえばPKA106)によってDiameterメッセージに挿入されてもよい。
図2を参照して、RN104は、複数のノードから、およびさまざまな通信インターフェイス102を介して、Diameterメッセージを受信可能であってもよい。いくつかの実施形態では、RN104またはPKA106は、受信されたDiameterメッセージを、さまざまな情報(たとえば、IMSI、E.164番号、シーケンス番号など)について検査するように構成されてもよく、(たとえば、DiameterメッセージをPE108に送信する前に、関連するAVPをDiameterメッセージに挿入することによって)Diameterメッセージにパーティションキーでタグまたはマークをつける際に、この情報を使用してもよい。そのような実施形態では、PE108は、どのキューにDiameterメッセージを割り当てるかを判定するために、パーティションキーおよび/または負荷分散アルゴリズムを使用してもよい。
ステップ2001で、IMSIまたは他の加入者関連識別子(たとえばE.164番号)を含むDiameterメッセージが、RN104によって受信されてもよい。たとえば、Diameterメッセージは、MME、HSS、PCEF、または別のノードから受信されてもよい。
ステップ2002で、RN104は、加入者関連識別子に関連付けられたパーティションキーを判定し、パーティションキーをDiameterメッセージに挿入してもよく、または、PE108がDiameterメッセージを受信するための適切なキューを判定することができるように、Diameterメッセージにマークをつけてもよい。たとえば、RN104または関連するエンティティ(たとえばPKA106)は、Diameterメッセージに格納された特定の加入者関連識別子をパーティションキーの基盤として使用するように、ネットワークオペレータまたは他のエンティティによって構成されてもよい。この例では、RN104または関連するエンティティは、Diameterメッセージにおける加入者関連識別子を使用してパーティションキーを判定してもよい。この例を続けると、パーティションキーは、同じ加入者関連識別子を含むDiameterメッセージが常に、メッセージ処理のために使用される複数のキューのうちの同じキューに割り当てられるように、ハッシュアルゴリズムによって判定されてもよい。
ステップ2003で、RN104は、パーティションキーを含むDiameterメッセージを処理のためにPE108に送信してもよい。
ステップ2004で、PE108は、Diameterメッセージを受信してもよく、パーティションキーおよび/または負荷分散アルゴリズムに基づいてDiameterメッセージのための適切なキューを判定してもよい。たとえば、PE108は、データストア116に問い合せることによって、パーティションキーに関連付けられた以前のDiameterメッセージがキューに割り当てられたかどうかを判定しようとしてもよい。この例では、パーティションキーがすでにキューに割り当てられている場合、PE108は、Diameterメッセージをキューに追加してもよい。この例を続けると、パーティションキーがまだキューに割り当てられていない場合、PE108は、Diameterメッセージのためのキューを選択するために、負荷分散アルゴリズム(たとえば、重み付けラウンドロビンアプローチ、ランダムアプローチ、最小接続アプローチなど)を使用してもよく、このキュー割り当てをその後の使用のためにデータストア116に追加してもよい。
ステップ2005で、PE108は、ステップ2004で判定されたキューにDiameterメッセージを追加してもよい。
いくつかの実施形態では、PE108のプロセッサに関連付けられたスレッドが、キューにおけるメッセージを、FIFO順または何らかの他の順序(たとえば、優先順位に基づいた順序)で処理してもよい。
図2は例示のためのものであること、ならびに、異なるおよび/または追加のメッセージ、ノード、および/またはアクションが使用されてもよいことが理解されるであろう。また、ここに説明されるさまざまなメッセージおよび/またはアクションは異なる順序またはシーケンスで起こり得ることが理解されるであろう。たとえば、PE108がPKA機能性を行なう実施形態では、PE108または関連するエンティティは、パーティションキーがないDiameterメッセージを受信してもよく、受信後にIMSIまたは他のメッセージデータを使用して、パーティションキーおよび/または処理のための適切なキューを判定してもよい。
図3は、セッション識別子を伴うロックなし通信処理のための例示的な通信環境300を示す図である。いくつかの実施形態では、通信環境300は通信環境100に類似していてもよく、上述のPE108、RN104、および/または他のネットワークノードを含んでいてもよい。たとえば、通信環境300は、EPCネットワーク、LTEネットワーク、LTEアドバンストネットワーク、Diameterネットワーク、4Gネットワーク、3Gネットワーク、および/または別のネットワークに関連付けられた1つ以上のノードを含んでいてもよい。
通信環境300は、サーバ302を含んでいてもよい。サーバ302は、RN104を介してまたは直接(たとえば、RN104を横切ることなく)PE108と通信可能な任意の好適なエンティティ(たとえば、少なくとも1つのプロセッサ、1つ以上のコンピューティングプラットフォームなどの上で実行されるソフトウェア)を表わしていてもよい。たとえば、サーバ302は、アプリケーションサーバ、ユーザデータリポジトリ(UDR)、またはオンライン課金システム(online charging system:OCS)であってもよい。いくつかの実施形態では、PE108とサーバ302との間の通信は、1つ以上のDiameterインターフェイス(たとえば、Gx、Rx、S9、Sd、Sx、Sy,またはSh)および/または他のインターフェイスを利用してもよい。
いくつかの実施形態では、PE108は、パーティションキーがない、および/またはIMSIまたはE.164番号がないDiameterメッセージまたは他のメッセージを受信および/または送信することによって、サーバ302と通信してもよい。そのような実施形態では、PE108または関連するエンティティ(たとえば負荷分散器110)は、セッション識別子とパーティションキーとの関連性を含むデータストア304を利用してもよい。たとえば、PE108は、パーティションキーまたは関連するパーティションキータグ(たとえばIMSI)を有していないメッセージを受信または生成してもよい。この例では、PE108または関連するエンティティは、メッセージに関連付けられたセッション識別子を使用してデータストア304に問い合わせることによって、メッセージに関連するパーティションキーを識別してもよい。セッション識別子に関連付けられたパーティションキーが見つかった場合、PE108または関連するエンティティは、当該パーティションキーに対応するキューにメッセージを追加してもよい。セッション識別子に関連付けられたパーティションキーが見つからない場合、PE108または関連するエンティティは、負荷分散アルゴリズム、たとえば、最小利用アルゴリズムまたはラウンドロビンアルゴリズムによって判定されるようなキューにメッセージを追加してもよい。
図3は例示のためのものであること、ならびに、図3に関して上述されたさまざまなノードおよび/またはモジュール、場所、および/または機能性は変更、修正、追加、または除去されてもよいことが理解されるであろう。
図4は、PE108での例示的なロックなし通信処理を示す図である。いくつかの実施形態では、PE108は、ロックなし通信処理手法またはシステムに関連付けられたパーティションキーまたは関連するAVPを有していないDiameterメッセージを生成および/または送信してもよい。そのような実施形態では、PE108または関連するエンティティは、他のメッセージ関連データ(たとえばセッション識別子)が、使用するための適切なキューを示すことができるかどうかを判定するために構成されてもよい。
図4を参照して、PE108は、Diameter Syインターフェイスおよび/または他のインターフェイスを介して、OCS400と通信してもよい。OCS400は、ポリシー使用および/または関連する課金情報を監視するための任意の好適なエンティティを表わしていてもよい。たとえば、OCS400は、あるユーザまたは関連するデバイスについてどれだけの支出またはクレジットが残されているかを示すためにポリシーカウンタを維持してもよい。この例では、PE108または別のエンティティは、Diameter要求(たとえば、支出限界要求(Spending-Limit-Request:SLR)メッセージ、または支出ステータス通知要求(Spending-Status-Notification-Request:SNR)メッセージ)をOCS400に送信してもよい。この例を続けると、OCS400は、要求された支出情報を示すDiameterメッセージ(たとえば、支出限界返答(Spending-Limit-Answer:SLA)メッセージ、または支出ステータス通知返答(Spending-Status-Notification-Answer:SNR)メッセージ)を用いて応答してもよい。
ステップ4001で、PE108は、セッション識別子に関連付けられたパーティションキーを判定してもよい。たとえば、PE108または関連するエンティティは、データストア304にアクセスし、セッション識別子に基づいてパーティションキーを識別してもよい。この例では、セッション識別子は、PE108が課金情報についてOCS400に問い合わせるであろうフローに関連していてもよい。
ステップ4002で、PE108は、セッション識別子に関連付けられたDiameter Sy要求(たとえばDiameter SNRメッセージ)を生成してもよく、ステップ4001で判定されたパーティションキーに対応するキューにDiameter Sy要求を追加してもよい。
ステップ4003で、PE108は、Diameter Sy要求を処理のためにOCS400に送信してもよい。
ステップ4004で、OCS400は、Diameter Sy返答(たとえばDiameter SNAメッセージ)を生成し、PE108にたとえば直接またはRN104を介して送信してもよい。
ステップ4005で、PE108は、Diameter Sy返答におけるセッション識別子に関連付けられたパーティションキーを判定してもよい。
ステップ4006で、PE108は、ステップ4005で判定されたパーティションキーに対応するキューにDiameter Sy返答を追加してもよい。
いくつかの実施形態では、PE108のプロセッサに関連付けられたスレッドが、ステップ4006のキューにおけるメッセージを、FIFO順または何らかの他の順序で処理してもよい。
いくつかの実施形態では、PE108は、Diameter Sy要求に(たとえば関連するAVP内の)パーティションキーを含めてもよく、OCS400は、Diameter Sy返答に当該パーティションキーを含めるように構成されてもよい。そのような実施形態では、PE108または関連するエンティティは、たとえばデータストア304に問い合わせるためにセッション識別子を使用する代わりに使用するためのパーティションキーおよび対応するキューを判定するために、メッセージを検査してもよい。
図4は例示のためのものであること、ならびに、異なるおよび/または追加のメッセージ、ノード、および/またはアクションが使用されてもよいことが理解されるであろう。また、ここに説明されるさまざまなメッセージおよび/またはアクションは異なる順序またはシーケンスで起こり得ることが理解されるであろう。たとえば、他のノード、たとえばHSS、アプリケーションサーバ、および/またはUDRと通信する場合、セッション識別子を伴う類似するデータストアルックアップが行なわれてもよい。
図5は、ネットワークノードでのロックなし通信処理のための例示的なプロセス500を示す図である。いくつかの実施形態では、ここに説明される例示的なプロセス500、またはその一部は、PE108、RN104、および/または1つ以上のモジュールまたはノードで、またはそれらによって行なわれてもよい。
例示的なプロセス500を参照して、ステップ502で、第1のモバイル加入者に関連付けられた第1のメッセージが受信されてもよい。たとえば、Diameter信用管理要求(credit control request:CCR)メッセージが、PCEFからRN104を介してPE108に送信されてもよい。この例では、Diameter CCRメッセージは、特定の加入者に関連付けられたIMSIを含んでいてもよい。
ステップ504で、第1のメッセージが第1のパーティションキーに関連付けられていると判定されてもよい。たとえば、PE108または関連するエンティティは、複数のキューのうちのどれにメッセージが割り当てられるべきかを示すパーティションキーを含むパーティションAVPについて、Diameterメッセージを検査してもよい。
いくつかの実施形態では、第1のメッセージがあるパーティションキーに関連付けられていると判定することは、セッション識別子をルックアップ値として使用して、セッション識別子とパーティションキーとの関連性を含むデータ構造(たとえばデータストア304)に問い合わせることを含んでいてもよい。たとえば、パーティションキーまたは関連するタグ(たとえばIMSI)を有していないメッセージが生成または受信された場合、PE108または関連するエンティティは、セッション識別子がパーティションキーに関連付けられているかどうかを判定するために、データストア304に問い合わせてもよい。この例では、セッション識別子があるパーティションキーに関連付けられている場合、PE108または関連するエンティティは、当該パーティションキーに対応するキューにメッセージを割り当て、および/または追加してもよい。この例を続けると、セッション識別子があるパーティションキーに関連付けられていない場合、PE108または関連するエンティティは、負荷分散アルゴリズム、たとえば、最小利用アルゴリズムまたはラウンドロビンアルゴリズムによって判定されるようなキューにメッセージを割り当て、および/または追加してもよい。
いくつかの実施形態では、第1のメッセージは、Diameterメッセージ、Diameter Gxメッセージ、Diameter S9メッセージ、Diameter Shメッセージ、Diameter Sxメッセージ、Diameter Syメッセージ、Diameter Rxメッセージ、Diameter CCRメッセージ、またはDiameter再認証要求(re-auth-request:RAR)メッセージを含んでいてもよい。
ステップ506で、第1のメッセージは、第1のパーティションキーに基づいて、複数のキューのうちの第1のキューに割り当てられてもよく、第1のキューは、第1のモバイル加入者に関連付けられたメッセージを含み、第1のキューは、複数のスレッドのうちの第1のスレッドによってアクセス可能である。たとえば、入力/出力レベルで、PE108は、第1のキューに関連付けられたパーティションキーを含むメッセージを受信してもよく、そのため、PE108は、メッセージを第1のキューに割り当てて追加してもよく、メッセージはFIFO状に処理され得る。
ステップ508で、第1のキューのメッセージは、第1のスレッドによって、FIFO順で処理されてもよい。たとえば、スレッドは、PE108のプロセッサ上で実行されてもよい。この例では、スレッドは、処理のためのメッセージを得るために、複数のキューのうちの1つのキューにアクセスするように構成されてもよく、スレッドは、キューからのメッセージをFIFO状に処理する。
いくつかの実施形態では、第1のスレッドによる第1のキューのメッセージの処理の後、前、またはそれと同時に、ネットワークノード(たとえばPE108)は、第2のモバイル加入者に関連付けられた第2のメッセージを受信し、第2のメッセージがパーティションキーまたは対応するキューに関連付けられていないと判定し、負荷分散アルゴリズムを使用して、第2のメッセージを複数のキューのうちの第2のキューに割り当てるために構成されてもよく、第2のキューは、複数のスレッドのうちの第2のスレッドによってアクセス可能であってもよく、ネットワークノードはさらに、第2のスレッドによって、第2のキューのメッセージを先入れ先出し順で処理するために構成されてもよい。
いくつかの実施形態では、第1のパーティションキーは、第1のメッセージに格納された加入者関連識別子を使用して判定されてもよい。たとえば、加入者関連識別子は、セッション識別子、シーケンス番号、E.164番号、IMSI、またはMSISDNを含んでいてもよい。
いくつかの実施形態では、第1のメッセージが第1のネットワークノードによって受信される前に、第1のパーティションキーは第2のネットワークノードによって第1のメッセージに格納されてもよい。いくつかの実施形態では、第1のネットワークノードは、PCRF、MPE、またはPE108を含んでいてもよい。いくつかの実施形態では、第2のネットワークノードは、RN104、たとえばMRAおよび/またはDRAを含んでいてもよい。たとえば、RN104は、メッセージのためのパーティションキーを判定してもよく、当該メッセージにおけるヘッダ部分に当該パーティションキーを挿入してから、当該メッセージをPE108にルーティングまたは転送してもよい。
ここに説明された主題のいくつかの局面は、Diameter関連ネットワークノード(たとえば、RN104およびPE108)を参照して説明されてきたが、さまざまな他のネットワークノードが、ここに説明された主題のいくつかの局面を利用してもよいということが理解されるであろう。たとえば、ユーザまたは加入者から複数のメッセージを受信するどのネットワークノードも、ロックなし通信処理を行なうために、ここに説明された特徴、メカニズム、および/または手法を使用してもよい。
なお、ここに説明されたPE108、RN104、および/または機能性は、特殊用途コンピューティングデバイス、たとえば電気通信ネットワークノードを構成してもよい。また、ここに説明されたPE108、RN104、および/または機能性は、通信処理の技術分野を向上させることができる。たとえば、ロックなし通信処理手法および/またはシステムを使用することにより、ネットワークノード(たとえば信号転送点)は、競合状態および/または他の処理問題を効果的に緩和するとともに、たとえばデッドロック、枯渇、および/またはロックオーバーヘッドメモリ要件といった、ロックベースのシステムに関連付けられた問題を回避し得る。
ここに説明された主題のさまざまな詳細が、ここに説明された主題の範囲から逸脱することなく変更されてもよいということが理解されるであろう。また、前述の説明は、限定のためではなく例示のみのためのものである。

Claims (20)

  1. ネットワークノードでのロックなし通信処理のための方法であって、前記方法は、
    複数のスレッドのうちの1つによって各々アクセスされる複数のキューにメッセージを追加するように構成された第1のネットワークノードで、
    第1のモバイル加入者に関連付けられた第1のメッセージを受信するステップと、
    前記第1のメッセージが第1のパーティションキーに関連付けられていると判定するステップと、
    前記第1のパーティションキーに基づいて、前記第1のメッセージを前記複数のキューのうちの第1のキューに割り当てるステップとを含み、前記第1のキューは、前記第1のモバイル加入者に関連付けられたメッセージを含み、前記第1のキューは、前記複数のスレッドのうちの第1のスレッドによってアクセス可能であり、前記方法はさらに、
    前記第1のスレッドによって、前記第1のキューのメッセージを先入れ先出し順で処理するステップを含む、方法。
  2. 第2のモバイル加入者に関連付けられた第2のメッセージを受信するステップと、
    前記第2のメッセージがパーティションキーまたは対応するキューに関連付けられていないと判定するステップと、
    負荷分散アルゴリズムを使用して、前記第2のメッセージを前記複数のキューのうちの第2のキューに割り当てるステップとを含み、前記第2のキューは、前記複数のスレッドのうちの第2のスレッドによってアクセス可能であり、前記方法はさらに、
    前記第2のスレッドによって、前記第2のキューのメッセージを先入れ先出し順で処理するステップを含む、請求項1に記載の方法。
  3. 前記第1のメッセージがパーティションキーに関連付けられていると判定するステップは、セッション識別子をルックアップ値として使用して、セッション識別子と、関連するパーティションキーとの関連性を含むデータ構造に問い合わせるステップを含む、請求項1または請求項2に記載の方法。
  4. 前記第1のメッセージは、Diameterメッセージ、Diameter Gxメッセージ、Diameter S9メッセージ、Diameter Shメッセージ、Diameter Sxメッセージ、Diameter Syメッセージ、Diameter Rxメッセージ、Diameter信用管理要求メッセージ、またはDiameter再認証要求メッセージを含む、先行する請求項のいずれか1項に記載の方法。
  5. 前記第1のパーティションキーは、前記第1のメッセージに格納された加入者関連識別子を使用して判定される、先行する請求項のいずれか1項に記載の方法。
  6. 前記加入者関連識別子は、セッション識別子、シーケンス番号、E.164番号、国際モバイル加入者識別番号(IMSI)、または移動局統合サービスデジタルネットワーク(MSISDN)番号を含む、請求項5に記載の方法。
  7. 前記第1のメッセージが前記第1のネットワークノードによって受信される前に、前記第1のパーティションキーは第2のネットワークノードによって前記第1のメッセージに格納される、先行する請求項のいずれか1項に記載の方法。
  8. 前記第2のネットワークノードは、マルチプロトコルルーティングエージェント、またはDiameterルーティングエージェントを含む、請求項7に記載の方法。
  9. 前記第1のネットワークノードは、ポリシーおよび課金ルール機能、マルチメディアポリシーエンジン、またはポリシーエンジンを含む、先行する請求項のいずれか1項に記載の方法。
  10. ネットワークノードでのロックなし通信処理のためのシステムであって、前記システムは、
    第1のネットワークノードを含み、
    前記第1のネットワークノードは、
    少なくとも1つのプロセッサと、
    メモリとを含み、
    前記第1のネットワークノードは、複数のキューにメッセージを追加するように構成され、前記複数のキューの各々は、複数のスレッドのうちの1つによってアクセスされ、前記第1のネットワークノードはさらに、
    第1のモバイル加入者に関連付けられた第1のメッセージを受信し、
    前記第1のメッセージが第1のパーティションキーに関連付けられていると判定し、
    前記第1のパーティションキーに基づいて、前記第1のメッセージを前記複数のキューのうちの第1のキューに割り当てるために構成され、前記第1のキューは、前記第1のモバイル加入者に関連付けられたメッセージを含み、前記第1のキューは、前記複数のスレッドのうちの第1のスレッドによってアクセス可能であり、前記第1のネットワークノードはさらに、
    前記第1のスレッドによって、前記第1のキューのメッセージを先入れ先出し順で処理するために構成される、システム。
  11. 前記第1のネットワークノードはさらに、
    第2のモバイル加入者に関連付けられた第2のメッセージを受信し、
    前記第2のメッセージがパーティションキーまたは対応するキューに関連付けられていないと判定し、
    負荷分散アルゴリズムを使用して、前記第2のメッセージを前記複数のキューのうちの第2のキューに割り当てるために構成され、前記第2のキューは、前記複数のスレッドのうちの第2のスレッドによってアクセス可能であり、前記第1のネットワークノードはさらに、
    前記第2のスレッドによって、前記第2のキューのメッセージを先入れ先出し順で処理するために構成される、請求項10に記載のシステム。
  12. 前記第1のネットワークノードはさらに、セッション識別子をルックアップ値として使用して、セッション識別子と、関連するパーティションキーとの関連性を含むデータ構造に問い合わせるために構成される、請求項10または請求項11に記載のシステム。
  13. 前記第1のメッセージは、Diameterメッセージ、Diameter Gxメッセージ、Diameter S9メッセージ、Diameter Shメッセージ、Diameter Sxメッセージ、Diameter Syメッセージ、Diameter Rxメッセージ、Diameter信用管理要求メッセージ、またはDiameter再認証要求メッセージを含む、請求項10~12のいずれか1項に記載のシステム。
  14. 前記第1のパーティションキーは、前記第1のメッセージに格納された加入者関連識別子を使用して判定される、請求項10~13のいずれか1項に記載のシステム。
  15. 前記加入者関連識別子は、セッション識別子、シーケンス番号、E.164番号、国際モバイル加入者識別番号(IMSI)、または移動局統合サービスデジタルネットワーク(MSISDN)番号を含む、請求項14に記載のシステム。
  16. 第2のネットワークノードは、前記第1のメッセージが前記第1のネットワークノードによって受信される前に、前記第1のパーティションキーを前記第1のメッセージに格納するように構成される、請求項10~15のいずれか1項に記載のシステム。
  17. 前記第2のネットワークノードは、マルチプロトコルルーティングエージェント、またはDiameterルーティングエージェントを含む、請求項16に記載のシステム。
  18. 前記第1のネットワークノードは、ポリシーおよび課金ルール機能、マルチメディアポリシーエンジン、またはポリシーエンジンを含む、請求項10~17のいずれか1項に記載のシステム。
  19. 非一時的コンピュータ読取可能媒体であって、前記非一時的コンピュータ読取可能媒体において具現化されたコンピュータ実行可能命令を含み、前記コンピュータ実行可能命令は、第1のネットワークノードの少なくとも1つのプロセッサによって実行されると、前記第1のネットワークノードに複数のステップを行なわせ、前記複数のステップは、
    複数のスレッドのうちの1つによって各々アクセスされる複数のキューにメッセージを追加するように構成された第1のネットワークノードで、
    第1のモバイル加入者に関連付けられた第1のメッセージを受信するステップと、
    前記第1のメッセージが第1のパーティションキーに関連付けられていると判定するステップと、
    前記第1のパーティションキーに基づいて、前記第1のメッセージを前記複数のキューのうちの第1のキューに割り当てるステップとを含み、前記第1のキューは、前記第1のモバイル加入者に関連付けられたメッセージを含み、前記第1のキューは、前記複数のスレッドのうちの第1のスレッドによってアクセス可能であり、前記複数のステップはさらに、
    前記第1のスレッドによって、前記第1のキューのメッセージを先入れ先出し順で処理するステップを含む、非一時的コンピュータ読取可能媒体。
  20. 前記第1のメッセージがパーティションキーに関連付けられていると判定するステップは、セッション識別子をルックアップ値として使用して、セッション識別子と、関連するパーティションキーとの関連性を含むデータ構造に問い合わせるステップを含む、請求項19に記載の非一時的コンピュータ読取可能媒体。
JP2021521003A 2018-10-16 2019-09-30 ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体 Active JP7270036B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/162,112 2018-10-16
US16/162,112 US10798609B2 (en) 2018-10-16 2018-10-16 Methods, systems, and computer readable media for lock-free communications processing at a network node
PCT/US2019/053911 WO2020081224A1 (en) 2018-10-16 2019-09-30 Methods, systems, and computer readable media for lock-free communications processing at a network node

Publications (3)

Publication Number Publication Date
JP2022505097A true JP2022505097A (ja) 2022-01-14
JPWO2020081224A5 JPWO2020081224A5 (ja) 2022-04-14
JP7270036B2 JP7270036B2 (ja) 2023-05-09

Family

ID=68296712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021521003A Active JP7270036B2 (ja) 2018-10-16 2019-09-30 ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体

Country Status (5)

Country Link
US (1) US10798609B2 (ja)
EP (1) EP3867750A1 (ja)
JP (1) JP7270036B2 (ja)
CN (1) CN112889029A (ja)
WO (1) WO2020081224A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112913320B (zh) * 2018-11-14 2024-04-26 联想(新加坡)私人有限公司 与双注册的设备建立连接
US11055027B1 (en) * 2019-11-15 2021-07-06 Rapid7, Inc. Dynamic queue management
US11240303B2 (en) * 2019-12-02 2022-02-01 Microsoft Technology Licensing, Llc Processing and ordering messages in partitions
CN113422680B (zh) * 2021-06-02 2022-12-23 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 数据加密传输系统和数据加密传输方法
CN114338540B (zh) * 2022-03-17 2022-07-15 上海国微思尔芯技术股份有限公司 信号分流方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013526091A (ja) * 2010-02-18 2013-06-20 アルカテル−ルーセント 多様なソースメッセージの関連付け
US20160037348A1 (en) * 2011-10-17 2016-02-04 Blackberry Limited Associating services to perimeters

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406524B2 (en) 2001-07-26 2008-07-29 Avaya Communication Isael Ltd. Secret session supporting load balancer
US7633969B2 (en) 2004-09-10 2009-12-15 Tekelec Methods, systems, and computer program products for dynamically adjusting load sharing distributions in response to changes in network conditions
US7844973B1 (en) * 2004-12-09 2010-11-30 Oracle America, Inc. Methods and apparatus providing non-blocking access to a resource
WO2007050244A2 (en) 2005-10-27 2007-05-03 Georgia Tech Research Corporation Method and system for detecting and responding to attacking networks
JP2007193626A (ja) 2006-01-20 2007-08-02 Brother Ind Ltd コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラム
US8484656B2 (en) 2007-03-12 2013-07-09 Citrix Systems, Inc. Systems and methods for providing global server load balancing of heterogeneous devices
US8284205B2 (en) 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
JP4815459B2 (ja) 2008-03-06 2011-11-16 株式会社日立製作所 負荷分散制御サーバ、負荷分散制御方法及びコンピュータプログラム
WO2011100629A2 (en) 2010-02-12 2011-08-18 Tekelec Methods, systems, and computer readable media for diameter network management
US20120192200A1 (en) 2011-01-21 2012-07-26 Rao Jayanth N Load Balancing in Heterogeneous Computing Environments
US8776207B2 (en) 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US8737304B2 (en) 2011-03-01 2014-05-27 Tekelec, Inc. Methods, systems, and computer readable media for hybrid session based diameter routing
US9038088B2 (en) 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
US8782645B2 (en) 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US8787407B2 (en) 2011-10-14 2014-07-22 Alcatel Lucent Processing messages correlated to multiple potential entities
US8707314B2 (en) 2011-12-16 2014-04-22 Advanced Micro Devices, Inc. Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
CN102624922B (zh) 2012-04-11 2014-08-13 武汉大学 一种网络gis异构集群服务器负载均衡方法
US10063443B2 (en) * 2012-05-29 2018-08-28 Openet Telecom Ltd. System and method for managing VoLTE session continuity information using logical scalable units
US20130339978A1 (en) 2012-06-13 2013-12-19 Advanced Micro Devices, Inc. Load balancing for heterogeneous systems
US9332053B2 (en) 2012-06-15 2016-05-03 Tekelec, Inc. Methods, systems, and computer readable media for load balancing stream control transmission protocol (SCTP) messages
US9197712B2 (en) 2012-11-30 2015-11-24 At&T Intellectual Property I, L.P. Multi-stage batching of content distribution in a media distribution system
US9900379B2 (en) 2013-04-06 2018-02-20 Citrix Systems, Inc. Systems and methods for startup round robin enhancement
US11388082B2 (en) * 2013-11-27 2022-07-12 Oracle International Corporation Methods, systems, and computer readable media for diameter routing using software defined network (SDN) functionality
CN104123190B (zh) 2014-07-23 2017-09-19 浪潮(北京)电子信息产业有限公司 异构集群系统的负载均衡方法和装置
US10951519B2 (en) 2015-06-17 2021-03-16 Oracle International Corporation Methods, systems, and computer readable media for multi-protocol stateful routing
US10860378B2 (en) * 2015-07-01 2020-12-08 Oracle International Corporation System and method for association aware executor service in a distributed computing environment
US9979656B2 (en) 2015-12-07 2018-05-22 Oracle International Corporation Methods, systems, and computer readable media for implementing load balancer traffic policies
US20170318082A1 (en) * 2016-04-29 2017-11-02 Qualcomm Incorporated Method and system for providing efficient receive network traffic distribution that balances the load in multi-core processor systems
US10681189B2 (en) * 2017-05-18 2020-06-09 At&T Intellectual Property I, L.P. Terabit-scale network packet processing via flow-level parallelization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013526091A (ja) * 2010-02-18 2013-06-20 アルカテル−ルーセント 多様なソースメッセージの関連付け
US20160037348A1 (en) * 2011-10-17 2016-02-04 Blackberry Limited Associating services to perimeters

Also Published As

Publication number Publication date
US10798609B2 (en) 2020-10-06
EP3867750A1 (en) 2021-08-25
JP7270036B2 (ja) 2023-05-09
US20200120541A1 (en) 2020-04-16
CN112889029A (zh) 2021-06-01
WO2020081224A1 (en) 2020-04-23

Similar Documents

Publication Publication Date Title
JP7270036B2 (ja) ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体
JP6509219B2 (ja) ソフトウェア定義ネットワーク(SDN)機能性を使用したDiameterルーティングのための方法、システム、およびコンピュータ読取可能媒体
EP3516833B1 (en) Methods, systems, and computer readable media for discarding messages during a congestion event
US9699045B2 (en) Methods, systems, and computer readable media for performing diameter overload control
WO2020177497A1 (zh) 对网络切片客户进行计费处理的方法、系统及相关设备
CN108881018B (zh) 用于在diameter信令路由器处路由diameter消息的方法、系统及装置
US11777994B2 (en) Dynamic per subscriber policy enablement for security platforms within service provider network environments
CN113676924B (zh) 通信方法、装置及系统
US11528253B2 (en) Security platform for service provider network environments
US20160205041A1 (en) Bandwidth providing method based on multi-flow grouping
JP2022532731A (ja) スライスベースネットワークにおける輻輳回避
WO2016180188A1 (zh) 分发建链方法、装置和系统
US10027577B2 (en) Methods, systems, and computer readable media for peer aware load distribution
CN116097886A (zh) 用于冗余传输的策略控制
US11451470B2 (en) Systems and methods for data service request classification and routing
US10574526B2 (en) Control method for application feature rules and application feature server
JPWO2020081224A5 (ja)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220406

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230317

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230424

R150 Certificate of patent or registration of utility model

Ref document number: 7270036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150