?

論軟件可靠性設計研究

2020-09-10 19:55田曉嵐
看世界·學術下半月 2020年10期
關鍵詞:門戶網站程序設計集群

摘要:我參加了某國際能源集團公司門戶網站系統提升,負責系統架構設計、安全設計。原門戶網站設置了覆蓋主門戶、總部職能部門、專業公司和企事業單位的200多個網站群,近1萬多個子站。平臺建立在Sharepoint和.net framework之上,經過定制開發,實現了網站內容管理、信息報送和基本的訪問統計等功能。但是隨著網站內容和業務的不斷增加,網站平臺已經不能有效地支撐工作。需全面提升企業宣傳能力、門戶管控能力、平臺支撐能力。升級后的門戶網站增強了多終端自適應展示、全媒體內容管理、統計和搜索等基礎服務。新增多渠道發布、運維服務中心等功能。

關鍵詞:門戶網站;軟件可靠性

一、引言

系統可靠性是系統在規定的時間內及規定的環境條件下完成規定功能的能力,也就是系統無故障運行的概率。作為企業形象展示窗口和主要的宣傳途徑,門戶網站系統的可靠性非常重要。因此在軟件的設計階段我們非常重視可靠性設計,遵循預防為主、早期投入、從頭抓起的方針,盡可能把不可靠的因素消除在設計的早期。

二、軟件可靠性研究方法

(一)概念

可靠性的設計:就是在常規的軟件設計中,應用各種方法和技術使程序設計在兼顧用戶的功能和性能需求的同時全面滿足軟件的可靠性要求。

(二)涉及軟件理論

提高計算機可靠性的技術可以分為避錯和容錯技術。避錯是預防和避免系統在運行中出錯。例如軟件測試就是一種避錯技術;容錯指系統在其某一組件故障存在的情況下不失效,仍能正常工作的特性。實現容錯的主要手段就是冗余。通過冗余資源的加入,使系統的可靠性得到較大的提高。主要的冗余技術包括結構冗余、信息冗余、時間冗余和冗余附加四種。

對于軟件失效后果特別嚴重的系統,可采用容錯設計。軟件容錯的目的是使系統在實際運行時可以及時發現程序設計錯誤,采取補救措施,保證整個系統的正常運行。軟件容錯主要有恢復塊設計、N版本程序設計和防衛程序設計等方法?;謴蛪K方法是一種動態的故障屏蔽技術,采用后向恢復策略,他提供具有相同功能的主塊和后備塊,首先執行主塊,結束后進行驗證測試,如果沒有通過驗證,系統經現場恢復后下一個備用塊投入運行,重復到耗盡所有的備用塊。這種方法設計時應該保證實現主塊和各備用塊之間的獨立性,避免相關錯誤的產生,使他們之間的共性錯誤降到最低限度。N版本程序設計是一種靜態的故障屏蔽技術,采用前向恢復的策略,她的設計思想是由N個具有相同功能的程序同時執行一項計算,結果通過多數表決來選擇。這種方法設計時要保證N份程序由不同的人獨立設計、使用不同的方法和語言,以減少在表決點上相關錯誤的概率。防衛式程序設計通過在程序中包含錯誤檢查代碼和錯誤恢復代碼,使得一旦錯誤發生,程序能撤銷錯誤狀態,恢復到一個已知的正確狀態中去。

對于不需要在線容錯或不能采用冗余設計技術的軟件系統,可以采用檢錯技術,在軟件出現故障后可以及時發現報警,提醒維護人員進行處理。降低復雜度的設計是在保證軟件功能的基礎上簡化軟件結構,縮短程序代碼長度,使用合適的軟件架構和設計模式,設計高內聚、松耦合的組件,降低各個組件或模塊之間的關聯程度,從而提供軟件可靠性。

三、實驗研究

(一)集群技術

