支持协同设计的工作流项目管理系统

时间:2022-10-08 01:00:13

支持协同设计的工作流项目管理系统

摘要:传统的工程项目管理系统普遍存在业务应用逻辑和流程固化的问题,已经无法满足目前房地产开发企业需求。该文重新设计支持协同设计的工作流项目管理系统,采用JaWE组件规范设计XPDL工作流模型文档,设计实现工作流引擎对其进行解释执行,消除了由于业务流程迁移而对信息系统产生的不利影响,可以实现快速改变业务流程而无需改变系统主程序。

关键词:XPDL;工作流;工作流引擎;项目管理

中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2012)33-7936-03

随着我国经济建设的发展和人民生活水平的提高,房地产行业也获得了健康发展的契机,而房地产项目的成败主要取决于设计理念是否先进、施工质量是否达到预期目标等等,这些都直接关系到开发商的经济收益和社会效益。随着计算机应用日益普及,开发商普遍采用工程项目管理软件来帮助企业提高项目管理效率,企业业务规模的不断扩大,对并行项目的管理也变得越来越困难,同时由于当前很多的工程经过层层分包和转包,加上施工管理人员缺乏系统化、规范化流程控制管理理念,项目的管理比较混乱,设计方和建筑方沟通不彻底,项目协同设计能力较差,容易偏离初始设计目标,后期反馈导致项目修改负担重。同时各项目管理系统平台缺乏统一规划,各自形成“信息孤岛”无法进行数据的共享和交换,从而大大降低了企业项目管理的科学性与效率。

目前传统的工程项目管理系统一般是将现有业务的应用逻辑和业务流程固化到一起[1],通过人工操作处理业务流程信息。房地产项目运作的环境错综复杂,地区经济发展水平、政府宏观、微观金融政策的调整、消费对象和消费意愿以及房地产市场的变化等,都可能直接影响到房地产项目的开发和销售。房地产项目的经营者迫切需要提高能够适应激烈的市场竞争,迅速对复杂、高风险的投资活动作出正确决策的能力。由于人工处理信息时效性差,使得房地产开发项目管理方无法做出及时准确的计划和控制。与此同时,当遇到外界环境发生改变,就不得不对已有的规划设计进行修改,甚至已经建成的建筑需要拆除重建,往往这种方式在时间上又是不被允许的,就会导致项目遭受巨大损失。

传统的工程项目管理系统实现信息流和业务流的流转一般通过菜单驱动方式,该方式只能机械地处理系统包含的数据和文档资料,难以应对市场快速变化做出相应设计上的修改和灵活管理业务逻辑变迁,无法实现开发商、建筑商、设计院之间的多方协同设计项目管理工作[2]。工程项目管理系统由于涉及到很多资源、进度、收入、设计、合同的变化,这些数据始终处于流动变化状态,业务流程也随之发生改变。比如增加一个审批流程,由于传统系统不能适应业务处理流程改动,除非修改系统源代码,这又需要大量时间和费用,还能导致整个项目管理的业务流程无法正常进行。因此这类系统在设计时就要考虑到如何实现业务流程的快速变更或重建,其中包括改变工作流程流向、增加新工作流程环节、减少老工作流程环节、合并工作流程环节等。传统的工程项目管理系统处理工作流程是通过开发人员人工编写固定操作流程,并由人工触发转入下一步骤,这显然难以适应现代工程项目管理需求灵活多变的现状。

1 相关技术

JaWE(Java Workflow Editor)是一种全新的图形化工作流过程定义编辑器,它严格遵循工作流管理联盟(Workflow Management Coalition,WfMC)的接口规范,输出一个标准的过程定义文本描述XPDL(XML Process Definition Language)文件。工作流过程定义接口定义了一个公共接口模式,不同工作流产品的过程定义是可以通过XPDL标准来进行交互的。由JaWE定义的工作流过程模型,能够在不同的工作流软件产品上进行运行和通讯。基于元模型框架的XPDL过程定义接口规范定义了在一个过程定义中常用的实体以及它们之间的关系和实体属性。按照元模型定义,JaWE通过XPDL规范的公用接口模式能够实现多个模型间的转换和过程定义的内部描述。

2 支持协同设计的工作流项目管理系统模型

