高層
摘 要 本文以“共享服務平臺綜合管理系統”的項目為例,從非功能性需求目標(性能需求、安全需求、操作性需求、可用性需求、文化需求等)視角,將有關問題和解決方案進行了系統的總結,提出了如何優化應用設計來滿足非功能性需求的建議,為進一步提升系統架構水平提供了參考。
關鍵詞 非功能性;系統;架構
2018年3月,公司承接了“共享服務平臺綜合管理系統”的項目開發。為了大力推行共享服務,實現大型企業的改革,公司決定將重復性、事務性、標準化的工作進行統一集成管控,并進一步精簡人力資源,系統上線后將實現總部以及所有分公司的財務、人力資源和IT的資源集成共享。接到系統研發任務后,本部門高度重視,第一時間調派人手,組織精干力量進行系統研發。本人有幸在該項目中擔任系統架構師一職,全程參與了該系統的需求分析、架構設計、系統開發及上線工作。
共享服務平臺綜合管理系統為集團公司以及下設20多家分公司提供費用報銷、關聯交易平臺、人事信息、薪酬計發以及IT應用監控平臺、ERP系統等業務的集成共享,并在共享服務平臺上統一管控。系統的實現采用了C++和Java語言的混合編程,服務器操作系統采用了Windows 2012 Advanced Server,后臺數據庫采用了SQL Server 2008。系統充分考慮到了公司下設分公司的情況,將不同的功能模塊進行了界面集成。
由于應用系統自身的特點,不僅要實現其功能性需求,更要注重如何滿足非功能性需求,使得系統在上線時真正好用、易用。系統的非功能性需求主要有:性能需求、安全需求、操作性需求、可用性需求和文化需求等。下面將對以上需求進行詳細介紹。
(1)性能需求:性能需求的核心是性能問題,它是指軟件系統及時提供相應服務的能力,包括速度、吞吐量和持續高速性的要求。
(2)安全性需求:安全性是指系統向合法用戶提供服務,以及拒絕非授權用戶使用的能力。具體包括訪問控制需求、加密和驗證需求、病毒控制需求。
(3)操作性需求:操作性需求是指系統為了完成任務所需的操作環境及其可能的改變。它通常指操作系統、系統軟件以及需要交互的系統中所使用的信息系統,有時也包括比較重要的物理環境因素。
(4)可用性需求:可用性需求是指系統在遇到故障時,能夠迅速恢復的一種能力。通常在系統的開發過程中,將這種需求納入考慮范圍。
(5)文化需求:是指針對使用系統不同國家所特有的需求,包括了多語種需求、用戶定制需求以及法律需求等[1]。
結合本項目的實際情況,我重點關注并考慮了性能需求、安全需求、操作性需求、可用性需求和文化需求。具體的設計如下:
(1)性能需求:由于共享服務平臺綜合管理系統集成了財務、人力資源、IT等三大主流業務的功能模塊,對于發出請求并響應的時間具有很嚴格的要求。考慮到業務的實時性,通常計劃在5分鐘之內接到提報的要求并進行快速響應。具體可以采取的做法有:增加計算資源、減少計算開銷、引入并發機制等。
(2)安全需求:由于共享服務平臺的業務涉及財務報表、人事信息、薪酬計發等敏感數據,信息安全問題得到了有關領導的高度重視。具體的措施為:采用敏感數據加密。對于業務系統中的敏感數據,如用戶名稱、密碼、賬戶信息、金額等數據在傳輸、存儲過程中必須進行加密。可以采用非對稱加密和信息摘要技術作為身份驗證和數據驗證的方式。生成摘要防止篡改,加密防止抵賴。
(3)操作性需求:考慮到系統的可移植性,項目整體采用了JVM作為底層支持的Java語言開發。架構上采用了分層架構。為了減少連接資源和計算成本,所以沒有采用關系型數據庫進行數據存儲。
(4)可用性需求:在系統接入分流部分使用雙機熱備技術,在兩個捕獲系統之間設置心跳,當一臺捕獲系統出現問題,另一臺捕獲設備接管。在策略層,采用了集群部署技術,使用一臺服務器做資源調度,四臺服務器作策略處理,當一臺策略服務器設備出現問題,也不會影響整個策略下發系統。
(5)文化需求:由于公司今后要開拓海外市場,考慮在海外分公司推行該系統,因此需要開發該系統的英文版和法語版。具體采用的方法是可以采用瘦客戶端的C/S架構進行設計。考慮到海外分公司在政治、法律以及文化背景的差異,系統還需要支持個性化配置要求。具體可以采取公司內部研發的內存數據庫構件進行存儲和備份[2]。
在系統的非功能性需求完成之后,我們根據項目需要,成立了項目評估小組。其主要成員包括:評估小組負責人、項目決策者、架構設計師、用戶、開發人員、測試人員、系統部署人員等項目干系人。結合項目場景的有關情況,我們重點分析了項目開發過程中的風險點、敏感點和權衡點,并最終以文檔的形式呈現。
最后,除了采取上述措施之外,我們還通過加強測試,增加檢查機制來保證系統的可靠性。通過項目組成員的不懈努力,項目如期上線。該系統投入運營半年以來,運行穩定,達到了用戶的期望值,能夠快速的處理提報業務,真正做到了信息的集成共享。項目成功很大一部分因素是得益于項目中非功能性需求的設計,但也存在不足,在系統試運行階段,由于SQL Server數據庫性能問題,導致訪問過慢。通過數據庫性能參數調優,并將單機的SQL Server數據庫改造為集群方式解決了這個問題。
結束語
通過這個項目,讓我更進一步了解到非功能性需求對企業應用架構設計的重要性,也為后續開展相關工作積累了經驗。在今后的架構設計工作中,我將砥礪前行,努力為祖國信息化建設貢獻出自己的一份綿薄之力。
參考文獻
[1] 梅宏,申峻嶸.軟件體系結構研究進展[J].軟件學報,2006,(6):1257-1275.
[2] 楊程,陳未如.軟件架構可靠性評估平臺組件庫的設計[J].電腦知識與技術,2009,(5):107-109.