CN103885973A - 一种基于Web引擎的远程过程调用***及实现方法 - Google Patents
一种基于Web引擎的远程过程调用***及实现方法 Download PDFInfo
- Publication number
- CN103885973A CN103885973A CN201210560751.XA CN201210560751A CN103885973A CN 103885973 A CN103885973 A CN 103885973A CN 201210560751 A CN201210560751 A CN 201210560751A CN 103885973 A CN103885973 A CN 103885973A
- Authority
- CN
- China
- Prior art keywords
- rpc
- request
- web application
- rpc service
- supporting environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种基于Web引擎的RPC***及实现方法,应用于包括RPC请求方和RPC服务方构成的RPC***中,RPC请求方包括Web应用和RPC服务支撑环境,RPC请求方执行以下步骤:Web应用向RPC服务支撑环境发起RPC请求,RPC请求包括多种请求结果的回调函数;RPC服务支撑环境将RPC请求转发给RPC服务方,并等待应答信息;RPC服务支撑环境接收来自的RPC服务方的应答信息,并将请求结果返回给Web应用;Web应用根据所述请求结果调用回调函数,并进行相应的操作。本发明在Web引擎上运行的Web应用可以直接调用远程服务器上的过程实现来请求服务,充分利用网络中的服务资源,从而提高用户体验。
Description
技术领域
本发明涉及Web领域,尤其涉及一种基于Web引擎的远程过程调用***及实现方法。
背景技术
海计算(Sea Computing)为用户提供基于互联网的一站式服务,是一种最简单可依赖的互联网需求交互模式。用户只要在海计算输入服务需求,***就能明确识别这种需求,并将该需求分配给最优的应用或内容资源提供商处理,最终返回给用户相匹配的结果。
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。
随着海云计算的发展,Web引擎居于越来越重要的地位,基于Web引擎的Web应用发展越来越快,尤其是随着HTML5的发展和完善,Web应用具有了更多之前只有本地应用才有的特性,比如多线程,音视频播放,Socket通信,Notification,数据库操作等等。Web应用大有取代传统的本地应用的趋势。远程过程调用(Remote Procedure Call,RPC)是一种可以在本地机器上直接调用远程过程的方法,一直在基于本地应用的分布式计算中被广泛采用。相比于Web应用,本地应用有开发速度慢,周期长,应用稳定性、健壮性差等缺点。随着Web应用逐渐替代本地应用,在海云计算中,要让计算功能比较弱的终端能够快速执行复杂的Web计算,充分利用海云中的其它终端资源,让Web引擎支持RPC远程过程调用,对于Web应用的集群及分布式计算具有重要意义。
发明内容
本发明的目的在于,让Web引擎上运行的Web应用可以直接调用远程服务器上的过程实现来请求服务,充分利用海云环境中的服务资源,从而提高用户体验。
为实现上述目的,一方面,本发明提供了一种基于Web引擎的RPC实现方法,该方法应用于包括RPC请求方和RPC服务方构成的RPC***中,所述RPC请求方包括Web应用和RPC服务支撑环境,所述RPC请求方执行以下步骤:
所述Web应用向所述RPC服务支撑环境发起RPC请求,所述RPC请求包括多种请求结果的回调函数;
所述RPC服务支撑环境将所述RPC请求转发给所述RPC服务方,并等待应答信息;
所述RPC服务支撑环境接收来自所述的RPC服务方的应答信息,并将请求结果返回给所述Web应用;
所述Web应用根据所述请求结果调用回调函数,并进行相应的操作。
另一方面,本发明提供了一种基于Web引擎的RPC***,该***包括RPC请求端和RPC服务端,所述RPC请求端包括Web应用和RPC服务支撑环境。
Web应用用于负责向RPC服务支撑环境发起RPC请求,同时负责根据应答信息调用回调函数,并进行相应的操作。
RPC服务支撑环境用于负责向RPC服务端转发Web应用的RPC请求,以及接收来自RPC服务端的应答信息。
RPC服务端用于接收来自RPC服务支撑环境的RPC请求,并对其进行解析,执行相应的操作,并将操作的结果返回给RPC服务支撑环境。
本发明的有益效果在于,通过直接调用远程服务器上的过程实现来请求服务,可充分利用网络中的资源;通过在Web应用上进行RPC调用,相比于现有基于本地应用的RPC调用,其调用方式更加简单。
附图说明
通过以下结合附图以举例方式对本发明的实施方式进行详细描述后,本发明的其他特征、特点和优点将会更加明显。
图1为本发明实施例提供的一种基于Web引擎的远程过程调用实现方法流程示意图;
图2为本发明实施例提供的一种基于Web引擎的远程过程调用***结构示意图;
图3为本发明实施例提供的一种基于Web引擎的远程过程调用***信息交互示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
图1为本发明实施例提供的一种基于Web引擎的远程过程调用实现方法流程示意图,该方法应用于包括RPC请求方和RPC服务方构成的RPC***中,该RPC请求方包括Web应用和RPC服务支撑环境。如图1所示,该方法包括步骤101-步骤104。
在步骤101,Web应用向RPC服务支撑环境发起RPC请求,所述RPC请求包括多种请求结果的回调函数。
Web应用是指用标准的HTML、JavaScript或CSS脚本语言实现的Web应用。Web应用通过提供的RPC服务方的域名或IP地址以及服务端口号来建立一个连接,由于当前Web引擎支持HTML5的WebSocket,因此可采用WebSocket的连接方式来建立Web应用与RPC服务支撑环境的连接。例如,一个RPC服务方的连接URI(Uniform Resource Identifier,通用资源标识符)格式为ws://example.com:port,其中ws代表WebSocket协议,example.com是服务方域名,port是服务方的服务端口号。
以下通过JavaScript脚本语言片段进行说明:
JavaScript脚本语言片段如下所示
其中,rpc是一个扩展的全局的JavaScript脚本语言的RPC对象,该对象创建的时候需要指定域名和端口号,通过调用rpc.connect来建立连接。建立连接成功后的对象为session,session中发起一个RPC请求,此处通过使用URI+函数名的方式来标识一个接口,通过session.call发起一个远程过程调用,call中的第一个参数为远程过程名称,后面的参数为函数的参数。在发起远程过程调用之后有成功后的回调函数function(res)和失败后的回调函数function(error,desc)。
在步骤102,RPC服务支撑环境将RPC请求转发给RPC服务方,并等待应答信息。
具体地,RPC服务支撑环境在接收到来自Web应用的RPC请求后,对其进行解析,并与RPC服务方建立RPC连接,向其转发Web应用的RPC请求,并等待应答信息。RPC服务支撑环境与RPC服务方之间制定有通信协议。其通信请求的数据格式为:请求类型(1字节)|请求长度(4字节){|请求的URI长度URILength(4字节)|请求的URI(URILength字节)|请求的第一个参数的长度argLength1(4字节)|第一个参数(argLength1字节)|……|请求的第N个参数的长度argLengthN(4字节)|第N个参数(argLengthN字节)},其中{}中的项为可选项,其中的请求类型包括RPC连接请求、RPC调用请求,RPC连接中断请求,其长度为1个字节;请求长度是指后续的通信数据的长度,其占用4个字节,则通信数据的最大长度可以为4294967296字节;后面的域是可选域,只有在请求类型为RPC调用请求时才存在,其以函数名和参数的顺序排列,函数名以URI的格式指定,其长度为URILength字节,后续的参数的长度分别由其前面的参数长度域指定长度。
需要说明的是,RPC服务支撑环境需要对多个页面发起的多个RPC请求进行控制,通过采用异步通信方式,以避免阻塞的发生。
在步骤103,RPC服务支撑环境接收来自RPC服务方的应答信息,并将请求结果返回给所述Web应用。
具体地,RPC服务方与RPC服务支撑环境之间依据事先制定的通信协议进行通信,RPC服务方接收到来自RPC服务支撑环境的请求后,对其进行解析,执行相应的操作,并将操作的结果返回给RPC服务支撑环境。
RPC服务方返回给RPC服务支撑环境的应答信息的数据格式为:应答长度(4字节)|应答结果(1字节)|应答的URI长度URILength(4字节)|应答的URI(URILength字节)|{|应答数据1长度ackLength1(4字节)|应答数据1(ackLength1字节)|……|应答数据N长度ackLengthN(4字节)|应答数据N(ackLengthN字节)},其中,应答长度为整个应答数据的长度,应答结果分为成功,失败,可以再分为更详细的成功,失败定义。应答URI指此应答对应的Web应用的RPC调用。同样,{}中的域为可选项,包含了RPC请求成功后的应答数据。
RPC服务支撑环境在接收到来自RPC服务方的应答信息后,再对应答信息中的数据进行解析,封装成Web应用能够识别的格式,并返回给Web应用。
在步骤104,Web应用根据应答结果调用回调函数,并进行相应的操作。
具体地,Web应用在接收到来自RPC服务支撑环境的请求结果后,调用其在发起RPC请求时定义的回调函数,如果Web应用中没定义某种结果的回调函数,则不会进行任何操作。
本发明实施例基于Web引擎RPC调用引入到了Web应用中,让整个网络上的所有设备之间在Web应用的层面上进行资源共享,可充分利用整个网络的计算、存储资源。
图2为本发明实施例提供的一种基于Web引擎的远程过程调用***结构示意图。如图2所示,该***包括RPC请求端20和RPC服务端30,所述RPC请求端20包括Web应用21和RPC服务支撑环境22。
Web应用21用于负责向RPC服务支撑环境发起RPC请求,同时负责根据应答信息调用回调函数,并进行相应的操作。
RPC服务支撑环境22用于向RPC服务端30转发Web应用的RPC请求,以及接收来自RPC服务端30的应答信息。
具体地,RPC服务支撑环境22在接收到来自Web应用的RPC请求后,对其进行解析,并与RPC服务方建立RPC连接,向其转发Web应用的RPC请求。
RPC服务端30用于接收来自RPC服务支撑环境22的RPC请求,并对其进行解析,执行相应的操作,并将操作的结果返回给RPC服务支撑环境22。
图3为本发明实施例提供的一种基于Web引擎的远程过程调用***信息交互过程示意图。如图3的示,该***的信息交互过程如下:
首先由RPC请求端的Web应用层,例如,通过JavaScript脚本语言实现的Web应用层,与RPC支撑环境层建立RPC的连接,并向其发起RPC请求。RPC支撑环境层对接收的RPC请求信息进行解析,并向RPC服务端转发该RPC请求。RPC服务端接收来自RPC服务支撑环境层的RPC请求后,对其进行解析,执行相应的操作,并将操作的结果返回给RPC服务支撑环境层。RPC服务支撑环境层将RPC请求的结果发送给Web应用层,Web应用层根据应答结果调用回调函数,并向RPC支撑环境层发起远程过程调用请求。RPC支撑环境层对接收的RPC请求信息进行解析,并向RPC服务端转发该RPC请求。RPC服务端接收来自RPC服务支撑环境层的RPC请求后,对其进行处理,并返回处理结果,Web应用层根据处理结果调用回调函数。
本发明实施例在Web引擎上运行的Web应用可以直接调用远程服务器上的过程实现来请求服务,充分利用海云环境中的服务资源,从而提高用户体验。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。
Claims (8)
1.一种基于Web引擎的RPC实现方法,应用于包括RPC请求方和RPC服务方构成的RPC***中,所述RPC请求方包括Web应用和RPC服务支撑环境,其特征在于,所述RPC请求方执行以下步骤:
所述Web应用向所述RPC服务支撑环境发起RPC请求,所述RPC请求包括多种请求结果的回调函数;
所述RPC服务支撑环境将所述RPC请求转发给所述RPC服务方,并等待应答信息;
所述RPC服务支撑环境接收来自所述的RPC服务方的应答信息,并将请求结果返回给所述Web应用;
所述Web应用根据所述请求结果调用回调函数,并进行相应的操作。
2.根据权利要求1所述的方法,其特征在于:所述Web应用通过JavaScript脚本语言与所述RPC服务方建立RPC连接。
3.根据权利要求1所述的方法,其特征在于:所述RPC服务支撑环境与所述RPC服务方之间制定通信协议,提供与所述RPC服务方的通信支持。
4.根据权利要求1所述的方法,其特征在于:所述Web应用包括由CSS、HTML和JavaScript脚本语言中一种或多种脚本语言实现的应用。
5.根据权利要求1所述的方法,其特征在于:所述Web应用与所述RPC服务支撑环境通过WebSocket的连接方式来建立连接。
6.根据权利要求1所述的方法,其特征在于:所述Web应用通过指定其协议的域名和端口号来确定RPC服务方。
7.根据权利要求1所述的方法,其特征在于:所述Web应用采用通用资源标识符的格式来指定RPC调用的接口定义。
8.一种基于Web引擎的RPC***,包括RPC请求端和RPC服务端,所述RPC请求端包括Web应用和RPC服务支撑环境,其特征在于:
Web应用,用于负责向所述RPC服务支撑环境发起RPC请求,同时负责根据应答信息调用回调函数,并进行相应的操作;
RPC服务支撑环境,用于向所述RPC服务端转发所述Web应用的RPC请求,以及接收来自RPC服务端的应答信息;
RPC服务端,用于接收来自所述RPC服务支撑环境的RPC请求,并对其进行解析,执行相应的操作,并将操作的结果返回给所述RPC服务支撑环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560751.XA CN103885973B (zh) | 2012-12-21 | 2012-12-21 | 一种基于Web引擎的远程过程调用***及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560751.XA CN103885973B (zh) | 2012-12-21 | 2012-12-21 | 一种基于Web引擎的远程过程调用***及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885973A true CN103885973A (zh) | 2014-06-25 |
CN103885973B CN103885973B (zh) | 2017-07-07 |
Family
ID=50954868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210560751.XA Active CN103885973B (zh) | 2012-12-21 | 2012-12-21 | 一种基于Web引擎的远程过程调用***及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885973B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815083A (zh) * | 2016-12-20 | 2017-06-09 | 微梦创科网络科技(中国)有限公司 | 一种基于Memcache协议的客户端异步处理方法及客户端 |
CN107402826A (zh) * | 2017-06-30 | 2017-11-28 | 武汉斗鱼网络科技有限公司 | 一种以异步方式进行远程过程调用的方法及装置 |
CN107526624A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN107592358A (zh) * | 2017-09-19 | 2018-01-16 | 广州视源电子科技股份有限公司 | 基于http服务的应用程序接口调用方法和装置 |
CN108093005A (zh) * | 2016-11-22 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 一种接口异常调用的管理方法和*** |
CN110430100A (zh) * | 2019-08-27 | 2019-11-08 | 中国工商银行股份有限公司 | 网络连通性探测方法和装置 |
CN112328410A (zh) * | 2020-11-04 | 2021-02-05 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152397A (ja) * | 2006-12-14 | 2008-07-03 | Canon Inc | 情報処理方法及び装置並びに情報処理システム |
CN101697139B (zh) * | 2009-11-06 | 2013-04-17 | 金蝶软件(中国)有限公司 | 一种远程过程调用方法、装置和注册库 |
CN102495677A (zh) * | 2011-11-23 | 2012-06-13 | 浪潮电子信息产业股份有限公司 | 一种通过WEB页面实现KVM over IP的方法 |
CN102665127A (zh) * | 2012-04-23 | 2012-09-12 | 中山大学 | 一种数字电视的浏览器*** |
-
2012
- 2012-12-21 CN CN201210560751.XA patent/CN103885973B/zh active Active
Non-Patent Citations (1)
Title |
---|
姜虹: ""基于Web+Services的RPC体系结构的研究"", 《万方企业数据知识服务平台》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093005A (zh) * | 2016-11-22 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 一种接口异常调用的管理方法和*** |
CN108093005B (zh) * | 2016-11-22 | 2020-11-03 | 北京京东尚科信息技术有限公司 | 一种接口异常调用的管理方法和*** |
CN106815083A (zh) * | 2016-12-20 | 2017-06-09 | 微梦创科网络科技(中国)有限公司 | 一种基于Memcache协议的客户端异步处理方法及客户端 |
CN106815083B (zh) * | 2016-12-20 | 2019-11-12 | 微梦创科网络科技(中国)有限公司 | 一种基于Memcache协议的客户端异步处理方法及客户端 |
CN107402826A (zh) * | 2017-06-30 | 2017-11-28 | 武汉斗鱼网络科技有限公司 | 一种以异步方式进行远程过程调用的方法及装置 |
CN107526624A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN107592358A (zh) * | 2017-09-19 | 2018-01-16 | 广州视源电子科技股份有限公司 | 基于http服务的应用程序接口调用方法和装置 |
CN110430100A (zh) * | 2019-08-27 | 2019-11-08 | 中国工商银行股份有限公司 | 网络连通性探测方法和装置 |
CN112328410A (zh) * | 2020-11-04 | 2021-02-05 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
CN112328410B (zh) * | 2020-11-04 | 2023-08-08 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103885973B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885973A (zh) | 一种基于Web引擎的远程过程调用***及实现方法 | |
JP6093482B2 (ja) | 携帯端末で検索結果を表示する方法及び装置 | |
KR102109985B1 (ko) | 애플리케이션 디스커버리 | |
WO2016127793A1 (zh) | 消息发送方法、装置、***和服务器 | |
WO2016054977A1 (zh) | 一种互动应答的方法及装置 | |
US20180343214A1 (en) | Information Exchange Method, Client, and Apparatus | |
CN102393857A (zh) | 一种用网页进行本地调用的方法和*** | |
CN108540515B (zh) | 一种数据处理方法及服务器 | |
US20150215579A1 (en) | Method, apparatus, system, and storage medium for video call and video call control | |
CN106357697A (zh) | 一种基于WebSocket属性同步的多终端页面同步方法 | |
CN104378436A (zh) | 一种基于服务器推送的信息推送***及推送方法 | |
US20190370293A1 (en) | Method and apparatus for processing information | |
TW201818317A (zh) | 業務實現方法、支付方法、業務實現裝置及支付服務端 | |
CN109088918B (zh) | 一种交互方法、客户端设备及服务端设备 | |
CN109218272B (zh) | 媒体内容推送方法、装置、服务器、***及存储介质 | |
CN112804366B (zh) | 用于解析域名的方法和装置 | |
CN105025042B (zh) | 一种确定数据信息的方法及***、代理服务器 | |
CN103533001A (zh) | 基于http多重代理的通信方法和***、中间代理服务器 | |
US10108588B2 (en) | Method and system for communicating between client pages | |
CN109600452B (zh) | 服务器集群、消息推送方法及相关服务器 | |
CN103440134A (zh) | 基于webkit内核的存储资源服务的本地扩展方法 | |
CN105224573B (zh) | 一种规则数据配置方法及装置、*** | |
WO2017173967A1 (zh) | 重定向方法、服务商、非结构化补充数据业务中心及*** | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
EP3079338B1 (en) | Method for web service supporting synchronous hosting of multiple devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210802 Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001 Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd. Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES |