软件体系结构 -...

40
软件体系结构 中国科学技术大学 视觉计算与可视化实验室 董兰芳 2019年春

Upload: others

Post on 17-Jul-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

软件体系结构

中国科学技术大学 视觉计算与可视化实验室

董兰芳

2019年春

Page 2: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

内 容

软件体系结构奠基于程序算法、数据结构和对象设计,它是系统实施的抽象描述。

体系结构概括了整体系统结构、功能部件分解、部件本质和特性、部件的界面、部件之间的通讯协议和整体性布局策略及

2

特性、部件的界面、部件之间的通讯协议和整体性布局策略及法则。

良好的软件系统,必须有合理健全、内在一致的体系结构。

了解软件体系结构可以帮助各种不同背景的人(包括技术人员、用户或客户、项目管理人员、投资者等)共同就系统的总体性质和要求作讨论分析,从而对将要诞生的系统取得共识。

Page 3: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

内 容

软件体系结构

流程处理系统

层次结构层次结构

客户机/服务器系统

集群系统

3

Page 4: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

1 软件体系结构

软件体系结构定义了软件的布局和总体计算部件的构成,以及这些部件(组件)之间的相互作用关系。部件包括诸如客户、服务器、数据库、程序包、过程、子过程等一切软件的组成成分。相互作用关系包括过程调用、共享变量访问、消息传递等。相互作用也包括具有十分复杂的语义和构成的关系,诸如

4

相互作用也包括具有十分复杂的语义和构成的关系,诸如客户/服务器的访问协议、数据库的访问协议、网络传输协议、异步事件的映射等。在系统的功能需求方面,体系结构还表达了系统需求和构成之间的对应关系,这为系统的设计提供了分析和评价的依据。在系统宏观层面上,人们所关心的是系统的非功能性需求方面的内容,诸如容量、数据吞吐量、一致性、兼容性、安全性、可靠性等,这些在体系结构中也都表达了出来。

Page 5: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

1 软件体系结构

体系结构设计与程序设计之间的侧重点不同。

作体系结构设计时,主要关心的是各部件的协作、系统的总体性能、伸缩扩展能力等。

在程序设计时,则集中注意一个部件、界面或子系统内的

5

在程序设计时,则集中注意一个部件、界面或子系统内的详情。

体系结构的重要性在于它决定了一个系统的主体结构、宏观特性和具有的基本功能及其特性。

大型建筑物设计成功的关键首先在于主体结构。同样,复杂软件设计的成功与否在于软件系统的宏观上层结构设计的正确和合理性。

Page 6: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

1 软件体系结构

软件体系结构的作用可以表现在软件设计开发的各阶段。在项目规划阶段,粗略的体系结构是进行项目可行性、工程复杂性、工程进展、投资规模、风险预测等重要根据。在项目需求阶段,需要从需求出发建立更深入的体系结构描述,这时的体系结构,是开发商和客户之间进行需求交

6

结构描述,这时的体系结构,是开发商和客户之间进行需求交互的表达形式,也是交互所产生的结果。通过它,可以准确地表达用户需求,以及设计对应需求的解决方法,并考察终结系统的各项性能。在项目设计阶段,需要从实现角度对体系结构进行更深入的分解和描述。在项目实施阶段,体系结构的层次和部件是建立开发人员的组织和分工、协调开发人员关系的依据。

Page 7: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

1 软件体系结构

在项目的评估阶段,体系结构是性能测试和评价的依据。

在项目维护和升级阶段,对软件的任何扩充和修改

7

在项目维护和升级阶段,对软件的任何扩充和修改都需要在体系结构的指导下进行,以维护整体设计的合理性和正确性以及性能的可分析性,并为维护升级的复杂性和代价分析提供依据。

Page 8: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

1 软件体系结构

熟悉体系结构样式可以有如下好处:把某一体系结构的总体性质和不同背景的人分享。反复把体系结构的结构和样式,应用在不同系统和环境中。比较不同的体系结构,根据其长短处,作出总体性的决策。

8

决策。

Page 9: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

1 软件体系结构

常见的软件体系结构的样式有:流程处理系统(pricedutal processing diagram)。客户机/服务器(client/server)系统。层次系统(layered system)。多级系统(multi-tier system)。

9

多级系统(multi-tier system)。集群(clustering)。代理(agent)。聚合(aggregate)和联邦体系(federation)。

Page 10: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

内 容

软件体系结构

流程处理系统

层次结构

客户机/服务器系统

10

客户机/服务器系统

集群系统

Page 11: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

2 2 流程处理系统流程处理系统

