物联网中的设备、客户端及服务器及其通信方法与流程

文档序号:11138780阅读:1283来源:国知局
物联网中的设备、客户端及服务器及其通信方法与制造工艺
本发明涉及通信
技术领域
,具体地,涉及一种物联网中的设备、客户端及服务器及其通信方法。
背景技术
:物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。物联网是利用通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物(例如机器对机器,Machine-to-Machine(M2M))相联,实现信息化、远程管理控制和智能化的网络。在局域网内,主机和其他主机进行通信时,需要知晓对方的地址(IP地址)。但是在局域网中,一般使用DHCP动态分配IP地址,即,各个主机的IP地址是由DHCP服务器进行分配的。因此,在大部分情况下,在局域网通信过程中知晓对方的IP地址是比较麻烦的。因此,由于局域网的限制,在现有技术中,在局域网中很难基于服务器来实现物联网的通信。技术实现要素:本发明的目的是提供一种物联网中的设备、客户端及服务器及其通信方法,该物联网中的设备、客户端及服务器及其通信方法能够在局域网中基于服务器实现物联网的通信。为了实现上述目的,本发明提供一种物联网中设备使用的通信方法,所述物联网设置在局域网中,所述通信方法包括:基于组播DNS发现所述物联网中的服务器;以及基于所发现的服务器,执行以下至少一者:向所述服务器推送状态信息;接收所述服务器推送的控制指令。可选地,基于组播DNS发现所述物联网中的服务器包括:向所述服务器发送发现请求;以及接收响应于发现请求的服务器的服务信息。可选地,基于组播DNS发现所述物联网中的服务器包括:接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。根据本发明的另一方面,还提供一种物联网中客户端使用的通信方法,所述物联网设置在局域网中,所述通信方法包括:基于组播DNS发现所述物联网中的服务器;以及基于所发现的服务器,执行以下至少一者:向所述服务器推送控制信息以控制相应设备;接收所述服务器推送的所述相应设备的状态信息。可选地,基于组播DNS发现所述物联网中的服务器包括:向所述服务器发送发现请求;以及接收响应于发现请求的服务器的服务信息。可选地,基于组播DNS发现所述物联网中的服务器包括:接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。根据本发明的又一方面,还提供一种物联网中服务器使用的通信方法,所述物联网设置在局域网中,所述通信方法包括:基于组播DNS发送所述服务器的服务信息;在客户端基于所述服务信息监控设备的情况下,执行以下至少一者:接收所述设备推送的状态信息并将该状态信息推送至所述客户端;及接收所述客户端推送的控制指令并将所述控制指令推送至所述设备;以及在基于所述服务信息实现第一设备对第二设备的情况下,执行以下过程:接收第一设备推送的状态信息;判断所述状态信息是否满足所述第二设备联动条件;及在所述状态信息满足所述第二设备联动条件的情况下,向所述第二设备推送相应于联动条件的控制指令。可选地,向所述物联网中的设备发送服务信息包括:接收发现请求;以及响应于所述发现请求向发送该发送请求的装置单播应答所述服务信息。可选地,向所述物联网中的设备发送服务信息包括:在所述服务信息发生变化的情况下,向所述物联网中所有装置组播变化后的服务信息。相应地,本发明还提供一种物联网中使用的设备,所述物联网设置在局域网中,所述设备包括:发现模块,用于基于组播DNS发现所述物联网中的服务器;发送模块,用于基于所发现的服务器向所述服务器推送状态信息;以及接收模块,用于基于所发现的服务器接收所述服务器推送的控制指令。可选地,所述发送模块还用于向所述服务器发送发现请求;以及所述接收模块还用于接收响应于发现请求的所述服务器的服务信息。可选地,所述接收模块还用于接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。相应地,本发明还提供一种物联网中使用的客户端,所述物联网设置在局域网中,所述客户端包括:发现模块,用于基于组播DNS发现所述物联网中的服务器;发送模块,用于基于所发现的服务器向所述服务器推送控制信息以控制相应设备;以及接收模块,用于接收所述服务器推送的所述相应设备的状态信息。可选地,所述发送模块还用于向所述服务器发送发现请求;以及所述接收模块还用于接收响应于发现请求的服务器的服务信息。可选地,所述接收模块还用于接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。相应地,本发明还提供一种物联网中使用的服务器,所述物联网设置在局域网中,所述服务器包括:发送模块、接收模块及处理模块,所述发送模块用于基于组播DNS发送服务器的服务信息;在客户端基于所述服务信息监控设备的情况下:所述接收模块用于接收所述设备推送的状态信息并所述发送模块还用于将该状态信息推送至所述客户端;及所述接收模块还用于接收所述客户端推送的控制指令并所述发送模块还用于将所述控制指令推送至所述设备;以及在基于所述服务信息实现第一设备对第二设备的情况下:所述接收模块用于接收第一设备推送的状态信息;处理模块用于判断所述状态信息是否满足所述第二设备联动条件;及在所述状态信息满足所述第二设备联动条件的情况下,所述发送模块还用于向所述第二设备推送相应于联动条件的控制指令。可选地,所述接收模块还用于接收发现请求;以及所述发送模块还用于响应于所述发现请求向发送该发送请求的装置单播应答所述服务信息。可选地,在所述服务信息发生变化的情况下,所述发送模块还用于向所述物联网中所有装置组播变化后的服务信息。通过上述技术方案,基于组播DNS发现所述物联网中的服务器;以及基于所发现的服务器,进行对设备的控制以及设备对设备(M2M)的通信。如此在局域网中基于服务器实现物联网的通信。本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:图1是根据本发明一种实施方式提供的基于局域网的物联网中设备使用的通信方法的流程图;图2是根据本发明一种实施方式提供的基于局域网的物联网中客户端使用的通信方法的流程图;图3a和图3b是根据本发明一种实施方式提供的基于局域网的物联网中服务器使用的通信方法的流程图;图4是根据本发明一种实施方式提供的基于组播DNS发现所述物联网中的服务器的流程图;图5是根据本发明另一种实施方式提供的基于组播DNS发现所述物联网中的服务器的流程图;图6是根据本发明一种实施方式提供的用户客户端对家电的控制的流程图;图7是根据本发明一种实施方式提供的实现M2M的流程图;图8是根据本发明一种实施方式提供的物联网中使用的设备的结构框图;图9是根据本发明一种实施方式提供的物联网中使用的客户端的结构框图;以及图10是根据本发明一种实施方式提供的物联网中使用的服务器的结构框图。具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。图1是根据本发明一种实施方式提供的基于局域网的物联网中设备使用的通信方法的流程图。如图1所示,本发明提供的物联网中设备使用的通信方法可以包括:在步骤11处,基于组播DNS发现所述物联网中的服务器;以及在步骤12处,基于所发现的服务器,执行以下至少一者:向所述服务器推送状态信息;接收所述服务器推送的控制指令。其中所述物联网设置在局域网中。如此能够在局域网中基于服务器实现物联网的通信。组播DNS(MulticastDNS,mDNS)是IETF零配置网络(Zeroconf)的参与者和DNS扩展(DNSEXT)工作组共同努力的结果。Zeroconf工作组提出了需求,DNSEXT组受到特许进行细节实现。大部分为组播DNS工作的人目前都同时参与两个工作组。组播DNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信。在一个没有常规DNS服务器的小型网络内,可以使用组播DNS来实现类似DNS的编程接口、包格式和操作语义。因此,本发明的发明人利用组播DNS解决利用服务器实现基于局域网的物联网中的通信。例如通过一个约定预定的端口号例如但不限于5353(这个端口号应该是由IETF组织约定的)。每个进入局域网的主机,如果开启了组播DNS服务,均会向局域网内的所有主机组播消息,以呈现自身的名称、IP地址、端口等等服务信息。然后,局域网中开启组播DNSA服务的其他主机可以进行响应,告知其各自的名称、IP地址等等特征。比如,A主机进入局域网并开启了组播DNS服务,其可以向组播DNS服务注册以下信息:提供文件传输协议(FileTransferProtocol,FTP)服务,IP是192.168.1.101,端口是21。当然,应该理解的是上述具体信息仅仅为示例性的。当B主机进入局域网并开启了组播DNS服务,当B主机希望寻找局域网内FTP服务器时,B主机可以基于组播DNS在局域网内进行询问,最终其会发现IP地址为192.168.1.101、端口号是21的主机,即A主机,可以提供FTP服务,所以B主机就可以知晓A主机的IP地址和端口号。因而,可以在局域网部署组播DNS协议和服务,使得局域网中的设备可以发现服务器对应的地址信息,从而能够与服务器建立通信连接。举例而言,组播DNS组播地址可以为224.0.0.251,对应IPv6地址可以为FF02::FB,UDP端口5353,可以支持A,AAAA,PTR。其中A记录为地址记录,指向IP地址;AAAA记录指向IPv6地址;PTR记录,是反向解析,从地址解析到域名。例如,家庭局域网的用户客户端(例如,手机APP)或者家电终端通过组播DNS组播PTR查询,以搜索局域网中的服务器。本发明可以定义服务器对应的组播DNS的服务类型是_msamrt._mqtt,可以使用这个服务类型进行查询,局域网中的服务器收到对应服务器类型的PTR查询则会发送响应,以通告其服务器地址。对于配置了组播DNSA机制的物联网,服务器可以基于请求来推送自身的服务信息,也可以在服务信息(例如服务器地址)发生变化的情况下主动推送自身的服务信息(例如服务器地址)。因此,基于组播DNS发现所述物联网中的服务器可以包括:向所述服务器发送发现请求;以及接收响应于发现请求的服务器的服务信息。基于组播DNS发现所述物联网中的服务器可以包括:接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。图2是根据本发明一种实施方式提供的物联网中客户端使用的通信方法的流程图。如图2所示,本发明提供的物联网中客户端使用的通信方法可以包括,在步骤21处,基于组播DNS发现所述物联网中的服务器;以及在步骤22处,基于所发现的服务器,执行以下至少一者:向所述服务器推送控制信息以控制相应设备;接收所述服务器推送的所述相应设备的状态信息。对于配置了组播DNSA机制的物联网,服务器可以基于请求来推送自身的服务信息,也可以在服务信息(例如,服务器地址)发生变化的情况下主动推送自身的服务信息(例如,服务器地址)。因此,基于组播DNS发现所述物联网中的服务器可以包括:向所述服务器发送发现请求;以及接收响应于发现请求的服务器的服务信息。基于组播DNS发现所述物联网中的服务器可以包括:接收响应于所述服务信息发生变化的来自所述服务器的服务信息。其中所述物联网设置在局域网中。如此能够在局域网中基于服务器实现物联网的通信。图3a和图3b是根据本发明一种实施方式提供的基于局域网的物联网中服务器使用的通信方法的流程图。如图3a所示,在客户端基于所述服务信息监控设备的情况下,本发明提供的物联网中服务器使用的通信方法可以包括:在步骤31处,基于组播DNS发送服务器的服务信息;在步骤32处,执行以下至少一者:接收所述设备推送的状态信息并将该状态信息推送至所述客户端;及接收所述客户端推送的控制指令并将所述控制指令推送至所述设备。如图3b所示,在基于所述服务信息实现第一设备对第二设备的情况下,本发明提供的物联网中服务器使用的通信方法可以包括:在步骤31处,基于组播DNS发送服务器的服务信息;在步骤33处,接收第一设备推送的状态信息;在步骤34处,判断所述状态信息是否满足所述第二设备联动条件;及在步骤35处,在所述状态信息满足所述第二设备联动条件的情况下,向所述第二设备推送相应于联动条件的控制指令。其中所述物联网设置在局域网中。如此能够在局域网中基于服务器实现物联网的通信。其中,服务器可以基于触发来发送其服务信息,也可以主动发送其服务信息。因此向所述物联网中的设备发送服务信息可以包括:接收发现请求;以及响应于所述发现请求向发送该发送请求的装置单播应答所述服务信息。向所述物联网中的设备发送服务信息可以包括:在所述服务信息发生变化的情况下,向所述物联网中所有装置组播变化后的服务信息。图4是根据本发明一种实施方式提供的基于组播DNS发现所述物联网中的服务器的流程图。在该实施方式中,部署了家电、服务器以及用户客户端,其中用户客户端可以通过服务器获取家电的状态信息并实现对家电的控制。但是本发明并不限制于此,例如可以部署第一家电、服务器以及第二家电以实现M2M。如图4所示,在步骤S41处,家电可以利用组播DNSA组播进行PTR查询,以发出对服务器的发现请求;服务器在接收到家电的发现请求后,可以在步骤42处,进行单播应答以告知家电其地址;同样的,在步骤43处,用户客户端可以利用组播DNSA组播进行PTR查询,以发出对服务器的发现请求;服务器在接收到用户客户端的发现请求后,可以在步骤44处,进行单播应答以告知用户客户端其地址。图5是根据本发明另一种实施方式提供的基于组播DNS发现所述物联网中的服务器的流程图。在如上所述,在局域网中,服务器的IP地址是通过DHCP动态分配的,因此,其IP地址可能是变化的。如图5所示,在步骤51处,确定服务器的服务信息(例如IP地址)发生变化;在步骤52处,通过组播向家电及用户客户端更新服务器的服务信息(例如IP地址)。在一种具体实施方式中,服务器可以是MQTTBroker服务器,当然本发明并不限制于此,可以选择具有任何合适的服务器,例如具有推送功能的服务器。在家庭局域网中可以定义服务器的服务类型为_msmart._mqtt.local,家庭局域网中的家电和用户客户端可以通过发送PTR组播查询对应的服务信息。MQTTBroker服务器通过单播应答,返回对应的服务信息,例如mqtt\032broker._msmart._mqtt._local;同样地,在服务信息发生变化时,服务器可以组播变化后的服务信息,例如mqtt\032broker._msmart._mqtt._local。当然,服务信息除了包括IP地址信息之外,服务信息还可以包括其他额外的服务信息。MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,其可能成为物联网的重要组成部分。该协议可以支持现有的所有平台,几乎可以把所有联网物品和外部连接起来,MQTT是轻量级的、基于代理的发布/订阅消息传输协议,此协议的设计开放、简单、轻量、易于实现,MQTT可以部署在家电这种嵌入式设备中,也可以部署在家庭网关这种资源比较丰富的设备中。Broker是MQTT的服务器,每个客户端(例如,包括家电客户端及用户客户端)都可以向对应的Topic(MOTT订阅消息标识)发布消息,只要有客户端订阅了对应的Topic就可以收到其他客户端发布的消息。采用MQTT的情况下,一个设备M1就可以订阅另外一个设备M2的状态信息,设备M2的状态发生变化也可以通过MQTTBroker推送给设备M1,从而实现M2M通信。MQTT采用Broker服务器来完成客户端的订阅和推送功能,物联网设备可以向服务器推送自身的资源,其他客户端只要订阅了对应的Topic就可以接受对应的资源信息,两个客户端互相订阅对方的Topic(或者使用同样的Topic),就可以收到彼此推送的资源信息,互相发现彼此,从而进行物与物的直接通信。每个MQTT命令消息的消息头可以包含一个固定的报头。而有些消息还需要一个可变的报头和一个有效负载(payload)。其消息头如表1所示。表1固定报文头可变报文头Payload其中,固定报文头格式如表2所示:表2如表2所示,字节1包含消息类型(MessageType)和标识(DUP,QoS级别,RETAIN)字段。字节2(至少一个字节)包含剩余长度(RemainingLength)字段。如果Payload太长,一个字节无法标识,剩余长度字段可以进行可变的扩展。图6是根据本发明一种实施方式提供的用户客户端对家电的控制的流程图。在步骤601处,家电进入局域网后,可以基于组播DNS组播进行PTR查询以获得MQTTBroker的服务信息,例如请求MQTTBroker的IP地址,组播_msmart._mqtt.local;在步骤603处,基于家电的请求,MQTTBroker向家电单播应答,例如mqtt\032broker._msmart._mqtt._local,以告知其其服务信息,例如IP地址;在步骤602处,用户客户端进入局域网后,可以基于组播DNS组播进行PTR查询以获得MQTTBroker的服务信息,例如请求MQTTBroker的IP地址,组播_msmart._mqtt.local;在步骤604处,基于用户客户端的请求,MQTTBroker向用户客户端单播应答,例如mqtt\032broker._msmart._mqtt._local,以告知其服务信息,例如IP地址;在步骤605处,用户客户端需要监控家电的状态,因此可以向MQTTBroker订阅家电状态的Topic;在步骤606处,家电可以推送自己的状态信息到对应的Topic,例如周期性地或在受到触发时(如状态信息发生变化时)进行状态信息推送;在步骤607处,MQTTBroker可以将家电的状态信息推送给用户客户端,如此用户可以通过用户客户端可以实时查看家电的状态;在步骤608处,家电可以订阅用户客户端的控制的Topic;在步骤609处,用户客户端可以向MQTTBroker推送对家电的控制指令;在步骤610处,家电可以接收MQTTBroker推送的控制指令,以便执行相应的动作,改变自己的运行状态。图7是根据本发明一种实施方式提供的实现M2M的流程图。家电A和家电B在进入局域网后,可以根据上述内容获得MQTTBroker的服务信息,例如IP地址,然后基于所获得的服务信息来实现M2M。如图7所示,在步骤71处,MQTTBroker可以集成M2M业务处理中心功能,可以通过相关应用程序在M2M业务中心预设联动场景的相关条件和动作;在步骤72处,家电A推送至对应的Topic,例如,在自身的状态发生变化时可以向MQTTBroker推送自身最新的状态信息;在步骤73处,MQTTBroker接收到家电A的状态信息,其M2M业务中心可以判断家电A的状态是否满足预设联动条件,如果满足则触发相应的动作,例如改变家电B的状态;在步骤74处,MQTTBroker可以向家电B推送相应于所满足的预设联动条件的控制指令,以尝试改变家电B的状态;在步骤75处,家电B接收控制指令,以改变状态。上述各实施方式给出了相应的执行步骤,但是应该注意的是上述步骤并不用于限制器执行顺序,本领域技术人员可以根据实际情况通过适当的执行顺序来实现本发明。图8是根据本发明一种实施方式提供的物联网中使用的设备的结构框图。本发明提供的所述物联网设置在局域网中,如图8所示,所述设备可以包括:发现模块81,用于基于组播DNS发现所述物联网中的服务器;发送模块82,用于基于所发现的服务器向所述服务器推送状态信息;以及接收模块83,用于基于所发现的服务器接收所述服务器推送的控制指令。如此能够在局域网中基于服务器实现物联网的通信。在一实施方式中,所述发送模块82还可以用于向所述服务器发送发现请求;以及所述接收模块83还可以用于接收响应于发现请求的所述服务器的服务信息。在一实施方式中,所述接收模块83还可以用于接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。其中,所述设备可以是家电,例如但不限于空调器、冰箱、电饭煲等等。上述设备与前述物联网中设备使用的通信方法相对应,具体说明可参见方法中详细描述,在此不再赘述。图9是根据本发明一种实施方式提供的物联网中使用的客户端的结构框图。本发明提供的所述物联网设置在局域网中,如图9所示,所述客户端可以包括:发现模块91,用于基于组播DNS发现所述物联网中的服务器;发送模块92,用于基于所发现的服务器向所述服务器推送控制信息以控制相应设备;以及接收模块93,用于接收所述服务器推送的所述相应设备的状态信息。如此能够在局域网中基于服务器实现物联网的通信。在一实施方式中,所述发送模块92还可以用于向所述服务器发送发现请求;以及所述接收模块还用于接收响应于发现请求的服务器的服务信息。在一实施方式中,所述接收模块93还可以用于接收所述服务器响应于所述服务器的服务信息发生变化发送的服务信息。上述客户端与前述物联网中客户端使用的通信方法相对应,具体说明可参见方法中详细描述,在此不再赘述。图10是根据本发明一种实施方式提供的物联网中使用的服务器的结构框图。本发明提供的所述物联网设置在局域网中,如图10所示,所述服务器可以包括:发送模块101、接收模块102及处理模块103,所述发送模块101用于基于组播DNS发送服务器的服务信息;在客户端基于所述服务信息监控设备的情况下:所述接收模块102用于接收所述设备推送的状态信息并所述发送模块101还用于将该状态信息推送至所述客户端;及所述接收模块102还用于接收所述客户端推送的控制指令并所述发送模块101还用于将所述控制指令推送至所述设备;以及在基于所述服务信息实现第一设备对第二设备的情况下:所述接收模块102用于接收第一设备推送的状态信息;处理模块103用于判断所述状态信息是否满足所述第二设备联动条件;及在所述状态信息满足所述第二设备联动条件的情况下,所述发送模块101还用于向所述第二设备推送相应于联动条件的控制指令。如此能够在局域网中基于服务器实现物联网的通信。在一实施方式中,所述接收模块102还用于接收发现请求;以及所述发送模块101还用于响应于所述发现请求向发送该发送请求的装置单播应答所述服务信息。在一实施方式中,在所述服务信息发生变化的情况下,所述发送模块101还用于向所述物联网中所有装置组播变化后的服务信息。上述服务器与前述物联网中服务器使用的通信方法相对应,具体说明可参见方法中详细描述,在此不再赘述。本发明利用了组播DNS可以在局域网发现相关服务(比如物联网相关的服务)的特点,以及MQTTBroker服务器订阅和推送功能的特点,实现了在局域网部署一个服务器来完成相关物联网消息的订阅和推送功能。解决了DHCP分配IP地址而无法满足获得服务器地址动态变化情况的问题。通过组成一个局域网物联网系统,从而实现了在局域网中完备的物联网系统,包括设备控制、设备状态推送和设备之间的M2M联动。本发明提供的技术方案使得IP地址动态变化的局域网装置可以动态发现变化的MQTTBroker服务信息,从而动态维护客户端(包括用户客户端和设备客户端)和服务器直接的连接,保证了局域网物联网系统的可用性和稳定性。以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1