• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            數(shù)據(jù)流系統(tǒng)

            概念:以算法和數(shù)據(jù)結構為中心, 像管道和過濾器般處理數(shù)據(jù),每個組件都有相對獨立的數(shù)據(jù)處理功能,數(shù)據(jù)依次經(jīng)過各個組件,最后形成完整的數(shù)據(jù)處理系統(tǒng)。
            優(yōu)點:各個組件都是獨立的, 可以放方便的組合、重用和擴展,流水線式的執(zhí)行,支持大規(guī)模并行處理。
            缺點:流水線式的處理, 所以一般要求數(shù)據(jù)有比較統(tǒng)一的輸入和輸出格式;各個組件都是獨立的, 因此的很難提取共性;批處理方式,所以不適合和用戶交互。
            應用:一個最著名的實例是unix的shell編程,多個對數(shù)據(jù)進行處理的程序(組件)通過管道聯(lián)結起來,產(chǎn)生總和的效果。
                     還有傳統(tǒng)的編譯器,源代碼經(jīng)過詞法分析、語法分析、中間代碼生成、目標代碼生成等步驟生成輸出的目標代碼。
                     還有其他經(jīng)過多步才能生成結果的程序,比如圖像處理,數(shù)值解題等。


            層次系統(tǒng)

            概念:將系統(tǒng)功能和組件分成不同的功能層次,一般而言,只有最上層的組件和功能可以被系統(tǒng)外的使用者訪問,只有相鄰的層次之間才能夠有函數(shù)調用。
            優(yōu)點:把復雜的問題逐層分解,使整體設計非常清晰;每層只依賴相連的里層,耦合性較弱。
            缺點:有些劃分清晰的層次比較困難;層次太多會使性能下降。
            應用:層次系統(tǒng)是我們最常見的方式, 一般軟件都有它的影子,比如程序典型的三層架構分為表示層(界面層)、業(yè)務邏輯層、數(shù)據(jù)訪問層。
                     操作系統(tǒng)一般分為內核層,API層, 應用層, 我在理解 Windows API 調用過程中有相關介紹。
                    各層之間的交互方式也值得我們探討下, 一般調用方式有直接接口調用和消息發(fā)送二種方式,究竟什么時候該用哪種方式,可以參考我這篇消息耦合還是接口耦合. 總的來說如果很強調弱耦合和可擴展性,可以用消息方式,我們看到Windows上在調用API進入內核時用的是中斷消息的方式。


            面向對象的系統(tǒng)

            概念:
            數(shù)據(jù)和數(shù)據(jù)上的操作被封裝成抽象數(shù)據(jù)類型或者對象。系統(tǒng)由大量的對象組成,在物理上,對象之間通過函數(shù)或者過程調用相互作用;在邏輯上,對象之間通過集成、復合等方式實現(xiàn)設計的復用。
            優(yōu)點:符合人們認識事物的方式,支持封裝,繼承,多態(tài)。
            缺點:通過函數(shù)調用,并且需要知道處理的對象,耦合性比較緊密,我這篇范型編程雜談中也有談及。
            應用:面向對象設計和開發(fā)基本上已經(jīng)是每個程序員的必修課,各種流行的編程語言都有對它的支持,COM組件技術也是以此為基礎。


            基于事件的系統(tǒng)

            概念:
            這是面向對象和數(shù)據(jù)抽象體系的一種變形,系統(tǒng)同樣是由大量的對象組成的,但是對象之間的交互不是通過明確指明對象的函數(shù)或者過程調用進行的,相反,系統(tǒng)提供事件的創(chuàng)建和發(fā)布的機制,對象產(chǎn)生事件,一個或者多個對象通過向系統(tǒng)注冊關注這個事件并由此觸發(fā)出相應的行為或者產(chǎn)生新的事件。
            優(yōu)點:用于函數(shù)和過程的調用調用不需要指明特定的對象,所以系統(tǒng)具有非常好的靈活性和擴展性,新的組件只需要向系統(tǒng)的事件處理部分注冊就可以立刻加入系統(tǒng)中,同樣,老的組件也可以方便的從系統(tǒng)中刪除。
            缺點:由于函數(shù)調用是通過事件發(fā)送進行的,所以,發(fā)出事件的對象不能確認是否有對象處理了這個事件、是否是期望的對象處理了這個事件、是否獲得期望的結果,同樣也無法控制事件發(fā)生的次序,系統(tǒng)的邏輯和時序的正確性必須通過復雜的時序邏輯和前后條件的斷言加以保證。
            應用:Windows的鼠標鍵盤消息,窗口消息等都是基這種方式, 消息總線(Message Bus)也是基于這種架構。該方式與面向對象方式的比較我在消息耦合還是接口耦合這篇中也有提及。


            知識庫系統(tǒng)

            概念:
            使用一個中心數(shù)據(jù)結構表示系統(tǒng)的當前狀態(tài),一組相互獨立的組件在中心數(shù)據(jù)庫上進行操作。如果組件負責對中心數(shù)據(jù)進行選擇、處理,這種體系就是傳統(tǒng)的數(shù)據(jù)庫模型;如果中心數(shù)據(jù)結構自主的引發(fā)一系列的行為,則這種體系可以看成一個黑板模型。
            優(yōu)點:以數(shù)據(jù)為中心的體系結構,可以自然的表示大量的數(shù)據(jù)和事務處理的邏輯,適合表達以數(shù)據(jù)為中心的應用程序。
            缺點:只有很少一部分簡單的數(shù)據(jù)庫存儲應用可以完全采用這種體系結構表示。
            應用:傳統(tǒng)的數(shù)據(jù)庫。


            解釋器系統(tǒng)

            概念:如果應用程序的邏輯非常復雜,一個較好的體系就是提供面向領域的一組指令(語言),系統(tǒng)解釋這種語言,產(chǎn)生相應的行為,用戶使用這種指令(語言)完成復雜的操作。
            優(yōu)點:非常好的擴展性,用戶可以實現(xiàn)對軟件系統(tǒng)的二次開發(fā)。
            缺點:軟件開發(fā)復雜,特別是這種指令集的設計非常困難。
            應用:Java虛擬機, .Net的CLR(Common Language Runtime), 腳本語言的解釋器等。


            在實際開發(fā)中,我們很少會只使用一種體系結構,很多時候是以一種體系結構為主, 其他體系結構為輔。比如我們一個網(wǎng)絡客戶端軟件總體上是層次系統(tǒng),可能分為通訊層、業(yè)務邏輯層、界面層, 但每層內部又會用面向對象的方式實現(xiàn)。

            總之, 軟件系統(tǒng)的分析和設計的基本任務是:確立系統(tǒng)中的基本元素(完成系統(tǒng)的功能所必不可少的成分);確定這些元素之間相互作用的方式(這就是系統(tǒng)的體系結構)。

            參考資料:百度百科 體系結構
            posted on 2013-01-27 21:15 Richard Wei 閱讀(3230) 評論(1)  編輯 收藏 引用 所屬分類: 架構體系

            FeedBack:
            # re: 常見體系結構介紹
            2013-02-22 12:00 | 永遇樂
            很全面,學習了  回復  更多評論
              
            亚洲国产成人久久综合一| 亚洲国产视频久久| 狠狠色丁香婷婷久久综合不卡| 狠狠色丁香久久婷婷综合| 精品免费久久久久久久| 色噜噜狠狠先锋影音久久| 欧美午夜A∨大片久久| 久久夜色精品国产噜噜噜亚洲AV | 亚洲国产精品久久久久久| 久久99热这里只有精品国产| 日韩电影久久久被窝网| 久久99亚洲网美利坚合众国| 精品久久久久久99人妻| 午夜精品久久久久久久| 久久精品一区二区三区中文字幕| 一本久久知道综合久久| 国产精品99久久久久久猫咪| 国产毛片欧美毛片久久久| 国产精品欧美久久久久天天影视 | 一本色道久久88综合日韩精品| 亚洲AV无一区二区三区久久 | 久久AV无码精品人妻糸列| 久久亚洲国产精品一区二区| 久久久久久久久久久| 久久精品成人影院| 国产精品久久久久9999| 久久精品亚洲AV久久久无码| 国产视频久久| 日本免费一区二区久久人人澡| 亚洲AV日韩AV天堂久久| 久久九九兔免费精品6| 欧美精品丝袜久久久中文字幕| 国产精品久久久久影视不卡| 久久亚洲AV成人无码电影| 久久中文字幕人妻丝袜| 久久久受www免费人成| 麻豆精品久久精品色综合| 久久99精品久久久久久hb无码 | 国产激情久久久久影院老熟女免费| 人妻无码αv中文字幕久久| 亚洲中文字幕久久精品无码APP|