物联网关键技术:规则引擎
物联网系统以及各类互联网分布式系统,消息队列是最常用到的中间件技术。在物联网系统中,消息队列一般和规则引擎结合使用,规则引擎决定消息会进入消息队列的哪个topic。
消息队列一般与规则引擎结合使用
为啥要用规则引擎
规则引擎起源于基于规则的专家系统,是专家系统的一个分支,而专家系统可划分为人工智能的范畴。当时人们提出专家系统,是为了让计算机来应用人类专家的经验,并像人类一样进行推理,最终解决特定领域的问题。
规则引擎是一种嵌入在其他应用程序中的程序组件,实现了将业务决策从应用程序代码中分离的作用。业务人员可以使用预定义的规则语义模块编写业务规则。规则引擎解析业务规则,接受数据输入,并根据业务规则做出业务决策。通过编写业务规则,就可以改变数据的处理逻辑,而不需要重新编写应用程序的代码。
当然如果不使用规则引擎,物联网系统只基于消息队列也可以工作,但这样的设计不够灵活,使用规则引擎可以带来很多好处。
- 与代码不同,规则以不复杂的语言编写,甚至可以通过图形化的工具配置; 业务人员也可以轻松阅读和验证一套规则。
- 在规则引擎的帮助下,应用程序的扩展性可以变得非常强。如果需要频繁更改需求,可以添加新规则,而无需修改现有规则。
- 在物联网系统中,当设备基于Topic进行消息通信时,可以使用规则引擎,编写类似SQL的语句对Topic中的数据进行处理,并配置转发规则将处理后的数据转发到其他服务,可以非常方便的对设备的数据进行保存和分析。
AWS IoT
很多公司的物联网云平台都使用了规则引擎组件。以亚马逊的IoT架构为例,IoT设备内嵌SDK 使用MQTT、HTTP 或 WebSockets协议将设备连接到 AWS IoT设备网关。规则引擎验证发布到 AWS IoT的消息,并根据预先定义的业务规则将这些消息分发到另一台设备或云服务。
AWS IoT架构