監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

使用REST體系結(jié)構(gòu)樣式構(gòu)建可使用的Web服務(wù)

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

來源:泛普軟件

使用REST體系結(jié)構(gòu)樣式構(gòu)建可使用的Web服務(wù)

本文的重點(diǎn)是代表性狀態(tài)傳輸(Representational State Transfer,REST)體系結(jié)構(gòu)樣式。通過使用Facade組件作為REST樣式的接口,現(xiàn)有的SOAP樣式的Web服務(wù)支持可自定義的URL、多資源格式表示、瀏覽器響應(yīng)緩存、大型附件的流化以及使用HTTP方法來操作資源。

引言

代表性狀態(tài)(REST)體系結(jié)構(gòu)樣式提供了壁壘較低的使用Web服務(wù)門檻。典型REST樣式應(yīng)用程序的外部接口包括大量統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier,URI)可尋址資源和一些操作,如創(chuàng)建、讀取、更新和刪除(CRUD)等。這樣的體系結(jié)構(gòu)樣式的優(yōu)勢(shì)是其簡(jiǎn)單性。

開發(fā)人員兼作家Paul Prescod將REST Web服務(wù)定義為“使用HTTP協(xié)議的語法和語義將其功能完全作為一組URI可尋址資源提供的Web服務(wù)”(請(qǐng)參見參考資料)??梢詫⑷f維網(wǎng)本身視為REST樣式的例子。位于Web底層的HTTP協(xié)議使用統(tǒng)一資源定位符Uniform Resource Locator,URL)來表示資源和一些廣泛使用的HTTP方法,如用于操作資源的GET、POST、PUT、HEAD和delete。這個(gè)簡(jiǎn)單的體系結(jié)構(gòu)樣式通過重用Web的松散耦合與分布式基礎(chǔ)設(shè)施來提供可伸縮性和交互能力。

本文給出了一個(gè)銀行業(yè)務(wù)服務(wù)示例,該服務(wù)將貸款利率發(fā)布到類似于Bankrate的聚合器網(wǎng)站(請(qǐng)參見參考資料)。聚合器網(wǎng)站通常從多個(gè)不同的提供商收集信息,并將其聚合為客戶端Mashup。這也稱為透明地組合,可以將其視為組合應(yīng)用程序。為了方便地創(chuàng)建此類Mashup,服務(wù)提供商需要公開一個(gè)簡(jiǎn)化接口。REST體系結(jié)構(gòu)樣式可很好地滿足此要求。

本文建議使用Facade組件 來向現(xiàn)有SOAP樣式的Web服務(wù)提供REST樣式的接口。本文描述組件所需的功能,并將這些功能捕獲在Rational Software Architect可重用資產(chǎn)規(guī)范(Reusable Asset Specification,RAS)模式中。此模式由端點(diǎn)和現(xiàn)有Web服務(wù)的操作進(jìn)行參數(shù)化??梢詫⒋四J睫D(zhuǎn)換為可部署的Java 2 Enterprise Edition(J2EE)Servlet實(shí)現(xiàn),以調(diào)用現(xiàn)有Web服務(wù)。這個(gè)生成的Servlet支持所需的REST樣式功能,如瀏覽器緩存、資源內(nèi)容格式協(xié)商和使用SOAP Attachment for Java(SAAJ)標(biāo)準(zhǔn)進(jìn)行大型附件的HTTP流化。

有關(guān)URI、CRUD、Mashup、Facade模式、SOAP樣式的Web服務(wù)、RAS模式、SAAJ及其他資源的更多信息,請(qǐng)參見參考資料。

REST樣式的Facade組件所需的功能

在REST樣式的Web服務(wù)Facade組件中需要以下功能:

用于指示REST樣式的資源的可自定義URL

