一种远程调用的方法和装置制造方法

文档序号:8005964阅读:182来源:国知局
一种远程调用的方法和装置制造方法
【专利摘要】本发明提供一种远程调用的方法及终端,该方法包括:服务端将发布的服务注册到注册中心;客户端向所述注册中心发送订阅服务请求;所述注册中心接受所述订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端;所述客户端接收所述注册中心推送的服务后,自动适配相应的协议,与所述服务端建立链接,并调用相应服务。本发明可以自由切换服务间的不同协议,而不需要修改业务任何源码,达到了业务开发人员,不需要关注多业务间的服务通讯问题,就能像本地调用服务一样,以非常简单的方式调用其他业务提供的服务效果,节省了业务开发的时间,提高了业务开发的工作效率等。
【专利说明】一种远程调用的方法和装置

【技术领域】
[0001]本发明涉及远程通讯调用领域,具体而言,尤其涉及一种远程调用的方法及装置。

【背景技术】
[0002]随着移动互联网的发展,网站应用的规模不断扩大,业务量和业务类型日趋复杂多样。同时,也造成了业务之间服务的远程数据调用也日趋频繁,针对不同的实际场景,业务可能选择RMI (Remote Method Invocat1n,远程方法调用)、web service (网页服务)、restful (一种 REST (Representat1nal State Transfer,表述性状态转移)样式的网页服务)等协议进行发布服务和调用服务。
[0003]目前的跨协议远程调用装置,往往通过修改配置文件和修改服务端、客户端的源代码来实现不同协议之间的通讯。通过配置文件的修改,可以确定不同机器、不同协议间的调用属性;通过修改服务端和客户端的源代码,可以实现不同协议调用的实现。
[0004]现实中,当切换不同协议进行服务发布和服务调用时,现有技术往往是不仅要修改配置文件,还要修改业务服务端和客户端的源代码实现,使得业务服务的开发和发布很繁琐。


【发明内容】

[0005]本发明要解决的技术问题是提供一种远程调用的方法及装置,以自由切换服务间的不同协议。
[0006]为了解决上述技术问题,本发明提供了一种远程调用的方法,包括:
[0007]服务端将发布的服务注册到注册中心;
[0008]客户端向所述注册中心发送订阅服务请求;
[0009]所述注册中心接受所述订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端;
[0010]所述客户端接收所述注册中心推送的服务后,自动适配相应的协议,与所述服务端建立链接,并调用相应服务。
[0011]进一步地,上述方法还具有下面特点:所述服务端将发布的服务注册到注册中心之前,包括:
[0012]所述服务端配置并发布服务的接口、服务的接口实现类、服务的协议和所述注册中心的地址。
[0013]进一步地,上述方法还具有下面特点:
[0014]所述服务端是通过可扩展标记语言文件进行配置的。
[0015]进一步地,上述方法还具有下面特点:所述客户端向所述注册中心发送订阅服务请求之前,包括:
[0016]所述客户端配置调用服务的接口和所述注册中心的地址。
[0017]进一步地,上述方法还具有下面特点:所述注册中心接受所述订阅服务请求后,还包括:
[0018]所述注册中心将所述服务端注册的服务与所述客户端订阅的服务进行关联。
[0019]为了解决上述问题,本发明还提供了一种注册中心,其中,包括:
[0020]注册模块,用于注册服务端发布的服务;
[0021]推送模块,用于接受客户端的订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端。
[0022]进一步地,所述注册中心还具有下面特点:所述注册中心还包括:
[0023]关联模块,用于将所述服务端注册的服务与所述客户端订阅的服务进行关联。
[0024]为了解决上述问题,本发明还提供了一种终端,作为服务端,其中,包括:
[0025]配置模块,用于配置并发布服务;
[0026]注册模块,用于将发布的服务注册到注册中心。
[0027]进一步地,所述终端还具有下面特点:
[0028]所述配置模块,发布的服务包括:发布服务的接口、服务的接口实现类、服务的协议和所述注册中心的地址。
[0029]进一步地,所述终端还具有下面特点:
[0030]所述配置模块,是通过可扩展标记语言文件进行配置的。
[0031]为了解决上述问题,本发明还提供了一种终端,作为客户端,其中,包括:
[0032]收发模块,用于向注册中心发送订阅服务请求,并接收所述注册中心推送的服务;
[0033]处理模块,用于自动适配相应的协议,与服务端建立链接,并调用相应服务。
[0034]进一步地,上述终端还具有下面特点:所述终端还包括:
[0035]配置模块,用于配置调用服务的接口和所述注册中心的地址。
[0036]综上,本发明提供一种远程调用的方法及终端,与现有技术相比,可以自由切换服务间的不同协议,而不需要修改业务任何源码,达到了业务开发人员,不需要关注多业务间的服务通讯问题,就能像本地调用服务一样,以非常简单的方式调用其他业务提供的服务效果,节省了业务开发的时间,提高了业务开发的工作效率等。

