系统架构设计师学习之路(24)

5.3 软件架构风格

软件体系结构设计的一个核心目标是重复的体系结构模式,即达到体系结构级的软件重用。也就是,在不同软件系统中,使用同一体系结构。

5.3.1 软件架构风格概述
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。
体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,这组约束指出系统是如何将这些构件和连接件组合起来的。
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。

5.3.2 经典软件体系结构风格
1.管道和过滤器
这种风格的每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。
因此,这里的构件被称作过滤器。
这种风格的连接件就像数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
2.数据抽象和面向对象组织
这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。
3.事件驱动系统
这种风格是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册。当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中的过程的调用。
4.分层系统
每一层为上层服务,并作为下层客户。
在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。这样的系统中构件在层上实现了虚拟机。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。
每一层至多影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。
5.仓库系统及知识库
在仓库风格中,由两种不同的构件:
(1)中央数据结构说明当前状态;
(2)独立构件在中央数据存储上执行。
一方面,若构件控制共享数据,则仓库是一传统型数据库;
另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。
6.C2风格
概括为通过连接件绑定在一起按照一组规则运作的并行构件网络。
C2风格中的系统组织规则如下:
(1)系统中的构件和连接件都有一个顶部和一个底部。
(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接件的顶部。而构件与构件之间的直接连接是不允许的。
(3)一个连接件可以和任意数目的其他构件和连接件连接。
(4)当两个连接件进行直接连接时,必须由一个的底部到另一个的顶部。

5.3.3 客户/服务器风格
C/S软件体系结构是基于资源不对等且实现共享而提出,是20世纪90年代成熟的技术,C/S体系结构定义了工作站如何与服务器相连,实现部分数据和应用分布到多个处理机上。
C/S体系结构有三个主要组成成分:数据库服务器、客户应用程序、网络。
服务器负责有效地管理系统的资源,例如数据库管理系统。
客户应用程序的主要任务:
(1)提供用户与数据库交互的界面;
(2)向数据库服务器提交用户请求,并接收来自数据库服务器的信息;
(3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
C/S体系结构的优点:
(1)系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小;
(2)系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都对一个DBMS进行编码。
(3)将大应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
(4)强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接收。
C/S体系结构的缺点:
(1)开发成本较高。C/S体系结构对客户端软硬件配置要求较高。
(2)客户端程序设计复杂。
(3)信息内容和形式单一。
(4)用户界面风格不一。
(5)软件移植困难。
(6)软件维护和升级困难。

5.3.4 三层C/S结构风格
在三层C/S体系结构中,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。这种结构被称作“瘦客户机”。
将应用功能分成:

  • 表示层
    是应用的用户接口部分与应用逻辑间的对话功能。
  • 功能层
    是应用的主体,负责具体的业务处理逻辑。
  • 数据层
    通常是数据库管理系统,负责管理对数据库数据的读写。

三层C/S的解决方案对三层进行明确分割,不同构件相互独立,层间的接口简洁,适合复杂事务处理。

5.3.5 浏览器/服务器风格
浏览器/服务器风格就是上述三层应用结构的一种实现方式。
B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。
基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅需要一个浏览器就可运行全部的模块。真正达到“零客户端”的功能,很容易在运行时自动升级。
B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网等。
B/S体系结构的缺点:
(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理功能;
(2)系统扩展能力差,安全性较难以控制;
(3)在数据查询等响应速度上,要远远低于C/S体系结构;
(4)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。

由于C/S结构的成熟性且C/S结构的计算机应用系统网络负载较小,因此,应用系统通常以C/S和B/S混合应用形式出现。
例如供电调度系统的结构,内部采用C/S风格,对外采用B/S风格,它针对不同应用和客户需要,充分利用了两种体系结构的优点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值