打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
物联网产生了大数据,然后呢?

  远方的平原上飞驰着一匹白马,你觉得那是王子的骏马,我觉得那是唐僧的龙马。对于物联网而言,不同的人的看法也不尽相同。对于供应商而言,这是最新的商业趋势,是值得考虑的新机会。而对企业组织而言,这不过是另一个技术标准、相互冲突的观念和巨大商业潜力的集合。对开发者来说呢?则是一个可以将许多不同的技术和工具组合在一起的好机会,而且很有可能很多开发者已经以其它的名目做过类似的事情了。了解这些技术在技术层面上时如何协同工作的对未来的发展很重要,并且还会提供更多的机会将软件设计作为未来整体业务的一部分。

  随着物联网项目开始从概念走向现实,物联网中的数据流动开始引起人们的关注。有多少设备可以创造信息?又有多少可以将信息发送回来?你能够实时地获得信息吗?还是需要批量进行发送?数据分析将在未来发挥怎样的作用?

  这些问题必须在设计阶段就提出来。从我了解到的那些企业和组织我了解到,这个准备阶段是必须的,这样才能确保你一开始就选择了正确合适的工具。

  发送数据

  一般来说,可以将设备的数据流动分成三个阶段。第一阶段就是指数据的初始创建,这个阶段发生在物联网设备上,然后数据会被发送到网络上。第二阶段是中央系统如何收集和组织数据。而第三阶段就是如何使用这些数据,发挥数据的价值。

  对于智能设备和传感器而言,每一个特定事件都可以创造出数据。这些信息然后可以通过网络发送到中央应用程序上。在这一点上,人们必须决定数据应当以怎样的标准创造,然后再怎样通过网络发送。将这些数据发送回来最常用的标准是MQTT、HTTP和CoAP。每一种标准都有各自的使用场景和优势。

  

  HTTP(超文本传输协议)为数据在设备和中央系统间的来回流动提供了一种合适的方式。HTTP原本是为客户端-服务器计算模式而发展起来的,而如今其已经不止能够支持日常的网页浏览、也已经能够通过更为专业的服务为物联网设备提供支持。尽管在功能上HTTP确实能够满足数据传输的要求,但HTTP协议中的信息头数据量较大。如果你的物联网络的带宽配置较低,建议还是不要使用HTTP协议。

  MQTT(消息队列遥测传输)是专为机器到机器通信和物联网通信而发展起来的协议。该协议基于发布/订阅模型,物联网设备可以将信息发送给作为代理的中央系统,然后再由中央系统将数据转发到需要这些数据的其它系统中。新的设备和服务可以直接连接到代理上进行数据交换。MQTT的数据大小显著小于HTTP下同样信息量的数据大小,所以这种协议非常适合带宽很有限的情形。但如要指出的是,这其中并不包括加密的情况。

  CoAP(受限应用协议)是另一种为低功耗、低带宽而开发的环境。但CoAP并没有设计成像MQTT一样的代理系统,而是为1对1连接进行设计的。该设计满足REST(表述性状态传递)设计的要求,提供了一个连接HTTP的接口,但却仍然满足低功耗的设备和坏境的要求。

  以上三种协议都支持从单个设备获得信息和更新,并将其发送到某个指定的中心位置。数据被发送到中心系统后就需要进行存储和使用。其中有两个值得关注的点:当设计到应用程序时,数据会怎样作用;以及怎样将数据存储起来以备后时之用。

  存储数据

  物联网最基本的情况就是设备生成的数据被发送到了主程序上,然后主程序再根据设定对数据进行再发送、消耗或者使用。根据设备的不同以及网络和功耗的限制,数据可以进行实时发送、也可以分批次进行发送。数据的真实值是根据数据点的创建顺序而得到的。

  对物联网应用而言,改时间序列的数据必须要足够准确。如果不够准确,后果是难以预料的。比如如果要从车辆上采集数据,如果数据的顺序不一致、不准确,那么数据分析得到的结果和实际情况就会完全不一样,那这样的数据就是没有意义的。

  时间序列的数据可以在事件发生时创建然后再发送。实时信息的使用为每一台设备都提供了一个完整的记录。或者也可以在分批发送数据前对数据进行整理,于是数据的历史记录就会包括在内。这种情况适用于电池寿命比实时更为重要的应用情形。这两种方法的基本要求是数据记录必须要以时间序列正确地进行排列和排序。如果你想为成千上万的设备设计实时的数据传输系统,那么请注意你的数据库的写入速度一定要足够大。

  要确保每一次数据库写入的数据来源都是发送数据的设备本身。对于比较传统的关系型数据库技术,这可能会成为一个限制因素,因为其可能会越过数据库的目的而发送写入请求。当你必须使用所有来自设备的数据以获得准确而有用的信息时,这种潜在的损失可能会带来很大的影响。据我曾从从事物联网应用的企业组织那里我了解到,NoSQL(如Cassandra)更加适合他们的需求。

  

  部分原因是其能够满足写入数据量的要求,即使数百万设备同时不断地产生数据也是可用的,这种数据库被设计的目的就是为了能够尽可能摄取更多的数据。传统的数据库有主机和副本的配置,其中主要的数据库服务器(主机)将处理所有数据交换,并将这些数据交换同步到其它服务器。这会导致在停电或服务器故障情况下的问题出现,因为需要新的主机到位,从而导致潜在的数据损失。

  对于像Cassandra这样的正确配置的分布式数据库系统,并不存在一个“主机”;每一个节点都可以处理到达该处的数据,并且会基于时间维持整个记录。即使出现服务器故障或者因为失去连接而节点遗失的情况,集群的其它部分仍还可以继续处理进入其中的数据。对于实时的时间序列数据而言,这显得尤为重要,因为这样不会出现时间上的数据丢失。

  分析数据

  存储好了数据之后,接下来你就该寻找你所存储的数据的价值了。其中的价值可以分为两大类,其中之一是通过分析数据提取出有用的信息为下一步决策提供支持,另一个则是根据数据的变化设定自动化的任务。典型的例子是联网的冰箱知道什么时候该买牛奶了。当然,当和更大的私人或公共利益相关时,物联网将更有价值,此时物联网必须满足一个更为复杂的条件。当设备数量较多时,流量分析、公用网络和功耗情况都将成为值得关注的要点,这样才能够发现趋势,并节约时间和金钱。

  

  在这种环境中,去考虑什么时候需要这些分析结果是很重要的:确实存在对实时性要求吗,对延时的容忍度有多高?用于大数据分析的Apache Spark和Spark近乎实时的数据流的普及度在不断增长,当和Cassandra等结合起来时,将能为开发者提供分析和处理大型的、快速移动的数据集能力。

  但是,数据分析不只是关心目前正在发生的事,时间序列的数据也存在长期的使用价值。比如说,英国的i2O Water公司通过分布在世界各地水域中的设备手机水压的信息。这项工作已经持续了两年,而收集到的数据则存储在一个Cassandra集群中。该公司通过分析到的数据为世界各地的客户提供预警,并提供相关的建议。

  这些数据对该公司而言颇具价值。其能为其客户提供数据建模和分析,并且还可以为新产品提供数据服务。有趣的是该公司以一种模块化的方式构建自己的应用;当新的模块或服务出现的时候,时间序列数据可以直接被引进到新系统之中。

  对i2O Water而言,其未来的机会就是展示更多能够体现自身价值的服务,他们的客户通常是公共事业单位。水对于人类来说是十分重要的,所以精确的和即时的数据更有价值。这就是互联的设备和数据能提高生活质量的最佳范例,而且同时它还为相关的公司创造了新的机会。

  处理累计的数据的能力将会对物联网整体带来非常深远的影响。不论是用于私有企业的盈利还是公共部门的服务,应用的设计和存储的数据的价值的重要性是很容易理解的。当用于物联网的设计时,分布式系统在应对巨量的数据时也是十分重要的。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深度剖析物联网服务结构如何构建
洋码头应用监控平台Falcon介绍
物联网网关协议选择:HTTP VS MQTT
物联网通信协议的详解及选择建议
物联网时代的大数据策略
物联网协议对比
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服