首页> 中国专利> 一种可扩展的物联网底层设备适配器及构建方法

一种可扩展的物联网底层设备适配器及构建方法

摘要

本发明公开了一种可扩展的物联网底层设备适配器及构建方法。该适配器包括:通信中间件、设备对接库模块和宿主程序;所述通信中间件,用于根据预先定义的多个主题为上层物联网管理系统和底层设备提供基于发布订阅模式的API接口;所述设备对接库模块包括按照业务类型划分的多个业务模块,每个所述业务模块包括按照厂商标识划分的多个厂商对接库;宿主程序,用于加载所述设备对接库模块,并对所述设备对接库模块进行配置管理和运维。本发明具有可扩展性和通用性,可跨业务场景,跨平台提供服务,其横向扩展支持多种类型多厂家的底层设备,纵向适应上层物联网管理系统的各种业务功能,从而适用于不同的应用场景。

著录项

  • 公开/公告号CN112202874B

    专利类型发明专利

  • 公开/公告日2022-08-05

    原文格式PDF

  • 申请/专利权人 武汉虹信技术服务有限责任公司;

    申请/专利号CN202011041790.X

  • 发明设计人 王华民;肖伟明;赵桥;黄晓艳;

    申请日2020-09-28

  • 分类号H04L67/12(2022.01);H04L67/10(2022.01);H04L67/562(2022.01);H04L41/50(2022.01);

  • 代理机构武汉东喻专利代理事务所(普通合伙) 42224;

  • 代理人雷霄

  • 地址 430205 湖北省武汉市江夏区藏龙岛科技园谭湖2路1号虹信无线通信产业园2号楼4楼

  • 入库时间 2022-09-06 00:40:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-05

    授权

    发明专利权授予

说明书

技术领域

本发明属于物联网技术领域,更具体地,涉及一种可扩展的物联网底层设备适配器及构建方法。

背景技术

近年来,物联网与人工智能、5G、区块链、云等技术蓬勃发展,物联网在智能家居、智能交通、智能社区、智能医疗、智能安防、智能建筑等领域发挥着开疆拓土、举足轻重的作用。

对于一套成熟的物联网解决方案,即局域网内的物联网管理系统或平台,应包含以下几部分:客户端、服务器、适配器、底层设备。客户端负责呈现数据,与客户交互,可以是PC应用,浏览器或手机等;服务器负责处理各种数据往来,保存数据,分发数据,居中调度;底层设备负责采集数据,通过传感器、监控器等硬件设备采集到数据后再通过LoRa、ZigBee、Wi-Fi等物联网通信协议将数据分发;适配器负责将设备采集的数据转化为服务器认可的数据,并发送给服务器,同时,也负责将服务器发给设备的指令“翻译”成设备可以理解的控制指令并发给设备。

通常,在不同应用场景或不同软件开发商提供的解决方案中,对于不同厂商的设备,需要专门开发不同的适配器,以适配众多的厂商设备。但不同的厂商设备使用的通信协议、提供的API调用方式各不一样,这就造成了适配器的功能繁复,版本混乱,通用性差,难以复用,这种情况无疑会给物联网解决方案厂商增加额外的人力成本及时间成本。

发明内容

针对现有技术的至少一个缺陷或改进需求,本发明提供了一种可扩展的物联网底层设备适配器及构建方法,具有可扩展性和通用性,可跨业务场景,跨平台提供服务,其横向扩展支持多种类型多厂家的底层设备,纵向适应上层物联网管理系统的各种业务功能,从而适用于不同的应用场景。

为实现上述目的,按照本发明的第一方面,提供了一种可扩展的物联网底层设备适配器,包括:通信中间件、设备对接库模块和宿主程序;

所述通信中间件,用于根据预先定义的多个主题为上层物联网管理系统和底层设备提供基于发布订阅模式的API接口,所述主题是根据所述上层物联网管理系统的业务类型和所述底层设备的厂商标识预先定义的;

所述设备对接库模块包括按照所述业务类型划分的多个业务模块,每个所述业务模块包括按照所述厂商标识划分的多个厂商对接库,所述厂商对接库用于提供与所述底层设备进行数据交互的服务;

宿主程序,用于加载所述设备对接库模块,并对所述设备对接库模块进行配置管理。

