如何开发物联网应用程序?

物联网(IoT)的突然爆发其实并不是那么难以理解的事情。传感器、网络芯片和其他技术都要求连接到网络设备上,这一范围可以电灯扩展到智能手环,再到工业设备,所以这些设施都变得比以往更加便宜。

所有这些连接的设备都在不停地发送和接收来自于网络的数据,这一网络可能与地理属性如温度、湿度、脉搏、光感、速度或每分钟转速相关,现时还会收发一些更加复杂的数据如维护需求、声音,以及静态和动态图像等等。

为了在实际中得到应用,物联网收集和转换的数据不得不连接到Forrester分析师所谓的自动化系统上。如软件系统,可以智能管理事物和他们使用的网络,可组织和存储他们所产生的大量数据,同时在处理他们,然后在呈现给最终用户。那么要如何开发出物联网所需要的应用程序?

开发之间的重要问题

这些问题对物联网应用开发人员很重要。哪一种才是最好的方法,来构建一个“物联网应用”,它可以做很多事情,从远程控制家庭应用到对引擎改动机制造商发送通知,而这一需要维护服务的引擎有个能在世界任何一个地方 ?开发人员要具备怎样的技能?要从哪里先开始?

物联网应用开发的始占在于它本身 。这些边缘设备通常没有屏幕(尽管并非总是如此)、处理器功耗低,搭载的是某种嵌入式操作系统,使用一个或多个通信协议进行交流(通常是无线)。这些东西可能直接与网络、相邻事物和网络网关相连,一般外形就是一个盒子带一些闪闪发光的灯。

系统的下一层即集成层是软件和基础设施,运行在企业数据中心或云中,来从各种事物中接收和管理数据流。运行在集成层的软件通常也负责管理这些事物,必要时更新固件。

接下来就分析层,用于管理并处理数据。最后,还有一个终端用户层,这一层上应用程序用于用户之间交流。这些可能是企业应用、可能是网络应用,也可能是移动应用。

如果你正在想办法构建物联网应用,最后两层将会是你接触最多的。作为开发人员,你可能没有工具处理这些边缘设备或网关,或者没有适应集成层的能力。

这也就是为什么说构建应用程序要从已经就绪的“物联网平台”开始是有道理的了。这些平台通常包含集成层,这一层承载着以时间为序列输入的数据,以及分析层、自动精简配置,激活和管理功能,实时消息总线和建立其上的平台和应用之间的通信API。

现在市场上有许多公司都在提供这类平台。这有 Xively、Mnubo、 Bug Labs和ThingWorx ,他们都有能力与不同的制造商产生的大量“事物”进行沟通。

还有些比较有名的公司,如微软的智能系统服务,和企业软件厂商如SAP的物联网解决方案,这些厂商都在他们的产品中增加了物联网功能。

从相当大量的工作开始构建IoT平台

位于加利福尼亚州的OnFarm使用了ThingWorx的云IoT平台来开发他自己的web农场信息应用程序。这可以从大量不同的事物中收集数据,如土壤湿度传感器,同时还能集成其它来源的数据,,如天气信息提供者。然后它把这些信息通过定制的控制板呈现给它的农户。

OnFarm的CEO曾一度考虑招聘开发人员,从头构建一个物联网平台,但这个想法很快就被拒绝了。这样做将有相当大量的工作要做。就只单单构建他们自己后端就要一、两年时间。即使用一、两年他们完成了这项工作,那么他们公司在落于人后了。

通过使用ThingWorx所有数据的处理,OnFarm减少了大量的web控制面板的工作,只需通过ThingWorx的API就能连接到数据上了。

该公司聘请了一位开发人员来通过JavaScript编写连接器,允许新传感器与ThingWorx平台通信。这一代码置于ThingWorx内部。另外,该公司还聘请了四位开发人员进行OnFarm web应用前端的开发,大部分的编程工作使用了 Bootstrap、AngularJS和JavaScript。这个前端通过RESTful API可以连接到后面的ThingWorx上。这个过程非常简单,让人能够专注于前端使用数据进的数据性能和灵活性。

目前,OnFarm收集的数据来自在于5,000多种客户的“事物”,每个月收集大约7百万条数据。这一数据以每年30%的速度在增长。所有的预构建平台还有一个好处是就它的可扩展性,现已经经过验证。这很重要,因为物联网应用程序相对较新。如果物联网可以像许多人期望的那样获得成功,然后像OnFarm这样的应用程序供应商可能需要每年以非常快的速度来扩展他们的产品。

原文发布时间为: 2014年11月14日

时间: 2024-12-29 00:32:45

如何开发物联网应用程序?的相关文章

如何为云计算加快开发物联网应用程序?

在JavaOne大会上,Pivotal的首席技术专家Mark Heckler介绍了一些快速在云计算中开发新的物联网(IoT)应用程序的最佳实践.他的做法让我们更容易地尝试不同的用例,一旦其商业价值得到证实,我们就可以具体实施. 作为一个例子,Heckler解释了如何为一个可再生能源监控和控制应用开发基本框架.他为他位于圣路易斯的房子开发了一个基本框架,但是同样的原理也可被应用于可在云计算中快捷部署的多种物联网应用中. 其关键在于创建一个软件开发工具链,这个工具链可以尽可能地为物联网设施和云计算后

