本章提供三个重要且互补的解释方法,一遍有效的描述讨论分布式系统设计:
- 物理模型
- 体系结构模型
- 基础模型
在分布式系统中没有全局时间, 进程间完全通过消息传递信息, 当网络延时时, 会严重影响到系统的效率, 以及发生故障, 对安全性脆弱. 这些问题通过一下模型进行讨论; 1. 交互模型 2. 故障模型 3. 安全模型
2.1 简介¶
物理模型
在实际环境中的系统应该在各种可能的环境下,对各种潜在的威胁时,保证其功能的正确性。 本章以描述性模型的形式给出分布式系统公共特性和设计问题。
是描述一个系统最显示的方法,它从计算机设备电话以及互联网方面考虑系统的硬件组成
体系模型
从系统的计算元素执行的计算和通信任务方面来描述系统
基础模型
采用抽象的观点描述分布式系统的某个方面。例如交互模型,故障模型,安全模型等
2.2 物理模型¶
物理模型是从计算机和所用网络技术的特定细节中抽象出来的分布式系统地城硬件元素的表示;
基线物理模型
分布式中最小的物理模型, 最小物理模型是一组可扩展的计算机节点,这些节点通过计算机网络进行所需的信息传递;
早期的的分布式系统
随着局域网的成熟, 这些系统一般由10~100个节点组成, 它们以互联网的形式连接,并支持少量的服务(例如打印机\文件服务器\邮件服务器等);
它们大部分是同构的,开放性不是问题. 服务质量提供还很少, 早起是问绕着这样的环境作为焦点讨论的;
互联网规模的分布式系统
通过一个网络的网络进行(互联网)进行连接. 最终实现全球化.
它包含了大量的节点, 并且为全球化组织提供分布式系统服务, 也跨组织提供分布式系统服务.
网络、计算机、操作系统、语言、开发团队等方面来说,会有很大的异构性。导致开放的标准和相关中间件不断地增加;
当代的分布式系统
当代的分布式系统更加灵活自治,比如笔记本电脑、手机、移动设备。 洗衣机、电灯、冰箱、智能门铃等; 云计算提供的给定服务,不如AI、搜索各种定制服务;
从而得到一个异构性很大的物理体系机构;这些系统不断地增加不同的网络技术,不提供广泛的应用和服务。这样的系统设计成百上千个节点;
系统的分布式系统¶
我们把这样的系统称之为李东的系统(反应了互联网开成网络的网络的观点); 系统的系统可以被定义为一个复杂的系统,它是由一系列子系统组成的。这些子系统本身也是一个系统;他们一起完成一个或多个任务;
ps: 可以想象为米家, 有手机终端、智能设备(智能门铃、智能灯等)、有服务器统一调度、有局域网本地控制等,还有各类网关支撑局域网之间的快速的信息传递;
| 分布式系统 | 早期 | 互联网规模 | 当代 |
|---|---|---|---|
| 规模 | 小 | 大 | 超大 |
| 异构性 | 有限(同构) | 平台、语言、中间件不都一样 | 维度增大,体系机构完全不同 |
| 开放性 | 不考虑 | 引入各种标准 | 主要挑战 |
| 服务质量 | 初步 | 引入各种服务 | 主要挑战 |
2.3体系结构模型¶
一个系统的体系结构是用独立指定的组件以及这些组件之间的关系来表示的结构。
主要关心 系统可靠性、可管理性、适应性、可靠性
本节主要描述分布式系统的采用的体系结构模型,即分布式系统的体系结构风格;
- 客户-服务模型 (cs)
- 对等法
- 分布式对象
- 分布式组件
- 分布式事件
从三个阶段来讲述 1. 基本元素 2. 单独使用、组合使用、复合使用 3. 中间件平台
2.3.1 体系结构元素¶
- 什么是通信实体?
- 使用什么通信范型?
- 扮演的角色与责任!
- 应用在何处?
通信实体¶
- 对象
- 一个计算由若干个对象组成,对象通过接口(规约)访问。分布式对象已经成为分布式系统研究的主要领域。
- 组件
- 组件类似于对象,它提供了面向问题的抽象,也是通过接口(规约)访问。组件使所有依赖现实化,为系统提供完整的合约,这种合约的方法鼓励和促进第三方开发组件。
- 常见的就是组件就是中间件;
- web服务
- 是重要的范式,也采用了行为封装和通过接口方位的方法,但是它有web标准和发现服务,web的本质是集成在万维网上的。
- 他可以组合起来获得增值服务,他们经常跨组织边界,可以实现业务到业务之间的集成;
通信范式¶
三种通信范式: 1. 进程通信 - 系统之间进程的通信,例如套节字通信 2. 远程调用 - 请求应答, 例如http; - 远程过程调用,例如RPC; - 远程方法调用, 例如RMI; 3. 间接通信 - 发布订阅系统 - 消息队列 - 元组空间 - 分布式共享内存