物聯(lián)網(wǎng)(IoT)的突然爆發(fā)其實(shí)并不是那么難以理解的事情。傳感器、網(wǎng)絡(luò)芯片和其他技術(shù)都要求連接到網(wǎng)絡(luò)設(shè)備上,這一范圍可以電燈擴(kuò)展到智能手環(huán),再到工業(yè)設(shè)備,所以這些設(shè)施都變得比以往更加便宜。
所有這些連接的設(shè)備都在不停地發(fā)送和接收來(lái)自于網(wǎng)絡(luò)的數(shù)據(jù),這一網(wǎng)絡(luò)可能與地理屬性如溫度、濕度、脈搏、光感、速度或每分鐘轉(zhuǎn)速相關(guān),現(xiàn)時(shí)還會(huì)收發(fā)一些更加復(fù)雜的數(shù)據(jù)如維護(hù)需求、聲音,以及靜態(tài)和動(dòng)態(tài)圖像等等。
為了在實(shí)際中得到應(yīng)用,物聯(lián)網(wǎng)收集和轉(zhuǎn)換的數(shù)據(jù)不得不連接到Forrester分析師所謂的自動(dòng)化系統(tǒng)上。如軟件系統(tǒng),可以智能管理事物和他們使用的網(wǎng)絡(luò),可組織和存儲(chǔ)他們所產(chǎn)生的大量數(shù)據(jù),同時(shí)在處理他們,然后在呈現(xiàn)給最終用戶。那么要如何開(kāi)發(fā)出物聯(lián)網(wǎng)所需要的應(yīng)用程序?
開(kāi)發(fā)之間的重要問(wèn)題
這些問(wèn)題對(duì)物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)人員很重要。哪一種才是最好的方法,來(lái)構(gòu)建一個(gè)“物聯(lián)網(wǎng)應(yīng)用”,它可以做很多事情,從遠(yuǎn)程控制家庭應(yīng)用到對(duì)引擎改動(dòng)機(jī)制造商發(fā)送通知,而這一需要維護(hù)服務(wù)的引擎有個(gè)能在世界任何一個(gè)地方 ?
開(kāi)發(fā)人員要具備怎樣的技能?要從哪里先開(kāi)始?
物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)的始占在于它本身 。這些邊緣設(shè)備通常沒(méi)有屏幕(盡管并非總是如此)、處理器功耗低,搭載的是某種嵌入式操作系統(tǒng),使用一個(gè)或多個(gè)通信協(xié)議進(jìn)行交流(通常是無(wú)線)。這些東西可能直接與網(wǎng)絡(luò)、相鄰事物和網(wǎng)絡(luò)網(wǎng)關(guān)相連,一般外形就是一個(gè)盒子帶一些閃閃發(fā)光的燈。
系統(tǒng)的下一層即集成層是軟件和基礎(chǔ)設(shè)施,運(yùn)行在企業(yè)數(shù)據(jù)中心或云中,來(lái)從各種事物中接收和管理數(shù)據(jù)流。運(yùn)行在集成層的軟件通常也負(fù)責(zé)管理這些事物,必要時(shí)更新固件。
接下來(lái)就分析層,用于管理并處理數(shù)據(jù)。最后,還有一個(gè)終端用戶層,這一層上應(yīng)用程序用于用戶之間交流。這些可能是企業(yè)應(yīng)用、可能是網(wǎng)絡(luò)應(yīng)用,也可能是移動(dòng)應(yīng)用。
如果你正在想辦法構(gòu)建物聯(lián)網(wǎng)應(yīng)用,最后兩層將會(huì)是你接觸最多的。作為開(kāi)發(fā)人員,你可能沒(méi)有工具處理這些邊緣設(shè)備或網(wǎng)關(guān),或者沒(méi)有適應(yīng)集成層的能力。
這也就是為什么說(shuō)構(gòu)建應(yīng)用程序要從已經(jīng)就緒的“物聯(lián)網(wǎng)平臺(tái)”開(kāi)始是有道理的了。這些平臺(tái)通常包含集成層,這一層承載著以時(shí)間為序列輸入的數(shù)據(jù),以及分析層、自動(dòng)精簡(jiǎn)配置,激活和管理功能,實(shí)時(shí)消息總線和建立其上的平臺(tái)和應(yīng)用之間的通信API。
現(xiàn)在市場(chǎng)上有許多公司都在提供這類平臺(tái)。這有 Xively、Mnubo、 Bug Labs和ThingWorx ,他們都有能力與不同的制造商產(chǎn)生的大量“事物”進(jìn)行溝通。
還有些比較有名的公司,如微軟的智能系統(tǒng)服務(wù),和企業(yè)軟件廠商如SAP的物聯(lián)網(wǎng)解決方案,這些廠商都在他們的產(chǎn)品中增加了物聯(lián)網(wǎng)功能。
從相當(dāng)大量的工作開(kāi)始構(gòu)建IoT平臺(tái) 位于加利福尼亞州的OnFarm使用了ThingWorx的云IoT平臺(tái)來(lái)開(kāi)發(fā)他自己的web農(nóng)場(chǎng)信息應(yīng)用程序。這可以從大量不同的事物中收集數(shù)據(jù),如土壤濕度傳感器,同時(shí)還能集成其它來(lái)源的數(shù)據(jù),,如天氣信息提供者。然后它把這些信息通過(guò)定制的控制板呈現(xiàn)給它的農(nóng)戶。
OnFarm的CEO曾一度考慮招聘開(kāi)發(fā)人員,從頭構(gòu)建一個(gè)物聯(lián)網(wǎng)平臺(tái),但這個(gè)想法很快就被拒絕了。這樣做將有相當(dāng)大量的工作要做。就只單單構(gòu)建他們自己后端就要一、兩年時(shí)間。即使用一、兩年他們完成了這項(xiàng)工作,那么他們公司在落于人后了。
通過(guò)使用ThingWorx所有數(shù)據(jù)的處理,OnFarm減少了大量的web控制面板的工作,只需通過(guò)ThingWorx的API就能連接到數(shù)據(jù)上了。
該公司聘請(qǐng)了一位開(kāi)發(fā)人員來(lái)通過(guò)JavaScript編寫連接器,允許新傳感器與ThingWorx平臺(tái)通信。這一代碼置于ThingWorx內(nèi)部。另外,該公司還聘請(qǐng)了四位開(kāi)發(fā)人員進(jìn)行OnFarm web應(yīng)用前端的開(kāi)發(fā),大部分的編程工作使用了 Bootstrap、AngularJS和JavaScript。這個(gè)前端通過(guò)RESTful API可以連接到后面的ThingWorx上。這個(gè)過(guò)程非常簡(jiǎn)單,讓人能夠?qū)W⒂谇岸耸褂脭?shù)據(jù)進(jìn)的數(shù)據(jù)性能和靈活性。
目前,OnFarm收集的數(shù)據(jù)來(lái)自在于5,000多種客戶的“事物”,每個(gè)月收集大約7百萬(wàn)條數(shù)據(jù)。這一數(shù)據(jù)以每年30%的速度在增長(zhǎng)。所有的預(yù)構(gòu)建平臺(tái)還有一個(gè)好處是就它的可擴(kuò)展性,現(xiàn)已經(jīng)經(jīng)過(guò)驗(yàn)證。這很重要,因?yàn)槲锫?lián)網(wǎng)應(yīng)用程序相對(duì)較新。如果物聯(lián)網(wǎng)可以像許多人期望的那樣獲得成功,然后像OnFarm這樣的應(yīng)用程序供應(yīng)商可能需要每年以非??斓乃俣葋?lái)擴(kuò)展他們的產(chǎn)品。