一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种业务流程图并发执行方法、装置、设备及介质与流程

2022-08-11 08:16:28 来源:中国专利 TAG:


1.本发明涉及业务流程图技术领域,具体为一种业务流程图并发执行方法、装置、设备及介质。


背景技术:

2.业务流程图(tfd)是一种描述管理系统内各单位、人员之间的业务关系,作业顺序和管理信息流向的图表。它用一些规定的符号及连线表示某个具体业务的处理过程,帮助分析人员找出业务流程中的不合理流向。而bpel是business process execution language的缩写,意为业务过程执行语言,是一种基于xml的,用来描写业务流程图的编程语言,被描写的业务过程的每个单一步骤则由web服务来实现。bpel定义了基本活动和结构活动。各个活动的定义仍然是传统底层语言的设计思维,例如有赋值、判断、循环等。底层程序设计思维的活动定义,令使用者更多的需要关注程序的处理逻辑,而不是流程图本身需要解决的业务逻辑。且基础的bpel执行引擎,使用的是单引擎控制执行,现在无论是客户端的电脑还是服务器,系统资源都比较多,基础的bpel执行引擎无法充分利用好丰富的计算机资源。


技术实现要素:

3.本发明的目的在于提供一种业务流程图并发执行方法、装置、设备及介质,以解决现有的bpel语言不偏向业务逻辑,较为复杂,且无法实现多并发执行的问题。
4.为实现上述目的,本发明提供如下技术方案:一种业务流程图并发执行方法,至少包括:
5.将业务流程图语言简化为节点和路径,并对节点和路径重新定义;
6.其中,所述节点至少包括bpel中的基础活动和结构活动,并去掉结构活动中的判断跳转,将判断跳转使用表达式路径替代;
7.将业务流程图中节点和路径以及执行顺序构成的分支,分解为子流程,并将其通过不同线程进行并发执行;
8.其中,所述子流程在执行过程中,至少包括向上递归回溯判断线状态和向下递归清理环境变量;
9.所述向上递归回溯判断线状态,具体为线程执行流程的过程中,当遇到其中一个交汇节点时,需要回溯判断其他线状态,以确认该节点是否可以继续执行;
10.所述向下递归清理环境变量,具体为将业务流程图中被执行的节点向下的所有时序节点进行递归清理,使其保持未执行状态。
11.优选的,所述节点至少包含输入、执行、输出;
12.所述输入为当前节点需要从外部或时序依赖节点获取的输入数据;
13.所述执行为每个节点的功能有具体高级语言的可执行模块解析;
14.所述输出为当前节点执行完成之后,需要向其他节点或外部传递的参数。
15.优选的,所述路径包括线、循环线和循环路径;
16.所述线为两个节点间的触发关系;
17.所述循环线为节点遍历时,又到达之前已经遍历过的节点时所经过的线;
18.所述循环路径循环遍历到的有序的节点的集合。
19.优选的,所述将业务流程图语言简化为节点和路径,并对节点和路径重新定义,还包括:
20.建立时序依赖关系、参数依赖关系,以及回溯赋值依赖关系;
21.所述回溯赋值依赖关系为其中一个所述节点执行的结果,可以设置到其时序依赖线的其他所述节点的输出变量上。
22.优选的,所述参数依赖关系和回溯赋值依赖关系均需要通过至少两个所述节点之间先建立时序依赖关系才可以进行相互赋值。
23.优选的,所述将业务流程图中节点和路径以及执行顺序构成的分支,分解为子流程,并将其通过不同线程进行并发执行,还包括:
24.对线程状态进行判断。
25.优选的,所述对线程状态进行判断,包括:
26.当判断的是循环线,且循环线的目标节点未执行,则该循环线不参与节点是否可执行的回溯判断,默认做确认状态处理;
27.当判断为回溯的线,且源节点在循环路径上时,如果当前线的状态不是确认已达,则需要判断当前循环路径上的循环线状态,作为当前线的状态。
28.本发明还提供一种业务流程图并发执行装置,包括:
29.线程池模块,其用于将业务流程图语言简化为节点和路径,并对节点和路径重新定义,还用于将业务流程图中节点和路径以及执行顺序构成的分支,分解为子流程,并将其通过不同线程进行并发执行;
30.挂起等待节点模块,其用于当线程执行到流程交汇处,并出现时序依赖的等待时,将节点、挂起线程暂存起来,等待被唤醒;
31.节点环境变量模块,其用于在一个节点执行完成后,其输入和输出存储为环境变量,以供其他节点或线的表达式使用或输出;
32.线状态环境变量模块,其用于计算一条线根据表达式代入回溯节点环境变量的值的最终结果,还用于判断节点是否状态已确认,以及是否可执行。
33.本发明还提供一种电子计算设备,所述电子计算设备为实体设备,所述电子计算设备包括:
34.处理器、存储器,所述处理器、存储器与处理器进行通信连接;
35.所述存储器用于储存至少一个所述处理器执行的可执行指令,所述处理器用于执行所述可执行指令以实现如上述的业务流程图并发执行方法。
36.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述的业务流程图并发执行方法。
37.与现有技术相比,本发明的有益效果是:
38.1.本发明提出的业务流程图并发执行的方法,去掉了底层的程序思维,同时定义了严格的依赖规范,更偏向业务逻辑,且更简化,让用户更专注于业务,在使用该业务流程
图执行方法过程中,使用者只需要思考如何使用业务处理节点如何实现业务需求,而无需更深层次思考,提高操作效率;
39.2.通过流程图语言重新定义,并结合循环线、向上递归回溯判断线状态、向下递归清理环境变量,将其组合应用,实现可用于实际生产的多线程并发执行,支持循环、递归等复杂逻辑,以充分利用计算机资源,使流程图执行速度更快。
附图说明
40.图1为本发明实施例提供的一种业务流程图并发执行方法的主流程图;
41.图2为本发明实施例提供的一种业务流程图并发执行方法中线程分支与合并的示意流程图;
42.图3为本发明实施例提供的一种业务流程图并发执行方法中循环线的示意流程图;
43.图4为本发明实施例提供的一种业务流程图并发执行方法中循环路径的示意思维导图;
44.图5为本发明实施例提供的一种业务流程图并发执行方法中向上递归回溯判断线状态的步骤流程图;
45.图6为本发明实施例提供的一种业务流程图并发执行方法中向下递归清理环境变量的步骤流程图;
46.图7为本发明实施例提供的一种业务流程图并发执行方法的具体步骤流程图;
47.图8为本发明实施例提供的一种业务流程图并发执行装置的结构框图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.本实施方式的方法的执行主体为终端,所述终端可以为手机、平板电脑、掌上电脑pda、笔记本或台式机等设备,当然,还可以为其他具有相似功能的设备,本实施方式不加以限制。
50.实施例1
51.请参阅图1至7,本发明提供一种业务流程图并发执行方法,所述方法应用于执行业务流程图,方法至少包括:
52.步骤101,将业务流程图语言简化为节点和路径,并对节点和路径重新定义。
53.其中,所述节点至少包括bpel中的基础活动和结构活动,并去掉结构活动中的判断跳转,将判断跳转使用表达式路径替代。
54.具体的,所述节点包含输入、执行、输出;
55.所述输入为当前节点需要从外部或时序依赖节点获取的输入数据;
56.所述执行为每个节点的功能有具体高级语言的可执行模块解析,有通用的整数操作、字符串操作、列表操作等,也有不同高级语言特有的节点,例如:js的获取页面元素,
java的获取redis缓存,sql的查询表数据,python的键盘自动输入;不同的节点由不同的高级语言解析,以实现不同的业务功能,例如:js实现页面交互特效,java实现复杂业务逻辑,sql实现数据库增删改查,python实现界面自动化等;
57.所述输出为当前节点执行完成之后,需要向其他节点或外部传递的参数,所述输出可以被动被其他节点获取,也可以主动进行回溯赋值。
58.其中,所述路径包括线、循环线和循环路径。
59.具体的,所述线为两个节点间的触发关系,所述两个节点间的触发关系具体为某个节点执行完成后,并触发下一个节点的执行;
60.请参阅图3,所述循环线为节点遍历时,又到达之前已经遍历过的节点时所经过的线,从开始节点深度优先遍历流程图,在到达结束节点之前,当经过某条线后到达的节点已经在经过的节点列表中存在,则该路径称之为循环线,可以找到,图3的循环线是g-c。
61.可理解的,所述线为节点之间的有条件的关系,不仅仅局限为线这一个概念。
62.请参阅图4,所述循环路径为循环遍历到的有序的节点的集合,可以找到,图4中的c-f-g-c为循环路径。
63.其中,所述将业务流程图语言简化为节点和路径,并对节点和路径重新定义,还包括:
64.建立时序依赖关系、参数依赖关系,以及回溯赋值依赖关系;
65.所述时序依赖关系用于确保业务流程图的正确执行;所述参数依赖关系用于让业务流程图的设计更加简化;所述回溯赋值依赖关系为其中一个所述节点执行的结果,可以设置到其时序依赖线的其他所述节点的输出变量上。
66.具体的,定义流程图中节点的执行顺序,绝对依赖于流程图中的线状态,线状态未确认之前,后续依赖节点一定不执行,节点的参数输入,一定来自于根据线反向回溯的节点,不存在时序依赖关系的节点之间不能存在参数依赖,所以时序依赖关系包含了参数依赖关系。
67.根据时序依赖关系,并控制定义流程时的输入参数依赖关系和回溯赋值依赖关系,进而可以得出,相同节点分支出来的子流程绝对不存在参数依赖关系,所以流程图中只要是分支,即可看作为是独立的子流程。
68.需要说明的是,所述参数依赖关系和回溯赋值依赖关系均需要通过至少两个所述节点之间先建立时序依赖关系才可以进行相互赋值。
69.步骤102,将业务流程图中节点和路径以及执行顺序构成的分支,分解为子流程,并将其通过不同线程进行并发执行。
70.通过步骤101中对业务流程图语言的定义,已经能够明确不同分支之间不存在相互依赖关系,所以流程并行执行过程中的重点工作为:线程分支与合并控制,请参考图2,流程先起线程执行:开始—a,在a点,起2个线程,一个执行b—d,另一个执行c—e,当两个线程都执行到h后,再以一个线程执行h—结束。
71.并且所述子流程在执行过程中,至少包括向上递归回溯判断线状态和向下递归清理环境变量两种操作,其依赖循环线的正确判断。
72.其中,所述向上递归回溯判断线状态,具体为线程执行流程的过程中,当遇到其中一个交汇节点时,需要回溯判断其他线状态,以确认所述交汇节点是否可以继续执行;线状
态分为确定和不确定两种状态,确定状态又分为已达和不可达。只有所有指向当前节点的线状态都为确定的状态时,当前节点才可继续执行,如图2所示,如果节点e已经执行,且线e—h的表达式为true,则表示e—h是确定已达的。如果线e—h的表达式为false则表示其是确定不可达的;如果当前流程执行到e点,但还待执行,则表示e—h是不确定的。或流程还未到e,仅到了c,而c处在待执行状态,则表示e—h也是不确定状态。
73.需要说明的是,如图5所示,所述向上递归回溯判断线状态之前,还包括:对线程状态进行判断;当判断的是循环线,且循环线的目标节点未执行,则该循环线不参与节点是否可执行的回溯判断,默认做确认状态处理;当判断为回溯的线,且源节点在循环路径上时,如果当前线的状态不是确认已达,则需要判断当前循环路径上的循环线状态,作为当前线的状态。
74.其中,所述向下递归清理环境变量,具体为将业务流程图中被执行的节点向下的所有时序节点进行递归清理,使其保持未执行状态。
75.本发明提出的业务流程图并发执行的方法,去掉了底层的程序思维,同时定义了严格的依赖规范,更偏向业务逻辑,且更简化,让用户更专注于业务,在使用该业务流程图执行方法过程中,使用者只需要思考如何使用业务处理节点如何实现业务需求,而无需更深层次思考,提高操作效率;使得使用者遇到可以并行处理的工作时,只需要基于本发明的依赖规范,能够设计出业务流程图,这些分支就会并发执行,而不需要考虑是否需要新建多个子流程执行。
76.实施例2
77.为了更好的对上述实施例进行理解,如图5所示,本发明还提供了一种业务流程图并发执行方法中向上递归回溯判断线状态的步骤流程图,方法至少包括:
78.步骤201,开始流程(入参:线);
79.步骤202,判断是否循环线,且目标未执行,若是,则跳转执行步骤203,反之,则继续执行步骤204;
80.步骤203,返回确定,并跳转至步骤217;
81.步骤204,查找全局线状态;
82.步骤205,判断线状态是否存在,若存在,则继续执行步骤206,反之,则跳转执行步骤207;
83.步骤206,判断线状态是否已达,若不可达,则继续执行步骤208,反之则跳转执行步骤203;
84.步骤207,查询以当前线源节点为目标节点的线,并跳转至步骤211;
85.步骤208,判断线源节点是否在循环路径,若是,则继续执行步骤209,反之,则跳转至步骤203;
86.步骤209,找到循环路径的循环线;
87.步骤210,递归并返回循环线状态,并跳转至步骤217;
88.步骤211,默认循环结果确定状态;
89.步骤212,循环获取的线列表,若循环结束,则跳转至步骤203;
90.步骤213,递归调用本函数获取线状态;
91.步骤214,线状态是否确定,若确定,则跳转至步骤212,反之,则继续执行步骤215;
92.步骤215,只要有一个不确定,则直接结束循环;
93.步骤216,返回不确定,并跳转至步骤217;
94.步骤217,结束流程(出参:线状态)。
95.在本实施例中,当判断的是循环线,且循环线的目标节点未执行,则该循环线不参与节点是否可执行的回溯判断,默认做确认状态处理;当回溯判断的线,源节点在循环路径上时,如果当前线的状态不是确认已达,则需要判断当前循环路径上的循环线状态,作为当前线的状态。
96.因为循环过程可能对循环路径上的线进行多次赋予状态,因此,除非是确定已达状态,否则必须等循环结束,才能线确认状态是否不可达。
97.实施例3
98.为了更好的对上述实施例进行理解,如图6所示,本发明还提供了一种业务流程图并发执行方法中向下递归清理环境变量的步骤流程图,方法至少包括:
99.步骤301,开始流程(入参:节点);
100.步骤302,删除节点环境变量;
101.步骤303,查询以该节点为源的所有线;
102.步骤304,循环线列表;
103.步骤305,判断是否为循环线,若否,则继续执行步骤306,反之,则回到步骤304;
104.步骤306,查找全局线状态;
105.步骤307,判断是否存在,若存在,则继续执行步骤308,反之,则回到步骤304;
106.步骤308,判断是否已达,若已达,则继续执行步骤309,反之,则回到步骤304;
107.步骤309,删除线状态环境变量;
108.步骤310,递归本函数清理线目标节点;
109.步骤311,判断循环是否结束,若是,则继续执行步骤312,反之则回到步骤304;
110.步骤312,结束流程(出参:无)。
111.在本实施例中,由于流程图是严格的时序依赖,所以当某个节点确定即将被执行时,该节点向下的所有时序节点,一定保持未执行状态,一定不存在以该节点向下时序的所有节点的环境变量和以及线状态环境变量。向下递归清理环境变量,主要是避免循环过程的重复执行导致环境变量的污染。
112.实施例4
113.为了更好的对上述实施例进行理解,如图7所示,本发明还提供了一种业务流程图并发执行方法的具体步骤流程图,方法至少包括:
114.步骤401,开始流程;
115.步骤402,创建线程;
116.步骤403,加入线程池;
117.步骤404,执行节点业务操作;
118.步骤405,执行结果加入环境变量;
119.步骤406,计算节点为源的线状态;
120.步骤407,线状态加入环境变量;
121.步骤408,获取线状态为已达目标节点;
122.步骤409,判断节点个数,若等于1,则跳转执行步骤410;若大于1,则继续执行步骤411;若等于0,则跳转执行步骤421;
123.步骤410,回到至步骤404,并以当前线程继续执行下一节点;
124.步骤411,循环目标节点列表;
125.步骤412,获取节点;
126.步骤413,向下递归清理环境变量;
127.步骤414,判断是否交汇节点,若是,则继续执行步骤415,反之,则跳转至步骤416;
128.步骤415,向上递归回溯其他线状态;
129.步骤416,回到步骤401,并另起线程执行相同算法;
130.步骤417,判断是否所有线状态已确定,若否,则继续执行步骤418,反之,则跳转步骤419;
131.步骤418,挂起该节点;
132.步骤419,删除挂起状态,并跳转至步骤416;
133.步骤420,判断循环是否结束,若是,则继续执行步骤421,反之,则回到步骤411;
134.步骤421,结束流程。
135.在本实施例中,假设线程的个数是任意创建的,或者线程池中可用线程是足够的,即每个分支都可以由一个独立的线程执行,而无需等待,通过流程图语言重新定义,并结合循环线、向上递归回溯判断线状态、向下递归清理环境变量,将其组合应用,实现可用于实际生产的多线程并发执行,支持循环、递归等复杂逻辑,以充分利用计算机资源,使流程图执行速度更快。
136.实施例5
137.在上述实施例的基础上,如图8所示,本发明还提供了一种业务流程图并发执行装置,用于支持上述实施例的业务流程图并发执行方法,所述业务流程图并发执行装置,至少包括:
138.线程池模块,其用于其用于将业务流程图语言简化为节点和路径,并对节点和路径重新定义,还用于将业务流程图中节点和路径以及执行顺序构成的分支,分解为子流程,并将其通过不同线程进行并发执行,在并行处理业务流程图各个分支的线程中,可以初始化创建,也可以动态创建;
139.挂起等待节点模块,其用于当线程执行到流程交汇处,并出现时序依赖的等待时,将节点、挂起线程暂存起来,等待被唤醒;
140.其中,如果已有针对当前节点的挂起线程,则当前线程直接结束,
141.节点环境变量模块,其用于在一个节点执行完成后,其输入和输出存储为环境变量,以供其他节点或线的表达式使用或输出;
142.线状态环境变量模块,其用于计算一条线根据表达式代入回溯节点环境变量的值的最终结果,还用于判断节点是否状态已确认,以及是否可执行,若存在则表示状态确定,true表示已达,false表示不可达。
143.进一步的,所述业务流程图并发执行装置可运行上述业务流程图并发执行方法,具体实现可参见上述方法实施例,在此不再赘述。
144.在上述实施例的基础上,本发明还提供一种电子计算设备,所述电子计算设备包
括:
145.处理器、存储器,所述处理器与存储器进行通信连接;
146.在本实施例中,所述存储器可以按任何适当的方式实现,例如:所述存储器可以为只读存储器、机械硬盘、固态硬盘、或u盘等;所述存储器用于储存至少一个所述处理器执行的可执行指令;
147.在本实施例中,所述处理器可以按任何适当的方式实现,例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等;所述处理器用于执行所述可执行指令以实现如上述的业务流程图并发执行方法。
148.在上述实施例的基础上,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述的业务流程图并发执行方法。
149.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
150.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
151.在本技术所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或设备的间接耦合或通信连接,可以是电性,机械或其它的形式。
152.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
153.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
154.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储服务器、随机存取存储服务器、磁碟或者光盘等各种可以存储程序指令的介质。
155.另外,还需要说明的是,本案中各技术特征的组合方式并不限本案权利要求中所记载的组合方式或是具体实施例所记载的组合方式,本案所记载的所有技术特征可以以任何方式进行自由组合或结合,除非相互之间产生矛盾。
156.需要注意的是,以上列举的仅为本发明的具体实施例,显然本发明不限于以上实施例,随之有着许多的类似变化。本领域的技术人员如果从本发明公开的内容直接导出或联想到的所有变形,均应属于本发明的保护范围。
157.以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献