CN101158956A - 采用规则引擎对复杂数据进行批量处理的方法 - Google Patents

采用规则引擎对复杂数据进行批量处理的方法 Download PDF

Info

Publication number
CN101158956A
CN101158956A CNA2007101308715A CN200710130871A CN101158956A CN 101158956 A CN101158956 A CN 101158956A CN A2007101308715 A CNA2007101308715 A CN A2007101308715A CN 200710130871 A CN200710130871 A CN 200710130871A CN 101158956 A CN101158956 A CN 101158956A
Authority
CN
China
Prior art keywords
rule
formula
regulation
data
template
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
Application number
CNA2007101308715A
Other languages
English (en)
Inventor
蔺万坚
胡维龙
吴昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LINKAGE SYSTEM INTEGRATION CO Ltd
Original Assignee
LINKAGE SYSTEM INTEGRATION CO Ltd
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 LINKAGE SYSTEM INTEGRATION CO Ltd filed Critical LINKAGE SYSTEM INTEGRATION CO Ltd
Priority to CNA2007101308715A priority Critical patent/CN101158956A/zh
Publication of CN101158956A publication Critical patent/CN101158956A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

采用规则引擎对复杂数据进行批量处理的方法,建立规则引擎:规则引擎由数据导换,规则处理,公式处理三个模块组成,每一个模块都可以单独存在进行数据处理;规则处理模块中配置规则公式的步骤是:引入规则概念:用于描述应用中可定制部分的逻辑,引入规则参数概念:定义规则的定制参数;规则处理引擎流程:1根据脚本对应参数、2公式对应脚本、同时进入2-1、3公式加载、4公式编译、5可执行公式缓存、6初始化输入缓冲,调用可执行组成缓冲计算,结果写入缓冲、7规则输出;2-1是根据规则类型进入规则、2-2规则加载、2-3规则调用后亦进入6初始化输入缓冲;另还包括规则引擎中数据导换流程和规则引擎中数据导换流程。

Description

