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

下載本文檔

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

文檔簡介

第5章軟件體系結(jié)構(gòu)風(fēng)格(fēnggé)

1清華大學(xué)出版社共六十四頁內(nèi)容提要(nèirónɡtíyào)5.1 軟件體系結(jié)構(gòu)風(fēng)格概述5.2 軟件體系結(jié)構(gòu)基本風(fēng)格解析5.2.1 管道-過濾器 5.2.2 數(shù)據(jù)抽象與面向?qū)ο箫L(fēng)格 5.2.3 基于事件的隱式調(diào)用風(fēng)格5.2.4分層系統(tǒng)風(fēng)格5.2.5倉庫風(fēng)格和黑板(hēibǎn)風(fēng)格5.2.6模型-視圖-控制器(MVC)風(fēng)格5.2.7解釋器風(fēng)格5.2.8C2風(fēng)格5.3 案例研究5.3.1 案例1:上下文關(guān)鍵字 5.3.2 案例2:儀器軟件 5.3.3 平臺層PaaS和應(yīng)用程序?qū)覵aaS 2清華大學(xué)出版社共六十四頁5.4 客戶/服務(wù)器風(fēng)格5.5 三層C/S結(jié)構(gòu)風(fēng)格5.5.1 三層C/S結(jié)構(gòu)的優(yōu)點5.5.2 實例:某石油管理局勞動管理信息系統(tǒng)5.6B/S風(fēng)格5.7 C/S與B/S混合結(jié)構(gòu)風(fēng)格5.8 正交軟件體系結(jié)構(gòu)風(fēng)格5.8.1 正交軟件體系結(jié)構(gòu)的概念5.8.2 正交軟件體系結(jié)構(gòu)的優(yōu)點5.8.3 正交軟件體系結(jié)構(gòu)的實例5.9 基于層次消息總線的體系結(jié)構(gòu)風(fēng)格5.9.1 構(gòu)件模型5.9.2 構(gòu)件接口(jiēkǒu)5.9.3 消息總線5.9.4 構(gòu)件靜態(tài)結(jié)構(gòu)5.9.5 構(gòu)件動態(tài)行為5.9.6 運(yùn)行時刻的系統(tǒng)演化3清華大學(xué)出版社共六十四頁5.10 異構(gòu)結(jié)構(gòu)風(fēng)格5.10.1 使用(shǐyòng)異構(gòu)結(jié)構(gòu)的原因5.10.2 異構(gòu)體系結(jié)構(gòu)的實例5.10.3 異構(gòu)組合匹配問題5.11 小結(jié)4清華大學(xué)出版社共六十四頁5.1 軟件體系結(jié)構(gòu)風(fēng)格(fēnggé)概述

軟件體系結(jié)構(gòu)風(fēng)格,是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用(guànyòng)模式。體系結(jié)構(gòu)風(fēng)格定義一個系統(tǒng)家族,即一個體系結(jié)構(gòu)定義一個詞匯表和一組約束。詞匯表中包含了一些構(gòu)件和連接件類型,而這組約束指出系統(tǒng)是如何將這些構(gòu)件和連接件組合起來的。體系結(jié)構(gòu)風(fēng)格,反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特征,并指導(dǎo)如何將各個模塊和子系統(tǒng)有效地組織成一個完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語表和一組指導(dǎo)構(gòu)建系統(tǒng)的規(guī)則。5清華大學(xué)出版社共六十四頁5.2 軟件體系結(jié)構(gòu)基本(jīběn)風(fēng)格解析

5.2.1 管道(guǎndào)-過濾器適用于對有序數(shù)據(jù)進(jìn)行一系列已經(jīng)定義的相互計算的應(yīng)用程序。管道過濾器模式下,每個功能模塊都有一組輸入和輸出。功能模塊從輸入集合讀入數(shù)據(jù)流,并在輸出集合產(chǎn)生輸出數(shù)據(jù)流,即功能模塊對輸入數(shù)據(jù)流進(jìn)行增量計算得到輸出數(shù)據(jù)流。管道過濾器模式下,功能模塊稱作過濾器(filter);功能模塊間的連接可以看作輸入、輸出數(shù)據(jù)流之間的通路,所以稱作管道(pipe)。6清華大學(xué)出版社共六十四頁圖5-1管道(guǎndào)–過濾器風(fēng)格的體系結(jié)構(gòu)

