工作流简介

前一阶段做的一个系统,类似工作流管理系统,但很不标准,灵活度有限,所以想对工作流进行进一步的了解优化系统的实现。我一直比较喜欢李刚老师的疯狂系列丛书,写的很全面,例子很生动,可等了近一年,疯狂系列的最后一本 《疯狂JBPM讲义》还是不见踪影。

WFMC(工作流管理联盟)定义了在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准。
什么是工作流管理系统(WFMS)
工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。
WFMC对工作流的定义:工作流是指整个或部分经营过程在计算机支持下的全自动或半自动化。
主要解决的是:使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,
从而实现某个预期的业务目标,促使此目标的实现。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。
实际应用中的情况: 在网络、服务器和多台计算机客户端的硬件平台上,业务过程按照预先设定的规则并借助应用程序
和人对相关数据的处理而完成。(突出预先设定,整个过程中的规则)。

基本的术语
流程定义(process definition):一个流程定义是一个业务流程或过程的规格化描述。
流程实例(process instance):一个流程实例是流程定义的一个运行实体。

工作流基本功能:
(1)定义工作流,包括具体的活动、规则等,这些定义是同时被人以及计算机所能够“理解”的。
(2)按照工作流的定义创建和运行实际的工作流。
(3)监察、控制、管理运行中的业务(工作流),例如任务、工作量与进度的检察、平衡等。

活动(Activity)、状态(State)、动作(Action)之间的混淆概念:
状态(或说等待状态),代表了一种对外部参与者(Actor)的依赖。在流程运行时,这意味着流程引擎必须等待,
直到外部参与者通知工作流管理系统指定的状态完成了。(在此,状态的意义须被通知自己的状态是否完成,对参与者存在依赖)
动作是在流程运行过程中,工作流系统为响应指定事件(event)运行的一段程序逻辑(programming logic)。
对Action的理解:当流程运行过程中指定的事件发生时,工作流系统启动并执行这些动作。
比如,当状态分配给一个参与者时,发一封Email。
建议是:避免使用术语“活动”,使用“状态”或者“动作”代替它。

工作流是如何实现的:
工作流的实施需要三个基本步骤:映射、建模和管理。
映射:任务是确定并且文档化组织内全部现有的手工和自动化的业务流程;
建模:开发一个有助于建成流线型业务过程的模型。

缺失的一环(Missing link):工作流系统是企业应用开发中缺失的一环。
将企业业务流程逻辑在企业级软件中实现的缺省方式是分散的。这意味着业务流程逻辑散布在各种
系统中,如EJB、数据库触发器、消息代理等等。

工作流适用行业:
消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,
大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。
   
工作流具体应用:
关键业务流程: 订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等
行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、
日报周报等凡是原来手工流转处理的行政表单。
人事管理类: 员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
财务相关类: 付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
客户服务类: 客户信息管理、客户投诉、请求处理、售后服务管理等管理等。
特殊服务类: ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、
物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。

一个工作流的基本组成:
一组任务(或叫活动)、任务之间的相互顺序关系,流程及任务(或活动)的启动和终止条件,
以及对每个任务(或活动)的描述。
活动、关系、启动、终止、任务描述(活动描述)

Work Flow Enactment Service:这个组件就是我们平常说的工作流机或工作流引擎,主要功能是读取工作流定义、
根据工作流定义驱动工作流的流转。
Process Definition(1):在流程定义、建模工具、工作流引擎之间定义标准接口。
流程定义表示一种形式上的业务流程描述,由各种活动以及相互之间的网状关系组成,标识
了流程的开始和终止,并且包含个体行为的信息,比如各个参与者、与 IT 相关的应用程序和数据
Workflow Client Application(2):工作流引擎的客户端程序。该程序由用户结合业务需求而开发,
用它来驱动工作流。客户端程序通过该接口与引擎交互。
Invoked Application(3):通过普通代理软件调用该接口,允许调用工作流引擎之外的功能。
WfMC 参考模型
接口1 :早期的规范为 WPDL (  Workflow Process Definition Language )。后来,这一接口的规范变更为 XPDL 。
XPDL 是至今工作流领域最为重要的一个标准,目前大多数工作流引擎是依据该标准设计开发的。
XPDL 利用 XML 作为流程定义相互转换机制,在流程定义元模型中, XPDL 语法直接与定义在其中的对象、属性相关联。
元模型描述了流程定义所需要的上层实体,以及它们的关系和属性。
接口2&3:规范为 WAPI (  Workflow Application Programming Interfaces )。

引入工作流的组织,能够在软件开发和业务两个层次受益。
方便开发-工作流管理系统能够简化企业级软件开发甚至维护。
降低开发风险 - 通过使用状态和动作这样的术语,
业务分析师和开发人员使用同一种语言交谈。这样开发人员就不必将用户需求转化成软件设计了。
实现的集中统一 -业务流程经常变化,使用工作流系统的
最大好处是:业务流程的实现代码,不再是散落在各种各样的系统中 。
加快应用开发 - 你的软件不用再关注流程的参与者,开发起来更快,代码更容易维护。

原文地址:https://www.cnblogs.com/hainange/p/6153009.html