BPM框架设计

对 Workflow和BPM,没有严格的概念界限区分
首先让我们回顾到上个世纪九十年代,诞生了 “Process Reengineering”,可惜那个时候只是一阵风,因为技术跟不上,所以大多都只停留在管理层概念。但是,在九十年代,workflow技术却蓬勃发展,可谓是百家争鸣,蒸蒸日上。
2000左右,工作流技术应用已经非常成熟,数据集成,应用集成也发展迅速。随之也推动了业务过程管理、整合、统计、优化等方面的应用需求。于是就诞生了“BPM”这个概念。
如果 Workflow是早期人们为了解决“办公自动化”“流程自动化”而诞生的应用技术和解决方案的话;那么BPM则是为了“对全局性的业务分析、整合”,以及“能够基于这些分析提供对上层管理决策的支持”的一种应用技术和解决方案。
事实上,如何去描述业务过程 “Business Process”,一直还是个争论不休的话题,也因此存在几种标准。主要是以WfMC为代表的XPDL,OASIS为代表的BPEL,OMG为代表的BPMN和BPDM。
虽然描述过程 “Process”的标准并不一样,但是在圈定以:过程定义、过程执行、过程监控、过程分析、过程优化这几个方面为核心的BPM Solution ,这一方面各家几乎都是相同的,只是实现技术不同。
BPM关注于由一些独立的应用系统组成的业务流程的的模拟、定义、执行、分析和管理。BPM是工作流的超集,最大的不同是使不同的应用活动相互协作提供强大的整合能力。
工作流管理系统用于控制流程从一个人到另一个人,从一个应用到另一个应用,因此,它用于管理工作流的信息。工作流管理不考虑业务流程的优化。 BPM真正控制整个流程,确保工作流能够按计划实施。
BPM的解决方案包含很多工具,可以帮助业务人员很容易的创建和记录流程。可以为 IT人员提供一个协同环境,来将业务人员创建的业务流程转换为可以执行的、与数据库、电子表格和业务规则相集成的代码。当业务流程很复杂的时候,一个人是不够的,很多不同的人要一起工作,协同工具是有必要的,它使得业务人员和IT人员可以进行协作。
BPM可以帮助软件开发人员来集成第三方的应用软件。在企业中有很多不同的应用系统。例如, ERP、PLM、财务软件等。这些系统可以通过BPM平台进行集成。此外BPM还用于处理流程执行过程中的意外和特殊情况,发布流程,并对流程进行版本控制。另外有一种工具,可以从正在执行的流程中提取一系列的指标,生成各种形式的报告,使流程的拥有者能够管理流程的资源,实现流程的优化。
简而言之, BPM可以提供所有的流程控制功能,并实现与各类应用软件的集成,但工作流管理不能实现这些功能。
1、工作流(Workflow)
在模拟、定义、执行和分析方面并不是非常关心完整周期的流程管理。没有内置的流程管理概念。
有限的可测量性和可靠性,通常只是为部门级的使用进行设计并只有有限的平台支持。
缺乏整合能力,通常只限于传送图片或者文档附件。
通常只能运行指定的应用系统,无法运行外部的主机应用系统,比如 Oracle、SAP等等。
功能着重于提供强大的电子表单功能。
通常在非任务验证和收入结算领域使用。
2、BPM
业务流程的管理、模拟、执行和分析的独立的软件平台,通常用于 P2P、P2A和A2A(STP)任务验证和收入结算流程中。
高可测性、高事务数、大用户量的设计。
很强的集成能力,业务流程能够通过不同应用系统与多个软 /硬件平台进行端到端的连接。
提供的主要功能:
a.高可视化
b.可管理化
c.灵活性
d.模块化
e.整合性
f.基于规则
g.持续的优化
h.嵌入的
3、BPMN
由BPMI(The Business Process Management Initiative)开发了一套标准叫业务流程建模符号(BPMN - Business Process Modeling Notation)。在 BPMI Notation Working Group超过2年的努力,于2004年5月对外发布了BPMN 1.0 规范。后BPMI并入到OMG组织,OMG于2011年推出BPMN2.0标准,对BPMN进行了重新定义(Business Process Model and Notation)。BPMN的主要目标是提供一些被所有业务用户容易理解的符号,从创建流程轮廓的业务分析到这些流程的实现,直到最终用户的管理监控。BPMN也支持提供一个内部的模型可以生成可执行的BPEL4WS。因此BPMN的出现,弥补了从业务流程设计到流程开发的间隙。BPMN定义了一个
业务流程图(Business Process Diagram),该业务流程图基于一个流程图(flowcharting),该流程图被设计用于创建业务流程操作的图形化模型。而一个业务流程模型(Business Process Model),指一个由图形对象(graphical objects)组成的网状图,图形对象包括活动(activities和用于定义这些活动执行顺序的流程控制器flow controls)。
 
流程编辑器
 
流程引擎设计
设计理论,依据图论。节点,节点直接的连线。这里只介绍基本流程框架。
节点:节点可以分为 开始、结束、审批、任务等类型节点。大家有各自不同的处理逻辑。
此外节点上会有一些属性,比如说审批人等设计业务的参数,此类参数可以根据业务继续扩展。
连线:连线有正向和反向的区分。
连线上也可以扩展业务参数,根据自己业务需求。
 
流程定义表
ID
主键
ProcessCode
流程编码
ProcessName
流程名称
Version
版本,每次修改发版流程版本号
ProcessDesign
流程定义,可以是xml json等表述流程BPMN流程图
流程节点
ID
 
ProcessCode
流程编码
NodeName
 
NodeCode
 
NodeType
1、开始节点 2、审批节点 3、任务节点、4、ifelse节点 99、结束节点
流程节点 连线
ID
 
ProcessCode
 
FromNodeId
开始节点
ToNodeId
结束节点
Direction
方向1正向 2反向
 
上述表已经可以定义一个图(数据结构)。还可以加上版本编号。
 
 
节点审核用户 表
这里可以扩展很多类型比如说审批人上级,固定角色等等。会签 或签等场景。
ID
主键
NodeId
 
UserId
审核人ID
 
 
流程节点 连线 条件表
0
在判断的时候,需要
 
ID
 
LinkId
流程连线ID
ConditionExp
条件表达式,可以根据流程实例变量,以及节点审批状态等参数做判断
 
以上又加入节点属性,连线属性表。可以根据功能在扩展。
 
流程实例表
ID
 
ProcessCode
流程编码
BizCode
对应业务code
CurrentNodeId
当前节点
ProcessVersion
流程版本
Status
状态,标识流程是否结束
流程实例 变量表
ID
 
ProcessInstanceID
流程实例ID
FormKey
 
FormValue
 
流程审批记录表
ProcessInstanceID
 
FromNode
开始节点
ToNode
结束节点
ApproveStatus
审批状态
ApproveRemark
审批意见
 
posted @ 2024-10-28 13:38  西伯利亚的狼  阅读(23)  评论(0编辑  收藏  举报