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