《软件工程》 第3篇 设计 姜久雷 副教授 北方民族大学 计算机科学与技术系
第11章 分布式系统体系结构 11.1 多处理器体系结构 11.2 客户机/服务器体系结构
三种主要的计算机应用系统 个人计算系统 嵌入式系统 分布式系统 设计在个人计算机或工作站上使用,不是分布式的。这类系统的例子包括字处理器、电子表格和图形系统等。 嵌入式系统 运行于单处理器或一组处理器上。这种系统的例子包括家庭电器的控制系统和仪器的管理系统等。 分布式系统 系统软件运行于网络相连的一组松散的集成在一起的处理器上。这种系统的例子包括银行ATM系统、预订系统、groupware系统等。 Groupware n. 1. 【电脑】群体软件(指软件应用程序可容易地分享在文件和信息上的工作)
1.个人计算机系统 XXX信息系统 硬件 输入 输出 软件 人 规程 数据
2.嵌入式系统 嵌入式系统是由处理器、相关的外围设备和用于特定目的的软件所组成。嵌入式系统执行单独一项定义明确的任务。
分布式系统 ——不同组织间的网上协同工作。
一个典型的分布式系统 数据处理中心 旧金山医院 澳克兰医院医生和数据库 医学研究者 在线健康护理 图像试验 专业网络测试
分布式系统的6个重要特征 分布式系统的缺点: 1.复杂性 2.保密性 3.管理有效性 4.不可预见性 1.资源共享——允许硬件、软件资源的共享使用。 2.开放性——通过添加非私有资源来扩展自己的能力。 3.并发性——许多过程可以在网络的不同计算机上同时运行。 4.可伸缩性——通过增加新的资源来满足对系统的新的需求。 5.容错性——多台计算机及其信息复制能力意味着系统对硬件和软件错误具有相当的容错能力。 6.透明性——对用户隐藏了系统分布的存在。用户对资源的存取透明,无需了解系统资源的分布情况。 分布式系统的缺点: 1.复杂性 2.保密性 3.管理有效性 4.不可预见性
初识分布式系统 多台计算机为一个任务共同工作 通过网络互联 在该系统上工作的用户看来,只是一个系统(好像是一个集中的单机系统)。 ——从多台处理器开始
多处理器的抽象描述
11.1 多处理器体系结构 11.1 Multiprocessor architectures 如果单处理器无法令人满意地处理系统的工作负载,那么,使用多处理器是解决这个问题的一个方法 。 分布式系统的简单模型 多处理器系统——系统由许多不同进程组成,这些进程可以在不同的处理器上运行。 应用:大型实时系统——收集信息,并利用收集到的信息做出决策,然后发送信号给执行机构以改变系统的环境。 使用多处理器,能提高系统性能和增加系统的柔性。 进程,在处理器上的分配可以是预先确定的,也可以由分配器动态分配。
多处理器系统的例子(图11-1)——交通管制系统的简化模型。 三个独立的逻辑进程——传感器管理、控制室和交通信号灯控制。它们分别运行在单独的处理器上。 分布式传感器收集交通 流量信息并就地处理 显示流量信息,做出 决策,发送指令。 接收指令控制进程 图11-1多处理器交通管制系统
11.2 客户机/服务器体系结构 11.2 Client-server architectures 客户机/服务器体系结构的概念
客户端-服务器的演化 GroupWare 群件,基于Internet的协作。
客户机/服务器体系结构的概念 “服务器”和“客户机”,主要是指计算机系统的逻辑过程而不是指物理过程 我们谈论服务器、客户机,关注的是一种计算系统的体系结构,而不是具体的实现方式。 所谓“服务器”、“客户机”,本质上是指两种进程——服务器进程,专门响应客户机要求的进程。
客户-服务器体系结构的特点 一个应用程序建模成一组服务,这组服务由服务器提供,并由客户机来使用(得到服务)。 客户机需要知道这些服务器的存在,但通常不知道其他客户机的存在。服务器知道所有的客户机的存在。 客户机和服务器是不同的过程。 一个服务器也可以是另一服务器的客户机
客户机/服务器体系结构示例 图11-2 客户机/服务器体系结构
从网络环境看客户机/服务器系统 一个物理模型——图11-2中逻辑模型的一个具体实现。 图11-3 客户机/服务器网络中的计算机
客户机/服务器系统的设计描述 反映系统需要满足的应用逻辑结构 三层结构 最简单的客户机/服务器体系结构 采用层次描述,如三层结构(图l1-4 )。 用层次表现分布——每一层分布到不同的机器上,各个层次之间有明显的界限。 三层结构 表示层——服务器将信息表达给用户,同时,接收来自用户的消息。即交互 应用处理层——服务器实现应用逻辑,即执行服务的任务。 数据管理层——按照客户机的请求,执行关于数据库的所有操作。 最简单的客户机/服务器体系结构 二层客户机/服务器结构
二层的客户机/服务器体系结构的 两种形态 1.瘦客户机 2.胖客户机 改善胖/瘦 ——所有的应用处理和数据管理都是在服务器上执行,客户机只是负责表示部分。 2.胖客户机 ——服务器只负责对数据的管理,客户机上的软件实现应用逻辑和与系统用户的交互。 改善胖/瘦 可下载的Java小程序,使客户机/服务器体系结构发生了变化——介于胖客户机和瘦客户机之间的体系结构
图11-5 瘦客户机和胖客户机
两层客户机/服务器结构的缺陷 两层客户机/服务器体系结构的软件环境
系统数据的完整性与安全性难以维护 客户机程序修改/配置困难 每一台客户机都必须安装数据库驱动程序,数据库由众多客户程序直接访问。 客户端组件含有数据库访问功能,对软件系统的业务逻辑、数据库访问,甚至数据库本身的任何修改常常导致要求在所有客户机上重新部署客户端组件。
二层的客户机/服务器的体系结构设计问题 物理上的两层系统——与逻辑上的三个层次,如何统一? 表示层映射在客户计算机上,应用处理层和数据管理层映射到服务器计算机上 图11-7 三层客户机/服务器体系结构
三层客户机/服务器体系结构的软件环境
例:三层C/S结构——网络银行 图11-8 因特网银行系统的分布体系结构
应用服务器的引入——软件体系结构的发展
Internet上的智能终端(客户机/服务器)设计
客户机/服务器
多层服务器——在系统中添加服务器 把三层的客户机/服务器模型扩展成多层结构 增加体系结构的伸缩性——适应应用处理的可变、易变性。 应用程序需要到不同的数据库中存取数据。 解决方案——在应用服务器和数据库服务器之间增加一个集成服务器——这个集成服务器收集分布式数据并将其送给应用程序。
三层的客户机/服务器软件体系结构的好处 逻辑分层 一机多用 易于扩展 是逻辑上的三层,并非一定是三台计算机系统连到网络上。 一个单一服务器计算机可以作为一个逻辑服务器,既能运行应用处理又能运行应用数据管理。 易于扩展 可以将应用处理和数据管理分开来放到不同的处理器上运行。 客户端组件可以从系统中分离出来,减少系统变化对客户端的影响。 中间层可以运行在一个中立的机器上(不同于客户机或数据库服务器)——合理的任务划分与物理部署——使整个系统的工作负载更趋均衡。
由多个服务器提供的服务
不同的客户机/服务器体系结构的使用 ( 表11-2) 应用程序 两层瘦客户机C/S体系结构 是一种遗留系统的应用程序,该应用程序将处理过程和数据管理分离是不切合实际的 以计算为主的应用程序如编译器,很少或根本没有数据管理;以数据为主的应用程序如浏览和查询,很少或根本没有应用程序处理 两层胖客户机C/S体系结构 处理部分是在客户机上由COTS(如微软的Excel)提供的应用程序 需要密集的数据处理(如数据可视化)的应用程序 具有比较稳定的最终用户功能且这些功能使用在良好的系统管理环境中的应用程序 三层或多层C/S体系结构 具有成百上干个客户机大规模的应用程序 数据和应用都是易变的一类应用程序 数据是在多处经过集成而得的一类应用程序
作业 分布式系统的重要特征。 分布式系统的缺点. 客户机/服务器体系结构分为哪三层?瘦客户机和胖客户机的区别是什么?