高莉春
(中交一公局第三工程有限公司,北京101102)
目前发达国家建筑公司90%以上的项目都采用软件进行管理,而我国建筑施工企业信息化起步比较晚,到目前实施信息化的企业还不到10%[1],并以单机版功能为主。近几年,国内建筑施工企业对企业信息化建设有了新的认识,许多大型建筑企业开始从办公管理、项目管理、技术管理、门户网站等多方面尝试企业信息化管理[2]。中国社会科学院信息化研究中心2006年所做的有关国内中小企业发展状况调查报告显示,我国大多数施工企业的信息化还只是处于项目管理级,只有极个别的企业发展到企业管理级。建筑施工企业软件大多结合工程量清单,以成本核算为核心进行项目管理,部分按项目生命周期为主线,通过项目过程控制进行项目管理。在建筑施工软件的开发中既有专业软件公司,也有建筑施工企业自主的研发产品。但在建筑施工企业尚没有发现基于业务流程管理(Business Process Management)[3]的软件应用。
某施工企业的业务范围包括高速公路、桥梁、隧道、铁路、市政工程等不同产品,现场施工项目27个,且有持续发展壮大的趋势。原有的管理模式已无法满足对现场的监督、指导等需要,信息交流问题日益突出。为此,企业提出了利用先进的信息技术和网络技术加强管理的要求,以便更好地应对不断变化的市场和日益复杂的工艺要求,加强企业内部的数据共享与信息沟通。
企业的产品种类虽多,但在生产过程中具有相似的管理流程和工艺要求。实际操作中因管理人员素质不一导致了管理效果的巨大差异。一些好的管理模式没有得到贯彻,好的工艺流程没有得到重复利用。基于流程化的系统设计一是要把好的管理模式和制度用流程的形式加以固化,确保执行;二是灵活地2次开发功能可以方便随时优化流程,提高综合管理水平和工作效率。
企业的项目业务流程管理子系统是遵循企业实际情况,按照项目生命周期进行开发,对不同产品的施工过程管理,通过工序控制实现。企业产品的项目生命周期,如图1。
图1 项目生命周期Fig.1 Project lifecycle
从图1可知,工程项目是从招标、投标、中标,到项目组织、项目计划、执行、交验再到竣工总结,最后项目解散。一个业务活动完成后,下一个活动启动,各个业务活动间既有延续性也有部分重叠。在企业信息化系统中各个业务活动触发不同的角色完成不同的事务,实现各个业务活动的目标。公司管理层和项目人员通过对项目各个业务活动流程状态和数据的查询了解工程进展情况。
施工项目业务流程管理子系统各个功能模块的实现建立在业务流程管理应用中间件基础上,如图2。
图2 信息化系统结构Fig.2 Information system structure
施工项目业务流程管理子系统通过基于标准的JAVA[4]开放的中间件平台实现各项应用,通过业务流程管理中间件实现数据采集、报表设计、登陆管理等,从而构建开发多组织结构管理构件和存储建模等功能模块的开发,实现零代码流程建模。
施工项目业务流程管理子系统的实现,通过需求分析获得项目生命周期各阶段数据,建立元数据存储模型,并按公司习惯定制数据的展现形式,最后根据不同的业务活动制定不同的工作流程,实现各个角色对各自业务活动的处理。项目业务管理子系统实现了项目质量、进度跟踪,技术文档审核收集,项目资源配置,合同审批、招投标等项目生命周期管理。
在技术选型上,既要考虑系统性能特点和技术的先进性,也要考虑成本问题,因此在应用系统开发中尽量选择免费的开源代码,实行快速开发[5]。施工项目业务流程管理子系统适宜在公司总部部署,各项目通过网络进行访问,获取相关信息和上传数据资料。
由于施工项目业务流程管理子系统建立在业务流程管理中间件上,还要考虑表示层与中间层的交互。在交互设计中,因此采用了 MVC[6]模式的Struts作为WEB框架,通过MVC模式降低了表示层与中间层的耦合,并隐藏中间层实现细节和组件类型及位置。由于是分布式架构,在传输机制上采用XML编码格式。为加强系统查询和综合数据处理能力,采用 Hibernate[7]的对象关系映射(Object/Relation Mapping,ORM)机制作为系统的数据持久层。利用java bean实现对数据的控制和操作,Web Service对外提供Web服务接口实现SOA[8]。项目业务流程管理子系统构建在业务流程管理应用中间件平台上,如图3。
图3 施工项目业务流程管理子系统构架Fig.3 Subsystem of construction project business process management
由图3可知,实现施工项目业务流程管理子系统,须提供业务流程管理应用中间件中存储模型设计构件、表单模型设计构件和流程模型工具,并通过工作流引擎实现业务流程的交互。
应用是完成人机交互和应用的执行。在系统设计过程中,根据用户职责的不同将其分为超级管理员、系统管理员和一般用户3种。一般用户是业务活动的办理者,系统为其分配任务、给予指示,配合完成流程的执行。用户登录后,点击工作列表项可以看到自己所启动的所有历史工作的记录;点击待办事宜项,可以看到该用户没有做或没有做完的工作,这样就把用户待处理的工作展示在用户面前。在每个用户处理完工作流实例中的节点任务后,可以保存、可以提交,如果保存只保存当前任务的业务数据,对工作流信息没有变化。如果提交,系统工作流引擎检索到后续路由关系,自动路由到下一节点用户或弹出下一节点的办理者要求用户选择,用户选择完成后提交,系统产生下一活动的活动实例,从而实现业务活动的传递和流程的执行。
施工项目业务流程管理子系统的开发过程中,采用了迭代式增量开发的方法,融入了流程化管理和模型驱动的思想。从搭建系统的基本框架开始,逐步完善和丰富系统的功能,同时0代码2次开发的功能方便了企业的应用扩展和持续的流程优化。
施工企业的项目面对的既有上级主管部门,也有不同地区的业主和监理单位,这些相关部门对施工过程的数据要求存在差异,尤其是不同地区差异会更大。如何融合外部相关单位数据,与业主、监理乃至协作单位实现数据共享、信息互通,是施工企业信息化进行软件开发的更高需要。
[1]马智亮.施工企业信息化成功秘密[M].北京:中国建筑工业出版社,2006:2-11.
[2]中国社会科学院信息化研究中心.中国中小企业信息化发展状况调查报告[N].北京:中国计算机报,2006-01-09(4).
[3][英]Margaret May.业务流程管理:网络环境下的战略整合[M].史晓峰,译.北京:经济管理出版社,2004:5-37.
[4][美]George Reese.JDBC与JAVA数据库编程[M].石永鑫,宋隆,译.2版.北京:中国电力出版社,2002:7-168.
[5]Steve McConnell.快速软件开发:英文版[M].北京:机械工业出版社,2003:109-389.
[6]孙卫琴.精通struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004:9-15.
[7]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005:1-5.
[8][美]Thomas ERL.SOA概念·技术与设计[M].王满红,陈美华,译.北京:机械工业出版社,2007:280-357.