分享到:

异步RPC的设计与实现

RPC(Remote Procedure Call)是一种很有名的进程间通信的机制。它是把本地过程调用的概念加以扩充后引入分布式环境的一种形式。为网络中不同主机间提供了一种高级的通信方法。它允许透明地调用一个远程过程,这与人们所熟悉的本地过程调用相似。本地过程调用和传统的RPC 是同步的,即当调用发生时,调用者需要等待结果返回后才能继续向下执行。它是以牺牲并行性和同时性为代价的。异步RPC 的设想是调用一个远程过程后,进程无需挂起,继续向下执行,从而优化程序结构,提高并行性,节省系统资源。本文从介绍RPC 的概念和基本原理入手,分析了RPC 的结构特点和工作机制,给出了异步RPC 的系统设计,提出采用调用代理和多线程的方法来实现异步RPC,这种设计可以改善程序结构,提高应用程序响应;和占用更少的系统资源;在改善性能的同时,保持了同步RPC 的简单性和通晓性。本文还给出了开发异步RPC应用程序的基本过程和一个异步RPC 的实现实例  (本文共77页) 本文目录 | 阅读全文>>

电子科技大学
电子科技大学

基于Protobuf的RPC系统的设计与实现

在当今社会,分布式系统是互联网中必不可少的组成部分,在分布式系统中RPC作为网络通信技术之一,被广泛应用。RPC全称Remote Procedure Call,是属于进程间通信技术的一种。RPC隐藏了底层网络通信细节,并且RPC中都会提供IDL语言以及相应的编译器,更加方便了用户的使用。protobuf是google公司进行数据序列化反序列的开源库,用户可以通过它对数据进行序列化和反序列化,它的特点是压缩率高,向后兼容性好,并且源码级别介入用户逻辑不需要单独的解释程序。组件技术一直以来都是用来解决软件复用性问题的利器之一。组件技术提出了软件二进制复用的思路,让软件的复用率得到极大的提高,人们可以通过组件之间的自由组合来达到软件快速部署的目的。本文中提到的OCF(Open Component Framework)平台是一个组件编写平台,使用OCF平台编写组件具有自身的特点,OCF中实现了接口和策略分离原则。但是OCF平台下缺少相应...  (本文共100页) 本文目录 | 阅读全文>>

华东师范大学
华东师范大学

一种用于高并发场景的图像处理集群系统的设计与实现

由于市场的需求,图像处理技术在近几年受到了极大的关注,与其相关的商业应用软件也在蓬勃发展。各大互联网和传统软件厂商不断的推出各种用途的在线图像处理服务,如交通系统的车牌识别服务,直播行业的实时鉴黄服务,在线地标识别服务等等。由于这些服务的提供商往往拥有庞大并且活跃的客户群体,所以对于在线图像处理服务的吞吐量、实时性及稳定性,有着较高的要求。为了应对上述图像处理服务的需求,本文提出了一种基于Java技术栈,使用了RPC思想和软负载均衡技术的集群系统。该集群系统为云服务提供商而设计,云服务提供商通过在自己的硬件系统中部署该集群系统,以允许第三方开发者或者云服务提供商自行向集群系统中部署图像处理算法服务,提供给云服务的用户使用。本集群系统使用了Zookeeper框架实现了一个配置中心,为系统提供了各节点的一致性保障与请求的域名解析服务。在配置中心中,通过实现软载均衡算法,可以有效的将用户请求分流,以适应高并发场景。在请求通过负载均衡服...  (本文共105页) 本文目录 | 阅读全文>>

西安电子科技大学
西安电子科技大学

IPv6分布式路由器中扩展RPC机制的设计与实现

远程过程调用(RPC)因简单、灵活,功能强大成为构造分布式系统的一种重要工具,自它出现以来得到了广泛的应用。现在大部分RPC机制不能适用像分布式路由器这样专用性很强的分布式多处理结构的系统。缺少像RPC这样的通信中间件的支持,在这些分布式多处理结构的系统中进行通信编程非常复杂。作者为某IPv6分布式路由器设计并实现了一种扩展RPC(ARPC)机制,该ARPC机制以IPv6分布式路由器中的进程间通信(IPC)协议作为底层通信协议,用XDR(外部数据表示)协议进行数据在本地和网络表示之间的转换,以支持异构处理机间的通信。除实现通常的RPC具有的功能外,ARPC还有许多新的功能和特点,比如动态负载平衡、服务透明、服务并行执行、同步、异步调用功能、不需按请求顺序响应、服务器的动态创建、客户—服务器支持、P2P的通讯风格、消息接受确认等。这些新功能为在IPv6分布式路由器中解决更高层次的问题奠定了坚实的基础。  (本文共55页) 本文目录 | 阅读全文>>

南京大学
南京大学

分布式流式图划分系统的设计与实现

随着大规模图计算和图存储的发展,单机的计算和存储能力已经难以胜任,将图数据划分成多个子图并分发到集群中进行分布式处理成为一个常见方案。如何进行图划分是一个有挑战的问题,一方面一个良好的划分结果需要子图间连通性和增大子图间平衡性两个可能冲突的目标问找到平衡点。另一方面,图划分系统还应该拥有较强的伸缩性、可靠性、可用性和性能。图划分任务可以被形式化为(k,v)平衡图划分问题,即将图G =(V,E)分为k个最大不超过vn/k的分量。目前常见的图划分算法可根据在线或离线、边划分或点划分分为四类。其中在线边划分算法由于具有较好的实时性,并且在幂率图上有着较好的性能,因此是目前较为流行的研究方向。为这些算法提供高效可靠的工程化实现是有意义的课题。本文的研究目的是设计并实现一个能够可靠使用的分布式流式图划分系统,该系统在实现上根据功能分为两个流式图划分和图存储两个子系统。流式图划分系统的设计基于Sajjad在2016年提出的HoVerCut在...  (本文共76页) 本文目录 | 阅读全文>>

电子科技大学
电子科技大学

基于中间件的黄金帐户管理系统的设计与实现

客户/服务器结构是由集中式处理过程过渡到分布式处理的有效途径。不同的数据库系统之间往往难以共享数据、缺乏可互操作性,在传统的客户/服务器两层体系结构中间加入一个中间软件层即中间件,扩展成客户——中间件——服务器三级体系结构,以实现对不同数据源的访问,中间件技术能够有效的实现异种数据库系统互操作和数据共享。本论文前半部分首先分析了客户/服务器结构的特点、优势和不足,以及客户/服务器结构发展的趋势和目标;接着介绍了中间件的定义、功能及其标准化问题,深入讨论了实现中间件的关键技术:RPC 和报文排队,并介绍了ODBC、CORBA、TOP/END、消息中间件、交易中间件和现在正在迅猛发展的对象中间件等几个典型的中间件的实现机制;然后讨论了基于客户/中间件/服务器的DBMS 体系结构。后半部分详细的阐述了一个具体的项目:黄金账户管理系统的分析、设计和实现。首先说明了在开发C++服务器/中间件中面临的困难和解决方法,并分析了以中间件NetL...  (本文共72页) 本文目录 | 阅读全文>>