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

下載本文檔

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

文檔簡介

.,軟件體系結(jié)構(gòu),.,1概述,我們要學(xué)的這個是什么玩意?我們?yōu)槭裁匆獙W(xué)這個玩意?我們將來會怎么干?其他人是怎么玩的?,.,1概述,軟件工程師需要一種更好的視角來理解軟件,并試圖找到一種新的方法來構(gòu)建更復(fù)雜的大型軟件系統(tǒng)SA(softwarearchitecture)一個簡單程序到復(fù)雜系統(tǒng)軟件的距離是十年,.,1概述需求開發(fā)的主要困難,.,1概述軟件危機(jī)的原因,軟件規(guī)模越來越大隨著軟件應(yīng)用范圍的增廣,軟件規(guī)模愈來愈大。大型軟件項(xiàng)目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗(yàn),而多數(shù)軟件開發(fā)人員又缺乏管理方面的經(jīng)驗(yàn)。各類人員的信息交流不及時、不準(zhǔn)確、有時還會產(chǎn)生誤解。軟件項(xiàng)目開發(fā)人員不能有效地、獨(dú)立自主地處理大型軟件的全部關(guān)系和各個分支,因此容易產(chǎn)生疏漏和錯誤。,.,1概述軟件危機(jī)的原因,軟件復(fù)雜度越來越高軟件不僅僅是在規(guī)模上快速地發(fā)展擴(kuò)大,而且其復(fù)雜性也急劇地增加。軟件產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力處理“復(fù)雜問題”。所謂“復(fù)雜問題”的概念是相對的,一旦人們采用先進(jìn)的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復(fù)雜的問題又?jǐn)[在人們的面前。,.,1.1whatisSA?,這種全局結(jié)構(gòu)的設(shè)計和規(guī)劃問題包括全局組織結(jié)構(gòu);全局控制結(jié)構(gòu);通信和同步以及數(shù)據(jù)存取協(xié)議;規(guī)定設(shè)計元素的功能;設(shè)計元素的組合;物理分布;規(guī)模和性能;演化的維度;設(shè)計方案的選擇等。1隨著軟件系統(tǒng)的規(guī)模和復(fù)雜性不斷增加,系統(tǒng)的全局結(jié)構(gòu)的設(shè)計和規(guī)劃變得比算法的選擇以及數(shù)據(jù)結(jié)構(gòu)的設(shè)計更加重要。2人們普遍認(rèn)為,為系統(tǒng)設(shè)計一個合適的體系結(jié)構(gòu)是系統(tǒng)取得長遠(yuǎn)的成功的關(guān)鍵因素。,.,1.1whatisSA?,首先,軟件工程師在長期的實(shí)踐中已經(jīng)擁有了一套共享的,語義豐富的詞典,它由軟件系統(tǒng)的習(xí)慣用語,模式,軟件系統(tǒng)組織結(jié)構(gòu)風(fēng)格組成。通過識別一個管道過濾器體系結(jié)構(gòu)風(fēng)格的實(shí)例,一個軟件工程師傳達(dá)了這樣的事實(shí):這個系統(tǒng)的主要功能就是進(jìn)行數(shù)據(jù)流的轉(zhuǎn)換,系統(tǒng)的主要功能由各種獨(dú)立實(shí)體的過濾器分別來實(shí)現(xiàn),系統(tǒng)的響應(yīng)時間和吞吐量能用一種直接的方式計算出來。,.,1.1whatisSA?,e.g.每個Filter都有輸入端和輸出端,例如一個MPEG-1解碼Filter它的輸入是MPEG編碼的流數(shù)據(jù),它的輸出端是一解碼過的流數(shù)據(jù)。DirectShow正是通過將不同的Filter連接在一起完成特定的功能的,我們將這些Filter的連接叫做FilterGraph,如下圖A給出是播放AVI的FilterGraph:圖A播放AVI文件的GraphFilter圖上圖中每個模塊分別代表了不同的Filter,媒體文件Filter從硬盤讀取AVI文件,AVI分離Filter將文件分離為音頻流和視頻流,AVI解碼Filter對視頻流進(jìn)行解碼并送往Video表現(xiàn)Filter,由后者將各幀在顯示器上顯示,默認(rèn)的DirectSound設(shè)備用DirectSound將音頻流輸出。,.,1.1whatisSA?,其次,體系結(jié)構(gòu)的描述的作用好像一個框架,系統(tǒng)屬性在這個框架下進(jìn)行擴(kuò)充,并且,它在考察一個系統(tǒng)實(shí)現(xiàn)其整體需求的能力中扮演了非常重要的作用。(軟件體系結(jié)構(gòu)是非常抽象的,可以理解更大范圍的,系統(tǒng)級的關(guān)注點(diǎn),比如吞吐量,通信模式,執(zhí)行控制結(jié)構(gòu),可伸縮性,以及系統(tǒng)演化的擴(kuò)展方式,提供一個自然的框架。),.,1.1whatisSA?,軟件設(shè)計層次體系結(jié)構(gòu)級:系統(tǒng)性能與構(gòu)件之間的整體聯(lián)系。這個級別的構(gòu)成元素是模塊,模塊通過各種方式互連,通過操作算子將子系統(tǒng)組裝成一個系統(tǒng)。代碼級:這個級別的設(shè)計問題包括算法和數(shù)據(jù)結(jié)構(gòu);其構(gòu)成元素是編程語言原語。執(zhí)行級:這個級別的設(shè)計問題包含存儲器的映射、數(shù)據(jù)格式配置、堆棧和寄存器的分配。,.,軟件各級抽象,高級程序設(shè)計語言,數(shù)據(jù)結(jié)構(gòu)與算法,軟件結(jié)構(gòu)研究的開始,抽象數(shù)據(jù)類型,程序族,軟件體系結(jié)構(gòu),匯編語言、宏替換、高級語言編譯器、數(shù)據(jù)類型,程序數(shù)據(jù)結(jié)構(gòu)算法,軟件劃分與構(gòu)造、方便系統(tǒng)的開發(fā)與維護(hù),數(shù)據(jù)類型抽象、封裝、信息隱藏、多態(tài)性,程序族在信息隱藏和軟件結(jié)構(gòu)設(shè)計上具有相同的模式(設(shè)計模式抽象),軟件體系結(jié)構(gòu)使系統(tǒng)在體系結(jié)構(gòu)級達(dá)到重用,.,1.2軟件體系結(jié)構(gòu)研究的內(nèi)容和范疇,風(fēng)格、設(shè)計模式、框架1.體系結(jié)構(gòu)風(fēng)格(architecturestyles)體系結(jié)構(gòu)風(fēng)格獨(dú)立于實(shí)際問題,強(qiáng)調(diào)了軟件系統(tǒng)中通用的組織結(jié)構(gòu)。比如管道線,分層系統(tǒng),客戶機(jī)服務(wù)器等等。,.,1.2軟件體系結(jié)構(gòu)研究的內(nèi)容和范疇,風(fēng)格、設(shè)計模式、框架2.設(shè)計模式設(shè)計模式是軟件問題高效和成熟的設(shè)計模板,模板包含了固有問題的解決方案。設(shè)計模式可以看成規(guī)范了的小粒度的結(jié)構(gòu)成分,并且獨(dú)立于編程語言或編程范例。設(shè)計模式的應(yīng)用對軟件系統(tǒng)的基礎(chǔ)結(jié)構(gòu)沒有什么影響,但可能對子系統(tǒng)的組織結(jié)構(gòu)有較大影響。每個模式處理系統(tǒng)設(shè)計或?qū)崿F(xiàn)一種特殊的重復(fù)出現(xiàn)的問題。它為解決抽象部分和實(shí)現(xiàn)部分獨(dú)立變化的問題提供了一種通用結(jié)構(gòu)。因此,設(shè)計模式更強(qiáng)調(diào)直接復(fù)用的程序結(jié)構(gòu)。,.,1.2軟件體系結(jié)構(gòu)研究的內(nèi)容和范疇,風(fēng)格、設(shè)計模式、框架3.應(yīng)用框架(applicationframework)應(yīng)用框架是整個或部分系統(tǒng)的可重用設(shè)計,表現(xiàn)為一組抽象構(gòu)件的集合以及構(gòu)件實(shí)例間交互的方法??梢哉f,一個框架是一個可復(fù)用的設(shè)計構(gòu)件,它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個設(shè)計、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程。,.,1.2軟件體系結(jié)構(gòu)研究的內(nèi)容和范疇,體系結(jié)構(gòu)風(fēng)格、設(shè)計模式和應(yīng)用框架的概念是從不同的目的和出發(fā)點(diǎn)討論軟件體系結(jié)構(gòu),它們之間的概念經(jīng)常互相借鑒和引用。,.,1.3體系結(jié)構(gòu)設(shè)計原則,抽象分而治之封裝和信息隱藏模塊化高內(nèi)聚和低耦合關(guān)注點(diǎn)分離策略和實(shí)現(xiàn)的分離接口和實(shí)現(xiàn)的分離,.,1.3體系結(jié)構(gòu)設(shè)計原則,體系結(jié)構(gòu)是指軟件系統(tǒng)的基本和主體的形態(tài),也就是軟件系統(tǒng)中“最本質(zhì)”的東西。一個軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計得好不好,可以用“合適性、結(jié)構(gòu)穩(wěn)定性、可擴(kuò)展性、可復(fù)用性”這些特征量來評估。,.,1.3體系結(jié)構(gòu)設(shè)計原則,合適性:即體系結(jié)構(gòu)是否適合于軟件的“功能性需求”和“非功能性需求”。,設(shè)計師可以充分發(fā)揮主觀能動性,根據(jù)需求的特征,通過推理和歸納的方法設(shè)計出合適的體系結(jié)構(gòu)。經(jīng)驗(yàn)不豐富的設(shè)計師往往把注意力集中在“功能性需求”而疏忽了“非功能性需求”,殊不知后者恰恰是最能體現(xiàn)設(shè)計水平的地方。高水平的設(shè)計師高就高在“設(shè)計出恰好滿足客戶需求的軟件,并且使開發(fā)方和客戶方獲取最大的利益,而不是不惜代價設(shè)計出最先進(jìn)的軟件。(以設(shè)計住宅為例)對于軟件系統(tǒng)而言,能夠滿足需求的設(shè)計方案可能有很多種,究竟該選哪一種?此時商業(yè)目標(biāo)是決策依據(jù),即選擇能夠?yàn)殚_發(fā)方和客戶方帶來最大利益的那個設(shè)計方案。大部分軟件開發(fā)人員天生有使用新技術(shù)的傾向,而這種傾向?qū)﹂_發(fā)商業(yè)產(chǎn)品而言可能是不利的,切記切記,.,結(jié)構(gòu)穩(wěn)定性,當(dāng)前中國有幾句流行的至理名言:“穩(wěn)定壓倒一切”、“發(fā)展是硬道理”。發(fā)展的前提條件是穩(wěn)定,社會如此,開發(fā)軟件產(chǎn)品也是如此。體系結(jié)構(gòu)一旦設(shè)計完成,應(yīng)當(dāng)在一定的時間內(nèi)保持穩(wěn)定不變,只有這樣才能使后續(xù)工作順利開展。如果體系結(jié)構(gòu)經(jīng)常變動,那么建筑在體系結(jié)構(gòu)之上的用戶界面、數(shù)據(jù)庫、模塊、數(shù)據(jù)結(jié)構(gòu)等等也跟著經(jīng)常變動,用“樹倒猢猻散”來比喻很恰當(dāng),這將導(dǎo)致項(xiàng)目發(fā)生混亂。高水平的設(shè)計師應(yīng)當(dāng)能夠分析需求文檔,判斷出哪些需求是穩(wěn)定不變的,哪些需求是可能變動的。于是根據(jù)那些穩(wěn)定不變的需求設(shè)計體系結(jié)構(gòu),而根據(jù)那些可變的需求設(shè)計軟件的“可擴(kuò)展性”。,.,可擴(kuò)展性是指軟件擴(kuò)展新功能的容易程度??蓴U(kuò)展性越好,表示軟件適應(yīng)“變化”的能力越強(qiáng)??蓴U(kuò)展性越來越重要,這是由現(xiàn)代軟件的商業(yè)模式?jīng)Q定的:社會的商業(yè)越發(fā)達(dá),需求變化就越快。現(xiàn)代軟件產(chǎn)品通常采用“增量開發(fā)模式”,開發(fā)商不斷地推出軟件產(chǎn)品的新版本,從而不斷地獲取增值利潤。穩(wěn)定性和可擴(kuò)展性之間存在辨證的關(guān)系:如果系統(tǒng)不可擴(kuò)展的話,那么就沒有發(fā)展前途,所以不能只關(guān)心穩(wěn)定性而忽視可擴(kuò)展性;而軟件系統(tǒng)“可擴(kuò)展”的前提條件是“保持結(jié)構(gòu)穩(wěn)定”,否則軟件難以按計劃開發(fā)出來,穩(wěn)定性是使系統(tǒng)能夠持續(xù)發(fā)展的基礎(chǔ)。所以穩(wěn)定性和可擴(kuò)展性都是體系結(jié)構(gòu)設(shè)計的要素。如果每次變化都導(dǎo)致體系結(jié)構(gòu)發(fā)生大的變動,那簡直就是“傷筋動骨”,這樣的體系結(jié)構(gòu)無疑是敗筆之作。(例如房屋裝修),.,復(fù)用就是指“重復(fù)利用已經(jīng)存在的東西”。被復(fù)用的對象可以是有形的物體,也可以是無形的知識財富。復(fù)用不是人類懶惰的表現(xiàn)而是智慧的表現(xiàn)。因?yàn)槿祟惪偸窃诶^承了前人的成果,不斷加以利用、改進(jìn)或創(chuàng)新后才會進(jìn)步。復(fù)用的有利于提高產(chǎn)品的質(zhì)量、提高生產(chǎn)率和降低成本。由經(jīng)驗(yàn)可知,通常在一個新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地可以相信成熟的東西總是比較可靠的(即具有高質(zhì)量),而大量成熟的工作可以通過復(fù)用來快速實(shí)現(xiàn)(即具有高生產(chǎn)率)。勤勞并且聰明的人們應(yīng)該把大部分的時間用在小比例的創(chuàng)新工作上,而把小部分的時間用在大比例的成熟工作中,這樣才能把工作做得又快又好。,.,復(fù)用的意義很容易理解,人們也樂意復(fù)用以前的成果,但是前提條件是該成果具有比較好的可復(fù)用性??蓮?fù)用性是指成果被復(fù)用的容易程度??蓮?fù)用性是設(shè)計出來的,而不是偶然碰到的。要使體系結(jié)構(gòu)具有良好的可復(fù)用性,設(shè)計師應(yīng)當(dāng)分析應(yīng)用域的共性問題,然后設(shè)計出一種通用的體系結(jié)構(gòu)模式,這樣的體系結(jié)構(gòu)才可以被復(fù)用。,.,2.1體系結(jié)構(gòu)風(fēng)格,數(shù)據(jù)流系統(tǒng)虛擬機(jī)批處理序列解釋器管道和過濾器基于規(guī)則系統(tǒng)調(diào)用和返回系統(tǒng)數(shù)據(jù)中心系統(tǒng)(知識庫)主程序和子程序數(shù)據(jù)庫面向?qū)ο笙到y(tǒng)超文本系統(tǒng)多級分層黑板獨(dú)立構(gòu)件通訊進(jìn)程事件系統(tǒng),.,2.1體系結(jié)構(gòu)風(fēng)格,7種通用的風(fēng)格管道和過濾器、對象、隱式調(diào)用、層、知識庫、解釋器和過程調(diào)用。,.,2.2管道過濾器(pipes&filters),構(gòu)件對輸入流進(jìn)行內(nèi)部轉(zhuǎn)換和增量計算,在輸入數(shù)據(jù)流全部處理之前,輸出就已經(jīng)開始了。重要特點(diǎn)是每個filter必須是一個獨(dú)立實(shí)體。特別是filter之間無需共享狀態(tài)。,.,2.2管道過濾器(pipes&filters,典型的例子:Unix的shell中編寫的程序通過提供的符號表示要連接的構(gòu)件和提供運(yùn)行時機(jī)制實(shí)現(xiàn)管道。傳統(tǒng)的編譯器:詞法分析、句法分析、詞義分析、代碼生成階段信號處理領(lǐng)域并行計算功能編程分布式系統(tǒng),.,2.2管道過濾器(pipes&filters,管道過濾器的優(yōu)點(diǎn):設(shè)計者可以將整個系統(tǒng)的輸入和輸出特性理解為各個過濾器功能的簡單合成。支持功能模塊的重用:只要相互傳輸?shù)臄?shù)據(jù)格式達(dá)成一致,就可以連接在一起。系統(tǒng)容易維護(hù)和擴(kuò)展:新的過濾器可以加進(jìn)來,舊的可以被替換支持某些特定的分析,如吞吐量和死鎖檢測具有天然的并發(fā)特性,可以獨(dú)立運(yùn)行,也可以和其他過濾器并發(fā)執(zhí)行。,.,2.2管道過濾器(pipes&filters,管道過濾器模式的缺點(diǎn):過濾器獨(dú)立性強(qiáng),處理過程成批處理,不適合交互性強(qiáng)的應(yīng)用維持兩個相對獨(dú)立但有不存在某種關(guān)系的數(shù)據(jù)流之間的通訊可能很困難。根據(jù)實(shí)際應(yīng)用的要求,設(shè)計者也需要在數(shù)據(jù)傳輸時被迫使用底層公共命名。增加過濾器本身的復(fù)雜性。,.,2.3數(shù)據(jù)抽象和面向?qū)ο蠼M織結(jié)構(gòu),對象通過函數(shù)和過程調(diào)用來實(shí)現(xiàn)交互。這種模式有兩個重要的方面:對象維護(hù)自身表示的完整性(通常是通過保持其表示上的一些不變式來實(shí)現(xiàn)的)這種表示對其他對象是隱藏的。,.,2.3數(shù)據(jù)抽象和面向?qū)ο蠼M織結(jié)構(gòu),面向?qū)ο笙到y(tǒng)有很多眾所周知的優(yōu)點(diǎn)。由于對象的對客戶隱藏了實(shí)現(xiàn)的細(xì)節(jié),所以可以在不影響其客戶的情況下改變對象實(shí)現(xiàn)。另外,由于把操作的數(shù)據(jù)和一組存取例程綁定在一起,使得設(shè)計者能夠把問題分解成交互作用的代理集合。,.,2.3數(shù)據(jù)抽象和面向?qū)ο蠼M織結(jié)構(gòu),最大的缺點(diǎn):當(dāng)一個對象和其他對象交互(過程調(diào)用),它必須知道其他對象的標(biāo)識。而在過濾器系統(tǒng)中,過濾器是不需要知道其他過濾器的存在。每當(dāng)一個對象的標(biāo)識改變的時候,必須修改那些顯式調(diào)用它的對象。在模塊化語言中,當(dāng)一個模塊改變后需要修改每一個引用了這個模塊的“導(dǎo)入”列表。,.,2.4事件驅(qū)動,隱式調(diào)用,隱式調(diào)用,響應(yīng)集成,選擇性廣播。這種模式起源于基于角色的系統(tǒng),約束滿足性檢查,后臺程序和包交換網(wǎng)絡(luò)。思想是,不直接調(diào)用一個過程,而是發(fā)布或廣播一個或多個事件。系統(tǒng)中的其他構(gòu)件通過注冊與一個事件關(guān)聯(lián)起來的過程,來表示對某一個事件感興趣。當(dāng)這個事件發(fā)生時,系統(tǒng)本身會調(diào)用所有注冊了這個事件的過程。這樣一個事件的激發(fā)會導(dǎo)致其他模塊中過程的隱式調(diào)用。,.,2.4事件驅(qū)動,隱式調(diào)用,主要特點(diǎn):事件發(fā)布者不知道哪些構(gòu)件會受到事件的影響,這樣,構(gòu)件不能對事件的處理順序,或者事件發(fā)生后的處理結(jié)果做任何假設(shè)。許多隱式調(diào)用系統(tǒng)也包含顯示調(diào)用(正常的過程調(diào)用)以此作為構(gòu)件交互的補(bǔ)充形式。,.,2.4事件驅(qū)動,隱式調(diào)用,例子:編程環(huán)境中工具集成數(shù)據(jù)庫管理系統(tǒng)中的一致性約束用戶界面中數(shù)據(jù)表示與管理數(shù)據(jù)的應(yīng)用程序的分離語法導(dǎo)向的增量語義檢查,.,2.4事件驅(qū)動,隱式調(diào)用,優(yōu)點(diǎn):它提供了對重用非常好的支持。通過注冊一個系統(tǒng)事件,任何一個構(gòu)件可以很容易的引入到系統(tǒng)中來。能簡化系統(tǒng)的演化。在不改變系統(tǒng)中其他構(gòu)件接口的情況下,構(gòu)件可以非常容易的被其他構(gòu)件取代。,.,2.4事件驅(qū)動,隱式調(diào)用,缺點(diǎn):構(gòu)件放棄了自身對系統(tǒng)的計算的控制。當(dāng)一個構(gòu)件發(fā)布一個事件,它不能保證保證其他構(gòu)件會對其作出響應(yīng)。即使它能夠肯定該事件會被其他構(gòu)件響應(yīng),它也不能依賴事件被處理的先后順序。在數(shù)據(jù)交換方面,有時數(shù)據(jù)通過事件傳遞,但在某些情況下,事件系統(tǒng)必須依賴一個共享緩沖區(qū),這樣整體的性能和資源的管理可能成為關(guān)鍵性問題。(ip)正確性驗(yàn)證也可能是問題,因?yàn)榘l(fā)布事件的過程的具體含義與事件激發(fā)的上下文有關(guān)。,.,2.5分層系統(tǒng)(LAYEREDSYSTEMS),一個分層系統(tǒng)是按照層次結(jié)構(gòu)組織的,每一層向它的上層提供服務(wù),同時它又是下層的客戶。在某些分層系統(tǒng)中,內(nèi)層只對其相鄰的層和某些用于輸出的函數(shù)是可見的,對其他外部的層是隱藏的。在這些系統(tǒng)中,構(gòu)件在某些層中實(shí)現(xiàn)虛擬機(jī)。,.,2.5分層系統(tǒng)(LAYEREDSYSTEMS),應(yīng)用系統(tǒng)層,用戶,基本功能層,內(nèi)核層,過程調(diào)用,過程調(diào)用,.,2.5分層系統(tǒng)(LAYEREDSYSTEMS),例子:最著名的例子是分層通信協(xié)議數(shù)據(jù)庫系統(tǒng)操作系統(tǒng),.,2.5分層系統(tǒng)(LAYEREDSYSTEMS),性質(zhì)特點(diǎn):它支持逐級抽象的系統(tǒng)設(shè)計它支持?jǐn)U展,每層最多和上下兩層交互它支持重用。這使得定義標(biāo)準(zhǔn)層接口成為可能,在此接口上可建立不同實(shí)現(xiàn)。(OSI的ISO模型和XWINDOWSYSTEM),.,2.5分層系統(tǒng)(LAYEREDSYSTEMS),缺點(diǎn):并不是所有的系統(tǒng)都容易用這種模式來構(gòu)建。從性能的考慮,也需要將邏輯上高層次的功能與相對低層次的實(shí)現(xiàn)結(jié)合起來。很難找到一個合適的、正確的層次抽象方法。,.,2.6知識庫(REPOSITORIES),由兩種截然不同的功能構(gòu)件:一個是中央數(shù)據(jù)結(jié)構(gòu)構(gòu)件,代表系統(tǒng)當(dāng)前狀態(tài),另一個是一些相對獨(dú)立的構(gòu)件的集合,這些構(gòu)件對中央數(shù)據(jù)存儲進(jìn)行操作??刂品绞降倪x擇將知識庫分成了兩種主要的子類。輸入流中事務(wù)觸發(fā)系統(tǒng)相應(yīng)的進(jìn)程執(zhí)行,是傳統(tǒng)的數(shù)據(jù)庫型知識庫。由中心數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)系統(tǒng)相應(yīng)的進(jìn)程執(zhí)行,這種稱為黑板知識庫,.,2.6知識庫(REPOSITORIES)黑板體系結(jié)構(gòu),黑板(共享數(shù)據(jù)),KS1,KS8,KS7,KS6,KS5,KS4,KS3,KS2,Knowledgesource,直接存取,計算,.,2.6知識庫(REPOSITORIES)黑板體系結(jié)構(gòu),黑板系統(tǒng)傳統(tǒng)上應(yīng)用在復(fù)雜信號處理解釋上,比如語音和模式識別。通過松散連接代理共享數(shù)據(jù)集成編程環(huán)境編譯器(以共享信息為基礎(chǔ)),.,2.7解釋器(INTERPRETERS),通常有一個虛擬機(jī)。一個解釋器包括正在被解釋執(zhí)行的偽碼和解釋引擎本身。包含四個部分:完成解釋工作的解釋引擎,一個包含將被解釋的偽碼的存儲區(qū),一個紀(jì)錄解釋引擎當(dāng)前工作狀態(tài)的數(shù)據(jù)結(jié)構(gòu),以及一個紀(jì)錄源代碼被解釋執(zhí)行的進(jìn)度的數(shù)據(jù)結(jié)構(gòu)。,.,2.7解釋器(INTERPRETERS),被解釋的程序(偽碼),數(shù)據(jù)(程序狀態(tài)),解釋引擎,內(nèi)部解釋器狀態(tài),選擇的指令和數(shù)據(jù),輸入,輸出,.,5流行的軟件體系結(jié)構(gòu),Sun(Oracle)的java平臺Microsoft的.NET平臺,.,5流行的軟件體系結(jié)構(gòu),這兩種體系結(jié)構(gòu)提供的技術(shù)服務(wù),例如:事務(wù)的完整性、消息傳遞和目錄服務(wù)、安全、異常處理、遠(yuǎn)程訪問,以及許多其他服務(wù),它們使開發(fā)人員能夠?qū)⒆⒁饬性跇?gòu)件的功能上,而無需關(guān)注工作需要的所有底層技術(shù)基礎(chǔ)。,.,5.2基于JAVA的分布式構(gòu)件技術(shù),客戶端應(yīng)用程序,動態(tài)HTML頁面,動態(tài)HTML頁面,客戶層,JSP頁面,EJB,JSP頁面,EJB,WEB層,業(yè)務(wù)層,EIS層,數(shù)據(jù)庫,數(shù)據(jù)庫,數(shù)據(jù)庫,.,5.3基于.NET平臺的分布式構(gòu)件技術(shù),VBC+C#PERL,WEB服務(wù)用戶界面,數(shù)據(jù)和XML(ADO.NET),類庫(CLASSLIBRARY),通用語言運(yùn)行時(CommonLanguageRuntime),V,.,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)用分布到多個處理機(jī)上。C/S體系結(jié)構(gòu)有三個主要組成部分:數(shù)據(jù)庫服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)。,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格概述,.,RIA結(jié)合了C/S架構(gòu)反應(yīng)速度快、交互性強(qiáng)的優(yōu)點(diǎn),以及B/S架構(gòu)傳播范圍廣及容易傳播的特性RIA簡化并改進(jìn)了B/S架構(gòu)的用戶交互數(shù)據(jù)能夠被緩存在客戶端,從而可以實(shí)現(xiàn)一個比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面RIA可以繼續(xù)使用現(xiàn)有的應(yīng)用程序模型(包括J2EE和.NET),因而無需大規(guī)模替換現(xiàn)有的Web應(yīng)用程序。通過RIA技術(shù),可以輕松構(gòu)建更為直觀、易于使用、反應(yīng)更迅速并且可以脫機(jī)使用的應(yīng)用程序RIA可以幫助企業(yè)提供多元化的重要業(yè)務(wù)效益,包括提高產(chǎn)品銷量、提高品牌忠誠度、延長網(wǎng)站逗留時間、較頻繁的重復(fù)訪問、減少帶寬成本、減少支持求助以及增強(qiáng)客戶關(guān)系等,RIA的概念RIA的優(yōu)點(diǎn),.,RIA模型,.,RIA客戶端開發(fā)技術(shù),.,RIA客戶端開發(fā)技術(shù)AJAX,.,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格模型,.,服務(wù)器數(shù)據(jù)庫安全性的要求;數(shù)據(jù)庫訪問并發(fā)性的控制;數(shù)據(jù)庫前端的客戶應(yīng)用程序的全局?jǐn)?shù)據(jù)完整性規(guī)則;數(shù)據(jù)庫的備份與恢復(fù)。,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格任務(wù)分配,.,客戶應(yīng)用程序提供用戶與數(shù)據(jù)庫交互的界面;向數(shù)據(jù)庫服務(wù)器提交用戶請求并接收來自數(shù)據(jù)庫服務(wù)器的信息;利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求。,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格任務(wù)分配,.,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格處理流程,.,C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡單,易于人們理解和接受。系統(tǒng)的客戶應(yīng)用程序和服務(wù)器構(gòu)件分別運(yùn)行在不同的計算機(jī)上,系統(tǒng)中每臺服務(wù)器都可以適合各構(gòu)件的要求,這對于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對系統(tǒng)進(jìn)行擴(kuò)充和縮小。在C/S體系結(jié)構(gòu)中,系統(tǒng)中的功能構(gòu)件充分隔離,客戶應(yīng)用程序的開發(fā)集中于數(shù)據(jù)的顯示和分析,而數(shù)據(jù)庫服務(wù)器的開發(fā)則集中于數(shù)據(jù)的管理,不必在每一個新的應(yīng)用程序中都要對一個DBMS進(jìn)行編碼。將大的應(yīng)用處理任務(wù)分布到許多通過網(wǎng)絡(luò)連接的低成本計算機(jī)上,以節(jié)約大量費(fèi)用。,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格優(yōu)點(diǎn),.,開發(fā)成本較高客戶端程序設(shè)計復(fù)雜信息內(nèi)容和形式單一用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用軟件移植困難軟件維護(hù)和升級困難新技術(shù)不能輕易應(yīng)用,第3章軟件體系結(jié)構(gòu)風(fēng)格,C/S風(fēng)格缺點(diǎn),.,第3章軟件體系結(jié)構(gòu)風(fēng)格,三層C/S風(fēng)格模型,.,第3章軟件體系結(jié)構(gòu)風(fēng)格,三層C/S風(fēng)格處理流程,.,第3章軟件體系結(jié)構(gòu)風(fēng)格,三層C/S風(fēng)格物理結(jié)構(gòu),.,允許合理地劃分三層結(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

提交評論