軟件體系結(jié)構(gòu)_第1頁
軟件體系結(jié)構(gòu)_第2頁
軟件體系結(jié)構(gòu)_第3頁
軟件體系結(jié)構(gòu)_第4頁
軟件體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、軟件體系結(jié)構(gòu)1 軟件體系結(jié)構(gòu)的概念2 軟件體系結(jié)構(gòu)的設(shè)計3 特定領(lǐng)域的體系結(jié)構(gòu)4 分布式軟件體系結(jié)構(gòu) 11.1 軟件體系結(jié)構(gòu)的定義一個程序或計算機系統(tǒng)的軟件體系結(jié)構(gòu)包括一個或一組軟件構(gòu)件、軟件構(gòu)件的外部可見特性及其相互關(guān)系。軟件構(gòu)件的外部可見特性是指軟件構(gòu)件提供的服務、性能、特性、錯誤處理、共享資源使用等。軟件體系結(jié)構(gòu)的基本單位是軟件構(gòu)件,軟件構(gòu)件是一個軟件體系結(jié)構(gòu)的核心。1 軟件體系結(jié)構(gòu)的概念2軟件構(gòu)件可以是子系統(tǒng),也可以是模塊。在它們之間沒有清晰的界限,但可以依據(jù)下列兩點加以區(qū)分:一個子系統(tǒng)獨立構(gòu)成系統(tǒng),不依賴其他子系統(tǒng)提供的服務。子系統(tǒng)由模塊或更小的子系統(tǒng)構(gòu)成。子系統(tǒng)之間的交互通過它們的

2、接口。一個模塊通常是一個能提供一個或多個服務的系統(tǒng)構(gòu)件,它能夠利用其他模塊提供的服務,一般不被看成一個獨立的系統(tǒng),模塊可以由更簡單的模塊組成。3概念結(jié)構(gòu):從主要設(shè)計元素(構(gòu)件)及其相互關(guān)聯(lián)、設(shè)計原則和性能角度考慮的結(jié)構(gòu)。模塊結(jié)構(gòu):根據(jù)功能分解建立模塊的層次結(jié)構(gòu)包括模塊接口、模塊管理、模塊控制和一致性等問題。代碼結(jié)構(gòu):描述源程序,二進制程序,庫文件。在開發(fā)環(huán)境下的組織包括系統(tǒng)資源配置管理,系統(tǒng)構(gòu)造和對象嵌入機制 OEM 等。執(zhí)行結(jié)構(gòu):描述系統(tǒng)的動態(tài)結(jié)構(gòu)包括性能、調(diào)度、動態(tài)配置和不同系統(tǒng)間的接口等。1.2 軟件體系結(jié)構(gòu)的不同形式41.3 在軟件構(gòu)件設(shè)計中應保持的性質(zhì)計算功能:描述構(gòu)件所實現(xiàn)的整體功

3、能。結(jié)構(gòu)特性:描述特定構(gòu)件定義、構(gòu)件打包的方式和相互交互的方式,構(gòu)件如何組織以構(gòu)成整個系統(tǒng)。附屬功能:描述構(gòu)件的執(zhí)行效率、處理能力、環(huán)境假設(shè)、全局特性等,包括時間要求、空間要求、精確度、安全性、保密性、帶寬、吞吐率、最低硬軟件要求等。家族特性:描述相同和相關(guān)構(gòu)件之間的關(guān)系。5純計算構(gòu)件: 具有簡單輸入輸出關(guān)系,沒有運行狀態(tài)變化如數(shù)值計算、過濾器、轉(zhuǎn)換器等。存儲構(gòu)件: 存放共享的、永久性的、結(jié)構(gòu)化的數(shù)據(jù)。如數(shù)據(jù)庫、文件、符號表、超文本等。管理構(gòu)件: 執(zhí)行操作與運行狀態(tài)緊密相關(guān)。如抽象數(shù)據(jù)類型、面向?qū)ο笙到y(tǒng)中的對象、服務器等。1.4 軟件構(gòu)件分類6控制構(gòu)件: 管理其它構(gòu)件運行的時間、時機及次序。例