REST體系結(jié)構(gòu)樣式支持采用URL來提供對(duì)細(xì)粒度資源的訪問。例如,在貸款應(yīng)用程序中,銀行在特定日期提供的貸款利率就是一個(gè)必需的資源。通過使用不同的URL表示每個(gè)細(xì)粒度資源,可允許其他應(yīng)用程序(如電子郵件)方便地引用這些資源。這還同時(shí)支持使用Web 2.0技術(shù)(如Ajax)進(jìn)行客戶端資源組合。因此,Web服務(wù)Facade組件允許應(yīng)用程序開發(fā)人員自定義表示資源的URL。

用于操作資源的HTTP方法,如GET、POST、delete、PUT、TRACE和OPTIONS。

REST樣式的Web服務(wù)允許通過數(shù)量較少的常用操作訪問資源,如用于獲取資源的表示形式、獲取關(guān)于資源的信息以及操作資源的各個(gè)獨(dú)立操作。HTTP協(xié)議已經(jīng)定義了這樣的操作集(GET、POST、PUT等等)。(有關(guān)HTTP方法的更多信息,請(qǐng)參見參考資料。)Facade組件支持使用這些HTTP方法。請(qǐng)注意,針對(duì)SOAP Web服務(wù)的Web服務(wù)描述語言(Web Service Description Language,WSDL)1.1僅支持HTTP POST方法。WSDL 2.0通過包括對(duì) HTTP GET 綁定的支持對(duì)此進(jìn)行了補(bǔ)充,但在WebSphere Application Server V6.1中尚不支持WSDL 2.0。另請(qǐng)注意,HTTP delete、PUT、TRACE和OPTIONS方法使用并不頻繁,而且經(jīng)常被防火墻阻止。

資源表示形式和內(nèi)容格式協(xié)商

URL所訪問的每個(gè)資源都可以使用不同的形式加以表示,具體取決于訪問資源的客戶機(jī)??蛻魴C(jī)可以是臺(tái)式計(jì)算機(jī)上的HTML瀏覽器或其他SOAP Web服務(wù)或Ajax或JavaScript Object Notation(JSON)客戶機(jī)(請(qǐng)參見參考資料)。Facade組件查詢HTTP請(qǐng)求的Accept Header字段來確定客戶機(jī)所需的響應(yīng)格式,并隨后以所需的格式提供資源。

資源表示形式的瀏覽器與網(wǎng)關(guān)代理緩存

REST樣式的結(jié)果最常用于使用HTTP GET方法訪問資源。對(duì)于HTTP GET請(qǐng)求,REST樣式的Web服務(wù)可以設(shè)置HTTP響應(yīng)Header字段來提供指示信息,以確定Web瀏覽器是否緩存返回的資源表示形式以及緩存多長(zhǎng)時(shí)間、要緩存的資源表示形式的有效或失效策略是什么。通過支持響應(yīng)緩存,可提高應(yīng)用程序的可伸縮性。Facade組件會(huì)相應(yīng)地將HTTP Header Cache-Control響應(yīng)指令設(shè)置為PUBLIC、PRIVATE等。

使用SAAJ來調(diào)用SOAP樣式的Web服務(wù)

SOAP樣式的Web服務(wù)以XML形式返回響應(yīng),而此格式通常是REST樣式客戶機(jī)需要的資源表示形式。所以,F(xiàn)acade組件可避免由于直接訪問XML格式的SOAP響應(yīng)消息而造成的不必要的取消封送開銷。為此,F(xiàn)acade組件使用SAAJ來調(diào)用現(xiàn)有的Web服務(wù)。SAAJ還可以通過HTTP對(duì)Web服務(wù)響應(yīng)中附件內(nèi)的大量數(shù)據(jù)進(jìn)行流化。

發(fā)布:2007-04-24 09:43    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
廣州OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普廣州OA快博其他應(yīng)用

廣州OA軟件 廣州OA新聞動(dòng)態(tài) 廣州OA信息化 廣州OA快博 廣州OA行業(yè)資訊 廣州軟件開發(fā)公司 廣州門禁系統(tǒng) 廣州物業(yè)管理軟件 廣州倉(cāng)庫(kù)管理軟件 廣州餐飲管理軟件 廣州網(wǎng)站建設(shè)公司