WBA:Wi-Fi热点将成开发物联网应用和服务关键

据国外媒体报道,无线宽带联盟(WBA)日前在其最新发表的一份白皮书中概述了运营商和技术供应商的关键优先事项,以及物联网非授权技术的盈利潜力. 这份题为<物联网:新型垂直价值链与互操作性>(Internet of Things: New Vertical Value Chains & Interoperability)的报告指出,在过去12个月中,85%的企业将物联网作为重点领域,但其优先级别仍落后于消费者和家庭.运输和能源等领域. 报告还强调,企业将考虑物联网服务.网络互操作性和漫游等

三星拟投12亿美元开发物联网技术

物联网逐渐从概念期后迈入发展期,随着发达国家和地区纷纷出台物联网相关政策进行战略布局,均希望在新一轮信息产业发展中抢占先机,未来几年全球物联网将实现数量和质量的飞跃.根据市场调研机构Juniper Research发布的数据显示,到2020年,物联网连接设备数量将达到385亿,全球物联网产业必将呈现快速增长的态势,市场价值将达万亿规模,物联网显然已经全球未来发展的重要方向之一. 我们将全面进入一个全新的万物互联时代,巨大蛋糕吸引来自国内外巨头们及创业公司争相进入,包括谷歌.苹果.三星以及华为在内

开发物联网解决方案的6种方法

各个行业的企业都在寻找从物联网获益的方法.然而,构建一个物联网解决方案不仅要有各种各样的组件,还需要多种多样的技能,这些要求常常使许多公司不知道如何开始,或者不知道如何从中获得收益. 其实只要选对正确的工具和技术就可以加快这个进程.下面将简单介绍使开发物联网解决方案更加有效的方法的6个方法: 1.改变开发物联网解决方案的方法 IDC预测,到2020年,全世界范围内的物联网市场将达到1.7万亿美元.不过,虽然物联网市场在疯狂增长,物联网开发者的数量却增长缓慢. 研究表明,到2020年,物联网开发者

巧应用!开发物联网解决方案的6种方法

各个行业的企业都在寻找从物联网获益的方法.然而,构建一个物联网解决方案不仅要有各种各样的组件,还需要多种多样的技能,这些要求常常使许多公司不知道如何开始,或者不知道如何从中获得收益. 其实只要选对正确的工具和技术就可以加快这个进程.下面将简单介绍使开发物联网解决方案更加有效的方法的6个方法: 物联网解决方案 1.改变开发物联网解决方案的方法 IDC预测,到2020年,全世界范围内的物联网市场将达到1.7万亿美元.不过,虽然物联网市场在疯狂增长,物联网开发者的数量却增长缓慢. 研究表明,到2020

Delphi开发Web Server程序返回图像的方法

Internet/Intranet在九十年代可能是最流行的计算机术语了,不管是计算机行业内的人士还是计算机外的人士,都会使用Internet/Intranet,有的查资料,有的是宣传自己和公司,甚至有许多以前从没有想到用Internet的东西现在也在用Internet来解决, 比如有的程控数字计算机维护用Internet来解决.在这一切应用之中,基于Web Server的应用程序的开发是基本点,但如何开发Web Server的程序呢? Delphi 3是Borland公司1997年推出的可视化.

如何使用Ajax技术开发Web应用程序(3)

ajax|web|程序 在这个关于AJAX系列的第三部分中(相关文章:第一部分.第二部分),我们将学习如何使用AJAX与服务端进行写作以及这些技术如何产生强大的web应用程序.如果你对学习如何构建类似GMail或者Google Maps的web程序感兴趣的话,这是一篇基础的入门(虽然那两个东东会比我们在这篇文章中提及的内容复杂的多).在这篇文章中,我使用PHP作为服务端语言,但AJAX能够和任何服务端语言进行很好的兼容,所以你尽可以选择你所钟爱的任何语言! 我们还是从我们上一篇文章的代码(喏,就

如何使用Ajax技术开发Web应用程序(2)

ajax|web|程序 在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据.在这篇文章中,我们将学会怎样对数据作更复杂的处理.作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的). 这篇文章是建立在上一篇文章中构造的示例代码的基础之上,所以如果你不能理解我们现在的代码,你可以回过头去读第一篇文章(sheneyan注:就在上面). 开始- 让我们开始我们的第一步:构造XML.我们准备写一个XML文档,

如何使用Ajax技术开发Web应用程序

ajax|web|程序 在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据.在这篇文章中,我们将学会怎样对数据作更复杂的处理.作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的). 这篇文章是建立在上一篇文章中构造的示例代码的基础之上,所以如果你不能理解我们现在的代码,你可以回过头去读第一篇文章(sheneyan注:就在上面). 开始- 让我们开始我们的第一步:构造XML.我们准备写一个XML文档,