我们演示了物联网设备依托边缘计算平台,该平台支持运行分布式分析的虚拟容器的动态部署。我们建立了一个模型城市,并安装了多个树莓派作为节点,和一个迷你PC作为中心。通过主机上的web,我们展示了用户如何远程监控、管理和升级物联网分析和设备。演示了多种具体的物联网分析,即:(i)空气质量监测、(ii)声音分类器和(iii)图像识别器。在测试台上还对部署速度、服务质量(QoS)成就和事件驱动机制进行了一些示例测量。
在过去的十年里,智能城市变得非常受欢迎,专注于从大量的物联网设备中有效地收集数据。一些商业物联网平台由服务提供商提供,如美国电话电报公司(AT&T)、亚马逊(Amazon)和微软(Microsoft)。它们在一定程度上支持边缘计算,也可以称为雾计算[1]。然而,它们对分布式分析和事件触发部署的支持是有限的。有一些学术研究试图实现管理、可编程和虚拟边缘计算。例如,Patti等人的[3]采用Smartlink在多台服务器上管理一组web服务。Santoro等人使用Kubernetes来部署和管理在数据中心和边缘云的服务器上执行的Docker映像。上述工作均不支持分布式部署和管理来自数据中心服务器、边缘云工作站和嵌入式物联网设备(如智能传感器)的异构设备上的物联网分析。
在本文中,我们提出了一个物联网平台来填补上述空白。实现这样一个平台非常具有挑战性,因为物联网设备、动态网络和随需应变请求之间存在复杂的相互作用。物联网设备和边缘服务器资源有限,无线网络竭尽全力,来自个人、公司、组织和政府的设备请求不可预测,这些事实放大了这些挑战。我们之前的工作[2,5]解决了优化部署物联网分析的问题。本文主要讨论了测试平台的实现。特别地,我们将演示三种物联网分析:(i)空气质量监测,(ii)声音分类器,和(iii)模型城市中的图像识别器。
物联网平台
上图显示整个系统架构,包括以下组件:
Container. 容器。我们在Docker容器中运行应用程序。容器是一种轻量级虚拟化技术。每个Docker容器都使用一个Docker映像启动,该映像由一个或多个软件组件组成。Registry. 注册表。Docker图像可能来自在线服务器,例如Docker Hub。我们把这些图像存储在注册表的控制和节点,以避免下载重复的图像。Registry还支持版本控制,并利用Docker映像之间的依赖性进一步减少资源消耗。Device manager 设备管理器。我们加强Kubernetes来监控异构设备:(i)资源利用率(如CPU和RAM)、(ii)位置(如GPS)和(iii)传感器列表(如摄像头和气体传感器)。这些信息是从库贝涅斯的小黄人特工处收集的(5)。Deployment manager 部署管理器。Kubernetes中的部署管理器在部署、杀死和重新启动(4)容器方面得到了增强。我们使用MQTT(消息队列遥测传输)发布/订阅协议添加了对事件触发容器部署的支持。Optimization algorithm 优化算法。We 开发 部署 算法 [5] 决定 哪些 应用 程序 是部署再哪些设备上 (3 ).未来我们可能会增加更多的优化算法,比如分析的调度算法,异常处理的恢复算法。
演示设置
分析应用程序示例。我们在测试台上实现了以下三个应用程序。
空气质素监测器(A1)。它包含两个Docker容器:gas sensor manager,它定期轮询传感器读数;热图发生器,它接收来自气体传感器管理器的传感器读数,并在仪表板上绘制热图。在我们的演示中,我们将使用罐装的冷凝气体,如二氧化碳,并在我们的模型城市中可视化实时空气质量。声音分类器(A2)。In包含三个Docker容器:声音记录器、声音警报器和声音分类器。录音机使用麦克风收集声音信号,并分析音量。随着时间的推移,声音量通过MQTT发送到声音警报器。声音警报器检查声音的音量:如果音量足够大,声音信号就会传递给声音分类器,然后分类器会将声音分类为一个预先训练好的声音类别,比如枪声和警笛。我们将播放预先录制的声音(WAV)文件与平板电脑的示范。结果报告在仪表板上,并可用于确保社区安全。图像识别器(A3)。它包含四个Docker容器:运动传感器管理器、运动警报器、摄像机管理器和对象检测器。运动传感器管理器负责使用无源红外(PIR)传感器监视环境,并通过MQTT发布传感器读数。运动报警器订阅并分析传感器读数。当运动信号在给定的时间内变为正信号时,比如3秒,摄像机管理器就会被部署到一个合适的小黄人上。然后将捕获的照片发送到对象检测器,该检测器也是动态部署的。对象检测器使用一个预先训练好的CNN (Convolutional Neural Network,卷积神经网络)来分割和识别照片中的对象。被识别的对象将在照片的顶部进行装箱和注释,可以用于各种服务,如入侵者检测、流量监控和人员计数。我们将用平板电脑展示一些典型的图像,并在我们的模型城市中使用塑料头像进行测试。
初步评估。在演示期间将进行一些测量,以确定我们的edge计算平台的优点。我们简要介绍了下面的一些示例评估步骤。
快速部署。动态部署Docker映像的一个主要问题是时间开销,本地注册中心可以减轻时间开销。为了更好地理解本地注册表的必要性,我们测量并比较第一次(从Internet下载)和第二次(从注册表检索)加载Docker映像的部署时间。不同的图像大小,从应用A1, A2和A3,将被考虑。分布式分析带来的性能提升。物联网设备资源有限,因此复杂的分析应用程序必须部署在多个物联网设备上。我们利用TensorFlow将A3的目标探测器进一步拆分为多个Docker图像。然后我们在多个物联网设备上部署A3,并测量由于图像/设备的增加而带来的性能改进,例如CPU时间和帧速率。有效的事件驱动的部署。链接多个Docker容器对于实现更全面的服务至关重要。例如,在A3中,摄像机管理器和目标探测器被动态部署,以应对环境的变化。组件延迟将被测量和报告。
CONCLUSION
在这篇论文中,我们提出了一个用于智能城市物联网分析的管理、可编程和虚拟边缘计算平台。该平台基于Docker、Kubernetes和TensorFlow,支持动态物联网分析部署。特别是,它允许对物联网设备进行远程监控、诊断和升级;而物联网分析可以被分割并分布在多个物联网设备上。实现并演示了三种物联网应用:(i)空气质量监测、(ii)声音分类器和(iii)图像识别器。