CN105391683A - 远程方法调用的方法、装置及系统 - Google Patents

远程方法调用的方法、装置及系统 Download PDF

Info

Publication number
CN105391683A
CN105391683A CN201510642187.XA CN201510642187A CN105391683A CN 105391683 A CN105391683 A CN 105391683A CN 201510642187 A CN201510642187 A CN 201510642187A CN 105391683 A CN105391683 A CN 105391683A
Authority
CN
China
Prior art keywords
service
rmi
client
request
rmi 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.)
Pending
Application number
CN201510642187.XA
Other languages
English (en)
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.)
Beijing Xiaomi Technology Co Ltd
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201510642187.XA priority Critical patent/CN105391683A/zh
Publication of CN105391683A publication Critical patent/CN105391683A/zh
Pending legal-status Critical Current

Links

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/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本公开是关于一种远程方法调用的方法、装置和系统,该方法通过接收第一客户端发送的服务请求;将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务;将目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。本公开解决了相关技术中,只启用一个远程方法调用服务,当远程方法调用服务出现故障时容易导致客户端访问失败的问题,以及请求服务的客户端过多时,影响服务性能的问题。

Description

远程方法调用的方法、装置及系统
技术领域
本公开涉及计算机技术领域,尤其涉及一种远程方法调用的方法、装置及系统。
背景技术
远程方法调用(RemoteMethodInvocation,RMI)是Java的远程过程调用(RemoteProcedureCall,PRC)机制,远程方法调用支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。
远程方法调用系统一般包括以下几部分:一个运行远程方法调用服务的服务器,一个需要运行这个远程方法调用服务的客户端。其中,在服务器端,继承(extends)了java.rmi.Remote接口的类(类(class)可以理解为既包括数据又包括作用于数据的一组操作的封装体)即可成为远程对象供客户端访问并提供一定的服务(即所述的远程方法调用服务)。传统的使用远程方法调用的方式为,在服务端发布一个远程方法调用服务,并等待客户端主动连接这个远程方法调用服务,客户端连接到这个远程方法调用服务后,就可以进行远程方法调用。
发明内容
为克服相关技术中存在的问题,本公开提供一种远程方法调用的方法、装置及系统。
根据本公开实施例的第一方面,提供一种远程方法调用的方法,所述方法包括:
接收第一客户端发送的服务请求;
将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
结合第一方面,在第一种可能的实现方式中,所述将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务包括:
在所述方法调用服务队列中为所述第一客户端选择第一远程方法调用服务;
向所述第一远程方法调用服务发送所述服务请求;
当在预设的响应时间内收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务作为所述目标远程方法调用服务;
当在所述响应时间内未收到所述服务请求响应时,在所述远程方法调用服务队列中为所述第一客户端选择第二远程方法调用服务;
向所述第二远程方法调用服务发送所述服务请求。
在本实施方式中,在向某一远程方法调用服务发送客户端的服务请求之后,如果在预设的响应时间内该远程方法调用服务的服务请求响应,则将该远程方法调用服务作为客户端的目标远程方法调用服务,如果超出响应时间还未收到服务请求响应,则将服务请求发送给其他的远程方法调用服务,从而保证了为客户端选择的远程方法调用服务是可用的。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
当在所述响应时间内未收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务从所述远程方法调用服务队列中删除。
在本实施方式中,为服务请求设置了响应时间,当远程方法调用服务在响应时间内未返回服务请求响应时将所述远程方法调用服务从远程方法调用服务队列中删除,从而能够排除故障的远程方法调用服务,保证远程方法调用服务队列中的远程方法调用服务均为可用的服务。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述在所述方法调用服务队列中为所述第一客户端选择第一远程方法调用服务包括:
根据所述远程方法调用服务队列中的每个远程方法调用服务的负载状态,为所述第一客户端选择所述第一远程方法调用服务。
在本实施方式中,根据远程方法调用服务队列中的每个远程方法调用服务的负载状态来为客户端分配可用的远程方法调用服务,既能够实现各个远程方法调用服务之间的负载均衡,又能够保证分配给客户端的远程方法调用服务是可用的。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述每个远程方法调用服务的所述负载状态包括:所述每个远程方法调用服务的网络连接数量,所述网络连接为远程方法调用服务与客户端之间的网络连接。
在本实施方式中,将每个远程方法调用服务的网络连接数量作为每个远程方法调用服务的负载状态,丰富了远程方法调用服务负载状态的判断方法。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述远程方法调用服务队列中的每个远程方法调用服务的负载状态,为所述第一客户端选择所述第一远程方法调用服务的步骤包括:
检测所述远程方法调用服务队列中的每个远程方法调用服务的网络连接数量;
根据所述每个远程方法调用服务的网络连接数量为所述第一客户端选择所述第一远程方法调用服务,所述第一远程方法调用服务为所述远程方法调用服务队列中网络连接数量最少的远程方法调用服务。
在本实施方式中,根据远程方法调用服务队列中的每个远程方法调用服务的网络连接数量作为其负载状态,来为客户端分配可用的远程方法调用服务,既能够实现各个远程方法调用服务之间的负载均衡,又能够保证分配给客户端的远程方法调用服务是可用的。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
当检测到第三远程方法调用服务的网络连接数量大于预设的最大连接数量时,停止调用所述第三远程方法调用服务,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务;
当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
在本实施方式中,对每个远程方法调用服务的网络连接数量进行监测,当任一远程方法调用服务的网络连接数量大于最大连接数量时,不再给该远程方法调用服务发送客户端的服务请求,从而既能够实现各个远程方法调用服务之间的负载均衡,又能保证客户端的所请求的远程方法调用服务是可用的。
结合第一方面,在第七种可能的实现方式中,所述方法还包括:
接收第三远程方法调用服务的停止调用请求,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务,所述停止调用请求用于请求停止调用所述第三远程方法调用服务;
响应于所述停止调用请求,停止调用所述第三远程方法调用服务;
当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
在本实施方式中,当任一远程方法调用服务的请求停止调用时,不再给该远程方法调用服务发送客户端的服务请求,从而既能够实现各个远程方法调用服务之间的负载均衡,又能保证客户端的所请求的远程方法调用服务是可用的。
结合第一方面,在第八种可能的实现方式中,所述方法还包括:
在所述第一客户端接收到所述服务请求响应后,接收所述第一客户端发送的数据请求;
将所述数据请求发送至所述目标远程方法调用服务;
接收所述目标远程方法调用服务根据所述数据请求返回的数据;
向所述第一客户端发送所述数据。
在本实施方式中,提供了一种从远程方法调用服务获取数据的方法,能够在收到远程方法调用服务的服务请求响应后,从该远程方法调用服务获取数据。
根据本公开实施例的第二方面,提供一种远程方法调用的装置,所述装置包括:
接收模块,被配置为接收第一客户端发送的服务请求;
调度模块,被配置为将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
发送模块,被配置为将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
结合第二方面,在第一种可能的实现方式中,所述调度模块包括:
选择子模块,被配置为在所述方法调用服务队列中为所述第一客户端选择第一远程方法调用服务;
转发子模块,被配置为向所述第一远程方法调用服务发送所述服务请求;
确定子模块,被配置为当在预设的响应时间内收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务作为所述目标远程方法调用服务;
所述选择子模块,被配置为当在所述响应时间内未收到所述服务请求响应时,在所述远程方法调用服务队列中为所述第一客户端选择第二远程方法调用服务;
所述转发子模块,被配置为向所述第二远程方法调用服务发送所述服务请求。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述调度模块还包括:
删除子模块,被配置为当在所述响应时间内未收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务从所述远程方法调用服务队列中删除。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述选择子模块被配置为:
根据所述远程方法调用服务队列中的每个远程方法调用服务的负载状态,为所述第一客户端选择所述第一远程方法调用服务。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述每个远程方法调用服务的所述负载状态包括:所述每个远程方法调用服务的网络连接数量,所述网络连接为远程方法调用服务与客户端之间的网络连接。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述选择子模块包括:
连接检测子模块,被配置为检测所述远程方法调用服务队列中的每个远程方法调用服务的网络连接数量;
服务选择子模块,被配置为根据所述每个远程方法调用服务的网络连接数量为所述第一客户端选择所述第一远程方法调用服务,所述第一远程方法调用服务为所述远程方法调用服务队列中网络连接数量最少的远程方法调用服务。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述装置还包括:控制模块;
所述控制模块,被配置为当检测到第三远程方法调用服务的网络连接数量大于预设的最大连接数量时,停止调用所述第三远程方法调用服务,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务;
所述调度模块,被配置为当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
结合第二方面,在第七种可能的实现方式中,所述装置还包括:控制模块;
所述接收模块,被配置为接收第三远程方法调用服务的停止调用请求,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务,所述停止调用请求用于请求停止调用所述第三远程方法调用服务;
所述控制模块,被配置为响应于所述停止调用请求,停止调用所述第三远程方法调用服务;
所述调度模块,被配置为当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
结合第二方面,在第八种可能的实现方式中,
所述接收模块,被配置为在所述第一客户端接收到所述服务请求响应后,接收所述第一客户端发送的数据请求;
所述发送模块,被配置为将所述数据请求发送至所述目标远程方法调用服务;
所述接收模块,被配置为接收所述目标远程方法调用服务根据所述数据请求返回的数据;
所述发送模块,被配置为向所述第一客户端发送所述数据。
根据本公开实施例的第三方面,提供一种远程方法调用系统,所述系统包括:
至少一个方法调用服务器,每个所述方法调用服务器上设置有至少一个远程方法调用服务;
至少一个调度服务器,每个所述调度服务器上设置有至少一个第二方面或其上述任一种可能的实现方式所述的远程方法调用的装置;以及
至少一个客户端;
所述至少一个方法调用服务器和所述至少一个客户端通过有线方式或无线方式与所述至少一个调度服务器连接。
根据本公开实施例的第四方面,提供一种远程方法调用的装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收第一客户端发送的服务请求;
将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过接收第一客户端发送的服务请求;将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。本公开解决了相关技术中,只启用一个远程方法调用服务,当远程方法调用服务出现故障时容易导致客户端访问失败的问题,以及请求服务的客户端过多时,影响服务性能的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开各个实施例所涉及的一种实施环境的结构示意图;
图2是根据一示例性实施例示出的一种远程方法调用的方法的流程图;
图3A是根据一示例性实施例示出的一种远程方法调用的方法的流程图;
图3B是根据一示例性实施例示出的另一种远程方法调用的方法的流程图;
图3C是根据一示例性实施例示出的又一种远程方法调用的方法的流程图;
图3D是根据图3A所示实施例示出的一种数据请求方法的流程图;
图4是根据一示例性实施例示出的一种远程方法调用的装置的框图;
图5A是根据一示例性实施例示出的一种远程方法调用的装置的框图;
图5B是根据图5A所示实施例示出的一种调度模块的框图;
图5C是根据图5A所示实施例示出的另一种调度模块的框图;
图5D是根据图5A所示实施例示出的一种选择子模块的框图;
图5E是根据一示例性实施例示出的另一种远程方法调用的装置的框图;
图6是根据一示例性实施例示出的一种用于远程方法调用的装置的框图;
图7是根据一示例性实施例示出的一种远程方法调用的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的远程方法调用的方法之前,首先对本公开所涉及应用场景进行介绍,图1是本公开各个实施例所涉及的一种实施环境的结构示意图。该实施环境可以包括:至少一个客户端、至少一个方法调用服务器以及至少一个调度服务器,其中每个方法调用服务器上可以设置有至少一个远程方法调用服务,每个调度服务器上可以设置至少一个用于调度任务的远程方法调用的装置。其中客户端可以是终端,或者是终端上的应用程序,每个客户端可以通过有线连接或者无线连接与该至少一个调度服务器通信,每个方法调用服务器也可以通过有线连接或者无线连接与该至少一个调度服务器通信,并且该至少一个方法调用服务器上设置的远程方法调用服务如果要为客户端提供服务,则需要在该至少一个调度服务器注册,从而加入到远程方法调用服务队列中。
该至少一个调度服务器设置的远程方法调用的装置构成了一个远程方法调用的装置集群,其中每个调度服务器上设置的远程方法调用的装置都可以用于调度任意客户端对该远程方法调用服务队列中的远程方法调用服务的服务请求,其中在任意时刻,保持该至少一个调度服务器上设置的远程方法调用的装置中有一个远程方法调用的装置处于运行状态即可,各个远程方法调用的装置可以通过keepalived进行监控,keepalived是一个基于第3层、第4层和第7层交换机制的软件,这里的第3层、第4层和第7层是指IP(InternetProtocol,互联网协议)/TCP(TransmissionControlProtocol,传输控制协议)协议栈的IP层、TCP层及应用层,当发现当前运行的远程方法调用的装置死机或者出现故障,则可以启动其他的远程方法调用的装置替代当前的远程方法调用的装置,并且可以将被替换的远程方法调用的装置统剔除出所在的调度服务器,另外,keepalived还可以加入新的远程方法调用的装置。
其中,上述终端可以是智能手机、平板电脑、智能电视、智能手表、PDA(PersonalDigitalAssistant,个人数字助理)、便携计算机等移动终端,也可以是台式计算机等固定终端。上述的方法调用服务器和调度服务器均可以为一台服务器,或者由若干台服务器组成的服务器集群,或者可以是一个云计算服务中心。上述的终端与服务器,服务器与服务器之间可以通过有线网络或者无线网络相连。
以图1为例,本实施环境可以包括n个客户端,一个调度服务器上设置有m个远程方法调用的装置,k个方法调用服务器(服务器1~k)中的每个设置有一个远程方法调用服务,共k个远程方法调用服务,其中,n个客户端分别为客户端1~n,m个远程方法调用的装置分别为远程方法调用的装置1~m,k个远程方法调用服务分别为远程方法调用服务1~k,n、m、k为非零自然数,n、m、k的取值可以根据实际需要来设置。其中,假设当前运行的是远程方法调用的装置1,客户端1~n中的每个客户端均可以向远程方法调用的装置1发送服务请求,远程方法调用的装置1收到任意一个客户端发送的服务请求后将该服务请求发送至远程方法调用服务1~k中的任意一个可用的远程方法调用服务,待收到服务请求的远程方法调用服务向远程方法调用的装置1返回服务请求响应后,远程方法调用的装置1再将该服务请求响应发送给相应的客户端,从而通过一种分布式的任务调度实现了远程方法调用。另外,当远程方法调用的装置1出现问题时,可以用其他的远程方法调用的装置,例如远程方法调用的装置2替代远程方法调用的装置1。
图2是根据一示例性实施例示出的一种远程方法调用的方法的流程图,本实施例以该远程方法调用的方法应用于远程方法调用的装置来举例说明,其中,该远程方法调用的装置可以为图1所示实施环境中的远程方法调用的装置1~m中的任一个。参见图2,该方法包括以下步骤:
在步骤S201中,接收第一客户端发送的服务请求。
在步骤S202中,将远程方法调用服务队列中能够响应服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务。
其中,该远程方法调用服务队列可以由远程方法调用的装置来管理,该远程方法调用服务队列中的至少一个远程方法调用服务通过预设的接口与该远程方法调用的装置连接。
示例地,远程方法调用的装置在接收到第一客户端发送的服务请求后,可以通过以下步骤在远程方法调用服务队列中为第一客户端确定目标远程方法调用服务:
首先,可以在远程方法调用服务队列中为第一客户端选择第一远程方法调用服务。其中,选择该第一远程方法调用服务的依据是该第一远程方法调用服务与远程方法调用的装置的网络连接正常,并且该第一远程方法调用服务的为该远程方法调用服务队列中的负载较低的远程方法调用服务。其中,负载的高低可以依据各个远程方法调用服务的网络连接数量来判定,该网络连接指的是远程方法调用服务与客户端之间的网络连接。
其次,在选择第一远程方法调用服务后,将第一客户端的服务请求发送至该第一远程方法调用服务,并等待该第一远程方法调用服务响应该服务请求。
当在预设的响应时间内收到第一远程方法调用服务返回的服务请求响应时,说明第一远程方法调用服务工作正常,可以将第一远程方法调用服务作为第一客户端的目标远程方法调用服务,并进行后续步骤。
当在该响应时间内未收到服务请求响应时,说明第一远程方法调用服务可能出现故障,或者是与第一远程方法调用服务的连接出现问题,则在远程方法调用服务队列中为第一客户端选择第一远程方法调用服务之外的第二远程方法调用服务,其选择依据与选择第一远程方法调用服务的依据相同,不再赘述。
并且,根据第二远程方法调用服务是否在该响应时间内响应该服务请求来确定是否将第二远程方法调用服务作为第一客户端的目标远程方法调用服务。以此类推,直至在远程方法调用服务队列中找到能够响应服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务。
在步骤S203中,将目标远程方法调用服务返回的响应于服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。
远程方法调用的装置在收到目标远程方法调用服务的服务请求响应后,将该服务请求响应发送至第一客户端,该第一客户端收到服务请求响应后,得知该目标远程方法调用服务允许第一客户端调用,从而该第一客户端可以进行后续的调用流程。
本公开实施例提供一种远程方法调用的方法,通过接收第一客户端发送的服务请求;将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务;将目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。本公开解决了相关技术中,只启用一个远程方法调用服务,当远程方法调用服务出现故障时容易导致客户端访问失败的问题,以及请求服务的客户端过多时,影响服务性能的问题。
图3A是根据一示例性实施例示出的一种远程方法调用的方法的流程图,本实施例以该远程方法调用的方法应用于远程方法调用的装置来举例说明,其中,该远程方法调用的装置可以为图1所示实施环境中的远程方法调用的装置1~m中的任一个。参见图3A,该方法包括以下步骤:
在步骤301中,远程方法调用的装置接收第一客户端发送的服务请求。
其中,该第一客户端可以是远程方法调用的装置所管理的任意一个客户端,例如可以是图1中所示的客户端1~n中的任一个。
在步骤302中,远程方法调用的装置在远程方法调用服务队列中为第一客户端选择第一远程方法调用服务。
该远程方法调用服务队列中包括至少一个远程方法调用服务,该至少一个远程方法调用服务均为在该远程方法调用的装置注册的远程方法调用服务,与远程方法调用的装置之间建立有连接。
选择该第一远程方法调用服务的依据是该第一远程方法调用服务与远程方法调用的装置的网络连接正常,并且该第一远程方法调用服务的为该远程方法调用服务队列中的负载较低的远程方法调用服务。其中,负载的高低可以依据各个远程方法调用服务的网络连接数量来判定,该网络连接指的是远程方法调用服务与客户端之间的网络连接。
示例地,根据个远程方法调用服务的网络连接数量来选择远程方法调用服务的方法可以包括以下步骤:
首先,检测远程方法调用服务队列中的每个远程方法调用服务的网络连接数量。
其次,根据每个远程方法调用服务的网络连接数量为第一客户端选择远程方法调用服务,其中当第一远程方法调用服务为远程方法调用服务队列中网络连接数量最少的远程方法调用服务时,为第一客户端选择该地第一远程方法调用服务。
当然,可选的,除了选择网络连接数量最少的第一远程方法调用服务,也可以选择网络连接数量大于该第一远程方法调用服务但是未超过预设的最大连接数量的其他远程方法调用服务。
在步骤303中,远程方法调用的装置向第一远程方法调用服务发送第一客户端的服务请求。
在步骤304中,远程方法调用的装置等待第一远程方法调用服务返回服务请求响应。
当在预设的响应时间内收到第一远程方法调用服务返回的服务请求响应时,说明第一远程方法调用服务工作正常,则可以执行步骤305~306;当在响应时间内未收到服务请求响应时,说明第一远程方法调用服务可能出现故障,或者是与第一远程方法调用服务的连接出现问题,可以执行步骤307~308。
在步骤305中,远程方法调用的装置将第一远程方法调用服务作为第一客户端的目标远程方法调用服务。
在步骤306中,远程方法调用的装置将服务请求响应发送至第一客户端。
该服务请求响应用于指示允许第一客户端调用该目标远程方法调用服务。示例地,第一客户端收到的服务请求响应中可以包括远程方法调用的装置为第一客户端进行远程方法调用分配的端口号和IP地址,该IP地址为当前运行的远程方法调用的装置的IP地址,端口号为用于标识远程方法调用的端口号,从而在第一客户端在收到服务请求响应后可以执行步骤316~步骤319。
在步骤307中,远程方法调用的装置在远程方法调用服务队列中为第一客户端选择第二远程方法调用服务。
即在远程方法调用服务队列中为第一客户端选择第一远程方法调用服务之外的第二远程方法调用服务,其选择依据与选择第一远程方法调用服务的依据相同,不再赘述。
在步骤308中,远程方法调用的装置向第二远程方法调用服务发送第一客户端的服务请求。
在向第二远程方法调用服务发送服务请求之后对第二远程方法调用服务执行与步骤301~步骤306(或者步骤301~步骤304,以及步骤307~步骤308)相同的步骤,不再赘述。以此类推,直至在远程方法调用服务队列中找到能够响应服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务。
图3B是根据一示例性实施例示出的另一种远程方法调用的方法的流程图,参见图3B,该方法还可以包括以下步骤:
在步骤309中,远程方法调用的装置当检测到第三远程方法调用服务的网络连接数量大于预设的最大连接数量时,停止调用第三远程方法调用服务。
其中,第三远程方法调用服务为服务队列中的任一远程方法调用服务。
在步骤310中,远程方法调用的装置接收第二客户端发送的服务请求。
在步骤311中,远程方法调用的装置将远程方法调用服务队列中除第三远程方法调用服务之外的且能够响应第二客户端的服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务。
这样可以在某个远程方法调用服务的负载较重时,将后续的服务请求转移至其他负载相对较轻的远程方法调用服务,从而防止远程方法调用服务队列中的每个远程方法调用服务的负载过大,实现了各个远程方法调用服务之间的负载均衡,避免对服务性能的影响。
图3C是根据一示例性实施例示出的又一种远程方法调用的方法的流程图,参见图3C,该方法还可以包括以下步骤:
在步骤312中,远程方法调用的装置接收第三远程方法调用服务的停止调用请求,停止调用请求用于请求停止调用第三远程方法调用服务。
其中,第三远程方法调用服务为服务队列中的任一远程方法调用服务。
在步骤313中,远程方法调用的装置响应于停止调用请求,停止调用第三远程方法调用服务。
在步骤314中,远程方法调用的装置接收第二客户端发送的服务请求。
在步骤315中,远程方法调用的装置将远程方法调用服务队列中除第三远程方法调用服务之外的且能够响应第二客户端的服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务。
可见除了图3C所示的通过监控来平衡负载,也可以由服务自身主动触发,这样可以在某个远程方法调用服务请求停止调用时时,将后续的服务请求转移至其他远程方法调用服务,从而也能实现各个远程方法调用服务之间的负载均衡,避免对服务性能的影响。
在第一客户端收到服务请求响应后,可以开始调用目标远程方法调用服务,可以通过数据请求从目标远程方法调用服务获取数据。图3D是根据图3A所示实施例示出的一种数据请求方法的流程图,参见图3D,该方法可以包括以下步骤:
在步骤316中,在第一客户端接收到服务请求响应后,远程方法调用的装置接收第一客户端发送的数据请求。
其中,第一客户端发送的数据请求中可以携带步骤306中通过服务请求响应得到的端口号和IP地址。
在步骤317中,远程方法调用的装置将数据请求发送至目标远程方法调用服务。
远程方法调用的装置接收到数据请求后,根据其携带的端口号和IP地址能够确定第一客户端是要进行远程方法调用,则将数据请求发送至之前响应该第一客户端的服务请求的目标远程方法调用服务。
在步骤318中,远程方法调用的装置接收目标远程方法调用服务根据数据请求返回的数据。
在步骤319中,远程方法调用的装置向第一客户端发送该数据。
另外,本公开实施例中的远程方法调用的装置是指当前运行的远程方法调用的装置,其可以为图1所示的远程方法调用的装置1~m中的任意一个,如果当前运行的远程方法调用的装置出现故障,或司机,则可以启动远程方法调用的装置1~m中的另一个远程方法调用的装置来执行图3A至3D任一所示的方法。由此可见通过一种分布式的任务调度实现了远程方法调用。
本公开实施例提供一种远程方法调用的方法,通过接收第一客户端发送的服务请求;将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务;将目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。本公开解决了相关技术中,只启用一个远程方法调用服务,当远程方法调用服务出现故障时容易导致客户端访问失败的问题,以及请求服务的客户端过多时,影响服务性能的问题。
图4是根据一示例性实施例示出的一种远程方法调用的装置的框图,图4所示的远程方法调用的装置400可以用于执行图2或图3A至图3D任一所示的远程方法调用的方法,该远程方法调用的装置400可以通过软件、硬件或者两者的结合实现成为调度服务器的部分或者全部,该调度服务器可以是图1所示实施环境中的调度服务器,该远程方法调用的装置可以为图1所示实施环境中的远程方法调用的装置1~m中的任一个。参见图4,该远程方法调用的装置400可以包括:接收模块410、调度模块420、发送模块430。
接收模块410,被配置为接收第一客户端发送的服务请求;
调度模块420,被配置为将远程方法调用服务队列中能够响应所述接收模块410接收到的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
发送模块430,被配置为将所述调度模块420得到的目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
本公开实施例提供一种远程方法调用的装置,通过接收第一客户端发送的服务请求;将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务;将目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。本公开解决了相关技术中,只启用一个远程方法调用服务,当远程方法调用服务出现故障时容易导致客户端访问失败的问题,以及请求服务的客户端过多时,影响服务性能的问题。
图5A是根据一示例性实施例示出的一种远程方法调用的装置的框图,图5A所示的远程方法调用的装置500可以用于执行图2或图3A至图3D任一所示的远程方法调用的方法,该远程方法调用的装置500可以通过软件、硬件或者两者的结合实现成为调度服务器的部分或者全部,该调度服务器可以是图1所示实施环境中的调度服务器,该远程方法调用的装置可以为图1所示实施环境中的远程方法调用的装置1~m中的任一个。参见图5A,该远程方法调用的装置500可以包括:接收模块510、调度模块520、发送模块530。
接收模块510,被配置为接收第一客户端发送的服务请求;
调度模块520,被配置为将远程方法调用服务队列中能够响应接收模块510接收到的服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务;
发送模块530,被配置为将调度模块520得到的目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。
可选的,图5B是根据图5A所示实施例示出的一种调度模块的框图,参见图5B,调度模块520包括:
选择子模块521,被配置为在远程方法调用服务队列中为第一客户端选择第一远程方法调用服务;
转发子模块522,被配置为向选择子模块521选择的第一远程方法调用服务发送所述服务请求;
确定子模块523,被配置为当在预设的响应时间内收到第一远程方法调用服务返回的服务请求响应时,将选择子模块521选择的第一远程方法调用服务作为目标远程方法调用服务;
选择子模块521,被配置为当在响应时间内未收到服务请求响应时,在远程方法调用服务队列中为第一客户端选择第二远程方法调用服务;
转发子模块522,被配置为向选择子模块521选择的第二远程方法调用服务发送所述服务请求。
可选的,图5C是根据图5A所示实施例示出的另一种调度模块的框图,参见图5C,调度模块520还包括:
删除子模块524,被配置为当在响应时间内未收到第一远程方法调用服务返回的服务请求响应时,将选择子模块521选择的第一远程方法调用服务从远程方法调用服务队列中删除。
可选的,选择子模块521被配置为:
根据远程方法调用服务队列中的每个远程方法调用服务的负载状态,为第一客户端选择第一远程方法调用服务。
可选的,每个远程方法调用服务的负载状态包括:每个远程方法调用服务的网络连接数量,网络连接为远程方法调用服务与客户端之间的网络连接。
可选的,图5D是根据图5A所示实施例示出的一种选择子模块的框图,参见图5D,选择子模块521包括:
连接检测子模块5211,被配置为检测远程方法调用服务队列中的每个远程方法调用服务的网络连接数量;
服务选择子模块5212,被配置为根据连接检测子模块5211得到的每个远程方法调用服务的网络连接数量为第一客户端选择第一远程方法调用服务,第一远程方法调用服务为远程方法调用服务队列中网络连接数量最少的远程方法调用服务。
可选的,图5E是根据一示例性实施例示出的另一种远程方法调用的装置的框图,参见图5E,该远程方法调用的装置500还包括:控制模块540;
控制模块540,被配置为当检测到第三远程方法调用服务的网络连接数量大于预设的最大连接数量时,停止调用第三远程方法调用服务,第三远程方法调用服务为服务队列中的任一远程方法调用服务;
调度模块520,被配置为当接收到第二客户端发送的服务请求时,将远程方法调用服务队列中除第三远程方法调用服务之外的且能够响应第二客户端的服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,第二客户端与第一客户端为相同或不同客户端。
可选的,参见图5E,
接收模块510,还被配置为接收第三远程方法调用服务的停止调用请求,第三远程方法调用服务为服务队列中的任一远程方法调用服务,停止调用请求用于请求停止调用第三远程方法调用服务;
控制模块540,还被配置为响应于停止调用请求,停止调用第三远程方法调用服务;
调度模块520,还被配置为当接收到第二客户端发送的服务请求时,将远程方法调用服务队列中除第三远程方法调用服务之外的且能够响应第二客户端的服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,第二客户端与第一客户端为相同或不同客户端。
可选的,接收模块510,还被配置为在第一客户端接收到服务请求响应后,接收第一客户端发送的数据请求;
发送模块530,还被配置为将数据请求发送至目标远程方法调用服务;
接收模块510,还被配置为接收目标远程方法调用服务根据数据请求返回的数据;
发送模块530,还被配置为向第一客户端发送所述数据。
本公开实施例提供一种远程方法调用的装置,通过接收第一客户端发送的服务请求;将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为第一客户端的目标远程方法调用服务,远程方法调用服务队列中包括至少一个远程方法调用服务;将目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至第一客户端,服务请求响应用于指示允许第一客户端调用目标远程方法调用服务。本公开解决了相关技术中,只启用一个远程方法调用服务,当远程方法调用服务出现故障时容易导致客户端访问失败的问题,以及请求服务的客户端过多时,影响服务性能的问题。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供一种远程方法调用系统,该系统包括:
至少一个方法调用服务器,每个方法调用服务器上设置有至少一个远程方法调用服务;
至少一个调度服务器,该至少一个调度服务器上设置有至少一个图4或图5A至图5E所示的远程方法调用的装置;以及
至少一个客户端;
所述至少一个方法调用服务器和所述至少一个客户端通过有线方式或无线方式与所述至少一个调度服务器连接。
图6是根据一示例性实施例示出的一种用于远程方法调用的装置的框图。例如,装置600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
装置600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述图2或图3A至图3D任一所示的远程方法调用的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件606为装置600的各种组件提供电力。电力组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当装置600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到装置600的打开/关闭状态,组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图2或图3A至图3D任一所示的远程方法调用的方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由装置600的处理器620执行以完成上述图2或图3A至图3D任一所示的远程方法调用的方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置600的处理组件602执行时,使得远程方法调用的装置能够执行一种远程方法调用的方法,所述方法包括图2或图3A至图3D任一所示的远程方法调用的方法。
图7是根据一示例性实施例示出的一种远程方法调用的装置的框图。例如,装置700可以被提供为一服务器,该服务器可以是图1所示的调度服务器。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述图2或图3A至图3D任一所示的远程方法调用的方法。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (20)

