用于离线计费系统的目的地选择以避免逆转的制作方法

文档序号:16512754发布日期:2019-01-05 09:26阅读:189来源:国知局
用于离线计费系统的目的地选择以避免逆转的制作方法

本发明涉及通信系统的领域,并且具体地说涉及离线计费。



背景技术:

服务提供商通常向终端用户(也被称作订户)提供许多语音和数据服务。语音服务的实例是语音呼叫、呼叫转移、呼叫等待等。数据服务的实例是流式传输音频、流式传输视频、基于互联网协议的语音业务(voip)、在线游戏和ip-tv。数据服务由分组核心网络管理,其介接终端用户与外部分组数据网络(pdn),例如,因特网。分组核心网络的一些实例是通用分组无线电服务(gprs)核心网络、长期演进(lte)网络的演进型分组核心(epc)等。例如手机、个人数据助理、智能电话、笔记本计算机等的移动装置可以通过与一或多个基站的空中接口存取由网络提供的数据服务。

服务提供商使用离线和在线计费功能以记录由存取各种服务的每个装置引发的资源使用。3gpp/3gpp2标准群组已定义可用于在各种网络域(例如,电路交换域、分组交换域和/或无线域)、ip多媒体子系统和新兴的3g/oma应用程序服务中实施在线计费系统和离线计费系统的规范的集合。

根据3gppts32.240,离线计费是与资源使用同时收集网络资源使用的计费信息的过程。计费信息被传递通过一连串的计费功能,这引起计费数据记录(cdr)文件的产生,所述文件被传递到网络运营商的计费域以用于订户计费和/或运营商之间的记账。为了实施离线计费,计费触发功能(ctf)实施于提供服务的网络元件中。ctf收集涉及可计费事件的信息、将此信息汇编到匹配的计费事件中,并且将计费事件发送到事件计费数据功能(cdf),所述功能可以实施于网络元件或离线计费系统(ofcs)中。计费事件可以由记账请求(例如,diameter记账请求(acr))中的ctf提供。

cdf从一或多个ctf接收计费事件,并且使用包含在计费事件中的信息来构造cdr。cdr是关于可计费事件(例如,呼叫或会话建立的时间、呼叫或会话结束的时间、所传递的数据量等)的信息的格式化的集合以用于计费和记账。cdf随后将cdr发送到ofcs的计费网关功能(cgf)。cgf充当网络与计费域之间的网关。因此,cgf从cdf(和其它cdf)收集cdr,任选地使cdr相关并且将cdr写入到cdr文件中,并且使得cdr文件可供用于计费域。

典型的运营商网络将利用多个cdf和cgf来实施离线计费。因此,例如diameter路由代理(dra)的前端装置与ofcs结合使用以将来自ctf的计费事件分配到cdf。当cdf变成停止服务时,前端装置需要识别用于计费事件的替代的目的地。期望的是前端装置有效地确定替代的目的地,并且避免ofcs的另一cdf的过载。



技术实现要素:

本文中所描述的实施例提供当cdf变成停止服务(oos)并且不可供用于处理将来计费事件使用时会话的计费事件的处理。每个cdf通过前端装置注册一或多个队列以用于接收记账请求。在本文中所描述的实施例中前端装置是增强型的以将记账请求分配到cdf的相应的队列。更确切地说,前端装置经配置以处理其中队列被cdf带离服务且替代的队列被选择用于会话的情境。在选择替代的队列之前,前端装置确定队列的状态使得记账请求不被发送到潜在地过载的cdf。

一个实施例包括经配置以连接到离线计费系统(ofcs)的多个计费数据功能(cdf)的分配器单元。所述分配器单元(通过接口)经配置以从cdf接收信息以用于注册与cdf相关联的队列。分配器单元经配置以从用于会话的计费触发功能(ctf)接收起始记账请求,基于分配算法产生(通过处理器)用于会话的队列的优先化的列表,从用于会话的优先化的列表中选择目的地队列,并且将起始记账请求发射到目的地队列。分配器单元经配置以从用于会话的ctf接收后续记账请求,从指示先前选择的用于会话的目的地队列的后续记账请求的参数中提取第一标识符,并且确定目的地队列的状态。当目的地队列的状态指示目的地队列并不接纳新会话或进行中的会话时,分配器单元经配置以识别用于会话的优先化的列表,在优先化的列表中识别目的地队列的位置,并且搜索优先化的列表寻找具有与目的地队列相比较低的优先级的第一替代的队列,并且具有指示第一替代的队列接纳新会话的状态。分配器单元经配置以选择第一替代的队列作为用于会话的替代的目的地队列,并且将后续记账请求发射到替代的目的地队列。

在另一实施例中,后续记账请求包括diameter记账请求(acr),并且分配器单元经配置以从指示目的地队列的acr的目的地主机属性值对(avp)中提取第一标识符。

在另一实施例中,分配器单元经配置以从与替代的目的地队列相关联的cdf接收用于后续记账请求的记账应答,将用于替代的目的地队列的第二标识符添加在记账应答的参数中,并且将记账应答发射到ctf。

在另一实施例中,记账应答包括diameter记账应答(aca),并且分配器单元经配置以将用于替代的目的地队列的第二标识符添加到aca的起源主机属性值对(avp)。

