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