一种物联网设备间云端双向虚拟连接的方法与流程

文档序号:17986385发布日期:2019-06-22 00:26阅读:212来源:国知局
一种物联网设备间云端双向虚拟连接的方法与流程

本发明涉及物联网通信和计算领域,特别是一种物联网设备间云端双向虚拟连接的方法。



背景技术:

物联网被称为继互联网、移动互联网之后信息产业的第三次浪潮。在物联网时代,我们让每一个“物”都实现联网,将整个物理世界的数据进行采集和传输,最终通过丰富的物联网应用实现智慧化。物联网中设备之间建立连接、相互通信是实现智慧化的基础,目前建立物联网设备之间相互通信的连接的方法主要有以下两种:

(1)直接连接,包括局域连接和广域连接,局域连接是指物联网设备位于同一局域区域内,能够通过单跳或多跳的方式建立起数据传递的路径;广域连接是指物联网设备位于不同的区域,通过广域网络(如3g/4g通信网络、卫星通信网络、internet)建立数据通信路。目前具有代表性的物联网设备直接连接方法是中国通信标准化协会yd/t2399-2012《m2m应用通信协议技术要求》规定的m2m业务系统中的端到端通信协议。m2m是machine-to-machine/man的简称,是一种以机器终端智能交互为核心的、网络化的应用与服务。它通过在机器内部嵌入无线通信模块,以无线通信等为接入手段,为客户提供综合的信息化解决方案,以满足客户对监控、指挥调度、数据采集和测量等方面的信息化需求。包括3个重要的技术部分:m2m硬件、通信网络和中间件,其中m2m硬件让机器具备信息感知、信息加工、信息通信的能力;通信网络包括:广域网(如无线移动通信网络、卫星通信网络、internet网和公众电话网)、局域网(如以太网、无线局域网wlan和蓝牙)、个域网(zigbee网和传感器网络);中间件包括两部分:m2m网关、数据收集/集成部件。

(2)间接连接,也称为虚拟连接,当设备间难以直接通过无线或有线链路进行直接通信,继而借助具有连接管理功能的物联网云平台进行转发,建立接入物联网云平台的设备之间的间接互联。这种物联网设备间的连接方法核心在于具有连接管理功能的物联网云平台,如阿里云iothub、移动onenet提供的安全可靠的双向通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端api,指令数据通过api调用下发至设备端,实现远程控制。

虚拟连接中实用的物联网云平台主要通过提供mqtt、coap、http/s等多种协议的设备端软件开发工具包,从而实现设备数据上云和指令数据下发,但是不易实现智能设备与智能设备之间、或智能设备与用户设备(如智能手机)之间的双向连接,也不易实现一个智能设备向多个其它智能设备或用户设备广播数据的功能。



技术实现要素:

本发明所要解决的技术问题是针对上述现有技术提供一种能实现设备间双向通信的物联网设备间云端双向虚拟连接的方法。

本发明决上述技术问题所采用的技术方案为:一种物联网设备间云端双向虚拟连接的方法,用于实现第一物联网设备与第二物联网设备之间的云端双向虚拟连接,采用tcpsocket的形式将接入接口提供给第一物联网设备与第二物联网设备,其特征在于:包括建立连接服务进程模块和连接工作线程模块,开辟数据交换模块,其中连接服务进程模块通过如下方式运行:

连接服务进程模块首先建立主套接字,绑定tcp/ip协议、本地地址和本地端口,然后进入到监听状态,当第一物联网设备或第二物联网设备连接所述主套接字时,创建子套接字,然后判断连接的第一物联网设备或第二物联网设备的类型是智能设备还是用户设备,如果连接的设备为第一物联网设备,则创建用于与第二物联网设备进行通信的第一连接工作线程;如果连接的设备为第二物联网设备,则创建用于与第一物联网设备进行通信的第二连接工作线程;

数据交换模块,包括第一缓存区和第二缓存区;

