文/胡立朋 李天宇 呂山山 黃碩 劉鐵東(北京社會管理職業學院)
對電子閱覽室管理系統可行性研究的主要目的在于:判斷系統在用戶體驗、管理、經濟、研發部署等方面的實效作用。從用戶體驗角度出發,由于我院前期在企業微信平臺已經上線了大量應用,讓學生更好地通過企業微信平臺進行學習生活,對于企業微信的交互邏輯使用方法,學生群體已經掌握。以此為基礎,基于企業微信平臺開發電子閱覽室管理系統,能讓使用場景更容易被學生所接受,且操作簡單更容易上手,增加用戶體驗度。從管理的角度出發,可以更好地了解學生在使用電子閱覽室時的需求,例如常用軟件、上機習慣等,必要時可以給予針對性指導。使用了企業微信作為基礎的平臺,在系統的管理后臺就可以收到學生的實時上機請求、操作記錄等,從而實現“一生一機”。
從經濟的角度出發,雖然已經存在很多電子閱覽室系統且功能強大,但是部署并應用的成本較高,需要按照機器數量購買管理授權,成本與時間消耗較多。通過基于企業微信平臺建立電子閱覽室管理系統,部署成本極低,輕量級的應用使得后續更新添加新功能更加簡單,通過低代碼研發方式可以基于此平臺進行系統功能的快速實現與私有化部署。且同時保障了數據的安全性與系統的易用性。
從研發部署的角度出發,由于企業微信官方提供了掃碼授權的身份驗證方式,通過二維碼的掃描登錄即可獲取用戶在企業微信中的身份。這樣可以大大簡化對用戶信息的維護成本,確保了信息安全且簡化了登錄步驟。根據企業微信官方提供的API文檔即可通過自建應用的方式接入掃碼功能,使開發難度大大降低,集成度也獲得了有效提升。由于記錄客戶端操作的行為采用http接口的方式進行回傳,無須額外編寫RPC框架,采用無狀態的連接模式減少服務器端的連接數量,從而使服務器可以接受更多主機的連接,提高服務效率。系統客戶端及服務器基于輕量化設計原則,無須實體機部署,且客戶端為綠色版,無須額外安裝,同時更新客戶端只需要覆蓋相應的可執行文件即可實現,服務器端采用私有云方式進行部署即可實現。綜合以上,基于企業微信平臺的電子閱覽室管理系統是可行的。
系統在用戶使用時須具備優良的功能提示,以協同管理為目的達到管理上的數據共享,對于學生使用簡單,為了方便學生學習應具備如上下機提醒,久坐提醒功能、遠程下機功能、信息推送功能等。
在系統中,詳細的數據應該包含學生的基本信息,學生上機PC的系統信息、精準的上下機時間,并在此基礎上輔以用戶單設備登錄檢測功能、異常斷電處理記錄功能等。以備更正由于用戶不正常操作或系統異常因素等導致的數據錯誤。
由于閱覽室內的計算機在實際規劃與布置過程中,需要從多角度考慮系統的可擴展性能以及學生的實際上機體驗。由于此類軟件更新周期并不頻繁,但各個功能之間的依賴度較高。使用瀑布模型作為項目開發架構比較適宜。
為避免學生使用非常規手段惡意結束客戶端的系統進程,因此要做到進程防殺、進程守護來確保系統采集到的數據安全以及PC安全。
系統整體架構如圖1所示,按照用戶交互邏輯劃分為訪問層、前端UI層、展示層、服務層、數據層與物理基礎設施層。訪問層即移動端設備或PC機,通過前端UI層完成與企業微信端的認證交互。企業微信與PC回顯處理結果作為展示層;服務層進行系統的業務邏輯處理,數據層用來記錄用戶操作和PC相關數據,物理基礎設施層為計算機硬件、網絡與存儲。

