CN103095785B - 远程过程调用方法和系统、客户端及服务器 - Google Patents

远程过程调用方法和系统、客户端及服务器 Download PDF

Info

Publication number
CN103095785B
CN103095785B CN201110351237.0A CN201110351237A CN103095785B CN 103095785 B CN103095785 B CN 103095785B CN 201110351237 A CN201110351237 A CN 201110351237A CN 103095785 B CN103095785 B CN 103095785B
Authority
CN
China
Prior art keywords
scalar
recalls information
client
parameter
called
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
Application number
CN201110351237.0A
Other languages
English (en)
Other versions
CN103095785A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201110351237.0A priority Critical patent/CN103095785B/zh
Publication of CN103095785A publication Critical patent/CN103095785A/zh
Priority to HK13107585.1A priority patent/HK1180486A1/zh
Application granted granted Critical
Publication of CN103095785B publication Critical patent/CN103095785B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种远程过程调用方法和系统、一种客户端和一种服务器,其中,远程过程调用方法包括:客户端向服务器端发送RPC的调用信息,所述调用信息中携带有标量参数;所述客户端接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。通过本申请,有效避免了RPC过程中的数据传输和利用的浪费,极大地提高了网络带宽利用率。

Description

远程过程调用方法和系统、客户端及服务器
技术领域
本申请涉及网络技术领域,特别是涉及一种远程过程调用方法和系统、一种客户端和一种服务器。
背景技术
RPC(RemoteProcedureCall,远程过程调用)是一种使用RPC协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的技术。其中,RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
通常,RPC采用客户机/服务器模式,请求程序就是一个客户机,而服务提供程序就是一个服务器。在进行RPC时,首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息;在服务器端,进程保持睡眠状态直到调用信息到达为止,当一个调用信息到达时,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息;最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
运行时,一次客户机对服务器的RPC调用,其内部操作大致包括如下步骤:调用客户端句柄,执行传送参数;调用本地系统内核发送网络消息;消息传送到远程主机;服务器句柄得到消息并取得参数;执行远程过程;将执行结果返回服务器句柄;服务器句柄返回结果,调用远程系统内核;消息传回本地主机;客户句柄由内核接收消息;客户接收句柄返回的数据。
上述RPC过程中,因为接收返回数据的接口设计实现问题,针对一次请求,服务端会全量返回调用数据。然而,全量返回的数据,经常只有部分被使用,从而造成调用数据传输和利用的极大浪费。
发明内容
本申请提供一种远程过程调用方法和系统、一种客户端和一种服务器,以解决RPC过程中,数据传输和利用浪费的问题。
为了解决上述问题,本申请公开了一种远程过程调用方法包括:客户端向服务器端发送RPC的调用信息,所述调用信息中携带有标量参数;所述客户端接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。
优选地,所述标量参数通过以下方式获得:所述客户端对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;对进行了所述标量替换操作后的所述信息的内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数。
优选地,当将所述不需要调用的标量作为所述调用信息的标量参数时,所述客户端接收的所述答复信息为:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为不需要返回的标量数据后,对所述答复信息中不需要返回的标量数据进行有损压缩或删除处理后的答复信息。
优选地,当将所述需要调用的标量作为所述调用信息的标量参数时,所述客户端接收的所述答复信息为:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为需要返回的标量数据后,对所述答复信息中包含的除所述需要返回的标量数据外的,其它不需要返回的标量数据进行有损压缩或删除处理后的答复信息。
优选地,所述标量参数设置于所述调用信息的信息头。
为了解决上述问题,本申请还公开了一种客户端,包括:发送模块,用于向服务器端发送远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;接收模块,用于接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。
优选地,所述客户端还包括:标量替换模块,用于对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;获取模块,用于对进行了所述标量替换操作后的所述信息的内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;设置模块,用于将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数。
优选地,所述标量参数位于所述调用信息的信息头。
相应地,本申请还提供了对应于上述客户端的服务器,包括:接收模块,用于接收客户端发送的远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;确定模块,用于根据接收的所述调用信息中的所述标量参数,确定所述调用信息所调用的数据;返回模块,用于向所述客户端返回答复信息,所述答复信息中包括所述确定模块确定的所述调用信息所调用的数据。
优选地,所述标量参数包括所述客户端本次RPC需要调用的标量或不需要调用的标量。
优选地,当所述标量参数包括所述客户端本次RPC不需要调用的标量时,所述确定模块包括:否定答复模块,用于根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为不需要返回的标量数据;第一处理模块,用于对所述答复信息中包含的所述不需要返回的标量数据进行有损压缩或删除处理。
优选地,当所述标量参数包括所述客户端本次RPC需要调用的标量时,所述确定模块包括:肯定答复模块,用于根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为需要返回的标量数据;第二处理模块,用于对所述答复信息中包含的除所述需要返回的标量数据外的,其它不需要返回的标量数据进行有损压缩或删除处理。
优选地,所述标量参数位于所述调用信息的信息头。
为了解决上述问题,本申请还公开了一种远程调用系统,包括客户端和服务器端,所述客户端包括:发送模块,用于向所述服务器端发送远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;第一接收模块,用于接收所述服务器端返回的答复信息;所述服务器包括:第二接收模块,用于接收所述客户端发送的RPC的调用信息,所述调用信息中携带有标量参数;确定模块,用于根据接收的所述调用信息中的所述标量参数,确定所述调用信息所调用的数据;返回模块,用于向所述客户端返回答复信息,所述答复信息中包括所述确定模块确定的所述调用信息所调用的数据。
与现有技术相比,本申请具有以下优点:
本申请通过在客户端向服务器端发送RPC的调用信息中携带标量参数,使得服务器端能够根据该标量参数确定向客户端返回的调用数据,对于根据标量参数确定的不需要返回的调用数据,服务器端在发送答复信息前即对其进行处理,如进行有损压缩或删除,在答复信息中只携带客户端需要的数据,从而减少了返回给客户端的答复信息的数据量,有效避免了RPC过程中的数据传输和利用的浪费,极大地提高了网络带宽利用率。
附图说明
图1是根据本申请实施例一的一种RPC方法的步骤流程图;
图2是根据本申请实施例二的一种RPC方法的步骤流程图;
图3是根据本申请实施例三的一种RPC方法的步骤流程图;
图4是根据本申请实施例四的一种客户端的结构框图;
图5是根据本申请实施例五的一种服务器的结构框图;
图6是根据本申请实施例六的一种RPC系统的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
为了便于理解本申请的技术方案,以下首先对本申请中使用到的标量替换作以说明。
标量数据类型(scalar,或称标量)是数据结构中最基本的单元,其只能储存一个数据,包括诸如boolean(布尔类型)、string(字符串类型)、integer(整形类型)、float(浮点型类型)等。以Java为例,Java中的原始类型无法再分解,可以看作标量(scalar),指向对象的引用也是标量,而对象本身则是聚合量(aggregate),其可以包含任意个数的标量。如果把一个Java对象拆散,将其成员变量恢复为分散的变量,就可以称为标量替换(scalarreplacement)。
上述标量替换可以适应于本申请中的下述各个实施例。
实施例一
参照图1,其示出了根据本申请实施例一的一种RPC方法的步骤流程图。
本实施例的RPC方法包括以下步骤:
步骤S102:客户端向服务器端发送RPC的调用信息,所述调用信息中携带有标量参数。
当客户端向服务器端请求一个RPC时,按照现有技术,服务器端将会全量返回所有调用数据,但是其中仅有部分数据是可被客户端利用的。以客户端向服务器端请求用户信息为例,客户端向服务器端发送一个调用信息,请求某个用户的用户信息,按照现有技术的接口设计,服务器端将向客户端返回全量的用户信息,包括用户名和电话号码。然而,实际上,仅有用户名对于客户端的有用的。也就是说,客户端对用户信息的请求,只用到用户名,但是由于没有这样只返回用户名的接口,只好把电话号码也一起带回来了。
而通过本步骤,客户端向服务器端发送的调用信息中携带有标量参数,可以明确告知服务器端哪些数据是客户端想要的,需要返回的,哪些是不需要的,不要返回的。这样,利用现有的接口设计实现了特定数据的调用和接收。
步骤S104:客户端接收服务器端返回的答复信息,所述答复信息中包括:由服务器端根据接收的调用信息中的标量参数,确定并返回的调用信息所调用的数据。
服务器端在收到含有标量参数的调用信息后,根据标量参数确定向客户端返回的调用数据,对于不需要向客户端返回的那些数据,服务器端对其进行处理,如进行有损压缩或删除,一方面减少了答复信息携带的数据量,另一方面也提高了有效数据的传输效率。
通过本实施例,在客户端向服务器端发送RPC的调用信息中携带标量参数,使得服务器端能够根据该标量参数确定向客户端返回的调用数据,对于根据标量参数确定的不需要返回的调用数据,服务器端在发送答复信息前即对其进行处理,如进行有损压缩或删除,在答复信息中只携带客户端需要的数据,从而减少了返回给客户端的答复信息的数据量,有效避免了RPC过程中的数据传输和利用的浪费,极大地提高了网络带宽利用率。
实施例二
参照图2,其示出了根据本申请实施例二的一种RPC方法的步骤流程图。
本实施例的RPC方法包括以下步骤:
步骤S202:客户端接收向服务器端进行RPC的请求,获取具体的请求信息和该请求信息要求返回的信息的内容。
本步骤中,当客户端需要向服务器端进行RPC时,会获取具体的请求信息内容,如一段程序或一个进程,该程序或进程中包括本次RPC的操作和各种参数等。通过这些操作或参数,客户端向服务器端请求相应的数据,要求返回相应的信息等。
步骤S204:客户端对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作。
本步骤中,客户端对RPC请求信息所要求返回的信息的内容,如指示需要服务器返回的调用数据的参数等,进行标量替换操作,将其替换为单个的标量。比如,将无用标量(客户端不需要调用的标量)指向空,以指示无需服务器返回该部分信息或数据。
标量替换过程收集RPC请求信息所要求返回的信息的内容中,可以被替换(客户端不需要调用的标量)的内容,其目标是内存对象。这一过程中,不对RPC请求信息的内容进行修改。
步骤S206:客户端对进行了标量替换操作后的请求信息所要求返回的信息的内容进行分析,获取本次RPC需要调用的标量和不需要调用的标量。
在对请求信息所要求返回的信息的内容进行标量替换后,可以根据具体的信息,如要求返回的变量等,获知本次RPC过程中,哪些标量需要返回对应的数据,哪些标量不需要返回对应的数据。
步骤S208:客户端将不需要调用的标量设置为调用信息的标量参数。
RPC信息协议由两个不同结构组成:调用信息和答复信息。调用信息由客户端发送给服务器端,要求向服务器端远程过程调用数据;答复信息是服务器端回应调用信息的信息,由服务器端向客户端返回调用信息所调用的数据。
本实施例中,设定客户端将不需要调用的标量设置为调用信息的标量参数。但本领域技术人员应当明了,客户端同样可以将需要调用的标量设置为调用信息的标量参数。
通过标量参数的获取和设置,使得服务器端能够明确获知客户端想要获得的数据,避免了不必要数据的传输和处理。
优选地,该标量参数设置于调用信息的信息头部分。将标量参数设置于调用信息的信息头部分,最大程度地利用了现有技术,无须对现有RPC协议和技术做太大改变,节约了实现成本。客户端可以方便地对标量参数进行设置,服务器端也可以方便地对标量参数进行解析,在节约实现成本的同时,也提高了系统处理效率。当然,不限于此,本领域技术人员还可以根据实际情况,将标量参数设置于能够实现本申请技术方案的任意其它适当位置,本申请对此不作限制。
步骤S210:客户端向服务器端发送携带有标量参数的调用信息。
步骤S212:服务器端接收调用信息,获取其中的标量参数。
本步骤中,服务器端对接收到的调用信息进行解析,获取其中的标量参数。
步骤S214:服务器端根据标量参数确定不需要返回的标量数据。
以标量参数为“phone_num”(电话号码)为例,当服务器获取该标量参数后,确定客户端所请求的数据中不需要用户的电话号码。具体地,若按照现有技术,当客户端发送的请求用户信息的调用信息中没有标量参数,则服务器端返回的答复信息中包括用户的姓名和用户的电话号码,但实际上电话号码对客户端并没有可用之处。而根据本申请的方案,当客户端向服务器端发送请求用户信息的调用信息时,其中携带有标量参数,如“phone_num”,以明确告知服务器端用户的电话号码是客户端不需要的。这样,当服务器端接收到该调用信息,获取了标量参数之后,则确定不需向客户端返回用户的电话号码。
当然,若客户端将需要调用的标量设置为调用信息的标量参数,如“phone_num”,则服务器端可确定仅向客户端返回用户的电话号码,其它数据如用户的姓名等,均不返回。
并且,标量参数可以仅有一个,也可以存在多个。当标量参数存在多个时,可以分别对其进行处理。
步骤S216:服务器端对返回给客户端的答复信息进行有损压缩或删除处理。
即,对答复信息中包含的不需要返回给客户端的数据进行有损压缩或删除。本实施例中,将答复信息中的用户的电话号码数据删除,仅保留用户的姓名数据。
当标量参数指示需要返回给客户端的数据时,则服务器端对答复信息中包含的除需要返回的标量数据外的,其它不需要返回的标量数据进行有损压缩或删除。如将用户的电话号码数据保留,其它数据如用户的姓名数据等删除。
步骤S218:服务器端向客户端发送进行了有损压缩或删除处理后的答复信息。
步骤S220:客户端接收服务器端发送的答复信息。
通过本实施例,客户端分析确定需要调用的实际数据,使用标量参数告知服务器端,服务器端根据该标量参数对相应的数据进行处理,在答复信息中只携带客户端需要的数据,从而减少了返回给客户端的答复信息的数据量,有效避免了RPC过程中的数据传输和利用的浪费,极大地提高了网络带宽利用率。
实施例三
参照图3,其示出了根据本申请实施例三的一种RPC方法的步骤流程图。本实施例中使用的语言优选地以编译型语言实现,并且,本实施例中设定标量参数指示客户端不需要调用的标量数据。
本实施例的RPC方法包括以下步骤:
步骤S302:分析机器码,进行标量替换。
当客户端决定向服务器端发起RPC请求时,先对该请求的机器码进行标量替换和分析,分析可能存在浪费的地方,也即不需要的返回数据,获取程序语言的使用内存中的变量在使用时仅仅使用的部分,即确定本次RPC请求需要调用的标量和不需要调用的标量。
步骤S304:记录替换标量,设置标量参数。
在确定了本次RPC请求需要调用的标量和不需要调用的标量后,客户端将收集到的这些信息整理记录备用发送,将不需要调用的标量作为替换标量,并将其设置为调用信息中的标量参数。
步骤S306:替换原RPC方法。
即,将分析结果加入到调用内容中。也即,将确定的标量参数设置到调用信息中,本实施例中,将标量参数设置于调用信息的信息头。
步骤S308:将设置了标量参数信息头的调用信息发送给服务器端。
也就是设置了标量参数信息头的现有真实RPC调用。
步骤S310:服务器端接收调用信息,获取调用信息的信息头中的标量参数。
步骤S312:服务器端根据调用信息的信息头中的标量参数,清理调用结果。
即,服务器端根据标量参数,对返回的答复信息进行有损压缩或删除无用数据内容的处理。
有损压缩或删除后的数据因为已经在标量替换过程中被证明不可能被使用,因而这部分信息被节约下来。
步骤S314:服务器端向客户端返回答复信息,客户端远程过程调用成功。
根据本实施例的RPC与原有RPC相比较的一个实例如下:
按照原有流程,客户端在想要获取用户的姓名信息时,向服务器端发送一个调用信息:
REQUESTHEADERS
User-Agent:JakartaCommons-HttpClient/3.1
Host:localhost
针对这个调用信息,服务器端向客户端返回一个答复信息:
RESPONSEBODY
{″name″:″test″,″phone_num″:″1234567″}
可见,在这一过程中,即使客户端并不需要用户的号码信息,但服务器端仍然会全量返回用户信息,造成数据传输和利用的浪费。
根据本实施例,将标量替换应用于RPC,当客户端想要获取用户的姓名信息,而不需要用户的号码信息时,向服务器端发送一个调用信息如下:
REQUESTHEADERS
User-Agent:JakartaCommons-HttpClient/3.1
Host:localhost
ScR-Ignore:phone_num
服务器端针对该调用信息返回的答复信息如下:
RESPONSEBODY
{″name″:″test″}
可见,将标量替换应用于RPC后,通过标量参数,服务器端明确获知了客户端仅需要用户的姓名信息,而不需要用户的号码信息,则只返回客户端所需要的数据,从而避免了数据传输和利用的浪费。
通过本实施例,客户端首先通过一个分析过程,获知RPC请求的程序语言的使用内存中的变量在使用时仅仅使用的部分,完成标量替换,设置标量参数传递给支持标量替换的服务器端,服务器端根据标量参数对返回的答复信息进行有损压缩或删除处理,处理后的结果因为已经在标量替换过程中被证明不可能被使用,即这部分信息被节约下来,从而提高了数据传输和利用率。
实施例四
参照图4,其示出了根据本申请实施例四的一种客户端的结构框图。
本实施例的客户端包括:发送模块402,用于向服务器端发送RPC的调用信息,所述调用信息中携带有标量参数;接收模块404,用于接收服务器端返回的答复信息,所述答复信息中包括:由服务器端根据接收的调用信息中的标量参数,确定并返回的调用信息所调用的数据。
优选地,本实施例的客户端还包括:标量替换模块406,用于对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;获取模块408,用于对进行了标量替换操作后的请求信息所要求返回的信息的内容进行分析,获取本次RPC需要调用的标量和不需要调用的标量;设置模块410,用于将需要调用的标量或不需要调用的标量设置为调用信息的标量参数。
优选地,本实施例中的标量参数位于调用信息的信息头。
本实施例的客户端用于实现前述方法实施例中的客户端部分的功能,并具有前述方法实施例中的客户端部分的实现的方法的有益效果,在此不再赘述。
实施例五
参照图5,其示出了根据本申请实施例五的一种服务器的结构框图,本实施例的服务器对应于图4所示的客户端。
本实施例的服务器包括:接收模块502,用于接收客户端发送的RPC的调用信息,所述调用信息中携带有标量参数;确定模块504,用于根据接收的调用信息中的标量参数,确定调用信息所调用的数据;返回模块506,用于向客户端返回答复信息,所述答复信息中包括确定模块504确定的调用信息所调用的数据。
优选地,本实施例的标量参数包括客户端本次RPC需要调用的标量或不需要调用的标量。
优选地,当标量参数包括客户端本次RPC不需要调用的标量时,确定模块504包括:否定答复模块5042,用于根据接收的调用信息中的标量参数,确定标量参数所指示的标量数据为不需要返回的标量数据;第一处理模块5044,用于对答复信息中包含的不需要返回的标量数据进行有损压缩或删除处理。
优选地,当标量参数包括客户端本次RPC需要调用的标量时,确定模块504包括:肯定答复模块5046,用于根据接收的调用信息中的标量参数,确定标量参数所指示的标量数据为需要返回的标量数据;第二处理模块5048,用于对答复信息进行有损压缩或删除处理,有损压缩或删除答复信息中包含的除需要返回的标量数据外的,其它不需要返回的标量数据。
需要说明的是,确定模块504可以同时包括上述否定答复模块5042与第一处理模块5044,以及肯定答复模块5046与第二处理模块5048,也可以仅包括其中的一种,即确定模块504只包括否定答复模块5042与第一处理模块5044,或者,确定模块504只包括肯定答复模块5046与第二处理模块5048,本领域技术人员可以根据实际需要灵活设置。
优选地,本实施例的标量参数位于调用信息的信息头。
本实施例的服务器用于实现前述方法实施例中的服务器端部分的功能,并具有前述方法实施例中的服务器端部分的实现的方法的有益效果,在此不再赘述。
实施例六
参照图6,其示出了根据本申请实施例六的一种RPC系统的结构框图。
本实施例的RPC系统包括:客户端602和服务器端604,其中,客户端602包括:发送模块6022,用于向服务器端604发送RPC的调用信息,所述调用信息中携带有标量参数;第一接收模块6024,用于接收服务器端604返回的答复信息;服务器端604包括:第二接收模块6042,用于接收客户端602发送的RPC的调用信息,所述调用信息中携带有标量参数;确定模块6044,用于根据接收的调用信息中的标量参数,确定调用信息所调用的数据;返回模块6046,用于向客户端602返回答复信息,所述答复信息中包括确定模块6044确定的调用信息所调用的数据。
优选地,本实施例中的标量参数位于调用信息的信息头。
本实施例的RPC系统用于实现前述方法实施例中的RPC方法,并具有前述方法实施例的的有益效果,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请所提供的一种远程过程调用方法和系统、一种客户端和一种服务器,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种远程过程调用RPC方法,其特征在于,包括:
客户端向服务器端发送RPC的调用信息,所述调用信息中携带有标量参数;其中,所述标量参数通过以下方式获得:所述客户端对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;对进行了所述标量替换操作后的所述内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数;
所述客户端接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。
2.根据权利要求1所述的方法,其特征在于,当将所述不需要调用的标量作为所述调用信息的标量参数时,所述客户端接收的所述答复信息为:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为不需要返回的标量数据后,对所述答复信息中不需要返回的标量数据进行有损压缩或删除处理后的答复信息。
3.根据权利要求1所述的方法,其特征在于,当将所述需要调用的标量作为所述调用信息的标量参数时,所述客户端接收的所述答复信息为:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为需要返回的标量数据后,对所述答复信息中包含的除所述需要返回的标量数据外的,其它不需要返回的标量数据进行有损压缩或删除处理后的答复信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述标量参数设置于所述调用信息的信息头。
5.一种客户端,其特征在于,包括:
标量替换模块,用于对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;
获取模块,用于对进行了所述标量替换操作后的所述内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;
设置模块,用于将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数;
发送模块,用于向服务器端发送远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;
接收模块,用于接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。
6.根据权利要求5所述的客户端,其特征在于,所述标量参数位于所述调用信息的信息头。
7.一种服务器,其特征在于,包括:
接收模块,用于接收客户端发送的远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;其中,所述标量参数通过以下方式获得:所述客户端对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;对进行了所述标量替换操作后的所述内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数;
确定模块,用于根据接收的所述调用信息中的所述标量参数,确定所述调用信息所调用的数据;
返回模块,用于向所述客户端返回答复信息,所述答复信息中包括所述确定模块确定的所述调用信息所调用的数据。
8.根据权利要求7所述的服务器,其特征在于,当所述标量参数包括所述客户端本次RPC不需要调用的标量时,所述确定模块包括:
否定答复模块,用于根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为不需要返回的标量数据;
第一处理模块,用于对所述答复信息中包含的所述不需要返回的标量数据进行有损压缩或删除处理。
9.根据权利要求7所述的服务器,其特征在于,当所述标量参数包括所述客户端本次RPC需要调用的标量时,所述确定模块包括:
肯定答复模块,用于根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为需要返回的标量数据;
第二处理模块,用于对所述答复信息中包含的除所述需要返回的标量数据外的,其它不需要返回的标量数据进行有损压缩或删除处理。
10.根据权利要求7至9任一项所述的服务器,其特征在于,所述标量参数位于所述调用信息的信息头。
11.一种远程调用系统,包括客户端和服务器端,其特征在于,
所述客户端包括:
发送模块,用于向所述服务器端发送远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;第一接收模块,用于接收所述服务器端返回的答复信息;其中,所述标量参数通过以下方式获得:所述客户端对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;对进行了所述标量替换操作后的所述内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数;
所述服务器包括:
第二接收模块,用于接收所述客户端发送的RPC的调用信息,所述调用信息中携带有标量参数;确定模块,用于根据接收的所述调用信息中的所述标量参数,确定所述调用信息所调用的数据;返回模块,用于向所述客户端返回答复信息,所述答复信息中包括所述确定模块确定的所述调用信息所调用的数据。
CN201110351237.0A 2011-11-08 2011-11-08 远程过程调用方法和系统、客户端及服务器 Active CN103095785B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110351237.0A CN103095785B (zh) 2011-11-08 2011-11-08 远程过程调用方法和系统、客户端及服务器
HK13107585.1A HK1180486A1 (zh) 2011-11-08 2013-06-28 遠程過程調用方法和系統、客戶端及服務器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110351237.0A CN103095785B (zh) 2011-11-08 2011-11-08 远程过程调用方法和系统、客户端及服务器

