CN101014062A - 一种规则处理方法和装置及数据引用方法 - Google Patents
一种规则处理方法和装置及数据引用方法 Download PDFInfo
- Publication number
- CN101014062A CN101014062A CN 200710080104 CN200710080104A CN101014062A CN 101014062 A CN101014062 A CN 101014062A CN 200710080104 CN200710080104 CN 200710080104 CN 200710080104 A CN200710080104 A CN 200710080104A CN 101014062 A CN101014062 A CN 101014062A
- Authority
- CN
- China
- Prior art keywords
- data
- charging
- database
- expression
- shared memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000003672 processing method Methods 0.000 title description 7
- 230000014509 gene expression Effects 0.000 claims description 57
- 230000008569 process Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000007430 reference method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种规则处理方法和一种规则处理装置,将数据库中的规则编译成可执行序列存入共享内存中,供应用程序读取并执行的方案有效地提高了规则的执行效率。另外,本发明还公开了一种数据引用方法,首先将数据的索引信息存入共享内存中,当需要访问数据时,从共享内存中获取数据的索引信息,再根据索引信息访问数据,该方法使得对所有的数据都能通过统一的方法进行访问。
Description
技术领域
本发明涉及电信运营与支撑系统技术领域,尤指一种规则处理方法和装置以及数据引用方法。
背景技术
运营支撑系统(OSS,Operating Support System)是电信运营商的业务运营和管理平台,主要由网络管理、系统管理、计费、营业、帐务和客户服务等部分组成。
在OSS系统中,需要配置很多执行条件,即执行规则,这些规则可以表示成算术表达式或逻辑表达式。
例如,在话单处理过程中根据逻辑表达式“源计费事件.交换机类型==6 and源计费事件.呼叫类型==′03′and substr(源计费事件.错误代码,0,2)<>′SD′”的运算结果进行后续的处理或进行进一步的逻辑判断。该逻辑表达式表示对“话单来源交换机是6、话单是呼转话单而且错误代码以′SD′开头”。
又例如,话单分类存储过程中有如下操作:将符合逻辑表达式“源计费事件.错误编码==″and源计费事件.本方归属地区==′532′”的话单存放到指定的表或文件中。该逻辑表达式表示“话单错误代码为空而且本方归属地区是532(青岛)”。
尤其是在OSS系统的资费设置中,需要根据话单中的各种条件设置不同的计费规则,这些计费规则可以表示成算术或逻辑表达式。
例如,国际语音长途计费规则如下:
8:00:00-21:59:59 每分钟4.0元
22:00:00-7:59:59 每分钟4.0*0.8(打8折)
设不打折时的基本资本为BaseFee,打折后的资费为DiscountFee,则上述计费规则可表示成如下的两种表达式:
BaseFee=4.0条件:(CallType=2)and(CDRType=’CSMOC’)and(RoamType=0)
DiscountFee=BaseFee*0.8条件:(CallType=2)and(CDRType=‘CSMOC’)and(RoamType=0)and(not(StartTime>8:00:00 and StartTime<21:59:59))
其中,CallType=2表示呼叫类型是国际长途,CDRType=‘CSMOC’表示是语音主叫话单,RoamType=0表示非漫游用户,StartTime>8:00:00 andStartTime<21:59:59是通话开始时间限制。
计费规则中涉及到的计费数据是在通话过程中产生的用于计费的数据,如通话开始时间,主叫号码,被叫号码,通话时长等信息。
在实际应用中,根据不同的业务需求配置不同的计费规则,即配置不同的计费表达式,并将计费表达式存放在数据库中。而对计费数据的引用方式,大多采用面向对象程序设计(OOP)技术,即采取封装计费数据对象,然后通过编程提供专用方法,即专用接口函数来访问计费数据。
当需要进行计费处理时,应用程序首先从数据库中读取预先配置的计费表达式,对表达式进行编译后执行,当执行过程中需要使用计费数据时,应用程序直接调用专用接口函数来访问计费数据,完成计费处理。
上述计费处理方案中,应用程序每次调用一个计费表达式进行执行时,都要对其重新进行编译,且应用程序通过数据库接口读取计费表达式,效率很低。计费数据在源代码级封装,对计费数据进行的任何改动时,都会导致相关联的代码重新编译,而且需要为每个计费数据提供专用的访问方法,使得每增加一个计费数据,就要为其增加一个专用访问方法。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种规则处理方法,该方法能够提高规则的执行效率。
本发明实施例提供了一种规则处理装置,该装置能够提高规则的执行效率。
本发明实施例还提供了一种数据引用方法,该方法使得对所有的数据都能通过统一的方法进行访问。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明实施例公开了一种规则处理方法,该方法包括:
将配置好的规则存储在数据库中;
将数据库中的规则编译成可执行序列,并存储在共享内存中。
本发明实施例公开了一种规则处理装置,该装置包括:
数据库,用于存储配置好的规则;
编译模块,用于从数据库中获取规则,并将规则编译成可执行序列后,发送到共享内存中;
共享内存,用于存储编译模块发送的可执行序列。
本发明实施例还公开了一种数据引用方法,该方法包括:
为数据建立索引信息,并将所述索引信息存储在共享内存中;
从共享内存中获取所述索引信息,并根据所述索引信息访问数据。
由上述技术方案可见,本发明提供的规则处理方法和装置,首先将数据库中的规则编译成可执行序列存入内存中,供应用程序读取并执行的方案,避免了应用程序通过数据库接口从数据库读取规则的过程,以及每次执行规则时,都要对其进行编译的过程,有效地提高了规则的执行效率。另外,本发明提供的数据引用方法,首先将数据的索引信息存入共享内存中,当应用程序需要访问数据时,从共享内存中获取数据的索引信息,再根据索引信息访问数据的方法,使得对所有的数据都能通过统一的方法进行访问,解决了为每个数据都需要提供专用的访问方法的问题。
附图说明
图1是本发明实施例一种规则处理方法的流程图;
图2是本发明实施例一种规则处理装置的结构框图;
图3是本发明实施例一种数据引用方法的流程图;
图4是本发明实施例一种计费表达式处理方法的示意图;
图5是本发明实施例一种计费表达式处理方法的流程图;
图6是本发明实施例一种计费表达式处理装置的结构框图;
图7是本发明实施例一种计费数据引用方法的流程图;
图8是计费数据对象在共享内存中的索引信息的示意图。
具体实施方式
为使本发明的目的、技术方案及优点清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
图1是本发明实施例一种规则处理方法的流程图。如图1所示,该方法包括以下步骤:
步骤101,将配置好的规则存储在数据库中。
这里的规则是任何配置好的执行条件,如,计费表达式,话单处理过程中的执行条件逻辑表达式等。
步骤102,将数据库中的规则编译成可执行序列,并存储在共享内存中。
图2是本发明实施例一种规则处理装置的结构框图。如图2所示,该装置包括:数据库201、编译模块202和共享内存203。其中,
数据库201,用于存储配置好的规则。
编译模块202,用于从数据库中201获取规则,并将规则编译成可执行序列后,存入共享内存203中。
共享内存203,用于存储编译模块202发送的可执行序列,供应用程序读取。
图3是本发明实施例一种数据引用方法的流程图。如图3所示,该方法包括以下步骤:
步骤301,为数据建立索引信息,并将数据的索引信息存储在共享内存中。
步骤302,从共享内存中获取数据的索引信息,并根据数据的索引信息访问数据。
为了使本发明的技术方案更加清楚,下面以OSS系统中的计费机制为较佳实施例,进一步说明本发明的技术方案。
图4是本发明实施例一种计费表达式处理方法的示意图。图5是本发明实施例一种计费表达式处理方法的流程图。下面结合图4和图5对本实施例进行详细描述。如图5所示,该方法包括以下步骤:
步骤501,配置计费表达式,并将计费表达式转换成中间格式后,将中间格式的计费表达式存储在数据库中。
维护人员通过浏览器配置计费表达式,浏览器将维护人员配置的表达式发送给web应用服务器处理,web应用服务器将计费表达式转换成中间格式后保存到数据库中。
为了提高表达式编译速度,在维护人员配置表达式时,系统将维护人员可识别的表达式转换成中间格式保存到数据库中。中间格式简单明了,维护人员在简单学习后,可识别其含意,并且中间格式有统一的格式,方便程序识别编译。
中间格式的运算因子可以是常量,包括数字常量和字符串常量,也可以是可变的参数。可变参数的取值可以来自话单、客户资料、自定义的常量等。
步骤502,将数据库中的中间格式计费表达式编译成可执行序列后,保存到共享内存中。
表达式加载程序从数据库中获取基础数据,并根据基础数据初始化共享内存创建共享内存管理对象。共享内存管理对象从数据库中读取中间格式计费表达式,并将中间格式计费表达式编译成紧凑的易于程序执行的内部可执行序列保存到共享内存中。
例如,一个简单的表达式“(callType=2)and(RoamType=0)”经过编译变成可执行序列后,其内容可形象的表示成“and(=(callType,2),=(RoamType,0))”。
表达式在系统中只编译一次,其编译结果可被多次调用,减少了每次调用时编译表达式的时间,加快了系统的处理速度。
在编译表达式的过程中,词法分析可采用Lex开源技术,语法分析可采用Yacc开源技术。
步骤503,应用程序直接从共享内存中获取计费表达式的可执行序列并执行。
应用程序将共享内存附加到自己的进程空间,执行共享内存中的可执行序列。以编译后的表达式“and(=(callType,2),=(RoamType,0))”为例,应用程序在进行运算时首先执行and运算,由于and运算的操作数不是直接操作数,因此程序会分别地执行“=(callType,2)”和“=(RoamType,0)”来求出操作数。这种执行方式可以很方便地在函数运算中采用短路计算方式,即在能确定返回结果后,跳过其他冗余运算,立即返回结果。在上例中如果“=(callType,2)”的运算结果为“假”,则and运算可以直接返回运算结果“假”,而不必再对“=(RoamType,0)进行运算,加快了系统的运算速度。
图6是本发明实施例一种计费表达式处理装置的结构框图。如6所示,该装置包括:数据库601、表达式编译模块602,共享内存603,表达式运算引擎604。
在图6中,数据库601用于存储中间格式的计费表达式。表达式编译模块602从数据库601读取中间格式计费表达式,并编译成可执行序列后存入共享内存中603。表达式运算引擎604直接从共享内存603中读取计费表达式的可执行序列并执行。
在上述描述中,给出了本发明基于预编译的表达式处理方法和装置的实施例,下面以OSS系统计费机制中的计费数据为例给出本发明一种数据引用方法的较佳实施例。
图7是本发明实施例一种计费数据引用方法的流程图。如图7所示,该方法包括以下步骤:
步骤701,为计费数据对象建立索引信息,并将计费数据对象的索引信息存储在共享内存中。
图8是计费数据对象在共享内存中的索引信息的示意图。如图8所示,系统在共享内存中建立的索引内存模块分别为:对象类别存储模块801,对象定义存储模块802和属性定义存储模块803。
在图8中,对象类别存储模块801用于存放计费数据对象的分类和编号信息以及对象列表地址。如“话单”类别为5,“集合”类别为2等。对象类别的编号是用来引用计费数据业务对象的唯一标识,可以人工随意定制,但要保证不重复。对象列表地址用于在对象定义存储模块802中寻址对象定义信息。
对象定义存储模块802用于存放各个对象的定义和相关属性定义的地址。如对于“话单”对象类别包含的“语音话单”和“短信话单”等具体话单对象的定义及其相关属性定义的地址。属性定义地址用于在属性定义存储模块803中寻址属性定义信息。
属性定义存储模块803用于存放对象属性定义信息,如每个属性的数据类型、数据长度和地址等信息。属性的地址和长度信息用于在内存中寻址计费业务对象的具体属性数据,如通话时间、信息字节数等的具体数值。
步骤702,应用程序从共享内存中获取计费数据对象的索引信息,并根据索引信息访问计费数据对象的属性数据。
当应用程序要访问图8中“短信话单”对象的“发送时间”属性的具体数据时,首先在对象类别存储模块801中找到“话单”类别,然后通过其中记录的对象列表地址找到对象定义存储模块802中“短信话单”对象定义的位置,再通过其中记录的属性定义地址找到属性定义存储模块803中“发送时间”属性定义的位置,最后根据其中记录的地址和长度等信息访问“短信话单”对象的“发送时间”属性的具体数据。
通过上述方法,不仅保障了访问速度,而且对所有的计费数据都通过一种统一的方法进行访问,避免了现有技术中为每个计费数据都需要提供专用的访问方法的问题。另外,对业务对象和属性的增加,不会改变访问方法,如为“短信”话单对象增加一个“对方号码”的属性时,只需要在属性定义的配置中进行相应的调整即可,而系统仍可以通过从共享内存中获取计费数据对象的索引信息,并根据索引信息访问计费数据对象的属性数据的方式访问增加的数据。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1、一种规则处理方法,其特征在于,该方法包括:
将配置好的规则存储在数据库中;
将数据库中的规则编译成可执行序列,并存储在共享内存中。
2、如权利要求1所述的方法,其特征在于,所述规则是计费表达式。
3、如权利要求2所述的方法,其特征在于,在所述将配置好的计费表达式存储在数据库中之前进一步包括:将配置好的计费表达式转换成中间格式的计费表达式;
所述将配置好的计费表达式存储在数据库中是,将所述中间格式的计费表达式存储在数据库中。
4、一种规则处理装置,其特征在于,该装置包括:
数据库,用于存储配置好的规则;
编译模块,用于从数据库中获取规则,并将规则编译成可执行序列后,发送到共享内存中;
共享内存,用于存储编译模块发送的可执行序列,供应用程序读取。
5、一种数据引用方法,其特征在于,该方法包括:
为数据建立索引信息,并将所述索引信息存储在共享内存中;
从共享内存中获取所述索引信息,并根据所述索引信息访问数据。
6、如权利要求5所述的方法,其特征在于,所述数据是计费数据业务对象的属性数据;所述索引信息包括:对象类别信息、对象定义信息和属性定义信息。
7、如权利要求6所述的方法,其特征在于,
所述对象类别信息包括:对象类别的编号和对象列表地址;
所述对象定义信息包括:具体对象的定义和属性定义地址;
所述属性定义信息包括:属性的数据类型、属性数据的地址和长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710080104 CN101014062A (zh) | 2007-02-09 | 2007-02-09 | 一种规则处理方法和装置及数据引用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710080104 CN101014062A (zh) | 2007-02-09 | 2007-02-09 | 一种规则处理方法和装置及数据引用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101014062A true CN101014062A (zh) | 2007-08-08 |
Family
ID=38701341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710080104 Pending CN101014062A (zh) | 2007-02-09 | 2007-02-09 | 一种规则处理方法和装置及数据引用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101014062A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441892A (zh) * | 2013-08-16 | 2013-12-11 | 大连梯耐德网络技术有限公司 | 一种基于广电网络的多用户流量统计系统 |
CN104461621A (zh) * | 2014-11-28 | 2015-03-25 | 青岛海信宽带多媒体技术有限公司 | 一种更新属性信息的方法及装置 |
CN105786932A (zh) * | 2014-12-26 | 2016-07-20 | 北大医疗信息技术有限公司 | 医疗系统中临床业务的查询方法及查询装置 |
CN106445626A (zh) * | 2016-09-30 | 2017-02-22 | 北京奇虎科技有限公司 | 数据分析方法及装置 |
CN106452933A (zh) * | 2015-08-05 | 2017-02-22 | 腾讯科技(北京)有限公司 | 一种业务数据的统计方法、装置及系统 |
CN107544828A (zh) * | 2017-09-01 | 2018-01-05 | 北京奇虎科技有限公司 | 配置加载方法及装置 |
CN110019221A (zh) * | 2017-12-18 | 2019-07-16 | 厦门本能管家科技有限公司 | 一种内存映像型数据库系统 |
CN112487045A (zh) * | 2020-10-20 | 2021-03-12 | 广西盛源行大数据科技有限公司 | 一种基于大数据的管理平台 |
-
2007
- 2007-02-09 CN CN 200710080104 patent/CN101014062A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441892A (zh) * | 2013-08-16 | 2013-12-11 | 大连梯耐德网络技术有限公司 | 一种基于广电网络的多用户流量统计系统 |
CN103441892B (zh) * | 2013-08-16 | 2017-02-22 | 大连梯耐德网络技术有限公司 | 一种基于广电网络的多用户流量统计系统 |
CN104461621A (zh) * | 2014-11-28 | 2015-03-25 | 青岛海信宽带多媒体技术有限公司 | 一种更新属性信息的方法及装置 |
CN104461621B (zh) * | 2014-11-28 | 2018-01-02 | 青岛海信宽带多媒体技术有限公司 | 一种更新属性信息的方法及装置 |
CN105786932A (zh) * | 2014-12-26 | 2016-07-20 | 北大医疗信息技术有限公司 | 医疗系统中临床业务的查询方法及查询装置 |
CN106452933A (zh) * | 2015-08-05 | 2017-02-22 | 腾讯科技(北京)有限公司 | 一种业务数据的统计方法、装置及系统 |
CN106445626A (zh) * | 2016-09-30 | 2017-02-22 | 北京奇虎科技有限公司 | 数据分析方法及装置 |
CN106445626B (zh) * | 2016-09-30 | 2020-03-06 | 北京奇虎科技有限公司 | 数据分析方法及装置 |
CN107544828A (zh) * | 2017-09-01 | 2018-01-05 | 北京奇虎科技有限公司 | 配置加载方法及装置 |
CN110019221A (zh) * | 2017-12-18 | 2019-07-16 | 厦门本能管家科技有限公司 | 一种内存映像型数据库系统 |
CN112487045A (zh) * | 2020-10-20 | 2021-03-12 | 广西盛源行大数据科技有限公司 | 一种基于大数据的管理平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101014062A (zh) | 一种规则处理方法和装置及数据引用方法 | |
CN100511129C (zh) | 支持多语言的用户界面实现方法及其装置 | |
CN102110110A (zh) | 基于soa的数据访问方法和装置 | |
CN110333850A (zh) | 接口文档的生成方法、装置、计算机设备和存储介质 | |
CN109636306A (zh) | 节点流转方法、装置、终端及存储介质 | |
CN101729694A (zh) | 一种自动业务实现流程配置及运行的方法及系统 | |
CN101162428A (zh) | 软件动态演化中构件运行时状态的获取和转换方法 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN109815242B (zh) | 一种数据处理方法及系统 | |
CN106603465A (zh) | 服务账号关联方法、装置、系统及终端设备 | |
CN110244941A (zh) | 任务开发方法、装置、电子设备及计算机可读存储介质 | |
Buchholz et al. | CoCo: dynamic composition of context information | |
CN109271561A (zh) | 一种图谱信息检索方法及装置 | |
CN113658591B (zh) | 一种面向智能家居的语音交互适配系统 | |
CN107203372A (zh) | 控件展现方法及装置 | |
CN105208571A (zh) | 通信业务使用量的校准方法和装置 | |
CN109597825A (zh) | 规则引擎调用方法、装置、设备及计算机可读存储介质 | |
CN102316128A (zh) | 一种用于生成网络服务的方法及装置 | |
CN111866146B (zh) | 一种家庭用户的识别方法和装置 | |
KR20110027809A (ko) | 컨텍스트-기반의 통신 서비스를 제공하기 위한 방법 및 통신 시스템 | |
CN102255961A (zh) | 基于J2ME调用Web Service接口的方法 | |
CN115033312B (zh) | ElasticSearch数据操作方法及装置 | |
CN111488144A (zh) | 一种数据处理方法以及设备 | |
CN110311819A (zh) | 基于页面配置文件的页面自动生成和MIBs表生成方法、管理方法、设备端和管理系统 | |
CN101431742B (zh) | 一种通信业务的接入方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070808 |