軟件體系結構模式和風格_第1頁
軟件體系結構模式和風格_第2頁
軟件體系結構模式和風格_第3頁
軟件體系結構模式和風格_第4頁
軟件體系結構模式和風格_第5頁
已閱讀5頁,還剩81頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件體系結構軟件體系結構王映輝 博士(后),教授,博導Mail:wyh_2 22022年年7月月4日日22時時48分分軟件體系結構軟件體系結構Part 2:軟件體系結構模式與風格:軟件體系結構模式與風格P2-1P2-1、模式的概念與分類、模式的概念與分類P2-2P2-2、慣用法、慣用法P2-3P2-3、設計模式、設計模式P2-4P2-4、體系結構模式、體系結構模式P2-5P2-5、模式系統與體系結構風格、模式系統與體系結構風格Part 2Part 2:軟件體系結構模式與風格:軟件體系結構模式與風格P2-1P2-1、模式的概念與分類、模式的概念與分類Mail:wyh_4 42022年年7月月4日

2、日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.1、模式及其構成要素、模式及其構成要素模式實例模式實例_Model/View/Controller:_Model/View/Controller: 在人機界面軟件時在人機界面軟件時, ,要求要求: :人機界面容人機界面容易修改易修改( (包括運行期間包括運行期間),),應用程序的核應用程序的核心代碼不受影響。心代碼不受影響。 解決策略:將處理解決策略:將處理(model)(model)、輸出、輸出(view)(view)和輸入和輸入(controller)(controller)劃分開。劃分開。Mail:w

3、yh_5 52022年年7月月4日日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.1、模式及其構成要素、模式及其構成要素模式實例模式實例_Model/View/Controller:_Model/View/Controller:ModelModelViewViewControllerControllerObserverObservercall updateAttachgetDatacreatemanipulatedisplayattachCall service11.*用戶Mail:wyh_6 62022年年7月月4日日22時時48分分P2-1P2-1、

4、模式的概念與分類、模式的概念與分類.1、模式及其構成要素、模式及其構成要素模式的構成關鍵要素模式的構成關鍵要素: :問題出現的背景是什么:問題出現的背景是什么:語境語境在此背景下重復出現什么問題:在此背景下重復出現什么問題:問題問題采用什么方案來解決:采用什么方案來解決:解決方案解決方案如何實現解決方案:如何實現解決方案:實現實現Mail:wyh_7 72022年年7月月4日日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.2、模式的定義、模式的定義Christopher AlexanderChristopher Alexander對城市和

5、建筑模式的描述對城市和建筑模式的描述: :“每一個模式描述了一個在我們周圍不斷重復發每一個模式描述了一個在我們周圍不斷重復發生的問題,以及該問題解決方案的核心內容。這生的問題,以及該問題解決方案的核心內容。這樣,你可以一次又一次地使用該方案而不必做重樣,你可以一次又一次地使用該方案而不必做重復勞動復勞動”軟件體系結構模式軟件體系結構模式: :描述了在特定設計描述了在特定設計語境語境中中重復再現重復再現的的設計問題設計問題,并為之提供一個經過充分,并為之提供一個經過充分驗證了驗證了的通用解決的通用解決方案方案。該方案提供了。該方案提供了構件構件、構件的、構件的責任責任、構件、構件之間的之間的關系

6、關系、以及它們之間的、以及它們之間的協作方式協作方式。Mail:wyh_8 82022年年7月月4日日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.3、模式的特點、模式的特點模式的特點模式的特點: :一個模式關注一個在特定設計語境中設計問題的重復出現一個模式關注一個在特定設計語境中設計問題的重復出現一個模式為特定的問題提供一個特定的解決方案一個模式為特定的問題提供一個特定的解決方案模式用文檔記錄下了經過充分驗證了的設計經驗模式用文檔記錄下了經過充分驗證了的設計經驗模式所處的抽象層次模式所處的抽象層次( (單個類、實例、或構件層次單個類、實例、或構件層次)

7、 )是明確的是明確的模式設計提供了一種公共的詞匯和理解模式設計提供了一種公共的詞匯和理解模式是軟件體系結構建立文檔的一種手段模式是軟件體系結構建立文檔的一種手段模式通過支持軟件的功能屬性和質量屬性來構造軟件模式通過支持軟件的功能屬性和質量屬性來構造軟件模式有助于建立一個復雜的和異構的軟件體系結構模式有助于建立一個復雜的和異構的軟件體系結構模式有助于管理軟件的復雜度模式有助于管理軟件的復雜度Mail:wyh_9 92022年年7月月4日日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.4、模式的優勢、模式的優勢促進設計復用促進設計復用帶來巨大的代碼復用帶來巨

