分布式系统通信技术研究
分布式系统中的容错与自适应性技术研究

分布式系统中的容错与自适应性技术研究分布式系统是由多台计算机互相连接组成的系统,其目的是为了能够处理大量的数据和请求,并提供高可靠性和高性能的服务。
在分布式系统中,容错和自适应性技术是至关重要的,以确保系统能够在面对各种故障和变化时保持稳定运行。
本文将对分布式系统中的容错和自适应性技术进行研究和探讨。
1. 容错技术容错技术是指在分布式系统中,当部分节点发生故障或者通信出现问题时,能够保证系统继续正常运行的技术手段。
常见的容错技术包括:1.1 容错算法容错算法是指通过冗余和备份机制,使得系统能够在部分节点发生故障时仍然能够提供正确的服务。
常见的容错算法包括冗余数据存储、备份节点和数据复制等。
1.2 容错检测与恢复容错检测与恢复技术是指通过监测系统运行状态和错误检测机制,及时发现和修复故障,以确保系统的可用性和稳定性。
常见的容错检测与恢复技术包括故障检测、错误处理、快速恢复和自动故障转移等。
1.3 容错通信容错通信技术是指在分布式系统中保证节点之间可靠通信的技术手段。
常见的容错通信技术包括可靠传输协议、消息队列和消息重发机制等。
2. 自适应性技术自适应性技术是指分布式系统能够在运行过程中根据环境变化和系统状态做出相应的调整和改变,以保持高性能和可靠性。
常见的自适应性技术包括:2.1 资源动态管理资源动态管理是指分布式系统根据当前的负载情况和资源利用情况,自动调整资源分配和使用策略,以保证系统的性能和可用性。
常见的资源动态管理技术包括负载均衡、资源调度和动态切换等。
2.2 自适应优化自适应优化是指分布式系统能够根据用户需求和环境变化自动优化系统的性能和行为。
常见的自适应优化技术包括自动调整算法参数、动态配置和参数优化等。
2.3 自我修复自我修复是指分布式系统能够自动检测和修复故障和错误,以确保系统的连续运行和可用性。
常见的自我修复技术包括错误检测和恢复、自动重启和容错恢复等。
3. 容错与自适应性技术的挑战尽管容错和自适应性技术在分布式系统中具有重要作用,但其实现仍然面临一些挑战和困难:3.1 系统复杂性由于分布式系统涉及多个节点之间的通信和协调,其复杂性较高。
消防系统分布式网络通信技术的应用研究

消防系统分布式网络通信技术的应用研究摘要:本文对国内火灾自动报警设备监测系统通信传输方式进行研究,提出了GPRS和Internet的分布式火灾自动报警设备监测系统设计方案并对系统中的关键技术数据采集技术、数据存储技术等进行了深入的研究。
关键词:消防;分布式;火灾自动报警1总体架构1.1网络拓扑的选择针对分布式消防系统的需要,本设计采用四级采样的树形拓扑结构。
四级采样为数据采集模块,它与三级收集中转模块间属短距离无线通信,设计距离小于300m;三级采样点可视为收集中转模块,它与二级处理控制模块属中远距离无线通信,设计距离小于3000m;二级采样点看作处理控制模块,它与一级总控管理模块之间属远距离无线通信;一级采样点部署在火灾报警控制中心,可视为基站、总控管理模块。
1.2无线通信技术的选择根据分布式检测设备的通信要求,对比红外技术、蓝牙技术、IEEE 802.llb、ZigBee技术,选用RF射频无线收发芯片实现四级数据采样模块和三级收集中装模块之间的无线连接;选用基于CC1100芯片开发的DTD465C无线数传模块三级收集中转模块与二级处理控制模块的通信;对比微波通讯、短消息、GPRS或CDMA网络等通信方式,采用GPRS和Internet结合组网方式,选用的深圳宏电公司H7118 GPRS DTU无线数字数据网通信模块,服务器端采用公网静态IP方案。
1.3 系统的总体结构分布式火灾自动报警设备监测系统由总控管理模块、处理控制模块、收集中转模块和数据采集模块四大模块组成,另外有三条无线通信通道。
系统的总体结构如图1所示。
图11.3.1总控管理模块分布式火灾自动报警设备检测系统的服务器软件安装在城市消防网的主机上,为保证服务器的稳定运行,将装有监控软件的内网主机(端口为5002)按照Windows 2000 Server的NAT技术,安装端口映射功能,当用户访问提供映射端口主机的5002端口时,服务器将请求转到内部5002端口的网内主机上。
分布式系统概述论文

