【背景】

软件架构设计的一个核心问题是能否使用重复的架构模式,即能否达到架构级的软件重用。

【定义】

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。定义了一个系统家族,即一个架构定义一个词汇表(构件、连接件)和一组约束(如何组装)
软件架构风格反映了领域中众多系统共有的结构和语义特征。

经典软件架构风格

数据流风格

批处理序列

管道/过滤器

每个构件有一组输入和输出。这里的构件称为过滤器。
高内聚、低耦合
支持软件重用
可扩展性好
支持并行执行
过滤器是独立的实体,不同过滤器之间无法进行数据共享,同时也不知道上下游
解析太多导致性能下降
不适合处理交互的应用

调用/返回风格

主程序/子程序

面向对象分格

构件是对象

层次结构

基于抽象程度递增的系统设计
支持功能增强
支持重用
分层之后,性能劣化
很难找到一个合适的、正确的层次抽象方法

独立构件风格

基于事件的隐式调用

架构是一个模块
不直接调用一个过程,而是触发或者广播一个或者多个事件。系统的构件需要提前注册事件。
触发者并不知道哪些构件会受到这些事件的影响。
为软件重用提供了强大的的支持
构件替换更方便
放弃了对系统计算的控制
数据仓库可能耦合。
过程的语义以来触发事件的上下文约束,理解上更困哪。

进程通信

虚拟机风格

解释器

基于规则的系统

仓库风格

数据库系统

超文本系统

黑板系统

中央数据结构当前状态触发进程执行的选择,主要在信号处理领域、知识推理领域。
知识源
黑板数据结构
控制

C2风格

通过连接件绑定在一起的并行构件网络
构件和连接件都有一个顶部和底部
以连接件为中介的异步消息交换机制。
构件相对独立、构件之间的依赖比较少。

客户机/服务器风格

开发成本较高
客户端程序设计复杂
信息内容和形式单一
用户界面分格不同意
软件移植困难
软件维护和升级困难。

多层架构风格

三层C/S架构

相比二层,增加了一个应用服务器。表示层、功能层、数据层
允许合理的划分三层结构的功能
允许灵活有效地选用相应的平台和硬件系统
应用的各层可以并行开发
允许充分利用功能层有效地隔离表示层和数据层

B/S架构

是三层C/S架构的一种实现,浏览器/web服务器/数据库服务器
不适合过多的动态交互

分类: 未分类

0 条评论

发表回复

Avatar placeholder