文/王靖元
隨著信息技術(shù)的不斷發(fā)展,為了方便人民群眾生活和提高工作效率,近年來不斷有政府機(jī)關(guān)建立起了線上政務(wù)服務(wù)平臺(tái),各類業(yè)務(wù)都在積極地向互聯(lián)網(wǎng)上遷移。檔案作為記錄個(gè)人、單位信息的重要文獻(xiàn),具有大量的查詢需求,而出于保密與方便管理的原因,檔案一般都由各地檔案單位集中收集管理,一個(gè)線上的檔案查詢系統(tǒng)能為人們提供很大的便利,而微信小程序的查詢系統(tǒng)就可以有此技術(shù)擔(dān)當(dāng)
檔案是由個(gè)人或集體在各項(xiàng)社會(huì)活動(dòng)中形成的具有保存價(jià)值的記錄性文件,人們常常需要使用檔案作為人事變遷等工作的證明,因此有著很大的檔案查詢需求。而檔案的集中存放與管理的方式有時(shí)候給人們查詢檔案帶來了較大麻煩,時(shí)常需要跑很多地方才能查到自己需要的檔案文件。本文提供的基于微信小程序的檔案查詢系統(tǒng)設(shè)計(jì)方案通過在檔案系統(tǒng)工作人員與需要查檔案的人之間建立起一個(gè)信息傳遞、交互的通道,使得查檔者能線上與工作人員建立聯(lián)系,并在身份驗(yàn)證后在保密規(guī)則允許的范圍內(nèi),獲得自己想要查詢的檔案,能夠很大程度上提高查檔工作的效率,更好地服務(wù)于民眾。
在線的檔案查詢系統(tǒng)可以通過如今較為流行與完善的微信小程序框架實(shí)現(xiàn),系統(tǒng)的目標(biāo)用戶分為檔案機(jī)關(guān)工作人員與需要查詢檔案的普通用戶。系統(tǒng)由檔案局或檔案館獨(dú)立地運(yùn)行上線,為需要到對(duì)應(yīng)單位查詢檔案的人提供服務(wù)。
查檔者首先需要通過身份證與人臉信息進(jìn)行初步的身份認(rèn)證,之后可以通過該系統(tǒng)向工作人員提供對(duì)自己想要查詢檔案的描述,同時(shí)附帶自己的身份信息。檔案機(jī)關(guān)工作人員的主要工作是審核檔案查詢請(qǐng)求發(fā)起者身份,通過后在線下為其查詢對(duì)應(yīng)的檔案,對(duì)于保密程度較高的檔案查詢后僅需通知檔案是否查到,后續(xù)由查檔者前往親自處理,不涉密的檔案則可以直接將文件以圖片或pdf的格式發(fā)回給查檔者,由其自行使用。
用戶在系統(tǒng)中可注冊(cè)賬號(hào)與登錄賬號(hào)。查檔者可以完善與修改自己的實(shí)名信息、提交查詢檔案申請(qǐng)、查看歷史檔案查詢申請(qǐng)、查看檔案查詢申請(qǐng)的處理進(jìn)度與結(jié)果、查看與下載圖片、PDF等格式的檔案文件、咨詢檔案機(jī)關(guān)工作人員。檔案機(jī)關(guān)工作人員的賬號(hào)由系統(tǒng)的管理者生成,無法由用戶自行注冊(cè)。工作人員可以查看查檔者的查詢請(qǐng)求、通過系統(tǒng)與查檔者溝通、處理查詢請(qǐng)求、上傳檔案文件、審核帶有檔案文件的回復(fù)、查看所有用戶查詢請(qǐng)求。
2.1 可靠性與健壯性
系統(tǒng)能夠保密用戶的密碼、郵箱、手機(jī)號(hào)、身份證號(hào)等信息,系統(tǒng)運(yùn)行過程中出現(xiàn)異常時(shí)能夠及時(shí)輸出異常信息,并對(duì)異常做出正確處理或保護(hù)異常發(fā)生現(xiàn)場(chǎng)。系統(tǒng)能夠持續(xù)正常運(yùn)行7×24小時(shí)以上。
2.2 可維護(hù)性
系統(tǒng)在運(yùn)行環(huán)境下需要具有完整全面的info、warnning、error三個(gè)級(jí)別日志輸出,日志輸出提供的信息能使維護(hù)人員快速還原系統(tǒng)在運(yùn)行過程的各時(shí)間點(diǎn)發(fā)生的各個(gè)事件,并定位對(duì)應(yīng)的程序模塊。
2.3 可測(cè)試性
系統(tǒng)提供固定、明確的API接口,能夠通過Postman等主流軟件對(duì)各API對(duì)應(yīng)的功能模塊進(jìn)行測(cè)試,并能夠快速進(jìn)行回歸測(cè)試,程序運(yùn)行過程中能夠通過操作系統(tǒng)實(shí)時(shí)監(jiān)控程序計(jì)算機(jī)資源使用情況。
2.4 數(shù)據(jù)安全性
為保證用戶信息與檔案文件不被竊取[3],系統(tǒng)所有數(shù)據(jù)均需要加密傳輸,檔案文件需要在加密的應(yīng)用層協(xié)議[1]的基礎(chǔ)外再使用特殊的加密算法進(jìn)行處理。對(duì)用戶而言,工作人員必須明知檔案密級(jí),涉及檔案文件傳輸時(shí)必須至少兩名工作人員審核通過。
系統(tǒng)使用前后端分離的架構(gòu)模式,按照功能可分為前端、服務(wù)端與外部系統(tǒng)三大模塊。系統(tǒng)的前端基于微信小程序框架,主要負(fù)責(zé)進(jìn)行視圖層的渲染工作,為了美化UI界面,可以使用Color UI等開源的微信小程序組件庫(kù)。系統(tǒng)的服務(wù)端負(fù)責(zé)提供業(yè)務(wù)邏輯與數(shù)據(jù)存儲(chǔ)服務(wù),同時(shí)需要協(xié)調(diào)外部系統(tǒng)與本系統(tǒng)正常進(jìn)行通信。本系統(tǒng)的外部系統(tǒng)主要為外部提供的身份證實(shí)名認(rèn)證接口,來提供身份信息驗(yàn)證的服務(wù)。
微信小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開應(yīng)用。經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的微信小程序開發(fā)環(huán)境和開發(fā)者生態(tài)[2]。
使用微信小程序框架進(jìn)行視圖層開發(fā)時(shí),需要使用規(guī)定的wxml與wxss語(yǔ)法規(guī)則,同時(shí)結(jié)合使用JavaScript語(yǔ)言編寫代碼,將開發(fā)好的軟件部署上線后,在用戶通過微信打開應(yīng)用時(shí),系統(tǒng)便能將頁(yè)面內(nèi)容實(shí)時(shí)地展示在用戶的手機(jī)屏幕上。
由于微信小程序的框架只是DOM的一個(gè)抽象層,不具備數(shù)據(jù)層存儲(chǔ)與復(fù)雜邏輯處理的能力,因此需要服務(wù)端提供API接口,小程序通過調(diào)用來向服務(wù)端發(fā)送與接收數(shù)據(jù),最終展示在視圖層上。
為了簡(jiǎn)化Spring框架搭開發(fā)過程,Pivotal團(tuán)隊(duì)在其基礎(chǔ)上推出了Spring Boot框架[4]。隨著近些年來微服務(wù)技術(shù)的流行,這也成了時(shí)下炙手可得的熱點(diǎn)技術(shù)。Spring Boot去除了大量的xml配置文件,簡(jiǎn)化了復(fù)雜的依賴管理,配合各種starter使用,基本上可以做到自動(dòng)化配置。Spring可以做的事情,現(xiàn)在用Spring boot都可以做。
對(duì)訪問的身份驗(yàn)證主要通過JWT(Json Web Token)完 成。在 Spring Boot框架下,對(duì)于小程序端發(fā)來的請(qǐng)求,可以使用攔截器對(duì)請(qǐng)求進(jìn)行一次處理,檢驗(yàn)前端攜帶的Token是否有效。這一過程對(duì)于所有API的請(qǐng)求都是有效的,因此為了提高驗(yàn)證效率,可以將JWT編碼后存儲(chǔ)在運(yùn)行于內(nèi)存中的Redis數(shù)據(jù)庫(kù)中,每次驗(yàn)證中即可省去訪問數(shù)據(jù)庫(kù)時(shí)從磁盤中讀取數(shù)據(jù)的時(shí)間,提高響應(yīng)速度與數(shù)據(jù)庫(kù)訪問壓力。