国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于中間件技術(shù)的云服務(wù)端實(shí)現(xiàn)

2018-02-22 12:32張騁
無線互聯(lián)科技 2018年23期

張騁

摘 要:互聯(lián)網(wǎng)技術(shù)的發(fā)展,開源技術(shù)越來越活躍,也越來越成熟,產(chǎn)生出越來越多的優(yōu)秀的中間件。文章利用開源的中間件,設(shè)計(jì)一個(gè)新能源車的動力電池管理系統(tǒng)的云服務(wù),來具體地構(gòu)架云服務(wù)的平臺。服務(wù)器以3層結(jié)構(gòu)方式搭建,由7種開源的中間件組成,Linux,RethinkD,MQTT,Node.js,GraphQL,d3.JS,Vue.js覆蓋從操作系統(tǒng)到應(yīng)用軟件的全部實(shí)現(xiàn)。具有架構(gòu)簡單、功能豐富和輕量級的特點(diǎn),具有很強(qiáng)的負(fù)荷能力,很好的可擴(kuò)展性。

關(guān)鍵詞:云服務(wù)架構(gòu);低成本高效率;中間件二次開發(fā)

互聯(lián)網(wǎng)的發(fā)展,使得很多企業(yè)都把服務(wù)業(yè)務(wù)通過云端,延伸到遠(yuǎn)程的云服務(wù)中心。于是,只需要一個(gè)終端、一臺筆記本甚至一個(gè)手機(jī),就可以通過云服務(wù)來完成服務(wù)業(yè)務(wù)。現(xiàn)代化辦公環(huán)境將由簡單的終端組成,價(jià)格便宜且維護(hù)容易。企業(yè)數(shù)據(jù)中心的運(yùn)行將與互聯(lián)網(wǎng)更相似,將資源切換到需要的應(yīng)用上,根據(jù)需求訪問計(jì)算機(jī)和存儲系統(tǒng)。

同時(shí)計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,開源技術(shù)越來越活躍,也越來越成熟。產(chǎn)生出越來越多的優(yōu)秀的中間件。很多大廠商也跟隨潮流開放了自己的源代碼。利用開源的中間件技術(shù)進(jìn)行二次開發(fā),大大降低了開發(fā)成本,增強(qiáng)了穩(wěn)定性,提高了軟件運(yùn)行效率。

本文對中間件的功能描述均來自開源中國社區(qū)[1]。

1 云服務(wù)的架構(gòu)

本文通過利用開源的中間件,設(shè)計(jì)一個(gè)新能源車的動力電池管理系統(tǒng)的云服務(wù),來具體構(gòu)架云服務(wù)的平臺。該平臺也可以作為類似業(yè)務(wù)的架構(gòu)參考。通常的服務(wù)器都是二層或3層結(jié)構(gòu)的配置,本服務(wù)器以3層結(jié)構(gòu)方式搭建,底層是數(shù)據(jù)源,上層是客戶端應(yīng)用支持,中間層為應(yīng)用服務(wù)層。

本系統(tǒng)邏輯3層架構(gòu)如圖1所示。

1.1 數(shù)據(jù)源層

處于最底層的數(shù)據(jù)源層,收集儲存電池動態(tài)參數(shù)的信息數(shù)據(jù),提供對數(shù)據(jù)庫的訪問,接受對數(shù)據(jù)庫的優(yōu)化。

1.2 應(yīng)用服務(wù)層

中層是應(yīng)用服務(wù)層,這也是本系統(tǒng)的核心模塊,支撐著整個(gè)系統(tǒng)的各個(gè)業(yè)務(wù)邏輯正常執(zhí)行。對所有被監(jiān)控的電池狀態(tài)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、整理和規(guī)范化,統(tǒng)計(jì)特征量;做大數(shù)據(jù)分析和數(shù)據(jù)挖掘;按照車載信息自動優(yōu)化配置電池管理系統(tǒng)(Battery Management System,BMS)。支持客戶層實(shí)現(xiàn)應(yīng)用功能,支持對數(shù)據(jù)庫的讀寫訪問和優(yōu)化。

1.3 客戶層

