工作流引擎设计思路

一、易用性原理

工作流引擎在多数应用中是由客户或实施人员来设计相关业务流程,因此易用性相当重要,有些工作流引擎的设置器,在设计流程时按照代码语言的语法,或其它技术化强的术语去设置,让人不知道如何开始,也不太容易明白相关设置的具体意义。

因此要求图形化视觉效果,包括流程设计时的图形化和流程应用时的图形化。设计时的图形化以拖拉的方式就能去设置流程,应用时图形化让用户非常直观的感觉到流程运作情况;也要求操作便利,提供鼠标单双击、键盘快捷方式、工具栏、流程导入导出、打印、节点导航、流程复制粘贴、流程校验等等功能方便用户快速设置流程



二、功能完整性原理

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



三、数据完整性原理

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



四、伸缩性原理

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



五、扩展性原理

       工作流引擎设置工具能包括各种特殊权限的支撑,如交接、跳转、自动处理、终止流程、自定义时限等等,企业在某些特殊情况下应用流程时不一定需要按照流程设置去运作,流程设置工具能扩展特殊权限的功能去实现这样一些特殊要求。

       工作流应用框架能够支撑业务上的扩展,如与财务系统集成、ERP集成、消息平台的集成、SPS的集成、INFOPATH的集成等。



六、接口原理

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



七、可行性原理

      现在工作流技术非常流行,很多朋友希望能开发自己的工作流引擎,如果要自己开发,其实可以先考虑以下几个问题。

1、 经济的可行性:工作流引擎是需要能帮助客户创造价值才有前途的,如果我们自行开发的工作流引擎给客户带来多大价值,获得多少回报,对比付出的成本及浪费的机会成本,收益如何?有得赚再自己做。

2、 技术可行性:工作流引擎设计并不复杂,关键是稳定、成熟的过程中,其它技术都在发展,工作流引擎需要集成的技术甚至解决方案的思想也在进步,工作流引擎能否与时俱进?盘算一下,如果有把握再自己做。

3、 时间的可行性:工作流引擎本身对客户来说没有价值,但可以降低应用开发的成本。具体的企业应用需要工作流引擎时,是否在规定的工期内能够提供一个稳定可靠的工作流引擎去实现具体应用?计划一下,来得及再自己做。

你可能感兴趣的:(BPM,工作流引擎,工作,图形,企业应用,财务系统,工具)