原文:Tips on Building a Complete IoT Solution for Your Business
作者:Kamalesh Nayudu
翻译:安翔
物联网解决方案需要做的不仅仅是连接设备。数据采集、分析和标准化通信对于完整的物联网解决方案来说都是必不可少的。
构建企业 IoT 解决方案远比构建一个其他业务类型的应用程序更具有挑战性。而且由于物联网海啸仍处于形成阶段,因此 IoT 商业案例的投资回报率是值得期待的。
IoT 解决方案不仅仅是软件,它由以下部分组成:
- 物理的东西(设备),它是具有控制设备行为和功能的内置固件的硬件。
- 网络通信通道,这取决于设备可以支持的传输协议。
- 多层次的 IoT 应用软件包括:
- 提供数据采集功能的监听服务。
- 封装数据处理功能的业务逻辑层(验证用户输入,和设备双向通信)。
- 将 IoT 系统与其他业务应用程序相连接的集成服务。
- 提供终端用户使用 IoT 解决方案的用户界面。
- 用于数据存储的数据库。
- 提供分析和可视化的 BI 层。
我喜欢将 IoT 解决方案与人体进行比较。IoT 应用软件是系统的心脏和大脑,通过通信通道(血管和神经)传输血液(数据)和控制命令,IoT 物体和设置则是我们的手、脚、手指和脚趾。
那么我们如何从这些成分中构建一个伟大的IoT解决方案被?以下是选择方案的过程中需要考虑的几个关键因素。
设备选择
设备选择是一件比较棘手的事情。市面上有很多设备可供选择。有几个关键的设备特性可以促进你做出更好的选择。 比方说,你的设备应该考虑如下的各项指标:
- 具备你项目所需的功能(GPS、地理围栏、告警、报警、音频、视频、防水等)
- 满足你的功能需求:
- 环境需求(温度、湿度、高度、室内、室外、水下等)
- 电池寿命(电源)
- 内置的安全功能可以防止黑客入侵,并保证设备以可预测的方式运行
- 方便供应、部署和管理(配置和诊断)
- 支持空中升级(OTA)的方式进行固件更新,消除了只能通过购买新设备来应对业务需求变化或者系统升级的不便
- 支持最适合你的应用场景的通信方式
- 获得与你的业务相关的监管机构认证
选择、验证设备所面临的挑战之一是你需要通过访问 IoT 应用软件,才能完成端到端的概念验证(POC)。
通讯手段
这是任何 IoT 解决方案中最为复杂的部分,它需要你对设备所支持的无线通信方案有一定的了解。你的选择范围非常广泛,包含了蓝牙和 Wi-Fi(NFC)、LAN 和 WAN,以及蜂窝网络和卫星通信。
评估通信渠道时要考虑的关键特征包括:
- 通信的覆盖范围和距离 - 它由无线电信号的频率决定
- 实时性能标准 - 由带宽(数据速率)和延迟决定
- 设备运行时的信号强度变化
- 信号干扰的几率
- 安全性方面的考虑(加密级别)
IoT 应用软件
IoT 应用软件通常在商业上称为 IoT 平台。市面上有很多现成的 IoT 平台可供选择,当然你也可以自己构建一个。评估一个 IoT 平台时充分了解其功能和限制是非常重要的。例如,某些平台只支持经过该平台认证的设备之间的通信,这就限制了你的设备选择范围。其他平台可能会限制数据采集的功能,你只能通过平台提供的 API 访问数据。Bridgera 提供的 built-to-spec IoT 软件解决方案可以根据你的需求进行裁剪,可定制用户界面以及设备集成。当然,除此之外,还有更多的功能。
如果你计划自定义平台以满足你的项目需求,那么你需要对相关的开发技能有足够的了解,这非常重要。以下是对 IoT 应用软件综合解决方案的一个描述:
数据采集监听服务
监听程序通常是连接到互联网的网络程序,它应当一直处于运行状态且能够大幅度伸缩的。它应当能够保证设备与应用软件服务之间的消息传递的安全性。此外它借助复杂的分布式处理逻辑而具有高可用性,可以确保服务器发生故障或超负荷时能够提供有效的备份机制。
具有良好架构的监听服务应当是高度可配置的解决方案,可以通过配置完成对各种设备通信的支持。同时它还有支持多种通信手段和通信协议的能力。
数据采集服务与设备使用的通信协议必须兼容。Apache NiFi 配合像 Kafka 或 RabbitMQ 这样的消息代理即可实现有效的 IoT 数据采集功能。
数据处理的业务逻辑层
这是业务功能的核心层面。它包含了帐户设置、用户注册、访问控制、支付处理、设备交互、数据验证、错误处理和日志记录等多个功能模块。该层面应当设计成可以利用多线程来支持海量用户。
集成服务
该层负责与现有业务应用程序的通信。你有了一个新的 IoT 解决方案并不意味着可以摆脱之前已有的所有应用程序组合!在决定部署新的 IoT 解决方案时,这往往被低估和忽视。强大的集成服务应当支持双向通信:通过公开的 RESTful API 来向外部系统提供 IoT 数据,同时并利用外部的 API,获取相关数据到 IoT 解决方案。外部接口可能是SOAP 或者 RESTful。
用户界面(UI)
用户界面的个性化和可用性水平高度依赖于不同 IoT 项目的具体应用场景。IoT UI 包含非常独特的用户交互、仪表图形和部件。通过用户界面可以轻松访问、部署设备。所有设备命令都是基于经过过 UI 允许的用户行为进行格式化的。通常来说,一个好的用户界面将提供:
- 用户注册和帐户管理的入口
- 仪表板
- 搜索功能
- 设备管理控制台(针对管理员)
数据存储
考虑到物联网设备的高速增长,强烈建议你的数据存储机制使用大数据技术进行架构设计。NoSQL 数据库(MongoDB、Cloudant、DynamoDB 等)是极好的选择,允许集群和无限水平缩放。同时具有灵活性、高性能、无模式等特性。
数据分析和可视化
最后,通过从设备收集的大量数据获得有用的信息从而提升业务价值才能真正发挥物联网解决方案的全部潜力。目前有多种强大、专业、开源的技术可以运用到 IoT 解决方案中,实现数据分析和可视化以提升业务价值。
使用 Hadoop 架构内的技术可以完成 IoT 解决方案中的定制化数据分析工作。HortonWorks、Cloudera 和 MapR 是市面上最流行的使用 Spark 分析功能的 Hadoop 发行版。Splunk 是日志分析的专有解决方案。除了 Tableau、Qlikview 和 PowerBI 等已经很受欢迎的可视化工具之外, 一些开源的工具发展也很迅速,比如 D3。