分布式系统概述论文分布式系统是指由多个独立计算机节点组成的系统,这些节点通过网络进行通信和协调,共同完成一系列任务。
随着互联网的发展和信息技术的进步,分布式系统越来越被广泛应用于各个领域,如大规模系统、云计算、区块链等。
本文将对分布式系统的概述进行探讨。
分布式系统的核心目标是通过将任务分解为多个子任务并由不同的节点并行执行来提高系统的性能和可扩展性。
与集中式系统相比,分布式系统可以更好地利用计算和存储资源,有效地处理大规模数据和用户请求。
此外,分布式系统还可以提高系统的可靠性和可用性,因为即使一个节点发生故障,其他节点仍然可以继续运行。
分布式系统的设计面临着许多挑战。
首先是系统的通信和协调。
由于节点之间的通信通过网络进行,网络延迟和带宽限制是一个重要的考虑因素。
此外,分布式系统的节点数量通常很大,因此节点之间的协调和一致性成为一个复杂的问题。
为了解决这些问题,研究人员提出了许多技术,如一致性算法、分布式事务处理和数据复制等。
其次,数据的一致性和可靠性是分布式系统设计的重要方面。
由于数据被分散存储在不同的节点上,节点之间的数据一致性是一个挑战。
在分布式系统中,往往需要使用复制技术来提高数据的可靠性。
数据复制可以在不同的节点上备份数据,并可以通过副本之间的协调来维护数据的一致性。
然而,数据复制也带来了数据冗余和一致性维护的开销。
此外,分布式系统还需要考虑故障恢复和容错性。
由于节点之间的通信和计算是并行进行的,如果一个节点发生故障,如网络错误或服务器崩溃,那么其他节点需要能够感知到故障并进行相应调整,以确保系统的正常运行。
为了提高系统的容错性,需要进行一些故障检测和修复机制的设计。
分布式系统的应用越来越广泛,涵盖了许多不同的领域。
在大规模系统和云计算中,分布式系统被用于处理大规模数据处理任务和提供高性能计算能力。
在区块链技术中,分布式系统被用于实现去中心化的数字货币交易和智能合约。
总之,分布式系统是由多个独立计算机节点组成的系统,通过网络进行通信和协调,共同完成任务。
计算机网络中的分布式系统

计算机网络中的分布式系统随着互联网的普及和计算机技术的快速发展,分布式系统成为计算机网络领域的重要研究方向。
分布式系统是一种由多台计算机组成的系统,这些计算机通过网络连接,并共享硬件、软件和数据资源。
本文将介绍计算机网络中的分布式系统,并详细探讨其特点、应用和挑战。
一、分布式系统的特点分布式系统的特点主要体现在以下几个方面:1. 高可靠性:由于系统中存在多台计算机,并通过网络连接,即使其中某一台计算机出现故障,其他计算机可以继续提供服务,确保系统的连续性。
2. 高性能:通过并行计算和分布式存储,分布式系统可以实现更高的处理速度和吞吐量。
任务可以被分割成多个子任务并分配给不同的计算机同时处理,有效利用系统的计算资源。
3. 可扩展性:分布式系统可以根据需要随时扩展计算机节点,以满足用户的需求。
新增计算机可以无缝地加入系统,并共享资源。
4. 透明性:用户不需要关心底层系统的细节,可以像使用单个计算机一样使用分布式系统。
对用户来说,分布式系统就像是一个整体,不需要了解系统内部的复杂性。
5. 分布式共享资源:分布式系统中的计算机可以共享硬件、软件和数据资源。
这使得多个用户可以同时访问相同的资源,提高了资源的利用效率。
二、分布式系统的应用分布式系统在各个行业都有广泛的应用。
以下是一些常见的应用领域:1. 云计算:云计算是一种基于分布式系统的计算模式,通过虚拟化技术将计算资源组合成云平台,并提供按需使用的服务。
云计算提供了灵活的计算能力,可以满足不同用户的需求。
2. 大数据处理:随着互联网的发展,各种类型的数据不断增加。
分布式系统可以利用多台计算机并行处理大规模的数据,提供快速、高效的数据分析和处理能力。
3. 分布式存储:传统的集中式存储方式面临容量受限和单点故障的问题。
分布式存储通过将数据分散存储在多个计算机节点上,提供了更大的存储容量和更高的可靠性。
4. 分布式计算:某些科学领域的计算需要大量的计算资源,通过分布式计算可以将任务分配给多台计算机同时处理,加快计算速度。
OPC通讯技术在DCS仿真系统中的研究与应用的开题报告

