CN107291464B - 并行业务规则引擎分支无限性解决方法 - Google Patents

并行业务规则引擎分支无限性解决方法 Download PDF

Info

Publication number
CN107291464B
CN107291464B CN201710446844.2A CN201710446844A CN107291464B CN 107291464 B CN107291464 B CN 107291464B CN 201710446844 A CN201710446844 A CN 201710446844A CN 107291464 B CN107291464 B CN 107291464B
Authority
CN
China
Prior art keywords
parallel
data
engine
branch
workflow
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.)
Active
Application number
CN201710446844.2A
Other languages
English (en)
Other versions
CN107291464A (zh
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.)
Global Digital Group Co Ltd
Original Assignee
Globaltour Group 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 Globaltour Group Ltd filed Critical Globaltour Group Ltd
Priority to CN201710446844.2A priority Critical patent/CN107291464B/zh
Publication of CN107291464A publication Critical patent/CN107291464A/zh
Application granted granted Critical
Publication of CN107291464B publication Critical patent/CN107291464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种并行业务规则引擎分支无限性解决方法,包括并行执行体通过映射方式生成和查找到分支,然后执行分支,返回结果。本发明在现有的规则引擎基础上增加了并行功能,并且使得引擎用户可以快速地配置并行计算,满足了用户备份、系统集成、高性能计算等方面的需求。该技术同时应用于并行工作流引擎。

Description