在另一实施例中,当处理器未能在优先化的列表中找到具有与目的地队列相比较低的优先级并且具有指示第一替代的队列接纳新会话的状态的第一替代的队列时,分配器单元经配置以从优先化的列表的顶部搜索具有指示第二替代的队列接纳新会话的状态的第二替代的队列。

在另一实施例中,当处理器未能在优先化的列表中找到具有指示第二替代的队列接纳新会话的状态的第二替代的队列时,分配器单元经配置以确定ofcs处于过载状态。

在另一实施例中,分配算法包括基于用于会话的会话标识符和用于队列的名称产生队列的优先化的列表的一致性散列算法。

在另一实施例中,分配器单元经配置以监测队列中的每一个的状态。队列中的每一个的状态指示以下各项中的一个:接纳新会话和进行中的会话、仅接纳进行中的会话,或不接纳新会话或进行中的会话。

在另一实施例中,响应于起始记账请求,分配器单元经配置以搜索优先化的列表寻找具有指示候选项队列接纳新会话的状态的候选项队列,并且将所述候选项队列选择为用于会话的目的地队列。

另一实施例包括将来自分配器单元的用于会话的记账请求分配到ofcs的多个cdf的方法。所述方法包含从cdf中接收分配器单元中的信息以用于注册与cdf相关联的队列。所述方法进一步包含从用于会话的计费触发功能(ctf)接收分配器单元中的起始记账请求、基于分配算法产生用于会话的队列的优先化的列表、从用于会话的优先化的列表中选择目的地队列,并且将来自分配器单元的起始记账请求发射到目的地队列。所述方法进一步包含从用于会话的ctf接收分配器单元中的后续记账请求,从指示先前选择的用于会话的目的地队列的后续记账请求的参数中提取第一标识符,并且确定目的地队列的状态。当目的地队列的状态指示目的地队列并不接纳新会话或进行中的会话时,所述方法包含识别用于会话的优先化的列表,在优先化的列表中识别目的地队列的位置,并且搜索优先化的列表寻找具有与目的地队列相比较低的优先级的第一替代的队列,并且具有指示第一替代的队列接纳新会话的状态。所述方法进一步包含选择第一替代的队列作为用于会话的替代的目的地队列,并且将来自分配器单元的后续记账请求发射到替代的目的地队列。

另一实施例包括实施通过连接到ofcs的多个cdf的分配器单元的处理器执行的经编程指令的非暂时性计算机可读媒体。所述指令引导处理器从cdf接收信息以用于注册与cdf相关联的队列。所述指令引导处理器通过接口从用于会话的计费触发功能(ctf)接收起始记账请求,基于分配算法产生用于会话的队列的优先化的列表,从用于会话的优先化的列表中选择目的地队列,并且通过接口将起始记账请求发射到目的地队列。所述指令引导处理器通过接口从用于会话的ctf接收后续记账请求,从指示先前选择的用于会话的目的地队列的后续记账请求的参数中提取第一标识符,并且确定目的地队列的状态。当目的地队列的状态指示目的地队列并不接纳新会话或进行中的会话时,所述指令引导处理器识别用于会话的优先化的列表,在优先化的列表中识别目的地队列的位置,并且搜索优先化的列表寻找具有与目的地队列相比较低的优先级的第一替代的队列,并且具有指示第一替代的队列接纳新会话的状态。所述指令引导处理器选择第一替代的队列作为用于会话的替代的目的地队列,并且通过接口将后续记账请求发射到替代的目的地队列。

上述发明内容提供说明书的一些方面的基本理解。此发明内容并非说明书的详尽概述。它既不意图识别说明书的关键或重要要素,也不意图划定说明书的具体实施例的任何范围或权利要求书的任何范围。它的唯一目的是以简化形式呈现说明书的一些概念作为稍后呈现的更详细描述的序言。

附图说明

现在仅借助于实例并且参考附图描述本发明的一些实施例。相同参考标号表示所有图式上的相同元件或相同类型的元件。

图1说明在示例性实施例中的离线计费架构。

图2到3在示例性实施例中描绘了说明在多个cdf当中分配记账请求的方法的流程图。

图4是在示例性实施例中说明cdf的离线计费架构的框图。

图5是在示例性实施例中说明diameteracr的分配的消息图。

图6是在示例性实施例中说明cdf的离线计费架构的框图。

图7是在示例性实施例中说明cdf的离线计费架构的框图。

具体实施方式

附图和以下描述说明具体示例性实施例。由此将了解,所属领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现实施例的原理且包含在实施例的范围内。此外,本文中所描述的任何实例意图辅助理解实施例的原理,并且将被理解为不限于此类具体地叙述的实例和状况。因此,本发明概念不限于下文描述的具体实施例或实例,而是由权利要求书及其等效物限制。

图1说明在示例性实施例中的离线计费架构100。架构100可以在电路交换网络或分组交换网络中实施,所述网络将服务提供给其订户(即,终端用户和相关联的用户设备(ue))以为订户提供离线计费。一些示例性网络包含ip多媒体子系统(ims)网络、长期演进(lte)网络、通用分组无线电服务(gprs)等。