OPC通讯技术在DCS仿真系统中的研究与应用的开题报告一、选题背景和意义:随着信息技术的快速发展,数字化制造技术在工业自动化中的应用越来越广泛。
DCS(分布式控制系统)是一种基于计算机集成制造系统的自动化控制系统,可以集成所有控制、监控、数据采集和报警处理功能。
通过采用DCS仿真系统,可以帮助企业更好地实现自动化控制与生产管理,提高生产效率和产品质量,降低成本和风险。
而OPC(开放式过程控制)通信技术是目前应用最广泛的自动化控制标准通信协议,可以实现不同厂商、不同系统之间的数据交换和共享,使得生产和设备管理更加高效。
因此,研究和应用OPC通信技术在DCS仿真系统中具有重要意义。
二、研究内容:本课题主要研究包括以下内容:1. OPC通讯技术的原理和技术特点。
2. DCS仿真系统的概念和架构分析。
3. OPC通讯技术在DCS仿真系统中的应用研究。
4. 基于OPC通讯技术的DCS仿真系统设计与实现。
5. 模拟实验和数据分析。
三、研究方法:1. 文献综述:梳理国内外相关文献,深入了解OPC通信技术和DCS 仿真系统的基本理论和最新研究进展。
2. 原型设计与实现:采用Visual Studio和OPC服务器软件进行原型系统设计与开发,根据实际需求开发相应的应用程序和算法。
3. 实验验证与数据分析:在仿真系统搭建完成后,进行模拟实验和数据分析,评估系统的性能和可靠性,并对研究成果进行展示、总结与归纳。
四、研究意义:通过本次研究,可以深入了解OPC通信技术和DCS仿真系统的原理、特点和应用,为企业生产管理和控制提供有力的支持。
同时,该研究具有一定的创新性和实用性,可为相关领域的研究和应用提供新思路和参考,具有一定的学术和实践价值。
分布式系统知识点积累总结

分布式系统知识点积累总结一、分布式系统概述分布式系统是一个由多台计算机组成的系统,这些计算机通过网络进行通信和协作,共同完成某个任务。
分布式系统的设计目标是提高系统的可靠性、可扩展性和性能。
二、分布式系统的特点1. 系统中的计算资源是分布在不同的计算节点上的,节点之间通过网络连接。
2. 节点之间相互独立,没有全局时钟,只能通过消息传递的方式进行协调。
3. 分布式系统需要解决数据一致性、并发控制和通信延迟等问题。
三、分布式系统的关键技术1. 通信技术:分布式系统中的节点通过网络通信进行信息交换,通信技术是分布式系统的基础。
2. 数据复制技术:为了提高系统的可靠性和可用性,分布式系统通常会采用数据复制技术。
3. 一致性协议:分布式系统中的数据一致性是一个重要的问题,一致性协议可以保证系统中的数据一致性。
4. 分布式事务:分布式系统中的多个节点可能需要协同完成一个复杂的任务,分布式事务可以确保系统执行的原子性和一致性。
5. 负载均衡:分布式系统中的节点需要协同处理大量的请求,负载均衡技术可以使得系统的负载得到均衡,提高系统性能和可用性。
四、分布式系统的常见问题及解决方案1. 数据一致性问题:分布式系统中的数据一致性是一个常见问题,解决方案包括使用一致性协议、版本控制和事务管理等技术。
2. 并发控制问题:分布式系统中的并发控制是一个重要问题,解决方案包括使用锁、分布式事务和分布式共享内存等技术。
3. 通信延迟问题:分布式系统中的通信延迟可能导致性能下降,解决方案包括使用消息队列、异步通信和缓存等技术。
4. 节点故障问题:分布式系统中的节点故障可能导致系统的不可用,解决方案包括使用容错技术、数据备份和自动故障转移等技术。
五、分布式系统的一些经典算法1. Paxos算法:Paxos算法是一种用于分布式系统中的一致性协议,它可以确保多个节点对某个值达成一致。
2. Raft算法:Raft算法是一种分布式一致性算法,相比Paxos算法更容易理解和实现。
基于ZigBee的智能车库分布式系统研究

