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