當前位置:工程項目OA系統(tǒng) > 泛普各地 > 廣東OA系統(tǒng) > 廣州OA系統(tǒng) > 廣州OA快博
使用REST體系結構樣式構建可使用的Web服務
使用REST體系結構樣式構建可使用的Web服務
本文的重點是代表性狀態(tài)傳輸(Representational State Transfer,REST)體系結構樣式。通過使用Facade組件作為REST樣式的接口,現(xiàn)有的SOAP樣式的Web服務支持可自定義的URL、多資源格式表示、瀏覽器響應緩存、大型附件的流化以及使用HTTP方法來操作資源。
引言
代表性狀態(tài)(REST)體系結構樣式提供了壁壘較低的使用Web服務門檻。典型REST樣式應用程序的外部接口包括大量統(tǒng)一資源標識符(Uniform Resource Identifier,URI)可尋址資源和一些操作,如創(chuàng)建、讀取、更新和刪除(CRUD)等。這樣的體系結構樣式的優(yōu)勢是其簡單性。
開發(fā)人員兼作家Paul Prescod將REST Web服務定義為“使用HTTP協(xié)議的語法和語義將其功能完全作為一組URI可尋址資源提供的Web服務”(請參見參考資料)??梢詫⑷f維網(wǎng)本身視為REST樣式的例子。位于Web底層的HTTP協(xié)議使用統(tǒng)一資源定位符Uniform Resource Locator,URL)來表示資源和一些廣泛使用的HTTP方法,如用于操作資源的GET、POST、PUT、HEAD和delete。這個簡單的體系結構樣式通過重用Web的松散耦合與分布式基礎設施來提供可伸縮性和交互能力。
本文給出了一個銀行業(yè)務服務示例,該服務將貸款利率發(fā)布到類似于Bankrate的聚合器網(wǎng)站(請參見參考資料)。聚合器網(wǎng)站通常從多個不同的提供商收集信息,并將其聚合為客戶端Mashup。這也稱為透明地組合,可以將其視為組合應用程序。為了方便地創(chuàng)建此類Mashup,服務提供商需要公開一個簡化接口。REST體系結構樣式可很好地滿足此要求。
本文建議使用Facade組件 來向現(xiàn)有SOAP樣式的Web服務提供REST樣式的接口。本文描述組件所需的功能,并將這些功能捕獲在Rational Software Architect可重用資產(chǎn)規(guī)范(Reusable Asset Specification,RAS)模式中。此模式由端點和現(xiàn)有Web服務的操作進行參數(shù)化??梢詫⒋四J睫D換為可部署的Java 2 Enterprise Edition(J2EE)Servlet實現(xiàn),以調用現(xiàn)有Web服務。這個生成的Servlet支持所需的REST樣式功能,如瀏覽器緩存、資源內容格式協(xié)商和使用SOAP Attachment for Java(SAAJ)標準進行大型附件的HTTP流化。
有關URI、CRUD、Mashup、Facade模式、SOAP樣式的Web服務、RAS模式、SAAJ及其他資源的更多信息,請參見參考資料。
REST樣式的Facade組件所需的功能
在REST樣式的Web服務Facade組件中需要以下功能:
用于指示REST樣式的資源的可自定義URL
REST體系結構樣式支持采用URL來提供對細粒度資源的訪問。例如,在貸款應用程序中,銀行在特定日期提供的貸款利率就是一個必需的資源。通過使用不同的URL表示每個細粒度資源,可允許其他應用程序(如電子郵件)方便地引用這些資源。這還同時支持使用Web 2.0技術(如Ajax)進行客戶端資源組合。因此,Web服務Facade組件允許應用程序開發(fā)人員自定義表示資源的URL。
用于操作資源的HTTP方法,如GET、POST、delete、PUT、TRACE和OPTIONS。
REST樣式的Web服務允許通過數(shù)量較少的常用操作訪問資源,如用于獲取資源的表示形式、獲取關于資源的信息以及操作資源的各個獨立操作。HTTP協(xié)議已經(jīng)定義了這樣的操作集(GET、POST、PUT等等)。(有關HTTP方法的更多信息,請參見參考資料。)Facade組件支持使用這些HTTP方法。請注意,針對SOAP Web服務的Web服務描述語言(Web Service Description Language,WSDL)1.1僅支持HTTP POST方法。WSDL 2.0通過包括對 HTTP GET 綁定的支持對此進行了補充,但在WebSphere Application Server V6.1中尚不支持WSDL 2.0。另請注意,HTTP delete、PUT、TRACE和OPTIONS方法使用并不頻繁,而且經(jīng)常被防火墻阻止。
資源表示形式和內容格式協(xié)商
URL所訪問的每個資源都可以使用不同的形式加以表示,具體取決于訪問資源的客戶機??蛻魴C可以是臺式計算機上的HTML瀏覽器或其他SOAP Web服務或Ajax或JavaScript Object Notation(JSON)客戶機(請參見參考資料)。Facade組件查詢HTTP請求的Accept Header字段來確定客戶機所需的響應格式,并隨后以所需的格式提供資源。
資源表示形式的瀏覽器與網(wǎng)關代理緩存
REST樣式的結果最常用于使用HTTP GET方法訪問資源。對于HTTP GET請求,REST樣式的Web服務可以設置HTTP響應Header字段來提供指示信息,以確定Web瀏覽器是否緩存返回的資源表示形式以及緩存多長時間、要緩存的資源表示形式的有效或失效策略是什么。通過支持響應緩存,可提高應用程序的可伸縮性。Facade組件會相應地將HTTP Header Cache-Control響應指令設置為PUBLIC、PRIVATE等。
使用SAAJ來調用SOAP樣式的Web服務
SOAP樣式的Web服務以XML形式返回響應,而此格式通常是REST樣式客戶機需要的資源表示形式。所以,F(xiàn)acade組件可避免由于直接訪問XML格式的SOAP響應消息而造成的不必要的取消封送開銷。為此,F(xiàn)acade組件使用SAAJ來調用現(xiàn)有的Web服務。SAAJ還可以通過HTTP對Web服務響應中附件內的大量數(shù)據(jù)進行流化。
- 1企業(yè)信息化的死角:企業(yè)管理部
- 2擊敗你的對手 從建立信息管理戰(zhàn)略開始
- 3診斷中小企業(yè)軟件項目管理難題
- 4尋找屬于自己的BI模式 開拓思維和加強協(xié)作
- 5直面信息化孤島 改善現(xiàn)狀不如責問IT部門
- 6合肥OA選型的民主投票到底合理還是不合理?
- 7OA辦公軟件的工具作用并不能替代人去解決或者監(jiān)督企業(yè)
- 8實例告訴你SaaS模式如何助力數(shù)據(jù)備份
- 9關鍵用戶掉鏈子,合肥OA實施易付諸東流
- 10Linux創(chuàng)作者講述管理軟件項目五條經(jīng)驗
- 11商業(yè)智能的普及之道 開拓思維和加強協(xié)作
- 12ITIL的“三要”、“三不要”
- 13ITIL為何難以深化 IT服務管理系統(tǒng)構建對策
- 14業(yè)界觀察:中小企業(yè)IT采購需求新解
- 15亞太地區(qū)SOA治理投資在迅速增長
- 16當合肥OA撞上潛規(guī)則 靈活應對是關鍵
- 17關注:關于合肥OA報表體系幾個方面的思考
- 18協(xié)同軟件不是萬能鑰匙 看清協(xié)同軟件的邊界
- 19企業(yè)存儲正在為垃圾數(shù)據(jù)付出昂貴代價
- 20用合肥OA驅動5S制度改善物料管理
- 21解決雞肋難題 剖析SaaS的非典型性法則
- 22SOA需要四種主要中間件產(chǎn)品的有效支持
- 23企業(yè)采用SaaS服務 IT戰(zhàn)略思考是關鍵
- 24如何根據(jù)企業(yè)戰(zhàn)略協(xié)同CRM和SCM系統(tǒng)
- 25商業(yè)智能如何將數(shù)據(jù)轉變?yōu)榭捎眯畔ⅲ?/a>
- 26合肥OA顧問:效率高就一定會事情少嗎?
- 27中小企業(yè)信息化也要按需選安全
- 28信息化中企業(yè)物資編碼管理實現(xiàn)方法
- 29并非夕陽或朝陽 IT服務仍在黎明
- 30企業(yè)整體信息化項目建設的尷尬及顧慮
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