架构100包含通过分配器单元110连接到离线计费系统(ofcs)120的网络元件102。网络元件102是在由网络提供的服务的供应中使用的设备或装备。举例来说,网络元件可以包括服务-呼叫会话控制功能(s-cscf)或ims网络的应用程序服务器(as)、服务网关(sgw)或lte网络的分组数据网络网关(pgw)等。网络元件102包含计费触发功能(ctf)104,其检测用于由网络元件102提供的服务的可计费事件、将用于可计费事件的信息汇编到匹配的计费事件中,以及将计费事件发送到计费数据功能(cdf)。在网络元件102的情况下,ctf104可以使用diameterrf接口。ctf104将计费信息汇编到记账请求中,例如,diameterrf记账请求(acr)。虽然在图1中说明了一个ctf104,但是可能存在接触分配器单元110的许多ctf。虽然未在图1中具体地说明,但是网络元件102可以包含处理器或其它硬件组件以实施ctf104。

diameter协议在图1中示出为计费协议。然而,可使用其它计费协议。因此,参考如本文中所论述的记账请求或记账应答可指代diameter协议或另一计费协议。

ofcs120是经配置以实施用于由网络提供的会话或服务的离线计费的设备、服务器、装置或装备。离线计费可以是两种类型:基于会话的或基于事件的。在基于事件的计费中,ctf报告使用或呈现的服务,其中服务提供是在单个操作中呈现的,例如,订户注册、重新注册、解除注册等。ctf在类型“事件”(例如,acr事件)的记账请求中报告使用。基于会话的计费是报告会话的使用报告并且使用开始、中间和停止记账数据的过程。在会话期间,取决于会话的进行,ctf104可以发射0、1或多个中间记账请求。

在此实施例中,ofcs120包含多个cdf(cdf1-cdfn)121-124。cdf包括位于ofcs120内的从网络元件内的ctf接收计费事件、将计费事件格式化成cdr并且将cdr发送到cgf的元件或模块。每个cdf例子可以通过刀片服务器的应用程序刀片提供。刀片服务器是容纳已知为服务器刀片的多个电子电路板的服务器机箱。每个刀片被视作服务器,并且通常专用于单个应用程序。每个cdf例子可以可替代地由虚拟机(vm)提供。虚拟机是运行操作系统和一或多个应用程序的模拟硬件的软件计算机。被称作“超级监督器”的专用软件模仿中央处理单元(cpu)、存储器、硬盘、网络和其它硬件资源。许多虚拟机能够共享主机的物理资源,并且来自不同硬件平台的所分配的硬件资源的集合可用于实施多个虚拟机。

ofcs120还包含多个cgf(cgf1-cgfn)131-134。cgf包括位于ofcs120内的使cdr针对会话相关并且将具有相关cdr的cdr文件转发到计费域140的元件或模块。计费域140是接收和处理cdr文件以用于计费调解和其它计费应用程序(例如,统计应用程序)的运营商网络的一部分。ofcs120中的cdf可以通过diameterga接口与cgf通信。在图1中所示的情况下,gtp'可以在ga接口上使用以将来自cdf的cdr传送到cgf。虽然在图1中示出了cdf与cgf之间的1:1关系,但是n:1关系也是可能的。虽然未在图1中具体地说明,但是ofcs120可以包含一或多个处理器或实施cdf121-124和cgf131-134的其它硬件组件。

分配器单元110在ofcs120中在ctf(例如,ctf104)与cdf121-124之间实施。分配器单元110的目的是将来自ctf的记账请求(例如,diameteracr)分配在ofcs120内的多个cdf121-124当中。记账请求包括用于报告计费事件的离线计费的消息,其一个实例是diameteracr。

