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