戴 宇
(無錫南洋職業技術學院,江蘇 無錫 214081)
針對REST架構的Web Service研究
戴宇
(無錫南洋職業技術學院,江蘇無錫214081)
文章主要針對表述性狀態傳遞(Representational State Transfer,REST)架構的Web Service進行研究,首先介紹了Web Service的可擴展標記語言(Extensible Markup Language,XML),網絡服務描述語言(Web Services Description Language,WSDL),簡單對象訪問協議(Simple Object Access Protocol,SOAP),通用描述、發現與集成服務(Universal Description Discovery and Integration,UDDI)等關鍵技術,而后對REST的Web Service的基本構成、統一資源標識符(Uniform Resource Identifier,URI)資源標識和HTTP操作方法進行研究,并以Restlet開源框架為例介紹了REST的Web Service接口服務,從而為Web信息系統提供接口服務。
REST;Web Service;資源標識;HTTP
互聯網作為一個完整的整體,實現了不同領域不同行業不同Web信息系統之間的信息傳輸,然而不同的分布式信息系統之間如何協同完成一個完整的業務,是Web信息系統急需解決的問題。Web Service的出現,極大地解決了異構分布式系統相互協作與通信的難題,通過一套完整的系統框架與統一的功能服務與接口,能夠為各個Web信息系統提供最基礎的功能服務,從而突破了地理區域、系統功能等多方面的限制,使得不同的計算機信息管理系統之間無阻礙的無縫通信。隨著時間的推移,傳統的Web Service構架已經很難適應新的需求,以REST結構為基礎的Web Service應運而生,它通過設計統一的接口,并將計算機的各種信息看作為資源,通過全局的資源標識,配備層次化的系統組件,從而為Web信息系統的開發、部署、運維提供了便利,極大地提升了系統開發的效率與質量,降低了開發成本與維護成本。此外,基于REST架構的Web Service開發的信息管理系統,提升了HTTP與URI的利用效率,與當前主流的EJB,CORBA 或DCOM結構的分布式系統具有很強的兼容性,很容易實現系統之間的通信,加上接口設計簡單、調用方便,REST已經逐漸成了當前主流的Web信息系統的Web Service框架設計的重要參考依據。
Web Service基于一系列專門的、開放的通信協議,能夠很好地實現遵循相同Web Service系統之間的相互調用,從而實現了互聯網的不同Web系統之間數據集成和分布式處理的基礎,極大地促進了互聯網的發展以及應用軟件系統的應用。
Web Service實現的關鍵技術主要包括以下幾個方面。第一種關鍵技術是XML技術,該技術為基于Web Service的信息管理系統設定了專門的結構化的語義定義與標記規范和語法,通過簡單的、開放的描述式定義,為Web Service結構定義與Web信息系統的開發提供了統一的、易操作的數據表現形式,極大地推動了Web信息系統的發展。第二種關鍵技術是WSDL,該技術為Web Service提供了標準的描述語言,WSDL在描述Web Service服務接口時,主要采用消息、類型、端口等基本部分,而調用Web Service接口時,只需要對該接口的基本定義、依賴的協議以及相應的消息結構進行了解,即可實現對WSDL描述的Web Service接口的調用,實現其基本功能。第三種關鍵技術為SOAP技術,是簡單對象訪問協議,利用SOAP這一輕量級的簡單訪問協議,可以完成互聯網的不同計算機之間使用XML語言描述的標準化、結構化數據信息的傳輸通信,從而實現兩個異構平臺的相互操作。SOAP技術的使用,能夠迅速提高Web Service接口服務的速度,而且其在定義接口框架時,模塊化程度非常高,沒有包含傳輸語義,所以其與應用程序或其他服務接口之間的擴展方面也非常好,極大地促進了Web Service在Web系統中的應用。第四種關鍵技術為UDDI,該技術主要為Web Service提供宿主,通過專門的、統一的集成協議,實現Web Service接口的發布與查詢的操作。
3.1REST介紹
REST是在Browser/Server的基礎上添加了另外3個規范性的組成,第一個為統一接口,第二個為分層系統,第三個為按需代碼。
統一接口為REST定義了對系統資源進行操作統一的方法和鏈接入口,REST架構的核心就是資源,它將互聯網中所有的可訪問、操作的數據信息都看作資源進行處理,從而簡化了REST對不同數據信息的處理方式和過程,也為REST的高度重用性以及不同分布式異構系統的高交互性奠定了基礎。
分層系統的定義使得Web Service的定義和實現Web系統不同的層次之間具有良好的獨立性,從而降低了系統層次依賴耦合性和復雜性,而良好的接口封裝、應用功能實現等干擾性大大降低,從而為Web系統的可維護性、擴展性等奠定了良好的基礎。
按需代碼則是Web Service可選的要求,通過按需代碼開發者可以在客戶端的應用程序進行功能擴展,從而實現對客戶需求的滿足,從而使得系統更加人性化,提升其友好性。
3.2REST的資源及其標識
REST架構的核心理念就是對互聯網中的數據進行統一的資源式處理,即將各種互聯網信息抽取成資源?;ヂ摼W中,信息種類繁多,例如文本、數據、文檔等文本信息,音頻、視頻等多媒體信息,天氣服務、資源集合等其他信息,這些對于REST來說,都是資源。通過對具體的資源實體的抽取與映射,REST可以獲取到互聯網中的各種各樣的信息。
REST對特定資源的映射是通過資源標識來定義和標識,而這個資源標識的命名必須具有唯一性和持續性。在Web Service中,對于資源進行標識的是URI,它是Web Service最基本的組成部分。因為REST對互聯網的各個數據資源的標識具有唯一性,所以Web Service中對于不同的資源,其URI是唯一的。值得說明的是,URI的關聯是將URI與資源之間的映射與對應,URI本身不會對資源進行操作,如果Web Service的接口服務想去訪問互聯網的資源,必須通過解析URI,而后去訪問、操作相應資源,通過HTTP協議的POST,GET,DELETE,PUT等基本方法,將URI放置到HTTP請求報文中,便可實現對網絡資源的查詢、修改、添加、刪除等基本操作,從而實現互聯網中不同計算機之間的Web信息系統的數據操作。
在REST里面,HTTP的相應的操作被稱之為方法信息,Web信息系統的終端用戶通過GUI操作向服務器發送相應請求,此時的HTTP請求包含了網絡資源的URI以及客戶的增刪改查的操作請求,這些操作就是方法信息,是REST結構下的Web服務操作方法。通過這些方法信息的識別,服務器能夠很清楚地了解客戶端的操作請求,從而對相應的資源進行標準化的操作。
3.3Restlet的開發框架
為了能夠較好地實現REST下的Web Service各個組成與操作,Restlet將REST,URI以及HTTP請求操作等分裝成各種類,為使用者提供了良好的封裝性、集成性和可擴展性,從而為使用Restlet框架的應用系統實現了Restful Web Service支持。Restlet框架的類層結構如圖1所示。

