任雯倩,刘园园
(1.中国地质科学院,北京 100037;2.中国地质调查局发展研究中心,北京 100037;3.中国地质调查局自然资源综合调查指挥中心,北京 100055)
地质调查工作是支撑社会发展的重要的先行性、基础性的工作,是国家重大战略的坚实支撑[1]。随着全社会转向数字化、信息化、智能化建设,地质调查工作也从传统的工作方式逐步向信息化、智能化靠拢,新一代信息技术正在全面重塑地质调查工作[2]。因此,地质调查信息化建设一直以来备受重视,众多专家学者都在地质调查信息化应用方面进行了诸多探索:数字地质调查[3-7]、地质编图[8,9]和各种地质要素预测[10-12],涉及地质调查全过程的方方面面,地质调查范式已从传统的经验范式、理论范式转向数据密集型范式,以信息技术为驱动的“调查—监测—数据—预测—决策”已成为现代地质调查工作的新流程[13]。
近年来,为支撑地质调查事业转型发展,地质调查信息化研发团队不断推进地质调查工作全流程数字化、网络化和智能化[14,15],并基于地质云基础设施,构建了地质调查的“云+端”工作模式,提供了从野外数据采集、传输、处理到应用分析的全过程信息化再造和全方位覆盖,提高了地质调查项目组成员之间工作效率以及协同共享能力[16,17]。“端”包括桌面端和移动端的大量应用,其中移动端应用功能各异,比如数字填图、数字剖面、地灾调查、水文调查等[18]。功能各异的移动端应用解决了地质调查数据采集的信息化问题,方便了地质调查人员的工作。但是对于一些多专业综合地质调查业务,往往需要安装多个应用以满足业务需求,没有统一的管理体系。因此,本文以实际任务需要为出发点,研究并设计实现了地质调查野外数据采集类APP集成框架,开发了Web端和移动端集成应用工具进行支撑,实现了对采集类APP的统一管理和控制,野外地质调查人员可以按需自定义定制APP工具集,APP使用和切换更加便捷,APP版本实时在线更新,为野外地质调查人员开展业务提供了支持,从而提升野外工作效率。
新时期国家重大战略和生态文明建设对地质工作提出了新要求,很多地质调查业务越来越趋向于综合性,涉及多专业、多手段,同一块研究区域会涉及到区域地质调查、矿产地质调查、水文地质调查、环境地质调查、地质灾害调查等内容,野外地质调查人员往往需要下载安装各单位研发的数字填图APP、探矿工程编录APP、水文地质与水资源调查APP等采集类专业应用APP,在实际工作中可能会频繁切换应用,而且这些应用界面风格不一,影响使用效率;另一方面,由于各单位开发的采集类专业APP并未在应用商店上架,野外地质调查人员往往不能及时获取最新版本APP,获得最新程序包后还需要手动卸载并更新。对地质调查人员而言,这些APP版本管理困难,更新流程繁琐。因为各采集类APP已经相对成熟,为充分利用现有资源,可形成一个集成框架管理所有专业APP,通过该框架快速调用各APP功能来满足地质调查人员的多种专业调查任务需要。
地质调查野外数据采集类APP集成框架主要业务流程(图1)。Web端后台管理系统的系统管理员管理用户,分配权限;各单位野外数据采集移动端APP开发人员在Web端后台管理系统上传采集类APP和进行版本更新;野外地质调查人员从移动端浏览已经上传的APP,在移动端集成应用工具中自定义配置并使用,进入各种野外数据采集实地工作,并且能够在APP有新版本时动态更新APP。系统所有用户都被纳入地质云的安全架构之下,经过地质云的登录验证。因此,系统建设主要内容包括以下几个方面:
图1 业务流程图Fig.1 Business flow chart
(1)系统登录与登出:后台管理系统用户需要通过地质云用户验证和本系统用户验证才能登录系统进行功能操作,移动端用户则只需要通过地质云用户验证即可。在登出时统一删除所有cookie。
(2)APP管理:在后台管理系统用户能够浏览已经上传的所有野外数据采集类APP的相关信息、采集类APP下载次数以及历史版本等,各单位野外数据采集移动端APP开发人员能够上传、更新和删除自己开发的野外数据采集APP。移动端野外地质调查人员可以浏览所有已上传的野外数据采集APP,下载安装并在移动端内部使用以及更新或删除所需采集类APP。
(3)系统日志管理:后台管理系统的系统管理员可以搜索查看、删除所有用户的一系列行为。
(4)用户管理:后台管理系统的系统管理员对用户进行统一管理,包括增加、修改、删除和查询用户信息以及为用户分配权限。
地质调查野外数据采集类APP集成框架系统分为后台管理系统和移动端集成应用工具两部分。后台管理系统“地质调查野外数据采集类APP集成框架后台管理系统”为采集类APP信息管理系统,主要采用B/S(Browser/Server)架构,基于Spring Boot和Vue框架构建了前后端分离的信息系统,实现了APP浏览、APP管理、用户管理以及系统日志查看等功能;移动端地质调查野外数据采集类APP集成应用(简称“地调外业通”)则支持操作系统为Android6.0以上的智能手机或平板设备,实现了APP查看和使用、APP下载更新或卸载以及用户信息浏览等功能。系统的整体应用架构见图2。
图2 系统总体架构图Fig.2 Overall system architecture diagram
在数据层,MySQL数据库存储各单位野外采集类APP开发人员用户信息、上传的采集类APP各版本信息、系统日志以及各用户权限。文件系统存储已上传的采集类APP各版本安装包和图标。MySQL数据库和文件系统共同承载Web端管理系统数据。在服务层,提供数据访问接口,包括采集类APP的相关信息以及各版本安装包和图标的下载,系统用户信息和日志。在应用层,用户通过前端Web系统和Android端应用集成工具获取服务。应用层和服务层之间通过Tomcat、Http、Axios等进行通信。
“地质调查野外数据采集类APP集成框架后台管理系统”的前端页面构建采用Vue渐进式框架构建单页面应用程序[19]。同时,使用与之配套的Vuex存储组件通用数据[20],Vue Router控 制 页面跳转[21]和Axios与后端通信[22],并通过Nginx服务器实现反向代理。界面使用基于Vue.js 2.0的桌面端UI框架—Element UI[23]。系统Web端后端基于Java的开源框架Spring Boot[24]和Hibernate的封装Spring Data JPA[25]进行开发。使用MySQL数据库、文件系统共同承载系统数据。系统的主要技术架构见图3。
图3 技术架构图Fig.3 Technical Architecture Chart
基于系统的业务需求分析和整体架构设计,按照“低耦合、高内聚”原则,为满足多专业综合地质调查业务需要,为用户提供按需定制APP以及版本管理的需要,系统的整体功能结构见图4。
图4 系统功能结构图Fig.4 System function structure diagram
“地质调查野外数据采集类APP集成框架后台管理系统”为Web端后台管理系统,面向各单位数据采集类APP开发团队和系统管理员,主要实现采集类APP上传和更新、版本控制和权限分配,具体包括以下几个模块:
(1)系统登录与登出:面向系统管理员和采集类APP开发人员,经过地质云用户登录验证和本系统数据库的双重验证进行登录,系统只展示该用户所拥有权限的功能。所有用户登出时,统一清除所有用户信息。
(2)模块浏览:所有系统用户都具有权限的模块,用户可以浏览所有用户上传到系统里的各个不同的地质调查野外数据采集类APP的信息及其历史版本。对于历史版本,如果系统不再需要,具有更新权限的人员可以删除历史版本信息。浏览形式主要分为两种:列表形式和网格形式,可以自由进行切换。
(3)模块管理:分为模块注册和模块更新。在模块注册用户可以上传自己的APP的程序包、icon图标以及相关的APP信息。注册完成后,用户如果想要上传该APP的新版本,则需要在模块更新部分选择自己具有更新权限的APP的包名进行模块更新。
(4)系统日志:系统日志记录了系统用户注册、更新APP和登录登出系统等行为,方便系统管理员对用户的行为进行查询、管理以及修正。
(5)用户管理:用户管理包括用户添加、用户删除、用户更新、用户查询和权限分配五部分功能。在用户添加部分,系统管理员可以添加用户信息并分配用户进入系统时可以浏览的权限。权限分为模块浏览、模块管理、系统日志和用户管理四部分。在用户删除部分,管理员可以浏览、搜索和删除系统用户。在用户更新部分,管理员可以更新用户信息。用户查询部分系统管理员可以通过全部用户、单条件查询和多条件查询三种方式查询用户信息,全部用户是将全部用户信息列出,管理员可以看到所有用户。单条件查询是选择一个条件,查询符合该条件的用户,多条件则是多个条件联合查询。权限分配部分管理员则可以为某一个APP分配可以对该APP进行更新的账户,使得对一个APP,不再是只有上传该APP的用户可以更新该应用信息,其他人也可以拥有该APP更新的权限。
“地调外业通”为Android端系统,面向各多专业综合地质调查任务工作人员,主要实现采集类APP按需下载,自定义配置和使用以及在线更新等功能,同时在各采集类APP之间实现了统一登录。具体包括以下模块:
(1)系统登录:所有用户经过“地调外业通”登录页面完成地质云验证登录。由于各采集类APP均需登录后使用,为避免用户在使用不同APP时反复登录,通过采用ContentProvider方式实现移动端集成应用与各采集类App不同应用之间的数据共享,移动端集成应用进行用户名和密码的验证,验证成功后对用户名和密码进行加密并通过ContentProvider方式共享给各个用户已安装的采集类App。各采集类App通过ContentResolver接受共享的加密后的用户名和密码并进行解密,然后转入各自相应的应用逻辑。系统内部各采集类APP无需再次完成认证,只需进行业务权限控制。实现流程见图5。
图5 统一登陆实现流程Fig.5 Unified login implementation process
(2)模块中心:用户可以浏览各专业APP信息并进行安装或更新。
(3)我的应用:用户通过模块中心自定义配置任务所需的APP,在我的应用中可以查看已经安装的APP并在集成工具内部进行使用或者卸载。
(4)我的设置:包括用户信息、权限设置、系统信息和退出系统四部分。用户信息可以查看登录用户的详细信息,权限设置用来设置是否允许安装未知来源应用的权限,系统信息用于查看系统的基本信息,退出系统功能则用于退出应用程序。
地质调查野外数据采集类APP集成框架目前已经广泛应用于实际地质调查项目之中,实现了环境、探矿、水文和地灾等多专业APP的集中管理,为野外地质调查人员提供更加便捷的服务,提高了工作效率,整体应用流程见图6。
图6 地质调查野外数据采集类应用集成框架应用流程Fig.6 Application process of integrated framework for geological survey field data acquisition
各单位开发人员在Web端上传采集类APP相关信息、apk安装包和图标,目前已上传环境地质调查、数字填图和数字剖面等八类APP。野外地质调查人员从移动端集成工具可获取各采集类APP相关信息,按照调查任务要求,自定义下载所需APP并向Web端回传记录。下载的APP集成在“我的应用”模块,通过点击图标进入应用工作,或者点击文字说明进入详细信息查看介绍或卸载应用。
本文通过全面分析野外地质人员在开展多专业综合地质调查任务时存在的限制以及用户需求,借鉴了使用Spring Boot和Vue框架开发前后端分离信息系统的经验,基于云基础环境,构建了地质调查野外数据采集类APP集成框架,并开发了Web端和移动端集成应用工具进行支撑,解决了多专业综合地质调查业务过程中存在的单一应用无法满足业务人员需要以及应用升级的问题,为类似多专业综合地质调查任务信息系统建设提供了参考思路。未来,在此基础上,将进一步研究如何提升系统的安全访问控制能力以及优化系统数据库结构,从而提高系统的安全性、并发访问能力和效率。