基于工作流的项目流程化信息管理系统设计吴迪贾卓生(北京交通大学计算机与信息技术学院,北京100044)摘要工作流是使业务过程的部分或全部自动执行的技术。如果用于构建项目管理系统,可提高企业和政府部门的办事效率,并能有效地重用项目成果和实施变更控制,从而实现对项目的流程化管理。本文以滨海新区项目流程化信息管理系统为例,介绍了基于工作流的项目流程化信息管理系统的主要功能设计及实现。该系统的主要特色是采用了自行开发的适合滨海新区项目流程化建设的工作流系统,具有很好的灵活性和扩展性,且采用Browser/Server方式,用户界面简单易用,并在.NET框架下实现了整个项目流程的图形化管理。关键词工作流、工作流引擎、项目管理、信息管理系统DesignoftheprojectprocessesandinformationmanagementsystembasedonworkflowWUDiJIAZhuo-Sheng(InstituteofComputerScienceandEngineering,BeijingJiaotongUniversity,Beijing100044)AbstractWorkflowisatechniquewhichmakespartorallofbusinessprocessescarriedoutautomatically.Ifitisusedtoconstructprojectmanagementsystem,itwillbeabletoenhancetheefficiencyofbusinessinenterprisesandgovernmentdepartments.Italsocanreuseprojectresultsandimplementchangecontrolefficiently.Therebyitwillmanagetheprojectprocessessuccessfully.Thispaperintroducesthemajorfunctionaldesignandimplementationofprojectprocessesandinformationmanagementsystembasedonworkflow,whichisdevelopedforBinhainewarea.Thisprojectischaracterizedbyusingaself-developedworkflowsystem.Ithasgoodflexibilityandexpandability.Italsoachievesgraphicmanagementoftheoverallprojectprocessesusing.NETframework.TheuserinterfaceofBrowser/ServerstyleisSimpleanduser-friendly.KeywordsWorkflow;Workflowengine;Projectmanagement;Informationmanagementsystem吴迪硕士研究生,研究方向:计算机网络与数据库;贾卓生,高级工程师,信息中心主任,研究方向:计算机网络1引言随着信息网络的发展,各个地区都在进行数字化城市的建设。在数字化城市的建设中如何提高政府和企业的办事效率和办事透明度,成为重中之重的任务。我国大多数企业和政府部门在自身的发展壮大中,都有一套符合建设工程项目、市政工程项目、重点工程项目的管理方法。但是,其项目大部分都是通过纸质文档来进行管理,不便于查找和了解项目的进展情况,也不便于对项目进行统计分析和变更控制。采用工作流技术,可以把业务过程逻辑从具体的业务实现中分离出来,可以实现高效的线性工作流程,可以将项目进行过程中的各种文档、信息和任务等在参与项目的各种角色之间进行共享和传递,并能有效的重用项目成果和实施变更控制,以实现对项目的流程化管理[1]。项目流程化信息管理系统就是采用工作流技术,针对各个企业或政府部门对计划和项目管理过程中,从申报、会签、审批、执行等各个流程进行管理和跟踪,提高项目执行过程的办事效率,使申报人、审批人、领导和执行者都能够随时查看各个项目的流程进展情况,分清责任,提高办事透明度,加快办事进程。本文以滨海新区项目流程化信息管理系统为例,介绍该系统的主要功能及实现。2系统架构及相关技术2.1系统体系结构滨海新区项目流程化信息管理系统采用基于B/S模式的三层体系结构:表示层、业务逻辑层和数据访问层[2],如图1所示。这种设计充分体现了基于Web的管理模式(Web-BasedManagement,WBM)的优势——友好易用的图形界面风格,跨越地理上的局限性和系统平台的独立性。(1)表示层:是系统的用户接口(UI),负责使用者与整个系统的交互。(2)业务逻辑层:是整个系统的核心。用来处理表示层提出的请求,然后对请求具体分析;如果涉及到数据库的访问,则调用数据访问层获取相应的数据并返回给表示层。(3)数据访问层:其功能主要是负责数据库的访问。此层封装了所有对数据库的操作。Internet信息服务(IIS)表示层ASP.NETWeb窗体公共语言运行库(CLR)数据访问层业务逻辑层C#业务组件数据访问组件图1.Net中标准的分层式结构2.2系统开发环境及工具系统采用Visualstudio.NET集成开发环境。它支持多种开发语言,可以大幅度地提高开发人员的工作效率。C#语言是面向对象、类型安全、平台独立的一门新型组件编程语言。其语法风格源自C/C++家族,融合了VisualBasic的高效和C/C++的强大功能,是Microsoft.Net平台的主流语言[3]。因此本系统采用的开发语言为C#,后台数据库选用了MicrosoftSQLServer2005。2.3工作流技术简介工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。它要解决的主要问题是使多个参与者之间按照某种预定义的规则传递文件、信息或任务来完成业务目标的过程自动进行[4]。工作流主要包括以下几个要素:(1)实体(Entity):是工作流的主体,是需要随着工作流一起流动的物件(Object)。(2)参与者(Participant):是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;(3)流程定义(FlowDefinition):是预定义的工作步骤,它规定了实体流动的路线。(4)工作流引擎(Engine):是驱动实体按流程定义从一个参与者流向下一个参与者的机制,是工作流管理系统的核心。它的设计关系到系统的可交互性、可扩展性和稳定性等诸多方面。工作流需要依靠工作流管理系统(WorkflowManagementSystem,WFMS)来实现,工作流管理系统是支持企业或政府部门实现业务过程管理和自动化的强有力的软件工具。它能完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行,并协调工作流执行过程中任务之间以及群体成员之间的信息交互[5]。现在有很多成熟的工作流和群件产品,而本系统采用了自行开发的适合滨海新区项目流程化建设的工作流系统,且采用Browser/Server方式,用户界面简单易用,这也是当前工作流产品的发展方向。3系统主要功能设计本系统涉及工程项目建设的全过程管理以及相应的文档管理,主要划分为系统管理和项目管理两大功能模块,内容包括工程建设流程、进度管理,建设费用、文档管理,以及合同管理等,可处理工程项目建设中立项、初设、施工图设计、招投标管理、合同变更、数据汇总、审批签字、报表打印、各项查询、资料管理、预算与决算等一系列业务。如图2所示为本系统的功能模块图。本系统的各大功能模块,涵盖项目建设周期的全过程,方便、高效地实现了项目管理的一体化应用。系统管理项目管理用户和角色管理工作流任务管理部门管理工作流流程管理日志管理项目信息管理项目进度管理年度计划管理项目文档管理项目合同管理审计和报表管理项目流程化信息管理系统项目资金管理图2系统功能模块图在过去,每个项目的业务流程都大致相同,具有稳定性。但随着社会的发展,项目的业务流程呈现多样化和不确定性。这样,每当项目的业务流程发生变化的时候,为原项目设计的管理系统就得做大量的修改,给系统的使用造成了很大的不便。本系统将工作流管理系统分解成工作流任务管理和工作流流程管理两大功能模块,以适应用户需求变动的需要。3.1工作流任务管理工作流中两个最基本的元素是活动和活动之间的连接关系。活动对应于项目中的任务,是工作流中的一个逻辑步骤,亦称工作流环节,主要反映项目过程中的执行动作或操作。活动之间的连接关系代表了项目过程的规则和业务流程。本系统根据用户需求将工程项目建设划分为五个阶段,分别是:储备阶段、可研阶段、设计阶段、施工阶段和后期管理阶段。每个阶段都由许多任务组成。每个任务都以一个或一个以上的工作成果的完成为标志,这种工作成果是有形的,可鉴定的。如一份可行性研究报告、一份规划设计方案或用地预审批复、环评报告等。工作流任务管理模块是对组成工作流的任务(活动)的管理。由于项目划分为五个阶段,近百个任务步骤,所以将工作流中的各个任务(活动)分离出来集中管理,并为其他功能模块提供相应的接口,而每个任务之间的连接关系将在工作流流程管理模块定义。可以使工作流流程定义更简洁、更清晰,操作更方便。工作流任务管理模块提供对工作流任务的新建、修改、查看、删除及查询功能,以及对该任务办事指南即任务描述的编辑和所需文件、资料的分配。所需文件列表由文档管理模块提供接口。3.2工作流流程管理工作流流程管理模块的功能主要包括:新建、修改、查看和删除工作流,以及对工作流引擎的设计与实现。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。工作流任务管理模块中定义了所有的任务及其相关描述、工期等,在工作流流程管理模块将定义任务与任务之间的相互顺序关系及每个任务的启动和终止条件。任务间的连接关系类似于图中的节点关系,包括前驱和后继,是多对多的映射关系。新建一个工作流时,管理员需要从任务管理模块提供的任务列表中选择该工作流程所需要完成的所有任务,然后设置每个任务的前驱任务和后继任务,保存后系统会根据设置的任务之间的关系以图形方式再现该工作流的任务流程。如图3所示。用户可以自己定制工作流,选择新建工作流,或选择已存在的工作流作为模板,也可以在模板基础上进行修改。从而实现了系统的灵活性和扩充性。图3工作流流程图(部分)工作流引擎作为工作流管理系统的核心部分,主要提供了对于工作流定义的解析以及流程流转的支持。工作流流程管理模块设计并实现了符合工程项目建设流程的工作流引擎,通过解析流程定义的任务连接关系、任务状态及相应的调度算法设定流程的流转,当任务的所有前驱任务均完成,将启动该任务执行,而当该任务的所有工作成果提交,标志该任务完成。工作流引擎还提供多种接口供其他功能模块调用,接口方法包括:创建工作流实例,并为工作流相关数据赋值;启动工作流实例;挂起/恢复工作流实例;中止工作流实例的运行;删除工作流实例;查询、监视工作流实例的运行情况;工作流实例执行中的异常情况处理及统计分析功能等。3.3项目信息管理项目信息管理模块的主要功能包括新建、修改、查看及删除项目,是工作流实例化的过程。为了适应用户需求,项目信息管理模块还增加了项目描述(包括项目介绍、相关图片)、问题及解决方案和工程现场视频等的编辑功能,方便领导和项目经理及时掌握项目进行过程中所遇到的问题,并可查看工程施工的现场情况。新建项目时,需要选择适合此工程项目的工作流模板,工作流模板列表由工作流流程管理模块提供,并调用工作流引擎中的相应方法将其实例化为本项目的工作流程。用户可设定项目的计划开始时间,工作流引擎将根据每个任务的工期自动计算出所有任务的计划起止时间。用户也可