2016-12-23

基于原数据库的房屋管理系统流程定制

2016-12-23 | 0 评论

  军①,胡春春①

武汉大学测绘学院,武汉430079

【摘  要】针对房屋全生命周期管理中业务环节多、变化快、流程复杂、流转关系不规则,定制困难等问题,本文提出了基于元数据库的业务流程定制方法-元模型,解决了业务流程标准化、规范化和对政策变化的动态适应性问题。把不同业务流程作为过程运行的顺序信息,提炼为管理型元数据;提出在建立房管元数据库基础上管理流程和流程定制,这样保证了流程的标准化,也便于业务人员更新流程。元模型摆脱了依赖特定编程平台或商业工作流引擎的限制。

【关健词流程定制业务流程元数据库;房屋管理

1 引言

    本文基于武汉市住房保障和房屋管理局“智慧房管”主数据库设计项目,对房管业务流程进行了梳理,把业务流程信息抽取为过程运行的顺序信息,并保存在元数据库中的工作流模型库中;流程定制也是基于元数据库管理的,其结果是流程和流程管理简洁和规范化了。

    工作流(业务流程或业务流)是企业中一系列创造价值的活动的组合。活动与活动之间相互独立,或存在数据或控制关联,触发条件则决定了流程的自由走向。多年来,工作流问题吸引了很多学者和研究机构进行了大量深入的研究[1]。文献[2]基于NET 编程平台,开发了一种轻型工作流引擎;文献[3]采用 Java 技术实现一个轻量级工作流引擎设计,以方便地嵌入到面向流程的应用程序中,实现工作流系统管理的功能;为了支持流程的动态改变,文献[4]提出了一个支持业务流程动态改变的管理机制;还有其他文献[5]-[15]提出的一些工作流管理机制,这些方法基本都是基于某特定编程平台或某流程架构的,是面向编程人员的,不是面向业务人员的;而且房管业务流程比较多,而且会随国家政策法规变化,如果基于已有的商业的流程管理架构,房管业务人员往往难以使用,不便于更新流程。为解决该问题,本文提出在建立房管元数据库基础上管理流程,把房管业务工作流作为记录保存在流程模型库中,如果流程变化了,不删除旧有流程,而是为旧有记录添加历史时间标记;然后产生一条新记录代表新流程入模型库。客户端的流程执行代码是基于流程模型库的,流程变了但流程执行代码可以不变,这样便于业务人员使用和维护系统。本文所提出的方法,是从够用、灵活和低成本的设计原则出发,不追求功能的完备和复杂,只是实现其中必不可少的功能和特征当业务流程发生改变,能够通过简便的更新修改,使系统很快适应新的作用,同时保留旧的流程。它摆脱了依赖特定编程平台或商业工作流引擎的限制。

2 房管业务流程

    房管业务流程都是有序工作流, 而且在大多数情况下是二叉分支的:满足办理条件则“提交”到下一办理阶段,否则退回到上一办理阶段。对于这种情况的业务流,可以用一种简化的业务流模型描述。本文提出的通用工作流模型包括了二叉和多叉分支的业务流。虽然许多业务系统有自己的流程定制方法,但往往过于复杂,而且不同板块的流程定制方法不统一。为解决该问题,我们提出的通用工作流模型是基于元数据库的,方便定制,而且不同板块的定制方法是统一的:即不同类别的流程,可以用一个统一的模型,把不同的流程图都用“工作流表”表示出来,然后与“业务办理阶段”关联,有利于编程人员统一实现具体的走流程过程;也有利于管理人员或决策者统一查询,方便监管。

    房管业务流中的基本元素是业务办理阶段(或称为活动),流程中的任意一个活动根据触发条件可以连接到其它的活动,除了工作流开始结点以外,活动结点之间构成了一个网状模型,增加了流程的灵活性,业务环节的逻辑联系不需要设置固定的控制结构(如顺序结构、并行结构),而通过设置不同的触发条件和扩展活动的属性项以适应模型的动态修改。其中,每一个活动对应于业务流程中的一个业务办理阶段,其属性(即对应的触发条件)均采用元数据加以描述;每一个触发条件对应的触发活动也采用元数据加以描述,触发活动可以包括提交和退回,如果是多叉分支的,则有多个提交。下面的业务流是多叉分支的工作流: 

从工作流开始结点出发,如果满足触发条件1,则业务的信息和控制流转向活动1,活动1完成后,如果满足触发条件5,则业务流转向活动5。 所以可以通过设置不同的触发条件来控制业务的流转, 这也大大增加了业务的灵活性和可扩展性。但具体的房管工作流往往比图1要简单,例如商品房合同备案流程见图2 

办理阶段1  办理阶段2  办理阶段3  办理阶段4 办理阶段5    办理阶段6

