溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

發(fā)布時(shí)間:2021-10-23 16:58:47 來(lái)源:億速云 閱讀:250 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖”吧!

架構(gòu)思維概述

對(duì)于架構(gòu)思維本身仍然是類似系統(tǒng)思維,結(jié)構(gòu)化思維,編程思維等諸多思維模式的一個(gè)合集。由于架構(gòu)的核心作用是在業(yè)務(wù)現(xiàn)實(shí)世界和抽象的IT實(shí)現(xiàn)之間建立起一道橋梁,因此架構(gòu)思維最核心的就是要理解到業(yè)務(wù)驅(qū)動(dòng)技術(shù),技術(shù)為最終的業(yè)務(wù)服務(wù)。要真正通過(guò)架構(gòu)設(shè)計(jì)來(lái)完成業(yè)務(wù)和技術(shù),需求和實(shí)現(xiàn),軟件和硬件,靜態(tài)和動(dòng)態(tài),成本和收益等多方面的平衡。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

在前面多篇文章已經(jīng)提出,架構(gòu)設(shè)計(jì)中有兩個(gè)重點(diǎn),一個(gè)是分解,一個(gè)是集成。

分解是最基礎(chǔ)的,架構(gòu)的重點(diǎn)就是要對(duì)復(fù)雜問(wèn)題進(jìn)行分而治之,同時(shí)保證分解后的各個(gè)部分還能夠高內(nèi)聚,松耦合,最終又集成為一個(gè)完整的整體。分解核心是定義問(wèn)題,因此架構(gòu)首先仍然需要理解清楚需求。

集成是配合分解完成的動(dòng)作,最終分解完成的各個(gè)組件或子系統(tǒng),通過(guò)合適的接口設(shè)計(jì),最終還能夠集成為一個(gè)完整的整體,分解僅僅是加速開(kāi)發(fā)和降低問(wèn)題復(fù)雜度,如果分解后的內(nèi)容無(wú)法集成在一起,那么分解就沒(méi)有任何意義。

分解+集成可以理解為架構(gòu)最核心的思考方式和方法。

在分解完成后,一個(gè)大的系統(tǒng)已經(jīng)拆分為了諸多的小模塊,或者一個(gè)小模塊實(shí)現(xiàn)本身又分為了多個(gè)步驟階段。那么零散的節(jié)點(diǎn)必須向上匯集和歸納,形成一個(gè)完整的架構(gòu)。

而這個(gè)架構(gòu)的形成要給關(guān)鍵就是要又分層思維。架構(gòu)分層是談架構(gòu)絕對(duì)繞不開(kāi)的一個(gè)點(diǎn),通過(guò)架構(gòu)分層可以更好地全面理解業(yè)務(wù)系統(tǒng)或功能實(shí)現(xiàn)。

云平臺(tái)三層架構(gòu):資源-平臺(tái)-應(yīng)用

在規(guī)劃大架構(gòu)的時(shí)候,常會(huì)參考云計(jì)算的標(biāo)準(zhǔn)三層架構(gòu),即IaaS層,PaaS層,SaaS層。對(duì)于IaaS層重點(diǎn)是IT基礎(chǔ)設(shè)施和虛擬化;PaaS層重點(diǎn)是構(gòu)建平臺(tái)層服務(wù)能力;而對(duì)于SaaS層則是具體的應(yīng)用。

對(duì)于資源層從物理資源,再到虛擬化邏輯資源,從虛擬機(jī)到現(xiàn)在更加輕量的容器資源。而對(duì)于平臺(tái)層原來(lái)只談技術(shù)平臺(tái),但是當(dāng)前又進(jìn)一步拆分出業(yè)務(wù)平臺(tái),也可以理解成當(dāng)前說(shuō)得比較多的中臺(tái)層。

同時(shí)在平臺(tái)層和應(yīng)用層之間增加了服務(wù)層,實(shí)現(xiàn)資源和服務(wù)的解耦。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

如果涉及到物聯(lián)網(wǎng)類應(yīng)用,一般還會(huì)在底層增加網(wǎng)絡(luò)層和感知層,比如一個(gè)智慧城市標(biāo)準(zhǔn)平臺(tái)和應(yīng)用的架構(gòu)圖類似如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