1.一种远程方法调用的方法,其特征在于,所述方法包括:
接收第一客户端发送的服务请求;
将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
2.根据权利要求1所述的方法,其特征在于,所述将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务包括:
在所述远程方法调用服务队列中为所述第一客户端选择第一远程方法调用服务;
向所述第一远程方法调用服务发送所述服务请求;
当在预设的响应时间内收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务作为所述目标远程方法调用服务;
当在所述响应时间内未收到所述服务请求响应时,在所述远程方法调用服务队列中为所述第一客户端选择第二远程方法调用服务;
向所述第二远程方法调用服务发送所述服务请求。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当在所述响应时间内未收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务从所述远程方法调用服务队列中删除。
4.根据权利要求2所述的方法,其特征在于,所述在所述方法调用服务队列中为所述第一客户端选择第一远程方法调用服务包括:
根据所述远程方法调用服务队列中的每个远程方法调用服务的负载状态,为所述第一客户端选择所述第一远程方法调用服务。
5.根据权利要求4所述的方法,其特征在于,所述每个远程方法调用服务的所述负载状态包括:所述每个远程方法调用服务的网络连接数量,所述网络连接为远程方法调用服务与客户端之间的网络连接。
6.根据权利要求5所述的方法,其特征在于,所述根据所述远程方法调用服务队列中的每个远程方法调用服务的负载状态,为所述第一客户端选择所述第一远程方法调用服务的步骤包括:
检测所述远程方法调用服务队列中的每个远程方法调用服务的网络连接数量;
根据所述每个远程方法调用服务的网络连接数量为所述第一客户端选择所述第一远程方法调用服务,所述第一远程方法调用服务为所述远程方法调用服务队列中网络连接数量最少的远程方法调用服务。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当检测到第三远程方法调用服务的网络连接数量大于预设的最大连接数量时,停止调用所述第三远程方法调用服务,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务;
当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第三远程方法调用服务的停止调用请求,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务,所述停止调用请求用于请求停止调用所述第三远程方法调用服务;
响应于所述停止调用请求,停止调用所述第三远程方法调用服务;
当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一客户端接收到所述服务请求响应后,接收所述第一客户端发送的数据请求;
将所述数据请求发送至所述目标远程方法调用服务;
接收所述目标远程方法调用服务根据所述数据请求返回的数据;
向所述第一客户端发送所述数据。
10.一种远程方法调用的装置,其特征在于,所述装置包括:
接收模块,被配置为接收第一客户端发送的服务请求;
调度模块,被配置为将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
发送模块,被配置为将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
11.根据权利要求10所述的装置,其特征在于,所述调度模块包括:
选择子模块,被配置为在所述远程方法调用服务队列中为所述第一客户端选择第一远程方法调用服务;
转发子模块,被配置为向所述第一远程方法调用服务发送所述服务请求;
确定子模块,被配置为当在预设的响应时间内收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务作为所述目标远程方法调用服务;
所述选择子模块,被配置为当在所述响应时间内未收到所述服务请求响应时,在所述远程方法调用服务队列中为所述第一客户端选择第二远程方法调用服务;
所述转发子模块,被配置为向所述第二远程方法调用服务发送所述服务请求。
12.根据权利要求11所述的装置,其特征在于,所述调度模块还包括:
删除子模块,被配置为当在所述响应时间内未收到所述第一远程方法调用服务返回的服务请求响应时,将所述第一远程方法调用服务从所述远程方法调用服务队列中删除。
13.根据权利要求11所述的装置,其特征在于,所述选择子模块被配置为:
根据所述远程方法调用服务队列中的每个远程方法调用服务的负载状态,为所述第一客户端选择所述第一远程方法调用服务。
14.根据权利要求13所述的装置,其特征在于,所述每个远程方法调用服务的所述负载状态包括:所述每个远程方法调用服务的网络连接数量,所述网络连接为远程方法调用服务与客户端之间的网络连接。
15.根据权利要求14所述的装置,其特征在于,所述选择子模块包括:
连接检测子模块,被配置为检测所述远程方法调用服务队列中的每个远程方法调用服务的网络连接数量;
服务选择子模块,被配置为根据所述每个远程方法调用服务的网络连接数量为所述第一客户端选择所述第一远程方法调用服务,所述第一远程方法调用服务为所述远程方法调用服务队列中网络连接数量最少的远程方法调用服务。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:控制模块;
所述控制模块,被配置为当检测到第三远程方法调用服务的网络连接数量大于预设的最大连接数量时,停止调用所述第三远程方法调用服务,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务;
所述调度模块,被配置为当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
17.根据权利要求10所述的装置,其特征在于,所述装置还包括:控制模块;
所述接收模块,被配置为接收第三远程方法调用服务的停止调用请求,所述第三远程方法调用服务为所述服务队列中的任一远程方法调用服务,所述停止调用请求用于请求停止调用所述第三远程方法调用服务;
所述控制模块,被配置为响应于所述停止调用请求,停止调用所述第三远程方法调用服务;
所述调度模块,被配置为当接收到第二客户端发送的服务请求时,将所述远程方法调用服务队列中除所述第三远程方法调用服务之外的且能够响应所述第二客户端的服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述第二客户端与所述第一客户端为相同或不同客户端。
18.根据权利要求10所述的装置,其特征在于,
所述接收模块,被配置为在所述第一客户端接收到所述服务请求响应后,接收所述第一客户端发送的数据请求;
所述发送模块,被配置为将所述数据请求发送至所述目标远程方法调用服务;
所述接收模块,被配置为接收所述目标远程方法调用服务根据所述数据请求返回的数据;
所述发送模块,被配置为向所述第一客户端发送所述数据。
19.一种远程方法调用系统,其特征在于,所述系统包括:
至少一个方法调用服务器,每个所述方法调用服务器上设置有至少一个远程方法调用服务;
至少一个调度服务器,每个所述调度服务器上设置有至少一个权利要求10-18任一项所述的远程方法调用的装置;以及
至少一个客户端;
所述至少一个方法调用服务器和所述至少一个客户端通过有线方式或无线方式与所述至少一个调度服务器连接。
20.一种远程方法调用的装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收第一客户端发送的服务请求;
将远程方法调用服务队列中能够响应所述服务请求的远程方法调用服务作为所述第一客户端的目标远程方法调用服务,所述远程方法调用服务队列中包括至少一个远程方法调用服务;
将所述目标远程方法调用服务返回的响应于所述服务请求的服务请求响应发送至所述第一客户端,所述服务请求响应用于指示允许所述第一客户端调用所述目标远程方法调用服务。
CN201510642187.XA 2015-09-30 2015-09-30 远程方法调用的方法、装置及系统 Pending CN105391683A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510642187.XA CN105391683A (zh) 2015-09-30 2015-09-30 远程方法调用的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510642187.XA CN105391683A (zh) 2015-09-30 2015-09-30 远程方法调用的方法、装置及系统

