APP下载

基于Asp.Net MVC框架的矿山地质环境信息系统的研究与实现

2020-03-31张熠斌朱喜君刘传深宋金红

城市地质 2020年1期
关键词:趋势分析

张熠斌 朱喜君 刘传深 宋金红

摘  要:在Asp.Net MVC框架下,基于Nhibernate数据库映射、IoC控制反转和Razor模板引擎等关键技术,采用C#语言编码,研发了具备数据管理、数据查询、数据统计、趋势分析和数据导入导出等功能为一体的矿山地质环境信息系统,并通过单点登录、WCF数据服务和插件式软件开发等技术与地质环境一张图信息平台进行了深度集成,实现了在三维一张图环境下的矿山地质环境数据的管理、查询、统计、分析和展示,深化了系统应用。

关键词:矿山地质环境;趋势分析;MVC;Nhibernate;IoC;Razor

Research and Implementation of Mine Geological Environment

Information System based on Asp.Net MVC Framework

ZHANG Yibin1, ZHU Xijun1, LIU Chuanshen1, SONG Jinhong2

(1.Jilin Geological Environment Monitoring Center (Jilin Geological Disaster Emergency Technical Guidance Center),

Changchun 130021; 2. College of Resources and Environment, Jilin Agricultural University, Changchun 130118)

Abstract: Under Asp.Net MVC framework, mine geological environment information systems is developed by C# language coding with functions of data management, data query, data statistics, trend analysis, data import and export as a whole based on Nhibernate database mapping, inversion of control and Razor template engine and other key technologies. The system application is deepened by integration of single sign on, WCF data services, plug-in software development and other technologies with one map of geological environment to realize the management, query, analysis and display of data in a three-dimensional one map environment.

Keywords: Mine geological environment; Trend analysis; MVC; Nhibernate; IoC; Razor

0 引言

經过多年矿山地质环境调查和监测,形成了多期矿山地质环境调查成果数据,这些数据具有多源、异构和分散等特性(刘传正等,2006;邢丽霞等,2011),且未能形成一套完整的从数据生产到管理和更新的信息系统,对数据进行系统化的管理,形成了数据孤岛,难以为矿山地质环境调查、监测以及生态修复提供科学的数据依据,更无法建立数据共享服务体系。在当前大数据建设的背景下,进一步推动矿山地质环境调查、监测成果的深度转换与应用,提升数据服务的广度和深度,促使矿山地质环境调查、监测成果走向量化分析阶段,已是亟待解决的问题(吉林省地质环境监测总站,2018)。因此,亟需研发一套功能完整化、数据集成化、信息综合化和成果可视化的矿山地质环境信息系统。

1 系统设计

1.1 层次结构

本系统按照B/S设计模式,在.Net平台下,基于Asp.Net MVC技术、WCF技术、数据库技术和三层体系架构技术,结合矿山地质环境调查评价数据库规范,采用C#语言编码研发而成。在功能结构方面,按矿山地质环境实际业务需求,划分了数据管理、数据查询、统计分析、数据导出和数据导入5个核心模块。在系统登录和权限管理方面,借助统一的单点登录身份认证系统提供的WCF服务进行集中化的管理,以实现一次登录多系统同时授权的机制,避免重复登录,提高用户体验。在系统研发和集成方面,考虑到与面向服务架构( Service Oriented Architecture,SOA) 的地质环境一张图信息平台进行无缝集成,以实现地质环境数据的一张图展示、管理、统计查询与分析等功能(张熠斌等,2017), 矿山地质环境信息系统在设计和研发上采取了既独立又分散的策略,建立了矿山地质环境WCF数据服务通道,有效的与地质环境一张图信息平台进行了无缝集成。系统层次结构如图1所示。

1.2 数据源