7清華大學(xué)出版社共六十四頁采用管道-過濾器模式建立的系統(tǒng)主要有以下幾個(jǐɡè)優(yōu)點:(1)由于每個構(gòu)件的行為不受其他構(gòu)件的影響,因此,整個(zhěnggè)系統(tǒng)的行為比較易于理解。設(shè)計者可以將系統(tǒng)抽象成一個“黑匣子”,其輸入是系統(tǒng)中第一個過濾器的輸入管道,輸出是系統(tǒng)中最后一個過濾器的輸出管道,而其內(nèi)部各功能模塊的具體實現(xiàn)對用戶完全透明。(2)支持功能模塊的復(fù)用。任意兩個過濾器只要在相互的輸入、輸出管道格式上達(dá)成一致,就可以連接在一起。過濾器A和過濾器B只要對管道C中傳輸?shù)臄?shù)據(jù)格式達(dá)成一致就可以實現(xiàn)互連,其中過濾器A并不關(guān)心過濾器B如何處理管道C的內(nèi)容,而過濾器B也不知道管道C的內(nèi)容究竟是如何產(chǎn)生的,即在管道過濾器模式中,過濾器之間僅需很少的信息交換就可以完成互連。8清華大學(xué)出版社共六十四頁(3)具有較強(qiáng)的可維護(hù)性與可擴(kuò)展性??删S護(hù)性體現(xiàn)在系統(tǒng)過濾器部件的更新或升級。由于技術(shù)改進(jìn)等原因(yuányīn),過濾器A的實現(xiàn)發(fā)生了改變,采用新技術(shù)開發(fā)的過濾器D具有和A完全相同的輸入、輸出管道接口,這時可以直接將A替換為D,而無須對系統(tǒng)中的其他過濾器或管道進(jìn)行任何修改。9清華大學(xué)出版社共六十四頁圖5-2管道-過濾器支持(zhīchí)功能模塊復(fù)用圖5-3管道(guǎndào)-過濾器的可擴(kuò)展性10清華大學(xué)出版社共六十四頁(4)支持特殊的分析:如吞吐量計算和死鎖檢測等。利用管道-過濾器模式圖,可以很容易地得到系統(tǒng)的資源使用(shǐyòng)與請求狀態(tài)圖,然后,根據(jù)操作系統(tǒng)原理等相關(guān)理論中的死鎖檢測方法就可以分析出系統(tǒng)目前所處的狀態(tài),是否存在死鎖可能及如何消除死鎖等問題。(5)支持并發(fā)執(zhí)行?;诠艿?過濾器模式的系統(tǒng)存在很多并行的過濾器,這樣的系統(tǒng)在實際運(yùn)行時,可以將存在并發(fā)可能的多個過濾器看作多個并發(fā)的任務(wù)并行執(zhí)行,從而大大提高了系統(tǒng)的整體效率,加快了處理速度。當(dāng)然,在調(diào)度并行任務(wù)的時候,必須有相應(yīng)的并行算法作基礎(chǔ),否則,可能導(dǎo)致系統(tǒng)功能的混亂。11清華大學(xué)出版社共六十四頁5.2.2數(shù)據(jù)抽象與面向?qū)ο箫L(fēng)格(fēnggé)

圖5-4數(shù)據(jù)抽象與面向?qū)ο箫L(fēng)格(fēnggé)的體系結(jié)構(gòu)12清華大學(xué)出版社共六十四頁面向?qū)ο蟮南到y(tǒng)有許多優(yōu)點,并早已為人所知:

(1)因為對象對其他對象隱藏它的表示,所以可以改變一個對象的表示,而不影響其他的對象。(2)設(shè)計者可將一些數(shù)據(jù)存取操作的問題,分解成一些交互的代理程序的集合。但是,面向?qū)ο蟮南到y(tǒng)也存在著某些問題。

