標(biāo)題: REST軟件架構(gòu)學(xué)習(xí)筆記 [打印本頁]
作者: 51黑tt 時(shí)間: 2016-3-5 18:07
標(biāo)題: REST軟件架構(gòu)學(xué)習(xí)筆記
一個(gè)軟件架構(gòu)是一個(gè)軟件系統(tǒng)在其某個(gè)階段運(yùn)行時(shí)(run-time)所有元素的抽
象。一個(gè)系統(tǒng)可能由很多層抽象和很多個(gè)操作階段組成,每個(gè)抽象和操作階段都
有自己的軟件架構(gòu)。
軟件架構(gòu)的核心是抽象原則:通過封裝來隱藏系統(tǒng)的一些細(xì)節(jié),從而更好地識(shí)別和支持系統(tǒng)的屬性
現(xiàn)代軟件架構(gòu)的核心是:組件、連接器、數(shù)據(jù)。組件是在運(yùn)行時(shí)執(zhí)行某種功能的軟件單元。這樣的例子有程序、對象、進(jìn)程、過濾器。
軟件架構(gòu)(software architecture)是軟件系統(tǒng)在運(yùn)行時(shí)的抽象,而軟件結(jié)構(gòu)(software structure)則是靜態(tài)源代碼的屬性.將軟件架構(gòu)和源代碼結(jié)構(gòu)分離開來是為了更好的關(guān)注軟件運(yùn)行時(shí)的特性,這些特性不依賴于一個(gè)特定的組件實(shí)現(xiàn).
設(shè)計(jì)文檔是運(yùn)行時(shí)系統(tǒng)的一部分?系統(tǒng)運(yùn)行起來后,設(shè)計(jì)文檔在軟件架構(gòu)中不扮演任何角色。大樓的圖紙燒毀了,但是大樓還在。
對于基于網(wǎng)絡(luò)的應(yīng)用而言,數(shù)據(jù)元素在系統(tǒng)中的位置和移動(dòng)常常是系統(tǒng)行為唯一至
關(guān)重要的決定因素.
組件
一個(gè)組件是軟件指令和內(nèi)部狀態(tài)的一個(gè)抽象單元,通過其接口提供對于數(shù)據(jù)的轉(zhuǎn)
換。軟件組件就是擁有接口、其接口形式對外表現(xiàn)或者展示的一個(gè)具有一定獨(dú)立功能的軟件單元。軟件組件必須擁有接口,否則不能成為組件,或者這樣的組件是沒有任何用處的。
組件是軟件指令和內(nèi)部狀態(tài)的一個(gè)抽象單元,通過其接口提供對于數(shù)據(jù)的轉(zhuǎn)換。轉(zhuǎn)換的例子包括從二級存儲(chǔ)將數(shù)據(jù)加載到內(nèi)存、執(zhí)行一些運(yùn)算、轉(zhuǎn)換為另外一種格式、使用其他數(shù)據(jù)來封裝等等。每個(gè)組件的行為是架構(gòu)的一部分,能夠被其他組件觀察到(observed)或看到(discerned)換句話說,組件應(yīng)該由它為其他組件提供的接口和服務(wù)來定義,而不第1章軟件架構(gòu)12由它在接口之后的實(shí)現(xiàn)來定義。Parnas 將此定義為其他架構(gòu)元素能夠?qū)υ摻M件作出的一組假設(shè)。
連接器
一個(gè)連接器是對于組件之間的通訊、協(xié)調(diào)或者合作進(jìn)行仲裁的一種抽象機(jī)制。
連接器的例子包括共享的表述、遠(yuǎn)程過程調(diào)用、消息傳遞協(xié)議和數(shù)據(jù)流。
連接器通過將數(shù)據(jù)元素從它的一個(gè)接口轉(zhuǎn)移(transferring)到另一個(gè)接口而不改變數(shù)據(jù),來支持組件之間的通信。在其內(nèi)部,一個(gè)連接器可以包含一個(gè)由組件組成的子系統(tǒng),為了轉(zhuǎn)移的目的對數(shù)據(jù)進(jìn)行某種轉(zhuǎn)換、執(zhí)行轉(zhuǎn)移、然后做相反的轉(zhuǎn)換并交付與原始數(shù)據(jù)相同的結(jié)果。
傳輸數(shù)據(jù)應(yīng)該是鏈接器最重要的任務(wù)。包括客戶有意義的實(shí)體數(shù)據(jù)、組件交互的交互協(xié)議數(shù)據(jù)。對于數(shù)據(jù)傳輸方向的選擇和目的數(shù)據(jù)方向的不同,連接器可以對接受的數(shù)據(jù)進(jìn)行不同的轉(zhuǎn)換。這個(gè)轉(zhuǎn)換應(yīng)該由連接器內(nèi)部的組件來完成。
數(shù)據(jù)
數(shù)據(jù)是組件通過一個(gè)連接器接收或發(fā)送的信息元素。數(shù)據(jù)的例子包括字節(jié)序列、消息、編碼過的參數(shù)、以及序列化過的對象,但是不包括那些永久駐留或隱藏在組件中的信息。
在軟件架構(gòu)中,數(shù)據(jù)其實(shí)是一種流動(dòng)的消息。在基于網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)中,數(shù)據(jù)是最重要的概念。你要選擇兩種模式:是在遠(yuǎn)程直接連接組件進(jìn)行交互,還是將組件傳遞到本地在本地空間中進(jìn)行交互。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |