工做流引擎是 BOS 系统的一个重要组件。 它能够根据客户具体的业务逻辑,来定义工做流模型。 整个应用程序就根据所定义的流程来运行。 它把应用系统模块和工做流程分开。 当流程发生变化,只需修改流程模型, 具体的应用程序无需修改。
参考wfmc 标准,咱们把工做流分红几个模块。
· 流程定义模型
· 用户端
· 工做流引擎
· 建模工具
· 组织架构
在虚线框中表明工做流的服务器端。 它对于用户是透明的。 用户经过工做流引擎所提供的客户端来对工做流引擎进行操作。 客户端包括建模工具,管理工具和任务列表。 各模块之间的关系以下图
工做流的操做能够分为,建模阶段(Process Design&Definition)和运行阶段(Run Time). 运行阶段又可分为工做流引擎端和客户端。
客户首先经过建模工具,创建一套工做流的模型定义(Process definition)。 工做流引擎(Workflow Enactment Service)根据模型所提供的信息,把具体任务交给用户来完成。 用户在登入后,会发现有一项新的任务在他的任务列表中。在他选择执行后,预先设定的应用程序将被激活。在执行应用程序的过程当中,所调用的应用程序会和工做流引擎交换数据。告诉工做流引擎目前运行的状态。当他完成任务后,工做流引擎获得反馈,将按流程把任务交给下一我的,直到完成整项工做。
咱们将经过一个简单的例子,来解释工做流引擎的做用

上面是一个假想的销售流程图。任何工做流程图都包含起始节点和结束节点。 起始节点能够是单独的一个节点,也能够隐含在一个任务节点中。 在上图中,线索就是一个起始节点。用户获得一个线索后,第一步是输入线索。 由于下一步是和客户联系(contact customer),须要由销售表明来完成, 而销售表明(sales rep)有多个,工做流引擎将把任务分配给销售部的经理。 由销售部经理把任务分配给某个销售表明。 这个销售表明就会在他的任务列表中看到这个任务。 当他联系了客户后,发现这个客户有可能买咱们的产品,就把相关信息输入到数据库重。结束了这个环结的工做。 工做流引擎就会把任务传给下一个环节。 若是客户不感兴趣,就转移到结束节点。 此工做流程就结束。 下一个环节是创建销售计划(sales plan),须要市场部经理来作。 由于市场部经理只有一个,就把任务直接分配给市场部经理(marketing manager)。 Marketing manager 作出销售计划后,须要公司的CEO 和CFO来审批。 当两位经理都对此作出审批后,将把信息反馈到 sales manager. 假设CEO 的评审没有经过,销售经理须要修改 sales plan, 再进行审批,直到经过为止。 下一个环节是拜访客户。 若是一切顺利,就可获得定单,整个流程结束。 以上的例子是一个假想的例子, 但它反映了工做流引擎的一些重要功能 1. 用户看到的只是本身的任务列表。 当他完成了这项任务后,由工做流引擎根据流程,把任务分配给下一个环节的负责人。 2. 每个任务都由一个角色来完成,由工做流引擎,根据组织架构,决定具体由谁来作。 3. 有些过程(审批)须要重复进行,直到经过。 4. 有些过程 (审批)须要全部的前置任务(CEO review, CFO review)都完成,才进入下一个阶段。 5. 有些过程不须要人来操做,好比,审批节点自动等待 CEO和CFO 都审批完后,把结果反馈到市场部经理。 工做流引擎对于用户来讲是透明的,用户经过它的客户端来对它进行操做。 客户经过建模工具来创建模型,经过任务列表来知道本身当前的任务。经过管理工具来对工做流程进行维护。