【我的物联网成长记11】8招带你玩转规则引擎

2019 年 12 月 24 日

【我的物联网成长记11】8招带你玩转规则引擎

【摘要】 华为云物联网平台提供的规则引擎包括数据转发和设备联动等多种能力,这些能力都要怎么使用?本文教您 8 招最常用的用法,带您玩转规则引擎。


规则引擎是华为云物联网平台提供的一种能力,用户对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。规则引擎包含数据转发和设备联动两种类型。


  • 数据转发规则:物联网平台支持将设备上报的数据(和设备信息)转发至其他云服务,包括数据接入服务DIS、对象存储服务OBS、企业集成平台ROMA等,并支持对转发的数据进行过滤。

  • 设备联动规则:设备联动规则是指当设备行为(即设备上报的数据中的某个值)或者系统时间满足了规则设定的条件时,就会触发规则设定的动作,如触发告警、发送消息和下发命令给设备。


面对规则引擎的这么多能力,我们该如何使用它们?接下来就让本文教你 8 招,带你玩转规则引擎。


第一招 数据转发至 OBS 长期存储


对于设备上报的数据,设备接入服务只保存最新的数据,设备管理服务(创建应用时开启了存储数据能力)保存 7 天的历史数据。如果用户希望长期保存设备历史数据,就需要将设备上报的数据及时转发至其他地方保存。


此时,就轮到规则引擎出场了。数据转发规则支持将设备上报的数据转发至对象存储服务OBS,实现设备数据持久存储。OBS 是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,适用于对设备上报数据进行归档和备份存储。


1574730857864646.png


在 OBS 中,基本的概念是桶和对象:桶是 OBS 中存储对象的容器,每个桶都有自己的存储类别、访问权限、所属区域等属性,用户在互联网上通过桶的访问域名来定位桶。对象是 OBS 中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息的集合体,包括 Key(文件名称)、Metadata(元数据,由 OBS 自动生成)、Data(文件数据)三部分。



1574730895876403.png


规则引擎转发设备上报数据到 OBS 时,每条数据都会作为一个对象被保存到用户创建的桶中。若需要用桶中读取数据,OBS 也提供了控制台、SDK、API、客户端工具等多种方法,是不是很方便?


第二招 数据经由 DIS 转发至第三方应用


很多物联网企业都会自己开发物联网应用管理设备,那么,物联网应用如何从物联网平台实时获取设备上报的数据?华为物联网平台提供了两种方案。


方案一是使用设备管理服务的订阅推送功能。这个方案是由第三方应用调用物联网平台的接口进行订阅,然后设备上报数据后物联网平台主动推送至第三方应用。这个方案方便快捷,且支持推送的数据不止设备上报的数据,还包括设备注册通知、设备状态变化通知等;但这个方案也有一些局限性:第三方应用所在服务器必须绑定一个公网 IP 用于接收推送,物联网平台默认只提供较弱(10TPS)的推送能力,且不支持过滤数据。


方案二则是使用规则引擎,将设备上报数据转发到数据接入服务DIS,再由第三方应用从 DIS 获取数据。DIS 为处理或分析流数据的第三方应用构建数据流管道,实现数据高效采集、传输、分发。


1574730906462047.png


在 DIS 中,数据流管道被称为通道,是用户创建的逻辑单位,用以区分不同用户实时数据的集合。和使用 OBS 服务时同样,我们需要先创建一个通道,然后在物联网平台创建数据转发规则时指定该通道,设备上报的数据就会被物联网平台转发至该通道内。然后,第三方应用通过集成 DIS 的 SDK 或直接调用 DIS 的 API,主动获取数据。创建规则时,我们还可以指定过滤条件,例如指定某个属性的值必须大于 0 才转发该条数据,提前过滤无效数据。


1574730952561784.png


该方案虽然仅支持转发设备上报的数据(和设备信息),但无需公网 IP,支持数据过滤,并可以根据数据流速创建不同规格的数据通道,整体灵活性更高。


第三招 数据实时分析后转发至第三方应用


有些时候,第三方应用因为性能或业务逻辑等问题,期望获取的是已经分析处理过的设备上报数据,而不是原始数据。对于这种诉求,我们仅需在第二招上稍微做些改动即可实现。


1574730985511311.png


