APP下载

基于Node.js 和MongoDB的铁路选线案例系统设计与实现

2021-11-06刘江涛王亮亮崔夏阳吴庆茹

铁路计算机应用 2021年9期
关键词:选线铁路数据库

刘江涛,王亮亮,崔夏阳,吴庆茹

(1.中铁二院工程集团有限责任公司 土木建筑设计研究二院,成都 610031;2.中国矿业大学 力学与土木工程学院,徐州 221116)

近年来,我国高速铁路、城际铁路以及地铁等基础设施建设规模和速度都处于世界领先地位,在轮轨系统建设大规模推进的同时,也积累了海量线路设计数据与相关资料,这些设计资源包含着铁路设计、建设与管理人员的智慧,如何系统有效的管理已有资料,对优化拟建线路方案和运营期间的线路病害综合处治具有重要价值。目前,铁路系统生产与管理部门对线路设计资料仍主要采取纸质文件归档的方式进行保存,这种资料管理模式存在的主要问题是查阅者无法对既有铁路设计资料完整信息进行获取,降低了既有线路案例的应用效果。因此,利用现代网络技术,搭建线路设计资料全过程动态管理系统,实现铁路设计案例的动态管理成为企业现代化管理的迫切需求。

线路选线设计作为整个铁路建设的“龙头”,其设计效果直接关系到整个工程的建设质量。为此,科研人员在利用既有线路设计案例辅助、优化拟建线路设计方案方面进行了积极探索,如张启坤[1]等人结合地质选线方法提出了案例本体表示方法,建立了案例检索流程,并对既有案例信息在新建项目中的数据挖掘与存储方案等进行了分析。何洋[2]结合铁路线路设计流程和关联设计资料的特点,利用Arc GIS 等技术搭建了案例表示模块,研发了线路设计文件资料采集与调研展示平台。李俊达[3]等人在分析隧道结构特征、施工关键技术基础上,构建了隧道施工辅助决策模型。曹建枝[4]等人在理论研究基础上,建立了基于Web GIS的铁路勘测设计一体化系统设计模型,为智能辅助专家系统的研发奠定了理论基础。张钰[5]基于Access 平台研发的线路设计文件数据库实现了川藏铁路线路设计成果及相关资料的高效管理与统计分析,提高了线路设计效率。郭海东[6]等人利用地理信息系统(GIS,Geographic Information Syste)的数据管理和空间分析决策功能,研究了线路走廊带不良地质分布信息的有效表达和提取,并实现了不同线路方案间不良地质问题的对比分析。综上所述,目前,在铁路线路信息化方面的研发工作主要集中在计算机智能辅助选线方面,而针对铁路系统企业内部既有设计案例资料的动态管理与应用方面的研究尚滞后于实际需求。为此,本文基于Node.js 和MongoDB 技术,研发了具有可视化功能的铁路选线案例系统。

1 系统总体架构

铁路选线案例系统采用B/S 架构与MVC 前后端分层设计方案。其总体架构,如图1 所示。

图1 铁路选线案例系统总体架构

1.1 用户层

用户层主要面向选线设计人员和相关学习人员,选线设计人员可以利用不同的系统和终端将选线案例和数据上传至案例信息库中,同时,设计人员上传案例资料时系统还会根据不同的地域或者灾害情况对选线案例进行提前筛选和分类,相关人员在查看或者学习选线案例时会变得更加快捷和高效。

1.2 应用展示层

应用展示层主要通过百度地图API 和JavaScript前端页面等技术进行实现。由于铁路选线案例库主要是基于响应式布局并且面向铁路选线案例库,所以它可以自适应地向使用不同终端的用户显示内容。系统包含了铁路选线案例的添加、删除、修改和检查等功能。用户还可以在应用展示层对上传的案例信息和文件数据进行分析和应用,生成案例技术标准分析报告,实现线路平纵断面图和数据库文件的在线浏览。

1.3 网络传输层

网络传输层是通过HTTP 协议将静态资源、动态资源传输给数据库和应用展示层,铁路选线案例资料中的静态资源包括前端静态页面、项目案例文件和相关案例技术指标等,而动态资源主要包括前端页面的渲染文件以及一些动态页面等。应用展示层在获得案例静态和动态资料时,会通过网络传输层预设的路由模块按不同请求转发至相应的网络传输通道中,而数据层在接收到这些案例资料后会将数据自动分类存储至服务器端,方便之后用户调取和导出案例资料。

