《分布式环境》chapter2-分布式系统的基本原理课件_第1页
《分布式环境》chapter2-分布式系统的基本原理课件_第2页
《分布式环境》chapter2-分布式系统的基本原理课件_第3页
《分布式环境》chapter2-分布式系统的基本原理课件_第4页
《分布式环境》chapter2-分布式系统的基本原理课件_第5页
已阅读5页,还剩146页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布计算环境2014.9

Chapter2

分布式系统的基本原理主要内容体系结构进程通信命名一致性和复制

主要内容体系结构

进程通信命名一致性和复制

体系结构主要内容什么是体系结构体系结构样式系统体系结构体系结构与中间件引言分布式系统往往是由各种复杂的系统组成,其组件按照定义分散在多台机器中。要掌握这些复杂性,关键是恰当地组织好这些系统,分析其结构软件体系结构告诉我们不同的软件组件在逻辑上是如何组织的,它们之间是如何相互作用的。当我们把系统的各个软件组件部署到各个物理机器上时,同一系统可以有不同的部署方式,而软件体系结构部署后的最终实例称为系统体系结构。体系结构主要内容什么是体系结构体系结构样式系统体系结构体系结构与中间件什么是软件体系结构定义1:软件体系结构(软件架构)是具有一定形式的结构化元素,即:组件的集合,包括:处理组件、数据组件和连接组件。处理组件负责对数据进行加工,数据组件是被加工的信息,连接组件把体系结构的不同部分组合连接起来。组件:是一个模块单元,它具有并且可以提供良好定义的接口,在其环境中是可替换的。连接组件(连接件):描述为一种机制,在组件之间传递通信、使组件相互协调和协作。什么是软件体系结构(2)定义2:软件体系结构(软件架构)为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素(组件)的描述、这些元素(组件)的相互作用、指导元素(组件)集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。体系结构主要内容什么是体系结构体系结构样式系统体系结构体系结构与中间件什么是软件体系结构样式定义1:软件体系结构样式(Style,风格)是描述某一特定应用领域中系统组织方式的惯用模式。它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构建系统的规则。分布式系统体系结构样式1、分层体系结构2、对象的体系结构3、以数据为中心的体系结构4、基于事件的体系结构分层体系结构层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。系统中组件在一些层实现了虚拟机连接件通过决定层间如何交互的协议来定义拓扑约束包括对相邻层间交互的约束第N层第N-1层第2层第1层数据抽象和面向对象的体系结构抽象数据类型概念对软件系统有着重要作用,这种样式建立在数据抽象和面向对象的基础上。数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的组件是对象,或者说是抽象数据类型的实例与“客户-服务器”结构很相似。以数据为核心的体系结构组件间的通信,通过基于一个公用的存储(如共享的分布式文件系统)实现例如,基于Web的分布式系统,组件使用共享的基于Web的数据服务共享数据空间组件组件组件组件组件组件主动仓库式(黑板式)以事件为中心的体系结构组件间的通信,通过事件(可带有数据)的传播实现;如:发布/订阅(publish/subscribe)系统:松耦合与以数据为中心的体系结构组合构成的共享数据空间样式

