邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計中的應(yīng)用_第1頁
邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計中的應(yīng)用_第2頁
邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計中的應(yīng)用_第3頁
邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計中的應(yīng)用_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上在不同的架構(gòu)設(shè)計方法中出現(xiàn)的軟件架構(gòu)視圖種類很多,本文介紹最常用的兩種架構(gòu)視圖邏輯架構(gòu)視圖和物理架構(gòu)視圖,并通過具體案例的分析說明如何運用它們進(jìn)行架構(gòu)設(shè)計。當(dāng)觀察和描述事物大局的時候,邏輯架構(gòu)和物理架構(gòu)是最常用的角度。比如,以我們辦公室里的局域網(wǎng)為例:從物理角度看,所有計算機(jī)“毫無區(qū)別”地連接到路由器上;而從邏輯角度看呢,就發(fā)現(xiàn)這些計算機(jī)是有區(qū)別的一臺計算機(jī)充當(dāng)文件服務(wù)器,而其它計算機(jī)是可以訪問服務(wù)器的客戶機(jī)。如圖1所示。圖1  區(qū)分物理視角與邏輯視角同樣,在軟件架構(gòu)設(shè)計過程中,也可以通過區(qū)分軟件的邏輯架構(gòu)和物理架構(gòu),分別從不同的角度設(shè)計和描述軟件架構(gòu)。所謂

2、軟件架構(gòu)試圖,是指設(shè)計和看待整個軟件系統(tǒng)的特定視角。每個軟件架構(gòu)視圖關(guān)注系統(tǒng)架構(gòu)的不同方面,針對不同的目標(biāo)和用途。也就是說,架構(gòu)要蘊涵的內(nèi)容和決策太多,超過了人腦的能力范圍,因此采用“分而治之”的辦法從不同視角分別設(shè)計;同時,也為軟件架構(gòu)的理解、交流和歸檔提供了方便邏輯架構(gòu) 軟件的邏輯架構(gòu)規(guī)定了軟件系統(tǒng)由哪些邏輯元素組成、以及這些邏輯元素之間的關(guān)系。軟件的邏輯元素一般指某種級別的功能模塊,大到我們熟悉的邏輯層,以及子系統(tǒng)、模塊,小到一個個的類。至于具體要分解到何種大小的功能模塊才可結(jié)束軟件架構(gòu)設(shè)計,并不存在一個“一刀切”的標(biāo)準(zhǔn)- 只要足夠明確簡單,能夠分頭開發(fā)就可以了。于是,在實踐中

3、我們往往將關(guān)鍵機(jī)制相關(guān)的架構(gòu)設(shè)計部分明確到類,而一般功能則到模塊甚至子系統(tǒng)的接口定義即可。值得說明的是,功能模塊有時容易識別,有時卻比較隱含。而比較全面地識別功能塊、規(guī)劃功能塊的接口、明確功能塊之間的使用關(guān)系和使用機(jī)制,正是軟件邏輯架構(gòu)設(shè)計的核心任務(wù)所在。對此,Ivar Jackbson曾有過極為形象的說法,“軟件系統(tǒng)的架構(gòu)涵蓋了整個系統(tǒng),盡管架構(gòu)的有些部分可能只有一寸深圖2展示了一個網(wǎng)絡(luò)設(shè)備管理系統(tǒng)邏輯架構(gòu)設(shè)計的一部分,我們借此來舉例說明軟件邏輯架構(gòu)設(shè)計的3大核心任務(wù)識別功能塊規(guī)劃功能塊的接口明確功能塊之間的使用關(guān)系和使用機(jī)制軟件的邏輯架構(gòu)師架構(gòu)設(shè)計思維的重要方法。在用例技術(shù)已經(jīng)成為捕獲功能

4、需求的事實標(biāo)準(zhǔn)的今天,邏輯架構(gòu)的設(shè)計往往是從用例分析開始的。基于用例的分析方法是邏輯架構(gòu)設(shè)計變得比較有序-通過對每個關(guān)鍵用例的分析,從邏輯上將用例實現(xiàn)為一組功能塊的特定組合,最后綜合這些用例分析成果,將一個個獨立的協(xié)作歸納合并成整個軟件系統(tǒng)的邏輯架構(gòu)。而在用例分析產(chǎn)生之前,功能模塊的確定多多少少帶有些”硬“想出來的味道,特別是并不直接承載業(yè)務(wù)功能的模塊有時比較容易遺漏,直到大規(guī)模編程實現(xiàn)階段才發(fā)現(xiàn)。物理架構(gòu)軟件的物理架構(gòu)規(guī)定了組成軟件系統(tǒng)的物理元素、這些物理元素之間的關(guān)系、以及它們部署到硬件上的策略。物理架構(gòu)可以反映出軟件系統(tǒng)動態(tài)運行時的組織情況。此時,上述物理架構(gòu)定義中所提及的”物理元素“就