4、如,調(diào)度器、同步器等。鏈接構(gòu)件: 在實體之間傳遞信息。例如,通信機制、用戶界面等。過程調(diào)用: 在某一特定執(zhí)行路徑中傳遞執(zhí)行指針。如普通過程調(diào)用、遠程過程調(diào)用。數(shù)據(jù)流: 相互獨立的處理通過數(shù)據(jù)流進行交互,在得到數(shù)據(jù)的同時被賦予控制權(quán)限。如 UNIX 系統(tǒng)中的管道。1.5 構(gòu)件之間的連接方式7間接激活: 處理因事件的發(fā)生而激活,在處理間沒有直接交互。例如,事件驅(qū)動系統(tǒng)、自動垃圾回收等。消息傳遞: 相互獨立的處理間有明確交互,通過顯式數(shù)據(jù)傳遞。傳遞可以是同步的,也可以是異步的。如TCP/IP 。共享數(shù)據(jù): 構(gòu)件通過同一數(shù)據(jù)空間進行并發(fā)操作。如多用戶數(shù)據(jù)庫, 數(shù)據(jù)黑板。82 軟件體系結(jié)構(gòu)的設(shè)計軟件體系

5、結(jié)構(gòu)的設(shè)計過程是為系統(tǒng)建立一個基本架構(gòu)。它包括識別系統(tǒng)的主要構(gòu)件和這些構(gòu)件之間的通信。設(shè)計過程的主要活動系統(tǒng)構(gòu)造:將系統(tǒng)分解為一系列基本的子系統(tǒng),每一子系統(tǒng)是獨立的軟件成分??刂平#航⑾到y(tǒng)各部分之間的控制關(guān)系的一般模型。模塊分解:將子系統(tǒng)進一步分解為模塊。92.1 系統(tǒng)構(gòu)造 (System Structuring)體系結(jié)構(gòu)設(shè)計的第一步是將系統(tǒng)分解為一系列相互作用的子系統(tǒng)。在最抽象層次,系統(tǒng)可視為一個方框圖,圖中每個方框表示一個子系統(tǒng)。每個方框內(nèi)的方框表明子系統(tǒng)本身還可分解為子系統(tǒng)。箭頭表示一個子系統(tǒng)向另一子系統(tǒng)傳送數(shù)據(jù)或控制。下圖是一個組裝機器人的系統(tǒng)構(gòu)造。10組裝機器人控制系統(tǒng)的方框圖視

6、覺系統(tǒng)對象識別系統(tǒng)手臂控制器機械爪控制器組裝選擇系統(tǒng)組裝系統(tǒng)傳送帶控制器11體系結(jié)構(gòu)方框圖表示一個系統(tǒng)結(jié)構(gòu)的概貌,軟件工程師很容易理解它。這種方框圖的缺點是沒有反映系統(tǒng)構(gòu)件之間關(guān)系的本質(zhì),沒有表明系統(tǒng)的外部特性。根據(jù)各子系統(tǒng)如何共享數(shù)據(jù)、如何分布、如何相互交互,可開發(fā)更加特定的模型。數(shù)據(jù)倉庫模型 客戶機/ 服務器模型抽象機模型121) 數(shù)據(jù)倉庫模型 (repository model)所有共享數(shù)據(jù)都存放于數(shù)據(jù)庫中, 這些數(shù)據(jù)可為所有子系統(tǒng)存取。每個子系統(tǒng)保有各自的數(shù)據(jù)庫,通過傳送消息,可在子系統(tǒng)之間交換數(shù)據(jù)。大量的數(shù)據(jù)圍繞一個共享數(shù)據(jù)庫或數(shù)據(jù)倉庫來組織。這種系統(tǒng)主要適用于控制系統(tǒng),信息管理系統(tǒng)