并行业务规则引擎分支无限性解决方法
本发明是在发明名称:并行业务规则引擎及其实现方法,申请号:201310073436.9,申请日:2013年3月7日的在先申请的基础上提出的分案申请。
技术领域
本发明涉及计算机软件开发领域,应用于系统集成、软件系统配置、容错和高性能计算等方面。具体地,设计方案通过在规则引擎中增加并行执行体,在并行执行体中声明对分支的选择方式,及生成和查找方式,以提供对并行计算的有效支持。
背景技术
规则引擎(regular rule)是指用一段易懂的脚本表示业务过程中的规则,脚本不需要经过编译,在程序运行期由规则引擎框架读取和解释,应用程序调用规则引擎接口触发执行相应的规则,从而达到业务逻辑和业务编程实现的分离。
规则引擎不同于规则发现引擎,规则引擎属于程序配置体系;规则发现引擎是指通过模式匹配发现业务过程中的某种规律,属于模式识别范畴。
规则引擎包括如下部分:规则脚本(不需要编译)、规则引擎框架、调用规则引擎的应用程序。一般规则脚本包括:执行体和规则体,规则体包括触发条件和对执行体和需执行方法的调用。
工作流(workflow)指一系列前后相续相连的步骤。工作流引擎(workflowengine)使用易懂的脚本等表示这些步骤之间的关系,工作流引擎框架读取和解释这些步骤,使用时,应用程序通过工作流引擎接口调用执行相应的工作流步骤,并得到结果。工作流引擎分离了工作流程和具体的程序编程。
本发明中的并行计算(操作)指,由于数据分布在不同的逻辑地址,需要通过相同或不同的子程序模块去分别操作,这些不同的子程序或者不同的逻辑地址的组合称为分支,对数据的一次操作(计算),需要从一个或多个可能的分支去选择,操作(或称计算)在空间上是并行的,因此称为并行计算。
业务规则引擎和工作流引擎基本实现了对系统易变部分的有效配置,但目前还没有较好的方案引擎能便捷,快速的实现对系统数据备份、联合查询等并行计算的有效支持。
发明内容
为了填补了业务规则引擎在并行计算方面的空白,并行业务规则引擎在配置文件中使用并行执行体。数据的一次并行操作可以通过使用不同的子程序或者使用不同的逻辑地址达到,发明中请人将这些不同的子程序或者不同的逻辑地址的组合称为分支。
并行执行体对数据有两种操作方式:数据读取,和数据写入(包括修改删除)。数据读取包括联合、选择、竞争等分支选择方式:联合读取就是从一系列分支中读取数据,最后拼装成结果集;选择就是假设各个分支数据是一样的,执行体从分支中(随机)选择一个分支读取结果集;竞争就是假设各个分支数据是一样的,执行体从各个分支读取,但是只取最快的那份,其余的丢弃。数据写入包括联合、同时等分支选择方式:联合就是将数据按照规则拆散放到各个分支中,每个分支得到的是不完整的数据,但是所有分支数据的总和是完整数据;同时就是将数据不拆散,完整的保存到各个分支中。
分支的查找和生成规则为:分支地址或子程序名称是由引擎传入的参数通过映射得到的,参与映射的参数值可以是“”或null。映射规则是,设有i个变量,{Xi}为这些变量的集合,分支地址或子程序名称为F({Xi}),那么找出一个F({Xi}),通过F({Xi})可以通过逆映射获得{Xi}中的所需要部分或全部。本规则引擎通过变量映射规则而不是通过条件判断选择分支,从而获得对多种数据读写方式的支持,这是本发明的特征。
并行计算通过并行执行体实现,并行执行体参数有三种类型:常量,由应用程序调用规则引擎框架时传入的变量,由常量和其他参数映射得来的参数。方法或执行体引用的方式有两种:常量方法,由常量和其他参数映射而来的方法。并行执行体的第三种类型映射了逻辑地址分支,并行执行体中方法或并行执行体的第二种引用方式映射了子程序分支。
因为并行执行体是通过映射而非条件判断选择分支的,因此,本发明的方案可应用于工作流引擎。具体是:并行执行体作为工作流引擎的一个执行节点;工作流引擎的上一个节点或该段工作流引擎的调用者传入相应的参数,并调用该节点;该节点映射各个分支,然后返回最终结果给下一个节点;如果这是引擎的最后一个节点,那就返回给工作流引擎的调用者。
附图说明
图1是对并行业务规则引擎结构的解释。并行业务规则引擎需要配置三种组件:执行体和规则体是一般业务规则引擎所拥有的,而并行规则体则是本方案所特有的。并行规则体的参数和“方法或执行体引用”部分都可以分别映射分支,通过这种分支映射的组合,并行业务规则引擎可以具备很好的伸缩性能。
图2是对并行规则体在工作流引擎中的应用的解释。工作流引擎中,并行节点的上一个节点(如果有)或应用程序通过引擎框架调用并行节点;并行执行体隐式地通过映射方式执行分支;然后,并行执行体获得并行运算的最终结果;并将最终结果和控制交给下一个节点(如果有),如果没有下一个节点,那就把结果交给通过引擎框架调用该引擎的应用程序。
具体实施方式
并行业务规则引擎分支无限性解决方法的实现有以下步骤:
1.规则引擎需要靠规则引擎框架解释执行,应用程序读入规则引擎框架。
2.配置文件中配置业务规则,应用程序读入配置文件,并通过框架解释这些规则。
3.应用程序在相应的地方通过对框架SPI的调用,并传入相应的参数,执行规则,最后获得结果。
4.如果程序在该相应的地方需求规则改变,只要参数不变,程序员就可以通过重新配置业务规则达到效果。
并行业务规则引擎和并行业务工作流引擎的配置过程如下:
1.首先定义需要被调用的分支的程序的方法,如果分支程序的方法不同就进一步将该方法封装为执行体。
2.定义并行执行体,并行执行体声明为读取或写入类型,并声明联合、选择、竞争、同时等方式。
3.在并行执行体中配置传入参数、对“方法和执行体的引用”。参数和“方法或执行体引用”的类型可以由映射生成,映射的结果可以作为参数;或者作为步骤1定义的执行体的名称,进一步通过执行体获得参数;或者作为步骤1定义的执行体的名称由“方法或执行体引用”所引用。
4.应用程序调用引擎框架,执行并行执行体,做并行操作。
下面结合具体的应用场景,进一步阐明本发明,本发明可以应用于但不限于以下情形:
假设日志系统需要每大生成一个日志文件,并且可以查看所有天的日志。
开发者可按照如下步骤开发和配置:
1.在程序中编译一个通用的方法,用于写入日志,如果没有相应的日志文件就生成日志文件。
2.配置并行执行体1,用于对日志文件进行并行操作。并行执行体的“方法或执行体引用”部分配置为对步骤1的方法的引用,传入参数与步骤1中的参数一致。
3.并行执行体1为写入类型,并声明为同时方式,以适应并行写入的需求。
4.并行执行体1中的日志文件名参数以映射方式配置,映射公式为F(X)=Log|MMDD,MM为月,DD为日;MM和DD分别作为固定参数传入,表示当前时间,因此,对并行执行体1的每次写入操作只执行一个固定的分支。
5.在程序中编译一个通用的方法,用于读取日志。
6.配置并行执行体2,用于对日志文件进行并行操作。并行执行体的“方法或执行体引用”部分配置为对步骤1的方法的引用,传入参数与步骤1中的参数一致。
7.并行执行体2中的日志文件名参数以映射方式配置,映射公式为F(X)=Log|MMDD,MM为月,DD为日。
8.并行执行体2为读取类型,并声明为联合方式,以适应从各个分支联合查询数据的需求。
假设应用系统需要访问两个数据库,这两个数据库数据完全一样,一个用来备份,一个用来做正常业务访问;两个数据库只有地址不一样。
开发者可按照如下步骤开发和配置:
1.在引擎脚本中先配置两个执行体,分别返回两个数据库的地址,现假设这两个执行体名称为DB0001和DB0002;
2.在程序中编译一个通用的方法,用于对两个数据库进行读取操作,该方法的参数应包含数据库地址。
3.配置并行执行体1,用于对两个数据库进行并行读取操作。并行执行体的“方法或执行体引用”部分配置为对步骤2的方法的引用,传入参数与步骤2中的参数一致。
4.并行规则体1中的数据库地址参数被配置为对执行体DB000X的引用,所引用的执行体名称是由映射F(X)=DB|000X得来的(如步骤1)。
5.并行执行体1选择为读取类型,声明为选择方式,以适应从备份中读一个分支数据的需求。
6.在程序中编译一个通用的方法,用于对两个数据库进行写入操作,该方法的参数应包含数据库地址。
7.配置并行执行体2,用于对两个数据库进行并行写入操作。并行执行体的“方法或执行体引用”部分配置为对步骤2的方法的引用,传入参数与步骤6中的参数一致。
8.并行规则体2中的数据库地址参数被配置为对执行体DB000X的引用,所引用的执行体名称是由映射F(X)=DB|000X得来的(如步骤1)。
9.并行执行体2选择为写入类型,声明为同时方式,以适应从备份中读一个分支数据的需求。
抢票系统分别从不同公司买票,假设N家公司,每家公司系统购票接口参数格式和返回数据都一样(或者可以转换成一样的),只是具体的实现方法不一样,抢票系统需要获得购到的第一张票,如果抢到一张票以后,其余的票都撤单丢弃。
开发者可按照如下步骤开发和配置:
1.在规则引擎脚本中先配置N个执行体,参数为各家公司系统的接口参数,实现方法分别为各家公司系统的实现方法,执行体名称为ZXT1到ZXTN。
2.配置并行执行体,用于对这N家公司的并行购票操作。由于这N家公司的参数格式都是一致的,因此,并行执行体的参数同步骤1的参数一样。
3.并行执行体的“方法或执行体引用”部分配置为对N个执行体的引用。引用的执行体名称由映射F(X)=ZXT|N得来(见步骤1)。
4.并行执行体选择规则声明为竞争读取方式,以适应从各个分支竞争查询,从而最快获得票的需求。