采用规则引擎对复杂数据进行批量处理的方法
一、技术领域
本发明涉及对复杂数据进行批量处理的方法,尤其是采用规则引擎对复杂数据进行批量处理的方法。
二、背景技术
随着通讯市场的不断扩张,中国移动的手机用户数量已经达到了3.547亿。用户产生的海量业务数据给运营商的业务运营系统带来极大压力。业务运营支撑系统对业务处理也越来越复杂,计费帐务、渠道酬金、积分管理、考核管理、友情提醒等等都需要处理大批量的数据,并且处理的过程非常繁琐、复杂。目前大部分公司采用的处理是通过表格计算方式。表格方式预先定义好几种计算模式,通过表格化的参数配置完成对复杂计算的处理。这种模式计算方式单一,而且配置复杂不利于维护。
三、发明内容
本发明目的是:提出一种采用规则引擎:通过灵活配置对复杂数据进行批量处理的方法,提出的规则引擎就是根据以上情况产生的一个数据处理平台,它是提供对后台计算类型的应用逻辑进行灵活定制一般框架的组件。规则配置非常灵活,可以批量或者根据不同的需要单独配置一套规则。本发明引入规则组件的目的:应用程序的可定制性(特别是后台计算程序)复杂数据进行高效的批量处理。
本发明的技术解决方案是:采用规则引擎对复杂数据进行批量处理的方法,建立规则引擎:规则引擎由数据导换,规则处理,公式处理三个模块组成,每一个模块都可以单独存在进行数据处理;规则处理模块中配置规则公式的步骤是:
引入规则概念:用于描述应用中可定制部分的逻辑,为适应不同的情形,规则有两种形式:脚本和可执行模块(动态链接库)。对于逻辑复杂和对效率要求高,可使用预先用高级语言(C/C++)编译好的动态链接库;对于逻辑简单,可定制性要求高的,可使用脚本;
引入规则参数概念:为减少对相似规则需要重复创建规则的麻烦而引入,可定义规则的定制参数:如规则:“话费大于n元的用户数”中的n;
为兼顾执行效率和配置简单性和可定制能力,脚本语言采用类C语言的语法,在脚本中可直接使用’$’前缀访问规则的各种参数;
规则处理引擎流程:1脚本对应参数、2公式对应脚本、同时进入2-1、3公式加载、4公式编译、5可执行公式缓存、6初始化输入缓冲,调用可执行组成缓冲计算,结果写入缓冲、7规则输出;2-1是根据规则类型进入规则、2-2规则加载、2-3规则调用后亦进入6初始化输入缓冲;
规则引擎中数据导换流程:1数据格式及对应关系定义和外部数据、2数据转换、3格式化数据、4计算、5结果输出;2-1同时从规则定义、2-2进入编辑规则、2-3可执行规则、2-4进入4;
规则引擎中数据导换流程:1数据格式及对应关系定义和外部数据、2数据转换、3格式化数据、4计算、5结果输出;2-1同时从规则定义、2-2进入编辑规则、2-3可执行规则、2-4进入4。
规则引擎是一个数据处理平台,主要是处理计算、统计类业务。规则引擎可以根据不同的业务配置不同类型的规则,业务越繁琐,规则引擎起到的作用就越强大,规则处理模块中配置规则公式(公式处理)可以应用于不同的业务要求中,也可以只处理单独一种特殊的业务。
规则引擎处理大批量数据也有自己的优势,所有的常用数据都是常驻共享内存,这样可以更加方便简单的处理大批量的数据,数据的处理速度也会更快。
引入规则组件的目的:应用程序的可定制性(特别是后台计算程序)
数据导换,公式处理,规则处理每个模块构成规则组件;
规则组件包含以下功能:
●规则类型的创建和维护:规则类型数据的输入;
●规则的创建和维护:脚本型规则的定义和编辑;
●用户对应用进行配置的接口:查询符合条件的规则类型、规则;创建和维护规则实例,选择并配置相关规则。
规则组件不包含以下功能:加载数据源纠错的功能;公式脚本纠错的功能;不支持函数解析;实现于规则体中的特定业务逻辑
有益效果:提出一种采用规则引擎:通过灵活配置对复杂数据进行批量处理的方法,提出的规则引擎就是根据以上情况产生的一个数据处理平台,它是提供对后台计算类型的应用逻辑进行灵活定制一般框架的组件。规则配置非常灵活,可以批量或者根据不同的需要单独配置一套规则。
本发明引入规则组件的目的:应用程序的可定制性(特别是后台计算程序)复杂数据进行高效的批量处理。
四、附图说明
图1是本发明框图,                图2是规则处理引擎流程图,
图3是规则引擎中数据导换流程图,  图4是公式处理流程图,
图5是配置统计主环节图
图6是配置统计附属环节(统计信息来源表)图,图7是统计规则配置图,
图8脚是本配置和规则定义图,第一列树列出了统计流程配置的变量,
图9是配置特殊规则图(用于限定进行公式处理的数据范围),
图10是配置计算流程图,    图11是配置计算规则,如规则定义图,
图12是公式定义图,        图13是脚本配置图,
图14是配置规则参数图
五、具体实施方式
规则是规则的应用领域(分类),如以下的规则域:酬金计算、话费计算、积分计算、友情提醒等。规则域的创建和维护,除定义规则类型的名称外,还包含规则类型的参数维护。规则类型参数是指:区分不同规则所定义的类型。(规则参数定义的是用户对规则的定制参数)。规则类型参数维护只定义参数的名称、类型。
规则的创建和维护,除定义规则的名称、所属规则类型、描述等基本信息外,还包含规则参数的维护。规则参数维护包括定义参数的名称、类型,具体的值公式教本(参数)定义。对于脚本型规则:输入规则脚本正文;对于可执行模块性规则:从已有的模块中选择一个模块
规则引擎由规则部分和公式部分两大块组成。
规则部分是规则引擎组件提供给外部的一个接口,根据不同模块的调用,接口的定义也相对应的进行不同的参数配置。
公式部分是规则引擎组件内部处理的核心内容,根据外部接口传入的参数把符合条件的规则加载到共享内存,通过对公式教本的处理把结果输出到相关的缓存或者结果表。
规则引擎中数据导换流程图如图3所示:
1数据格式及对应关系定义和外部数据、2数据转换、3格式化数据、4计算、5结果输出;2-1同时从规则定义、2-2进入编辑规则、2-3可执行规则、2-4进入4。
规则引擎的数据源是通过规整后的外部数据和接口部分定义的参数组成。
编译规则过滤后得到可用数据,计算后输出计算结果。
公式处理流程如图4所示:公式对应脚本、可执行公式缓存来源于公式处理流程:1公式脚本参数,公式脚本、内部变量定义、外部变量定义进入2、2读取公式、3词组分析、4词组验证、5语法分析、6接口输出、7公式四元式组缓存和公式输出变量缓存。
公式组件是采用类C的编程方式形成脚本,基本的规则如下:
1、支持基本的条件控制
2、支持基本的赋值语句
3、支持复杂公式脚本的注释描述,大大增加了脚本的可读性
4、支持存储过程的调用
主要功能介绍:
变量注册:公式可识别的所有自定义变量在系统中的建权过程;所有以特殊字符($)开头的变量系统均认为是自定义变量,当公式进行初始化时,自动检测公式脚本中的自定义变量是否在系统中已建权,否则初始化失败。
自定义变量不仅是公式所需特殊资料的数据来源,同时也是公式输出计算结果的接口。每一个自定义变量在系统中均独立占用一块存储空间,每次需要调用公式前都需要对该存储空间进行赋值初始化,调用完毕后,再扫描有变化的存储块进行输出操作。
公式词组分析:词组分析即将公式脚本块分解成包含自定义变量、临时变量、系统关键字、常量、及操作符的字符流。
生成四元式:四元式是一种比较普遍采用的中间代码形式。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及结果对象RESULT。运算对象和结果对象有时指用户自己定义的变量,有时指编译程序引进的临时变量。这里生成四元式就是将词组分析后的字符流处理生成便于机器识别的四元式组。
生成可执行公式缓存:四元式组即是简单的机器汇编码,当生成后,存入一块不被更改的缓存中,便于大量调用。
公式脚本规范:
<公式> ::=<语句块>
<语句块> ::=<语句>|<复合语句>
<语句> ::=<赋值语句>|<条件语句>|<空语句>
<复合语句>::=’{’{<语句块>}’}’
<赋值语句>::=<变量>=<表达式>;
<条件语句>::=if(<表达式>)<语句块>|if(<表达式>)<语句块>else<语句块>
<空语句>::=’;’
<表达式>在<赋值语句>中遇到’;’为结尾,在<条件语句>中’)’无’(’可匹配为结尾;
<备注>以“/*”开头,“*/”结尾的语句块.
举例说明:根据渠道类型获取相对应的放号酬金基数,进行放号酬金计算。
/*$渠道类型($放号酬金、$当月放号数同)为自定义变量,由配置变量环节关联到相关表的指定字段*/(相当于流程中规则参数)
if($渠道类刑==102){
/*temp为临时变量;$01($02,$03同)为规则配置的该公式第一个入参,其值由配置决定,若未配置,系统默认为0处理*/
     temp=$01;
     Else if($渠道类型==101){
     temp=$02;
Else  {
     temp=$03;
$放号酬金=temp*$当月放号数;
例子:与流程的某一步的对应关系,需求描述:
长沙开户业务,商旅套餐、98套餐、家园卡乡镇通、老乡镇通(神州行.家园卡)、$家园卡大灵通在网品牌用户当月通话费在5.00元以上则发放酬金,G001每个奖励2.00元,G001每个奖励1.00元。
环境准备:开户用户资料模板表template_reward_open(数据库实体)
ID     TABLE_NAME   COL_NAME   COL_P   COL_TY EPARCHY_CODE    STATE
1035103610371038103910401041104210431044     TEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OPTEMPLATE_REWARD_OP   STAT_MONTHMONTHCH_NOSTEP_NOUSER_IDCUST_IDACCT_IDBRAND_CODEPRODUCT_IDCITY_CODE     0123456789   NUMNUMNUMNUMcharcharcharcharNUMchar     **********     FOAFOAFOAFOAFOAFOAFOAFOAFOAFOA
统计及计算结果存放模板表template_chnl_rwd_result(数据库实体)
ID TYPE TABLE_NAME COL_NAME COL_POS COL_TYPE    EPARCHY_CODE STATE
1082   P     TEMPLATE_CHNL_RWD_RESUL   STAT_MONTH  0   char    *    FOA
    1083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116     PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP     TEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESULTEMPLATE_CHNL_RWD_RESUL     REPORT_IDEPARCHY_CODECHANNEL_IDCITY_CODECHANNEL_CODECHANNEL_STARCHANNEL_TYPECHANNEL_KINDCHANNEL_LEVELCITY_FLAGDEPART_NAMEAREA_KINDCHANNEL_KIND_NAMAREA_NAMES01S02S03S04S05I1I2I3I4I5I6I7I8I9I1OI11I12I13I14I15     12345678910111213141516171819202122232425262728293031323334     charcharcharcharcharNUMNUMNUMNUMcharcharcharcharcharcharcharcharcharcharNUMNUMNUMNUMNUMNUMNUMNUMNUMNUMNUMNUMNUMNUMNUM     **********************************     FOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAF0AFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOA
●配置变量定义(输入、输出统一定义)
a)长沙开户用户变量定义。
    PAF) ID PARAM_NAME CODE SCH_ID STATE
    367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702  103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067   TEMPLATE_REWARD_OPEN.STAT_MONTHTEMPLATE_REWARD_OPEN.MONTHTEMPLATE_REWARD_OPEN.CH_NOTEMPLATE_REWARD_OPEN.STEP_NOTEMPLATE_REWARD_OPEN.USER_IDTEMPLATE_REWARD_OPEN.CUST_IDTEMPLATE_REWARD_OPEN.ACCT_IDTEMPLATE_REWARD_OPEN.BRAND_CODETEMPLATE_REWARD_OPEN.PRODUCT_IDTEMPLATE_REWARD_OPEN.CITY_CODETEMPLATE_REWARD_OPEN.USER_TYPE_CODTEMPLATE_REWARD_OPEN.SERIAL_NUMBERTEMPLATE_REWARD_OPEN.ACCT_TAGTEMPLATE_REWARD_OPEN.PREPAY_TAGTEMPLATE_REWARD_OPEN.IN_DATETEMPLATE_REWARD_OPEN.OPEN_DATETEMPLATE_REWARD_OPEN.IN_DEPART_IDTEMPLATE_REWARD_OPEN.DEVELOP_DEPARTEMPLATE_REWARD_OPEN.IN_STAFF_IDTEMPLATE_REWARD_OPEN.DEVELOP_STAFFTEMPLATE_REWARD_OPEN.REMOVE_TAGTEMPLATE_REWARD_OPEN.DESTROY_TIMETEMPLATE_REWARD_OPEN.PRE_DESTROY_TTEMPLATE_REWARD_OPEN.FIRST_CALL_TITEMPLATE_REWARD_OPEN.LAST_Stop_TIMTEMPLATE_REWARD_OPEN.OPEN_MODETEMPLATE_REWARD_OPEN.USER_STATE_COTEMPLATE_REWARD_OPEN.PAY_MODE_CODETEMPLATE_REWARD_OPEN.FEE_SUMTEMPLATE_REWARD_OPEN.NUM1TEMPLATE_REWARD_OPEN.NUM2TEMPLATE_REWARD_OPEN.NUM3TEMPLATE_REWARD_OPEN.NUM4 $用户资料.STAT_MONTH$用户资料.MONTH$用户资料.CH_NO$用户资料.STEP_NO$用户资料.USER_ID$用户资料.CUST_ID$用户资料.ACCT_ID$用户资料.BRAND_CODE$用户资料.PRODUCT_ID$用户资料.CITY_CODE$用户资料.USER_TYPE_CODE$用户资料.SERIAL_NUMBER$用户资料.ACCT_TAG$用户资料.PREPAY_TAG$用户资料.IN_DATE$用户资料.OPEN_DATE$用户资料.IN_DEPART_ID$用户资料.DEVELOP_DEPART_ID$用户资料.IN_STAFF_ID$用户资料.DEVELOP_STAFF_ID$用户资料.REMOVE_TAG$用户资料.DESTROY_TIME$用户资料.PRE_DESTROY_TIME$用户资料.FIRST_CALL_TIME$用户资料.LAST_Stop_TIME$用户资料.OPEN_MODE$用户资料.USER_STATE_CODE$用户资料.PAY_MODE_CODE$用户资料.FEE_SUM$用户资料.当月通话费$用户资料.预存编码$用户资料.入网1月标志$用户资料.入网2月标志   REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073REWARD_OPEN_073    FOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOA
 b)长沙开户计算变量计算结果定义
PARAI  ID   PARAM_NAME     CODE     STATE
    355935603561356235633564356535663567356835693570357135723573357935803581358235833584358535863587358835893590359135923593   108210831084108510861087108810891090109110921093109410951096110211031104110511061107110811091110111111121113111411151116   TEMPLATE_CHNL_RWD_RESULT.STAT_MONTHTEMPLATE_CHNL_RWD_RESULT.REPORT_IDTEMPLATE_CHNL_RWD_RESULT.EPARCHY_CODETEMPLATE_CHNL_RWD_RESULT.CHANNEL_IDTEMPLATE_CHNL_RWD_RESULT.CITY_CODETEMPLATE_CHNL_RWD_RESULT.CHANNEL_CODETEMPLATE_CHNL_RWD_RESULT.CHANNEL_STARTEMPLATE_CHNL_RWD_RESULT.CHANNEL_TYPETEMPLATE_CHNL_RWD_RESULT.CHANNEL_KINDTEMPLATE_CHNL_RWD_RESULT.CHANNEL_LEVELTEMPLATE_CHNL_RWD_RESULT.CITY_FLAGTEMPLATE_CHNL_RWD_RESULT.DEPART_NAMETEMPLATE_CHNL_RWD_RESULT.AREA_KINDTEMPLATE_CHNL_RWD_RESULT.CHANNEL_KIND_NAITEMPLATE_CHNL_RWD_RESULT.AREA_NAMETEMPLATE_CHNL_RWD_RESULT.I1TEMPLATE_CHNL_RWD_RESULT.12TEMPLATE_CHNL_RWD_RESULT.I3TEMPLATE_CHNL_RWD_RESULT.I4TEMPLATE_CHNL_RWD_RESULT.I5TEMPLATE_CHNL_RWD_RESULT.I6TEMPLATE_CHNL_RWD_RESULT.I7TEMPLATE_CHNL_RWD_RESULT.I8TEMPLATE_CHNL_RWD_RESULT.I9TEMPLATE_CHNL_RWD_RESULT.I10TEMPLATE_CHNL_RWD_RESULT.I11TEMPLATE_CHNL_RWD_RESULT.I12TEMPLATE_CHNL_RWD_RESULT.I13TEMPLATE_CHNL_RWD_RESULT.I14TEMPLATE_CHNL_RWD_RESULT.I15   $渠道开户.STAT_MONTH$渠道开户.REPORT_ID$渠道开户.EPARCHY_CODE$渠道开户.CHANNEL_ID$渠道开户.CITY_CODE$渠道开户.CHANNEL_CODE$渠道开户.CHANNEL_STAR$渠道开户.CHANNEL_TYPE$渠道开户.CHANNEL_KIND$渠道开户.CHANNEL_LEVEL$渠道开户.CITY_FLAG$渠道开户.DEPART_NAME$渠道开户.AREA_KIND$渠道开户.CHANNEL_KIND_N$渠道开户.AREA_NAME$商旅套餐全cnt$98套餐全cnt$家园卡乡镇通cnt$老乡镇通神.家cnt$家园卡大灵通cnt$商旅套餐全rate$98套餐全rate$家园卡乡镇通rate$老乡镇通神.家rate$家园卡大灵通rate$商旅套餐全fee$98套餐全fee$家园卡乡镇通fee$老乡镇通神.家fee$家园卡大灵通fee FOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOAFOA
●配置统计流程
a)配置统计主环节(结果放置表)图5
b)配置统计附属环节(统计信息来源表)如图6所示
●配置统计规则如图7
a)规则定义
公式定义如图8,第一列树列出了统计流程配置的变量
公式脚本具体如下:
if($用户资料.BRAND_CODE==″G001″&&$用户资料.PRODUCT_ID==31001711)
{
 $商旅套餐全cnt=$商旅套餐全cnt+1;
}
if($用户资料.BRAND_CODE==″G001″&&$用户资料.PRODUCT_ID==31001712)
{
 $98套餐全cnt=$98套餐全cnt+1;
}
if($用户资料.BRAND_CODE==″G004″&&$用户资料.PRODUCT_ID==31100004)
{
 $家园卡乡镇通cnt=$家园卡乡镇通cnt+1;
}
   /*预存  */
