CN109144486A - 一种无状态化的工作流程实现方法 - Google Patents
一种无状态化的工作流程实现方法 Download PDFInfo
- Publication number
- CN109144486A CN109144486A CN201811055699.6A CN201811055699A CN109144486A CN 109144486 A CN109144486 A CN 109144486A CN 201811055699 A CN201811055699 A CN 201811055699A CN 109144486 A CN109144486 A CN 109144486A
- Authority
- CN
- China
- Prior art keywords
- node
- workflow
- state
- srvice instance
- unique
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及企业信息化、互联网化与工作流程有关的系统、平台、服务,具体公开了一种无状态化的工作流程实现方法,包括定义节点,定义业务实例,节点的开始状态与结束状态对应的状态值在同一工作流程中全局唯一,业务实例执行时直接调用业务实例当前开始状态一致的节点进行执行,并将业务实例执行的中间以及结果数据保存至缓存或数据库中。本发明简化了工作流程系统的开发、部署、使用、运维的成本以及时间,工作流程的流程节点定义了触发状态和完成状态,状态值全局唯一,使得工作流程的改变和调整极为方便快捷,针对各类工作流程的适应性强,实现逻辑简单、高效,系统的结构稳定性强。
Description
技术领域
本发明涉及企业信息化以及工作流程有关的系统、平台、服务,具体公开了一种无状态化的工作流程实现方法。
背景技术
随着数字技术的进步,以及信息化行业的高速发展,在企业信息化的相关领域中,各开发商、服务商普遍基于开源的工作流程引擎或开放的技术规范进行开发、封装、扩展相关的工作流程序。由于技术规范和开源架构往往要对工作流程和工作节点预先进行对象实例化,即对流程的开始、过程和结果进行整体定义、编码和封装,属于有状态业务服务计算,导致在进行分布部署、分布执行、集群和简化流程定义等工作中,需要进行大量的重新编译工作,从而增加了程序的复杂度、编译的工作量以及部署的难度,提高了运维的成本。
另外由于工作流程的执行过程中,所有的状态均进行了实例化,当流程变化或调整时需要进行额外的状态维护,并且增加了重新实例化的开发和计算成本,同时整体系统稳定性也受到了一定影响。而现代企业的工作和业务流程的变化越来越频繁,时常调整工作流程成为了常态,不能适应这种变化将大大制约企业的发展。
无状态服务是指一个服务在其生命周期内不依赖其他服务生命周期内的数据,那么这个服务被称为无状态服务,反之称为有状态服务。无状态服务将所有的数据都放在服务外部统一存储,业务端就变成了无状态服务的计算节点,从而使服务可以进行平滑的横向扩展,而所有的外部数据统一存储,无论是缓存、数据库、对象存储都有自身的分布式横向扩展机制。
发明内容
为了克服现有的工作流程对象实例化导致调整困难、成本偏高的问题,本发明提供一种无状态化的工作流程实现方法。
本发明采用的技术方案是:一种无状态化的工作流程实现方法,包含步骤如下:
A1.定义节点,工作流程的每一个流程节点定义为一个节点,每个节点有独属于该节点的节点唯一标识,节点的开始条件定义为唯一状态值,唯一状态值在节点所属的工作流程中全局唯一,将判断节点是否开始执行的唯一状态值定义为节点的开始状态,将确定节点执行之后状态的唯一状态值定义为节点的结束状态;将每一个节点的用于控制该节点是否可以执行的判断值定义为节点的启用状态,启用状态包括开启和关闭;
A2.建立业务实例,当工作流程执行新的业务流程时,建立对应的业务实例,每个业务实例有独属于该业务实例的业务唯一标识,业务实例包含信息包括:流程标识、流程实例标识、流程当前状态、当前节点标识、当前节点业务唯一标识、上一节点标识、上一节点业务唯一标识,业务实力的数据均保存在缓存或数据库中;
A3.根据调用传入的当前节点唯一标识和当前节点业务唯一标识,从缓存或数据库读取包含该节点的流程实例,流程实例当前状态与当前节点的开始状态一致则执行,反之不执行;
A4.将当前节点的运行中间、结果数据保存到缓存或数据库,所述的当前流程状态根据当前节点执行后的结束状体赋值,重复步骤A3至A4可执行工作流程所有节点。
作为优选的,所述业务实力执行的中间、结果数据的储存位置独立且分离,中间、结果数据存储在分布式横向扩展的缓存、数据库上,节点的部署方式是扩展式横向的部署方式。
优选的,所述的无状态化的工作流程实现方法的流程改变方法步骤如下:
C1.将需要取消的节点的启用状态设置为关闭;
C2.将需要新增的节点增加到对应的工作流程中,设置新增节点的启用状态为启用。
本发明的有益效果是:提供了一种无状态化的工作流程实现方法,极大的简化了工作流程系统的开发、部署、使用、运维的成本以及时间。工作流程的每一个节点的状态值全局唯一,使得工作流程的改变和调整极为方便快捷,系统针对各类工作流程的适应性强,实现逻辑简单、高效,系统的结构稳定性强。
附图说明
图1是本发明的工作流程执行逻辑示意图。
图2是本发明的工作流程架构示意图。
具体实施方式
参见图1,本发明是一种无状态化的工作流程实现方法,包含步骤如下:
A1.定义节点,工作流程的每一个流程节点定义为一个节点,每个节点有独属于该节点的节点唯一标识(节点ID),节点的开始条件定义为唯一状态值,唯一状态值在节点所属的工作流程中全局唯一,将判断节点是否开始执行的唯一状态值定义为节点的开始状态,将确定节点执行之后状态的唯一状态值定义为节点的结束状态;将每一个节点的用于控制该节点是否可以执行的判断值定义为节点的启用状态,启用状态包括开启和关闭;
A2.建立业务实例,当工作流程执行新的业务流程时,建立对应的业务实例,每个业务实例有独属于该业务实例的业务唯一标识(单号),业务实例包含信息包括:流程标识、流程实例标识、流程当前状态、当前节点标识、当前节点业务唯一标识、上一节点标识、上一节点业务唯一标识,业务实力的数据均保存在缓存或数据库中;
A3.根据调用传入的当前节点唯一标识和当前节点业务唯一标识,从缓存或数据库读取包含该节点的流程实例,流程实例当前状态与当前节点的开始状态一致则执行,反之不执行;
A4.将当前节点的运行中间、结果数据保存到缓存或数据库,所述的当前流程状态根据当前节点执行后的结束状体赋值,重复步骤A3至A4可执行工作流程所有节点。
本发明的工作流程实现方法,在每次调用执行的业务逻辑不需要依赖其他节点数据、状态,从而实现了业务逻辑变成无状态的计算节点,极大的简化了工作流程系统的开发、部署、使用、运维的成本以及时间。
通过对工作节点预设状态的全局唯一性,使整个工作流程执行过程只需一个状态作为依据就可以控制流程执行路径,且同一时间点影响当前执行状态的节点或操作减少到最少,从而减少了工作流程执行的执行资源,提高了系统的稳定性。
参见图2,所述的业务实例执行的中间、结果数据存储独立分离。节点作为无状态服务节点任意横向部署扩展,数据存储使用的缓存、数据库自身的分布式横向扩展,从而达到简单平滑的分布部署、集群式执行。
当工作流程需要调整或者改变时,只需要执行如下步骤:
C1.将需要取消的节点的启用状态设置为关闭;
C2.将需要新增的节点增加到对应的工作流程中,设置新增节点的启用状态为启用。
通过对节点预设的开启/关闭标识,可以实现快速变更、调整工作流程,达到即调即生效,从而适应企业业务频繁调整的常态。
Claims (3)
1.一种无状态化的工作流程实现方法,其特征是,包含步骤如下:
A1.定义节点,工作流程的每一个流程节点定义为一个节点,每个节点有独属于该节点的节点唯一标识,节点的开始条件定义为唯一状态值,唯一状态值在节点所属的工作流程中全局唯一,将判断节点是否开始执行的唯一状态值定义为节点的开始状态,将确定节点执行之后状态的唯一状态值定义为节点的结束状态;将每一个节点的用于控制该节点是否可以执行的判断值定义为节点的启用状态,启用状态包括开启和关闭;
A2.建立业务实例,当工作流程执行新的业务流程时,建立对应的业务实例,每个业务实例有独属于该业务实例的业务唯一标识,业务实例包含信息包括:流程标识、流程实例标识、流程当前状态、当前节点标识、当前节点业务唯一标识、上一节点标识、上一节点业务唯一标识,业务实力的数据均保存在缓存或数据库中;
A3.根据调用传入的当前节点唯一标识和当前节点业务唯一标识,从缓存或数据库读取包含该节点的流程实例,流程实例当前状态与当前节点的开始状态一致则执行,反之不执行;
A4.将当前节点的运行中间、结果数据保存到缓存或数据库,所述的当前流程状态根据当前节点执行后的结束状体赋值,重复步骤A3至A4可执行工作流程所有节点。
2.根据权利要求1所述的一种无状态化的工作流程实现方法,其特征是:所述业务实例执行的中间、结果数据的储存位置独立且分离,中间、结果数据存储在分布式横向扩展的缓存、数据库上,节点的部署方式是扩展式横向的部署方式。
3.根据权利要求1所述的一种无状态化的工作流程实现方法,其特征是,所述的无状态化的工作流程实现方法的流程改变方法步骤如下:
C1.将需要取消的节点的启用状态设置为关闭;
C2.将需要新增的节点增加到对应的工作流程中,设置新增节点的启用状态为启用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811055699.6A CN109144486B (zh) | 2018-09-10 | 2018-09-10 | 一种无状态化的工作流程实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811055699.6A CN109144486B (zh) | 2018-09-10 | 2018-09-10 | 一种无状态化的工作流程实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144486A true CN109144486A (zh) | 2019-01-04 |
CN109144486B CN109144486B (zh) | 2022-01-04 |
Family
ID=64824687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811055699.6A Active CN109144486B (zh) | 2018-09-10 | 2018-09-10 | 一种无状态化的工作流程实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144486B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111798083A (zh) * | 2020-05-11 | 2020-10-20 | 石化盈科信息技术有限责任公司 | 一种生产调度监控系统、方法及存储介质 |
WO2021135412A1 (zh) * | 2019-12-31 | 2021-07-08 | 华为技术有限公司 | 部署实例的方法、实例管理节点、计算节点和计算设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236838A1 (en) * | 2002-04-09 | 2003-12-25 | Ouchi Norman Ken | Shared and private node workflow system |
CN103034536A (zh) * | 2011-12-12 | 2013-04-10 | 微软公司 | 提高有状态应用的可用性 |
CN103096299A (zh) * | 2011-11-01 | 2013-05-08 | 中兴通讯股份有限公司 | 一种移动节点动态获取位置标识的方法及lisp网络 |
CN105719078A (zh) * | 2016-01-20 | 2016-06-29 | 广东电网有限责任公司电力调度控制中心 | 一种基于业务流程对接及状态监控的全息式流程管理方法 |
CN106897858A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种工作流处理方法和系统 |
CN106897809A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 工作流程创建方法、工作流设计器和工作流系统 |
WO2018046085A1 (en) * | 2016-09-08 | 2018-03-15 | Huawei Technologies Co., Ltd. | Systems and methods for performing a range query on a skiplist data structure |
CN107957893A (zh) * | 2017-12-20 | 2018-04-24 | 四川九洲电器集团有限责任公司 | 一种软件流程与功能动态实现方法 |
-
2018
- 2018-09-10 CN CN201811055699.6A patent/CN109144486B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236838A1 (en) * | 2002-04-09 | 2003-12-25 | Ouchi Norman Ken | Shared and private node workflow system |
CN103096299A (zh) * | 2011-11-01 | 2013-05-08 | 中兴通讯股份有限公司 | 一种移动节点动态获取位置标识的方法及lisp网络 |
CN103034536A (zh) * | 2011-12-12 | 2013-04-10 | 微软公司 | 提高有状态应用的可用性 |
CN106897858A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种工作流处理方法和系统 |
CN106897809A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 工作流程创建方法、工作流设计器和工作流系统 |
CN105719078A (zh) * | 2016-01-20 | 2016-06-29 | 广东电网有限责任公司电力调度控制中心 | 一种基于业务流程对接及状态监控的全息式流程管理方法 |
WO2018046085A1 (en) * | 2016-09-08 | 2018-03-15 | Huawei Technologies Co., Ltd. | Systems and methods for performing a range query on a skiplist data structure |
CN107957893A (zh) * | 2017-12-20 | 2018-04-24 | 四川九洲电器集团有限责任公司 | 一种软件流程与功能动态实现方法 |
Non-Patent Citations (1)
Title |
---|
李萌萌: "一种支持活动标记的访问控制标识方法", 《计算机工程与应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135412A1 (zh) * | 2019-12-31 | 2021-07-08 | 华为技术有限公司 | 部署实例的方法、实例管理节点、计算节点和计算设备 |
CN111798083A (zh) * | 2020-05-11 | 2020-10-20 | 石化盈科信息技术有限责任公司 | 一种生产调度监控系统、方法及存储介质 |
CN111798083B (zh) * | 2020-05-11 | 2024-04-12 | 石化盈科信息技术有限责任公司 | 一种生产调度监控系统、方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109144486B (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11016673B2 (en) | Optimizing serverless computing using a distributed computing framework | |
US11886929B2 (en) | Deploying cloud-native services across control planes | |
CN102103497B (zh) | 有限状态机执行装置和方法、在应用中的建立和使用方法 | |
CN101593294A (zh) | 动态配置工作流的方法和系统 | |
US20060225042A1 (en) | Virtual threads in business process programs | |
CN101247292B (zh) | 基于通用测试仪表应用编程接口的测试设备及测试方法 | |
JP2003514276A (ja) | エラーメッセージから故障を分離する方法 | |
CN100362479C (zh) | 基于自动化测试脚本对被测对象进行测试的方法和系统 | |
CN109189758B (zh) | 运维流程设计方法、装置和设备、运行方法、装置和主机 | |
CN104536819A (zh) | 基于web服务的任务调度方法 | |
CN112835714A (zh) | 云边环境中面向cpu异构集群的容器编排方法、系统及介质 | |
CN109144486A (zh) | 一种无状态化的工作流程实现方法 | |
US10768974B2 (en) | Specifying an order of a plurality of resources in a transaction according to distance | |
CN113672240A (zh) | 一种基于容器的多机房批量自动化部署应用的方法及系统 | |
WO2021159929A1 (zh) | 拓扑图转换系统及其方法 | |
CN111240935A (zh) | 一种自动化智能运维系统及运维方法 | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
CN103927244A (zh) | 一种基于动态代理实现的插件调度过程监控的方法 | |
CN109189573A (zh) | 一种基于nvdimm的异构内存管理系统 | |
CN112395052A (zh) | 一种面向混合负载基于容器的集群资源管理方法及系统 | |
CN102214094B (zh) | 经由异步编程模型执行操作 | |
US8352055B2 (en) | Method for implementing production processes and system for executing the method | |
CN110704180B (zh) | 基于混合云的工作流调度方法 | |
CN108762753A (zh) | 页面组件修改方法及设备 | |
CN111526168B (zh) | 一种网络功能虚拟化nfv架构的调度管理方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 528000 No. 3, 9e, Financial Plaza, No. 10, Jihua fifth floor, Chancheng District, Foshan City, Guangdong Province Applicant after: Foshan Xijian Technology Co.,Ltd. Address before: 528000 No. 3, 9e, Financial Plaza, No. 10, Jihua fifth floor, Chancheng District, Foshan City, Guangdong Province Applicant before: FOSHAN ZHONGLIAN CHENGYUN TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |