迟。 分析必须连续,因为数据源不断地生成新数据。 许多方案需要识别只能通过分析传入数据而呈现的情况并对其快
速做出反应,因此它们需要低延迟分析和几乎立即提供的结果。 这些要求使在执行分析之前将数据存储在关系数据库
中变得不切实际。
我们将这些应用称为事件驱动应用,而 IoT 正是此类功能发挥作用的一个方案。 StreamInsight 是一个用于构建这些高
度可伸缩、低延迟的事件驱动应用的强大平台。 它是自 2008 R2 版本发布以后的 Microsoft SQL Server 的一部分。
在事件驱动处理和基于丰富表达时间的分析方面,StreamInsight 为 SQL Server 提供了补充。 使用 StreamInsight,
将以生成数据的速度,而不是处理传统数据库报告的速度提供业务见解。
可供人们立即使用或使应用程序能够自动对事件做出反应的分析结果可帮助企业更及时且更好地了解其相关运营情
况,甚至可以自动执行部分运营工作。 它们也可以对传感器或设备数据中出现的重要情况、商机或趋势更快地做出反
应。
要编写 StreamInsight 应用程序,开发者可使用 Microsoft .NET Framework、LINQ 和 Microsoft Visual Studio 等熟悉
的工具。 图 4 描述了 StreamInsight 应用程序的开发者和运行时体验并介绍了一些关键概念。
图 4 StreamInsight 应用程序开发和运行时
简单的 IoT 应用
让我们更深入地了解可能的 IoT 应用方案;然后我们将构建它。 在我们的端到端示例中,我们将关注一个简单方案,
该方案使用运动传感器监视旋转设备,例如涡轮或风车。 这很重要,因为振动过大会导致出现紧急情况,在这种情况
下,设备可能出现故障,并且如不立即停止,则会出现严重损坏。 为可靠地检测此情况,每台设备均配备多个跟踪运
动的传感器。 单个传感器中的运动激增可能仅指示该传感器的数据读数不可靠,但多个传感器中同时出现异常剧烈的
运动则表明出现紧急情况。 例如对于大型涡轮,您可能希望引发警报,甚至自动关闭设备。 除了持续检查此类情况
外,我们还希望为操作员提供一个仪表板,它提供了设备状态的近实时视图。
若要构建此方案,我们需要满足以下要求和解决以下技术难题:
?设备需要捕获哪些数据?
?我们使用哪些传感器来测量数据?
?设备如何将其传感器读数传送到 Internet?
?我们如何将设备数据收集到一个位置以进行分析?
?我们如何可以连续分析传入数据并对紧急情况快速做出反应?
?我们如何跨多台设备及时关联传感器读数,以便可以检查全局情况?
让我们看一下满足这些要求并实现端到端方案的方式。
IoT 应用: 实现要点
下面是实现上一节中所述的 IoT 应用的一些关键步骤。 我们将首先讨论设备,再转到输出的可视化,然后转到填充仪
表板的跨设备分析。
设备。为构建传感器设备,我们首先从 Netduino Plus 着手,它是运行 .NET Micro Framework、具有 128K SRAM 的
受欢迎的小型开发板。 我们添加了名为 WiFly GSX Breakout 的常见爱好者 Wi-Fi 无线电,并在自定义 PCB 板上安装
了实际传感器,包括三轴加速计。 我们对设备进行编程,以将传感器读数的每秒更新发送给 Web 服务,该服务充当
从所有设备收集数据并进行处理的中心。
我们对 Web 服务使用 RESTful 连接 — 它只是包含逗号分隔名称-值对的 HTTP POST。 当然,您可以从支持 HTTP
的任何种类的设备执行此操作。 我们选择使用 .NET Micro Framework,以便整个应用程序(包括设备、Web 服务、
StreamInsight 适配器、Silverlight 仪表板等)全部可以使用单个编程模型 (.NET) 和工具链 (Visual Studio) 进行编写。