柚子快報(bào)激活碼778899分享:【架構(gòu)六】系統(tǒng)架構(gòu)風(fēng)格
柚子快報(bào)激活碼778899分享:【架構(gòu)六】系統(tǒng)架構(gòu)風(fēng)格
一、數(shù)據(jù)流風(fēng)格
批處理:每一步都是獨(dú)立的,并且每一步都是順序執(zhí)行的,只有當(dāng)前一步處理完畢后,后一步處理才開(kāi)始。數(shù)據(jù)必須是完整的,作為一個(gè)整體進(jìn)行傳遞。如日志分析、計(jì)費(fèi)程序等。管道/過(guò)濾器:每個(gè)構(gòu)件都有一組輸入輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過(guò)內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個(gè)過(guò)程通常通過(guò)對(duì)輸入流的變換及增量計(jì)算來(lái)完成,所以在輸入被完全消費(fèi)之前,輸出便產(chǎn)生了。如傳統(tǒng)的編譯器、UNIX管道等。
(數(shù)據(jù)流風(fēng)格)批處理風(fēng)格與管道過(guò)濾器風(fēng)格的區(qū)別: 共同點(diǎn):把任務(wù)分成一系列固定順序的計(jì)算單元。組件間只通過(guò)數(shù)據(jù)交互傳遞。 區(qū)別:(1)批處理強(qiáng)調(diào)是全部的,輸入時(shí)可隨機(jī)存取,無(wú)合作性無(wú)交互性。而管道過(guò)濾器是遞增的,有反饋,可交互。(2)批處理強(qiáng)調(diào)數(shù)據(jù)傳送在步與步之間作為一個(gè)整體,而管道過(guò)濾器無(wú)此要求。批處理的數(shù)據(jù)是完整的,管道過(guò)濾器的數(shù)據(jù)是增量的(3)批處理數(shù)據(jù)以整體的形式傳輸,數(shù)據(jù)總量有限。管道過(guò)濾器用數(shù)據(jù)流的形式傳輸,數(shù)據(jù)量無(wú)限制。
二、調(diào)用/返回風(fēng)格
主程序/子程序?qū)儆诮Y(jié)構(gòu)化設(shè)計(jì),關(guān)注功能的實(shí)現(xiàn),使用自頂向下的功能劃分的設(shè)計(jì)方法。把問(wèn)題分為若干步驟處理。構(gòu)件即為主程序和子程序。系統(tǒng)中的每個(gè)構(gòu)件都是一個(gè)函數(shù)或者過(guò)程,每個(gè)函數(shù)形成一個(gè)調(diào)用鏈。產(chǎn)生程序結(jié)構(gòu)圖。每個(gè)函數(shù)可修改全局?jǐn)?shù)據(jù)。如開(kāi)發(fā)語(yǔ)言。面向?qū)ο篌w系關(guān)注數(shù)據(jù)與功能的封裝,采用面向?qū)ο蟮脑O(shè)計(jì)方法。構(gòu)件是對(duì)象,即抽象數(shù)據(jù)類(lèi)型的實(shí)例,每個(gè)對(duì)象都包含數(shù)據(jù)和方法。各個(gè)對(duì)象通過(guò)相互調(diào)用的方式來(lái)實(shí)現(xiàn),通過(guò)相互調(diào)用,實(shí)現(xiàn)整個(gè)系統(tǒng)的全部功能。沒(méi)有可供修改的全局?jǐn)?shù)據(jù)。產(chǎn)生設(shè)計(jì)類(lèi)圖。如面向?qū)ο箝_(kāi)發(fā)語(yǔ)言。層次架構(gòu)風(fēng)格:每層為上一層提供服務(wù),修改某一層,最多影響其相鄰的上下層(通常只能影響上層)。上層必須知道下層的身份,不能調(diào)整層次之間的順序。如TCP/IP協(xié)議。
三、獨(dú)立構(gòu)件風(fēng)格
獨(dú)立構(gòu)件風(fēng)格主要強(qiáng)調(diào)每個(gè)構(gòu)件都是相對(duì)獨(dú)立的個(gè)體,它們之間不直接通信,以降低耦合度,提高靈活性。構(gòu)件之間相互獨(dú)立,不存在顯示的調(diào)用關(guān)系。
進(jìn)程通信:進(jìn)程間消息傳遞的方式可以是點(diǎn)對(duì)點(diǎn)、異步或同步方式,以及遠(yuǎn)程過(guò)程調(diào)用等。事件驅(qū)動(dòng)(隱式調(diào)用):當(dāng)某個(gè)事件被觸發(fā)時(shí),系統(tǒng)自動(dòng)調(diào)用在這個(gè)事件中注冊(cè)的所有過(guò)程。如斷點(diǎn)調(diào)試、公眾號(hào)等的訂閱信息。
四、虛擬機(jī)風(fēng)格
人構(gòu)建一個(gè)運(yùn)行環(huán)境,在這個(gè)環(huán)境上,可以解析與運(yùn)行定義的一些語(yǔ)言增加架構(gòu)的靈活性。
解釋器適用于“自定義規(guī)則的場(chǎng)合”,無(wú)需人的介入,逐行逐字翻譯執(zhí)行。如JVM。規(guī)則系統(tǒng)是在解釋器的基礎(chǔ)上增加經(jīng)驗(yàn)規(guī)則,適用于專(zhuān)家系統(tǒng),一個(gè)規(guī)則對(duì)應(yīng)一個(gè)處理流程。一般用在人工智能領(lǐng)域和決策支持系統(tǒng)中。
五、倉(cāng)庫(kù)風(fēng)格(數(shù)據(jù)共享風(fēng)格)
以數(shù)據(jù)為中心,所有的操作都是圍繞建立的數(shù)據(jù)中心進(jìn)行的。數(shù)據(jù)庫(kù)系統(tǒng)和黑板系統(tǒng)共同點(diǎn)是共享數(shù)據(jù)。若輸入流中某類(lèi)事件觸發(fā)系統(tǒng)相應(yīng)的進(jìn)程執(zhí)行,則倉(cāng)庫(kù)是傳統(tǒng)型數(shù)據(jù)庫(kù)。 若中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)系統(tǒng)相應(yīng)的進(jìn)程執(zhí)行,則倉(cāng)庫(kù)是黑板系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)是構(gòu)件控制中央共享流程,而黑板系統(tǒng)是構(gòu)件被動(dòng)響應(yīng)中央共享數(shù)據(jù)的變化。黑板系統(tǒng)包括知識(shí)源、黑板和控制三個(gè)部分。知識(shí)源包括若干獨(dú)立計(jì)算的不同單元,提供解決問(wèn)題的知識(shí)。知識(shí)源之間不直接通信,他們之間的交互通過(guò)黑板來(lái)完成,知識(shí)源響應(yīng)黑板的變化,也只修改黑板;黑板是一個(gè)全局?jǐn)?shù)據(jù)庫(kù),包含問(wèn)題域解空間的全部狀態(tài),是知識(shí)源相互作用的唯一媒介,知識(shí)源通過(guò)不斷地改變黑板數(shù)據(jù)來(lái)解決問(wèn)題;控制:控制完全由黑板的狀態(tài)驅(qū)動(dòng),知識(shí)源響應(yīng)是通過(guò)黑板的狀態(tài)變化來(lái)控制的。黑板系統(tǒng)通常應(yīng)用在對(duì)于解決問(wèn)題沒(méi)有確定性算法的軟件中。如語(yǔ)音識(shí)別,信號(hào)處理。
六、閉環(huán)風(fēng)格(過(guò)程控制)
閉環(huán)風(fēng)格(過(guò)程控制):適用于嵌入式系統(tǒng),用于解決簡(jiǎn)單閉環(huán)控制問(wèn)題,如空調(diào)溫控、定速巡航。
各架構(gòu)風(fēng)格的優(yōu)缺點(diǎn):
管道/過(guò)濾器風(fēng)格 優(yōu)點(diǎn): 模塊化:系統(tǒng)可以被拆分成多個(gè)獨(dú)立的組件,易于開(kāi)發(fā)和維護(hù)。 可重用性:過(guò)濾器可以在不同的管道中重復(fù)使用,提高代碼的可重用性。 可擴(kuò)展性:可以通過(guò)添加新的過(guò)濾器來(lái)擴(kuò)展系統(tǒng)的功能。 缺點(diǎn): 過(guò)多的過(guò)濾器可能導(dǎo)致性能下降,增加系統(tǒng)的復(fù)雜性。 數(shù)據(jù)流在過(guò)濾器之間傳遞,可能導(dǎo)致數(shù)據(jù)轉(zhuǎn)換和傳輸?shù)拈_(kāi)銷(xiāo)。 面向?qū)ο箫L(fēng)格 優(yōu)點(diǎn): 模塊化:系統(tǒng)可以被組織成多個(gè)對(duì)象,易于理解、擴(kuò)展和維護(hù)。 可重用性:面向?qū)ο蟮脑O(shè)計(jì)鼓勵(lì)代碼的重用,通過(guò)繼承和多態(tài)性實(shí)現(xiàn)代碼的靈活性和可擴(kuò)展性。 封裝性:對(duì)象可以封裝數(shù)據(jù)和功能,提供更好的安全性和抽象性。 缺點(diǎn): 復(fù)雜性:面向?qū)ο蟮脑O(shè)計(jì)可能導(dǎo)致較高的復(fù)雜性,特別是對(duì)于大型系統(tǒng)。 性能開(kāi)銷(xiāo):面向?qū)ο蟮脑O(shè)計(jì)可能引入一些額外的性能開(kāi)銷(xiāo),如動(dòng)態(tài)綁定和消息傳遞。 事件驅(qū)動(dòng)風(fēng)格 優(yōu)點(diǎn): 松耦合:組件之間通過(guò)事件進(jìn)行通信,彼此之間解耦,易于維護(hù)和擴(kuò)展。 響應(yīng)性:系統(tǒng)可以及時(shí)響應(yīng)事件,適用于實(shí)時(shí)和交互式應(yīng)用。 并發(fā)性:事件驅(qū)動(dòng)的系統(tǒng)可以支持并發(fā)處理多個(gè)事件。 缺點(diǎn): (1)構(gòu)件放棄了對(duì)計(jì)算的控制權(quán),完全由系統(tǒng)來(lái)決定 (2)存在數(shù)據(jù)傳輸問(wèn)題 分層體系結(jié)構(gòu)風(fēng)格 優(yōu)點(diǎn): 模塊化:系統(tǒng)按層次結(jié)構(gòu)組織,易于理解和維護(hù)。 可重用性:每個(gè)層級(jí)可以獨(dú)立開(kāi)發(fā)和測(cè)試,提高代碼的可重用性。 松耦合:各個(gè)層級(jí)之間通過(guò)定義明確定義的接口進(jìn)行通信,實(shí)現(xiàn)松耦合的架構(gòu)。 可擴(kuò)展性:分層架構(gòu)允許在需要擴(kuò)展系統(tǒng)功能或引入新的技術(shù)時(shí),只需對(duì)特定的層進(jìn)行修改或擴(kuò)展,而無(wú)需對(duì)整個(gè)系統(tǒng)進(jìn)行重構(gòu)。這種可擴(kuò)展性使得系統(tǒng)能夠適應(yīng)變化的需求和技術(shù)演進(jìn)。 缺點(diǎn): 性能損失:分層架構(gòu)可能引入一定的性能損失,因?yàn)樵诓煌瑢又g可能需要進(jìn)行額外的數(shù)據(jù)傳遞和轉(zhuǎn)換。這種開(kāi)銷(xiāo)在某些性能敏感的系統(tǒng)中可能會(huì)成為限制因素。 增加復(fù)雜性:分層架構(gòu)引入了多個(gè)層次和層間的依賴(lài)關(guān)系,增加了系統(tǒng)的復(fù)雜性和理解難度。在設(shè)計(jì)和維護(hù)分層架構(gòu)時(shí),需要仔細(xì)考慮和管理各個(gè)層次之間的交互和依賴(lài)關(guān)系。 跨層調(diào)試?yán)щy:當(dāng)系統(tǒng)出現(xiàn)問(wèn)題時(shí),跨越多個(gè)層次進(jìn)行調(diào)試可能會(huì)比較困難。因?yàn)閱?wèn)題可能涉及多個(gè)層次之間的交互和數(shù)據(jù)流,需要進(jìn)行跨層的追蹤和排查。 C2體系結(jié)構(gòu)風(fēng)格 優(yōu)點(diǎn): 分布式:C2體系結(jié)構(gòu)支持分布式部署,可以在多個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行不同的組件。 可伸縮性:可以通過(guò)添加更多的計(jì)算節(jié)點(diǎn)來(lái)擴(kuò)展系統(tǒng)的處理能力。 高可用性:C2體系結(jié)構(gòu)具有冗余和容錯(cuò)機(jī)制,提高系統(tǒng)的可靠性和可用性。 缺點(diǎn): 復(fù)雜性:C2體系結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)比較復(fù)雜,需要考慮分布式通信、一致性和容錯(cuò)等方面。 開(kāi)發(fā)和調(diào)試?yán)щy:分布式系統(tǒng)的開(kāi)發(fā)和調(diào)試相對(duì)更加復(fù)雜,需要處理網(wǎng)絡(luò) 倉(cāng)庫(kù)風(fēng)格 優(yōu)點(diǎn): 數(shù)據(jù)中心:集中式數(shù)據(jù)倉(cāng)庫(kù)提供了數(shù)據(jù)的一致性和可管理性。 數(shù)據(jù)共享:多個(gè)組件可以共享數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù),提高數(shù)據(jù)的可訪問(wèn)性和共享性。 缺點(diǎn): 性能瓶頸:集中式數(shù)據(jù)倉(cāng)庫(kù)可能成為系統(tǒng)的性能瓶頸,特別是在高并發(fā)場(chǎng)景下。 數(shù)據(jù)一致性:多個(gè)組件同時(shí)對(duì)數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行操作可能導(dǎo)致數(shù)據(jù)一致性問(wèn)題。 解釋器風(fēng)格: 優(yōu)點(diǎn): 靈活性:解釋器風(fēng)格允許在運(yùn)行時(shí)解釋和執(zhí)行代碼,提供了系統(tǒng)的靈活性和動(dòng)態(tài)性。 可擴(kuò)展性:可以通過(guò)添加新的解釋器或修改現(xiàn)有解釋器來(lái)擴(kuò)展系統(tǒng)的行為。 缺點(diǎn): 性能開(kāi)銷(xiāo):解釋器的執(zhí)行通常比編譯后的代碼執(zhí)行更慢,因?yàn)樾枰馕龊徒忉屆恳粭l指令。 復(fù)雜性:解釋器的設(shè)計(jì)和實(shí)現(xiàn)可能比較復(fù)雜,需要處理語(yǔ)法解析、語(yǔ)義解釋等方面的問(wèn)題。
柚子快報(bào)激活碼778899分享:【架構(gòu)六】系統(tǒng)架構(gòu)風(fēng)格
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。