在此实施例中,分配器单元110包含接口(i/f)112和处理器(proc'r)114。接口112包括用于经由diameterrf协议或另一类型的计费协议通信的组件(例如,硬件、软件或硬件与软件的组合)。处理器114包括执行逻辑以将记账请求分配到cdf121-124的组件(即,硬件)。虽然分配器单元110被说明为在ofcs120外部,但是分配器单元110可以在与ofcs120相同的平台上实施。

分配记账请求的任务可以包含考虑权重、当前负载索引和cdf121-124的其它参数以选择用于处理会话的记账请求的cdf例子。在选择用于特定会话的cdf中分配器单元110可以遵循循环策略。分配器单元110可以充当背靠背用户代理(b2bua),其中具有ctf的计费会话(例如,diameter会话)在分配器单元110上终止,并且等效的且对应的计费会话在分配器单元110与选定的cdf之间开始。每个ctf将与分配器单元110建立连接,并且将包含会话标识符(id)的记账请求发送到分配器单元110。会话id对于它报告的每个会话是对ctf唯一的。

cdf121-124分别包含处理队列151-154,所述处理队列用于临时存储从分配器单元110接收的记账请求以用于由其相关联的cdf处理。队列151-154是存储数据项(例如,记账请求)的列表以待由处理元件检索的物理或虚拟元件。数据项可以是按特定次序可检索的,例如,按接收到的次序或者如通过处理元件所确定。每个cdf121-124暴露处理队列151-154,方法是通过分配器单元110在中心注册它们。取决于cdf121-124的处理能力和负载状况,队列的数目针对每个cdf121-124而改变(例如,从0到16)。每个cdf121-124可以通过关闭其队列中的一或多个来调节其进来的负载。向与cdf121-124相关联的队列151-154指派名称或一些其它标识符以区分它们彼此。

分配器单元110经配置以基于分配算法将队列151-154选择为用于处理记账请求的目的地。分配算法包括用于计算用于会话的队列的有序列表的任何规则集合。在一个实施例中,分配器单元110可以使用“一致性散列”算法以产生用于会话的有序列表。一致性散列算法可以使用记账请求中的会话id(例如,diameter会话id(dsid))和队列标识符(例如,队列名称)以产生有序列表。如上文所陈述,每个cdf121-124使用与其处理容量相称的特定数目的队列。如果在部署中存在在cdf121-124的所有例子中传播的n个队列,那么一致性散列算法将产生用于给定会话id的n个值。选择最高值为用于会话的目的地。因此,一致性散列算法从队列名称中静态地确定用于每个队列例子的散列值:

hs=f(队列名称)

在一个实例中,对于各自具有6个注册队列的26个cdf例子,将计算156个散列值。随后,对于在进行中的每个会话,分配器单元110可以动态地确定用于每个会话id(例如,dsid)的散列值:

hi=f(会话id)

此值用于计算用于(会话id,队列名称)的每个集合的散列:

hc=f(hs,hi)

因此,“hc”表示涉及特定会话的队列的优先化的列表。同样,如果存在各自具有6个注册队列的26个cdf例子,那么优先化的列表将包含根据优先级排序的156个散列值。分配器单元110可以选择最大hc(hc_max)为用于会话的记账请求的目的地队列。分配器单元110可随后将用于会话的记账请求路由到目的地队列以待通过其相关联的cdf(在本文中被称作目的地cdf)进行处理。如果通过hc_max指示的队列不可用(例如,目的地cdf停止服务或目的地cdf关闭队列),那么分配器单元110可以选择下一个最高hc(hc_max-1)为用于会话的记账请求的目的地队列。分配器单元110可随后将用于会话的记账请求路由到此目的地队列以待通过其相关联的cdf进行处理。此过程继续直至定位能够处理记账请求的目的地队列。

在记账请求第一次被接收用于会话时基于如上文所描述的分配算法选择目的地队列也可以是可接纳的。然而,分配算法可以是处理器密集的,并且每次记账请求被接收时使用分配算法可以是资源的浪费。并且,当ofcs上的cdf正确地操作时基于分配算法选择用于会话的目的地队列可以是可接纳的,但是当一或多个cdf在一时间周期变成停止服务时可能并不是所期望的。为了说明问题,假设分配算法用于响应于接收到用于会话的起始记账请求选择用于会话的第一目的地队列。如果与第一目的地队列相关联的第一cdf稍后变成停止服务,那么分配算法可用于选择用于后续记账请求(例如,中间或停止)的与第二cdf相关联的替代的目的地队列。如果当会话仍然有效时第一cdf碰巧恢复,那么分配算法可以再次选择用于会话的第一目的地队列用于后续记账请求。此情境是被称作逆转的问题,因为在第一cdf恢复之后会话的处理将逆转回到第一cdf。这将引起在用于会话的第一部分的第一cdf上的“不完整cdr”产生,在用于会话的第二部分的第二cdf上的不完整cdr产生,以及再次在用于会话的最后一个部分的第一cdf上的不完整cdr产生。这增大了下游计费调解系统将多个不完整cdr组合到用于会话的连贯的且完整的cdr中的复杂度。如果一旦与第一目的地队列相关联的cdf恢复则会话就被传递回到它,那么同样存在与第一目的地队列相关联的cdf将再次变得过载的风险。

为了避免逆转,当基于分配算法选择用于会话的目的地队列时,用于目的地队列的标识符或其它信息可以插入在记账消息(请求或应答)中或被添加到记账消息(请求或应答),所述记账消息交换用于在ctf与分配器单元110之间的会话。举例来说,如果分配器单元110接收用于会话的开始记账请求,那么分配器单元110基于优先化的列表选择用于会话的目的地队列。分配器单元110可随后插入用于开始记账请求和/或用于答复ctf的开始记账应答中的目的地队列的标识符。以此方式,ctf被告知选择用于会话的目的地队列,并且在用于会话的后续记账请求中插入用于目的地队列的标识符。当分配器单元110从ctf接收后续记账请求时,分配器单元110能够替代于使用优先化的列表从记账请求中提取用于目的地队列的标识符。因此,当此目的地队列在服务时用于会话的记账被锚定到此目的地队列。

如本文中所描述的避免逆转的另一方式是在选择队列中的一个作为用于记账请求的目的地之前查看与cdf121-124相关联的队列的状态。一个建议是使状态或状况与指示队列接收用于新会话和进行中的会话的记账请求的可用性的目的地队列中的每一个相关联。队列的状态可以表示为可穿透的、半穿透的和不可穿透的。当可穿透状态被指派给队列时,队列可供用于接纳所有类型的记账请求,例如,用于新会话、进行中的会话和事件。举例来说,被指派可穿透状态的队列可供用于接纳acr[开始]、acr[中间]、acr[停止]和acr[事件]消息。当半穿透状态被指派给队列时,所述队列可供用于仅接纳用于进行中的会话(不是新会话)的记账请求。举例来说,被指派半穿透状态的队列可供用于接纳acr[中间]或acr[停止]消息。当不可穿透状态被指派给队列时,所述队列不可供用于接纳用于新会话或进行中的会话的任何记账请求。分配器单元110能够监测与cdf121-124相关联的队列151-154中的每一个的状态。

下文更详细地描述了避免逆转的概念。

图2到3在示例性实施例中描绘了说明用于在多个cdf121-124当中分配记账请求的方法200的流程图。将参考图1中的分配器单元110描述方法200的步骤,但是所属领域的技术人员将了解方法200可以在其它系统中执行。并且,本文中所描述的流程图的步骤并非是全部包含的并且可以包含未示出的其它步骤,并且所述步骤可以按替代的次序执行。

分配器单元110的接口112或处理器114从cdf121-124接收信息以用于注册与cdf121-124相关联的队列151-154(步骤202)。由分配器单元110接收的信息可以指示通过每个cdf121-124注册的队列的数目、用于队列的名称或标识符、队列的状态等。处理器114可随后例如在本地存储器中存储用于队列151-154的此信息。

假设对于此实施例网络元件102提供用于会话的服务。网络元件102内的ctf104检测用于由网络元件102提供的服务的可计费事件,并且ctf104将用于可计费事件的信息汇编到记账请求(例如,开始或事件)中。举例来说,记账请求可以包括diameterrfacr。ctf104随后将用于会话的记账请求发送到ofcs120。如本文中所描述的“会话”可指代计费会话或diameter会话。

分配器单元110的接口112从ctf104接收用于会话的记账请求(步骤204)。处理器114确定记账请求的类型,例如,开始、中间、停止或事件。当记账请求属于类型“开始”或“事件”时,处理器114基于分配算法产生队列151-154的优先化的列表(步骤206)。优先化的列表是如通过用于会话的分配算法确定的队列151-154的有序列表。举例来说,优先化的列表可以基于用于会话的会话id和通过cdf121-124注册的队列151-154的名称由一致性散列算法产生,如上文所描述。处理器114搜索优先化的列表寻找具有指示候选项队列接纳新会话的状态的候选项队列(步骤208)。举例来说,处理器114可以识别在优先化的列表中的最顶部队列作为候选项队列。处理器114随后确定或验证候选项队列的状态。可以是一或多个cdf121-124在一时间周期变成停止服务或一或多个cdf121-124改变它们的相关联的队列151-154的状态的情况。因此,处理器114确定候选项队列是否已经被指派可穿透状态并且是否可供用于接纳新会话或事件。如果候选项队列可供用于新会话或事件,那么处理器114选择此候选项队列作为用于会话的目的地队列(步骤210)。如果候选项队列并未接纳新会话,那么处理器114从优先化的列表中选择下一个队列作为下一个候选项队列。处理器114确定下一个候选项队列是否已经被指派可穿透状态并且是否可供用于接纳新会话或事件。此过程继续直至候选项队列在优先化的列表中被识别为已经被指派可穿透状态,并且处理器114选择此候选项队列作为用于会话的目的地队列(步骤210)。接口112随后将记账请求发射到目的地队列(步骤212)。

在图1中,记账请求在目的地队列中被接收,并且由其相关联的cdf(即,目的地cdf)处理。目的地cdf产生记账应答(例如,diameter记账应答(aca))作为对记账请求的响应。目的地cdf随后将记账应答发送到分配器单元110。分配器单元110的接口112从目的地cdf接收记账应答(在图2中的步骤214)。处理器114可以在记账应答的参数中添加或追加用于目的地队列的队列id,前提是它不是已经存在(步骤216)。举例来说,如果记账应答包括diameteraca,那么处理器114可以将队列id添加到aca消息的起源主机avp。接口112随后将记账应答发射到ctf104(步骤218)。

在图1中,ctf104从分配器单元110接收记账应答,并且从记账应答中提取队列id。ctf104随后例如在本地存储器中存储用于会话的目的地队列的信息。ctf104可具有用于打开的会话的缓冲器,并且会话在缓冲器中根据“会话id”经编索引或参考。ctf104可以因此存储用于目的地队列的信息连同用于会话的其它信息。ctf104在会话的生存期期间存储目的地队列信息,并且当会话结束时删除目的地队列信息。

进一步假设ctf104检测用于会话的另一可计费事件(即,基于会话计费),并且产生用于会话的另一记账请求。基于针对会话已经存储的信息,ctf104能够确定目的地队列已经被选择用于此会话。因此,ctf104在指示用于会话的目的地队列的记账请求的参数中添加队列id。举例来说,如果记账请求包括diameteracr,那么ctf104可以在acr的目的地主机avp中添加用于目的地队列的队列id。ctf104随后将记账请求发送到分配器单元110。

分配器单元110的接口112从ctf104接收记账请求(图2中的步骤204)。处理器114确定记账请求的类型,例如,开始、中间、停止或事件。当记账请求属于用于进行中的会话的类型“中间”或“停止”时,处理器114从记账请求中提取用于目的地队列的队列id(步骤220)。当接收到中间或停止记账请求时,假定目的地队列已经被选择用于所述会话,并且记账请求填充有用于目的地队列的队列id。处理器114确定或验证在记账请求中指示的目的地队列的状态(步骤222)。可以是与目的地队列相关联的cdf121-124在一时间周期变成停止服务或者它改变目的地队列的状态(即,从可穿透到半穿透,或者从半穿透到不可穿透)的情况。因此,处理器114确定目的地队列是否处于可穿透状态(即,可用于接纳用于新会话和进行中的会话的记账请求)或半穿透状态(即,可用于接纳仅用于进行中的会话的记账请求)。如果目的地队列可供用于接纳进行中的会话和新会话,那么接口112将记账请求发射到目的地队列(步骤224)。

记账请求在目的地队列中被接收,并且由其相关联的cdf处理,如上文所描述。分配器单元110的接口112从与目的地队列相关联的cdf接收记账应答(步骤226)。处理器114可以在记账应答中添加或追加用于目的地队列的队列id,前提是它不是已经存在(步骤228)。接口112随后将记账应答发射到ctf104(步骤230)。方法200可随后返回到步骤204。

参考图3,如果目的地队列不可供用于接纳新会话或进行中的会话(即,不可穿透状态),那么处理器114基于分配算法识别用于会话的队列151-154的优先化的列表(步骤232)。在此步骤中,处理器114可以再次产生优先化的列表,或者可以从例如存储器中检索优先化的列表。处理器114在优先化的列表中识别目的地队列的位置或次序(步骤234)。处理器114随后搜索优先化的列表寻找替代的队列,所述替代的队列:1)具有与(之前)目的地队列相比较低的优先级;以及2)具有指示替代的队列接纳新会话的状态(步骤236)。换句话说,处理器114选择在优先化的列表上较低的已经通过其相关联的cdf被指派有可穿透状态的替代的队列。在优先化的列表中搜索具有与之前目的地队列相比较低的优先级的替代的队列的一个目的是使得会话处理并不逆转回到已经被放回到服务中的在优先化的列表上较高的队列。举例来说,假设优先化的列表列举队列a、队列b、队列c和队列d(按此次序)用于会话。如果队列a不可供用于接收用于会话的记账请求,那么分配器单元110将选择队列b来处理用于会话的记账请求。如果在进行中的会话期间队列b变为不可供使用的并且队列a再次变为可供使用的,那么分配器单元110可基于优先化的列表再次选择队列a用于会话,这是因为队列a在优先化的列表的顶部处。但是在此实例中,队列a最近变为可供使用的并且可能有益的是避免通过记账请求再次加载队列a及其相关联的cdf用于进行中的会话。因此,处理器114搜索优先化的列表寻找具有与之前目的地队列相比较低的优先级的队列(例如,队列c和队列d),使得会话处理并不自动地逆转回到最近恢复的或变为可供使用的较高优先级队列。