【专利附图】

【附图说明】
[0037]图1为本发明实施例的远程调用的系统的示意图;
[0038]图2为本发明实施例的作为注册中心的终端的示意图;
[0039]图3为本发明实施例的作为服务端的终端的示意图;
[0040]图4是本发明实施例的作为客户端的终端的示意图;
[0041]图5为本发明实施例的一种远程调用的方法的流程图。

【具体实施方式】
[0042]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0043]图1为本发明实施例的远程调用的系统的示意图,如图1所示,本实施例的系统,可以包括:
[0044]服务端,用于将发布的服务注册到注册中心(Register center);
[0045]客户端,用于向所述注册中心发送订阅服务请求;接收所述注册中心推送的服务后,自动适配相应的协议,与所述服务端建立链接,并调用相应服务;
[0046]所述注册中心,用于接受所述订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端。
[0047]图2为本发明实施例的作为注册中心的终端的示意图,如图2所示,本实施例的注册中心包括:
[0048]注册模块,用于注册服务端发布的服务;
[0049]推送模块,用于接受客户端的订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端。
[0050]在一优选实施例中,所述注册中心还包括:
[0051]关联模块,用于将所述服务端注册的服务与所述客户端订阅的服务进行关联。
[0052]图3为本发明实施例的作为服务端的终端的示意图,如图3所示,本实施例的服务端包括:
[0053]配置模块,用于配置并发布服务;
[0054]注册模块,用于将发布的服务注册到注册中心。
[0055]其中,所述配置模块,发布的服务包括:发布服务的接口、服务的接口实现类、服务的协议和所述注册中心的地址。
[0056]其中,所述配置模块,是通过可扩展标记语言文件进行配置的。
[0057]图4是本发明实施例的作为客户端的终端的示意图,如图4所示,本实施例的客户端包括:
[0058]收发模块,用于向注册中心发送订阅服务请求,并接收所述注册中心推送的服务;
[0059]处理模块,用于自动适配相应的协议,与服务端建立链接,并调用相应服务。
[0060]在一优选的实施例中,所述客户端还可以包括:
[0061]配置模块,用于配置调用服务的接口和所述注册中心的地址。
[0062]注册中心:用于处理服务端的服务注册、客户端的服务订阅,检测各个服务依赖关系,心跳检测等。同时,根据客户端服务订阅情况,自动把服务推送到客户端。
[0063]在服务端和客户端中安装Agent (代理)模块,通过反射原理解析配置文件,自动选择不同的协议,选择高性能的序列化并发送和接受数据。
[0064]Register center和Agent (服务端和客户端),可以分别部署不同的机器上,共三台机器。
[0065]服务端的功能包括:服务端配置层通过xml (Extensible Markup Language,可扩展标记语言)文件配置不同的协议,服务实现,序列化方式和连接的注册中心地址等等;月艮务端的协议适配层根据配置条件选择适配不同的协议实现;服务端协议层针对不同的协议对应不同的协议实现启动;服务传输层采用B1 (Blocking Input/Output,同步阻塞的输入流/输出流)或者N1 (New Input/Output,同步非阻塞的输入流/输出流)方式进行传输;服务端序列化层采用不同的方式对对象进行序列化。
[0066]注册中心的功能包括:可以对具体某个服务被发布和订阅进行关联;可以对注册中心和服务端与客户端之间进行心跳检测管理;可以对服务端注册服务和客户端订阅服务的兼容性进行检测。
[0067]客户端的功能包括:客户端配置层可以通过xml文件配置服务调用接口,序列化方式和连接的注册中心地址等;客户端的协议适配层可以根据推送过来的服务端URL(Uniform Resource Locator,统一资源定位器),解析服务端URL,进而自动适配相应的协议;客户端协议层实现不同的协议对应不同的协议调用;客户端传输层采用B1或者N1方式进行传输;客户端序列化层在传输发送前,采用不同的方式对对象进行序列化。
[0068]图5为本发明实施例的一种远程调用的方法的流程图,首先,安装注册中心,业务服务端和客户端中都加载Agent模块和配置文件,如图5所示,本实施例的方法包括:
[0069]S11、服务端将发布的服务注册到注册中心;
[0070]S12、客户端向所述注册中心发送订阅服务请求;
[0071]S13、注册中心接受所述订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端;
[0072]S14、客户端接收所述注册中心推送的服务后,自动适配相应的协议,与所述服务端建立链接,并调用相应服务。
[0073]这样,在切换服务或新增服务时,只需要在服务端的配置项中修改服务协议名称即可。
[0074]采用本发明所述方法及系统,与现有技术相比,可以自由切换服务间的不同协议,而不要修改业务任何源码,达到了业务开发人员,不需要关注多业务间的服务通讯问题,就能像本地调用服务一样,以非常简单的方式调用其他业务提供的服务效果,节省了业务开发的时间,提高了业务开发的工作效率等等。
[0075]以下为本发明一应用示例的流程部分的处理步骤如下:
[0076]步骤1:启动注册中心,注册中心启动Socket (套接字)监听。
[0077]步骤2:在服务端上操作,通过xml配置文件,配置发布服务的接口以及该接口实现类,配置发布服务的协议、序列化方式和注册中心地址等。
[0078]步骤3:启动服务端,服务端会把服务注册到注册中心。
[0079]步骤4:在客户端上操作,通过xml配置文件,配置调用服务的接口,序列化方式和注册中心地址等。
[0080]步骤5:启动客户端,客户端向注册中心订阅服务,当存在服务时,注册中心会实时把服务推送给客户端。
[0081]步骤6:客户端自动发现存在的服务,然后和服务端建立链接,并调用服务。
[0082]因此,更改协议时,只需要修改服务端的xml配置中发布服务协议名称即可,注册中心和客户端并不需要任何修改。
[0083]现实中,当切换不同协议进行服务发布和服务调用时,现有技术往往是不仅要修改配置文件,还要修改业务服务端和客户端的源代码实现。本发明中,假如要切换到不同的协议,只需要修改配置文件即可,业务代码无需任何的改动。同时,本发明还引入了自动发现服务功能和高性能的序列化,如较短的序列化/反序列化时间和较高的传输数据压缩比。
[0084]本发明实施例的方法通过部署插件和配置文件结合的方式,实现不同协议间服务的动态切换。只需要修改服务端的配置文件,即可动态切换不同协议间的服务调用,业务的服务端和客户端的源代码不需要任何的改动。借助此工具,使得业务开发人员,不需要关注多业务间的服务通讯问题,就能像本地调用服务一样,以非常简单的方式调用其他业务提供的服务。从而实现互联网不同节点的服务调用,使得业务服务的开发和发布变的非常简单和便捷。
[0085]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0086]以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种远程调用的方法,包括: 服务端将发布的服务注册到注册中心; 客户端向所述注册中心发送订阅服务请求; 所述注册中心接受所述订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端; 所述客户端接收所述注册中心推送的服务后,自动适配相应的协议,与所述服务端建立链接,并调用相应服务。
2.如权利要求1所述的方法,其特征在于:所述服务端将发布的服务注册到注册中心之前,包括: 所述服务端配置并发布服务的接口、服务的接口实现类、服务的协议和所述注册中心的地址。
3.如权利要求2所述的方法,其特征在于: 所述服务端是通过可扩展标记语言文件进行配置的。
4.如权利要求1所述的方法,其特征在于:所述客户端向所述注册中心发送订阅服务请求之前,包括: 所述客户端配置调用服务的接口和所述注册中心的地址。
5.如权利要求1-4所述的方法,其特征在于:所述注册中心接受所述订阅服务请求后,还包括: 所述注册中心将所述服务端注册的服务与所述客户端订阅的服务进行关联。
6.—种终端,作为注册中心,其特征在于,包括: 注册模块,用于注册服务端发布的服务; 推送模块,用于接受客户端的订阅服务请求,当发现存在相应服务时,实时将相应服务推送给所述客户端。
7.如权利要求6所述的终端,其特征在于:所述终端还包括: 关联模块,用于将所述服务端注册的服务与所述客户端订阅的服务进行关联。
8.—种终端,作为服务端,其特征在于,包括: 配置模块,用于配置并发布服务; 注册模块,用于将发布的服务注册到注册中心。
9.如权利要求8所述的终端,其特征在于: 所述配置模块,发布的服务包括:发布服务的接口、服务的接口实现类、服务的协议和所述注册中心的地址。
10.如权利要求8或9所述的终端,其特征在于: 所述配置模块,是通过可扩展标记语言文件进行配置的。
11.一种终端,作为客户端,其特征在于,包括: 收发模块,用于向注册中心发送订阅服务请求,并接收所述注册中心推送的服务; 处理模块,用于自动适配相应的协议,与服务端建立链接,并调用相应服务。
12.如权利要求11所述的终端,其特征在于:所述终端还包括: 配置模块,用于配置调用服务的接口和所述注册中心的地址。
【文档编号】H04L29/06GK104426871SQ201310386418
【公开日】2015年3月18日 申请日期:2013年8月29日 优先权日:2013年8月29日
【发明者】周其信 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1