流程处理系统(procedural processing system)以程序算法和数据结构为中心,像输送或过滤器般处理数据。

每一个处理过程中,先接受输入数据,对他们进行处理(过滤),最后产生输出数据。

11

(过滤),最后产生输出数据。

流程处理系统的例子

Page 12: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

2 2 流程处理系统流程处理系统

流程处理系统的优点如下: 系统的总体行为,是各个处理部件的简单组合。 只要输入和输出数据合适,处理部件可以在不同系统中重复使用。 只要增加新的处理部件,系统可以很容易地扩展。

12

只要增加新的处理部件,系统可以很容易地扩展。 系统可以在大规模并行计算机中运行,解决复杂的工程技术和科研难题。流程处理系统有如下缺点: 它主要以一个批量处理的方式运行,不太适合交互式应用。 当有大量和不同方式的输入和输出数据时,对数据的管理比较困难。

Page 13: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

2 2 流程处理系统流程处理系统

13

流程处理系统的软件体系结构

Page 14: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

内 容

软件体系结构

流程处理系统

层次结构

客户机/服务器系统

14

集群系统

Page 15: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

3 3 层次结构层次结构

所谓层,就是一个部件或结点中的一组对象或函数,它们同心协力,提供一定范畴的服务。

层状系统则是带有这些分组或层的软件系统,它常见于服务器中,里层给外层提供服务。

15

有三个层的结构

Page 16: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

3 3 层次结构层次结构

层状系统有如下优点: 在部件或结点中分设层有助把复杂的问题按功能分解,使整体设计更为清晰。 由于内层与外界隔绝,内层函数和服务受到有效的控制,只有界面层的对象作为界面类向外界公开。 新的运算可以在界面层引入,它们把内层(核心或持久)的

16

新的运算可以在界面层引入,它们把内层(核心或持久)的一些运算合起来。 如果界面合适,某一个层反复用在不同地方。一个自成一体的层,也可以作为部件或结点使用。 层状系统体系结构有如下缺点: 层的个数多时,系统性能就会下降。因为界面函数可能通过好几层,才能到达某一内层。 标准化的层界面可能变得臃肿,降低函数调用的性能。

Page 17: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

3 3 层次结构层次结构

17

层次结构的操作系统

Page 18: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

内 容

软件体系结构

流程处理系统

层次结构

客户机/服务器系统

18

客户机/服务器系统

集群系统

Page 19: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4 4 客户机客户机//服务器系统服务器系统

PC机的出现给应用程序模型的发展带来了巨大的推动力,这时出现了客户机/服务器模式的应用程序,即应用程序的代码和资源被明确的划分为客户端和服务器端。

因为PC机有了一定的处理能力,在大型机上实现的的用

19

PC户界面和部分事务逻辑被移到PC机上运行(将这种PC机端的代码称为应用程序客户端),而大型机则提供部分事务逻辑处理和数据存取的功能(将这种大型机端的代码称为应用程序服务器端)。

随着PC机处理能力在逐渐加大,客户端执行的任务逐渐增多,这时对服务器端的硬件要求也在逐渐地降低。

Page 20: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.1 4.1 视图控制模型视图控制模型MVCMVC

用户界面,特别是图形用户界面,承担着向用户显示问题模型和与用户进行操作和输入/输出交互的作用。用户希望保持交互操作的稳定性,但更希望根据需要改变和调整显示的内容和形式。例如,要求支持不同的界面标准或得到不同的显示效果,适应不同的操作需求。这就要求界面结构能在不改变软件的功能和模型情况下支持用户对界面

20

面结构能在不改变软件的功能和模型情况下支持用户对界面构成的调整。要做到这一点,就必须使软件的计算模型独立于界面的构成。模型视图控制器(MVC)就是一种交互界面的结构组织模式。MVC是20世纪80年代发展起来的一种面向对象的模型,核心在于数据与表示的分离。在MVC模型中,应用程序分为三个组成部分:模型(Model)、视图(View)、控制器(Controller)。

Page 21: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.1 4.1 视图控制模型视图控制模型MVCMVC

模型这是整个模型的核心,它表示的是解决方案空间

的真正的逻辑。

视图

21

视图这是用户界面部分,与Web应用程序一样,主管应

用程序与人之间的接口。

控制器该部分是用户界面与模型的接口。

Page 22: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.1 4.1 视图控制模型视图控制模型MVCMVC

MVC模式有如下优点:可以为一个模型在运行时建立和使用多个视图,模型数据的改变,可以播放到所有的视图,使它们的显示与模型同步。可以根据需求动态地更换视图和控制器对象。可以把一个模型独立地移植到新的工作平台。