最上層是客戶層。移動端通過API模塊下載APP訪問云端,了解電池相關(guān)的實(shí)時(shí)狀態(tài),故障預(yù)測,周期預(yù)估,用電量計(jì)量以及授權(quán)范圍內(nèi)各種信息訪問等功能;車端到云端的上、下行通道,可利用車聯(lián)網(wǎng)或獨(dú)立建立。版本遠(yuǎn)程升級、實(shí)現(xiàn)BMS配置熱切換等功能,充電狀態(tài)、行車狀態(tài)、換電狀態(tài)等,以及BMS軟件版本升級時(shí)在權(quán)限范圍內(nèi)部署到車端。可以用空中下載技術(shù)(Over the Air Technology,OTA)功能下載和更新軟件;分析結(jié)果顯示模塊,根據(jù)統(tǒng)計(jì)數(shù)據(jù)分析形成各種統(tǒng)計(jì)曲線、表格和圖形等有效的實(shí)時(shí)電池信息及預(yù)警信息,實(shí)時(shí)地在監(jiān)控中心人機(jī)交互和顯示。所統(tǒng)計(jì)的數(shù)據(jù)覆蓋到所有被監(jiān)控范圍的BMS產(chǎn)品,同時(shí)在線臺數(shù)可達(dá)到百萬數(shù)量級以上。

2 云服務(wù)的用途

本例為BMS的云端,它的作用主要體現(xiàn)為:(1)監(jiān)控電池狀態(tài)。用戶通過移動端等方式了解電池的狀態(tài)。車企通過BMS云得以跟蹤所有動力系統(tǒng)的實(shí)際工況。(2)優(yōu)化電池使用方案。對電池的用途和容量進(jìn)行管理,給予更準(zhǔn)確的續(xù)航里程。為用戶提供應(yīng)急容量或帳篷模式等使用方式。(3)動態(tài)更新配置。車企通過BMS云得以對動力系統(tǒng)進(jìn)行實(shí)時(shí)修補(bǔ)和改良。用戶可以獲得更針對自己動力電池的BMS配置。(4)改進(jìn)技術(shù)。借助更豐富的數(shù)據(jù)來源進(jìn)行大數(shù)據(jù)分析,為今后的新能源電池及管理的開發(fā)提供參考數(shù)據(jù)。OTA方式升級系統(tǒng)。

3 云服務(wù)器的技術(shù)實(shí)現(xiàn)方案

根據(jù)系統(tǒng)的用途需求,結(jié)合客觀環(huán)境的條件,按照最適合的原則選用中間件來搭建服務(wù)器云端監(jiān)控,技術(shù)實(shí)現(xiàn)方案如圖2所示。該服務(wù)器由8種開源的中間件組成,覆蓋從操作系統(tǒng)到應(yīng)用軟件的全部實(shí)現(xiàn)。

3.1 操作系統(tǒng)Linux的Ubuntu

首先要選擇的是操作系統(tǒng),Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺、臺式計(jì)算機(jī)、大型機(jī)和超級計(jì)算機(jī)。Linux有多種版本,Ubuntu[2]是一個(gè)以桌面應(yīng)用為主的Linux操作系統(tǒng),由全球化的專業(yè)開發(fā)團(tuán)隊(duì)打造的,被稱為最適合物聯(lián)網(wǎng),最適合云服務(wù)的操作系統(tǒng)。Ubuntu除了開源、免費(fèi)之外,具有強(qiáng)大的網(wǎng)絡(luò)功能和開放的平臺性,運(yùn)行安全、對內(nèi)存和文件的管理能力、占用內(nèi)存小、命令行操作高效等優(yōu)勢。目前Linux在服務(wù)器中的裝機(jī)量還是很大的。

3.2 數(shù)據(jù)庫RethinkDB