在平臺(tái)+應(yīng)用構(gòu)建模式下,一般在平臺(tái)和應(yīng)用之間還會(huì)有一個(gè)單獨(dú)的服務(wù)層來(lái)實(shí)現(xiàn)接口服務(wù)對(duì)外的能力開(kāi)放。資源+服務(wù)+應(yīng)用也是我們常說(shuō)的SOA分層架構(gòu)模式,因此對(duì)于服務(wù)層也可以單獨(dú)拆分出來(lái)作為一個(gè)小分層。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

問(wèn)題1:數(shù)據(jù)庫(kù)和數(shù)據(jù)層

在構(gòu)建一個(gè)完整的總體架構(gòu)的時(shí)候,實(shí)際上沒(méi)有數(shù)據(jù)層這個(gè)概念,數(shù)據(jù)層是在表達(dá)單個(gè)應(yīng)用系統(tǒng)的分層架構(gòu)實(shí)現(xiàn)的時(shí)候才會(huì)出現(xiàn)的內(nèi)容。

在總架構(gòu)圖里面把類似結(jié)構(gòu)化數(shù)據(jù)庫(kù),非結(jié)構(gòu)化數(shù)據(jù)等全部列出單獨(dú)一層這個(gè)也不對(duì),這個(gè)應(yīng)該是在技術(shù)架構(gòu)里面體現(xiàn)。

還有一種是單獨(dú)分出一個(gè)數(shù)據(jù)層,將大的公共基礎(chǔ)數(shù)據(jù)列出,比如上面談的智慧城市架構(gòu)圖。如果這些基礎(chǔ)數(shù)據(jù)存在共性能力朝上提供,那么可以歸納到PaaS平臺(tái)層,在PaaS平臺(tái)層單獨(dú)分出一個(gè)數(shù)據(jù)平臺(tái)域來(lái)進(jìn)行體現(xiàn)。

問(wèn)題2:服務(wù)層和服務(wù)

在構(gòu)建整體架構(gòu)的時(shí)候可以單獨(dú)出一個(gè)能力開(kāi)放平臺(tái)或服務(wù)層,但是不用體現(xiàn)具體有哪些業(yè)務(wù)服務(wù)能力。因?yàn)閱为?dú)出業(yè)務(wù)服務(wù)能力本質(zhì)已經(jīng)屬于應(yīng)用層內(nèi)容,即應(yīng)用又細(xì)化拆分為了業(yè)務(wù)中臺(tái)和前臺(tái)應(yīng)用,中間銜接的服務(wù)。

我們可以參考網(wǎng)上的另外一個(gè)構(gòu)圖,如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

這個(gè)構(gòu)圖既不像云平臺(tái)中的分層架構(gòu),也不像應(yīng)用功能實(shí)現(xiàn)中的分層架構(gòu)。實(shí)際可以看到如果體現(xiàn)單獨(dú)的支撐層,支撐層已經(jīng)類似現(xiàn)在經(jīng)常說(shuō)到的業(yè)務(wù)中臺(tái)和能力提供。

那么整個(gè)架構(gòu)應(yīng)該為 技術(shù)平臺(tái)+中臺(tái)+應(yīng)用  方式來(lái)進(jìn)行構(gòu)圖。

SOA分層:組件-服務(wù)-流程

對(duì)于SOA架構(gòu)分層,重點(diǎn)要體現(xiàn)的就是服務(wù),對(duì)于組件本身是屬于邏輯資源層的概念,而對(duì)于服務(wù)則是資源對(duì)外暴露的能力抽象。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

SOA架構(gòu)分層重點(diǎn)就是要體現(xiàn)出獨(dú)立的服務(wù)層,注意不是畫服務(wù)總線,這里可以單獨(dú)畫出具體提供哪些業(yè)務(wù)服務(wù)能力,技術(shù)服務(wù)能力。在采用SOA架構(gòu)進(jìn)行開(kāi)發(fā)的時(shí)候,整體業(yè)務(wù)系統(tǒng)拆分為4個(gè)組件,10類服務(wù)域,5類流程,那么在構(gòu)建的時(shí)候重點(diǎn)就是將上述組件,服務(wù)域和流程類體現(xiàn)出來(lái)。