(1)為了使一個對象和另一個對象通過過程調(diào)用等進(jìn)行交互,必須知道對象的標(biāo)識,只要一個對象的標(biāo)識改變了,就必須修改所有其他明確(míngquè)調(diào)用它的對象。(2)必須修改所有顯式調(diào)用它的其他對象,并消除由此帶來的一些副作用。例如,如果A使用了對象B,C也使用了對象B,那么C對B的使用所造成的對A的影響,可能是預(yù)想不到的。13清華大學(xué)出版社共六十四頁5.2.3基于事件的隱式調(diào)用(diàoyòng)風(fēng)格

基于事件的隱式調(diào)用風(fēng)格(fēnggé)的思想是構(gòu)件不直接調(diào)用一個過程,而是觸發(fā)或廣播一個或多個事件。系統(tǒng)中的其他構(gòu)件中的過程在一個或多個事件中注冊,當(dāng)一個事件被觸發(fā),系統(tǒng)自動調(diào)用在這個事件中注冊的所有過程,這樣,一個事件的觸發(fā)就導(dǎo)致了另一模塊中的過程的調(diào)用。14清華大學(xué)出版社共六十四頁隱式調(diào)用系統(tǒng)的主要優(yōu)點(yōudiǎn)有以下兩點:為軟件重用提供了強(qiáng)大的支持。當(dāng)需要將一個構(gòu)件加入現(xiàn)存系統(tǒng)時,只需將它注冊到系統(tǒng)的事件中。為改進(jìn)系統(tǒng)帶來了方便(fāngbiàn)。當(dāng)用一個構(gòu)件代替另一個構(gòu)件時,不會影響到其他構(gòu)件的接口。15清華大學(xué)出版社共六十四頁隱式調(diào)用系統(tǒng)的主要缺點(quēdiǎn)有以下幾方面:

●構(gòu)件放棄了對系統(tǒng)計算的控制。一個構(gòu)件觸發(fā)一個事件時.不能確定其他構(gòu)件是否會響應(yīng)它。而且即使它知道事件注冊了哪些構(gòu)件的過程,它也不能保證這些過程被調(diào)用的順序。

●數(shù)據(jù)交換的問題。有時數(shù)據(jù)可被一個事件傳遞,但在另一些情況下,基于事件的系統(tǒng)必須(bìxū)依靠一個共享的倉庫進(jìn)行交互。在這些情況下,全局性能和資源管理便成了問題。

●既然過程的語義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理就存在問題。16清華大學(xué)出版社共六十四頁5.2.4 分層系統(tǒng)(xìtǒng)風(fēng)格

一個(yīɡè)分層風(fēng)格的系統(tǒng)按照層次結(jié)構(gòu)組織,每一層向它的上層提供服務(wù),同時又是它的下層客戶;在某些系統(tǒng)中,除了鄰接的層,一個(yīɡè)內(nèi)部層次對于其他外部層次是隱藏的,對體系結(jié)構(gòu)的約束包括把系統(tǒng)內(nèi)的交互限制在鄰接層次之間。交互只在相鄰的層間發(fā)生;同時,這些交互按照一定協(xié)議進(jìn)行。連接件可以用層次間的交互協(xié)議來定義。每個獨立層都要防止較高層直接訪問較低層。每一層次是由不同的部件構(gòu)成的實體集合。層內(nèi)的部件可以交互。相鄰層的部件可直接從上向下調(diào)用,還可以設(shè)計統(tǒng)一的層調(diào)用接口對層進(jìn)行保護(hù)。17清華大學(xué)出版社共六十四頁圖5-5分層模型(móxíng)18清華大學(xué)出版社共六十四頁5.2.5 倉庫風(fēng)格(fēnggé)和黑板風(fēng)格(fēnggé)

