文/胡立朋 李天宇 呂山山 黃碩 劉鐵東(北京社會(huì)管理職業(yè)學(xué)院)
對(duì)電子閱覽室管理系統(tǒng)可行性研究的主要目的在于:判斷系統(tǒng)在用戶體驗(yàn)、管理、經(jīng)濟(jì)、研發(fā)部署等方面的實(shí)效作用。從用戶體驗(yàn)角度出發(fā),由于我院前期在企業(yè)微信平臺(tái)已經(jīng)上線了大量應(yīng)用,讓學(xué)生更好地通過(guò)企業(yè)微信平臺(tái)進(jìn)行學(xué)習(xí)生活,對(duì)于企業(yè)微信的交互邏輯使用方法,學(xué)生群體已經(jīng)掌握。以此為基礎(chǔ),基于企業(yè)微信平臺(tái)開(kāi)發(fā)電子閱覽室管理系統(tǒng),能讓使用場(chǎng)景更容易被學(xué)生所接受,且操作簡(jiǎn)單更容易上手,增加用戶體驗(yàn)度。從管理的角度出發(fā),可以更好地了解學(xué)生在使用電子閱覽室時(shí)的需求,例如常用軟件、上機(jī)習(xí)慣等,必要時(shí)可以給予針對(duì)性指導(dǎo)。使用了企業(yè)微信作為基礎(chǔ)的平臺(tái),在系統(tǒng)的管理后臺(tái)就可以收到學(xué)生的實(shí)時(shí)上機(jī)請(qǐng)求、操作記錄等,從而實(shí)現(xiàn)“一生一機(jī)”。
從經(jīng)濟(jì)的角度出發(fā),雖然已經(jīng)存在很多電子閱覽室系統(tǒng)且功能強(qiáng)大,但是部署并應(yīng)用的成本較高,需要按照機(jī)器數(shù)量購(gòu)買(mǎi)管理授權(quán),成本與時(shí)間消耗較多。通過(guò)基于企業(yè)微信平臺(tái)建立電子閱覽室管理系統(tǒng),部署成本極低,輕量級(jí)的應(yīng)用使得后續(xù)更新添加新功能更加簡(jiǎn)單,通過(guò)低代碼研發(fā)方式可以基于此平臺(tái)進(jìn)行系統(tǒng)功能的快速實(shí)現(xiàn)與私有化部署。且同時(shí)保障了數(shù)據(jù)的安全性與系統(tǒng)的易用性。
從研發(fā)部署的角度出發(fā),由于企業(yè)微信官方提供了掃碼授權(quán)的身份驗(yàn)證方式,通過(guò)二維碼的掃描登錄即可獲取用戶在企業(yè)微信中的身份。這樣可以大大簡(jiǎn)化對(duì)用戶信息的維護(hù)成本,確保了信息安全且簡(jiǎn)化了登錄步驟。根據(jù)企業(yè)微信官方提供的API文檔即可通過(guò)自建應(yīng)用的方式接入掃碼功能,使開(kāi)發(fā)難度大大降低,集成度也獲得了有效提升。由于記錄客戶端操作的行為采用http接口的方式進(jìn)行回傳,無(wú)須額外編寫(xiě)RPC框架,采用無(wú)狀態(tài)的連接模式減少服務(wù)器端的連接數(shù)量,從而使服務(wù)器可以接受更多主機(jī)的連接,提高服務(wù)效率。系統(tǒng)客戶端及服務(wù)器基于輕量化設(shè)計(jì)原則,無(wú)須實(shí)體機(jī)部署,且客戶端為綠色版,無(wú)須額外安裝,同時(shí)更新客戶端只需要覆蓋相應(yīng)的可執(zhí)行文件即可實(shí)現(xiàn),服務(wù)器端采用私有云方式進(jìn)行部署即可實(shí)現(xiàn)。綜合以上,基于企業(yè)微信平臺(tái)的電子閱覽室管理系統(tǒng)是可行的。
系統(tǒng)在用戶使用時(shí)須具備優(yōu)良的功能提示,以協(xié)同管理為目的達(dá)到管理上的數(shù)據(jù)共享,對(duì)于學(xué)生使用簡(jiǎn)單,為了方便學(xué)生學(xué)習(xí)應(yīng)具備如上下機(jī)提醒,久坐提醒功能、遠(yuǎn)程下機(jī)功能、信息推送功能等。
在系統(tǒng)中,詳細(xì)的數(shù)據(jù)應(yīng)該包含學(xué)生的基本信息,學(xué)生上機(jī)PC的系統(tǒng)信息、精準(zhǔn)的上下機(jī)時(shí)間,并在此基礎(chǔ)上輔以用戶單設(shè)備登錄檢測(cè)功能、異常斷電處理記錄功能等。以備更正由于用戶不正常操作或系統(tǒng)異常因素等導(dǎo)致的數(shù)據(jù)錯(cuò)誤。
由于閱覽室內(nèi)的計(jì)算機(jī)在實(shí)際規(guī)劃與布置過(guò)程中,需要從多角度考慮系統(tǒng)的可擴(kuò)展性能以及學(xué)生的實(shí)際上機(jī)體驗(yàn)。由于此類(lèi)軟件更新周期并不頻繁,但各個(gè)功能之間的依賴(lài)度較高。使用瀑布模型作為項(xiàng)目開(kāi)發(fā)架構(gòu)比較適宜。
為避免學(xué)生使用非常規(guī)手段惡意結(jié)束客戶端的系統(tǒng)進(jìn)程,因此要做到進(jìn)程防殺、進(jìn)程守護(hù)來(lái)確保系統(tǒng)采集到的數(shù)據(jù)安全以及PC安全。
系統(tǒng)整體架構(gòu)如圖1所示,按照用戶交互邏輯劃分為訪問(wèn)層、前端UI層、展示層、服務(wù)層、數(shù)據(jù)層與物理基礎(chǔ)設(shè)施層。訪問(wèn)層即移動(dòng)端設(shè)備或PC機(jī),通過(guò)前端UI層完成與企業(yè)微信端的認(rèn)證交互。企業(yè)微信與PC回顯處理結(jié)果作為展示層;服務(wù)層進(jìn)行系統(tǒng)的業(yè)務(wù)邏輯處理,數(shù)據(jù)層用來(lái)記錄用戶操作和PC相關(guān)數(shù)據(jù),物理基礎(chǔ)設(shè)施層為計(jì)算機(jī)硬件、網(wǎng)絡(luò)與存儲(chǔ)。
圖1 系統(tǒng)架構(gòu)設(shè)計(jì)圖
根據(jù)系統(tǒng)提供的相關(guān)服務(wù)功能,系統(tǒng)可被劃分為:
用戶模塊、PC管理模塊、信息推送模塊、系統(tǒng)維護(hù)模塊。
其中用戶模塊包括了手動(dòng)續(xù)租、久坐提醒、身份認(rèn)證、上機(jī)權(quán)限管理等功能。
PC管理模塊包括遠(yuǎn)程控制PC功能、PC使用記錄功能、查詢(xún)PC使用情況及異常PC數(shù)據(jù)統(tǒng)計(jì)。
信息推送模塊包括企業(yè)微信上機(jī)信息通知,推送用戶可以通過(guò)該通知進(jìn)行計(jì)算機(jī)遠(yuǎn)程關(guān)機(jī),還支持企業(yè)微信下機(jī)統(tǒng)計(jì)通知。
系統(tǒng)維護(hù)模塊包括快捷鍵屏蔽、PC硬件資源使用情況實(shí)時(shí)統(tǒng)計(jì)以及部署更新功能。
用戶登錄企業(yè)微信,通過(guò)企業(yè)微信身份登錄電子閱覽室管理系統(tǒng)的用戶掃碼登錄后,首先經(jīng)過(guò)內(nèi)網(wǎng)的Tomcat接口服務(wù)器返回靜態(tài)頁(yè)面,給客戶端經(jīng)過(guò)企業(yè)微信服務(wù)器認(rèn)證后,企業(yè)微信端會(huì)把用戶的token返回給內(nèi)網(wǎng)的Tomcat服務(wù)器,服務(wù)器通過(guò)token獲取用戶在本地的身份后查詢(xún)用戶的狀態(tài)是否存在已經(jīng)上機(jī)的記錄,存在則駁回上機(jī)請(qǐng)求,不存在則通過(guò)請(qǐng)求并記錄當(dāng)前上機(jī)的PC信息。
由于閱覽室內(nèi)的PC機(jī)多為Windows 10操作系統(tǒng),故使用.NET Framework框架作為核心技術(shù)進(jìn)行開(kāi)發(fā),軟件使用了C/S架構(gòu)進(jìn)行設(shè)計(jì)。基于c# WinForm程序進(jìn)行開(kāi)發(fā),在使用軟件前確保計(jì)算機(jī)已經(jīng)安裝了微軟.NetFrameWork 4.7框架以及相關(guān)的vc運(yùn)行庫(kù)。
軟件使用了實(shí)時(shí)監(jiān)測(cè)系統(tǒng)進(jìn)程的方式實(shí)現(xiàn)了防止誤殺進(jìn)程的目的,客戶機(jī)在使用本系統(tǒng)期間無(wú)法使用任務(wù)管理器,Windows系列以及Alt系列快捷鍵,允許使用Ctrl系列的快捷鍵如基本的復(fù)制、粘貼、新建、打開(kāi)等。如有快捷鍵方面的特殊需求可通過(guò)右擊軟件拖盤(pán)在菜單欄進(jìn)入軟件的維護(hù)模式臨時(shí)使用。
1.登錄功能的實(shí)現(xiàn)
通過(guò)自建應(yīng)用程序“電子閱覽室”基于企業(yè)微信的掃碼認(rèn)證接口進(jìn)行接入,對(duì)系統(tǒng)的客戶端封裝來(lái)自企業(yè)微信的html文件。進(jìn)入軟件后軟件會(huì)屏蔽掉系統(tǒng)的所有快捷鍵,屆時(shí)切換窗口、關(guān)閉窗口、最小化等快捷鍵均無(wú)法使用,以此確保軟件因?yàn)橛脩舴欠ú僮鳉⑺儡浖?。軟件每間隔120秒會(huì)自動(dòng)重新生成新的二維碼。通過(guò)客戶端打開(kāi)網(wǎng)頁(yè)二維碼。
在管理端可以通過(guò)設(shè)置自建應(yīng)用“電子閱覽室”的應(yīng)用可見(jiàn)范圍來(lái)達(dá)到精細(xì)化管理可使用人員的目的。
在用戶登錄后PC端軟件啟動(dòng)守護(hù)進(jìn)程且自動(dòng)收起到任務(wù)欄中并提示學(xué)生登錄成功顯示上機(jī)時(shí)間。
2.系統(tǒng)基本信息查看
用戶可以右擊任務(wù)欄托盤(pán)圖標(biāo)查看軟件相關(guān)的功能。由于禁用了任務(wù)管理器,為方便用戶查看電腦的硬件資源使用情況以及自己的上機(jī)情況,制作了建議的資源查看功能。
3.上機(jī)信息的多終端提示與遠(yuǎn)程下機(jī)
用戶上機(jī)后,管理系統(tǒng)會(huì)自動(dòng)向?qū)?yīng)的學(xué)生企業(yè)微信端推送上機(jī)消息,并提示學(xué)生上機(jī)時(shí)間,同時(shí)學(xué)生也可以通過(guò)此功能遠(yuǎn)程控制已上機(jī)的PC進(jìn)行下線。如果學(xué)生在1小時(shí)內(nèi)沒(méi)有操作電腦完成續(xù)租,則會(huì)自動(dòng)下線學(xué)生賬號(hào),當(dāng)學(xué)生賬號(hào)已經(jīng)下機(jī)后再次點(diǎn)擊下機(jī)時(shí),則自動(dòng)視為無(wú)效請(qǐng)求,完成電子資源的自動(dòng)釋放,達(dá)到自動(dòng)管理、節(jié)約能源的目的。
4.久坐提醒
為了保障用戶的健康,系統(tǒng)設(shè)計(jì)了久坐提醒的功能,用戶每使用電子閱覽室60分鐘則會(huì)彈出提示,讓用戶稍事休息。如果用戶在彈出提醒后的5分鐘沒(méi)有進(jìn)行確認(rèn)操作則會(huì)自動(dòng)下機(jī)。這樣同時(shí)也保障了用戶長(zhǎng)時(shí)間占用閱覽室資源造成計(jì)算機(jī)資源浪費(fèi)的問(wèn)題。如果用戶點(diǎn)擊續(xù)租按鈕則可以在使用60分鐘之后會(huì)再次彈出提醒,以此類(lèi)推。
5.客戶端單進(jìn)程檢測(cè)與用戶重復(fù)登錄檢測(cè)
為了防止用戶多次重復(fù)打開(kāi)軟件,在設(shè)計(jì)軟件的過(guò)程中加入了單例進(jìn)程監(jiān)測(cè)的功能,如果用戶多次打開(kāi)電子閱覽室,管理系統(tǒng)則會(huì)彈出提示。禁止重復(fù)打開(kāi)并且不會(huì)重復(fù)創(chuàng)建新的進(jìn)程。
由于電子閱覽室資源有限,每一位學(xué)生一次只能使用一臺(tái)電腦,因此對(duì)賬戶進(jìn)行了限制。如果用戶已經(jīng)通過(guò)企業(yè)微信掃碼登錄了一臺(tái)電腦,這時(shí)如果再使用同一賬號(hào)掃描其他電腦則會(huì)提示掃描失敗。用戶已經(jīng)登錄。
遠(yuǎn)程控制模塊實(shí)現(xiàn)。服務(wù)端通過(guò)對(duì)客戶端發(fā)送遠(yuǎn)程命令實(shí)現(xiàn)操作遠(yuǎn)程計(jì)算機(jī)的重啟或關(guān)機(jī),當(dāng)客戶機(jī)進(jìn)行上機(jī)操作時(shí)會(huì)向服務(wù)器通過(guò)http接口發(fā)送當(dāng)前用戶上機(jī)的詳細(xì)信息,每次遠(yuǎn)程客戶端啟動(dòng)時(shí)會(huì)向服務(wù)器查詢(xún)客戶機(jī)的狀態(tài),以應(yīng)對(duì)由于異常原因?qū)е碌南到y(tǒng)故障或異常關(guān)機(jī)等情況。操作流程為:PC開(kāi)機(jī)后軟件自動(dòng)啟動(dòng)上傳本機(jī)狀態(tài)并獲取遠(yuǎn)程命令,并屏蔽鍵盤(pán)中的按鍵。學(xué)生登錄企業(yè)微信后,可通過(guò)自建應(yīng)用發(fā)送的通知來(lái)操作PC遠(yuǎn)程關(guān)機(jī)或重啟。
本章會(huì)對(duì)系統(tǒng)進(jìn)行功能性測(cè)試以及穩(wěn)定性測(cè)試,通過(guò)測(cè)試用例對(duì)系統(tǒng)進(jìn)行功能性測(cè)試。從而對(duì)客戶端與服務(wù)器之間交換信息的準(zhǔn)確性和有效性進(jìn)行確認(rèn)。通過(guò)功能測(cè)試后會(huì)使用 LoadRunner 軟件進(jìn)行系統(tǒng)的壓力測(cè)試來(lái)確保系統(tǒng)的穩(wěn)定性。測(cè)試系統(tǒng)在真 實(shí)環(huán)境中能否為用戶提供快速準(zhǔn)確的應(yīng)用,通過(guò)本次測(cè)試能夠充分地了解到系統(tǒng)在運(yùn)行時(shí)的并發(fā)性能以及數(shù)據(jù)處理速度。
用例測(cè)試的主要對(duì)象是系統(tǒng)的功能性測(cè)試,系統(tǒng)對(duì)運(yùn)行的功能模塊進(jìn)行測(cè)試,從而對(duì)信息交換的準(zhǔn)確性和有效性進(jìn)行確認(rèn)。由于系統(tǒng)采用了C/S的架構(gòu),在這里主要是對(duì)于向客戶端提供服務(wù)器的服務(wù)端進(jìn)行接口測(cè)試。用戶登錄功能測(cè)試的目的是查看用戶登錄的處理邏輯與企業(yè)微信后臺(tái)是否返回用戶登錄數(shù)據(jù)。
1.用戶登錄用例
用戶在企業(yè)微信工作臺(tái)中已滿足電子閱覽室可見(jiàn)范圍的用戶進(jìn)行掃碼登錄;預(yù)期結(jié)果:企業(yè)微信端返回掃碼用戶身份給本地服務(wù)器,本地服務(wù)器記錄狀態(tài)并登錄成功。測(cè)試符合預(yù)期。
對(duì)用戶已設(shè)可見(jiàn)范圍但以其他企業(yè)身份掃碼登錄的用戶掃碼;預(yù)期結(jié)果:企業(yè)微信端返回錯(cuò)誤提示,服務(wù)器解析到提示后返回用戶登錄錯(cuò)誤。符合測(cè)試預(yù)期。
當(dāng)用戶在當(dāng)前企業(yè)中但應(yīng)用可見(jiàn)權(quán)限未下放的用戶登錄;預(yù)期結(jié)果:返回給服務(wù)器無(wú)權(quán)限,服務(wù)器返回用戶登錄失敗,聯(lián)系管理員授權(quán)。實(shí)際結(jié)果符合預(yù)期要求。
2.用戶上機(jī)檢測(cè)用例
上機(jī)檢測(cè)的主要內(nèi)容為驗(yàn)證用戶是否存在多處上機(jī)記錄,上機(jī)狀態(tài)異常檢測(cè)以及上機(jī)信息確認(rèn)等。
當(dāng)用戶掃碼只登錄一臺(tái)電腦并沒(méi)有其他上機(jī)記錄的用戶掃碼登錄;預(yù)期結(jié)果:服務(wù)器記錄,并通過(guò)企業(yè)微信推送上機(jī)通知及遠(yuǎn)程關(guān)閉快捷方式。實(shí)際結(jié)果符合預(yù)期要求。
當(dāng)用戶已經(jīng)存在上機(jī)記錄并未注銷(xiāo)已上機(jī)的PC進(jìn)行上機(jī);預(yù)期結(jié)果:服務(wù)器接口檢測(cè)到已存在未下機(jī)的記錄,通過(guò)接口返回給客戶端,用戶掃碼后客戶端提示用戶下機(jī)后再操作,同時(shí)拒絕本次上機(jī)請(qǐng)求。實(shí)際結(jié)果符合預(yù)期要求。
當(dāng)同一臺(tái)PC同時(shí)用戶點(diǎn)擊應(yīng)用再次創(chuàng)建閱覽室進(jìn)程并上機(jī)掃碼;預(yù)期結(jié)果:客戶端進(jìn)行單進(jìn)程檢測(cè),只允許運(yùn)行1個(gè)電子閱覽室進(jìn)程存在當(dāng)前用戶中。實(shí)際結(jié)果符合預(yù)期要求。
通過(guò)壓力測(cè)試可以反映出當(dāng)前系統(tǒng)運(yùn)行效果與預(yù)計(jì)的差異,同時(shí)在后期可以根據(jù)這些差異對(duì)系統(tǒng)進(jìn)行優(yōu)化。
設(shè)置測(cè)試計(jì)劃,為了測(cè)試接口服務(wù)性能設(shè)置了1000個(gè)虛擬用戶暨通過(guò)1000個(gè)線程來(lái)進(jìn)行模擬,每間隔15秒啟動(dòng)100個(gè)Vuser,持續(xù)時(shí)間5分鐘。開(kāi)始進(jìn)行壓力測(cè)試。
運(yùn)行壓力測(cè)試后查看壓力測(cè)試報(bào)告,一共執(zhí)行了36709次http響應(yīng),其中服務(wù)器最短的返回時(shí)間為0.065秒,平均響應(yīng)時(shí)間為2.031秒,數(shù)據(jù)返回率為99.35%
概要中顯示本次測(cè)試一共執(zhí)行了37298次事務(wù),事務(wù)分為三類(lèi),包括行為事務(wù)、虛擬用戶初始化事務(wù)以及結(jié)束虛擬用戶的任務(wù)。其中失敗98次,停止總數(shù)198次,執(zhí)行事務(wù)最短時(shí)間為0.065秒,平均時(shí)間為2.031秒。對(duì)于接口訪問(wèn)事務(wù)一共執(zhí)行36704次。
通過(guò)功能測(cè)試可以看出注冊(cè)與登錄功能均符合系統(tǒng)設(shè)計(jì)的預(yù)期表現(xiàn)。通過(guò)本次系統(tǒng)壓力測(cè)試可以看出服務(wù)器的響應(yīng)率為99.35%,對(duì)于1000個(gè)用戶同時(shí)進(jìn)行訪問(wèn)所耗費(fèi)的時(shí)間平均為2.031秒。這次接口壓力測(cè)試訪問(wèn)的接口是Auth鑒權(quán)接口。涉及了MySqL數(shù)據(jù)庫(kù)以及Redis數(shù)據(jù)庫(kù)的訪問(wèn)。大多數(shù)的功能類(lèi)接口只需要訪問(wèn)MySQL數(shù)據(jù)庫(kù)即可完成業(yè)務(wù)邏輯。所以使用該接口進(jìn)行測(cè)試可以反映出實(shí)際狀況。
基于企業(yè)微信的電子閱覽室管理系統(tǒng),結(jié)合了企業(yè)微信的開(kāi)放接口,經(jīng)過(guò)開(kāi)發(fā)讓計(jì)算機(jī)的管理模式變得更加簡(jiǎn)單安全,在客戶端的設(shè)計(jì)使用了混合架構(gòu)兼容了B/S架構(gòu)的便捷,同時(shí)也實(shí)現(xiàn)了C/S架構(gòu)的功能,利用企業(yè)微信和Windows相關(guān)的API進(jìn)行混合開(kāi)發(fā),實(shí)際應(yīng)用效果較好,拓展了管理方式。為學(xué)生帶來(lái)更好的上機(jī)體驗(yàn)的同時(shí),對(duì)于計(jì)算機(jī)管理與學(xué)生管理提供了便捷。