Claims (2)

1.并行业务规则引擎多个分支的解决方法,规则引擎是指用一段易懂的代码表示业务过程中的规则,它不需要经过编译,在程序运行期被读取、执行,其特征在于,并行业务规则引擎根据业务的需要,并行地获得所有分支,并对分支中的数据进行有选择的操作;
有选择的操作方式包括数据读取和数据写入;数据读取包括联合读取、选择读取和竞争读取:联合读取就是从一系列分支中读取数据,最后拼装成结果集;选择读取就是假设各个分支数据是一样的,执行体从分支中选择一个分支读取结果集;竞争读取就是假设各个分支数据是一样的,执行体从各个分支读取,但是只取最快的那份,其余的丢弃;数据写入包括联合写入和同时写入:联合写入就是将数据按照规则拆散放到各个分支中,每个分支得到的是不完整的数据,但是所有分支数据的总和是完整数据;同时写入就是将数据不拆散,完整的保存到各个分支中;
并行计算即并行操作,并行计算指,由于数据分布在不同的逻辑地址,需要通过相同或不同的子程序模块去分别操作,这些不同的子程序或者不同的逻辑地址的组合称为分支,对数据的一次操作,需要从一个或多个可能的分支去选择,操作在空间上是并行的,因此称为并行计算;
并行业务规则引擎通过变量映射的方式查找和生成不同的分支,有别于传统的通过条件判断语句或条件触发语句查找和生成分支的方式;映射规则如下,设有i个变量,{Xi}为这些变量的集合,分支地址或名称为{Y},那么找出一个{Y}=F({Xi})的映射,通过计算映射将{Xi}映射到F({Xi});
并行执行体作为工作流引擎的一个执行节点;工作流引擎的上一个节点或该段工作流引擎的调用者传入相应的参数,并调用该执行节点;该执行节点映射各个分支,然后返回最终结果给下一个节点;如果这是引擎的最后一个节点,那就返回给工作流引擎的调用者;
工作流引擎(workflow engine)使用易懂的形式表示一系列前后相续相连的步骤之间的关系。
2.根据权利要求1所述的并行业务规则引擎多个分支的解决方法,其特征在于,并行业务规则引擎的特征适用于工作流引擎,使得工作流引擎满足各种并行计算场景;工作流(workflow)指一系列前后相续相连的步骤;工作流引擎框架读取和解释这些步骤,使用时,应用程序通过工作流引擎接口调用执行相应的工作流步骤,并得到结果;工作流引擎分离了工作流程和具体的程序编程。
CN201710446844.2A 2013-03-07 2013-03-07 并行业务规则引擎分支无限性解决方法 Active CN107291464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710446844.2A CN107291464B (zh) 2013-03-07 2013-03-07 并行业务规则引擎分支无限性解决方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310073436.9A CN103116498B (zh) 2013-03-07 2013-03-07 并行业务规则引擎及其实现方法
CN201710446844.2A CN107291464B (zh) 2013-03-07 2013-03-07 并行业务规则引擎分支无限性解决方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201310073436.9A Division CN103116498B (zh) 2013-03-07 2013-03-07 并行业务规则引擎及其实现方法