5、是進(jìn)程、線程、以及作為類的運行時實例的對象等,而進(jìn)程調(diào)度、線程同步、進(jìn)程或線程通信等則進(jìn)一步反映物理架構(gòu)的動態(tài)行為隨著分布式系統(tǒng)的流行,”物理層“的概念大家早已耳熟能詳。物理層和分布有關(guān),通過將一個整體的軟件系統(tǒng)劃分為不同的物理層,可以把它部署到分布在不同位置的多臺計算機(jī)上,從而為遠(yuǎn)程訪問和負(fù)載均衡等問題提供了手段。當(dāng)然,物理層是大粒度的物理單元,它最終是由粒度更小的組件、模塊、進(jìn)程等單元組成的。 物理架構(gòu)的應(yīng)用很廣泛。例如。架構(gòu)設(shè)計可能需要專門說明數(shù)據(jù)是如何產(chǎn)生、存儲、共享和復(fù)制的,這時可以利于物理架構(gòu),展示軟件系統(tǒng)在運行期間數(shù)據(jù)是由哪些運行時單元如何產(chǎn)生的,數(shù)據(jù)又如何被使用、如何

6、被存儲,哪些數(shù)據(jù)需要跨網(wǎng)絡(luò)復(fù)制和共享等方面的設(shè)計決策。由于人們對組成軟件系統(tǒng)的”物理元素“存在不同看法(如圖3所示),所以在實踐中物理架構(gòu)的用法比較寬泛,不同的人認(rèn)為的物理架構(gòu)也可能不盡相同。因此,我們在交流和實踐的過程中,應(yīng)注意區(qū)分物理架構(gòu)所指為何(也正是這個原因,實踐中所采用的基于多視圖的架構(gòu)設(shè)計方法往往包含更多的視圖,從而使每個架構(gòu)視圖的職責(zé)更加明確)從邏輯架構(gòu)和物理架構(gòu)到設(shè)計實現(xiàn)邏輯架構(gòu)和物理架構(gòu)師軟件架構(gòu)設(shè)計的重要方面。邏輯架構(gòu)致力于將軟件系統(tǒng)分解成不同的邏輯單元,并規(guī)定這些邏輯單元之間的交互接口和交互機(jī)制。物理架構(gòu)則更重視軟件系統(tǒng)運行時的動態(tài)結(jié)構(gòu),以及組成軟件系統(tǒng)的目標(biāo)程序如何部署

7、到硬件上。在后續(xù)的詳細(xì)設(shè)計和編程實現(xiàn)中,將貫徹和利用邏輯架構(gòu)和物理架構(gòu)設(shè)計中制定的架構(gòu)決策,如圖4所示。邏輯架構(gòu)中關(guān)于職責(zé)劃分的決策,體現(xiàn)為層、子系統(tǒng)、模塊等的劃分決定,從靜態(tài)視角為詳細(xì)設(shè)計和編程實現(xiàn)提供切實的指導(dǎo);有了分解就必然產(chǎn)生協(xié)作,邏輯架構(gòu)還規(guī)定了不同邏輯單元之間的交互接口和交互機(jī)制,而編程工作必須實現(xiàn)這些接口和機(jī)制。 所謂交互機(jī)制,是指不同軟件單元之間交互的手段。交互機(jī)制的例子有:方法調(diào)用、基于RMI的遠(yuǎn)程方法調(diào)用、發(fā)送消息等。至于物理架構(gòu),它關(guān)注的是軟件系統(tǒng)在計算機(jī)中運行期間的情況。物理架構(gòu)設(shè)計方案中規(guī)定了軟件系統(tǒng)如何使用進(jìn)程和線程完成期望的并發(fā)處理、進(jìn)程線程這些主動對象(Acti

8、ve Object)會調(diào)用哪些被動對象(Passive Object)參與處理、交互機(jī)制(如消息)為何等等問題,從而為詳細(xì)設(shè)計和編程實現(xiàn)提供了工作目標(biāo)的動態(tài)視圖。設(shè)備調(diào)試系統(tǒng)案例簡介下面通過一個實際案例的分析,來幫助領(lǐng)會邏輯架構(gòu)和物理架構(gòu)這兩種架構(gòu)視圖對架構(gòu)設(shè)計的指導(dǎo)作用。該案例是某型號設(shè)備調(diào)試系統(tǒng)。設(shè)備調(diào)試員通過使用該系統(tǒng),可以察看設(shè)備狀態(tài)(設(shè)備的狀態(tài)信息由專用的數(shù)據(jù)采集器實時采集)、發(fā)送調(diào)試命令。該系統(tǒng)的用例圖如圖5所示。邏輯架構(gòu)設(shè)計首先根據(jù)功能需求進(jìn)行初步設(shè)計,進(jìn)行大粒度的職責(zé)劃分。如圖6所示。之后,還有很多與邏輯架構(gòu)設(shè)計相關(guān)的工作要做。例如,圖7所示的CRC卡描述了上面的三層架構(gòu)每一層