优选的,所述API接口用于获取所述上层物联网管理系统的订阅主题,并且将与所述上层物联网管理系统的订阅主题相关的所述底层设备的状态推送给所述上层物联网管理系统;所述API接口用于获取所述底层设备的订阅主题,并且将与所述底层设备的订阅主题相关的控制指令发送给所述底层设备。

优选的,所述物联网底层设备适配器被封装成一个独立的服务。

优选的,一个所述业务模块中的所有所述厂商对接库提供相同的业务接口。

优选的,每个所述厂商对接库为独立模块。

优选的,所述配置管理具体为:通过定义配置规则文件来定义所述设备对接库模块中的所有所述厂商对接库的有效状态。

按照本发明的第二方面,提供了一种可扩展的物联网底层设备适配器的构建方法,包括:

采集上层物联网管理系统的业务类型和底层设备的厂商标识;

根据所述上层物联网管理系统的业务类型和所述底层设备的厂商标识预先定义多个主题;

选择所述物联网底层设备适配器的通信中间件,所述通信中间件用于根据所述主题为上层物联网管理系统和底层设备提供基于发布订阅模式的API接口;

按照厂商标识为每个所述底层设备构建厂商对接库,将业务类型相同的所述厂商对接库划分为一个业务模块,将多个所述业务模块构建成业务对接库模块;

开发宿主程序,所述宿主程序用于加载所述设备对接库模块,并对所述设备对接库模块进行配置管理。

优选的,若修改或增加所述底层设备,则在所述业务对接库模块中修改或增加对应的所述厂商对接库。

优选的,若修改或增加所述上层物联网管理系统,则修改或增加所述上层物联网管理系统的订阅主题。

优选的,所述API接口用于获取所述上层物联网管理系统的订阅主题,并且将与所述上层物联网管理系统的订阅主题相关的所述底层设备的状态推送给所述上层物联网管理系统;所述API接口用于获取所述底层设备的订阅主题,并且将与所述底层设备的订阅主题相关的控制指令发送给所述底层设备。

总体而言,本发明与现有技术相比,具有有益效果:通过采用通信中间件、设备对接库模块和宿主程序的架构,使得上层物联网管理系统和底层设备间相互解耦,不再互相依赖,从而使得适配器具有可扩展性和通用性,可跨业务场景,跨平台提供服务,其横向扩展支持多种类型多厂家的底层设备,纵向适应上层物联网管理系统的各种业务功能,从而适用于不同的应用场景。

附图说明

图1是本发明实施例的适配器的应用示意图;

图2是本发明实施例的适配器的组成示意图;

图3是本发明实施例的适配器的通信示意图;

图4是本发明实施例的厂商对接库与底层设备的交互示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明实施例的一种可扩展的物联网底层设备适配器向上对接各种应用场景下的上层物联网管理系统,向下对接各个厂商的底层设备。

如图2所示,本发明实施例的一种可扩展的物联网底层设备适配器,包括:通信中间件、设备对接库模块和宿主程序。

通信中间件,用于根据预先定义的多个主题为上层物联网管理系统和底层设备提供基于发布订阅模式的API接口,主题是根据上层物联网管理系统的业务类型和底层设备的厂商标识预先定义的。这样,适配器向上暴露API接口,则上游的解决方案管理系统可以对接API来控制设备/获取设备状态等。通信中间件可以采用消息队列遥测传输(MQTT)中间件。

设备对接库模块包括按照业务类型划分的多个业务模块,每个业务模块包括按照厂商标识划分的多个厂商对接库,厂商对接库用于提供与所述底层设备进行数据交互的服务。这样,适配器向下按业务整合不同厂商的设备,封装底层对接厂商的库,同时在库内对接API来接收指令,发送设备状态等。

宿主程序,用于加载设备对接库模块,并对设备对接库模块进行配置管理。

物联网底层设备适配器被封装成一个独立的服务.

如此,本发明实施例的适配器,解决方案的管理系统和厂商设备即可完成业务互通,而且两者相互解耦,不再依赖,适配器具有普适性、通用性。

下面具体来说明每个模块的可选的具体实现。

(1)通信中间件

如图3所示,通信中间件的作用是为上层物联网管理系统和底层设备提供API接口,API接口具有两方面的作用:(a)用于获取上层物联网管理系统的订阅主题,并且将与上层物联网管理系统的订阅主题相关的底层设备的状态推送给上层物联网管理系统;(b)用于获取底层设备的订阅主题,并且将与底层设备的订阅主题相关的控制指令发送给底层设备。