图1给出了用统一建模语言(Unified Modeling Language,UML)设计的体系结构模型,新模型采用工作流技术来解决目前项目管理信息系统的强耦合与弱柔性的问题。该系统结构包含5个层次,自上而下分别是表示层、访问控制层、模型层、数据访问层、数据库。表示层包含所有用户服务接口,直接为用户提供信息服务;访问控制层主要负责对用户身份进行核实,按照身份服务权限表赋予相应服务模块的访问权限;模型层封装系统所有的服务器组件、逻辑业务功能接口和XPDL流程定义文件,它结构复杂,任务繁重是整个系统协作运行的核心层;数据访问层为以上各层提供数据库访问服务接口;数据库主要存放各种相关应用数据,包括XPDL工作流模型定义文件、工程设计CAD文件、企业业务文档数据、系统访问控制数据及其他相关数据。

3 设计实现

该文设计的Web应用框架采取目前主流.NET开发技术设计,程序开发语言为Visual C# 2010,开发环境为Visual Studio 2010。工作流过程定义语言采用XPDL规范,它是工作流管理联盟提出的一种基于XML的工作流过程定义语言,它负责定义工作流参考模型中的过程定义交换接口。工作流过程设计组件使用JaWE 图形化设计工具,工程设计组件使用AutoCAD,它是目前世界各国工程设计人员的首选设计软件,简便易学、精确无误。数据库使用SQL Server 2005,它是一个全面的数据库平台,使用集成的商业智能?(Business Intelligence,BI)工具提供了企业级的数据管理,为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。下面逐层进行阐述。

3.1 表示层

表示层为系统用户提供对项目管理系统的访问接口,由

Web窗体和代码隐藏文件组成。Web窗体可以提供多种多样的用户操作接口;信息格式检验脚本对输入信息格式是否合法进行验证,若用户输入格式不正确则提醒读者输入正确格式;访问控制根据用户组信息赋予当前用户相应的系统使用权限;而代码隐藏文件是.Net Framework用来实现各种控件的事件响应处理程序。本架构同时支持B/S模式和C/S模式设计,用户可以通过IE浏览器或Windows Form来获取系统提供的功能服务,为安全性考虑工作流设计员与系统管理员采用C/S模式设计。本系统涉及到四类角色,工程设计人员、项目管理人员、工作流设计人员、系统管理员。

3.2 访问控制层

用户登录系统时,系统对用户名、密码进行验证,确定当前用户具备系统相关服务使用权限后,允许访问相应模块。由于本系统存储的数据信息具有极高的商业价值,为了保证系统及数据的安全性,需要严格管理系统的访问控制权限,可以采取基于角色对象身份的访问控制技术[3]。角色权限分组管理是对系统的全部资源建立独立的访问权限管理,根据系统使用人员情况设定所需要的角色分组类型,同时为其分配相应的权限。为方便系统管理员管理,预先按照用户职务对访问权限进行预分组,从而实现了用户与访问权限的逻辑分离。系统实施过程中再将具体用户分配到相关的角色分组,极大地方便了管理员进行权限管理。同时允许系统管理员对角色分组权限进行微调,实现灵活的访问控制。

3.3 模型层

模型层由XPDL流程定义文件、JaWE流程定义工具、工作流引擎和AutoCAD组件构成,为用户提供工作流流程定义和工作流业务实例的建立、管理、协调控制和协同设计功能等。下面逐一进行详细说明。

XPDL语言是工作流管理联盟提出的一种基于XML的工作流过程定义语言,它定义工作流参考模型中的过程交换接口。任何业务流程都能使用XPDL工作流模型设计,XPDL过程模型由一系列活动(Activity)以及这些活动在具体的执行过程中需要使用的资源和角色按照一定的约束关系组成。XPDL工作流过程定义就是将这一系列的活动、活动之间的关系按照业务需求定义,并对相应的活动安排活动的起止日期、活动相关角色、资源等,然后将XPDL工作流过程定义模型发送给工作流引擎,通过引擎触发任务项即在“合适的时间发送到合适的人员”。

系统引入工作流流程建模工具(JaWE)目的是为了便于定义工作流过程模型,直接生成XPDL过程定义文件。JaWE提供了制定工作流过程模型的图形化建模工具。每建立一个业务流程,需要的基本节点有起始节点、执行节点和结束节点,执行节点是为了执行任务或批量执行任务,系统将通过工作流引擎来执行前面生成的XPDL文件,并把新的节点模型号、节点类型、节点号、节点名称、处理者权限等信息写入数据库,新建流向时将模型号、当前节点号、前导节点号和后续节点号读入引擎,任务完成,工作流程结束或触发其他工作流程。JaWE作为一种柔性工作流技术可以通过图形化的设计界面进行工作流业务的设计,比如设置节点属性,修改流程结构、修改节点、修改路径、创建子流程等;能够修改流程结构和对相关属性进行设置[4]。工作流流程的设计是有着严格技术要求的,一般应由系统分析员级别的研发人员承担,这关系到系统能否正确运行的核心关键,用户在自行进行修改、添加时应严格按照系统使用说明书进行,并做好原流程的备份工作,方便必要时可以恢复。

