如今是信息时代,得数据者得天下。然而,只是“有”数据还不够,数据的“准确性”和数据的“分析”也是至关重要的。爱因斯坦也说过:“能用的不一定有用,有用的也不一定能用。”
“数据”和“信息”不是一码事。“数据”说的是一堆未经处理的原始测量结果,我们要分析它,取其精华去其糟粕,以用于获得有用的信息。所以咱们常说的“信息过载”其实不对,“数据”可能会过载,但“信息”越多越好。数据本身不一定有用,因为如果没有经过适当的筛选,数据可能像假新闻一样,使我们误入歧途。
过去十年间,我们的数据量实现了爆炸式增长。《纽约时报》报道,2005年全球数据总量达到1300亿GB。现在的公司经常要处理数以PB记的数据。随着数据源的飞速增长,数据的获取速度也越来越快。科技进步如此迅速,转眼已是沧海桑田。据@HistoricalPics推特所述,1956年一个5MB硬盘要超过2000磅重,IBM要用一架飞机才能运输!低头看看巴掌大的手机,不由得心生感慨。
随着对人们活动和传感器的测量,数据类型也在不断增加。而我们要记住:数据,只有经过了分析,变成了信息才有用。
物联网的优势在于它能实时获取、组织数据。如果架构正确,物联网可以把数据变成有用的信息,用来决定下一步怎么办。
Kristian J. Hammond在《哈佛商业评论》中曾掷地有声地说:“大多数时候,我们都知道我们想从数据中得到什么:我们知道需要分析什么东西、需要寻找什么相关性、需要怎么比较。我们可以把数据交给一个可以胜任这些工作的机器,然后让它用人类的方式、用自然语言告诉我们结果。这样,我们就能稳定、迅速地从数据中提取到大量有用信息——但如今还没有实现。通过辅以机器的力量,我们可以全自动地从数据中淘金,让冰冷的数字变成感性的认知。“
物联网之前,分析传感器各式各样的海量数据非常困难。通过物联网技术,我们可以把机器得到的数据放入数据池自动分析,以决定下一步需要对数据和程序做些什么。物联网不仅收集、分析数据,它还会自我提升。
在介绍具体步骤前,我们先明确两个在讨论数据传输时常用的术语:“北向(northbound)”和“南向(southbound)”。“北向数据”是指从设备发出,通过网关,送至云端的数据,一般是遥测数据,也可能是命令和控制请求。“南向数据”则是从云发至网关,或者从云通过网关发至设备,一般是命令和控制信息(如软件的更新,请求、更改配置参数等)。
以下是利用南、北行信道,从探测数据中找到有用信息的方法:
开源软件项目提供了标准化的工具包(例如Camel、Drools),你可以用它处理、操作数据。Apache Camel是一种基于Java规则的路由和中介引擎,具有可以处理数据的企业集成模式。它通过“开箱即用”(out-of-the-box)的信息中介、路由、数据转换,可以联网解决方案的开发。我认为最好通过Eclipse IoT工作组项目(如Eclipse Kapua、Kura)在IoT中使用Apache Camel。
JBoss社区的Drools是一个内置了规则模板的业务规则管理系统,你可以用它规定在什么情况下应该采取什么措施。Drools通过定义明确的DSL(域特定语言)来实现物联网所需的规则和优化规则引擎所需的可扩展性。它还附带一个名为Workbench的GUI,可以让开发者非常简单地创建、编辑规则。
把数据转化为有用的信息是所有物联网工作的核心,而通过开源软件可以实现这一目标,这有助于加速将物联网付诸实践。