架構模式

架構模式(architectural pattern)是軟件架構中在給定環境下,針對常遇到的問題的、通用且可重用的解決方案。[1]類似於軟件設計模式但覆蓋範圍更廣,致力於軟件工程中不同問題,如計算機硬件性能限制、高可用性業務風險極小化。[2][3]一些架構模式會透過軟件框架實現。

軟件工程中的「模式」是源自於建築中的類似概念,例如克里斯托佛·亞歷山大在1977年的《建築模式語言英語A Pattern Language》一書,探討在建築中會出現的模式,之後也在軟件工程中使用此一概念。後來,Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides 合作出版了《設計模式:可復用物件導向軟件的基礎》(Design Patterns - Elements of Reusable Object-Oriented Software) 一書,設計模式的概念也廣泛地用在軟件工程中。

例子

子領域 架構模式 軟件設計模式 解決方案模式 相關模式
數據集成/面向服務的架構(SOA)
  • 單行(One-way)
  • 同步的請求-響應
  • 基本回調
  • 運單(Claim check)
數據架構英語Data architecture
  • 定製的應用數據庫
  • 打包的應用數據庫
  • ETL
  • EAI
  • SOA
分析與商業智能
  • 業務報表數據訪問
  • 運營分析數據訪問
  • 分析報表數據訪問
  • 分析dashboard數據訪問
  • 運營dashboard數據訪問
  • 數據挖掘
  • 實時dashboards
  • 在內存中分析(In-memory analytics)
  • 統計分析
  • 預測分析
主數據管理英語Master data management
  • 主數據hub
  • 主數據複製
  • 主數據服務
  • 主數據同步
數據建模
  • 建模標準
  • 命名慣例
人工智能
  • 決策管理
  • 語音識別
  • 文本分析與自然語言處理
  • 自然語言生成
  • 傳統機器學習
  • 深度學習
  • 機械人流程自動化
  • 圖像與視頻分析

一些額外的架構模式例子:

參見

參考文獻

  1. ^ R. N. Taylor, N. Medvidović and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
  2. ^ 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. 
  3. ^ 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. 
  • Bass L.; Clements P.; Kazman R. Software Architecture in Practice: Second Edition. Addison-Wesley. 2005.