石磊
摘要:隨著信息技術(shù)的不斷發(fā)展,城市信息化應(yīng)用水平不斷提升,智慧城市建設(shè)應(yīng)運(yùn)而生。建設(shè)智慧城市在實(shí)現(xiàn)城市可持續(xù)發(fā)展、引領(lǐng)信息技術(shù)應(yīng)用、提升城市綜合競(jìng)爭(zhēng)力等方面具有重要意義。在建設(shè)智慧城市中所需要一系列軟硬件支持,其中技術(shù)層面需要物聯(lián)網(wǎng)、云計(jì)算等新一代信息技術(shù)的支撐。其中智慧城市系統(tǒng)中的應(yīng)用之間的數(shù)據(jù)傳遞、轉(zhuǎn)換、過(guò)濾等一系統(tǒng)服務(wù)都需要軟件技術(shù)支撐。Spark是一個(gè)輕量級(jí)Java Web框架,可用來(lái)快速開(kāi)發(fā)Web應(yīng)用,并作為RESTful服務(wù)為智慧城市各應(yīng)用提供高效快速訪問(wèn)接口。
【關(guān)鍵詞】Spark技術(shù) RESTful 服務(wù) 智慧城市
智慧城市是運(yùn)用信息和通信技術(shù)手段感測(cè)、分析、整合城市運(yùn)行核心系統(tǒng)的各項(xiàng)關(guān)鍵信息,從而對(duì)包括民生、環(huán)保、公共安全、城市服務(wù)、工商業(yè)活動(dòng)在內(nèi)的各種需求做出智能響應(yīng)。其實(shí)質(zhì)是利用先進(jìn)的信息技術(shù),實(shí)現(xiàn)城市智慧式管理和運(yùn)行,進(jìn)而為城市中的人創(chuàng)造更美好的生活,促進(jìn)城市的和諧、可持續(xù)成長(zhǎng)。從技術(shù)發(fā)展的視角,智慧城市建設(shè)要求通過(guò)以移動(dòng)技術(shù)為代表的物聯(lián)網(wǎng)、云計(jì)算等新一代信息技術(shù)應(yīng)用實(shí)現(xiàn)全面感知、泛在互聯(lián)、普適計(jì)算與融合應(yīng)用。其中很重要部分就是各應(yīng)用系統(tǒng)數(shù)據(jù)互通互聯(lián)。同時(shí)為各個(gè)應(yīng)用提供RESTful服務(wù)接口,這樣就依賴Spark技術(shù)搭建輕量級(jí)的Java Web應(yīng)用作為服務(wù)平臺(tái)。
1 概念描述
1.1 智慧城市
智慧城市作為信息技術(shù)的深度拓展和集成應(yīng)用,是新一代信息技術(shù)孕育突破的重要方向之一,是全球戰(zhàn)略新興產(chǎn)業(yè)發(fā)展的重要組成部分。開(kāi)展“智慧城市”技術(shù)和標(biāo)準(zhǔn)試點(diǎn),是科技部和國(guó)家標(biāo)準(zhǔn)委為促進(jìn)我國(guó)智慧城市建設(shè)健康有序發(fā)展,推動(dòng)我國(guó)自主創(chuàng)新成果在智慧城市中推廣應(yīng)用共同開(kāi)展的一項(xiàng)示范性工作,旨在形成我國(guó)具有自主知識(shí)產(chǎn)權(quán)的智慧城市技術(shù)與標(biāo)準(zhǔn)體系和解決方案,為我國(guó)智慧城市建設(shè)提供科技支撐。
1.2 RESTful
RESTful是一種軟件架構(gòu)風(fēng)格、設(shè)計(jì)風(fēng)格,而不是標(biāo)準(zhǔn),只是提供了一組設(shè)計(jì)原則和約束條件。它主要用于客戶端和服務(wù)器交互類的軟件?;谶@個(gè)風(fēng)格設(shè)計(jì)的軟件可以更簡(jiǎn)潔,更有層次,更易于實(shí)現(xiàn)緩存等機(jī)制。
Web應(yīng)用程序最重要的REST原則是,客戶端和服務(wù)器之間的交互在請(qǐng)求之間是無(wú)狀態(tài)的。從客戶端到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。如果服務(wù)器在請(qǐng)求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知。此外,無(wú)狀態(tài)請(qǐng)求可以由任何可用服務(wù)器回答,這十分適合云計(jì)算之類的環(huán)境。客戶端可以緩存數(shù)據(jù)以改進(jìn)性能。
1.3 Spark
Spark是一個(gè)輕量級(jí)Java Web框架,可用來(lái)快速開(kāi)發(fā)Web應(yīng)用。Spark的設(shè)計(jì)初衷不是與其他框架競(jìng)爭(zhēng),而是為Java Web應(yīng)用開(kāi)發(fā)者提供一種純Java實(shí)現(xiàn)。Spark基于Java 8lambda表達(dá)式構(gòu)建,因此看起來(lái)更加簡(jiǎn)潔,總共大小不到1M。
2 Spark技術(shù)實(shí)現(xiàn)
2.1 技術(shù)參數(shù)
開(kāi)發(fā)語(yǔ)言:Java
JDK版本:jdkl.8及以上
管理工具:引入Maven項(xiàng)目對(duì)象模型(POM)
開(kāi)發(fā)工具:MyEclipse或Eclipse
2.2 搭建應(yīng)用基礎(chǔ)框架
(1)創(chuàng)建一個(gè)Maven項(xiàng)目,將下面依賴添加到pom.xml中:
(2)創(chuàng)建應(yīng)用Main方法入口:
import static spark.Spark.*;
public class HelloWorld{
public static void main(String[] args){
get(”/hello”, (req, res)->”HelloWorld”):
)
)
(3)啟動(dòng)運(yùn)行應(yīng)用:
右鍵mam方法類文件,點(diǎn)擊Run As選擇Java Application,直接啟動(dòng)應(yīng)用程序。
直接訪問(wèn):http://localhost:4567/hello(框架應(yīng)該默認(rèn)端口4567)
(4)導(dǎo)出應(yīng)用:
右鍵項(xiàng)目名稱,選擇Export Runable JARfile,要求包含項(xiàng)目框架所使用的全部包文件。直接導(dǎo)出jar可執(zhí)行應(yīng)用文件。
(5)添加應(yīng)用服務(wù):
創(chuàng)建一個(gè)start.bat批命令文件,內(nèi)容如下:java-jar文件名jar
啟動(dòng)應(yīng)用:直接雙擊start.bat,打開(kāi)服務(wù),同時(shí)cmd窗口保留。
關(guān)閉應(yīng)用:直接關(guān)閉cmd窗口,應(yīng)用關(guān)閉。
2.3 應(yīng)用升級(jí)完善
(1)自定義web端口:通過(guò)配置文件靈活配置應(yīng)用端口。默認(rèn)端口:4567。
(2)數(shù)據(jù)源連接問(wèn)題:通過(guò)配置文件選擇應(yīng)用接口與哪種數(shù)據(jù)庫(kù)連接。
(3)業(yè)務(wù)數(shù)據(jù)訂制:通過(guò)配置業(yè)務(wù)數(shù)據(jù)標(biāo)準(zhǔn)的SQL語(yǔ)句,靈活獲取業(yè)務(wù)數(shù)據(jù)。
3 應(yīng)用實(shí)例
通過(guò)Spark技術(shù)搭建java web平臺(tái)為智慧城市綜合管理平臺(tái)(圖1)、智慧交通大數(shù)據(jù)平臺(tái)(圖2)、終端App應(yīng)用(圖3)等提供業(yè)務(wù)數(shù)據(jù)RESTful服務(wù)接口,方便各應(yīng)用在不同的平臺(tái)中直觀展示。
4 分析與總結(jié)
基于Spark搭建Java Web應(yīng)用平臺(tái),應(yīng)用于各個(gè)智慧城市項(xiàng)目中,為各種應(yīng)用平臺(tái)提供快速高效訪問(wèn)接口。具體體現(xiàn)在智慧城市項(xiàng)目中能輕松找到最快捷的上下班路線、供水供電有保障,且街道更加安全。如今的消費(fèi)者正日益占據(jù)主導(dǎo)地位,他們希望在城市負(fù)擔(dān)人口流入、實(shí)現(xiàn)經(jīng)濟(jì)增長(zhǎng)的同時(shí),自己對(duì)生活質(zhì)量的要求能夠得到滿足。
建成一批特色鮮明的智慧城市,聚集和輻射帶動(dòng)作用大幅增強(qiáng),綜合競(jìng)爭(zhēng)優(yōu)勢(shì)明顯提高,在保障和改善民生服務(wù)、創(chuàng)新社會(huì)管理、維護(hù)網(wǎng)絡(luò)安全等方面取得顯著成效。
Spark技術(shù)在智慧應(yīng)用軟件中特點(diǎn):安全、穩(wěn)定、輕量級(jí)、創(chuàng)建方便快捷、快速高效和跨平臺(tái)性等,保證了各個(gè)應(yīng)用的數(shù)據(jù)請(qǐng)求響應(yīng)速度及數(shù)據(jù)的穩(wěn)定性。
參考文獻(xiàn)
[1]《智慧城市總體框架和技術(shù)要求》( YDB134-2013).
[2]《智慧城市信息交互技術(shù)要求》( YDB145-2014).
[3]《智慧城市技術(shù)參考模型>(GB/T34678-2017).
[4]《國(guó)家新型城鎮(zhèn)化規(guī)劃( 2014-2020年)》-2014.
[5]楊兆升,新一代智能化交通控制系統(tǒng)關(guān)鍵技術(shù)及其應(yīng)用[M].中國(guó)鐵道出版社出版.2008.
[6]《關(guān)于促進(jìn)智慧城市健康發(fā)展的指導(dǎo)意見(jiàn)》國(guó)家發(fā)改委、工信部等八部委聯(lián)系印發(fā).
[7]鄭國(guó).數(shù)字化城市管理理論與實(shí)務(wù)叢書[M].中國(guó)人民大學(xué)出版社,2 009.
[8]吳義杰,基于復(fù)雜系統(tǒng)理論與方法的數(shù)字城市建設(shè)[M].中國(guó)電力出版社,2006.
[9]阮一峰《RESTful API設(shè)計(jì)指南》,
[10]阮一峰《理解RESTful架構(gòu)》.
[11] Principles of good RESTful APIDesign(譯好RESTful API的設(shè)計(jì)原則)
[12]許令波,深入分析Java Web技術(shù)內(nèi)幕(修訂版)[M].電子工業(yè)出版社,2014.
[13]《計(jì)算機(jī)信息系統(tǒng)安全保護(hù)等級(jí)劃分準(zhǔn)則》( GB17859-1999).
[14]《應(yīng)用軟件接口標(biāo)準(zhǔn)編寫技術(shù)要素》(GA/T 1293-2016).
[15]《基于超文本標(biāo)記語(yǔ)言第5版(HTML5)的Web應(yīng)用軟件技術(shù)要求》(YDB 180—2017).