8、大的代碼復用系統組成更易于被他人理解系統組成更易于被他人理解有利于系統的互操作性有利于系統的互操作性模式的存在,有利于模式的存在,有利于SA的分析的分析有利于特定模式有利于特定模式SA的可視化的可視化使用模式的優勢使用模式的優勢Mail:wyh_10102022年年7月月4日日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.5、模式的描述內容、模式的描述內容 名稱名稱:名稱和一個簡短的摘要:名稱和一個簡短的摘要 別名別名:模式的其它名稱:模式的其它名稱 例子例子:輔助說明有用的地方:輔助說明有用的地方 語境語境:應用的情景:應用的情景 問題問題:解決的問題

9、:解決的問題 解決方案解決方案:解決方案的原理:解決方案的原理 靜態結構靜態結構:模式結構方面的詳細規格說明:模式結構方面的詳細規格說明( (諸如類圖諸如類圖) ) 動態行為動態行為:描述模式在運行期間的典型場景:描述模式在運行期間的典型場景( (諸如順序圖諸如順序圖) ) 實現實現:實現模式的指南,包括一些規則和步驟:實現模式的指南,包括一些規則和步驟 變體變體:模式變體或特例的簡短描述:模式變體或特例的簡短描述 效果效果:優缺點:優缺點 參見參見:參考那些解決相似問題的模式,有利于細化本模式:參考那些解決相似問題的模式,有利于細化本模式模式的描述模板模式的描述模板Mail:wyh_1111

10、2022年年7月月4日日22時時48分分P2-1P2-1、模式的概念與分類、模式的概念與分類.6、模式分類、模式分類( (模式類別模式類別) ) 低層模式:低層模式:慣用法慣用法(idiom)(idiom) 中層模式:中層模式:設計模式設計模式(design pattern)(design pattern) 高層模式高層模式:體系結構模式體系結構模式(architecture (architecture pattern)pattern)根據模式的抽象范圍和規模,將模式分為根據模式的抽象范圍和規模,將模式分為: :P2-1P2-1、模式的概念與分類、模式的概念與分類P2-2P2-

11、2、慣用法、慣用法P2-3P2-3、設計模式、設計模式P2-4P2-4、體系結構模式、體系結構模式P2-5P2-5、模式系統與體系結構風格、模式系統與體系結構風格Part 2Part 2:軟件體系結構模式與風格:軟件體系結構模式與風格Mail:wyh_13132022年年7月月4日日22時時48分分P2-2P2-2、慣用法、慣用法.1、慣用法的特點、慣用法的特點是與具體語言密切相關的編程經驗的總結是與具體語言密切相關的編程經驗的總結描述如何使用給定的語言特征來實現構件的描述如何使用給定的語言特征來實現構件的特定方面及其關系特定方面及其關系代表最底層的模式代表最底層的模式慣用法更

12、關注設計的實現慣用法更關注設計的實現可能是一種特定設計模式的具體實現可能是一種特定設計模式的具體實現Mail:wyh_14142022年年7月月4日日22時時48分分P2-2P2-2、慣用法、慣用法.2、慣用法的益處、慣用法的益處一組相關的慣用法會使在程序中形成一致的風格一組相關的慣用法會使在程序中形成一致的風格一致的程序設計風格將加速程序設計的進程一致的程序設計風格將加速程序設計的進程一致的風格使程序更容易理解,有利于程序的開一致的風格使程序更容易理解,有利于程序的開發和維護發和維護.3、慣用法的發現、慣用法的發現語言書的導言部分語言書的導言部分某些設計模式解

13、決程序設計問題某些設計模式解決程序設計問題建立自己的程序設計指南建立自己的程序設計指南, ,并在開發人員之間交流并在開發人員之間交流P2-1P2-1、模式的概念與分類、模式的概念與分類P2-2P2-2、慣用法、慣用法P2-3P2-3、設計模式、設計模式P2-4P2-4、體系結構模式、體系結構模式P2-5P2-5、模式系統與體系結構風格、模式系統與體系結構風格Part 2Part 2:軟件體系結構模式與風格:軟件體系結構模式與風格Mail:wyh_16162022年年7月月4日日22時時48分分P2-3P2-3、設計模式、設計模式.1、設計模式分類、設計模式分類( (問題類別問題

14、類別) )結構化分解:結構化分解:整體整體- -部分模式部分模式工作的組織:工作的組織:主控主控- -存儲模式存儲模式訪問控制:訪問控制:代理模式代理模式管理:管理:命令處理器模式命令處理器模式 視圖處理模式視圖處理模式通訊:通訊:轉發器轉發器- -接收器模式接收器模式 客戶機客戶機- -分配器分配器- -服務器模式服務器模式 出版者出版者- -訂閱者模式訂閱者模式整體部分被廣泛應用于復雜構件中整體部分被廣泛應用于復雜構件中支持服務分解,用在容錯、并支持服務分解,用在容錯、并行計算、計算準確性等方面行計算、計算準確性等方面保護被訪問的服務和構件。保護被訪問的服務和構件。代理模式允許與構件的代表

15、代理模式允許與構件的代表通訊而不是與構件本身通訊通訊而不是與構件本身通訊將一類事物視為一個整體將一類事物視為一個整體來處理。命令處理模式處來處理。命令處理模式處理用戶的命令和協議理用戶的命令和協議視圖處理模式描述如何視圖處理模式描述如何在一個系統中管理視圖在一個系統中管理視圖處理對等通訊問題處理對等通訊問題處 理 位 置 透處 理 位 置 透明性問題明性問題處理數據一致性問題處理數據一致性問題Mail:wyh_17172022年年7月月4日日22時時48分分P2-3P2-3、設計模式、設計模式.1、設計模式分類、設計模式分類( (模式類別模式類別) ) 目的目的分類分類設計模式

16、設計模式對可變方面的支持對可變方面的支持創建創建(5)Abstract FactoryBuilderFactory MethodPrototypeSingleton產品對象家族產品對象家族(視圖處理模式)(視圖處理模式)創建一個組合對象創建一個組合對象被實例化的子類被實例化的子類被實例化的類被實例化的類一個類的唯一實例一個類的唯一實例結構結構(7)AdapterBridgeCompositeDecoratorFacadeFlyweightProxy對象的接口對象的接口對象的實現對象的實現一個對象的結構和組織一個對象的結構和組織(整體(整體-部分部分)對象的職責,不生成子類對象的職責,不生成子類

17、(代理,代理中的代理)(代理,代理中的代理)一個子系統的接口一個子系統的接口(整體(整體-部分,但不強調封裝,可直接訪問部分)部分,但不強調封裝,可直接訪問部分) (代理)(代理)對象的存儲開銷對象的存儲開銷如何訪問一個對象如何訪問一個對象(代理)(代理)行為行為(11)Chain of ResponsibilityCommandInterpreterInteratorMediatorMementoOberverStateStrategyTemplete MethodVisiter滿足一個請求的對象滿足一個請求的對象(主控(主控-從屬)從屬)何時、怎么滿足一個請求何時、怎么滿足一個請求(主控(

18、主控-從屬)(命令處理器)從屬)(命令處理器)一個語言的文法與解釋一個語言的文法與解釋如何遍歷、訪問一個聚合的各元素如何遍歷、訪問一個聚合的各元素(代理)(代理)對象間怎樣交互、如何交互對象間怎樣交互、如何交互(主控(主控-從屬)從屬) (視圖處理模式)(視圖處理模式)對象的哪些私有信息應該存放在對象之外,以及在什么時候進行存儲對象的哪些私有信息應該存放在對象之外,以及在什么時候進行存儲(命令處理器)(命令處理器)依賴與另外一個對象的多個對象如何保持一致依賴與另外一個對象的多個對象如何保持一致(出版者(出版者-發行者)發行者)對象的狀態對象的狀態算法算法算法中某些步驟算法中某些步驟某些作用于一

19、個或一組對象上的操作,但不修改這些對象的類某些作用于一個或一組對象上的操作,但不修改這些對象的類P2-1P2-1、模式的概念與分類、模式的概念與分類P2-2P2-2、慣用法、慣用法P2-3P2-3、設計模式、設計模式P2-4P2-4、體系結構模式、體系結構模式P2-5P2-5、模式系統與體系結構風格、模式系統與體系結構風格Part 2Part 2:軟件體系結構模式與風格:軟件體系結構模式與風格Mail:wyh_19192022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.1、SASA模式的概念模式的概念SASA模式是模式系統中的最高等模式模式是模

20、式系統中的最高等模式描述了軟件系統基本結構的組織方案描述了軟件系統基本結構的組織方案用在粗粒度設計的開始階段用在粗粒度設計的開始階段SASA模式模式(Dwayne E.Perry, Alexander L.Wolf)(Dwayne E.Perry, Alexander L.Wolf): 根據系統的結構組織定義了軟件系統族、以及構根據系統的結構組織定義了軟件系統族、以及構成系統族的構件之間的關系。它們是通過構件應用的成系統族的構件之間的關系。它們是通過構件應用的限制和構件的組織與設計規則來確定和表現的。限制和構件的組織與設計規則來確定和表現的。Mail:wyh_20202022年年7月月4日日2

21、2時時48分分P2-4P2-4、體系結構模式、體系結構模式.2、SASA模式分類模式分類( (問題類別問題類別) )Mary Show,David GarlanMary Show,David Garlan的分類:的分類:數據流系統數據流系統 虛擬機虛擬機 Batch sequential Interpreters Pipes and filters Rule-based systems調用調用- -返回系統返回系統 數據中心系統數據中心系統 Main program and subroutine (repositeries(repositeries) ) OO system D

22、atabases Hierarchical layers Hypertext systems獨立構件獨立構件 Blackboards Communicating processes Event systems(implicit invocation)Mail:wyh_21212022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.2、SASA模式分類模式分類Frank BuschmannFrank Buschmann的分類:的分類:從混沌到結構從混沌到結構 Layer Pipes and Filters Blackboard分布式系統分布式系統 B

23、roker(涉及“微核”和“管道-過濾器”)交互系統交互系統 Model-View-Controller Presentation-Abstraction-Control適應性系統適應性系統 Reflection MicrokernelMail:wyh_22222022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-管道管道- -過濾器過濾器(1)(1)過濾器過濾器過濾器過濾器過濾器過濾器管道管道管道管道管道管道管道Pipe&FilterMail:wyh_23232022年年7月月4日日22時時48分分P2-4P2-4

24、、體系結構模式、體系結構模式.3、SASA模式模式-管道管道- -過濾器過濾器(1)(1)n構件構件:過濾器(filter)是數據加工處理的功能模塊,并將處理后的結果在輸出端輸出。n連接件:連接件:管道(pipe)起信息流的導管作用。n過濾器過濾器都有輸入/輸出集合,構件從輸入處讀取數據流,在輸出處生成數據流。n過濾器必須是獨立的主體獨立的主體,無須知道輸入/出管道的存在。但要對輸入管道輸入管道和輸入數據流輸入數據流進行限制。n管道過濾器構成的網絡,網絡,其輸出輸出的正確性正確性與過濾器的遞增處理順序無關。n注意注意:將每個過濾器的輸入/出限制為單一的,則管道-過濾器退化為順序

25、批處理系統順序批處理系統( (Batch sequential) )。Mail:wyh_24242022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-管道管道- -過濾器過濾器(1)(1)詞法分析詞法分析/ /掃描器掃描器語法分析語法分析/ /分析器分析器語語 義義 分分 析析中間代碼生成中間代碼生成Unix shell:Unix shell: cat filecat file| |grep xyzgrep xyz| |sortsort| |uniquniqoutout 即找到含即找到含xyzxyz的行,排序、取掉相同的行,

26、最后輸出的行,排序、取掉相同的行,最后輸出信號處理系統并行計算編譯器Mail:wyh_25252022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-管道管道- -過濾器過濾器(1)(1)優點優點缺點缺點系統行為易于理解由于該模式數據交換占用大量的空間,且數據傳輸占用系統的執行時間。所以,它不適應大量共享數據的應用設計支持并發計算過濾器是在輸入/出有相應限制情況下,才能對輸入進行批量轉換處理。所以,不適用于交互式的應用程序較強的可維護性和可擴展性按照此模式,經常導致成為批處理的結構相對獨立的過濾器為性能(吞吐量、死鎖)分析提供

27、了方便由于構件不能共享全局狀態。所以錯誤處理困難Mail:wyh_26262022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-事件驅動與隱式調用事件驅動與隱式調用(2)(2)廣播媒介agentagentagentagentEvent-based style(Implicit Invocation style)聲明事件監聽事件Mail:wyh_27272022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-事件驅動與隱式調用事件驅動與隱式調用(2)(2)構件

28、的接口構件的接口:過程的集合+事件的集合過程過程:即可以用一般的方式調用,也可以聲明為與某些事件相關構件可以聲明或廣播聲明或廣播一個或多個事件,或著向系統注冊它希望響應的一個或多個事件連接件連接件:對過程的隱式或顯式調用Mail:wyh_28282022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-事件驅動與隱式調用事件驅動與隱式調用(2)(2)數據庫中的一致性約束集成開發環境中的編輯器支持的語法檢查開發工具中調試過程中的變量監視器刷新變量值WORD的詞正確性檢查應用:應用:Mail:wyh_29292022年年7月月4日日

29、22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-事件驅動與隱式調用事件驅動與隱式調用(2)(2)優點優點缺點缺點強大的復用支持功能強大的復用支持功能(構件的加入只須注冊即可)構件對系統的無法預測和控制構件對系統的無法預測和控制(構件觸發事件后無法預測響應的構件,即使知道響應的構件,也無法知道過程調用的順序)構件之間的關系弱構件之間的關系弱(事件廣播者無須知道那些構件受事件影響)數據交換問題數據交換問題(雖然基于事件的系統可以依靠一個共享的數據倉庫進行數據交換,但會影響全局的性能和資源的管理)系統演化升級簡單系統演化升級簡單(替換某構件不影響其

30、它構件)無法進行正確性的判斷和推理無法進行正確性的判斷和推理(過程的語義被觸發事件的上下文約束所決定,而傳統的對調用行為的推理必須考慮過程的前置條件和后置條件,所以無法在過程調用中用傳統的推理來判斷正確性)Mail:wyh_30302022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-分層分層(3)(3)Layer過程調用不同元素組合內核層內核層可用系統可用系統基礎實用層Mail:wyh_31312022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-分層分

31、層(3)(3)每一層為上層提供服務,并作為下層的客戶每一層為上層提供服務,并作為下層的客戶層只對鄰層可見層只對鄰層可見連接件定義了層間交互的協議連接件定義了層間交互的協議支持遞增抽象層的設計支持遞增抽象層的設計支持復雜問題的分解和增量式步驟序列的實現支持復雜問題的分解和增量式步驟序列的實現支持軟件復用:體現在每層只影響鄰層,所以每支持軟件復用:體現在每層只影響鄰層,所以每層可采用不同的實現方法層可采用不同的實現方法Mail:wyh_32322022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-分層分層(3)(3)廣泛應用在分

32、層通訊協議中,諸如OSI/ISO的分層通訊模型計算機網絡協議組,如TCP/IPOSX窗口系統應用:應用:Mail:wyh_33332022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-分層分層(3)(3)優點優點缺點缺點支持抽象遞增的設計支持抽象遞增的設計(復雜系統的遞增分解)并不是每個系統都能分層的并不是每個系統都能分層的(即使一個系統的邏輯結構是層次化的,但出于性能的考慮,往往要將一些低級和高級的功能綜合起來的)容易擴展容易擴展(每層只影響鄰層)效率的降低效率的降低(通過若干層的轉換帶來的)支持復用支持復用(如果對鄰層的

33、接口相同,則在同一層中使用不同的實現)抽象層次方法難以選擇抽象層次方法難以選擇(特別是要選取合適的、正確的方法就更難)Mail:wyh_34342022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-數據抽象和面向對象數據抽象和面向對象(4)(4)抽象數據類型Mail:wyh_35352022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-數據抽象和面向對象數據抽象和面向對象(4)(4)n數據和操作被封裝成抽象數據類型數據和操作被封裝成抽象數據類型n構件就是對

34、象,連接件就是過程構件就是對象,連接件就是過程(方法方法)調用調用n抽象數據類型抽象數據類型(ADT)和和OO的區別:的區別:ADT只有封裝的只有封裝的特點,沒有繼承和多態的特征特點,沒有繼承和多態的特征n要點:要點: 封裝隱藏實現細節 繼承由通用的對象開始,逐步定義具體的對象 多態不同類型的對象對相同的激勵產生不同的響應Mail:wyh_36362022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-數據抽象和面向對象數據抽象和面向對象(4)(4)應用非常廣泛,應用非常廣泛,實例太多太多!實例太多太多!Mail:wyh_37

35、372022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-數據抽象和面向對象數據抽象和面向對象(4)(4)優點優點缺點缺點信息隱藏使修改影響的范圍小信息隱藏使修改影響的范圍小過程調用依賴于對象的標識過程調用依賴于對象的標識封裝的對象使復雜問題更容易封裝的對象使復雜問題更容易分解分解對大型系統的分析設計,需要總對大型系統的分析設計,需要總體結構的支持體結構的支持方便系統升級方便系統升級(由于方法的實現和對它的調用請求是分離的,所以,可以在不影響調用者的情況下,完成實現的變更)Mail:wyh_38382022年年7月月4日日2

36、2時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-倉庫與黑板倉庫與黑板(5)(5)黑板共享數據知識源存儲器計算直接存取Repositories (Blackboard)知識源知識源知識源知識源知識源知識源知識源控制器控制器Mail:wyh_39392022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-倉庫與黑板倉庫與黑板(5)(5)n知識源:知識源:與特定應用相關的獨立的知識包(parcel),只有通過黑板來完成它們之間的交互n黑板數據結構:黑板數據結構:求解問題的狀態的數據,

37、并按照層次來組織。知識源通過對黑板的修改來漸進式地達到問題的求解n控制器:控制器:控制器承擔著限制知識源對黑板的訪問,防止兩個知識源同時寫黑板的某一空間。 控制器完全由黑板狀態驅動和決定。一旦黑板數據的改變需要知識源的時候,控制器會及時通知知識源隨即進行響應Mail:wyh_40402022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-倉庫與黑板倉庫與黑板(5)(5)n信號處理與模式識別領域n用于具有松散-偶合實體對共享數據的存取nFtp服務器n應用:應用:Mail:wyh_41412022年年7月月4日日22時時48分分P

38、2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-倉庫與黑板倉庫與黑板(5)(5)優點優點缺點缺點便于多個客戶共享大量的數據便于多個客戶共享大量的數據對黑板數據結構的修改比較困難對黑板數據結構的修改比較困難(要考慮不同的知識源對共享數據達成一致)方便于添加新的知識源應用程方便于添加新的知識源應用程序序系統復雜系統復雜(因為需要一定的同步/加鎖機制保證數據結構的完整性和一致性)Mail:wyh_42422022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-解釋器解釋器(6)(6)Interpre

39、ters/Virtual Machine 數據(程序狀態)正在被解釋的程序模擬解釋引擎內部解釋器狀態計算狀態機輸出輸入選擇的指令選擇的指令選擇的數據選擇的數據存儲器數據存取Mail:wyh_43432022年年7月月4日日22時時48分分Interpretation engineInterpretation enginePseudoprogramPseudoprogramP2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-解釋器解釋器(6)(6)Interpreters/Virtual Machine 數據(程序狀態)正在被解釋的程序模擬解釋引擎內部解釋器狀態計

40、算狀態機輸出輸入選擇的指令選擇的指令選擇的數據選擇的數據存儲器數據存取模擬解釋引擎(解釋器定義)Mail:wyh_44442022年年7月月4日日22時時48分分存儲器存儲器P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-解釋器解釋器(6)(6)Interpreters/Virtual Machine 數據(程序狀態)正在被解釋的程序內部解釋器狀態計算狀態機輸出輸入選擇的指令選擇的指令選擇的數據選擇的數據存儲器數據存取模擬解釋引擎(解釋器定義)Mail:wyh_45452022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式2.4

41、.32.4.3、SASA模式模式-解釋器解釋器(6)(6)n一個解釋器就是一個虛擬機一個解釋器就是一個虛擬機n就就解釋器解釋器來說,一個解釋器包括:偽程序來說,一個解釋器包括:偽程序(pseudoprogram(pseudoprogram) )和解釋引擎和解釋引擎(interpretation engine)(interpretation engine)兩個部分兩個部分n就就虛擬機虛擬機來說,包括:計算狀態機來說,包括:計算狀態機CSMCSM(Computation State (Computation State Machine)Machine)和存儲器和存儲器(Memory)(Memory

42、)兩個部分兩個部分n也可以說,一個也可以說,一個解釋器解釋器包括:一個模擬解釋引擎包括:一個模擬解釋引擎(CSM)(CSM)和一個存儲器。而一個存儲器又包括:被解釋的偽碼、和一個存儲器。而一個存儲器又包括:被解釋的偽碼、解釋引擎控制狀態的表示、以及被模擬程序的當前狀態解釋引擎控制狀態的表示、以及被模擬程序的當前狀態表示。表示。Mail:wyh_46462022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-解釋器解釋器(6)(6)n Java Java的的VMVMn一些高級語言解釋執行器一些高級語言解釋執行器nMicrosof

43、tMicrosoft的的.NET.NET核心核心CLRCLR支持支持ILIL的解釋執行的解釋執行nMail:wyh_47472022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-解釋器解釋器(6)(6)優點優點缺點缺點有利于實現程序的可移植性和語有利于實現程序的可移植性和語言的跨平臺的能力言的跨平臺的能力性能的下降性能的下降(額外的中間層帶來的)可對未來的硬件進行模擬和仿真可對未來的硬件進行模擬和仿真安全性的提高安全性的提高(代碼可控制)Mail:wyh_48482022年年7月月4日日22時時48分分P2-4P2-4、體系

44、結構模式、體系結構模式.3、SASA模式模式-代理者代理者(broker)(7)(broker)(7)ClientClientcall_serverstart_taskuse_Broker_APIClient-sideClient-sideProxyProxypack-dataunpack_datasend_requestreturnBrokerBrokermain_event_loopupdate_repositoryregister_serviceAcknowledgmentfind_serverforward_requestforward_responseServer-s

45、ideServer-sideProxyProxypack-dataunpack_datasend_servicesend_requestServerServerinitializeenter_main_looprun_serviceuse_Broker_APIBridgeBridgepack_dataunpack_dataforward_messagetransmit_messagetransfersmessagetransfersmessageuses APIuses APIcallscallscallsMail:wyh_49492022年年7月月4日日22時時48分分P2-4P2-4、體系

46、結構模式、體系結構模式.3、SASA模式模式-代理者代理者(broker)(7)(broker)(7)ClientClientClient-sideClient-sideProxyProxyBrokerBrokerServer-sideServer-sideProxyProxyServerServer直接通訊的系統 在客戶機和服務器使用相同的協議時,可使用直接通訊的系統,此時,代理者的作用僅僅是在客戶機和服務器之間建立通信鏈的作用,此后的消息、異常和應答等直接在客戶機端代理和服務器端代理之間直接進行。Mail:wyh_50502022年年7月月4日日22時時48分分P2-4P2

47、-4、體系結構模式、體系結構模式.3、SASA模式模式-代理者代理者(broker)(7)(broker)(7)ClientClientClient-sideClient-sideProxyProxyBroker-Broker-A AServer-sideServer-sideProxyProxyServerServerBridge-Bridge-A ABroker-Broker-B BBridge-Bridge-B B間接通訊的系統:用在異構網絡中(協議不同)Mail:wyh_51512022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式2.4.

48、32.4.3、SASA模式模式-代理者代理者(7)(7)n 環境環境:帶有獨立構件的分布式,并可能是異構的系統。:帶有獨立構件的分布式,并可能是異構的系統。是由獨立互操作構件構建的、非整體的、復雜應用系統,是由獨立互操作構件構建的、非整體的、復雜應用系統,系統具有較強的靈活性和可變更性系統具有較強的靈活性和可變更性n 運行機理:運行機理:服務器向代理者注冊自己,并使其服務通過接口能被客戶機使服務器向代理者注冊自己,并使其服務通過接口能被客戶機使用用客戶機通過代理者發送請求訪問服務器功能客戶機通過代理者發送請求訪問服務器功能代理者的任務包括:定位合適的服務器、將請求轉發到服務器、代理者的任務包括

49、:定位合適的服務器、將請求轉發到服務器、并向客戶機回送結果和異常并向客戶機回送結果和異常n 作用:作用:通過代理,應用程序只是簡單地向合適的對象通過代理,應用程序只是簡單地向合適的對象發出消息發出消息調用分調用分布在網絡上的服務,而布在網絡上的服務,而無須無須將重點放在將重點放在低級進程間通訊低級進程間通訊代理將對象模型從代理將對象模型從單一單一應用程序應用程序擴展擴展到由運行在到由運行在異構機異構機上的上的不不同語言同語言編寫的獨立構件組成的編寫的獨立構件組成的分布式分布式應用程序應用程序Mail:wyh_52522022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結

50、構模式.3、SASA模式模式-代理者代理者(7)(7)n CORBA(Common CORBA(Common Object Broker Architecture): Object Broker Architecture):是是OMGOMG定義的,處理異構系統上的分布式對象的面定義的,處理異構系統上的分布式對象的面向對象技術。向對象技術。nOLE2.XOLE2.XnWWWWWW是世界上最大的可用代理系統是世界上最大的可用代理系統n應用:應用:Mail:wyh_53532022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SAS

51、A模式模式-代理者代理者(7)(7)優點優點缺點缺點定位透明定位透明效率受到限制效率受到限制(額外的中間層帶來的)構件的可變性和系統的可擴展性構件的可變性和系統的可擴展性容錯性差容錯性差(執行期間服務器或代理的失效導致依賴于它們的程序將無法繼續進行下去)不同代理系統之間的互操作性不同代理系統之間的互操作性(代理本來是要實現協議轉換的)測試和調試涉及許多構件,比較測試和調試涉及許多構件,比較麻煩麻煩系統的可移植性系統的可移植性可復用性可復用性(體現在集成方便)Mail:wyh_54542022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SAS

52、A模式模式-微核微核(microkernal(microkernal) (8) (8)ClientClientdoTaskExternal External ServerServerreceiveRequestdispatchRequestexecuteServiceInternal ServerInternal ServerexecuteServicereceiveRequestAdapterAdaptercallServicecreateRequestMicrokernalMicrokernalexecuteMechanisminitCommunicationfindReceivercre

53、ateHandlesendMessagecallInternalServercalls servicesend requestInitializes Initializes communicationcommunicationcallsactivatesMail:wyh_55552022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-微核微核(8)(8)n微核:封裝了應用的基本服務。具有支持其它構件在一微核:封裝了應用的基本服務。具有支持其它構件在一個獨立進程中運行時互相個獨立進程中運行時互相通訊通訊的功能;負責維護的功能;負

54、責維護資源資源,如文件、進程等;提供其它構件存取其功能的如文件、進程等;提供其它構件存取其功能的接口接口。n內部服務器:實現了在微核中不能實現的核心功能內部服務器:實現了在微核中不能實現的核心功能( (出于出于復雜性的考慮復雜性的考慮) )n每個外部服務器:是一個獨立的進程,即應用程序平臺,每個外部服務器:是一個獨立的進程,即應用程序平臺,它通過微核的接口獲得的機制實現自己的基本功能它通過微核的接口獲得的機制實現自己的基本功能n客戶機通過使用微核提供的通訊能力與外部服務器通訊客戶機通過使用微核提供的通訊能力與外部服務器通訊n一個微核系統可以被看成集成了其它應用平臺的公共應一個微核系統可以被看成

55、集成了其它應用平臺的公共應用支撐平臺用支撐平臺Mail:wyh_56562022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-微核微核(8)(8)nOSOS,諸如,諸如MS-WindowsMS-Windows:核心包括進程和線程的管理,:核心包括進程和線程的管理,低級低級I/OI/O,點到點通訊服務等,點到點通訊服務等n部分部分DBMSDBMS,諸如,諸如MKDE(Microkernel DatenbankMKDE(Microkernel Datenbank Engine)Engine),微核提供物理數據存取,事務管理等,微

56、核提供物理數據存取,事務管理等應用:應用:Mail:wyh_57572022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-微核微核(8)(8)優點優點缺點缺點可移植性可移植性(微核不移植和移植兩種情況)性能性能(微核支持不同的視圖,與只提供特定視圖的系統相比,一般性能要低)適應性和可擴展性適應性和可擴展性(只需填加一個外部服務器)設計和實現的復雜性設計和實現的復雜性策略與機制的分離策略與機制的分離(微核提供機制,外部服務器實現策略)Mail:wyh_58582022年年7月月4日日22時時48分分P2-4P2-4、體系結構模

57、式、體系結構模式.3、SASA模式模式-C/SC/S與與B/S (9)B/S (9)DB_serverclientMail:wyh_59592022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-C/SC/S與與B/S (9)B/S (9)App_serverclientDB_serverclientclientDB_serverMail:wyh_60602022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-C/SC/S與與B/S (9)B/

58、S (9)App_serverclientDB_serverclientclientDB_serverwww_serverMail:wyh_61612022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式- - C/SC/S與與B/S (9)B/S (9)n服務器構件:向多個客戶提供服務。服務器構件:向多個客戶提供服務。n客戶構件:向服務器請求服務。客戶構件:向服務器請求服務。n連接件:某種進程間通信機制連接件:某種進程間通信機制。n但但偏向于偏向于“集中集中”式,是分布式應用的式,是分布式應用的“雛雛形形”Mail:wyh_6

59、2622022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式- - C/SC/S與與B/S (9)B/S (9)是目前應用系統的主流結構是目前應用系統的主流結構應用:應用:Mail:wyh_63632022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式- - C/SC/S與與B/S (9)B/S (9)優點優點缺點缺點系統的可維護性和可擴展性強系統的可維護性和可擴展性強(層次的劃分使邏輯上相對獨立)運行效率低運行效率低(額外的中間層帶來的,特別是三層以上)有利

60、于系統平臺的靈活選擇,具有利于系統平臺的靈活選擇,具有良好的開放性有良好的開放性開發效率高開發效率高(各層可并行開發)安全性高安全性高(諸如非法者很難繞過功能層訪問數據層)Mail:wyh_64642022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、SASA模式模式-正交軟件體系結構正交軟件體系結構(10)(10)A AB BC CF FG GK KD DE E第第1 1層層第第2 2層層第第3 3層層第第4 4層層Mail:wyh_65652022年年7月月4日日22時時48分分P2-4P2-4、體系結構模式、體系結構模式.3、S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論