22

可以把一个模型独立地移植到新的工作平台。模型和各个视图可以独立测试,方便整体的调试。

MVC模式也有自身的缺点。例如:增加了系统结构和实现的复杂性。视图与控制器间连接过于紧密。视图对模型数据访问的效率低。很多高级的界面工具或构造器不支持MVC模式。

Page 23: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.1 4.1 视图控制模型视图控制模型MVCMVC

23

时钟的MVC模式

Page 24: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.2 4.2 两层的客户机两层的客户机//服务器结构服务器结构

根据事务逻辑在客户端和服务器端分配的不同,该种模型有几种形式。事务逻辑完全配置在服务器端。事务逻辑完全配置在客户机端。服务器端和客户机端都配置有事务逻辑。

24

调整 两层客户/服务器应用模型的三种形式

Page 25: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.3 4.3 ““瘦”客户机和对象标志瘦”客户机和对象标志

“瘦”(thin)客户机就是Web浏览器(web browser)和web服务器(Web Server)的结构。虽然浏览器软件占用很多的字节的磁盘空间,它仍然被认为是“轻便”(thin)的。

25

Web服务器和客户机的通讯

Page 26: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.4 4.4 基于基于MVCMVC的网上应用的网上应用

模型视图控制器(MVC)构架,是建立网上应用行之有效的方案,虽然细节各异,其精神都是数据与展示分离。MVC架构在网上应用有如下特征:模型方面,由Web服务器的数据集(Data Set)或其他类似对象定义,该对象由服务器的控制器对象构造,其数据来自背后的

26

象定义,该对象由服务器的控制器对象构造,其数据来自背后的数据库或其他对象。视图方面,则由样本网页定义,其中带有一些变量。该网页与控制器对象完全分离,也可能含有在客户机一端执行的控制程序。控制器 主要是在服务器里面,它按客户机的请求做出反应,调用其他对象处理要求,并把样本网页的变量以数据代替,最后把网页送回客户机,辅助控制器也可以脚本程序形式出现在样本网页中,用来查证用户输入格式,安排视图形式等。

Page 27: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.4 4.4 基于基于MVCMVC的网上应用的网上应用

27

使用MVC架构的网上应用

Page 28: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.5 4.5 三层客户机三层客户机//服务器模型服务器模型

在三层的应用程序模型中,事务逻辑与用户界面和数据存取明显地分离出来,将客户端的用户界面与服务器端数据存取隔离开来,极大地改善了应用程序的可维护性。 注意,虽然最常用的多层客户/服务器模型是三层模型,但是,现在已经出现了将事务逻辑层和数据存取

28三层客户/服务器应用模型

模型,但是,现在已经出现了将事务逻辑层和数据存取层增加的趋势。 更多更细的分层不但提高了系统的维护性能,同时也增加了系统的重用性和与分布式系统概念融合的可能性。

Page 29: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.5 4.5 三层客户机三层客户机//服务器模型服务器模型

29

例 EDI-SEVER的体系结构图

Page 30: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.6 4.6 多层客户机多层客户机//服务器模型服务器模型

多层系统有如下好处:(1) 因为系统的功能分布在几个级或服务器上,系统维修和扩展都比较容易。(2) 从底层到高层,可以分级控制,对不同级的客户机提供不同水平的服务。

30

不同水平的服务。(3) 方便企业水平的整合。通常的作法是把中间级与企业的其它系统连接起来。(4) 多层系统可以扩充,以服务大量同时使用系统的客户机。 多层系统有以下的缺点:(1) 各对客户机/服务器之间可能有多种不同的通讯协议。(2) 由于数据要行经多级结点,而各个结点可能在不同的电脑和操作系统中,调试系统的整体性能就很不容易。

Page 31: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.7 4.7 组件对象模型和分布式组件对象技术组件对象模型和分布式组件对象技术

组件技术是继模块化、结构化、面向对象的软件开发方法后,发展起来的又一新的软件开发的方法。软件重用一直是信息业界追求的目标,人们一直希望能够象搭”积木”一样”装配”应用程序,模块设计中的模块、面向对象方法中的对象都不能够承担“积木”这种角色。组件对象模型(Component object model,简称COM)的概念的提出,使得软件开发朝着这个希

31

model,简称COM)的概念的提出,使得软件开发朝着这个希望更进一步。COM是一个二进制规范,与源代码、开发平台无关,遵照COM规范,用各种开发工具开发的组件对象之间、组件对象与应用程序之间、甚至运行在不同机器上的组件对象、应用程序之间可以相互通讯和交互。组件对象通过“接口”与应用程序或组件对象交互信息。一旦定义好接口,软件开发者可以根据业务特点选择开发工具,开发一个个组件,这些组件对象可以作为“积木”用来搭建软件。

