当前位置:主页 > 管理论文 > 移动网络论文 >

多平台RPC统一调用框架的设计与实现

发布时间:2020-08-08 05:29
【摘要】:随着计算机技术和网络的飞速发展,嵌入式系统获得了大范围的应用。嵌入式系统的客户端程序可以运行在嵌入式系统中,也可以运行在嵌入式系统以外的其他系统中并通过API来调用嵌入式系统所提供的功能。在为嵌入式系统编写软件时,如何让处于不同地域,运行在不同系统上的客户端程序用统一的方式来调用嵌入式系统提供的功能成为一个重要的课题。简单来说,本文主要的研究目标是让嵌入式系统中的基于C语言的API函数可以在嵌入式系统外的任何其他异构系统中或者在嵌入式系统的任何进程中以和本地调用完全一样的函数调用方式被调用。这也即本文所要讨论的统一调用框架。远程过程调用(RPC)为这种客户端/服务器模式提供了便利。在保持调用语义和本地调用一致的情况下,客户端不必知道自己和服务的提供者(嵌入式系统提供的功能)是否处于同一进程或是同一系统。因此采用RPC作为嵌入式系统提供服务的接口是一个理想的选择。本文基于对RPC原理的研究和分析,提出了一种多平台RPC统一调用框架并加以实现。该统一调用框架基于以精简CORBA为基础实现的RPC调用,采用Flick开源IDL编译器生成客户端和服务端存根代码。在RPC的实现上基于Flick的运行时库,并在此基础上进行了扩展,使得对嵌入式系统软件API的RPC调用可发生在该嵌入式系统的不同进程中,也可发生在由网络连接的另一台主机的一个进程中。为了使RPC调用能在多平台上发起,在运行时库的实现上选择Socket作为数据传输的原语。为了使运行时库的实现和操作系统无关,引入了操作系统抽象层OSAL并将Socket相关的操作封装在这一抽象层中。操作系统抽象层可以对Linux和Windows分别有不同的实现使得RPC运行时库的实现本身无需知道其下所运行的具体操作系统,从而可进一步提高RPC统一调用框架的跨平台特性。最后针对一些具体应用场景进行了测试和分析,实验结果验证了所提出的统一调用框架的有效性和适用性。该统一调用框架的创新之处在于编写的客户端程序几乎可以不加修改地在各种异构硬件系统(硬件平台)和不同的操作系统(软件平台)之间移植。嵌入式系统软件开发者可以致力于将嵌入式系统的能力通过API形式向软件开发者提供。而嵌入式应用软件开发者则可以致力于在各种平台和环境下开发和嵌入式系统相关的应用。这样可以大大增加该嵌入式系统软件的应用领域,扩展可能的应用场景。该RPC统一调用框架在本人所在的公司中已经有Linux下的初步应用,硬件上包括ARM和Intel平台。未来还计划在Windows平台上增加相关应用。
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP312.1;TP393.09
【图文】:

嵌入式系统,灯泡,例子,开关状态


一个简单的嵌入式系统控制xample of an embedded syste一个嵌入式系统控制着一或关),获取开关状态,对应的嵌入式系统软件);灯泡的开关状态。对于时,灯泡点亮,其亮度由。对于 light_get_onoff,n 所指向的地址填入灯泡的方法。brightness 为 1

过程调用,执行流