连接工作线程模块,包括连接服务进程模块创建的第一连接工作线程和第二连接工作线程,其中第一连接工作线程将从第一物联网设备收到的第一类数据放到数据交换模块的第一缓存区中,并从数据交换模块的第二缓存区中读取的第二类数据发送给第一物联网设备;第二连接工作线程将从第二物联网设备收到的第二类数据放到数据交换模块的第二缓存区中,并从数据交换模块的第一缓存区中读取第一类数据发送给第二物联网设备,从而实现第一物联网设备与第二物联网设备之间的双向数据交换。

作为改进,所述第一缓存区和第二缓存区采用基于散列映射的数据缓存区;

当第一连接工作线程接收到来自第一物联网设备的第一类数据时,以第一物联网设备的id为密钥计算哈希码值,然后将该第一类数据放入第一缓存区中与哈希码值对应的位置中;当第二物联网设备需要获得第一物联网设备的第一类数据时,与该第二物联网设备对应的第二连接工作线程以第一物联网设备的id为密钥计算哈希码值,从第一缓存区相中与哈希码值对应的位置获得相应的第一类数据,从而实现第一类数据从第一物联网设备向第二物联网设备的流动;

当多个分别与不同第二物联网设备对应的第二连接工作线程需要同时获得第一物联网设备的第一类数据时,同样以第一物联网设备的id为密钥计算哈希码值,从第一缓存区相中与哈希码值对应的位置获得相应的第一类数据,从而实现第一类数据从第一物联网设备同时向多个第二物联网设备的流动;

当第二连接工作线程接收到来自第二物联网设备的第二类数据时,以第二物联网设备的id为密钥计算哈希码值,然后将该第二类数据放入第二缓存区中与哈希码值对应的位置中;当第一物联网设备需要获得第二物联网设备的第二类数据时,与该第一物联网设备对应的第一连接工作线程以第二物联网设备的id为密钥计算哈希码值,从第二缓存区相中与哈希码值对应的位置获得相应的第二类数据,从而实现第二类数据从第二物联网设备向第一物联网设备的流动;

当多个分别与不同第一物联网设备对应的第一连接工作线程需要同时获得第二物联网设备的第二类数据时,同样以第二物联网设备的id为密钥计算哈希码值,从第二缓存区相中与哈希码值对应的置获得相应的第二类数据,从而实现第二类数据从第二物联网设备同时向多个第一物联网设备的流动。

再改进,所述数据交换模块还包括第三缓冲模块,其中第一连接工作线程将从第一物联网设备收到的第三类数据放到数据交换模块的第三缓存区中,第二连接工作线程还能从数据交换模块的第三缓存区中读取第三类数据发送给第二物联网设备。

再改进,还包括建立数据库,该数据库更新的时间间隔为8s~15s,即每隔8s~15s,数据库会从数据交换模块的第三缓冲模块内下载并更新第三类数据,从而将第三类数据进行保存。

较好的,所述第一物联网设备为智能设备,第二物联网设备为智能终端;所述第一类数据为智能设备的感知数据;所述第二类数据为第二物联网设备对第一物联网设备的操控指令;所述第三类数据为智能设备的状态数据。

与现有技术相比,本发明的优点在于:不仅易于实现第一物联网设备的数据上云和第二类数据的下发,还易于实现第一物联网设备与第二物联网设备之间的双向连接,且易于实现一个第一物联网设备向多个其它第一物联网设备广播数据的功能。

附图说明

图1为本发明实施例中物联网设备间云端双向虚拟连接方法原理图。

图2为本发明实施例中连接服务进程模块运行流程图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

本发明提供一种物联网设备间云端双向虚拟连接的方法,用于实现第一物联网设备与第二物联网设备之间的云端双向虚拟连接,可运行在云端服务器,采用tcpsocket的形式将接入接口提供给第一物联网设备与第二物联网设备,第一物联网设备为智能设备,第二物联网设备为智能终端,如用户的智能手机;该方法具体包括建立连接服务进程模块和连接工作线程模块,开辟数据交换模块和数据库。

其中连接服务进程模块通过如下方式运行:

连接服务进程模块首先建立主套接字,绑定tcp/ip协议、本地地址和本地端口,然后进入到监听状态,监听客户端的套接字请求,当第一物联网设备或第二物联网设备连接到主套接字时,接收客户端的套接字请求,创建子套接字,然后判断连接的第一物联网设备或第二物联网设备的类型是智能设备还是用户设备,如果连接的设备为第一物联网设备,则创建用于与第二物联网设备进行通信的第一连接工作线程;如果连接的设备为第二物联网设备,则创建用于与第一物联网设备进行通信的第二连接工作线程;直至第一物联网设备或第二物联网设备停止或退出操作,然后关闭相应的子套接字和主套接字;

数据交换模块,包括第一缓存区、第二缓存区和第三缓存区;第一缓存区、第二缓存区和第三缓存区均采用基于散列映射的数据缓存区;第一缓存区用于存储第一类数据,第二缓存区用于存储第二类数据,第三缓存区用于存储第三类数据;第一类数据为第一物联网设备的感知数据;所述第二类数据为第二物联网设备对第一物联网设备的操控指令;所述第三类数据为第一物联网设备的状态数据;

连接工作线程模块,包括连接服务进程模块创建的第一连接工作线程和第二连接工作线程,其中第一连接工作线程将从第一物联网设备收到的第一类数据放到数据交换模块的第一缓存区中,将第一物联网设备收到的第三类数据放到数据交换模块的第三缓存区中,并从数据交换模块的第二缓存区中读取的第二类数据发送给第一物联网设备;第二连接工作线程将从第二物联网设备收到的第二类数据放到数据交换模块的第二缓存区中,并从数据交换模块的第一缓存区中读取第一类数据发送给第二物联网设备,从而实现第一物联网设备与第二物联网设备之间的双向数据交换,具体方式为:

当第一连接工作线程接收到来自第一物联网设备的第一类数据时,以第一物联网设备的id为密钥计算哈希码值,然后将该第一类数据放入第一缓存区中与哈希码值对应的位置中;当第二物联网设备需要获得第一物联网设备的第一类数据时,与该第二物联网设备对应的第二连接工作线程以第一物联网设备的id为密钥计算哈希码值,从第一缓存区相中与哈希码值对应的位置获得相应的第一类数据,从而实现第一类数据从第一物联网设备向第二物联网设备的流动;

当多个分别与不同第二物联网设备对应的第二连接工作线程需要同时获得第一物联网设备的第一类数据时,同样以第一物联网设备的id为密钥计算哈希码值,从第一缓存区相中与哈希码值对应的置获得相应的第一类数据,从而实现第一类数据从第一物联网设备同时向多个第二物联网设备的流动;

当第二连接工作线程接收到来自第二物联网设备的第二类数据时,以第二物联网设备的id为密钥计算哈希码值,然后将该第二类数据放入第二缓存区中与哈希码值对应的位置中;当第一物联网设备需要获得第二物联网设备的第二类数据时,与该第一物联网设备对应的第一连接工作线程以第二物联网设备的id为密钥计算哈希码值,从第二缓存区相中与哈希码值对应的位置获得相应的第二类数据,从而实现第二类数据从第二物联网设备向第一物联网设备的流动;

当多个分别与不同第一物联网设备对应的第一连接工作线程需要同时获得第二物联网设备的第二类数据时,同样以第二物联网设备的id为密钥计算哈希码值,从第二缓存区相中与哈希码值对应的置获得相应的第二类数据,从而实现第二类数据从第二物联网设备同时向多个第一物联网设备的流动。

另外,数据库每隔8s~15s会从数据交换模块的第三缓冲模块内下载并更新第三类数据,从而将第三类数据进行保存。

本发明不仅易于实现智能设备的数据上云和智能终端的控制指令数据下发,还易于实现智能设备与智能终端之间的双向连接,且易于实现一个智能设备向多个其它智能设备或智能终端广播数据的功能。此外,基于散列映射的快速结构化存取特点,可以保证数据存取的高效性,也就保证了智能设备或智能终端之间双向连接的通信高效性,在一个云端服务器,4vcpu,32gb内存,120gb硬盘,上实际运行本方法,测得最大设备连接数量为1000个,数据传输延迟在10ms之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1