实时流计算服务CS,是运行在公有云上的实时流式大数据分析服务,全托管的方式用户无需感知计算集群,只需聚焦于 Stream SQL 业务,即时执行作业。CS 支持 DIS 流式数据作为数据源和数据输出,所以我们需要建立两个 DIS 通道,一个通道作为 CS 的数据源,物联网平台将数据转发至该通道后就会被 CS 取出并处理;另一个通道作为 CS 的输出通道,CS 会把分析处理完的数据输出到这个通道中,第三方应用再从该通道中获取分析后的数据即可。


第四招 数据转发至大数据平台分析


物联网解决方案中,作为数据主体的“物”可能数量会非常大,产生的数据已经无法通过传统的数据处理服务进行处理,如何分析与利用这庞大的物联网设备数据对物联网企业来说又是一个新的挑战。为此,华为云提供了大数据分析服务(MapReduce服务 MRS)。MRS 是一个在华为云上部署和管理 Hadoop 系统的服务,一键即可部署 Hadoop 集群。MRS 提供租户完全可控的企业级大数据集群云服务,轻松运行 Hadoop、Spark、HBase、Kafka、Storm 等大数据组件,并具备在后续根据业务需要进行定制开发的能力。因此,我们仅需将数据转发至 MRS,然后就可以看 MRS 大展身手了。于是,又轮到规则引擎出场了。数据转发规则虽然不支持将数据直接转发至 MRS,但支持将数据转发至 DIS,DIS 再将数据转发至 MRS。



1574731010100350.png


在上一招中,我们将数据转发到 DIS 后,由第三方应用直接取出。而在这一招中,我们利用了 DIS 的另一个能力,转储任务。DIS 支持将通道内的数据通过定时任务的方式转储至其他服务,其中就包括 MRS。通过规则引擎和 DIS,我们就可以将设备上报的数据全自动转发至 MRS,由 MRS 进行大数据分析。


1574731046611134.png


第五招 数据转发至 ROMA 进行集成


对一些企业来说,物联网设备上报的数据仅仅是他们业务数据的一部分,单纯的设备上报数据没有意义,他们需要将多种数据集成起来,才能发挥数据的真正价值。为了这样的企业,华为云提供了应用与数据集成平台 ROMA。ROMA 是一个全栈式的应用与数据集成平台,源自华为数字化转型集成实践,聚焦应用和数据连接,适配多种企业常见的使用场景。ROMA 提供轻量化消息、数据、API、设备等集成能力,简化企业上云,支持云上云下、跨区域集成,帮助企业实现数字化转型。物联网平台规则引擎支持将数据转发至 ROMA 的消息集成(Message Queue Service,简称 MQS)组件,为企业提供安全、标准化的消息通道。



1574731068523565.png


ROMA 的 MQS 组件是基于 kafka 的消息中间件,所以物联网平台转发数据至 ROMA,本质上来说也是讲数据转发到一个数据通道中,但 ROMA 作为集成平台,提供了多种应用和数据集成组件,完成数据的统一化和标准化,方便用户统一获取后进一步利用。


第六招 根据上报数据自动控制设备行为


现在的很多设备都能做到自动化管理,例如照明灯根据环境光强自动开关,高发热量的设备根据自身温度自动关机等。这些自动化逻辑可以直接烧录到设备中,也可以通过云端设置和执行。若将逻辑直接烧录到设备中,优点是设备反应快,但缺点是需要每个设备单独烧录,而且如果逻辑有变化必须一个个设备重新烧录,非常难以管理。若将逻辑设置到云端,虽然设备的反应速度会有所降低,但逻辑只需云端维护,修改起来也非常方便,因此,我们建议对反应速度要求不是特别高的自动化逻辑都设置到云端。规则引擎中的设备联动服务提供图形化的操作界面,通过简单的操作即可实现设备的自动化逻辑,厂商无需再自行开发第三方应用。


以上文中的照明灯根据环境光强自动开关为例,我们可以设置两条规则,一条是当设备上报数据中的环境光强小于一个阈值(如 50)时,物联网平台自动给设备下发开灯命令。另一条则是当设备上报数据中的环境光强大于一个阈值(如 500)时,物联网平台自动给设备下发关灯命令。


1574731098292351.png


通过这两条规则,我们可以实现当设备检测到的环境光强小于 50 时自动开灯,环境光强大于 500 时自动关灯,达到智能照明的目的。


第七招 根据上报数据触发告警


物联网平台支持告警能力,设备触发告警条件后会在物联网平台上显示一条告警,用户查看告警可以得知告警级别,告警来源(指是哪个设备产生的告警),告警内容等,方便用户更快定位问题设备,及时解决问题。


1574731192868014.png