亮度依然是 128。地过程调用了上面的简单嵌入式系统例子,我们可以来考察在常规的系统中,一般调用方式。首先,控制灯泡的应用程序一定是运行在同一个嵌当应用程序需要通过调用 light_set_onoff()来点亮灯泡时,它将 on序 的 返 回 地 址 压 入 栈 中 并 把 CPU 的 当 前 程 序 计 数 器 (Pset_onoff()函数代码所在的起始地址,随后将控制权交由该函数主体毕后,将返回值存入寄存器内,并从栈中取出返回地址赋予 PC,交还给函数的调用者。于调用者需要跳转到 light_set_onoff()函数所在的地址来执行该函数函数处在同一个进程中。另一方面,light_set_onoff()本身可能还要过程才能真正完成实际工作。整个过程调用的执行流程如图 2-2 所

远程过程调用,执行流,客户端,存根


调用方给出的过程参数(也称为过程的输入)按照一定方式进行打包,并交给端 RPC 运行库。RPC 运行时库在客户端进程和服务端进程都会运行一个实例户端进程中的 RPC 运行时库将打包好的过程调用输入以一个或多个数据包式发送给处于服务端进程中的 RPC 运行时库。之后客户端进程的 RPC 运行将客户端挂起,并等待服务器端 RPC 运行时库的返回数据包。服务端进程 RPC 运行时库收到数据包后将其交由服务器存根处理。服务器存根将数据后调用服务器端的过程来实现过程本身的功能。服务器端过程执行完毕,服存根将过程的输出和返回值再次打包,并交由服务器端 RPC 运行时库发还户端 RPC 运行时库。客户端 RPC 运行时库收到返回数据包后恢复客户端的,并把数据包交由客户端存根解包,客户端存根将结果返回至客户端。至此次 RPC 调用完成,控制权交换客户端调用方。客户端存根所完成的所有功客户端本身透明。由于 RPC 调用和调用本地函数一样的特性和语义,RPC 调用本身是一个调用。图 2-4 显示了 light_set_onoff()在一个 RPC 调用过程中,控制权的转程。

【相似文献】

相关期刊论文 前10条

1 陈良宽,王雅红;通用远程过程调用的设计与实现[J];小型微型计算机系统;1996年02期

2 薛家政;分布式计算环境中的一种通信机制:远程过程调用[J];小型微型计算机系统;1991年08期

3 姜立俊,杨学良,王丽英;异构环境下异步远程过程调用的设计与实现[J];计算机研究与发展;1995年01期

4 朱浩,徐丽,吴泉源;远程过程调用的实现、应用与问题[J];计算机工程与科学;1995年03期

5 程东年;分布式数据库系统的实现技术初探[J];信息工程学院学报;1996年02期

6 陈良宽;局域网中的远程过程调用[J];小型微型计算机系统;1987年06期

7 范宝德,刘惊雷;基于事务对象的RPC技术应用[J];计算机工程与应用;2004年19期

8 苏洁,李祥和,万方杰;利用远程过程调用获取网络信息[J];信息工程大学学报;2000年01期

9 彭明田,杨学良;分布式多媒体计算机系统中远程过程调用的设计与实现[J];计算机研究与发展;1997年05期

10 陈楠;在Sybase SQL Server上实现远程过程调用[J];微电脑世界;1997年02期

相关会议论文 前5条

1 高明;李智;;嵌入式系统中的Web远程过程调用实现方案探讨[A];2007'中国仪器仪表与测控技术交流大会论文集(二)[C];2007年

2 李洋;刘真;;网络文件系统安全性问题分析及安全策略[A];全国第十五届计算机科学与技术应用学术会议论文集[C];2003年

3 郭硕;;链接服务器在跨网段间数据通信中的应用[A];2005中国钢铁年会论文集(第4卷)[C];2005年

4 陈安军;;LXI总线基于VXI-11的自动发现机制研究[A];2009中国仪器仪表与测控技术大会论文集[C];2009年

5 樊强;冯玉才;李曲;;关于分布式DBMS中网络通信的若干问题的探讨[A];第十二届全国数据库学术会议论文集[C];1994年

相关重要报纸文章 前7条

1 ;SOA延伸企业应用视野[N];网络世界;2005年

2 芜湖市社会保障局计算机管理科 孙柏林;C/S双向数据传递的四座“桥”[N];计算机世界;2002年

3 孙柏林;客户机/服务器结构中的双向数据传递[N];中国计算机报;2002年

4 ;CERT警告出现大规模攻击[N];计算机世界;2003年

5 李玉祥 沈刘军;别被Web Service搞糊涂[N];电脑报;2003年

6 ;实施SOA的十大建议[N];网络世界;2007年

7 主持人:潘永花;10种最严重的Internet安全威胁[N];网络世界;2000年

相关博士学位论文 前1条

1 万勇;集群系统中的网络性能优化方法研究[D];华中科技大学;2013年

相关硕士学位论文 前10条

1 马骏;多平台RPC统一调用框架的设计与实现[D];上海交通大学;2018年

2 严静;基于数据分发服务的远程过程调用机制的研究与实现[D];东南大学;2017年

3 王纪臣;异步RPC的设计与实现[D];吉林大学;2005年

4 丁祥;基于远程过程调用的Android RIL层的设计与实现[D];上海交通大学;2014年

5 张羽;一种分布式服务治理框架的设计与实现[D];北京交通大学;2016年

6 高立涛;Windows网络下的RPC攻击检测方法研究[D];北京交通大学;2007年

7 王斌斌;基于Protobuf的RPC系统的设计与实现[D];电子科技大学;2016年

8 吕云鹏;地产公司内勤辅助系统的设计与实现[D];吉林大学;2016年

9 李大山;嵌入式网络存储服务器的优化研究[D];上海交通大学;2010年

10 王yN

本文编号:2785125


资料下载
论文发表

本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2785125.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户24bc0***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com