軟件系統的多維性能模型

技術的多變性需要一個系統性能的多目標模型。軟件系統面臨着如此多樣化的需求,如果有一種虛擬進化的話,或許只有最適合的應用程序才能存活下來。

如果把性能定義爲 “系統與其環境交互以獲得價值和避免損失的程度”,軟件系統要包括四個要素: 邊界,支持內部結構,輸出效應器和輸入受體。就像人類一樣,人都有一個皮膚界限,內部的大腦和器官,代理肌肉的行動輸出和感覺輸入。計算機有物理外殼、主板結構、屏幕和鍵盤 / 鼠標 “接收器”。軟件有內存邊界、內部程序結構和專門的輸入 / 輸出模塊。

每個元素在系統性能中扮演着各自的角色,必須與其環境成功地交互。如果成功的交互通常會最大化系統獲得收益的機會,並且最小化系統受損風險的話,那麼將四個一般要素與兩個一般的環境交互類型相結合,可以給出互聯網應用系統性能網絡 (WOSP) 的八個一般性能目標:

WOSP 八個目標可以用一個網絡來說明 (參見圖 1) ,其中一個點到中心的距離就是該性能維度的程度。這個表現爲一個區域,一個形狀和目標的張力。Web 區域代表了系統的整體性能,因此更大的區域具有更大的適應度潛力。Web 形狀是系統的性能描述,它隨環境而變化; 例如,威脅環境可能需要更多的安全性。連接線是目標的相互作用,或者說是張力。可以把它們想象成不同張力的橡皮筋,連接着性能的維度,因此增加一個可能會突然拉回另一個。對於我們來說,WOSP 的目標沒有一個是新的; 新的是他們的概念整合到一個共同的框架中。

一個系統的邊界決定了什麼可以進入和離開,可以被設計用來抵禦外部威脅 (安全) 和接受外部數據的機會(可擴展性)。

可擴展性是一個系統利用外部元素的能力 (例如一輛卡車可能會添加拖車,軟件可以有擴展和插件)。人工工具的使用也以同樣的方式擴展了性能,並且程序可以使用第三方插件,這相當於一隻開放的人工手。然而,一輛汽車要通過拖車來延伸自己,它的拖鏈必須與拖車的鏈接相匹配,所以擴展性要求一個已知的鏈接形式。開放標準創造了這種好處,並代表了開放源碼的價值。可擴展性是影響信息系統性能的關鍵因素。

安全性是系統防止未經授權進入、濫用或接管的能力 (就像汽車擁有鎖和鑰匙,應用程序擁有登錄和密碼)。安全硬件是密封且防篡改的,進入 - 拒絕原則對於硬件和軟件是相同的。病毒和黑客的威脅使邊界防火牆和登錄檢查對系統生存至關重要。安全缺口是系統故障,因此是性能故障。安全性是信息系統性能的關鍵部分。

系統的內部結構可以設計爲管理內部變化 (可靠性) 或外部變化 (靈活性)。靈活性是一種系統在新環境中工作的能力,就像履帶使車輛在複雜地形中工作那樣) ; 同樣,移動設備可以在複雜的網絡區域接收信號。CSMA/CD 協議的性能優於更可靠但不靈活的輪詢協議。靈活的關係數據庫取代了更有效但不靈活的數據模型。大多數現代軟件都有一個參數設置模塊(例如 Windows 控制面板) 來爲硬件、軟件或用戶環境進行配置。靈活性是信息系統性能的另一個關鍵方面。

可靠性意味着一個系統在內部發生變化 (如部分故障) 的情況下仍然能夠正常運行,能夠正常運行是一件很棒的事情。可靠的系統幾乎總是可用的,能在壓力或負載下生存,如果受到影響,系統會優雅地退化降級,而不是災難性地崩潰。在信息系統中,平均故障間隔時間測量的是隨着時間的推移系統無故障運行的概率。同樣重要的是快速恢復,無論是通過代碼修復還是狀態回滾。可靠性是至關重要的信息系統性能。

系統效應器改變外部環境,可以設計爲最大效應 (功能性) 或最小化產生這種效應的成本(可用性)。功能性能是一個系統直接作用於其環境以產生預期變化的能力。關注功能性需求可以生成功能性很強的軟件,人們爲了新的能力而升級,因此功能性在信息系統性能中非常重要,甚至是系統存在的根本原因。

可用性是一個系統最小化行動的相對資源成本的能力。在同樣的工作中使用更少的代碼,精簡指令集的性能優於複雜指令集。輕量級軟件在後臺運行良好,因爲它使用很少的 CPU / 內存。在 20 世紀 80 年代,圖形用戶界面取代了命令行界面,因爲它們減少了用戶的認知成本。在當今的網絡世界,如果用戶不滿意的切換成本很低,所以可用性同樣是信息系統性能的關鍵部分。