Publications (2)

Publication Number Publication Date
CN107291464A CN107291464A (zh) 2017-10-24
CN107291464B true CN107291464B (zh) 2020-10-27

Family

ID=48414884

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710446844.2A Active CN107291464B (zh) 2013-03-07 2013-03-07 并行业务规则引擎分支无限性解决方法
CN201310073436.9A Active CN103116498B (zh) 2013-03-07 2013-03-07 并行业务规则引擎及其实现方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201310073436.9A Active CN103116498B (zh) 2013-03-07 2013-03-07 并行业务规则引擎及其实现方法

Country Status (2)

Country Link
CN (2) CN107291464B (zh)
WO (1) WO2014134757A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291464B (zh) * 2013-03-07 2020-10-27 环球雅途集团有限公司 并行业务规则引擎分支无限性解决方法
WO2014154016A1 (zh) * 2013-03-29 2014-10-02 深圳市并行科技有限公司 并行数据库管理系统及设计方案
CN104239008B (zh) * 2013-06-07 2017-09-29 深圳市并行科技有限公司 并行数据库管理系统及设计方案
CN115185616B (zh) * 2022-09-14 2022-12-13 深圳依时货拉拉科技有限公司 业务规则引擎装置及业务规则引擎的处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116498B (zh) * 2013-03-07 2017-06-20 徐国庆 并行业务规则引擎及其实现方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021540A1 (en) * 2003-03-26 2005-01-27 Microsoft Corporation System and method for a rules based engine
US7539974B2 (en) * 2003-10-24 2009-05-26 Microsoft Corporation Scalable synchronous and asynchronous processing of monitoring rules
GB2419974A (en) * 2004-11-09 2006-05-10 Finsoft Ltd Calculating the quality of a data record
US20060253421A1 (en) * 2005-05-06 2006-11-09 Fang Chen Method and product for searching title metadata based on user preferences
CN101110022A (zh) * 2007-08-30 2008-01-23 济南卓信智能科技有限公司 一种工作流模型的软件实现方法
CN101571810B (zh) * 2009-05-31 2011-09-14 清华大学 执行程序的方法、验证程序结果的方法、装置及系统
CN101609531A (zh) * 2009-07-29 2009-12-23 金蝶软件(中国)有限公司 一种企业资源计划系统中的数据处理方法及装置
CN102360291B (zh) * 2011-10-07 2013-11-13 云南爱迪科技有限公司 面向服务的基于业务规则引擎的业务规则设计方法
CN102509171B (zh) * 2011-10-24 2014-11-12 浙江大学 一种面向规则执行日志的流程挖掘方法
CN102542414B (zh) * 2011-12-28 2016-03-30 焦点科技股份有限公司 一种基于规则引擎的业务流程与业务数据处理的松耦合方法及系统
CN102722355A (zh) * 2012-06-04 2012-10-10 南京中兴软创科技股份有限公司 基于工作流机制的并发式etl转换方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116498B (zh) * 2013-03-07 2017-06-20 徐国庆 并行业务规则引擎及其实现方法

