版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第8章 軟件體系結(jié)構(gòu)與設(shè)計(jì)模式8.1軟件體系結(jié)構(gòu)的概念 8.1.1什么是軟件體系結(jié)構(gòu) 軟件體系結(jié)構(gòu)是系統(tǒng)的一個(gè)或多個(gè)結(jié)構(gòu),它包括:1) 軟件的組成元素(組件);2) 這些(組件)元素的外部可見特性;3) 這些元素(組件)之間的相互關(guān)系。 軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),也顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。8.1軟件體系結(jié)構(gòu)的概念 軟件體系結(jié)構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。它由功能各異、相互作用的部件按照層次構(gòu)成,包含了系統(tǒng)的基礎(chǔ)構(gòu)成單元、單元之間的相互作用關(guān)系、在構(gòu)成系統(tǒng)時(shí)它們的合成方法以及對(duì)合成約束的描述。具體來說,部件包括客戶
2、端、服務(wù)器、數(shù)據(jù)庫、程序包、過程、子程序等一切軟件的組成部分。相互作用的關(guān)系可以是過程調(diào)用、消息傳遞、共享內(nèi)存變量、客戶端/服務(wù)器的訪問協(xié)議、數(shù)據(jù)庫的訪問協(xié)議等。8.1軟件體系結(jié)構(gòu)的概念 8.1.2軟件體系結(jié)構(gòu)建模根據(jù)建模的側(cè)重點(diǎn)的不同,可以將軟件體系結(jié)構(gòu)的模型分為結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型、過程模型和功能模型5種。1)結(jié)構(gòu)模型這是一個(gè)最直觀、最普遍的建模方法。這種方法以體系結(jié)構(gòu)的構(gòu)件、連接件和其他概念來刻畫結(jié)構(gòu),并力圖通過結(jié)構(gòu)來反映系統(tǒng)的重要語義內(nèi)容,包括系統(tǒng)的配置、約束、隱含的假設(shè)條件、風(fēng)格、性質(zhì)。研究結(jié)構(gòu)模型的核心是體系結(jié)構(gòu)描述語言。2)框架模型框架模型與結(jié)構(gòu)模型類似,但它不太側(cè)重描述
3、結(jié)構(gòu)的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu)??蚣苣P椭饕砸恍┨厥獾膯栴}為目標(biāo)建立只針對(duì)和適應(yīng)該問題的結(jié)構(gòu)。8.1軟件體系結(jié)構(gòu)的概念 3)動(dòng)態(tài)模型動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)模型或框架模型的補(bǔ)充,研究系統(tǒng)的大顆粒的行為性質(zhì)。例如,描述系統(tǒng)的重新配置或演化。動(dòng)態(tài)可能指系統(tǒng)總體結(jié)構(gòu)的配置、建立或拆除通信通道或計(jì)算的過程。這類系統(tǒng)常是激勵(lì)型的。4)過程模型過程模型研究構(gòu)造系統(tǒng)的步驟和過程,因此結(jié)構(gòu)是遵循某些過程腳本的結(jié)果。5)功能模型該模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組成,下層向上層提供服務(wù)。它可以看作是一種特殊的框架模型。5.1 生產(chǎn)函數(shù)與軟件生產(chǎn)函數(shù)生產(chǎn)是指廠商對(duì)各種生產(chǎn)要素加以組合制成產(chǎn)品的行為。生產(chǎn)要素就是生
4、產(chǎn)過程中所使用的各種資源,主要包括勞動(dòng)、資本、土地和企業(yè)家才能。5.1 生產(chǎn)函數(shù)與軟件生產(chǎn)函數(shù)勞動(dòng)是指勞動(dòng)者所提供的各種服務(wù)資本是指生產(chǎn)過程中使用的資金土地是指在生產(chǎn)過程中所使用的自然資源企業(yè)家才能是指企業(yè)家對(duì)整個(gè)生產(chǎn)過程的管理和組織工作 企業(yè)家主要根據(jù)市場(chǎng)預(yù)測(cè),合理地配置各生產(chǎn)要素來從事生產(chǎn)經(jīng)營活動(dòng),以追求企業(yè)的利潤最大化。5.1.1 生產(chǎn)函數(shù) 生產(chǎn)函數(shù)是指一定時(shí)期內(nèi)生產(chǎn)要素的數(shù)量與某種組合與其所能產(chǎn)出的最大產(chǎn)量之間存在的函數(shù)關(guān)系。生產(chǎn)函數(shù)的表達(dá)式如式5.1所示。式5.1中的y表示總產(chǎn)出量,L,K,N,E分別表示投入到生產(chǎn)中的勞動(dòng)、資本、土地、企業(yè)家才能的數(shù)量。1. 生產(chǎn)函數(shù)的定義5.1.1
5、 生產(chǎn)函數(shù) 考慮到土地的固定性,變化較小,企業(yè)家才能難以估算故生產(chǎn)函數(shù)通常被簡(jiǎn)化為式5.2。式5.2表明,在已知?jiǎng)趧?dòng)和資本數(shù)量的組合情況時(shí),可以推算出產(chǎn)品的最大產(chǎn)量。1. 生產(chǎn)函數(shù)的定義5.1.1 生產(chǎn)函數(shù)2. 生產(chǎn)函數(shù)的特征特征資本與勞動(dòng)力的邊際產(chǎn)出總是為正值,勞動(dòng)力(或者資本)投入量不變的情況下,資本(或者勞動(dòng)力)的增加將引起產(chǎn)出的增加邊際產(chǎn)量遞減特性。當(dāng)其他生產(chǎn)要素固定不變時(shí),隨著某一要素投入量的增加,其邊際產(chǎn)量將逐漸減少生產(chǎn)函數(shù)具有非負(fù)性,總產(chǎn)出必須是正值,且總產(chǎn)量是生產(chǎn)要素組合的結(jié)果,單一要素的投入是不能獲得產(chǎn)出的5.1.1 生產(chǎn)函數(shù)3. 規(guī)模報(bào)酬規(guī)模報(bào)酬又稱為規(guī)模經(jīng)濟(jì),主要研究所有
6、要素都同比例增加時(shí),產(chǎn)量時(shí)如何發(fā)生變化的。 通常在規(guī)模較小時(shí),增加投入可以促進(jìn)規(guī)模報(bào)酬遞增,而當(dāng)規(guī)模達(dá)到一定程度時(shí),則會(huì)出現(xiàn)規(guī)模報(bào)酬遞減的情況。5.1.1 生產(chǎn)函數(shù)3. 規(guī)模報(bào)酬5.1.1 生產(chǎn)函數(shù)分別對(duì)公示5.3中的L與K求偏導(dǎo)數(shù)則有:式5.4中, 表示勞動(dòng)力對(duì)產(chǎn)出的彈性系數(shù),表示在其他條件不變的情況下,勞動(dòng)力增加1%會(huì)使產(chǎn)出發(fā)生變化的百分比; 表示資本對(duì)產(chǎn)出的彈性系數(shù),表示在其他條件不變的情況下,資本增加1%會(huì)使產(chǎn)出發(fā)生變化的百分比。3. 規(guī)模報(bào)酬5.1.1 生產(chǎn)函數(shù)5.1.2 軟件生產(chǎn)函數(shù)5.1.2 軟件生產(chǎn)函數(shù)5.1.2 軟件生產(chǎn)函數(shù) 軟件生產(chǎn)率是指軟件開發(fā)的效率,是衡量軟件開發(fā)水平的
7、一個(gè)重要因素。影響軟件生產(chǎn)率的因素眾多,主要有技術(shù)因素、管理因素以及文化因素。5.1.2 軟件生產(chǎn)函數(shù)強(qiáng)調(diào)對(duì)企業(yè)研發(fā)人員個(gè)人職業(yè)能力的綜合評(píng)估。為了提升個(gè)人對(duì)軟件企業(yè)的貢獻(xiàn),有必要從專業(yè)、技能、經(jīng)驗(yàn)、學(xué)歷以及年齡等多方面進(jìn)行考量。軟件技術(shù)領(lǐng)域最好根據(jù)研發(fā)人員所擅長的技術(shù)能力來劃分不同的專業(yè)技術(shù)組。培養(yǎng)研發(fā)人員對(duì)新技術(shù)的學(xué)習(xí)掌握,并創(chuàng)新應(yīng)用。提高軟件生產(chǎn)率的主要舉措有:技術(shù)方面5.1.2 軟件生產(chǎn)函數(shù)建立良好的人才激勵(lì)機(jī)制,通過物質(zhì)、精神獎(jiǎng)勵(lì)以及職務(wù)晉升制度提高研發(fā)人員的工作熱情。建立科學(xué)、合理的研發(fā)人員梯隊(duì)制度,明確劃分管理與技術(shù)領(lǐng)域人才。依據(jù)軟件企業(yè)所處的市場(chǎng)環(huán)境及企業(yè)自身發(fā)展的要求適時(shí)變革
8、管理。用以應(yīng)對(duì)不斷變化的IT市場(chǎng),進(jìn)而增強(qiáng)軟件企業(yè)的核心競(jìng)爭(zhēng)力。提高軟件生產(chǎn)率的主要舉措有:管理方面5.1.2 軟件生產(chǎn)函數(shù)建立良好的企業(yè)學(xué)習(xí)氛圍。通過研發(fā)人員個(gè)人知識(shí)的學(xué)習(xí)、交流及其共享來形成群體效應(yīng),提升整個(gè)企業(yè)的知識(shí)資源。注重軟件工程項(xiàng)目團(tuán)隊(duì)建設(shè),加強(qiáng)團(tuán)隊(duì)合作精神,提高團(tuán)隊(duì)溝通能力。提高軟件生產(chǎn)率的主要舉措有:文化方面8.1軟件體系結(jié)構(gòu)的概念 軟件體系結(jié)構(gòu)建??煞譃?個(gè)層次。1)軟件體系結(jié)構(gòu)核心元模型:軟件體系結(jié)構(gòu)模型由哪些元素組成,這些組成元素之間按照何種原則組織;2)軟件體系結(jié)構(gòu)模型的多視圖表示:從不同的視角描述特定系統(tǒng)的體系結(jié)構(gòu),從而得到多個(gè)視圖,并將這些視圖組織起來以描述整體的軟
9、件體系結(jié)構(gòu)模型;3)軟件體系結(jié)構(gòu)描述語言:在軟件體系結(jié)構(gòu)基本概念的基礎(chǔ)上,選取適當(dāng)?shù)男问交虬胄问交姆椒▉砻枋鲆粋€(gè)特定的體系結(jié)構(gòu);4)軟件體系結(jié)構(gòu)文檔化:記錄和整理上述3個(gè)層次的描述內(nèi)容。8.1軟件體系結(jié)構(gòu)的概念 8.1.3軟件體系結(jié)構(gòu)的分層模型計(jì)算機(jī)硬件層是軟件實(shí)現(xiàn)的物質(zhì)基礎(chǔ),比如存儲(chǔ)器、時(shí)鐘、高速緩存等。軟件硬件層實(shí)現(xiàn)了軟件與硬件的分離,既是對(duì)軟件實(shí)現(xiàn)的最底層的描述,也是對(duì)硬件實(shí)現(xiàn)的操作和控制的描述。基礎(chǔ)控制描述層、資源和管理調(diào)度層是體系結(jié)構(gòu)構(gòu)件和連接的內(nèi)在構(gòu)成模型。系統(tǒng)結(jié)構(gòu)模式層是軟件的上層體系結(jié)構(gòu),它是最高層次的軟件結(jié)構(gòu)概念,其涉及的概念通常有客戶端/服務(wù)器、解釋器、編譯器、框架等。
10、應(yīng)用層是建立在軟件概念之上的領(lǐng)域問題描述,它是基于純粹的應(yīng)用領(lǐng)域的。8.1軟件體系結(jié)構(gòu)的概念 8.1.4軟件體系結(jié)構(gòu)的作用 設(shè)計(jì)軟件的體系結(jié)構(gòu)在設(shè)計(jì)階段非常重要。軟件體系結(jié)構(gòu)就好比軟件系統(tǒng)的骨骼,如果骨骼確定了,那么軟件系統(tǒng)的框架就確定了。軟件體系結(jié)構(gòu)在軟件開發(fā)過程中的作用如下。1)規(guī)范軟件開發(fā)的基本架構(gòu)2)便于開發(fā)人員與用戶的溝通3)模塊化、層次化設(shè)計(jì),有利于減少返工,提高效率4)便于系統(tǒng)開發(fā)前、后期的籌備與服務(wù)8.1軟件體系結(jié)構(gòu)的概念 兩種常用的軟件體系結(jié)構(gòu)如圖所示。樹形結(jié)構(gòu)網(wǎng)狀結(jié)構(gòu)8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 所謂軟件體系結(jié)構(gòu)風(fēng)格,是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。 軟件
11、體系結(jié)構(gòu)風(fēng)格包含4個(gè)關(guān)鍵要素:1) 提供一個(gè)詞匯表;2) 定義一套配置規(guī)則;3) 定義一套語義解釋規(guī)則;4) 定義對(duì)基于這種風(fēng)格的系統(tǒng)進(jìn)行的分析。 根據(jù)以上4要素框架,Garlan和Shaw對(duì)通用軟件體系結(jié)構(gòu)風(fēng)格的進(jìn)行分類,每種體系結(jié)構(gòu)風(fēng)格有各自的應(yīng)用領(lǐng)域和優(yōu)缺點(diǎn)。8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 8.2.1數(shù)據(jù)流風(fēng)格數(shù)據(jù)到達(dá)即被激活處理工作,無數(shù)據(jù)時(shí)不工作。一般來說,數(shù)據(jù)的流向是有序的。在純數(shù)據(jù)流系統(tǒng)中,處理之間除了數(shù)據(jù)交換,沒有任何其他的交互。主要研究近似線性的數(shù)據(jù)流,或在限度內(nèi)的循環(huán)數(shù)據(jù)流。其中包括批處理序列、管道/過濾器。8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 8.2.2調(diào)用返回風(fēng)格 各個(gè)構(gòu)件通
12、過調(diào)用其他構(gòu)件和獲得返回參數(shù)來進(jìn)行交互,配合完成功能。包括主程序/子程序、面向?qū)ο箫L(fēng)格、層次結(jié)構(gòu)。8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 8.2.3 獨(dú)立構(gòu)件風(fēng)格這種風(fēng)格的主要特點(diǎn)是:事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響,相互保持獨(dú)立,這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程會(huì)被調(diào)用;各個(gè)構(gòu)件之間彼此無連接關(guān)系,各自獨(dú)立存在,通過對(duì)事件的發(fā)布和注冊(cè)實(shí)現(xiàn)關(guān)聯(lián),其中包括進(jìn)程通訊、事件系統(tǒng)。8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 8.2.4 虛擬機(jī)風(fēng)格它創(chuàng)建了一種虛擬的環(huán)境,將用戶與底層平臺(tái)隔離開來,或者將高層抽象和底層實(shí)現(xiàn)隔離開來。其中包括解釋器、基于規(guī)則的系統(tǒng)。8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 8.
13、2.5倉庫風(fēng)格倉庫是存儲(chǔ)和維護(hù)數(shù)據(jù)的中心場(chǎng)所。在倉庫風(fēng)格中存在兩類構(gòu)件,表示當(dāng)前數(shù)據(jù)的狀態(tài)的中心數(shù)據(jù)結(jié)構(gòu)和一組對(duì)中心數(shù)據(jù)進(jìn)行操作的獨(dú)立構(gòu)件。其中包括數(shù)據(jù)庫系統(tǒng)、超文本系統(tǒng)、黑板系統(tǒng)。8.3 軟件質(zhì)量屬性 軟件質(zhì)量屬性是指軟件系統(tǒng)在其生存周期過程中所表現(xiàn)出的各種特征。質(zhì)量屬性既和軟件體系結(jié)構(gòu)有關(guān),也和具體實(shí)現(xiàn)有關(guān)。但軟件設(shè)計(jì)是保證軟件質(zhì)量的重要階段,而軟件體系結(jié)構(gòu)是獲取許多質(zhì)量屬性的基礎(chǔ),因此在軟件體系結(jié)構(gòu)設(shè)計(jì)時(shí)就應(yīng)考慮到這些質(zhì)量屬性, 并在軟件體系結(jié)構(gòu)層次上進(jìn)行評(píng)估。質(zhì)量屬性可以分為3類:系統(tǒng)屬性、商業(yè)屬性和構(gòu)架屬性。8.3 軟件質(zhì)量屬性 系統(tǒng)屬性按運(yùn)行時(shí)是否可見又分為:運(yùn)行時(shí)可觀察到的:包括
14、性能、安全性、可用性、易用性;運(yùn)行時(shí)不可觀察的:包括可修改性、可移植性、可測(cè)試性、可集成性、可重用性。 商業(yè)屬性包括投放市場(chǎng)時(shí)間、成本和預(yù)計(jì)的系統(tǒng)生命周期長短。 構(gòu)架屬性包括軟件體系結(jié)構(gòu)本身的概念完整性、正確性和可構(gòu)建性。 我們?cè)谲浖w系結(jié)構(gòu)設(shè)計(jì)時(shí)除了考慮到系統(tǒng)要實(shí)現(xiàn)的功能外,還應(yīng)充分考慮到系統(tǒng)所要求的各類質(zhì)量屬性。8.4分布式系統(tǒng)結(jié)構(gòu) 8.4.1多處理器體系結(jié)構(gòu)多處理器系統(tǒng)是分布式系統(tǒng)的最簡(jiǎn)單模型,系統(tǒng)同時(shí)運(yùn)行許多進(jìn)程,這些進(jìn)程分布在不同的處理器上,可以極大地提高系統(tǒng)的性能。由于大型實(shí)時(shí)系統(tǒng)對(duì)響應(yīng)時(shí)間要求很高,多采用這種模型。大型實(shí)時(shí)系統(tǒng)需要實(shí)時(shí)采集信息,并利用采集到的信息進(jìn)行決策,然后發(fā)送
15、信號(hào)給執(zhí)行機(jī)構(gòu)。雖然,信息采集、決策和執(zhí)行可以在一個(gè)處理器上統(tǒng)一調(diào)度完成,但多處理器的并行計(jì)算比單處理器的分時(shí)片計(jì)算能夠極大地提高系統(tǒng)的性能,而且可靠度也相對(duì)較高。8.4分布式系統(tǒng)結(jié)構(gòu) 8.4.2客戶機(jī)/服務(wù)器體系結(jié)構(gòu)客戶機(jī)/服務(wù)器(Client/Server,簡(jiǎn)稱C/S)體系結(jié)構(gòu)是為了共享不對(duì)等的資源而提出來的,是20世紀(jì)90年代成熟起來的技術(shù),C/S體系結(jié)構(gòu)定義了客戶機(jī)如何與服務(wù)器連接,以將數(shù)據(jù)和應(yīng)用系統(tǒng)分部到多個(gè)處理機(jī)上。C/S體系結(jié)構(gòu)有3個(gè)主要的組成部分。服務(wù)器。負(fù)責(zé)給其子系統(tǒng)提供服務(wù),如數(shù)據(jù)庫服務(wù)器提供數(shù)據(jù)存儲(chǔ)和管理服務(wù),文件服務(wù)器提供文件管理服務(wù),搜索服務(wù)器提供數(shù)據(jù)檢索等。客戶機(jī)。
16、通常是獨(dú)立的子系統(tǒng),通過向服務(wù)器請(qǐng)求約定的資源獲取數(shù)據(jù)。一臺(tái)服務(wù)器可以同時(shí)為許多客戶機(jī)提供服務(wù)。網(wǎng)絡(luò)。連接服務(wù)器和客戶機(jī)。有時(shí)客戶機(jī)和服務(wù)器位于同一臺(tái)物理主機(jī)上,但多數(shù)情況下它們分布在不同主機(jī)上。網(wǎng)絡(luò)可以有各種形式,包括有線和無線等。8.4分布式系統(tǒng)結(jié)構(gòu) C/S系統(tǒng)的設(shè)計(jì)必須考慮應(yīng)用系統(tǒng)的邏輯結(jié)構(gòu)。在邏輯上,我們通常將應(yīng)用系統(tǒng)劃分為3層,即數(shù)據(jù)管理層、應(yīng)用邏輯層和表示層。數(shù)據(jù)管理層主要處理數(shù)據(jù)存儲(chǔ)和管理操作。應(yīng)用邏輯層處理與業(yè)務(wù)相關(guān)的邏輯。表示層處理用戶界面以及用戶的交互。在集中式系統(tǒng)中,不需要將這些清楚地分離,但在分布式系統(tǒng)中,不同層常常被部署在不同的主機(jī)上,因此必須嚴(yán)格地分離不同層。C/S
17、體系結(jié)構(gòu)通常有兩層或三層,也可根據(jù)需要?jiǎng)澐譃楦鄬?。兩層C/S結(jié)構(gòu)一般有兩種形態(tài)。瘦客戶機(jī)模型。在瘦客戶機(jī)模型中,數(shù)據(jù)管理和應(yīng)用邏輯都在服務(wù)器端執(zhí)行,客戶機(jī)只負(fù)責(zé)表示部分。胖客戶機(jī)模型。在這種模型中,服務(wù)器只負(fù)責(zé)對(duì)數(shù)據(jù)的管理??蛻魴C(jī)上的軟件實(shí)現(xiàn)應(yīng)用邏輯以及與系統(tǒng)的交互。8.4分布式系統(tǒng)結(jié)構(gòu) 三層C/S結(jié)構(gòu)就避免了這個(gè)問題,將數(shù)據(jù)管理層和應(yīng)用邏輯層分別放在兩個(gè)物理層或物理主機(jī)上,客戶端仍然保留在客戶機(jī)上。對(duì)于三層C/S結(jié)構(gòu),各層的功能或指責(zé)如下:表示層。表示層是應(yīng)用系統(tǒng)的用戶界面部分,擔(dān)負(fù)著用戶與應(yīng)用程序之間的對(duì)話功能。通常采用圖形界面的方式呈現(xiàn)。應(yīng)用邏輯層。應(yīng)用邏輯層為應(yīng)用系統(tǒng)的主體,包含全部
18、的業(yè)務(wù)邏輯。比如數(shù)據(jù)處理,用戶管理,與其他系統(tǒng)交互,以及記錄系統(tǒng)日志等。通常是應(yīng)用服務(wù)器。數(shù)據(jù)層。數(shù)據(jù)層一般只負(fù)責(zé)數(shù)據(jù)的存取、管理和維護(hù)(如備份等),通常是關(guān)系型數(shù)據(jù)庫服務(wù)器。瀏覽器/服務(wù)器(Browser/Server,簡(jiǎn)稱B/S)結(jié)構(gòu)是三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn),其具體結(jié)構(gòu)為瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。8.4分布式系統(tǒng)結(jié)構(gòu) 8.4.3分布式對(duì)象體系結(jié)構(gòu)分布式系統(tǒng)設(shè)計(jì)的更一般方法是去掉客戶機(jī)與服務(wù)器之間的差異,用分布式對(duì)象體系結(jié)構(gòu)來設(shè)計(jì)系統(tǒng)。分布式對(duì)象的實(shí)質(zhì)是在分布式異構(gòu)環(huán)境下建立應(yīng)用程序系統(tǒng)框架和對(duì)象構(gòu)件,將應(yīng)用服務(wù)分割成功能獨(dú)立的構(gòu)件,各個(gè)構(gòu)件可以放在同一臺(tái)或不同的多臺(tái)服務(wù)器上運(yùn)行。
19、構(gòu)件之間的通信最通常的設(shè)計(jì)方法是通過一個(gè)中間件通信,類似計(jì)算機(jī)中主板上的數(shù)據(jù)總線。中間件一般稱為軟件總線或?qū)ο笳?qǐng)求代理,它的作用是在對(duì)象之間提供一個(gè)無縫接口。分布式對(duì)象技術(shù)的應(yīng)用目的主要是為了降低服務(wù)器負(fù)荷、共享網(wǎng)絡(luò)的資源、平衡分配計(jì)算任務(wù)到不同的主機(jī),提高系統(tǒng)的協(xié)同處理能力。8.4分布式系統(tǒng)結(jié)構(gòu) 8.4.4對(duì)等端體系結(jié)構(gòu)對(duì)等端體系結(jié)構(gòu)可以視為客戶端/服務(wù)器體系結(jié)構(gòu)和分布式對(duì)象體系結(jié)構(gòu)的融合。它沒有嚴(yán)格的客戶機(jī)、服務(wù)器劃分,所有的分布的對(duì)等端根據(jù)需要既能充當(dāng)服務(wù)器,又能充當(dāng)客戶端。但有些情況下,對(duì)等端體系結(jié)構(gòu)仍然需要設(shè)計(jì)一個(gè)端節(jié)點(diǎn)服務(wù)器,用于存儲(chǔ)端節(jié)點(diǎn)信息。在通信之時(shí),對(duì)等端首先連接到端節(jié)點(diǎn)服
20、務(wù)器上,下載可用的對(duì)等端節(jié)點(diǎn)信息。之后的通信就是根據(jù)這些端節(jié)點(diǎn)信息連接到其他對(duì)等端請(qǐng)求信息,這時(shí),該節(jié)點(diǎn)常常充當(dāng)客戶端,其它被請(qǐng)求的端充當(dāng)服務(wù)器。對(duì)等端體系結(jié)構(gòu)常常用于數(shù)據(jù)共享類系統(tǒng)的設(shè)計(jì)。8.4分布式系統(tǒng)結(jié)構(gòu) 8.4.5代理 代理可以用于構(gòu)件包含隔離組件的軟件系統(tǒng),軟件通過遠(yuǎn)程服務(wù)調(diào)用進(jìn)行交互。代理者負(fù)責(zé)協(xié)調(diào)通信,諸如轉(zhuǎn)發(fā)請(qǐng)求和傳遞結(jié)果、異常等。 在ORB上有4個(gè)對(duì)象接口。對(duì)象服務(wù)。定義加入ORB的系統(tǒng)級(jí)服務(wù),如安全性、命名、事務(wù)處理,這類與應(yīng)用領(lǐng)域無關(guān)。公共設(shè)施。定義應(yīng)用程序級(jí)服務(wù)。領(lǐng)域接口。面向特定領(lǐng)域接口。應(yīng)用接口。面向指定的外界應(yīng)用,一般是供應(yīng)商或用戶借助ORB、公共對(duì)象服務(wù)以及公共
21、設(shè)施而開發(fā)的特定產(chǎn)品。8.5體系結(jié)構(gòu)框架 8.5.1模型-視圖-控制器MVC(Model-View-Controller)模型由Trygve Reenskaug博士在20世紀(jì)70年代提出,并最早在面向?qū)ο缶幊陶Z言Smalltalk-80中實(shí)現(xiàn)。MVC強(qiáng)調(diào)將用戶的輸入、數(shù)據(jù)模型和數(shù)據(jù)表示方式分開設(shè)計(jì),一個(gè)交互式應(yīng)用系統(tǒng)由模型、視圖、控制器3部分組成,分別對(duì)應(yīng)內(nèi)部數(shù)據(jù)、數(shù)據(jù)表示和輸入/輸出控制部分。8.5體系結(jié)構(gòu)框架 模型。模型對(duì)象代表應(yīng)用領(lǐng)域中的業(yè)務(wù)實(shí)體和業(yè)務(wù)邏輯規(guī)則,是整個(gè)模型的核心,獨(dú)立于外在的顯示內(nèi)容和顯示形式。模型對(duì)象的變化通過事件通知視圖和控制器對(duì)象。采用了發(fā)布者/訂閱者方式,模型是發(fā)
22、布者,視圖和控制器是訂閱者。對(duì)于模型來說,并不知道自己對(duì)應(yīng)的視圖控制器;但控制器可以通過模型提供的接口改變模型對(duì)象,接口內(nèi)封裝了業(yè)務(wù)數(shù)據(jù)和行為。視圖。視圖對(duì)象代表GUI對(duì)象,以用戶熟悉和需要的格式表現(xiàn)模型信息,是系統(tǒng)與外界的交互接口。視圖訂閱模型可以感知模型的數(shù)據(jù)變化,并更新自己的顯示。視圖對(duì)象也可以包含子視圖,用于顯示模型的不同部分。在多數(shù)的MVC實(shí)現(xiàn)技術(shù)中,視圖和控制器常常是一一對(duì)應(yīng)的??刂破鳌?刂破鲗?duì)象處理用戶的輸入,并給模型發(fā)送業(yè)務(wù)事件,再將業(yè)務(wù)事件解析為模型應(yīng)執(zhí)行的動(dòng)作;同時(shí),模型的更新與修改也將通過控制器來通知視圖,保持視圖與模型的一致。 8.5體系結(jié)構(gòu)框架 MVC的整個(gè)處理流程為
23、:系統(tǒng)攔截到用戶請(qǐng)求,根據(jù)相應(yīng)規(guī)則(多數(shù)采用路由技術(shù)),將用戶請(qǐng)求交給控制器,控制器決定哪個(gè)模型來處理用戶的請(qǐng)求;模型根據(jù)業(yè)務(wù)邏輯處理完畢后將結(jié)果返回給控制器;然后控制器將數(shù)據(jù)提交給視圖;視圖把數(shù)據(jù)組裝之后,呈現(xiàn)給用戶。其中,模型處理所有的業(yè)務(wù)邏輯和規(guī)則,視圖只負(fù)責(zé)顯示數(shù)據(jù),控制器負(fù)責(zé)用戶的請(qǐng)求,這樣將業(yè)務(wù)和表現(xiàn)層分離,以便業(yè)務(wù)代碼可以被用于任何相似的業(yè)務(wù)中,視圖代碼也可以根據(jù)需要隨意替換。8.5體系結(jié)構(gòu)框架 8.5.2模型-視圖-表示器模型-視圖-表示器(Model-View-Presenter,簡(jiǎn)稱MVP)是近年來流行起來的一種體系結(jié)構(gòu)。從名字上就可以看出,MVP與MVC十分類似,事實(shí)也確
24、實(shí)如此。甚至有程序員開玩笑說MVP不過是將MVC中的C換成了字母P,這種說法一定程度上確實(shí)有其道理。MVP與MVC的的主要差異體現(xiàn)在“請(qǐng)求在何處訪問系統(tǒng)”以及“各部分如何聯(lián)系在一起”。MVP中的視圖比MVC中的視圖更加“被動(dòng)”,視圖引發(fā)事件,但是由表示器讀取并設(shè)置UI的值。事實(shí)上,MVP模式設(shè)計(jì)的目的就是為了增強(qiáng)MVC模式,以嘗試使視圖更加被動(dòng),以便更換視圖更加容易。8.5體系結(jié)構(gòu)框架 MVP的處理流程如圖所示。 用戶直接與視圖進(jìn)行交互(圖中步驟1)。視圖通過引發(fā)一個(gè)事件,通知表示器有事件發(fā)生(步驟2),然后表示器訪問視圖通過其IView接口公開的屬性(步驟3)。這些屬性是視圖實(shí)際UI元素的包
25、裝器。此后表示器調(diào)用模型(步驟4),再返回結(jié)果(步驟5)。表示器轉(zhuǎn)換數(shù)據(jù),然后設(shè)置UI的值,該操作通過IView接口完成(步驟6)。視圖將最終頁面顯示給用戶。8.5體系結(jié)構(gòu)框架 8.5.3J2EE體系結(jié)構(gòu)框架MVC是很多現(xiàn)代體系結(jié)構(gòu)框架的基礎(chǔ),主要應(yīng)用于企業(yè)和電子商務(wù)系統(tǒng)中。J2EE的核心體系結(jié)構(gòu)就是在MVC框架的基礎(chǔ)上進(jìn)行擴(kuò)展得到的,如圖所示。J2EE模型是分層結(jié)構(gòu),中間是3層(表示層、業(yè)務(wù)層和集成層)包含應(yīng)用構(gòu)件,客戶層和資源層處于應(yīng)用的外圍。8.5體系結(jié)構(gòu)框架 8.5.4PCMEF框架表示-控制-中介-實(shí)體-基礎(chǔ)(Presentation-Control-Mediator-Entity-Foundation,簡(jiǎn)稱PCMEF)是一個(gè)垂直層次的分層體系結(jié)構(gòu)框架。每一層是可以包含子包的包。PCMEF框架包含4層:表示層、控制層、領(lǐng)域?qū)雍突A(chǔ)層。領(lǐng)域?qū)影瑑蓚€(gè)預(yù)定義的包:實(shí)體(Entity)和中介(Mediator)。參考MVC框架,表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年可視對(duì)講門鈴項(xiàng)目可行性研究報(bào)告
- 二零二五版智慧城市基礎(chǔ)設(shè)施開發(fā)合作協(xié)議3篇
- 2025年新型廚具研發(fā)與銷售合作協(xié)議4篇
- 2025年?duì)I養(yǎng)強(qiáng)化奶行業(yè)深度研究分析報(bào)告
- 二零二四年度園林景觀規(guī)劃設(shè)計(jì)合同規(guī)范3篇
- 2019-2025年中國熊膽粉市場(chǎng)供需格局及未來發(fā)展趨勢(shì)報(bào)告
- 二零二五年度土豆出口貿(mào)易代理合同
- 2025年度風(fēng)電場(chǎng)土方開挖及基礎(chǔ)設(shè)施配套合同
- 二零二五年度離婚房產(chǎn)分割及共同債務(wù)處理協(xié)議3篇
- 基于云計(jì)算的2025年度物流協(xié)同平臺(tái)建設(shè)合同3篇
- 氣動(dòng)調(diào)節(jié)閥調(diào)校
- 中考模擬考試化學(xué)試卷與答案解析(共三套)
- 新人教版五年級(jí)小學(xué)數(shù)學(xué)全冊(cè)奧數(shù)(含答案)
- 風(fēng)電場(chǎng)升壓站培訓(xùn)課件
- 收納盒注塑模具設(shè)計(jì)(論文-任務(wù)書-開題報(bào)告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號(hào)處理與特征提取
- 高中數(shù)學(xué)知識(shí)點(diǎn)全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測(cè)定
- 2023新譯林版新教材高中英語必修一重點(diǎn)詞組歸納總結(jié)
評(píng)論
0/150
提交評(píng)論