Publications (1)

Publication Number Publication Date
CN105391683A true CN105391683A (zh) 2016-03-09

Family

ID=55423520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510642187.XA Pending CN105391683A (zh) 2015-09-30 2015-09-30 远程方法调用的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105391683A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107733866A (zh) * 2017-09-12 2018-02-23 阿里巴巴集团控股有限公司 Rpc请求、rpc请求处理方法、装置以及设备
CN111176761A (zh) * 2019-12-23 2020-05-19 中国联合网络通信集团有限公司 微服务调用方法和装置
CN111221662A (zh) * 2019-10-16 2020-06-02 贝壳技术有限公司 任务调度方法、系统及装置
CN112162873A (zh) * 2020-09-28 2021-01-01 杭州安恒信息技术股份有限公司 一种远程调用方法、电子装置和存储介质
CN113612861A (zh) * 2021-10-08 2021-11-05 深圳鼎信通达股份有限公司 远程访问方法、系统及计算机可读存储介质
CN116800801A (zh) * 2023-08-24 2023-09-22 北京天恒安科集团有限公司 一种基于NB-lot的智慧消防调度方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241176A1 (en) * 2008-03-21 2009-09-24 Microsoft Corporation Load balancing in server computer systems
CN101674320A (zh) * 2008-09-12 2010-03-17 阿里巴巴集团控股有限公司 一种集群环境下的服务寻址方法及装置
US20110066672A1 (en) * 2009-09-14 2011-03-17 Red Hat, Inc. Transaction Sticky Load Balance Policies
CN103024058A (zh) * 2012-12-19 2013-04-03 中国电子科技集团公司第十五研究所 Web服务调用方法及系统
CN103731312A (zh) * 2014-01-26 2014-04-16 飞狐信息技术(天津)有限公司 对远程方法调用的服务进行故障检查的方法和装置
CN104270472A (zh) * 2014-10-24 2015-01-07 杭州高达软件系统股份有限公司 一种远程服务调用方法、装置及系统
CN104426871A (zh) * 2013-08-29 2015-03-18 中兴通讯股份有限公司 一种远程调用的方法和装置
CN104883721A (zh) * 2015-06-01 2015-09-02 深圳市蓝泰源信息技术股份有限公司 一种无线网络接入的控制方法及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241176A1 (en) * 2008-03-21 2009-09-24 Microsoft Corporation Load balancing in server computer systems
CN101674320A (zh) * 2008-09-12 2010-03-17 阿里巴巴集团控股有限公司 一种集群环境下的服务寻址方法及装置
US20110066672A1 (en) * 2009-09-14 2011-03-17 Red Hat, Inc. Transaction Sticky Load Balance Policies
CN103024058A (zh) * 2012-12-19 2013-04-03 中国电子科技集团公司第十五研究所 Web服务调用方法及系统
CN104426871A (zh) * 2013-08-29 2015-03-18 中兴通讯股份有限公司 一种远程调用的方法和装置
CN103731312A (zh) * 2014-01-26 2014-04-16 飞狐信息技术(天津)有限公司 对远程方法调用的服务进行故障检查的方法和装置
CN104270472A (zh) * 2014-10-24 2015-01-07 杭州高达软件系统股份有限公司 一种远程服务调用方法、装置及系统
CN104883721A (zh) * 2015-06-01 2015-09-02 深圳市蓝泰源信息技术股份有限公司 一种无线网络接入的控制方法及设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107733866A (zh) * 2017-09-12 2018-02-23 阿里巴巴集团控股有限公司 Rpc请求、rpc请求处理方法、装置以及设备
CN111221662A (zh) * 2019-10-16 2020-06-02 贝壳技术有限公司 任务调度方法、系统及装置
CN111176761A (zh) * 2019-12-23 2020-05-19 中国联合网络通信集团有限公司 微服务调用方法和装置
CN112162873A (zh) * 2020-09-28 2021-01-01 杭州安恒信息技术股份有限公司 一种远程调用方法、电子装置和存储介质
CN112162873B (zh) * 2020-09-28 2024-03-26 杭州安恒信息技术股份有限公司 一种远程调用方法、电子装置和存储介质
CN113612861A (zh) * 2021-10-08 2021-11-05 深圳鼎信通达股份有限公司 远程访问方法、系统及计算机可读存储介质
CN116800801A (zh) * 2023-08-24 2023-09-22 北京天恒安科集团有限公司 一种基于NB-lot的智慧消防调度方法及系统
CN116800801B (zh) * 2023-08-24 2023-11-07 北京天恒安科集团有限公司 一种基于NB-Iot的智慧消防调度方法及系统

