如何為云計(jì)算加快開發(fā)物聯(lián)網(wǎng)應(yīng)用程序?

責(zé)任編輯:editor005

作者:George Lawton

2015-12-14 14:29:05

摘自:TechTarget中國(guó)

應(yīng)用程序的最佳實(shí)踐。其關(guān)鍵在于創(chuàng)建一個(gè)軟件開發(fā)工具鏈,這個(gè)工具鏈可以盡可能地為物聯(lián)網(wǎng)設(shè)施和云計(jì)算后端實(shí)現(xiàn)代碼生成自動(dòng)化。

在JavaOne大會(huì)上,Pivotal的首席技術(shù)專家Mark Heckler介紹了一些快速在云計(jì)算中開發(fā)新的物聯(lián)網(wǎng)(IoT)應(yīng)用程序的最佳實(shí)踐。他的做法讓我們更容易地嘗試不同的用例,一旦其商業(yè)價(jià)值得到證實(shí),我們就可以具體實(shí)施。

作為一個(gè)例子,Heckler解釋了如何為一個(gè)可再生能源監(jiān)控和控制應(yīng)用開發(fā)基本框架。他為他位于圣路易斯的房子開發(fā)了一個(gè)基本框架,但是同樣的原理也可被應(yīng)用于可在云計(jì)算中快捷部署的多種物聯(lián)網(wǎng)應(yīng)用中。

其關(guān)鍵在于創(chuàng)建一個(gè)軟件開發(fā)工具鏈,這個(gè)工具鏈可以盡可能地為物聯(lián)網(wǎng)設(shè)施和云計(jì)算后端實(shí)現(xiàn)代碼生成自動(dòng)化。Spring Boot 將有助于引入各種各樣的服務(wù)以供通信、監(jiān)控、數(shù)據(jù)庫(kù)以及應(yīng)用程序邏輯等應(yīng)用使用。這個(gè)初始模板可被傳輸至Cloud Foundry以便于為在云計(jì)算運(yùn)行的不同服務(wù)器平臺(tái)自動(dòng)生成代碼。

確保物聯(lián)網(wǎng)物理端的簡(jiǎn)單化

雖然物聯(lián)網(wǎng)的物理端在開發(fā)物聯(lián)網(wǎng)應(yīng)用程序中只占據(jù)了二成,但它卻是非常重要的。工程師和架構(gòu)師需要密切關(guān)注后端物聯(lián)網(wǎng)軟件,Heckler說。這恰恰正是其大部分價(jià)值的來源之處。

在物理端,Heckler建議其物理基礎(chǔ)設(shè)施應(yīng)當(dāng)是易于快速配置的。一個(gè)最小的物理和邏輯組件都應(yīng)支持良好的可靠性、溝通方案和標(biāo)準(zhǔn)。例如,Heckler的能源監(jiān)控應(yīng)用使用了一個(gè)包括Arduino板、Raspberry Pi網(wǎng)關(guān)以及供通信使用的無(wú)線網(wǎng)絡(luò)連接和WebSockets協(xié)議在內(nèi)的物理基礎(chǔ)設(shè)施。

Heckler表示,為設(shè)備思考如何提供足夠的性能而不是最佳的性能將是非常重要的,這是因?yàn)楦叩男阅鼙憩F(xiàn)往往需要更強(qiáng)的處理能力和提高端點(diǎn)的復(fù)雜性。這一策略意味著大部分的繁重處理任務(wù)都需要在云計(jì)算中完成。Heckler說,Arduino平臺(tái)是用于驗(yàn)證概念設(shè)計(jì)的一個(gè)不錯(cuò)選擇,但是它缺乏低成本的通信能力。他推薦使用Raspberry Pi作為節(jié)點(diǎn),因?yàn)樗С諰inux和Java,而且它還具有較好的低成本通信方案。

關(guān)注標(biāo)準(zhǔn)

Heckler說,你應(yīng)當(dāng)盡可能地基于現(xiàn)有支持標(biāo)準(zhǔn)的基礎(chǔ)設(shè)施和工具來開發(fā)云計(jì)算物聯(lián)網(wǎng)應(yīng)用程序。Heckler展示了他是如何能夠通過使用Cloud Foundry來快速地開發(fā)出一個(gè)云計(jì)算應(yīng)用程序環(huán)境,從而在基于云計(jì)算的門戶網(wǎng)站、節(jié)點(diǎn)和獨(dú)立物聯(lián)網(wǎng)設(shè)備之間確保交互通信都可通過REST和WebSockets實(shí)現(xiàn)。

Heckler使用這種方法在很短時(shí)間內(nèi)就完成了他的可再生能源監(jiān)控和控制系統(tǒng)的開發(fā)工作。這一應(yīng)用的輸入包括多種不同的傳感器,而其控制輸出涉及冷卻、加熱和通風(fēng)等。

盡可能多的配置

