浙江省护林员考勤巡查系统设计与应用

2018-11-30 01:46
计算机应用与软件 2018年11期
关键词:护林员数据库功能

王 圣 辉

(浙江农林大学信息工程学院 浙江 杭州 311300) (浙江省林业智能监控和信息技术研究重点实验室 浙江 杭州 311300)(浙江大学信息与电子工程学院 浙江 杭州 310000)

0 引 言

根据浙江省林业厅2018年3月发布的最新的全省林业资源数据,全省林业用地面积9 900万亩,其中优质公益林面积达3 700万亩,活立木总蓄积量3.5亿立方米,森林覆盖率达到61%,位居全国前列[1]。浙江省森林生态服务总价值5 342.62亿元,在调节气候、大气净化、涵养水源、固碳释氧、森林旅游、保持生物多样性等方面发挥了非常重要的作用,尤其是在“美丽中国”、“两美浙江”建设绿色GDP的大背景下,加强生态公益林建设与管理任重道远。

全省目前拥有2.6万名专职护林员,是林业生态资源管理和保护的一支中坚力量,担负着林区日常的政策法规宣传、森林资源调查监控、灾情灾害巡视报告等基本职责,加强和提高护林员队伍的建设和质量,有利于森林资源保护的各项政策措施贯彻执行[2-3]。针对森林野外作业管理复杂的现实困难,结合现行森林资源保护管理体制及其特点,借助GPS(全球定位系统)、GIS(地理信息系统)和遥感系统(RS)的开发利用[4],以及Internet互联网和GPRS、3G、4G移动联网的普及,开发完成一套护林员考勤管理系统尤为必要,从而实现对护林员森林巡护的实时跟踪调查、上通下达有效沟通、量化考核奖励,为护林员的林外调查管护提供有效可行的现代化科技化管理方案。

本文对护林员考勤管理系统的功能需求进行了分析,介绍了系统的基础架构、以及其实现技术与方法。最后阐述了系统运行的现状及维护管理工作。

1 功能需求分析

建设护林员巡查管理系统的主要目的是为严格护林队伍建设,建立健全规范的护林员选拔录用、考核奖惩制度,激励护林员的工作责任心和积极性,提高巡查效果,有效预防森林火灾、盗滥伐森林、破坏林地等案件的发生,从而巩固林业生态建设成果。所以要求本系统能对护林员从基本属性信息管理、硬件设备管理、实时巡查状态、考核结果数据处理和到分析统计等管理提供完成的解决方案。本系统针对实现对护林员巡查等数据进行管理,主要功能模块分为用户手机端(功能机和智能机)、管理端(PC端和手机端)和服务端三个部分。

1) 用户端 用户端的主要功能包含:基础功能(电话、短信)、地图显示、地图测量计算、GPS定位、数据采集、通知公告、天气查询等功能。

护林员用户端子系统,主要面向护林员使用,实现了终端的数据实时采集、参数动态配置、任务通知管理、森林资源调查、气象数据查询和报警功能。

2) 管理端 管理端的功能如图1所示,主要包含:

(1) 系统管理:用户管理、密码管理、权限管理、系统配置、巡逻参数配置(最短巡逻距离、规定时间等)。

(2) 巡逻管理:在线人员实时监控、地图位置查询、巡逻区域设置、报警信息显示、云推送等。

(3) 人员设备管理:镇监管管理、护林员管理、智能手持端管理、定位终端管理、护林员定位等。

(4) 考核管理:基本报表(日考核报表、月考核报表、年度报表)、考核工资报表、权限护林员汇总一览表等。对护林员的履职情况进行统计、汇总分析、考核评价。

3) 服务端 服务端的主要功能包含:定时任务的生成与考核、报表的生成与发布、数据接口的提供与接入、安全体系认证,以及云监控。

图1 管理端系统功能图

2 系统总体设计

2.1 系统架构

平台分基础服务层、大数据服务层、业务服务层等标准制度体系,技术优势明显,并采用云服务器、云数据库、云监控等技术与服务,为系统运行提供了有力支撑。如图2所示。

图2 系统架构图

为适应全省护林员管理需要,平台采用省、市、县、乡镇四级管理模式。如图3所示,分级负责、上下联动,并配有专业规范的服务保障体系,即时处理解决实际问题。

