软件需要通过架构设计来呈现其设计蓝图。IEEE 将架构设计定义为“定义一系列硬件和软件组件及其接口的过程,旨在建立计算机系统开发的框架。”基于计算机系统构建的软件可以展现出多种架构风格中的一种。
系统类别的构成
- 一组组件(例如:数据库、计算模块):用于执行系统所需的功能。
- 一组连接器:有助于组件之间的协调、通信和协作。
- 约束条件:定义了如何将组件集成以形成系统。
- 语义模型:帮助设计者理解系统的整体属性。
使用架构风格是为了给系统的所有组件建立一个结构。
架构风格分类
1] 数据中心架构:
- 数据存储将驻留在此架构的中心,并被其他频繁更新、添加、删除或修改存储中数据的组件访问。
- 图表展示了一个典型的数据中心风格。客户端软件访问中央存储库。当与客户端相关的数据或客户端感兴趣的数据发生变化并通知客户端软件时,此方法的变体可用于将存储库转换为黑板。
- 这种数据中心架构将促进可集成性。这意味着现有的组件可以被更改,且新的客户端组件可以被添加到架构中,而无需经过其他客户端的许可或关注。
- 数据可以通过黑板机制在客户端之间传递。
数据中心架构的优点:
- 数据存储库独立于客户端
- 客户端的工作彼此独立
- 添加额外的客户端可能很简单
- 修改可能非常容易
!image数据中心架构
2] 数据流架构:
- 当输入数据通过一系列计算操作组件转换为输出数据时,会使用这种架构。
- 图表展示了管道-过滤器架构,因为它同时使用了管道和过滤器,并且它由一组称为过滤器的组件通过线连接组成。
- 管道用于将数据从一个组件传输到下一个组件。
- 每个过滤器将独立工作,并被设计为接收特定形式的数据输入,并向下一个过滤器产生指定形式的数据输出。过滤器不需要了解相邻过滤器的工作原理。
- 如果数据流退化为单行变换,则称为批处理顺序。这种结构接收一批数据,然后应用一系列顺序组件对其进行转换。
数据流架构的优点:
- 它鼓励维护、重用和修改。
- 这种设计支持并发执行。
数据流架构的缺点:
- 它经常退化为批处理顺序系统
- 数据流架构不允许需要更多用户交互的应用程序。
- 协调两个不同但相关的流并不容易
!image数据流架构
3] 调用与返回架构
它用于创建易于扩展和修改的程序。此类别中存在许多子风格。下面解释了其中的两种。
- 远程过程调用架构: 此组件用于呈现分布在网络上的多台计算机上的主程序或子程序架构。
- 主程序或子程序架构: 主程序结构分解为许多子程序或函数,形成控制层次结构。主程序包含许多可以调用其他组件的子程序。
4] 面向对象架构
系统的组件封装了数据以及必须应用以操作数据的操作。组件之间的协调和通信是通过消息传递建立的。
面向对象架构的特征:
- 对象保护系统的完整性。
- 对象不知道其他对象的表示(描绘)。
面向对象架构的优点:
- 它使设计者能够将挑战分离为一组自主的对象。
- 其他对象知道该对象的实现细节,从而允许在不影响其他对象的情况下进行更改。