理解工作流的好文

来源:互联网 发布:php cookie存储数组 编辑:程序博客网 时间:2024/04/30 09:50

什么是工作流

  在Forrester Report 提出的关于工作流程概念定义中,将工作流程比喻为“信息河流”。即日常的业务处理或协同工作能按预先定义好的规则和过程进行流动,并且这一流动过程能被跟踪和监控。

工作流管理系统

  工作流管理系统是一套支持业务定义和自动运转工作流的系统。目前市面上成熟的产品有IBM MQ workflow、oracle workflow和其他中小型公司基于wfmc.org组织开发的工作流管理系统。
如何采用工作流开发?谈这个问题之前我们必须了解一下目前采用三层层模式如何开发B/S的应用程序。(以开发一套公司报销的应用为例)
  :公司有员工3人 小王,小李,小张,级别从大到小分别为小王、小李、小张。他们每月公司给与的报销额度按照级别分别为1000,500,300元。下一级的员工报销必须经过他上一级员工的审批。设计一个企业费用报销的应用程序。
  三层模式为Presentation Tier 表示层 Business Tier 业务层 Integration Tier 集成层。一个项目设计我们一般以上面三层来设计我们的应用程序的框架。表示层我们可以用struts的方式作前端的控制,业务层我们可以用delegate实现按照报销业务规则的方法,而集成层我们采用DAO的方式访问数据库。对于一个报销的用例,我们设计delegate的时候必须考虑判断用户的级别,因为不同级别的员工报销流程是不一样的。这样在我们的程序里实际上是delegate起到了相当重要的作用。如果业务变化了(如员工的报销由逐及上报转为直接上报),我们必须按照相应的业务变动,修改delegate实现的方法。导致整个应用程序的修正。
  如果我们采用基于工作流的开发。按照三层模式我们完全可以把业务层抛给工作流。通过工作流管理系统配套的工具设计出含有这个报销业务的配置文件,接着导入这个配置文件到工作流管理系统。而整个程序变成了面向工作流的开发,应用程序只要处理如何启动工作流引擎生成一个报销流程的实例,如何处理这个实例在工作流引擎中流转时发出的通知或者消息、如何做辅助的处理通知或者消息时候的记录即可。如果出现报销业务流程改变的情况,我们只要对包含业务流程信息的工作流配置文件导出,修改后再次倒入工作流流管理系统即可。无需对原有的应用程序作任何的改动。
  以上是简单介绍了一下工作流在应用程序开发的作用,并同时和不采用工作流开发进行了一个比较。希望能够有一个抛砖引玉的效果。