王 圣 輝
(浙江農(nóng)林大學(xué)信息工程學(xué)院 浙江 杭州 311300) (浙江省林業(yè)智能監(jiān)控和信息技術(shù)研究重點(diǎn)實(shí)驗(yàn)室 浙江 杭州 311300)(浙江大學(xué)信息與電子工程學(xué)院 浙江 杭州 310000)
根據(jù)浙江省林業(yè)廳2018年3月發(fā)布的最新的全省林業(yè)資源數(shù)據(jù),全省林業(yè)用地面積9 900萬畝,其中優(yōu)質(zhì)公益林面積達(dá)3 700萬畝,活立木總蓄積量3.5億立方米,森林覆蓋率達(dá)到61%,位居全國(guó)前列[1]。浙江省森林生態(tài)服務(wù)總價(jià)值5 342.62億元,在調(diào)節(jié)氣候、大氣凈化、涵養(yǎng)水源、固碳釋氧、森林旅游、保持生物多樣性等方面發(fā)揮了非常重要的作用,尤其是在“美麗中國(guó)”、“兩美浙江”建設(shè)綠色GDP的大背景下,加強(qiáng)生態(tài)公益林建設(shè)與管理任重道遠(yuǎn)。
全省目前擁有2.6萬名專職護(hù)林員,是林業(yè)生態(tài)資源管理和保護(hù)的一支中堅(jiān)力量,擔(dān)負(fù)著林區(qū)日常的政策法規(guī)宣傳、森林資源調(diào)查監(jiān)控、災(zāi)情災(zāi)害巡視報(bào)告等基本職責(zé),加強(qiáng)和提高護(hù)林員隊(duì)伍的建設(shè)和質(zhì)量,有利于森林資源保護(hù)的各項(xiàng)政策措施貫徹執(zhí)行[2-3]。針對(duì)森林野外作業(yè)管理復(fù)雜的現(xiàn)實(shí)困難,結(jié)合現(xiàn)行森林資源保護(hù)管理體制及其特點(diǎn),借助GPS(全球定位系統(tǒng))、GIS(地理信息系統(tǒng))和遙感系統(tǒng)(RS)的開發(fā)利用[4],以及Internet互聯(lián)網(wǎng)和GPRS、3G、4G移動(dòng)聯(lián)網(wǎng)的普及,開發(fā)完成一套護(hù)林員考勤管理系統(tǒng)尤為必要,從而實(shí)現(xiàn)對(duì)護(hù)林員森林巡護(hù)的實(shí)時(shí)跟蹤調(diào)查、上通下達(dá)有效溝通、量化考核獎(jiǎng)勵(lì),為護(hù)林員的林外調(diào)查管護(hù)提供有效可行的現(xiàn)代化科技化管理方案。
本文對(duì)護(hù)林員考勤管理系統(tǒng)的功能需求進(jìn)行了分析,介紹了系統(tǒng)的基礎(chǔ)架構(gòu)、以及其實(shí)現(xiàn)技術(shù)與方法。最后闡述了系統(tǒng)運(yùn)行的現(xiàn)狀及維護(hù)管理工作。
建設(shè)護(hù)林員巡查管理系統(tǒng)的主要目的是為嚴(yán)格護(hù)林隊(duì)伍建設(shè),建立健全規(guī)范的護(hù)林員選拔錄用、考核獎(jiǎng)懲制度,激勵(lì)護(hù)林員的工作責(zé)任心和積極性,提高巡查效果,有效預(yù)防森林火災(zāi)、盜濫伐森林、破壞林地等案件的發(fā)生,從而鞏固林業(yè)生態(tài)建設(shè)成果。所以要求本系統(tǒng)能對(duì)護(hù)林員從基本屬性信息管理、硬件設(shè)備管理、實(shí)時(shí)巡查狀態(tài)、考核結(jié)果數(shù)據(jù)處理和到分析統(tǒng)計(jì)等管理提供完成的解決方案。本系統(tǒng)針對(duì)實(shí)現(xiàn)對(duì)護(hù)林員巡查等數(shù)據(jù)進(jìn)行管理,主要功能模塊分為用戶手機(jī)端(功能機(jī)和智能機(jī))、管理端(PC端和手機(jī)端)和服務(wù)端三個(gè)部分。
1) 用戶端 用戶端的主要功能包含:基礎(chǔ)功能(電話、短信)、地圖顯示、地圖測(cè)量計(jì)算、GPS定位、數(shù)據(jù)采集、通知公告、天氣查詢等功能。
護(hù)林員用戶端子系統(tǒng),主要面向護(hù)林員使用,實(shí)現(xiàn)了終端的數(shù)據(jù)實(shí)時(shí)采集、參數(shù)動(dòng)態(tài)配置、任務(wù)通知管理、森林資源調(diào)查、氣象數(shù)據(jù)查詢和報(bào)警功能。
2) 管理端 管理端的功能如圖1所示,主要包含:
(1) 系統(tǒng)管理:用戶管理、密碼管理、權(quán)限管理、系統(tǒng)配置、巡邏參數(shù)配置(最短巡邏距離、規(guī)定時(shí)間等)。
(2) 巡邏管理:在線人員實(shí)時(shí)監(jiān)控、地圖位置查詢、巡邏區(qū)域設(shè)置、報(bào)警信息顯示、云推送等。
(3) 人員設(shè)備管理:鎮(zhèn)監(jiān)管管理、護(hù)林員管理、智能手持端管理、定位終端管理、護(hù)林員定位等。
(4) 考核管理:基本報(bào)表(日考核報(bào)表、月考核報(bào)表、年度報(bào)表)、考核工資報(bào)表、權(quán)限護(hù)林員匯總一覽表等。對(duì)護(hù)林員的履職情況進(jìn)行統(tǒng)計(jì)、匯總分析、考核評(píng)價(jià)。
3) 服務(wù)端 服務(wù)端的主要功能包含:定時(shí)任務(wù)的生成與考核、報(bào)表的生成與發(fā)布、數(shù)據(jù)接口的提供與接入、安全體系認(rèn)證,以及云監(jiān)控。
圖1 管理端系統(tǒng)功能圖
平臺(tái)分基礎(chǔ)服務(wù)層、大數(shù)據(jù)服務(wù)層、業(yè)務(wù)服務(wù)層等標(biāo)準(zhǔn)制度體系,技術(shù)優(yōu)勢(shì)明顯,并采用云服務(wù)器、云數(shù)據(jù)庫(kù)、云監(jiān)控等技術(shù)與服務(wù),為系統(tǒng)運(yùn)行提供了有力支撐。如圖2所示。
圖2 系統(tǒng)架構(gòu)圖
為適應(yīng)全省護(hù)林員管理需要,平臺(tái)采用省、市、縣、鄉(xiāng)鎮(zhèn)四級(jí)管理模式。如圖3所示,分級(jí)負(fù)責(zé)、上下聯(lián)動(dòng),并配有專業(yè)規(guī)范的服務(wù)保障體系,即時(shí)處理解決實(shí)際問題。
圖3 系統(tǒng)運(yùn)維管理圖
為了保證系統(tǒng)安全運(yùn)行,平臺(tái)采用加密服務(wù),擁有云防火墻及Web應(yīng)用防火墻,借助態(tài)勢(shì)感知保障了數(shù)據(jù)安全及內(nèi)容安全。如圖4所示。
圖4 系統(tǒng)安全保障體系
系統(tǒng)采用主備架構(gòu)模式,可實(shí)現(xiàn)故障秒級(jí)切換,保障了系統(tǒng)穩(wěn)定長(zhǎng)期運(yùn)行。數(shù)據(jù)采用加密服務(wù),安全可靠好。多維監(jiān)控報(bào)警,時(shí)刻把握數(shù)據(jù)運(yùn)行動(dòng)態(tài)。流量監(jiān)控,DDOS高防IP。
數(shù)據(jù)庫(kù)主要包含林業(yè)資源數(shù)據(jù)庫(kù)和應(yīng)用數(shù)據(jù)庫(kù)。其中應(yīng)用數(shù)據(jù)庫(kù)主要包含用戶基礎(chǔ)數(shù)據(jù)、終端設(shè)備數(shù)據(jù)、巡檢巡查數(shù)據(jù)、日志管理數(shù)據(jù)、統(tǒng)計(jì)報(bào)表數(shù)據(jù)等內(nèi)容。林業(yè)資源數(shù)據(jù)庫(kù)包含地形矢量數(shù)據(jù)、衛(wèi)星遙感影像圖、森林資源調(diào)查數(shù)據(jù)等。數(shù)據(jù)庫(kù)采用微軟公司提供的SQL Server 2008。
2.3.1 分層模塊化MVC實(shí)現(xiàn)
MVC(Model View Controller 模型-視圖-控制器)[5]設(shè)計(jì)模式具體耦合性低、重用性高、生命周期成本低、可維護(hù)性高等優(yōu)點(diǎn),普遍應(yīng)用于系統(tǒng)開發(fā)當(dāng)中。
Model(模型)是系統(tǒng)中用于應(yīng)用程序處理數(shù)據(jù)邏輯的部分。通常情況下,模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù),可通過ADO.NET Entity Framework創(chuàng)建實(shí)體數(shù)據(jù)模型Database First、Model First、Code First。從單純的Mapping到對(duì)象關(guān)系映射(ORM)框架能力的升華,數(shù)據(jù)庫(kù)在整個(gè)應(yīng)用過程中可以更好地被封裝和抽象化。在對(duì)對(duì)象的CRUD上,不僅減少代碼錯(cuò)誤、提高簡(jiǎn)單查詢的開發(fā)效率,在復(fù)雜查詢、性能等一些方面結(jié)果都有了大幅度的性能提升。
View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分,直接和用戶交互,通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。運(yùn)用JS和CSS技術(shù),結(jié)合母版框架可快速實(shí)現(xiàn)基礎(chǔ)功能。
Controller(控制器)負(fù)責(zé)從視圖讀取數(shù)據(jù),控制與響應(yīng)用戶的輸入,然后指定返回瀏覽器響應(yīng)的視圖模板的Class類,是應(yīng)用程序中處理用戶交互的部分。
VS提供了一套基于T4模板引擎(Text、Template、Transformation Toolkit)的代碼生成環(huán)境,安裝對(duì)應(yīng)擴(kuò)展插件后可幫助開發(fā)者快速生成和更新代碼,大大地提高了開發(fā)效率。其可分為指令塊、文本塊和控制塊。
為了取得“高內(nèi)聚,低耦合”效果系統(tǒng)被定義為表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DLL),對(duì)應(yīng)層又分為接口和實(shí)現(xiàn)部分,這樣可以降低層與層之間的依賴關(guān)系,有利于理清各層邏輯關(guān)系,擴(kuò)展性和安全性也有了大幅提高,如圖5所示。
圖5 MVC分層實(shí)現(xiàn)圖
2.3.2 權(quán)限管理
權(quán)限管理是一個(gè)系統(tǒng)安全規(guī)則的重要組成部分[6],在此安全策略下,登錄用戶僅可操作(查看、修改、刪除)已被授權(quán)的資源。用戶-角色-權(quán)限模式基本的表設(shè)計(jì)如圖6所示,主要包括用戶表、角色組、模塊表、權(quán)限表和用戶角色關(guān)系表、角色模塊權(quán)限關(guān)系表。當(dāng)用戶操作時(shí)先判斷其所屬的角色(如超級(jí)管理員、管理員、還是一般用戶等),然后再去判斷其角色是否擁有的對(duì)應(yīng)模塊的操作權(quán)限(如增、刪、改、查等)。
圖6 權(quán)限管理數(shù)據(jù)庫(kù)示意圖
(1) 用戶表(SysUser): 系統(tǒng)用戶基礎(chǔ)信息,如賬號(hào)和加密密碼,個(gè)人信息等,其中ID為唯一標(biāo)識(shí)。
(2) 角色組(SysRole): 系統(tǒng)定義了多種角色組,如省級(jí)用戶組,縣市級(jí)用戶組、鄉(xiāng)鎮(zhèn)用戶組和個(gè)人用戶組等,方便管理。
(3) 模塊表(SysModule): 系統(tǒng)將各功能點(diǎn)模塊化,保證各單元結(jié)構(gòu)清晰。
(4) 權(quán)限表(SysRight): 系統(tǒng)將比如查看、增加、修改、刪除等操作點(diǎn)獨(dú)立定義。
(5) 用戶-角色表(SysUserRole):用戶和角色組的關(guān)聯(lián)表,其中一個(gè)用戶可以同時(shí)擁有多種角色,當(dāng)然一種角色可以同時(shí)被多個(gè)用戶擁有。
(6) 模塊-權(quán)限表(SysModuleRight): 保存系統(tǒng)模塊和權(quán)限的關(guān)聯(lián)表,一個(gè)模塊可以擁有多個(gè)權(quán)限。
(7) 角色-權(quán)限表(SysRoleRight): 角色和權(quán)限的關(guān)聯(lián)表。
2.3.3 Bootstrap與jQuery
jQuery是一個(gè)快速、簡(jiǎn)潔的JavaScript框架,封裝了JS常用的功能代碼,優(yōu)化了事件、Ajax交互和HTML文檔操作,具有獨(dú)特的鏈?zhǔn)秸Z法和多功能接口,擁有高效靈活的選擇器和便捷豐富的擴(kuò)展插件,且兼容性強(qiáng)。
Bootstrap依賴于jQuery并進(jìn)行了大題完善優(yōu)化[7],基于HTML5和CSS3開發(fā),包含很多可重用組件,可用于創(chuàng)建黑乎乎、下拉菜單、導(dǎo)航欄等控件。作為響應(yīng)式而已,在當(dāng)下瀏覽設(shè)備眾多應(yīng)用場(chǎng)景下,適配效果顯著。
2.3.4 Quartz定時(shí)任務(wù)
Quartz是一個(gè)在預(yù)先確定(被納入日程)的時(shí)間到達(dá)時(shí),負(fù)責(zé)執(zhí)行(或者通知)任務(wù)調(diào)度框架[8],因其開源性和優(yōu)化的性能被廣泛應(yīng)用。主要包含Scheduler(調(diào)度器)、Trigger(定義觸發(fā)的條件)和JobDetail & Job(JobDetail 定義的是任務(wù)數(shù)據(jù),而真正的執(zhí)行邏輯是在Job中)三部分,有優(yōu)先級(jí)(Priority)、Misfire(錯(cuò)失觸發(fā))策略等區(qū)分,配置方法如下:
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依賴注入
控制反轉(zhuǎn)Ioc(Inversion of Control)和依賴注入(Dependency Injection)是解決程序耦合性問題的一種較好方案,Ioc關(guān)注服務(wù)是如何定義以及如何定位他們依賴的其他服務(wù),較為常見的有astle、Windsor、Unity、Spring.NET等。Unity可通過VS管理NuGet程序包進(jìn)行安裝使用。
2.3.6 其 他
系統(tǒng)在開發(fā)過程中還運(yùn)用了WEB API,Cache緩存框架以及其他一些開源框架,如Log4net日志管理可通過簡(jiǎn)單配置實(shí)現(xiàn)系統(tǒng)日志以及用戶日志的管理和維護(hù),Echarts提供了大量方便豐富的可視化圖表,layer作為一個(gè)口碑極佳的Web彈層組件深受用戶喜愛。
該系統(tǒng)服務(wù)端由應(yīng)用服務(wù)器和Web服務(wù)器構(gòu)成,應(yīng)用服務(wù)器提供數(shù)據(jù)接口以及用戶終端的交互,Web服務(wù)器主要用于網(wǎng)站訪問,數(shù)據(jù)庫(kù)獨(dú)立部署,且服務(wù)器均為主備結(jié)構(gòu),可在容災(zāi)情況下實(shí)時(shí)切換,如表1所示。
表1 服務(wù)器基本信息
專職護(hù)林員每人配備一個(gè)護(hù)林員通信設(shè)備,表2列出了當(dāng)前終端品牌分布情況。因護(hù)林員年齡結(jié)構(gòu)的特殊性,用戶還是比較喜歡操作簡(jiǎn)單,使用方便的手機(jī),因此,三防功能機(jī),如樂目所占比重較大。
表2 終端品牌分布情況
此外,為了適配不同終端,系統(tǒng)應(yīng)用分別在MTK和Android系統(tǒng)下進(jìn)行了長(zhǎng)期測(cè)試和運(yùn)行,表3列出了周活躍用戶啟動(dòng)軟件次數(shù)及占比,結(jié)果表明,軟件在各版本運(yùn)行正常。
表3 服務(wù)器基本信息
系統(tǒng)運(yùn)行期間進(jìn)行狀態(tài)實(shí)時(shí)監(jiān)測(cè),監(jiān)測(cè)指標(biāo)主要包括了CPU使用率、網(wǎng)絡(luò)流入流出量及帶寬、系統(tǒng)磁盤IO及吞吐量、系統(tǒng)可用性及響應(yīng)時(shí)間等,如圖7、圖8、圖9所示。根據(jù)各項(xiàng)指標(biāo)的監(jiān)測(cè)情況提供實(shí)時(shí)決策,為系統(tǒng)維護(hù)提供可靠保障。
圖7 系統(tǒng)運(yùn)行圖—網(wǎng)絡(luò)吞吐量
圖8 系統(tǒng)運(yùn)行圖—CPU
圖9 系統(tǒng)運(yùn)行圖—系統(tǒng)響應(yīng)時(shí)間
系統(tǒng)平臺(tái)實(shí)現(xiàn)了人員信息管理和在線實(shí)時(shí)監(jiān)控、通知任務(wù)管理等功能,按照縣、鄉(xiāng)鎮(zhèn)分級(jí)按權(quán)限進(jìn)行管理,整體實(shí)現(xiàn)功能如圖10所示,圖11展示了全省護(hù)林員的熱力分布圖。
圖10 系統(tǒng)功能展示圖
圖11 系統(tǒng)功能展示圖
為了更好地評(píng)價(jià)考核各縣市管理維護(hù)情況,系統(tǒng)根據(jù)森林防火等級(jí)、上線率、人均上線時(shí)間、人均巡邏面積等參數(shù)進(jìn)行量化排名,運(yùn)行狀態(tài)如圖12所示。
圖12 系統(tǒng)功能效果圖
本文從用戶實(shí)際需要出發(fā),介紹系統(tǒng)的框架結(jié)構(gòu)和技術(shù)實(shí)現(xiàn)方法,并對(duì)系統(tǒng)的整體運(yùn)行和應(yīng)用情況作了介紹。2010年遂昌縣第一個(gè)縣級(jí)系統(tǒng)落地實(shí)施,截至到2017年底已有54個(gè)縣市區(qū)接入該系統(tǒng),護(hù)林員總數(shù)已達(dá)15 368人,對(duì)全省265平方公里公益林實(shí)施高效巡查管護(hù)工作。在線的實(shí)時(shí)并發(fā)量和數(shù)據(jù)的大型復(fù)雜運(yùn)算見證了系統(tǒng)的穩(wěn)定可靠性能,其正常運(yùn)行給管理人員帶來了極大便利。