物聯網(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這樣的應用程序供應商可能需要每年以非常快的速度來擴展他們的產品。