通信专业计费规则引擎的运用

时间:2022-08-16 09:54:11

导语:通信专业计费规则引擎的运用一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

通信专业计费规则引擎的运用

通信业高速发展的今天,新业务层出不穷,各业务的处理逻辑、流程五花八门。譬如,语音业务包括市话、长途、漫游、可视通话等;短信包括短信、彩信等;数据业务包括手机上网、无线上网卡业务等;增值业务包括手机电视、手机音乐等。使用这些业务所产生的使用事件类型更是多种多样,譬如长途事件可分为省内长途、国内长途、港澳台长途、国际长途等。批价或账务模块需要确定、区分这些使用事件类型,针对不同业务采用不同的方法处理。如果在代码中列出目前所有的事件因素,然后根据不同情况来分别判断,这样虽然可以满足现状,但程序就没有了扩展性。如果新增一项业务、其所需的事件因素又不同于已有数据,这样程序就需升级,否则就不能开展此业务。基于上述情况,专业计费软件必须对各项业务进行分析,抽象出其本质属性,使用通用的算法和基于事件驱动的模式,才能实现支撑全业务融合计费的目标,更有力地支撑、推动业务发展。规则引擎算法可以满足这一要求。

1规则引擎算法的通用性

规则引擎算法,是根据输入对象的属性,依次将属性值与预期结果进行比较,通过则进行下一个属性的判断,不通过则比较另一个预期结果,如此形成一个递归,直至能确定一个唯一的输出对象。根据上述思路,由属性来驱动下一步判断,算法可以不对输入对象和输出对象做限定;并且是递归处理,不限制属性间是“且”还是“或”的关系,属性和预期结果都是在数据库配置,对象的属性和个数不必固定。至此,其实现了不区分业务的通用性。比如在新增3G可视电话业务时,配置完相应的参数后,可以使用规则引擎算法确定一张详单的使用事件类型。如图1所示,首先从详单文件中取出一条话单,判断该话单的交换机属性(即字段)的值:若等于1则表示为固网交换机产生的话单,若等于2则为2G语音交换机产生的话单,若等于3则为3G语音交换机产生的话单。假设此值等于3,说明该话单为3G语音通话,接下来判断其中的可视标识属性:若该属性值为0,表示该话单是3G语音非可视通话;为1,则为3G语音可视通话。接下来判断呼叫类型。根据详单中的各属性值可最终确定此详单是3G可视主叫通话还是3G可视被叫通话事件。通过上图的简单说明,可以发现规则引擎算法易用、通用,不但适用于判断事件类型,而且只要是这种复杂的业务流程判断,配置一下参数即可使用。

2规则引擎算法采用事件驱动机制

全业务运营情况下,业务复杂多样,新业务层出不穷。下面介绍一下计费系统使用规则引擎算法、采用事件驱动技术来解决这类问题。采用事件驱动机制,可以有效解决各业务的处理逻辑变更和新增业务流程的情况。比如同样是交通工具,公共汽车主要是流程驱动的,其路线已预先设定;出租车主要是事件驱动的,其路线是由随机搭载的乘客所决定的。很显然出租车更加灵活。同时,事件驱动极大提高了事件处理效率,减少了不必要的步骤。规则引擎算法采用了类似于windows操作系统的事件驱动机制,利用动态链接库技术,可为不同的输入事件配置不同的处理步骤。事件类型决定了此业务的后续处理流程,不同业务的事件类型不一样,所走的批价路径也就不同。即事件类型相当于乘客,规则引擎相当于出租车,批价路径相当于出租车行驶路线,这样就实现了事件驱动的功能。如果按照公共汽车模式,使用一个批价路径,即该批价路径需要处理所有的业务,势必所有的业务都必须经过一些不必要的步骤,既浪费时间且不具扩展性,容易出现无法支撑业务的情况。将规则引擎算法应用在批价向导中,流程如图2所示。如图2所示,根据输入的使用事件,对使用事件属性进行有效性规则检查。然后根据事件属性,找出使用事件的类型、业务、号段归属、用户资料等信息。未能通过有效性检查和信息查找及标准化的使用事件被抛出,成为异常事件。通过检查后,根据用户的号码归属信息进行判断:如果不是本省用户,则进入漫游用户使用事件处理流程;对本省用户进行查找,有用户资料的进入本省用户使用事件处理流程,无用户资料的进入无主使用事件处理流程。当然,具体实现比图2复杂得多。若将上述各步骤配置在规则引擎算法里,则能大大降低流程变更及新增流程的风险,使批价向导的处理流程更加灵活。

3规则引擎算法的性能

规则引擎算法是通过属性判断以决定下一步的动作,因此,影响其性能的关键点在于属性值和预期值的比较上。如何才能快速地找到与属性匹配的预期值?经过试验,哈希算法和二分法是比较有效的两种方式。在所有属性的预期值都较少的情况下,比如每个都不超过5个,程序通过遍历的方式来匹配预期值也可达到理想效果。但若一个属性的预期值有几十个或上百成千个,遍历的性能则非常低。使用哈希算法,程序动态地根据每个属性的预期值的个数,分别选择合适的哈希值,可有效降低比较次数,根据属性值快速定位预期值。根据预期值的规律选择合适的哈希算法,和根据预期值的个数选择合适的哈希值,其时间复杂度是O(1),可见性能较高。当属性预期值数据量很大时,适宜采用二分法。采用二分法查找时,数据需是排好序的。因此,程序运行时会将预期值进行排序,之后可使用二分法比较。其时间复杂度为O(nlog2n),最大的查找次数是O(log2n!),最小的次数为1。规则引擎算法支持上述算法,可根据不同情况(预期值的个数)选择遍历、二分法或哈希算法来定位预期值。

4结束语

规则引擎算法简化了复杂的流程判断,增强了程序扩展性和易维护性,极大地减少了全业务配置、新增业务、新增流程所产生的工作量。算法思路简单,容易使用,适用性广,且效率高,可广泛应用于通信专业计费软件中,灵活判断、高效处理,能更好地支撑业务发展。