摘要:隨著互聯(lián)網(wǎng)的普及,REST架構(gòu)憑借其特性出現(xiàn)在人們的視野中,但許多的誤解造成REST架構(gòu)的不正確使用。本文基于REST架構(gòu)和REST形式化方法進(jìn)行研究與分析,在分析數(shù)據(jù)基礎(chǔ)上及進(jìn)行RESTful Web服務(wù)的形式化抽象建模。
關(guān)鍵詞:REST架構(gòu);形式化方法;RESRful Web服務(wù)建模
中圖分類(lèi)號(hào):N945?? 文獻(xiàn)標(biāo)識(shí)碼:A?? 文章編號(hào):1672-9129(2020)11-0064-01
1 引言
隨著互聯(lián)網(wǎng)的不斷發(fā)展,分布式計(jì)算也開(kāi)始更多地被運(yùn)用,雖然將一個(gè)相對(duì)復(fù)雜的任務(wù)分散到不同的計(jì)算機(jī)上進(jìn)行計(jì)算協(xié)作大大提高了計(jì)算效率,但同時(shí)必須解決不同平臺(tái)的相互關(guān)聯(lián)與融合,使得Web應(yīng)用在最大化信息共享率的同時(shí)可以更有效的服務(wù)于不同的對(duì)象,而Web服務(wù)技術(shù)就可以用來(lái)解決這一問(wèn)題。
Web服務(wù)技術(shù),實(shí)現(xiàn)在不同機(jī)器上、不同應(yīng)用間在沒(méi)有附加第三方軟硬件的條件下可以實(shí)現(xiàn)數(shù)據(jù)交換與集成。Web服務(wù)的特點(diǎn)有以下幾點(diǎn):基于自包含、自描述的可用網(wǎng)絡(luò)模塊,Web服務(wù)可實(shí)現(xiàn)具體業(yè)務(wù)功能的執(zhí)行;基于API構(gòu)成特點(diǎn),Web服務(wù)容易部署。現(xiàn)階段主要Web服務(wù)實(shí)現(xiàn)方案有以下三種:表述性狀態(tài)轉(zhuǎn)移(REST)、遠(yuǎn)程過(guò)程調(diào)用(RPC)以及面向服務(wù)架構(gòu)(SOA)。相較于RPC的高耦合性、低擴(kuò)展性和SOA架構(gòu)的復(fù)雜與高建設(shè)成本,簡(jiǎn)單輕量級(jí)的REST架構(gòu)更適合當(dāng)下。隨著推廣,在REST架構(gòu)發(fā)展過(guò)程中也浮現(xiàn)出一些問(wèn)題,比如人們對(duì)REST架構(gòu)約束的理解需要更加深入,只有減少對(duì)REST概念的誤解才能更好的發(fā)揮REST的作用。
2 REST架構(gòu)
表述性狀態(tài)轉(zhuǎn)移REST是對(duì)架構(gòu)樣式網(wǎng)絡(luò)系統(tǒng)的概述,其中包括Web應(yīng)用程序。相較于簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議和XML-PRC,REST的簡(jiǎn)單通透性脫穎而出?;贖TTP直接數(shù)據(jù)傳輸和輕量級(jí)性質(zhì),用于 Web 服務(wù)的 RESTful 方法已成為最常見(jiàn)的替代方案,客戶(hù)端可以用多種語(yǔ)言實(shí)現(xiàn);通??捎勺詣?dòng)客戶(hù)端或代表用戶(hù)的應(yīng)用程序訪(fǎng)問(wèn)RESTful Web 服務(wù)。但是此服務(wù)的簡(jiǎn)單性允許用戶(hù)直接與它們交互,使用其 Web 瀏覽器生成 GET URL,并讀取返回內(nèi)容。
曾有學(xué)者在其著作中引入REST-RPC混合架構(gòu)。該架構(gòu)直接借助HTTP進(jìn)行數(shù)據(jù)傳輸,不再使用封裝方法參數(shù)與數(shù)據(jù)。這體現(xiàn)了與Web服務(wù)的相似性,但由于操作資源時(shí)不使用標(biāo)準(zhǔn)HTTP方法,將方法與信息儲(chǔ)存在HTTP請(qǐng)求的URI中。
3 RESTful Web服務(wù)建模
RESTful Web服務(wù)模型關(guān)注組件之間的通信交互過(guò)程,主要刻畫(huà)REST架構(gòu)風(fēng)格中的統(tǒng)一接口、無(wú)狀態(tài)性約束。由于RESTful Web服務(wù)使用HTTP的四個(gè)方法作為對(duì)資源操作的統(tǒng)一方法,在模型中應(yīng)突出這幾種方法,從而使得模型更接近REST架構(gòu)在工業(yè)界中的使用。同時(shí),由于REST架構(gòu)強(qiáng)調(diào)以資源為中心,為了更方便觀察資源的變化,在這個(gè)部分的模型中,將資源獨(dú)立成一個(gè)進(jìn)程。為了關(guān)注組件之間的交互,改變了系統(tǒng)抽象的邏輯減弱信息的轉(zhuǎn)換過(guò)程,強(qiáng)調(diào)信息的傳遞過(guò)程。代理一般為用戶(hù)代理做一些請(qǐng)求信息的轉(zhuǎn)換或者只做請(qǐng)求信息的傳遞,在新的模型中,網(wǎng)關(guān)與來(lái)源服務(wù)器合并為服務(wù)器組件,所有的資源抽象成資源組件。
4 結(jié)論和展望
隨著互聯(lián)網(wǎng)不斷發(fā)展,分布式計(jì)算應(yīng)用也愈加廣泛。雖然將一個(gè)相對(duì)復(fù)雜的任務(wù)分散到不同計(jì)算機(jī)上進(jìn)行協(xié)作大大提高了計(jì)算效率,但同時(shí)必須解決不同平臺(tái)的相互關(guān)聯(lián)與融合,使得Web應(yīng)用在最大化信息共享率的同時(shí)可以更有效的服務(wù)于不同的對(duì)象。而Web服務(wù)技術(shù)就可以用來(lái)解決這一問(wèn)題。REST架構(gòu)由于其簡(jiǎn)單性、高可擴(kuò)展性、高可伸縮性、高性能、低合性、高可重用性等特性,被越來(lái)越多的關(guān)注。RESTful Web服務(wù)特指將REST架構(gòu)應(yīng)用在Web中,以資源為中心,使用URI作為統(tǒng)一資源標(biāo)識(shí)符,使用HP協(xié)議學(xué)的方法作為操作資源的統(tǒng)一方法的Web服務(wù)。但同時(shí)由于對(duì)RRST架構(gòu)的理解不透徹,誤用現(xiàn)象一直存在,形式化領(lǐng)域中對(duì)REST架構(gòu)的研究又寥寥無(wú)幾。這也是本文應(yīng)用進(jìn)程代數(shù)實(shí)現(xiàn)描述RESTful Web服務(wù)的原因。首先基于數(shù)據(jù)與現(xiàn)有資料對(duì)REST架構(gòu)進(jìn)行初步模型建立同時(shí)注重分析各組成部分的關(guān)系與內(nèi)容,之后基于RESTful Web服務(wù)實(shí)現(xiàn)模型建立,在此基礎(chǔ)上,將該服務(wù)抽象成客戶(hù)端、服務(wù)端與資源三模塊,作為CSP語(yǔ)言中的進(jìn)程。
對(duì)未來(lái)的工作展望有:
本文關(guān)注的是REST架構(gòu)在Web上應(yīng)用的建模與分析,即RESTFUL Web服務(wù)的建模與分析,隨著REST架構(gòu)應(yīng)用范的不斷擴(kuò)大,可以研究是否能將模型應(yīng)用在其他方面。
參考文獻(xiàn):
[1] Andrew D Birrell and Bruce Jay Nelson.Implementing remote procedure calls.ACM Transactions on Computer Systems(TOCS),2(1):39-59,1984
[2]聶鵬.基于產(chǎn)出導(dǎo)向法的軟件工程專(zhuān)業(yè)教學(xué)探索研究——以Web服務(wù)與RESTful技術(shù)課程為例[J].電腦與電信,2020(06):22-29.
[3]劉相,王文斌,王蔥權(quán). 基于微服務(wù)架構(gòu)實(shí)現(xiàn)Restful服務(wù)圖形化服務(wù)編排的系統(tǒng)及其方法[P]. 上海市:CN110764752A,2020-02-07.
作者簡(jiǎn)介:邢程程(199909),女,漢,山東濟(jì)南,本科,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)。制。