if($用户资料.BRAND_CODE==″G004″&&$用户资料.预存编码==31000302)
{
 $老乡镇通神.家cnt=$老乡镇通神.家cnt+1;
}
if($用户资料.BRAND_CODE==″G011″&&$用户资料.PRODUCT_ID==31000014)
{
 $家园卡大灵通cnt=$家园卡大灵通cnt+1;
}
b)配置特殊规则(用于限定进行公式处理的数据范围)如图9
●配置计算流程如图10
●配置计算规则如图11
a)规则定义
b)公式定义如图12
脚本具体如图13:
{
   $商旅套餐全rate=$05*$01/100;
   $商旅套餐全fee=$05*$01/100*$商旅套餐全cnt;
   $98套餐全rate=$06*$01/100;
   $98套餐全fee=$06*$01/100*$98套餐全cnt;
   $家园卡乡镇通rate=$07*$01/100;
   $家园卡乡镇通fee=$07*$01/100*$家园卡乡镇通cnt;
   $老乡镇通神.家rate=$08*$01/100;
   $老乡镇通神.家fee=$08*$01/100*$老乡镇通神.家cnt;
  $家园卡大灵通rate=$09*$01/100;
   $家园卡大灵通fee=$09*$01/100*$家园卡大灵通cnt;
}

