如何加快構(gòu)建物聯(lián)網(wǎng)的應用云
文章來源:admin
發(fā)布時間:2016-05-05 09:29:25
瀏覽:0 次
在JavaOne大會上,Pivotal公司首席技術(shù)專家馬克•克勒解釋了物聯(lián)網(wǎng)(IOT)應用在云計算中快速發(fā)展起來的一些最佳實踐。他的方法使它更容易地嘗試不同的用例,可一旦這些情況的商業(yè)價值已被證實,就可以提煉并實踐。
作為一個例子,克勒解釋了如何建立一個可再生能源的監(jiān)測和控制應用程序的基本框架。他在圣路易斯建造了這一原則,但同樣的原則可以采用多種多樣的物聯(lián)網(wǎng)應用中,可以快速部署到云中。
關(guān)鍵是要創(chuàng)建一個軟件開發(fā)工具鏈,為物聯(lián)網(wǎng)設(shè)備和后端的云計算生成盡可能多的代碼。Spring的啟動使得它容易帶來各種各樣的服務(wù),用于通信,監(jiān)控,數(shù)據(jù)庫和應用程序邏輯。這個起始模板可以傳遞到Cloud Foundry自動生成在云中運行不同的服務(wù)器平臺的代碼。
保持簡單的物聯(lián)網(wǎng)物理側(cè)
物聯(lián)網(wǎng)的物理硬件方面是很重要的,雖然它只構(gòu)成創(chuàng)造物聯(lián)網(wǎng)應用約20%的工作。工程師和建筑師需要密切關(guān)注物聯(lián)網(wǎng)的后臺軟件,克勒表示,物聯(lián)網(wǎng)是大部分的價值來自后臺軟件。
在物理方面,克勒建議物理基礎(chǔ)設(shè)施應該是快速且易于配置。一個最小的物理和邏輯的足跡應該支持可靠性,良好的溝通方案和標準。例如,克勒的能源監(jiān)控應用程序的物理基礎(chǔ)設(shè)施使用了一個Arduino板,可以支持無線網(wǎng)絡(luò)連接和通信的Web Sockets協(xié)議的Raspberry Pi公司網(wǎng)關(guān)。
克勒表示考慮要使用設(shè)備充分的性能,而不是最佳的性能,因為端點需要更好的性能,而往往更多的處理能力和復雜性是很重要的。這一戰(zhàn)略意味著大部分繁重處理的需求都在云中實施??死照f,Arduino平臺用于測試概念證明,這一個不錯的選擇,但它缺乏低成本的溝通能力。他建議采用Raspberry Pi為節(jié)點集中器,因為它支持Linux和java,其通信選項具有較好的低成本。
專注于標準
克勒說,人們應該采用盡可能地支持標準的、現(xiàn)有的基礎(chǔ)設(shè)施和工具建立云計算物聯(lián)網(wǎng)應用。克勒展示了他是如何能夠快速使用Cloud Foundry云應用程序環(huán)境建立發(fā)展基于云計算的能源監(jiān)控門戶網(wǎng)站的,節(jié)點集中器和獨立的物聯(lián)網(wǎng)設(shè)備之間的所有交互可通過REST和Web Sockets進行溝通。
克勒用這種方法在短時間內(nèi)來開發(fā)他的可再生能源監(jiān)控系統(tǒng)。其應用程序通過各種傳感器來監(jiān)測和控制冷卻、加熱和通風孔等指標。
盡可能地配置
克勒表示,通過一套豐富的軟件工具,所以用戶可以更容易使用不同的方法,找出最好的一個軟件工具開發(fā)和部署應用程序架構(gòu)。他有針對性列舉了GlassFish,WebLogic和WildFly服務(wù)器與Cloud Foundry平臺??死照f,這是一個更好的做法,針對利用現(xiàn)有的工具來手動自定義代碼編程,而不是針對這些服務(wù)器跨平臺移植現(xiàn)有生成代碼的應用程序。
使用Cloud Foundry作為擴展的后端,使它更容易使用相同的方法,在本地或云環(huán)境進行局部處理和部署。這可以幫助減少開發(fā)概念驗證的努力,然后遷移到最佳生產(chǎn)環(huán)境。
另一種很好的做法是使用SpringBoot,提供自動配置和外部的結(jié)合能力,使其更容易產(chǎn)生Cloud Foundry的起始代碼。這使得在應用程序中更快更容易選擇組件,這可以被部署到不同的目標環(huán)境中運行。從本質(zhì)上說,Spring Boot可以很容易地設(shè)置傳遞到CloudFoundry,通過對云計算的核心框架的設(shè)置,從而產(chǎn)生Glass Fish,WebLogic服務(wù)器或Wildfly的代碼。這使得開發(fā)人員可以把重點放在調(diào)整具體的物聯(lián)網(wǎng)使用情況下的應用程序背后的邏輯上。
選擇合適的組件
克勒還建議使用Spring Boot驅(qū)動器,它提供了監(jiān)控和管理能力,包括SpringBoot的配置過程中使用應用程序的能力。這使得它很容易檢查環(huán)境和路徑,以及使用內(nèi)存,這在開發(fā)和測試過程中非常有用。
超文本應用程序的語言,使它更容易探索和應用程序相關(guān)的應用程序。在網(wǎng)絡(luò)中斷的情況中,在應用程序中包含一個數(shù)據(jù)庫或數(shù)據(jù)存儲區(qū)是很重要的。
一旦這些Spring Boot元件被選中,開發(fā)人員可以快速生成一個使用SpringBoot代碼生成工具的功能齊全的應用程序。這可以快速導入到一個Java IDE進行定制,對于給定的用例,其最終的結(jié)果是很容易通過生成工具生成一個Gradle或Maven項目。
使用REST和WebSockets應用程序
REST和JSON是構(gòu)建Web應用程序,但他們將在物聯(lián)網(wǎng)應用中帶來相當大的開銷。REST消息可以添加幾百字節(jié)的頭信息,而物聯(lián)網(wǎng)應用程序通常只發(fā)送幾個相關(guān)的測量或控制消息??死胀扑]使用Web Sockets來代替。當需要時,所需的開銷更小,其通信也可以是雙向的。
用戶仍然需要創(chuàng)建一個Web Socket的類來處理數(shù)據(jù),這些數(shù)據(jù)可以通過擴展的Web Socket處理器來完成??死照f,他仍然可以通過REST訪問云系統(tǒng)的一個參數(shù),但他說,“它是如此沉重,我不使用它。”
利用Spring Boot,Cloud Foundry和構(gòu)建工具這一基本框架,可以很容易地在短期內(nèi)開發(fā)物聯(lián)網(wǎng)設(shè)備的云應用程序。克勒說,他已經(jīng)重新采用相同的框架開發(fā)各種企業(yè)相關(guān)應用。
他建議企業(yè)專注于利用現(xiàn)有的工具來制定出物聯(lián)網(wǎng)應用的基本邏輯。它可以是具有挑戰(zhàn)性的,以確定最終用途的情況下,推動物聯(lián)網(wǎng)應用。從組件開始可以更容易確定業(yè)務(wù)的情況下,然后可以在適當?shù)募軜?gòu)進行了優(yōu)化。