工作流过程的定义分为两个维度,模型级和过程级。模型级:一个模型可能包含若干个工作流过程定义,这些过程共享相同的应用程序(Applications)、参与者(Participants)、相关数据(Relevant Data)。模型就是一个容器,容纳多个独立的过程和他们的实体数据。过程不能单独创建,只有先创建一个模型,才能创建模型所有的过程以及相关的工作流应用程序、参与者、相关数据。在模型中定义工作流的过程定义、应用程序、参与者和相关数据实体是全局的,他们能够被模型中所有的过程定义所引用。过程是工作流业务过程实体的图形化表示,只要含有活动(Activity)和变迁(Transition),进行具体的业务过程定义时,首先要创建业务过程的所有参与者,控制相关的活动。接着定义业务过程的所有活动,一个过程必须有一个开始活动和结束活动。最后用变迁来连接这些活动,表示出活动之间的联系[5]。

工作流引擎的设计是为了解释XPDL过程定义,并调用相应的业务处理应用程序来帮助执行活动。工作流引擎被划分为执行器和监视器两个功能。执行器实现了绝大多数的复杂工作流流程的运行功能、工作流实体对象的实例化、工作流事务处理等方面。监视器主要判断是否有超时的过程实例或者节点实例存在,但监视器并不对发现的超时对象进行处理,而是采用消息通信的方式,通过引擎消息队列通知执行器来处理这些超时的对象[6]。工作流实例运行时,引擎要使用工作流引擎管理器提供的服务来创建和管理工作流实例的运行,相关服务可以通过函数接口向引擎提供,具体设计方法篇幅较多,可以参考我的论文《基于业务流程可视化的工作流引擎设计》。

3.4 数据访问层与数据库

数据访问层可以封装几种常用的数据库访问方法,如事务提交、事务开始、事务回滚、建立连接、断开连接等,供上层复用或调用。访问层独立设计的优点就是可以针对用户特点选用不同数据库的访问程序和SQL程序,实现对多种数据库的支持,扩展该框架的适用范围。

数据库存储系统涉及到的工程设计数据库、项目数据库(包含工作流数据模型库)、文档数据库和角色权限数据库,它是表示层与模型层逻辑运算的数据来源。在该系统中涉及到的数据是与具体业务有关的数据,它只对数据访问层开放,对于其他各层它是透明的,不可直接访问的,这样做的好处就是统一管理,提高安全性。

4 结束语

该文通过对传统的工程项目管理系统进行研究,发现它们普遍存在将现有业务的应用逻辑和业务流程固化,通过人工操作处理业务流程信息,已经无法满足目前房地产开发企业需求。该文将工作流、协同设计技术引入,重新设计出灵活的工作流项目管理系统,采用JaWE组件规范设计XPDL工作流模型文档,设计实现工作流引擎对其进行解释执行,改进了传统工程项目管理系统的设

计模式,消除了由于业务流程迁移而对信息系统产生的不利影响,可以实现快速改变业务流程而无需改变系统主程序。数据访问层采用策略模式可以支持目前常用大部分数据库,基本实现了协同设计的工作流管理信息系统。

参考文献:

[1] 林闯,田立勤.工作流系统模型的性能等价分析[J].软件学报,2002,13(8):1472-1480.

[2] 张益林.工作流技术的研究及在工程项目管理中的设计与实现[D].长沙:湖南大学,2005.

[3] Sandhu R,Coyne E,Feinstein H.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.

[4] 杨磊,戴金海,陈琪锋.柔性工作流的可视化方法研究[J].计算机仿真,2008,25(7):223-227.

[5] 唐邦志,魏生民,景韶宇,周欣.工作流网XPDL映射[J].计算机工程与应用,2003(36):41-44.

[6] 吴宏森.基于业务流程可视化的工作流引擎设计[J].镇江高专学报,2012,25(3):43-46.

上一篇:基于Web服务的My Library个性化系统模式设计与... 下一篇:基于判别函数算法的图像分类器设计