Claims (3)

1.采用规则引擎对复杂数据进行批量处理的方法,其特征是建立规则引擎:规则引擎由数据导换,规则处理,公式处理三个模块组成,每一个模块都可以单独存在进行数据处理;
规则处理模块中配置规则公式的步骤是:
引入规则概念:用于描述应用中可定制部分的逻辑,引入规则参数概念:定义规则的定制参数;
规则处理引擎流程:1根据脚本对应参数、2公式对应脚本、同时进入2-1、3公式加载、4公式编译、5可执行公式缓存、6初始化输入缓冲,调用可执行组成缓冲计算,结果写入缓冲、7规则输出;2-1是根据规则类型进入规则、2-2规则加载、2-3规则调用后亦进入6初始化输入缓冲;
规则引擎中数据导换流程:1数据格式及对应关系定义和外部数据、2数据转换、3格式化数据、4计算、5结果输出;2-1同时从规则定义、2-2进入编辑规则、2-3可执行规则、2-4进入4;
规则引擎中数据导换流程:1数据格式及对应关系定义和外部数据、2数据转换、3格式化数据、4计算、5结果输出;2-1同时从规则定义、2-2进入编辑规则、2-3可执行规则、2-4进入4。
2.根据权利要求1所述的采用规则引擎对复杂数据进行批量处理的方法,其特征是用于描述应用中可定制部分的逻辑,为适应不同的情形,规则有两种形式:脚本和可执行模块;对于逻辑复杂,使用预先用高级语言(C/C++)编译好的动态链接库;对于逻辑简单,可定制性要求高的,使用脚本。
3.根据权利要求2所述的采用规则引擎对复杂数据进行批量处理的方法,其特征是脚本语言采用类C语言的语法,在脚本中可直接使用’$’前缀访问规则的各种参数。
CNA2007101308715A 2007-08-21 2007-08-21 采用规则引擎对复杂数据进行批量处理的方法 Pending CN101158956A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007101308715A CN101158956A (zh) 2007-08-21 2007-08-21 采用规则引擎对复杂数据进行批量处理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007101308715A CN101158956A (zh) 2007-08-21 2007-08-21 采用规则引擎对复杂数据进行批量处理的方法