2 合同备案流程图

用“业务办理阶段”把不同的阶段统一为一个实体,仅仅是实体的属性不同而已。表1是二叉分支的流程表。

1 二叉分支流程表

阶段编号

业务办理阶段

提交(下阶段编号)

退回(上阶段编号)

1

申请备案

2

 

2

受理

3

1

3

初审

4

2

4

复审

5

3

5

备案

6

4

6

领合同

 

 

1的流程表无法表达多叉分支的情况,而通用工作流模型的流程表即可以描述多叉分支工作流。

2 多叉分支流程表

流程编号

阶段

编号

业务办理阶段

提交或退回

(下阶段编号)

分支号

触发条件

1

1

申请备案

2

1

满足申请备案条件

1

1

申请备案

 

0

满足申请备案条件

1

2

受理

3

1

满足受理条件

1

2

受理

1

0

满足受理条件

1

3

初审

4

1

满足初审条件

1

3

初审

2

0

满足初审条件

1

4

复审

5

1

满足复审条件

1

4

复审

3

0

满足复审条件

1

5

备案

6

1

满足备案条件

1

5

备案

4

0

满足备案条件

1

6

领合同

 

 

 

 

 表3流程描述表

流程编号

流程名称

流程包含业务阶段

流程对应的

政策法规

开始时间

结束时间

1

合同备案

123456

 

 

 

2

初始登记

……..

 

 

 

 

 

 

 

 

 

对于如图2所示的合同备案流程,首先需要描述整个流程所涵盖的业务办理阶段,其次还需要描述每一个业务办理阶段的相关属性。而在流程执行过程中,如果在初审完以后可以有两种选择:复审和合同备案,则可以根据初审阶段给定的触发条件自动地转向复审或是合同备案。在流程发生变化时,一般只需要对阶段添加相应的属性即可;但在流程描述表中有流程的开始时间和结束时间,它描述了流程的时态属性,所以如果流程变化了,要设置原有流程的结束时间,然后创建一个新流程:生成新的流程编号,流程描述表和多叉分支流程表都要添加新的内容。

3 逻辑设计

与流程有关的表分为二部分:第一部分是保存在元数据库中的一些表,第二部分是保存在不同业务系统过程库中的一些表。

3.1元数据库中的流程表

1)流程描述表

流程描述表(流程编号,流程名称,流程包含业务阶段,政策法规,开始时间,结束时间)

注:当流程变化了,则标记流程结束时间,新流程用一个新的流程编号。

2) 业务阶段描述表

业务阶段描述表(流程编号, 阶段编号, 阶段名称,办理时间限制,阶段描述)

3)系统流程表

系统流程表(流程编号, 阶段编号, 触发条件,下阶段编号,分支号)

注:触发条件仅仅是描述性的条件,如果满足触发条件,则转移到下阶段。

分支号0,表示退回分支; 1,2… , 表示正常提交分支。

4)申办材料名称表  

申办材料名称表(申办材料编号,申办材料名称,申办材料影像,开始时间,结束时间

5)申办材料_流程联系表

申办材料_流程联系表(申办材料编号,流程编号,份数,材料类型,是重复受理材料)

3.2过程库中的表

1)  业务办理表(包括:流程执行提交)

业务办理表(阶段号,业务流号,流程编号,办理阶段编号,经办人编码,上一阶段号,收件日期,处理意见,意见类型,入过程库时间,入现势库时间,入历史库时间

注:阶段号是机器自动生成的唯一标识码,业务流号是业务系统自动生成的一个业务逻辑编号,流程编号是外键-对应于元数据库中流程描述表中的流程编号。办理阶段编号是外键-对应于元数据库中业务阶段描述表的阶段编号。处理意见是本阶段当前处理意见(提交或退回意见)。

在不同的业务处理系统中,根据情况,过程库中还包括其他一些不同的表。

4 实验

SQLServer2008数据库系统中创建metaDB元数据库,并建立相应的表。

C#窗体程序写一个业务系统客户端,用ADO.NET调用metaDB元数据库中相应表的内容。例如启动了商品房合同备案流程,其业务流号为123,执行到了初审阶段,在业务办理表中的记录见表4

        表4 业务办理表中的记录

对应的客户端界面见图3

                    图3 客户端运行界面:阶段窗口

如果流程编号不变,在系统流程表中添加一条记录(记录12),见表5:

         表5 有多分支的系统流程表

重新运行业务客户端,则系统界面变成图4所示。点击【提交1】按钮,进入复审阶段;如果点击【提交2】按钮,则跳过复审阶段,进入备案阶段。

               图4 阶段窗口显示出提交2和触发条件

        客服端的代码没有改动,仅仅是元数据库相应的表记录发生了变化,客户端可以按流程发生的变化而变化。这正是我们要实现的基本目标。当然,具体实现业务系统时,很多细节会不同于这个简单的实验:例如不直接修改已有流程,而是生成一个新流程编号,然后用新流程编号在系统流程表中添加所有新流程的记录。 

    如果在流程中添加或减少某一阶段,客服端的代码不改动,客服端也能自动响应流程的变化。

5 结束语

目前,大多数工作流产品采用比较直观的有向图模型,但对于复杂的过程逻辑和多业务流程规范化管理考虑不足,而本文的元模型重点在于流程的定义和基本元素及规则的抽象,流程的应用范围和灵活性会受到流程定义描述的制约。元模型主要技术要点有:

1)建立了适合于房屋全生命周期管理的通用业务流程模型库

