錢哨 李揮劍 董乾坤
摘 要:黨的干部教育培訓(xùn)工作是黨的事業(yè)的重要組成部分,有別于傳統(tǒng)國民教育和市場化培訓(xùn)。其中干部培訓(xùn)的報(bào)名組織工作是最困難的環(huán)節(jié),這是由于培訓(xùn)學(xué)員流動(dòng)性大、人員眾多、層次多樣、頻次較高的特點(diǎn)造成的。基于微信公眾號的干部培訓(xùn)系統(tǒng)研發(fā),從培訓(xùn)報(bào)名的業(yè)務(wù)和數(shù)據(jù)交換模型入手,詳細(xì)分析了培訓(xùn)報(bào)名數(shù)據(jù)集成的關(guān)鍵技術(shù),包括基于微信公眾號報(bào)名系統(tǒng)的數(shù)據(jù)安全性、消息推送技術(shù)、數(shù)據(jù)交換技術(shù)和統(tǒng)一權(quán)限管理技術(shù)。最后通過系統(tǒng)運(yùn)行實(shí)證了系統(tǒng)的安全、可信和穩(wěn)定性,對全國干訓(xùn)行業(yè)的培訓(xùn)報(bào)名組織具有很好的推廣應(yīng)用價(jià)值。
關(guān)鍵詞:微信公眾號;數(shù)據(jù)集成;培訓(xùn)報(bào)名;REDIS;數(shù)據(jù)安全;日志跟蹤;消息推送;WEBAPI
中圖分類號:TP393? ?文獻(xiàn)標(biāo)志碼:A? ? ? ? ? 文章編號:1673-8454(2020)16-0086-04
一、引言
《2010—2020年干部教育培訓(xùn)改革綱要》確定了“目前干部教育培訓(xùn)渠道將多元化,需要加快建設(shè)干部教育培訓(xùn)的網(wǎng)絡(luò)平臺(tái),推進(jìn)干部教育培訓(xùn)管理系統(tǒng)建設(shè),將干部培訓(xùn)學(xué)習(xí)情況納入干部人事檔案[1]”等一系列干部教育的培訓(xùn)改革模式創(chuàng)新機(jī)制,基于此,“交通運(yùn)輸部管理干部學(xué)院培訓(xùn)學(xué)習(xí)管理系統(tǒng)建設(shè)工程”于2017年開始建設(shè)實(shí)施,其目標(biāo)是利用信息化手段實(shí)現(xiàn)對干部教育培訓(xùn)的全流程再造。
黨校/干部培訓(xùn)教育領(lǐng)域,既有別于國民教育,也有別于完全市場化的培訓(xùn)機(jī)構(gòu)[2],其主要行業(yè)特點(diǎn)為:①人員流動(dòng)性大。黨校/干部培訓(xùn)教育近幾年來發(fā)展較快,人員規(guī)模逐年上升,市場規(guī)模也不斷擴(kuò)大。一般省級規(guī)模的黨校/干部學(xué)員年均培訓(xùn)人員都在數(shù)萬人次規(guī)模,同時(shí)辦班頻次較高,3—5天的短訓(xùn)班比例較高;②行政主導(dǎo)與市場主導(dǎo)并行。黨校/干部培訓(xùn)教育一部分是完成行政主導(dǎo)的培訓(xùn)任務(wù),另一方面需要完成自主辦學(xué)的市場主導(dǎo)過程,二者并存在黨校/干部培訓(xùn)教育的辦學(xué)過程中比較突出;③要求服務(wù)質(zhì)量較高。參訓(xùn)人員職務(wù)職級一般較高,對服務(wù)質(zhì)量要求較高。[3-5]
在培訓(xùn)業(yè)務(wù)生命周期中,干部培訓(xùn)報(bào)名業(yè)務(wù)是至關(guān)重要的一環(huán),而傳統(tǒng)培訓(xùn)報(bào)名一般是通過電子郵件、傳真、電話方式搜集報(bào)名信息,整理匯總成Excel電子文件,宣傳渠道窄,勞動(dòng)強(qiáng)度大,招生成本高,工作效率低,信息準(zhǔn)確性差。基于微信公眾號平臺(tái)的干部教育培訓(xùn)報(bào)名系統(tǒng)與培訓(xùn)系統(tǒng)的數(shù)據(jù)集成的實(shí)現(xiàn)為上述問題提供了一種行之有效的技術(shù)解決方案。
二、干部教育培訓(xùn)報(bào)名業(yè)務(wù)和技術(shù)模型
1.業(yè)務(wù)模型
如圖1所示,干部教育培訓(xùn)報(bào)名的業(yè)務(wù)流程共分為五個(gè)部分,其中S101—S104為培訓(xùn)系統(tǒng)中的業(yè)務(wù)模塊,S105為微信公眾號平臺(tái)報(bào)名模塊,可以理解為微信公眾平臺(tái)的報(bào)名模塊是培訓(xùn)系統(tǒng)外接的數(shù)據(jù)抓手。
按照圖1模型,基于微信公眾號的培訓(xùn)報(bào)名業(yè)務(wù)流程主要包括:①培訓(xùn)計(jì)劃是培訓(xùn)工作起始點(diǎn),培訓(xùn)系統(tǒng)中的計(jì)劃模塊需要在年初將各類培訓(xùn)計(jì)劃錄入至系統(tǒng)后,形成年度各類培訓(xùn)計(jì)劃內(nèi)容,并通過管理部門下發(fā)至各培訓(xùn)業(yè)務(wù)部門執(zhí)行。②培訓(xùn)計(jì)劃下達(dá)至業(yè)務(wù)部門后,業(yè)務(wù)部門根據(jù)培訓(xùn)計(jì)劃類型填報(bào)項(xiàng)目基本數(shù)據(jù),生成培訓(xùn)項(xiàng)目并同時(shí)生成培訓(xùn)報(bào)名二維碼。③依據(jù)培訓(xùn)項(xiàng)目,可以建立多個(gè)培訓(xùn)班次,并具體填寫培訓(xùn)班次地點(diǎn)、時(shí)間、內(nèi)容、費(fèi)用、課程等信息。④生成的培訓(xùn)二維碼可隨培訓(xùn)發(fā)文下達(dá)至各單位,待培學(xué)員通過掃描二維碼直接進(jìn)入微信公眾號的培訓(xùn)項(xiàng)目報(bào)名界面,選擇具體培訓(xùn)班次后填報(bào)個(gè)人信息。另一方面,培訓(xùn)學(xué)員也可以通過關(guān)注微信公眾號并注冊后,搜索具體的培訓(xùn)班次信息內(nèi)容。
微信公眾號的報(bào)名系統(tǒng)以月為單位展示培訓(xùn)項(xiàng)目列表信息,學(xué)員進(jìn)入具體培訓(xùn)項(xiàng)目可選擇該月可報(bào)名班次列表信息,選擇單人、多人、導(dǎo)入報(bào)名方式,填寫報(bào)名信息并提交。系統(tǒng)支持取消或修改報(bào)名信息。
2.技術(shù)模型
網(wǎng)絡(luò)構(gòu)架層面,培訓(xùn)系統(tǒng)部署在培訓(xùn)單位私有云環(huán)境下,主要完成培訓(xùn)業(yè)務(wù)的全生命周期;而微信公眾號是部署在公有云環(huán)境下的獨(dú)立報(bào)名系統(tǒng),與培訓(xùn)系統(tǒng)之間是數(shù)據(jù)集成與交換關(guān)系。
數(shù)據(jù)層面,培訓(xùn)業(yè)務(wù)數(shù)據(jù)是典型的關(guān)系型數(shù)據(jù)庫,培訓(xùn)計(jì)劃、項(xiàng)目、班級、學(xué)員之間的ER關(guān)系已經(jīng)確定并成庫,因此對應(yīng)的微信公眾號平臺(tái)下開發(fā)的報(bào)名系統(tǒng),其項(xiàng)目、班級、學(xué)員之間的ER關(guān)系需要與前者相一致[6],關(guān)鍵技術(shù)結(jié)構(gòu)如下:培訓(xùn)項(xiàng)目、班次信息需要在培訓(xùn)系統(tǒng)外網(wǎng)接口上發(fā)布WEBAPI接口[6-8],通過AES數(shù)據(jù)對稱加密的格式進(jìn)行發(fā)布,調(diào)用接口時(shí)驗(yàn)證調(diào)用方是否注冊生效來判斷是否下發(fā)數(shù)據(jù)接口,其中API調(diào)用包括:數(shù)據(jù)加密要求,AES;數(shù)據(jù)格式形式,JSON;數(shù)據(jù)傳輸形式,在線服務(wù)接口;數(shù)據(jù)傳輸頻率,使用消息的模式及時(shí)推送并獲取[9]。
通過WEBAPI接口的數(shù)據(jù)集成關(guān)系,可以實(shí)現(xiàn)班次同步接口,由培訓(xùn)管理系統(tǒng)推送,公眾號程序接收,單向傳輸,支持增、刪、改;可以實(shí)現(xiàn)學(xué)員同步接口,現(xiàn)有公眾號報(bào)名的學(xué)員,公眾號程序推送,培訓(xùn)管理系統(tǒng)接收,單向傳輸,支持增、刪、改;可以實(shí)現(xiàn)學(xué)員報(bào)名程序集成多人報(bào)名,培訓(xùn)管理系統(tǒng)學(xué)員報(bào)名集成多人報(bào)名程序,通過傳遞班次編號、班次名稱,鏈接的形式集成。具體邏輯關(guān)系參照圖2所示。
三、培訓(xùn)報(bào)名數(shù)據(jù)集成關(guān)鍵技術(shù)研究
1.數(shù)據(jù)安全性關(guān)鍵技術(shù)
鑒于學(xué)員報(bào)名數(shù)據(jù)安全性考慮,首先需要在系統(tǒng)數(shù)據(jù)交換前對數(shù)據(jù)進(jìn)行加密工作,采用的是AES數(shù)據(jù)加密算法。本次AES數(shù)據(jù)加密專指庫外的數(shù)據(jù)加密,可有效減輕數(shù)據(jù)庫服務(wù)器加/解密鑰負(fù)擔(dān),同時(shí)數(shù)據(jù)交換服務(wù)器可將密鑰與臨時(shí)性數(shù)據(jù)分開,數(shù)據(jù)的傳輸過程中數(shù)據(jù)可信度增強(qiáng)。通過JAVA開發(fā)類庫調(diào)用“AES/ECB/PKCS7Padding”對稱加解密[10-12],形成交換數(shù)據(jù)的I/O關(guān)系可實(shí)現(xiàn)數(shù)據(jù)交換前的加密過程。其中重點(diǎn)為:①對數(shù)據(jù)庫中的索引數(shù)據(jù)項(xiàng)不要實(shí)施加密;②對數(shù)據(jù)庫中的主鍵和外鍵不要實(shí)施加密;③對于需要進(jìn)行計(jì)算的數(shù)據(jù)項(xiàng)不實(shí)施加密。[9][10][13]
另一方面是在數(shù)據(jù)交換前需要在WEBAPI中設(shè)置應(yīng)用的唯一標(biāo)識(shí)AppID,其中包含了數(shù)據(jù)發(fā)送方的AppKey(數(shù)據(jù)加密前的公匙,相當(dāng)于賬號)和AppSecret(私匙,相當(dāng)于密碼),以及token:令牌(過期失效)。數(shù)據(jù)發(fā)送端服務(wù)器向數(shù)據(jù)接收端服務(wù)器請求授權(quán)時(shí),需要帶上AppKey和AppSecret(需存在服務(wù)器端),數(shù)據(jù)接收端服務(wù)器將驗(yàn)證AppKey和AppSecret在DB中有無記錄,如果有則生成一串唯一的字符串(token令牌),數(shù)據(jù)發(fā)送端服務(wù)器再返回給數(shù)據(jù)接收端服務(wù)器,只有合法的token令牌才能進(jìn)行交換,以確保數(shù)據(jù)的安全性。同時(shí)AppID與AppSecret換取的令牌超時(shí)時(shí)長為7200秒[9][10],超時(shí)后需要再次換取才允許通信。最后是需要在WEBAPI中指定接口僅針對固定IP開放,其他非法IP無法訪問。
2.消息推送的關(guān)鍵技術(shù)
學(xué)員在微信端注冊個(gè)人信息成功后,將向消息服務(wù)器發(fā)送一條新增學(xué)員的消息。收到當(dāng)前消息后,消息服務(wù)器將立即推送給所有訂閱了消息服務(wù)的系統(tǒng)。培訓(xùn)系統(tǒng)接口配置中因訂閱當(dāng)前消息,會(huì)及時(shí)收到此消息,根據(jù)新增消息類型判斷當(dāng)前自身是否有通訊令牌,如果有令牌并且沒有超時(shí)的情況下,培訓(xùn)學(xué)習(xí)平臺(tái)會(huì)直接帶著令牌并攜帶消息中新增學(xué)員的ID去微信公眾平臺(tái)獲取相關(guān)的學(xué)員信息;如果令牌已經(jīng)超時(shí),培訓(xùn)系統(tǒng)會(huì)重新獲取令牌后,再次去獲取當(dāng)前新增的學(xué)員信息。[16][18]
如果學(xué)員在微信公眾平臺(tái)取消了報(bào)名,當(dāng)取消成功后,也會(huì)立即推送一條刪除消息到消息中心,此時(shí)訂閱消息中心的培訓(xùn)系統(tǒng)收到消息后,根據(jù)消息類型和學(xué)員的ID,執(zhí)行培訓(xùn)學(xué)習(xí)平臺(tái)的學(xué)員刪除。
上述的數(shù)據(jù)集成交互業(yè)務(wù)的技術(shù)是基于kafka的消息發(fā)布/訂閱模式,kafka具有低耦合、可靠投遞、高并發(fā)、容錯(cuò)性、異步處理等特點(diǎn),可以將消息快速并及時(shí)地推送到第三方系統(tǒng)。
3.數(shù)據(jù)日志跟蹤關(guān)鍵技術(shù)
微信公眾號報(bào)名系統(tǒng)會(huì)將系統(tǒng)中所有相關(guān)的程序代碼根據(jù)日志的級別(普通信息、警告信息、調(diào)試信息、錯(cuò)誤信息)進(jìn)行記錄,日志內(nèi)容包括操作時(shí)間、操作人、操作的內(nèi)容、當(dāng)前數(shù)據(jù)情形。
數(shù)據(jù)日志的跟蹤關(guān)鍵技術(shù)是通過Log4j開源項(xiàng)目日志管理項(xiàng)目,它提供了便捷的分類的日志記錄(包括ERROR、WARN、INFO、DEBUG 四種常用級別),詳細(xì)記錄每種操作的日志以及級別,配合Linux運(yùn)維可以快速定位每一步的操作,以及數(shù)據(jù)的流轉(zhuǎn)與系統(tǒng)的當(dāng)前運(yùn)行情況,分析消息的內(nèi)容來判斷當(dāng)前系統(tǒng)的情況,以及操作人和操作的當(dāng)前數(shù)據(jù)情形,快速排查并分析問題。[19]
4.數(shù)據(jù)交換REDIS緩存關(guān)鍵技術(shù)
微信公眾號報(bào)名系統(tǒng)面向全國用戶使用,存在很高的并發(fā)量,因此為減少數(shù)據(jù)庫的吞吐量需要把大量數(shù)據(jù)進(jìn)行緩存操作。如讀取某報(bào)名項(xiàng)目信息操作,當(dāng)?shù)谝粋€(gè)學(xué)員讀取時(shí),系統(tǒng)將返回給該學(xué)員報(bào)名項(xiàng)目信息并同時(shí)放入緩存中。待其他學(xué)員訪問時(shí),直接將緩存報(bào)名項(xiàng)目數(shù)據(jù)快速傳輸其他學(xué)員。如有交換過來新增報(bào)名項(xiàng)目,系統(tǒng)發(fā)現(xiàn)后將立即更新緩存,使緩存為最新數(shù)據(jù)。[19][20]
該功能實(shí)現(xiàn)的關(guān)鍵技術(shù)是REDIS,其本身具備速度快,支持豐富的數(shù)據(jù)類型,并且支持事務(wù),同時(shí)REDIS具務(wù)數(shù)據(jù)的持久化,這樣即使服務(wù)器出現(xiàn)異常宕機(jī)重啟也會(huì)保證數(shù)據(jù)不丟失。
5.統(tǒng)一權(quán)限管理關(guān)鍵技術(shù)
微信公眾平臺(tái)的后臺(tái)有新聞通知等各個(gè)模塊,但是對于各個(gè)模塊的操作人是不同的,因?yàn)橄到y(tǒng)本身定義了相關(guān)的角色,并將角色賦予相關(guān)的用戶。當(dāng)用戶登錄時(shí),系統(tǒng)會(huì)自動(dòng)獲取當(dāng)前用戶人員的權(quán)限與角色,只有符合同樣角色與權(quán)限的用戶才可以操作相應(yīng)的角色與權(quán)限的功能,保證系統(tǒng)使用上的安全。
統(tǒng)一權(quán)限管理的關(guān)鍵技術(shù)是SHIRO,是一個(gè)強(qiáng)大且易用的JAVA安全框架,執(zhí)行身份的驗(yàn)證、授權(quán)、密碼和會(huì)話的管理,并具備了豐富的API接口。
四、結(jié)語
經(jīng)報(bào)名系統(tǒng)后臺(tái)數(shù)據(jù)查詢,基于微信公眾號平臺(tái)的培訓(xùn)報(bào)名系統(tǒng)于2019年度7月份至12月份完成報(bào)名人員共計(jì)3394人,涉及72個(gè)培訓(xùn)項(xiàng)目、143個(gè)培訓(xùn)班。報(bào)名人員涉及全國所有省份,不少來自于西部欠發(fā)達(dá)地區(qū),普遍反映高效便捷。微信公眾號的培訓(xùn)報(bào)名很大程度上解決了交通運(yùn)輸行業(yè)人員點(diǎn)多線廣和移動(dòng)業(yè)務(wù)處理的需求,徹底解決了干部培訓(xùn)前期招生宣傳繁瑣、信息收集整理困難、學(xué)員與培訓(xùn)單位需求不暢和宣傳渠道窄的問題,解決了傳統(tǒng)人工招生宣傳成本高、效率低、信息可信性差的問題。另一方面,微信公眾號報(bào)名可以有效降低招生過程的成本支出,如人工費(fèi)、材料費(fèi)、通信費(fèi)、差旅費(fèi)等支出,對于提高培訓(xùn)單位的品牌效益,提高干部培訓(xùn)行業(yè)的整體形象和信息化水平具有深遠(yuǎn)的意義和影響。
參考文獻(xiàn):
[1]中共中央辦公廳. 2010-2020年干部教育培訓(xùn)改革綱要[Z].2010.8.
[2]李明,伍良啟,羅秋蘭.基于微信公眾平臺(tái)的國培項(xiàng)目培訓(xùn)管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究[J].工業(yè)和信息化教育,2019(11):73-79.
[3]劉剛,王當(dāng),孫沛等.淺談微信公眾平臺(tái)在教育培訓(xùn)的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2018(1):142-143.
[4]鐘勁鋒.基于微信公眾平臺(tái)的招生信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].廣州:廣東工業(yè)大學(xué),2018.
[5]夏從林.基于微信公眾平臺(tái)的新生報(bào)名系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].江蘇科技信息,2017(28):51-52.
[6]劉慶.基于微信招生服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].網(wǎng)絡(luò)空間安全,2016,7(5):37-38+52.
[7]蘇雪林,夏凌云,董國卿,等.基于微信的英語等級考試報(bào)名系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2017,33(6):53-56.
[8]龔蘭蘭,凌興宏.基于微信公眾號的有書共讀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2020,33(1):100-102+105.
[9]李亞紅.基于AES算法的敏感數(shù)據(jù)庫智能加密方法研究[J].南陽理工學(xué)院學(xué)報(bào),2019,11(2):31-35.
[10]王勁東.基于高級數(shù)據(jù)加密標(biāo)準(zhǔn)AES的數(shù)據(jù)庫加密技術(shù)研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.
[11]陳作新,王玉香,劉大鵬.高校圖書館微信公眾平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)——以遼寧科技大學(xué)圖書館為例[J].情報(bào)探索,2016(1):72-79.
[12]趙斌.基于微信平臺(tái)的餐飲綜合管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2016.
[13]胡賽.微信公眾平臺(tái)在圖書館信息服務(wù)中的應(yīng)用[J].信息與電腦(理論版),2017(20):87-89.
[14]龔讓聲,李素桂,林敏.微信公眾平臺(tái)二次開發(fā)關(guān)鍵技術(shù)[J].電子技術(shù)與軟件工程,2018(3):46-47.
[15]陳甫.微信公眾號服務(wù)網(wǎng)站在 BAE3.0 上的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2014(14):88-90.
[16]劉強(qiáng).基于微信的校園信息服務(wù)系統(tǒng)設(shè)計(jì)研究[D].新鄉(xiāng):河南師范大學(xué),2014.
[17]戴晟暉.微信公眾平臺(tái)搭建、開發(fā)與實(shí)踐指南[M].北京:中國鐵道出版社,2014.
[18]龔書,鄭豐.B/S架構(gòu)的職業(yè)院校招生報(bào)名管理系統(tǒng)設(shè)計(jì)[J].吉首大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,36(3):25-28.
[19]唐燕,劉仁權(quán),白俊,等.Web Service技術(shù)在高校微信開發(fā)中的應(yīng)用[J].信息技術(shù),2015(4):44-47+50.
[20]錢志勇.微信公眾平臺(tái)應(yīng)用開發(fā)實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2013.(編輯:魯利瑞)