1引言进入新时代以来,新科技的发展不断加快,各式各样的信息化科技产品充斥于我们的生活,随着城市拥车率的不断上升,传统类型的车库已难以满足人们的需求,人们更需要一种结构简单,方便快捷的新型车库。
在这样的背景下,搭建一套适用于新型城市化建设的智能车库越来越重要。
而目前的车库管理系统大多仅实现了车牌记录以及刷卡收费等功能,智能化程度有待提升。
同时,对于车主而言,目前的停车管理APP 所提供的功能较为单一,交互性较差,用户体验有待提升。
并且现代的大型车库多具有多层、占地面积较大的特点,车主停车后寻找车位或取车都具有一定的困难。
在当代资源利用极高的时代,我们需要一个更加能够节约资源,方便简洁的车库。
针对以上传统车库存在的缺点,本文设计了基于ZigBee 分布式系统的智能车库控制系统。
该系统具有智能水平高、操作延时小、建设成本低以及安全可靠等优点,其能够更好地保障车辆的安全停放,解决城市车辆拥挤问题。
2智能车库中的ZigBee 技术ZigBee 是一种近距离双向无线通信技术,大多用于传感控制应用。
首先,ZigBee 是智能车库系统的网络控制系统。
智能车库系统主要包括信息识别、智能控制等方面。
由这些传感器收集车辆及环境信息,并将大量的信息转换成数据传输到控制中心。
网络层主要实现信息传递的功能,其运行基础ZigBee 兼容各种通信模式,大多数设备都可以使用,同时在使用时无需支付高额的专利费用。
此外,ZigBee 具有自动休眠模式,当对接两设备的通信停止时,两端的设备将自动进入休眠状态,这一功能极大地降低了其能耗。
其次,短延迟也是ZigBee 的一个重要特征,在设备未启动时,其搜索设备的延迟不大于30ms ,而当ZigBee 设备连接后,其通信延迟不大于10ms ,这种特性足以满足智能车库实时控制和快速响应的需求。
最后,ZigBee 通信技术具有三层通信协议保障和防火墙等基于ZigBee 的智能车库分布式系统研究Research on the Distributed System of Intelligent Garage Based on ZigBee姚涛,周光耀(安徽理工大学,安徽淮南232001)YAO Tao,ZHOU Guang-yao(Anhui University of Science &Technology,Huainan 232001,China)【摘要】论文基于ZigBee 分布式系统研究新型智能车库管理系统,将ZigBee 无线通信技术应用于车库的管理,可以实现实时监控车辆状况、智能收费、车库自动化管理的功能。
分布式系统在移动通信中的应用与发展