倉庫風(fēng)格的體系結(jié)構(gòu)由兩個構(gòu)件組成:一個中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu),它表示當(dāng)前狀態(tài);一個獨立構(gòu)件的集合,它對中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作。對于系統(tǒng)中數(shù)據(jù)和狀態(tài)的控制方法有兩種:一個傳統(tǒng)的方法是,由輸入事務(wù)選擇進(jìn)行何種處理,并把執(zhí)行結(jié)果作為當(dāng)前狀態(tài)存儲到中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)中,這時,倉庫是一個傳統(tǒng)的數(shù)據(jù)庫體系結(jié)構(gòu);另一種方法是,由中央(zhōngyāng)數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)決定進(jìn)行何種處理。這時,倉庫是一個黑板體系結(jié)構(gòu)。即黑板體系結(jié)構(gòu)是倉庫體系結(jié)構(gòu)的特殊化。19清華大學(xué)出版社共六十四頁(1)適應(yīng)的設(shè)計(shèjì)問題(2)解決方案20清華大學(xué)出版社共六十四頁“黑板”模式類似于這樣一個情形,即讓專家們坐在真實黑板前并一起工作來解決一個問題。每個專家獨立評估解法的當(dāng)前狀態(tài),并可在任何時間到黑板上添加、更改或刪除(shānchú)信息。人們往往要決定接下來誰去訪問黑板。在黑板模式中,如果可用的組件超過一個,仲裁者(moderator)組件決定程序執(zhí)行的順序。圖5-6黑板(hēibǎn)風(fēng)格的體系結(jié)構(gòu)21清華大學(xué)出版社共六十四頁從圖5-6中不難看出,一個標(biāo)準(zhǔn)的黑板型倉庫模式系統(tǒng)(xìtǒng)通常包括3個組成部分:(1)知識源:(2)中央數(shù)據(jù)單元:(3)控制單元:22清華大學(xué)出版社共六十四頁黑板(hēibǎn)風(fēng)格的體系結(jié)構(gòu)的優(yōu)點有:

◆便于多客戶共享大量數(shù)據(jù),它們不用關(guān)心數(shù)據(jù)是何時出現(xiàn)的、誰提供的、怎樣提供的?!艏缺阌谔砑有碌淖鳛橹R源代理的應(yīng)用程序,也便于擴(kuò)展共享的黑板數(shù)據(jù)結(jié)構(gòu)?!艨芍赜玫闹R源。知識源是某類任務(wù)(rènwu)的獨立專家。黑板體系結(jié)構(gòu)有助于使它們可重用。重用的先決條件是知識源和所基于的黑板系統(tǒng)理解相同的協(xié)議和數(shù)據(jù),或者在這方面相當(dāng)接近而不排斥協(xié)議或數(shù)據(jù)的自適應(yīng)程序?!糁С秩蒎e性和健壯性。在黑板體系結(jié)構(gòu)中,所有的結(jié)果都只是假設(shè)。只有那些被數(shù)據(jù)和其他假設(shè)強(qiáng)烈支持的才能生存。這提供了對噪聲數(shù)據(jù)和不確定結(jié)論的容忍。23清華大學(xué)出版社共六十四頁黑板風(fēng)格(fēnggé)的體系結(jié)構(gòu)的缺點有:不同的知識源代理對于共享數(shù)據(jù)結(jié)構(gòu)要達(dá)成一致,而且,這也造成對黑板數(shù)據(jù)結(jié)構(gòu)的修改較為困難。需要一定的同步(tóngbù)鎖機(jī)制保證數(shù)據(jù)結(jié)構(gòu)的完整性和一致性,增大了系統(tǒng)復(fù)雜度。測試?yán)щy。由于黑板系統(tǒng)的計算沒有依據(jù)一個確定的算法,所以其結(jié)果常常不可再現(xiàn)。此外,錯誤假設(shè)也是求解過程的一部分。不能保證有好的求解方案。一個黑板系統(tǒng)往往只能正確解決所給任務(wù)的某一百分比。難以建立一個好的控制策略??刂撇呗圆荒芤砸环N直接方式設(shè)計,而需要一種試驗的方法。24清華大學(xué)出版社共六十四頁低效。黑板系統(tǒng)在拒絕錯誤假設(shè)中要承受多余的計算開銷。但是(dànshì),如果沒有確定的算法存在,那么與根本不存在的系統(tǒng)相比,低效總比沒有強(qiáng)。開發(fā)成本高。絕大多數(shù)黑板系統(tǒng)要花幾年時間來進(jìn)化。我們把這歸因于病態(tài)結(jié)構(gòu)問題。25清華大學(xué)出版社共六十四頁5.2.6模型-視圖(shìtú)-控制器(MVC)風(fēng)格

