CN111199386A - 一种工作流引擎及其实现方法 - Google Patents
一种工作流引擎及其实现方法 Download PDFInfo
- Publication number
- CN111199386A CN111199386A CN201911378551.0A CN201911378551A CN111199386A CN 111199386 A CN111199386 A CN 111199386A CN 201911378551 A CN201911378551 A CN 201911378551A CN 111199386 A CN111199386 A CN 111199386A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- split
- different
- same
- 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 92
- 230000008569 process Effects 0.000 claims abstract description 58
- 238000000638 solvent extraction Methods 0.000 claims abstract description 19
- 230000011218 segmentation Effects 0.000 claims abstract description 12
- 238000001914 filtration Methods 0.000 claims description 19
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种工作流引擎及其实现方法,所述方法包括:接收业务系统的访问请求消息;根据所述访问请求消息调用工作流,以获取和处理流程数据;根据不同的切分策略将所述流程数据水平切分为不同的分库数据;将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。从而减小工作流引擎在高并发、大数据场景给数据库带来的压力。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种工作流引擎及其实现方法。
背景技术
工作流就是按照某种预先设置的流程在多个参与者之间传递文档、信息或任务的过程。实现工作流的核心,就是工作流引擎,或称为流程引擎,它为流程的定义和解释、信息传递的方式和路径、角色的分工和条件等提供实现。工作流节点,是流程中的一个步骤或环节,一般与应用系统中的一项应用相对应,通过工作流引擎可以将一个或多个工作流节点连接起来形成工作流。
在现有技术中,商用的工作流引擎产品大部分采用独立式的应用模式,独立式是指工作流引擎独立地部署在进程或服务器上,需要通过远程调用的方式进行工作流节点和工作流引擎的交互。工作流引擎在Web应用的场景下,工作流引擎需要部署在Web服务器端,这种独立式工作流引擎的实现方式需要较大的网络通信开销,工作流的执行过程需要部署在Web服务器端的工作流引擎远程与运行在客户端上的工作流节点交互,带宽成本较高、网络延时较长,另外服务器负载压力较大。
发明内容
为此,本申请实施例提供一种工作流引擎及其实现方法,减小工作流引擎在高并发、大数据场景给数据库带来的压力。
为了实现上述目的,本申请实施例提供如下技术方案:
根据本申请实施例的第一方面,提供了一种工作流引擎实现方法,所述方法包括:
接收业务系统的访问请求消息;
根据所述访问请求消息调用工作流,以获取和处理流程数据;
根据不同的切分策略将所述流程数据水平切分为不同的分库数据;
将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。
可选地,所述不同的切分策略包括按地区拆分、哈希拆分和时间拆分;
所述按地区拆分是将同一地区的数据归到同一个数据库节点中;
所述哈希拆分是对流程实例ID进行哈希运算并按数据库节点数N取模,将运算结果相同的流程实例ID归到同一个数据库节点中,N为大于1的整数;
所述时间拆分是对流程数据按照自然月进行拆分,将流程发起时间在相同自然月的数据归到同一个数据库节点中。
可选地,所述流程数据包括执行SQL语句;所述分库数据为分库SQL语句。
可选地,所述按地区拆分是在所述执行SQL语句的插入内容中添加地区编号字段,以及所述执行SQL语句过滤条件中增加地区编号;所述哈希拆分的所述执行SQL语句的过滤条件是取模后的值;所述时间拆分的所述执行SQL语句的过滤条件是自然月月份。
可选地,所述数据库代理层是基于MyCat开源中间件创建。
根据本申请实施例的第二方面,提供了一种工作流引擎,包括:
消息接收模块,用于接收业务系统的访问请求消息;
工作流调用模块,用于根据所述访问请求消息调用工作流,以获取和处理流程数据;
水平切分模块,用于根据不同的切分策略将所述流程数据水平切分为不同的分库数据;
数据发送模块,用于将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。
可选地,所述不同的切分策略包括按地区拆分、哈希拆分和时间拆分;
所述按地区拆分是将同一地区的数据归到同一个数据库节点中;
所述哈希拆分是对流程实例ID进行哈希运算并按数据库节点数N取模,将运算结果相同的流程实例ID归到同一个数据库节点中,N为大于1的整数;
所述时间拆分是对流程数据按照自然月进行拆分,将流程发起时间在相同自然月的数据归到同一个数据库节点中。
可选地,所述流程数据包括执行SQL语句;所述分库数据为分库SQL语句。
可选地,所述按地区拆分是在所述执行SQL语句的插入内容中添加地区编号字段,以及所述执行SQL语句过滤条件中增加地区编号;所述哈希拆分的所述执行SQL语句的过滤条件是取模后的值;所述时间拆分的所述执行SQL语句的过滤条件是自然月月份。
可选地,所述数据库代理层是基于MyCat开源中间件创建。
综上所述,本申请实施例提供的工作流引擎及其实现方法,通过接收业务系统的访问请求消息;根据所述访问请求消息调用工作流,以获取和处理流程数据;根据不同的切分策略将所述流程数据水平切分为不同的分库数据;将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。从而减小工作流引擎在高并发、大数据场景给数据库带来的压力。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本申请实施例提供的一种工作流引擎实现方法流程示意图;
图2为本申请实施例提供的一种工作流引擎实现方法实施例示意图;
图3为本申请实施例提供的一种工作流引擎结构框图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各领域使用的业务系统一般会有审批流程,例如请假审批流程、财务报销审批流程等。目前,业务系统的审批流程,大多都是对业务系统的底层工作流引擎进行二次开发实现的。工作流引擎因需要支撑各种不同的业务流程,为了功能更加具有通用性,其设计变得越来越复杂,在二次开发过程中,业务系统开发人员需要花费时间成本去学习、熟悉业务系统的工作流引擎,会花费大量的工作量,效率极低。
开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织)结构的变动和由于业务方向的变化(产生的全新业务逻辑)等等。工作流引擎解决的就是这个问题,如果应用程序缺乏强大的逻辑层,不仅程序变得容易出错(信息的路由错误、死循环等等),而且系统的维护升级将会十分复杂。
工作流引擎自身不能实现完整的业务应用,必须集成在信息系统中,通过信息系统完成具体的业务功能。因此工作流引擎最重要的性能指标就是与应用系统的可集成性,否则再好的工作流引擎也无法在实际系统中体现其作用。而现实中的应用系统又是复杂多样的,有基于C/S架构的两层系统,也有B/S/S架构的多层系统,业务逻辑由主要在中间服务层实现的,也有在数据库层进行大量的业务逻辑处理,这些都对工作流引擎提出了不同的集成性需求,因此无法通过单一工作流设计就能满足所有的应用类型,特别是针对数据库层有大量业务逻辑处理的应用系统,目前流行的工作流引擎都无法提供很适合的集成性,而通过数据库层实现工作流引擎的设计,则能很好地进行相应的集成。
Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准。Activiti是一种轻量级,可嵌入的BPM引擎,而且还设计适用于可扩展的云架构。Activiti将提供宽松的Apache许可2.0,同时促进Activiti BPM引擎和BPMN 2.0的匹配。Activiti应用场景:多人协作的(或者需要动态变动)的业务流程场景。
Activiti开源工作流引擎数据库层不具备水平扩展能力,且单节点数据库成为系统高性能的瓶颈。随着并发压力的增加,通过扩展服务无法解决数据层面的压力,且随着运行时间推移,未结束的流程数据逐渐积累,无法清理。目前工作流产品或原形系统采用的实现技术都无法达到关系数据库管理系统的水平。同时由于工作流采用单独的数据库会话,常常造成工作流和业务系统数据不一致的关键问题。
综上,现有技术中针对高并发、大数据量的审批流的解决方案为1、水平拓展工作流引擎的服务数量,增加并发能力;2、定期迁移审批完成的流程的数据,减少数据积压;3、硬件层面增加数据库服务的配置,提升系统性能;4、优化业务代码,降低数据库访问次数。
本申请提供一种工作流引擎实现方法,可以减小工作流引擎在高并发、大数据场景给数据库带来的压力。如图1所示,所述方法包括:
步骤101:接收业务系统的访问请求消息。
步骤102:根据所述访问请求消息调用工作流,以获取和处理流程数据。
步骤103:根据不同的切分策略将所述流程数据水平切分为不同的分库数据。
步骤104:将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。
在一种可能的实施方式中,所述不同的切分策略包括但不限于按地区拆分、哈希拆分和时间拆分;其中,所述按地区拆分是将同一地区的数据归到同一个数据库节点中;所述哈希拆分是对流程实例ID进行哈希运算并按数据库节点数N取模,将运算结果相同的流程实例ID归到同一个数据库节点中,N为大于1的整数;计算公式如下:数据库节点编号=Hash(流程实例ID)%N。所述时间拆分是对流程数据按照自然月进行拆分,将流程发起时间在相同自然月的数据归到同一个数据库节点中。
在一种可能的实施方式中,所述流程数据包括执行SQL语句;所述分库数据为分库SQL语句。
在一种可能的实施方式中,所述按地区拆分是在所述执行SQL语句的插入内容中添加地区编号字段,以及所述执行SQL语句过滤条件中增加地区编号;所述哈希拆分的所述执行SQL语句的过滤条件是取模后的值;所述时间拆分的所述执行SQL语句的过滤条件是自然月月份。
在一种可能的实施方式中,所述数据库代理层是基于MyCat开源中间件创建。
图2示出了本申请实施例提供的工作流引擎的实现方法实施例示意图,如图2所示,业务系统发送访问服务请求消息至工作流引擎;工作流引擎根据所述访问服务请求消息调用activiti工作流,通过水平切分工作流引擎的表包括运行时表、历史表,根据分库策略将维度相同的数据放到同一个数据节点中。通过分库策略适配层获取到执行的SQL语句,根据不同的切分策略生成具体的分库SQL语句,所述切分策略可以包括按省拆分、Hash拆分、时间拆分。
其中按省拆分实将同一个省的数据放到同一个数据库节点中:insert SQL语句在插入内容中添加省份编号字段,update、select、delete SQL语句的过滤条件添加省号一项;Hash拆分是对流程实例id进行Hash运算并按数据库节点数N取模,将运算结果相同的流程数据放到同一个数据库中:对流程实例id进行hash取模,将取模后的值作为update、select、delete、insert SQL语句的过滤条件;时间拆分是对流程数据按自然月进行拆分,把流程发起时间在同一个月份的数据放到同一个数据节点中:对流程发起时间按自然月进行划分,对SQL语句加上时间作为过滤条件。
在具体实施中,对本申请实施例提供的工作流引擎实现方法进行举例:为工作流引擎数据库实施按省分片策略,分析某行的业务流程有下面特点:A.流程数据具有区域隔离的特性,区域以省为单位;B.绝大多数的流程数据都能在省内的机构完成审批;C.流程不会出现跨省审批;D.少量流程需要上报总行机构审批。
根据以上的业务特点,我们采用了按省水平拆分数据的策略。首先需要根据业务发展情况推算出每个省的流程数据量,根据每个库的数据限额,精准的将各省的数据分布到每个数据节点中。数据库节点的取值范围为1-34,数据水平分库的原则,热点数据的省份尽量放到一个数据节点,数据量大的省份和数据量小的省份在搭配存储在一个库里中。
综上所述,本申请实施例提供的工作流引擎实现方法,通过接收业务系统的访问请求消息;根据所述访问请求消息调用工作流,以获取和处理流程数据;根据不同的切分策略将所述流程数据水平切分为不同的分库数据;将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。从而减小工作流引擎在高并发、大数据场景给数据库带来的压力。将数据库的压力水平分布到多个数据节点上,无需做历史数据迁移,降低了系统压力。并且数据库层可以水平拓展,增加了系统的扩展能力。
基于相同的技术构思,如图3所示,本申请实施例提供的一种工作流引擎,如图3所示,包括:
消息接收模块301,用于接收业务系统的访问请求消息。
工作流调用模块302,用于根据所述访问请求消息调用工作流,以获取和处理流程数据。
水平切分模块303,用于根据不同的切分策略将所述流程数据水平切分为不同的分库数据。
数据发送模块304,用于将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。
在一种可能的实施方式中,所述不同的切分策略包括按地区拆分、哈希拆分和时间拆分;所述按地区拆分是将同一地区的数据归到同一个数据库节点中;所述哈希拆分是对流程实例ID进行哈希运算并按数据库节点数N取模,将运算结果相同的流程实例ID归到同一个数据库节点中,N为大于1的整数;所述时间拆分是对流程数据按照自然月进行拆分,将流程发起时间在相同自然月的数据归到同一个数据库节点中。
在一种可能的实施方式中,所述流程数据包括执行SQL语句;所述分库数据为分库SQL语句。
在一种可能的实施方式中,所述按地区拆分是在所述执行SQL语句的插入内容中添加地区编号字段,以及所述执行SQL语句过滤条件中增加地区编号;所述哈希拆分的所述执行SQL语句的过滤条件是取模后的值;所述时间拆分的所述执行SQL语句的过滤条件是自然月月份。
在一种可能的实施方式中,所述数据库代理层是基于MyCat开源中间件创建。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种工作流引擎实现方法,其特征在于,所述方法包括:
接收业务系统的访问请求消息;
根据所述访问请求消息调用工作流,以获取和处理流程数据;
根据不同的切分策略将所述流程数据水平切分为不同的分库数据;
将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。
2.如权利要求1所述的方法,其特征在于,所述不同的切分策略包括按地区拆分、哈希拆分和时间拆分;
所述按地区拆分是将同一地区的数据归到同一个数据库节点中;
所述哈希拆分是对流程实例ID进行哈希运算并按数据库节点数N取模,将运算结果相同的流程实例ID归到同一个数据库节点中,N为大于1的整数;
所述时间拆分是对流程数据按照自然月进行拆分,将流程发起时间在相同自然月的数据归到同一个数据库节点中。
3.如权利要求1所述的方法,其特征在于,所述流程数据包括执行SQL语句;所述分库数据为分库SQL语句。
4.如权利要求2至3任一项所述的方法,其特征在于,所述按地区拆分是在所述执行SQL语句的插入内容中添加地区编号字段,以及所述执行SQL语句过滤条件中增加地区编号;
所述哈希拆分的所述执行SQL语句的过滤条件是取模后的值;
所述时间拆分的所述执行SQL语句的过滤条件是自然月月份。
5.如权利要求1所述的方法,其特征在于,所述数据库代理层是基于MyCat开源中间件创建。
6.一种工作流引擎,其特征在于,所述工作流引擎包括:
消息接收模块,用于接收业务系统的访问请求消息;
工作流调用模块,用于根据所述访问请求消息调用工作流,以获取和处理流程数据;
水平切分模块,用于根据不同的切分策略将所述流程数据水平切分为不同的分库数据;
数据发送模块,用于将所述不同的分库数据发送到数据库代理层,以使得所述数据库代理层将所述不同的分库数据转发到不同的数据库节点中执行。
7.如权利要求6所述的工作流引擎,其特征在于,所述不同的切分策略包括按地区拆分、哈希拆分和时间拆分;
所述按地区拆分是将同一地区的数据归到同一个数据库节点中;
所述哈希拆分是对流程实例ID进行哈希运算并按数据库节点数N取模,将运算结果相同的流程实例ID归到同一个数据库节点中,N为大于1的整数;
所述时间拆分是对流程数据按照自然月进行拆分,将流程发起时间在相同自然月的数据归到同一个数据库节点中。
8.如权利要求6所述的工作流引擎,其特征在于,所述流程数据包括执行SQL语句;所述分库数据为分库SQL语句。
9.如权利要求7至8任一项所述的工作流引擎,其特征在于,所述按地区拆分是在所述执行SQL语句的插入内容中添加地区编号字段,以及所述执行SQL语句过滤条件中增加地区编号;
所述哈希拆分的所述执行SQL语句的过滤条件是取模后的值;
所述时间拆分的所述执行SQL语句的过滤条件是自然月月份。
10.如权利要求6所述的工作流引擎,其特征在于,所述数据库代理层是基于MyCat开源中间件创建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911378551.0A CN111199386A (zh) | 2019-12-27 | 2019-12-27 | 一种工作流引擎及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911378551.0A CN111199386A (zh) | 2019-12-27 | 2019-12-27 | 一种工作流引擎及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111199386A true CN111199386A (zh) | 2020-05-26 |
Family
ID=70747179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911378551.0A Pending CN111199386A (zh) | 2019-12-27 | 2019-12-27 | 一种工作流引擎及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111199386A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114238703A (zh) * | 2021-12-31 | 2022-03-25 | 城云科技(中国)有限公司 | 事件流程编排方法、装置及应用 |
CN114462900A (zh) * | 2022-04-13 | 2022-05-10 | 云智慧(北京)科技有限公司 | 一种业务活动节点的拆分方法、装置及设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008059369A (ja) * | 2006-08-31 | 2008-03-13 | Ricoh Co Ltd | ワークフロー管理システム、ワークフロー管理方法、ワークフロー管理プログラムおよび記録媒体 |
CN102053982A (zh) * | 2009-11-02 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种数据库信息管理方法和设备 |
CN102136004A (zh) * | 2011-03-30 | 2011-07-27 | 信雅达系统工程股份有限公司 | 工作流系统中业务的获取方法 |
CN103064876A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 面向地理信息应用的空间数据服务化获取方法 |
CN105930387A (zh) * | 2016-04-14 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种基于数据路由、分库分表的数据操作系统及方法 |
CN106886568A (zh) * | 2017-01-12 | 2017-06-23 | 掌阅科技股份有限公司 | 一种分表方法、装置及电子设备 |
CN107085570A (zh) * | 2016-02-14 | 2017-08-22 | 华为技术有限公司 | 数据处理方法、应用服务器和路由器 |
CN107229688A (zh) * | 2017-05-12 | 2017-10-03 | 上海前隆金融信息服务有限公司 | 一种数据库水平分库分表方法及系统、服务器 |
CN108153849A (zh) * | 2017-12-20 | 2018-06-12 | 杭州登虹科技有限公司 | 一种数据库表切分方法、装置、系统和介质 |
CN108170824A (zh) * | 2018-01-05 | 2018-06-15 | 马上消费金融股份有限公司 | 一种基于sql的数据存储方法、装置、设备及存储介质 |
-
2019
- 2019-12-27 CN CN201911378551.0A patent/CN111199386A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008059369A (ja) * | 2006-08-31 | 2008-03-13 | Ricoh Co Ltd | ワークフロー管理システム、ワークフロー管理方法、ワークフロー管理プログラムおよび記録媒体 |
CN102053982A (zh) * | 2009-11-02 | 2011-05-11 | 阿里巴巴集团控股有限公司 | 一种数据库信息管理方法和设备 |
CN102136004A (zh) * | 2011-03-30 | 2011-07-27 | 信雅达系统工程股份有限公司 | 工作流系统中业务的获取方法 |
CN103064876A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 面向地理信息应用的空间数据服务化获取方法 |
CN107085570A (zh) * | 2016-02-14 | 2017-08-22 | 华为技术有限公司 | 数据处理方法、应用服务器和路由器 |
CN105930387A (zh) * | 2016-04-14 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种基于数据路由、分库分表的数据操作系统及方法 |
CN106886568A (zh) * | 2017-01-12 | 2017-06-23 | 掌阅科技股份有限公司 | 一种分表方法、装置及电子设备 |
CN107229688A (zh) * | 2017-05-12 | 2017-10-03 | 上海前隆金融信息服务有限公司 | 一种数据库水平分库分表方法及系统、服务器 |
CN108153849A (zh) * | 2017-12-20 | 2018-06-12 | 杭州登虹科技有限公司 | 一种数据库表切分方法、装置、系统和介质 |
CN108170824A (zh) * | 2018-01-05 | 2018-06-15 | 马上消费金融股份有限公司 | 一种基于sql的数据存储方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114238703A (zh) * | 2021-12-31 | 2022-03-25 | 城云科技(中国)有限公司 | 事件流程编排方法、装置及应用 |
CN114462900A (zh) * | 2022-04-13 | 2022-05-10 | 云智慧(北京)科技有限公司 | 一种业务活动节点的拆分方法、装置及设备 |
CN114462900B (zh) * | 2022-04-13 | 2022-07-29 | 云智慧(北京)科技有限公司 | 一种业务活动节点的拆分方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111178782B (zh) | 一种流程工业数据化运营平台的微服务架构 | |
US9336288B2 (en) | Workflow controller compatibility | |
US9729615B2 (en) | System and method for collaborative designing, development, deployment, execution, monitoring and maintenance of enterprise applications | |
CN100594498C (zh) | 海量数据实时处理架构及用于该架构的实时随需处理平台 | |
WO2020228063A1 (zh) | 一种开发业务功能的方法和装置 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN112506498A (zh) | 一种智慧型可视化api编排方法、存储介质及电子设备 | |
CN110019251A (zh) | 一种数据处理系统、方法及设备 | |
Martin et al. | A novel approach to decentralized workflow enactment | |
US20130013549A1 (en) | Hardware-assisted approach for local triangle counting in graphs | |
US20210075693A1 (en) | Enterprise control plane for data streaming service | |
CN111694555A (zh) | 业务系统构建方法、装置、电子设备及存储介质 | |
CN102937964B (zh) | 基于分布式系统的智能数据服务方法 | |
JP2007148469A (ja) | ビジネスプロセス定義を用いた事前リソース割り当て方法 | |
US20150081744A1 (en) | Metadata model repository | |
CN114691658A (zh) | 一种数据回溯方法、装置、电子设备及存储介质 | |
Nabi | Pro Spark Streaming: The Zen of Real-Time Analytics Using Apache Spark | |
CN111199386A (zh) | 一种工作流引擎及其实现方法 | |
Zhang et al. | Modeling of the resilient supply chain system from a perspective of production design changes | |
Theeten et al. | Chive: Bandwidth optimized continuous querying in distributed clouds | |
CN111241455B (zh) | 数据处理装置、计算机设备及存储介质 | |
Wu et al. | Design and implementation of business-driven BI platform based on cloud computing | |
Tseng et al. | A successful application of big data storage techniques implemented to criminal investigation for telecom | |
CN116991562A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20230229461A1 (en) | Correlation engine and policy manager (cpe), method and computer program product |
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: 20200526 |
|
RJ01 | Rejection of invention patent application after publication |