1.4 数据层

数据层位于铁路选线案例仓库架构的最底端,负责存储以及处理通过应用展示层和网络传输层传递过来的铁路选线案例资料。数据层针对铁路选线案例资料的类型被划分为案例信息数据库、元数据库、地图信息数据库和文档数据库4 个不同的储存空间,各个不同的空间数据库都可以实现对于数据的上传、修改、查询和删除,并且基于网络传输层的路由通道,还可以将铁路选线案例数据进行分类和导出。

2 系统功能模块设计

铁路选线案例系统功能模块架构,如图2 所示,主要包括6 个部分。

图2 铁路选线案例系统功能模块设计架构

2.1 用户管理模块

用户管理模块负责收集、存储和记录用户的个人信息及操作行为。所有的用户信息都保存在数据库中,当用户尝试登录系统或者使用相应功能时,系统前端页面先捕捉到用户填入的信息,通过Ajax异步交互技术将信息传递给服务器端,服务端自动将用户填入的信息与数据库中的用户信息进行匹配,判断用户是否可以登录系统或者使用相应的功能。

2.2 资料管理模块

资料管理模块主要负责管理用户上传的案例数据,资料管理模块所包含的数据,如图3 所示,按照数据类型可以分为数值数据、文本数据和文件数据。数值数据和文本数据主要包括案例的基本信息。系统将指导用户按照固定结构填写以上信息,在数据库中,每个结构化数据的存储类型也是预先设置好的。文件类型信息主要包含铁路选线过程中涉及的各类文件,用户上传文件时系统会自动审核文件类型,文件也将被自动命名并存储在服务器相对应的文件夹中。

图3 资料管理模块

2.3 统计分析模块

统计分析模块主要负责对用户上传的选线案例数据进行定量统计和定量分析。通过该模块,用户可以对单个铁路选线案例信息和技术标准进行纵向统计和分析,也可以对特定范围内的多个案例进行横向比较和定量统计。该功能模块主要借助于MongoDB 数据强大的自定义检索功能,在服务器端实现数据统计,通过Ajax 和Session 存储机制将统计结果和分析结果传递给前端展模块。

2.4 案例查询模块

案例查询模块主要负责数据库中存储的所有案例。用户可以通过不同的搜索条件、不同的搜索方法找到与搜索条件相对应的案例。系统提供3 种不同的搜索方式,分别是精确搜索、模糊搜索和联合查询。

(1)在精确搜索中用户可以自主选择搜索条件,便可获得符合搜索条件的案例;

(2)模糊搜索功能即用户不用完全输入搜索条件字段,服务器会根据用户填入的模糊搜索字段在数据库中搜索包含该字段的铁路选线案例;

(3)联合搜索功能是用户可以同时输入多个搜索条件,系统会查找符合多个搜索条件的案例,并将案例信息传递至案例展示模块。

2.5 案例展示模块

案例展示模块主要负责系统各个功能页面的展示,通过HTML 和CSS 技术,为系统的各个功能实现提供前端访问接口,用户可以通过案例展示模块访问不同的系统功能以及填写铁路选线案例资料,实现前端数据到服务器后端的传递和运输。

2.6 数据可视化模块

数据可视化模块主要负责将铁路选线案例资料和从统计分析模块中得到的结果通过图表等丰富的可视化形式展现给用户。该模块主要利用了Echarts开源8 可视化库和MXDraw CAD 在线浏览插件,将选线案例信息数据、统计分析模块中得到的结果数据和CAD 文件转换为浏览器可以渲染识别的数据类型。

3 系统数据库设计

根据资料管理模块对铁路选线案例资料的分类,系统的数据库由案例信息数据库和文档信息数据库两部分组成。

3.1 案例信息数据库

铁路选线案例资料不仅包含案例基本信息和相关技术指标等易于被数据库存储的数据,还包含一些线路平面图、数据库文件和地理信息文件等非结构化的文档数据。为了使系统更加轻量化和有序化,系统将结构化数据分为数值型和字符串型2 种不同的数据类型;将非结构化的文档数据按照文档的名称和存储位置重新命名,并且把新的路径转换为字符串类型的数据。基于MongoDB 数据库属于非关系型数据库,各个表单之间的连接和查询没有关系型数据库那样方便,所以我们对存储在数据库中的数据表提前指定数据模型,并且使用了MongoDB 数据库中自带的Mongoose 类库作为中间件解决数据集合中数据操作困难的问题。当其他模块需要对数据库中的数据进行增删改查等操作时,Mongoose 类库会自动抛出接口实现对数据的筛选和遍历,同时,还可以针对不同的限定条件,实现对特定数据的抓取。铁路选线案例系统数据库结构设计表,如表1 所示。