圖1 系統架構設計圖
根據系統提供的相關服務功能,系統可被劃分為:
用戶模塊、PC管理模塊、信息推送模塊、系統維護模塊。
其中用戶模塊包括了手動續租、久坐提醒、身份認證、上機權限管理等功能。
PC管理模塊包括遠程控制PC功能、PC使用記錄功能、查詢PC使用情況及異常PC數據統計。
信息推送模塊包括企業微信上機信息通知,推送用戶可以通過該通知進行計算機遠程關機,還支持企業微信下機統計通知。
系統維護模塊包括快捷鍵屏蔽、PC硬件資源使用情況實時統計以及部署更新功能。
用戶登錄企業微信,通過企業微信身份登錄電子閱覽室管理系統的用戶掃碼登錄后,首先經過內網的Tomcat接口服務器返回靜態頁面,給客戶端經過企業微信服務器認證后,企業微信端會把用戶的token返回給內網的Tomcat服務器,服務器通過token獲取用戶在本地的身份后查詢用戶的狀態是否存在已經上機的記錄,存在則駁回上機請求,不存在則通過請求并記錄當前上機的PC信息。
由于閱覽室內的PC機多為Windows 10操作系統,故使用.NET Framework框架作為核心技術進行開發,軟件使用了C/S架構進行設計。基于c# WinForm程序進行開發,在使用軟件前確保計算機已經安裝了微軟.NetFrameWork 4.7框架以及相關的vc運行庫。
軟件使用了實時監測系統進程的方式實現了防止誤殺進程的目的,客戶機在使用本系統期間無法使用任務管理器,Windows系列以及Alt系列快捷鍵,允許使用Ctrl系列的快捷鍵如基本的復制、粘貼、新建、打開等。如有快捷鍵方面的特殊需求可通過右擊軟件拖盤在菜單欄進入軟件的維護模式臨時使用。
1.登錄功能的實現
通過自建應用程序“電子閱覽室”基于企業微信的掃碼認證接口進行接入,對系統的客戶端封裝來自企業微信的html文件。進入軟件后軟件會屏蔽掉系統的所有快捷鍵,屆時切換窗口、關閉窗口、最小化等快捷鍵均無法使用,以此確保軟件因為用戶非法操作殺死軟件。軟件每間隔120秒會自動重新生成新的二維碼。通過客戶端打開網頁二維碼。
在管理端可以通過設置自建應用“電子閱覽室”的應用可見范圍來達到精細化管理可使用人員的目的。
在用戶登錄后PC端軟件啟動守護進程且自動收起到任務欄中并提示學生登錄成功顯示上機時間。
2.系統基本信息查看
用戶可以右擊任務欄托盤圖標查看軟件相關的功能。由于禁用了任務管理器,為方便用戶查看電腦的硬件資源使用情況以及自己的上機情況,制作了建議的資源查看功能。
3.上機信息的多終端提示與遠程下機
用戶上機后,管理系統會自動向對應的學生企業微信端推送上機消息,并提示學生上機時間,同時學生也可以通過此功能遠程控制已上機的PC進行下線。如果學生在1小時內沒有操作電腦完成續租,則會自動下線學生賬號,當學生賬號已經下機后再次點擊下機時,則自動視為無效請求,完成電子資源的自動釋放,達到自動管理、節約能源的目的。
4.久坐提醒
為了保障用戶的健康,系統設計了久坐提醒的功能,用戶每使用電子閱覽室60分鐘則會彈出提示,讓用戶稍事休息。如果用戶在彈出提醒后的5分鐘沒有進行確認操作則會自動下機。這樣同時也保障了用戶長時間占用閱覽室資源造成計算機資源浪費的問題。如果用戶點擊續租按鈕則可以在使用60分鐘之后會再次彈出提醒,以此類推。
5.客戶端單進程檢測與用戶重復登錄檢測
為了防止用戶多次重復打開軟件,在設計軟件的過程中加入了單例進程監測的功能,如果用戶多次打開電子閱覽室,管理系統則會彈出提示。禁止重復打開并且不會重復創建新的進程。
由于電子閱覽室資源有限,每一位學生一次只能使用一臺電腦,因此對賬戶進行了限制。如果用戶已經通過企業微信掃碼登錄了一臺電腦,這時如果再使用同一賬號掃描其他電腦則會提示掃描失敗。用戶已經登錄。
遠程控制模塊實現。服務端通過對客戶端發送遠程命令實現操作遠程計算機的重啟或關機,當客戶機進行上機操作時會向服務器通過http接口發送當前用戶上機的詳細信息,每次遠程客戶端啟動時會向服務器查詢客戶機的狀態,以應對由于異常原因導致的系統故障或異常關機等情況。操作流程為:PC開機后軟件自動啟動上傳本機狀態并獲取遠程命令,并屏蔽鍵盤中的按鍵。學生登錄企業微信后,可通過自建應用發送的通知來操作PC遠程關機或重啟。
本章會對系統進行功能性測試以及穩定性測試,通過測試用例對系統進行功能性測試。從而對客戶端與服務器之間交換信息的準確性和有效性進行確認。通過功能測試后會使用 LoadRunner 軟件進行系統的壓力測試來確保系統的穩定性。測試系統在真 實環境中能否為用戶提供快速準確的應用,通過本次測試能夠充分地了解到系統在運行時的并發性能以及數據處理速度。
用例測試的主要對象是系統的功能性測試,系統對運行的功能模塊進行測試,從而對信息交換的準確性和有效性進行確認。由于系統采用了C/S的架構,在這里主要是對于向客戶端提供服務器的服務端進行接口測試。用戶登錄功能測試的目的是查看用戶登錄的處理邏輯與企業微信后臺是否返回用戶登錄數據。
1.用戶登錄用例
用戶在企業微信工作臺中已滿足電子閱覽室可見范圍的用戶進行掃碼登錄;預期結果:企業微信端返回掃碼用戶身份給本地服務器,本地服務器記錄狀態并登錄成功。測試符合預期。
對用戶已設可見范圍但以其他企業身份掃碼登錄的用戶掃碼;預期結果:企業微信端返回錯誤提示,服務器解析到提示后返回用戶登錄錯誤。符合測試預期。
當用戶在當前企業中但應用可見權限未下放的用戶登錄;預期結果:返回給服務器無權限,服務器返回用戶登錄失敗,聯系管理員授權。實際結果符合預期要求。
2.用戶上機檢測用例
上機檢測的主要內容為驗證用戶是否存在多處上機記錄,上機狀態異常檢測以及上機信息確認等。
當用戶掃碼只登錄一臺電腦并沒有其他上機記錄的用戶掃碼登錄;預期結果:服務器記錄,并通過企業微信推送上機通知及遠程關閉快捷方式。實際結果符合預期要求。
當用戶已經存在上機記錄并未注銷已上機的PC進行上機;預期結果:服務器接口檢測到已存在未下機的記錄,通過接口返回給客戶端,用戶掃碼后客戶端提示用戶下機后再操作,同時拒絕本次上機請求。實際結果符合預期要求。
當同一臺PC同時用戶點擊應用再次創建閱覽室進程并上機掃碼;預期結果:客戶端進行單進程檢測,只允許運行1個電子閱覽室進程存在當前用戶中。實際結果符合預期要求。
通過壓力測試可以反映出當前系統運行效果與預計的差異,同時在后期可以根據這些差異對系統進行優化。
設置測試計劃,為了測試接口服務性能設置了1000個虛擬用戶暨通過1000個線程來進行模擬,每間隔15秒啟動100個Vuser,持續時間5分鐘。開始進行壓力測試。
運行壓力測試后查看壓力測試報告,一共執行了36709次http響應,其中服務器最短的返回時間為0.065秒,平均響應時間為2.031秒,數據返回率為99.35%
概要中顯示本次測試一共執行了37298次事務,事務分為三類,包括行為事務、虛擬用戶初始化事務以及結束虛擬用戶的任務。其中失敗98次,停止總數198次,執行事務最短時間為0.065秒,平均時間為2.031秒。對于接口訪問事務一共執行36704次。
通過功能測試可以看出注冊與登錄功能均符合系統設計的預期表現。通過本次系統壓力測試可以看出服務器的響應率為99.35%,對于1000個用戶同時進行訪問所耗費的時間平均為2.031秒。這次接口壓力測試訪問的接口是Auth鑒權接口。涉及了MySqL數據庫以及Redis數據庫的訪問。大多數的功能類接口只需要訪問MySQL數據庫即可完成業務邏輯。所以使用該接口進行測試可以反映出實際狀況。
基于企業微信的電子閱覽室管理系統,結合了企業微信的開放接口,經過開發讓計算機的管理模式變得更加簡單安全,在客戶端的設計使用了混合架構兼容了B/S架構的便捷,同時也實現了C/S架構的功能,利用企業微信和Windows相關的API進行混合開發,實際應用效果較好,拓展了管理方式。為學生帶來更好的上機體驗的同時,對于計算機管理與學生管理提供了便捷。