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