陶昀翔,陳萬順 ,王 鈞,吳 雷
(蕪湖職業技術學院,安徽 蕪湖241003)
近年來,高校信息服務建設發展迅速,多數高校都基于信息管理系統模式進行了一至兩輪的數字校園建設[1]。隨著業務的發展,應用需要不斷迭代更新,傳統的單體應用暴露出諸多問題:單體應用復雜度高,擴展能力受限,代碼冗余,接口調用復雜,應用邊界模糊,功能歸屬不明確,數據庫不易重構和優化等。隨著項目的擴展,從開發、測試到部署、后期運維等環節愈發困難。在頂層設計上,可以微服務架構為指導[2-3],確定高校信息化服務架構的實施支撐框架,現以某高校第二課堂系統為例對微服務系統應用進行構建。
第二課堂系統包括項目管理、教學管理、成績轉換等功能??赏ㄟ^對學生參與第二課堂情況的記錄、評價、認證來激發學生自主學習的動力,最終形成科學反映學生全面發展情況的第二課堂成績單,為建設第二課堂育人體系提供服務。
1.2.1 穩定性原則
第二課堂系統使用頻繁,對服務器穩定性要求較高,尤其是大量大型報告講座同時簽到時,系統要能滿足日常工作實際需求,做到合理分配任務,反應高效靈敏。
1.2.2 兼容性原則
運行環境要兼容學校服務器需求,兼容不同的操作系統(客戶端、瀏覽器),兼容不同品牌手機移動終端,支持不同移動平臺進行集成,如微信、小程序等。還要兼容學校門戶信息,實現統一ID(學號或工號)登錄。用戶相關信息要定期同步更新,減少維護成本。
1.2.3 可擴展性原則
系統在業務流程、審核流程、架構、技術選型等方面都有著較好的擴展性。系統可隨時按照不同的關鍵詞組合產生相應的數據統計報表,形成不同維度的第二課堂成績單大數據展示圖。學校管理層面能夠提供有效的決策輔助,學生層面能夠體現出成長畫像、學習趨勢等,教師層面能夠對工作量進行有效量化。
針對上述原則需求,從微服務架構、消息隊列、工作流引擎、組件化交付、接口共享化及數據報表等維度對系統進行設計,如圖1所示。

圖1 業務系統框架Fig.1 Business system frame
2.1 微服務技術框架
不同于單體服務架構,微服務架構的核心是將業務拆分成耦合度較高的微型服務[4-5],不同服務可以用不同語言進行開發,服務之間通過REST接口進行協作,每個服務可以有獨立的數據存儲,如圖2所示。

