天天看點

如何開發物聯網應用程式?

物聯網(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日

本文來自雲栖社群合作夥伴至頂網,了解相關資訊可以關注至頂網。

繼續閱讀