搜索优先化的列表寻找具有指示它接纳新会话的状态的队列的一个目的是使得会话处理并非被传递到具有半穿透状态的队列。通过其相关联的cdf被指派半穿透状态的队列接纳记账请求用于进行中的会话(相对于新会话)。当处理器114接收类型“中间”或“停止”的记账请求时,所述记账请求用于进行中的会话。指派半穿透状态到队列的目的是允许cdf将其队列上的其负载水平调节到它当前处理的会话。在过载的某些状况或当运营商想要隔离cdf时,cdf可以选择性地接纳用于会话的记账请求。在此情况下,cdf在会话开始消息(例如,acr开始)与会话继续消息(例如,acr中间或acr停止)之间进行区分。cdf继续处理其进行中的会话,而不接纳新会话(或事件)来处理,由此向记账请求的接纳提供选择性地可穿透的特性。因此,cdf可以调节其负载水平且继续处理完成进行中的会话并且产生完整的cdr。如果未正确地完成,那么突然会话重定向或拒绝将通常引起不完整cdr的产生,其可以被下游计费调解系统拒绝。被指派半穿透状态的队列可以被错误地发送类型“中间”或“停止”的记账请求,尽管所述记账请求并非用于当前由该队列处理的会话。通过将记账请求给到用于会话的队列(会话对于队列来说是新的),这与选择性穿透性的目标冲突。因此,处理器114搜索优先化的列表寻找具有指示它接纳新会话(即,可穿透)的状态的队列,使得它并不将用于进行中的会话的记账请求传递到先前尚未处理该会话的队列。

