开发者学习笔记【阿里云物联网助理工程师认证(ACA):边缘计算组件功能介绍(二)】
课程地址:https://edu.aliyun.com/course/3112060/lesson/18985
边缘计算组件功能介绍(二)
三、阿里云物联网边缘计算核心功能详解
1、设备接入
阿里云互联网边缘计算提供了多种语言设备接入SDK。设备可以集成相应的SDK,让设备轻松接入边缘计算节点。设备接入是阿里云边缘计算提供的基础能力,设备接入模块在Link IoT Edge中称为驱动或设备接入驱动。所有连接到的设备都需要通过驱动实现记录。所有的设备在接入边缘计算节点时都必须通过接入驱动,在接入之后,才能使用函数计算、流数据分析、本地存储等相应的功能,才能后续接入物联网云平台。
(1)设备接入驱动
一个完整的驱动由设备的连接管理、数据转换和数据与命令处理三个模块组成。
①连接管理
主要指设备与网关建立通信连接,Link IoT Edge不限制建立通信连接的协议,开发者可以根据具体的业务需求灵活选择,可以使用wifi,也可以使用nbiot,或使用蜂窝网等。
②数据转换
是指设备接入驱动将获取到的终端设备数据转换为符合阿里云Iot物模型规范的数据格式,并上报到阿里云物联网平台。由于设备的型号不同、生产厂家不同,它所使用的数据传输协议也不同,为了后续对数据的统一管理,需要将些不同类型的数据格式转换为阿里云物联网模型规范的数据格式。
③数据与命令处理
指驱动可以处理云端对于设备的操作请求,并完成对设备的服务调用和处理调用结果,最终将结果返回到阿里云物联网平台。换言之,它可以接收物联网云端对设备的操作请求,将操作之后的结果数据返回到物联网云平台。
(2)驱动使用介绍
Link IoT Edge针对不同用户提供了两种形式的驱动,第一种是由Link IoT Edge提供常用协议驱动,又称为官方驱动,由Modbus、OPC UA驱动;第二种是提供设备接录驱动开发SDK,设备厂商或者开发者使用驱动开发SDK开发私有协议驱动,又称之为自定义驱动。如下图:
设备可以通过官方提供的驱动设备将设备切入边缘计算节点,也可以使用由厂商或开发者使用驱动开发SDK开发的私有的协议驱动来接入边缘计算节点。其中官方驱动的通用性更强,可以满足大部分的设备接入;自定义驱动则可以根据具体的某个特殊的应用场景来设置具体的某种接入方式或者某种数据处理方式,具体使用哪一种驱动开发者可以根据具体的使用场景来进行选择。
(1)自定义驱动详解
上图展示了自定义驱动的功能和数据流向,并指明了开发自定义驱动需要做的开发工作,主要包括三部分功能,即实现连接管理、数据转换、数据与命令处理,因为驱动本身也是由这三部分模块组成的。在开发自定义的驱动时,需要对以上三个方面的具体执行进行定义。
2、断网续传模块
该模块为边缘计算节点在断网或者弱网的情况下提供数据恢复的能力,可以在配置消息路由时设置服务质量,在断网的情况下将设备数据保存到本地存储区,等到后续网络恢复之后再将缓存的数据同步至云端。如下图:
当网络切断或者弱网的情况下,将数据存放到边缘计算节点,网络恢复了之后,再将存储的缓存数据同步到云端断网系统。
3、流数据分析
是对阿里云流计算的扩展,用来解决物联网场景特有的问题,可以对设备流入边缘计算节点的数据进行数据过滤、聚合计算、数据连接、异常检测等操作,来帮助在本地清洗和分析设备数据。
特点:
①运行在边缘端,不依赖网络,低延时。
②对数据进行采集、清洗、加工、聚合之后再上云,大大减少了数据的传输成本。具体来说,它可以将冗余的数据进行清洗,并将部分数据进行聚合、加工再上传到云端,上传到云的数据量减少,降低了数据的传输成本,也加快了数据的传输速度。
③提供和阿里云流市计算完全相同的SQL语法。开发一次SQL,既可以在云上执行,也可以在边缘执行,同时开发的SQL功能既可以部署在云上执行,也可以部署在边缘执行。
④提供了内建的字符串处理和时间、统计等各类计算函数,进而快速、方便地来对数据进行处理。
⑤支持对数据乱序的处理。设备采集的数据时,采集的数据未按采集顺序上传,或云端的控制命令执行顺序颠倒,则会造成数据混乱,此时即可对乱序数据或命令进行处理纠正,执行准确的命令及数据处理。
⑥提供流数据分析开发的图形化控制台。
4、消息路由
边缘计算提供消息路由能力,可以设置消息路由路径,控制本地数据在边缘计算节点中的流转,进而实现数据的安全可控。此外,支持同时存在多条路由路径,可以设置的路由路径如下:设备至IoT Hub(数据直接由设备流转到IoT Hub)、设备至函数计算(设备的数据流转到函数)、函数计算至函数计算、函数计算至IoT Hub、流数据分析至IoT Hub、流数据计算至函数计算、IoT Hub至函数计算等。设置了路由路径之后,就不会运行到其他模块中,造成数据混乱,实现数据流向完全安全可控。
4、场景联动
是规则引擎中一种开发自动化业务逻辑的可视化编程方式,通过可视化的方式定义义设备之间联动规则,并且将规则部署到云端或边缘端,通过拖拽可视化组件即可实现多设备的本地管理、联动及控制,每个人都可以成为面向设备不用编程的程序员。
例如,可以将开门及开灯两个操作串联起来,并设置时间区间在十八点到十九点之间,实现固定时间段门开灯亮,即一旦检测到门设备打开,相继会判断时间是否在设定的时间区间内,若在设定的时间区间内,条件满足,下发控制指令到灯的设备,控制灯打开,反之,则不开灯。
(1)场景联动规则
由触发器(Tiigger)、执行条件(Condition)、执行动作(Action)三个部分组成,这种规则模型称为TCA模型,由三个组成部分的首字母构成。
当触发器指定的事件或属性变化事件发生时,系统判断执行的条件是否满足,以此决定是否执行规则中定义的执行动作,如果满足执行条件,则执行定义的执行动作,反之,则不执行。如下图:
设置的条件可以是一条或多条,当指定的事件或者属性变化事件发生时,即对设置的条件进行判断,若条件满足,则使用相应的执行策略,
按照相应的执行顺序执行动作。
执行策略一般有三种:
①单次执行
一般适用于避免冗余触发的场景。当条件满足时仅执行一次,如开门开灯场景,若门在时间期间反复开闭,灯则不会随之反复亮灭。这种场景下,即为单次执行策略。
②限次执行
如温湿度传感器检测温湿度时,当满足设定的温湿度值时,就对花园的植被进行浇水操作,该操作可以执行多次,还可以规定每次浇水的时长,进行多次浇水。
③重复执行
如在特别紧急的场所,火警、煤气泄露等,此时则需要重复执行报警动作。
(2)场景联动的设置
①设置触发器
如定时为每天18点触发该规则。即在触发器设置后设置时间。
②设置执行条件
获取温度传感器上报的数据,若室内温度高于26℃,则执行动作。执行条件的设置中,设备状态为温度,由温度传感器中获取,条件为26℃,如果温度大于26℃,则执行下面的动作,可以添加一个或多个动作。如可以添加空调电源开启、将室温降至26℃两个动作。
(3)场景联动案例
如下图所示:
上图中,光传感器实时检测光照强度,并且将检测到的数据发往边缘计算节点,边缘计算节点对光照强度进行判断,若低于某个值,则发出开灯指令,若高于某个值,则发出关灯指令。
(4)TCA模型
每个场景联动规则由触发器、执行条件、执行动作三部分组成,该规则称为TCA模型。
①触发器
即规则的入口,可以设置为设备触发或者定时触发。当设备上报的数据或当前时间满足设定的触发器时,触发执行条件判断。可以为一个规则创建多个触发器,触发器之间是“或”的关系,如果设置为设备触发,则需要选择已创建的产品和设备属性或事件,如果设置为定时触发,则需要填写时间点,时间点格式为cron表达式,cron表达式的构成为分、小时、日、月、一周的某日,各项间用空格隔开。如每天18点整的cron表达式为:0 18 * * *,“0”表示0分,“18”表示小时18点,后面的3个“*”分别表示日、月、一周的某天,如每周五18点整的表达式为0 18 * * 5,前两个*表示日、月,“5”表示每周五(1-6表示周一至周六,0或7表示周日)。
②执行条件或执行条件集
只有满足指定的一个或多个执行条件,才会触发执行动作。执行条件可以设置为设备状态或者时间范围,可以为规则创建多个执行条件,执行条件是“和”的关系。如果执行条件设置为设备状态,则需选择已创建的产品,该产品下的某个设备和设备功能中的某个属性或事件;如果执行条件设置为时间范围,则需要设置起始时间和结束时间,格式为年、月、日、时、分、秒。
③执行动作
可以设置一个或多个执行动作,且在设置多个执行动作时,一个执行动作失败的不会影响其他的动作。
执行动作可以设置为四个方面:一、设备输出,需要选择已创建的产品或产品下的某个设备和设备功能中的某个属性或者服务,当触发器和执行条件均被满足时,执行已定义的设备属性或服务的相关动作;二、规则输出,需要嵌套另外的规则,即调用其他规则,被调用规则中的触发器将被跳过,直接检查其执行条件内容,如果满足规则a中的全部执行条件则会执行规则a中的执行动作;三、设置为函数输出,需要选择已创建的函数,当触发器和执行条件均满足的时候,即会执行选择的函数;四、报警输出,将该场景联动规则关联到告警中心,当触发器和条件均被满足时触发告警。
此外,还可以设置延时执行以实现执行动作的延迟执行,延时时间设置的范围为0-86400秒。
5、边缘应用
应用管理是Link IoT Edge提供的边缘应用管理能力,可以帮助标准化边缘管理应用的版本、配置等。目前支持函数计算和容器镜像两种类型的边缘应用。
(1)函数计算应用
是一种依托于阿里云函数计算服务的边缘应用类型,可以在云端完成代码开发之后,部署到边缘端进行执行代码函数计算应用。它继承了阿里云函数计算事件驱动的编程模型,同时作为Serverless计算框架,可以让开发者专注于业务逻辑开发,而不需要为程序启动、消息流转、日志查询、进程保活等基础工作耗费精力。
函数计算应用的代码有两种来源,一种是使用阿里云函数计算服务开发的函数,另一种是本地开发的函数,但后者必须遵循函数开发指南中的要求。以下是函数计算应用的一个使用场景:
设备采集到的数据经过驱动由消息路由转到函数计算应用进行相应的处理。
①函数计算应用的优势
第一,灵活的编程模型,边缘函数计算继承阿里云函数计算服务的提供的按需运行模式功能,同时也提供持续运行模型,将代码部署后选择持续运行可以有效的支撑设备驱动和传统的服务端常驻程序的开发。第二,高实时性,由于函数运行在边缘端,网关更靠近信息源,可以快速地对数据进行采集和分析,提升响应速度。第三,离线运行,设备数据可以传输到本地网络处理,不需要连接到云端,在断网的情况下设备依然可以正常工作。
②函数计算应用的部分组成
第一部分,云端代码托管,开发者可以随时在云端对代码进行增删改查,并热部署到网关进行运行。
第二部分,边缘端程序管理,主要负责管理部署到网关的函数,提供程序运行、服务保活、日志查询、性能监控、资源监控和定时触发等功能。
第三部分,开发API,边缘函数计算还提供了设备驱动开发和应用开发的API,让开发者轻松、快速地实现应用开发,降低程序开发的成本。
③触发函数计算应用的事件源
在触发事件时,Link IoT Edge会调用函数代码中的handler函数进行处理。如果按照按需运行模式的函数,只有当首次事件触发时才会被加载运行。能够出发函数计算的事件源如下:
第一,定时触发。在物联网平台控制台将函数设置为定时运行,通过配置函数被触发的时间点触发函数计算。如如设置为每分钟触发一次,则每分钟就会触发一次函数计算。
第二,消息触发。通过消息路由流转到函数计算的多种来源的消息触发函数计算。如设备函数计算、数据分析等消息源,这些消息源的数据流转到函数计算后就会触发函数计算。
第三,函数调用者。边缘网关提供本地函数计算的API,外部程序直接调用本地函数计算,或在函数计算代码中调用其他函数时即触发函数计算。
(2)容器镜像应用
是一种基于容器技术的边缘应用,可以直接从镜像仓库中搭起镜像作为边缘应用。即应用来自于仓库,在某种需求出现时,就从仓库中拉取应用的镜像来作为边缘运用。
容器镜像应用的来源有两种:一种是阿里云容器镜像服务提供的镜像仓库,另一种是公共镜像仓库。
容器镜像应用的生命周期由Link IoT Edge托管,可以通过边缘端Open API访问Link IoT Edge的服务。以下是容器镜像应用的场景:
将容器应用从镜像仓库中拉取出来部署到边缘网关,通过边缘网关提供的Open API访问Link IoT Edge的服务。