数据源主要包括基础地理数据和矿山地质环境调查数据。基础地理数据采用天地图作为底图(https://www.tianditu.gov.cn/),DEM选用分辨率为30m的公开版数据(从地理空间数据云下载,http://www.gscloud.cn/)。矿山地质环境调查数据包括2006年、2013年和2017年野外调查数据,其中2006年调查3307座矿山,2013年调查2880座矿山,2017年调查2915座矿山。此外,还包括矿山地质环境空间专题图层数据、野外调查照片、视频和各类文档资源。

1.3 数据库设计

考虑到与国家级地质环境数据节点的互联互通和数据库结构的可伸缩性,数据库选用SQL Server 2012,参照矿山地质环境调查评价数据库规范和全国矿山地质环境信息采集系统数据库结构进行数据组织,图2为系统数据库物理模型。为便于数据管理维护、统计分析和综合展示,加强本地化应用,新建立了项目表和基础表,且将其他数据表统称为调查表。项目表主要用于存储矿山地质环境调查项目名称、项目编号(系统自动生成)、调查单位、项目基本信息等,是系统顶层数据表,通过主键项目编号与基础表和调查表进行关联。在实际数据库建库和系统开发时,将2006年、2013年和2017年三期调查数据进行了综合对比分析,发现三期调查数据中,矿山基本信息诸如矿山名称、野外编号、矿山企业名称、采矿许可证号、所属图幅、中心坐标经纬度、开采矿类、矿区面积、开采矿种、开采方式、开采层位、矿山规模、服务年限、建矿时间、法人代表、邮编、电话、传真等字段值有较多的重复,为减少数据冗余,将这些重复率较高的矿山基本信息进行筛选汇总,统一存储到基础表,形成一座矿山多条调查记录的关系,即基础表与调查表为一对多的关系。然后将基础表中的矿山与三期调查数据中对应的矿山进行一一关联,亦即建立起矿山地质环境调查档案卡片,这为后期系统开发趋势分析和数据录入等功能提供了便利。如通過基础表可对矿山地质环境调查监测的指标值进行快速统计汇总,提高查询检索的效率。在录入新调查数据时,可先检索基础表中是否已包含该矿山的基本信息,如有则可将基础表中的矿山基本信息直接导入到新调查数据中进行编辑,如没有则系统将录入的矿山基本信息自动存储到基础表中,最大程度的提高系统的自动化程度。

1.4 数据服务接口

在本系统中,充分应用了C/S和B/S混合开发模式的优势,三维客户端C/S功能(空间综合查询模块)通过调用Wcf服务查询数据,矿山调查数据管理、数据导出及详情等Web页面通过调用Web Api进行数据的增删改查。Wcf服务和Web Api底层共用BLL层、DAL层,减少了代码开发工作量,增加了代码的可维护性。同时,在Controller层和Service层(WCF服务)调用已有的SSO单点登录系统进行token验证,实现用户角色和权限的绑定,为系统在网络环境下提供了安全保障。图3为数据服务接口调用流程图。

2 关键技术

2.1 ASP.Net MVC技术

ASP.NET MVC是微软的Web研发框架,MVC(Model-View-Controller)是一种设计模式,即模型、视图和控制器,使复杂项目更加容易维护,减少项目之间的耦合(Freeman,2016;杨晓吟,2018;仝茵,2016;满高媛,2016;王絮等,2016)。主要功能结构简述如图4所示。

Model是数据模型,用来封装与程序相关的数据,以及对数据操作的处理方法。View负责将Controller传递的数据配合逻辑呈现给用户,属于页面显示和页面回传。Controller扮演一个协调者的角色和管道路由的作用,因为M-V-C三部分并没有直接的关联,Controller从Model获取数据后提供给View呈现给用户。在本系统研发中,组织了如图5所示的MVC三层结构和类视图,Controller层和View层在Web项目里,Model层由BLL、Dao、Repository、Entity、Vo等5个项目组成,Core和SSO为基础设施层,提供各层通用的方法和用户权限的验证等,Web为矿山地质环境信息系统主体程序。

2.2 Nhibernate数据库映射技术

NHibernate是一个面向.NET环境的对象/关系数据库映射(Object/Relational Mapping,ORM)工具,用来把模型表示的对象映射到关系模型数据结构中去(刘金等,2007;崔玉连等,2013;孙志中等,2015;孙栋海等,2006)。具有完全面向对象、透明持久化、轻量级框架、较好的移植性、多数据库支持、开发效率高等优点。在本系统中,对象/关系数据库映射在Entity层里进行定义,每个数据表分别对应实体类和映射关系类两个类,如矿山基础表,对应的实体类和映射关系类分别为KsBase.cs和KsBaseMap.cs。

2.3 IoC控制反转技术

控制反转(Inversion of Control,IoC)是面向对象编程中的一种设计原则,可用来降低计算机代码之间的耦合度(段玉聪等,2006;杨扬等,2009)。最常见的方式有依赖注入(Dependency Injection)和依赖查找(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖对象的引用传递给它,即依赖被注入到对象中。在本系统中,Wcf服务端采用了Unity IoC框架实现了控制反转,Asp.Net MVC 中采用Autofac实现了控制反转,充分应用了目前最为流行的两种IoC框架。

2.4 Razor模板引擎技术

Razor是Asp.Net MVC 3中新加入的技术,作为Aspx引擎的一个新的替代项,Razor不是编程语言,是服务器端标记语言。Razor可提高前端开发速度,减少代码维护工作量,还可方便的控制页面权限和可视化内容,在本系统中通过定义_Layout.cshtml母板页,可将子页面公共部分,如header、footer、css样式、js库等提取出来形成模板,然后子页面只需要指定要引用的模板即可。模板页通过@RenderSection("css", required: false)加载子页的样式,通过@RenderSection("scripts", required: false)加载子页的js脚本,通过@RenderBody和@RenderPage加载子页的视图内容。

猜你喜欢

趋势分析
化工材料科学与工程的发展现状及趋势研究
浅谈核电项目设计质量信息收集与分析
高校微课教学现状及未来发展趋势研究
从《远程教育》35年载文看远程教育研究趋势
基于知识图谱的智慧教育研究热点与趋势分析