`
hiwings
  • 浏览: 60742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

平台工作流引擎调研

阅读更多

 

平台工作流引擎调研

1.工作流简述及需求分析

1.1简述工作流

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
工作流管理系统(WFMS),通过执行经过计算的流程定义去支持一批专门设定的业务流程,支持定义、管理和执行工作流程。
工作流管理联盟(WfMC)提出的工作流管理系统参考模型:
核心:工作流引擎
5个接口:流程定义工具、工作流客户端应用、执行外部应用、其他工作流应用服务接口、管理和监控工具。
模型各模块功能:
工作流引擎:1为流程实例解释流程定义,从流程定义工具获得。2 组织调度流程实例。3 处理工作任务的分配接受提交等。4 管理其他接口
流程定义工具:一段XML,遵循XPDL标准或者其他厂商自定义标准,如JPDL目的是产生XML格式的流程定义。
工作流客户端应用:提供工作任务列表等客户端应用程序,实现人与工作流引擎的沟通。
执行外部应用:第三方系统集成。支持外部应用参与工作流程。
其他工作流服务:连接不同的工作流引擎和系统。
管理和监控工具:提供监控工具,搜集管理信息,

1.2工作流管理系统需求

       从技术开发的角度上看:
       降低开发风险,通过使用工作流术语,使业务分析师和开发人员使用同一种语言交谈。
流程实现的集中统一,业务流程的实现代码,不在散落在格式各样的业务系统中。加速开发,开发者不再关心流程的参与者、活动节点的衔接、流转控制,工作流框架接管。提升对迭代开发的支持,使业务流程容易部署和重新编排,以一种迭代的方式推进应用开发。
一个好的工作流框架应该有的功能(个人感觉):
流程控制,消除代码中的if-else switch,驱动业务流,使业务流和工作流分离,重用业务模块。状态控制,消除状态表中的status,伴随流程流转,在某点的状态都是设定好的,无需关心。角色控制,消除if(user != null or roles == ‘XX’)这种权限控制。角色或者用户所能获得的任务,能执行的操作,都是在工作流引擎中做过滤判断。

2.开源工作流选型

Enhydra Shark(不考虑):
       拥有基于java技术,可扩展的工作流引擎,实现了WfMC规范,使用XPDL语言定义流程,持久层采用DODS来实现,XPDL语言中的activity基于UML活动图,活动图天生的适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。不再开源,转为商业用途。
osWorkFlow
       由研发WebWork2的组织opensymphony下的团队开发,它的重要概念是State,基于FSM,类似理解为状态图就可以了。Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action。流程设计器较简陋,基于swing,更新较慢,现阶段已停止更新,资料较少。
JBPM:
       自定义语言JPDL描述,或者BPEL,图形化流程设计器为Eclipse插件。
它结合应用了状态图+活动图+PetriNet的知识。持久化层只能用Hibernate,换句话说就是和JPA整合非常有难度。它是JBoss SOA。中一个重要组件,与JBoss Drools规则引擎,JBoss ESB企业服务总线配合,提供SOA方案。
JBPM版本:
JBPM3.X:

  1. 基于Eclipse的流程设计器。
  2. Web 控制台
  3. jPDL核心库
JBPM 4.x:

引入PVM流程虚拟机的概念,使流程引擎与流程语言解耦,支持BPMN,增加部分BPMS特性:
第一是支持了BPMN,BPMN已经成为业务人员的流程建模标准;第二是引入了Signavio作为面向业务人员的Web建模器;第三是在已有的Web管理控制台加入了对案例和任务的统计功能。
JBMP5.x:
JBMP5基于Drools Flow,就是JBoss的规则引擎。

jBPM5对PVM的放弃也带来了几个不小的问题:第一是对开发人员来说只支持BPMN,不再支持jPDL(当然提供了迁移工具);第二是流程执行的可扩展性回到了jBPM3的年代,仅仅支持自定义动作(相当于jBPM3里的Action)。此外,Web建模器由Signavio替换为了Oryx Designer。
Activiti 5;

如上图所示,Activiti5由三种类型的组件组成,分别是:专用工具(Dedicated Tools)、内容存储工具(Stored Content)和协作工具(Collaboration Tool)。JBPM4相比,Activiti5目前最重要的增强就是实现了流程的可视化以及创新的Activiti Cycle协作组件,此外,通过与Mule的集成加强了其集成能力。其对PVM的保留使其继承了jBPM4强大的可扩展能力,对jBPM的老用户来说,这是向其迁移的重要理由
JBPM版本总结
JBPM3是一个完整的工作流系统实现,面向开发人员,目的在于简化对组织核心流程进行支撑的软件创建,不支持标准。
JBPM4引入PVM,使其拥有更强大的扩展性,同时增加BPMS特性,这些特性包括了对BPMN的支持、面向业务人员的Web建模器和简单统计分析功能的加入。
JBPM5基于原先的Drools Flow,支持BPMN,通过与Drools的合并支持BAM,通过内容仓库增加对流程可视化的支持。由于放弃了JBPM4的PVM,引擎的可扩展性受到损害,并且不再支持JPDL。
Activiti5基于JBPM4,与Alfresco的集成增加了其流程可视化与管理能力,同时通过创新的Activiti Cycle协作组件支持流程相关人员之间的协调,最后,它加强了集成能力。
对于工作流应用或者jBPM3、jBPM4的老用户,建议转向Activiti5。
 

3.建议选用及原因

如果持久化直接采用Hibernate的话,建议采用JBPM4.x,因为Activiti5和JBPM5都是新技术,文档和知识不全,稳定性有待考验。但是使用JBPM的风险在于版本升级时,很有可能相互无法兼容,迁移困难。再就是开发时需要大量扩展,同时要保留二次开发的能力。
       如果自己开发工作流引擎,考虑时间风险,但是可以用现成的工作流引擎,自主开发工作流管理平台。现在的工作流平台已经不少了,可以借鉴开发。比起JBPM的学习成本,可能使用起来反而比较方便。

 

分享到:
评论

相关推荐

    Activiti工作流引擎使用

    现在是我工作的第二家公司,因为要开发ERP、OA等系统需要使用工作流,在项目调研阶段我先搜索资料选择使用哪个开源工作流引擎,最终确定了Activiti5并基于公司的架构做了一些DEMO。对于Activiti、jBPM4、jBPM5我们...

    深入调研使用与BPMN兼容的Python工作流引擎Spiff,Ref._httpsgithub_Spiff

    深入调研使用与BPMN兼容的Python工作流引擎Spiff,Ref._httpsgithub_Spiff-Workflow-Engine

    OA开发需求分析工作流标准文档

    同时,工作流引擎应能监控流程状态,提供报表和审计功能。 - 用户接口设计应直观,让用户能够轻松发起流程、查看状态、进行审批等操作。 以上内容仅是OA开发需求分析工作流标准文档的部分要点,实际的开发过程会...

    Twe工作流调研报告

    **Shark**:虽然在报告中提到的是Shark工作流程,但具体关于Shark的信息较少,我们可以将其视为一种工作流引擎或框架,用于执行由Twe等工具设计的流程模型。Shark能够解析XPDL格式的流程定义,并按照这些定义执行...

    工作流项目实施中的问题和解决策略

    获取工作流引擎或平台通常有几种途径: 1. **购买商用产品**:市场上有许多成熟的工作流解决方案,可以根据自身需求选择合适的商用产品。 2. **开源引擎扩展**:利用成熟的开源工作流引擎,对其进行定制和扩展以...

    OA协同调研报告

    工作流引擎是OA软件的核心,泛微与金蝶的工作流引擎强大且灵活,能支持复杂的业务流程。其他厂商虽然也有相应功能,但可能在复杂性上稍逊一筹。 综上,企业在选择OA协同软件时,应结合自身需求,如业务流程复杂度...

    基于工作流技术的项目审批系统

    本论文重点研究的是工作流技术以及在项日审批系统中的应用。作者在对国内外最新工作流技术发展充分...系统包括工作流引擎、工作流模板设计、工作流监控系统和工作流执行几个部分,并针对项日审批过程进行了具体应用。

    收集的OA文档与工作流资料

    3. **工作流基本知识介绍.doc**:这份文档可能会阐述工作流的基本概念,包括工作流模型(如顺序流、分支、合并)、工作流引擎的工作原理以及WFMC(Workflow Management Coalition)标准等,对于初学者来说是一份很好...

    工作流模式资料.pdf

    大多数工作流引擎支持并行执行,但实现方式可能不同,如显性分叉和隐性分叉。 3. **同步(Synchronization)**:同步模式用于确保所有并行任务完成后再继续下一个任务。例如,"存档"任务需要"送票"和"收费"两个任务...

    调研_JZQ1

    【调研_JZQ1】主要关注的是H5游戏开发中的关键因素,包括开发语言的选择、游戏引擎的性能、应用范围、设计理念、工作流支持、商业化案例以及学习资源和技术支持。以下是对这些要点的详细说明: 1. **开发语言的支持...

    2019移动广告平台调研分析报告 AG.pdf

    其中,巨量引擎和腾讯广告重点发展直营电商,快手营销平台升级为“磁力引擎”寻求新的市场突破。这些平台的共同目标是通过技术手段找到最优化的广告展示方式。 在优化师看来,一个优秀的广告平台应当具备哪些特质?...

    巨量引擎搜索广告营销通案:内容生态下的搜索营销.pdf

    这些数据来源于巨量引擎调研,表明了用户在日常生活中对于不同类型信息的需求。 巨量引擎构建的特色优势包括流量价值、全新的流量蓝海、链路价值、品牌占位的收口场景价值、高效灵活的触达方式生态价值,以及IN-APP...

    RestCloud安装、使用调研

    该平台的核心在于其独特的工作流引擎设计,这使得它能够支持一系列复杂的数据流处理模式,包括但不限于串行、同步并行、异步并行、同步子流程、异步子流程、事务控制、循环任务执行、多流合并、数据折分和数据流复制...

    BI开源报表工具调研报告

    优秀的ETL工具应具备工作流管理、中央元数据存储、数据质量检查、高性能、可扩展性、跨平台和开放API等特点。常见的开源ETL工具有KETL、KETTLE(现为Pentaho的一部分)、Clover ETL和Enhydra Octopus。 - 报表工具...

    内容管理系统调研与学习

    一个完整的CMS通常包含以下几个组件:内容创作工具、工作流引擎、模板设计工具、元数据管理、权限管理、搜索功能、API接口等。 2.5 如何开发CMS 开发CMS需要考虑用户友好性、可扩展性、安全性等因素。开发者需要...

    平台建设方案设计.pdf

    3. **工作流引擎**:内核中的工作流引擎支持快速定义事件处理流程,自动按预设流程流转和处理事务,增强了系统的自动化处理能力。 4. **三层内存管理**:通过三层内存管理机制,平台能提升软件运行速度,确保在大...

    关于Plone的调研报告

    - **工作流引擎:** 强大的工作流引擎支持复杂的工作流程自动化,并提供了细粒度的安全控制。 - **性能优化:** 具备负载均衡和智能缓存代理功能,确保系统的高性能和高可用性。 - **安全性:** 采用了基于角色的安全...

    搜索引擎信息流广告优化技巧.pdf

    优化搜索引擎信息流广告是一个持续迭代的过程,需要不断测试、学习和调整,以适应用户行为的变化和平台的动态规则。同时,深入理解广告主的目标群体,提供有价值的内容,是提升广告效果的关键。通过上述策略,广告主...

    基于网络办公自动化系统的开发.pdf

    网络办公自动化系统(Office Automation System, 简称OAS)是一种利用现代信息技术,如互联网、数据库管理、工作流引擎等,实现组织内部办公流程的自动化、信息化和网络化的系统。它旨在提高工作效率,优化工作流程...

Global site tag (gtag.js) - Google Analytics