`
shlei
  • 浏览: 287924 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

工作流引擎设计思路

阅读更多
开发设计一个工作流引擎是要能够帮助客户营造价值,而不是为了一时兴趣实现某些技术特性。工作流管理联盟(Workflow Management Coalition, WfMC)早已定义了工作流技术的标准体系,但并未指明具体实现的方法。工作流引擎在实现方法上可以基于不同的软件技术架构,引擎本身应该是与具体业务无关的,但又需要考虑各类应用领域,工作流引擎设计的重点应该是有一定差异的,但无论基于什么架构,无论基于哪个领域,有些原理是相通的。

主要是以下方面
一、易用性原理
工作流引擎在多数应用中是由客户或实施人员来设计相关业务流程,因此易用性相当重要,有些工作流引擎的设置器,在设计流程时按照代码语言的语法,或其它技术化强的术语去设置,让人不知道如何开始,也不太容易明白相关设置的具体意义。
因此要求图形化视觉效果,包括流程设计时的图形化和流程应用时的图形化。设计时的图形化以拖拉的方式就能去设置流程,应用时图形化让用户非常直观的感觉到流程运作情况;也要求操作便利,提供鼠标单双击、键盘快捷方式、工具栏、流程导入导出、打印、节点导航、流程复制粘贴、流程校验等等功能方便用户快速设置流程

二、功能完整性原理
        工作流引擎必须支持各种流程特性,包括串行流程、并行流程(分流合流)、子流程、条件路径、条件人员、环节信息权限设置、普通环节、机构环节、会签环节等等,这里就不一一列举了。既然提供用户在代码外定义流程,那么流程定义工具就要求能够支撑到所有流程特性。

三、数据完整性原理
       工作流本身对于业务系统而言,其作用是隐藏在背后,业务系统包括大量的业务处理数据,工作流引擎本身也有数据的处理,如何保证业务数据和流程数据的事务完整性?如何设计才能保证业务数据与流程数据的关联完整性?流程是自定义的情况下,业务数据如何统计?这些都是设计工作流引擎及工作流应用框架时必须解决的。

四、伸缩性原理
       设想一个企业应用,如果公司只几十个人,又在一个办公室,工作流应用的价值不是很大,真正有价值的工作流应用是在集团公司大量烦琐的事件处理,如省级邮政的OA系统,15000的用户量,跨各个地市的不同流程模式。还有就是大的业务处理量,处理环节涉及多个职能部门,流程引擎协调和处理这些部门和人员之间的工作等,这些应用场景均是大处理量,流程跨越大,而且业务流程本身会有调整,会有不同组织结构层次复用同一流程模式的需求,因此在处理能力上需要有伸缩性,流程设置上也需要有伸缩性。

五、扩展性原理
       工作流引擎设置工具能包括各种特殊权限的支撑,如交接、跳转、自动处理、终止流程、自定义时限等等,企业在某些特殊情况下应用流程时不一定需要按照流程设置去运作,流程设置工具能扩展特殊权限的功能去实现这样一些特殊要求。
       工作流应用框架能够支撑业务上的扩展,如与财务系统集成、ERP集成、消息平台的集成、SPS的集成、INFOPATH的集成等。

六、接口原理
       其实接口是工作流引擎的关键,也是面向对象设计与分析的关键,工作流应用筐架只需做“我要做什么”,工作流引擎返回结果,内部“我怎么做”,是不需要搅在一块的。关键接口包括:启动、发送、回收、退回、消息通知、结束等等,当然实际业务需求中的接口需求远不止这些。

七、可行性原理
      现在工作流技术非常流行,很多朋友希望能开发自己的工作流引擎,如果要自己开发,其实可以先考虑以下几个问题。
1、 经济的可行性:工作流引擎是需要能帮助客户创造价值才有前途的,如果我们自行开发的工作流引擎给客户带来多大价值,获得多少回报,对比付出的成本及浪费的机会成本,收益如何?有得赚再自己做。
2、 技术可行性:工作流引擎设计并不复杂,关键是稳定、成熟的过程中,其它技术都在发展,工作流引擎需要集成的技术甚至解决方案的思想也在进步,工作流引擎能否与时俱进?盘算一下,如果有把握再自己做。
3、 时间的可行性:工作流引擎本身对客户来说没有价值,但可以降低应用开发的成本。具体的企业应用需要工作流引擎时,是否在规定的工期内能够提供一个稳定可靠的工作流引擎去实现具体应用?计划一下,来得及再自己做。

From http://www.cnblogs.com/cancanwyq/articles/612775.html
分享到:
评论

相关推荐

    介绍一款工作流引擎设计思路

    工作流引擎设计是一个复杂而关键的任务,涉及到许多方面的考量。工作流引擎的目的是为了帮助企业高效地管理和自动化工作流程,因此其设计必须以创造价值为核心,而非单纯追求技术特性。WfMC虽然定义了标准,但并没有...

    工作流引擎资源 12个文件

    jbpm开发指南中文版.pdf 2,004 KB ...介绍一款工作流引擎设计思路.doc 23 KB 开源工作流引擎研究报告.doc 161 KB 乔篷科技股份有限公司工作流引擎.rar 9,134 KB 自定义工作流系统的设计与实现.doc 238 KB

    JWFDv0.96开源工作流引擎设计

    JWFDv0.96是一个开源的工作流引擎设计,其核心目标是通过自定义的流程拓扑数学模型和一系列SQL-API原子操作函数,构建一个流程自动运行控制器。该控制器负责用户对流程实例的操控,使得流程自动化运行,减少了人为...

    工作流引擎白皮书(驰骋工作流引擎 )

    在前言部分,作者强调了驰骋工作流引擎的目标——使非专业技术人员也能轻松进行流程设计,体现出其用户友好的设计思路。驰骋工作流引擎V4.0追求卓越和精品化,致力于提升业务流程自动化水平。 驰骋工作流产品特点...

    基于关系数据库的工作流引擎设计

    本文提出的关系数据库驱动的工作流引擎设计,旨在通过事务工作流机制优化并行任务的管理。 【关系数据库建模】 在设计工作流引擎时,利用关系数据库(如Oracle)进行数据建模,有助于高效地存储和管理流程数据。...

    微内核工作流引擎体系架构与部分解决方案参考

    - **具备一定的软件开发经验**:了解常见的软件设计模式和技术,如事件监听机制、状态机等,有助于更好地理解工作流引擎的设计思路和实现细节。 - **熟悉常见工作流引擎**:了解如jbpm、osworkflow、shark等开源工作...

    工作流设计参考_包括PHP实现

    在PHP环境中,由于缺乏成熟且易用的工作流引擎,开发者往往需要自行设计。本篇将探讨一种基于PHP实现的工作流设计方法,遵循特定的设计原则,并提供相关数据表结构作为参考。 首先,设计原则强调了实用性和灵活性。...

    [JWFD开源工作流]JWFD开源工作流-矩阵引擎设计初步

    4. **工作流引擎**:是工作流系统的核心,负责执行流程实例,根据业务规则和条件驱动任务的流转。 5. **源码分析**:可能会涉及编程语言(如Java、Python等)、软件架构、设计模式以及代码组织结构。 6. **工具...

    asp.net基于工作流引擎的系统框架设计开发(源代码+论文).zip

    在本项目“asp.net基于工作流引擎的系统框架设计开发(源代码+论文)”中,我们将深入探讨如何利用ASP.NET集成工作流引擎来构建高效、灵活的业务流程管理系统。 工作流引擎是实现自动化业务流程的核心组件,它能够...

    基于关系结构的轻量级工作流引擎

    工作流引擎是实现这种模型的核心组件,它负责管理和执行组织中的业务流程。基于关系结构的轻量级工作流引擎是一种优化的设计方案,旨在满足关键业务应用程序的高效、灵活和可扩展性需求。 在传统的IT环境中,工作流...

    asp.net基于工作流引擎的系统框架设计开发(源代码+论文).rar

    **ASP.NET基于工作流引擎的系统框架设计开发(源代码+论文)** 本资源提供了一个全面且深入的ASP.NET基于工作流引擎的系统框架设计开发解决方案。它包含了详细的源代码和相关的学术论文,旨在帮助开发者理解并实现...

    基于ASP.NET的基于工作流引擎的系统设计与实现(源代码+项目报告).zip

    本项目“基于ASP.NET的基于工作流引擎的系统设计与实现”则深入探讨了如何利用ASP.NET技术,结合工作流引擎来构建一个功能完善的业务流程管理系统。 工作流引擎是一种软件组件,它能够根据预定义的规则和流程来自动...

Global site tag (gtag.js) - Google Analytics