工作流管理系统(WFMS-WiseFlow)

 

   工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。

  

    为了后面的描述,我们先定义一些基本的术语:流程定义(process definition)和流程实例(process instance).

    工作流系统重要的职责是维护每一个流程运行的上下文信息。 流程上下文(process context variable) ,或简称表单,是与流程实例相关的数据。如,休假申请的开始日期、数据库中一条记录的键值、文档管理系统中一篇文档的索引等。通常在流程定义中声明这些变量,然后在流程实例生成时,这些流程变量被实例化。所有成熟的工作流管理系统都支持定制的变量类型。

    工作流系统能够协助涉及多人相关任务工作流软件的开发。为了达到这个目的,万思协同平台中的工作流系统(下文称为WiseFlow)有一个方便而强大的结构化模板设计工具来生成执行任务的表单。这种方式的使用使得WiseFlow工作流系统能够显著提高生产率。 工作流系统使你通过流程定义建模实现过程的自动化。

    一个工作流管理系统以流程定义作为输入。在这里,可以将流程定义看作UML活动图、UML状态图或者有限状态机。在提交一张费用单据、申请休假、要求一个报价、...之后,工作流系统负责维护这些流程定义的执行状态和上下文。为此,需要通知工作流系统状态的变化。运行流程的状态变化可以记录下来,以备监控管理。

 

流程定义

 流程定义的内容可以分为四个不同的层次:

 

状态层

    在流程中,状态代表了对工作执行情况的描述。状态的意思就像“现在X系统或某某人必须作某些事,在此等待直到他通知这些任务已完成”。状态定义了一种对外部提供结果的依赖。

    状态典型的例子是步骤(step)。

   

上下文层

    流程上下文(process context variable) ,或简称表单数据,可以使用表单存储跨越流程实例整个生命周期的数据。

    万思协同平台使用结构化模板为工作流实例提供数据存储和数据表现。

 

程序逻辑层

    如前所述,动作是在流程运行过程中,工作流系统响应指定的事件(event)执行的一段程序逻辑(programming logic)。程序逻辑可以是二进制或源代码形式的、用任何语言或脚本编写的软件。程序逻辑层是所有这些软件片断和关于在什么事件发生时调用它们的信息的组合。程序逻辑的例子包括发Email、通过消息代理发消息、从ERP系统中拿数据和更新数据库。

    万思协同平台使用Rhino为脚本引擎,为工作流提供运行时的动态业务逻辑。

用户界面层

    一个参与者通过向流程表单中填充必需的数据,并结束一个状态。比如,在请假的例子中,老板提供“同意”或“不同意”数据到流程中。

    万思协同平台使用类Excel操作界面来提供用户使用界面,操作方便友好。