CN103885973B - 一种基于Web引擎的远程过程调用***及实现方法 - Google Patents
一种基于Web引擎的远程过程调用***及实现方法 Download PDFInfo
- Publication number
- CN103885973B CN103885973B CN201210560751.XA CN201210560751A CN103885973B CN 103885973 B CN103885973 B CN 103885973B CN 201210560751 A CN201210560751 A CN 201210560751A CN 103885973 B CN103885973 B CN 103885973B
- Authority
- CN
- China
- Prior art keywords
- rpc
- web
- environment
- service
- rpc service
- 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.)
- Active
Links
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 (4)
1.一种基于Web引擎的RPC实现方法,应用于包括RPC请求方和RPC服务方构成的RPC***中,所述RPC请求方包括Web应用和RPC服务支撑环境,其特征在于,所述RPC请求方执行以下步骤:
所述Web应用向所述RPC服务支撑环境发起RPC请求,所述RPC请求包括多种请求结果的回调函数;其中,所述Web应用通过JavaScript脚本语言与所述RPC服务方建立RPC连接;所述Web应用通过指定其协议的域名和端口号来确定RPC服务方;
所述RPC服务支撑环境将所述RPC请求转发给所述RPC服务方,并等待应答信息;其中,所述RPC请求类型包括RPC连接请求、RPC调用请求和RPC连接中断请求,所述请求的长度为后续通信数据的长度,与所述请求的长度相邻的为可选域,当所述请求类型为RPC调用时,其以函数名和参数的顺序排列,所述函数名以UPI的格式设定;当所述RPC服务支撑环境需要对多个页面发起的对个所述RPC请求进行控制,则通过采用异步通信方式;
所述RPC服务支撑环境接收来自所述的RPC服务方的应答信息,并将请求结果返回给所述Web应用;
所述Web应用根据所述请求结果调用回调函数,并进行相应的操作;
所述Web应用与所述RPC服务支撑环境通过WebSocket的连接方式来建立连接;
所述Web应用采用通用资源标识符的格式来指定RPC调用的接口定义。
2.根据权利要求1所述的方法,其特征在于:所述RPC服务支撑环境与所述RPC服务方之间制定通信协议,提供与所述RPC服务方的通信支持。
3.根据权利要求1所述的方法,其特征在于:所述Web应用包括由CSS、HTML和JavaScript脚本语言中一种或多种脚本语言实现的应用。
4.一种基于Web引擎的RPC***,包括RPC请求端和RPC服务端,所述RPC请求端包括Web应用和RPC服务支撑环境,其特征在于:
Web应用,用于负责向所述RPC服务支撑环境发起RPC请求,同时负责根据应答信息调用回调函数,并进行相应的操作;
RPC服务支撑环境,用于向所述RPC服务端转发所述Web应用的RPC请求,以及接收来自RPC服务端的应答信息;
RPC服务端,用于接收来自所述RPC服务支撑环境的RPC请求,并对其进行解析,执行相应的操作,并将操作的结果返回给所述RPC服务支撑环境;所述Web应用与所述RPC服务支撑环境通过WebSocket的连接方式来建立连接;
所述Web应用采用通用资源标识符的格式来指定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 CN103885973A (zh) | 2014-06-25 |
CN103885973B true 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) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093005B (zh) * | 2016-11-22 | 2020-11-03 | 北京京东尚科信息技术有限公司 | 一种接口异常调用的管理方法和*** |
CN106815083B (zh) * | 2016-12-20 | 2019-11-12 | 微梦创科网络科技(中国)有限公司 | 一种基于Memcache协议的客户端异步处理方法及客户端 |
CN107402826B (zh) * | 2017-06-30 | 2018-09-21 | 武汉斗鱼网络科技有限公司 | 一种以异步方式进行远程过程调用的方法及装置 |
CN107526624B (zh) * | 2017-07-18 | 2020-12-08 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN107592358A (zh) * | 2017-09-19 | 2018-01-16 | 广州视源电子科技股份有限公司 | 基于http服务的应用程序接口调用方法和装置 |
CN110430100B (zh) * | 2019-08-27 | 2021-06-04 | 中国工商银行股份有限公司 | 网络连通性探测方法和装置 |
CN112328410B (zh) * | 2020-11-04 | 2023-08-08 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1933527A2 (en) * | 2006-12-14 | 2008-06-18 | Canon Kabushiki Kaisha | Information processing method and system |
CN101697139A (zh) * | 2009-11-06 | 2010-04-21 | 金蝶软件(中国)有限公司 | 一种远程过程调用方法、装置和注册库 |
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
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1933527A2 (en) * | 2006-12-14 | 2008-06-18 | Canon Kabushiki Kaisha | Information processing method and system |
CN101697139A (zh) * | 2009-11-06 | 2010-04-21 | 金蝶软件(中国)有限公司 | 一种远程过程调用方法、装置和注册库 |
CN102495677A (zh) * | 2011-11-23 | 2012-06-13 | 浪潮电子信息产业股份有限公司 | 一种通过WEB页面实现KVM over IP的方法 |
CN102665127A (zh) * | 2012-04-23 | 2012-09-12 | 中山大学 | 一种数字电视的浏览器*** |
Non-Patent Citations (1)
Title |
---|
"基于Web+Services的RPC体系结构的研究";姜虹;《万方企业数据知识服务平台》;20100119;论文第3.4节、第4.1.1节、图4.1 * |
Also Published As
Publication number | Publication date |
---|---|
CN103885973A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885973B (zh) | 一种基于Web引擎的远程过程调用***及实现方法 | |
CN109067914B (zh) | Web服务的代理方法、装置、设备及存储介质 | |
US10027742B2 (en) | Techniques for sharing application states | |
WO2016127793A1 (zh) | 消息发送方法、装置、***和服务器 | |
EP2854376B1 (en) | Transmission method, device and system for media stream | |
US7634564B2 (en) | Systems and methods for invoking a service from a plurality of event servers in a network | |
US6119166A (en) | Controlling communications with local applications using a browser application | |
US10496245B2 (en) | Method for interactive response and apparatus thereof | |
EP2620872B1 (en) | Method and device for callback processing in telecommunication capacity opening | |
EP3195580B1 (en) | System and method for enhancing user experience during interactive audio-visual communication | |
CN101960822A (zh) | Sip-http应用相关器 | |
CN109547547A (zh) | 回源调度方法、装置及其存储介质 | |
CN107979520B (zh) | 消息处理方法及消息处理装置 | |
WO2021013023A1 (zh) | 一种微服务间通信方法、计算机设备及存储介质 | |
US11843642B1 (en) | Serverless signaling in peer-to-peer session initialization | |
CN102571575A (zh) | 一种session 信息创建方法、装置和*** | |
CN106357713B (zh) | 实现远程过程调用的方法和客户端装置以及服务器装置 | |
CN110392069A (zh) | Cdn业务调度处理方法及cdn服务器 | |
US7418712B2 (en) | Method and system to support multiple-protocol processing within worker processes | |
CN110113298A (zh) | 数据传输方法、装置、信令服务器和计算机可读介质 | |
CN104219257A (zh) | 一种网页实时通信方法、***及服务器和客户端 | |
JP2010511236A (ja) | ウェブ・サービス・エンドポイントを表すエンドポイント参照を変更する方法、装置およびコンピュータ・プログラム | |
US20140068001A1 (en) | Intermediate proxy server, communication method, and communication system based on http multi-level proxy | |
US10108588B2 (en) | Method and system for communicating between client pages | |
CN105359494B (zh) | 网站之间的镜像呈现***、装置、方法及网络服务器节点 |
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 |