架构模式

架构模式(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.