CN103885973A - 一种基于Web引擎的远程过程调用***及实现方法 - Google Patents

一种基于Web引擎的远程过程调用***及实现方法 Download PDF

Info

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
Application number
CN201210560751.XA
Other languages
English (en)
Other versions
CN103885973B (zh
Inventor
胡琳琳
段虎才
孙鹏
邓峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201210560751.XA priority Critical patent/CN103885973B/zh
Publication of CN103885973A publication Critical patent/CN103885973A/zh
Application granted granted Critical
Publication of CN103885973B publication Critical patent/CN103885973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol 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领域,尤其涉及一种基于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脚本语言片段如下所示
Figure BDA00002628129100041
其中,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服务支撑环境。
CN201210560751.XA 2012-12-21 2012-12-21 一种基于Web引擎的远程过程调用***及实现方法 Active CN103885973B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中山大学 一种数字电视的浏览器***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姜虹: ""基于Web+Services的RPC体系结构的研究"", 《万方企业数据知识服务平台》 *

Cited By (10)

* Cited by examiner, † Cited by third party
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