效能是指系統提供的服務要滿足一定的效能衡量標準,這些標準可能包括系統反應時間以及處理交易量的能力等;
可公升級性是指當系統負荷加大時,能夠確保所需的服務質量,而不需要更改整個系統的架構;
可靠性是指確保各應用及其相關的所有交易的完整性和一致性的能力;
可用性是指乙個系統應確保一項服務或者資源永遠都可以被訪問到;
可擴充套件性是指在不影響現有系統功能的基礎上,為系統填加新的功能或修改現有功能的能力;
可維護性是指在不影響系統其他部分的情況下修正現有功能中問題或缺陷,並對整個系統進行維護的能力;
可管理性是指管理系統以確保系統的可公升級性、可靠性、可用性、效能和安全性的能力;
安全性是指確保系統安全不會被危及的能力。
1) 效能
我們通常可以根據每個使用者訪問的系統響應時間來衡量系統的整體效能;另外,我們也可以通過系統能夠處理的交易量(每秒)來衡量系統的效能。對於架構設計師來說,無論採取哪種衡量系統效能的方法來構建系統架構,這些對於效能的考慮對系統設計開發人員來說都應該是透明的,也就是說對於系統整體架構效能的考慮應該是架構設計師的工作,而不是系統設計開發人員應該關注的事情。在較傳統的基於ejb或者xml-rpc的分布式計算模型中,它們的服務提供都是通過函式呼叫的方式進行的,乙個功能的完成往往需要通過客戶端和伺服器來回很多次的遠端函式呼叫才能完成。在intranet的環境下,這些呼叫給系統的響應速度和穩定性帶來的影響都可以忽略不計,但如果我們在基於 soa 的架構中使用了很多web service來作為服務提供點的話,我們就需要考慮效能的影響,尤其是在internet環境下,這些往往是決定整個系統是否能正常工作的乙個關鍵決定因素。因此在基於 soa 的系統中,推薦採用大資料量低頻率訪問模式,也就是以大資料量的方式一次性進行資訊交換。這樣做可以在一定程度上提高系統的整體效能。
2) 可公升級性
可公升級性是指當系統負荷加大時,仍能夠確保所需的服務質量,而不需要更改整個系統的架構。當基於 soa 的系統中負荷增大時,如果系統的響應時間仍能夠在可接受的限度內,那麼我們就可以認為這個系統是具有可公升級性的。要想理解可公升級性,我們必須首先了解系統容量或系統的承受能力,也就是乙個系統在保證正常執行質量的同時,所能夠處理的最大程序數量或所能支援的最大使用者數量。如果系統運轉時已經不能在可接受時間範圍內反應,那麼這個系統已經到達了它的最大可公升級狀態。要想公升級已達到最大負載能力的系統,你必須增加新的硬體。新新增的硬體可以以垂直或水平的方式加入。垂直公升級包括為現在的機器增加處理器、記憶體或硬碟。水平公升級包括在環境中添置新的機器,從而增加系統的整體處理能力。作為乙個系統架構設計師所設計出來的架構必須能夠處理對硬體的垂直或者水平公升級。基於 soa 的系統架構可以很好地保證整體系統的可公升級性,這主要是因為系統中的功能模組已經被抽象成不同的服務,所有的硬體以及底層平台的資訊都被遮蔽在服務之下,因此不管是對已有系統的水平公升級還是垂直公升級,都不會影響到系統整體的架構。
3) 可靠性
可靠性是指確保各應用及其相關的所有交易的完整性和一致性的能力。當系統負荷增加時,你的系統必須能夠持續處理需求訪問,並確保系統能夠象負荷未增加以前一樣正確地處理各個程序。可靠性可能會在一定程度上限制系統的可公升級性。如果系統負荷增加時,不能維持它的可靠性,那麼實際上這個系統也並不具備可公升級性。因此,乙個真正可公升級的系統必須是可靠的系統。在基於 soa 來構建系統架構的時候,可靠性也是必須要著重考慮的問題。要在基於 soa 架構的系統中保證一定的系統可靠性,就必須要首先保證分布在系統中的不同服務的可靠性。而不同服務的可靠性一般可以由其部署的應用伺服器或web伺服器來保證。只有確保每乙個 soa 系統中的服務都具有較高的可靠性,我們才能保證系統整體的可靠性能夠得以保障。
4) 可用性
可用性是指乙個系統應確保一項服務或者資源應該總是可被訪問到的。可靠性可以增加系統的整體可用性,但即使系統部件出錯,有時卻並不一定會影響系統的可用性。通過在環境中設定冗餘元件和錯誤恢復機制,雖然乙個單獨的元件的錯誤會對系統的可靠性產生不良的影響,但由於系統冗餘的存在,使得整個系統服務仍然可用。在基於 soa 來構建系統架構的時候,對於關鍵性的服務需要更多地考慮其可用性需求,這可以由兩個層次的技術實現來支援,第一種是利用不同服務的具體內部實現內部所基於的框架的容錯或者冗餘機制來實現對服務可用性的支援;第二種是通過uddi等動態查詢匹配方式來支援系統整體的高可用性。在 soa 架構設計師構建企業系統架構的時候,應該綜合考慮這兩個方面的內容,盡量保證所構建的 soa 系統架構中的關鍵性業務能具有較高的可用性。
5) 可擴充套件性
可擴充套件性是指在不影響現有系統功能的基礎上,為系統新增新的功能或修改現有功能的能力。當系統剛配置好的時候,你很難衡量它的可擴充套件性,直到第一次你必須去擴充套件系統已有功能的時候,你才能真正去衡量和檢測整個系統的可擴充套件性。任何乙個架構設計師在構建系統架構時,為了確保架構設計的可擴充套件性,都應該考慮下面幾個要素:低耦合,介面(inte***ces)以及封裝。當架構設計師基於 soa 來構建企業系統架構時,就已經隱含地解決了這幾個可擴充套件性方面的要素。這是因為 soa 架構中的不同服務之間本身就保持了一種無依賴的低耦合關係;服務本身是通過統一的介面定義(可以是wsdl)語言來描述具體的服務內容,並且很好地封裝了底層的具體實現。在這裡我們也可以從乙個方面看到基於 soa 來構架企業系統能為我們帶來的好處。
6) 可維護性
可維護性是指在不影響系統其他部分的情況下修改現有系統功能中問題或缺陷的能力。同系統的可擴充套件性相同,當系統剛被部署時,你很難判斷乙個系統是否已經具備了很好的可維護性。當建立和設計系統架構時,要想提高系統的可維護性,你必須考慮下面幾個要素:低耦合、模組性以及系統文件記錄。在企業系統可擴充套件性中我們已經提到了 soa 架構能為系統中暴露出來的各個子功能模組也就是服務帶來低耦合性和很好的模組性。關於系統文件紀錄,除了底層子系統的相關文件外,基於 soa 的系統還會引用到許多系統外部的由第三方提供的服務,因此如果人力資源准許的話,應該增加專職的文件管理員來專門負責有關整個企業系統所涉及的所有外部服務相關文件的收集、歸類和整理,這些相關的文件可能涉及到第三方服務的介面(可以是wsdl)、服務的質量和級別、具體效能測試結果等各種相關文件。基於這些文件,就可以為 soa 架構設計師構建企業 soa 架構提供很好的文件參考和支援。
7) 可管理性
8) 安全性
安全性是指確保系統安全不會被危及的能力。目前,安全性應該說是最困難的系統質量控制點。這是因為安全性不僅要求確保系統的保密和完整性,而且還要防止影響可用性的服務拒絕(denial-of-service)攻擊。這就要求當 soa 架構設計師在構建乙個架構時,應該把整體系統架構盡可能地分割成各個子功能模組,在將一些子功能模組暴露為外部使用者可見的服務的時候,要圍繞各個子模組構建各自的安全區,這樣更便於保證整體系統架構的安全。如果乙個子模組受到了安全攻擊,也可以保證其他模組相對安全。如果企業 soa 架構中的一些服務是由web service實現的,在考慮這些服務安全性的時候也要同時考慮效率的問題,因為ws-security會為web service帶來一定的執行效率損耗。
程式設計師應該具備的能力
基本技能 技能描述 閱讀 這個技能需要程式設計師能夠具備讀懂已經存在的 的能力,這樣的能力可以讓程式設計師分析程式的行為,了解程式,這樣才能和開發團隊一起工作,繼承維護或是改進現有的程式。編寫程式 編寫程式並不包括程式設計。不要以為程式設計是一件很簡單的事情,很多程式設計師都認為程式設計只需要懂得程...
新手應該具備的基本素質
1.11 新手應該具備的基本素質 新手走過的路,我們都走過了,別人走過的路,我們也看過了。回首往事,我們有過很多經驗和教訓,但是,幾乎沒有人會刻意告知我們應該怎麼成長,更沒有人專門對我們進行素質上的要求和引導。直到今天我們才知道我們的成長是自發的。它完全取決於我們的工作環境和內容,取決於我們遇到的人...
測試人員應該具備的幾種思維
1 逆向思維方式 逆向思維在測試中用的很多,比如將根據結果逆推條件,從而得出輸入條件的等價類劃分 其實逆向思維在除錯當中用到的也比較多,當發現缺陷時,進一步定位問題的所在,往往就是逆流而上,進行分析 逆向思維是相對的,就是按照與常規思路相反的方向進行思考,測試人員往往能夠運用它發現開發人員思維的漏洞...