資源描述:
《邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計(jì)中的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計(jì)中的應(yīng)用http://www.miiceic.org.cn???2007-5-1015:09:26???中程在線???瀏覽數(shù):252關(guān)鍵字:邏輯架構(gòu)和物理架構(gòu) 在不同的架構(gòu)設(shè)計(jì)方法中出現(xiàn)的軟件架構(gòu)視圖種類很多,本文介紹最常用的兩種架構(gòu)視圖——邏輯架構(gòu)視圖和物理架構(gòu)視圖,并通過具體案例的分析說明如何運(yùn)用它們進(jìn)行架構(gòu)設(shè)計(jì)?! ‘?dāng)觀察和描述事物大局的時(shí)候,邏輯架構(gòu)和物理架構(gòu)是最常用的角度。比如,以我們辦公室里的局域網(wǎng)為例:從物理角度看,所有計(jì)算機(jī)“毫無區(qū)別”地連接到路由器上;而從邏輯角度看呢,就發(fā)現(xiàn)這些計(jì)算機(jī)是有區(qū)別的——一臺(tái)計(jì)算機(jī)充當(dāng)文件服務(wù)器
2、,而其它計(jì)算機(jī)是可以訪問服務(wù)器的客戶機(jī)。如圖1所示。? 圖1???區(qū)分物理視角與邏輯視角 同樣,在軟件架構(gòu)設(shè)計(jì)過程中,也可以通過區(qū)分軟件的邏輯架構(gòu)和物理架構(gòu),分別從不同的角度設(shè)計(jì)和描述軟件架構(gòu)?! ∷^軟件架構(gòu)視圖,是指設(shè)計(jì)和看待整個(gè)軟件系統(tǒng)的特定視角。每個(gè)軟件架構(gòu)視圖關(guān)注系統(tǒng)架構(gòu)的不同方面,針對(duì)不同的目標(biāo)和用途。也就是說,架構(gòu)要涵蓋的內(nèi)容和決策太多了,超過了人腦“一蹴而就”的能力范圍,因此采用“分而治之”的辦法從不同視角分別設(shè)計(jì);同時(shí),也為軟件架構(gòu)的理解、交流和歸檔提供了方便?! ∵壿嫾軜?gòu) 軟件的邏輯架構(gòu)規(guī)定了軟件系統(tǒng)由哪些邏輯元素組成、以及這些邏輯元素
3、之間的關(guān)系?! ≤浖倪壿嬙匾话阒改撤N級(jí)別的功能模塊,大到我們熟悉的邏輯層(Layer),以及子系統(tǒng)、模塊,小到一個(gè)個(gè)的類。至于具體要分解到何種大小的功能模塊才可結(jié)束軟件架構(gòu)設(shè)計(jì),并不存在一個(gè)“一刀切”的標(biāo)準(zhǔn)——只要足夠明確簡(jiǎn)單,能夠分頭開發(fā)就可以了。于是,在實(shí)踐中我們往往將關(guān)鍵機(jī)制相關(guān)的架構(gòu)設(shè)計(jì)部分明確到類,而一般功能則到模塊甚至子系統(tǒng)的接口定義即可。 值得說明的是,功能模塊有時(shí)容易識(shí)別,有時(shí)卻比較隱含。而比較全面地識(shí)別功能塊、規(guī)劃功能塊的接口、明確功能塊之間的使用關(guān)系和使用機(jī)制,正是軟件邏輯架構(gòu)設(shè)計(jì)的核心任務(wù)所在。對(duì)此,IvarJacobson曾有過極為形象的說
4、法,“軟件系統(tǒng)的架構(gòu)涵蓋了整個(gè)系統(tǒng),盡管架構(gòu)的有些部分可能只有‘一寸深’”?! D2展示了一個(gè)網(wǎng)絡(luò)設(shè)備管理系統(tǒng)邏輯架構(gòu)設(shè)計(jì)的一部分,我們借此來舉例說明軟件邏輯架構(gòu)設(shè)計(jì)的3大核心任務(wù): 識(shí)別功能塊 規(guī)劃功能塊的接口 明確功能塊之間的使用關(guān)系和使用機(jī)制 ? 圖2???軟件邏輯架構(gòu)設(shè)計(jì)的核心任務(wù) 軟件的邏輯架構(gòu)是架構(gòu)設(shè)計(jì)思維的重要方法。在用例技術(shù)已經(jīng)成為捕獲功能需求的事實(shí)標(biāo)準(zhǔn)的今天,邏輯架構(gòu)的設(shè)計(jì)往往是從用例分析開始的?;谟美姆治龇椒ㄊ惯壿嫾軜?gòu)的設(shè)計(jì)變得比較有序——通過對(duì)每個(gè)關(guān)鍵用例的分析,從邏輯上將用例實(shí)現(xiàn)為一組功能塊的特定組合,最后綜合這些用例分析
5、成果,將一個(gè)個(gè)獨(dú)立的協(xié)作歸納合并成整個(gè)軟件系統(tǒng)的邏輯架構(gòu)。而在用例分析方法產(chǎn)生之前,功能模塊的確定多多少少帶有些“硬”想出來的味道,特別是并不直接承載業(yè)務(wù)功能的模塊有時(shí)比較容易遺漏,直到大規(guī)模編程實(shí)現(xiàn)階段才發(fā)現(xiàn)。 物理架構(gòu) 軟件的物理架構(gòu)規(guī)定了組成軟件系統(tǒng)的物理元素、這些物理元素之間的關(guān)系、以及它們部署到硬件上的策略?! ∥锢砑軜?gòu)可以反映出軟件系統(tǒng)動(dòng)態(tài)運(yùn)行時(shí)的組織情況。此時(shí),上述物理架構(gòu)定義中所提及的“物理元素”就是進(jìn)程、線程、以及作為類的運(yùn)行時(shí)實(shí)例的對(duì)象等,而進(jìn)程調(diào)度、線程同步、進(jìn)程或線程通信等則進(jìn)一步反映物理架構(gòu)的動(dòng)態(tài)行為。 隨著分布式系統(tǒng)的流行,“物理層(T
6、ier)”的概念大家早已耳熟能詳。物理層和分布有關(guān),通過將一個(gè)整體的軟件系統(tǒng)劃分為不同的物理層,可以把它部署到分布在不同位置的多臺(tái)計(jì)算機(jī)上,從而為遠(yuǎn)程訪問和負(fù)載均衡等問題提供了手段。當(dāng)然,物理層是大粒度的物理單元,它最終是由粒度更小的組件、模塊、進(jìn)程等單元組成的。 物理架構(gòu)的應(yīng)用很廣泛。例如,架構(gòu)設(shè)計(jì)中可能需要專門說明數(shù)據(jù)是如何產(chǎn)生、存儲(chǔ)、共享和復(fù)制的,這時(shí)可以利于物理架構(gòu),展示軟件系統(tǒng)在運(yùn)行期間數(shù)據(jù)是由哪些運(yùn)行時(shí)單元如何產(chǎn)生的,數(shù)據(jù)又如何被使用、如何被存儲(chǔ),哪些數(shù)據(jù)需要跨網(wǎng)絡(luò)復(fù)制和共享等方面的設(shè)計(jì)決策。 由于人們對(duì)組成軟件系統(tǒng)的“物理元素”存在不同看法(如圖3所示
7、),所以在實(shí)踐中物理架構(gòu)的用法比較寬泛,不同的人認(rèn)為的物理架構(gòu)也可能不盡相同。因此,我們?cè)诮涣骱蛯?shí)踐的過程中,應(yīng)注意區(qū)分物理架構(gòu)所指為何。(也正是因?yàn)檫@個(gè)原因,實(shí)踐中所采用的基于多視圖的架構(gòu)設(shè)計(jì)方法往往包含更多的視圖,從而使每個(gè)架構(gòu)視圖的職責(zé)更加明確。) ? 圖3???對(duì)“物理元素”的不同看法 從邏輯架構(gòu)和物理架構(gòu)到設(shè)計(jì)實(shí)現(xiàn) 邏輯架構(gòu)和物理架構(gòu)是軟件架構(gòu)設(shè)計(jì)的重要方面。邏輯架構(gòu)致力于將軟件系統(tǒng)分解成不同的邏輯單元,并規(guī)定這些邏輯單元之間的交互接口和交互機(jī)制。物理架構(gòu)則更重視軟件系統(tǒng)運(yùn)行時(shí)的動(dòng)態(tài)結(jié)構(gòu),以及組成軟