軟體體系結(jié)構(gòu)是軟件的基礎(chǔ)。適當?shù)捏w系結(jié)構(gòu)是軟件成功的一個重要因素。通常,大的軟件公司都擁有專門的架構(gòu)師職位,而且只有高級程序員能勝任。下面就讓小編來給大家分享一下,讓我們一起來看看吧。
常見的五種軟件架構(gòu)
分層模式用于對結(jié)構(gòu)化設(shè)計的軟件進行層次拆解,每個層次為獨立的抽象,為其上層抽象提供服務(wù)。
系統(tǒng)通常被拆分為以下四個層次:
表示層(也稱為 UI 層)
應(yīng)用層(也稱為服務(wù)層)
業(yè)務(wù)邏輯層(也稱為領(lǐng)域?qū)樱?/p>
數(shù)據(jù)訪問層(也稱為持久化層)
使用場景
通用桌面應(yīng)用程序
電子商務(wù) Web 應(yīng)用
客戶端/服務(wù)器模式由兩個部分構(gòu)成:一個服務(wù)器與多個客戶端。服務(wù)器組件同時為多個客戶端組件提供服務(wù)。客戶端向服務(wù)器發(fā)啟服務(wù)請求,服務(wù)器將相應(yīng)服務(wù)信息回應(yīng)給客戶端。此外,服務(wù)器持續(xù)監(jiān)聽來自客戶端的請求。
使用場景
電子郵件、文件共享及銀行業(yè)務(wù)等在線應(yīng)用
主/從模式由兩個部分構(gòu)成:主設(shè)備與從設(shè)備。主服務(wù)組件將作業(yè)分發(fā)給多個從設(shè)備組件,并根據(jù)這些從設(shè)備反饋的結(jié)果,計算生成最終結(jié)果。
使用場景
數(shù)據(jù)庫復制,主數(shù)據(jù)庫被認定為權(quán)威數(shù)據(jù)源,各從數(shù)據(jù)庫與主數(shù)據(jù)保持同步
在計算機系統(tǒng)中通過總線互連的各設(shè)備(包括主設(shè)備與從設(shè)備)
管道/過濾器模式用于構(gòu)造用于生成及處理數(shù)據(jù)流的系統(tǒng)。每個處理過程都封裝在過濾器(filter)組件之中,要處理的數(shù)據(jù)通過 管道(pips) 進行投遞。管道同時用于作為 過濾器(filter) 間的緩沖及同步。
使用場景
編譯器,一系列的過濾器用于詞法分析、語法分析、語義分析及代碼生成
生物信息學的工作流
代理模式用于在結(jié)構(gòu)化系統(tǒng)中對組件解耦。系統(tǒng)內(nèi)各組件間采用遠過程調(diào)用(remote service invocations)的方式交互。代理(Broker)組件充當組件間通訊的協(xié)調(diào)角色。
提供服務(wù)的組件將其能力(服務(wù)以及特性)發(fā)布給代理,客戶端均向代理請求服務(wù),由代理將請求重定向到先前已發(fā)布過對應(yīng)服務(wù)的組件進行處理。
使用場景
消息中間件軟件:Apache ActiveMQ,Apache Kafka,RabbitMQ 與 JBoss 等等
對等模式中的組件稱之為對等體(peer),對等體既作為向其他對等體請求服務(wù)的客戶端,同時也做為響應(yīng)其他對等體請求的服務(wù)端。對等體可以在運行過程中動態(tài)地改變其角色,即,既可以單獨做為客戶端或服務(wù)端運行,又可同時作為客戶端與服務(wù)端運行。
使用場景
網(wǎng)絡(luò)文件共享:Gnutella 與 G2)
流媒體協(xié)議:P2PTV 與 PDTP.
流媒體應(yīng)用: Spotify.
首先要做的是選擇合適的體系結(jié)構(gòu)來指導系統(tǒng)的功能和質(zhì)量屬性設(shè)計,然后再決定軟件開發(fā)。所以,在把軟件體系結(jié)構(gòu)應(yīng)用到設(shè)計中之前,必須了解通用的體系結(jié)構(gòu)模式。以上就是小編為大家分享的關(guān)于“”的全部內(nèi)容啦,希望能夠給大家?guī)韼椭丁?/p>
[免責聲明]
文章標題: 常見的五種軟件架構(gòu)
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學習與參考,不代表本網(wǎng)站贊同其觀點和對其真實性負責。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內(nèi)處理。