軟件架構風格的定義
諸風格的特徵
◎數據流風格:批處理序列;管道/過濾器。
管道與過濾器風格的軟件體系結構的特色
(1)使得軟構件具備良好的隱蔽性和高內聚、低耦合的特色;(2)容許設計者將整個系統的輸入/輸出行爲當作是多個過濾器的行爲的簡單合成;(3)支持軟件重用。(4)系統維護和加強系統性能簡單。(5)容許對一些如吞吐量、死鎖等屬性的分析;(6)支持並行執行。可是,這樣的系統也存在着若干不利因素。
(1)一般致使進程成爲批處理的結構。這是由於雖然過濾器可增量式地處理數據,但它們是獨立的,因此設計者必須將每一個過濾器當作一個完整的從輸入到輸出的轉換。
(2)不適合處理交互的應用。當須要增量地顯示改變時,這個問題尤其嚴重。
(3)由於在數據傳輸上沒有通用的標準,每一個過濾器都增長了解析和合成數據的工做,這樣就致使了系統性能降低,並增長了編寫過濾器的複雜性。
◎調用/返回風格:主程序/子程序;面向對象風格;層次結構。
面向對象的優勢
能形象地表現現實世界的領域,重用性高,對應變化很強。 即易擴展, 維護性強
數據抽象和麪向對象組織缺點
性能損失。 面向對象編程爲了:重用性、 靈活性和擴展性等特性而做出的犧牲。測試比較麻煩,對總體系統設計要求高
◎獨立構件風格:進程通信;事件系統。
基於事件的隱式調用優勢:
爲軟件重用提供了強大的支持。 當須要將一個構件加入現存系統中時,只需將它註冊到系統的事件中。爲改進系統帶來了方便。 當用一個構件代替另外一個構件時,不會影響到其它構件的接口。
基於事件的隱式調用缺點:
構件放棄了對系統計算的控制。數據交換的問題。 有時數據可被一個事件傳遞,但
有時系統必須依靠一個共享的倉庫進行交互。 這時全局性能和資源管理便成了問題。
既然過程的語義必須依賴於被觸發事件的上下文約束,關於正確性的推理存在問題。
分層系統優勢:
支持基於抽象程度遞增的系統設計,使設計者能夠把一個複雜系統按遞增的步驟進行分解;
支持功能加強,由於每一層至多和相鄰的上下層交互,所以功能的改變最多影響相鄰的上下層;支持重用。 只要提供的服務接口定義不變,同一層的不一樣實現能夠交換使用。 這樣,就能夠定義一組標準的接口,而容許各類不一樣的實現方法。
分層系統缺點:
並非每一個系統均可以很容易地劃分爲分層的模式,甚至即便一個系統的邏輯結構是層次化
的,出於對系統性能的考慮,系統設計師不得不把一些低級或高級的功能綜合起來;很難找到一個合適的、 正確的層次抽象方法。
◎虛擬機風格:解釋器;基於規則的系統。
◎倉庫風格:數據庫系統;超文本系統;黑板系統。
請簡要說明黑板風格的定義。
黑板結構是一個六至八層的層次結構,每一層都抽象了與之相鄰的較低一層的信息。
知識源表明整個問題求解中的獨立的子任務。每一個知識源被組織成一個條件部分和一個動做部分,條件部分規定何時知識源可用,動做部分負責處理相關的黑板元素併產生新的元素。控制構件做爲黑板的監控程序和調度程序;一般將黑板知識源應用到黑板中各類元素具備優先次序,調度程序負責監控黑板和計算的優先次序。
◎C2風格
C2風格的特色
C2體系結構風格:能夠歸納爲經過鏈接件綁定在一塊兒的按照一組規則動做的並行構件網絡。組織規則有:一、系統中的構件和鏈接件都有一個頂部一個底部。二、構件的頂部應鏈接到某鏈接件的底部,構件的底部應鏈接到鏈接件的頂部,構件之間不能直接鏈接。三、一個鏈接件能夠和任意數目的其餘構件和鏈接件相連。四、當兩個鏈接件直接相連時,必須由其中一個底部到另外一個的頂部。C2風格的特色:系統中的構件可實現應用需求,並能將任意複雜度的功能封裝在一塊兒;全部構件之間的通信是經過以鏈接件爲中介的異步消息交換機制來實現的;構件相對獨立,構件之間依賴性較少。系統中不存在某些構件將在同一地址空間內執行,或某些構件共享特定控制線程之類的相關性假設。
◎C/S風格
C/S風格優勢:
C/S架構具備強大的數據操做和事務處理能力,模型思想簡單,易於理解。系統的客戶應用程序和服務器構件分別運行在不一樣計算機上,系統中每臺服務器均可以適合各構件的要求,這對於硬件和軟件的變化顯示出極大的適應性和靈活性,並且易於對系統進行擴充和縮小。系統中的功能構件充分隔離,客戶應用程序的開發集中於數據的顯示和分析,而數據庫服務器的開發則集中於數據的管理。 將大的應用處理任務分佈到許多經過網絡鏈接的低成本計算機上,以節約費用。
C/S風格缺點:
開發成本較高,客戶端程序設計複雜,信息內容和形式單一,用戶界面風格不一,使用繁雜,不利於推廣使用,軟件移植困難,軟件維護和升級困難,新技術不能輕易應用
◎三層C/S風格
三層C/S風格優勢:
容許合理地劃分三層結構的功能,使之在邏輯上保持相對獨立性,能提升系統和軟件的可維護性,和可擴展性。容許更靈活選用相應的平臺和硬件系統,使之在
處理負荷能力上與處理特性上分別適應於三層;而且這些平臺和各個組成部分能夠具備良好的可升級性和開放性。應用的各層能夠並行開發,能夠選擇各自最適合的開發語言。利用功能層有效地隔離開表示層與數據層,未受權的用戶難以繞過功能層而利用數據庫工具或黑
客手段非法訪問數據層,爲嚴格的安全管理奠基了堅實的基礎。
要注意的問題:
三層C/S結構各層間的通訊效率若不高,即便分配給各層的硬件能力很強,其做爲總體來講
也達不到所要求的性能。設計時必須慎重考慮三層間的通訊方法、 通訊頻度及數據量。 這和提升各層的獨立性同樣是三層C/S結構的關鍵問題。
◎三層B/S風格
B/S風格就是上述三層應用結構的一種實現方式,其具體結構爲:瀏覽器/Web服務器/數據庫服務器。優勢(1)基於B/S體系結構的軟件,系統安裝,修改和維護全在服務器端解決。(2)提供了異種機,異種網,異種應用服務的聯機,聯網,贊成服務的最現實的開放性基礎。缺點(1)缺少對動態頁面的支持能力,沒有集成有效的數據庫處理能力。(2)在數據查詢等響應速度上,要遠遠低於C/S體系結構。(3)數據提交通常以頁面爲單位,數據的動態交互性不強,不利於在線事務處理應用。
◎異構風格
◎領域特定的軟件架構(DSSA)
◎典型的軟件系統的架構類型
◎遊戲系統的體系結構實例Darkstar
◎商業系統體系結構實例Explanner/Ai,Explanner/Jhtml