1.MVC模式(móshì)

MVC由TrygveReenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。MVC結(jié)構(gòu)是為那些需要為同樣的數(shù)據(jù)提供多個視圖的應(yīng)用程序而設(shè)計的,它很好地實現(xiàn)了數(shù)據(jù)層與表示層的分離。作為一種開發(fā)模型,MVC通常用于分布式應(yīng)用系統(tǒng)的設(shè)計和分析中,以及用于確定系統(tǒng)各部分間的組織關(guān)系。對于界面設(shè)計可變性的需求,MVC(Model–View–Controller)把交互系統(tǒng)的組成分解成模型、視圖、控制器三種部件。26清華大學(xué)出版社共六十四頁2. MVC中的模型、視圖(shìtú)和控制類MVC中的模型、視圖和控制類如圖5-7所示。(1)模型類(2)視圖類(3)控制類27清華大學(xué)出版社共六十四頁模型類數(shù)據(jù)結(jié)構(gòu)關(guān)系變化-傳播注冊關(guān)系內(nèi)部數(shù)據(jù)和邏輯計算向視圖和控制器通知數(shù)據(jù)變化(a)視圖類顯示形式顯示模式控制從模型獲得數(shù)據(jù)視圖更新操作(b)控制類狀態(tài)事件控制控制視圖更新(c)28清華大學(xué)出版社共六十四頁3. MVC的實現(xiàn)實現(xiàn)基于MVC的應(yīng)用需要完成(wánchéng)以下工作,如圖5-8所示:圖5-8MVC的實現(xiàn)(shíxiàn)29清華大學(xué)出版社共六十四頁(1)分析應(yīng)用(yìngyòng)問題,對系統(tǒng)進(jìn)行分離(2)設(shè)計和實現(xiàn)每個視圖(3)設(shè)計和實現(xiàn)每個控制器(4)使用可安裝和卸載的控制器30清華大學(xué)出版社共六十四頁5.2.7 解釋器風(fēng)格(fēnggé)

解釋器風(fēng)格通常被用于建立一種虛擬機(jī)以彌合程序的語義與作為計算引擎的硬件的間隙。由于解釋器實際上創(chuàng)建了一個軟件虛擬出來的機(jī)器,所以這種風(fēng)格又常常被稱為虛擬機(jī)風(fēng)格。(例如:程序設(shè)計(chénɡxùshèjì)語言的編譯器,比如Java、Smalltalk等;基于規(guī)則的系統(tǒng),比如專家系統(tǒng)領(lǐng)域的Prolog等;腳本語言,比如Awk、Perl等。)31清華大學(xué)出版社共六十四頁圖5-9解釋器風(fēng)格(fēnggé)的體系結(jié)構(gòu)32清華大學(xué)出版社共六十四頁解釋器風(fēng)格的優(yōu)點如下:有助于應(yīng)用程序的可移植性與程序設(shè)計語言的跨平臺能力(nénglì);可以對未實現(xiàn)的硬件進(jìn)行仿真。解釋器風(fēng)格的缺點,

是額外的間接層次帶來的系統(tǒng)性能的下降。33清華大學(xué)出版社共六十四頁5.2.8 C2風(fēng)格(fēnggé)

C2體系結(jié)構(gòu)風(fēng)格可以概括為通過連接件綁定在一起的、按照(ànzhào)一組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。圖5-10C2風(fēng)格的體系結(jié)構(gòu)34清華大學(xué)出版社共六十四頁C2風(fēng)格,是最常用的一種軟件體系結(jié)構(gòu)風(fēng)格。從C2風(fēng)格的組織規(guī)則和結(jié)構(gòu)圖中可以得出,C2風(fēng)格具有以下特點:

