當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 廣東OA系統(tǒng) > 廣州OA系統(tǒng) > 廣州OA快博
使用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)行流化。
- 1重慶OA快博
- 2貴陽(yáng)OA快博
- 3西安OA快博
- 4南寧OA快博
- 5長(zhǎng)沙OA快博
- 6合肥OA快博
- 7濟(jì)南OA快博
- 8太原OA快博
- 9上海OA快博
- 10沈陽(yáng)OA快博
- 11長(zhǎng)春OA快博
- 12哈爾濱OA快博
- 1企業(yè)信息化的死角:企業(yè)管理部
- 2擊敗你的對(duì)手 從建立信息管理戰(zhàn)略開始
- 3診斷中小企業(yè)軟件項(xiàng)目管理難題
- 4尋找屬于自己的BI模式 開拓思維和加強(qiáng)協(xié)作
- 5直面信息化孤島 改善現(xiàn)狀不如責(zé)問IT部門
- 6合肥OA選型的民主投票到底合理還是不合理?
- 7OA辦公軟件的工具作用并不能替代人去解決或者監(jiān)督企業(yè)
- 8實(shí)例告訴你SaaS模式如何助力數(shù)據(jù)備份
- 9關(guān)鍵用戶掉鏈子,合肥OA實(shí)施易付諸東流
- 10Linux創(chuàng)作者講述管理軟件項(xiàng)目五條經(jīng)驗(yàn)
- 11商業(yè)智能的普及之道 開拓思維和加強(qiáng)協(xié)作
- 12ITIL的“三要”、“三不要”
- 13ITIL為何難以深化 IT服務(wù)管理系統(tǒng)構(gòu)建對(duì)策
- 14業(yè)界觀察:中小企業(yè)IT采購(gòu)需求新解
- 15亞太地區(qū)SOA治理投資在迅速增長(zhǎng)
- 16當(dāng)合肥OA撞上潛規(guī)則 靈活應(yīng)對(duì)是關(guān)鍵
- 17關(guān)注:關(guān)于合肥OA報(bào)表體系幾個(gè)方面的思考
- 18協(xié)同軟件不是萬能鑰匙 看清協(xié)同軟件的邊界
- 19企業(yè)存儲(chǔ)正在為垃圾數(shù)據(jù)付出昂貴代價(jià)
- 20用合肥OA驅(qū)動(dòng)5S制度改善物料管理
- 21解決雞肋難題 剖析SaaS的非典型性法則
- 22SOA需要四種主要中間件產(chǎn)品的有效支持
- 23企業(yè)采用SaaS服務(wù) IT戰(zhàn)略思考是關(guān)鍵
- 24如何根據(jù)企業(yè)戰(zhàn)略協(xié)同CRM和SCM系統(tǒng)
- 25商業(yè)智能如何將數(shù)據(jù)轉(zhuǎn)變?yōu)榭捎眯畔ⅲ?/a>
- 26合肥OA顧問:效率高就一定會(huì)事情少嗎?
- 27中小企業(yè)信息化也要按需選安全
- 28信息化中企業(yè)物資編碼管理實(shí)現(xiàn)方法
- 29并非夕陽(yáng)或朝陽(yáng) IT服務(wù)仍在黎明
- 30企業(yè)整體信息化項(xiàng)目建設(shè)的尷尬及顧慮
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