图3 系统运维管理图

为了保证系统安全运行,平台采用加密服务,拥有云防火墙及Web应用防火墙,借助态势感知保障了数据安全及内容安全。如图4所示。

图4 系统安全保障体系

系统采用主备架构模式,可实现故障秒级切换,保障了系统稳定长期运行。数据采用加密服务,安全可靠好。多维监控报警,时刻把握数据运行动态。流量监控,DDOS高防IP。

2.2 数据库设计与创建

数据库主要包含林业资源数据库和应用数据库。其中应用数据库主要包含用户基础数据、终端设备数据、巡检巡查数据、日志管理数据、统计报表数据等内容。林业资源数据库包含地形矢量数据、卫星遥感影像图、森林资源调查数据等。数据库采用微软公司提供的SQL Server 2008。

2.3 技术路线

2.3.1 分层模块化MVC实现

MVC(Model View Controller 模型-视图-控制器)[5]设计模式具体耦合性低、重用性高、生命周期成本低、可维护性高等优点,普遍应用于系统开发当中。

Model(模型)是系统中用于应用程序处理数据逻辑的部分。通常情况下,模型对象负责在数据库中存取数据,可通过ADO.NET Entity Framework创建实体数据模型Database First、Model First、Code First。从单纯的Mapping到对象关系映射(ORM)框架能力的升华,数据库在整个应用过程中可以更好地被封装和抽象化。在对对象的CRUD上,不仅减少代码错误、提高简单查询的开发效率,在复杂查询、性能等一些方面结果都有了大幅度的性能提升。

View(视图)是应用程序中处理数据显示的部分,直接和用户交互,通常视图是依据模型数据创建的。运用JS和CSS技术,结合母版框架可快速实现基础功能。

Controller(控制器)负责从视图读取数据,控制与响应用户的输入,然后指定返回浏览器响应的视图模板的Class类,是应用程序中处理用户交互的部分。

VS提供了一套基于T4模板引擎(Text、Template、Transformation Toolkit)的代码生成环境,安装对应扩展插件后可帮助开发者快速生成和更新代码,大大地提高了开发效率。其可分为指令块、文本块和控制块。

为了取得“高内聚,低耦合”效果系统被定义为表现层(UI)、业务逻辑层(BLL)和数据访问层(DLL),对应层又分为接口和实现部分,这样可以降低层与层之间的依赖关系,有利于理清各层逻辑关系,扩展性和安全性也有了大幅提高,如图5所示。

图5 MVC分层实现图

2.3.2 权限管理

权限管理是一个系统安全规则的重要组成部分[6],在此安全策略下,登录用户仅可操作(查看、修改、删除)已被授权的资源。用户-角色-权限模式基本的表设计如图6所示,主要包括用户表、角色组、模块表、权限表和用户角色关系表、角色模块权限关系表。当用户操作时先判断其所属的角色(如超级管理员、管理员、还是一般用户等),然后再去判断其角色是否拥有的对应模块的操作权限(如增、删、改、查等)。

图6 权限管理数据库示意图

(1) 用户表(SysUser): 系统用户基础信息,如账号和加密密码,个人信息等,其中ID为唯一标识。

(2) 角色组(SysRole): 系统定义了多种角色组,如省级用户组,县市级用户组、乡镇用户组和个人用户组等,方便管理。

(3) 模块表(SysModule): 系统将各功能点模块化,保证各单元结构清晰。

(4) 权限表(SysRight): 系统将比如查看、增加、修改、删除等操作点独立定义。

(5) 用户-角色表(SysUserRole):用户和角色组的关联表,其中一个用户可以同时拥有多种角色,当然一种角色可以同时被多个用户拥有。

(6) 模块-权限表(SysModuleRight): 保存系统模块和权限的关联表,一个模块可以拥有多个权限。

(7) 角色-权限表(SysRoleRight): 角色和权限的关联表。

2.3.3 Bootstrap与jQuery

jQuery是一个快速、简洁的JavaScript框架,封装了JS常用的功能代码,优化了事件、Ajax交互和HTML文档操作,具有独特的链式语法和多功能接口,拥有高效灵活的选择器和便捷丰富的扩展插件,且兼容性强。