系統(tǒng)中的構(gòu)件可實現(xiàn)(shíxiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一起。所有構(gòu)件之間的通信是通過以連接件為中介的異步消息交換機(jī)制來實現(xiàn)的。構(gòu)件相對獨立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。35清華大學(xué)出版社共六十四頁5.3 案例(ànlì)研究

5.3.1 案例1:上下文關(guān)鍵字(a)解決方案1:使用(shǐyòng)共享數(shù)據(jù)的主程序/子程序圖5-11KWIC:共享數(shù)據(jù)解決方案36清華大學(xué)出版社共六十四頁(b)解決方案2:抽象數(shù)據(jù)類型37清華大學(xué)出版社共六十四頁(c)解決方案3:隱式調(diào)用(diàoyòng)(d)解決方案4:管道過濾器

圖5-14KWIC:管道(guǎndào)過濾器方案38清華大學(xué)出版社共六十四頁(e)各種方案(fāngàn)的比較共享數(shù)據(jù)抽象數(shù)據(jù)類型隱式調(diào)用管道過濾器算法變更--++數(shù)據(jù)表示變更-+--功能變更+-++性能++--重用++-+39清華大學(xué)出版社共六十四頁5.3.2 案例2:儀器(yíqì)軟件

1. 面向?qū)ο竽P?móxíng)圖5-16示波器:面向?qū)ο竽P?0清華大學(xué)出版社共六十四頁2. 分層模型(móxíng)圖5-17示波器分層模型(móxíng)41清華大學(xué)出版社共六十四頁3. 管道(guǎndào)過濾器模型圖5-18一個(yīɡè)管道過濾器模型42清華大學(xué)出版社共六十四頁4. 改進(jìn)后的管道(guǎndào)過濾器模型圖5-19示波器:改造(gǎizào)后的管道過濾器模型43清華大學(xué)出版社共六十四頁5.4 客戶(kèhù)/服務(wù)器風(fēng)格

客戶/服務(wù)器(Client/Server,C/S)計算技術(shù)在信息產(chǎn)業(yè)中占有(zhànyǒu)重要的地位。網(wǎng)絡(luò)計算經(jīng)歷了從基于宿主機(jī)的計算模型到客戶/服務(wù)器計算模型的演變。圖5-20C/S體系結(jié)構(gòu)示意圖44清華大學(xué)出版社共六十四頁5.5 三層C/S結(jié)構(gòu)(jiégòu)風(fēng)格

C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作與事務(wù)處理能力,模型思想簡單,易于人們理解和接受,但隨著企業(yè)規(guī)模的日益(rìyì)擴(kuò)大,軟件的復(fù)雜程度不斷提高,傳統(tǒng)的二層C/S結(jié)構(gòu)存在諸多局限,三層C/S體系結(jié)構(gòu)應(yīng)運(yùn)而生。其結(jié)構(gòu)如圖5-21所示。圖5-21三層C/S結(jié)構(gòu)示意圖45清華大學(xué)出版社共六十四頁圖5-22三層C/S結(jié)構(gòu)(jiégòu)的一般處理流程46清華大學(xué)出版社共六十四頁1. 表示層2.功能(gōngnéng)層3.數(shù)據(jù)層圖5-23三層C/S物理結(jié)構(gòu)(jiégòu)比較47清華大學(xué)出版社共六十四頁5.6 B/S風(fēng)格(fēnggé)B/S軟件體系結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著(suízhe)Internet技術(shù)的興起,對C/S體系結(jié)構(gòu)進(jìn)行改進(jìn)后一種結(jié)構(gòu)。在B/S體系結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn)。它利用瀏覽器技術(shù),結(jié)合瀏覽器的多種腳本語言并通過瀏覽器就實現(xiàn)了原來需要復(fù)雜的專用軟件才能實現(xiàn)的強(qiáng)大功能,是一種全新的軟件體系結(jié)構(gòu)。B/S軟件體系結(jié)構(gòu)圖如圖5-27所示。48清華大學(xué)出版社共六十四頁圖5-27瀏覽器/服務(wù)器體系結(jié)構(gòu)圖49清華大學(xué)出版社共六十四頁B/S與C/S混合軟件體系結(jié)構(gòu)是一種典型的異構(gòu)體系結(jié)構(gòu)。B/S軟件體系結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S體系結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在B/S體系結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),部分事務(wù)邏輯(luójí)在前端實現(xiàn),但是主要事務(wù)邏輯(luójí)在服務(wù)器端實現(xiàn)。5.7 C/S與B/S混合結(jié)構(gòu)風(fēng)格(fēnggé)