7、,CAD系統(tǒng),CASE工具集。13集成的CASE工具集的體系結(jié)構(gòu)以數(shù)據(jù)倉庫為核心設(shè)計分析器報告生成器項目數(shù)據(jù)倉庫設(shè)計編輯器代碼生成器設(shè)計翻譯器程序編輯器14這種體系結(jié)構(gòu)包括數(shù)據(jù)庫、超文本系統(tǒng)及數(shù)據(jù)黑板系統(tǒng)等。它包含兩種成分:一是共享的結(jié)構(gòu)化數(shù)據(jù);二是所有訪問這些數(shù)據(jù)的操作。如果是因為輸入數(shù)據(jù)而引起對共享數(shù)據(jù)的操作,那么這種控制策略下的體系結(jié)構(gòu)就叫做數(shù)據(jù)庫。如果是由共享數(shù)據(jù)的當前狀態(tài)觸發(fā)相應的處理,那么這種體系結(jié)構(gòu)就叫做數(shù)據(jù)黑板。為此,需要存儲特定知識。15數(shù)據(jù)倉庫模型可共享大量數(shù)據(jù),在子系統(tǒng)之間無須進行數(shù)據(jù)轉(zhuǎn)換。子系統(tǒng)的數(shù)據(jù)模型必須與數(shù)據(jù)倉庫的數(shù)據(jù)模型保持一致。如果一個新子系統(tǒng)的數(shù)據(jù)模型與數(shù)據(jù)

8、倉庫的數(shù)據(jù)模型沖突,很難將它集成到系統(tǒng)中來。不同的子系統(tǒng)對保密性、恢復和備份有不同的要求,而數(shù)據(jù)倉庫模型將迫使所有子系統(tǒng)采用相同的策略。162) 客戶機/服務器模型 (client/server model)這是一種分布式系統(tǒng)模型, 表明各種數(shù)據(jù)和處理如何分布到各個處理器上。有一組功能各自獨立的服務器,為其他子系統(tǒng)提供服務,如打印服務器,文件服務器,編譯服務器等。有一組客戶機, 它們調(diào)用服務器提供的服務,也可能存在一些客戶機,可并發(fā)執(zhí)行的客戶機程序。有一個網(wǎng)絡, 使得客戶機能夠訪問服務器。17film & picture library系統(tǒng)的體系結(jié)構(gòu)CatalogueserverVodiose

9、rverPictureserverHypertextserverCatalogueFilm clipfilesHypertextwebWide - bandwidth network Client 1Client 2Client 3Client 4Digitisedphotographs18在多用戶超文本系統(tǒng)中存在若干服務器,它們管理和顯示不同媒體的數(shù)據(jù)。Vidio服務器要求高傳輸率和同步,但對分辨率要求相對較低。Picture要求高分辨率。Catalogue要求能處理大量查詢并提供對超文本信息系統(tǒng)的鏈接??蛻魴C程序較為簡單,是對以上服務器的集成化的用戶界面。19客戶機 / 服務器方法可用來實

10、現(xiàn)基于數(shù)據(jù)倉庫的系統(tǒng),由數(shù)據(jù)倉庫作為服務器提供系統(tǒng)服務。各子系統(tǒng)作為客戶訪問數(shù)據(jù)倉庫,但各子系統(tǒng)還有自己的數(shù)據(jù)管理功能。服務器與客戶間交換數(shù)據(jù)以執(zhí)行處理。對于大量的數(shù)據(jù)交換,可通過高速網(wǎng)絡來解決性能問題。客戶機 / 服務器系統(tǒng)多用于具有多個分布式處理器的網(wǎng)絡系統(tǒng)。20它易于 增加一個新的服務器并將其與系統(tǒng)的其他集成在一起。 系統(tǒng)中服務器的升級對用戶是透明的,且不影響系統(tǒng)的其他部分。213) 抽象機模型 (abstract machine model)一個體系結(jié)構(gòu)的抽象機模型也稱為層次模型。此模型可以建立各個子系統(tǒng)的接口,它把系統(tǒng)組織成一系列的層次,每一層次提供一組服務,定義一個抽象機。每一個抽

