JSON-RPC协议分析、扩展和其应用.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSON-RPC 协议分析、扩展及其应用 李德贤,李嵩山,李志勇 云南大学信息学院计算机系,昆明 (650091) E-mail:xuerldx@ ,ssli@,zyli@ 摘 要:随着 web 和中间件技术的飞速发展,二者的结合也日趋紧密,从某种程度上说, web 就是中间件。Internet 已成为web 应用的默认平台,而中间件已成为Web 应用中必不可 少的组件,但是建立复杂性不断增加的应用程序的需求一直以来都超出传统网络应用所能表 现复杂性方面的能力。因而实现一种既有C/S 架构的强大的客户端处理功能,又有B/S 架构 的易部署性和强大的服务端处理能力的平台就很有必要了。本文从中间件的概念入手,介绍 了特定的使用新型数据交换格式JSON 的远程过程调用中间件JSON-RPC ,着重分析了其原 理、实现以及在构件化开发过程中的作用。其次,还对其实现过程中的同步和异步通信作了 一定的阐述。最后,根据具体的应用对其实现作了一定的改进,使其更加健壮。 关键词:中间件,JSON ,JSON-RPC ,同步、异步调用,构件 中图分类号:TP391 随着web 和中间件技术的飞速发展,二者的结合也日趋紧密。Internet 已成为web 应用 的默认开发平台,而中间件已成为Web 应用必不可少的组件。 1.中间件技术简介 中间件技术是伴随网络而发展起来的一种面向对象的技术。网络出现后,产生了 Client/Server 的计算服务模式,多个客户端可以共享数据库服务器等等。随着网络的更进一 步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用 的规模也从局域网发展到广域网。在这种情况下,Client/Server 模式的局限性也就暴露出来 了,于是现代意义上的中间件也就应运而生。 1.1 中间件技术相关概念 对于不同的应用环境,对于中间件是由哪些组件组成的理解也不一样,因而就没有一个 通用的中间件的定义。 中间件是一个转换器,把一端的资源转换为另一端所能接受的形式供给对方处理。在具 体实现上,其是一个用应用程序接口定义的分布式软件管理框架,具有强大的通信能力和良 好的可扩展性,在分布式系统中的位置如图1.1 所示。 图1.1 中间件在分布式系统的位置 随着计算机软件技术的发展,中间件技术也已经日渐成熟,并且出现了不同层次、不同 类型的中间件产品。按照 IDC 的分类方法,中间件可分为六类:数据访问中间件、远程过 程调用(RPC )中间件、消息中间件、交易中间件、对象中间件等。 - 1 - 1.2 RPC 协议简介 [1] 远程过程调用(RPC ) 是一种从远程计算机程序上请求一个服务器,而不需要了解上 层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP 或HTTP ,使得 通信程序之间能传输信息数据 RPC 使用的是客户机/服务器模式。请求程序就是一个客户机,而服务程序就是一个服 务器。首先,调用过程发送一个调用信息到服务过程,然后等待应答信息。调用过程包括过 程参数,应答信息包括过程结果。在服务器端,过程保持睡眠状态到调用信息的到达。当一 个调用信息到达,服务器获得过程参数,计算结果,发送应答信息,然后等待下一个调用信 息。最后,调用过程接收应答信息,获得过程结果,然后调用执行继续进行。在客户端应用 程序被编译的时候,编译器为客户端创建一个本地存根(stub),为服务端也创建一个相对应 的存根,它们在应用程序需要远程方法的时候被调用,用于负责客户端与服务端之间的通信, 是一种典型的同步调用通信,如图1.2 所示: 图1.2 Remote Procedure Call 在本文中,我们所讲的远程过程调用是指基于 Web 的在不刷新页

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档