50清華大學(xué)出版社共六十四頁5.8 正交軟件體系結(jié)構(gòu)風(fēng)格(fēnggé)

5.8.1 正交軟件體系結(jié)構(gòu)的概念正交(orthogonal)軟件體系結(jié)構(gòu),由組織層和線索的構(gòu)件構(gòu)成。層是由一組具有相同抽象級別的構(gòu)件構(gòu)成的。線索是子系統(tǒng)的特例,它由完成不同層次功能的構(gòu)件組成(通過相互調(diào)用來關(guān)聯(lián)),每一條線索完成整個(zhěnggè)系統(tǒng)中相對獨立的一部分功能。每一條線索的實現(xiàn)與其他線索的實現(xiàn)無關(guān)或關(guān)聯(lián)很少,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。51清華大學(xué)出版社共六十四頁正交軟件體系結(jié)構(gòu)的主要特征如下:(1)正交軟件體系結(jié)構(gòu)由完成不同功能的n(n>1)個線索(子系統(tǒng))組成。(2)系統(tǒng)具有m(m>1)個不同抽象(chōuxiàng)級別的層。(3)線索之間是相互獨立的(正交的)。(4)系統(tǒng)有一個公共驅(qū)動層(一般為最高層,和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)。52清華大學(xué)出版社共六十四頁圖5-28正交軟件體系結(jié)構(gòu)框架(kuànɡjià)53清華大學(xué)出版社共六十四頁5.8.2 正交軟件體系結(jié)構(gòu)的優(yōu)點(1)結(jié)構(gòu)清晰,易于理解。(2)易修改(xiūgǎi),可維護(hù)性強(qiáng)。(3)可移植性強(qiáng),重用粒度大。

5.8.3 正交軟件體系結(jié)構(gòu)的實例54清華大學(xué)出版社共六十四頁5.9 基于層次(céngcì)消息總線的體系結(jié)構(gòu)風(fēng)格

圖5-33HMB風(fēng)格(fēnggé)的系統(tǒng)示意圖55清華大學(xué)出版社共六十四頁5.9.1 構(gòu)件(gòujiàn)模型圖5-34HMB風(fēng)格的構(gòu)件(gòujiàn)模型56清華大學(xué)出版社共六十四頁5.9.2 構(gòu)件接口(jiēkǒu)5.9.3 消息總線圖5-35消息(xiāoxi)總線的結(jié)構(gòu)57清華大學(xué)出版社共六十四頁5.9.4 構(gòu)件靜態(tài)(jìngtài)結(jié)構(gòu)圖5-36系統(tǒng)/復(fù)合構(gòu)件的靜態(tài)(jìngtài)結(jié)構(gòu)示意圍58清華大學(xué)出版社共六十四頁5.9.5 構(gòu)件動態(tài)行為5.9.6 運(yùn)行時刻的系統(tǒng)演化(1)動態(tài)增加或刪除構(gòu)件(2)動態(tài)改變構(gòu)件響應(yīng)的消息類型(lèixíng)(3)消息過濾59清華大學(xué)出版社共六十四頁5.10 異構(gòu)結(jié)構(gòu)(jiégòu)風(fēng)格

5.10.1 使用異構(gòu)結(jié)構(gòu)的原因

前面介紹和討論了一些所謂的“純”體系結(jié)構(gòu),但隨著軟件系統(tǒng)規(guī)模的擴(kuò)大,系統(tǒng)也越來越復(fù)雜,所有的系統(tǒng)不可能都在單一的標(biāo)準(zhǔn)的結(jié)構(gòu)上

溫馨提示

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

最新文檔

評論

0/150

提交評論