其次要選擇的是數(shù)據(jù)庫,由于RethinkDB目前支持幾乎所有的64位Linux發(fā)行版。RethinkDB[3]支持各種底層存儲,是一個(gè)完全支持Memcached協(xié)議、數(shù)據(jù)可持久化的工業(yè)級key-value存儲系統(tǒng)。RethinkDB數(shù)據(jù)庫,支持像AWS這樣的云存儲服務(wù)。能夠處理一些要求啟動快速的服務(wù),在數(shù)據(jù)量超出內(nèi)存大小后還要有高的性能,處理各種不穩(wěn)定的讀寫壓力,處理大量數(shù)據(jù)等的服務(wù)負(fù)載。因此,數(shù)據(jù)庫選用RethinkDB,現(xiàn)有的硬件條件下,能支持更高的應(yīng)用負(fù)載。

3.3 服務(wù)器MQTT的MOSCA

服務(wù)器是云服務(wù)的核心,其性能的優(yōu)劣決定了用戶對整個(gè)系統(tǒng)運(yùn)行的使用體驗(yàn)。最重要的是必須在技術(shù)上可靠、快速和可擴(kuò)展。MQTT協(xié)議是一種機(jī)器對機(jī)器(M2M)的協(xié)議,它是一種面向消息的協(xié)議。它是非常輕量級的,被物聯(lián)網(wǎng)生態(tài)系統(tǒng)廣泛采用。幾乎所有的物聯(lián)網(wǎng)云平臺都支持通過MQTT與幾種不同的智能設(shè)備發(fā)送接收數(shù)據(jù)。MQTT是一種發(fā)布/訂閱、極其簡單和輕量級的消息傳遞協(xié)議,專為受限的設(shè)備和低帶寬、高延遲或不可靠的網(wǎng)絡(luò)而設(shè)計(jì)。這正好符合遠(yuǎn)程連接車載設(shè)備,最小化網(wǎng)絡(luò)帶寬和設(shè)備資源需求,同時(shí)試圖確??煽啃院鸵欢ǔ潭鹊慕桓侗WC[4]。由于我們選用的開發(fā)語言是JavaScrip,因此,選用MOSCA作為本系統(tǒng)的后端服務(wù)器軟件。

3.4 運(yùn)行環(huán)境Node.js

本系統(tǒng)所選用的開發(fā)語言是JS,因此選用了基于ChromeV8引擎的JavaScript運(yùn)行環(huán)境Node.js[5]。它的包管理器npm,是全球最大的開源庫生態(tài)系統(tǒng)。Node.js是一套用來編寫高性能網(wǎng)絡(luò)服務(wù)器的JavaScript工具包。Node.js使用了一個(gè)事件驅(qū)動、非阻塞式I/O的模型,使其輕量又高效。因此,很方便地使用JavaScript開發(fā)出各種對數(shù)據(jù)的統(tǒng)計(jì)應(yīng)用功能。

3.5 服務(wù)器平臺

Linux+RethinkD+MQTT組合成服務(wù)器平臺,實(shí)現(xiàn)了基礎(chǔ)數(shù)據(jù)層。而支撐數(shù)據(jù)應(yīng)用層開發(fā)平臺則是由RethinkDB+Node.js組成。

3.6 數(shù)據(jù)查詢服務(wù)GraphQL

云服務(wù)的服務(wù)器的應(yīng)用功能最主要的是實(shí)現(xiàn)監(jiān)控,支持BMS云服務(wù)的客戶端功能,基礎(chǔ)技術(shù)就是查詢。由Facebook開發(fā)的,用于API的查詢語言GraphQL[6],成為最佳選擇。GraphQL每天都為Fackbook接收、處理著上百億的請求,為Fackbook提供了強(qiáng)大的基礎(chǔ)數(shù)據(jù)平臺的支持。它使得客戶端能夠準(zhǔn)確地獲得它需要的數(shù)據(jù),而且沒有任何冗余。它既是一種用于API的查詢語言,也是一種滿足數(shù)據(jù)查詢的運(yùn)行服務(wù)。使用GraphQL,可以基于圖模式定義后端,然后客戶端就可以請求所需要的數(shù)據(jù)集。

3.7 其他應(yīng)用程序d3.JS,Vue.js

