REST
paper study
Roy Thomas Fielding
HTTP 1.1协议于1999年发布,加上于1998年发布的URI协议,至此Web的技术架构已经完全确立。为了向世人详细说明Web技术架构背后的设计原理,Fielding博士在2000年写了自己著名的博士论文《Architectural Styles and the Design of Network-based Software Architectures》——李锟
Chapter 1
Software Architecture
軟體架構
軟體結構
執行時期(Run time)
-
動態抽象概念
- 由人類定義
一套“系統”由許~許多多的軟體架構組合而成
-
動態抽象概念
- 由人類定義
抽象的!
大量的比喻!
元素 Element
Perry和Wolf針對軟體架構提出了一個模型,Fielding博士做了更新。
- Component
- Connector
- Data Element
Component
组件是软件指令和内部状态的一个抽象单元,通过其接口提供对于数据的转换。转换的例子包括从二级存储将数据加载到内存、执行一些运算、转换为另外一种格式、使用其他数据来封装等等。
Connector
一个连接器可以包含一个由组件组成的子系统,为了转移的目的对数据进行某种转换、执行转移、然后做相反的转换并交付与原始数据相同的结果。然而,架构所捕获到的外部行为的抽象可以忽略这些细节。
Component v.s. Connector
咱們由外觀功能上下手
component
connector
Data
transform
( calculation, 加密... )
某種通信協議 etc.
從外部角度觀察:組件可以對數據進行轉換,連接器不行。
配置(約束)
一个配置(約束)是在系统的运行期间组件、连接器和数据之间的架构关系的结构。
由元素(elements)定義上的延伸,賦予其在特定架構下特定的功能(使命)
elements
賦予約束,進行排序、拼湊
屬性
對特定軟體架構中,架構元素與元素間彼此的約束所獲得的特徵所進行的描述。
其實就是形容詞!
- 進化的相對容易程度
- 組件的可重用性
- 效率
- 動態擴展能力
- ...
針對一組軟體架構呈現的效果所下的結論。
工程師的本質:解決問題!!
因為某項需求,需要對特定系統添加某種
屬性
因而選用擁有該指定屬性的軟體架構
耐打
軟硬適中
所以選用這個架構
風格
一種架構風格是一整組完整的架構約束,這些約束提供了特定軟體架構中各元素的角色和功能,同時限制了任一個遵循該風格的架構中允許存在的元素間的關係。(忽略了一組完整實現的軟體架構下的細節)
為擁有架構屬性的軟體架構做一個取名的動作
當你使用它:
- 定義好的起始元素與命名
- 定義好的各個元素的架構約束,提供各元素的角色和功能
- 由此架構風格之上去建立自己的細節
就像專案開發時,使用套件一樣!
感謝大家~
REST
By ian Lai
REST
- 345