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