主题是预先定义好的一串字符,上游管理系统和下游对接库都能识别的功能点的抽象。一端订阅主题,一端发布主题,则实现了上游和下游的通信。以门禁系统开门为例,事先定义好开门的主题为:/{门禁系统ID}/{设备厂商ID}/{设备ID}/Open,首先下游对接库订阅该主题,上游系统需要开门,则发布该主题,一旦发布,下游即收到指令,去执行开门动作。

通信中间件,具有轻量、简单、开放和易于实现等优点,中间件用来连接上游管理系统和下游设备,具体连接方式为:

S1.首先根据上层物联网管理系统的业务类型和底层设备的厂商标识定义好主题,主题的设计应通用,对同一业务不同厂商,主题应保持一样。主题对上对下都是公开的,上下可以无差别使用。

S2.如上游需要获取设备状态,则上游需要订阅设备状态的相关主题,当下游设备在状态改变时,会立即推送数据给所有订阅了相关主题的订阅者。

S3.同理,下游亦可订阅主题,当上游发布一条控制指令,所有订阅了相关主题的下游设备,都会收到该指令,进而执行操作。

(2)设备对接库模块

如图4所示,厂商对接库用于提供与底层设备进行数据交互的服务,具体是对设备属性进行查询和修改的接口,既可以主动向上发送设备属性信息也可以被动接收上游控制指令。

具体举例说明厂商对接库和底层设备的数据交互。

假设:对接库订阅主题:

/sys/{productKey}/{deviceID}/thing/service/property/set,

上游发布主题:

/sys/{productKey}/{deviceID}/thing/service/property/set,

两者完全一样,不同的是,发布的一端需要搭载消息体(payload),消息体即是对主题的进一步细化描述,一般消息体为跨平台的标准通用格式(json、xml等),以下以json举例:

payload格式

{

"id":3536123,

"version":"1.0",

"params":{

"属性key1":"属性value1",

"属性key2":"属性value2"

},

"method":"property.set"

}

对接库收到该消息体后,解析出来,发现是设置设备属性(Key1和Key2)的值为新值(value1和value2),则再调用设备厂商提供的接口去修改设备。

目前各个厂商的设备需要单独开发对接库,开发方式多样,如SDK,Http,MQ等,由厂商设备决定。

本发明实施例的这里按照厂商+业务类型来划分,设备对接库模块包括按照业务类型划分的多个业务模块,每个业务模块包括按照厂商标识划分的多个厂商对接库。一个业务模块中的所有厂商对接库提供相同的业务接口。比如:A厂商的充电桩开发成一种对接库,B厂商的充电桩设备开发成另一种对接库。但二者属于同一业务,应实现同一业务接口,该业务接口包含所有充电桩应有的功能,例如开始充电,获取充电进度,获取充电时长,推送充电金额等,且与MQTT中间件交互,推送或订阅MQTT相关的主题以便与上游交互。

每个厂商对接库为独立运行模块。厂商对接库使用模块化设计,即一个厂商对接库为一个独立模块,对于整个适配器来说,该模块被视为一个插件,可插可拔。

(3)宿主程序

宿主程序主要是用来加载设备对接库模块,并对设备对接库模块进行配置管理。可以预先按照需求将对应的厂商对接库加载到宿主程序中。但是并非是每个功能场景中都会用到所有的厂商对接库,因此在不同的应用功能场景中,通过配置来修改启用哪些厂商对接库。可以通过定义配置规则文件来定义设备对接库模块中的所有所述厂商对接库的有效状态。例如对于A的智慧校园解决方案,只需要一个厂商的三种设备,那么需要配置3种对接库;但对于B的智慧社区解决方案,需要四个厂商的10多种设备,那就需要配置10多种对接库。如果适配器应用的场景与解决方案越多,意味着兼容的厂家和设备越多,适配器就越强大,能适配的功能和设备就更多,从而做到了可扩展。

宿主程序还可以提供对设备对接库模块的运行管理,例如启动和关闭厂商对接库。宿主程序还可以提供对设备对接库模块的错误恢复,例如当某个厂商对接库发生错误后自动重启该厂商对接库。