我們使用了集群的方式為了提高門戶網站系統運行時的可靠性。在應用層我們使用負載均衡集群,使各節點的負載流量可以在服務器集群中盡可能平均合理地分攤處理,這樣的系統非常適合于運行同一組應用程序的大量用戶,每個節點可以處理部分負載,并且可以在節點之間動態分配負載,以實現平衡。在數據持久化層,我們使用數據庫高可用性集群,來保證集群整體服務的高可用,某個節點發生故障的情況下,由另外的節點代替它。整個系統環境對于用戶是透明的?;A設施層,門戶系統部署兩個區域數據中心,采用1:1雙活部署模式,數據實時同步,互為災備。

(二)防衛式程序設計

內容分發階段包括內容審核、多渠道發布及推送。為了保證門戶網站的內容都是積極健康,內容在被讀者可見之前都要經過校驗審批,審批通過后才可以進行發布或推送到終端。發布到不同頻道的內容根據其重要級別審批的層次和人員也不同,審批模塊是一個獨立的構件,負責將提交的審批請求提交到后臺的數據庫系統,提供展示頁面給主管審批時參考,記錄審批結果,并將審批結果反饋給審批請求來源,在將審批結果反饋這個環節可能出現臨時故障,導致請求審批方接收不到審批結果。為此我們做了防衛式設計,審批結束后,再檢查來源模塊是否接到審批結果,如果接收成功則審批流程結束,否則將審批結果回退到審批狀態,讓審批人有機會重新審批。

(三)檢錯設計

搜索子系統建立索引時需要定時執行任務調用內容庫的服務獲取新發布信息的內容,這部分非常容易因為網絡、權限或者是內容格式等方面的原因出現異常,從而引起任務的非正常退出,導致新發布信息無法被及時搜索到,經常需要人工干預排除阻礙任務繼續執行的問題。我們的做法是針對這幾種情況,做出了檢測處理,如果獲取URL資源時超時,那我們會重試5次,而且每次重試等待的時間加倍,減輕因為網絡暫時不穩定造成的影響。如果是權限問題的話,返回的頁面響應有一種固定格式,我們判定是此種格式后會跳出當前URL的處理而去進行下一條的處理。如果頁面響應的格式不適約定好的信息內容,那么我們只記錄原始的URL,退出信息抽取的步驟,然后進行下一條的處理。添加這些特殊情況的處理后,建立索引的定時任務能比較穩定的運行。

內容生產階段主要包括新聞制作、多媒體處理、專題管理、文檔共享、互動管理等,這些功能都涉及到并發操作,可能遇到不可預知的錯誤,比如數據庫鎖、網絡故障等,我們在設計中采用高級程序語言本身的容錯能力,如try-except-finally來處理程序執行中的異常情況。

四、總結

門戶網站系統實際運行結果表明。我們遵循預防為主、主動防護的原則進行軟件的可靠性設計十分有效。硬件、軟件方面的冗余技術,帶來系統的高可用性。同時,在容易發生問題的環節進行主動檢查,針對不同情況進行后續處理,保證了軟件的持續正常運行。

參考文獻:

[1]謝少鋒,張增照,聶國健. 可靠性設計. 電子工業出版社, 2017(11)

[2]陸民燕. 軟件可靠性工程. 國防工業出版社, 2011(4)

[3]Doron A.Peled. Software Reliability Methods. 機械工業出版社, 2012(3)

[4]John D.Musa. 軟件可靠性工程. 機械工業出版社, 2003(5)

[5]蔡開元. 軟件可靠性工程基礎. 清華大學出版社發行部 , 2007(5)

作者簡介:

田曉嵐(1980-),女,碩士,工程師,單位:中國石油信息技術服務中心。

猜你喜歡
門戶網站程序設計集群
基于OBE的Java程序設計個性化教學研究
項目化教學在Python程序設計課程中的應用
C++程序設計課程教學改革研究
醫學專業“Python程序設計”課程教學改革總結與思考
勤快又呆萌的集群機器人
集群品牌是集群整體的品牌還是集群產品的品牌?
YouTube
中國省級教育門戶網站排行榜等
中國省級教育門戶網站排行榜等
中國省級教育門戶網站排行榜等
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合