CN105183441A - 一种采用微内核架构实现的工作流管理系统 - Google Patents
一种采用微内核架构实现的工作流管理系统 Download PDFInfo
- Publication number
- CN105183441A CN105183441A CN201510266443.XA CN201510266443A CN105183441A CN 105183441 A CN105183441 A CN 105183441A CN 201510266443 A CN201510266443 A CN 201510266443A CN 105183441 A CN105183441 A CN 105183441A
- Authority
- CN
- China
- Prior art keywords
- management system
- workflow management
- flow
- extension element
- engine
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及计算机领域中的一种工作流管理系统,具体地说,涉及一种通过微内核架构实现高可扩展性的工作流管理系统。本发明针对目前的工作流管理系统难于扩展和维护的问题,实现上采用微内核的架构思想,流程引擎核心仅包含流程调度相关的逻辑,其它功能均作为扩展组件,通过标准接口与核心进行交互。当业务需求发生变更时,该工作流管理系统可通过增加新的扩展组件或修改原有的扩展组件实现业务功能,不需要更改系统的流程引擎核心,从而减少变更对系统的影响,大大提高工作流管理系统的可扩展性和可维护性。
Description
技术领域
本发明涉及计算机领域中的一种工作流管理系统,具体地说,涉及一种通过微内核架构实现高可扩展性的工作流管理系统。
背景技术
工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。而工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。工作流技术自20世纪90年代兴起,目前已被广泛应用于电讯业、软件工程、制造业、金融业、银行业、科学试验、卫生保健领域、航运业和办公自动化等领域。
发明内容
由于工作流管理系统的应用领域广、业务应用的复杂度高,为满足客户特异化的业务需求,大多数工作流管理系统通过在流程引擎调度逻辑中加入特殊处理代码的方式来实现。这种做法会导致流程调度逻辑臃肿,发生变更时,需要修改的地方多,代码之间的相互影响大,不易于扩展和维护。
针对目前工作流管理系统扩展和维护困难的问题,本发明采用微内核架构方法实现一种工作流管理系统,该工作流管理系统的流程引擎核心仅包含流程调度相关的逻辑,其它功能均作为扩展组件,通过标准接口与核心进行交互。当业务需求发生变更时,该工作流管理系统可通过增加新的扩展组件或修改原有的扩展组件实现业务功能,不需要更改系统的流程引擎核心,从而减少变更对系统的影响,大大提高工作流管理系统的可扩展性和可维护性。
本发明主要通过采用微内核架构方法实现工作流管理系统。微内核(microkernel)的概念最初来自于操作系统领域,指的是操作系统设计时将大部分功能置于内核之外,彼此间通过消息进行通信,而操作系统内核只负责消息传送机制的实现。本发明将微内核的设计思想延伸到工作流管理系统的软件架构上,系统的总体结构如图1所示,共分为6个部分:
a.外设层
包含可选的外围组件。这些外围组件用于实现基于流程的业务功能,可认为是流程引擎功能的消费者之一,其本身不是工作流管理系统运行所必需的部分。常见的外围组件有:业务表单、工作催办、业务办理绩效考核等。
b.对外接口层
提供与工作流管理系统的会话交互,外界通过本层来与引擎进行交互,对流程进行操纵和管理。本层提供的接口实现了WFMC规定的WAPI,包括:
接口1:流程定义工具;
接口2:工作流客户端应用;
接口3:应用程序调用;
接口4:流程引擎互操作;
接口5:管理及监控工具。
c.交互代理
负责在引擎核心与对外接口层之间建立通讯。通讯的方式对访问者透明,对外接口层无须关心引擎核心的部署位置和调用细节。交互代理对引擎核心的调用方式包括:JavaBean调用、RMI、EJB、WebService。
d.扩展实现层
本层通过各种扩展组件实现对引擎核心功能的扩展。扩展组件提供了工作流管理系统中除流程调度逻辑以外的功能的具体实现。扩展组件根据其定位和用途可分为三类:支撑型、辅助型、增强型。其中:
●支撑型扩展组件
支撑型扩展组件所实现的功能对于流程引擎运行起关键作用,没有这些组件流程引擎不能正常运行。支撑型扩展组件主要有:组织模型适配组件、流程实例数据存储服务组件、应用适配组件、流程定义操纵和扩展组件等。
●辅助型扩展组件
辅助型扩展组件对于流程引擎来说是可选的,主要是辅助引擎完成一些特殊的流程控制处理,包括特殊的流程流向条件判断及实现额外的操作处理。
●增强型扩展组件
增强型扩展组件对于流程引擎来说是可选的,主要用于增强引擎的处理能力。增强型扩展组件主要有:工作项的分配、执行、提交扩展组件、事件监听组件、超时处理组件、代理人处理组件、工作日历处理组件等。
e.引擎内核
引擎内核是工作流管理系统的中心,主要负责依据调度算法调度流程的运转。引擎内核的调度算法采用Petri网对流程进行描述,Petri网PN=(P,T,F)是工作流网(WF-net),当且仅当:
(a)存在一个资库所i∈P,使得·I=φ;
(b)存在一个汇结库所ο∈P,使得ο·=φ;并且
(c)每一个节点x∈P∪T都位于从I到ο的一条路径上。
其中:P是Petri网库所集合,T是变迁集合,F是流关系集合。
f.基础组件层
本层包含工作流管理系统所依赖的第三方组件包及基础编程框架。本层被工作流管理系统中所有应用组件所共有。常见的第三方组件包有:ApacheCommons、Spring、Struts、Ibatis、Log4J、Dom4J等。
通过以上的系统层次划分,实现将引擎内核调度计算与其它功能剥离,以达到提高工作流管理系统的可扩展性和可维护性的效果。本发明中的工作流管理系统的运行过程如图2所示,包括以下步骤:
步骤1:启动流程实例,创建流程执行上下文。启动流程实例由外部应用系统或工作流系统的外设层通过对对外接口层提供的接口进行调用来发起,其中,流程执行上下文由流程模板信息、流程实例信息、业务数据三部分组成。流程模板信息为符合XPDL标准的XML。流程实例信息必须包括流程实例唯一标识、实例状态和创建者的信息。业务数据根据实际业务需要而变化。
步骤2:执行扩展组件,完成流程实例初始化。引擎核心通知所有扩展组件,扩展组件各自根据流程执行上下文决定自身是否应该执行。本步骤应至少存在一个支撑型扩展组件为流程第一个活动创建工作项。
步骤3:执行扩展组件,完成活动执行前的初始化。引擎核心通知所有扩展组件,扩展组件各自根据流程执行上下文决定自身是否应该执行。本步骤应至少存在一个支撑型扩展组件为要执行的工作项变更状态为“执行中”,并更新工作列表,通知执行者。
步骤4:执行流程当前活动。引擎核心通知所有扩展组件,扩展组件各自根据流程执行上下文决定自身是否应该执行。本步骤应至少存在一个支撑型扩展组件为要执行的工作项变更状态为“已完成”,并更新工作列表。
步骤5:执行扩展组件,完成活动执行后的处理。引擎核心通知所有扩展组件,扩展组件各自根据流程执行上下文决定自身是否应该执行。
步骤6:引擎核心根据流程定义及当前工作项信息计算后续可能启动的活动,返回活动列表。
步骤7:执行扩展组件,完成对后续活动列表的过滤。引擎核心通知所有扩展组件,扩展组件各自根据流程执行上下文决定自身是否应该执行。本步骤执行完成后返回活动列表。
步骤8:判断是否存在后续活动,若存在后续活动则执行步骤9,否则执行步骤10。
步骤9:引擎核心依次将后续活动设置为当前活动,并执行步骤3。
步骤10:执行扩展组件,完成流程实例结束前处理。引擎核心通知所有扩展组件,扩展组件各自根据流程执行上下文决定自身是否应该执行。本步骤应至少存在一个支撑型扩展组件实现将流程状态置为“结束”的功能。
本发明的技术方案具有以下优点:
a.对工作流管理系统进行扩展不影响流程调度逻辑,使工作流管理系统在满足用户特殊需求的同时,保证系统运行的稳定性;
b.工作流管理系统中的各种功能均作为扩展组件,通过标准的接口与流程引擎核心交互,使得工作流管理系统中的各种功能可以随时插入或拔除,系统修改维护更方便;
c.系统层次结构清晰,当工作流管理系统进行扩展或修改时,使用工作流管理系统的应用不需要进行修改。
附图说明
图1:系统总体结构图
图2:系统运行流程图
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面以本发明中的工作流管理系统应用于一种办公自动化系统为实施例子,进一步阐明本发明。
办公自动化系统使用工作流管理系统实现公文流转处理的业务需求,办公自动化系统通过工作流管理系统的对外接口层与之进行交互。
工作流管理系统通过增加扩展组件的方式实现办公自动化系统的需求,工作流管理系统本身的外设层、对外接口层、交互代理、引擎内核以及基础组件层均不需要作任何改变。工作流管理系统需要实现的扩展组件包括:
列表中系统默认的组件为工作流管理系统中已经具备的组件,不需要另行开发,而列表中非系统默认的组件需要通过开发实现。
Claims (2)
1.一种采用微内核架构实现的工作流管理系统,其特征在于系统结构包括:
(1)外设层:流程引擎与外界交互的扩展层,通过扩展使外界可以通过JMS/WebService等多种协议与流程引擎交互;
(2)对外接口层:实现WFMC规定的WAPI;
(3)交互代理:实现WAPI与流程引擎间的通信;
(4)扩展实现层:流程引擎的扩展组件及其接入流程引擎的标准接口,扩展组件分为三类:支撑型(Sustentive)、辅助型(Assistant)、增强型(Enactment);
(5)引擎内核:实现流程调度逻辑;
(6)基础组件层:为引擎运行提供基本的公共组件。
2.根据权利要求1所述的采用微内核架构实现的工作流管理系统,其特征在于:该工作流管理系统的核心仅包含流程调度相关的逻辑,其它功能均作为扩展组件,通过标准接口与核心进行交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510266443.XA CN105183441A (zh) | 2015-05-22 | 2015-05-22 | 一种采用微内核架构实现的工作流管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510266443.XA CN105183441A (zh) | 2015-05-22 | 2015-05-22 | 一种采用微内核架构实现的工作流管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105183441A true CN105183441A (zh) | 2015-12-23 |
Family
ID=54905544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510266443.XA Pending CN105183441A (zh) | 2015-05-22 | 2015-05-22 | 一种采用微内核架构实现的工作流管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183441A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408272A (zh) * | 2016-10-26 | 2017-02-15 | 金航数码科技有限责任公司 | 一种基于分布式部署的跨系统流程引擎协作系统及方法 |
CN108305010A (zh) * | 2018-02-10 | 2018-07-20 | 西安精雕软件科技有限公司 | 一种工作流引擎系统及其跨平台、跨应用的流程推进方法 |
CN110096282A (zh) * | 2019-05-15 | 2019-08-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于插件化架构的数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216770A (zh) * | 2008-01-10 | 2008-07-09 | 厦门三五互联科技股份有限公司 | 一种工作流引擎 |
CN101286215A (zh) * | 2008-02-22 | 2008-10-15 | 山东中创软件工程股份有限公司 | 同时支持人工流和自动流的工作流引擎 |
CN102646236A (zh) * | 2012-03-30 | 2012-08-22 | 云南远信科技有限公司 | 一种流程引擎平台 |
US8954399B1 (en) * | 2011-04-18 | 2015-02-10 | American Megatrends, Inc. | Data de-duplication for information storage systems |
-
2015
- 2015-05-22 CN CN201510266443.XA patent/CN105183441A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216770A (zh) * | 2008-01-10 | 2008-07-09 | 厦门三五互联科技股份有限公司 | 一种工作流引擎 |
CN101286215A (zh) * | 2008-02-22 | 2008-10-15 | 山东中创软件工程股份有限公司 | 同时支持人工流和自动流的工作流引擎 |
US8954399B1 (en) * | 2011-04-18 | 2015-02-10 | American Megatrends, Inc. | Data de-duplication for information storage systems |
CN102646236A (zh) * | 2012-03-30 | 2012-08-22 | 云南远信科技有限公司 | 一种流程引擎平台 |
Non-Patent Citations (2)
Title |
---|
刘灿勋: "基于Agent微内核工作流引擎及建模工具的研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
宦明安: "基于Web服务的轻量级工作流引擎研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408272A (zh) * | 2016-10-26 | 2017-02-15 | 金航数码科技有限责任公司 | 一种基于分布式部署的跨系统流程引擎协作系统及方法 |
CN106408272B (zh) * | 2016-10-26 | 2019-05-21 | 金航数码科技有限责任公司 | 一种基于分布式部署的跨系统流程引擎协作系统及方法 |
CN108305010A (zh) * | 2018-02-10 | 2018-07-20 | 西安精雕软件科技有限公司 | 一种工作流引擎系统及其跨平台、跨应用的流程推进方法 |
CN108305010B (zh) * | 2018-02-10 | 2021-07-20 | 西安精雕软件科技有限公司 | 一种工作流引擎系统及其跨平台、跨应用的流程推进方法 |
CN110096282A (zh) * | 2019-05-15 | 2019-08-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于插件化架构的数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10365626B2 (en) | Extending the functionality of a programmable logic controller (PLC) with apps without changing the PLC programming | |
JP5140067B2 (ja) | ワークフローにおいて継続をモデル化するフレームワーク | |
CN102375731B (zh) | 一种免编码集成应用软件平台系统 | |
TWI713846B (zh) | 領域模組運算單元,含有一企業之一模型之系統,單板運算單元,運算單元之網格,提供傳播可追溯性之方法,及非暫時性電腦程式產品 | |
CN104281906A (zh) | 一种业务流程中的流程引擎实现方法及其流程引擎系统 | |
US20120066686A1 (en) | Demand response system incorporating a graphical processing unit | |
US20070156487A1 (en) | Object model on workflow | |
CN106681820B (zh) | 基于消息组合的可扩展大数据计算方法 | |
CN102103497A (zh) | 有限状态机执行装置和方法、在应用中的建立和使用方法 | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN104102949A (zh) | 一种分布式工作流装置及其处理工作流的方法 | |
US10445141B2 (en) | System and method supporting single software code base using actor/director model separation | |
CN102375743B (zh) | 一种基于模型和模板开发soa系统的方法 | |
CN107203421A (zh) | 一种云计算环境中自适应的组合工作流方法 | |
CN105183441A (zh) | 一种采用微内核架构实现的工作流管理系统 | |
CN103152433B (zh) | 一种分布式服务端的使用、交互和请求处理方法 | |
CN108876074B (zh) | 一种适用于多类资源申请审批的通用调度方法 | |
US20190007489A1 (en) | System and Methods for Running a Condition-Triggered Process Involving Movement of Objects from a Node to at least one other Node Until a Condition with a Set of Parameters Are Met By An Event | |
US11592797B2 (en) | Control program and method for operating an engineering system for an industrial process automation system | |
CN100547967C (zh) | 网格作业管理器与网格作业管理方法 | |
CN103971225A (zh) | 一种工作流动态扩展方法及系统 | |
CN101996091B (zh) | 实现支持多种流程运行的图形执行虚拟机系统及其方法 | |
US20120203587A1 (en) | Integrated engineering and workflow system for engineering and executing workflows of mechatronic objects | |
CN1316408C (zh) | 工作流程管理系统及判断其中信令事件收件人的方法 | |
Grambow et al. | Supporting augmented reality industry 4.0 processes with context-aware processing and situational knowledge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151223 |
|
WD01 | Invention patent application deemed withdrawn after publication |