通过将房屋全生命周期管理中不同业务流程的描述、流程活动的结构、组成元素和流转规则定义为管理型元数据,定义业务流程的工作流表,并通过建立流程活动和流转规则元数据的关系表,构建了一个通用的业务流程模型元数据库,能有效地实现业务流程模型的标准化和规范化管理,为房管人员或决策者提供了高效的流程统一运行、查询和监管机制。

2)提出了自适应的业务流程定制方法

通过房管业务流程模型元数据库中活动流转规则的元数据定义,使得业务环节的逻辑联系不需要设置固定的顺序或并行控制结构,有效地增加了业务流程的灵活性;通过扩展或定义新的流程活动和流转规则元数据,以及对元数据库工作流表的操作来实现对业务流模型的动态修改,并用时间戳来管理业务流程版本,使业务流程动态修改后仍然保持一致性和正确性,适应房管政策变化的需求,能有效地实现业务流程的定制与执行两个不同阶段的分离,满足业务定制的自适应性需求。

与国内外同类技术对比,建立的通用业务流程模型库和流程定制方法满足房屋全生命周期管理标准化和动态适应性的需求,摆脱了依赖国内外工作流引擎软件的限制,能支持200余条房管业务流程,达到国内一般商业成熟工作流引擎软件的支撑力度水平。

                                              参考文献

[1] Will Aalst,Kees Hee.王建民,闻立杰,.工作流管理模型方法和系统[M].北京:清华大学出版社,2004.

[2] 杨明顺,韩周鹏,余婷,李言,邵利真.一种轻型工作流引擎的设计与实现[J].西安理工大学学报,2013,1:20-26.

[3] 蔡孝武,韩永国,蓝科.一种轻量级工作流引擎的研究与设计[J].计算机工程,2010,36(20):78-82.

[4] Ruopeng LShazia SGuido GOn Managing business processes variantsData and Knowledge Engineering200968(7)642-664

[5] Castano S, De AntonellisV, De Capitani diVemercati S (2001) Global viewing of heterogeneous data sources [G]IEEE Trans Data Knowl Eng 13(2):277-297.

[6] 路春光,孟丽丽,郝立文,马琨乐.基于WEB的柔性工作流引擎的设计[J].微计算机信息,2006,5:21-23.

[7] 陈义松,汪芸. 基于数据驱动的工作流引擎的设计与实现[J].微电子学与计算机,2012,11:138-140.

[8] 何倩,祥武,王勇.数字化校园工作流引擎的设计与实现[J].计算机工程与应用,2009,45(25):82-84.

[9] 张洪山,殷人昆,张素琴.基于Web的工作流引擎设计[J].计算机工程,2004,2:83-85.

[10] 战德臣,徐晓飞.基于工作流引擎的构件组装体系结构[J].软件学报,2006,17(6):1401-1410.

[11] 文一凭,刘洁. 工作流模型挖掘算法及其应用研究[J]. 计算机技术与发展,2008(07)

[12] 曹健辉,李峰. 柔性工作流动态建模机制的研究与设计[J]. 计算机技术与发展, 2009(10)

[13] 胡春华,吴敏,刘国平. Web服务工作流中基于信任关系的QoS调度[J]. 计算机学报, 2009(01)

[14] 王迎霞. 一种事件驱动的工作流管理系统的设计与实现[J]. 计算机技术与发展, 2012(2)

[15] 夏冬,白树仁,邓惠建. 基于J2EE的工作流管理系统模型[J]. 计算机工程与科学, 2006(03)

作者简介:李军(1962-),男,湖北人,武汉大学测绘学院高级工程师,从事空间数据库等方面的研究、开发和教学工作。

E-mailgblijun@qq.com

收稿日期2015-03-15

基金项目武汉市住房保障和房屋管理局信息化建设公开招标采购项目:智慧房管主数据库设计及一期建库 WHZC-2014-075A(221024152416)


添加评论

武汉大学测绘学院空间信息工程研究所版权所有 地址:武汉市洪山区珞瑜路129号 邮编:430079