架構模式
架構模式(architectural pattern)是軟體架構中在給定環境下,針對常遇到的問題的、通用且可重用的解決方案。[1]類似於軟體設計模式但覆蓋範圍更廣,致力於軟體工程中不同問題,如計算機硬體性能限制、高可用性、業務風險極小化。[2][3]一些架構模式會透過軟體框架實現。
軟體工程中的「模式」是源自於建築中的類似概念,例如克里斯托佛·亞歷山大在1977年的《建築模式語言》一書,探討在建築中會出現的模式,之後也在軟體工程中使用此一概念。後來,Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides 合作出版了《設計模式:可復用物件導向軟體的基礎》(Design Patterns - Elements of Reusable Object-Oriented Software) 一書,設計模式的概念也廣泛地用在軟體工程中。
例子
子領域 | 架構模式 | 軟體設計模式 | 解決方案模式 | 相關模式 |
---|---|---|---|---|
數據集成/面向服務的架構(SOA) |
|
|||
|
||||
|
| |||
數據架構 |
|
| ||
分析與商業智能 |
|
| ||
主數據管理 |
|
|
| |
數據建模 |
|
|||
人工智慧 |
|
|
一些額外的架構模式例子:
- 黑板 (設計模式)
- Broker模式
- 事件驅動架構
- 隱式調用
- 分層 (物件導向設計)
- 微服務
- 模型-視圖-控制器(MVC), 表示-抽象-控制, Model-view-presenter, 模型-視圖-視圖模型
- 實體-組件-系統
- 多層架構 (通常為3層或n層)
- 裸對象
- 操作型數據存儲 (ODS)
- 點對點網絡
- 管線與過濾器架構
- 面向服務的架構(SOA)
- 基於空間的架構
參見
參考文獻
- ^ R. N. Taylor, N. Medvidović and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
- ^ Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu. An Experience of Applying Pattern-based Software Framework to Improve the Quality of Software Development: 4. The Design and Implementation of OS2F. Journal of Software Engineering Studies, Vol. 2, No. 6. the Third Taiwan Conference on Software Engineering (TCSE07): 185–194. June 2008 [2012-05-16]. (原始內容存檔於2011-09-22).
Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact.
- ^ Architectural Patterns: Definition. AAHN INFOTECH (INDIA) PVT. LTD. [2012-05-16]. (原始內容存檔於2012-06-23).
Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the related characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available".
書目
- Avgeriou, Paris; Uwe Zdun. Architectural patterns revisited:a pattern language. 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July. 2005.
- Buschmann F.; Meunier R.; Rohnert H.; Sommerlad P.; Stal M. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons. 1996 [2019-07-17]. (原始內容存檔於2017-11-29).
- Bass L.; Clements P.; Kazman R. Software Architecture in Practice: Second Edition. Addison-Wesley. 2005.