组件组件传送发布事件总线组件组件组件共享(持久)的数据空间传送发布体系结构主要内容什么是体系结构体系结构样式系统体系结构体系结构与中间件系统体系结构系统体系结构:软件体系结构的具体实例。确定了软件组件、这些组件的交互以及它们的位置(部署)就是软件体系结构的一个实例。主要讨论 1、集中式体系结构 2、非集中式体系结构 3、混合体系结构集中式体系结构顾名思义,服务功能集中在服务器侧。客户/服务器体系结构服务器:实现特定服务的进程客户:向服务器提出请求、等待答复的进程请求/答复模式请求响应客户服务器等待集中式的层次例:搜索引擎各种各样的分层方式如何分层取决于应用系统的具体情况非集中式体系结构多层客户-服务器结构---垂直分布性将不同功能组件放在不同的机器上有助于功能可以从逻辑、物理上分割在多台机器上,每台机器按特定功能定制另一种体系结构---水平分布性在物理上被分割成逻辑相等的几个部分每个部分都处理整个数据集中自己共享的部分进一步地:对称、点对点(P2P)从集中式到P2PP2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力等)和软件资源或者数据资源,这些共享资源能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源提供者(Server),又是资源获取者(Client)P2P网络的拓扑结构示例混合型体系结构将客户/服务器结构与非集中式结构相结合如:边界服务器系统(edgeserver)C/SP2P混合型体系结构(2)再如:协作式分布式系统例:文件共享系统BitTorrent强制每个参与者,即可下载文件,也负责上载文件全局目录:在Web站点中保存,指向下载文件的tracker。跟踪器(tracker):记录活动节点的服务器体系结构主要内容什么是体系结构体系结构样式系统体系结构体系结构与中间件中间件是操作系统和应用软件之间的一个独立软件层,它在不改变现有操作系统的前提下,向分布式应用提供相应的执行环境和编程环境。分布式计算环境就是(一种)中间件,能够屏蔽操作系统和网络协议的差异,能够为异构系统之间提供通讯服务的软件。体系结构与中间件中间件中的拦截器拦截器(Interceptor):中间件中大多具有的一种组件,方便中间件的配置和定制可中断正常执行的控制流,插入执行其他代码例:远程对象调用请求级拦截器消息级拦截器主要内容体系结构进程

通信命名一致性和复制

进程主要内容进程线程客户服务器

进程主要内容进程线程客户服务器

进程狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。进程的特点动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的并发性:任何进程都可以同其他进程一起并发执行独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进结构特征:进程由程序、数据和进程控制块三部分组成。五状态进程模型进程主要内容进程线程客户服务器

线程的引入进程的引入提高了计算机资源的利用效率。但在进一步提高进程的并发性时,人们发现进程切换开销占的比重越来越大,同时进程间通信的效率也受到限制线程的引入正是为了简化进程间的通信,以小的开销来提高进程内的并发程度线程:有时称轻量级进程,进程中的一个运行实体,是一个CPU调度单位,资源的拥有者还是进程或称任务线程模型多线程进程:一个线程被阻塞时,可运行同一进程中的另一线程感受线程编程(Java)1publicclassMyThreadextendsThread{ intcount=1,number; publicMyThread(intnum){ number=num; System.out.println("创建线程"+number); } publicvoidrun(){ while(true){ System.out.println("线程"+number+":计数"+count); if(++count==6)return; } } publicstaticvoidmain(Stringargs[]){ for(inti=0;i<5;i++)newMyThread(i+1).start(); }}感受线程编程(Java)2理解线程线程:有执行状态(状态转换,阻塞、就绪运行)不运行时保存上下文有一个执行栈有一些局部变量的静态存储可存取所在进程的内存和其他资源可以创建、撤消另一个线程线程的特点是进程的一个实体,可作为系统独立调度和分派的基本单位。不拥有系统资源(只拥有从属进程的全部资源,资源是分配给进程)每个线程有自己的程序计数器、堆栈(局部变量)、状态等。一个进程中的多个线程可并发执行。(进程可创建线程执行同一程序的不同部分)系统开销小、切换快。(进程的多个线程都在进程的地址空间活动)因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核使用线程的优点不会因造成阻塞的系统调用导致整个进程被阻塞。如:接收数据、处理数据、备份数据可考虑设计3个控制线程。适合在多处理机系统中执行并行操作。适合大型应用程序中相互协作的程序开发比如,进程间通信IPC代价大,可考虑使用线程线程与进程的比较调度:线程作为调度的基本单位,同进程中线程切换不引起进程,当不同进程的线程切换才引起进程切换;进程作为拥有资源的基本单位。并发性:一个进程间的多个线程可并发。拥有资源:线程仅拥有隶属进程的资源;进程是拥有资源的独立单位。系统开销:进程大;线程小。使用例:客户程序中的多线程以web浏览器为例,web文档由HTML文件组成,包含文本文件、图像组、图标等,须建立TCP/IP的连接,建立连接和读取数据都可能导致阻塞以多线程的方式开发浏览器,激活多个线程,每个线程都与服务器建立独立连接获取数据,每个线程负责获取页面的相应部分使用例:Server侧的多线程如多线程的Web服务器远程过程调用RPC中的线程作用:负责接收消息。