11、象機由其下一層的抽象機的代碼構(gòu)成。例如,網(wǎng)絡協(xié)議的參考模型 OSI 即為典型的層次模型,而TCP/IP 通信協(xié)議則為四層的層次模型。22以太網(wǎng)IPTCPFTP以太網(wǎng)IPTCPFTPFTP協(xié)議TCP協(xié)議IP協(xié)議以太網(wǎng)協(xié)議物理連接應用層傳輸層TCP/IP 通信的層次模型23版本管理系統(tǒng)的例子版本管理系統(tǒng)用于管理對象的版本。為支持配置管理,它使用一個對象管理系統(tǒng)來操作對象的信息存儲和服務。對象管理系統(tǒng)又使用數(shù)據(jù)庫系統(tǒng)操作基本數(shù)據(jù)存儲和服務,如事務管理、滾回、恢復和控制存取。數(shù)據(jù)庫管理系統(tǒng)在其實現(xiàn)時又使用操作系統(tǒng)工具和文件堆。24Operating SystemDatabase Mana-gement

12、 SystemObject Management SystemVersion Management System25抽象機模型支持系統(tǒng)抽象程度遞增的系統(tǒng)開發(fā),具有可變更性和可移植性。當一個層次開發(fā)出來后,就可以為其上層提供有效的某些服務。如果接口是預定義的,則一個層次可為另一個層次所替換。若一個層次的接口發(fā)生變更,僅相鄰層次受到影響。層次系統(tǒng)將機器依賴性局部化到它的內(nèi)部層次上。26基于復用的層次式體系結(jié)構(gòu)層次式結(jié)構(gòu)中,每一層向其上層提供服務,并利用下層的服務。在層次系統(tǒng)中,內(nèi)部層次全部被隱藏起來,只有外部層次或某些功能可以為外部可見。層次之間交互的通信協(xié)議構(gòu)成層次間的連接;對層次之間交互的限制

13、構(gòu)成其拓撲約束。27用戶應用系統(tǒng)基本工具內(nèi)核過程調(diào)用不同元素組合常見的層次結(jié)構(gòu)28四層式軟件體系結(jié)構(gòu)應用軟件層特定業(yè)務層中間件層系統(tǒng)軟件層各個應用的各種變型各個應用系統(tǒng)各個構(gòu)件庫系統(tǒng) (針對特定論域、特定業(yè)務)不依賴平臺的低層構(gòu)件等特定的平臺軟件:操作系統(tǒng)等29最高層是應用系統(tǒng)層,此層包含多個應用系統(tǒng);應用系統(tǒng)可以通過其接口與其他系統(tǒng)操作,還可以通過低層軟件提供的服務或?qū)ο?(如操作系統(tǒng)、特定業(yè)務服務) 間接地與其他系統(tǒng)交互操作。次高層是“特定業(yè)務”層,此層應當包括專門針對不同業(yè)務類型的一系列構(gòu)件庫系統(tǒng)。這樣的構(gòu)件庫系統(tǒng)向用戶提供可復用的使用事例和對象構(gòu)件,用于開發(fā)應用系統(tǒng)。特定業(yè)務層的軟件建

14、立在中間件之上。30中間件層位于次高層下面,它為次高層的各個構(gòu)件庫系統(tǒng)提供實用軟件類,以及不依賴于平臺的服務。最低層是系統(tǒng)軟件層,此層包括計算機和網(wǎng)絡等基礎(chǔ)設(shè)施軟件,如操作系統(tǒng)、專用的硬件接口軟件等。為了確保分層式系統(tǒng)可管理,規(guī)定在一個系統(tǒng)內(nèi),不能從低層復用高層的構(gòu)件。312.2 控制模型 (Control model)系統(tǒng)構(gòu)造模型涉及到一個系統(tǒng)如何分解為子系統(tǒng)作為一個整體,必須對各子系統(tǒng)加以控制,使得它們的服務能夠在正確的時刻被導向到正確的地方。系統(tǒng)構(gòu)造模型沒有涉及,也不應涉及控制信息,必須按照控制模型組織各子系統(tǒng),并滿足系統(tǒng)構(gòu)造模型的要求。在體系結(jié)構(gòu)層次上的控制模型應考慮子系統(tǒng)之間的控制流