而这个告警,也是通过设备联动规则产生的。设备联动规则支持设备上报的数据满足条件时,在物联网平台上显示一条告警,告警的信息(类型、级别、名称、内容)均可自定义。


1574731250497524.png


通过这种方式,用户可以自定义业务所需的告警,实现设备异常及时定位,业务管理更高效。


第八招 根据上报数据发送短信和邮件


很多物联网设备 24 小时运行,设备管理者并不需要知道设备每一刻的状态,只需要设备在上报某些特定状态时能通知到管理者。例如,当设备电量低时,自动发送邮件和短信通知管理员。这个功能我们同样可以使用设备联动规则实现,因为华为云物联网平台规则引擎对接了消息通知服务 SMN。


消息通知服务SMN是可靠的、可扩展的、海量的消息处理服务。它可以依据用户的需求主动推送通知消息,最终用户可以通过短信、电子邮件、应用等方式接收。SMN 的主题订阅模型,旨在提供一对多的消息订阅以及通知功能,能够实现一站式集成多种推送通知方式。在 SMN 中有两种类型的客户端,即发布者和订阅者。发布者通过主题发布消息,由 SMN 将消息推送给主题订阅者,订阅者可以为邮件地址、手机号码、消息队列、函数、函数工作流及 URL 地址。


1574731285489019.png


因此通过我们仅需先在 SMN 上创建好主题,并使用手机号和邮箱订阅这个主题,物联网平台规则被触发后就会自动发布消息至主题,通过 SMN 服务给订阅的邮箱和手机发送邮件和短信了,实现无需值守,特殊情况直接通知到人。


学会以上 8 招,您就掌握了物联网平台规则引擎的使用方法。若您希望进一步了解规则引擎,请访问华为云设备管理帮助中心,我们提供了详尽的操作指导文档。


下期预告:如何玩转 IoT 边缘服务?


本文转载自华为云社区博客。


原文链接:https://bbs.huaweicloud.com/blogs/134889


2019 年 12 月 24 日 14:09132

评论

发布
暂无评论
发现更多内容

架构师训练营 week03 作业

尔东雨田

极客大学架构师训练营

云计算 “拍了拍” Serverless

零度

云计算 Serverless 互联网 计算机

浅谈互联网系统架构

王鹏飞

本周的一些总结

Geek_zhangjian

Week 04 命题作业

卧石漾溪

极客大学架构师训练营

小师妹学JVM之:逃逸分析和TLAB

程序那些事

Java JVM 小师妹 TLAB 逃逸分析

做产品少走弯路:你需要懂点高阶的知识

我是IT民工

产品 管理 知识体系

维基百科(Wikipedia)网站架构设计分析

架构5班杨娟Jessie

极客大学架构师训练营

【微信聊天】5张图帮你看懂二分查找

Java小咖秀

Java 算法 漫画 二分查找

用100行代码手写一个Hystrix

小眼睛聊技术

Java 架构 高可用 设计 后端

架构师训练营 week03 总结

尔东雨田

极客大学架构师训练营

Week04 作业

极客大学架构师训练营

大型系统常用的技术方案和技术手段

imicode

重学 Java 设计模式:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」

小傅哥

Java 设计模式 小傅哥 代码优化 观察者模式

互联网系统架构总结

周冬辉

【极客大学】【架构师训练营】【第四周】典型大型互联网应用系统的技术方案和手段

NieXY

极客大学架构师训练营

大型互联网应用系统的技术方案和手段(训练营第四课)

看山是山

分布式 微服务 极客大学架构师训练营

架构师训练营」第 4 周作业

edd

架构师第四周学习总结

傻傻的帅

第四周总结

胡江涛

极客大学架构师训练营

week4总结---系统架构

a晖

架构师训练营第四周作业

一剑

大型互联网应用系统技术方案和手段总结

CATTY

互联网

深入浅出Shiro系列——权限认证

程序员的时光

权限系统

Week4 作业

Shawn

中国未来需要什么样的人才?机遇与挑战!

CECBC区块链专委会

CECBC 中国人才 中国脊梁 数字经济

架构师第四周作业

傻傻的帅

架构师训练营第四周-系统架构综述

草原上的奔跑

DevOps研发模式下「产品质量度量」方案实践

狂师

DevOps 研发管理 研发效能 开发流程

一个典型的大型互联网应用系统的技术方案&手段

Amy

极客大学架构师训练营 作业 第四周

极客时间架构师训练营 - week4 - 作业 2

jjn0703

【我的物联网成长记11】8招带你玩转规则引擎-InfoQ