官术网_书友最值得收藏!

2.4 架構視圖與架構視點

以軟件架構為論題的書籍、文章、研究項目及相關刊物,都會帶有各自的觀點。不同的流派對架構有不同的看法,他們會按照各自的看法來做架構,并會將各自的做法加以推廣。就本書的主題來說,筆者并不打算專門用一個章節(jié)把與軟件架構有關的各種觀點全都講解一遍,而是只想展示下面的這種觀點,因為筆者覺得它比較務實,而且運用起來較為流暢。

視圖和視點

Philippe Kruchten(1995.11)率先開始使用視圖(view)與視點(viewpoint)這兩個概念,來表達業(yè)界對軟件架構的各種關注。Kruchten是IEEE1471標準的一位制定者,該標準明確規(guī)定了視圖的定義,也引入了視點的概念。Kruchten在論文(參見2.6節(jié))中,是這樣來描述這兩個概念的:

視點—視點是“一份規(guī)范書,用來描述構建視圖和使用視圖時所應依循的約定。它是一種模式或一份模板,用來確立視圖的目標和受眾,以及創(chuàng)建視圖與分析視圖所用的技巧,使得我們可以據(jù)此創(chuàng)建出不同的視圖。”

視圖—視圖是“從某個角度對整個系統(tǒng)所做的一種表現(xiàn),該角度是由一系列彼此相聯(lián)系的關注點所確立的。”

IBM(n.d.)定義了一套列架構視點,這就是IBM IT System Viewpoint Library(IBM IT系統(tǒng)視點庫)。筆者認為這套架構視點相當完備地涵蓋了系統(tǒng)架構的各個方面。如圖2-3所示,該視點庫中包含4個基本視點和6個正交(cross-cutting)視點這里的cross-cutting,意思是說這6個視點都分別適用于那4個基本視點。——譯者注

圖2-3 IBM IT System Viewpoint Library中的視點(參見2.6節(jié))

IBM IT System Viewpoint Library中的四個基本視點分別是:

需求(Requirement)—與該視點有關的模型元素,用來捕捉系統(tǒng)中的各種需求,包括業(yè)務需求、技術需求、功能需求以及非功能型需求。對于該視點來說,最為常見的捕捉手段是用例與用例模型。

解決方案(Solution)—與該視點有關的模型元素,用來確定一套可以滿足相關需求及約束的解決方案。此視點可以細分為兩種:

功能視點(Functional)—此視點所關注的模型元素,從本質上來說,都是結構方面的元素,我們不僅要把元素本身實現(xiàn)出來,而且還要把元素之間的(靜態(tài)和動態(tài))關系建立好,以便用這些元素來構建系統(tǒng)。一般來說,此視點的細節(jié),是通過功能架構來捕捉的,本書第7章將會專門講解功能架構。

操作視點(Operational)—此視點關注的是怎樣用結構元素來構建目標系統(tǒng),以及怎樣把功能視圖部署到(由網絡、硬件、計算資源、服務器等所構成的)IT環(huán)境中。我們通常使用操作模型來捕獲此視點的細節(jié),本書第8章將會專門講解操作模型。

確認(Validation)—通過此視點所建立的模型元素,主要用來評估系統(tǒng)的能力,以確保該系統(tǒng)能夠體現(xiàn)出預定的功能,并且能夠提供質量合格的服務。我們通常會把功能和非功能方面的測試用例當作驗證標準,以判斷該系統(tǒng)是否具備預定的能力。

從圖2-3中可以看出,這4個基本視點是相互關聯(lián)的。功能視點與操作視點,可以合起來實現(xiàn)需求視點,并為其提供支持,而這兩個視點,又是通過確認視點得以驗收的。為了把這張圖畫得明確一些,筆者并沒有專門標出“解決方案”視點,而是直接把構成該視點的功能視點和操作視點畫在了圖中。