15、。321) 集中控制模型 (centralised control model)在集中控制模型中,將一個子系統(tǒng)設(shè)計為系統(tǒng)控制器,其職責是管理其他子系統(tǒng)的執(zhí)行。集中控制模型分為兩類: 控制子系統(tǒng)順序執(zhí)行 控制子系統(tǒng)并發(fā)執(zhí)行作為集中控制器的子系統(tǒng)在將控制轉(zhuǎn)交給另一子系統(tǒng)后,該子系統(tǒng)完成它的功能后控制權(quán)還要歸還給集中控制器子系統(tǒng)。33(1)調(diào)用-返回模型 (Call-Return model)此即熟悉的自頂向下的子程序模型??刂剖加谧映绦?qū)哟蔚捻敳浚ㄟ^子程序調(diào)用,從層次結(jié)構(gòu)較高層的程序向較低層的程序傳遞控制信息。程序執(zhí)行結(jié)束將向較高層的父程序返回。這種程序模型僅應用于順序系統(tǒng)。該模型可以在模塊層使

16、用,以控制函數(shù)或?qū)ο蟆?4控制的Call-Return模型Routine 1.1Routine 1.2Routine 3.1Routine 3.2Routine 1Routine 2Routine 3MainProgram35在調(diào)用- 返回系統(tǒng)結(jié)構(gòu)中, 每一層都只與上下相鄰的兩層通信,每一層在利用下層基礎(chǔ)服務的條件下,為上層提供服務。這種結(jié)構(gòu)的優(yōu)點是:提供逐步抽象的編程支持,支持復用及系統(tǒng)升級缺點是:不是所有的系統(tǒng)都適合于建成層次結(jié)構(gòu),不能提供最佳性能。36(2) 管理器模型 (manager model)這種模型應用于并發(fā)系統(tǒng)。模型中有一個系統(tǒng)構(gòu)件被設(shè)計為系統(tǒng)管理器,它控制開始、終止,并協(xié)調(diào)

17、其他系統(tǒng)進程。一個進程可以是子系統(tǒng),也可以是模塊,它可以與其他進程并行執(zhí)行。這種模型也可應用于順序系統(tǒng)。管理例程根據(jù)某些狀態(tài)變量的值調(diào)用特定的子系統(tǒng)。37一個實時系統(tǒng)的集中控制模型SensorprocessesActuatorprocessesComputationprocessesUserInterfaceFaultHandlerSystemcontroller38位于中央的系統(tǒng)控制器管理一組進程的執(zhí)行,這些進程管理傳感器、傳動裝置等。根據(jù)系統(tǒng)的狀態(tài)變量,系統(tǒng)控制器決定什么時候進程應該啟動或停止。系統(tǒng)控制器負責監(jiān)測哪些進程產(chǎn)生需要處理的信息,或哪些進程收到需要處理的信息。系統(tǒng)控制器不停地循環(huán)

18、,輪流檢測傳感器和其他進程的事件和狀態(tài)變化?;谏鲜龉δ?,有時將此模型稱為事件- 循環(huán)模型。392) 事件驅(qū)動系統(tǒng) (Event-driven system)集中控制模型通過一些系統(tǒng)狀態(tài)變量值決定控制的流向;事件驅(qū)動模型則是通過外部生成的事件來驅(qū)動系統(tǒng)。事件與簡單輸入間的區(qū)別在于事件的時序存在于事件處理進程控制的外部。一個子系統(tǒng)可能需要存取狀態(tài)信息來處理這些事件,但這些狀態(tài)信息通常并不決定控制的流向。廣播模型中斷驅(qū)動模型40(1) 廣播模型 (Broadcast model)在這種模型中,一個事件向所有的子系統(tǒng)廣播,由能夠處理此事件的子系統(tǒng)響應它。這種模型的控制策略不嵌入在事件和消息處理器內(nèi)。