Also Published As

Publication number Publication date
CN103116498A (zh) 2013-05-22
CN103116498B (zh) 2017-06-20
CN107291464A (zh) 2017-10-24
WO2014134757A1 (zh) 2014-09-12

Similar Documents

Publication Publication Date Title
KR102041168B1 (ko) Union 유형 연산을 포함하는 쿼리 처리
JP5922805B2 (ja) 進化的な分析のためのシステム
CN107291464B (zh) 并行业务规则引擎分支无限性解决方法
EP1430423A1 (en) Database management system
Thakkar et al. Composing, optimizing, and executing plans for bioinformatics web services
US20160239544A1 (en) Collaborative planning for accelerating analytic queries
US10360002B2 (en) Method, apparatus, and computer-readable medium for generating an alternative implementation of a program on one or more engines
JP2018510445A (ja) プログラム性能を向上させる領域特化システムおよび方法
van der Werf et al. Data and process resonance: identifier soundness for models of information systems
Zou et al. Lachesis: automatic partitioning for UDF-centric analytics
Kocsis et al. Automatic improvement of Apache Spark queries using semantics-preserving program reduction
Fodor et al. Tabling for transaction logic
Shmeis et al. A rewrite-based optimizer for spark
CN110851178B (zh) 一种基于分布式图可达计算的过程间程序静态分析方法
Oliveira et al. A tactic language for refinement of state-rich concurrent specifications
RU2691860C1 (ru) Способ распараллеливания программ в среде логического программирования в вычислительной системе
Jamadagni et al. GoDB: From batch processing to distributed querying over property graphs
RU2745018C1 (ru) Способ распараллеливания интеллектуального анализа данных в вычислительной среде
CN116610714B (zh) 一种数据查询方法、装置、计算机设备及存储介质
RU2813571C1 (ru) Способ распараллеливания программ в многопроцессорной вычислительной машине
Chen et al. Automatic parallelization of XQuery programs on multi-core systems
Beckert et al. Proving equivalence between imperative and mapreduce implementations using program transformations
RU2685018C1 (ru) Способ распараллеливания программ в вычислительной системе
Benhamed et al. Classification of knowledge processing by MapReduce
Nyström Engineering information integration and application development using object-oriented mediator databases

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180925

Address after: 518000 Guangdong, Shenzhen, Nanshan District, Guangdong Province, nine new 10 South Road, No. nine Shenzhen Bay science and Technology Park 10 B block 17 level No.

Applicant after: Global elegant Road Group Co., Ltd.

Address before: 330000 Chaoyang Tiancheng 6 Building 1 unit 403, Xihu District Zi Yu Road, Nanchang, Jiangxi, 1188

Applicant before: Xu Guoqing

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518000 Guangdong, Shenzhen, Nanshan District, Guangdong Province, nine new 10 South Road, No. nine Shenzhen Bay science and Technology Park 10 B block 17 level No.

Patentee after: Global Digital Group Co.,Ltd.

Address before: 518000 Guangdong, Shenzhen, Nanshan District, Guangdong Province, nine new 10 South Road, No. nine Shenzhen Bay science and Technology Park 10 B block 17 level No.

Patentee before: GLOBALTOUR Group Ltd.