关于工作流系统技术选型可行性分析1系统背景医院的运作过程本质上是人、财、物等资源的优化和配置,形式上无一不体现为信息流、资金流、物流、价值流等合理的流动;随着医院不同科室、部门分工的日益具体化,合作已成为主题,合作的体现形式必然是一个完整而高效的工作流程;有管理的医院的活动过程必然是有序的,这种有序性体现为合理的工作流程。因而工作流(workflow)无处不在。2系统建设目标1)隔离workflow系统的控制逻辑和医院业务系统的业务逻辑,使得业务逻辑的变更对于控制逻辑透明。2)利用该引擎开发的业务信息系统可以根据具体业务需求量身定制个性化的业务流程,而不用修改控制逻辑,甚至无需修改源代码。3)业务人员、开发人员、实施人员可以共同参与流程制定、流程、节点维护4)提供灵活、丰富的标准开发接口,使得开发人员能采用自己习惯的开发工具在该平台上定制和扩充模块。5)采用多层分布式组件技术,力求技术先进性和应用的健壮性。6)工作流自动化和医院应用积木化。3工作流技术选型方案3.1技术选型目标1)较好的流程定义工具。2)工作流技术架构与业务系统之间解耦性较强。3)工作流系统定位为嵌入式系统,并进行嵌入式部署。4)业务人员、开发人员、部署实施人员均可参与对流程定义做可视化管理5)业务人员、开发人员、部署实施人员均可参与流程走向做可视化管理。6)可从容应对较常使用的工作流场景7)架构开源程度——100%8)开源社区活跃度较高9)架构文档较为齐全10)监控、管理功能支持11)有较好其他工作流引擎整合方案3.2开源工作流选型当前开源工作流种类繁多,现对目前国内较活跃的三种工作流(jBPM4,jBPM5,Activiti5)做简要介绍与分析,供参考:工作流名称功能社区支持成熟度趋势jBMP4★★★★★★★★★→jBMP5★★★★★★★↑Activiti5★★★★★★↑3.2.1jBPM43.2.1.1架构简介jBPM4全称javaBusinuessProcessManagement第四版(最后一个修订版本jBPM4.4发布于2010-07-19),是一种基于javaEE的轻量级工作流管理软件包。jBPM项目由TomBaeyens2002年发起,并与2004加入到JBoss组织,至今jBPM发展至今有九年时间,在国内外均有大量的社区与商业支持。jBPM3、jBPM4拥有极度活跃的用户论坛和开发者论坛。3.2.1.2架构设计模型3.2.1.3架构说明架构定位为工作流系统。引入PVM(流程虚拟机),实现了基于流程组件的流程引擎,流程图(流程定义语言)与实现解耦。延用jBPM3自定义的jPDL语言与开发人员进行交互,在支持jBPM自定义jPDL语言的同时,实现支持BPMN(业务流程建模标记法,已成为业务人员的流程国际建模标准)。定于领域特定语言(DSL),采用DSL业务人员可以对执行流程做直接修改。引入了SignavioWeb作为面向业务人员的Web建模器Web管理控制台加入了对简单的案例和任务的统计功能3.2.1.4架构优、劣势对比jBPM5、Activite优势:1)常用的工作流流程均有较好的支持。2)支持BPMN,使业务人员和开发人员可以共用一个流程模型,避免业务人员的流程建模转换到IT系统时受到损耗。3)系统的插件式系统,可嵌入式部署,针对不同角色人员有不同的建模器(SignavioWeb、Ecplisepluins)。4)开源社区活跃,有较活跃的用户群,拥有较完善的文档。5)jbpm4控制台必须运行在JBoss应用服务器上对比jBPM5、Activite5劣势:1)jbpm4的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于DroolsFlow重头来过,架构中存在的问题不能得到JBoss官方支持,JBOSS技术方向转变,后续发展问题可能会突出出来。2)流程不能做到可视化管理,对业务人员支持有限,不能全面参与到流程管理中来3)jbpm4据在开源社区初步了解,较大并发时可能存在性能问题(数据库操作较为频繁)。可能在项目实施中才能反映出来,需进一步探索。4)jbpm4官方提供的控制台必须要基于jboss服务器5)jBPM4的Eclipse插件仅支持BPMN1.26)不支持规则引擎,对在业务规则经常变化情况支持不够,当流程需要变更时,业务人员不能从容解决业务规则,需要开发人员参与变更3.2.2jBPM53.2.2.1架构简介jBPM5全称javaBusinuessProcessManagement第五版,发布时间2011-02-10,是一种基于javaEE的轻量级工作流管理软件包。是jBPM的创建者TomBaeyens离开JBoss后发布的第一个版本,是基于DroolsFlow开发的一套全新一套jBPM。3.2.2.2架构设计模型3.2.2.3架构说明架构定位为BPMS(BussinessProcessManageSystem)。jBPM5基本上完全抛弃了jBPM4的代码,所有代码全部来自原先的DroolsFlow,将规则引擎(DroolsExpert)、事件处理引擎(DroolsFusion)与流程引擎的合三为一。引入了Guvnor作为流程仓库,这解决了流程的可视化问题。流程定义作为资源被管理,我们可以对流程定义进行可视化管理以及全文检索提供业务活动、历史日志的捕获、过滤、查询、监控、分析、监控等功能3.2.2.4架构优、劣势对比JBPM4、Activiti5优势:1)全面支持BPMN2.0规范。2)有更加强大的Eclipse插件对其支持,并支持BPMN2.0规范3)支持规则引擎,以视图方式对流程进行跟踪、调试、修改。便于业务人员全面参与进来劣势:1)jbpm4的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于DroolsFlow重头来过,放弃了PVM,不再支持jPDL,引擎的扩展性受到损害。2)jbpm5由于发布时间较短、使用全新的API,导致如下问题:a)架构的成熟程度不得而知b)全新的API,文档不够丰富c)开源社区目前还不够活跃d)由于不再支持PVM,jPDL流程扩展性降低,社区开发人员可能流失3)jbpm5官方提供的控制台必须要基于jboss服务器4)流程执行的可扩展性回到了jBPM3版本,仅支持自定义动作5)Web建模器由Signavio替换为OryxDesigner.3.2.3Activiti53.2.3.1架构简介Activiti5是TomBaeyens加入Alfresco公司后推出的新的基于jBPM4的开源工作流系统。2010-12-01发布第一个版本。Activiti的开发团队相比与jBPM强大了许多,有23位核心开发者。3.2.3.2架构设计模型3.2.3.3架构说明架构定位为工作流系统。该架构的底层架构基于jBPM4,拥有基于全部jBPM4的功能。Activiti规划的功能有:包括核心引擎、Web的流程建模器、协作工具ActivitiCycle、ActivitiProbe、ActivitiExplorer、与Spring的集成、与Mule的集成等。Activiticycle协作组件逻辑示意图3.2.3.4架构优、劣势对比JBPM4、Activiti5优势:1)全面支持BPMN2.0规范。对BPMN2.0图形化规范的支持2)架构基于jBPM4开发。有较好的用户基础3)增加了其流程可视化与管理能力,同时通过创新的ActivitiCycle协作组件支持流程相关人员(开发人员、实施人员、业务人员)之间的协调,加强了集成能力4)基于jBPM4开发的系统可以升级到Activi5劣势:1)Activiti5由于发布时间较短,文档不够健全,开源社区目前还不够活跃2)Activiti5稳定性不可而知,商业应用还较少。3)若选择项目jBPM4升级到Activiti难度还无法估计4技术选型方案个人建议评估以上三种技术架构对工作流系统是否满足[技术选型目标3.1]的要求,整理如下([是]代表满足,[否]代表不满足):目标点jBPM4jBPM5Activiti51)是是是2)是是是3)是是是4)是是是5)否是是6)是是是7)是[支持较弱]是是8)是否否9)是否否10)是是是11)是是是综上所述,个人建议选用jBPM4,待Activiti5成熟后,可升级到Activiti5。