Page 32: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.7 4.7 组件对象模型和分布式组件对象技术组件对象模型和分布式组件对象技术

组件对象模型的目的是程序重构。

COM的本质上仍然是客户机/服务器模式。从COM服务器实际上是组件对象的容器。COM服务器中的组件对象向COM客户提供服务。COM客户通常是EXE,也可能是DLL,甚至就是WINDOWS自己.COM客户一般应独立于COM服务器。当一个客

COM

32

户请求某个COM对象的服务时,客户需要传递一个类的标志符(CLSID),请求WINDOWS去查找组件对象在哪儿,找到以后把接口的指针传递给客户,WINDOWS将从注册表中查找COM服务器的位置并定位一个合适的COM对象。根据COM服务器与COM客户是否运行在同一个进程地址空间,COM服务器分为三类:进程内(In-Process)组件服务器,进程外组件服务器(Out-of-Process),远程服务器(Remote)。

Page 33: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.7 4.7 组件对象模型和分布式组件对象技术组件对象模型和分布式组件对象技术

In-Process服务器通常是DLL,它映射到客户的进程地址空间中运行。

Out-of-Process或Local服务器通常是EXE,它与COM客户在同一个机器上,但在不同的进程地址空间运行。

Remote服务器可以是EXE也可以是DLL,它与COM客户

33

Remote EXE DLL COM运行在不同的机器上。远程组件已经跨越了机器的边界,如果仍然用COM来描述这种模型显然是不够的。微软扩展了COM模型,推出了DCOM模型(Distributed COM)。

客户进程

客户程序

进程内代理

进程外服务

Stub

进程内对象COM

RPC

DCOMRPC

远程机器

DCOM 远程服务

远程机器

进程内对象Stub

进程外组件和远程组件

Page 34: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

4.7 4.7 组件对象模型和分布式组件对象技术组件对象模型和分布式组件对象技术

可以认为组件是一个独立的单元,它能够完成一套特定的功能,并具有定义明确的接口。除此之外,组件还应该具有以下的属性:

(1) 二进制标准。软件组件需要用于二进制级.为使其它公司使用第三方组件销售商的产品,第三方组件销售商不必发行自己的专用源代码.

34

必发行自己的专用源代码.(2) 与语言无关性。市场上有许多用于开发软件的语言,

一个软件组件应该能够由大量这些语言所使用和创建.(3) 位置透明性。正确的基于组件的解决方案的目标之

一,是使客户程序与组件能够交互作用,不论组件放在哪里都一样.

(4) 版本兼容。组件必须可以在不妨碍已有的客户的情况下被升级。

Page 35: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

内 容

软件体系结构

流程处理系统

层次结构

客户机/服务器系统

35

客户机/服务器系统

集群系统

Page 36: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

5 5 集群系统集群系统

在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个设备之间实

36

设备根本无法承担,而如何在完成同样功能的多个设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,集群概念因此应运而生。要把多层系统扩展,服务大量的客户机,可以用一组服务器结点来联合提供服务,这样的一组服务器称为集群(clustering)。多个服务结点聚集在一起,它们有同样的功能,任意一个都可以为客户机提供服务。

Page 37: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

5 5 集群系统集群系统

37

集群结构示意图

Page 38: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

5 5 集群系统集群系统

在实际分配负载时,可采用的方式如下:随机式。任意选择一个结点来担当任务。轮流式。轮流任用结点来做事情。负载平分式。取工作负载最低的结点来做新的任务。

38

负载均衡主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性。为用户提供更好的访问质量。提高服务器响应速度。提高服务器及其他资源的利用效率。避免了网络关键部位出现单点失效。

Page 39: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

5 5 集群系统集群系统

Web Server(网服务器)

Thin Client

轻 便 客 户 机

Business Logic Node

(商业逻辑结点)

Security(保安)

39

Database Management Node(数据库 管理结点)

(网服务器)(商业逻辑结点)Dispatcher(分配器)

Page 40: 软件体系结构 - USTCstaff.ustc.edu.cn/~lfdong/teach/2019db/se.pdf软件体系结构奠基于程序算法、数据结构和对象设计,它 ... 特性、部件的界面、部件之间的通讯协议和整体性布局策略及

总 结

软件体系结构

流程处理系统

层次结构

客户机/服务器系统

40

客户机/服务器系统

集群系统