分布式系统在移动通信中的应用与发展移动通信技术的快速发展,使得人们能够在任何时间、任何地点进行通信和信息交流。
然而,移动通信网络的复杂性与海量的用户需求也给其带来了挑战。
为了应对这些挑战,分布式系统在移动通信中的应用越来越重要。
本文将探讨分布式系统在移动通信中的应用与发展,并分析其带来的优势和挑战。
一、分布式系统在移动通信中的应用1. 网络资源管理:分布式系统在移动通信网络中可以实现对网络资源的有效管理和分配。
通过分布式的服务器和存储系统,可以实现更高效的数据处理和存储,并提供更好的服务质量。
同时,分布式系统还可以根据用户需求和网络状况动态地调整资源分配,以提高网络性能和用户体验。
2. 数据共享和协同工作:在移动通信中,用户需要频繁地访问和共享数据。
分布式系统可以实现数据的分布式存储和共享,使得用户能够更方便地获取和共享数据。
此外,分布式系统还可以支持多用户的协同工作,使得用户能够同时对同一份文档进行编辑和更新,提高工作效率。
3. 服务可靠性和容错性:由于移动通信网络的不稳定性和易受干扰的特点,分布式系统的容错性尤为重要。
分布式系统可以通过在不同地理位置部署多个服务器和存储系统,实现数据的冗余备份和自动切换,从而提高系统的可靠性和容错性,减少因网络故障而导致的服务中断。
二、分布式系统在移动通信中的发展1. 云计算与边缘计算的融合:云计算和边缘计算是当前移动通信领域的热点技术。
分布式系统可以将云计算和边缘计算相结合,实现资源的动态调配和任务的优化分配。
通过云端和边缘设备的协同工作,可以提供更加灵活和高效的移动通信服务。
2. 区块链技术的应用:区块链技术作为一种安全可信的分布式数据库技术,具有在移动通信中应用的潜力。
分布式系统可以利用区块链技术实现移动通信网络的身份验证、数据安全和隐私保护。
此外,区块链技术还可以提供移动通信网络中的去中心化管理和智能合约执行等功能。
3. 移动边缘计算的发展:移动边缘计算是分布式系统在移动通信中的重要发展方向之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究生课程设计(小组报告一)题目:分布式系统通信技术研究院系:******************* 专业:******************* 小组成员:*********************************************************************************************** 课程:分布式与云计算分布式系统通信技术研究一、概述分布式系统是由一些相互独立的处理部件集合在一起,并且对于使用的用户而言是透明的、单一的相关系统,分布式系统可以管理和利用每个处理部件中相互分散却又有联系的资源,使其共同为解决某个具体问题而相互协作。
分布式系统产生的最初的目的是将互联网上计算机的闲置处理能力充分的利用起来作为一个系统进行分布式计算,它最主要是用在高性能计算领域。
近年来物联网、云计算、对等计算模式(peer-to-peer,p2p)、网格计算、无线传感网络等概念均为分布式系统技术的商业应用,因此构建分布式系统是有效实现这些应用的基本要求。
进程间通信是所有分布式系统的核心功能。
一个分布式系统,可以同时有成千个进程分布在网络上的不同的站点机上,它们通过网络提供的消息通信机制交换信息,实现高层应用的互操作。
网络上的不同站点机可以拥有不同的操作系统。
分布式应用系统的发展给分布式系统的进程间通信提出一个又一个需解决的技术问题。
本报告主要介绍了分布式系统的通信的模型和通信技术。
二、分布式系统的通信体系结构分布式系统的核心是通信网络,它完全是一种网状结构,因此称为通信体系结构。
按照计算机网原理,通信体系结构包括两个方面,一是处理机互连结构,即系统的物理组织;二是两进程间的通信协议,即系统的虚拟组织。
1.系统的物理组织按照计算机网的方法,互连结构涉及四个方面:报文、通路、交换和构形,如图2-1所示。
合理选择每个方面的具体内容,组合起来,即可得出系统的物理组织。
例如,系统可以是报文传输、直通通路、报文交换、环形结构(如DLCN),也可以是报文传输、广播通路、报文分组交换、树形总线结构(如Ethernet)等。
图2-1 处理机互连结构传输的信息称为报文,即一串比特码,在传输时,不再区分命令、地址、数据或状态,也不分指令流和数据流。
传输报文的道路称为通路或线路,报文从一点传输到另一点的通路,称为直通通路;从一点可同时发送到多个接收点的,称为广播通路。
通路由通信介质构成,常用的有双扭线、带状电缆、同轴电缆、光导纤维、无线电、微波、通信卫星、红外等,可按要求的频宽选用。
为了共享传输介质,在互连结构中设置有交换元件,按其工作原理可分为线路交换方式和存储转发方式两大类。
线路交换是在通路上设置开关,只.当选通时才在通信实体之间提供一条通路。
由于信息流的不均匀性,如果在通路中设置存储元件进行缓冲,可望提高通路的利用率,这就是存储转发方式。
其中,以报文为单位传送的,称为报文交换;将报文分为多个报文分组并行传送的,称为报文分组交换。
线路交换比较简单,多处理机系统中用得很多,如时分总线、纵横开关。
报文分组交换效率较高,是计算机网中的一种主要交换方式,在多处理机系统中也开始使用,如用在数据流计算机中。
基本的构形有星形、树形、环形和网形,将它们组合起来,可得出更为复杂的结构。
在多处理机系统中,共享主存可看成是星形,总线可认为是断开的环形。
由于环形网简单,经济,易于分布控制,看来可用在分布式系统中;为了提高性能,还可考虑采用多环结构。
2.系统的虚拟组织通信网络的根本任务是,利用各层协议,建立虚拟通路,实现报文通信。
各层协议应具备下列功能:(1)建立、维持和断开物理链路(给出接口说明);(2)在一链路上传输二进制码(给出链路地址,划分帧和块,进行差错控制等);(3)在一网络的两处理机间传输报文(确定报文格式、进行路径选择和流量控制等);(4)在两处理机中进程间传输文件或数据;(5)进程间进行会话(进程调度,并行执行等);(6)编排传输格式(定义虚拟终端,压缩数据等);(7)应用(采用用户语言,执行应用程序)。
如按上述功能分层,便可得出分布式系统的功能结构。
它具有七个独立的功能层构成的层次结构,只能下层(顺序号小的)为上层服务和上层访问下层;而同层间由协议建立虚拟通路进行通信。
本层上传送的报文(由正文和报头报尾组成),为上一层的报文加上本层的报头和报尾组成。
与普通计算机体系结构相比,分布式系统的体系结构(即功能结构)更具一般性和普遍性,它既包括了松散祸合的计算机网,也纳入了紧密祸合的多处理机系统;它既包括有硬件,也有软件,包含了系统的各个组成部分,突出了其相互间的连结和通信。
分布式系统体系结构的前4层为传输服务,提供通信设施和建立连结;第5~6层也可合并为一层,即系统层;全部应用和大部分管理活动(计算机操作系统管理活动)均在第7层。
三、进程间通信的模式和方式目前,主要有三种分布式系统的进程间通信的模式:远程过程调用,远程方法调用,面向消息的通信。
远程过程调用使一个进程可以调用异地、不同地址空间的进程的过程。
它使用通信双方互认的格式传递过程标识、过程参数、响应结果;在通信双方分别设立存根,保存过程参数和运行结果。
这样,通信双方可以根据本地的格式构造过程参数和运行结果,在本地的地址空间执行计算。
远程方法调用,在基于对象的分布式系统中,使一个进程的对象可以访问异地、不同地址空间的进程的对象,包括调用远程对象的方法。
远程对象在网络中具有唯一的标识。
通信双方要对远程对象的方法界面达成一致。
调用方依据方法的界面生成远程对象的代理。
代理和远程对象具有相同的方法。
调用方在本地调用代理的方法,将远程对象的标识、调用的方法、参数、结果类型传递给被调用方。
被调用方设有存根,根据远程对象的标识获得本地的对象,对本地的对象执行计算。
面向消息的通信使通信双方不必都处在执行状态,请求和响应仍然可以正确地被发送和被接收。
它要求:设立通信服务器,在通信服务器之间传递信息;通信双方连到通信服务器,将要传递的信息交给通信服务器。
通过在通信服务器上保存信息,面向消息的通信可以实现持久通信的功能。
目前,主要有四种进程间通信的方式:持久通信。
持久通信可以保证消息成功到达接收方。
非持久通信。
非持久通信不能保证消息成功到达接收方。
当消息接收方处于不执行状态或发生故障时,消息被丢弃。
同步通信。
发送方发出消息后就等待,直到接收方返回确认信息,才继续执行。
异步通信。
发送方发出消息后仍继续执行。
分布式系统采用什么样的通信方式,取决于系统对通信的要求。
例如,电子邮件系统是持久异步通信系统,RPC 和RMI 是非持久同步通信系统。
四、RPC执行过程1、RPC 基本思想以一个 C 语言的例子来看 RPC 的具体过程。
这个例子中 C 程序调用一个求和函数,而这个求和函数位于另一台计算机上。
可以设想,经过适当的处理,RPC 通信中间件可以承担起远程过程调用的通信,使得求和函数的执行就像发生在本地一样。
如图 4-1 所示。
RPC 也是一个客户服务器模型的通信。
至于消息传递是建立在什么底层协议上,并不是我们所关心的内容。
图 4-1RPC 基本思想2、 RPC 的基本操作在本地过程采用高级语言的编程时,过程的调用使用了一个栈数据结构,调用程序将本地的所有参数和返回值进栈后,将控制权移交给被调用过程,被调用过程也是将自己的变量在栈上进行分配,在返回时将这些变量出栈后,将结果拷贝到调用过程的变量中。
调用过程在结束调用后,栈结构恢复到调用前的状态。
以一个加法函数为例,当 sum 是一个本地过程时,程序的栈结构的变化如图 4-2 所示。
图 4-2 本地过程调用栈的结构变化在过程调用时,参数 a 和 b 的值分别拷贝到 sum 的局部变量 p1 和 p2 上。
Sum 函数是在参数的副本上工作的,并不改变参数的值。
这就是所谓的参数按值调用。
当 a 或b 是指针或引用型变量时,a 和 b 的值实际代表的是参数值的地址,被调用函数不能改变地址值,但是能够改变地址所指向的数据。
这种方式称为按引用调用。
RPC 的实现目标是使得远程调用就好像是过程处理发生在本地一样。
在 RPC 模型中服务器和客户机端都有一个存根程序,通过存根程序客户机将需要调用的方法名称和参数远程发送至服务器的存根程序,由服务器上的存根程序将参数和方法名传递给服务器进程。
RPC 的工作原理大致如图 2-4 所示,所有的过程调用都在本地发生,客户与服务器的存根程序负责消息传递。
这两个存根程序构成了 RPC 方法的通信中间件。
图 4-3 RPC 的原理图示由图 4-3 看出,在分布式系统中,用户通过使用远程过程调用的方式可以像调用本地方法那样远程的调用服务器上的方法,通过存根程序对用户隐藏了分布式系统的底层通信细节。
3、RPC 体系结构本文采用的 RPC 体系结构如图 4-4 所示:图 4-4 RPC 体系结构在 RPC 模型中有客户机进程和服务器进程分别分布在不同的计算机上,并且在客户机和服务器进程所在的计算机上都有存根程序,这个存根程序是服务器进程和客户机进程的代理。
通过这个代理调用 Reader 和 Writer 函数实现远程过程调用也即远程引用层。
在远程引用层底层使用的是网络中的 TCP/IP 协议,通过 TCP/IP 协议以及输入/输出流将引用层的服务名称和具体参数通过网络传递到目的主机。
五、常见的消息通信模式当今除了少数媒体和大型软件系统运行在单机上以外,绝大多数都使用了计算机网络。
使用分布式系统的原因和好处很多,诸如实现资源共享、提高系统可靠性、降低商业成本等等。
实现应用的分布式的一个重要先决条件就是:分布式系统中的子系统必须相互协作,需要一种相互通信的手段。
然而,问题在于有太多的通信机制可供选择。
以UNIX 为例,可能要用到TCP/IP、套接字、TLI(传输层接口,Transport Layer Interface )或RPC (远程过程调用,Remote ProcedureCall)等等。
本节介绍几种常见的通信模式和消息模型。
1.转发器-接收器模式(Forwarder-Receiver)该模式由转发器、接收器和对等体(Peer)三种组件构成。
图5-1给出了该模式的静态关系。
图5-1 Forwarder-Receiver模式关系图对等体组件负责应用任务,它使用转发器向远程对等体发送消息,使用接收器接收其它对等体传送来的消息。
如图3-1所示。
转发器组件跨越进程边界发送消息。
它提供了一个通用接口,该接口是一个特殊IPC机制的抽象,并且包括列集(marshal)消息功能和传送消息的功能。
接收器负责接收消息。
它提供了一个通用接口,该接口是一个特殊IPC 机制的抽象,它包括接收消息的功能和散集(unmarshal)消息的功能。