




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