物联网网关的跨语言通信方法、网关、设备及存储介质与流程

摘要: 本公开涉及物联网平台,具体涉及一种物联网网关的跨语言通信方法、网关、设备及存储介质。背景技术:1、物联网网关用于接入采用不同通信协议的设备,现有物联网网关通常采...
物联网网关的跨语言通信方法、网关、设备及存储介质与流程

本公开涉及物联网平台,具体涉及一种物联网网关的跨语言通信方法、网关、设备及存储介质。

背景技术:

1、物联网网关用于接入采用不同通信协议的设备,现有物联网网关通常采用与网关相同的编程语言开发通信协议适配模块,并将通信协议适配模块直接集成于网关程序中。例如,采用python语言实现的thingsboard网关通常集成python通信协议适配模块,以支持不同通信协议。

2、然而,上述方式导致通信协议适配模块与网关程序耦合程度较高,不便于对通信协议进行独立扩展和维护;并且,现有较为成熟的通信协议库或协议实现主要采用c/c++语言开发,当物联网网关的实现语言与c++语言不同时,难以直接复用相应通信协议资源。因此,如何降低通信协议功能与物联网网关之间的耦合程度,并实现物联网网关对c++通信协议功能的跨语言调用,成为需要解决的技术问题。

技术实现思路

1、有鉴于此,本公开提供了一种物联网网关的跨语言通信方法、网关、设备及存储介质,以解决相关物联网网关中的通信协议功能与网关程序耦合程度较高,且在网关侧编程语言与c++语言不同时,物联网网关难以调用和复用c++通信协议功能的问题。

2、本公开提供了一种物联网网关的跨语言通信方法,所述方法由物联网网关执行,所述方法包括:

3、获取目标通信协议对应的通信协议标识;

4、通过所述物联网网关中集成的跨语言插件调用接口,根据所述通信协议标识加载对应的插件文件,并创建所述插件文件中的c++通信协议插件实例;其中,不同通信协议分别对应不同的插件文件,各所述插件文件相互独立,各所述插件文件中分别封装有实现c++版插件接口的c++通信协议插件;所述跨语言插件调用接口包括采用目标编程语言实现的网关侧接口,所述目标编程语言与c++语言不同,所述网关侧接口与所述c++版插件接口相对应;

5、通过所述跨语言插件调用接口,将所述物联网网关通过所述网关侧接口针对所述c++通信协议插件实例发起的调用转换为针对所述c++版插件接口的c++接口调用;

6、通过所述跨语言插件调用接口调用所述c++通信协议插件实例,以通过所述c++通信协议插件实例与采用所述目标通信协议的设备进行通信。

7、本公开还提供了一种物联网网关,包括:

8、多个插件文件,不同通信协议分别对应不同的插件文件,各所述插件文件相互独立,各所述插件文件中分别封装有实现c++版插件接口的c++通信协议插件;

9、跨语言插件调用接口,集成于所述物联网网关,所述跨语言插件调用接口包括采用目标编程语言实现的网关侧接口,所述目标编程语言与c++语言不同,所述网关侧接口与所述c++版插件接口相对应;

10、协议标识获取模块,用于获取目标通信协议对应的通信协议标识;

11、插件加载模块,用于通过所述跨语言插件调用接口,根据所述通信协议标识加载对应的插件文件,并创建所述插件文件中的c++通信协议插件实例;

12、调用转换模块,用于通过所述跨语言插件调用接口,将所述物联网网关通过所述网关侧接口针对所述c++通信协议插件实例发起的调用转换为针对所述c++版插件接口的c++接口调用;

13、通信模块,用于通过所述跨语言插件调用接口调用所述c++通信协议插件实例,以通过所述c++通信协议插件实例与采用所述目标通信协议的设备进行通信。

14、本公开还提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现上述任一种物联网网关的跨语言通信方法的步骤。

15、本公开还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被处理器执行时实现上述任一种物联网网关的跨语言通信方法的步骤。

16、本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述任一种物联网网关的跨语言通信方法的步骤。

17、在本公开上述实施例的物联网网关的跨语言通信方法、网关、设备及存储介质中,通过在物联网网关中集成跨语言插件调用接口,并将不同通信协议对应的c++通信协议插件分别封装于相互独立的插件文件中,物联网网关能够根据目标通信协议的通信协议标识加载对应的插件文件并创建c++通信协议插件实例,使不同通信协议功能能够相互独立地接入物联网网关,降低通信协议功能与网关程序之间的耦合程度,提高物联网网关的协议扩展性和维护便利性。

18、通过跨语言插件调用接口,将物联网网关通过网关侧接口发起的调用转换为针对c++版插件接口的c++接口调用,使采用与c++语言不同的目标编程语言实现的网关侧接口能够调用c++通信协议插件,从而实现物联网网关对c++通信协议功能的跨语言接入和复用,减少采用网关侧编程语言重复开发通信协议功能的工作量,提高通信协议的接入效率和开发效率。

19、此外,由于不同c++通信协议插件均实现所述c++版插件接口,物联网网关能够采用统一的调用方式加载和调用不同通信协议对应的插件实例。在增加、替换或更新通信协议时,可以针对相应插件文件进行部署和维护,减少对物联网网关核心程序的改动,并有利于复用基于c/c++开发的成熟通信协议资源。

1.一种物联网网关的跨语言通信方法,其特征在于,所述方法由物联网网关执行,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述通过所述物联网网关中集成的跨语言插件调用接口,根据所述通信协议标识加载对应的插件文件,并创建所述插件文件中的c++通信协议插件实例,包括:

3.根据权利要求2所述的方法,其特征在于,所述通过所述跨语言插件调用接口动态加载与所述通信协议标识对应的动态链接库文件,并实例化所述动态链接库文件中封装的c++通信协议插件,得到所述c++通信协议插件实例,包括:

4.根据权利要求1所述的方法,其特征在于,所述通过所述跨语言插件调用接口,将所述物联网网关通过所述网关侧接口针对所述c++通信协议插件实例发起的调用转换为针对所述c++版插件接口的c++接口调用,包括:

5.根据权利要求1所述的方法,其特征在于,所述通过所述跨语言插件调用接口调用所述c++通信协议插件实例,以通过所述c++通信协议插件实例与采用所述目标通信协议的设备进行通信,包括以下操作中的至少一种:

6.根据权利要求5所述的方法,其特征在于,所述调用回调设置方法,向所述c++通信协议插件实例设置事件回调接口,包括:

7.根据权利要求5所述的方法,其特征在于,所述通过所述跨语言插件调用接口调用所述c++通信协议插件实例,以通过所述c++通信协议插件实例与采用所述目标通信协议的设备进行通信,包括:

8.一种物联网网关,其特征在于,包括:

9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器与所述处理器通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,执行权利要求1至7中任一项所述的物联网网关的跨语言通信方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的物联网网关的跨语言通信方法。