




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件體系結(jié)構(gòu)
推薦參考書軟件體系結(jié)構(gòu):原理、方法與實(shí)踐(第2版)張友生著,清華大學(xué)出版社,2014年。軟件建模與設(shè)計(jì):UML、用例、模式和軟件體系結(jié)構(gòu),HassanGomaa著,彭鑫等譯,機(jī)械工業(yè)出版社,2014年。軟件體系結(jié)構(gòu)(第3版),譚征著,清華大學(xué)出版社,2015年。第四章軟件體系結(jié)構(gòu)風(fēng)格4.1. 軟件體系結(jié)構(gòu)風(fēng)格的概念4.2. 經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格4.3.
客戶/服務(wù)器風(fēng)格4.4. 瀏覽/服務(wù)器風(fēng)格理解軟件體系結(jié)構(gòu)風(fēng)格的概念和意義1掌握經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格的內(nèi)涵表示2掌握客戶/服務(wù)器風(fēng)格的結(jié)構(gòu)與表示3了解其他軟件體系結(jié)構(gòu)風(fēng)格,特別是瀏覽/服務(wù)風(fēng)格4本章要點(diǎn)4.1.軟件體系結(jié)構(gòu)風(fēng)格的概念
模式當(dāng)一個(gè)行業(yè)專家解決一個(gè)特定問(wèn)題時(shí),很少使用完全不同于已有方案的全新的解決方法一般回顧所解決的類似問(wèn)題,然后用類似的方法解新的問(wèn)題如:建筑學(xué)、經(jīng)濟(jì)學(xué)、軟件工程從特定的問(wèn)題解決方案中提取出共同點(diǎn)即為模式每一個(gè)模式描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問(wèn)題,以及該問(wèn)題的解決方案的核心軟件模式
描述公共軟件問(wèn)題的成功的解決方案反映了解決方案的公共抽象結(jié)構(gòu),在特定的上下文中,能夠在分析、設(shè)計(jì)等應(yīng)用構(gòu)建過(guò)程中多次使用4.1.軟件體系結(jié)構(gòu)風(fēng)格的概念
體系結(jié)構(gòu)模式/風(fēng)格軟件體系結(jié)構(gòu)的特點(diǎn)之一就是抽象出了很多常見(jiàn)的系統(tǒng)構(gòu)建模式,這些模式(或者說(shuō)結(jié)構(gòu)風(fēng)格)是系統(tǒng)設(shè)計(jì)人員多年工作經(jīng)驗(yàn)的總結(jié)。體系結(jié)構(gòu)模式是具體的軟件體系結(jié)構(gòu)的模板,描述系統(tǒng)級(jí)的結(jié)構(gòu)特性,并影響到子系統(tǒng)的結(jié)構(gòu)對(duì)體系結(jié)構(gòu)模式的選擇是開(kāi)發(fā)軟件系統(tǒng)時(shí)最根本的設(shè)計(jì)決策.設(shè)計(jì)模式:DesignPattern設(shè)計(jì)模式給出了進(jìn)一步細(xì)化一個(gè)軟件系統(tǒng)的子系統(tǒng)或者組件的方案設(shè)計(jì)模式一般為中層或中低層模式,常與特定的編程語(yǔ)言與方法無(wú)關(guān)。許多設(shè)計(jì)模式提供了分解復(fù)雜系統(tǒng)與組件的結(jié)構(gòu),也有的描述了它們之間的協(xié)作關(guān)系。4.1.軟件體系結(jié)構(gòu)風(fēng)格的概念
軟件體系結(jié)構(gòu)風(fēng)格的定義
軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式(idiomaticparadigm)。體系結(jié)構(gòu)風(fēng)格定義了一個(gè)系統(tǒng)家族,即一個(gè)體系結(jié)構(gòu)定義一個(gè)詞匯表和一組約束。詞匯表中包含一些構(gòu)件和連接件類型,而這組約束指出系統(tǒng)是如何將這些構(gòu)件和連接件組合起來(lái)的。體系結(jié)構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語(yǔ)義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。一種軟件體系結(jié)構(gòu)風(fēng)格是對(duì)某個(gè)具體環(huán)境下問(wèn)題的結(jié)構(gòu)性解決方法。4.1.軟件體系結(jié)構(gòu)風(fēng)格的概念
討論體系結(jié)構(gòu)風(fēng)格時(shí)要回答的問(wèn)題◎
構(gòu)件和連接件的類型是什么?◎可容許的結(jié)構(gòu)模式是什么?◎基本的計(jì)算模型是什么?◎風(fēng)格的基本不變性是什么?◎其使用的常見(jiàn)例子是什么?◎使用此風(fēng)格的優(yōu)缺點(diǎn)是什么?◎其常見(jiàn)的特例是什么?提供一個(gè)詞匯表定義一套配置規(guī)則定義一套語(yǔ)義解釋原則定義對(duì)基于這種風(fēng)格的系統(tǒng)所進(jìn)行的分析。4.1.軟件體系結(jié)構(gòu)風(fēng)格的概念
使用軟件結(jié)構(gòu)風(fēng)格帶來(lái)的好處促進(jìn)設(shè)計(jì)重用帶來(lái)巨大的代碼重用采用例行的結(jié)構(gòu),將使系統(tǒng)組成更易于被他人理解使用標(biāo)準(zhǔn)化的風(fēng)格有益于系統(tǒng)的互操作性采用了某種體系結(jié)構(gòu)風(fēng)格的設(shè)計(jì),通常允許專門的、此風(fēng)格特有的體系結(jié)構(gòu)分析4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
經(jīng)典的體系結(jié)構(gòu)風(fēng)格
◎數(shù)據(jù)流風(fēng)格(DataFlow):批處理序列;管道/過(guò)濾器。◎調(diào)用/返回風(fēng)格(Call/Return):主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)。◎獨(dú)立構(gòu)件風(fēng)格(IndependentComponents):進(jìn)程通訊;事件系統(tǒng)。◎倉(cāng)庫(kù)風(fēng)格(Data-centered):數(shù)據(jù)庫(kù)系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)。特別注意:體系結(jié)構(gòu)風(fēng)格不是對(duì)軟件進(jìn)行分類的標(biāo)準(zhǔn)。它僅僅是表示描述軟件的不同角度而已.例如一個(gè)系統(tǒng)采用了分層風(fēng)格,但這并不妨礙它用面向?qū)ο蟮姆椒▉?lái)實(shí)現(xiàn)。同一個(gè)系統(tǒng)采用多種風(fēng)格造成了所謂體系結(jié)構(gòu)風(fēng)格的異構(gòu)組合。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
(1)
管道和過(guò)濾器每個(gè)構(gòu)件都有一組輸入和輸出。構(gòu)件稱作過(guò)濾器(filters);構(gòu)件間的連接可以看作輸入、輸出數(shù)據(jù)流之間的通路,所以稱作管道(pipes)。處理單元:進(jìn)行數(shù)據(jù)流到數(shù)據(jù)流之間的轉(zhuǎn)換:輸入是數(shù)據(jù)流,輸出也是數(shù)據(jù)流。過(guò)濾器系統(tǒng)示例:UNIXShell編寫的程序;傳統(tǒng)編譯器:一個(gè)階段(詞法分析、句法分析、語(yǔ)義分析和代碼生成)的輸出是另一個(gè)階段的輸入。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道和過(guò)濾器概念
過(guò)濾器系統(tǒng)示例:DOS中的管道命令DOS允許在命令中出現(xiàn)用豎線字符“|”分開(kāi)的多個(gè)命令,將符號(hào)“|”之前的命令的輸出,作為“|”之后命令的輸入,這就是“管道功能”,豎線字符“|”是管道操作符。例如,命令dir|more使得當(dāng)前目錄列表在屏幕上逐屏顯示。dir的輸出是整個(gè)目錄列表,它不出現(xiàn)在屏幕上而是由于符號(hào)“|”的規(guī)定,成為下一個(gè)命令more的輸入,more命令則將其輸入,more命令則將其輸入一屏一屏地顯示,成為命令行的輸出。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道和過(guò)濾器特性
過(guò)濾器是獨(dú)立運(yùn)行的構(gòu)件非鄰近的過(guò)濾器之間不共享狀態(tài)過(guò)濾器自身無(wú)狀態(tài)過(guò)濾器對(duì)其處理上下連接的過(guò)濾器“無(wú)知”對(duì)相鄰的過(guò)濾器不施加任何限制結(jié)果的正確性不依賴于各個(gè)過(guò)濾器運(yùn)行的先后次序各過(guò)濾器在輸入具備后完成自己的計(jì)算。完整的計(jì)算過(guò)程包含在過(guò)濾器之間的拓?fù)浣Y(jié)構(gòu)中。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道和過(guò)濾器風(fēng)格的優(yōu)點(diǎn)允許設(shè)計(jì)師將整個(gè)系統(tǒng)的輸入/輸出行為看成是多個(gè)過(guò)濾器的行為的簡(jiǎn)單合成。使得構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點(diǎn)。將系統(tǒng)抽象成一個(gè)“黑箱”,其輸入是系統(tǒng)中第一個(gè)過(guò)濾器的輸入管道,輸出是系統(tǒng)中最后一個(gè)過(guò)濾器的輸出管道,而其內(nèi)部各功能模塊的具體實(shí)現(xiàn)對(duì)用戶完全透明。支持軟件重用。只要提供適合在兩個(gè)過(guò)濾器之間傳送的數(shù)據(jù),任何兩個(gè)過(guò)濾器都可以連接起來(lái)。每個(gè)過(guò)濾器都有自己獨(dú)立的輸入輸出接口,如果過(guò)濾器間傳輸?shù)臄?shù)據(jù)遵守其規(guī)約,只要用管道將它們連接就可以正常工作。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道和過(guò)濾器風(fēng)格的優(yōu)點(diǎn)
允許設(shè)計(jì)師將整個(gè)系統(tǒng)的輸入/輸出行為看成是多個(gè)過(guò)濾器的行為,系統(tǒng)易于維護(hù)和增強(qiáng)舊的過(guò)濾器可以被替代,新的過(guò)濾器可以添加到已有的系統(tǒng)上;系統(tǒng)的可維護(hù)性和可升級(jí)性得到了保證。支持并發(fā)各過(guò)濾器可以并發(fā)運(yùn)行,大大提高系統(tǒng)的整體效率,加快處理速度。方便系統(tǒng)分析利用管道-過(guò)濾器風(fēng)格的視圖,可以很容易的得到系統(tǒng)的資源使用和請(qǐng)求的狀態(tài)圖。然后,根據(jù)操作系統(tǒng)原理等相關(guān)理論中的死鎖檢測(cè)方法就可以分析出系統(tǒng)目前所處的狀態(tài),是否存在死鎖可能及如何消除死鎖等問(wèn)題。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道和過(guò)濾器的缺點(diǎn)
容易導(dǎo)致批處理風(fēng)格的系統(tǒng)設(shè)計(jì)設(shè)計(jì)者也許不得不花費(fèi)精力協(xié)調(diào)兩個(gè)相對(duì)獨(dú)立但又存在某種關(guān)系的數(shù)據(jù)流之間的關(guān)系,例如多過(guò)濾器并發(fā)執(zhí)行時(shí)數(shù)據(jù)流之間的同步問(wèn)題等。不適合交互式的應(yīng)用管道-過(guò)濾器模型適于數(shù)據(jù)流的處理和變換,不適合為與用戶交互頻繁的系統(tǒng)建模。在這種模型中,整個(gè)系統(tǒng)沒(méi)有一個(gè)共享的數(shù)據(jù)區(qū)。數(shù)據(jù)不同管道上傳輸沒(méi)有統(tǒng)一標(biāo)準(zhǔn),每個(gè)過(guò)濾器都要做類似的數(shù)據(jù)打包和解包工作,增加了復(fù)雜性。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道-過(guò)濾器風(fēng)格實(shí)例——數(shù)字通信系統(tǒng)通信的目的是傳遞消息。消息具有不同的形式,例如:符號(hào)、文字、語(yǔ)音、音樂(lè)、數(shù)據(jù)、圖片、圖像等等。因而,根據(jù)所傳遞消息的不同,目前通信業(yè)務(wù)可以分為電報(bào)、電話、傳真、數(shù)據(jù)傳輸及可視電話等。對(duì)于基本的點(diǎn)對(duì)點(diǎn)通信,是把發(fā)送端的消息傳遞到接收端。數(shù)字通信概念模型發(fā)送端接收端4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道-過(guò)濾器風(fēng)格實(shí)例——數(shù)字通信系統(tǒng)將上圖發(fā)送端進(jìn)一步細(xì)分為信息源和發(fā)送設(shè)備,將接收端細(xì)分為接收設(shè)備和受信者;同時(shí),在通信過(guò)程中會(huì)有噪聲干擾,在模型中添加噪聲源可得到圖所示的數(shù)字通信系統(tǒng)粗略模型。數(shù)字通信系統(tǒng)粗略模型信息源發(fā)送設(shè)備接收設(shè)備受信者噪聲源信道4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
管道-過(guò)濾器風(fēng)格實(shí)例——數(shù)字通信系統(tǒng)圖中各單元作用:信息源把各種可能信息轉(zhuǎn)換成原始電信號(hào);發(fā)送設(shè)備對(duì)原始電信號(hào)完成某種變化,便于原始信號(hào)在信道中傳輸,然后再送入信道;信道是指信號(hào)傳輸?shù)耐ǖ溃瓤梢钥闯墒枪艿溃ㄒ驗(yàn)樗哪康牟⒉皇菫榱藢?shí)現(xiàn)某種功能,僅僅是為了信號(hào)的傳輸),也可以從某種意義上看做是過(guò)濾器接收設(shè)備從接收信號(hào)中恢復(fù)出相應(yīng)的原始信號(hào);受信者(也稱為信息宿或接收終端)是將復(fù)原的原始信號(hào)轉(zhuǎn)換成相應(yīng)的消息。噪聲源是信道中的噪聲以及分散在通信系統(tǒng)其它各處的噪聲的集中體現(xiàn),它使原信號(hào)受到了干擾,產(chǎn)生畸變。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
(2)數(shù)據(jù)抽象和面向?qū)ο笙到y(tǒng)
這種風(fēng)格建立在數(shù)據(jù)抽象和面向?qū)ο蟮幕A(chǔ)上,數(shù)據(jù)的表示方法和它們的相應(yīng)操作封裝在一個(gè)抽象數(shù)據(jù)類型或?qū)ο笾小_@種風(fēng)格的構(gòu)件是對(duì)象,或者說(shuō)是抽象數(shù)據(jù)類型的實(shí)例。對(duì)象是一種被稱作管理者的構(gòu)件,因?yàn)樗?fù)責(zé)保持資源的完整性。對(duì)象是通過(guò)函數(shù)和過(guò)程的調(diào)用來(lái)交互的。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
應(yīng)用場(chǎng)合面向?qū)ο蟮捏w系結(jié)構(gòu)風(fēng)格適用于數(shù)據(jù)和功能分離的系統(tǒng)中,同樣也適合于問(wèn)題域模型比較明顯,或需要人機(jī)交互界面的系統(tǒng)。大多數(shù)應(yīng)用事件驅(qū)動(dòng)風(fēng)格的系統(tǒng)也常常應(yīng)用了面向?qū)ο箫L(fēng)格。LoginFormUserLabelPassLabelUserTextPassTextCancelButtonLoginButtonOptionGroupPublicOptionPrivateOption4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
面向?qū)ο箫L(fēng)格實(shí)例——人事檔案管理系統(tǒng)4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
面向?qū)ο笙到y(tǒng)的優(yōu)點(diǎn)提高軟件生產(chǎn)力利用封裝、繼承、聚合,提高生產(chǎn)力對(duì)象的內(nèi)部實(shí)現(xiàn)容易修改因?yàn)閷?duì)象對(duì)其它對(duì)象隱藏了它的數(shù)據(jù)表示,所以可以改變一個(gè)對(duì)象的數(shù)據(jù)表示,而不影響其它的對(duì)象;4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
面向?qū)ο笙到y(tǒng)的缺點(diǎn)◎?yàn)榱耸挂粋€(gè)對(duì)象和另一個(gè)對(duì)象通過(guò)過(guò)程調(diào)用等進(jìn)行交互,必須知道對(duì)象的標(biāo)識(shí)。只要一個(gè)對(duì)象的標(biāo)識(shí)改變了,就必須修改所有其他明確調(diào)用它的對(duì)象;◎必須修改所有顯式調(diào)用它的其它對(duì)象,并消除由此帶來(lái)的一些副作用。例如,如果A使用了對(duì)象B,C也使用了對(duì)象B,那么,C對(duì)B的使用所造成的對(duì)A的影響可能是料想不到的。ACBACBB’4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
(3)基于事件的系統(tǒng)這種風(fēng)格的主要特點(diǎn)是事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響。這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過(guò)程會(huì)被調(diào)用,因此,許多隱式調(diào)用的系統(tǒng)也包含顯式調(diào)用作為構(gòu)件交互的補(bǔ)充形式。構(gòu)件不直接調(diào)用一個(gè)過(guò)程,而是觸發(fā)或廣播一個(gè)或多個(gè)事件,系統(tǒng)中其它構(gòu)件中的過(guò)程在一個(gè)或者多個(gè)事件中注冊(cè)當(dāng)一個(gè)事件被觸發(fā),系統(tǒng)自動(dòng)調(diào)用這個(gè)事件中注冊(cè)的所有過(guò)程,這樣,一個(gè)事件的觸發(fā)就導(dǎo)致了另一個(gè)模塊中過(guò)程的調(diào)用4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
基于事件的系統(tǒng)的特點(diǎn)系統(tǒng)是由若干子系統(tǒng)或元素所組成的一個(gè)整體;系統(tǒng)有一定的目標(biāo),各子系統(tǒng)在某一種消息機(jī)制的控制下,為了這個(gè)目標(biāo)而協(xié)調(diào)行動(dòng);在某一種消息機(jī)制的控制下,系統(tǒng)作為一個(gè)整體與環(huán)境相適應(yīng)和協(xié)調(diào);在一個(gè)系統(tǒng)的若干子系統(tǒng)中,必定有一個(gè)子系統(tǒng)起著主導(dǎo)作用,而其他子系統(tǒng)則處于從屬地位;任一系統(tǒng)和系統(tǒng)內(nèi)的任一元素,都有1個(gè)事件收集機(jī)制和1個(gè)事件處理機(jī)制,通過(guò)這種機(jī)制與周圍環(huán)境發(fā)生作用和聯(lián)系;4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
基于事件的隱式調(diào)用的優(yōu)點(diǎn)
構(gòu)件之間松耦合事件發(fā)布者不必知道哪些構(gòu)件會(huì)被事件影響,事件的接收者也可以不關(guān)心事件是由誰(shuí)發(fā)出的有助于軟件復(fù)用允許任何構(gòu)件注冊(cè)其相關(guān)事件演化、升級(jí)簡(jiǎn)單可以在不影響其余構(gòu)件的情況下替換某個(gè)構(gòu)件,因而系統(tǒng)的演化、升級(jí)變得簡(jiǎn)單4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
基于事件的隱式調(diào)用的缺點(diǎn)
構(gòu)件對(duì)系統(tǒng)進(jìn)行的計(jì)算放棄了主動(dòng)控制一個(gè)構(gòu)件不能假設(shè)其它構(gòu)件將會(huì)對(duì)它的請(qǐng)求作出響應(yīng),也不能得知事件處理的先后順序。數(shù)據(jù)交換問(wèn)題有時(shí),數(shù)據(jù)可能被一個(gè)事件傳遞,但在另一些情況下,基于事件的系統(tǒng)必須依靠一個(gè)共享的倉(cāng)庫(kù)中進(jìn)行交互。這樣全局性能和資源管理器成為十分關(guān)鍵的因素。正確性推理存在問(wèn)題過(guò)程的語(yǔ)義必須依賴于被觸發(fā)事件的上下文約束4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
(4)分層系統(tǒng)
分層風(fēng)格將任務(wù)分解為多個(gè)子項(xiàng)目組,其中某個(gè)子任務(wù)組處于某個(gè)特定的抽象層次上每一層只能與相鄰層交互:為上層提供服務(wù)和調(diào)用下層提供的服務(wù)適當(dāng)時(shí)候(必不得已的時(shí)候),可以允許一定的越層操作4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
分層風(fēng)格實(shí)例:計(jì)算機(jī)網(wǎng)絡(luò)的設(shè)計(jì)網(wǎng)絡(luò)協(xié)議設(shè)計(jì)者將計(jì)算機(jī)網(wǎng)絡(luò)中的各個(gè)部分按其功能劃分為若干個(gè)層次(Layer),其中的每一個(gè)層次都可以看成是一個(gè)相對(duì)獨(dú)立的黑箱、一個(gè)封閉的系統(tǒng)。用戶只關(guān)心每一層的外部特性,只需要定義每一層的輸入、數(shù)據(jù)處理和輸出等外部特性。兩臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)進(jìn)行通信時(shí),只有兩物理層之間能夠通過(guò)媒體進(jìn)行真正的數(shù)據(jù)通信,其余各對(duì)等層之間均不存在直接的通信關(guān)系,各對(duì)等層之間只能通過(guò)各對(duì)等層的協(xié)議來(lái)進(jìn)行虛擬通信。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
分層系統(tǒng)的優(yōu)點(diǎn)
支持抽象程度遞增的系統(tǒng)設(shè)計(jì)設(shè)計(jì)者可以把一個(gè)復(fù)雜系統(tǒng)按照遞增的步驟進(jìn)行分解支持功能擴(kuò)充和修改因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换ィ虼斯δ艿母淖冏疃嘤绊懴噜彽纳舷聦印VС朱`活的實(shí)現(xiàn)和重用只要提供的服務(wù)接口定義不變,同一層的不同實(shí)現(xiàn)可以交換使用。這樣,就可以定義一組標(biāo)準(zhǔn)的接口,而允許各種不同的實(shí)現(xiàn)方法。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
分層系統(tǒng)的缺點(diǎn)
并不是每個(gè)系統(tǒng)都可以很容易地劃分為層次結(jié)構(gòu)甚至即使一個(gè)系統(tǒng)的邏輯結(jié)構(gòu)是層次化的,設(shè)計(jì)者出于對(duì)于系統(tǒng)性能的考慮,往往把一些低級(jí)和高級(jí)的功能綜合起來(lái)。效率的降低由分層風(fēng)格構(gòu)成的系統(tǒng),運(yùn)行效率往往低于整體結(jié)構(gòu)。在上層中的服務(wù)如果有很多依賴于最底層,則相關(guān)的數(shù)據(jù)必須通過(guò)中間層的若干次轉(zhuǎn)化,才能傳到。難于認(rèn)可合適的、正確的層次抽象方法:層次太少,分層不能完全發(fā)揮這種風(fēng)格的可重用性、可更改性、可移植性上的潛力。層次過(guò)多,則引入不必要的復(fù)雜性和層間隔離冗余以及層間傳輸?shù)拈_(kāi)銷目前,沒(méi)有可行的廣為人們認(rèn)可的層次粒度的確定和層任務(wù)的分配方法。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
(5)
倉(cāng)庫(kù)系統(tǒng)及知識(shí)庫(kù)
采用數(shù)據(jù)共享風(fēng)格構(gòu)建的系統(tǒng)中通常有兩個(gè)截然不同的功能構(gòu)件;中央數(shù)據(jù)結(jié)構(gòu)說(shuō)明當(dāng)前狀態(tài),獨(dú)立構(gòu)件在中央數(shù)據(jù)存貯上執(zhí)行;倉(cāng)庫(kù)與外構(gòu)件間的相互作用在系統(tǒng)中會(huì)有大的變化。信息交互方式的差異導(dǎo)致了控制策略的不同,基于控制策略的選取不同形成兩個(gè)主要的子類:基于傳統(tǒng)數(shù)據(jù)庫(kù)型數(shù)據(jù)共享風(fēng)格的應(yīng)用系統(tǒng)基于黑板型數(shù)據(jù)共享風(fēng)格的應(yīng)用系統(tǒng)4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
基于黑板型數(shù)據(jù)共享風(fēng)格的應(yīng)用系統(tǒng)知識(shí)源:知識(shí)源中包含獨(dú)立的、與應(yīng)用程序相關(guān)的知識(shí),知識(shí)源之間不直接進(jìn)行通訊,它們之間的交互只通過(guò)黑板來(lái)完成。黑板數(shù)據(jù)結(jié)構(gòu):黑板數(shù)據(jù)是按照與應(yīng)用程序相關(guān)的層次來(lái)組織的解決問(wèn)題的數(shù)據(jù),知識(shí)源通過(guò)不斷地改變黑板數(shù)據(jù)來(lái)解決問(wèn)題。控制:控制完全由黑板的狀態(tài)驅(qū)動(dòng),黑板狀態(tài)的改變決定使用的特定知識(shí)。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
數(shù)據(jù)共享風(fēng)格實(shí)例:專家系統(tǒng)(ES,ExpertSystem)專家系統(tǒng)實(shí)質(zhì)就是一組程序;從功能上:可定義為“一個(gè)在某領(lǐng)域具有專家水平解題能力的程序系統(tǒng)”,能像領(lǐng)域?qū)<乙粯庸ぷ鳎\(yùn)用專家積累的工作經(jīng)驗(yàn)與專門知識(shí),在很短時(shí)間內(nèi)對(duì)問(wèn)題得出高水平的解答。從結(jié)構(gòu)上:可定義為“由一個(gè)專門領(lǐng)域的知識(shí)庫(kù),以及一個(gè)能獲取和運(yùn)用知識(shí)的機(jī)構(gòu)構(gòu)成的解題程序系統(tǒng)”。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
(6)C2風(fēng)格
通過(guò)連接件綁定在一起的按照一組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。C2風(fēng)格中的系統(tǒng)組織規(guī)則如下:◎系統(tǒng)中的構(gòu)件和連接件都有一個(gè)頂部和一個(gè)底部;◎構(gòu)件的頂部應(yīng)連接到某連接件的底部,構(gòu)件的底部則應(yīng)連接到某連接件的頂部,而構(gòu)件與構(gòu)件之間的直接連接是不允許的;◎一個(gè)連接件可以和任意數(shù)目的其它構(gòu)件和連接件連接;◎當(dāng)兩個(gè)連接件進(jìn)行直接連接時(shí),必須由其中一個(gè)的底部到另一個(gè)的頂部。4.2.經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格
C2風(fēng)格特點(diǎn)◎系統(tǒng)中的構(gòu)件可實(shí)現(xiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一起;◎所有構(gòu)件之間的通訊是通過(guò)以連接件為中介的異步消息交換機(jī)制來(lái)實(shí)現(xiàn)的;◎構(gòu)件相對(duì)獨(dú)立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。4.3.客戶/服務(wù)器風(fēng)格
產(chǎn)生背景◎在集中式計(jì)算技術(shù)時(shí)代廣泛使用的是大型機(jī)/小型機(jī)計(jì)算模型。它是通過(guò)一臺(tái)物理上與宿主機(jī)相連接的非智能終端來(lái)實(shí)現(xiàn)宿主機(jī)上的應(yīng)用程序。
◎20世紀(jì)80年代以后,集中式結(jié)構(gòu)逐漸被以PC機(jī)為主的微機(jī)網(wǎng)絡(luò)所取代。個(gè)人計(jì)算機(jī)和工作站的采用,永遠(yuǎn)改變了協(xié)作計(jì)算模型,從而導(dǎo)致了分散的個(gè)人計(jì)算模型的產(chǎn)生。◎C/S軟件體系結(jié)構(gòu)是基于資源不對(duì)等,且為實(shí)現(xiàn)共享而提出來(lái)的,是20世紀(jì)90年代成熟起來(lái)的技術(shù),C/S體系結(jié)構(gòu)定義了工作站如何與服務(wù)器相連,以實(shí)現(xiàn)數(shù)據(jù)和應(yīng)用分布到多個(gè)處理機(jī)上。4.3.客戶/服務(wù)器風(fēng)格
◎
C/S體系結(jié)構(gòu)有三個(gè)主要組成部分:數(shù)據(jù)庫(kù)服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)。4.3.客戶/服務(wù)器風(fēng)格
任務(wù)分配◎數(shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)庫(kù)安全性的要求;數(shù)據(jù)庫(kù)訪問(wèn)并發(fā)性的控制;數(shù)據(jù)庫(kù)前端的客戶應(yīng)用程序的全局?jǐn)?shù)據(jù)完整性規(guī)則;數(shù)據(jù)庫(kù)的備份與恢復(fù)。◎客戶應(yīng)用程序提供用戶與數(shù)據(jù)庫(kù)交互的界面;向數(shù)據(jù)庫(kù)服務(wù)器提交用戶請(qǐng)求并接收來(lái)自數(shù)據(jù)庫(kù)服務(wù)器的信息;利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求。4.3.客戶/服務(wù)器風(fēng)格
處理流程4.3.客戶/服務(wù)器風(fēng)格
優(yōu)點(diǎn)◎
C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡(jiǎn)單,易于人們理解和接受。◎系統(tǒng)的客戶應(yīng)用程序和服務(wù)器構(gòu)件分別運(yùn)行在不同的計(jì)算機(jī)上,系統(tǒng)中每臺(tái)服務(wù)器都可以適合各構(gòu)件的要求,這對(duì)于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對(duì)系統(tǒng)進(jìn)行擴(kuò)充和縮小。◎在C/S體系結(jié)構(gòu)中,系統(tǒng)中的功能構(gòu)件充分隔離,客戶應(yīng)用程序的開(kāi)發(fā)集中于數(shù)據(jù)的顯示和分析,而數(shù)據(jù)庫(kù)服務(wù)器的開(kāi)發(fā)則集中于數(shù)據(jù)的管理,不必在每一個(gè)新的應(yīng)用程序中都要對(duì)一個(gè)DBMS進(jìn)行編碼。將大的應(yīng)用處理任務(wù)分布到許多通過(guò)網(wǎng)絡(luò)連接的低成本計(jì)算機(jī)上,以節(jié)約大量費(fèi)用。
4.3.客戶/服務(wù)器風(fēng)格
缺點(diǎn)◎開(kāi)發(fā)成本較高:對(duì)客戶端硬件配置要求較高◎客戶端程序設(shè)計(jì)復(fù)雜:大部分工作量放在客戶端,變得臃腫◎信息內(nèi)容和形式單一:面向數(shù)據(jù)庫(kù)的字段解釋,界面只是數(shù)字和字符,枯燥死板。◎用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用◎軟件移植困難:采用不同的平臺(tái)開(kāi)發(fā)的軟件一般相互不兼容◎軟件維護(hù)和升級(jí)困難:需開(kāi)發(fā)人員到現(xiàn)場(chǎng)為客戶機(jī)升級(jí)◎新技術(shù)不能輕易應(yīng)用:系統(tǒng)平臺(tái)工具較為固定,不可能輕易更改。4.3.客戶/服務(wù)器風(fēng)格
三層客戶/服務(wù)器風(fēng)格4.3.客戶/服務(wù)器風(fēng)格
處理流程三層客戶/服務(wù)器風(fēng)格4.3.客戶/服務(wù)器風(fēng)格
三層客戶/服務(wù)器風(fēng)格
物理結(jié)構(gòu)4.3.客戶/服務(wù)器風(fēng)格
三層客戶/服務(wù)器風(fēng)格優(yōu)點(diǎn)允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對(duì)獨(dú)立性,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。允許更靈活有效地選用相應(yīng)的平臺(tái)和硬件系統(tǒng),并且使這些平臺(tái)和各個(gè)組成部分可以具有良好的可升級(jí)性和開(kāi)放性應(yīng)用的各層可以并行開(kāi)發(fā),可以選擇各自最適合的開(kāi)發(fā)語(yǔ)言利用功能層有效地隔離開(kāi)表示層和數(shù)據(jù)層,未
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程承包合同標(biāo)準(zhǔn)
- 2025家政公司雇傭合同范本
- 商業(yè)租賃轉(zhuǎn)讓合同范本
- 個(gè)人房子轉(zhuǎn)讓合同范本
- 金屬結(jié)構(gòu)合同范本
- 空調(diào)外包承攬合同范本
- 租賃和使用合同范本
- 農(nóng)村門面承租合同范本
- 環(huán)境維護(hù)合同范本
- 日本技能實(shí)習(xí)合同范本
- 自行車發(fā)展歷史
- 《基礎(chǔ)寫作教程》 課件全套 第1-11章 基礎(chǔ)寫作概論- 理論文體
- 護(hù)士如何處理患者的不合理訴求和抱怨
- 石油化工項(xiàng)目可行性研究報(bào)告編制規(guī)定
- 液壓式隨鉆震擊器設(shè)計(jì)
- 廣東省義務(wù)教育學(xué)生畢(結(jié)、肄)業(yè)鑒定表
- 人教部編版六年級(jí)下冊(cè)語(yǔ)文【選擇題】專項(xiàng)復(fù)習(xí)訓(xùn)練真題100題(附答案解析)
- H3C新員工文化培訓(xùn)報(bào)到指引(201607期)
- 《輔酶q10》教學(xué)講解課件
- 第十章痰液檢查課件
- 《融媒體實(shí)務(wù)》教學(xué)課件(全)
評(píng)論
0/150
提交評(píng)論