跨语言调用方法、服务器及存储介质技术

技术编号:18398179 阅读:26 留言:0更新日期:2018-07-08 19:12
本发明专利技术公开了一种跨语言调用方法、服务器及存储介质,该方法包括:接收服务方的接口信息、主机集群IP地址和端口地址,将服务方的主机集群IP地址和端口地址写入注册中心;根据接口信息创建一个接口类,保存到存储器;调用类加载器将接口类加载到内存;根据接口信息从注册中心查询服务方提供的服务信息;根据服务信息创建一个与接口类对应的代理类;根据代理类生成唯一的URL;接收请求方发出的http协议格式的请求;将请求转换为hessian协议格式;根据请求中的URL地址找到对应的代理类,根据代理类与接口类的对应关系找到相应的invoker实体;由该invoker实体将hessian协议格式的请求发送给服务方的相应主机,发起服务访问请求,从而实现跨语言的调用。

【技术实现步骤摘要】
跨语言调用方法、服务器及存储介质
本专利技术涉及服务调用领域,尤其涉及一种跨语言调用方法、服务器及计算机可读存储介质。
技术介绍
dubbo是一种基于阿里巴巴开源的分布式服务框架,致力于提高性能和透明化的远程过程调用协议(RemoteProcedureCallProtocol,RPC)服务调用方案,以及面向服务的体系结构(Service-OrientedArchitecture,SOA)治理方案。目前,业内基于dubbo框架的服务平台,不支持跨语言的服务调用。也就是说,在基于dubbo框架的服务平台,服务方只能使用java语言提供服务,请求方也只能使用java语言来调用服务。这样使得服务调用语言单一,限制了服务调用。
技术实现思路
鉴于以上内容,本专利技术提供一种跨语言调用方法、服务器及计算机可读存储介质,能够兼容java、C++、paython、ruby等语言进行RPC调用,实现跨语言调用。为实现上述目的,本专利技术提供一种跨语言调用方法,该方法包括:接收服务方的接口信息、主机集群IP地址和端口地址,将服务方的主机集群IP地址和端口地址写入注册中心;根据所述接口信息创建一个接口类,保存到存储器;调用类加载器将接口类从存储器加载到内存;根据所述接口信息从注册中心查询服务方提供的服务信息;根据查询到的服务信息创建一个与上述接口类对应的代理类;根据代理类生成唯一的统一资源定位器(UniformResoureLocator,URL);接收请求方发出的http协议格式的服务调用请求;将服务调用请求从http协议格式转换为hessian协议格式;根据调用请求中的URL地址找到对应的代理类,根据代理类与接口类的对应关系找到相应的invoker实体;由该invoker实体将hessian协议格式的服务调用请求发送给服务方的相应主机,发起服务访问请求。优选地,所述接口类定义了接口包名、接口类名、接口类中方法名、请求参数及返回函数。优选地,所述服务方通过注册中心发布服务信息,并获得接口信息。优选地,所述服务方若有多台主机提供服务,则所述代理类也包括多个invoker实体与所述多台主机相关联。优选地,所述URL的生成规则是根据每一个方法名自动生产一个唯一的URL地址。此外,本专利技术还提供一种服务器,该服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的跨语言调用程序,所述跨语言调用程序被所述处理器执行,可实现如下步骤:接收服务方的接口信息、主机集群IP地址和端口地址,将服务方的主机集群IP地址和端口地址写入注册中心;根据所述接口信息创建一个接口类,保存到存储器;调用类加载器将接口类从存储器加载到内存;根据所述接口信息从注册中心查询服务方提供的服务信息;根据查询到的服务信息创建一个与上述接口类对应的代理类;根据代理类生成唯一的URL;接收请求方发出的http协议格式的服务调用请求;将服务调用请求从http协议格式转换为hessian协议格式;根据调用请求中的URL地址找到对应的代理类,根据代理类与接口类的对应关系找到相应的invoker实体;由该invoker实体将hessian协议格式的服务调用请求发送给服务方的相应主机,发起服务访问请求。优选地,所述服务方通过注册中心发布服务信息,并获得接口信息。优选地,所述服务方若有多台主机提供服务,则所述代理类也包括多个invoker实体与所述多台主机相关联。优选地,所述URL的生成规则是根据每一个方法名自动生产一个唯一的URL地址。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中包括跨语言调用程序,所述跨语言调用程序被处理器执行时,可实现如上所述跨语言调用方法中的任意步骤。本专利技术提出的跨语言调用方法、服务器及计算机可读存储介质,通过接收服务方的接口信息、主机集群IP地址和端口地址,将服务方的主机集群IP地址和端口地址写入注册中心,然后根据接口信息创建一个接口类,保存到存储器,调用类加载器将接口类从存储器加载到内存,再根据接口信息从注册中心查询服务方提供的服务信息,创建一个与上述接口类对应的代理类,根据代理类生成唯一的URL,最后接收请求方发出的http协议格式的服务调用请求,将服务调用请求从http协议格式转换为hessian协议格式,根据调用请求中的URL地址找到对应的代理类,根据代理类与接口类的对应关系找到相应的invoker实体,由该invoker实体将hessian协议格式的服务调用请求发送给服务方的相应主机,发起服务访问请求,hessian协议是开源、通用协议,在平台和服务方实现hessian协议的情况下,服务方可以C、C++、PHYTHON等多种语言实现服务,从而解决服务方、请求方调用语言单一的问题,实现跨语言调用。附图说明图1为本专利技术服务器较佳实施例的示意图;图2为跨语言调用方法的应用环境示意图;图3为图1或图2中跨语言调用程序较佳实施例的模块示意图;图4为本专利技术跨语言调用方法较佳实施例的流程图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,是本专利技术服务器1较佳实施例的示意图。在本实施例中,服务器1可以是服务器、智能手机、平板电脑、个人电脑、便携计算机以及其它具有运算功能的电子设备。该服务器1包括:存储器11、处理器12、网络接口13、通信总线14及存储在存储器11上并可在所述处理器12上运行的跨语言调用程序10。其中,网络接口13可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。通信总线14用于实现这些组件之间的连接通信。存储器11至少包括一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述存储器11可以是所述服务器1的内部存储单元,例如该服务器1的硬盘。在另一些实施例中,所述存储器11也可以是所述服务器1的外部存储单元,例如所述服务器1上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard,FC)等。在本实施例中,所述存储器11不仅可以用于存储安装于所述服务器1的应用软件及各类数据,例如跨语言调用程序10、二进制编解码规范等,还可以用于暂时地存储已经输出或者将要输出的数据,如接口类。处理器12在一些实施例中可以是一中央处理器(CentralProcessingUnit,CPU),微处理器或其它数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行跨语言调用程序10的计算机程序代码和请求消息二进制的编解码等。优选地,该服务器1还可以包括显示器,显示器可以称为显示屏或显示单元。在一些实施例中显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(OrganicLight-EmittingDiode,OLED)触摸器等。显示器用于显示在服务器1中处理的信息以及用于显示可视化的工作界面。优选地,该服务器1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输出装置比如音本文档来自技高网...

