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