19、子系統(tǒng)決定它需要哪些事件,而事件和消息處理器負責將事件發(fā)送給它們。在廣播模型中,子系統(tǒng)注冊有關(guān)特定事件的信息。一旦事件發(fā)生,控制將轉(zhuǎn)移到能夠處理該事件的子系統(tǒng)。41對于在網(wǎng)絡中跨越不同計算機分布的集成子系統(tǒng),廣播模型十分有效。所有事件可能會廣播給所有的子系統(tǒng),但會消耗大量的處理開銷。事件處理器通常還支持點對點通信。事件和消息處理器子系統(tǒng) 1子系統(tǒng) 2子系統(tǒng) 3子系統(tǒng) 442廣播模型的優(yōu)點是演進比較容易。新的子系統(tǒng)可以通過在事件與消息處理器中注冊它可以處理的事件來實現(xiàn)集成。任何子系統(tǒng)可以在不知道其他子系統(tǒng)名字或位置的情況下激活那些子系統(tǒng)。實時系統(tǒng)一定是事件驅(qū)動的,它要求快速處理外部生成的事件。4

20、3(2)中斷驅(qū)動模型 (Interrupt-driven model)這種模型專用于硬實時處理系統(tǒng)。系統(tǒng)中只有有限的幾種中斷類型。每一中斷都與中斷向量中的一個存儲位置相關(guān)聯(lián),該位置中存儲了相應中斷處理器的入口地址。當系統(tǒng)接收到一個特定類型的中斷時,硬件開關(guān)立即將控制以間址方式轉(zhuǎn)移到相應的中斷處理器,進行相應的中斷處理。中斷處理器對事件的響應將是啟動或停止其他某一進程。44InterruptsProcess1Handler1Process2Handler2Process3Handler3Process4Handler4Interruptvector這種模型可以嵌入到其他控制模型中使用,用以對事件

21、作出緊急反應。452.3 模塊分解 (Modular decomposition)在設(shè)計出一個結(jié)構(gòu)性體系結(jié)構(gòu)后,下一步就是將子系統(tǒng)分解為模塊。在系統(tǒng)分解和模塊分解之間沒有嚴格的區(qū)別。將子系統(tǒng)分解為模塊時用到兩種模型: 對象模型 數(shù)據(jù)流模型如有可能,應避免并發(fā)設(shè)計,因為順序設(shè)計在設(shè)計、編碼、驗證和測試都比較容易。461) 對象模型 (Object model)在對象模型中,將系統(tǒng)分解為一組對象。對象具有松散耦合和仔細定義的界面,對象的狀態(tài)是私有的,對象的操作是基于其狀態(tài)定義的。對象具有諸如封裝、隱蔽、繼承等良好的特性。對象必須自己維護其數(shù)據(jù)的一致性。對象是系統(tǒng)的構(gòu)件。因此對象分解的焦點在于對象類

22、、對象屬性及對象操作。實現(xiàn)時,對象就是從這些類中產(chǎn)生。47這種體系結(jié)構(gòu)的優(yōu)點是:將具體的實現(xiàn)部分隱蔽在對象中,使得代碼之間的獨立性很好,有利于將復雜的系統(tǒng)分解為相互操縱的子任務。缺點是:對象間進行一般的調(diào)用時必須知道對方的標識。如果一個對象的標識發(fā)生變化,所有顯式調(diào)用這個對象操作的地方都要修改。對象之間的同步等還缺乏現(xiàn)成的機制。48Customercustomer#nameaddresscredit periodPaymentinvoice#dateamountcustomer#Receiptinvoice#dateamountcustomer#Invoiceinvoice#dateamoun

23、tcustomer#issue()sendReminder()acceptPayment()sendReceipt()492) 數(shù)據(jù)流模型 (Data-flow model)在數(shù)據(jù)流模型中,將系統(tǒng)分解為一系列功能模塊。這種結(jié)構(gòu)包括批處理和管道及過濾器。在體系結(jié)構(gòu)中的每一個成份都有一套輸入和輸出數(shù)據(jù),都依輸入-變換-輸出的方式工作。進行數(shù)據(jù)變換的構(gòu)件叫做過濾器。把數(shù)據(jù)從一個過濾器的輸出導入到另一個過濾器的輸入,就叫做管道。50在系統(tǒng)中,各個過濾器必須是相互獨立的,每一個過濾器對它的上游或下游的過濾器的情況是不知道的,也不能做任何假設(shè)。如果要求最終的輸出結(jié)果與各個過濾器的執(zhí)行次序相關(guān),就是一個數(shù)據(jù)