對(duì)于參考SOA架構(gòu)來(lái)進(jìn)行的構(gòu)圖,參考如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

這里的數(shù)據(jù)層最好改為標(biāo)準(zhǔn)的組件層,更加貼近SOA架構(gòu)模型。在圖中的服務(wù)層已經(jīng)可以看到一個(gè)個(gè)獨(dú)立的API服務(wù)接口。如果服務(wù)接口數(shù)據(jù)大,一般只會(huì)劃分到服務(wù)域,比如用戶中心服務(wù),采購(gòu)類服務(wù)等。在這種方式下構(gòu)圖參考如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

在上圖中結(jié)合了云和SOA兩種架構(gòu)融合在一起,對(duì)于上圖中的服務(wù)層實(shí)際可以理解為組件資源層和服務(wù)接口層的融合。更好的構(gòu)圖方式應(yīng)該是拆分為標(biāo)準(zhǔn)的中臺(tái)資源層-服務(wù)層-應(yīng)用層。

云和SOA架構(gòu)融合

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

注意對(duì)于云分層架構(gòu)重點(diǎn)強(qiáng)調(diào)的是基礎(chǔ)設(shè)施,平臺(tái)和應(yīng)用三層架構(gòu)。而對(duì)于SOA架構(gòu)強(qiáng)調(diào)的是資源,服務(wù)和應(yīng)用三層。而對(duì)于對(duì)于傳統(tǒng)的應(yīng)用系統(tǒng)的構(gòu)建一般又包括了IT基礎(chǔ)設(shè)施,技術(shù)平臺(tái),數(shù)據(jù)庫(kù),中間件和應(yīng)用。再到應(yīng)用系統(tǒng)本身的分層架構(gòu)可能又是標(biāo)準(zhǔn)的三層架構(gòu)模式等。

這些架構(gòu)分層方法都幫助我們進(jìn)一步融合分層架構(gòu)模式。

架構(gòu)分層有很多方法,包括基礎(chǔ)設(shè)施層,平臺(tái)層,組件層,支撐層,服務(wù)層,應(yīng)用層,數(shù)據(jù)層,展現(xiàn)層等。多種分發(fā)導(dǎo)致分層模型反而出現(xiàn)歧義和模糊。

在這里我們從技術(shù)架構(gòu)和應(yīng)用架構(gòu)兩個(gè)層面來(lái)談,技術(shù)架構(gòu)沿用云計(jì)算的三層模型;而對(duì)于應(yīng)用架構(gòu)則采用eTOM模型標(biāo)準(zhǔn)的資源,服務(wù),應(yīng)用三層模型。那么兩種分層架構(gòu)模型的融合則是一個(gè)完整的云和SOA融合的分層架構(gòu)模型。

即云計(jì)算的三層中,每一個(gè)層次本身又可以進(jìn)一步拆分為資源,服務(wù)和應(yīng)用三層。

拿IaaS層來(lái)說(shuō),最底層的物理資源虛擬機(jī)等是屬于資源層內(nèi)容,通過(guò)IaaS層資源能力提供API接口作為技術(shù)服務(wù)進(jìn)行能力開(kāi)放,即是服務(wù)層;最終基于資源能力,構(gòu)建了一個(gè)公有云的面向公眾的運(yùn)營(yíng)服務(wù)平臺(tái),本身又屬于應(yīng)用層的內(nèi)容。而對(duì)于SaaS層,則底層的業(yè)務(wù)組件是資源,抽象的API接口是服務(wù)層,最終的前端業(yè)務(wù)或流程是應(yīng)用功能實(shí)現(xiàn)。

應(yīng)用架構(gòu)分層

回到單個(gè)應(yīng)用的架構(gòu)分層,談得最多的就是常說(shuō)的三層架構(gòu)模式。在軟件架構(gòu)中,經(jīng)典三層架構(gòu)自頂向下由用戶界面層(User Interface Layer)、業(yè)務(wù)邏輯層(Business Logic Layer)與數(shù)據(jù)訪問(wèn)層(Data Access Layer)組成。