本系統(tǒng)的應(yīng)用程序界面,也可以用到開源的中間件進(jìn)行二次開發(fā),可以使得開發(fā)過程簡單、快速且可靠。這些中間件是可視化庫D3.js[7]。D3是最流行的可視化庫之一,它被很多其他的表格插件所使用。它允許綁定任意數(shù)據(jù)到DOM,然后將數(shù)據(jù)驅(qū)動轉(zhuǎn)換應(yīng)用到Document中,創(chuàng)建驚人的SVG條形圖。D3可幫助使用HTML,SVG和CSS將數(shù)據(jù)變?yōu)楝F(xiàn)實(shí)。D3是一個(gè)JavaScript的函數(shù)庫,用它來做數(shù)據(jù)可視化。另一個(gè)是漸進(jìn)式JavaScript框架Vue.js[8]。它是一套構(gòu)建用戶界面的漸進(jìn)式框架。Vue.js采用自底向上增量開發(fā)的設(shè)計(jì)。它的主要特性是:可擴(kuò)展的數(shù)據(jù)綁定;將普通的JS對象作為model;簡潔明了的API;組件化UI構(gòu)建;配合別的庫使用。它的核心庫只關(guān)注視圖層,非常容易與其他庫或已有項(xiàng)目整合。

4 結(jié)語

通過選擇最適用的中間件,進(jìn)行二次開發(fā)而架構(gòu)的云服務(wù)的系統(tǒng),達(dá)到了系統(tǒng)的設(shè)計(jì)目標(biāo):實(shí)時(shí)了解電池狀態(tài);動態(tài)配置電池;優(yōu)化電池使用方案;通過數(shù)據(jù)挖掘改進(jìn)電池及管理技術(shù)。具有架構(gòu)簡單、功能豐富和輕量級的特點(diǎn),具有很強(qiáng)的負(fù)荷能力,很好的可擴(kuò)展性??蓪?shí)時(shí)監(jiān)控萬級數(shù)量以上的BMS端??煽焖俨樵償?shù)據(jù)分析特征量并及時(shí)作出反饋。

當(dāng)用戶數(shù)量增加時(shí),可以通過增加MQTT節(jié)點(diǎn)實(shí)現(xiàn)更大的同時(shí)連接數(shù)量。未來通過在 MQTT數(shù)據(jù)管道上加入更多的模塊可實(shí)現(xiàn)更為復(fù)雜的業(yè)務(wù)需求,并保證升級的平滑性。

[參考文獻(xiàn)]

[1]開源中國.開源中國社區(qū)[EB/OL].(2018-05-16)[2018-09-25].https://www.oschina.net/.

[2]Canonical Ltd.Ubuntu(源代碼)[EB/OL].(2018-02-21)[2018-09-25].https://www.ubuntu.com/index_kylin.

[3]Linux Foundation.RethinkDB(源代碼)[EB/OL].(2018-03-06)[2018-09-25].https://rethinkdb.com/.

[4]GitHub.Andy Piper(源代碼)[EB/OL].(2013-12-16)[2018-09-25].https://github.com/mqtt/mqtt.github.io/wiki/mosca.

[5]RYAN D.Nodejs(源代碼)[EB/OL].(2018-05-03)[2018-09-25].https://nodejs.org/en/.

[6]Facebook.GraphQL(源代碼)[EB/OL].(2018-04-15)[2018-09-25].https://graphql.org/.

[7]MIKE B.D3js(源代碼)[EB/OL].(2018-07-03)[2018-09-25].https://d3js.org/.

[8]Evan You.VUEjs(源代碼)[EB/OL].(2018-05-19)[2018-09-25].https://vuejs.org/.

Abstract:With the development of Internet technology, open source technology is becoming more and more active and mature. More and more excellent middleware is produced. In this paper, the open source middleware is utilized to design the cloud service of the power battery management system of a new energy vehicle to specifically construct the cloud service platform. The server is constructed in a three-layer structure consisting of seven open source middleware, including Linux, RethinkD, MQTT, Node.js, GraphQL, d3.JS and Vue. js cover all the implementations from the operating system to the application software. With simple architecture, rich functions and lightweight features, with strong load capacity and good scalability.

Key words:cloud service architecture; low cost and high efficiency; middleware secondary development