24、流方式的體系結(jié)構(gòu)。這種結(jié)構(gòu)的優(yōu)點是:數(shù)據(jù)流程設(shè)計明確,直接支持復用,系統(tǒng)容易維護和升級,可以進行某些性能分析(如流量、死鎖等),容易支持并行計算。51invoices處理系統(tǒng)的數(shù)據(jù)流模型ReadissuedinvoicesIdentifypaymentsIssuereceiptsReceiptsFindpaymentsdueIssuepaymentreminderRemindersInvoicesPayments523 特定領(lǐng)域的體系結(jié)構(gòu)前面介紹的體系結(jié)構(gòu)模型都是一般的模型,可應用于各種不同類型的應用中。對于一個特殊的應用領(lǐng)域,還可使用特定于它的體系結(jié)構(gòu)模型,在開發(fā)新的系統(tǒng)時可以復用其公共體系

25、結(jié)構(gòu)。這種體系結(jié)構(gòu)模型即為特定領(lǐng)域的體系結(jié)構(gòu)。存在兩種特定領(lǐng)域的體系結(jié)構(gòu)模型:類屬模型 (Generic model)參考模型 (Reference model)533.1 類屬模型類屬模型是從許多實際系統(tǒng)中抽象出來的模型,它封裝了這些系統(tǒng)的主要特征。例如,在實時系統(tǒng)中,對于不同類型的系統(tǒng),如數(shù)據(jù)采集系統(tǒng)、監(jiān)控系統(tǒng)等,有它們各自的類屬模型。又例如,在語言的編譯器中包括有詞法分析器、語法分析器、語義分析器、代碼生成器等,還有在編譯過程中建立的符號表、語法樹等。存在不同的體系結(jié)構(gòu)模型組織編譯器的構(gòu)件。54編譯器的數(shù)據(jù)流模型編譯器可以使用復合模型實現(xiàn)。編譯器用數(shù)據(jù)流體系結(jié)構(gòu)實現(xiàn),處理流程按詞法分析語

26、法分析語義分析代碼生成的順序執(zhí)行,但處理共享數(shù)據(jù)時,使用了當作數(shù)據(jù)倉庫用的符號表。符號表詞法分析 語法分析 語義分析 代碼生成 55數(shù)據(jù)流模型在沒有用戶交互的批處理環(huán)境下執(zhí)行編譯十分有效。但當編譯器需要與其他語言處理工具,如編輯器、交互調(diào)試器、字體打印機等集成時效果不是很好。此時,編譯器可以使用基于數(shù)據(jù)倉庫的模型來組織類屬系統(tǒng)的構(gòu)件。在這種模型中,符號表、語法樹等起到中央信息倉庫的作用,各種工具或工具件的通信都經(jīng)過它。此外,有關(guān)程序的語法定義、輸出格式定義等都從工具中取出,歸入到數(shù)據(jù)倉庫中。 56語言處理系統(tǒng)的數(shù)據(jù)倉庫模型語法樹詞法分析器 語法分析器 語義分析器 字體打印機 編輯器 優(yōu)化器 代

27、碼生成器 語法定義符號表符號表數(shù)據(jù)倉庫573.2 參考模型一般的軟件體系結(jié)構(gòu)模型反映的是已有系統(tǒng)的體系結(jié)構(gòu),而參考模型反映了一大類系統(tǒng)的體系結(jié)構(gòu)。參考模型源于對應用領(lǐng)域的研究,它描述了一個理想化的包含了系統(tǒng)應具有的所有特征的軟件體系結(jié)構(gòu)。典型的例子是OSI參考模型。它描述了開放系統(tǒng)互連的標準。如果一個系統(tǒng)遵從這個標準,就可以與其他遵從該標準的系統(tǒng)互連。58通常,參考模型不能被正式看作是系統(tǒng)實現(xiàn)的方式,而主要使用它作為比較一個應用領(lǐng)域中不同系統(tǒng)之間異同的工具。OSI參考模型是一個七層模型。較低層主要實現(xiàn)物理連接,中間層主要實現(xiàn)數(shù)據(jù)傳輸,較高層實現(xiàn)帶有語義的應用信息的傳輸。 其他典型的參考模型有關(guān)