在整個(gè)實(shí)現(xiàn)過(guò)程中,可能還會(huì)增加獨(dú)立的Facade層,或獨(dú)立的API接口服務(wù)提供層,統(tǒng)一的DTO數(shù)據(jù)傳輸對(duì)象層等,但是這些都不影響整體的三層邏輯結(jié)構(gòu)。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

三層架構(gòu)本身也和一個(gè)業(yè)務(wù)功能實(shí)現(xiàn)的完整對(duì)應(yīng),在數(shù)據(jù)訪問(wèn)層處理數(shù)據(jù)獲取和持久化操作,在業(yè)務(wù)邏輯層對(duì)業(yè)務(wù)規(guī)則進(jìn)行處理,在界面展現(xiàn)層進(jìn)行相應(yīng)的前端展現(xiàn)和用戶交互。

而談到領(lǐng)域建模的時(shí)候,又引入了領(lǐng)域模型中的分層架構(gòu),如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)在經(jīng)典三層架構(gòu)的基礎(chǔ)上做了進(jìn)一步改良,在用戶界面層與業(yè)務(wù)邏輯層之間引入了新的一層,即應(yīng)用層(Application Layer)。同時(shí),一些層次的命名也發(fā)生了變化。將業(yè)務(wù)邏輯層更名為領(lǐng)域?qū)幼匀皇穷}中應(yīng)有之義,而將數(shù)據(jù)訪問(wèn)層更名為基礎(chǔ)設(shè)施層(Infrastructure Layer),則突破了之前數(shù)據(jù)庫(kù)管理系統(tǒng)的限制,擴(kuò)大了這個(gè)負(fù)責(zé)封裝技術(shù)復(fù)雜度的基礎(chǔ)層次的內(nèi)涵。

當(dāng)然,也有融合了領(lǐng)域模型和傳統(tǒng)三架構(gòu)思路后的技術(shù)架構(gòu)如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

領(lǐng)域?qū)雍蜆I(yè)務(wù)邏輯層

在領(lǐng)域建模的一個(gè)核心是領(lǐng)域模型,領(lǐng)域模型不再是一個(gè)個(gè)獨(dú)立的數(shù)據(jù)庫(kù)表或數(shù)據(jù)對(duì)象,而是一個(gè)業(yè)務(wù)對(duì)象或領(lǐng)域?qū)ο?。因此領(lǐng)域?qū)邮敲嫦蝾I(lǐng)域?qū)ο蠖O(shè)計(jì)實(shí)現(xiàn),而業(yè)務(wù)規(guī)則能力本身也是屬于領(lǐng)域?qū)ο髮?duì)外提供的能力接口。即業(yè)務(wù)規(guī)則本身也是領(lǐng)域?qū)ο蟊┞兜哪芰Α?/p>

傳統(tǒng)業(yè)務(wù)邏輯層實(shí)現(xiàn)往往是一個(gè)數(shù)據(jù)對(duì)象對(duì)應(yīng)一個(gè)DAO,一個(gè)Service和一個(gè)Interface。而領(lǐng)域模型下DAO可以是分開(kāi)的,但是Service邏輯層往往則更多應(yīng)該按領(lǐng)域模型思路對(duì)DAO層的能力進(jìn)行組裝和聚合。

獨(dú)立應(yīng)用層拆分

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

在我原來(lái)理解里面,領(lǐng)域?qū)犹峁╊I(lǐng)域模型和領(lǐng)域服務(wù)能力接口,而應(yīng)用層更多的是對(duì)領(lǐng)域?qū)佣鄠€(gè)領(lǐng)域?qū)ο竽P吞峁┑姆?wù)能力進(jìn)一步進(jìn)行組裝和編排,然后再暴露給前端應(yīng)用。

談到應(yīng)用層的概念,實(shí)際上可以理解為前端應(yīng)用中存在的共性能力的進(jìn)一步下沉。即應(yīng)用本身只是用戶業(yè)務(wù)功能實(shí)現(xiàn)的承載,但是這個(gè)功能的實(shí)現(xiàn)可以通過(guò)多種前端展現(xiàn)形式,比如傳統(tǒng)的CS桌面應(yīng)用,BS應(yīng)用,或手機(jī)端APP。

