第一章 概论
分布计算系统的定义
分布式计算系统是由多个相互连接的计算机组成的一个整体,这些计算机在一组系统软件环境下,合作执行一个共同的或不同的任务,最少依赖于集中的控制过程、数据和硬件。
分布式计算系统的要求:
开放性:开放性是指能否用各种方法进行扩展和重新实现。分布式计算系统是由来自不同厂商的异构硬件和软件组成,它的开放性应该是基于统一的通信协议,遵循公开的访问共享资源的标准化接口。
可扩展性:可扩展性指一个系统在资源数量和用户数量增加时仍能有效工作,如Internet。挑战:控制物理资源成本、控制性能损失、防止资源耗尽(IPv4地址)、避免性能瓶颈
异构性:异构表现在:异构 络、异构计算机硬件、异构操作系统、异构程序设计语言、不同开发商的实现;隐蔽异构性的方法:中间件技术、虚拟化技术
透明性:向用户和应用程序隐藏分布式计算系统部件的差异,系统被认为是一个整体,而不是独立部件的集合。透明性是分布式系统软件设计的主要考虑因素。
安全性:基于开放环境下的分布式计算系统应有安全措施。常常采用下列安全措施:身份认证技术、消息加密技术、访问控制技术
同构多计算机系统、异构多计算机系统的概念
同构:
基于总线的多计算机系统:
规模较小,采用高速以太 或Myrinet 互连多个工作站,称为工作站集群COW(Cluster Of Workstations);没有专门措施来保证高速的I/O带宽,也没有专门的故障防护措施;价格低廉、易于使用。
基于交换的多计算机系统:
规模很大,通常有几千个节点,称为大规模并行处理机MPP(Massively Parallel Processor)系统;是并行高性能计算机的主要结构。
异构:
多数分布式计算系统是建立在异构多计算机系统之上。组成异构多计算机的节点可能有着很大的差异,表现在处理机类型、存储器容量大小、I/O带宽以及操作系统等方面。有的节点本身就可能是多处理机系统、集群或并行高性能计算机。异构多计算机系统节点间是通过互联 络,如Internet,连接起来的。
中间件的概念(地位)
中间件是一种软件层,它提供程序设计的抽象,掩盖底下 络、硬件、操作系统和程序设计语言的差别,隐藏底层平台的异构性。大多数中间件是在Internet协议之上,主要处理操作系统和硬件的差别。中间件还提供一个统一的计算模型,为服务器和分布式应用程序的开发者所用。
基于中间件分布式系统的软件层次
中间件的服务
命名服务 作业调度 资源管理 数据持久化 分布式事务 分布式文档系统 安全服务
分布式计算的四种模式
面向对象模式OOM:OOM( Object Oriented Model)是基于客户/服务器模型(如CORBA,DCOM)
面向服务模式SOM :也是基于客户/服务器模型,但服务是动态的。Web Service是这种面向服务模式的一个实例 ,SOA是一个较完整的软件结构体系。
公用计算模式UBM:支持e-科学的计算(如 格Grid等)。
志愿参与模式VJM:充分利用 上空闲的计算能力,支持计算量巨大的科学计算。
第二章 名字服务
什么是实体,实体的名字和属性
实体在一个计算机系统中是指范围广泛的事物,包括计算机主机、外围设备、进程、数据、文件、数据库、服务、服务器和用户等。在计算机中称呼实体有很多方法,包括名字、地址和标识符等。
名字 :实体的名字是一个用户可读的、便于记忆的字符串。
属性:一个实体有若干属性,用属性对<类型-值>表示。通过属性可以找到实体。
名字服务的类型
(1)名字服务 名字数据库是命名实体与其地址绑定的集合。名字服务是根据实体的名字查找它的 地址,俗称白页服务。如Internet的域名服务DNS、CORBA的命名服务。 (2)目录服务 目录数据库是命名实体与其一个或多个属性绑定的集合,属性包括属性类型和一个 或多个属性值。目录服务既可以根据实体的名字查找实体的属性,当不知道实体名 时也可以根据实体的一个或多个属性及其值查找并得到一个匹配这些属性的实体列 表。俗称黄页服务。如X.500目录服务。 (3)合约服务 一种增强的目录服务,它通过技术规范来定位一个命名实体,也称绿页服务。如 Web服务。
什么是名字空间、名字图
命名系统的名字集合构成该命名域的名字空间。
名字图是一个DAG图
什么是挂接与挂载
名字空间也可以将外部名字空间的一部分或者全部挂载到本名字空间的某个目录节点上,这个目录节点称为挂接点。外部名字空间中被挂接的子目录树的目录节点称为输出点,或挂载点。
挂载外部空间需要: 访问协议的名称 服务器的名称 外部名称空间中挂载点的名称
名字服务器的组成及各部分的功能
名字空间由名字服务器实现与管理。名字服务器主要由数据库和名字解析软件组成,数据库实现实体名和地址的绑定,及其他信息,称为名字解析上下文。
具体组成:
名字服务器操作 :上下文管理、查询操作和行政管理。增加、删除和修改上下文的目录项。访问优先权。
名字解析 :根据名字解析请求,得到被解析对象地址。
缓存 :缓存名字查询和解析的结果。
多副本管理 :副本修改和副本一致性维护。
通信 :客户端的名字代理通信,名字服务器之间通信
数据库 :存放名字解析上下文或其子域。
迭代名称解析和递归名称解析的工作原理
迭代:
递归:
比较:递归名字解释缺陷是要求名字服务器具有较高的性能,优点是递归名字解释中各名字服务器解析的缓存结果实验更为有效。
X.500的目录信息树
X.500的命名实体称为对象。目录信息树的每个节点表示一个目录项,一个目录项表示一个被命名对象。
目录服务组件
目录信息库DIB(Directory Information Base)
目录系统代理DSA(Directory System Agents)
目录用户代理DUA(Directory User Agents)
目录管理域DMD(Directory Management Domain)
目录服务操作
目录查询:为客户提供目录查询服务,向客户提供目录信息
镜像操作绑定:设置多副本,提高目录服务的性能与可用性
层次操作绑定:在DSA之间建立层次关系
目录服务协议
目录访问协议DAP:
绑定(Bind) 去绑定(Unbind) 读(Read) 比较(Compare) 列表(List) 搜索(Search) 撤销(Abandon) 增加目录项(Add Entity) 取消目录项(Remove Entity) 修改目录项(Modify Entity) 更改可区分名(Modify DN)
目录系统协议DSP:
与目录访问协议操作一一对应,两个DSA之间的请求/响应,可能经历多个DSA,形成DSA链,因此DSP中包含其他信息:访问者身份认证信息、跟踪信息,防止环路、请求返回交叉引用信息,优化目录服务
目录信息镜像协议DISP:
绑定(Bind) 去绑定(Unbind) 合约镜像修改(Coordinate Shadow Update) 请求镜像修改(Request Shadow Update) 修改镜像(Update Shadow)
目录操作绑定管理协议:
绑定(Bind) 去绑定(Unbind) 建立操作绑定(Establish Operational Binding) 修改操作绑定(Modify Operational Binding) 终止操作绑定(Terminate Operational Binding)
轻量目录访问协议LDAP模型的概念与基本原理
在LDAP模型中,LDAP客户使用LDAP对LDAP服务器发出服务请求。LDAP服务器对目录执行指定的操作活动,然后向客户 告结果。LDAP服务器自行处理目录服务器DSA送来的转交,只向客户返回正确的查询结果或错误消息,不再返回转交。
LDAP模型有两种实现方法:LDAP服务器是一个独立的实体,用目录服务器提供的接口请求目录服务器执行查询操作(a);或者LDAP服务器就是目录服务器的一个组成部分(b)
第三章 分布式进程
远程进程执行的逻辑机模型
两个部件:客户节点、远程服务器节点
客户机上的代理进程负责远程服务节点进程执行的初始化,远程服务节点执行客户机赋予的进程
远程进程必须能访问驻留在源计算机上的文件系统。 远程进程能接收逻辑机内任何进程发来的信 ,也能将信 提供给逻辑机内任何进程。 进程组保持在逻辑机内。 基于树型的进程父子关系在逻辑机内必须得以保持。
REXEC的组织结构及执行过程
结构:
rexecd :运行在集群各节点上的守护进程。
rexec:客户进程,用户用来在REXEC上执行作业。它有两个功能:根据用户要求(如轻CPU负载)选择节点;通过SSL加密的与远程服务节点的rexecd直接连接TCP,实现在远程服务节点上执行用户进程。
vexecd:是一个多副本的守护进程,提供远程服务节点发现和选择功能。它不断地获得各远程节点的状态信息,其作用类似于资源管理器。
执行过程:
用户本地运行环境由rexec中的node线程打包发送,由rexecd中的rexec线程在用户作业派生(Forking)之后和执行之前接收,并在远程服务节点上重建。
本地信 (signal)和stdin是由rexec的signal线程和stdin线程转发到远程服务节点rexecd的stdin/sig线程,然后使用signal和UNIX管道将它们分发给该服务节点上的远程应用程序。
远程stdout和stderr转发由rexecd的stdout线程和stderr线程通过UNIX管道将远程服务节点的stdout和stderr转发到rexec的node线程。
由本地作业控制实现对远程作业进程的控制,远程执行透明性。
进程迁移的概念
进程迁移是将一个正在运行的进程挂起,它的状态从源处理机节点转移到目标处理机节点,并在目标处理机上恢复该进程运行。
进程迁移具有灵活且应用广泛的优点,支持动态负载平衡、系统容错、高效使用本地资源等诸多系统功能。进程迁移的缺点是运行开销相对较大。
进程迁移被分解成两部分的工作:
1、在源处理机采集迁移进程的进程状态并转移到目的处理机,根据进程状态在目的处理机重建迁移进程,使之从断点处继续运行。
2、通知与迁移进程有通信关系的其他进程,并协助它们重建正确的通信连接。
进程迁移步骤
1、迁移协商,询问目标处理机是否可以接受迁移进程 ;
2、创建恢复进程,得到目标处理机的肯定答复后,在目标处理机上创建恢复进程 ;
3、中断迁移进程的运行;
4、在源处理机上收集迁移进程状态 ;
5、将迁移进程状态传输到目标处理机;
6、恢复被迁移状态,目标处理机上的恢复进程负责恢复迁移进程状态,重建进程实例;
7、通知被迁移进程的新位置,通知系统内其它进程迁移进程的新位置,并重建迁移中断前的通信连接;
8、迁移进程在目标节点恢复运行;
9、操作转发,利用转发机制(或利用单一系统映像的性质)保证进程可以在远程处理机透明执行。
进程迁移过程中如何保证消息不丢失
消息驱赶方法:将所有中途消息驱赶到目标进程之后,再进行进程迁移过程,并保证在迁移过程中不再发送任何“中途消息”
消息转发方法:进程迁移后,被迁移进程旧实例不中断,中途消息仍然发送到旧地址,由被迁移进程旧实例将消息转发到被迁移进程的新地址。
进程迁移过程中如何维护消息的正确顺序
长消息分片,确保分片的顺序: 增加标志信息 原子通信
不同消息的先后顺序: 消息附加消息序 采用特定机制保证处于迁移临界区消息的正确顺序
进程迁移的几种算法
异步迁移算法
同步迁移算法
类异步迁移算法
第四章 分布式系统通信
消息传送模式中的两个基本原语
send:
至少给出一个要发送的消息体M和消息接收进程的标识符destination_ID,消息体在存储单元x中,x = M,发送原语格式如下:send(&x, destination_ID)
receive:
至少给出一个要接收的消息体M和消息发送进程的标识符source_ID,消息体要存入存储单元y中,y =M,接收原语格式如下:receive(&y, source_ID)
一个消息包括:接收进程标识符、消息体M,发送进程标识符。 消息={destination_ID, M, source_ID}
消息传送的三种模式,及其对比
同步消息传送 :
当进程P执行同步发送原语send,将消息从S发送给进程Q时,它必须等待,直到进程Q执行一条对应的同步接收原语receive,将消息从进程P接收到R。进程Q执行接收原语后也必须等待进程P发送消息。
阻塞发送/接收 :
当进程到达发送原语时执行一次阻塞发送,无需等待对应的接收。在消息从S安全写入发送缓冲区前,发送进程不能返回。 当进程到达接收原语时执行一次阻塞接收,无需等待对应的发送。然而,消息从缓冲区接收到R之前,接收进程不会返回。 系统要为阻塞模式消息传送提供临时的缓冲区。
非阻塞发送/接收 :
当进程到达发送原语时执行一次非阻塞发送,无需等待对应的接收。只要通知操作系统有一个消息要发送,发送进程就可以返回。 当进程到达接收原语时执行一次非阻塞接收,无须等待对应的发送。只要通知操作系统有一个消息要接收,接收进程就可以返回了。 系统要为非阻塞消息传送提供临时的缓冲区。
比较:
通信事件 | 同步消息传送 | 阻塞发送/接收 | 非阻塞发送/接收 |
---|---|---|---|
发送启动条件 | 发送接收原语双方均达到 | 发送原语达到 | 发送原语达到 |
发送返回指示 | 消息被接收 | 消息已发送 | 消息发送启动 |
语义 | 清晰 | 居中 | 易出错 |
缓冲消息 | 不需要 | 需要 | 需要 |
状态检查 | 不需要 | 不需要 | 需要 |
等待开销 | 高 | 居中 | 低 |
通信与计算重叠 | 不能 | 能 | 能 |
可靠多播通信中,解决反馈拥塞的方法
不分层反馈抑制
分层反馈抑制
RPC的概念
允许程序调用其他机器上进程
机器A调用机器B上进程时,A调用进程挂起,而B上被调用进程开始执行,调用方将参数传到被调用进程,得到回传结果。
问题: 不同地址空间执行 传参数和结果 双方可能发生的故障等
RPC执行过程
client应用程序正常调用client stub
client stub构造消息,通过trap进入操作系统内核
内核将消息发送到server的操作系统内核
Server内核将消息交给server stub
server stub将消息解包,用相应参数调用服务例程
服务例程进行计算,将结果返回server stub
server stub 构造消息,通过trap进入内核
内核将消息发送到client的核心
Client内核接收消息并将它交给相应stub
stub解包,将调用结果返回应用程序
RPC语义
客户机不能定位服务器:客户桩返回“找不到服务器”异常,或设置“找不到服务器”标志。
请求消息丢失:计时器机制,超时则触发中断,重发请求,多次超时则放弃调用。
应答消息丢失:计时器机制,需判断服务器操作是否幂等。
服务器崩溃:
至少一次语义 (重发请求 ) 至多一次语义 (立即放弃并 告失败) 不做任何保证 精确一次
客户崩溃:
清剿(Extermination) 转世(Reincarnation) 温和转世(Gentle Reincarnation) 期满(Expiration)
第五章 分布式系统同步
什么是逻辑时钟,Lamport时间戳和向量时间戳
逻辑时钟(logical clock):
计算机内部各时钟一致,而不是是否与真实时间接近 更进一步,只需跟踪事件的顺序
Lamport时间戳:
向量时间戳
选举算法
许多分布式算法需要一个进程充当协调者,发起者,排序者或其他特定的角色。 通过选举,做出统一决定。选取全局唯一编 最大者作为协调者。常用的选举算法有环算法、欺负算法
环算法(略)
欺负算法:
互斥算法
当一个进程必须读或修改某些共享数据结构时,它首先进入临界区获得互斥锁,保证没有其他进程使用该结构。
集中式互斥算法:
选一个进程为协调者。无论什么时候进程要访问资源,它将向协调者发送请求信息,说明它想访问那个并希望获得允许。如果当前该资源没有分配给其他任何进程,协调者就发送允许信息,当应答到达时,请求者就可以占用该资源
分布式互斥算法(基于时间戳):
Lamport算法:
1、Pi 资源请求消息Request(Ti :P i)发送
2、Pj收到Request(T i:P i),按T顺序置于其消息队列,如果没有资源请求或请求时间晚于收到消息的时间戳,回应Reply(T j:P j)
3、Pi被批准使用临界资源条件:有请求,且Ti最小(消息全定序);Pi接收了所有晚于Ti的消息(包括应答)
4、Pi释放临界资源,删除(Ti :P i),发送Release(T j+1:Pi)
5、Pj收到Release后,删除(Ti :P i)
开销:3(N-1)
Ricart_Agrawala算法:
1、Pi 资源请求消息Request(Ti :Pi)发送
2、Pj收到Request(Ti:Pi),按T顺序置于其消息队列 (1)如果没有资源请求或请求时间晚于收到消息的时间戳,回应Reply(Tj:Pj); 否则推迟返回应答消息 (2)进程从临界区退出,向需要请请求资源的进程补发应答消息
3、请求进程从竞争进程得到应答小Reply(Tj:Pj),便可进入临界区
开销:2(N-1)
第八章 多副本一致性与DSM
多副本的目的
为了提高系统的可靠性和性能
提高系统容错能力
提高系统效率
增强系统可扩展性
一致性模型
数据为中心的一致性模型
严格一致性:
顺序一致性:
因果一致性:
FIFO一致性:
弱一致性:
释放一致性:
入口一致性:
客户为中心的一致性模型
单调读:
单调写:
写后读:
读后写:
第九章 分布式文件系统
NFS体系结构
第十一章 面向对象的分布计算
RMI体系结构及其工作流程
远程方法调用RMI(Remote Method Invocation)是Java特有的分布式计算技术。它实质上是通过Java编程语言扩展了常规的过程调用,在 络上不仅可以传送对象的数据,而且可以传送对象的代码。
体系结构:
工作流程:
远程对象注册与名字绑定
客户按名字查找远程对象
注册器返回远程对象接口
客户从codebase请求stub类
http服务器返回远程对象的stub类
RMI与RPC的关系与区别
RPC是一种通过 络从远程计算机程序上请求服务,而不需要了解底层 络技术的协议,RMI是RPC模型的面向对象实现,支持java语言,是一种服务框架。
调用方式不同:RMI在客户端通过stub向服务端进行远程接口调用,服务端的接口对客户端必须是可知的,不能调用不可知的服务;RPC通过 络协议向服务端发送了一个文本和参数集合,服务端匹配到对应的服务就会返回结果。
返回结果不同:RMI返回的是java对象,RPC返回的是统一外部数据表示。
CORBA的概念和体系结构,接口的类型和作用
公共对象请求代理结构(CORBA)是OMG为解决分布式计算环境制定的一组协议标准,目的是允许分布式对象在异构环境下互操作,对象可用不同的编程语言实现,部署在不同的平台上。
体系结构:ORB核心、OMG接口定义语言(IDL)及其映射、接口库(IR)、接口代理与骨架、动态调用接口(DII)与动态骨架接口(DSI)、可移植对象适配器(POA)和ORB互操作协议(IIOP)。
ORB接口:直接为应用程序使用的本地服务接口
对象适配器接口:POA的作用是连接对象实现和ORB。
接口定义语言(IDL)和静态接口:客户用ORB携带的IDL编译器,编译对象接口IDL文件,生成特定编程语言的Stub和Skeleton代码。
动态调用接口:在预先不知道服务对象接口的情况下,客户通过查询或采用其他手段获得服务对象的接口描述信息,然后使用动态调用接口(DII)来构造客户请求,并发送给对象实现。
第十二章 面向服务的分布计算
XML基本原理与概念
扩展标记语言XML的设计宗旨是传输和存储数据,方便实现不同平台和不同应用程序设计语言之间交换数据,其关注点是数据的内容。XML是“不作为”的,除了存储和传输信息外不会做其他任何事情。
XML文档组成: 元素和相关属性 语法规则:必须有根元素;正确嵌套;元素必须有结束符
第一行声明是XML文档、采用的版本和编码。第二行是引用外部文档类型定义,从元素<bookstore>开始是文档体
Web Service中WSDL的概念
web服务描述语言。WSDL文档是在web服务开发时,随着web服务由开发平台和工具自动生成的。用于描述某个Web service,规定了服务的位置,服务提供的操作或方法,使用xml编写的文档。
SOAP的基本概念和工作原理
SOAP是基于XML的一种通信协议,SOAP由HTTP承载,是一个HTTP请求/响应,可以是POST或GET请求
信封元素<soap: Envelope>:标明XML文档是一个SOAP消息,该元素是必需的。
头部元素soap:Header:包含应用特定的消息,如认证、支付等。该元素是可选的,如果有头部元素,它必须是信封元素的第一个子元素。
体元素<soap: Body>:是消息的内容,包含调用消息或响应消息。该元素是必需的。
故障元素<soap: Fault>:包含错误和状态消息,该元素是可选的,出现在体元素中。
消息的基本结构 :
Web Service中UDDI的基本概念和商业注册中心类型
UDDI是Web服务提供者和消费者之间的接洽点。对web服务提供者来讲,UDDI是一个注册服务器,通过它向Internet上的用户发布它的web服务。对web服务请求者来讲,UDDI是一个目录服务器,通过它请求者可以发现和找到他需要的web服务。
UDDI所提供的信息可分为三个部分 白页:企业相关的基本信息,包括企业名称、经营范围、地址等等 黄页:依据标准分类法区分不同的行业类别,使得企业能够找到在注册中心注册的企业或Web服务 绿页:包括所提供的Web服务的技术信息,其形式可能是一些指向文件或是URL的指针,其存在是以便于Web服务被找到
注册中心是企业实体公开注册节点的联合体。因为企业实体是自愿提供Web服务,很难建立各企业实体共用的注册中心。注册中心是各企业实体公开注册节点构建的对等 P2P。
第十三章 公有服务式分布计算
云计算的概念和其关键技术和服务,SaaS、PaaS、laaS。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树 络编程 络编程基础91528 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!