APP下载

微服务技术在基于SaaS 模式的工程项目管理信息系统中的应用

2022-11-13陈云鹏王建东

中国管理信息化 2022年10期
关键词:架构项目管理工程项目

陈云鹏,王建东

(三峡高科信息技术有限责任公司,北京 100000)

0 引言

工程项目管理作为现代管理科学的一个重要分支学科,在20 世纪80 年代引入我国,至今已有30 多年。工程项目管理是一项复杂的系统工程,从工程项目管理的生命周期来看,工程项目管理分为项目前期管理和项目实施管理,涉及前期管理、相关方管理、进度管理、质量管理、成本管理、文档管理等诸多方面的工作。

随着互联网技术的兴起,基于互联网技术的工程项目管理信息系统已得到广泛应用。工程项目生命周期各阶段是相互独立的,不同阶段的组织管理形式和所采用的信息技术平台可能存在较大的差异。如何实现工程不同阶段、不同参与方的数据资源共享是工程管理单位所要研究的重要问题。

文章对微服务技术进行研究,在基于软件即服务(Software as a Service,SaaS)模式的工程项目管理信息系统中进行应用实践,打破工程项目管理生命周期各阶段的数据壁垒,解决信息资源共享和延续性问题。

1 工程项目管理信息系统

1.1 国外工程项目管理信息系统应用现状

20 世纪70 年代,国外就已经开始工程项目管理信息系统的研发工作。经过几十年的发展,工程项目管理信息系统已经从只注重对工程项目管理某一过程的管理发展为支持跨地域多项目、多项目参与方共同使用的协同工作平台管理。因此,基于互联网的工程项目管理信息系统因其所具备的优势而得到了广泛的推广和应用。

1.2 国内工程项目管理信息系统应用现状

我国工程项目管理信息系统经历了从国外引进到自主开发、从局部应用到全面推广的过程。近年来,虽然越来越多的企业采用工程项目管理系统来进行项目管控,但管控模式主要是按工程项目各阶段情况独立进行,导致项目各阶段数据无法实现共享。

1.3 趋势:基于SaaS 模式的工程项目管理服务

SaaS 模式是一种新型的云计算模式,在提供基础信息系统服务的同时,为用户提供系统开发、部署与运维服务,用户按照其订阅的软件服务内容与时长付费。

SaaS 模式所具有的突出优势,使其在各行各业的数字化转型过程中得到了广泛的应用,将SaaS 模式与工程项目管理相结合的行业也在近些年得到了蓬勃发展。在SaaS 模式下,软件服务供应商提供功能完备的工程项目管理系统,客户可以直接租用该项服务来解决工程项目管理信息化问题。基于 SaaS 模式的工程项目管理通过提供高质量服务持续给客户企业带来长久效益。

1.4 微服务

目前,主流的企业级应用系统、互联网应用系统一般都是通过Web 提供业务服务。Web 软件系统架构主要分为两大类:整个系统部署到同一物理主机、同一个进程的单体架构(Monolithic Architecture,MA);整个系统分散到不同物理主机、不同进程的分布式架构(Distributed Architecture,DA)。目前,主流的分布式服务架构是微服务架构(Micro Service Architecture,MSA)。

1.5 微服务架构

微服务架构的思想本质上来源于对业务功能和模块的水平、垂直切割与拆分。基于微服务架构的设计思想,原有的单体架构信息系统将会被拆分为多个可以独立设计开发、独立部署运行的小应用,这些小应用即为微服务。每个微服务遵循单一职责原则,具备独立的功能,通过微服务集群间的接口通信完成数据交换与集成。不同的微服务可以使用不同的技术栈,从而进行功能和架构层面的独立演进。

微服务架构适用于有高性能、高并发、高可用等非功能性需求的大型信息系统。微服务架构可以通过部署微服务集群,利用微服务集群弹性伸缩策略,有效地解决高性能、高并发、高可用等问题。微服务架构为软件业务逻辑复杂、软件更新迭代风险高、软件长期维护困难等原有单体架构信息系统无法解决的问题提供了有效的解决方案。

1.6 微服务的划分

目前,使用微服务架构构建Web 应用程序的趋势是基于领域驱动设计理念。领域驱动设计是一套完整的软件架构设计方法论,利用这套方法论来设计领域模型、定义业务边界、指导软件架构设计,可以保证业务模型和代码模型的一致性。微服务架构设计过程中可以通过领域驱动设计中的事件风暴,梳理业务流程中的操作步骤、事件和依赖关系,从而确定领域实体;可以通过梳理实体间的业务关系,定义业务逻辑边界,形成聚合,确定聚合根;还可以通过业务分析,将一个或者多个聚合放到一个限界上下文中,也就是微服务的边界。每个微服务对应一个限界上下文,从而完成领域模型到微服务架构设计的转化。

在微服务的划分中,通常使用康威定律等方式,保证微服务是有界的,这样微服务就可以独立扩展。康威定律表明:设计系统的组织所产生的设计等价于组织内、组织间的沟通结构,即组织沟通方式会通过系统设计表达出来。同样,在工程项目管理业务流程之中,工程项目的组织结构决定了其管理业务流程。利用康威定律,可以在业务建模的过程中,梳理业务边界和微服务边界,并将这种业务边界和组织结构体现在信息系统的架构之中。

2 业务建模

工程项目管理全过程所包含的业务领域众多,文章以计划进度管理和质量管理为例对业务建模进行介绍。

2.1 计划进度管理

计划进度管理业务过程主要包括编制计划工作日历、编制计划体系、编制计划任务、下达任务、审核计划任务、反馈进度、工作分解结构(Work Breakdown Structure,WBS)与项目分解结构(Project Breakdown Structure,PBS)关联等。