【技术保护点】
1.一种跨语言调用方法,其特征在于,所述方法包括:接收服务方的接口信息、主机集群IP地址和端口地址,将服务方的主机集群IP地址和端口地址写入注册中心;根据所述接口信息创建一个接口类,保存到存储器;调用类加载器将接口类从存储器加载到内存;根据所述接口信息从注册中心查询服务方提供的服务信息;根据查询到的服务信息创建一个与上述接口类对应的代理类;根据代理类生成唯一的URL;接收请求方发出的http协议格式的服务调用请求;将服务调用请求从http协议格式转换为hessian协议格式;根据调用请求中的URL地址找到对应的代理类,根据代理类与接口类的对应关系找到相应的invoker实体;由该invoker实体将hessian协议格式的服务调用请求发送给服务方的相应主机,发起服务访问请求。

【技术特征摘要】
1.一种跨语言调用方法,其特征在于,所述方法包括:接收服务方的接口信息、主机集群IP地址和端口地址,将服务方的主机集群IP地址和端口地址写入注册中心;根据所述接口信息创建一个接口类,保存到存储器;调用类加载器将接口类从存储器加载到内存;根据所述接口信息从注册中心查询服务方提供的服务信息;根据查询到的服务信息创建一个与上述接口类对应的代理类;根据代理类生成唯一的URL;接收请求方发出的http协议格式的服务调用请求;将服务调用请求从http协议格式转换为hessian协议格式;根据调用请求中的URL地址找到对应的代理类,根据代理类与接口类的对应关系找到相应的invoker实体;由该invoker实体将hessian协议格式的服务调用请求发送给服务方的相应主机,发起服务访问请求。2.根据权利要求1所述的跨语言调用方法,其特征在于,所述接口类定义了接口包名、接口类名、接口类中方法名、请求参数及返回函数。3.根据权利要求1所述的跨语言调用方法,其特征在于,所述服务方通过注册中心发布服务信息,并获得接口信息。4.根据权利要求1所述的跨语言调用方法,其特征在于,所述服务方若有多台主机提供服务,则所述代理类也包括多个invoker实体与所述多台主机相关联。5.根据权利要求1-4任一项所述的跨语言调用方法,其特征在于,所述URL的生成规则是根据每一个方法名自动生产一个唯一的URL地址。6.一种服务器,其特征在于,所述服务器包括:存储器、处理器,所...

【专利技术属性】
技术研发人员:李刚刘汉玉
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1