在图3中,如果处理器114识别具有指示它接纳新会话的状态的优先化的列表中的较低优先级队列,那么处理器114选择该队列作为替代的目的地队列(步骤238)。接口112随后将记账请求发射到替代的目的地队列(步骤240)。

记账请求在替代的目的地队列中被接收,并且由其相关联的cdf处理,如上文所描述。分配器单元110的接口112从与替代的目的地队列相关联的cdf接收记账应答(步骤242)。处理器114可以在记账应答的参数中添加或追加用于替代的目的地队列的队列id,前提是它不是已经存在(步骤244)。接口112随后将记账应答发射到ctf104(步骤246)。方法200可随后返回到步骤204。

如果在优先化的列表中不再存在在优先化的列表上较低且接纳新会话的队列,那么处理器114从顶部搜索优先化的列表寻找接纳新会话的替代的队列(步骤248)。如果在优先化的列表中没有找到接纳新会话的队列,那么处理器114确定ofcs120处于过载状态或耗竭状态(步骤250)。因此,ofcs120不可供用于处理记账请求,并且分配器单元110可能需要转向另一ofcs。

在会话期间随着cdf121-124变成停止服务或队列151-154被分配器单元110移除不再考虑,方法200可以重复多次。当在中间或停止记账请求中指示的目的地队列不可供使用时,分配器单元110将在优先化的列表中识别目的地队列的位置(步骤234),并且搜索优先化的列表寻找替代的队列,所述替代的队列:1)具有与(之前)目的地队列相比较低的优先级;以及2)具有指示替代的队列接纳新会话的状态(步骤236)。因此,在会话期间即使之前目的地队列碰巧变为可供使用的,分配器单元110也将避免逆转回到之前目的地队列使得之前目的地队列及其相关联的cdf有时间恢复。