在電商里面,一個(gè)商品訂購(gòu)就是一個(gè)獨(dú)立的應(yīng)用,用戶可以在APP完成,也可以在BS端完成,但是不論在哪里完成最終應(yīng)用層提供的能力都應(yīng)該一樣。比如完成一個(gè)商品訂購(gòu)需要同時(shí)和底層的訂單,庫(kù)存,支付多個(gè)服務(wù)進(jìn)行交付和協(xié)同。那么這個(gè)邏輯顯然不適合同時(shí)在BS端應(yīng)用和APP端應(yīng)用中進(jìn)行重復(fù)編寫和開(kāi)發(fā)。那么這個(gè)內(nèi)容就應(yīng)該在應(yīng)用層實(shí)現(xiàn)。

如果回到微服務(wù)和中臺(tái)架構(gòu)下,這個(gè)應(yīng)用層拆分更加必要,即通過(guò)應(yīng)用層來(lái)下沉共性的服務(wù)組合和組裝邏輯,這個(gè)邏輯和協(xié)同不應(yīng)該屬于任何一個(gè)前端應(yīng)用。

界面層還是接口層

在開(kāi)發(fā)一個(gè)聚合能力的中臺(tái)微服務(wù)模塊的時(shí)候,可以看到這個(gè)微服務(wù)模塊本身并沒(méi)有界面展現(xiàn)層,那么該微服務(wù)的最上層僅僅是提供API接口的接口服務(wù)層。

該API接口服務(wù)能力既可以提供給APP前端,也可以提供給BS端使用。

軟件技術(shù)架構(gòu)分層

軟件技術(shù)架構(gòu)構(gòu)圖,分層仍然可以沿用軟件三層分層模型,重點(diǎn)是說(shuō)明清楚各層用到的關(guān)鍵技術(shù)組件或技術(shù)服務(wù)能力。比如軟件開(kāi)發(fā)三層模型的技術(shù)架構(gòu)分層如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

如果本身就是一個(gè)技術(shù)平臺(tái),類似大數(shù)據(jù)平臺(tái),那么我們?cè)谡w構(gòu)圖的時(shí)候仍然需要考慮先進(jìn)行分層,再詳細(xì)說(shuō)明每層里面的技術(shù)內(nèi)容。

比如對(duì)應(yīng)一個(gè)大數(shù)據(jù)平臺(tái),包括了大數(shù)據(jù)采集,大數(shù)據(jù)存儲(chǔ),大數(shù)據(jù)處理,大數(shù)據(jù)分析和應(yīng)用,那么這個(gè)就是關(guān)鍵的分層,可以基于這個(gè)分層再來(lái)考慮各層采用的關(guān)鍵技術(shù)。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

對(duì)于技術(shù)棧構(gòu)圖基本也可以參考技術(shù)架構(gòu)構(gòu)圖模式進(jìn)行。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

技術(shù)架構(gòu)重點(diǎn)需要回答的就是你在進(jìn)行軟件架構(gòu)設(shè)計(jì)過(guò)程中,究竟會(huì)用到哪些關(guān)鍵技術(shù),哪些開(kāi)源產(chǎn)品或工具等。可以細(xì)化到具體的技術(shù)產(chǎn)品,也可以僅細(xì)化到產(chǎn)品類型。

比如消息中間件,你可以細(xì)化到采用RabbitMQ,也可以在技術(shù)架構(gòu)中只體現(xiàn)采用消息中間件。

技術(shù)架構(gòu)和軟件功能分層架構(gòu)唯一相同的就是分層,技術(shù)架構(gòu)在各個(gè)分層里面都沒(méi)有具體的業(yè)務(wù)功能點(diǎn)和實(shí)現(xiàn)內(nèi)容,僅僅是關(guān)鍵技術(shù)點(diǎn)說(shuō)明。

單個(gè)應(yīng)用功能架構(gòu)

注意應(yīng)用功能架構(gòu)完全是重點(diǎn)描述應(yīng)用系統(tǒng)具備哪些功能,一個(gè)功能究竟是采用什么三層技術(shù)架構(gòu)實(shí)現(xiàn)并不用關(guān)心。因此功能架構(gòu)不應(yīng)該體現(xiàn)數(shù)據(jù)層,邏輯層,技術(shù)點(diǎn)這些內(nèi)容。