Publications (2)

Publication Number Publication Date
CN103095785A CN103095785A (zh) 2013-05-08
CN103095785B true CN103095785B (zh) 2016-04-06

Family

ID=48207913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110351237.0A Active CN103095785B (zh) 2011-11-08 2011-11-08 远程过程调用方法和系统、客户端及服务器

Country Status (2)

Country Link
CN (1) CN103095785B (zh)
HK (1) HK1180486A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022260924A1 (en) * 2021-06-07 2022-12-15 Citrix Systems, Inc. Improvements to node security with intermediate devices

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899106B (zh) * 2014-03-07 2018-05-08 阿里巴巴集团控股有限公司 接口服务异常时的处理方法和装置
CN105141707B (zh) * 2014-06-09 2018-09-11 阿里巴巴集团控股有限公司 一种地址信息传输方法及装置
CN105721473B (zh) * 2016-02-24 2019-07-09 锐达互动科技股份有限公司 一种web端远程调用优化的方法及系统
CN105763619B (zh) * 2016-03-31 2019-07-05 广州欢聚时代信息科技有限公司 客户端与服务端进行通讯的方法及装置
CN107483424B (zh) * 2017-08-07 2020-11-10 北京金山安全管理系统技术有限公司 远程过程调用协议的处理方法和装置
CN107920075A (zh) * 2017-11-17 2018-04-17 北京锐安科技有限公司 一种数据处理的系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1902590A (zh) * 2003-11-26 2007-01-24 国家信息及自动化研究院 用于在通信对象之间发送结果的异步和自动设备和方法
CN101667139A (zh) * 2009-10-13 2010-03-10 金蝶软件(中国)有限公司 基于集合类型对象的服务程序调用方法、装置及系统
CN101673217A (zh) * 2009-08-26 2010-03-17 用友软件股份有限公司 一种实现远端程序调用的方法和系统
CN101764843A (zh) * 2009-12-28 2010-06-30 福建星网锐捷网络有限公司 远程过程调用的处理方法、系统及客户端、服务器
CN101854371A (zh) * 2009-03-31 2010-10-06 华为技术有限公司 JavaScript对象的调用及处理的方法、装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165340A (ja) * 2006-12-27 2008-07-17 Fujitsu Ltd 遠隔手続呼出方式

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1902590A (zh) * 2003-11-26 2007-01-24 国家信息及自动化研究院 用于在通信对象之间发送结果的异步和自动设备和方法
CN101854371A (zh) * 2009-03-31 2010-10-06 华为技术有限公司 JavaScript对象的调用及处理的方法、装置
CN101673217A (zh) * 2009-08-26 2010-03-17 用友软件股份有限公司 一种实现远端程序调用的方法和系统
CN101667139A (zh) * 2009-10-13 2010-03-10 金蝶软件(中国)有限公司 基于集合类型对象的服务程序调用方法、装置及系统
CN101764843A (zh) * 2009-12-28 2010-06-30 福建星网锐捷网络有限公司 远程过程调用的处理方法、系统及客户端、服务器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022260924A1 (en) * 2021-06-07 2022-12-15 Citrix Systems, Inc. Improvements to node security with intermediate devices