連通性爲系統性能增加了一個社會維度,它既可以支持信息交換 (連接性) ,也可以限制信息交換 (隱私性)。連通性是一個系統與其他系統通信的能力。我們有時將行爲與效應器聯繫起來,即行爲發生在感覺引導的反饋迴路中。同樣,我們把信息和受體聯繫起來,因爲受體處理創造了意義,即使是交流的行爲也需要效應器。信息的交流最終結果來自受體以及隨後的加工 ,就像效應器創造行動的最終結果一樣。對於現代軟件來說,連通性對於 信息系統的性能而言幾乎是必需的。

隱私是一個系統控制自身信息發佈的能力。保密性是工程師從軟件的角度而不是從用戶的角度給予隱私的名稱。軍方重視隱形飛機的原因和動物僞裝自己的原因是一樣的。在技術環境中,隱私是信息系統性能的關鍵部分。

WOSP 八個目標在概念上是模塊化的; 定義並不重疊。理論上,任何維度上的任何性能水平都可以與任何其他維度相結合。在設計實踐中,維度相互作用,系統必須滿足所有需求。然而,概念模塊性意味着它們的定義可能產生的任何兩個這樣的需求之間不一定存在的關係。

WOSP 的實際意義

WOSP 模型可用於系統設計或系統評估。雖然性能可以被認爲是絕對的,但 WOSP 模型將性能視爲相對於環境的性能,因此性能沒有 “完美” 的形式。在 WOSP 的八個目標中,四個通常是成功的元素——創建功能性、靈活性、可擴展性、連接性,四個是避免失敗的元素——安全性、可靠性、隱私性和可用性。這是有用的,因爲環境可以變化:

如果性能有一個形狀和一個區域,那麼不同的形狀可能更適合不同的環境。WOSP 模型通過爲性能維度分配權重,幫助開發人員實現適合其環境的性能形狀。

在傳統的信息系統開發中,功能是首要目標,非功能性需求是次要需求。然而,許多軟件系統最終會出現更多的錯誤或接口代碼,經常由於意想不到的非功能或質量原因而失敗。如果非功能性需求可能導致系統故障,需要將其定義爲性能並對其進行修改。在 WOSP 模型中,功能與其他性能目標的區別僅僅在於表徵更加明顯。糟糕的可用性會使功能失效,就像糟糕的功能會使可用性變得無關緊要一樣。

現代通信技術說明了性能的許多方面。手機可以讓人們在任何時間任何地點通話,但必須是功能性的 (語音質量) ,可用的 (按鍵或虛擬鍵盤不能太小) ,可靠的 (如果丟失) ,安全的 (如果被盜) ,可擴展的 (耳機,手機套) ,連接的 (可以收發) 和私人的 (防止窺探)。每個標準可能有不同的權重,但其中任何一個都可能是關鍵的。手機軟件必須靈活地使用不同的設備 / 網絡,同時還要能夠對數據輸入錯誤和電源故障有彈性。它必須是可擴展的,但安全性避免病毒攻擊,在保持連通性的同時保護用戶的隱私。一個信息系統如果具有如下特徵,失敗將不可避免。

WOSP 模型對於新技術設計者來說是一個有用的檢查表; 成功需要許多原因,失敗可能只需要一個。

WOSP 模型表明,如果在一個維度的性能提升上也會顯著降低其他維度的性能,那麼真正的性能提升可能不會成功。在圖 1 中,只有總面積的增加纔是進步,以犧牲另一個維度爲代價增加一個維度可能不會產生這樣的價值,突破可能需要在一個以上的 WOSP 維度上取得進展。

對於新的系統,WOSP 開始 “鬆弛” 並且包含很少的張力,因此增加性能目標通常也會增加整體性能。然而,隨着系統的發展和 WOSP 面積的增加,目標的緊張度也隨之增加。由於專業目標將系統拉向不同的設計方向,一個目標可以跨越另一個目標。同樣地,特性蠕變可能導致難以使用並維護複雜臃腫的軟件,並且一維的 “進展” 可能會反咬一口。性能目標之間的相互作用解釋了一個奇怪的悖論: 成功產品的後續版本,經過大量的努力和增加許多額外的特性之後,可能會比原始版本執行得更差。

開發人員可以通過同時 “拉動” 兩個或多個側面來擴展系統; 例如,登錄子系統 (安全性) 可能會按照名稱歡迎用戶並回憶他們的偏好 (增加了可用性)。靈活性不需要否定可靠性,功能性不會降低可用性,互聯網連接也不一定濫用隱私權。在 WOSP 模型中,明顯的對立面(如安全性和開放性) 可以通過創新來調和。

調和目標衝突發生在各維度的交叉點。傳統項目按照專業 (如接口和數據庫設計) 定義系統需求,因爲它們需要不同的技能。爲外接程序設計需要標準知識,而安全設計可能需要病毒知識。WOSP 模式歡迎這樣的目標專業化。根據項目的不同,多達八個項目的專業團隊可以使用單獨的規範、代碼和測試來設計不同的系統層。然而,這意味着一個設計要求超過那些規定,即他們的創新整合。

伴隨着專業化,效率提高了,但集成度可能會降低,隨之而來的是系統性能。敏捷和 XP 的項目方法通過鼓勵每個人都參與到系統設計的各個方面來解決這個問題。它們的流行和成功表明集成在系統設計中和專業化一樣重要。一體化可以通過兩種主要方式與專業化相結合:

