陈长宇
(广州南方智能技术有限公司 广东 广州 510663)
市政工程智慧勘察信息系统是应用于市政工程项目勘察数据信息化管理的平台,是推动测绘工作朝向智慧化方向发展的重要载体。 在信息管理系统设计中,需要依照需求规格说明确定设计目标,确定各个目标的优先顺序并找出最合适的设计方法,确定设计工作需要遵循的基本规范;依照系统功能划分为模块的层次结构,确定各个模块的功能,构建与已确定软件需求的对应关系;确定模块之间对应关系及接口,确保信息准确传递,设计接口的信息结构,评估模块划分质量及模块结构导出规则;优化数据库结构,避免后期运行中出现数据不必要冗余现象。
某市政道路工程测绘数据信息化项目,由本企业承建,负责完成智慧勘察信息管理系统建设,并能够通过建设单位系统测试要求。 项目建设内容主要包括:(1)数据中心管理子系统,如业务数据库、一张底图、项目数据库、系统信息库、数据库管理、数据处理及其他功能。 (2)项目管理一张图子系统。 主要包括项目信息可视化、项目信息管理和重点项目展示等模块。 (3)成果综合展示子系统。 主要包括成果一张图、成果场景搭建、数据分析与应用等模块。 (4)智慧生产业务子系统。 主要包括智慧勘察、智慧测量、智慧物探等模块。 (5)勘察移动端子系统,如勘察移动APP 和物探APP 等。 (6)接口建设。 主要实现数据集成管理和外业数据共享,通过各个子系统的对接,满足各项信息管理要求。
项目建设目标是以当前测绘行业数字化转型趋势及发展方向为导向,遵循“平台化、中心化、集约化和数字化”要求,开发建设智慧工程数据信息化生产与管理系统。 在系统运行中,通过对项目工程专业数据的采集、传输、计算、分析和监控等过程管理,结合三维可视化技术融合应用,实现工程项目大数据深度挖掘分析,大屏展示及智能化应用,推动企业项目管理朝向数字化方向转型。
根据测绘信息化相关国家标准、专业标准、行业规范、技术规定,现行软件工程标准规范,从客户需求导向出发,依照实际硬件情况,采用分布式部署方式,共计布置7 台服务器,其中4 台应用服务器(基于Linux 系统3 台,基于Windows 系统1 台)、2 台数据服务器(Linux)、1 台数据备份服务器(Linux)。 项目数据库平台采用PostgreSQL 14.0标准版版本。 业务系统部分采用Spring Cloud 架构,以B/S 模式部署客户端,开发软件IDE 选用IntelliJ IDEA 2021和Microsoft Visual Code 2021,开发语言选用Java,Vue 3、TypeScript 等。 数据交换接口采用HTTP 协议,以JSON 为数据交换标准格式。
本管理平台通过三个子系统协作,在设计中主要使用如下方面关键技术:(1)轻量化技术。 基于点云、BIM 模型、倾斜模型、人工建模模型、地形、影像及矢量等多种数据的快速转化及切片处理,自动化发布至平台,确保数据在Web 端高效流转和分层级快速加载,提升Web 端浏览及访问流畅性,实现快速响应。 (2)分布式计算技术,如中间件技术、移动Agent、Web Service 技术等,推动计算环境优化,提升分布式操作便捷性。 (3)数据接入和管理技术。 本项目中采用PostgreSQL 和PostGIS 空间数据库技术,有效解决工程项目实施过程中空间数据类型复杂带来的运行问题。 通过扩展关系型数据库,实现空间数据和非空间数据的一体化存储。 (4)数据/业务集成、业务管理、应用分析、数据可视化、兼容性技术。 以本司所自主研发、具有自主产权的技术为基础,提供二三维大数据处理、存储、管理、展示、分析及行业应用的全流程服务,以组件式开发方式,满足具体测绘工程业务集成和管理需求,以强大兼容性满足平台测绘数字化工程数据加载及可视化显示等需求。 (5)Web Service 技术。 实现数据共享与发布,实现业务层、业务面及监听者等之间的逻辑交互。 (6)可扩展性技术。 主要包括面向服务的架构(SOA)技术,组件化、构件化开发技术等,确保业务流程快速构建、重构、再造和优化。 (7)安全技术。 主要包括网络安全、数据库安全和应用系统安全的针对性技术,构建完善的安全防护体系。
智慧勘察信息管理系统设计中,为确保项目建设有序推进,满足系统测试和运行要求,应当遵循如下方面原则:(1)实用性和易用性原则。 便于使用、管理和维护,有效减轻工作人员负担。 (2)标准化和开放性原则。 系统建设应当严格遵照国家、地方和行业有关标准及规范进行,在系统架构、应用技术及平台建设方面,都应当采用开放性策略,构建开放、可扩充的应用体系,有效提升数据共享水平。 (3)高可靠性原则。 确保适量冗余并优化安全保护措施,确保平台软件和应用软件都具有较强的容错性、稳健性和安全性。 (4)高效性原则。 能够确保各类数据组织合理,信息查询、更新、出图顺畅,且不会由于长时间运行和数据量增加导致运行速度变缓。 (5)可扩展性和先进性原则。 要能够满足系统间无缝连接需求,为后续系统扩展和集成留出扩充余量。 在成本预算方案下,尽量采用最先进的技术、方法、软件和硬件,有效延长系统生命周期[1]。
结合上述设计原则和思路,实现各个子系统、智慧移动端子系统等有效衔接,实现对项目数据进行统一管理与浏览查询,并能浏览三维点云、BIM、三维倾斜等模型结构中的三维数据。 总体架构设计如图1 所示。
图1 系统架构图
其中用户层是服务于不同设备的接入用户。 展示层主要是通过项目一张图展示,多维度、多形式统计图表、三维可视化展示及移动APP 等,展示用户所需要的数据信息内容。 应用层是用户与平台的交互界面,在满足各项功能运行基础上,最终实现生产与管理信息化[2]。 支撑层是整个系统运行的枢纽,负责整个体系的后台服务、管理应用、数据处理等功能,确保各个系统之间数据有效关联和管理,为应用业务实施提供支撑。 数据层包括空间数据库和成果档案数据库,主要是实现系统各类数据的集中管理与统一应用。 基础设施层是系统运行的基础,主要是满足平台数据管理、存储、更新和应用需要,为系统稳定高效运行提供基础环境。
搭建Nginx、Spring Gateway 负载均衡服务器集群,Nginx 将用户请求转发至Spring Gateway 网关,经登录、安全等相关拦截,再转发至注册在Nacos 的对应服务,进行相应处理,实现如下方面具体服务:用户登录及权限拦截相关功能,系统业务以及提供地图数据发布、可视化相关操作功能,地图数据在线轻量化功能,场景相关功能服务,用户机构等管理服务,场景数据分析服务。 利用Redis 数据库,缓存服务常用数据。 利用PostgreSQL 数据库对系统数据信息进行持久化处理。 利用SeaweedFS 分布式文件存储系统,存储数据轻量化后的文件
架构设计遵循“先设计后开发”原则,确定好时序图、UML 关系图,将需求、场景抽象成模型(建模),并将模型拆分成模块,形成架构。 模型需考虑并兼容后续需求的迭代开发,减少架构的修改。 模块设计应当尽量减少依赖关系,以接口方式形成依赖[3]。 以“测试驱动开发”,以测试用例检验功能开展的完成。 类的设计应当职责单一,集中于处理某个方面的事务。 单个类的代码行数应当控制在1 000 行以内,提高可读性。 单个函数集中处理一个功能,保持在100 行以内,参数控制在3 个以内,逻辑紧凑,减少代码的无用执行。 日志设计不能暴露用户个人信息,长度不能过长且包括尽量多的信息。
Web 前端开发需符合(UTF-8,HTML5)标准,语义化HTML,结构表现为分离,具有较好的兼容性,使用精灵图和Sass 语法等减少页面请求次数,代码设计简洁有序,尽量减少服务器负载并能够快速解析。 所遵循的规范内容主要包括文件命名规范、HTML 规范、CSS 规范、JS 书写规范、图片规范和测试规范等。 在Java 开发中,应当遵循的标准规范包括编程规约(命名风格、常量定义、代码格式、OOP 规约、集合处理、并发处理、控制语句、注释规约),异常日志规范(异常处理、日志规约),单元测试,安全规约,工程结构(应用分层、二方库依赖、服务器),设计规约等。
数据存储设计应当遵循一致性和标准性、实用性、独立性和扩展性、数据安全性等基本原则。 依照数据处理特点和特性表达要求,将数据表分为业务数据表、基础数据表、字典信息表、系统信息表、汇总数据表、临时表等。 数据对象命名遵循三段式命名、中文简称命名规范。 表中的所有数据元素不但要能唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他函数关系,但是在特殊情形下,可以牺牲范式规范以换取性能提升[4]。 在遵循设计范式基础上,合理划分表并添加状态和控制字段,以有效提升业务运行水平。
数据库设计分为六个阶段:(1)系统需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)物理结构设计;(5)数据库实施;(6)数据库运行与维护。 数据安全保障措施,主要包括数据备份、权限管理敏感数据加密及应用访问安全方面的处理。 为确保数据库保持良好运行状态,还应当进行基本表设计,并做好基本表扩展设计。 在数据存储设计中,重点做好非结构化数据采集和存储优化,为所有数据类型提供合适的存储选项。
接口设计应当遵循高内聚、低耦合和精分解原则,以降低各系统间以及系统内各模块间的耦合度,满足基础数据传递、流程审批集成、页面展现集成等需求。 在设计时先确定接口设计规范,内部接口主要包含数据接口和服务调用接口,如数据共享、登录接口、移动端查询项目列表等。 外部平台则包括从综合管理平台获取用户组织架构,综合管理平台API 接口,为用户提供应用接口,提供二三维模块地图场景授权认证等服务。
接口设计中,需要先定义数据模式和传递数据的形式等,系统内部接口主要满足内部数据的自动流转,外部接口则需要实现本项目与其他应用系统间的数据交换,需要先由接收数据系统依照数据模式的定义,到对方系统去识别、采集,之后转换为本系统能够识别和利用的数据模式[5]。 接口实现方式包括Web Service 方式、RPC/Iframe方式、JDBC 方式、API 方式等,并完善共享目录接口和数据交换方式设计。
除做好上述设计外,还应当做好系统物理配置方案、数据安全和保密、计算机处理过程等方面设计。
数据中心管理子系统主要实现工程项目相关成果的汇交、管理,便于基础数据库更新维护,构建高效、智能的数据管理模式。 其中数据资源管理主要包括数据入库、目录管理、数据查询、高级查询、数据浏览、影像切片、数据更新与管理等方面设计。 系统管理主要包括权限管理、组织架构管理、用户管理、系统日志等方面设计。
成果综合展示子系统是提供可视化界面,基于预先准备的服务器资源,发布多种类型的空间地理信息服务,并支持对发布的服务进行统一管理。 主要包括服务发布与管理、三维数据浏览、全景影像浏览、地图量算、标绘等功能。
智慧勘察移动端子系统,主要是应用于现场施工人员进行数字化测量,实现任何办公地点和任何办公时间的无缝接入。 需要进行登录移动端子系统、连接数据中心管理子系统等方面设计。
为实现本系统与多个现有管理系统的交互,满足基础数据传递、流程审批集成、页面展现集成等功能需求,还需要提供配置式多种标准接口。 在设计中,应当满足多接口支撑应用扩展规范,采用Web Service 方式,SOA 体系架构实现对接。 通过接口交换的数据与接口调用应当遵循统一的接口模型进行设计,系统平台间的接口消息协议采用基于HTTP 协议的REST 风格接口实现,请求消息URI 中的参数采用UTF-8 编码并经过URLEncode 编码[6]。 具备业务数据检查、数据压缩/解压等数据管理功能,确保数据管理完整性。
测试环境中,操行系统选择Windows 10 专业版64位;浏览器为谷歌Chrome 浏览器、火狐浏览器、360 浏览器;客户机硬件配置为Intel(R) Core(TM) i7-10750 H CPU@2.60 GHz 2.59 GHz、内存16 G。 测试结果显示,所有子系统运行正常,功能完善,共计关闭bug299 处。 安全性测试和易用性测试达到要求,系统结构层次清晰合理,满足测试标准要求,可投入正常使用。
在智慧勘察信息管理系统设计中,必须以专业标准、行业规范和软件工程标准为基本依据,优化系统运行环境,重点做好轻量化技术、分布式计算技术、数据接入和管理技术等关键技术应用,利用更为优化的代码设计、数据存储和接口设计方案,有效提升系统整体功能。