【51CTO.com快译】当前,单个4G网络已经可以承载多达5500至6000个窄带物联网(Narrow Band Internet of Things,NB-IoT)设备了。有研究表明:从2020年到2030年,随着4G到5G的重大改进,物联网设备将从750亿增至1000亿以上。
在市场上,基于物联网的应用类型可谓林林总总,其中包括:智慧城市、农田管理、大型工厂、居家房屋、以及汽车驾驶等方面。在此,我们重点关注消费类物联网应用,毕竟此类移动应用最需要定位服务。而在农业和企业业务等其他领域,物联网设备可能并不需要移动接口。它们可以直接连接到云端,并且通过Web应用来进行管理。总的说来,需要移动接口来连接设备的消费应用领域包括:
智能家居
汽车相关
卫生保健
农业管理
儿童和宠物护理
如您所见,连接设备的种类正在爆炸式地增长,而移动应用也逐渐成为各种物联网设备的连接点,发挥着各种控制性的作用。因此在本文中,我们将和您探讨如何全面规划和准备那些面向未来的物联网应用程序。
一、智能连接产品可以做什么?
通常,智能连接产品具有监视,控制,优化和自治四方面的职能。其中,监视功能往往是产品控制、优化和自治的基础。
监视:智能连接产品可以通过传感器和外部数据源,全面地掌控产品的运行状况和外部环境。据此,智能产品可以及时警告用户、以及维护人员有关环境与性能方面的变化。
控制:我们可以通过内置于设备中,或驻留在产品云端的远程命令、或算法,来控制智能连接的产品。
优化:基于那些来自智能连接产品的监视数据,我们可以通过各种前所未有的方式来最大化产品的性能。同时,我们也可以将算法、以及分析更新到使用的产品中,以大幅提高数据的输出、使用率和有效性。
自治:我们将前面提到的监视、控制和优化等功能合并到一起,就可以使智能连接产品达到前所未有的自治水平。
二、您应了解的物联网应用开发知识
您也许会问:我们该如何开发物联网应用程序呢?其实,这一般取决于我们的产品创意。对于智能家居应用、以及互联网汽车应用而言,它们的功能侧重点显然会有所不同。在开始进行物联网应用开发之前,让我们首先来了解一下物联网系统的标准结构。
通常,物联网系统会包含如下四个主要部分:
硬件
软件
云
连接性
1. 硬件
物联网系统使用到的硬件包括:用于远程仪表板、控制服务器、路由或桥接设备、以及传感器的设备。这些设备管理着诸如:系统激活、操作规范、安全性、通信和检测等方面的基本任务和功能,以支持特定的管控目标和操作。
2. 传感器
物联网中最关键的硬件当属传感器。这些设备包括:能源模块、电源管理模块、射频(RF)模块、以及感应模块。其中,射频模块是通过其信号处理、WiFi、ZigBee、蓝牙、无线电收发器、双工器和BAW,来管理通信的。传感器的类型包括如下几种:
温度感应器
压力传感器
接近传感器
加速度计和陀螺仪传感器
红外传感器
光学传感器
气体传感器
烟雾感应器
3. 软件
无论是运行在Web上,还是在移动设备上,物联网系统的软件往往是基于云端,且主要用于管理和调节与其相连接的所有IoT设备的仪表板。这些仪表板通过收集来自传感单元的信息,以提供给如下组件:
移动应用
Web应用程序
自定义仪表板
4. 云
显然,云是物联网最重要的创新之一。其最大好处在于用户不需要自行构建物理设施,便可实现数据与信息的保存。
5. 连接性
物联网系统通过不同类型的网络协议,保持着前端设备与后台管理系统的数据连接。
6. 蓝牙
蓝牙是使用最为广泛的近距离无线技术之一。通过配对,您可以用它来快速地将各种前端设备,包括那些可穿戴技术,与应用程序相连接。
7. ZigBee
专为工业物联网开发的ZigBee运行在2.4 GHz频段。它对于通常在建筑物或工业站点之间以微速率传输的数据而言,是一种完美的选择。
8. 射频识别
它利用磁场来识别物体。通常而言,简短多样的超高频识别码的有效半径为10厘米;而远程超高频则可达到200毫米。
9. LoRaWAN
远程广域定位网络(Long Ranged Wide Location Network,LoRaWAN)是针对大型物联网的定位网络之一。它能够为数百万个低功耗设备提供强大的网络资源。许多智慧城市的应用都会用到该协议。
三、物联网的挑战
在真正着手开发物联网应用之前,您同样需要了解该行业目前尚未解决的各种挑战。
1. 安全与隐私
我们在此谈论的安全性不仅是网络安全性,还包括物联网应用中涉及的所有组件的安全性。由于应用程序通过网络连接了各种软、硬件元素,而大量的数据在各种联网设备的传输过程中,势必会将个人隐私信息带到网络各处。
此外,我们在开发物联网应用时应当考虑如下关键问题:
数据交换安全性:客观信息从物联网传感单元和前端设备传输到系统之中,然后被保存到云端。那么我们需要在应用开发的过程中,确保严格遵循数据文件的相关加密协议。
物理安全性:由于物联网前端设备不再是传统的物理管控范围内,我们很难对其进行实时检测,因此很可能会出现被篡改、甚至被替换的情况。
云存储安全性:虽然云存储的方式有效地保障了数据的可用性,但是我们很难保证云服务对于物联网系统的访问权限和授权是否到位。
隐私更新:在获取数据方面,物联网设备始终需要遵循特定的法律法规。例如:所有的健身追踪设备都需要根据HIPAA的准则来收集用户信息,以确保信息的私密性。
2. 连接挑战
为了提供有价值的前端信息,我们对于物联网应用的一项重要要求就是数据传输的实时性。然而,由于设备所处的环境十分复杂,我们需要调用物联网相关传感单元来监视、处理、提供数据与信息。例如,对于智能汽车而言,由于它们需要在快速移动的过程中保持联网的状态。因此,我们在开发应用之前需要对设备、功能和特性等方面进行全面的考虑。
3. 硬件和设备的跨平台兼容性
由于针对物联网领域的技术正在蓬勃地发展之中,因此,开发人员需要确保能无缝地集成各种软、硬件的功能,并保障运行的效率、设备的更新、以及错误的修复。
4. 数据收集与处理
由于物联网应用程序涉及到大量的信息,而且这些信息中往往会涉及到隐私与安全,因此物联网应用开发团队需要配备专业的数据分析人员,事先针对目标环境,以及数据的收集、处理与存储方式进行良好的规划与准备。
四、如何开发物联网应用
1. 选择平台
您可以在充分了解的平台特征与费用的前提下,从如下优秀应用开发平台中选取适合自己的一款:
HomeKit
Android Things
ThingWorx
Xively
Ubidots
Azure IoT Suite
IBM Watson
Oracle IoT
Kaa
上述平台各有不同的特性和侧重点,物联网开发人员可以使用不同平台与程序,将不同供应商的设备连接到一个统一的系统之中。例如:被称为Android Points的Google物联网平台,就能够支持多家厂商的设备,并且可以连接到不同的低能耗传感器上。
2. 选择硬件
如果您不想为物联网项目自行生产硬件的话,那么就需要从其他设备厂商那里选购设备。在满足项目需求的前提下,我们应当选择那些值得信赖的厂商所提供的传感单元,以保证高质量的连接精度和可靠性。
通常,开发人员可以从基于微控制器的电路板、片上系统(SOC)板、单板计算机(SBC)、以及专用于智能蓝牙和WiFi的电路板之中进行选择。下面是一些比较常见的开发板:
Arduino Uno
Raspberry Pi
Intel Edison
Udoo Neo
LightBlue Bean
Adafruit Flora
Tessel
Particle Photon
Mediatek Linkit One
C.H.I.P
3. 事先考虑可扩展性
如今无论是产品的推出速度,还是迭代速度都发展得十分迅速,物联网领域亦然。为了保持应用的向后兼容性,您在开发过程中应当尽量保持可扩展性,以应对将来在数据体量、以及设备数量上的增长。显然,现有的云技术也非常适合于应用的扩展。
4. 注意安全
由于大量连接设备同处一套网络之中,因此物联网应用在一定程度上非常容易遭受数据泄露的威胁。此外,由于人们最常用到物联网设备的地方是他们的住所、汽车、以及医院,因此攻击一旦发生,个人隐私以及敏感信息更会暴露无遗。
以下便是一些我们在使用安全工具来构建物联网应用时,值得借鉴的两个方面。
仔细选择硬件供应商与平台:那些能够为其硬件设备提供配套软件程序的供应商,往往有着更好的安全态势,同时也意味着更少的软件漏洞。因此,对于物联网应用而言,您应当选择那些值得信赖、且有着良好信誉的硬件方案和平台提供商。他们通常能够提供相应的检查工具、并持续进行更新。
对应用程序综合采取优秀的安全实践:对于那些无论是存储在本地设备上,还是存放或传输在云端的数据,我们都应当做好应用级别的数据加密、文件混淆(obfuscation)、两因素身份验证、以及访问控制,以确保只有授权用户才能安全地使用物联网应用与设备。与此同时,我们还应当通过VPN等方式,来保护数据传输的信道与网络。
原文标题:IoT App Development: Impact, Challenges, and Process,作者:Akash Takyar