图4到7提供在多个cdf121-124当中分配记账请求的实例。图4是在示例性实施例中说明cdf121-123的离线计费架构100的框图。cdf121具有队列a作为其处理队列中的一个,cdf122具有队列b作为其处理队列中的一个,并且cdf123具有队列c作为其处理队列中的一个。cdf121-123注册它们的队列与分配器单元110。此时,分配器单元110可以使用一致性散列算法以从队列名称中静态地确定用于每个队列例子的散列值。

ctf104能够与分配器单元110交换diameter消息,并且启用分配器单元110以在cdf121-124当中分配diameteracr。图5是在示例性实施例中说明diameteracr的分配的消息图。在图5中开始,ctf104检测用于由网络元件102提供的服务的用于会话的可计费事件(参见图1)。ctf104将用于可计费事件的信息汇编到diameterrfacr中。用于服务的记账的类型是基于会话的,因此ctf104在acr的记账记录型avp中插入“开始”值。ctf104随后将acr(开始)发送到分配器单元110。

响应于接收到acr(开始),分配器单元110确定acr的类型,在此实例中所述类型是“开始”。分配器单元110随后基于一致性散列算法(或另一类型的分配算法)产生队列的优先化的列表400。举例来说,分配器单元110动态地确定用于已经指派给会话的会话id(例如,dsid)的散列值。分配器单元110随后计算用于(会话id,队列名称)的每个集合的散列。在此实例中,优先化的列表400指示队列a、队列b和队列c(按该次序)。分配器单元110确定acr(开始)是否包含指示已经被选择用于会话的目的地队列的队列id。更确切地说,分配器单元110可以处理包含在acr(开始)中的目的地主机avp以确定队列id是否已经被添加到此avp。因为会话刚刚开始,所以目的地队列尚未被选择用于会话,并且acr(开始)不包含队列id。因此,分配器单元110基于优先化的列表400选择用于会话的目的地队列。

在此例子中,分配器单元110从优先化的列表400的顶部搜索接纳新会话的候选项队列。假设对于此实施例分配器单元110选择cdf121的队列a作为目的地队列。分配器单元110随后将acr(开始)路由到cdf121的队列a。cdf121通过队列a接收acr(开始),并且正常地处理acr(开始)。cdf121还产生diameterrf记账应答(aca)作为对acr(开始)的响应。分配器单元110从cdf121接收aca(开始),并且可以在aca(开始)中插入用于目的地队列的队列id,前提是不是已经包含。分配器单元110随后将aca(开始)路由到ctf104。ctf104存储用于目的地队列的队列id连同用于会话的其它信息。

稍后,ctf104检测另一可计费事件,并且将可计费事件的信息汇编到用于会话的另一diameteracr中。ctf104将记录类型插入到指示acr为“中间”消息的diameter请求中。ctf104还基于在之前aca消息(即,aca(开始))中提供的信息确定目的地队列已经被选择用于此会话。因此,ctf104在acr(中间)中插入队列id,并且将acr(中间)发送到分配器单元110。

响应于接收到acr(中间),分配器单元110确定acr的类型,在此实例中所述类型是“中间”。当acr属于类型“中间”时,分配器单元110从acr(中间)中提取用于目的地队列的队列id。分配器单元110随后确定目的地队列(即,队列a)的状态,并且将acr(中间)路由到cdf121的队列a,前提是它具有可穿透或半穿透状态。因此所述会话被锚定到在diameter消息中指示的目的地队列。

cdf121通过队列a接收acr(中间),并且确定acr(中间)包含队列id。cdf121正常地处理acr(中间),并且产生aca(中间)作为对acr(中间)的响应。分配器单元110接收aca(中间),并且可以在aca(中间)中插入用于目的地队列的队列id,前提是不是已经包含。分配器单元110随后将aca(中间)路由到具有队列id的ctf104。

ctf104可以检测多个中间事件,并且将多个acr(中间)发送到分配器单元110。分配器单元110针对它接收的每个acr(中间)如上文所描述的操作。

再次ctf104检测另一可计费事件,并且将可计费事件的信息汇编到用于会话的另一diameteracr中。ctf104将记录类型插入到指示acr为“中间”消息的diameter请求中。ctf104还基于在之前aca消息(即,aca(开始)或aca(中间))中提供的信息确定目的地队列已经被选择用于此会话。因此,ctf104在acr(中间)中插入队列id,并且将acr(中间)发送到分配器单元110。