Bootstrap依赖于jQuery并进行了大题完善优化[7],基于HTML5和CSS3开发,包含很多可重用组件,可用于创建黑乎乎、下拉菜单、导航栏等控件。作为响应式而已,在当下浏览设备众多应用场景下,适配效果显著。

2.3.4 Quartz定时任务

Quartz是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)任务调度框架[8],因其开源性和优化的性能被广泛应用。主要包含Scheduler(调度器)、Trigger(定义触发的条件)和JobDetail & Job(JobDetail 定义的是任务数据,而真正的执行逻辑是在Job中)三部分,有优先级(Priority)、Misfire(错失触发)策略等区分,配置方法如下:

org.quartz.scheduler.instanceName=

DefaultQuartzScheduler

org.quartz.threadPool.class=

org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount=30

org.quartz.threadPool.threadPriority=6

org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true

org.quartz.jobStore.class=

org.quartz.simpl.RAMJobStore

2.3.5 Unity依赖注入

控制反转Ioc(Inversion of Control)和依赖注入(Dependency Injection)是解决程序耦合性问题的一种较好方案,Ioc关注服务是如何定义以及如何定位他们依赖的其他服务,较为常见的有astle、Windsor、Unity、Spring.NET等。Unity可通过VS管理NuGet程序包进行安装使用。

2.3.6 其 他

系统在开发过程中还运用了WEB API,Cache缓存框架以及其他一些开源框架,如Log4net日志管理可通过简单配置实现系统日志以及用户日志的管理和维护,Echarts提供了大量方便丰富的可视化图表,layer作为一个口碑极佳的Web弹层组件深受用户喜爱。

3 系统应用

3.1 系统配置

该系统服务端由应用服务器和Web服务器构成,应用服务器提供数据接口以及用户终端的交互,Web服务器主要用于网站访问,数据库独立部署,且服务器均为主备结构,可在容灾情况下实时切换,如表1所示。

表1 服务器基本信息

3.2 终端设备

专职护林员每人配备一个护林员通信设备,表2列出了当前终端品牌分布情况。因护林员年龄结构的特殊性,用户还是比较喜欢操作简单,使用方便的手机,因此,三防功能机,如乐目所占比重较大。

表2 终端品牌分布情况

此外,为了适配不同终端,系统应用分别在MTK和Android系统下进行了长期测试和运行,表3列出了周活跃用户启动软件次数及占比,结果表明,软件在各版本运行正常。

表3 服务器基本信息

3.3 性能监测

系统运行期间进行状态实时监测,监测指标主要包括了CPU使用率、网络流入流出量及带宽、系统磁盘IO及吞吐量、系统可用性及响应时间等,如图7、图8、图9所示。根据各项指标的监测情况提供实时决策,为系统维护提供可靠保障。

图7 系统运行图—网络吞吐量

图8 系统运行图—CPU

图9 系统运行图—系统响应时间

3.4 运行效果

系统平台实现了人员信息管理和在线实时监控、通知任务管理等功能,按照县、乡镇分级按权限进行管理,整体实现功能如图10所示,图11展示了全省护林员的热力分布图。

图10 系统功能展示图

图11 系统功能展示图

为了更好地评价考核各县市管理维护情况,系统根据森林防火等级、上线率、人均上线时间、人均巡逻面积等参数进行量化排名,运行状态如图12所示。

图12 系统功能效果图

4 结 语

本文从用户实际需要出发,介绍系统的框架结构和技术实现方法,并对系统的整体运行和应用情况作了介绍。2010年遂昌县第一个县级系统落地实施,截至到2017年底已有54个县市区接入该系统,护林员总数已达15 368人,对全省265平方公里公益林实施高效巡查管护工作。在线的实时并发量和数据的大型复杂运算见证了系统的稳定可靠性能,其正常运行给管理人员带来了极大便利。

猜你喜欢
护林员数据库功能
99Tcm-MIBI显像在甲状旁腺功能亢进术前诊断中的应用价值
基层弄虚作假的“新功能取向”
珙 县召开生态护林员视频培训会
把党史的功能作用发挥得更加充分有效
护林员巡山路上“偶遇”猕猴
浅析生态护林员政策在助推扶贫攻坚的作用
光影视界
奔驰S级香氛功能介绍
数据库
数据库