CN105302581A - 基于脚本引擎的工作流事件机制实现方法 - Google Patents
基于脚本引擎的工作流事件机制实现方法 Download PDFInfo
- Publication number
- CN105302581A CN105302581A CN201510869788.4A CN201510869788A CN105302581A CN 105302581 A CN105302581 A CN 105302581A CN 201510869788 A CN201510869788 A CN 201510869788A CN 105302581 A CN105302581 A CN 105302581A
- Authority
- CN
- China
- Prior art keywords
- event
- workflow
- flow
- script
- data
- 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
Landscapes
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于脚本引擎的工作流事件机制实现方法,是用于工作流软件平台中,工作流核心引擎与业务系统交互集成的一种实现机制。其中,业务流程通过工作流引擎推动和流转,在此过程中流程、及环节必须与业务数据或业务模块发生交互。工作流提供的事件机制,则规定了流程流转的整个生命周期过程中,相关业务逻辑的切入时机。这些事件包括如:流程启动、取消、更新、结束,流程环节的进入、数据提交、离开,等等,在事件中编写相应的代码,可以实现对流程的自定义流转干预控制、数据校验、数据过滤、数据访问等等丰富功能。
Description
技术领域
本发明涉及工作流软件领域。
背景技术
一般J2EE平台实现的工作流系统大多采用规则引擎,类继承、Webservice调用或类似的远程调用等方式实现扩展和定制化,但这些方式都存在一些缺陷。
规则引擎也能实现一定的灵活性,但还有所不足,因为“规则”一般是定义为条目化的、静态的,静态的规则定义缺乏动态灵活性,不能很好的根据“运行时”的环境状态做出相对复杂的逻辑。
类继承的方式的缺陷在于,一是需要进行Java编程,还要学习工作流系统提供的基类及继承体系,学习门槛相对较高;二是修改了JavaClass代码,无法或很难直接进行热部署(要重新启动Java虚拟机),这是J2EE应用系统ClassLoader机制本身的局限性。
Webservice调用或类似的远程调用的问题在于:事务的处理的复杂性,调用方和被调用方要做到全局的事务一致性非常困难,一般工作流系统中的处理方式要么不做强制一致性,要么交由业务系统自行处理(比如采用事务补偿机制),总之复杂性无法避免。
发明内容
发明目的:针对多元的海量大数据,提出了一种基于脚本引擎的工作流事件机制实现方法,可以采用灵活、易于编写的脚本的方式对业务流程进行有效的功能扩展和定制化开发。
技术方案:为达到上述目的,本发明可采用如下技术方案:
一种适合大数据价值评价的计算方法,将工作流系统的接口规范为标准事件;若产生事件,则查找事件脚本,若无脚本则认为是默认行为从而返回事件处理完成指令;若查找到自定义脚本则执行该自定义脚本并返回处理结果。
有益效果:相对于现有技术,本发明中脚本引擎处于与工作流核心同等的运行环境中,通过初始化的行为,可以将大量的工作流内部的变量、数据结构、状态信息、甚至数据库连接会话等,无缝植入到脚本引擎中,使脚本引擎中的脚本自动获得强大的流程干预能力、事务一致性、数据访问的同步性。
附图说明
图1是是本发明工作流事件机制和脚本引擎应用示意图。
具体实施方式
下面结合附图对本发明进行详细的描述。
脚本引擎是一个计算机编程语言的解释器,它的功能是解释执行用户的程序文本,实时地将程序文本译成计算机能执行的机器代码,完成一系列的功能。
JAVA从JDK1.6开始,内置了javascript脚本引擎,可以直接嵌入到Java代码中执行,使用解析方式执行,可直接调用java的类及方法,脚本修改后不需要重启JVM进程。
而在工作流软件平台中,工作流核心引擎与业务系统交互集成的一种实现机制。即业务流程通过工作流引擎推动和流转过程中,工作流引擎提供标准的接口机制。事件机制规定了流程流转的整个生命周期过程中,业务相关逻辑的切入时机。这些事件包括如:流程启动、取消、更新、结束,流程环节的进入、数据提交、离开,等等,在事件中编写相应的脚本代码,可以实现对流程的自定义干预、数据访问等等。
本发明所提出的基于脚本引擎的工作流事件机制实现方法,是用于工作流软件平台中,工作流核心引擎与业务系统交互集成的一种实现机制。
业务流程通过工作流引擎推动和流转,在此过程中流程、及环节必须与业务数据或业务模块发生交互。工作流提供的事件机制,则规定了流程流转的整个生命周期过程中,相关业务逻辑的切入时机。这些事件包括如:流程启动、取消、更新、结束,流程环节的进入、数据提交、离开,等等,在事件中编写相应的代码,可以实现对流程的自定义流转干预控制、数据校验、数据过滤、数据访问等等丰富功能。
工作流平台采用内嵌的脚本引擎的模式实现标准的事件接口机制,使得可以采用灵活、易于编写的脚本的方式对业务流程进行有效的功能扩展和定制化开发。本发明底层技术采用Java虚拟机内置的Javascript脚本引擎API,在工作流平台中封装为事件,业务流程开发者可以通过编写javascript脚本和脚本内置的丰富组件,甚至自定义的组件简单轻松的编写与业务相关的逻辑,同时,通过工作流脚本的运行环境运行业务脚本,还可以实现工作流引擎与业务共享同一个数据库事务,达到了流程的流转与业务数据严格同步的效果。
请参阅图1所示,该实现方法为,将工作流系统的接口规范为标准事件;
若产生事件,则查找事件脚本,若无脚本则认为是默认行为从而返回事件处理完成指令;若查找到自定义脚本则执行该自定义脚本并返回处理结果。
标准事件中包含流程实例级事件以及流程节点级事件
流程实例级事件包括:
创建/启动事件:此事件提供流程初始化机会,通过事件脚本对关联的业务数据进行访问和初始化;
取消/删除事件:此事件提供当用户取消流程时的干预机会,向业务通报流程状态变更,通过事件脚本对关联的业务数据进行相应的撤销;
结束/完成事件:此事件提供当流程即将正常结束或完成时,向业务通报流程状态变更,通过事件脚本对关联的业务数据进行相应的更新;
而流程节点级事件包括:
候选节点筛选事件:此事件提供当流程节点将要进行迁移时,通过事件脚本对候选的可达节点进行干预调整的功能;
办理人筛选事件:此事件提供当流程节点将要进行迁移时,通过事件脚本对候选的可达节点上的候选办理人或选择范围进行干预调整的功能;
节点数据校验事件:此事件提供当流程节点数据提交之前的数据验证、校验的功能,校验的结果阻止后续的提交行为;
节点提交/完成事件:此事件提供当流程节点数据提交时,同步更新业务数据的功能,如果事件执行异常,整个提交失败,事务中全部数据将回滚到提交更新之前状态。工作流平台内嵌的脚本引擎处于与工作流核心同等的运行环境中,通过初始化的行为,可以将大量的工作流内部的变量、数据结构、状态信息、甚至数据库连接会话等,无缝植入到脚本引擎中,使脚本引擎中的脚本自动获得强大的流程干预能力。相对于现有技术,本发明中脚本引擎处于与工作流核心同等的运行环境中,通过初始化的行为,可以将大量的工作流内部的变量、数据结构、状态信息、甚至数据库连接会话等,无缝植入到脚本引擎中,使脚本引擎中的脚本自动获得强大的流程干预能力、事务一致性、数据访问的同步性。
Claims (2)
1.一种基于脚本引擎的工作流事件机制实现方法,其特征在于,将工作流系统的接口规范为标准事件;
若产生事件,则查找事件脚本,若无脚本则认为是默认行为从而返回事件处理完成指令;若查找到自定义脚本则执行该自定义脚本并返回处理结果。
2.根据权利要求1所述的基于脚本引擎的工作流事件机制实现方法,其特征在于,标准事件中包含流程实例级事件以及流程节点级事件
流程实例级事件包括:
创建/启动事件:此事件提供流程初始化机会,通过事件脚本对关联的业务数据进行访问和初始化;
取消/删除事件:此事件提供当用户取消流程时的干预机会,向业务通报流程状态变更,通过事件脚本对关联的业务数据进行相应的撤销;
结束/完成事件:此事件提供当流程即将正常结束或完成时,向业务通报流程状态变更,通过事件脚本对关联的业务数据进行相应的更新;
而流程节点级事件包括:
候选节点筛选事件:此事件提供当流程节点将要进行迁移时,通过事件脚本对候选的可达节点进行干预调整的功能;
办理人筛选事件:此事件提供当流程节点将要进行迁移时,通过事件脚本对候选的可达节点上的候选办理人或选择范围进行干预调整的功能;
节点数据校验事件:此事件提供当流程节点数据提交之前的数据验证、校验的功能,校验的结果阻止后续的提交行为;
节点提交/完成事件:此事件提供当流程节点数据提交时,同步更新业务数据的功能,如果事件执行异常,整个提交失败,事务中全部数据将回滚到提交更新之前状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510869788.4A CN105302581B (zh) | 2015-12-02 | 2015-12-02 | 基于脚本引擎的工作流事件机制实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510869788.4A CN105302581B (zh) | 2015-12-02 | 2015-12-02 | 基于脚本引擎的工作流事件机制实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302581A true CN105302581A (zh) | 2016-02-03 |
CN105302581B CN105302581B (zh) | 2019-01-11 |
Family
ID=55199879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510869788.4A Active CN105302581B (zh) | 2015-12-02 | 2015-12-02 | 基于脚本引擎的工作流事件机制实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302581B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600226A (zh) * | 2016-12-13 | 2017-04-26 | 泰康保险集团股份有限公司 | 用于优化流程管理系统的方法及装置 |
CN107992537A (zh) * | 2017-11-24 | 2018-05-04 | 金蝶软件(中国)有限公司 | 业务属性传递方法、装置、计算机设备及存储介质 |
CN110322230A (zh) * | 2019-07-08 | 2019-10-11 | 佛山市众联成云科技有限公司 | 一种工作流系统与业务系统的对接规范实现方法 |
CN111428460A (zh) * | 2018-12-24 | 2020-07-17 | 核工业计算机应用研究所 | 一种电子任务工单的执行方法及系统 |
CN111582827A (zh) * | 2020-05-11 | 2020-08-25 | 安徽亘达信息科技有限公司 | 一种审批流程控制方法及系统 |
CN111858675A (zh) * | 2020-07-24 | 2020-10-30 | 北京玉符科技服务有限公司 | 自定义属性编辑器 |
CN112199206A (zh) * | 2020-08-28 | 2021-01-08 | 杭州数云信息技术有限公司 | 基于事件机制模板对实时流事件配置化处理方法及系统 |
CN113535684A (zh) * | 2021-07-26 | 2021-10-22 | 北京计算机技术及应用研究所 | 一种基于Activiti的自主指挥控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645013A (zh) * | 2009-09-07 | 2010-02-10 | 中兴通讯股份有限公司 | 综合业务管理平台插件式业务管理系统及方法 |
CN103136353A (zh) * | 2013-02-28 | 2013-06-05 | 武汉刻度科技发展有限公司 | 企业信息管理系统人机交互事件处理方法及系统 |
CN103336705A (zh) * | 2011-09-09 | 2013-10-02 | 微软公司 | 脚本处理和工作流系统间的自动转码和语义自适应 |
-
2015
- 2015-12-02 CN CN201510869788.4A patent/CN105302581B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645013A (zh) * | 2009-09-07 | 2010-02-10 | 中兴通讯股份有限公司 | 综合业务管理平台插件式业务管理系统及方法 |
CN103336705A (zh) * | 2011-09-09 | 2013-10-02 | 微软公司 | 脚本处理和工作流系统间的自动转码和语义自适应 |
CN103136353A (zh) * | 2013-02-28 | 2013-06-05 | 武汉刻度科技发展有限公司 | 企业信息管理系统人机交互事件处理方法及系统 |
Non-Patent Citations (3)
Title |
---|
STEFAN MORSCHHEUSER ET AL: "Challenge and Solutions or Document and Workflow Management in a Manufacturing Enterprise:A Case Study", 《PROCEEDINGS OR THE 29TH ANNUAL HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES-1996》 * |
卢良进等: "支持脚本嵌入的Web工作流的研究与实现", 《计算机系统应用》 * |
赵海等: "一种基于Web的工作流系统设计与实现", 《北京航空航天大学学报》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600226A (zh) * | 2016-12-13 | 2017-04-26 | 泰康保险集团股份有限公司 | 用于优化流程管理系统的方法及装置 |
CN106600226B (zh) * | 2016-12-13 | 2020-08-04 | 泰康保险集团股份有限公司 | 用于优化流程管理系统的方法及装置 |
CN107992537A (zh) * | 2017-11-24 | 2018-05-04 | 金蝶软件(中国)有限公司 | 业务属性传递方法、装置、计算机设备及存储介质 |
CN107992537B (zh) * | 2017-11-24 | 2020-05-08 | 金蝶软件(中国)有限公司 | 业务属性传递方法、装置、计算机设备及存储介质 |
CN111428460A (zh) * | 2018-12-24 | 2020-07-17 | 核工业计算机应用研究所 | 一种电子任务工单的执行方法及系统 |
CN110322230A (zh) * | 2019-07-08 | 2019-10-11 | 佛山市众联成云科技有限公司 | 一种工作流系统与业务系统的对接规范实现方法 |
CN111582827A (zh) * | 2020-05-11 | 2020-08-25 | 安徽亘达信息科技有限公司 | 一种审批流程控制方法及系统 |
CN111582827B (zh) * | 2020-05-11 | 2023-06-20 | 安徽亘达信息科技有限公司 | 一种审批流程控制方法及系统 |
CN111858675A (zh) * | 2020-07-24 | 2020-10-30 | 北京玉符科技服务有限公司 | 自定义属性编辑器 |
CN112199206A (zh) * | 2020-08-28 | 2021-01-08 | 杭州数云信息技术有限公司 | 基于事件机制模板对实时流事件配置化处理方法及系统 |
CN112199206B (zh) * | 2020-08-28 | 2023-12-26 | 杭州数云信息技术有限公司 | 基于事件机制模板对实时流事件配置化处理方法及系统 |
CN113535684A (zh) * | 2021-07-26 | 2021-10-22 | 北京计算机技术及应用研究所 | 一种基于Activiti的自主指挥控制方法 |
CN113535684B (zh) * | 2021-07-26 | 2024-02-27 | 北京计算机技术及应用研究所 | 一种基于Activiti的自主指挥控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105302581B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302581A (zh) | 基于脚本引擎的工作流事件机制实现方法 | |
CN107636612B (zh) | 应用迁移装置、方法与存储介质 | |
US9152402B2 (en) | Automated deployment and servicing of distributed applications | |
CN104160378B (zh) | 用于启用分布式计算系统中的容错功能的方法和系统 | |
CN100489778C (zh) | Java程序可动态更新化实现方法 | |
CN107391104B (zh) | 一种客户端与react native代码的更新依赖管理方法、装置及系统 | |
US7716517B2 (en) | Distributed platform management for high availability systems | |
US9384020B2 (en) | Domain scripting language framework for service and system integration | |
CN112286656B (zh) | 小程序模拟方法、装置、电子设备和计算机可读存储介质 | |
US20140208169A1 (en) | Domain scripting language framework for service and system integration | |
CN106201773A (zh) | 实例系统、云系统及实例系统的升级或恢复方法 | |
Zhu et al. | If docker is the answer, what is the question? | |
CN103984574A (zh) | 一种网站升级方法及系统 | |
CN104778075A (zh) | Android系统中native层调用Java层API的方法和装置 | |
CN103813463A (zh) | 软件通信体系架构中的资源分配方法 | |
CN108829391B (zh) | 一种Fragment中控件识别方法及系统 | |
CN104111843A (zh) | 一种基于沙箱的脚本更新方法及系统 | |
CN110401729A (zh) | 一种云平台服务器网络迁移方法、系统、终端及存储介质 | |
CN111767149B (zh) | 调度方法、装置、设备及存储设备 | |
US20180239323A1 (en) | Method for Operating an Engineering System for an Industrial Process Automation System, and Control Program | |
US9253286B2 (en) | Computer program composed from tabular storage structures that includes data and code | |
CN112489172A (zh) | 制作骨骼动画的方法、系统、电子装置和存储介质 | |
CN109460243A (zh) | 一种基于Agentmain的生产环境在线类替换方法 | |
CN109189444A (zh) | 一种服务器虚拟化系统的管理节点的升级控制方法及装置 | |
CN106021004A (zh) | 用户行为模拟单元、测试系统、以及测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |