




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第3 3章章 軟件體系結構的風格軟件體系結構的風格 風格概述風格概述 經典軟件體系結構風格經典軟件體系結構風格 案例研究案例研究 C/SC/S風格風格 瀏覽器瀏覽器/ /服務器風格服務器風格 定義定義第第3 3章章 軟件體系結構風格軟件體系結構風格3.1 3.1 軟件體系結構風格概述軟件體系結構風格概述 軟件體系結構風格是描述某一特定應用領域中系統(tǒng)軟件體系結構風格是描述某一特定應用領域中系統(tǒng)組織方式的組織方式的慣用模式慣用模式。 體系結構風格反映了領域中眾多系統(tǒng)所體系結構風格反映了領域中眾多系統(tǒng)所共有的結構共有的結構和語義特性和語義特性,并指導如何將各個模塊和子系統(tǒng)有效地組,并指導如何將各個
2、模塊和子系統(tǒng)有效地組織成一個完整的系統(tǒng)??棾梢粋€完整的系統(tǒng)。 體系結構風格組成:體系結構風格定義了一個系統(tǒng)體系結構風格組成:體系結構風格定義了一個系統(tǒng)家族,即一個體系結構風格定義家族,即一個體系結構風格定義一個詞匯表一個詞匯表和和一組約束一組約束。詞匯表中包含一些構件和連接件類型,而這組約束指出詞匯表中包含一些構件和連接件類型,而這組約束指出系統(tǒng)是如何將這些構件和連接件組合起來的。系統(tǒng)是如何將這些構件和連接件組合起來的。 討論體系結構風格時要回答的問題討論體系結構風格時要回答的問題第第3 3章章 軟件體系結構風格軟件體系結構風格3.1 3.1 軟件體系結構風格概述軟件體系結構風格概述 構件和連
3、接件的類型是什么?構件和連接件的類型是什么? 可容許的結構模式是什么?可容許的結構模式是什么? 基本的計算模型是什么?基本的計算模型是什么? 其使用的常見例子是什么?其使用的常見例子是什么? 使用此風格的優(yōu)缺點是什么?使用此風格的優(yōu)缺點是什么? 經典的體系結構風格經典的體系結構風格 第第3 3章章 軟件體系結構風格軟件體系結構風格3.1 3.1 軟件體系結構風格概述軟件體系結構風格概述 數據流風格:批處理序列;數據流風格:批處理序列;管道管道/ /過濾器過濾器。 調用調用/ /返回風格:主程序返回風格:主程序/ /子程序;子程序;面向對象風格面向對象風格;層層次結構次結構。 獨立構件風格:進程
4、通訊;獨立構件風格:進程通訊;事件系統(tǒng)事件系統(tǒng)。 虛擬機風格:虛擬機風格:解釋器解釋器;基于規(guī)則的系統(tǒng)。;基于規(guī)則的系統(tǒng)。 倉庫風格:數據庫系統(tǒng);超文本系統(tǒng);倉庫風格:數據庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)黑板系統(tǒng)。 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.1 3.1 軟件體系結構風格概述軟件體系結構風
5、格概述 語境語境:數據源源不斷的產生,系統(tǒng)需要對數據進行若干處理(如:數據源源不斷的產生,系統(tǒng)需要對數據進行若干處理(如分析、計算、轉換等)。分析、計算、轉換等)。 解決方案:解決方案: 把系統(tǒng)分解成幾個連貫的處理步驟,這些處理步驟之間通過把系統(tǒng)分解成幾個連貫的處理步驟,這些處理步驟之間通過數據流連接,一個步驟的輸出是后續(xù)步驟的輸入;數據流連接,一個步驟的輸出是后續(xù)步驟的輸入; 每個處理步驟由一個過濾器構件(每個處理步驟由一個過濾器構件(FilterFilter)實現;)實現; 處理步驟之間的數據流連接由管道(處理步驟之間的數據流連接由管道(PipePipe)負責。)負責。 管道和過濾器管道和
6、過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 管道和過濾器風格的基本組成管道和過濾器風格的基本組成 構件構件- -過濾器:每個構件都有一組輸入和輸出,構件讀輸入的數過濾器:每個構件都有一組輸入和輸出,構件讀輸入的數據流,經過內部處理,然后產生輸出數據流(據流,經過內部處理,然后產生輸出數據流(計算模型計算模型)。這個過)。這個過程通常通過對程通常通過對輸入流的變換輸入流的變換及及增量計算增量計算來完成,所以在輸入被完全來完成,所以在輸入被完全消費之前,輸出便產生了。消費之前,輸出便產生了。 連接件連接件- -管道:將一個過濾器
7、的輸出傳到另一過濾器的輸入(管道:將一個過濾器的輸出傳到另一過濾器的輸入(計計算模型算模型),管道中轉發(fā)的數據流是特定類型的對象流。),管道中轉發(fā)的數據流是特定類型的對象流。 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 過濾器對數據流的五種轉換類型過濾器對數據流的五種轉換類型 目標:將源數據變換成目標數據。目標:將源數據變換成目標數據。 從數據流到數據流的轉換:從數據流到數據流的轉換: 通過計算和增加信息來豐富數據;通過計算和增加信息來豐富數據; 通過濃縮和刪減信息來精煉數據;通過濃縮和刪減信息來精煉數據;
8、 通過改變數據表示方式來轉化數據;通過改變數據表示方式來轉化數據; 將一個數據流分解成多個數據流;將一個數據流分解成多個數據流; 將多個數據流合并成一個數據流。將多個數據流合并成一個數據流。 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 過濾器讀取和處理數據流的方式過濾器讀取和處理數據流的方式 遞增的讀取和消費數據流:即在輸入被完全消費前,輸出便產遞增的讀取和消費數據流:即在輸入被完全消費前,輸出便產生了生了 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體
9、系結構風格經典軟件體系結構風格 過濾器的基本特征:過濾器的基本特征: 過濾器是獨立實體,過濾器之間不共享狀態(tài)過濾器是獨立實體,過濾器之間不共享狀態(tài) 無上下文信息無上下文信息 不保留狀態(tài)不保留狀態(tài) 對其他過濾器無任何了解對其他過濾器無任何了解 可使用數據緩沖區(qū)保存數據流可使用數據緩沖區(qū)保存數據流 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 管道:管道: 作用作用- -在過濾器之間傳送數據,具有以下特征:在過濾器之間傳送數據,具有以下特征: 單向流單向流 可以具有緩沖區(qū)可以具有緩沖區(qū) 管道形成傳輸圖管道形成傳輸
10、圖 不同管道中流動的數據流具有不同格式不同管道中流動的數據流具有不同格式 原因:數據在流過每個過濾器時,由過濾器進行豐富、提煉、原因:數據在流過每個過濾器時,由過濾器進行豐富、提煉、轉化、融合、分解等操作,因而發(fā)生變化轉化、融合、分解等操作,因而發(fā)生變化 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 數據流的分類:是什么力量驅動數據流在管道中傳輸?數據流的分類:是什么力量驅動數據流在管道中傳輸? 推式推式pushpush:前面的過濾器將新產生的數據推入管道:前面的過濾器將新產生的數據推入管道 拉式拉式pull
11、pull:隨后的過濾器從管道中拉出所需數據:隨后的過濾器從管道中拉出所需數據 推拉式:過濾器以循環(huán)的方式,從管道中拉出其輸入數據,并推拉式:過濾器以循環(huán)的方式,從管道中拉出其輸入數據,并將其處理產生的數據壓入后續(xù)管道將其處理產生的數據壓入后續(xù)管道 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 過濾器的分類:主動和被動過濾器的分類:主動和被動 主動過濾器:驅動數據流動,主動過濾器:驅動數據流動,pull + pushpull + push 被動過濾器:被管道中的輸入或輸出數據流所驅動被動過濾器:被管道中的輸入或
12、輸出數據流所驅動 注意:系統(tǒng)中至少有一個主動過濾器注意:系統(tǒng)中至少有一個主動過濾器(可以來自外部環(huán)境,如(可以來自外部環(huán)境,如用戶輸入)用戶輸入) 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 被動過濾器所采用的兩被動過濾器所采用的兩種策略種策略 采用拉式策略的被動過濾采用拉式策略的被動過濾器:在后續(xù)過濾器的拉動作用器:在后續(xù)過濾器的拉動作用下執(zhí)行下執(zhí)行 采用推式策略的被動過濾采用推式策略的被動過濾器:在前續(xù)過濾器的推動作用器:在前續(xù)過濾器的推動作用下執(zhí)行下執(zhí)行 管道和過濾器管道和過濾器 第第3 3章章 軟件
13、體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 采用推式策略的被動過濾器:采用推式策略的被動過濾器: 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 采用拉式策略的被動過濾器:采用拉式策略的被動過濾器: 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 混合型的管道過濾器:混合型的管道過濾器: 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體
14、系結構風格經典軟件體系結構風格 帶有緩沖區(qū)的帶有緩沖區(qū)的混合型管道過濾器:混合型管道過濾器: 管道和過濾器管道和過濾器 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 過濾器的狀態(tài)過濾器的狀態(tài) 停止狀態(tài)停止狀態(tài):表示過濾器處于待啟動狀態(tài),當外部啟動過濾:表示過濾器處于待啟動狀態(tài),當外部啟動過濾器,過濾器處于處理狀態(tài);器,過濾器處于處理狀態(tài); 處理狀態(tài)處理狀態(tài):表示過濾器正在處理輸入隊列中的數據;:表示過濾器正在處理輸入隊列中的數據; 等待狀態(tài)等待狀態(tài):表示輸入數據隊列為空:表示輸入數據隊列為空 管道和過濾器風格的優(yōu)點管道和過濾器風格的優(yōu)
15、點 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 使得軟構件具有良好的使得軟構件具有良好的隱蔽性和高內聚、低耦合隱蔽性和高內聚、低耦合的特點;的特點; 允許設計者將整個系統(tǒng)的輸入允許設計者將整個系統(tǒng)的輸入/ /輸出行為看成是多個過濾器的輸出行為看成是多個過濾器的行為的行為的簡單合成簡單合成; 支持軟件重用支持軟件重用。只要提供適合在兩個過濾器之間傳送的數據,。只要提供適合在兩個過濾器之間傳送的數據,任何兩個過濾器都可被連接起來;任何兩個過濾器都可被連接起來; 系統(tǒng)維護和增強系統(tǒng)性能簡單系統(tǒng)維護和增強系統(tǒng)性能簡單。新的過濾器可以添加到現
16、有系。新的過濾器可以添加到現有系統(tǒng)中來;舊的可以被改進的過濾器替換掉;統(tǒng)中來;舊的可以被改進的過濾器替換掉; 允許對一些如吞吐量、死鎖等屬性的分析;允許對一些如吞吐量、死鎖等屬性的分析; 支持并行執(zhí)行支持并行執(zhí)行。每個過濾器是作為一個單獨的任務完成,因此。每個過濾器是作為一個單獨的任務完成,因此可與其它任務并行執(zhí)行??膳c其它任務并行執(zhí)行。 管道和過濾器的缺點管道和過濾器的缺點 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 通常導致進程成為批處理的結構。通常導致進程成為批處理的結構。這是因為雖然過濾器可增這是因為雖然過濾器可增量式地處理
17、數據,但它們是獨立的,所以設計者必須將每個過量式地處理數據,但它們是獨立的,所以設計者必須將每個過濾器看成一個完整的從輸入到輸出的轉換;濾器看成一個完整的從輸入到輸出的轉換; 不適合處理交互的應用。不適合處理交互的應用。當需要增量地顯示改變時,這個問當需要增量地顯示改變時,這個問題尤為嚴重;題尤為嚴重; 因為在數據傳輸上沒有通用的標準,因為在數據傳輸上沒有通用的標準,每個過濾器都增加了解每個過濾器都增加了解析和合成數據的工作,這樣就導致了系統(tǒng)性能下降析和合成數據的工作,這樣就導致了系統(tǒng)性能下降,并增加了,并增加了編寫過濾器的復雜性。絕大部分時間都消耗在格式轉換上。編寫過濾器的復雜性。絕大部分時
18、間都消耗在格式轉換上。 管道和過濾器例子管道和過濾器例子-媒體播放器媒體播放器第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 管道和過濾器例子管道和過濾器例子通訊設備通訊設備第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 管道和過濾器例子管道和過濾器例子編譯器編譯器第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 輸入:預處理之后的源代碼。輸入:預處理之后的源代碼。 詞法分析:負責將源程序分解成一個一個的詞法分析:負責將源程
19、序分解成一個一個的tokentoken,這些,這些tokentoken是組是組成源程序的基本單元。成源程序的基本單元。 語法分析:把詞法分析得到的語法分析:把詞法分析得到的tokentoken解析成語法樹。解析成語法樹。 語義分析:對語法樹進行類型檢查等語義分析。語義分析:對語法樹進行類型檢查等語義分析。 代碼優(yōu)化:對語法樹進行重組和修改,以優(yōu)化代碼的速度和大小。代碼優(yōu)化:對語法樹進行重組和修改,以優(yōu)化代碼的速度和大小。 代碼產生:根據語法樹產生匯編代碼。代碼產生:根據語法樹產生匯編代碼。 輸出:匯編代碼。輸出:匯編代碼。 管道和過濾器例子管道和過濾器例子Unix ShellUnix Shel
20、l命令命令第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 輸入:輸入:cat a.txt | wc-w | lprcat a.txt | wc-w | lpr CatCat命令,輸出文件命令,輸出文件 WcWc,統(tǒng)計輸入流中單詞的個數,統(tǒng)計輸入流中單詞的個數 LprLpr,打印命令,打印命令 功能:統(tǒng)計功能:統(tǒng)計a.txta.txt中單詞的個數并打印出來中單詞的個數并打印出來 數據抽象和面向對象風格數據抽象和面向對象風格 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 系統(tǒng)給看做
21、對象的集合;系統(tǒng)給看做對象的集合; 每個對象都有自己的功能集合,數據及作用在數據每個對象都有自己的功能集合,數據及作用在數據上的操作被封裝成抽象數據類型上的操作被封裝成抽象數據類型-對象對象 數據抽象和面向對象風格數據抽象和面向對象風格 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 面向過程和面向對象的區(qū)別面向過程和面向對象的區(qū)別 數據抽象和面向對象風格數據抽象和面向對象風格 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 面向對象的原理是面向對象的原理是抽象數據類型(抽象數據
22、類型(ADT),ADT是一種數學是一種數學規(guī)約,包含一組數據和作用在數據上的一組操作,能實現對用規(guī)約,包含一組數據和作用在數據上的一組操作,能實現對用戶信息的隱藏,只對外提供必要的接口。戶信息的隱藏,只對外提供必要的接口。 這種風格的這種風格的構件構件是是對象對象,或者說是,或者說是抽象數據類型的實例抽象數據類型的實例。 連接件連接件:對象之間通過:對象之間通過功能與函數調用功能與函數調用實現交互。實現交互。 面向對象系統(tǒng)的優(yōu)點面向對象系統(tǒng)的優(yōu)點第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 復用和維護:利用封裝和聚合提高生產力;復用和
23、維護:利用封裝和聚合提高生產力; 反映現實世界;反映現實世界; 更容易的分解系統(tǒng)更容易的分解系統(tǒng) 面向對象系統(tǒng)的缺點面向對象系統(tǒng)的缺點第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 為了使一個對象和另一個對象通過過程調用等進為了使一個對象和另一個對象通過過程調用等進行交互,必須知道對象的標識。只要一個對象的標識行交互,必須知道對象的標識。只要一個對象的標識改變了,就必須修改所有其他明確調用它的對象;改變了,就必須修改所有其他明確調用它的對象; 繼承引起復雜性,關鍵系統(tǒng)中慎用。繼承引起復雜性,關鍵系統(tǒng)中慎用。 基于事件的隱式調用基于事件的
24、隱式調用 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 基本思想:構件基本思想:構件不直接調用不直接調用一個過程,而是一個過程,而是觸發(fā)或廣播一觸發(fā)或廣播一個或多個事件個或多個事件。系統(tǒng)中的其它構件中的過程。系統(tǒng)中的其它構件中的過程在一個或多個事件在一個或多個事件中注冊中注冊,當一個事件被觸發(fā),系統(tǒng)自動調用在這個事件中注冊,當一個事件被觸發(fā),系統(tǒng)自動調用在這個事件中注冊的所有過程,這樣,的所有過程,這樣,一個事件的觸發(fā)就導致了另一模塊中的過一個事件的觸發(fā)就導致了另一模塊中的過程的調用。程的調用。 這種風格的這種風格的主要特點是事件的觸
25、發(fā)者并不知道哪些構件會主要特點是事件的觸發(fā)者并不知道哪些構件會被這些事件影響被這些事件影響。 這樣不能假定構件的處理順序,甚至不知道哪些過程會被這樣不能假定構件的處理順序,甚至不知道哪些過程會被調用;調用; 各個構件之間彼此無直接的連接關系,彼此獨立,通過對各個構件之間彼此無直接的連接關系,彼此獨立,通過對事件的發(fā)布和注冊實現關聯。事件的發(fā)布和注冊實現關聯。 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 事件系統(tǒng)的基本構成和工作原理事件系統(tǒng)的基本構成和工作原理 基于事件的隱式調用基于事件的隱式調用第
26、第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 事件系統(tǒng)的基本構成事件系統(tǒng)的基本構成 構件:對象或過程,并提供以下元素構件:對象或過程,并提供以下元素 過程或函數,充當事件源或事件處理器的角色過程或函數,充當事件源或事件處理器的角色 事件事件 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 事件系統(tǒng)的連接機制事件系統(tǒng)的連接機制 過程(事件過程器)向特定事件注冊;過程(事件過程器)向特定事件注冊; 構件發(fā)布事件;構件發(fā)布事件; 當某些事件發(fā)布時,向
27、其注冊的過程被隱式調用;當某些事件發(fā)布時,向其注冊的過程被隱式調用; 調用的次序是不確定的。調用的次序是不確定的。 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 事件系統(tǒng)的分類事件系統(tǒng)的分類- -按調度策略進行分類按調度策略進行分類 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 事件派遣模塊事件派遣模塊- -廣播式廣播式 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格
28、3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 事件派遣模塊事件派遣模塊- -選擇廣播式選擇廣播式 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 選擇廣播式選擇廣播式- -點對點點對點 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 選擇廣播式選擇廣播式- -點對點點對點 系統(tǒng)安裝并配置一個隊列管理器,并定義一個命名的消息隊系統(tǒng)安裝并配置一個隊列管理器,并定義一個命名的消息隊列;列; 某個應用向消
29、息隊列注冊,以監(jiān)聽并處理消息隊列中的事件;某個應用向消息隊列注冊,以監(jiān)聽并處理消息隊列中的事件; 其他應用鏈接到該隊列并向其中發(fā)布事件;其他應用鏈接到該隊列并向其中發(fā)布事件; 隊列管理器存儲這些消息,直到接收端的應用連接到隊列,隊列管理器存儲這些消息,直到接收端的應用連接到隊列,取回這些消息并加以處理;取回這些消息并加以處理; 消息只能夠被唯一的消費者所消費,消費后從隊列中刪除。消息只能夠被唯一的消費者所消費,消費后從隊列中刪除。 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 選擇廣播式選擇廣播式-
30、 -發(fā)布發(fā)布/ /訂閱訂閱 事件發(fā)布者向主題發(fā)布事件,事件訂閱者向主題訂閱事件,事件發(fā)布者向主題發(fā)布事件,事件訂閱者向主題訂閱事件,一個事件可以被多個訂閱者消費,事件發(fā)送給訂閱者后不會立一個事件可以被多個訂閱者消費,事件發(fā)送給訂閱者后不會立即刪除,即刪除,topictopic會在事件過期后再刪除。會在事件過期后再刪除。 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 無獨立調度模塊的事件系統(tǒng)無獨立調度模塊的事件系統(tǒng) 被稱為被觀察者被稱為被觀察者/ /觀察者(觀察者(Observer/Observabl
31、eObserver/Observable);); 每個模塊都允許其他模塊對自己所發(fā)布的事件感興趣;每個模塊都允許其他模塊對自己所發(fā)布的事件感興趣; 當某一模塊發(fā)出事件時,自動將事件發(fā)布給注冊過此事件的當某一模塊發(fā)出事件時,自動將事件發(fā)布給注冊過此事件的模塊。模塊。 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 無獨立調度模塊的事件系統(tǒng)無獨立調度模塊的事件系統(tǒng) 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格
32、優(yōu)點:優(yōu)點: 支持支持隱式調用隱式調用,無需事先設定調用次序;,無需事先設定調用次序; 異步執(zhí)行異步執(zhí)行,不必同步等待執(zhí)行結果;,不必同步等待執(zhí)行結果; 為為軟件重用軟件重用提供了強大的支持。當需要將一個構件加入現存提供了強大的支持。當需要將一個構件加入現存系統(tǒng)中時,只需將它注冊到系統(tǒng)的事件中。系統(tǒng)中時,只需將它注冊到系統(tǒng)的事件中。 為為系統(tǒng)動態(tài)演化系統(tǒng)動態(tài)演化帶來了方便。構件獨立存在,當用一個構件帶來了方便。構件獨立存在,當用一個構件代替另一個構件時,不會影響到其它構件的接口。代替另一個構件時,不會影響到其它構件的接口。 健壯性健壯性:一個構件出錯并不會影響其他構件:一個構件出錯并不會影響其
33、他構件 基于事件的隱式調用基于事件的隱式調用第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 缺點:缺點: 構件放棄了對構件放棄了對系統(tǒng)計算的控制系統(tǒng)計算的控制。一個構件觸發(fā)一個事件時,。一個構件觸發(fā)一個事件時,不能確定其它構件是否會響應它。而且即使它知道事件注冊了不能確定其它構件是否會響應它。而且即使它知道事件注冊了哪些構件的構成,它也不能保證這些過程被調用的順序。哪些構件的構成,它也不能保證這些過程被調用的順序。 數據交換的問題數據交換的問題。數據可通過事件在系統(tǒng)中直接傳遞(無調。數據可通過事件在系統(tǒng)中直接傳遞(無調度模塊時),而其他
34、時候數據則需要調度模塊傳遞。在這些情度模塊時),而其他時候數據則需要調度模塊傳遞。在這些情況下,全局性能和資源管理便成了問題。況下,全局性能和資源管理便成了問題。 系統(tǒng)的系統(tǒng)的驗證和調試驗證和調試變得困難。變得困難。 基于事件的隱式調用舉例基于事件的隱式調用舉例-debugger-debugger 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 基于事件的隱式調用舉例基于事件的隱式調用舉例-debugger-debugger 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 基于事
35、件的隱式調用舉例基于事件的隱式調用舉例-JAVA-JAVA第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 基于事件的隱式調用舉例基于事件的隱式調用舉例-MVC-MVC第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 分層系統(tǒng)分層系統(tǒng) 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 在層次系統(tǒng)中,系統(tǒng)被組織成若干個層次,每個層次由一系列在層次系統(tǒng)中,系統(tǒng)被組織成若干個層次,每個層次由一系列構件組成。構件組成。 下層構件為上層構
36、件服務下層構件為上層構件服務 上層構件被看做下層構件的客戶上層構件被看做下層構件的客戶 分層系統(tǒng)分層系統(tǒng) 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 越靠近底層(硬件和越靠近底層(硬件和OSOS),抽象級別越高,越通用;),抽象級別越高,越通用;越靠近頂層(用戶),抽象級別越低,越具體。越靠近頂層(用戶),抽象級別越低,越具體。 分層系統(tǒng)分層系統(tǒng) 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 分層系統(tǒng)的構成:分層系統(tǒng)的構成: 構件:各層次內部包含的構件構件:各層次內部包含的
37、構件 連接件:層間的交互協(xié)議連接件:層間的交互協(xié)議 拓撲結構:分層拓撲結構:分層 拓撲約束:對相鄰層交互的約束拓撲約束:對相鄰層交互的約束 分層系統(tǒng)的優(yōu)點分層系統(tǒng)的優(yōu)點 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 支持基于支持基于抽象程度遞增的系統(tǒng)設計抽象程度遞增的系統(tǒng)設計,使設計者可以把一個復,使設計者可以把一個復雜系統(tǒng)按遞增的步驟進行分解;雜系統(tǒng)按遞增的步驟進行分解; 支持功能增強支持功能增強,因為每一層至多和相鄰的上下層交互,因此,因為每一層至多和相鄰的上下層交互,因此功能的改變最多影響相鄰的上下層;功能的改變最多影響相鄰的上
38、下層; 支持重用支持重用。只要提供的服務接口定義不變,同一層的不同實。只要提供的服務接口定義不變,同一層的不同實現可以交換使用。這樣,就可以定義一組標準的接口,而允許現可以交換使用。這樣,就可以定義一組標準的接口,而允許各種不同的實現方法;各種不同的實現方法; 對標準化的支持對標準化的支持。清晰定義并廣泛接受的抽象層次能促進實。清晰定義并廣泛接受的抽象層次能促進實現標準化的任務和接口開發(fā),同樣接口的不同實現可以互換。現標準化的任務和接口開發(fā),同樣接口的不同實現可以互換。 分層系統(tǒng)的缺點分層系統(tǒng)的缺點 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體
39、系結構風格 并不是每個系統(tǒng)都可以很容易地劃分為分層的模并不是每個系統(tǒng)都可以很容易地劃分為分層的模式,甚至即使一個系統(tǒng)的邏輯結構是層次化的,出于式,甚至即使一個系統(tǒng)的邏輯結構是層次化的,出于對系統(tǒng)性能的考慮,系統(tǒng)設計師不得不把一些低級或對系統(tǒng)性能的考慮,系統(tǒng)設計師不得不把一些低級或高級的功能綜合起來;高級的功能綜合起來; 效率的降低;效率的降低; 很難找到一個合適的、正確的層次抽象方法。很難找到一個合適的、正確的層次抽象方法。 分層系統(tǒng)舉例分層系統(tǒng)舉例UnixUnix操作系統(tǒng)操作系統(tǒng) 第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 分層系
40、統(tǒng)舉例分層系統(tǒng)舉例-OSI-OSI第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 國際標準國際標準(7層)層)因特網標準因特網標準(4層)層) 分層系統(tǒng)舉例分層系統(tǒng)舉例C/SC/S第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 分層系統(tǒng)舉例分層系統(tǒng)舉例典型信息系統(tǒng)分層典型信息系統(tǒng)分層第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 分層系統(tǒng)舉例分層系統(tǒng)舉例B/SB/S第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3
41、.2 經典軟件體系結構風格經典軟件體系結構風格 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 倉庫風格倉庫風格 倉庫倉庫(Repositories)(Repositories)風格的體系結構由兩種構件組成:一個風格的體系結構由兩種構件組成:一個中中央數據結構央數據結構,它表示當前狀態(tài);一個,它表示當前狀態(tài);一個獨立構件的集合獨立構件的集合,它對中央,它對中央數據結構進行操作。數據結構進行操作。 倉庫風格中倉庫風格中連接件連接件為:倉庫和獨立構件間的交互。為:倉庫和獨立構件間的交互。 對倉庫中所存儲的
42、數據進行對倉庫中所存儲的數據進行CRUDCRUD操作;操作; 各構件的執(zhí)行次序預先確定,取決于各構件向倉庫發(fā)出的請求各構件的執(zhí)行次序預先確定,取決于各構件向倉庫發(fā)出的請求 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 黑板風格黑板風格 對于系統(tǒng)中數據和狀態(tài)的對于系統(tǒng)中數據和狀態(tài)的控制方法控制方法有兩種。一個傳統(tǒng)的方法是,有兩種。一個傳統(tǒng)的方法是,由輸入事務選擇進行何種處理,并把執(zhí)行結果作為當前狀態(tài)存儲由輸入事務選擇進行何種處理,并把執(zhí)行結果作為當前狀態(tài)存儲到中央數據結構中。這時,倉庫是一個傳統(tǒng)的到中
43、央數據結構中。這時,倉庫是一個傳統(tǒng)的數據庫體系結構數據庫體系結構。另一種方法是,由中央數據結構的當前狀態(tài)決定進行何種處理。另一種方法是,由中央數據結構的當前狀態(tài)決定進行何種處理。這時,倉庫是一個這時,倉庫是一個黑板黑板(Blackbord)(Blackbord)體系結構體系結構,即黑板體系結構是,即黑板體系結構是倉庫體系結構的特殊化倉庫體系結構的特殊化。 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 黑黑板板(共共享享數數據據)知知識識源源知知識識源源知知識識源源知知識識源源計計算算內內存存直直接接
44、存存取取黑板風格的基本結構黑板風格的基本結構 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 黑板體系結構模型通常由黑板體系結構模型通常由3 3部分組成部分組成: 知識源:待解決的問題被分解成若干小問題,每個小問題由獨知識源:待解決的問題被分解成若干小問題,每個小問題由獨立知識源負責計算。每個知識源包含獨立的領域知識。多個知識立知識源負責計算。每個知識源包含獨立的領域知識。多個知識源之間只能通過黑板交換知識源之間只能通過黑板交換知識- -通過對黑板的的讀寫操作完成。通過對黑板的的讀寫操作完成。 黑板數
45、據結構:反映應用程序求解狀態(tài)的數據。它是按照黑板數據結構:反映應用程序求解狀態(tài)的數據。它是按照層次層次結構結構組織的,這種層次結構依賴于應用程序的類型。知識源不斷組織的,這種層次結構依賴于應用程序的類型。知識源不斷地對黑板數據進行修改,直到得出問題的解。黑板數據結構起到地對黑板數據進行修改,直到得出問題的解。黑板數據結構起到了知識源之間的通信機制的作用。了知識源之間的通信機制的作用。 控制器:控制控制器:控制( (即對知識源的調用即對知識源的調用) )是由黑板的狀態(tài)決定的。一是由黑板的狀態(tài)決定的。一旦黑板數據的改變使得某個知識源成為可用的,知識源就會被控旦黑板數據的改變使得某個知識源成為可用的
46、,知識源就會被控制模塊激活??刂破鬟€承擔著限制知識源代理對黑板訪問的工作,制模塊激活。控制器還承擔著限制知識源代理對黑板訪問的工作,以防止兩個代理同時寫入黑板的某一空間。以防止兩個代理同時寫入黑板的某一空間。 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 黑板結構黑板結構 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 黑板風格舉例:拼圖游戲黑板風格舉例:拼圖游戲 倉庫系統(tǒng)和黑板風格倉庫系統(tǒng)和黑板風格第第3
47、 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 優(yōu)點優(yōu)點:便于多客戶便于多客戶共享大量數據共享大量數據,它們不用關心數據是何時有的、誰,它們不用關心數據是何時有的、誰提供的、怎樣提供的。提供的、怎樣提供的。既便于既便于添加添加新的作為知識源代理的應用程序,也便于新的作為知識源代理的應用程序,也便于擴展擴展共享共享的黑板數據結構。的黑板數據結構。 缺點:缺點:不同的知識源代理對于共享數據結構要達成一致,而且,這也不同的知識源代理對于共享數據結構要達成一致,而且,這也造成對黑板數據結構的修改較為困難造成對黑板數據結構的修改較為困難要考慮到各個代理
48、的調要考慮到各個代理的調用。用。需要一定的同步需要一定的同步/ /加鎖機制保證數據結構的完整性和一致性,增加鎖機制保證數據結構的完整性和一致性,增大了系統(tǒng)復雜度。大了系統(tǒng)復雜度。 倉庫系統(tǒng)舉例倉庫系統(tǒng)舉例數據庫系統(tǒng)數據庫系統(tǒng)第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 倉庫系統(tǒng)舉例倉庫系統(tǒng)舉例注冊表注冊表第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 倉庫系統(tǒng)舉例倉庫系統(tǒng)舉例剪貼板剪貼板第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件
49、體系結構風格 黑板風格舉例黑板風格舉例語音識別語音識別第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 Hearsay Hearsay 語音識別項目。該系統(tǒng)以自然語言的語音信號為輸語音識別項目。該系統(tǒng)以自然語言的語音信號為輸入,經過音節(jié)、詞匯、句法和語義等多個方面的分析,得到用戶入,經過音節(jié)、詞匯、句法和語義等多個方面的分析,得到用戶對數據庫的查詢請求。對數據庫的查詢請求。 模型模型- -視圖視圖- -控制器控制器(MVC)(MVC)風格風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結
50、構風格 模型模型- -視圖視圖- -控制器風格常被簡稱為控制器風格常被簡稱為MVCMVC風格風格(Model-View-(Model-View-Controller style)Controller style),主要處理軟件用戶界面開發(fā)中所面臨的問,主要處理軟件用戶界面開發(fā)中所面臨的問題。題。 模型模型- -視圖視圖- -控制器控制器(MVC)(MVC)風格風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 MVCMVC將交互式應用劃分為將交互式應用劃分為3 3種構件。種構件。 視圖:視圖:為用戶顯示模型信息。視圖從模型獲取數據,一個
51、模型為用戶顯示模型信息。視圖從模型獲取數據,一個模型可以對應有多個視圖。可以對應有多個視圖。 模型:模型:模型是應用程序的核心。它封裝內核數據與狀態(tài),對模模型是應用程序的核心。它封裝內核數據與狀態(tài),對模型的修改將擴散到所有視圖中。所有需要從模型獲取信息的對象型的修改將擴散到所有視圖中。所有需要從模型獲取信息的對象都必須注冊為模型的視圖。都必須注冊為模型的視圖。 控制器:控制器:控制器接受用戶的輸入并調用模型和視圖去完成用戶控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求。控制器本身不輸出任何東西和做任何處理,它只是接收的需求??刂破鞅旧聿惠敵鋈魏螙|西和做任何處理,它只是接收請求并決定調用哪
52、個模型構件去處理請求,然后再確定用哪個視請求并決定調用哪個模型構件去處理請求,然后再確定用哪個視圖來顯示返回的數據。圖來顯示返回的數據。 模型模型- -視圖視圖- -控制器控制器(MVC)(MVC)風格風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 模型模型- -視圖視圖- -控制器風格具有如下優(yōu)點:控制器風格具有如下優(yōu)點:將各方面問題分解開來考慮,簡化了系統(tǒng)設計,保證了系統(tǒng)的將各方面問題分解開來考慮,簡化了系統(tǒng)設計,保證了系統(tǒng)的可擴展性。可擴展性。改變界面不影響應用程序的功能內核,使得系統(tǒng)易于演化開發(fā),改變界面不影響應用程序的功能
53、內核,使得系統(tǒng)易于演化開發(fā),可維護性好。可維護性好。易于改變,甚至可以在運行時改變,提供了良好的動態(tài)機制。易于改變,甚至可以在運行時改變,提供了良好的動態(tài)機制。 模型模型- -視圖視圖- -控制器控制器(MVC)(MVC)舉例舉例第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 JAVA SwingJAVA Swing 模型:存儲內容模型:存儲內容 視圖:顯示內容視圖:顯示內容 控制器:控制輸入控制器:控制輸入 模型模型- -視圖視圖- -控制器控制器(MVC)(MVC)舉例舉例第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.
54、2 經典軟件體系結構風格經典軟件體系結構風格 Java WebJava Web 模型模型- -視圖視圖- -控制器控制器第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 常用常用MVCMVC框架框架 StrutsStruts: ApacheApache的,曾經最流行的的,曾經最流行的MVCMVC組件組件 Struts2 Struts2 :ApacheApache用用Struts Struts 和和 WebWorkWebWork的組合出來的新產品,的組合出來的新產品,目前非常流行目前非常流行 Spring MVC Spring MVC:Sp
55、ringFrameworkSpringFramework自己整合自己自己整合自己SpringSpring的優(yōu)勢推的優(yōu)勢推出的出的MVCMVC組件,用戶也不少組件,用戶也不少 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 問題:你認為問題:你認為JAVAJAVA最吸引人的特性是什么?最吸引人的特性是什么?Write Once , Run Anyway. Write Once , Run Anyway. 一次書寫,多次運行一次書寫,多次運行 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3
56、.2 經典軟件體系結構風格經典軟件體系結構風格 問題:問題:JAVAJAVA為什么支持平臺無關?為什么支持平臺無關?JAVA JAVA 虛擬機虛擬機 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 什么是虛擬機?什么是虛擬機? 虛擬機一種軟件;虛擬機一種軟件; 它創(chuàng)建一種虛擬環(huán)境;它創(chuàng)建一種虛擬環(huán)境; 將用戶和底層平臺隔離開來。將用戶和底層平臺隔離開來。 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 虛擬機的分類虛擬機的分類 系統(tǒng)級的虛擬
57、機:對系統(tǒng)級的虛擬機:對OSOS的模擬,把一個物理上獨立的機器虛的模擬,把一個物理上獨立的機器虛擬成多種不同的虛擬機,每個虛擬機可支持運行各自的操作系統(tǒng),擬成多種不同的虛擬機,每個虛擬機可支持運行各自的操作系統(tǒng),本質:在本質:在OSOS和硬件之間建立隔離;和硬件之間建立隔離; 硬件虛擬機硬件虛擬機 虛擬環(huán)境虛擬環(huán)境 計算機聚合計算機聚合 進程級的虛擬機:對單一程序的虛擬,其本質是在應用程序與進程級的虛擬機:對單一程序的虛擬,其本質是在應用程序與OSOS之間建立隔離。之間建立隔離。 應用程序虛擬機應用程序虛擬機 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2
58、經典軟件體系結構風格經典軟件體系結構風格 硬件虛擬機:硬件虛擬機: 問題:你在問題:你在LinuxLinux平臺下開發(fā)了一個復雜程序,但是目前你的平臺下開發(fā)了一個復雜程序,但是目前你的的電腦更新到了的電腦更新到了Windows7Windows7操作系統(tǒng),而你又不愿意花費大量時間操作系統(tǒng),而你又不愿意花費大量時間重新開發(fā)這個程序。如何解決?重新開發(fā)這個程序。如何解決? 硬件虛擬機硬件虛擬機 虛擬機最初的含義虛擬機最初的含義 在一個服務器上虛擬的構造若干個獨立的執(zhí)行環(huán)境,每個在一個服務器上虛擬的構造若干個獨立的執(zhí)行環(huán)境,每個虛擬環(huán)境支持一個虛擬環(huán)境支持一個OSOS內核的運行,這些內核的運行,這些O
59、SOS可以與服務器本可以與服務器本地的地的OSOS不同,從而允許一個不同,從而允許一個OSOS上書寫的應用程序可以在一上書寫的應用程序可以在一臺運行其他臺運行其他OSOS的機器上運行的機器上運行 當多個用戶在一臺計算機上工作時,每個用戶好像獨立的當多個用戶在一臺計算機上工作時,每個用戶好像獨立的使用該計算機的所有物理資源使用該計算機的所有物理資源 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 硬件虛擬機硬件虛擬機-VMware-VMware: 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.
60、2 3.2 經典軟件體系結構風格經典軟件體系結構風格 硬件虛擬機硬件虛擬機Microsoft Virtual ServerMicrosoft Virtual Server: 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 硬件虛擬機硬件虛擬機Cooperative LinuxCooperative Linux: 解釋器風格解釋器風格第第3 3章章 軟件體系結構風格軟件體系結構風格3.2 3.2 經典軟件體系結構風格經典軟件體系結構風格 硬件虛擬機硬件虛擬機XGENXGEN: 解釋器風格解釋器風格第第3 3章章 軟件體
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡營銷產品課件
- 裝修人工費變更管理合同
- 住宅裝修終止合同協(xié)議
- 腫瘤科普宣傳課件
- 2024深圳市中嘉職業(yè)技術學校工作人員招聘考試及答案
- 2024漯河市舞陽中等專業(yè)學校工作人員招聘考試及答案
- 2024河南省駐馬店財經學校工作人員招聘考試及答案
- 新能源汽車租賃合同
- 商品采購合同書范例
- 公共綠地養(yǎng)護承包合同樣本
- 2021北師大版小學二年級下冊《人與自我》教案
- 【人教版】《勞動教育實踐活動手冊》四年級下冊 勞動項目一 課件
- 二十屆三中全會知識點試題及答案【200題】
- 高級衛(wèi)生專業(yè)技術資格考試病媒生物控制技術(096)(副高級)自測試卷及解答參考
- 2023年山東青島局屬高中自主招生物理試卷真題(含答案詳解)
- CBL聯合情景模擬人文護理查房
- 二級建造師繼續(xù)教育模擬考試題庫500題(含答案)
- LY/T 3371-2024草原生態(tài)狀況評價技術規(guī)范
- 民政局發(fā)布的離婚協(xié)議書樣本
- 《系統(tǒng)思維解決問題》
- 2023年全國統(tǒng)一高考語文試卷(全國甲卷)(含答案與解析)
評論
0/150
提交評論