探索工作流(八)--使用总结

一 工作流概述
        1 工作流是什么?
                为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
        2 分类
                业务流、审批流
        3 解决方案

                Workflow、BPM、Activity

二 工作流服务
        1 对外接口


                1 流程定义的导入导出,为不同的流程定义提供商定义了一个接口规范。
                2 用户接口,工作流系统必须提供与用户交互的通道
                3 外部应用接口,调用外部应用所需要的接口
                4 不同工作流系统之间的接口,跨系统、跨服务器之间的数据接口
                5 管理和监视,用户管理和监控系统运行状态,查看历史记录等数据。
        2 核心业务


                RepositoryService:用于设计流程模板。
                RuntimeService:每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。Runtime Service 提供了启动流程、查询流程实例、设置获取流程实例变量等功能。
                TaskService:流程定义中的每一个执行节点被称为一个 Task,对流程中的数据存取,状态变更等操作均需要在 Task 中完成。
                IdentityService:工作流内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的 Task。
                ManagementService:Management Service 提供了对流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于工作流系统的日常维护。
                HistoryService: History Service 用于获取正在运行或已经完成的流程实例的信息,与 Runtime Service 中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。
                FormService: 工作流中的流程和状态 Task 均可以关联业务相关的数据。通过使用 Form Service 可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单。
三 持久化
        1 持久化方式
                XML、数据库

        2 持久化数据库


四 工作流宿主
                1 WorkflowInvoker提供调用工作流的简单方法,我们使用WorkflowInvoker对象时,就像使用一个普通方法一样创建和启动工作流,并且只能用于不使用持久化的工作流;
                2 WorkflowApplication对象为执行工作流提供了更加丰富的模型,包括生命周期事件通知、执行控制、书签恢复和持久化等;
                3 WorkflowServiceHost为消息传递活动提供支持,一个工作流主机可以管理多个工作流实例,用于工作流远程调用。
五 设计时描述


        设计时描述类:每个流程以IWfProcess来表示,在流程中我们会有很多的活动点,但是起始点和终结点只有一个.所以流程的描述会有一个起始点描述,多个中间活动点描述和一个终结点描述.这些活动点上可能有一些流转时的限制条件,所以我们还需要条件的描述.
但是只有这些内容不足以完整的定义一个流程,因为缺少流程的流向,即活动点之间的关系.所以我们还需要线描述来联结活动点,说明活动点的先后顺序.线的流转也可能会有一些条件的判断和限制,比如说当金额超出时流转到活动点1,否则流转到活动点2.这样我们就可以完整地描述一个流程,并将其保存至数据库或文件.
六 运行时实例


        运行时实例:流程的运行时对象与设计时对象相比,多了一些操作和流程的起始结束时间,创建者,操作者,分派人,候选人等信息,流程运行的操作包括流转到下一活动点,撤回到已有活动点,取消流程,流程结束.这些操作都由流程的实例来完成.活动点实例检查是否可以流转,受到活动点条件描述或线条件描述的制约.
七 运行环境
        1 运行时的参数
        WfProcessStartupParams
        流程启动参数包含流程创建人,分派人等信息持有一个流程描述.
        WfRuntimeParameters
        流程启动参数,定义是否加载Action
        WfTransferParams
        流程流转时参数包含分派人以及操作人.持有下一活动点的描述.持有下一活动点的入线描述.持有WfBranchProcessTransferParams集合,为只读属性.由描述文件自动生成
        WfBranchProcessTransferParams

        子流程启动参数,持有子流程描述,持有WfBranchProcessStartupParams集合
        WfBranchProcessStartupParams
        每一种分支流程的启动参数,包括分派人集合信息.
2 流程执行上下文
        WfProcessActionContext 
        在工作流的运行环境中用来存放一些行为和操作,流程的流转,撤回,通知相关人员等操作都需要使用        WfProcessActionContext中的一些数据或操作.

3 流程实例管理器
        WfRuntime
        前面我们在启动流程时使用过WfRuntime类, 通过WfRuntime来管理所有运行中的流程实例。该类提供了流程实例的装载,保存,删除以及启动新流程实例的功能.它持有一个很重要的对象,就是WfProcessActionContext,在WfRuntime中它的生命周期是单次会话,即缓存在ContextCacheQueue中,很多方法都要访问WfProcessActionContext来完成。
八 前台框架
        介绍前台几个模块之间的关系
九 执行控制
    1 表单数据
    2 持久层
    3 控件
    4 事件
         1 工作流执行时触发的事件
                1 Aborted工作流中止时触发的事件
                2 Completed工作流完成时触发的事件
                3 Unloaded 工作流卸载时触发的事件
                4 Idel 工作流进入空闲状态时触发的事件
                5 PersistableIdle工作流进入空闲状态并且可被持久化时执行的事件

          2 客户选择触发的事件

<span style="font-size:18px;">      public event MoveToEventHandler BeforeMoveTo;
      public event MoveToEventHandler AfterMoveTo;</span><span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif;">      </span><span style="font-size:18px;">
      public event ExecutorEventHandler BeforeExecute;
      public event ExecutorEventHandler PrepareApplicationData;
      public event PrepareTasksEventHandler PrepareMoveToTasks;
      public event PrepareTasksEventHandler PrepareNotifyTasks;
      public event PrepareUserOperationLogEventHandler PrepareUserOperationLog;
      public event ExecutorEventHandler SaveApplicationData;
      public event ExecutorEventHandler AfterSaveApplicationData;
      public event ExecutorEventHandler AfterModifyWorkflow;
      public event ErrorEventHandler Error;</span>


猜你喜欢

转载自blog.csdn.net/u010942465/article/details/50768296