交友網(wǎng)站app推廣今日熱點(diǎn)新聞15條
第一章 緒論
系統(tǒng)架構(gòu)設(shè)計(jì)師(System Architecture Designer)是項(xiàng)目開(kāi)發(fā)活動(dòng)中的關(guān)鍵角色之一。系統(tǒng)架構(gòu)是系統(tǒng)的一種整體的高層次的結(jié)構(gòu)表示,是系統(tǒng)的骨架和根基,其決定了系統(tǒng)的健壯性和生命周期的長(zhǎng)短。
1.1 系統(tǒng)架構(gòu)概述
1946年第一臺(tái)計(jì)算機(jī):ENIAC,電子數(shù)字積分器和計(jì)算機(jī)。由運(yùn)算器、控制器、存儲(chǔ)器、輸入和輸出設(shè)備五部分組成。
馮~諾依曼針對(duì) ENIAC 的不足,提出了 EDVAC ,離散變量自動(dòng)電子計(jì)算機(jī),采用二進(jìn)制,控制計(jì)算機(jī)運(yùn)行的程序存放在存儲(chǔ)器中,可以自動(dòng)按順序執(zhí)行指令。
1.1.1 系統(tǒng)架構(gòu)的定義及發(fā)展歷程
定義
架構(gòu):是體現(xiàn)在組件中的一個(gè)系統(tǒng)的基本組織、它們彼此的關(guān)系與環(huán)境的關(guān)系及指導(dǎo)它的設(shè)計(jì)和發(fā)展的原則。
系統(tǒng):是組織起來(lái)完成某一特定功能或一組功能的組件集。系統(tǒng)這個(gè)術(shù)語(yǔ)包括了單獨(dú)的應(yīng)用程序、傳統(tǒng)意義上的系統(tǒng)、子系統(tǒng)、系統(tǒng)之系統(tǒng)、產(chǎn)品線(xiàn)、整個(gè)企業(yè)及感興趣的其他集合。系統(tǒng)用于完成其環(huán)境中的一個(gè)或多個(gè)任務(wù)。
環(huán)境或者上下文決定了對(duì)這個(gè)系統(tǒng)的開(kāi)發(fā)、運(yùn)作、政策以及會(huì)對(duì)系統(tǒng)造成其他影響的環(huán)境和設(shè)置。
任務(wù)是由一個(gè)或者多個(gè)利益相關(guān)者通過(guò)系統(tǒng)達(dá)到一些目標(biāo)的系統(tǒng)的一個(gè)用途或操作。
通俗地說(shuō),系統(tǒng)架構(gòu)(SystemArchitecture):是系統(tǒng)的一種整體的高層次的結(jié)構(gòu)表示,是系統(tǒng)的骨架和根基,支撐和鏈接各個(gè)部分,包括組件、連接件、約束規(guī)范以及指導(dǎo)這些內(nèi)容設(shè)計(jì)與演化的原理,它是刻畫(huà)系統(tǒng)整體抽象結(jié)構(gòu)的一種手段。
架構(gòu)設(shè)計(jì)的作用:主要包括以下幾點(diǎn):
解決相對(duì)復(fù)雜的需求分析問(wèn)題;
解決非功能屬性在系統(tǒng)占據(jù)重要位置的設(shè)計(jì)問(wèn)題;
解決生命周期長(zhǎng)、擴(kuò)展性需求高的系統(tǒng)整體結(jié)構(gòu)問(wèn)題
解決系統(tǒng)基于組件需要的集成問(wèn)題:
解決業(yè)務(wù)流程再造難的問(wèn)題。
系統(tǒng)架構(gòu)設(shè)計(jì)是成熟系統(tǒng)開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié),它不僅是連接用戶(hù)需求和系統(tǒng)進(jìn)一步設(shè)計(jì)與實(shí)現(xiàn)的橋梁,也是系統(tǒng)早期階段質(zhì)量保證的關(guān)鍵步驟。
發(fā)展歷程
1)基礎(chǔ)研究階段(1968-1994年)
“軟件架構(gòu)”首次提出。
模塊化思想推動(dòng)了軟件架構(gòu)的快速發(fā)展。
模塊化應(yīng)遵循以下規(guī)則:
- 最高模塊化內(nèi)聚;
- 最低耦合;
- 模塊大小適度;
- 模塊調(diào)用鏈深度(嵌套層次)不可過(guò)多;
- 接口簡(jiǎn)單、精煉(扇入扇出數(shù)不宜太大),具有信息隱蔽能力;
- 盡可能地復(fù)用已有模塊;
2)概念體系和核心技術(shù)形成階段(1999-2000年)
首次對(duì)“軟件架構(gòu)”進(jìn)行了定義。
{elements,forms,rationale}=sofware,使之成為后續(xù)軟件架構(gòu)概念發(fā)展的基礎(chǔ)。
1995年起,軟件架構(gòu)研究領(lǐng)域開(kāi)始進(jìn)入快速發(fā)展階段。
2000年,IEEE 1471-2000標(biāo)準(zhǔn)的發(fā)布了第一次定義了軟件架構(gòu)的形式化標(biāo)準(zhǔn),組件化。
組件具有可組裝性和可插拔性。
3)理論體系完善與發(fā)展階段(1996年至今)
隨著組件架構(gòu)理論的建立,與之相關(guān)的:軟件架構(gòu)描述與表示、軟件架構(gòu)分析、設(shè)計(jì)與測(cè)試、軟件架構(gòu)發(fā)現(xiàn)、演化與重用、基于軟件架構(gòu)開(kāi)發(fā)方法、軟件架構(gòu)風(fēng)格、動(dòng)態(tài)軟件架構(gòu)等。
4)普及應(yīng)用階段(2000年至今)
軟件架構(gòu)是軟件生命周期中的重要產(chǎn)物,影響軟件開(kāi)發(fā)的各個(gè)階段:
需求階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段、維護(hù)階段。
1.1.2 軟件架構(gòu)的常用分類(lèi)及建模方法
1.軟件架構(gòu)的常用分類(lèi)
1)分層架構(gòu)
- 表現(xiàn)層(PresentationLayer):用戶(hù)界面,負(fù)責(zé)視覺(jué)和用戶(hù)互動(dòng)。
- 業(yè)務(wù)層(BusinessLayer):實(shí)現(xiàn)業(yè)務(wù)邏輯。
- 持久層(Persistence Layer):提供數(shù)據(jù),SQL語(yǔ)句就放在這一層。
- 數(shù)據(jù)庫(kù)(DatabaseLayer):保存數(shù)據(jù)。
2)事件驅(qū)動(dòng)架構(gòu) - 事件隊(duì)列(EventQueue):接收事件的入口。
- 分發(fā)器(Event Mediator):將不同的事件分發(fā)到不同的業(yè)務(wù)邏輯單元。
- 事件通道(EventChannel):分發(fā)器與處理器之間的聯(lián)系渠道。
- 事件處理器(EventProcessor):實(shí)現(xiàn)業(yè)務(wù)邏輯,處理完成后會(huì)發(fā)出事件,觸發(fā)下一步操作。
3)微核架構(gòu)
微核架構(gòu)(Microkernel Architecture)又稱(chēng)為插件架構(gòu)(Plug-in Architecture),是指軟件的內(nèi)核相對(duì)較小,主要功能和業(yè)務(wù)邏輯都通過(guò)插件實(shí)現(xiàn)。
內(nèi)核(Core)通常只包含系統(tǒng)運(yùn)行的最小功能。插件則是互相獨(dú)立的,插件之間的通信應(yīng)該減少到最低,避免出現(xiàn)互相依賴(lài)的問(wèn)題。
4)微服務(wù)架構(gòu)
微服務(wù)架構(gòu)(Microservices Architecture)是服務(wù)導(dǎo)向架構(gòu)(Service-Oriented Architecture,SOA)的升級(jí)。每一個(gè)服務(wù)就是一個(gè)獨(dú)立的部署單元(Separatcly Deployed Unit)。這些單元都是分布式的,互相解耦,通過(guò)遠(yuǎn)程通信協(xié)議(比如REST、SOAP)聯(lián)系。
5)云架構(gòu)
包括處理單元、虛擬中間件。
(1)處理單元:實(shí)現(xiàn)業(yè)務(wù)邏輯。
(2)虛擬中間件:負(fù)責(zé)通信、保持會(huì)話(huà)控制(seesions)、數(shù)據(jù)復(fù)制、分布式處理和處理單元的部署。
虛擬中間件: - 消總中間件(Messaging Grid):管理用戶(hù)請(qǐng)求和會(huì)話(huà)控制(sessions),當(dāng)一個(gè)請(qǐng)求進(jìn)來(lái)以后,它決定分配給哪一個(gè)處理單元。
- 數(shù)據(jù)中間件(Data Grid):將數(shù)據(jù)復(fù)制到每一個(gè)處理單元,即數(shù)據(jù)同步。保證每個(gè)處理單元都得到同樣的數(shù)據(jù)。
- 處理中間件(Processing Grid):可選,如果一個(gè)請(qǐng)求涉及不同類(lèi)型的處理單元,該中向件負(fù)責(zé)協(xié)調(diào)處理單元。
- 部署中間件(DcploymentManager):負(fù)責(zé)處理單元的啟動(dòng)和蘭閉,監(jiān)控負(fù)載和響應(yīng)時(shí)PDF間,當(dāng)負(fù)載增加,就新啟動(dòng)處理單元,負(fù)載減少,就關(guān)閉處理單元。
2.系統(tǒng)架構(gòu)的常用建模方法
結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型和過(guò)程模型。
1.1.3 軟件架構(gòu)的應(yīng)用場(chǎng)景
不再是單一架構(gòu)風(fēng)格設(shè)計(jì)與開(kāi)發(fā)。
1.1.4 軟件架構(gòu)的發(fā)展未來(lái)
架構(gòu)發(fā)展的主線(xiàn)可以歸納為 模塊化變成/面向?qū)ο缶幊?、?gòu)件技術(shù)、面向服務(wù)開(kāi)發(fā)技術(shù)和云技術(shù)。
1.2 系統(tǒng)架構(gòu)設(shè)計(jì)師概述
1.2.1 架構(gòu)設(shè)計(jì)師的定義、職責(zé)和任務(wù)
1.架構(gòu)設(shè)計(jì)師的定義
架構(gòu)設(shè)計(jì)師是系統(tǒng)或產(chǎn)品線(xiàn)的設(shè)計(jì)責(zé)任人,是一個(gè)負(fù)責(zé)理解和管理并最終確認(rèn)和評(píng)估非功能性系統(tǒng)需求(如軟件的可維護(hù)性、性能、復(fù)用性、可靠性、有效性和可測(cè)試性等),給出開(kāi)發(fā)規(guī)范,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架,對(duì)整個(gè)軟件架構(gòu)、關(guān)鍵構(gòu)件和接口進(jìn)行總體設(shè)計(jì)并澄清關(guān)鍵技術(shù)細(xì)節(jié)的高級(jí)技術(shù)人員。
2.架構(gòu)設(shè)計(jì)師的職責(zé)
不僅是技術(shù)指導(dǎo),同時(shí)也必須有領(lǐng)導(dǎo)能力。
3.架構(gòu)設(shè)計(jì)師的任務(wù)與組成
(1)領(lǐng)導(dǎo)與協(xié)調(diào)整個(gè)項(xiàng)目中的技術(shù)活動(dòng)(分析、設(shè)計(jì)和實(shí)施等)。
(2)推動(dòng)主要的技術(shù)決策并最終表達(dá)為系統(tǒng)架構(gòu)。
(3)確定系統(tǒng)架構(gòu),并促使其架構(gòu)設(shè)計(jì)的文檔化(包括需求、設(shè)計(jì)、實(shí)施和部署等“視圖”)。
1.2.2 架構(gòu)設(shè)計(jì)師應(yīng)具備的專(zhuān)業(yè)素質(zhì)
1.掌握業(yè)務(wù)領(lǐng)域的知識(shí)。
2.掌握技術(shù)知識(shí)。
3.掌握設(shè)計(jì)技能。
4.具備編程技能。
5.具備溝通能力。
6.具備決策能力。
7.知道組織策略。
8.應(yīng)是談判專(zhuān)家。
1.2.3 架構(gòu)設(shè)計(jì)師的知識(shí)架構(gòu)
- 戰(zhàn)略規(guī)劃能力。
- 業(yè)務(wù)流程建模能力。
- 信息數(shù)據(jù)架構(gòu)能力。
- 技術(shù)架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)能力。
- 應(yīng)用系統(tǒng)架構(gòu)的解決和實(shí)現(xiàn)能力。
- 基礎(chǔ) IT 知識(shí)及基礎(chǔ)設(shè)施、資源調(diào)配的能力。
- 信息安全技術(shù)支持與管理保障能力。
- IT 審計(jì)、治理與基本需求的分析和獲取能力。
- 面向軟件系統(tǒng)可靠性與系統(tǒng)生命周期的質(zhì)量保障服務(wù)能力。
10.對(duì)新技術(shù)與新概念的理解、掌握和分析能力。
系統(tǒng)架構(gòu)設(shè)計(jì)師必須是開(kāi)發(fā)團(tuán)隊(duì)的技術(shù)引導(dǎo)者,同時(shí)也是綜合性特強(qiáng)的人才。
1.3 如何成為一名好的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)師
六個(gè)角色特質(zhì):
- 領(lǐng)導(dǎo)者
- 開(kāi)發(fā)者
- 系統(tǒng)綜合者
- 具備企業(yè)家思維
- 具備戰(zhàn)略技術(shù)專(zhuān)家的權(quán)衡思維與戰(zhàn)術(shù)思維
- 具備良好的溝通能力
工程師階段
1~3年,積累基礎(chǔ)知識(shí),包括編程語(yǔ)言、基本數(shù)據(jù)結(jié)構(gòu)、開(kāi)發(fā)環(huán)境、操作系統(tǒng)、數(shù)據(jù)庫(kù)以及相關(guān)軟件開(kāi)發(fā)流程等。
高級(jí)工程師階段
3~5年,知識(shí)深度轉(zhuǎn)變,由 HOW 到 WHY;理論支持,熟悉前人總結(jié)出來(lái)的成熟的設(shè)計(jì)經(jīng)驗(yàn)。
技術(shù)專(zhuān)家階段
4~8年,“某個(gè)領(lǐng)域的專(zhuān)家”,高級(jí)工程師主要在已有的架構(gòu)框架下完成設(shè)計(jì),技術(shù)專(zhuān)家需要修改、擴(kuò)展和優(yōu)化架構(gòu)。
系統(tǒng)架構(gòu)設(shè)計(jì)師(初級(jí))
5~8年,“獨(dú)立完成一個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì)”,技術(shù)專(zhuān)家基于經(jīng)驗(yàn)進(jìn)行架構(gòu)設(shè)計(jì),初級(jí)架構(gòu)設(shè)計(jì)師熟悉其原理。
初級(jí)架構(gòu)設(shè)計(jì)師要形成自己的“架構(gòu)設(shè)計(jì)方法論”。
系統(tǒng)架構(gòu)設(shè)計(jì)師(中級(jí))
8~10年,“能夠完成復(fù)雜系統(tǒng)的架構(gòu)設(shè)計(jì)”,高性能、可擴(kuò)展、海量存儲(chǔ)等復(fù)雜系統(tǒng)。關(guān)鍵在于“技術(shù)深度和技術(shù)理論的積累”。
系統(tǒng)架構(gòu)設(shè)計(jì)師(高級(jí))
10年以上,“創(chuàng)造新的架構(gòu)模式”,開(kāi)創(chuàng)新的技術(shù)潮流。
文章目錄
- 第一章 緒論
- 1.1 系統(tǒng)架構(gòu)概述
- 1.1.1 系統(tǒng)架構(gòu)的定義及發(fā)展歷程
- 定義
- 發(fā)展歷程
- 1.1.2 軟件架構(gòu)的常用分類(lèi)及建模方法
- 1.軟件架構(gòu)的常用分類(lèi)
- 2.系統(tǒng)架構(gòu)的常用建模方法
- 1.1.3 軟件架構(gòu)的應(yīng)用場(chǎng)景
- 1.1.4 軟件架構(gòu)的發(fā)展未來(lái)
- 1.2 系統(tǒng)架構(gòu)設(shè)計(jì)師概述
- 1.2.1 架構(gòu)設(shè)計(jì)師的定義、職責(zé)和任務(wù)
- 1.架構(gòu)設(shè)計(jì)師的定義
- 2.架構(gòu)設(shè)計(jì)師的職責(zé)
- 3.架構(gòu)設(shè)計(jì)師的任務(wù)與組成
- 1.2.2 架構(gòu)設(shè)計(jì)師應(yīng)具備的專(zhuān)業(yè)素質(zhì)
- 1.2.3 架構(gòu)設(shè)計(jì)師的知識(shí)架構(gòu)
- 1.3 如何成為一名好的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)師