宿主程序可以使用模块化设计,即一个厂商对接库为一个独立模块,对于整个适配器来说,该模块被视为一个插件,可插可拔。

本发明实施例的一种可扩展的物联网底层设备适配器的构建方法,包括步骤:

S1,采集上层物联网管理系统的业务类型和底层设备的厂商标识。将采集的内容抽象成一套自定义的标准编码(ID),包含业务编码和厂商编码,通用于上层系统和底层设备。业务类型例如是充电桩、照明、门禁等功能,按厂商和业务功能分类。

S2,根据上层物联网管理系统的业务类型和底层设备的厂商标识预先定义多个主题。即将S1中的业务进行抽象,抽象为通信中间件的主题,数据格式可以选用json或protobuffer等。主题的设计务求通用易读。

S3,选择物联网底层设备适配器的通信中间件,通信中间件用于根据主题为上层物联网管理系统和底层设备提供基于发布订阅模式的API接口。针对MQTT中间件进行选型,目前市面上有众多开源的通信中间件,例如RabitteMQ、ActiveMQ,Kafka等,按需求及应用场景进行选型。

S4,按照厂商标识为每个底层设备构建厂商对接库,将业务类型相同的厂商对接库划分为一个业务模块,将多个业务模块构建成业务对接库模块。

S5,开发宿主程序,宿主程序用于加载设备对接库模块,并对设备对接库模块进行配置管理。宿主程序使用模块化设计,将各个对接库视为插件。通过配置来决定使用哪些厂商对接库。

最后,对适配器进行调试,测试上游下游通信过程。

优选的,若需要修改或增加底层设备,则在所述业务对接库模块中修改或增加对应的所述厂商对接库。

优选的,若需要修改或增加上层物联网管理系统,则修改或增加上层物联网管理系统的订阅主题。

优选的,API接口用于获取上层物联网管理系统的订阅主题,并且将与上层物联网管理系统的订阅主题相关的底层设备的状态推送给上层物联网管理系统;API接口用于获取底层设备的订阅主题,并且将与底层设备的订阅主题相关的控制指令发送给底层设备。

构建方法的实现原理、技术效果与上述适配器类似,此处不再赘述。

以下简要说明几个应用场景中的实施例。

应用场景1:A社区现有一套智慧社区的管理系统,包含充电桩,视频监控,一键报警,门禁等功能,需要底层设备的数据采集的功能。那么,本发明实施例需要知道现有的社区设备有哪些厂家,若厂家的对接库已存在适配器中,则不需要开发,直接将厂家对接库配置进来即可。若没有该厂家的对接库,则需要开发。对接库配好以后,该智慧社区管理系统需要订阅/发布适配器的主题以完成业务功能。

应用场景2:A社区需要将充电桩设备全部更换为另一个厂商的设备,查看适配器支持的厂商库知道,适配器包含了该设备厂商的对接库,那么直接在适配器端更换厂商对接库即可。无需其他地方更改,大大节约开发成本。

应用场景3:A社区需要新添加一些地磁设备,以便引导停车,那么只需要适配器单独开发对应厂商的对接库,无需整个适配器改动,且不会影响其他功能。体现了适配器的可扩展、易维护特性。

应用场景4:B社区觉得A社区的这一套适配架构很有用,也想引进一套。因二者功能一样,适配器端无需开发,只需要上游系统订阅/发布适配器的主题即可。体现了适配器的通用、普适特性。

应用场景5:C社区上线了一套智慧建筑系统,只需要门禁功能,且厂家也在适配器支持之列,那么只需要适配器做好配置即可,无需开发。体现了适配器定制化特性。

综上所述,本发明致力于构建一种具有高普适性、高可扩展性、高定制型的物联网底层设备适配器,该适配器可作为独立的产品发布并运营,可有效解决不同物联网解决方案之间设备采集功能的重复性,难以维护,难以扩展等痛点。作为独立的产品,对外其可向第三方暴露API接口,对内可以无限扩充厂家和设备的对接库。随着时间的推移,功能的积累越来越多,可实现对市面上大部分物联网设备的适配。

必须说明的是,上述任一实施例中,方法并不必然按照序号顺序依次执行,只要从执行逻辑中不能推定必然按某一顺序执行,则意味着可以以其他任何可能的顺序执行。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号