圖1 Restlet框架類層繼承
圖1中APPlication類是對REST各個資源進行管理的類定義和封裝;Fliters類是實現過濾功能的類,其主要是在程序調用執行之前或之后來啟動handle方法進行專門的處理;Router類是實現路由功能類的定義,是同時對多個Restlet對象進行處理的功能實現,其通過將各個Restlet對象的URI放置到對應的請求中來實現相應的處理。
Web Service是為分布式計算機系統提供專門軟件服務的一種技術,通過XML,WSDL,SOAP,UDDI等關鍵技術以及一系列的通信協議,能夠很好地實現遵循相同Web Service系統之間的相互調用。REST架構的Web Service對互聯網中的數據進行統一的資源式處理,將其通過資源提取,并以URI匹配的資源標識和HTTP操作請求為基礎,來實現對互聯網資源的操作,從而實現Web信息管理系統的基本功能。
[1]俞黎敏. Web Services之REST風格架構設計[J]. 程序員,2010(11):26.
[2]史玉珍,劉玉坤,李哲秀.基于REST Web Services的圖書聯合目錄研究與實現[J]. 計算機與數字工程,2012(7):128-130.
[3]王義榮,鄔群勇,馬亨冰.REST風格的地理信息Web服務研究[J]. 福建電腦,2010(1):73-74.
[4]潘冰.面向資源的RESTful Web應用研究[J]. 微計算機應用,2010(7):38-43.
Research on Web Service based on REST architecture
Dai Yu
(Wuxi South Ocean College, Wuxi214081, China)
This article mainly carried out a Web Service research focused on REST architecture. Firstly, the paper introduced key technologies such as the XML Web Service, WSDL, SOAP and UDDI, then the basic structure of the rest Web Service, identifcation of URI resource and HTTP operation method were studied, and introduced the REST Web Service interface service by taking Restlet open source framework as an example, so as to provide interface service for Web information system.
REST; Web Service; resource identifcation; HTTP
戴宇(1977— ),男,江蘇無錫,講師,副主任;研究方向:計算機技術。