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

下載本文檔

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

文檔簡介

第2章軟件體系結(jié)構(gòu)風(fēng)格劉偉(Sunny)weiliu_china@163.com目前一頁\總數(shù)三十六頁\編于二十二點教學(xué)內(nèi)容定義管道和過濾器數(shù)據(jù)抽象和面向?qū)ο蠼M織基于事件的隱式調(diào)用分層系統(tǒng)倉庫系統(tǒng)過程控制環(huán)路C/S風(fēng)格三層C/S風(fēng)格B/S風(fēng)格目前二頁\總數(shù)三十六頁\編于二十二點定義軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒ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)。目前三頁\總數(shù)三十六頁\編于二十二點DefinitionAnarchitecturalstyledefinesafamilyofsystemsintermsofapatternofstructuralorganization.Morespecifically,anarchitecturalstyledefinesavocabularyofcomponentsandconnectortypes,andasetofconstraintsonhowtheycanbecombined.目前四頁\總數(shù)三十六頁\編于二十二點經(jīng)典的體系結(jié)構(gòu)風(fēng)格數(shù)據(jù)流風(fēng)格:批處理序列;管道/過濾器。調(diào)用/返回風(fēng)格:主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)。獨立構(gòu)件風(fēng)格:進程通訊;事件系統(tǒng)。虛擬機風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)。倉庫風(fēng)格:數(shù)據(jù)庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)。過程控制環(huán)路C/S風(fēng)格B/S風(fēng)格目前五頁\總數(shù)三十六頁\編于二十二點管道和過濾器每個構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。過濾器風(fēng)格的連接件就象是數(shù)據(jù)流傳輸?shù)墓艿溃瑢⒁粋€過濾器的輸出傳到另一個過濾器的輸入。不變量:過濾器雖然可以增量式地處理數(shù)據(jù),但是它們是獨立的管道和過濾器的正確輸出不依賴其順序?qū)嵗壕幾g器,功能程序,并行程序目前六頁\總數(shù)三十六頁\編于二十二點管道和過濾器目前七頁\總數(shù)三十六頁\編于二十二點數(shù)據(jù)抽象和面向?qū)ο蠼M織數(shù)據(jù)的表示方法和它們的相應(yīng)操作被封裝在一個抽象數(shù)據(jù)類型或?qū)ο笾羞@種風(fēng)格的構(gòu)件是對象或者說是抽象數(shù)據(jù)類型的實例對象通過函數(shù)和過程的調(diào)用來進行交互目前八頁\總數(shù)三十六頁\編于二十二點數(shù)據(jù)抽象和面向?qū)ο蠼M織目前九頁\總數(shù)三十六頁\編于二十二點基于事件的隱式調(diào)用構(gòu)件不直接調(diào)用一個過程,而是觸發(fā)或廣播一個或多個事件系統(tǒng)中的其他構(gòu)件中的過程在一個或多個事件中注冊,當一個事件被觸發(fā),系統(tǒng)自動調(diào)用在這個事件中注冊的所有過程。這種風(fēng)格的構(gòu)件是一個模塊,這些模塊可以是一些過程,又可以是一些事件的集合。不變量:事件的觸發(fā)者并不知道哪些構(gòu)件會被這些事件影響(觀察者模式-Observer)實例:數(shù)據(jù)庫管理系統(tǒng),用戶界面目前十頁\總數(shù)三十六頁\編于二十二點基于事件的隱式調(diào)用目前十一頁\總數(shù)三十六頁\編于二十二點分層系統(tǒng)組織成一個層次結(jié)構(gòu)每一層都為上一層提供了相應(yīng)的服務(wù),并且接受下一層提供的服務(wù)在分層系統(tǒng)的一些層次中構(gòu)件實現(xiàn)了虛擬機的功能實例:分層的通信協(xié)議目前十二頁\總數(shù)三十六頁\編于二十二點分層系統(tǒng)目前十三頁\總數(shù)三十六頁\編于二十二點倉庫系統(tǒng)構(gòu)件:中心數(shù)據(jù)結(jié)構(gòu)(倉庫)和一些獨立構(gòu)件的集合倉庫和在系統(tǒng)中很重要的外部構(gòu)件之間的相互作用實例:需要使用一些復(fù)雜表征的信號處理系統(tǒng)目前十四頁\總數(shù)三十六頁\編于二十二點倉庫系統(tǒng)目前十五頁\總數(shù)三十六頁\編于二十二點過程控制環(huán)路源自于控制理論中的模型框架,將事務(wù)處理看成輸入、加工、輸出、反饋、再輸入的一個持續(xù)的過程模型。通過持續(xù)性的加工處理過程將輸入數(shù)據(jù)轉(zhuǎn)換成既定屬性的“產(chǎn)品”,在工控系統(tǒng)、供電、水利甚至可以推廣到商務(wù)軟件體現(xiàn)的管理模型中。目前十六頁\總數(shù)三十六頁\編于二十二點過程控制環(huán)路目前十七頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——產(chǎn)生背景在集中式計算技術(shù)時代廣泛使用的是大型機/小型機計算模型。它是通過一臺物理上與宿主機相連接的非智能終端來實現(xiàn)宿主機上的應(yīng)用程序。20世紀80年代以后,集中式結(jié)構(gòu)逐漸被以PC機為主的微機網(wǎng)絡(luò)所取代。個人計算機和工作站的采用,永遠改變了協(xié)作計算模型,從而導(dǎo)致了分散的個人計算模型的產(chǎn)生。目前十八頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——基本概念C/S軟件體系結(jié)構(gòu)是基于資源不對等,且為實現(xiàn)共享而提出來的,是20世紀90年代成熟起來的技術(shù),C/S體系結(jié)構(gòu)定義了工作站如何與服務(wù)器相連,以實現(xiàn)數(shù)據(jù)和應(yīng)用分布到多個處理機上。C/S體系結(jié)構(gòu)有三個主要組成部分:數(shù)據(jù)庫服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)。目前十九頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——體系結(jié)構(gòu)目前二十頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——任務(wù)分配服務(wù)器數(shù)據(jù)庫安全性的要求;數(shù)據(jù)庫訪問并發(fā)性的控制;數(shù)據(jù)庫前端的客戶應(yīng)用程序的全局數(shù)據(jù)完整性規(guī)則;數(shù)據(jù)庫的備份和恢復(fù)。目前二十一頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——任務(wù)分配客戶應(yīng)用程序提供用戶與數(shù)據(jù)庫交互的界面;向數(shù)據(jù)庫服務(wù)器提交用戶請求并接收來自數(shù)據(jù)庫服務(wù)器的信息;利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求目前二十二頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——處理流程目前二十三頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——優(yōu)點C/S體系結(jié)構(gòu)具有強大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡單,易于人們理解和接受。系統(tǒng)的客戶應(yīng)用程序和服務(wù)器構(gòu)件分別運行在不同的計算機上,系統(tǒng)中每臺服務(wù)器都可以適合各構(gòu)件的要求,這對于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對系統(tǒng)進行擴充和縮小。在C/S體系結(jié)構(gòu)中,系統(tǒng)中的功能構(gòu)件充分隔離,客戶應(yīng)用程序的開發(fā)集中于數(shù)據(jù)的顯示和分析,而數(shù)據(jù)庫服務(wù)器的開發(fā)則集中于數(shù)據(jù)的管理,不必在每一個新的應(yīng)用程序中都要對一個DBMS進行編碼。將大的應(yīng)用處理任務(wù)分布到許多通過網(wǎng)絡(luò)連接的低成本計算機上,以節(jié)約大量費用。目前二十四頁\總數(shù)三十六頁\編于二十二點C/S風(fēng)格——缺點開發(fā)成本較高客戶端程序設(shè)計復(fù)雜信息內(nèi)容和形式單一用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用軟件移植困難軟件維護和升級困難新技術(shù)不能輕易應(yīng)用目前二十五頁\總數(shù)三十六頁\編于二十二點三層C/S風(fēng)格——體系結(jié)構(gòu)目前二十六頁\總數(shù)三十六頁\編于二十二點三層C/S風(fēng)格——處理流程目前二十七頁\總數(shù)三十六頁\編于二十二點三層C/S風(fēng)格——物理結(jié)構(gòu)目前二十八頁\總數(shù)三十六頁\編于二十二點三層C/S風(fēng)格——優(yōu)點允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨立性,能提高系統(tǒng)和軟件的可維護性和可擴展性。允許更靈活有效地選用相應(yīng)的平臺和硬件系統(tǒng),使之在處理負荷能力上與處理特性上分別適應(yīng)于結(jié)構(gòu)清晰的三層;并且這些平臺和各個組成部分可以具有良好的可升級性和開放性。應(yīng)用的各層可以并行開發(fā),可以選擇各自最適合的開發(fā)語言。利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫工具或黑客手段去非法地訪問數(shù)據(jù)層,為嚴格的安全管理奠定了堅實的基礎(chǔ)。目前二十九頁\總數(shù)三十六頁\編于二十二點三層C/S風(fēng)格——注意點三層C/S結(jié)構(gòu)各層間的通信效率不高,即使分配給各層的硬件能力很強,其作為整體來說也達不到所要求的性能。設(shè)計時必須慎重考慮三層間的通信方法、通信頻率及數(shù)據(jù)量,這和提高各層的獨立性一樣是三層C/S結(jié)構(gòu)的關(guān)鍵問題。目前三十頁\總數(shù)三十六頁\編于二十二點B/S風(fēng)格——基本概念瀏覽器/服務(wù)器(B/S)風(fēng)格就是上述三層應(yīng)用結(jié)構(gòu)的一種實現(xiàn)方式,其具體結(jié)構(gòu)為:瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。B/S體系結(jié)構(gòu)主要是利用不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種腳本語言,用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜的專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本。從某種程度上來說,B/S結(jié)構(gòu)是一種全新的軟件體系結(jié)構(gòu)。目前三十一頁\總數(shù)三十六頁\編于二十二點B/S風(fēng)格——體系結(jié)構(gòu)目前三十二頁\總數(shù)三十六頁\編于二十二點B/S風(fēng)格——優(yōu)點基于B/S體系結(jié)構(gòu)的軟件,系統(tǒng)安裝、修改和維護全在服務(wù)器端解決。用戶在使用系統(tǒng)時,僅僅需要一個瀏覽器就可運行全部的模塊,真正達到了“零客戶端”的功能,很容易在運行時自動升級。B/S體系結(jié)構(gòu)還提供了異種機、異種網(wǎng)、異種應(yīng)用服務(wù)器的聯(lián)機、聯(lián)網(wǎng)、統(tǒng)一服務(wù)的最現(xiàn)實的開放性基礎(chǔ)。目前三十三頁\總數(shù)三十六頁\編于二十二點B/S風(fēng)格——缺點B/S體系結(jié)構(gòu)缺乏對動態(tài)頁面的支持能力,沒有集成有效的數(shù)據(jù)庫處理功能。B/S體系結(jié)構(gòu)的系統(tǒng)擴展能力差,安全性難以控制。采用B/S體系結(jié)構(gòu)的應(yīng)用系統(tǒng),在數(shù)據(jù)查詢等響應(yīng)速度上,要遠遠低于C/S體系結(jié)構(gòu)。B/S體系結(jié)構(gòu)的數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動態(tài)交互性不強,不利于在線事務(wù)處理(OLTP)應(yīng)用。目前三十四頁\總數(shù)三十六頁\編于二十二點實例分析某集團公司要開發(fā)一個網(wǎng)絡(luò)財務(wù)程序,使各地員工能在互聯(lián)網(wǎng)絡(luò)上進行財務(wù)處理和報銷。在設(shè)計該財務(wù)程序的體系結(jié)構(gòu)時,項目組產(chǎn)生了分歧:(1)張工程師認為應(yīng)該采用客戶機/服務(wù)器(C/S)結(jié)構(gòu)。各分公司財務(wù)部要安裝一個軟件客戶端,通過這個客戶端連接到總公司財務(wù)部主機。如果員工在外地出差,需要報銷帳務(wù)的,也需要安裝這個客戶端才能進行。(2)李工程師認為應(yīng)該采用瀏覽器/服務(wù)器(B/S)結(jié)構(gòu),各分公司及出差員工直接通過Windows操

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論