(a)消息到达前(b)消息到达后提醒:没有免费的午餐由于线程并不像进程那样彼此隔离,在单个进程中共享资源的并发控制问题由应用程序开发者负责解决。因此多线程应用程序的开发需要付出更多的努力。设计要合理,实现要简单进程主要内容进程线程客户服务器

客户程序的设计客户程序:根据需要可有多种设计思路客户与服务器间的通信协议带专用协议的网络化应用程序支持访问远程应用程序的通用方案客户程序对分布透明性的支持访问透明性客户存根程序(stub):代理程序隐藏客户和服务器主机之间的硬件差异和通信位置透明性、迁移透明性、重定位透明性命名系统:全局逻辑名字重新绑定机制:当服务器改变位置后,通知客户重新自动绑定客户程序对分布透明性的支持(2)复制透明性:使用客户端实现服务器复制透明性客户程序对分布透明性的支持(3)失败透明性重新连接:通信失败时,重试本地数据缓存:例,脱机方式进程主要内容进程线程客户服务器

服务器服务器是实现特定服务的进程,这些服务是为一组客户提供的本质上,每个服务器的工作方式都是一样的:等待来自客户的请求,随后负责处理该请求,最后等待下一个请求一般情况下,服务器同时为多个客户提供服务,因此,同一时刻可能会有多个请求到来服务器的组织结构迭代服务器:自己处理请求,并在必要的情况下将响应返回给发出请求的客户并发服务器:自己不处理请求,而是将请求传递给某个独立的线程或者其他进程来处理,自身立即返回并等待下一个输入的请求如:多线程服务器再如:每收到一个请求都派生出一个新的进程来进行处理由处理请求的线程或者进程负责向发出该请求的客户端返回响应客户如何联系服务器?客户如何知道服务器的IP地址?众所周知IP地址、DSN、命名服务客户总是需要向服务器所在的某个端口(Port)发送请求,而服务器应该在这个端口监听请求。客户如何知道某个服务所对应的端口?方法1:为已知服务分配一个众所周知的端口FTP21HTTP80方法2:服务器的端口被本地操作系统动态分配,客户必须找到到该端口怎么找到?客户到服务器的两种绑定策略方法1:在运行服务器的每台机器上运行一个特殊的守护进程daemon该进程负责跟踪位于同一台机器上的每一个服务进程使用的当前端点该进程监听一个已知的端口,客户通过这个端口与该守护进程进行联系,得到服务器的端口客户到服务器的两种绑定策略(2)方法2:使用超级服务器如Unix中的inetd守护程序,监听许多Internet服务的已知端口当收到请求的时候,它派生出一个进程以对该请求进行进一步处理,这个派生出的进程在处理完毕后自动退出运行。客户对服务器工作的中断方法方法1:让用户强行退出客户应用程序(这将中断与服务器的连接)然后马上重新启动客户程序,就好像什么事情都没有发生一样。看起来比较笨,但在互联网环境下工作得挺好方法2:使用带外数据利用单独另外的控制端点,或者利用同一链路,如,TCP中发送urgentdata服务器的状态问题会话状态和永久状态会话状态是服务器与一个客户间一次会话中涉及的状态永久状态记录的通常是数据库数据,如客户信息服务器的状态问题通常关注的是会话状态有状态和无状态无状态服务器:服务器不保存客户程序的状态例如,Web服务器有状态服务器:保存客户程序的状态例如,NFS文件服务器文件使用表(客户,文件,可更新否)服务器重启时:恢复故障前状态用无状态服务器实现有状态服务在某些情况下,服务器需要保留客户的活动记录Web服务器可以将客户引导到该客户最常浏览的页面实现方式例:使用Cookie:是一小段数据,包含对服务器有用的针对特定客户的信息。存储在浏览器中。对用户是透明的。如保存用户的登录信息缺点:违反隐私权,有安全性隐患(仿冒ID)服务器集群是一组通过网络连接的机器,每台机器运行一个或多个服务器这里讨论的服务器集群是指经局域网连接的机器,能提供高带宽和低延迟。常见组织形式服务器集群常逻辑上有三层组成在,某些情况下具体组织方式需要具体问题具体分析Switch的TCP转发原理访问存取透明性通过单个访问点实现,每个访问点专用硬件交换机交换机形成集群入口,提供唯一的网络地址,基于可扩展和可用性考虑,可设多个访问点;存取方式:建立TCP/IP连接,应用级请求可作为会话发送进程总结分布式系统中,进程是基本部分,它们构成了不同机器间通信的基础;分布式系统中的线程对于执行阻塞性I/O操作时继续使用CPU是非常有用的,如采用多线程方式,可以构建更高效的服务器;客户进程一般实现用户接口,既可提供简单的显示,也可提供处理复合文档的高级接口,通过隐藏与服务器通信的细节,获得更好的分布透明性;服务器可以是迭代的也可以是并发的,可以实现一种服务也可以实现多种服务,可以是状态无关的也可以是状态相关的;很多服务器组织成集群,通常需隐藏集群内部细节,使用单访问点将请求消息转发给服务器。分布计算环境邹华北京邮电大学网络技术研究院2014.9