可以預期的是,複雜的新項目比簡單的舊項目需要更多的整合,因此開發複雜的社會技術系統可能與傳統的專業化一樣需要創新的整合。

WOSP 的理論意義

WOSP 模型解決的是系統的性能屬性,而不是外部影響 (如營銷、政治和分銷) 對系統性能的影響。系統成本也不在 WOSP 的範圍之內,因爲它假設買家希望爲更高的性能支付更多的費用。最後,WOSP 的邏輯假定可系統 “世界” 定義在四個層次之一: 機械的、信息的、認知的和社會的。每一個都依賴於前一個,因爲軟件依賴於硬件,但也出現了更大的需求和更大的潛力。例如,爲了極大地提高系統生產力,社會層面需要合理的互動。爲了應用 WOSP 模型,必須首先定義世界級別,因爲該模型適用於任何信息系統級別,而不是全部適用。例如,一個系統可能硬件可靠,但軟件不可靠; 或者硬件和軟件可靠,但操作者不可靠; 或者與個人可靠地工作,但是當規模擴大到社會水平時就會崩潰。

系統設計理論 (如瀑布方法) 提出了實現已知目標的方法。然而,WOSP 模型解決了這些問題,並提出了一個系統性能的網絡。當研究性能模型時,往往會將其他目標納入其專業領域。例如,通用安全模型在通用安全概念下包括可用性、完整性、可靠性和機密性。

然而,增加容錯 (可靠性) 的機制可以降低安全性,但如果可靠性是安全性的一部分,那麼這些機制就是不合邏輯的。可靠性和安全性的區別就像維護社區的工程師和保護社區的警察的區別一樣,前者旨在提供服務,後者則拒絕提供服務。同樣,保密 (隱私) 也未必是安全的一部分,每個專業都包含其他專業是不合邏輯的。

技術接受模型 (TAM) 認爲,可用性在信息系統中可能和有用性一樣重要。它質疑一個過於難以使用的強大系統的性能價值。然而,對於 Web 用戶來說,安全和隱私標準可能比現在傳統的功能和可用性標準更加重要。人們可以擴展原來的 TAM 理論,使安全成爲 “有用” 的一部分,因爲不安全的系統是沒有用的。然而,同樣的觀點可能會使可用性成爲有用的一部分,因此這個觀點就站不住腳了。拓展 TAM 的可用性概念也好不到哪裏去。當可用性度量包括對任務 (功能) 的適應性和錯誤容忍度 (可靠性) 時,可用性,就像安全性一樣,就變成了一個令人困惑的包羅萬象的性能術語。當靈活性的支持者認爲可伸縮性和連接性是靈活性的一個方面時,概念就會擴展,以填補理論空間並造成混亂。WOSP 方法不是概念上的擴展,而是概念上的約束或“模塊化”,例如可用性、安全性和靈活性等概念,將它們全部置於系統性能的一般標題之下。

在虛擬現實成爲現實之前,互聯網一直是技術極客的天下。在創建今天的在線社會之前,很多網絡理念被學術界和工業界所忽視。在人人都有手機之前,手機都是實驗室裏的玩具。這些例子以及更多的例子說明了性能和進步是多維的。互聯網提供了大規模的連接; 文本電子郵件易於使用; 網絡是可擴展的; 手機是靈活的。每一個都增加了一個不同的系統性能因素網絡,因此進展可能看起來是不可預測的,但是這種多樣性是多維發展的本質。雖然有些人認爲進步是單一方向上前進,但是 WOSP 模型把它看作是一列在多條軌道上的火車,在它們之間切換以增加進步時的覆蓋面積。

這個模型隱含的意思是,今天的趨勢不一定是明天的創新。從本質上講,專家是過去的專家,所以他們預測的進步並不總是發生。WOSP 模型表明,開發系統較弱的方面可能比開發較強的方面產生更大的性能提升,儘管後者通常創造了成功。如果性能是 WOSP 區域,最大的面積增加是通過擴展最短的維度來實現的。

小結

如果軟件按照生命進化的方式進化,那麼信息系統的進化將會採取多種形式。有趣的是,殺手級應用程序 (如電子郵件和聊天) 功能簡單,至少在開始階段是這樣。也許更少的能力創造了全方位性能擴展所需要的 WOSP 的鬆弛。用戶不僅需要功能,他們還需要可用性、可靠性、靈活性、安全性、可擴展性、隱私性和連接性,這些都是性能的要素。

隨着信息系統變得更加複雜,性能集成問題將變得更加關鍵。信息系統是多維性能空間中形式的綜合,其中每個設計選擇影響每個維度。必須認識到我們所面臨的問題: 系統的整體性大於各個部分的總和。對於跨領域的系統設計,如果沒有跨學科的人才來進行,就不是真正的系統設計。推進一體化和專業化,實現平衡和卓越,都需要理論與實踐。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/_Jk8D_hexTuNsud4pR-WxA