第4篇:云计算在物联网中的应用
2014-07-02何小庆译
何小庆译
云计算
云计算,为什么人们使用这样奇怪的词汇来描述在线服务呢?早在20世纪90年代初,工程师们就开始使用云作为互联网的教科书内容和图表的隐喻,互联网的结构从远处看——非常像云。后来,云计算作为一种方法来表示基于互联网的服务。从实施角度看,云计算是一组网络计算机,它将嵌入式系统的处理和存储任务转移到网络计算机上运行。这种想法看似很简单,但其背后隐藏的
技术则非常复杂。
许多公司为了简化云计算在构建和使用上的复杂性,纷纷推出各种产品和服务。比如苹果公司iCloud、谷歌云计算平台和微软的One drive,但是这些产品和技术都是针对个人电脑用户而设计的。嵌入式开发者也需要类似的、针对物联网的云计算技术和产品。
[译者注]云计算有三种方式,分别是SaaS(软件即服务)、PaaS(平台即服务)和IaaS(基础设施即服务)。谷歌云计算平台包括Google Apps(SaaS)和Google App Engine(PaaS),微软除了云存储的One drive外,还有 Windows Azure(PaaS)。
工业界分析人士指出,到了2020年物联网设备的数量将达到数十亿,如图1所示。
这些设备将产生海量的数据,有以下方法可以管理和处理这些数据。
◆一部分公司有能力开发(还可能销售)他们私有的
解决方案。
图1 联网设备的总数
◆一部分公司不具备布置完整的基础设施的能力,他们更愿意选择第三方的解决方案,这些方案可能是公用的,也可能是商用的(托管方式)。
任何公司如果想运行后台服务,那么就必须将其视为这是公司的核心竞争力,模棱两可的做法完全行不通。但并不是所有公司都具备这样的DNA,既可以保证服务器和网络无故障地运行,又具备UPS(不间断电源)和冗余的计算机硬件系统。物联网的生态环境如图2所示。
图2 物联网的生态环境
物联网设备的大军将产生比任何独立的Web应用多得多的数据,据估计,到2020年地球上每个人将有5 200 GB的数据。届时,要支撑数十亿的联网设备,人们需要每天布置大约340个应用服务器(也就是说每年120 000个服务器)。云计算是满足这样巨大需求的十分合适的方案。
后台服务
人们最近一直在谈论这样的话题:每一家公司都将成为一家软件公司。为什么会这样呢?因为管理你的产品和系统产生的数据将会比产品本身更加有价值。你设计和制造一个物联网设备,如果需要后台服务,则会考虑选择自己开发或者外包出去,多数公司会选择外包。比如你是一家温控器的制造商,IT能力不是你的核心竞争力,最好是借助外力,像英特尔、Oracle、SalesForce和谷歌这些大公司已经早早涉足了云计算领域。
如果希望构建自己的后台服务,则会面临一些技术方案的选择,建议阅读《第3篇:互联网与物联网协议》。你必须确定你的客户是如何访问和处理他们的数据的,是完全通过Web浏览器,还是提供智能手机App应用程序(IOS,Android和Windows)。
后台服务另外一个重要的特性是要支持物联网设备的远程安全升级能力。物联网是一个快速发展的领域,很难做到设计与未来的发展完全吻合,这意味着你的设备一定要升级。这样的设备就需要更多的Flash存储器、RAM、Bootloader(引导程序)以及设备安全的升级固件和应用所需的其他部件。
如果选择外包你的后台服务,同样的问题也需要你的回答。但是在这种情况下,首先需要考察的是该后台服务是否支持所期望的协议。你当然不希望后台供应商把握对你的物联网设备协议的控制权,而且你还需要了解到该供应商是否支持移动的数据应用,或者至少提供足够的工具让你可以自己开发移动应用。
以下清单是后台供应商应该具备的基本能力:
◆帮助客户选择通信硬件和软件的设计服务能力。
◆ 支持云计算协议(Websocket、RESTful、MQTT和Co AP等)。
◆支持安全的远程固件升级。
◆Web/移动应用开发(顾问服务)的能力。
◆灵活的价格策略。
—按照每台设备收费。
—按照每一个交易(transaction)收费。
—按照每一种数据类型收费。
—按照所使用的带宽收费。
—按照所使用的存储量收费。
—按月或者年订阅时间收费。
看看公司们提供的方式吧!可以在他们的网站上注册一个免费账号来测试你的应用,然后再投入商业运营。有些服务商还可以提供外部的公共数据帮助你开发更有价值的应用,比如支持你访问天气数据,以及价格工具,这些对于构建一个智慧的能源系统很有帮助。
目前,多数的后台基于REST或者RESTful API,以及各种Java技术。这样的方案对于那些需要移动大量有效负荷数据的应用也许很适合。
大数据
当你需要使用自己的数据时,这些信息是存储在外面公共系统或者商业授权系统之中的,那么大数据(数据分析)就进入了人们的视野。弗吉尼亚·罗曼提(Virginia Rometty)在经济学家杂志写了下面这段关于系统处理大数据的文字:
“我们的世界已经变得到处都是仪器而且互联,计算已经嵌入到物体,没有人认为这些物体是计算机。在这个星球上有超过万亿个互联智能物体和生物,全世界大约有27亿网民,感谢移动技术的迅猛发展,网民的数量在世界的各个角落都在快速增加。”
“这样的结果让我们的地球充满了信息,也就是我们称为大数据的最好的理由。”
“为大数据构建的新一代的认知系统可以赶上洪水的流动,因为它不是被编程的,它通过自己的经验和与人们的交流进行学习。认知系统可以审查结构信息,比如数据库,也可以审查非结构信息,比如医疗影像和社交媒体的内容。感谢云计算,这样的认知系统运行得非常快。”
这些意味着嵌入式系统社区需要学习分布式数据库管理系统,比如Apache Cassendra,还要学习Apache Hadoop,它可以对所有数据进行分析。Cassendra是一个开源的分布式的数据库,该数据库的设计是用来在商业服务器上存储和管理大规模数据。
当然也有商业解决方案,比如GE Predix,它是工业互联网的软件平台,该平台提供一种连接设备和数据的标准方式,支持工业规模的数据分析。
仍然有一些关于数十亿互联设备如何互动这样悬而未决的问题等待我们的答案:
◆数据表示的模型是什么?
◆使用哪种网络发现协议?无论哪种类型的网络,都需要类似Bonjour这样的发现协议。
这数十亿的联网设备所产生的数据一定要送到互联网上,由我们称为大数据的技术来存储和处理,这是人们已经公认的途径。