Chapter2

分布式系统的基本原理主要内容体系结构进程通信命名一致性和复制

通信主要内容分层通信协议远程过程调用和远程对象调用面向消息的通信面向流的通信多播通信通信主要内容分层通信协议远程过程调用和远程对象调用面向消息的通信面向流的通信多播通信OSI模型由于没有共享存储器,分布式系统中的所有通信都是基于(低层)消息交换的OSI模型(开放式系统互联参考模型)用来支持开放式系统间的通信开放式系统是可以通过标准规则与其他开放式系统通信的系统,这些规则规定了发送和接收消息的格式、内容以及相应的含义OSI模型中的层、结构和协议分层:功能分解。独立性。接口(提供功能的操作集):标准化。协议栈:有序性典型消息格式应用层协议在OSI七层模型的传输层之上又划分了三个层,在实践中,只用到了其中的应用层在Internet协议簇中,传输层之上的所有内容都合并到了一起,称为应用层应用层成为所有由于各种原因不能归纳到某个较低层中去的应用程序和协议的容器缺乏对应用程序、针对特定应用程序的协议以及通用协议的明确区分ftp协议和ftp程序HTTP协议中间件协议有的应用层协议,可用于支持多种应用程序的通信,因此可看做是对多种应用程序有用的通用协议但不能算作传输协议,很多情况下归入中间件协议中间件协议(2)中间件协议是中间件提供的用于支持高层应用系统通信的协议不同的中间件系统有不同的中间件协议支持远程过程调用的协议,如DCE中支持远程对象调用的协议,如CORBA中支持实时流数据传输并保持同步的协议可靠多播协议,用于支持可靠多播服务的中间件系统中间件的通信类型从通信持久性方面持久通信:传输的消息一直由通信中间件存储,直到该消息被传送给接收方,如电子邮件系统瞬时通信:通信中间件只在发送和接收应用程序正在运行的时候才存储消息,即由于传输中断或者接收方当前不在活动状态,中间件就不传输消息,而是丢弃消息中间件的通信类型(2)从通信同步性方面同步通信:发送方提交消息后将被阻塞,直到知道其消息被接收。发送方可有三类同步点基于发送:发送方中间件请求传输完成基于接收:请求被传送到目标接收方基于响应:接收方返回响应异步通信:发送方在提交要传输的消息后立刻接着后续的执行,不会阻塞从通信连续性方面分:不连续通信和流通信这些通信方式可以进行各种组合通信持久性和同步性的组合(a)持久异步通信(b)持久同步通信通信持久性和同步性的组合(2)(a)持久异步通信(b)持久同步通信(c)瞬时异步通信(d)基于发送的瞬时同步通信通信持久性和同步性的组合(3)(e)基于接收的(f)基于响应的瞬时同步通信瞬时同步通信通信主要内容分层通信协议远程过程调用和远程对象调用面向消息的通信面向流的通信多播通信远程过程调用RPC像调用本地子程序一样,调用远程子程序调用者和被调者都不用考虑通信问题服务器客户OS主程序存根OS子程序存根RPC的基本处理过程传统RPC和异步RPC(a)传统的RPC(b)异步RPC远程方法调用RMI像调用本地对象的方法一样,调用远程对象的方法调用者和被调者都不用考虑通信问题通信主要内容分层通信协议远程过程调用和远程对象调用面向消息的通信面向流的通信多播通信面向消息的通信远程过程调用和远程方法调用都有助于隐藏分布式系统中的通信但这两种机制并不总是适用的如当无法保证发送请求时接收端正在执行的情况下如同步性会阻塞发送进程需要其他通信机制的支持如面向消息的通信面向消息的瞬时通信:套接字很多分布式系统和应用程序直接构建在传输层提供的简单的面向消息的模型之上人们已对传输层接口的标准化给予了充分的重视程序员通过一个简单的原语集就可以使用传输层提供的全部(消息传递)协议标准化的接口还使得应用程序在不同机器之间的移植变得容易如支持TCP/IP的Berkeley套接字socket