表1 铁路选线案例信息数据库结构

在铁路选线案例系统数据库中每一个表结构都具有唯一的ID 作为主键,案例技术标准信息以数字和短文本形式存储在数据库中,其中,短文本的字段大小为255 byte,案例项目编号是数字类型,字段大小为长整型,项目名称、区域位置和设计日期作为案例基本信息是表中必要字段。

3.2 文档信息数据库

针对用户上传的铁路线路的平纵断面图纸、实景照片以及设计说明书等文档类型文件,系统在上传文档型数据时会增加一个文件传输通道以及相应文档的信息记录,所调用的语句为:

系统会将所有文件按照其所属类型存储至服务器中,同时,文档的各类信息如文档名称、类型、存储地址会和案例信息一起存储在案例信息数据库中,方便用户下载和导出资料。

4 系统功能实现

铁路选线案例库系统整体分为3 个功能平台:铁路选线案例库、案例分析应用云平台和案例信息管理系统。

4.1 铁路选线案例库

铁路选线案例库为响应式布局设计,可根据客户端的大小自适应内容比例,主要用于选线设计人员上传和下载案例资料。用户上传的案例由后台信息管理系统统一管理,案例信息包括案例编号、案例名称、案例所属区域位置、设计日期等案例基本信息、铁路等级、设计速度、线间距、轨道类型和最小曲线半径等技术设计标准。

4.2 案例分析应用云平台

案例分析应用云平台是系统的核心平台,主要用于分析和应用用户上传的案例信息,读取用户上传的平纵断面图、数据库文件和设计说明文档等。基于读取出来的数据,案例分析应用云平台还会对选线案例做出评价和可视化分析。案例分析应用云平台包括联合查询、案例分析、案例库比对、线路在线预览和数据可视化5 个模块。

(1)联合查询模块可以通过收集用户自定义填写的案例信息搜索项,在铁路选线案例库中搜索相同或相似案例;

(2)案例分析模块通过读取用户上传的Access数据库文件中的各项技术参数,结合前端提供的报告模板,将其整合为案例分析报告;

(3)案例库比对模块是基于Echarts 图表库设计出来的信息统计图表,主要负责展示铁路选线案例库中同一技术标准在案例库中的统计信息,并且将统计信息加以处理,最终以图表形式展现出来;

(4)线路在线预览模块主要依靠不同的浏览器插件,系统读取用户上传的平纵断面图和地理信息文件,将数据传递给客户端插件,插件自动将CAD图纸、线路形状和走向显示给用户;

(5)数据可视化模块主要负责将数据通过可视化技术进行展示,方便用户进行不同案例之间的数据预览和比对。

4.3 后台信息管理系统

案例信息管理系统是便于用户对自己上传的案例进行管理而设计的,主要包含案例编辑管理、案例应用信息管理以及系统用户管理3 大模块。案例编辑模块主要针对用户想对自己上传的案例操作时提供接口。案例应用信息管理模块可以统计用户上传案例的访问量和下载量,而系统用户管理模块是对系统用户的登录和登出,其流程,如图4 所示,该模块主要用于对登录系统用户的身份进行核验以及对系统的日常维护。

图4 用户管理模块流程

5 结束语

本文在分析铁路选线案例特点的基础上设计了铁路选线案例表的结构,结合B/S 架构,遵循MVC前后端分层设计思想,构建了铁路选线案例系统的基本框架,同时,介绍了铁路选线案例库、案例分析应用云平台和案例信息管理系统3 大主要功能模块,为铁路选线系统的建设提供了一定的理论支持。随着铁路选线的不断完善和计算机技术水平的提高,铁路选线案例系统的相关应用功能还将不断提升,以便更好地分析和应用铁路选线工程案例,真正地为铁路选线工作者提供帮助。

猜你喜欢

选线铁路数据库
一起小电流接地选线装置不正确动作事件的分析与改进
沿着中老铁路一路向南
一路欢声一路歌 中老铁路看点多
铁路机动车管理信息系统
数据库
数据库
浅谈如何提高中低压不接地系统小电流接地选线的正确率
数据库
数据库
梦想在铁路人心中流淌