由使用一組強(qiáng)大的軟件工具入手,多嘗試一些不同的方法,將更易于開發(fā)和重新部署一個(gè)應(yīng)用程序架構(gòu),這樣你就可以找出一個(gè)最佳方案,Heckler說。他曾在Cloud Foundry平臺(tái)上嘗試過GlassFish、WebLogic和WildFly 服務(wù)器。Heckler說,與手工自定義改寫代碼來實(shí)現(xiàn)現(xiàn)有應(yīng)用程序的跨平臺(tái)移植相比,以這些服務(wù)器為目標(biāo)使用現(xiàn)有工具來編程生成代碼是一個(gè)更好的方法。

將CloudFoundry作為后端將更易于使用相同的方法來實(shí)現(xiàn)在本地、內(nèi)部部署或者云計(jì)算環(huán)境中的處理和部署。這將有助于減少在開發(fā)概念設(shè)計(jì)驗(yàn)證階段以及之后遷移至以生產(chǎn)為目的的最佳環(huán)境階段的工作量。

另一個(gè)很好的做法就是使用Spring Boot來提供自動(dòng)配置和外部綁定功能,從而更易于生成Cloud Foundry初始代碼。這也更有助于選擇組件來快速集成應(yīng)用程序,可部署應(yīng)用程序以便于在不同目標(biāo)環(huán)境中運(yùn)行。從本質(zhì)上來說,Spring Boot 可有助于設(shè)置被傳送至Cloud Foundry的核心框架,它可為GlassFish、WebLogic 或 WildFly服務(wù)器生成代碼。這使得開發(fā)人員能夠把更多的時(shí)間和精力關(guān)注于針對(duì)物聯(lián)網(wǎng)用例應(yīng)用程序背后的邏輯開發(fā)中。

選擇合適的組件

Heckler還推薦使用Spring Boot Actuator,它可在Spring Boot配置過程中從價(jià)格成本角度提供監(jiān)控和管理應(yīng)用程序的功能。這將有助于檢查環(huán)境、查看類路徑和內(nèi)存使用情況,這些功能在開發(fā)和測(cè)試階段都是非常有用的。

超文本應(yīng)用程序語(yǔ)言可以幫助我們探索和解決與應(yīng)用程序相關(guān)的API。同樣重要的是,囊括一個(gè)數(shù)據(jù)庫(kù),或者將數(shù)據(jù)存儲(chǔ)在應(yīng)用程序中,以便于在發(fā)生網(wǎng)絡(luò)中斷事件時(shí)應(yīng)用程序仍能夠掌控?cái)?shù)據(jù)。

一旦這些Spring Boot 單元被選中,那么開發(fā)人員就能夠使用Spring Boot代碼生成工具快速地生成一個(gè)全功能(雖然可能用處也不大)的應(yīng)用程序。這個(gè)應(yīng)用程序可被快速導(dǎo)入一個(gè)Java集成開發(fā)環(huán)境中,以便于進(jìn)一步實(shí)現(xiàn)針對(duì)某一用例的定制化。那么,最后的結(jié)果就可以很容易地推送至一個(gè)開放工具以生成一個(gè)Gradle 或 Maven 項(xiàng)目。

棄用REST,使用WebSockets

REST 和 JSON非常適用于開發(fā)網(wǎng)絡(luò)應(yīng)用程序,但是它們?yōu)槲锫?lián)網(wǎng)應(yīng)用程序帶來了相當(dāng)可觀的開銷。REST消息有時(shí)候會(huì)增加數(shù)百字節(jié)的頭信息,而物聯(lián)網(wǎng)應(yīng)用程序本身通常只會(huì)發(fā)送與測(cè)量或控制消息相關(guān)的幾個(gè)字節(jié)的信息。Heckler 建議使用WebSockets來代替前者。其開銷要小得多,此外在必要時(shí)可實(shí)現(xiàn)雙工通信。

你還需要開發(fā)一個(gè)WebSocket類來處理數(shù)據(jù),這些數(shù)據(jù)可以通過擴(kuò)展WebSocket處理程序來完成。Heckler說,他仍然有一個(gè)可通過REST來訪問云計(jì)算系統(tǒng)的參數(shù),但是他說,“使用它的代價(jià)如此高昂,所以我不會(huì)使用它。”

基于Spring Boot的基本框架、Cloud Foundry和一個(gè)開發(fā)工具將有助于在較短時(shí)間內(nèi)針對(duì)物聯(lián)網(wǎng)設(shè)備完成一個(gè)云計(jì)算應(yīng)用程序的開發(fā)工作。Heckler表示,他已經(jīng)把同樣的一個(gè)框架重新用于各種與企業(yè)應(yīng)用相關(guān)的應(yīng)用中。他建議企業(yè)重點(diǎn)關(guān)注使用現(xiàn)有工具來為物聯(lián)網(wǎng)應(yīng)用程序開發(fā)基本的邏輯功能。而最終識(shí)別出能夠推動(dòng)物聯(lián)網(wǎng)應(yīng)用發(fā)展的用例將是一項(xiàng)極具挑戰(zhàn)性的任務(wù)。從組件入手將更易于最初的業(yè)務(wù)識(shí)別,之后就可以使用合適的架構(gòu)對(duì)其進(jìn)行優(yōu)化。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)