1、白皮书Qt 助力构建物联网Qt 助力构建物联网|The Qt Company All rights reserved3目录Qt 助力构建物联网 4物联网对软件的要求 5物联网的挑战 7 嵌入式开发 8大数据 9用户体验 10可扩展性 11总结 13Qt 助力构建物联网|The Qt Company All rights reserved4Qt 助力构建物联网 物联网这个术语今天已无所不在。想要在交谈中让人印象深刻,就选择这个时髦话题吧。在科幻小说作家的笔下,物联网是可以植入日常生活中任何物品、尘埃般大小的计算机。而对于绝大多数开发者而言,物联网只是一个新瓶装旧酒的时尚术语:互联的嵌入式系统。毕
2、竟,我们已花了数十年的时间一直在开发类似物联网设备,不是吗?是,也不是。大多数物联网设备的核心定义为:通常是(但非绝对)可移动的、采用 M2M 协议的嵌入式系统 换句话说,就是实现机器之间通讯的移动小玩意儿。当然,这些特性已经在众多嵌入式设备中得到应用。然而物联网的前提是永远在线的通讯,它为设备提供所需信息,使后者更智能化。这赋予了日常物品基本的智能和通讯能力,为我们提供了多方位的技术助力:布满传感器的生物识别服装、自动调度的无人运输机、自动监控家居、能报告食品新鲜度的冰箱、自动通车计时器、自我诊断农作物 这一列表还在继续。要实现物联网的愿景要求计算机不断变得更小、更智能、连接性更强。虽然每个
3、人似乎都明白这需要一场硬件变革,但很少有人谈论软件所需的重大变革。想要让日常用品更智能,并保证人机、机器之间的通讯更直观、自然,需要更多的复杂软件。这又对如何开发物联网软件提出了诸多要求。Qt 助力构建物联网|The Qt Company All rights reserved5物联网对软件的要求由于可用于创建智能的互联系统的技术非常多,以至于很难确定从哪里下手。让我们先弄清楚最理想软件架构的构成,或者至少了解它有哪些基本要求。1)功能性没有计算能力,我们无法实现智能化。因此,我们需要一个能胜任这项任务的软件工具。2)优化性不断缩小的处理器和主板不会提供我们无限的资源。我们需要强大但高效的资源
4、。3)连接性我们需要处理各种通讯,因此需要灵活的连接方式,让我们将智能从网络边缘推向云端,从传感器网络获取数据,或者介于两者之间。我们选择的工具需要轻松支持多种协议、堆栈和无线技术。4)快速开发为了实现快速迭代、改进产品、支持物联网快速的产品生命周期,我们需要快速、可靠地开发软件。利用现代化工具和 IDE,让软件开发尽可能简化。5)跨平台性我们希望在尽可能多的设备上重用我们的代码库,从桌面设备到云服务器,从无屏传感器到嵌入式设备的 UX。因此,选择能最小化移植工作的开发工具尤为重要。6)用户界面当然,许多物联网设备并不涉及 UX。但也有许多联网的小玩意儿需要。为 GUI 程序和非 GUI 程序
5、选择不同的开发工具并不是个好主意。找到一款可适用于所有情况的软件开发工具才是上佳方案。7)共享我们不想重新发明轮子。我们希望建立一个开放、活跃、全球化的开发社区,与大家一起学习。8)安全性黑客无处不在:我们的设备需要能防篡改、并能抵御黑客攻击。9)可靠性我们无法容忍周围有一大堆新的“智能”设备运行不稳定或者需要经常重启:它们必须是可靠的。虽然任何开发语言和工具都能够创建可靠的软件,但是我们将把外部验证或认证的难易度作为我们的衡量标准。这可能不适用于所有场景,但在物联网行业尤为重要。10)稳定性最后,我们知道,软件会持续发生变化 设备功能在出厂后完全固定的模式已经过时。因此,我们不仅需要一种能随
6、时更新软件的方法,而且还要确保用来构建设备的软件工具保持稳定,即便这些工具都在升级。Qt 助力构建物联网|The Qt Company All rights reserved6现在,我们缩小了开发软件的选择范围,让我们看看目前流行的嵌入式语言和各种开发框架是否满足上述要求。功能性优化性连接性快速开发跨平台性用户界面共享安全性可靠性稳定性C 语言C 语言可能已丧失了在桌面端开发的宝座,但其在嵌入式开发领域仍发挥着不可或缺的作用。然而,C 语言最大的问题是其开发前沿已转移到其他地方:C 语言在 IDE、RAD、框架和社区等方面已逐渐淡出。评分:4/10HTML 5/Cordova虽 然 Apach