日历编制人员需要编制项目各级计划的工作日历,以便于计算计划任务的工期。计划管理负责人需要编制项目的计划体系,以便于形成整个项目由粗到细的计划包划分结构,实现计划体系与责任体系的关联。计划编制人员需要编制所管理的计划任务,以便于对计划任务进行分解和完善,同时需要下达计划任务至下级单位,以便于对进度管理的需求进行逐层控制与下达。计划审核人员需要对各级计划任务进行审核,以便于高效完成进度计划的审核工作。计划反馈人员需要反馈计划的工作进展情况,以便于及时做好进度管理工作。项目经理需要将WBS 和PBS 建立关联关系,以便于进行以PBS 为维度的分析、统计。

2.2 质量管理

质量管理业务过程主要包括定义工程单元、定义工序质量标准、定义质量验评表模板等。

定义工程单元是指按照工程质量管理的规范和标准形成质量控制的工程单元,工程单元是整个质量管理的关键环节。定义工序质量标准是指按照工程施工相关质量规范,每种单元工程类型对应不同的作业工序,每个作业工序具有规定的质量检测标准,包括检测表、检测指标。

施工质量业务过程主要是填报和流转检验批评定表、单元工程验收表等表格。质量验评检验批表的数量、内容都是动态的,且生成的表样需要满足标准格式要求,因此需要设计质量验评检验批表样设计器,方便实施人员和用户可以快速增加、修改表样。实施人员通过分析相关质量验评表样,将几百张表样按照填报方式、填报内容进行分类归纳,将质量验评表样拆分为表头、验评指标明细、表尾3 部分进行控制。

2.3 服务划分

根据业务建模的结论,利用微服务划分方法,可以将工程项目管理业务领域服务化,搭建工程项目管理信息系统的业务中台。采用标准化、轻量化接口进行服务间数据通信,降低业务服务之间的耦合度,让每个服务都可复用、可独立演进,满足工程项目管理业务可持续发展的需要。

构建的业务服务包括:前期管理、相关方管理、成本管理、合同管理、工程财务管理、竣工决算管理、物资/设备管理、计划进度管理、质量管理、安全管理、设计管理、文档管理等,覆盖了工程项目管理的主要业务范围,形成了从前期管理到项目实施管理,再到项目交付的完整数字化链条。

2.4 架构设计

根据对工程项目管理的业务建模与服务划分,以及对SaaS 模式技术架构的研究,基于SaaS 模式的工程项目管理系统的架构设计如下。

架构主要分为应用层、服务层、基础设施层。应用层向用户提供系统功能,提供人机交互界面;服务层向应用层提供业务服务,作为系统功能的支撑;基础设施层为系统提供计算资源、存储资源和网络资源。

在系统部署方面,系统支持公有云、企业私有云及混合云部署。通过部署微服务治理组件,搭建服务集群,向多租户提供基于SaaS 模式的工程项目管理服务。

2.5 前后端分离架构

系统在应用层打造建设管理应用、参建单位应用、系统管理应用。根据用户群定制化应用客户端能够极大提升不同用户群的用户体验。随着应用的拆分,系统的复杂业务逻辑被分散到不同的应用中,系统整体的复杂性降低,可维护性提升,通过分而治之的方案解决用户体验与代码业务逻辑复杂性问题。

在应用架构设计中,系统采用了前后端分离架构,同时使用了服务于前端的后端(Backend For Frontend,BFF)模式,为每个前端提供一个BFF。BFF 隔离了前端UI 展示对后端服务应用程序编程接口(Application Programming Interface,API)的定制化需求,起到了业务服务聚合的作用,解决了业务场景问题,也可以更好地支持后端服务的演进。

2.6 微服务架构

系统使用Spring Cloud 搭建服务注册发现,网关、负载均衡、配置中心、服务监控、容错保护等微服务治理组件,为系统的基础服务、业务服务提供完整的微服务治理能力,让基础服务、业务服务聚焦于服务能力本身,使整个架构具备支持大规模微服务集群的能力。

2.7 多租户数据存储方案

工程项目管理系统是面向企业客户的应用,租户数量可控,且工程项目管理数据具有较高的保密性要求,对数据隔离性、安全性要求较高。基于上述原因,兼顾考虑研发、实施、运维成本及技术难度等综合因素,本系统选择了独立数据库的多租户数据存储方案,即每个租户完全独占一个数据库。此方案有助于简化数据模型,便于数据迁移,数据隔离级别最高、安全性最高,牺牲了一定的数据库来维护便利性。

3 应用效果

目前,系统已经上线运行,部署方式覆盖了公有云和企业私有云。系统已在民用建筑建设、机场建设、数据中心建设等工程项目管理场景中得到应用,服务于5 家企业客户,管理工程项目15 个,管理合同超过350 个,管理合同金额超过32 亿元,应用效果良好。

4 结语

文章研究了微服务相关理论方法和技术应用在基于SaaS 模式的工程项目管理信息系统,将传统的单体架构应用升级为高内聚、松耦合的微服务架构。这种架构设计的方法能够较好地适用于工程项目管理信息系统这类业务覆盖面广、业务逻辑复杂的大型信息系统,提升了系统的稳定性、可维护性,能够支持业务的可持续发展,应用取得了良好的效果,可以为类似信息系统的设计开发提供良好借鉴。

猜你喜欢

架构项目管理工程项目
基于FPGA的RNN硬件加速架构
项目管理在科研项目管理中的应用
功能架构在电子电气架构开发中的应用和实践
工程项目造价控制中常见问题的探讨
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现
加强工程项目档案管理的有效途径
成套集团工程项目管理模式的实践和探索
工程项目与融资