CN111562964A - 一种基于规则引擎的结算业务系统模拟器实现方法 - Google Patents
一种基于规则引擎的结算业务系统模拟器实现方法 Download PDFInfo
- Publication number
- CN111562964A CN111562964A CN202010325679.7A CN202010325679A CN111562964A CN 111562964 A CN111562964 A CN 111562964A CN 202010325679 A CN202010325679 A CN 202010325679A CN 111562964 A CN111562964 A CN 111562964A
- Authority
- CN
- China
- Prior art keywords
- rule
- rule engine
- settlement
- data
- service system
- 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 28
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及证券期货技术测试技术领域,具体涉及一种基于规则引擎的结算业务系统模拟器实现方法,采用如下步骤:S1:构建结算业务系统模拟器,利用结算业务系统模拟器实现与结算通信系统相互通信;S2:S1中的结算业务系统模拟器由逻辑处理模块和规则引擎模块组成,逻辑处理模块和规则引擎模块之间相互通信;S3:S2中的规则引擎模块由规则条件模块和规则操作模块组成;它将业务逻辑和业务规则分离,通过规则的灵活配置,测试人员可快速自定义相关处理流程,模拟真实的结算业务系统的处理逻辑,极大提高了工作效率。
Description
【技术领域】
本发明涉及证券期货技术测试技术领域,具体涉及一种基于规则引擎的结算业务系统模拟器实现方法。
【背景技术】
随着科技发展,互联网的兴起,金融之间通过网络来实现交易、结算,既快捷又方便。结算通信系统为所有的结算业务提供统一的通信平台,并且在这个平台的基础上开放某些业务的数据接口或者提供业务的操作终端软件。用户使用这个平台将结算业务的实时数据,包括非交易业务、资金交收业务的XML流消息发送到结算公司,由结算公司业务系统处理完成并将处理结果返回给用户。由于结算类的业务数据种类繁多,传统的结算通信平台的业务测试,由于过度依赖结算业务系统,而开发的结算业务系统模拟器通常业务逻辑和业务规则不分离,操作的业务数据不可视化,操作人员既要关心业务逻辑,以及与业务逻辑相应的数据,不能实现相关业务的测试。且也不能够实现对相关的业务规则和操作的增删操作,不能快速适配新业务模型,导致工作效率低下。
【发明内容】
本发明的目的在于针对现有技术的缺陷和不足,提供一种基于规则引擎的结算业务系统模拟器实现方法。
本发明所述的一种基于规则引擎的结算业务系统模拟器实现方法,采用如下步骤:
S1:构建结算业务系统模拟器,利用结算业务系统模拟器实现与结算通信系统相互通信;
S2:S1中的结算业务系统模拟器由逻辑处理模块和规则引擎模块组成,逻辑处理模块和规则引擎模块之间相互通信;
S3:S2中的规则引擎模块由规则条件模块和规则操作模块组成;
S4:构造规则引擎配置文件:采用XML格式,根据步骤S3中的定义,分为条件和操作两部分;条件部分用于规则匹配,操作部分用于根据匹配到的规则执行相应的操作;
其中:(1)操作“关键字”:“关键字”为预先定义好的函数;
(2)参数传递:操作部分的数据,会与匹配到的条件中数据相关联,故需要获取匹配条件中的数据,采用规则引擎自带的“?+参数名”方式进行定义;
S5:规则匹配:将S2中逻辑处理模块接收到的业务数据与规则引擎中的条件进行匹配,并执行相关的操作;
采用如下步骤:
S501:创建规则:将规则引擎配置文件中的规则逐条转换为规则引擎可识别的格式;
S502:断言事实:将S2中逻辑处理模块接收到的消息(事实)转换为规则引擎可识别的格式;
S503:规则匹配:调用规则引擎的匹配方法,将S502中的事实和S501中创建的规则进行匹配;如果匹配到对应的规则,则执行S4中的操作关键字,并且进行参数替换。
进一步地,S2中的逻辑处理模块对业务数据的处理,采用如下步骤:
S201:将S1中的结算通信系统的业务数据进行解析,转换为规则引擎的事实数据格式;
S202:将事实数据写入规则引擎;
S203:由规则引擎进行规则匹配,并执行匹配到的相关操作;
S204:接收规则引擎返回的规则操作数据。
进一步地,S5中的业务数据为xml数据流或tcp的二进制流。
本发明有益效果为:本发明所述的一种基于规则引擎的结算业务系统模拟器实现方法,它能够实现一个业务消息返回一个对应的回报的场景,返回的回报可以通过修改规则配置文件实现自定义内容;它将业务逻辑和业务规则分离,通过规则的灵活配置,测试人员可快速自定义相关处理流程,模拟真实的结算业务系统的处理逻辑,极大提高了工作效率。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明的技术框架示意图;
图2是本发明的业务规则匹配流程图;
图3是本发明的程序流程图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
如图1所示,本具体实施方式所述的一种基于规则引擎的结算业务系统模拟器实现方法,采用如下步骤:
S1:构建结算业务系统模拟器,利用结算业务系统模拟器实现与结算通信系统相互通信;
S2:S1中的结算业务系统模拟器由逻辑处理模块和规则引擎模块组成,逻辑处理模块和规则引擎模块之间相互通信;
S3:S2中的规则引擎模块由规则条件模块和规则操作模块组成;
S4:构造规则引擎配置文件:采用XML格式,根据步骤S3中的定义,分为条件和操作两部分;条件部分用于规则匹配,操作部分用于根据匹配到的规则执行相应的操作;
其中:(1)操作“关键字”:“关键字”为预先定义好的函数;例如<sendFileneedconfirm="0">startBizRsp.xml</sendFile>,sendFile为预先定义好的函数,属性和值为参数;
(2)参数传递:操作部分的数据,会与匹配到的条件中数据相关联,故需要获取匹配条件中的数据,采用规则引擎自带的“?+参数名”方式进行定义;例如<BizMsgIdr>?BizMsgIdr</BizMsgIdr>;
S5:规则匹配:将S2中逻辑处理模块接收到的业务数据与规则引擎中的条件进行匹配,并执行相关的操作;采用如下步骤:
S501:创建规则(BuildRule):将规则引擎配置文件中的规则逐条转换为规则引擎可识别的格式;
S502:断言事实(Assert):将S2中逻辑处理模块接收到的消息(事实)转换为规则引擎可识别的格式;
S503:规则匹配(Run):调用规则引擎的匹配方法,将S502中的事实和S501中创建的规则进行匹配;如果匹配到对应的规则,则执行S4中的操作关键字,并且进行参数替换。
进一步地,S2中的逻辑处理模块对业务数据的处理,采用如下步骤:
S201:将S1中的结算通信系统的业务数据进行解析,转换为规则引擎的事实数据格式;
S202:将事实数据写入规则引擎;
S203:由规则引擎进行规则匹配,并执行匹配到的相关操作;
S204:接收规则引擎返回的规则操作数据。
进一步地,S5中的业务数据为xml数据流或tcp的二进制流。
本发明中涉及的系统名称说明如下:
(1)结算业务系统:是中国证券登记结算有限公司开发的系统,用于处理结算参与人(券商、基金公司、托管银行等)上报的结算数据消息或者结算数据文件,此专利中结算业务系统是中国证券登记结算有限公司深圳分公司管理的深圳结算业务系统。
(2)结算业务系统模拟器:是使用python脚本来实现结算业务系统的一些功能,用于模拟结算业务系统接收结算参与人上报的结算数据以及下发对应的响应。是本发明的创新核心。
(3)结算通信系统:是深圳证券通信有限公司(深证通)研发的系统,用于连接结算参与人和结算业务系统,结算参与人数据通过上报到深证通结算通信系统,深证通结算通信系统再转给结算公司的业务系统;
(4)结算公司:是指中国证券登记结算有限公司,包括上海分公司、深圳分公司、北京分公司。本发明中的结算公司是指中国证券登记结算有限公司深圳分公司。
(5)本发明中的涉及的用户:是指结算参与人,即各券商、基金公司、托管银行。
本发明中,结算公司开发了结算业务系统,深证通开发结算通信系统,用户通过结算通信系统将业务数据上报到结算业务系统,并可以通过结算通信系统接收结算业务系统下发的业务数据。在中国证券登记结算有限公司官网上有结算业务系统的接口规范,详细介绍了和结算业务系统交互的数据规范。
本发明的结算业务系统模拟器是通过python语言,按照结算业务系统公布的接口规范,实现了接收结算通信系统发送的消息,并返回对应的响应的一个脚本。
本发明中,引入了规则引擎这个模块,在模拟器中通过规则引擎的相关代码,将接收消息、下发响应消息这部分逻辑处理写在代码中,将业务规则(如接收登记存管消息返回登记存管的响应,接收清算交收的消息返回清算交收响应)独立到一个xml文档中,业务规则不在代码中定义,实现了业务逻辑和业务规则的分离。
本发明中,由于结算业务数据种类很多,并且业务持续在发展,为了快速适应当前业务的测试需求以及适配后续新业务的测试,引入了将业务逻辑和业务规则分离的方案来实现结算业务系统模拟器的开发。针对上述的问题,本发明中,最大的难点在于:如何将实际的业务规则转化为规则引擎的规则条件数据。
如图2所示:将实际业务数据与规则进行匹配,并执行匹配后的操作,核心关键主要有三个:
(1)解析规则配置文件:规则配置文件中配置了匹配的条件和匹配成功之后需要执行的操作。此方案中使用xml文件来编写规则文件,首先需要为每个规则定义一个独立的编号,其次需要将xml转换为规则引擎定义好的条件格式,将规则操作转换为对应的规则操作格式;
(2)规则和操作写入规则引擎中:将规则和匹配后执行的操作作为一条数据写入规则引擎中,需要保证每个不同类别的业务只能匹配上一个规则;
(3)解析实际业务数据:执行的操作中包含需要发送的业务数据,业务数据可能是xml数据流或者tcp的二进制流,需要将消息流转换为规则引擎定义好的事实格式,然后写入到规则引擎中。
本发明中,规则配置文件中param2使用了?param2,是指上报的消息中,param2这个字段的值保存在?param2这个参数中,回报的消息如果需要使用到这个值,直接引用?param2这个参数即可。如上报消息中携带了<param2>00001</param2>,回报消息<param10>需要填入这个值,则在规则配置文件中配置<param2>?param2</param2>,在下发回报的消息中使用<param10>?param2</param10>即可。
本发明的优点如下:
本发明的结算通信系统之间非常依赖结算业务系统进行相关的业务测试,有如下显著收益和效果:
(1)业务规则配置、匹配规则对应操作及操作的业务数据可视化,与业务逻辑组件的代码分离,让使用人员不用关心业务逻辑,只需配置相应的数据就可以进行相关业务测试。
(2)业务规则和匹配后的操作可扩展,使用人员可以根据文件规则进行增删改相关的业务规则和操作,快速适配新的业务模型。
如图3所示,本发明的操作流程如下:
(1)启动模拟器;
(2)程序自动解析规则配置文件,将规则和操作加载到规则引擎中;
(3)模拟器的业务逻辑模块等待从结算通信系统发送来的业务数据;
(4)业务逻辑模块将接收到的业务数据进行处理,转换为规则引擎事实的格式,并将事实写入到规则引擎;
(5)规则引擎在接收到事实后,将事实与规则条件进行匹配,并将匹配成功的条件对应的操作返回给业务逻辑模块;
(6)业务逻辑模块根据返回的操作数据,执行对应的操作,将该操作中定义的业务处理数据返回给结算通信系统。
本发明中,业务规则配置、匹配规则对应操作是在业务规则文件中配置,文件内容是可以直接查看和修改的,文件内容为xml格式;操作的业务数据也是使用xml格式来编写的,保存在文件中,文件内容可以直接查看和修改。因此能够实现可视化。
本发明中涉及的算法如下:
(1)条件数据构造算法具体实现是,指文中提到的将业务规则写入到规则配置文件中,规则配置文件中的各种业务规则就是条件数据构造算法的输入,算法实现原理是将规则配置文件中的业务规则解析然后存储在内存中。
(2)操作数据构造算法与条件数据构造算法类似,只是去解析规则配置文件中的操作规则。
(3)事实数据构造算法是解析实际的业务数据,将业务数据转换为规则引擎定义好的事实格式。
本发明所述的一种基于规则引擎的结算业务系统模拟器实现方法,它能够实现一个业务消息返回一个对应的回报的场景,返回的回报可以通过修改规则配置文件实现自定义内容;它将业务逻辑和业务规则分离,通过规则的灵活配置,测试人员可快速自定义相关处理流程,模拟真实的结算业务系统的处理逻辑,极大提高了工作效率。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (3)
1.一种基于规则引擎的结算业务系统模拟器实现方法,其特征在于:采用如下步骤:
S1:构建结算业务系统模拟器,利用结算业务系统模拟器实现与结算通信系统相互通信;
S2:S1中的结算业务系统模拟器由逻辑处理模块和规则引擎模块组成,逻辑处理模块和规则引擎模块之间相互通信;
S3:S2中的规则引擎模块由规则条件模块和规则操作模块组成;
S4:构造规则引擎配置文件:采用XML格式,根据步骤S3中的定义,分为条件和操作两部分;条件部分用于规则匹配,操作部分用于根据匹配到的规则执行相应的操作;
其中:(1)操作“关键字”:“关键字”为预先定义好的函数;
(2)参数传递:操作部分的数据,会与匹配到的条件中数据相关联,故需要获取匹配条件中的数据,采用规则引擎自带的“?+参数名”方式进行定义;
S5:规则匹配:将步骤S2中逻辑处理模块接收到的业务数据与规则引擎中的条件进行匹配,并执行相关的操作;其采用如下步骤:
S501:创建规则:将规则引擎配置文件中的规则逐条转换为规则引擎可识别的格式;
S502:断言事实:将S2中逻辑处理模块接收到的消息(事实)转换为规则引擎可识别的格式;
S503:规则匹配:调用规则引擎的匹配方法,将S502中的事实和S501中创建的规则进行匹配;如果匹配到对应的规则,则执行S4中的操作关键字,并且进行参数替换。
2.根据权利要求1所述的一种基于规则引擎的结算业务系统模拟器实现方法,其特征在于:S2中的逻辑处理模块对业务数据的处理,采用如下步骤:
S201:将S1中的结算通信系统的业务数据进行解析,转换为规则引擎的事实数据格式;
S202:将事实数据写入规则引擎;
S203:由规则引擎进行规则匹配,并执行匹配到的相关操作;
S204:接收规则引擎返回的规则操作数据。
3.根据权利要求1所述的一种基于规则引擎的结算业务系统模拟器实现方法,其特征在于:S5中的业务数据为xml数据流或tcp的二进制流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010325679.7A CN111562964A (zh) | 2020-04-23 | 2020-04-23 | 一种基于规则引擎的结算业务系统模拟器实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010325679.7A CN111562964A (zh) | 2020-04-23 | 2020-04-23 | 一种基于规则引擎的结算业务系统模拟器实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111562964A true CN111562964A (zh) | 2020-08-21 |
Family
ID=72074322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010325679.7A Pending CN111562964A (zh) | 2020-04-23 | 2020-04-23 | 一种基于规则引擎的结算业务系统模拟器实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111562964A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464620A (zh) * | 2020-09-23 | 2021-03-09 | 航天信息股份有限公司企业服务分公司 | 一种财务规则引擎的实现方法及实现系统 |
CN115423592A (zh) * | 2022-09-05 | 2022-12-02 | 北京华科诚信科技股份有限公司 | 一种计提引擎数据处理系统及其工作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777029A (zh) * | 2016-12-08 | 2017-05-31 | 中国科学技术大学 | 一种分布式规则引擎系统及其构建方法 |
CN108920222A (zh) * | 2018-07-12 | 2018-11-30 | 北京京东金融科技控股有限公司 | 一种基于规则引擎的业务处理方法和装置 |
CN110428054A (zh) * | 2019-08-07 | 2019-11-08 | 浪潮云信息技术有限公司 | 基于编译技术的业务规则引擎模式匹配系统及实现方法 |
-
2020
- 2020-04-23 CN CN202010325679.7A patent/CN111562964A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777029A (zh) * | 2016-12-08 | 2017-05-31 | 中国科学技术大学 | 一种分布式规则引擎系统及其构建方法 |
CN108920222A (zh) * | 2018-07-12 | 2018-11-30 | 北京京东金融科技控股有限公司 | 一种基于规则引擎的业务处理方法和装置 |
CN110428054A (zh) * | 2019-08-07 | 2019-11-08 | 浪潮云信息技术有限公司 | 基于编译技术的业务规则引擎模式匹配系统及实现方法 |
Non-Patent Citations (1)
Title |
---|
汪腾灵,: "基于规则引擎的生产企业原材料过磅结算系统的研究与应用", 《中国优秀硕士学位论文全文数据库经济与管理科学辑(月刊)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464620A (zh) * | 2020-09-23 | 2021-03-09 | 航天信息股份有限公司企业服务分公司 | 一种财务规则引擎的实现方法及实现系统 |
CN115423592A (zh) * | 2022-09-05 | 2022-12-02 | 北京华科诚信科技股份有限公司 | 一种计提引擎数据处理系统及其工作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3152829A1 (en) | Method and apparatus for processing business data | |
CN109814856B (zh) | 数据录入方法、装置、终端及计算机可读存储介质 | |
CN108337236A (zh) | 一种基于Protobuf和HTTP/1.1的gRPC调用方法及装置 | |
CN104461531B (zh) | 一种报表系统自定义函数的实现方法 | |
CN111221739A (zh) | 业务测试方法、装置和系统 | |
CN106686023A (zh) | 一种流程设计方法、客户机、服务器侧装置及系统 | |
CN108021710A (zh) | 一种动态接口转换方法、装置、终端设备及存储介质 | |
CN111562964A (zh) | 一种基于规则引擎的结算业务系统模拟器实现方法 | |
CN109213758B (zh) | 数据存取方法、装置、设备及计算机可读存储介质 | |
US20190050376A1 (en) | Automatic value formatting based on intrinsic structural semantics | |
CN116680093A (zh) | 基于LLM的web应用优化系统及服务实现方法和系统 | |
CN102255867A (zh) | 服务请求处理方法、装置及系统 | |
CN106897153A (zh) | 调用应用编程接口的方法和系统 | |
CN104281970B (zh) | 消息处理方法、消息处理装置以及服务器平台 | |
CN109145027A (zh) | 数据统计方法、装置、设备及计算机可读存储介质 | |
CN115640045A (zh) | 基于领域驱动设计的低代码开发平台及业务系统创建方法 | |
CN110278272B (zh) | 模拟Socket请求的通用方法 | |
CN112130830A (zh) | 接口生成方法、装置及电子设备 | |
CN105024923B (zh) | 基于xmpp扩展消息的消息分类实现的方法及装置 | |
CN108959294A (zh) | 一种访问搜索引擎的方法和装置 | |
CN113591448B (zh) | 报表生成方法、装置及存储介质 | |
CN110175917A (zh) | 参数图形化处理的装置及方法 | |
CN115811513A (zh) | 第三方接口请求设计方法、装置、存储介质 | |
CN113362111B (zh) | 一种内容发送方法、装置及电子设备 | |
CN108052590B (zh) | 一种结构化数据的动态使用方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200821 |