TCP/IP套接字原语原语意义Socket创建新的通信端点Bind将本地地址附加(attach)到套接字上Listen宣布已准备好接受连接Accept在准备好连接请求之前阻塞调用方Connect主动尝试确立连接Send通过连接发送数据Receive通过连接接受数据Close释放连接使用套接字的面向连接通信模式感受套接字编程(Java)Server侧:ServerSocketserver=newServerSocket(10000);While(true){ Sockets=server.accept(); newServerThread(s).start();}客户侧:Sockets=newSocket(“”,10000);InputStreamis=s.getInputStream();is.close();s.close();

面向消息的瞬时通信:MPI套接字抽象层在传输层,只支持简单的send和receive原语套接字用于使用TCP/IP协议进行通信,不适用于为高速互联网开发的专用协议,比如不同的缓冲和同步方式多数高性能计算机系统附带专用通信库,带来可移植性问题消息传递方面的标准出台:消息传递接口MPIMPI的特点提供高层通信,支持并行计算,如MPP,COW可靠的底层网络支持分组通信,地址(groupID,processID)支持多种瞬时通信方式瞬时异步MPI_bsend基于发送的瞬时同步MPI_send基于接收的瞬时同步MPI_ssend基于响应的瞬时同步MPI_sendrecvMPI原语原语意义MPI_bsend将要送出的消息追加到本地发送缓冲区中MPI_send发送消息,并等待直到消息复制到本地或远程缓冲区中为止MPI_ssend发送消息,并等待直到对方开始接受为止MPI_sendrecv发送消息,并等待直到收到应答消息为止MPI_isend传送要送出消息的引用,随后继续执行MPI_issend传送要送出消息的引用,并等待直到对方开始接受为止MPI_recv接受消息,如果不存在等待的消息则阻塞MPI_irecv检查是否有输入的消息,但是无论有没有消息都不会阻塞面向消息的持久通信其支持系统一般称为消息队列系统或者面向消息的中间件支持持久异步通信适合于对传输时间要求宽松的场合,如几分钟。不保证消息到达接收方的时间,也不保证接收方一定读取消息松散耦合的通信方式,使用方便使用队列的4种松耦合通信方式消息队列接口的基本接口原语意义Put将消息追加进指定队列Get调用进程阻塞,直到指定队列变为非空为止,然后取出队列中的第一个消息Poll查看指定队列中的消息,并且取出队列中的第一个消息。不阻塞调用进程。Notify注册一个处理程序,在有消息进入指定队列时调用该处理程序。消息队列源队列目标队列队列寻址队列名网络地址队列管理器发送/接收中转消息队列系统的一般架构队列级编址与网络级编址含有路由器的消息队列系统一般架构消息转换器(Broker)当发送方发送的消息和接收方需要的消息在格式上、内容上等有所不同时,消息转换器可以对消息进行转换或处理格式转换应用层网关消息转换器的一般结构通信主要内容分层通信协议远程过程调用和远程对象调用面向消息的通信面向流的通信多播通信面向流的通信媒体(media):媒体是指传播信息的媒介。它是指人借助用来传递信息与获取信息的工具、渠道、载体、中介物或技术手段例:图像格式:GIF、JPEG、TIF连续型媒体(continuousrepresentationmedia)在数据项之间存在时间关系例:CD:采样值/1/44100秒,VCD:祯/1/30秒离散型媒体