圖2 微服務應用模式Fig.2 Microservice application mode
第二課堂系統要求遵循平臺軟件的設計思路進行設計,具有開放性和可擴展性,方便與其他應用系統的集成和數據傳遞。系統基于企業級應用開發平臺J2EE,采用B/S三層架構、SOA等技術和微服務架構模式,基于MySQL數據庫管理系統進行設計開發,遵循Web Services和標準化編碼等技術標準,支持二次應用擴展,滿足了基礎數據與業務流程可定制的系統靈活性、可擴展性需求,能實現與各應用系統的統一身份認證和單點登錄應用。
系統引入了高效的消息推送機制,為大批量消息推送的情景提供了保障,比如學生關注了項目庫,在項目庫進行項目發布后,會提醒已經關注的學生群體,能夠有效保障消息推送的時效性且保證消息內容不丟失。該功能基于ActiveMQ,它是能力強勁的開源消息隊列中間件,能夠使用消息隊列,采用異步的方式將信息寫入數據庫,消除高并發的流量高峰,加快平臺的響應速度。
考慮到本地系統建設中含有流程審批的業務,整個技術層面將集成工作流引擎。可通過界面化元素拖拽的方式來確定業務流程及環節審批角色,若后續流程環節及審批角色發生改變,無需再次進行代碼開發,通過界面配置即可。
系統基于現有需求完成建設后,將進入運行迭代階段。該階段將不斷收集用戶改進建議和新增需求,以適應系統持續開發、快速交付的模式。系統引入了SOA技術,即基于服務的框架結構(Service-Oriented Architecture)。可利用SOA技術將各功能模塊封裝成一個個服務,對外提供統一訪問接口。此技術構建有助于應用擴展與重組,開發效率大大提升,可以很容易實現與異構外部系統的無縫應用集成。
系統和學?,F有的統一身份認證平臺集成,將用戶、組織機構數據通過同步的方式接入系統。系統通過Web Service/RestFul接口實現對平臺內部各系統之間及與外部聯動系統之間的協同應用和數據交換,以實現數據的可兼容性。平臺、系統、數據庫具有無關性等特點,接口實現不用關心各系統內部實現細節,大大降低了系統對接的難度,確保了系統整體架構的松耦合性和穩定性。
在數據分析功能模塊中,系統將通過圖形報表中間件來進行報表設計。圖形報表中間件提供了多種多樣的圖表組件,如柱狀圖、線形圖、熱點圖等,可用于任何網頁的腳本語言,類似于HTML、ASP.Net、JSP、PHP、ColdFusion等。可使用JSON作為數據接口,充分利用線體美麗的HTML5創建具有緊湊性、互動性的視覺逮捕圖表。圖形報表中間件將圖表與Ajax應用程序或JavaScript模塊結合起來,實現了異步刷新。同時,展示的圖形報表還提供了數據鉆取功能。
系統性能會直接影響用戶體驗。衡量系統性能的主要指標有吞吐量、并發量、訪問時間等。第二課堂系統要求支持并發10 000以上用戶的同時訪問,在網絡穩定的情況下,訪問響應時間在3 s以內,操作新增、修改、瀏覽一條記錄的時間也要控制在3 s以內。在面對大數據量統計、查詢等復雜操作時,響應時間不大于15 s。
系統面向的群體是學生和教職工,存在著高并發的情況,需使用源地址哈希法、輪詢法、隨機法、加權輪詢法、加權隨機法、最小連接數法等負載均衡技術進行處理,把任務分攤到多個操作單元上執行。
在數據層和應用層之間增加數據緩存層,利用NoSQL中間件,如Redis、MongoDB存儲非結構化數據和項目類別、項目標簽、項目形式等,提供全局數據服務,大大減少數據庫往返次數,充分利用大內存。共享內存更容易實現數據并發訪問。
對數據庫的默認配置進行調整優化,合理采用索引、存儲過程、數據多級緩存技術,盡量減少關聯查詢、模糊查詢。
系統應具備良好的安全保障機制,應從系統網絡環境、數據庫安全、操作系統安全策略、系統自身安全技術等方面整體保障系統的安全穩定運行。要對系統數據采取加密措施,保障重要數據的安全性。
3.5.1 認證授權
保證用戶的合法性和用戶使用信息資源的權力,避免內部敏感信息泄漏和服務所提供的信息資源被非法訪問。
3.5.2 信息保密
對于需要保密的信息采用密碼技術進行加解密處理,防止信息的非授權泄漏,確保涉密信息在產生、存儲、傳遞和處理過程中的保密性。
3.5.3 數據完整性
建立數據完整性檢驗機制,保證收發雙方數據的一致性,防止信息被非授權修改。
3.5.4 安全審計及備份
記錄應用日志,對事件進行分析并提供預警信息??衫脭祿斓膫浞莨δ軐⑵脚_和系統的數據備份到指定的服務器或存儲系統上。
系統部署以安全、穩定、高效為原則,采用集群方式部署應用系統,各服務器資源可實現切換,減少單點故障數量,實現集群化資源的高可用性,如圖3所示。

圖3 系統部署示意圖Fig.3 System deployment schematic diagram
因平臺用戶及訪問量的基數過大,一臺服務器租用已經不能滿足應用需求,需要多臺服務器集群,使用負載均衡,配備一臺或多臺分布式文件系統,將系統中的文件進行轉儲,保證大文件傳輸過程中的穩定性。部署時應配備一臺或多臺分布式NoSQL服務器,存儲平臺運行中產生的非結構化數據,在數據訪問量大的時候減少持久化數據層的數據讀取寫入壓力,保證平臺性能。要部署消息中間件,解決系統中應用解耦、異步消息、流量削鋒等問題,實現高性能、高可用、可伸縮和最終一致性架構。要使用多臺服務器配置讀寫分離策略,減少數據庫壓力,提高性能??膳c學校數據中心集成,使用ETL工具同步數據并對數據進行清洗,去除臟數據。