分布式体系结构
Client1
Server1
Server2
客户端-服务器体系结构
客户端与服务器之间的通信模式
① 带回复的同步消息通信 ② 异步消息通信 ③ 带回调的异步消息通信 ④ 不带回复的同步通信 ⑤ 代理者模式 ⑥ 群组通信模式
分布式系统的设计目标
开放性 开放式系统
–符合标准协议(语法和语义规则) –例:IDL(接口定义语言)
特点:
–互操作性:不同系统可共同工作 –可移植性:应用程序可在不同系统上运行 –灵活性:可配置不同开发者的组件 –可扩展性:可增减组件
分布式系统的设计目标
可伸缩性(scalability) •指标:
Display process
Traffic light control processor
Light control process
Traffic flow sensors and cameras
Operator consoles
Traffic lights
层次型体系结构
•系统由自上而下的不同层次 的组件组成;
✓典型服务器包括文件服务器、数据库服务器、Web服务器
客户端
请求 1
服务器
OS内核
2
OS内核
响应
6.3 客户端-服务器体系结构
➢ 服务器与服务的区别
✓服务器是一个为多个客户端提供一个或多个服务的硬件/软件系统 ✓服务在客户端/服务器系统中是指一个满足多个客户端需要的应用
软件组件
6.3 客户端-服务器体系结构
瘦客户/胖服务器:用户接口简单,但后端负载重 胖客户/瘦服务器:能提高性能,但管理困难
客户端
服务器
47
客户端-服务器体系结构
瘦客户与胖客户模式
瘦客户(Thin-client model ) • 所有的应用处理和数据管理都在 服务器上执行。客户端只负责表 示部分(包括简单的交互逻辑); • 遗留系统可以发展成这种客户端 /服务器体系结构; • 主要缺点是它把繁重的处理负荷 都放在了服务器和网络上。
Client3
客户端-服务器体系结构
多客户端 / 多服务器体系结构模式
Server1
Server2
《local area network》
Client1
Client2
Client3
客户端-服务器体系结构
多层客户端 / 服务器体系结构模式
➢ 存在既扮演客户端又扮演服务器的中间层 ➢ Server1既是Client1的服务器,又是Server2的客户端
统)实现 • 例如,基于Web的分布式系统,组件使用共享的基于Web的数据服务
36
以事件为中心的体系结构
• 组件间的通信,通过事件(可带有数据)的传播实现;
• 例如,发布/订阅(publish/subscribe)系统
• RabbitMQ(MQ:消息队列) • Apache Kafka
组件
组件
组件
第6章 分布式体系结构
软件工程系
软件复用与组件开发
本章内容
分布式系统概述 分布式系统体系结构 客户端-服务器体系结构
➢ 瘦客户与胖客户模式 分层架构 Memcached Redis
6.1 分布式系统概述
“一个分布式系统是若干个独立的计算机的集合,但是对该系统的用 户来说,感觉该系统就像一台计算机一样。”
➢ 通用即插即用 (UPnP)标准
➢ 个人数据空间 (data space )管理
27
分布式普适系统
电子保健系统
➢ 人体局域网 ➢ 可穿戴设备
28
物联网
人体局域网
➢ 网络内数据处理
29
物联网
无线传感器网络
➢ 计算能力有限 ➢ 通信能力有限
电能有限
30
本章内容
分布式系统概述 分布式系统体系结构 客户端-服务器体系结构
客户端-服务器体系结构
➢ 提供服务的服务器和使用服务的客户端被区别对待——非对称 ➢ 一个应用程序建模成一组服务(含义及形式?),由服务器提供,
并由客户端来使用 ➢ 客户端要知道服务器的存在,但不需要知道其他客户端的存在 ➢ 客户端和服务器是逻辑过程 ➢ 进程和处理器之间没有
必要非得1:1映射
客户端-服务器体系结构
➢ 资源:服务器、存储 、数据库等
应用层
汇集层
连接层
资源层
光纤层
资源
22
分布式计算系统
计算机网格系统
➢ 光纤层:资源的接口 ➢ 连接层:通信协议 ➢ 资源层:管理单个资源 ➢ 汇集层:对多个资源的访问 ➢ 应用层:虚拟组织的应用程
序 ➢ 面向服务的体系结构(SOA) ➢ 开放式网格服务体系结构(
OGSA)
分布式系统的类型
根据分布式系统的应用类型,可划分出3种分布式系统
➢ 分布式计算系统:高性能科学计算 ➢ 分布式信息系统:信息管理和事务处理 ➢ 分布式普式系统:嵌入式应用
分布式计算系统
计算机集群系统
➢ 主节点:管理节点
➢ 从节点:计算节点
主节点
子节点
管理 程序
并行组件库
并行应用 程序
...
并行组件库
集中式系统
集中式系统
IBM BlueGene/L (207 TFLOPS = 2.07x1014 FLOPS)
7
网格计算
Internet
P2P计算
• 对等的、自主的实 体构成的自组织系 统,以共享分布资 源的使用
• CPU 共享: SETI@Home
• 存储空间(文件) 共享: Napster, Gnutella, Freenet等
层次型体系结构
用户接口层、处理层、数据层 例:搜索引擎
41
三层体系结构举例
用户 接口
应用 服务器
数据库 服务器
时间
42
本章内容
分布式系统概述 分布式系统体系结构 客户端-服务器体系结构
➢ 瘦客户与胖客户模式 分层架构
6.3 客户端-服务器体系结构
➢ 客户端(Client):服务的请求者 ➢ 服务器(Server):服务的提供者
客户端-服务器体系结构
客户端-服务器体系结构的种类:
➢ 多客户端 / 单服务器体系结构模式 ➢ 多客户端 /多服务器体系结构模式 ➢ 多层客户端 /服务器体系结构模式
客户端-服务器体系结构
多客户端 / 单服务器体系结构模式
Server
《local area network》
Client1
Client2
企业应用集成(EAI)
➢ 应用程序之间的互操作 ➢ 通信中间件:RPC、RMI、MOM(Message Oriented Middleware)
等
客户
通
服务器端
应用程序
DB
应用程序
信
客户 应用程序
中 间 件
服务器端
应用程序
DB
服务器端
应用程序
DB
26
物联网
智能家庭系统
➢ 家庭网络,连 接所有家用电 器等设备
硬件 松耦合
紧耦合
分布式OS 多机OS
中间件系统 网络OS
多处理机OS
紧耦合
松耦合
软件
分布式系统的设计目标
透明性(Transparency)
① 访问透明性:用户不必知道数据表示和访问方法 ② 位置透明性:用户不必知道资源位于何处 ③ 迁移透明性:资源可以不改名,而随意移动 ④ 重定位透明性:资源可在使用中移动 ⑤ 复制透明性:用户不必知道有多少个备份存在 ⑥ 并发透明性:多个用户可以自动地共享资源 ⑦ 故障透明性:用户不必了解故障恢复处理
本地 操作系统
本地 操作系统
子节点
并行应用 程序
并行组件库
本地 操作系统
20
分布式计算系统
计算机集群系统
➢ 管理程序:系统管理和配置、作业管理 ➢ 并行组件库:基于消息的通信工具 ➢ 本地操作系统:标准的通用OS ➢ 并行应用程序:并行执行的应用程序
21
分布式计算系统
计算机网格系统
➢ 虚拟组织:逻辑上统 一的一组人或机构
➢ 嵌入式系统:运行于单处理器或一组处理器上; ➢ 分布式系统:系统软件运行在通过网络相连的一组松散的集成在一
起的处理器上。
分布式体系结构简介
分布式体系结构特征
① 资源共享 (Resource sharing) ② 开放性 (Openness) ③ 并发性 (Concurrency) ④ 可伸缩性 ( Scalability) ⑤ 容错性 (Fault tolerance ) ⑥ 透明性 (Transparency) ⑦ 复杂性 (Complexity ) ⑧ 保密性 (Security) ⑨ 不易管理 (Unmanageability) ⑩ 不可预见性 (Unpredictability )
32
多处理器体系结构
最简单的分布式系统模型 系统有多个进程组成,这些进程可以但不是必须在不同的处理器上运行 用于许多大型实时系统中 对进程在处理器上的分布可以预先排序也可以由分配器动态分配
Sensor processor
Sensor control process
Traffic flow processor
• 硬件方面:每台计算机都是独立、自主的计算机 • 软件方面:用户感觉在独占系统
分布式系统概念
从集中式系统到分布式系统
– 高性能微型计算机(PC)的普及 – 高速计算机网络(LAN、WAN)的普及
分布式系统概念
应用举例 ➢ 银行网银系统 ➢ 连锁店“供应链”系统 ➢ 传感器网络(Sensor Network)系统 ➢ 企业“工作流”系统 ➢ WWW系统 ➢…