28、CASE環(huán)境的參考模型ECMA,關(guān)于軟件工廠的參考模型,某些設(shè)計模式等。59OSI參考模型的體系結(jié)構(gòu)應用層表示層對話層傳輸層網(wǎng)絡層數(shù)據(jù)鏈路層物理層網(wǎng)絡層數(shù)據(jù)鏈路層物理層應用層表示層對話層傳輸層網(wǎng)絡層數(shù)據(jù)鏈路層物理層通信介質(zhì)604 分布式系統(tǒng)體系結(jié)構(gòu)所有大型計算機系統(tǒng)現(xiàn)在都是分布式系統(tǒng)。分布式系統(tǒng)的信息處理分布在多個計算機上,而不是只限于單個計算機上。在分布式系統(tǒng)中,系統(tǒng)軟件運行于用網(wǎng)絡相連的一組松散地集成在一起的處理器上。例如,銀行的ATM系統(tǒng)、預定系統(tǒng)、群件(Groupware) 系統(tǒng)等。614.1 分布式系統(tǒng)的主要特征資源共享 允許硬件、軟件資源共享使用。開放性 是指系統(tǒng)通過非私有資源來擴

29、展自己的能力。分布式系統(tǒng)可包括來自不同廠家的硬件和軟件的兼容產(chǎn)品。并發(fā)性 在分布式系統(tǒng)中,在網(wǎng)絡的不同計算機上可同時運行多個進程,它們在運行期間可以互相通信??缮炜s性 分布式系統(tǒng)是可伸縮的,可以通過增加新的資源來滿足對系統(tǒng)的新的需求。62容錯性 具有多臺計算機和復制信息的潛能意味著分布式系統(tǒng)能夠容忍某些硬件或軟件的失效。在大多數(shù)系統(tǒng)中,當失效發(fā)生時會導致某些服務能力下降,只有當網(wǎng)絡失效時才完全喪失其服務能力。透明性 是指對用戶隱藏了系統(tǒng)的分布情況。用戶可以完全透明地訪問系統(tǒng)的資源而不必了解系統(tǒng)資源的分布。不過,在多數(shù)情況下,可以讓用戶了解一些有關(guān)系統(tǒng)組織的知識,這有助于用戶更好地使用這些資源。

30、634.2 典型的分布式系統(tǒng)的體系結(jié)構(gòu)1. 多處理器體系結(jié)構(gòu)多處理器系統(tǒng)由多個不同的進程組成,這些進程可以在不同的處理器上運行。例如,在實時系統(tǒng)中,采集信息、制訂決策、執(zhí)行控制等進程可以由調(diào)度器控制在同一臺處理器上運行,而使用多處理器則能夠改進系統(tǒng)的性能和彈性。進程分配到哪一臺處理器,可以是預先確定的,也可以用分配器控制進行分配。64傳感器控制進程控制室顯示進程交通燈光控制進程傳感器處理器交通流量處理器交通信號控制處理器多處理器交通控制系統(tǒng)多進程的軟件系統(tǒng)不一定是分布式系統(tǒng)。但如果有多個處理器可用,可考慮分布式實現(xiàn)。交通流量傳感器和攝像頭交通信號燈操作員控制臺652. 客戶機/服務器體系結(jié)構(gòu)在這種體系結(jié)構(gòu)中,一個應用程序被模型化為一組由服務器提供的服務和一組使用這些服務的客戶機??蛻魴C需要知道服務器的存在,但通常不知道其他客戶機的存在??蛻魴C與服務器是不同的進程。通常我們討論它們時,把它們當作邏輯進程,就是說,不關(guān)心它們物理上放在哪一臺計算機上。66客戶機/服務器體系結(jié)構(gòu)邏輯模型,進程與處理器之間不一定是一對一的映射。s1服務器進程客戶機進程c1c5c11c12c6c7c10s1網(wǎng)絡s2s3s4c

溫馨提示

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

評論

0/150

提交評論