那么對(duì)于一個(gè)應(yīng)用系統(tǒng)的功能如何分層?

我們可以參考業(yè)務(wù)分層分類,將業(yè)務(wù)分為基礎(chǔ)支撐層,執(zhí)行層,決策管理層。這樣基本的分層模式就出來(lái)了,基于該方式可以完成一個(gè)功能架構(gòu)構(gòu)圖。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

對(duì)于單個(gè)應(yīng)用來(lái)說(shuō)一般不會(huì)自身有云平臺(tái),PaaS平臺(tái)這類概念。但是單個(gè)應(yīng)用構(gòu)建一定存在共性技術(shù)支撐平臺(tái)能力,比如有自己的流程管理,各自共性技術(shù)功能組件等。因此單應(yīng)用構(gòu)建還可以采用基礎(chǔ)技術(shù)支撐層+應(yīng)用層+門戶層的方式進(jìn)行構(gòu)圖。

在應(yīng)用層再按具體的業(yè)務(wù)域或業(yè)務(wù)階段進(jìn)行進(jìn)一步細(xì)分。

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

架構(gòu)圖的分層構(gòu)圖邏輯

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

在前面基本給出了不同類型的架構(gòu)圖的核心分層邏輯,可以看到在畫架構(gòu)圖的時(shí)候盡量不要混合使用不同場(chǎng)景下的構(gòu)圖方式,否則就導(dǎo)致整體架構(gòu)圖混亂。

在畫整體架構(gòu)的時(shí)候一般需要重點(diǎn)參考云三層架構(gòu),SOA三層架構(gòu)的構(gòu)圖模式進(jìn)行構(gòu)圖。而在細(xì)化到某一個(gè)應(yīng)用系統(tǒng)的時(shí)候,仍然還需要分清是構(gòu)建技術(shù)架構(gòu)圖還是功能架構(gòu)圖,兩者本身的分層邏輯也存在很大的差別而不能混用。

架構(gòu)圖的構(gòu)圖邏輯

要完成一個(gè)完整的架構(gòu)圖構(gòu)圖,可以先拆分為兩邊+中間。兩邊一般是放具體的標(biāo)準(zhǔn),規(guī)范等,比如安全管理,質(zhì)量管理,技術(shù)標(biāo)準(zhǔn)規(guī)范,開(kāi)發(fā)運(yùn)維規(guī)范等。

中間即是重點(diǎn)需要考慮進(jìn)行分層構(gòu)建的地方。

在前面也談到了中間部分重點(diǎn)參考云計(jì)算和SOA的架構(gòu)分層邏輯。一般來(lái)說(shuō)核心的還是資源層,平臺(tái)層,應(yīng)用層,門戶層。而對(duì)于應(yīng)用層本身又可以考慮業(yè)務(wù)域進(jìn)一步拆分,或者根據(jù)價(jià)值鏈或業(yè)務(wù)生命周期拆分為多個(gè)階段域再展開(kāi)描述。

在云和SOA下,更加強(qiáng)調(diào)平臺(tái)+應(yīng)用構(gòu)建模式。

而兩者之間一般是服務(wù)層,通過(guò)SOA平臺(tái)或API能力開(kāi)放平臺(tái)來(lái)統(tǒng)一接入和發(fā)布服務(wù),以形成一個(gè)完整的資源+服務(wù)+應(yīng)用的松耦合架構(gòu)。

同時(shí)一個(gè)完整的架構(gòu)本身就是多視角的,如下:

如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖

功能架構(gòu)往往可以給具體用戶和業(yè)務(wù)人員看,而對(duì)于技術(shù)架構(gòu)往往更多是內(nèi)部團(tuán)隊(duì)開(kāi)發(fā)人員研討使用。而設(shè)計(jì)到資源和平臺(tái)的架構(gòu)圖往往又是運(yùn)維工程人員進(jìn)行部署架構(gòu)搭建的重要參考。因此不同維度的架構(gòu)分層屬性本身不能隨意融合使用,而導(dǎo)致架構(gòu)圖混亂。

感謝各位的閱讀,以上就是“如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何理解軟件架構(gòu)設(shè)計(jì)分層模型和構(gòu)圖這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI