一种实现物联网设备自动注册及发现的方法与流程

http://www.xjishu.com/zhuanli/62/201910087093.html

ä¸ç§å®ç°ç©èç½è®¾å¤èªå¨æ³¨åååç°çæ¹æ³ä¸æµç¨

本发明涉及物联网应用领域,特别是涉及一种实现物联网设备自动注册及发现的方法。



背景技术:

早在上个世纪90年代,“物联网”就已经提出,“物联网”的最直接的概念就是利用产品电子代码,还有无线射频识别技术,通过网络来实现物品的在任何时候、任何地方实现点对点的互联互通。经过了近几年的市场及大环境的培育,“物联网”在随着技术的创新、互联网的发展、及信息产业快速发展,已经形成一定的市场规模。

在物联网应用中最主要的技术之一就是设备发现技术,但是目前比较成熟的设备自动发现方法还是基于局域网内的,并不能满足物联网发展的要求。申请号为201010621374.7的专利阐述了一种家庭间DLNA设备发现和控制方法及装置,该发明基于DLNA标准,主要是为了满足家庭内部设备之间的连接。申请号为200910093457.0的专利阐述了家庭网络互联装置、家庭网络服务系统和设备发现方法,该发明是闪联协议的基础,但是也局限在局域网内。



技术实现要素:

本发明主要解决的技术问题是提供一种实现物联网设备自动注册及发现的方法,利用目前广泛使用的IP网络、3G网络、4G网络,突破目前设备注册及发现方法在局域网内的局限,实现一种更可行的物联网设备自动注册及发现的方法,使得推广物联网应用更容易。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种实现物联网设备自动注册及发现的方法,包括:基于物联网设备、设备管理服务器、连接管理模块、会话管理模块的物联网设备自动注册的方法和物联网设备发现的方法;

所述物联网设备自动注册的方法包括以下步骤:

第一步,支持连接互联网的物联网设备通过连接管理模块与设备管理服务器建立长期连接,以宣告本设备的注册,其中宣告信息包括设备标识、设备IP、其它设备信息;

第二步,所述设备管理服务器接收到设备的注册信息后,为了保证设备标识的唯一性,设备管理服务器根据设备标识来确定是否注册成功,注册成功则把设备添加到设备管理组中,注册失败则给注册设备返回注册失败信息;

所述物联网设备发现的方法包括以下步骤:

第一步,支持连接互联网的物联网设备注册成功后,与设备管理服务器建立长期连接,以宣告本设备的上线,其中宣告信息包括设备注册时宣告的设备信息以及上线信息;

第二步,设备管理服务器接收到设备的上线宣告信息后,设备管理服务器把设备信息添加到在线设备组中,并与上线设备建立长期连接;

第三步,物联网设备宣告上线成功后,通过与设备管理服务器建立的长期连接,发送查找设备消息,设备管理服务器返回与该设备关联的所有在线的设备信息;

第四步,该物联网设备获取到所有在线的设备信息后,就可以选择其中一个设备,通过会话管理模块,发起与该在线设备的会话;

第五步,物联网设备发送查找设备消息后,如果有其它设备的状态信息发生变化时,设备管理服务器主动将变化后的设备信息通过连接管理模块发送给该设备;

第六步,当物联网设备离线或者与设备管理服务器建立的长期连接断开后,向设备管理服务器发送设备离线消息,设备管理服务器收到设备离线消息后,把该设备的状态更新为离线。

进一步,所述设备管理服务器是指运行在互联网上的并且具有公共IP地址的计算机服务器。

进一步,所述连接管理模块负责物联网设备与设备管理服务器的连接以及物联网设备与物联网设备之间的连接。

进一步,所述会话管理模块负责物联网设备与物联网设备之间的会话以及设备管理服务器推送给物联网设备的会话。

进一步,所述物联网设备与设备管理服务器之间发送的消息基于XML格式的,通过TCP和UDP协议进行数据传递。

本发明的有益效果是:本发明基于目前广泛使用的IP网络、3G网络和4G网络,使用本方法,都可以自主完成设备发现,突破目前设备注册及发现方法在局域网内的局限,实现一种更可行的物联网设备自动注册及发现的方法。

附图说明

图1是本发明一种实现物联网设备自动注册及发现的方法的架构拓扑图;

图2是所示一种实现物联网设备自动注册及发现的方法一较佳实施例中物联网设备类型格式定义表。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

请参阅图1,一种实现物联网设备自动注册及发现的方法,包括:基于物联网设备、设备管理服务器、连接管理模块、会话管理模块的物联网设备自动注册的方法和物联网设备发现的方法,设备管理服务器是指运行在互联网上的并且具有公共IP地址的计算机服务器,连接管理模块负责物联网设备与设备管理服务器的连接以及物联网设备与物联网设备之间的连接,会话管理模块负责物联网设备与物联网设备之间的会话以及设备管理服务器推送给物联网设备的会话,物联网设备与设备管理服务器之间发送的消息基于XML格式的,通过TCP和UDP协议进行数据传递;

所述物联网设备自动注册的方法包括以下步骤:

第一步,支持连接互联网的物联网设备通过连接管理模块与设备管理服务器建立长期连接,以宣告本设备的注册,其中宣告信息包括设备标识、设备IP、其它设备信息;

第二步,所述设备管理服务器接收到设备的注册信息后,为了保证设备标识的唯一性,设备管理服务器根据设备标识来确定是否注册成功,注册成功则把设备添加到设备管理组中,注册失败则给注册设备返回注册失败信息;

所述物联网设备发现的方法包括以下步骤:

第一步,支持连接互联网的物联网设备注册成功后,与设备管理服务器建立长期连接,以宣告本设备的上线,其中宣告信息包括设备注册时宣告的设备信息以及上线信息;

第二步,设备管理服务器接收到设备的上线宣告信息后,设备管理服务器把设备信息添加到在线设备组中,并与上线设备建立长期连接;

第三步,物联网设备宣告上线成功后,通过与设备管理服务器建立的长期连接,发送查找设备消息,设备管理服务器返回与该设备关联的所有在线的设备信息;

第四步,该物联网设备获取到所有在线的设备信息后,就可以选择其中一个设备,通过会话管理模块,发起与该在线设备的会话;

第五步,物联网设备发送查找设备消息后,如果有其它设备的状态信息发生变化时,设备管理服务器主动将变化后的设备信息通过连接管理模块发送给该设备;

第六步,当物联网设备离线或者与设备管理服务器建立的长期连接断开后,向设备管理服务器发送设备离线消息,设备管理服务器收到设备离线消息后,把该设备的状态更新为离线。

结合实例说明本发明的有关设备连接的信息与数据格式。本发明基于XMPP协议,交互消息采用XML格式封装,数据传输使用TCP协议和UDP协议。

根据本发明的规定,物联网设备类型格式定义如下:

urn:device:devtype:manufacturer:operatesystem:version

各标记段意义描述见图2;

1、设备注册:

物联网设备在首次上线前要向设备管理服务器发送XML格式的信息流进行注册,发送的封装信息格式如下:

<iq id=“id”to=“server”type=“set”>

<query xmlns=“jabber:iq:register”>

<password>password</password>

<username>jid</username>

<name>nickname</name>

<deviceType>deviceType</deviceType>

<operateSystem>operateSystem:v</operateSystem>

<manufacturer>manufacturer</manufacturer>

<modelName>modelName</modelName>

</query>

</iq>

其中最外层iq是指标准的XMPP通讯节,其中id是指本次连接标识,以保证连接的唯一性,jid是指本设备的唯一标识ID,server是指服务器地址,可以是IP地址,也可以是互联网域名,但是要求服务器已经实现XMPP服务端协议。各个字段以下会重复用到,其代表的含义与此相同,不再赘述。

设备管理服务器接收到设备的注册信息后,为了保证设备标识的唯一性,会根据设备标识来确定是否注册成功,注册成功则把设备添加到设备管理组中,注册失败则给注册设备返回注册失败信息。

2、设备上线:

物联网设备注册成功后,当设备需要上线时,向设备管理服务器发送设备上线信息,信息格式为:

 

 

设备管理服务器接收到设备的上线宣告信息后,会把设备信息添加到在线设备组中,并与上线设备建立长期连接。

3、设备查找:

当设备上线成功后,为了与其它在线设备进行会话,需要向设备管理服务器申请,获取所有的在线设备列表,该设备会向设备管理服务器发送XML格式的设备发现消息,其格式为:

 

设备管理服务器接收到设备发现消息后,也以XML格式向请求设备返回在线设备列表,其格式为:

 

 

其中,为了保证每次会话的唯一性,iq节中的id必须与设备发送的iq节中的id相同。query节中包含的item节即是指每一个在线设备。

当设备管理服务器查询到设备列表为空时,向发起请求的设备返回的数据格式为:

 

当设备管理服务器查到不存在设备列表时,会向发起请求的设备管理服务器返回错误信息,其格式为:

 

4、设备下线:

当在线设备完成所有工作,或者因为其它原因,需要下线时,会向设备管理服务器发送“不可用”的出席信息,以声明该设备已经离线,其格式为:

<presence type=“unavailable”>

<status>going on vacation</status>

</presence>

5、设备会话:

当设备完成所有的设备注册、设备上线、设备查询等过程后,为了能够与其它设备进行会话,也需要以XML格式封装会话消息,其格式为:

 

其中,jid1是指发起会话的设备标识,jid2是指会话目标设备。body节中包含的是具体的会话消息,其格式可以由使用者自行定义。

本发明所涉及的物联网设备自动注册及发现的方法,基于以上实例描述的过程,包含设备注册、设备上线、设备查询、设备下线、设备会话等过程,包括物联网设备、设备管理服务器、连接管理、会话管理等模块,可以满足互联网中物联网设备之间的会话要求。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

利用jmdns发现局域网设备,在局域网内,你要通过一台主机和其他主机进行通信,你需要知道对方的ip地址,但是有些时候,你并不知道对方的ip地址,因为一般使用DHCP动态分配ip地址的局域网内,各个主机的IP地址是由DHCP服务器来帮你分配IP地址的。所以在很多情况下,你要知道对方的IP地址是比较麻烦的。 鉴于发现这篇文章最近的浏览量比较多,晚上也有不少转载,特别声明一下,文章水平可能不大够,只是我当时的一些理解,所以希望大家以批判的角度来看,然后又什么问题欢迎讨论。真心不希望误导大家^_^ mDNS就是来解决这个问题的。通过一个约定俗成的端口号,5353。(这个端口号应该是由IETF组织约定的。)每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的IP地址是多少。当然,具体实现要比这个复杂点。 比如,A主机进入局域网,开启了mDNS服务,并向mDNS服务注册一下信息:我提供FTP服务,我的IP是192.168.1.101,端口是21。当B主机进入局域网,并向B主机的mDNS服务请求,我要找局域网内FTP服务器,B主机的mDNS就会去局域网内向其他的mDNS询问,并且最终告诉你,有一个IP地址为192.168.1.101,端口号是21的主机,也就是A主机提供FTP服务,所以B主机就知道了A主机的IP地址和端口号了。 大概的原理就是这样子,mDNS提供的服务要远远多于这个,当然服务多但并不复杂。 在Apple 的设备上(电脑,笔记本,iphone,ipad等设备)都提供了这个服务。很多Linux设备也提供这个服务。Windows的设备可能没有提供,但是如果安装了iTunes之类的软件的话,也提供了这个服务。 这样就可以利用这个服务开发一些局域网内的自动发现,然后提供一些局域网内交互的应用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值