張前進(jìn)
(安徽國(guó)防科技職業(yè)學(xué)院 信息工程系, 安徽 六安 237011)
基于REST的泛在網(wǎng)絡(luò)資源服務(wù)架構(gòu)設(shè)計(jì)
張前進(jìn)
(安徽國(guó)防科技職業(yè)學(xué)院 信息工程系, 安徽 六安 237011)
針對(duì)泛在網(wǎng)中泛在資源的異構(gòu)性、海量性和動(dòng)態(tài)性等問(wèn)題,分析了REST架構(gòu)的關(guān)鍵原則,并基于REST架構(gòu)原則構(gòu)建了泛在網(wǎng)資源服務(wù)架構(gòu)與資源服務(wù)管理平臺(tái);分析了泛在網(wǎng)資源服務(wù)管理平臺(tái)資源服務(wù)的流程,給出了泛在網(wǎng)中泛在資源的描述方法和基于REST的接口定義。
泛在網(wǎng); REST架構(gòu); 資源管理; 資源描述
泛在網(wǎng)是以無(wú)所不包、無(wú)所不能、無(wú)所不在為基本特征的網(wǎng)絡(luò),以實(shí)現(xiàn)在任何時(shí)間、任何點(diǎn)、任何人、任何物都能順暢地通信為目標(biāo)[1],即廣泛存在的網(wǎng)絡(luò)。泛在網(wǎng)以傳感網(wǎng)技術(shù)為基礎(chǔ),融合互聯(lián)網(wǎng)和通信網(wǎng)實(shí)現(xiàn)物與物、物與人、人與人之間的互聯(lián)互通。泛在網(wǎng)中包含各種M2M(Machine to Machine)終端、傳感器、RFID等異構(gòu)的感知設(shè)備。一方面這些異構(gòu)資源本身不具有計(jì)算和相互間的通信能力,無(wú)法接入到現(xiàn)有的基礎(chǔ)網(wǎng)絡(luò)以及進(jìn)行復(fù)雜的計(jì)算;另一方面,泛在網(wǎng)資源具有海量和動(dòng)態(tài)性。本文從泛在網(wǎng)資源訪問(wèn)的Web服務(wù)出發(fā),基于REST(Representational State Transfer)架構(gòu),針對(duì)上述泛在網(wǎng)資源存在的問(wèn)題,對(duì)泛在網(wǎng)的資源服務(wù)框架進(jìn)行了研究與設(shè)計(jì)。
REST概念最早由Roy Fielding在其博士論文中提出,它是一個(gè)以網(wǎng)絡(luò)為基礎(chǔ),具有功能強(qiáng)、性能好、適宜通信的應(yīng)用軟件架構(gòu)。REST強(qiáng)調(diào)組件交互的可伸縮性、接口的通用性、組件的獨(dú)立部署性,以及用來(lái)減少交互延遲、增強(qiáng)安全性、封裝遺留系統(tǒng)的中間組件[2]。REST定義了一組約束和規(guī)則,用來(lái)指導(dǎo)正確使用Web標(biāo)準(zhǔn)?;赗EST架構(gòu)設(shè)計(jì)的Web應(yīng)用,主要包含以下原則:
(1)資源唯一性
在Web中,資源包含的范圍很廣,既可以包含文本、圖像、視頻等數(shù)字化的文檔,也可以是接入互聯(lián)網(wǎng)的冰箱、電視等實(shí)體資源。如何保證網(wǎng)絡(luò)中資源能夠被正確訪問(wèn),就需要有一個(gè)能夠被唯一識(shí)別的標(biāo)識(shí)。統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier,或URI)是一個(gè)用于標(biāo)識(shí)某一互聯(lián)網(wǎng)資源名稱的字符串[3]?;赨RI標(biāo)識(shí)的資源允許用戶通過(guò)特定的協(xié)議進(jìn)行信息交互,同時(shí)資源訪問(wèn)的場(chǎng)景也更加廣泛,既適用于基于瀏覽器的Web應(yīng)用,也適用于M2M通信。
(2)超媒體作為應(yīng)用狀態(tài)的引擎
超媒體不再是傳統(tǒng)意義上講的媒體資源,而是基于第一個(gè)原則構(gòu)建的具有統(tǒng)一標(biāo)識(shí)的“鏈接”資源。超媒體被當(dāng)作應(yīng)用狀態(tài)引擎主要有兩方面的優(yōu)勢(shì):一方面,基于URI標(biāo)準(zhǔn)的資源描述規(guī)范可以使Web上的所有資源互聯(lián)互通;另一方面,用戶可以通過(guò)URI鏈接將應(yīng)用從一個(gè)狀態(tài)向另一個(gè)狀態(tài)轉(zhuǎn)變。
(3)資源訪問(wèn)接口統(tǒng)一性
前兩個(gè)原則從資源的角度對(duì)資源描述的唯一性、可訪問(wèn)性以及狀態(tài)可改變性進(jìn)行了定義與約束?!皹?biāo)準(zhǔn)接口”從應(yīng)用的角度對(duì)接收到的資源信息如何處理了統(tǒng)一定義,即定義一套標(biāo)準(zhǔn)的處理方法。在HTTP中應(yīng)用處理的標(biāo)準(zhǔn)方法包含:PUT、DELETE、GET、POST等。標(biāo)準(zhǔn)接口的定義實(shí)現(xiàn)了客戶端應(yīng)用程序與資源的相互協(xié)作。
(4)無(wú)狀態(tài)通信
REST本身包含無(wú)狀態(tài)特性(statelessness),但并不是開(kāi)放的功能應(yīng)用不能有狀態(tài)。由于大量的客戶端交互會(huì)影響服務(wù)器的內(nèi)存可用空間,為了保證應(yīng)用的可伸縮性,服務(wù)器端不能保存客戶端除了單次請(qǐng)求之外的,任何與之通信的通信狀態(tài)。因此,REST要求狀態(tài)要么放在資源狀態(tài)中,要么保存在客戶端上。無(wú)狀態(tài)通信的另一個(gè)優(yōu)勢(shì)就是服務(wù)器的變化對(duì)客戶端是不可見(jiàn)的。對(duì)于同一臺(tái)客戶端的兩次連續(xù)的請(qǐng)求,并不依賴于同一臺(tái)服務(wù)器。
2.1 基于REST的泛在網(wǎng)資源服務(wù)架構(gòu)設(shè)計(jì)
2.1.1 泛在網(wǎng)
泛在網(wǎng)由感知層、接入層、泛在網(wǎng)關(guān)、NGN(Next Generation Network)層、應(yīng)用層組成。與傳統(tǒng)的基礎(chǔ)網(wǎng)絡(luò)架構(gòu)相比,泛在網(wǎng)增加了感知層。
(1)感知層:感知層由傳感器、M2M終端、攝像頭、RFID等感知設(shè)備組成,負(fù)責(zé)環(huán)境數(shù)據(jù)的采集與識(shí)別。感知層數(shù)據(jù)具有異構(gòu)性、多源性、海量性的特點(diǎn)。
(2)接入層:接入網(wǎng)包括各種無(wú)線接入、有線接入、衛(wèi)星等技術(shù)。實(shí)現(xiàn)感知層數(shù)據(jù)的傳輸接入。
(3)泛在網(wǎng)關(guān):泛在網(wǎng)關(guān)負(fù)責(zé)將多種接入手段整合起來(lái),統(tǒng)一將感知層接入到網(wǎng)絡(luò)層。它既可以滿足局部區(qū)域內(nèi)短距離通信的接入需求,完成與核心網(wǎng)絡(luò)的接入,同時(shí)還可以實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)、信令的交換以及編解碼等功能[4]。
(4)NGN層:NGN層是泛在網(wǎng)絡(luò)的核心網(wǎng)絡(luò)層。NGN是一個(gè)分組網(wǎng)絡(luò),以軟交換為中心,利用多種帶寬和具有QoS能力的傳送技術(shù),實(shí)現(xiàn)業(yè)務(wù)功能與底層傳送技術(shù)的分離,形成統(tǒng)一的網(wǎng)絡(luò)業(yè)務(wù)與運(yùn)營(yíng)管理平臺(tái)。實(shí)現(xiàn)物與物、人與物、人與人的無(wú)障礙通信。
(5)應(yīng)用層:應(yīng)用層直接面對(duì)用戶,為用戶提供不受時(shí)間、地點(diǎn)限制,以情景智能為驅(qū)動(dòng)的智能應(yīng)用與服務(wù)。
2.1.2 基于REST的泛在網(wǎng)服務(wù)架構(gòu)
圖1 基于REST的泛 在網(wǎng)服務(wù)架構(gòu)
由上述可知,基于REST架構(gòu)的應(yīng)用與服務(wù)強(qiáng)調(diào)組件交互的可伸縮性、接口的通用性?;赗EST架構(gòu)原則設(shè)計(jì)的泛在網(wǎng)絡(luò)服務(wù)架構(gòu)可以很好的解決感知層設(shè)備的異構(gòu)性,為用戶提供具有設(shè)備無(wú)關(guān)性、開(kāi)放性的統(tǒng)一數(shù)據(jù)服務(wù)。其架構(gòu)的核心是在泛在網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上引入資源服務(wù)管理平臺(tái),如圖1所示。
2.2 基于REST的資源服務(wù)管理平臺(tái)
2.2.1 資源服務(wù)管理平臺(tái)組成
泛在物聯(lián)網(wǎng)的開(kāi)放性特點(diǎn),一方面使得傳感層的設(shè)備接入與退出具有極大的靈活性,另一方面隨著應(yīng)用、服務(wù)、中間件、傳感設(shè)備的部署,使得以傳統(tǒng)Web應(yīng)用方案構(gòu)建的Web應(yīng)用系統(tǒng)的復(fù)雜性和維護(hù)成本呈線性增加。在泛在網(wǎng)中引入基于REST架構(gòu)的資源訪問(wèn)Web服務(wù)后,通過(guò)對(duì)應(yīng)用服務(wù)、泛在設(shè)備進(jìn)行統(tǒng)一資源描述,可有效解決泛在網(wǎng)中資源異構(gòu)問(wèn)題,同時(shí)也為服務(wù)及設(shè)備的部署與退出提供技術(shù)解決方案。資源服務(wù)管理平臺(tái)由資源搜索、資源注冊(cè)引擎、資源庫(kù)、資源管理四部分組成,如圖2所示。
圖2 資源服務(wù)管理平臺(tái)
資源庫(kù)是資源管理平臺(tái)的核心,主要有實(shí)體資源庫(kù)、服務(wù)資源庫(kù)、數(shù)據(jù)資源庫(kù)組成;資源注冊(cè)引擎負(fù)責(zé)對(duì)發(fā)現(xiàn)的資源在資源庫(kù)中進(jìn)行注冊(cè);資源搜索引擎為用戶提供資源搜索與發(fā)現(xiàn)服務(wù),是資源服務(wù)管理平臺(tái)對(duì)外服務(wù)的接口;資源管理負(fù)責(zé)資源狀態(tài)管理、資源組織、資源發(fā)現(xiàn)、資源描述,即為資源提供有效管理手段。
2.2.2 泛在網(wǎng)資源服務(wù)管理平臺(tái)信息服務(wù)流程
資源服務(wù)管理平臺(tái)在基于泛在網(wǎng)的Web應(yīng)用中起著至關(guān)重要的作用,記錄著整個(gè)應(yīng)用系統(tǒng)中的資源信息,基于REST架構(gòu)的泛在網(wǎng)信息服務(wù)流程如圖3所示。
(1)首先資源訪問(wèn)者訪問(wèn)資源服務(wù)管理平臺(tái)中的資源,如果資源狀態(tài)為可以直接訪問(wèn),則由平臺(tái)直接將資源返回給資源訪問(wèn)者。
(2)如果泛在資源狀態(tài)為不能通過(guò)平臺(tái)直接訪問(wèn),但可以直接訪問(wèn)泛在資源,則按照平臺(tái)中記錄的資源信息直接訪問(wèn)資源。
圖3 資源服務(wù)流程
(3)如果泛在資源狀態(tài)為不能通過(guò)平臺(tái)直接訪問(wèn),也不可以直接訪問(wèn)泛在資源,則按照平臺(tái)中記錄的資源網(wǎng)關(guān)信息訪問(wèn)網(wǎng)關(guān),由網(wǎng)關(guān)訪問(wèn)泛在資源后,再通過(guò)網(wǎng)關(guān)將資源返回給資源訪問(wèn)者。
從基于REST的泛在網(wǎng)絡(luò)服務(wù)架構(gòu)整體來(lái)看,資源管理服務(wù)平臺(tái)是整個(gè)泛在網(wǎng)絡(luò)Web應(yīng)用系統(tǒng)的核心伺服系統(tǒng)[5],是整個(gè)系統(tǒng)正常運(yùn)行的機(jī)制保障。同時(shí),為感知層提供資源注冊(cè),為應(yīng)用層提供資源搜索與管理等服務(wù)。
2.3 泛在資源描述方法與接口定義
本文從生態(tài)節(jié)能性方面對(duì)駕駛員駕駛行為進(jìn)行評(píng)價(jià),通過(guò)對(duì)車輛能耗影響因素的分析,借鑒國(guó)內(nèi)外在生態(tài)駕駛、駕駛行為建議等方面的研究[5-7],結(jié)合對(duì)車輛從業(yè)人員和駕駛員的調(diào)研結(jié)果,從采集的基礎(chǔ)數(shù)據(jù)中,提取出4類影響車輛能源消耗的4類要素:急加速、急減速、長(zhǎng)時(shí)超速、長(zhǎng)時(shí)怠速. 本文將四類影響因素的出現(xiàn)次數(shù)作為評(píng)價(jià)輸入,歸納各要素與生態(tài)駕駛行為評(píng)價(jià)之間的關(guān)系.
2.3.1 泛在資源描述方法
在REST架構(gòu)的設(shè)計(jì)原則中,泛在網(wǎng)中任何事物均視為資源,既可以是感知設(shè)備采集的環(huán)境信息的數(shù)據(jù)值,也可以是感知設(shè)備本身在泛在網(wǎng)中的配置信息,還可以是智能開(kāi)關(guān)的開(kāi)關(guān)狀態(tài)[6]。這些泛在資源使用URI進(jìn)行資源標(biāo)識(shí)。不同于關(guān)系數(shù)據(jù),使用URI標(biāo)識(shí)的泛在資源本身不具有聯(lián)系,需要使用類似自然語(yǔ)言的陳述性語(yǔ)句來(lái)存儲(chǔ)Web數(shù)據(jù)。資源描述框架(Resource Description Framework,RDF)是一種用于描述Web資源的標(biāo)記語(yǔ)言,可以為泛在資源賦予相應(yīng)的語(yǔ)義描述,其使用XML語(yǔ)言將元數(shù)據(jù)描述成為數(shù)據(jù)模型。主(Subject)-謂(Predicate)-賓(Object)三元組是RDF數(shù)據(jù)模型的基本表示單元。例如下面的一個(gè)RDF的XML代碼:
xmlns:dc="http://test.com/dc/property/1.1/">
上述XML代碼對(duì)應(yīng)的三元組如表1所示。
表1 RDF三元組
資源訪問(wèn)者首先對(duì)HTTP URI進(jìn)行請(qǐng)求,對(duì)于語(yǔ)義瀏覽器來(lái)說(shuō),其HTTP請(qǐng)求頭信息為“application/rdf+xml”,返回值包含兩類資源:文檔和數(shù)據(jù)。因此基于RDF的泛在資源描述就構(gòu)建了兩種網(wǎng)絡(luò),一種是文檔網(wǎng),供人閱讀;一種是數(shù)據(jù)網(wǎng),供機(jī)器閱讀[7]。
2.3.2 基于REST的接口定義
在對(duì)泛在資源進(jìn)行RDF描述后,還需定義操作泛在資源的方法接口。泛在網(wǎng)中對(duì)資源的操作主要包含:查詢、注冊(cè)、更新、刪除等4種形式,分別對(duì)應(yīng)HTTP的4種操作GET、POST、PUT、DELETE。例如:獲取一個(gè)視頻設(shè)備資源的配置信息可以使用HTTP的GET方法,更新視頻資源的配置信息則可以使用HTTP的PUT方法。
按照資源的類型來(lái)分,泛在資源可以分為數(shù)據(jù)資源和設(shè)備資源兩大類。針對(duì)不同類型的資源設(shè)計(jì)REST接口如表2所示。
表2 資源操作REST接口
泛在資源的操作中,資源的“刪除”并不是真正意義上的刪除,只是資源的狀態(tài)由在線變?yōu)閯h除,因此刪除對(duì)應(yīng)的HTTP的操作方法為PUT。例如,設(shè)備配置信息中state(0表示非活躍;1表示活躍)用來(lái)表示設(shè)備的活躍狀態(tài),如果要關(guān)閉設(shè)備則可以將其狀態(tài)設(shè)置為0。實(shí)現(xiàn)如下所示:
HTTP操作方法:PUT;
URI:http://example.com/device/control/08/state;
state值為0;
通過(guò)訪問(wèn)上述URI實(shí)現(xiàn)將8號(hào)設(shè)備關(guān)閉。
泛在物聯(lián)網(wǎng)是未來(lái)物聯(lián)網(wǎng)的發(fā)展趨勢(shì)與研究熱點(diǎn)。實(shí)現(xiàn)泛在物聯(lián)網(wǎng)中物與物、人與物、人與人無(wú)障礙通信最大的困難是設(shè)備、數(shù)據(jù)、協(xié)議的異構(gòu)。REST架構(gòu)的松耦合、易交互的特性可以很好的解決物聯(lián)網(wǎng)Web應(yīng)用系統(tǒng)高復(fù)雜性與高維護(hù)成本及資源異構(gòu)的問(wèn)題。本文基于REST架構(gòu)設(shè)計(jì)的泛在物聯(lián)環(huán)境下的資源服務(wù)架構(gòu),為構(gòu)建物聯(lián)網(wǎng)服務(wù)支撐平臺(tái)提供理論與實(shí)踐參考。
[1] 張春紅,裘曉峰,夏海倫,等.物聯(lián)網(wǎng)技術(shù)與應(yīng)用[M].北京:人民郵電出版社,2011.
[2] FIELDING R T. Architectural Styles and the Design of Network-based Software Architectures[D]. California:University of California,2000.
[3] BERNERS-LEE T,F(xiàn)IELDING R T,MASINTER L. Uniform Resource Identifier(URI):Generic Syntax[J]. Staff.kmutt.ac.th.,2005(4):84-87.
[4] 陸曉鈞.泛在網(wǎng)網(wǎng)關(guān)中間件架構(gòu)設(shè)計(jì)[J].電信網(wǎng)技術(shù),2016(7):87-94.
[5] 朱紅.基于REST架構(gòu)的泛在物聯(lián)通信技術(shù)研究[J].數(shù)字通信技術(shù),2015(3):38-41.
[6] 程冬梅,王瑞聰,劉燕,等.基于REST架構(gòu)風(fēng)格的物聯(lián)網(wǎng)服務(wù)平臺(tái)研發(fā)[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(14):74-78.
[7] 程相,孫繼銀,李琳琳,等.基于RDF的軍事網(wǎng)格資源描述方法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(10):129-132.
[責(zé)任編輯:謝 平]
Ubiquitous network resource service architecture design based on REST
ZHANG Qian-jin
(Department of Information Engineering, Anhui Vocational College of Defense Technology,Lu’an 237011, China)
Aiming at the problem of the heterogeneous, massive and dynamic resources in ubiquitous network, we have analyzed the key principles of REST architecture, and built an ubiquitous network resource service architecture and resource service management platform; The specific process is also analyzed, the description method is derived and the interface based on REST is also defined.
ubiquitous network; REST architecture; resource management; resource description
2016-12-07
2017-01-13
高校優(yōu)秀青年人才支持計(jì)劃重點(diǎn)項(xiàng)目(gxyqZD2017100);高校自然科學(xué)研究重點(diǎn)項(xiàng)目(KJ2017A782);安徽省質(zhì)量工程項(xiàng)目——卓越互聯(lián)網(wǎng)軟件開(kāi)發(fā)技能型人才培養(yǎng)計(jì)劃(2016zjjh012)
張前進(jìn)(1982—),男,河南省商丘市人,安徽國(guó)防科技職業(yè)學(xué)院講師,碩士,主要研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù)。
1673-2944(2017)02-0060-04
TP393.02
A