Publications (1)

Publication Number Publication Date
CN101158956A true CN101158956A (zh) 2008-04-09

Family

ID=39307058

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101308715A Pending CN101158956A (zh) 2007-08-21 2007-08-21 采用规则引擎对复杂数据进行批量处理的方法

Country Status (1)

Country Link
CN (1) CN101158956A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763261B (zh) * 2009-12-28 2013-01-23 山东中创软件商用中间件股份有限公司 数据抽取、转换和加载方法、系统
CN103646316A (zh) * 2013-12-18 2014-03-19 世纪禾光科技发展(北京)有限责任公司 一种分布式金融计算的公式处理方法
CN105308558A (zh) * 2012-12-10 2016-02-03 维迪特克公司 基于规则的数据处理系统和方法
CN105913314A (zh) * 2015-12-30 2016-08-31 上海钢富电子商务有限公司 一种采用规则引擎处理利息结算系统与方法
CN107124327A (zh) * 2017-04-11 2017-09-01 千寻位置网络有限公司 Jt808车载终端模拟器反检测的方法
CN108279866A (zh) * 2018-01-24 2018-07-13 马上消费金融股份有限公司 一种业务流程的编排执行方法、装置及介质
CN110865804A (zh) * 2019-09-30 2020-03-06 天阳宏业科技股份有限公司 一种规则引擎的优化方法、装置、系统及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763261B (zh) * 2009-12-28 2013-01-23 山东中创软件商用中间件股份有限公司 数据抽取、转换和加载方法、系统
CN105308558A (zh) * 2012-12-10 2016-02-03 维迪特克公司 基于规则的数据处理系统和方法
CN103646316A (zh) * 2013-12-18 2014-03-19 世纪禾光科技发展(北京)有限责任公司 一种分布式金融计算的公式处理方法
CN105913314A (zh) * 2015-12-30 2016-08-31 上海钢富电子商务有限公司 一种采用规则引擎处理利息结算系统与方法
CN107124327A (zh) * 2017-04-11 2017-09-01 千寻位置网络有限公司 Jt808车载终端模拟器反检测的方法
CN107124327B (zh) * 2017-04-11 2019-04-02 千寻位置网络有限公司 Jt808车载终端模拟器反检测的方法
CN108279866A (zh) * 2018-01-24 2018-07-13 马上消费金融股份有限公司 一种业务流程的编排执行方法、装置及介质
CN110865804A (zh) * 2019-09-30 2020-03-06 天阳宏业科技股份有限公司 一种规则引擎的优化方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
CN101158956A (zh) 采用规则引擎对复杂数据进行批量处理的方法
CN101339500B (zh) 基于xml模式的数据绑定应用程序接口生成方法
Paige et al. The design of a conceptual framework and technical infrastructure for model management language engineering
Groenewegen et al. Webdsl: a domain-specific language for dynamic web applications
US20110035725A9 (en) System and method for automated re-architectureing of legacy systems using object oriented language
CN101908015A (zh) 一种基于构件生成测试案例的装置及方法
CN109241104B (zh) 决策型分布式数据库系统中aisql的解析器及其实现方法
Cadoret et al. Design patterns for rule-based refinement of safety critical embedded systems models
Singhal et al. Q# as a quantum algorithmic language
CN102541614B (zh) 基于代码分析的计算模块输入输出数据自动解析方法
CN102123099B (zh) 报文处理系统及方法
Stein MATLAB
CN202143092U (zh) 报文处理系统
Akers et al. Re-engineering C++ component models via automatic program transformation
Rieger et al. Challenges and Opportunities of Modularizing Textual Domain-Specific Languages.
Garlan et al. A transformational approach to generating application-specific environments
Weisemöller et al. 16 development of tool extensions with moflon
Kraas On the automation-supported derivation of domain-specific UML profiles considering static semantics
Ostermayer Seamless Cooperation of Java and Prolog for Rule-Based Software Development.
CN111984233A (zh) 一种AltaRica模型中类的平展化方法
Ivanov et al. STen: An Interface for Efficient Sparsity in PyTorch
Andrzejak et al. Agile construction of data science DSLs (tool demo)
Monpratarnchai et al. The design and implementation of a role model based language, EpsilonJ
Frappier et al. Combining JSD and Cleanroom for object-oriented scenario specification
Sophatsathit Complexity measure of software composition framework

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: 20080409