数据流数据流(stream)异步传输:delay(0,∞);delay(传输延迟)同步传输:delay

(0,max]等时(isochronous)传输:delay

[min,max]复杂数据流由多个子数据流(substream)组成例:DVD((左声道,右声道),视频,字幕)数据流传输例流的服务质量Qos非功能需求一般称为服务质量QoS流的QoS描述了低层分布式系统及网络在确保传输质量方面的需求QoS属性例:数据传输要求的比特率创建会话的最大延时端到端最大延时最大往返延时误码率丢包率

有很多支持QoS的方法流同步多媒体系统中,常常需要不同的流互相之间保持同步如离散数据流与连续数据流之间保持同步幻灯片演示与音频如连续流之间的同步放映影片时的视频流和音频流同步机制例1在数据单元层上的显式同步读写进程:读流数据单元,同步写同步机制例2由高层接口支持的同步多媒体中间件提供控制接口用户自定义程序:检查同步,调整流速通信主要内容分层通信协议远程过程调用和远程对象调用面向消息的通信面向流的通信多播通信多播通信组:由系统或用户确定的若干个进程的集合组的成员籍(membership)通信方式:点到点通信(point-to-point):单播(unicast)一到多通信(one-to-many):多播(multicast)、广播(broadcast)单点、多播和广播“通信”总结进程间通信功能是所有分布式系统所必须的传统的分布式系统通过基于传输层提供的低层消息来进行通信,如TCP/IP套接字分布计算环境(中间件)提供更高层次的通信支持RPC、RMI基于消息的通信RPC、RMI等主要提供同步通信功能,并在一定程度上放松了同步的要求但在一些应用场合,面向消息的通信的异步通信更方便一些瞬时和持久,同步和异步“通信”总结(2)面向流的通信服务质量QoS流的同步多播通信从发送方到多个接收方主要内容体系结构进程通信命名一致性和复制