Also Published As

Publication number Publication date
HK1180486A1 (zh) 2013-10-18
CN103095785A (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
CN103095785B (zh) 远程过程调用方法和系统、客户端及服务器
CN111580995B (zh) 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统
CN102546794B (zh) 浏览器客户端与后端服务器直通的方法、网关和通信系统
CN103561479A (zh) 一种蓝牙设备通信方法和装置
WO2011076146A1 (zh) 下载应用数据的方法、数字电视接收终端及系统
CN103237060B (zh) 一种数据对象获取方法、装置及系统
CN102595208A (zh) 云端控制网络化视频图像处理流媒体服务系统及方法
CN108234149B (zh) 一种网络请求的管理方法和装置
CN101360127A (zh) 文件更新方法及传输系统
CN102625287A (zh) 一种手机应用软件的下载方法
CN103024053A (zh) 云存储方法、资源调度系统、云存储节点及系统
CN111064771B (zh) 一种网络请求处理方法及系统
CN103873597A (zh) 分布式网页下载方法和系统
CN103685496A (zh) 一种文件数据的传输方法和设备
CN105391536A (zh) 一种客户端和服务端进行通信的方法及装置
CN101183946A (zh) 一种获取下载文件资源列表的方法及系统
CN102404616A (zh) 基于数字电视网络进行数据云推送的方法及系统
JP2009509210A (ja) アプリケーションを起動する方法
CN112073488A (zh) 处理请求的方法及装置
CN116389321A (zh) 生产环境全链路的压力测试方法及其装置
CN110661850A (zh) 一种边缘计算方法、系统、计算机设备和存储介质
CN104168274A (zh) 数据获取请求的处理方法、客户端及服务器
CN101686156B (zh) 一种实现网络服务数据本地缓存的终端和方法
WO2014177058A1 (zh) 文件数据的传输方法及装置
CN110865845B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1180486

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant