CN105005500A - 一种远程过程调用方法、服务端、客户端 - Google Patents
一种远程过程调用方法、服务端、客户端 Download PDFInfo
- Publication number
- CN105005500A CN105005500A CN201510288350.7A CN201510288350A CN105005500A CN 105005500 A CN105005500 A CN 105005500A CN 201510288350 A CN201510288350 A CN 201510288350A CN 105005500 A CN105005500 A CN 105005500A
- Authority
- CN
- China
- Prior art keywords
- interface
- client
- service end
- service
- remote
- 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.)
- Pending
Links
Abstract
本发明提供一种远程过程调用方法、服务端、客户端,用以解决现有技术中远程接口调用的系统维护困难、稳定性差的问题。所述方法包括:服务端接受客户端的远程服务订阅;当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种远程过程调用方法、服务端、客户端。
背景技术
在分布式集群系统中,各个服务器可以相互之间进行远程调用。RPC(Remote Procedure Call,远程过程调用)允许程序调用远程服务器的方法或函数,而不用关心远程调用的细节,从而使构建分布式计算(应用)更加容易。
在使用过程中,RPC服务方通过RpcServer去导出(export)远程接口方法,客户方通过RpcClient将导出的远程接口方法引入(import)。然而,由于客户方在不断的增加,业务在不断变化,服务方提供的远程接口方法也需要不断进行相应的增加或修改,从而使得系统维护困难,系统稳定性降低。
发明内容
本发明要解决的技术问题是提供一种远程过程调用方法、服务端、客户端,用以解决现有技术中远程接口调用的系统维护困难、稳定性差的问题。
一方面,本发明提供一种远程过程调用方法,包括:服务端接受客户端的远程服务订阅;当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息。
可选的,所述服务端接受客户端的远程服务订阅包括:所述服务端对外发布远程服务接口信息;所述服务端接收所述客户端的订阅请求,并根据所述订阅请求生成服务订阅表。
可选的,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。
可选的,所述当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息包括:当所述服务端的远程服务接口发生变化时,所述服务端在所述管理服务器的控制下,向订阅所述远程服务的客户端发送相应的接口更新消息。
另一方面,本发明还提供一种远程过程调用方法,包括:客户端向服务端订阅远程服务;所述客户端接收所述服务端发送的接口更新消息,并根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口。
另一方面,本发明还提供一种服务端,包括:接受单元,用于接受客户端的远程服务订阅;发送单元,用于当服务端的远程服务接口发生变化时,向订阅所述远程服务的客户端发送相应的接口更新消息。
可选的,所述接受单元,具体用于:对外发布远程服务接口信息;接收所述客户端的订阅请求,并根据所述订阅请求生成服务订阅表。
可选的,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。
可选的,所述发送单元,具体用于:当所述服务端的远程服务接口发生变化时,在所述管理服务器的控制下,向订阅所述远程服务的客户端发送相应的接口更新消息。
另一方面,本发明还提供一种客户端,包括:订阅单元,用于向服务端订阅远程服务;接收和更新单元,用于接收所述服务端发送的接口更新消息,并根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口。
本发明实施例提供的远程过程调用方法、服务端、客户端,服务端能够接受客户端的远程服务订阅,当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息,以使客户端能够根据该接口更新消息更新自身配置并基于更新的配置与对应的服务端通信,无需进行复杂的远程接口导出和导入,减少了客户端程序的改动,从而大大简化了远程接口调用的系统维护工作、有效提高了系统稳定性。
附图说明
图1是本发明实施例提供的一种远程过程调用方法的一种流程图;
图2是本发明实施例提供的一种远程过程调用方法的另一种流程图;
图3是本发明实施例提供的一种远程过程调用方法的又一种流程图;
图4是本发明实施例提供的服务端的一种结构示意图;
图5是本发明实施例提供的客户端的一种结构示意图。
具体实施方式
以下结合附图对本发明进行详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
为了提高集群系统的稳定性,可靠性,降低开发难度,进一步对分布式计算(应用)进行解耦,本实施例引入了发布订阅模式对RPC进行扩展。服务端为发布者,对外提供接口,客户端为订阅者,向服务端订阅服务。下面分别从服务端和客户端的角度对本发明提供的远程过程调用方法进行说明。
如图1所示,本发明的实施例提供一种远程过程调用方法,包括:
S11,服务端接受客户端的远程服务订阅;
S12,当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息。
本发明实施例提供的远程过程调用方法,服务端能够接受客户端的远程服务订阅,当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息,以使客户端能够根据该接口更新消息更新自身配置并基于更新的配置与对应的服务端通信,无需进行复杂的远程接口导出和导入,减少了客户端程序的改动,从而大大简化了远程接口调用的系统维护工作、有效提高了系统稳定性。
可选的,在步骤S11中,服务端接受客户端的远程服务订阅包括:
所述服务端对外发布远程服务接口信息;
所述服务端接收所述客户端的订阅请求,并根据所述订阅请求生成服务订阅表。
具体而言,一个服务端可以对外提供多种接口,如远程登录接口、查询接口、控制接口等,服务端可以把所提供的全部或部分接口的信息发布出去。客户端可以根据自身需求选择其中的一些接口进行订阅服务。服务端会生成服务订阅表,表中详细记录各客户端的接口订阅情况,当相应的接口发生变化时主动向相应的客户端发送接口更新消息。
可选的,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。其中,接口参数更新消息是指服务端提供给客户端的接口不变,但需要提供给该接口的参数发生了变化,包括参数的增加、减少或修改;接口调用更新是指服务端提供给客户端的接口发生了变化,换到另外一个接口。例如,当电视作为客户端远程调用服务端的控制接口时,服务端提供给电视的控制接口可包括音量、频道等参数,但当电视功能有所升级,例如可以提供点播功能时,服务端提供给电视的控制接口的参数就需要增加实现点播功能的参数。或者,如果这两种电视作为客户端都将长期存在,服务端需要同时提供这两种控制接口,则可以在原有的控制接口之外,重新提供一个对升级后的电视的控制接口,此时,服务端提供给客户端的接口就发生了接口调用更新。
需要说明的是,服务端对外提供的服务接口可能存在各种形式的变化,对于有些变化需要立即通知客户端进行更新,而对于有些变化可以延迟通知客户端进行更新,从而既不影响系统的远程调用,又能提高系统的运行效率。为了实现上述目标,在本发明的一个实施例中,在步骤S12中,当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息具体可包括:
当所述服务端的远程服务接口发生变化时,所述服务端向管理服务器上报所述远程服务接口的变化;
所述服务端在所述管理服务器的控制下,向订阅所述远程服务的客户端发送相应的接口更新消息。
由于管理服务器可以监控分布式集群系统中各设备的运行情况,对客户端的连接起到负载均衡的作用,因此在管理服务器的控制下向客户端发送相应的接口更新消息将更有利于维护系统稳定性。
相应的,如图2所示,本发明的实施例还提供一种远程过程调用方法,包括:
S21,客户端向服务端订阅远程服务;
S22,所述客户端接收所述服务端发送的接口更新消息,并根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口。
本发明实施例提供的远程过程调用方法,客户端能够向服务端订阅远程服务,并接收所述服务端发送的接口更新消息,根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口,这样,客户端只需更新少量配置文件,无需进行复杂的远程接口导出和导入,减少了客户端程序的改动,从而大大简化了远程接口调用的系统维护、有效提高了系统稳定性。
具体而言,服务端向客户端提供了接口订阅服务,客户端可以根据自身需求选择其中的一些接口订阅。当服务端接口有所变化时,客户端能够从服务端处接收相应的接口更新消息。服务端可以保存配置信息,并调用RPCClient的reloadConfigure方法,重新加载配置文件,以调用新的接口。
可选的,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。其中,接口参数更新消息是指服务端提供给客户端的接口不变,但需要提供给该接口的参数发生了变化,包括参数的增加、减少或修改;接口调用更新是指服务端提供给客户端的接口发生了变化,换到另外一个接口。
下面通过具体实施例对本发明提供的远程过程调用方法进行详细说明。
如图3所示,以用户登录过程为例,对本发明提供的远程过程调用方法进行详细说明。
一般的,用户要登录一个应用时,首先输入用户名、密码等信息,该信息需要传送到用户服务器进行账号密码的认证,认证成功后,用户服务器分配一个Token做为该用户的唯一标识。用户带着Token,去应用服务器进行相关的操作,如查询,控制等。应用服务器在收到用户的操作请求时,解析出Token,到用户服务器验证Token是否合法。这里,应用服务器和客户服务器之间就存在着登录接口的远程过程调用,接口参数为token。当登录接口发生变化时,如需要增加参数时,远程过程调用可通过如下步骤实现:
301、应用服务器订阅用户服务器的用户认证接口;
302、当用户认证接口发生变化时,通过管理服务器控制是否将变化的接口配置向客户端发送;
303、新的认证接口通过接口更新消息通知到应用服务器;
304、应用服务器修改配置信息,并保存,调用新的认证接口对用户Token进行认证。
相应的,如图4所示,本发明的实施例还提供一种服务端,包括:
接受单元41,用于接受客户端的远程服务订阅;
发送单元42,用于当服务端的远程服务接口发生变化时,向订阅所述远程服务的客户端发送相应的接口更新消息。
本发明实施例提供服务端,接受单元41能够接受客户端的远程服务订阅,当所述服务端的远程服务接口发生变化时,发送单元42能够向订阅所述远程服务的客户端发送相应的接口更新消息,以使客户端能够根据该接口更新消息更新自身配置并基于更新的配置与对应的服务端通信,无需进行复杂的远程接口导出和导入,减少了客户端程序的改动,从而大大简化了远程接口调用的系统维护工作、有效提高了系统稳定性。
可选的,接受单元41,可具体用于:对外发布远程服务接口信息;接收所述客户端的订阅请求,并根据所述订阅请求生成服务订阅表。
可选的,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。
可选的,发送单元42,具体可用于:
当所述服务端的远程服务接口发生变化时,在所述管理服务器的控制下,向订阅所述远程服务的客户端发送相应的接口更新消息。
相应的,如图5所示,本发明的实施例还提供一种客户端,包括:
订阅单元51,用于向服务端订阅远程服务;
接收和更新单元52,用于接收所述服务端发送的接口更新消息,并根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口。
本发明实施例提供客户端,订阅单元51能够向服务端订阅远程服务,接收和更新单元52能够接收所述服务端发送的接口更新消息,根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口,这样,客户端只需更新少量配置文件,无需进行复杂的远程接口导出和导入,减少了客户端程序的改动,从而大大简化了远程接口调用的系统维护、有效提高了系统稳定性。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (10)
1.一种远程过程调用方法,其特征在于,包括:
服务端接受客户端的远程服务订阅;
当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息。
2.根据权利要求1所述的方法,其特征在于,所述服务端接受客户端的远程服务订阅包括:
所述服务端对外发布远程服务接口信息;
所述服务端接收所述客户端的订阅请求,并根据所述订阅请求生成服务订阅表。
3.根据权利要求1所述的方法,其特征在于,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。
4.根据权利要求1所述的方法,其特征在于,所述当所述服务端的远程服务接口发生变化时,所述服务端向订阅所述远程服务的客户端发送相应的接口更新消息包括:
当所述服务端的远程服务接口发生变化时,所述服务端在所述管理服务器的控制下,向订阅所述远程服务的客户端发送相应的接口更新消息。
5.一种远程过程调用方法,其特征在于,包括:
客户端向服务端订阅远程服务;
所述客户端接收所述服务端发送的接口更新消息,并根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口。
6.一种服务端,其特征在于,包括:
接受单元,用于接受客户端的远程服务订阅;
发送单元,用于当服务端的远程服务接口发生变化时,向订阅所述远程服务的客户端发送相应的接口更新消息。
7.根据权利要求6所述的服务端,其特征在于,所述接受单元,具体用于:
对外发布远程服务接口信息;
接收所述客户端的订阅请求,并根据所述订阅请求生成服务订阅表。
8.根据权利要求6所述的服务端,其特征在于,所述接口更新消息包括接口参数更新消息或者接口调用更新消息。
9.根据权利要求6所述的服务端,其特征在于,所述发送单元,具体用于:
当所述服务端的远程服务接口发生变化时,在所述管理服务器的控制下,向订阅所述远程服务的客户端发送相应的接口更新消息。
10.一种客户端,其特征在于,包括:
订阅单元,用于向服务端订阅远程服务;
接收和更新单元,用于接收所述服务端发送的接口更新消息,并根据所述接口更新消息更新本地配置文件,以调用所述服务端的相应接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510288350.7A CN105005500A (zh) | 2015-05-29 | 2015-05-29 | 一种远程过程调用方法、服务端、客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510288350.7A CN105005500A (zh) | 2015-05-29 | 2015-05-29 | 一种远程过程调用方法、服务端、客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105005500A true CN105005500A (zh) | 2015-10-28 |
Family
ID=54378180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510288350.7A Pending CN105005500A (zh) | 2015-05-29 | 2015-05-29 | 一种远程过程调用方法、服务端、客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105005500A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790092A (zh) * | 2016-12-23 | 2017-05-31 | 北京奇艺世纪科技有限公司 | 远程过程调用服务端控制系统及方法 |
CN106998343A (zh) * | 2016-01-26 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种远程过程调用处理方法、装置及系统 |
CN110247841A (zh) * | 2019-06-14 | 2019-09-17 | 北京达佳互联信息技术有限公司 | 信息发送方法及装置、业务服务器和存储介质 |
CN110933188A (zh) * | 2019-12-31 | 2020-03-27 | 深圳市优必选科技股份有限公司 | 远程服务的调用方法、系统、服务器及存储介质 |
CN111104135A (zh) * | 2018-10-29 | 2020-05-05 | 厦门白山耘科技有限公司 | 一种实时获取接口更新信息的方法及系统 |
CN112306518A (zh) * | 2020-07-01 | 2021-02-02 | 深圳新阳蓝光能源科技股份有限公司 | 一种协议更新方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087548A1 (en) * | 2000-04-26 | 2002-07-04 | Mathew Tasalloti | Method and protocol for client initiated function calls to a web-based dispatch service |
CN1992683A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种实现群订阅服务的方法和系统 |
CN102508722A (zh) * | 2011-12-02 | 2012-06-20 | 中科方德软件有限公司 | 一种嵌入式环境下的进程间通信方法 |
CN103841134A (zh) * | 2012-11-22 | 2014-06-04 | 阿里巴巴集团控股有限公司 | 基于api发送、接收信息的方法、装置及系统 |
CN104426871A (zh) * | 2013-08-29 | 2015-03-18 | 中兴通讯股份有限公司 | 一种远程调用的方法和装置 |
-
2015
- 2015-05-29 CN CN201510288350.7A patent/CN105005500A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087548A1 (en) * | 2000-04-26 | 2002-07-04 | Mathew Tasalloti | Method and protocol for client initiated function calls to a web-based dispatch service |
CN1992683A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种实现群订阅服务的方法和系统 |
CN102508722A (zh) * | 2011-12-02 | 2012-06-20 | 中科方德软件有限公司 | 一种嵌入式环境下的进程间通信方法 |
CN103841134A (zh) * | 2012-11-22 | 2014-06-04 | 阿里巴巴集团控股有限公司 | 基于api发送、接收信息的方法、装置及系统 |
CN104426871A (zh) * | 2013-08-29 | 2015-03-18 | 中兴通讯股份有限公司 | 一种远程调用的方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106998343A (zh) * | 2016-01-26 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种远程过程调用处理方法、装置及系统 |
CN106790092A (zh) * | 2016-12-23 | 2017-05-31 | 北京奇艺世纪科技有限公司 | 远程过程调用服务端控制系统及方法 |
CN111104135A (zh) * | 2018-10-29 | 2020-05-05 | 厦门白山耘科技有限公司 | 一种实时获取接口更新信息的方法及系统 |
CN110247841A (zh) * | 2019-06-14 | 2019-09-17 | 北京达佳互联信息技术有限公司 | 信息发送方法及装置、业务服务器和存储介质 |
CN110247841B (zh) * | 2019-06-14 | 2021-08-17 | 北京达佳互联信息技术有限公司 | 信息发送方法及装置、业务服务器和存储介质 |
CN110933188A (zh) * | 2019-12-31 | 2020-03-27 | 深圳市优必选科技股份有限公司 | 远程服务的调用方法、系统、服务器及存储介质 |
CN112306518A (zh) * | 2020-07-01 | 2021-02-02 | 深圳新阳蓝光能源科技股份有限公司 | 一种协议更新方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105005500A (zh) | 一种远程过程调用方法、服务端、客户端 | |
DE60313328T2 (de) | System und verfahren zur bereitstellung von benachrichtigungen bez glich teilweiser anwesenheit | |
CN109587228A (zh) | 一种公有协议物联网平台及设备接入方法 | |
CN105915369B (zh) | 一种配置信息管理方法及装置 | |
CN101079869B (zh) | 一种基于分布式的数据同步方法及系统 | |
CN103561479A (zh) | 一种蓝牙设备通信方法和装置 | |
KR20220088739A (ko) | 장치 등록 프로세스를 갖는 동의 관리 시스템 | |
CN105049252A (zh) | 一种配置信息管理方法和装置 | |
CN111131443B (zh) | 一种任务推送方法和系统 | |
CN102821150A (zh) | 基于云服务的应用管理方法及云服务器 | |
CN110049031B (zh) | 一种接口安全认证方法及服务器、认证中心服务器 | |
CN103607423A (zh) | 一种基于WebSocket协议的分布式广播系统 | |
CN104519095A (zh) | 一种动态消息推送方法及其系统、服务端、客户端 | |
CN102215266A (zh) | 持久化服务的实现方法及持久化服务系统 | |
CN101674143A (zh) | 一种面向移动设备的新闻定时发布方法及系统 | |
CN110636127B (zh) | 一种各信息数据间的通信处理方法及系统 | |
CN101521606A (zh) | 日志信息处理方法、日志服务器与通信系统 | |
US8037160B2 (en) | Method and device arrangement for managing a user application/device management server/client device environment | |
CN108259605B (zh) | 一种基于多数据中心的数据调用系统及方法 | |
CN113254050A (zh) | 一种微前端系统 | |
CN101938383B (zh) | 多种业务的用户账号在线监控方法、系统与监控服务系统 | |
CN104796773B (zh) | 多设备输入事件的传输以及处理方法 | |
WO2012110079A1 (en) | Distribution of data processing | |
JP2011223601A (ja) | 鍵を送付するための方法および装置 | |
US9071569B1 (en) | System, method, and computer program for content metadata and authorization exchange between content providers and service providers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151028 |