新接项目,要开发一个工作流引擎平台来实现业务协同。以前只知道一点工作流的概念,动手之前先补充下这方面的知识吧。
几个比较重要的概念:
1. 工作流(Workflow)
就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。
工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的河水就是待审核的表单。
工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。
2. 工作流引擎
是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。
3. WFMC:http://www.wfmc.org/
成立于1993年,工作流管理联盟(Work Flow Management
Coalition )是一个由涉及工作流和业务流程管理的推广学者(adopters)、开发工程师、顾问、分析师、大学和研究团体的全球性组织。该组织创建并完善了工作流的相关标准,开拓了相关市场,是唯一的致力于工作流标准化的专业组织。该组织推出了工作流XML(Wf-XML)和XML过程定义语言(XPDL) ,现在有超过80种有名的解决方案中使用了这两种语言来存储和交换过程模型。
4. XPDL
XPDL(XML Process Definition Language)是由Workflow Management Coalition所提出的一个标准化规格,使用XML文件让不同的工作流程软件能够交换商业流程定义。
XPDL是一个通用的框架,这也是XPDL的一个重要特性,这个框架可以支持开发者的特殊使用目的,而对外表现形式却相同。开发者的实现和它的外部接口可以独立分开,因为不管你如何实现的,采用什么图形描述(状态图,活动图等),只要外部接口符合XPDL 规范,那么就可以保持相同的表示形式。希望在WFMC 接口1的未来发布版本中,能够包含现版本中缺少的属性。
几个流行的JAVA开源工作流引擎:
最为流行的是JBPM和OSWorkflow,其他的如shark、JWFD、OpenWFE
1. Shark
Shark的靠山是Enhydra。Enhydra开发过j2ee应用服务器、o/r mapping工具以及工作流引擎等等。Shark的持久层采用Enhydra自己的DODS来实现。
Shark的流程定义语言是XPDL, XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是基于UML1.x中的活动图的概念。活动图适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。Shark的如来神掌是活动图。
2.JBPM
Jbpm的靠山是jboss。Jbpm3和JBPM4的持久层采用hibernate3来实现。Jbpm3的图形化流程定义通过嵌入到jboss eclipse IDE中实现图形化编辑。
Jbpm结合应用了状态图+活动图+PetriNet的知识,而且它的活动图还是UML2.0版的。UML2.0的活动图中,节点不叫活动(Activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。一个活动图展现一系列的动作,这些动作组成了活动。Jbpm把action也改名了,称为state。JBPM使用的状态图的概念有transition/event等。Jbpm来内部实现中还采用了PetriNet的概念,如token,signal等。
JBPM提供图形化绘制流程描述文件便于工单流开发并提高了用户体验;
JBPM的扩展支持做得很好便于与各种开源矿建结合,但不足之初在于持久层只能使用hibernate3及hibernate所支持的数据库.
JBPM对工作流中所需的各种应用提供很好的支持为开发应用提供方便,但JBPM的流程定义GPD插件与Eclipse支持不完善,目前jbpm4版本只支持Eclipse4.3版本,Jboss组织整合的IDE工具Red Hat Developer Studio又为收费软件.
JBPM应用前景被行业内人士很看好,被誉为顶替Shark和Osworkflow的新一代工作流引擎.
JBPM4.0版本目前还是阿尔发版,还没有发展成为稳定的发布版本,并且现在一直在不停的重构,目前还不便于极力推广应用,而JBPM4.0较之JBPM3.0又做了很大的改进和变动,转而使用JBPM3.0有点得不偿失.JBPM4.0相关技术应用和文档支持都还不够,使用该框架还有待时日,需要静观其变.
3. OSWorkflow
Osworkflow的靠山是opensymphony。该组织开发过很多,webwork2就是其中之一.
Osworkflow有个重要概念是State,它的如来神掌是FSM。Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action。
Osworkflow应用相当灵活,被誉为最灵活的工作流引擎, 几年前osworkflow为国内的工作流引擎使用率最高的工作流引擎,它可以灵活的将流程和流程控制逻辑结合起来.
Osworkflow不支持较好的图形化流程定义模式,流程定义文件必须由专业的技术开发人员开发和维护,但是在项目开发过程中可以极大的提高开发效率.在各种轻量级应用中可以灵活应用该套工作流框架.
简单总结来说:Shark的优势时使用了WFMC定义的工作流标准XPDL,为不同工作流引擎间的交互提供了可能性;Osworkflow的优点的灵活,但是前期要做很多设计工作,跟Spring等web框架结合的也比较好;而JBPM的优势是功能全,其目前的开发环境也比较活跃,但是有一定的复杂性。
分享到:
相关推荐
Java开源工作流引擎 Java开源工作流引擎是指使用Java语言开发的开源工作流引擎系统,这些系统可以帮助企业或组织自动化业务流程,提高工作效率和效率。以下是多种Java开源工作流引擎的简介: 1. Willow:Willow是...
Java开源工作流引擎Snaker是一款高效、灵活且易用的工作流引擎,专为Java开发者设计。它提供了完整的流程定义、执行、监控以及管理功能,帮助开发者快速构建具有工作流功能的应用系统。Snaker1.01是非Maven版本,这...
Java平台上的工作流引擎在企业级应用中扮演着至关重要的角色,它们帮助企业自动化业务流程,提高效率。本文将深入分析四个主流的开源工作流引擎:Shark、osworkflow、jbpm和jflow。 首先,Shark是Enhydra项目的一...
基于Flowable的低代码开源工作流引擎设计源码,该项目包含662个文件,主要文件类型有261个java源文件,229个javascript文件,以及70个css样式文件。此外,还包括59个svg图像文件,8个xml配置文件,以及8个sql数据库...
Java开源工作流项目是开发企业级应用的重要工具,它们提供了自动化业务流程的框架,使得复杂的业务逻辑得以有序、高效地执行。以下是对标题和描述中提及的7种开源工作流项目的详细解读,以及它们在分布式计算环境中...
JsonFlow工作流基于自研的流程设计器 + 自研后端Java工作流引擎,组成了一套纯JSON数据交互的自研工作流引擎系统 + 工作流管理系统。本系统无论前端还是后端,其学习成本明显低于开源工作流引擎及附带流程设计器,...
以上这些开源工作流引擎为 Java 开发者提供了丰富的选择,可以根据具体项目需求选择合适的工作流解决方案。它们在功能、性能、集成性、易用性等方面各有优势,适应不同的应用场景。通过深入学习和实践,开发者可以...
Java工作流引擎的实现与设计涉及到多个技术领域,包括网络编程、数据库交互、对象模型化以及事件驱动编程等。在此,我们将深入探讨这些知识点。 首先,工作流引擎的基本概念是模拟并执行业务流程,它通过定义流程...
JWFDv0.96是一个开源的工作流引擎设计,其核心目标是通过自定义的流程拓扑数学模型和一系列SQL-API原子操作函数,构建一个流程自动运行控制器。该控制器负责用户对流程实例的操控,使得流程自动化运行,减少了人为...
具体到本工作流引擎的技术架构,“基于flowable”的描述透露出其核心使用了Flowable这个开源的工作流和业务流程管理(BPM)平台。Flowable是一个轻量级的业务流程引擎,它遵循Java平台和Java持久化API,同时兼容BPMN ...
【驰骋JFlow】是一款开源的企业BPM低代码快速开发平台,纯国产,自主研发,拥有强大的工作流引擎CCFlow/JFlow、表单引擎CCForm以及丰富的控件库,可理解、低代码、低配置、可视化,只需“拖拽几下”即可快速构建复杂...
本文将深入探讨基于SSH(Struts, Spring, Hibernate)的工作流解决方案,以及国内外JAVA开源工作流引擎的选择与评估。 #### 基于SSH的工作流解决方案 SSH框架是Java Web开发领域中的一种经典组合,由Struts(用于...
在Java平台上,有很多开源的工作流引擎框架,如Activiti、jBPM、Flowable等,这些框架为开发者提供了强大的工具来实现复杂的工作流程管理。本文将深入探讨基于Java的工作流引擎开发框架及其核心概念。 一、工作流...
驰骋dotNet与java工作流引擎-表结构,阐释了CCBPM开源工作流引擎的主要表结构。
本文旨在对比六种工作流引擎的基本信息,其中包括三种开源引擎与三种商业引擎,以帮助读者更好地了解各引擎的特点与适用场景。 #### 开源工作流引擎 ##### Shark - **基本信息**: - **开源状况**:开源 - **...
Activiti工作流引擎是一款强大的、开源的企业级流程自动化平台,被广泛用于构建业务流程管理系统(BPM)。在本文中,我们将深入探讨Activiti的核心概念、如何在IntelliJ IDEA(简称IDEA)环境下进行开发,以及与...
在Java中,我们可以利用开源的工作流引擎如Activiti、jbpm或Flowable来实现这一目标。 Activiti是基于BPMN 2.0标准的轻量级工作流引擎,它提供了一套完整的API和丰富的图形化设计工具,使得开发者能够方便地创建和...
【标题】"基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码设计" 涵盖了两个主要的技术栈:后端的Spring Boot框架和前端的Vue.js 3框架,以及自研的工作流引擎。这个项目可能是为了提供一个高效、便捷的开发...
jbpm工作流引擎基于J2EE的轻量级,纯java,开源的工作流管理系统。