視點庫中還有6個正交視點。在圖2-3中,4個基本視點周圍的那6個同心正方形,就是用來表示這6個視點的。筆者之所以用這樣的方式來畫圖,是想表達這6個正交視點對一個或多個基本視點所造成的影響。

這6個正交視點分別是:

應用(Application)—該視點專注于滿足系統(tǒng)所宣稱的業(yè)務需求。對于該視點來說,應用架構師扮演著主要角色。

技術(Technical)—該視點關注的是硬件、軟件、中間件(其定義請參閱第5章)以及打包的應用程序,這些內容合起來可以實現(xiàn)應用程序的功能,并使得應用程序能夠運作。對于該視點來說,基礎設施架構師和集成架構師扮演著主要角色。

系統(tǒng)管理(Systems Management)—該視點關注部署之后的管理、維護,以及系統(tǒng)的運作。對于該視點來說,應用維護和管理團隊扮演著主要角色。

可用性(Availability)—該視點關注怎樣才能把系統(tǒng)構建起來,并令其保持可用(比如,怎樣才能使系統(tǒng)的正常運行時間達到總運行時間的99.5%),以便滿足預先達成的服務級別協(xié)議。對于該視點來說,基礎設施架構師扮演著主要角色,而應用架構師與中間件架構師,則會為前者的工作提供支持。

性能(Performance)—該視點關注的問題是,怎樣令系統(tǒng)的性能可以滿足預先達成的服務級別協(xié)議(比如,從用戶發(fā)出請求到系統(tǒng)給出應答,這之間的平均延遲時間要控制在400毫秒以內)。對于該視點來說,應用架構師扮演著主要角色,而中間件架構師和基礎設施架構師,則會為前者的工作提供支持。

安全(Security)—該視點關注的是安全方面的系統(tǒng)需求,例如單點登入(single sign-on)、數(shù)據(jù)傳輸協(xié)議的安全程度,以及防止入侵等。某些安全需求(例如單點登入)主要是由應用架構師來處理的,而確認數(shù)據(jù)協(xié)議(例如HTTPS協(xié)議、安全套接字協(xié)議)的安全程度以及防止網絡入侵等需求,則主要由基礎設施架構師來處理。

每一個基本視點和正交視點背后,都隱藏著很多細節(jié)。這些視點均各自對應于一套元素,這些元素合起來能夠描述出自身的特征及職責。如果理解了這些元素,那我們就能夠深入地觀察到每個視點的實現(xiàn)方式。盡管隱藏在每個基本視點和正交視點背后的細節(jié)有很多,然而筆者此處所要強調的內容,是大家應該意識到它們的存在,并且意識到我們必須從其中的每一個視點或絕大部分視點來對系統(tǒng)的架構進行觀察。這種意識很重要。

筆者曾經對很多視點框架做了研究,我感覺其中的絕大多數(shù)框架,在基本形式的層面都有著一些共性。之所以會有這種共性,其原因在于:每個框架都想要確立一套相互補充的視角,并且想通過這些視角來觀察系統(tǒng)的架構,以便全面地覆蓋架構中的各個方面。

我們需要在各種視點框架之間做出選擇,或者說,我們至少要從那些特別成熟、特別穩(wěn)固而且特別持久的視點框架中進行選擇。在選擇時,大家應該根據(jù)自己的需求以及使用視點框架時的舒適程度來進行判斷。

主站蜘蛛池模板: 教育| 松潘县| 仪陇县| 清新县| 蓬溪县| 秦安县| 延边| 务川| 宣化县| 中超| 肇庆市| 烟台市| 绥化市| 罗江县| 静乐县| 会宁县| 永嘉县| 灵山县| 上杭县| 合山市| 河池市| 宜州市| 民县| 南江县| 安达市| 通化县| 黑河市| 喀喇沁旗| 佛教| 汉阴县| 鲁甸县| 紫金县| 乐清市| 钟山县| 崇义县| 东城区| 唐海县| 伊吾县| 湘乡市| 玉门市| 武义县|