命名名称在所有计算机系统中都起着非常重要的作用共享资源、唯一标识实体等命名系统的主要功能是把名称解析为它所标识的实体分布式系统中,命名系统的实现本身通常是分布在多台计算机上的其分布机制对命名系统的效率和可靠性起着关键的作用基本概念实体:系统中的任何事物主机、打印机、磁盘、文件、进程、用户、邮箱、Web页面、消息实体的名字(Name):一个位串或字符串,可唯一地标识一个实体如主机名、文件名、进程名、用户名实体访问点(accesspoint):用于访问该实体的接口可以有多个访问点实体可以改变访问点访问点可赋给另一个实体地址(address):访问点的名称可能的命名方法(1)地址(address):访问点的地址用地址作为名称IP地址、电话号码看上去用地址作为名称似乎很方便,但实际上,这种命名非常不灵活且用户不友好。如,服务器运行的主机经常会变化,提供多个访问点的实体(Web服务)可能的命名方法(2)标识符:具有以下属性的一个标识符最多引用一个实体每个实体被一个标识符所引用一个标识符总是引用同一个实体(不准重用)使用标识符来作为实体的名称不同进程使用的标识符会不会重名或者不一致?在大多数计算机系统中,地址和标识符仅使用计算机可读的方式,如位串形式使用用户友好的名称用户理解的字符串,如“temp”,“bank”命名系统在分布式系统中,一般使用位置无关的命名方法因此,命名系统的主要工作就是把名称解析为地址简单地,命名系统中可以有一个名称到地址的绑定表如(Name,address)表大型分布式系统,资源众多,一个表可能无法满足要求分布式系统常见的三类命名系统无结构命名结构化命名基于属性的命名无结构命名无结构名称:名称中不包含任何有关如何定位其相关实体的访问点的信息多种方法支持无结构名称的解析广播和多播Internet地址解析协议ARP分布式散列表………….无结构名称适用于机器的理解,人难以理解结构化命名结构化名称:简单的、人类可理解名称文件命名:/user/libInternet上的网页地址:名称通常组成名字空间:根节点、目录节点、叶节点名字空间的实现命名服务:管理名字空间,允许用户和进程添加、删除和查找名称的服务。命名服务由命名服务器实现大型分布式系统包含很多实体,跨越很大的地理区域,需要使用多台命名服务器来分散名字空间的管理。DNS的命名空间划分示例名字解析方法例迭代式名字解析:名字解析器从根名字服务器开始,逐个与名字服务器交互,实现名字的解析root:<nl,vu,vs,>基于属性的命名无结构命名和结构化命名提供了一种唯一的与位置无关的方法来命名实体,进一步地,结构化命名还具有良好的用户友好性位置无关和用户友好不是命名实体的唯一标准,随着可用信息的增加,高效地查找实体变得更重要。在分布式系统中,常用(属性、值)来描述实体,称为基于属性的命名。可使用实体的属性来查找实体基于属性的命名系统称为目录服务,实体有可供查找的相关属性集。如LDAP目录服务LDAP目录服务系统基于LDAP协议(轻量级目录访问协议)从OSIX.500目录服务派生国际电信联盟(ITU)关于目录服务的建议标准LDAP目录项目录项:由多个记录(属性,值)组成。多值属性:用数组或链表表示目录信息库(DIB)所有目录项的集合。每个记录都是唯一命名的,所以可以被查找LDAP目录项举例/c=NL/O=VrijeUniversity/OU=Comp.Sc.类似于DNS名nl.vu.cs属性缩写值CountryCNLLocalityLAmsterdamOrganizationLVrijeUniversiteitOrganizationalUnitOUMath.&Comp.Sc.CommonNameCNMainserverMail_Servers--,192.31.231,6--1--1目录信息树用于描述目录项集合的层次结构,命名图查找操作示例Answer=search(“&(C=NL)(O=VrijeUniversity)(OU=*)(CN=Mainserver)”)查找在国家名为NL、组织名为VrijeUniversity的地方的主服务器(CN为MainServer),对组织名OU不关注将返回一个列表,其中每个记录满足上述属性描述“命名系统”总结名称可用来表示实体,基本有3种类型的名称,地址、标识符、用户友好的名称无层次命名系统需要将标识符解析为对应的实体地址,有很多方法介绍。结构化名称可以很容易组织成名称空间,名称空间可以用命名图来表示,名称解析的过程是通过查找路径名的各个部分来贯穿该命名图。基于属性的命名系统中,实体是由(属性、值)对集来描述,可基于属性查找满足条件的实体主要内容体系结构进程通信命名一致性和复制

引言进行数据复制的主要原因:可靠性:一个副本被破坏,可以切换到另外的副本,保护数据,不影响应用的运行。性能:并行性、可伸缩性,(服务器数量、地域)服务器数量,可均衡负载,提高访问性能地域扩展,就近访问,提高性能。进行数据复制是有代价的,一致性保证例1:Web页的Cache例2:镜像网站

支持伸缩性的复制技术将数据的副本放置在处理它们的进程附近以减少访问时间,解决可伸缩性问题复制策略设进程P对数据d的访问N次/秒,d的更新M次/秒当N<<M时,访问/更新比非常低,由于一致性维护带来更大代价,因此,不应复制Internet客户服务器支持伸缩性的复制技术(2)一致性维护与可伸缩性问题保证所有的副本都是相同的,--〉紧密一致性当某个副本上执行更新操作时,需对所有副本进行全局同步,在大型系统上很难

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论