- 目的:资源共享与协同计算
- +分布式系统:仅通过交换消息而完成通信和协作的连接网络的计算机集合。
- 特点
- 并发
- 没有全局时钟
- 独立故障(一个进程的故障不会被别的进程知晓)
- ?+挑战
- 异质性
- 开放性
- 安全性
- 可扩展性
- 错误处理
- 并发性
- +透明性
- 并发透明性
- 拷贝透明性
- 故障透明性
- 性能透明性
- 移动透明性
- 规模透明性
- 服务质量
系统模型
物理模型
- 基线物理模型:联网计算机上的硬件和软件组分通过发送信息来完成联系和协作
三代分布式系统
| 早期 | 互联网级 | 现代 |
---|
规模 | 小 | 大 | 极大 |
异质性 | 有限 | 在平台、语言和中间件方面显著 | 在多个维度上产生了彻底不同的架构 |
开放性 | 不是重点 | 在一些标准中是重点 | 在现存标准中是主要的研究挑战,但是尚未能用于复杂系统 |
服务质量 | 早期 | 在一些标准中是重点 | 在现存标准中是主要的研究挑 战,但是尚未能用于复杂系统 |
架构模型
架构元素
- 通信实体:通常是进程;但是对于传感器网络为结点、对于一些环境为线程
- 通信范例
- 进程间通信:低级支持,通过IP协议的直接API访问
- 远程调用:支持双向交互,包括请求-回复协、原称过程调用,远程方法触发
- 间接沟通:通过组通信(广播和组播)、发布-订阅系统(基于事件)和消息队列完成沟通
- 角色和义务
- 放置
- 多服务器提供服务
- 代理服务器和缓存
- 移动端代码(小程序)
架构模式
- 分层:服务集合的纵向组织
- 平台:最底层,用于分布式系统和应用的软硬件层
- 中间件:一个软件层,掩盖异构性并为应用程序程序员提供方便的编程模型
- 垂直组织的分布式系统:UI-应用服务器-数据库服务器
- 横向组织
- 瘦客户端:提供最小的UI层,其他事情交给服务器
- 胖客户端:客户端包含应用逻辑和UI,服务器只负责权限控制和储存