响应于接收到acr(中间),分配器单元110确定acr的类型,在此实例中所述类型是“中间”。当acr属于类型“中间或停止”时,分配器单元110从acr中提取用于目的地队列的队列id。分配器单元110随后确定目的地队列(即,队列a)的状态。如图6中所示,cdf121变成停止服务(oos)并且队列a不可供用于接收任何请求(无论是用于新会话还是进行中的会话)。因此,分配器单元110识别用于会话的优先化的列表400,并且在优先化的列表400中识别目的地队列(队列a)的位置。分配器单元110随后搜索优先化的列表400寻找替代的队列,所述替代的队列:1)具有与(之前)目的地队列相比较低的优先级;以及2)具有指示替代的队列接纳新会话的状态(即,具有可穿透状态)。假设cdf122的队列b具有与队列a相比在优先化的列表中的较低的优先级,并且具有可穿透状态。分配器单元110因此选择cdf122的队列b作为用于会话的替代的目的地队列,如图6中所说明。分配器单元110随后将acr(中间)路由到cdf122的队列b(参见图5)。如上文所描述操作继续。

如果ctf104检测另一中间可计费事件,那么它汇编又一acr(中间)。ctf104确定目的地队列已经被选择用于如在之前aca消息中提供的此会话。因此,ctf104在acr(中间)的参数中添加队列id,并且将acr(中间)发送到分配器单元110。

响应于接收到acr(中间),分配器单元110确定acr的类型,在此实例中所述类型是“中间”。当acr属于类型“中间或停止”时,分配器单元110提取指示选择用于会话的替代的目的地队列的身份标识的队列id,所述队列是cdf122的队列b。分配器单元110确定替代的目的地队列(即,cdf122的队列b)的状态。如图7中所示,cdf122已变成停止服务(oos)并且队列b不可供用于接收任何请求(无论是用于新会话还是进行中的会话)。并且,cdf121已经恢复并且将队列a放置回服务中(is)具有可穿透状态。分配器单元110识别用于会话的优先化的列表400,并且在优先化的列表400中识别替代的目的地队列(队列b)的位置。分配器单元110随后搜索优先化的列表400寻找替代的队列,所述替代的队列:1)具有与(之前)目的地队列相比较低的优先级;以及2)具有指示替代的队列接纳新会话的状态(即,具有可穿透状态)。假设cdf123的队列c具有与cdf122的队列b相比在优先化的列表中的较低的优先级,并且具有可穿透状态。分配器单元110因此选择cdf123的队列c作为用于会话的替代的目的地队列,如图7中所说明。分配器单元110随后将acr(中间)路由到cdf123的队列c。如上文所描述操作继续。

当如上文所描述存在故障转移情境时,当选择替代的目的地队列时分配器单元110搜索优先化的列表400中的较低的队列。即使当分配器单元110尝试使会话重新归属时在优先化的列表400的顶部上的队列(队列a)恢复,分配器单元110也搜索优先化的列表400中的较低的队列。分配器单元110这样做是为了避免将会话逆转回到最近放置回服务中的队列(即,队列a)。以此方式,如果cdf121最近已经从过载状况恢复,那么分配器单元110避免将会话传递回到队列a并且冒着在cdf121中另一过载状况的风险。实际上,分配器单元110在优先化的列表中搜索可用于接纳新会话的较低的队列。在以上实例中,如果cdf123使得队列c停止服务,那么分配器单元110将再次在优先化的列表400中搜索较低的队列以选择替代的目的地队列。如果较低优先级队列不可供使用,那么分配器单元110将从优先化的列表的开始搜索具有可穿透状态的候选项队列。

在某一时刻,ctf104检测最终可计费事件,并且将可计费事件的信息汇编到用于diameter会话的diameteracr(停止)中。ctf104将记录类型插入到acr中以指示acr为“停止”消息。ctf104还确定目的地队列已经被选择用于此会话,将队列id添加到acr(停止),并且将acr(停止)发送到分配器单元110(参见图5)。分配器单元110如上文所描述的操作以处理acr(停止)的分配。

附图中所示的或本文中所描述的各种元件或模块中的任一个可以被实施为硬件、软件、固件或这些的某种组合。举例来说,元件可以被实施为专用硬件。专用硬件元件可被称作“处理器”、“控制器”或一些类似术语。当由处理器提供时,所述功能可由单个专用处理器、由单个共享处理器,或由多个单独的处理器提供,其中的一些可共享。此外,术语“处理器”或“控制器”的明确使用不应被解释为排他性地指代能够执行软件的硬件并且可以暗含地包含但不限于数字信号处理器(dsp)硬件、网络处理器、专用集成电路(asic)或其它电路、现场可编程门阵列(fpga)、用于存储软件的只读存储器(rom)、随机存取存储器(ram)、非易失性存储装置、逻辑,或一些其它物理硬件组件或模块。

并且,元件可以被实施为可由处理器或计算机执行的指令以执行元件的功能。指令的一些实例是软件、程序代码和固件。在由处理器执行时指令是可操作的以引导处理器执行元件的功能。指令可以存储在通过处理器可读的存储装置上。存储装置的一些实例是数字或固态存储器、例如磁盘和磁带的磁性存储媒体、硬盘驱动器,或光学可读数字数据存储媒体。

虽然本文中描述了具体实施例,但是本发明的范围不限于那些具体实施例。本发明的范围由所附权利要求书及其任何等效物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1