开源工作流框架及平台集成分析报告
- 格式:doc
- 大小:94.50 KB
- 文档页数:6
工作流开发框架(原创版)目录1.工作流开发框架概述2.工作流开发框架的优点3.工作流开发框架的缺点4.如何选择适合自己的工作流开发框架5.结论正文1.工作流开发框架概述工作流开发框架是一种用于实现工作流(即一系列任务有序执行的过程)的软件工具。
工作流开发框架可以帮助开发者快速构建工作流应用,简化工作流实施过程,降低开发和维护成本。
工作流开发框架通常具有很好的扩展性和可定制性,可以根据实际需求进行自定义。
2.工作流开发框架的优点(1)提高开发效率:工作流开发框架提供了丰富的组件和 API,可以快速搭建工作流应用,减少重复开发工作。
(2)易于维护:工作流开发框架具有清晰的模块划分和良好的代码结构,便于进行代码维护和升级。
(3)灵活性高:工作流开发框架通常支持多种工作流模型和引擎,可以根据实际需求进行选择和切换。
(4)可扩展性强:工作流开发框架具有良好的扩展性,可以根据项目需求进行插件和功能的扩展。
3.工作流开发框架的缺点(1)学习成本:虽然工作流开发框架可以提高开发效率,但是对于初学者来说,需要花费一定的时间学习和熟悉框架的使用。
(2)兼容性问题:工作流开发框架可能会涉及到多种系统和平台,可能存在兼容性问题,需要进行额外的测试和调整。
4.如何选择适合自己的工作流开发框架在选择工作流开发框架时,需要考虑以下几个方面:(1)项目需求:根据项目的具体需求,选择适合的工作流模型和引擎。
(2)技术栈:考虑团队的技术栈和开发经验,选择易于上手和工作流开发框架。
(3)社区支持:选择具有良好社区支持的工作流开发框架,便于解决在使用过程中遇到的问题。
(4)扩展性:考虑工作流开发框架的扩展性,以便于后期功能的扩展和升级。
5.结论总的来说,工作流开发框架是一种提高开发效率、降低开发成本的工具。
在选择工作流开发框架时,需要综合考虑项目需求、技术栈、社区支持和扩展性等因素,选择适合自己的框架。
BPMN⼯作流的基本概念!详解⼯作流框架Activiti⼯作流⼯作流简介⼯作流(Workflow): ⼯作流就是通过计算机技术对业务流程进⾏⾃动化管理。
实现多个参与者按照预定的流程去⾃动执⾏业务流程。
定义: 通过计算机对业务流程⾃动化执⾏管理主要解决的是: 使在多个参与者之间按照某种预定义的规则⾃动进⾏传递⽂档,信息或任务的过程.从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现⼯作流管理系统的⽬标:管理⼯作的流程以确保⼯作在正确的时间被期望的⼈员所执⾏在⾃动化进⾏的业务过程中插⼊⼈⼯的执⾏和⼲预⼯作流框架:Activiti,JBPM,OSWorkFlow,WorkFlow⼯作流框架底层需要有数据库提供⽀持⼯作流术语⼯作流引擎ProcessEngine对象: 这是Activiti⼯作的核⼼.负责⽣成流程运⾏时的各种实例及数据,监控和管理流程的运⾏BPM业务流程管理:是⼀种以规范化的构造端到端的卓越业务流程为中⼼,以持续的提⾼组织业务绩效为⽬的的系统化⽅法常见商业管理教育如EMBA,MBA等均将BPM包含在内BPMN业务流程建模与标注:这些图如何组合成⼀个业务流程图(Business Process Diagram)讨论BPMN的各种的⽤途:包括以何种精度来影响⼀个流程图中的模型BPMN作为⼀个标准的价值BPMN未来发展的远景流对象⼀个业务流程图有三个流对象的核⼼元素事件⼀个事件⽤圆圈来描述,表⽰⼀个业务流程期间发⽣的东西事件影响流程的流动.⼀般有⼀个原因(触发器)或⼀个影响(结果)基于它们对流程的影响,有三种事件:开始事件,中间事件,终⽌事件活动⽤圆⾓矩形表⽰,⼀个流程由⼀个活动或多个活动组成条件条件⽤菱形表⽰,⽤于控制序列流的分⽀与合并。
可以作为选择,包括路径的分⽀与合并内部的标记会给出控制流的类型Activiti开源⼯作流框架Activiti简介Activiti是⼀个开源的⼯作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进⾏流程调度Activiti 作为⼀个遵从 Apache 许可的⼯作流和业务流程管理开源平台,其核⼼是基于Java的超快速,超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌⼊性和可扩展性,同时更加强调⾯向业务⼈员Activiti 流程引擎重点关注在系统开发的易⽤性和轻量性上.每⼀项BPM业务功能Activiti流程引擎都以服务的形式提供给开发⼈员.通过使⽤这些服务,开发⼈员能够构建出功能丰富,轻便且⾼效的BPM应⽤程序Activiti服务结构Activiti系统服务结构图核⼼类:ProcessEngine: 流程引擎的抽象,可以通过此类获取需要的所有服务服务类:XxxService: 通过ProcessEngine获取,Activiti将不同⽣命周期的服务封装在不同Service中,包括定义,部署,运⾏.通过服务类可获取相关⽣命周期中的服务信息RepositoryServiceRepository Service提供了对repository的存取服务Activiti中每⼀个不同版本的业务流程的定义都需要使⽤⼀些定义⽂件,部署⽂件和⽀持数据(例如BPMN2.0XML⽂件,表单定义⽂件,流程定义图像⽂件等),这些⽂件都存储在Activiti内建的Repository中RuntimeServiceRuntime Service提供了启动流程,查询流程实例,设置获取流程实例变量等功能.此外它还提供了对流程部署,流程定义和流程实例的存取服务TaskServiceTask Service提供了对⽤户Task和Form相关的操作.它提供了运⾏时任务查询,领取,完成,删除以及变量设置等功能HistoryServiceHistory Service⽤于获取正在运⾏或已经完成的流程实例的信息,与Runtime Service中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化FormService使⽤Form Service可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单Activiti中的流程和状态Task均可以关联业务相关的数据IdentityServiceIdentity Service提供了对Activiti系统中的⽤户和组的管理功能Activiti中内置了⽤户以及组管理的功能,必须使⽤这些⽤户和组的信息才能获取到相应的TaskManagementServiceManagement Service提供了对Activiti流程引擎的管理和维护功能这些功能不在⼯作流驱动的应⽤程序中使⽤,主要⽤于 Activiti 系统的⽇常维护核⼼业务对象:org.activiti.engine.impl.persistence.entity包下的类,包括Task,ProcessInstance,Execution等根据不同职责实现相应接⼝的⽅法(如需要持久化则继承PersistentObject接⼝),与传统的实体类不同Activiti组件Activiti上下⽂组件Context: ⽤来保存⽣命周期⽐较长,全局性的信息,类似Application.主要包括如下三类:CommandContext: 命令上下⽂-保存每个命令必要的资源,如持久化需要的sessionProcessEngineConfigurationImpl: 流程引擎相关配置信息-整个引擎全局的配置信息.如数据源DataSource等.该对象为单例,在流程引擎创建的时候初始化ExecutionContext: 持有ExecutionEntity对象持久化组件:Activiti使⽤mybatis作OR映射,并在此基础上增加设计了⾃⼰的持久化框架在流程引擎创建时初始化,顶层接⼝Session,SessionFactorySession有两个实现类:DbSqlSession: 负责sql表达式的执⾏AbstractManager: 负责对象的持久化操作SessionFactory有两个实现类:DbSqlSessionFactory: 负责DbSqlSession相关操作GenericManagerFactory: 负责AbstractManager相关操作Event-Listener组件:Activiti允许客户代码介⼊流程执⾏,提供了事件监听组件监听的事件类型:TaskListenerJavaDelegateExpressionExecutionListenerProcessEngineConfigurationImpl持有DelegateInterceptor的某个实例,⽅便调⽤handleInvocation Cache组件DbSqlSession中有cache的实现Activiti基于List和Map来做缓存:如查询时先查缓存,没有则直接查询并放⼊缓存异步执⾏组件Activiti可以执⾏任务,JobExecutor为其核⼼类,JobExecutor包含三个主要属性:JobAcquisitionThreadBlockingQueueThreadPoolExecutor⽅法ProcessEngines在引擎启动时调⽤JobExecutor.start,JobAcquisitionThread 线程即开始⼯作,其run⽅法不断循环执⾏AcquiredJobs中的job,执⾏⼀次后线程等待⼀定时间直到超时或者JobExecutor.jobWasAdded⽅法,因为有新任务⽽被调⽤。
电力企业生产系统集成总线平台简介电力企业生产系统集成总线平台是一个用于集成电力企业生产系统的平台。
该平台的目标是提供一个统一的接口和数据交换平台,帮助电力企业实现各个子系统之间的协同工作和数据共享。
1. 背景随着电力企业规模的不断扩大和业务的不断增加,电力企业内部出现了多个独立的子系统,每个子系统都具有特定的功能和数据结构。
这些子系统之间缺乏相互连接和数据交换的机制,导致了信息孤岛和工作效率低下的问题。
为了解决这些问题,电力企业开始寻找一种集成各个子系统的解决方案。
经过调研和评估,决定开发一个生产系统集成总线平台,用于连接和协调各个子系统。
2. 功能特点2.1 接口统一电力企业生产系统集成总线平台提供统一的接口,将各个子系统的功能封装成API,并为外部系统提供统一的接入点。
这样,外部系统只需要通过调用平台的接口,即可与各个子系统进行通信和数据交换。
2.2 数据共享平台提供了一个数据中心,用于存储和管理各个子系统的数据。
通过平台提供的API,各个子系统可以将自己的数据上传到数据中心,并可以从数据中心获取其他子系统的数据。
这样,不同子系统之间就可以共享数据,实现信息共享和协同工作。
2.3 业务流程管理平台还提供了业务流程管理功能,用于定义和管理电力企业的业务流程。
通过平台提供的工作流引擎,可以自动化执行和监控各个业务流程,实现工作流程的自动化和可视化。
2.4 平安管理平台在接口和数据交换过程中,采用了多种平安措施,保障数据的平安性和完整性。
平台支持用户认证和授权,可以限制不同用户的访问权限,确保敏感数据的平安。
3. 技术实现电力企业生产系统集成总线平台采用了以下关键技术进行实现: -微效劳架构:平台采用微效劳架构,将各个子系统拆分成独立的效劳,并通过消息队列和REST API进行通信和数据交换。
- 数据中心:平台的数据中心采用缓存和数据库的结合,可以高效存储和管理大量的数据。
- 工作流引擎:平台集成了开源的工作流引擎,可以根据定义的业务流程自动执行和监控工作流程。
开源工作流框架对比工作流是基于业务流程的一种模型,它可以把业务流程组织成一个具有逻辑和规则的模型,从而指导业务工作的进行。
开源工作流把工作流进行了合理化、科学化的设计与组织,使其更能够满足现在的业务需求。
开源工作流可以帮助实现业务目标,通过计算机进行文档的传递,其使用非常广泛。
目前国内主要有几种开源工作流框架,下面我们简单地对比一下,帮助大家更深刻地了解开源工作流:1.JBPM:要想了解JBPM,首先要了解JBPM的简单定义,JBPM是指业务流程管理,它包含了整个业务流程管理过程中的工作流与服务协作,是一种灵活的、开源的管理模式。
JBPM可以把一些复杂的业务流畅简单化,让系统更加灵活运行,同时也很方便业务的跟踪、监控和管理,是一种很好的业务工作流框架模式。
2.OSWORKFLOW:这种框架是用java语言编写出来的,简单地说就是一种工作流引擎,其技术性非常强,它能满足用户多方面的需求。
用户可以根据自己的需要来设计一些简单或者是复杂的工作流,为企业业务流程管理服务。
这种工作流最大的优点是灵活简单,比较容易实现,能够满足当前市场对开源工作流的需求。
3.oa办公软件系统:这种工作流是符合相关标准的系统管理工作流软件,它也是由java编写出来的,其扩展性比较强,功能也多,还具有通用性的特点,可以用于完整的工作流管理系统中。
要说这种软件最大的特点,就是其功能模块比较多,比如说动态表单、可视化工作表、智能报表等等,不同的功能表可以帮助用户实现不同的功能,受到了用户的好评。
以上就是现在市场上比较常见的几种开源工作流管理模式,由此可见,不同的工作流模式其优势特点是不同的,不过这些工作流都能给企业业务流程管理起到一个很好的效果,受到了很多企业的欢迎。
在这几种工作流模式中,最值得一提的是JBPM,这种工作流是目前比较先进的,已经收到了很多企业的信赖。
目录说明.......................................................................................................................................... 错误!未定义书签。
JBPM (3)JBPM简介 (3)JBPM工作流程 (3)使用JBPM时的问题 (3)jBPM的优势 (4)JBPM小结 (4)OSWORKFLOW (5)OSWORKFLOW简介 (5)OSWORKFLOW工作流程 (5)OSWORKFLOW主要优势 (6)总结 (6)参考资料 (7)引言JBPMJBPM简介JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。
jBPM是公开源代码项目,它使用要遵循Apache License。
jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
随着jBPM加入JBoss组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。
JBPM工作流程1. jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。
只要是Hibernate支持的数据库,jBPM 就支持。
数据库的初始化可以由 jBPM自动完成,也可以通过ant generate.ddl任务生成SQL语句,在jBPM外部自己创建所需的表。
2. 使用jPdl定义工作流,生成processdinination.xml文件。
可以采用GUI工具gpdl,但目前只支持jBPM1.0,而且bug很多。
XML的DTD定义文件在jBPM下载包中。
3. Ant create.pde生成pde包的工作目录。
《深入Activiti流程引擎:核心原理与高阶实战》读书笔记目录一、流程引擎概述 (2)1.1 流程引擎的定义 (4)1.2 流程引擎的作用 (5)1.3 流程引擎的发展历程 (6)二、Activiti核心原理 (7)三、Activiti高阶实战 (9)3.1 案例介绍 (10)3.1.1 电商订单处理流程 (11)3.1.2 供应链协同流程 (13)3.2 高阶特性与应用场景 (15)3.2.1 全局异步任务处理 (17)3.2.2 事件子系统的扩展性 (19)3.2.3 分布式事务处理 (20)3.3 实战中的问题与解决方案 (21)3.3.1 数据一致性保证 (22)3.3.2 性能优化策略 (24)3.3.3 安全性与权限控制 (25)四、总结与展望 (27)4.1 本书总结 (28)4.2 展望未来 (29)4.2.1 Activiti的发展趋势 (30)4.2.2 对流程引擎技术的未来思考 (32)一、流程引擎概述流程引擎(Process Engine)是Activiti工作流引擎的核心组件,负责处理和执行业务流程。
在《深入Activiti流程引擎:核心原理与高阶实战》作者详细介绍了Activiti流程引擎的基本概念、架构以及关键组件,帮助读者更好地理解和使用这一强大的工作流引擎。
流程引擎主要用于管理、执行和监控业务流程。
它可以将业务流程定义为一系列任务和事件,并根据这些任务和事件的执行顺序来驱动整个流程的运行。
通过流程引擎,企业可以实现对业务流程的可视化管理、自动化执行和监控,从而提高工作效率、降低运营成本和提升客户满意度。
进程定义(Process Definition):用于描述业务流程的结构和规则,包括任务、事件、网关等元素。
一个进程定义可以对应一个或多个流程实例。
流程实例(Process Instance):表示一个正在执行的业务流程,由一个或多个任务组成。
每个任务都有一个唯一的ID,用于在后续处理中引用。
Fireflow工作流框架的研究与应用的开题报告开题报告一、选题背景随着信息时代的发展,各种企业在业务流程管理方面面临着越来越多的挑战。
因此,企业需要一种可以支持业务流程自动化、灵活性和可扩展性的高效工作流引擎。
工作流引擎的作用是对业务流程中的活动的执行进行自动化,这样可以加快业务流程的执行速度、提高效率和减少出错率。
在当前的工作流引擎领域,Fireflow工作流框架属于比较受欢迎的一种。
二、选题意义Fireflow工作流框架是一种开源的工作流引擎,具有很高的灵活性和可扩展性。
此外,它还支持BPMN 2.0标准和Web服务,使得它可以轻松地与其他系统进行集成。
本文的主要目的是调研Fireflow工作流框架的核心技术和应用场景,并探讨Fireflow工作流框架的优点以及如何有效地将其应用于企业业务流程中。
三、研究内容本文分为以下几个部分:1. Fireflow工作流框架的介绍2. Fireflow工作流框架的核心技术3. Fireflow工作流框架的应用场景4. Fireflow工作流框架的优点5. 如何将Fireflow工作流框架有效地应用于企业业务流程中四、预期成果本文计划研究和总结Fireflow工作流框架的相关技术和应用场景,探讨其优点和如何有效地将其应用于企业业务流程中。
研究成果将提供有关Fireflow工作流框架的详细信息,以便企业更好地了解和掌握该框架,从而更好地解决业务流程自动化的问题。
五、研究方法1.收集和分析Fireflow工作流框架相关的资料和文献2.对Fireflow工作流框架的核心技术和应用场景进行调研和分析3.对比和分析不同的工作流引擎,并结合实际案例分析Fireflow工作流框架的优劣4.总结Fireflow工作流框架的优点和不足之处,提出相应的改进方案5.提出如何有效地将Fireflow工作流框架应用于企业业务流程中的方法和策略。
六、进度安排本文的研究计划分为以下几个阶段:1.文献调研和收集: 2021年7月-8月2.框架原理和核心技术研究: 2021年9月-10月3.应用场景和优点分析: 2021年11月-12月4.改进方案和应用方法: 2022年1月-2月5.撰写论文和答辩准备: 2022年3月-4月七、参考文献1. 朱志伟, Fireflow工作流引擎及Web框架的集成, 中国信息技术, 2011.2. Arno Haase, Carsten Ziegler, Developing Workflows with the FireFlow Workflow Engine, 2009.3. 朱志伟, 基于BPMN的Fireflow工作流引擎的设计与实现, 电子技术与软件工程, 2010.4. 李昊, 使用FireFlow工作流引擎实现业务流程自动化, 华南理工大学硕士学位论文, 2014.5. 程峰, 企业流程自动化技术研究, 科技论坛, 2012.。
工作流是企业管理中的重要工具,它能够帮助企业优化流程、提高工作效率,以及减少人力成本。
在工作流开发中,Flowable 是一种优秀的开源工作流引擎,它提供了强大的功能和灵活的扩展性,适用于各种场景的工作流开发。
在实际项目中,我们对Flowable进行了深入的研究和应用,并总结出了一些经验和思考,希望能够与大家共享。
一、了解Flowable1. Flowable是一款轻量级、易于集成的Java工作流引擎,它遵循BPMN2.0标准,支持流程模型的建立、部署和执行。
Flowable提供了丰富的API和插件,可以方便地与其他系统集成,满足各种复杂的业务需求。
2. 在工作流开发中,我们首先需要对Flowable的基本概念有一定的了解,包括流程定义(Process Definition)、流程实例(Process Instance)、任务(Task)、执行流(Execution)等。
只有深入理解这些概念,才能够更好地应用Flowable进行工作流的开发和管理。
二、流程建模与部署1. 流程建模是工作流开发的第一步,它决定了整个流程的执行逻辑和流程参与者。
在Flowable中,我们可以使用Flowable Modeler进行流程建模,通过简单直观的拖拽方式,定义流程中的各个环节和流程之间的关系,同时可以设置流程的属性、变量和事件监听器等。
2. 部署是流程建模的延续,通过Flowable提供的API或者可视化的管理工具,我们可以将设计好的流程定义部署到Flowable引擎中,使得流程可以被执行。
Flowable支持动态部署和热部署,能够在不停机的情况下更新流程定义,保证系统的稳定性和灵活性。
三、流程执行与任务管理1. 流程执行是工作流的核心,Flowable通过执行引擎驱动流程的执行,根据定义好的流程模型,自动跟踪和控制流程的执行流程,确保流程按照预期的方式执行。
Flowable提供了完善的历史数据记录和查询功能,可以方便地对流程执行情况进行监控和分析。
沈阳新一代信息技术有限公司工作流引擎技术调研报告技术文档董威2016/3/14目录一、背景 (2)二、目的 (2)三、需求及简介 (2)1 . 需求 (2)2. 简介 (3)四、详细介绍 (3)1.Snaker (3)2.Activiti (5)3.JBPM (7)4.UFLO (8)五.技术实现总结 (9)六.附件 (10)一、背景将业务流程的定义,审批从业务系统中分离出来,统一进行规划与管理。
二、目的对工作流引擎的各种实现技术进行统一的甄别,确定适合项目需求,和现应用技术进行良好集成,学习成本相对较低的工作流引擎。
三、需求及简介工作流是一项分离业务操作和系统流程的技术。
工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Definition)、工作流引擎(Engine) 四部分组成。
➢实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。
例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。
➢参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;➢流程定义是预定义的工作步骤,它规定了实体流动的路线。
它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者;➢工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制前三个要素是静态的,而第四个要素是动态的,它将前三者结合起来,是工作流的核心组成元素。
1 . 需求所选工作流引擎需实现以下功能。
➢具有强大的流程设计器。
➢流程定义。
可自行灵活定义流程图,并达到流程变化时代码改动量尽可能少。
➢流程表单设计灵活。
➢流程审批节点灵活定义。
➢流程各节点审批人定义。
可支持会签。
➢可支持批量审批。
➢独立于业务系统,需融合时简单灵活。
➢网络资料丰富,运行效率高,学习成本相对较低。
➢需保存每个步骤的数据,方便实现流程的回退,撤消等操作。
开源工作流框架及平台集成分析报告
目录
1.Java主要开源工作流列表 (1)
1.1.jBpm (1)
1.2.OSWorkflow (1)
1.3.Enhydra Shark (1)
1.4.Activiti5 (1)
1.5.OpenWFE (1)
1.6.Werkflow (1)
1.7.OFBiz (2)
1.8.Flow4J (2)
1.9.ObjectWeb Bonita (2)
1.10.OBPM (2)
2.四大开源工作流框架分析 (2)
2.1.JBpm (2)
优点 (2)
缺点 (3)
2.2.OSWorkflow (3)
优点 (3)
缺点 (3)
2.3.Enhydra Shark (3)
优点 (3)
缺点 (3)
2.4.Activiti5 (4)
优点 (4)
缺点 (4)
3.与统一开发平台集成 (4)
3.1.流程定义插件集成 (4)
3.2.核心包及jar包集成 (4)
3.3.部署方式 (4)
3.4.版本选择与维护问题 (5)
1.Java主要开源工作流列表
1.1. jBpm
jBpm是一个灵活可扩展的工作流管理系统。
作为jBpm运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中。
jBpm将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。
1.2. OSWorkflow
OSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业应用程序中。
它提供了许多的持久化API支持包括:EJB,Hibernate,JDBC和其它。
1.3. Enhydra Shark
Shark完全基于WfMC和OMG标准,使用XPDL作为工作流定义语言。
流程和活动的存储使用Enhydra DODS(一个开源OR映射工具)。
1.4. Activiti5
Activit5继承了jBpm4的所有优点,支持最新BPMN2.0规范,实现了流程的可视化以及创新的Activiti Cycle协作组件,此外,通过与Mule的集成加强了其集成能力。
1.5. OpenWFE
OpenWFE是一个开放源码的Java工作流引擎。
它是一个完整的业务处理管理套件:一个引擎,一个工作列表,一个Web界面和一个反应器(存放自动代理)。
可以与应用程序很好的给合。
1.6. Werkflow
Werkflow是一个灵活可扩展的基于流程和状态的工作流引擎。
它的目标是满足可以想象的所有工作流程,从企业级的业务流程到小范围的用户交互流程。
通过使用可插拔和分层结构,可以方便地容纳各种工作流语义.
1.7. OFBiz
OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。
OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。
包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。
1.8. Flow4J
Flow4J是一个可在Eclipse平台下以拖放的方式进行工作流建模的插件.。
1.9. ObjectWeb Bonita
Bonita 是一个符合WfMC规范、灵活的协同工作流系统。
对于各种动作如流程概念建模、定义、实例化、流程控制和用户交互等提供了全面的集成图形工具。
100% 基于浏览器、使用SOAP和XML数据绑定技术的Web Services封装了已有的工作流业务方法并将它们以基于J2EE的Web Service形式发布。
1.10. OBPM
OBPM是一个开源,轻量级的BPM系统。
它的目标是让非IT人员也可以轻松构建IT 业务处理流程。
OBPM内建工作流引擎(Workflow Engine), Form构建器,Report设计器。
OBPM支持浏览器(IE/Firefox)做为客户端,同时还提供了强大的图形客户端。
2.四大开源工作流框架分析
2.1. JBpm
优点
1、JBpm是最适合扩展的代表,是在所有开源引擎中最适宜被商业化应用的一款;
2、JBpm使用了开源框架Hibernate3, 支持当前大多数流行的数据库,针对不同数据库
有一个对应的初始化脚本文件.
3、JBpm将数据的管理职能分离出去,自己专注于商务逻辑的处理
4、使用Jpdl流程定义语言,直观易懂,可以手工修改,并且有一个Eclipse流程定
义插件。
5、文档丰富,用户群最大,开源组织十分活跃,被jboss收购后发展趋势良好;
缺点
1、Eclipse流程定义插件不开源;
2、Hibernate3做持久化层,会产生冗余表和数据;
3、JBpm3、JBpm
4、JBpm5版本互不兼容,发展趋势不明确;
2.2. OSWorkflow
优点
1、OSWorkflow是最轻量型的代表,也是一款非常灵活和低级别定位的工作流引擎的
实现框架,可视化图标的流程在osworkflow 里都可以用代码实现;
2、OSWorkflow 有着非常优秀的灵活性,它能为应用程序开发者提供集成,也能与现
有的代码和数据库进行集成;
3、OSWorkflow基于Action驱动,符合框架开发人员的操作方式及编程习惯;
缺点
1、实现一个工作流系统非常繁琐,每一个流程步骤实现均需要代码改变状态字段;入
门难度较高;
2、组件功能匮乏,复杂流程项目需要基于其引擎做大量的二次开发,不适用;
3、配置项和开发代码量相对较多,后期维护成本较高;
2.3. Enhydra Shark
优点
1、工作流体系最为完备和复杂,秉承“模块化”的思想,比较容易扩展;
2、代码量较少,易于阅读、易于改写、易于维护;
3、有一个Jawe来图形化定义流程,图形化功能相对较强,可以编辑活动变量,流程
逻辑控制属性.
缺点
1、相比其他完全开源的框架,Shark2.0后,很多组件、文档商业化,需要付费;
2、版本更新慢,代码也不再按照开源方式来完成,商业化的定位限制了其发展。
2.4. Activiti5
优点
1、Activiti最大的优势是采用了PVM(流程虚拟机),支持BPMN2.0规范及其之外的
流程格式;
2、与外部服务有良好的集成能力扩展,通过与Mule的集成加强了其集成能力;
3、继承了jBpm4的所有优点,实现了流程的可视化以及创新的Activiti Cycle协作
组件;
4、对流程引擎运行期实例提供管理及监控的Web控制台。
缺点
1、数据持久层采用MyBatis3,没有遵循JPA规范;网络上反应“回退功能”实现起来
比较困难;
2、核心是BPMN 2.0 的流程引擎,BPMN2规范发展的比较慢,语言本身也过于复杂
可读性差。
3.与统一开发平台集成
3.1. 流程定义插件集成
1.JBpm与Activiti都有基于eclipse图形化插件和基于Web的流程设计器,
2.OSWorkflow推荐手工编写xml 格式的工作流程描述符,有基于Eclipse GEF技术开发
的osworkflow建模工具;
3.Shark有JAWE作为定义工具,是否可与平台IDE集成还需要预研。
3.2. 核心包及jar包集成
1.都属于轻量级工作流框架:jBpm.jar 1.06M;activiti-engine-5.9 1.1MB;
osworkflow-2.8.0.jar 393KB;
2.Shark核心包大小在6M左右,但是依赖jar包过于庞大,其他三个框架依赖jar包都
不多,但是否与平台jar包冲突还需验证;
3.3. 部署方式
1.JBpm与Activiti都可以与应用项目集成也可以单独部署;
2.OSWorkflow不可单独部署,一般推荐与spring集成,方便事务管理及功能扩展;
3.Shark可集成也可单独部署:可以直接作为java库来使用;也可以单独部署,作为CORBA
ORB 或 Web 服务来使用;
3.4. 版本选择与维护问题
1.JBpm4 积累文档丰富.网上具有大量的共享技术资源,也是最稳定的版本,但是目前已
停止开发和更新;jBpm5基本上完全抛弃了jBpm4的代码,所有代码全部来自原先的Drools Flow,资料和文档相对较少;
2.OSWorkflow是opensymphony下的一个开源项,2.8版本稳定,文档不是很详细,有较
多网络资源,曾是ERP软件开发中广泛应用的工作流框架,JBpm的出现带走了很多用户,使其发展乏力;
3.Enhydra Shark2.0后,很多组件、文档商业化,需要付费,而且版本更新慢,商业化
的定位限制了其发展;
4.Activiti5是JBoss jBpm架构师加入Alfresco后的作品,继承了jBpm4的所有优点,
保持开发更新中,用户不断增加,较多用户推荐,开源社区活跃,发展前景看好。
4.总结
总体来看,四款工作流引擎框架与平台集成难度都不大,但所依赖第三方jar是否与平台冲突还需具体验证;从应用项目开发角度来看,JBpm4、Activiti5友好度较高,难易程度适中容易上手,而OSWorkflow、Shark则显得较为复杂;从文档资料及后期项目维护角度来看,Activiti5无论从版本升级,网络资料及社区活跃度来看都更胜一筹,其他三款框架都多少存在一些难度和问题。