Similar Documents

Publication Publication Date Title
CN105391683A (zh) 远程方法调用的方法、装置及系统
CN105159672A (zh) 远程协助方法和客户端
JP2016522477A (ja) グループ作成方法、グループ脱退方法、装置、プログラム、及び記録媒体
CN106254467A (zh) 文件分享方法及装置
EP3145124A1 (en) Method and device for releasing connection
WO2020097845A1 (zh) 网络切片的使用方法及装置
CN105491048A (zh) 账户管理方法及装置
US11950302B2 (en) Method for data transmission and establishing unicast connection based on sidelink
CN105847111A (zh) 添加好友的方法及装置
CN105722064A (zh) 获取终端信息的方法及装置
CN106371327A (zh) 分享控制权的方法及装置
CN105471814A (zh) 账号管理方法及装置
CN105096230A (zh) 航班通知方法、航班设置方法及装置
CN104992088A (zh) 设备安全保护方法及装置
CN105554064A (zh) 设置头像的方法及装置
CN104301308A (zh) 通话控制方法及装置
CN104158854B (zh) 资源共享方法及装置
CN104767857A (zh) 基于云名片的电话呼叫方法及装置
CN105208089A (zh) 信息显示方法、装置及系统
CN105634920A (zh) 消息撤回方法及装置
CN104881342A (zh) 终端测试方法及装置
CN105391624A (zh) 通知消息传输方法、装置及系统
CN105376318A (zh) 文件传输方法、装置及系统
CN105307288A (zh) 断开连接的方法和装置
CN105188024A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20160309

RJ01 Rejection of invention patent application after publication