理解InforFlow工作流模型

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:13:08
理解InforFlow工作流模型  


  目前“工作流”已经成为一个引人瞩目的技术热点,大量的应用解决方案正在考虑采用基于工作流技术实现。而学习工作流的关键在于对工作流模型的理解。下面就浅谈一下对InforFlow(中创软件商用中间件有限公司http://www.inforbus.com/的工作流中间件)工作流模型的理解。

  应用工作流的价值
  工作流主要应用在具有流程处理的业务系统中(我们称之为流程应用),而流程是如此普遍存在的,电信、金融、政务等各种系统中都涉及大量流程。
  对于流程应用有两个特别突出的问题:
  其一,有些流程非常复杂,要经过不同的组织机构,涉及多种人物角色,还有许多特殊的处理环节,对于这样复杂流程的实现一直是很痛苦的事。
  其二,流程是最容易变化的东西,比如所谓的“改革”很多就是改流程,今天为了提高办事效率而减少处理环节,明天则可能为了严格控制而增加处理环节。作为软件开发从来就讨厌用户变来变去,可是又没有办法,只有改造自己让自己的软件能够具有更强的适应变化的能力。对于流程应用来讲,这可以借助于像InforFlow这样的工作流中间件来完成。
  采用工作流中间件的关键价值正在于这两个方面,一方面,通过使用工作流中间件能更好的分解系统,并把业务流程的处理交给工作流中间件去做,而应用开发人员则只需要实现业务构件,这样就能降低开发难度,减少开发的工作量;另一方面,也是更重要的,流程处理逻辑交给工作流中间件处理之后,由于流程逻辑和业务逻辑的分离,降低了流程逻辑改变对业务逻辑改变的影响,而像InforFlow这样工作流中间件保证了流程逻辑适应变化的能力,从而使的整个应用适应变化的能力得到了大大的提高。

  工作流解决问题的思路
  工作流解决问题的思路实际上非常简单:将应用逻辑中流程部分分离出来(称之为流程逻辑),为流程逻辑建立模型,定义清楚流程的表现与处理方式,以及流程逻辑与业务逻辑的接口,由工作流中间件实现这个流程模型,然后,再进行应用开发就只需要实现业务逻辑了。

  俗眼看流程 ?? 理解现实中的流程
  要理解工作流模型,首先需要理解现实中的流程。下面是我对现实中流程的通俗理解:
  所谓流程实际上是一个进行业务处理的过程,这个过程由一系列环节组成,环节按照一个顺序进行,每个环节由具有一定角色的人来完成,这个人在这个环节上要完成一定的任务。
  这就是对流程的通俗解释了。在这个解释中可以看到,流程包含如下的基本要素:
  环节:流程中的一个个的点,在这个点上要由具有特定角色的人完成一定的任务。
  环节的处理顺序:也就是流程的流向,有时候这个流向会受到业务数据的影响,例如申请1000万人民币的贷款需要经过行长这个环节,而申请1万元人民币的贷款则不需要经过行长这个环节。
环节的处理人:谁在这个环节上工作
  环节上的任务:在这个环节上要完成的事(业务逻辑)
  总起来说,所谓的流程就是,一系列任务,按照一定的顺序,由各个环节上的人执行完成的业务处理过程。

  从现实中的流程到InforFlow工作流模型
  上面谈到了流程的基本要素,那么下面就把这些要素映射到InforFlow工作流模型中。
  下图就是InforFlow的工作流模型:
 

  我们按照上面讲到的基本元素来描述。
  环节:在InforFlow中使用“节点”来表示流程的环节,在一个“节点”上由具有特定角色的人完成一定的任务。
  环节的处理顺序:InforFlow通过有向的“连接弧”来表示流程的流向,通过“连接弧”把“节点”串起来也就描述了节点的处理顺序。然后,如果在节点或者有向弧上加上了约束条件也就定义了流向受业务数据影响的规则,这个约束条件称为“转移条件”。
  环节的处理人:这个处理人在InforFlow中称为“执行人”,这个“执行人”可以按照角色描述,也可以直接指定为具体的某个人。
  环节上的任务:在InforFlow中各个环节上的任务对应于叫做“业务单元”的业务构件。另外,如果需要在节点上对流程进行控制,则将这些对流程的控制封装为“操作”来完成。
  总起来,在InforFlow中流程其实就是一系列“业务单元”构件按照顺序执行的过程,这些“业务单元”构件分布到不同的节点上由具有不同角色的人执行。

  基于InforFlow的开发
  对这个模型理解之后,也就很容易的了解开发过程了:
  1.分析流程:也就是分析每个流程具有哪几个环节,每个环节上由什么样的人完成哪些任务,以及这些环节按照什么样的顺序完成。尤其是对于节点上的任务,要按照构件化的思想,分解为尽量细致的“业务单元”构件。
  2.实现这些“业务单元”构件,在这些业务单元构件中完成流程逻辑之外的业务逻辑。
  3.把这些“业务单元”构件注册到InforFlow设计器(流程建模工具)中,在设计器中定义出您的流程,把“业务单元”构件挂到所需的节点上。
  4.最后,发布流程

  如何适应变化
  流程的变化主要有两种情况:一种是增删流程处理环节,另一种是在环节之间进行任务调整。通常在一个流程调整过程中需要同时做这两个方面的调整(尤其对于第一种情况肯定同时会涉及第二种调整)。在InforFlow中,第一种情况就是增删流程“节点”,第二种情况就是调整“节点”上的“业务单元”。在进行流程调整时,只要不涉及“业务单元”构件本身的变化,就不需要修改代码。