9、的職責(zé)與協(xié)作者:應(yīng)用層負(fù)責(zé)設(shè)備狀態(tài)的顯示,并提供模擬控制臺供用戶發(fā)送調(diào)試命令。應(yīng)用層使用通訊層和設(shè)備控制層進(jìn)行交互,但應(yīng)用層不知道通訊的細(xì)節(jié)。通訊層負(fù)責(zé)在RS232協(xié)議之上實現(xiàn)一套專用的“應(yīng)用協(xié)議”。當(dāng)應(yīng)用層發(fā)送來包含調(diào)試指令的協(xié)議包,由通訊層負(fù)責(zé)按RS232協(xié)議將之傳遞給設(shè)備控制層。當(dāng)設(shè)備控制層發(fā)送來原始數(shù)據(jù),由通訊層將之解釋成應(yīng)用協(xié)議包發(fā)送給應(yīng)用層。設(shè)備控制層負(fù)責(zé)對調(diào)試設(shè)備的具體控制,以及高頻度地從數(shù)據(jù)采集器讀取設(shè)備狀態(tài)數(shù)據(jù)。設(shè)備控制指令的物理規(guī)格被封裝在設(shè)備控制層內(nèi)部,讀取數(shù)采器的具體細(xì)節(jié)也被封裝在設(shè)備控制層內(nèi)部。圖7    用CRC卡描述每層的職責(zé)和協(xié)作者

10、物理架構(gòu)設(shè)計軟件最終要駐留、安裝或部署到硬件才能運行。軟件的物理架構(gòu)關(guān)注“目標(biāo)程序及其依賴的運行庫和系統(tǒng)軟件”最終如何安裝或部署到物理機(jī)器,以及如何部署機(jī)器和網(wǎng)絡(luò)來配合軟件系統(tǒng)的可靠性、可伸縮性等要求。多個邏輯層(Layer)可以映射到一個物理層(Tier),這是很多從事分布式開發(fā)的讀者都了解的。在進(jìn)行設(shè)備調(diào)試系統(tǒng)的物理架構(gòu)設(shè)計之時,也體現(xiàn)了這一點。如圖8所示,設(shè)備調(diào)試系統(tǒng)共包含2個物理層:桌面部分和嵌入部分。作為邏輯層的應(yīng)用層和通訊層最終將成為桌面部分,而設(shè)備控制層最終成為嵌入部分。圖8    邏輯層(Layer)到物理層(Tier)的映射物理層作為組成軟件系統(tǒng)

11、的物理單元,最終又要映射到具體的硬件,這也是物理架構(gòu)設(shè)計要考慮的,對于分布式軟件系統(tǒng)的設(shè)計而言尤其不可或缺。圖9展示了這一點??梢钥闯?,設(shè)備控制部分駐留在調(diào)試機(jī)中(調(diào)試機(jī)是專用單板機(jī)),而桌面部分以常見的“Windows可執(zhí)行程序”的形式運用于PC機(jī)之上。我們還可能根據(jù)具體情況的需要,通過物理架構(gòu)視圖更明確地表達(dá)具體目標(biāo)模塊及其通訊結(jié)構(gòu),如圖10所示。圖10 設(shè)備調(diào)試系統(tǒng)的物理架構(gòu)總結(jié)從簡單系統(tǒng)到復(fù)雜系統(tǒng)的變化,對架構(gòu)設(shè)計的沖擊決不僅僅是量變的問題。通過引入了軟件架構(gòu)視圖的概念,有助于軟件架構(gòu)師控制架構(gòu)設(shè)計的復(fù)雜性。軟件架構(gòu)視圖的概念和軟件架構(gòu)基本概念是完全相容的,后者針對軟件系統(tǒng)的整體目標(biāo),而前者針對特定目標(biāo)子集,這樣一來,

溫馨提示

  • 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

提交評論