在某些场景下,架构元素是由解决特定问题的方式组件成的。随着时间的推移,人们发现这种组合的方式在许多不同领域都很有用,因此这种方式被广泛记载和传播。架构元素的这种组合方式,叫做架构模式,提供了解决一些系统问题的一整套策略。
架构模式描绘了用于解决问题的元素类型及其交互形式。模式可以根据它们使用的架构元素类型进行特征化。例如,常见的模式类型模式如下:
- 层模式:当软件元素间的使用关系是严格单向时,就会出现一个层系统。层是一组连贯的相关功能。在严格的分层结构中,层只能使用其正下方层的服务。在实践中,这种模式的很多变种能减少结构上的限制。层通常被设计成对其上的层隐藏了实现特性的抽象结构(虚拟机),以便移植。
常见的组件连接器模式如下:
- 共享数据(或仓库)模式:该模式包含组件和连接器的创建、存储及访问持久化数据。仓库通常表现为(商业)数据库形式。连接器为管理数据库的协议,例如SQL。
- 客户端服务端模式:组件为客户端和服务端,连接器为它们之间执行系统工作的共享的协议和消息。
常见的分配模式如下:
- 多层模式:描述了如何分配系统的组件到不同的硬件和软件子集,并通过一些通信中间件进行连接。该模式专门用于通用部署结构(软件到硬件的分配)。
- 能力中心和平台,即专注于软件系统工作分配结构的模式。在能力中心,工作根据站点的技术或领域专业知识分配给站点。例如,用户接口设计是在可用性工程专家所在的网站上完成的。在平台上,一个站点负责开发软件产品线的可复用核心资产,其他站点负责开发使用这些核心资产的应用程序。