分布式系统架构与语言详解
1. 分布式系统基础
消息传递是分布式硬件系统(无共享内存)中自然的通信方式,可通过监视器或管道实现。像 occam 和 Ada 这类语言就是为物理分布式应用而开发的。消息交换会在事件间引入时间关系。
2. 网络架构与分层设计
计算机通信网络软件十分复杂,通常采用分层结构,各层是无环依赖的模块。
2.1 分层架构原理
网络被组织成一系列模块,每个模块有特定功能,依赖其他模块提供的服务,模块间存在严格层次关系,即上层模块仅使用下层模块的服务,这些模块在网络实现中被称为层。
分层网络架构的设计步骤如下:
1. 确定层数和相邻层之间的接口。
2. 每层功能由分布式算法实现,算法要解决由相邻层接口定义的问题。例如,(i - 1) / i 接口可能规定消息从节点 p 传输到节点 q 但可能丢失,而 i/(i + 1) 接口要求可靠传输,那么层 i 的算法问题就是用不可靠消息传递实现可靠消息传递,常用确认机制和重传丢失消息的方法。
3. 层 i 进程间交换的消息类型和含义由问题的解决方案确定,进程间“对话”的规则和约定称为层 i 协议。
最低层(图中的层 0)是硬件层,0/1 接口描述层 1 通过连接线路传输原始信息的过程,且层 0 实现的改变通常不影响 0/1 接口。层接口可屏蔽各层实现,使各层实现的改变不影响其他层。
网络架构指的是层的集合以及所有接口和协议的定义。由于网络节点可能来自不同制造商,使用不同公司的软件,所以产品兼容性很重要,为此开发了标准网络架构。
常见的网络协议如 TCP/IP 虽不是官方标