



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Dojo的Restful SOA的實(shí)現(xiàn)Wang Wei Min, 軟件工程師, IBMZhang Yan,軟件工程師,IBMLuo Yu, 實(shí)習(xí)生, IBMWu Jiang Li, 實(shí)習(xí)生, IBM2010 年 06月 11 日REST這個(gè)概念于2000年有Roy Fielding 博士在他的博士生論文中首次提出,現(xiàn)在它的主要框架已經(jīng)出現(xiàn),并在Web領(lǐng)域得到廣泛的接受。它是基于SOAP和WSDL的Web Service的更為簡(jiǎn)單的替代方法。Dojo Toolkit作為一個(gè)開(kāi)放源碼的JavaScript庫(kù),提供了對(duì)REST架構(gòu)風(fēng)格的支持,Dojo和REST的結(jié)合,使Web Service相關(guān)
2、的Web應(yīng)用程序和Web站點(diǎn)的開(kāi)發(fā)變得更為簡(jiǎn)單快速,也很好的解決了跨平臺(tái)的困擾。概述本文詳細(xì)介紹了基于REST和Dojo的Web Service程序的設(shè)計(jì)與實(shí)現(xiàn),主要包括以下幾部分內(nèi)容:l 傳統(tǒng)的Web Service 的實(shí)現(xiàn)方法SOAP Web Servicel 用REST的方式實(shí)現(xiàn)CRUD的一個(gè)實(shí)例比較REST方法和傳統(tǒng)方法的優(yōu)勢(shì)l 如何實(shí)現(xiàn)從Dojo客戶端調(diào)用REST應(yīng)用程序l Dojo整合REST的整體框架描述SOAP Web ServiceSOA(Service-Oriented Architecture, 面向服務(wù)的架構(gòu))作為Web Service的范式,目的是實(shí)現(xiàn)和維護(hù)跨越了大型
3、分布式系統(tǒng)的業(yè)務(wù)流程。它基于三個(gè)技術(shù)概念:服務(wù),企業(yè)服務(wù)總線達(dá)成的互操作性,以及松耦合。在SOA中,需要一個(gè)中間協(xié)議用于消費(fèi)者和供應(yīng)者來(lái)交換數(shù)據(jù)。SOAP Web Service通過(guò)標(biāo)準(zhǔn)SOAP(Simple Object Access Protocol, 簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)通訊,一般走HTTP通道,能夠跨平臺(tái)調(diào)用;通訊格式是XML文本,通過(guò)RPC機(jī)制來(lái)實(shí)現(xiàn)分布式調(diào)用。SOAP 消息基本上是從發(fā)送端到接收端的單向傳輸,但它們常常結(jié)合起來(lái)執(zhí)行類似于請(qǐng)求/應(yīng)答的模式。所有的 SOAP 消息都使用 XML 編碼。一條 SOAP 消息就是一個(gè)包含有一個(gè)必需的 SOAP 的封裝包,一個(gè)可選的 SOAP
4、標(biāo)頭和一個(gè)必需的 SOAP 體塊的 XML 文檔。清單1.SOAP協(xié)議頭清單2.SOAP的請(qǐng)求和應(yīng)答把 SOAP 綁定到 HTTP 提供了同時(shí)利用 SOAP 的樣式和分散的靈活性的特點(diǎn)以及 HTTP 的豐富的特征庫(kù)的優(yōu)點(diǎn)。在 HTTP 上傳送 SOAP 并不是說(shuō) SOAP 會(huì)覆蓋現(xiàn)有的 HTTP 語(yǔ)義,而是 HTTP 上的 SOAP 語(yǔ)義會(huì)自然的映射到 HTTP 語(yǔ)義。在使用 HTTP 作為協(xié)議綁定的場(chǎng)合中, RPC 請(qǐng)求映射到 HTTP 請(qǐng)求上,而 RPC 應(yīng)答映射到 HTTP 應(yīng)答。然而,在 RPC 上使用 SOAP 并不僅限于 HTTP 協(xié)議綁定。需要強(qiáng)調(diào)的是SOAP Web Servi
5、ce并不依賴于HTTP。事實(shí)上SOAP協(xié)議可以走很多底層協(xié)議,例如SMTP協(xié)議,Jabber協(xié)議等等。REST Web ServicesREST(Representational State Transfer, 表述性狀態(tài)轉(zhuǎn)移)是一種輕量級(jí)的Web Service架構(gòu)風(fēng)格,可以說(shuō)是為通過(guò)HTTP協(xié)議來(lái)進(jìn)行分布式調(diào)用量身定造的。REST提出了如下設(shè)計(jì)準(zhǔn)則:a) 網(wǎng)絡(luò)上的所有事物都被抽象為資源(resource);b) 每個(gè)資源對(duì)應(yīng)一個(gè)唯一的資源標(biāo)識(shí)符(resource identifier);c) 通過(guò)通用的連接器接口(generic connector interface)對(duì)資源進(jìn)行操作;d)
6、 對(duì)資源的各種操作不會(huì)改變資源標(biāo)識(shí)符;e) 所有的操作都是無(wú)狀態(tài)的(stateless)。REST Web Service的主要特征之一是以遵循 RFC 2616 定義的協(xié)議的方式顯式使用 HTTP 方法,并且使用方式與協(xié)議定義一致。 這個(gè)基本 REST 設(shè)計(jì)原則建立了創(chuàng)建、讀取、更新和刪除操作與 HTTP 方法之間的一對(duì)一映射。例如,HTTP GET 被定義為數(shù)據(jù)產(chǎn)生方法,旨在由客戶端應(yīng)用程序用于檢索資源以從 Web 服務(wù)器獲取數(shù)據(jù),或者執(zhí)行某個(gè)查詢并預(yù)期 Web 服務(wù)器將查找某一組匹配資源然后使用該資源進(jìn)行響應(yīng)。清單3.REST的請(qǐng)求清單4.REST的應(yīng)答完整、獨(dú)立的請(qǐng)求不要求服務(wù)器在處理
7、請(qǐng)求時(shí)檢索任何類型的應(yīng)用程序上下文或狀態(tài)。 REST Web 服務(wù)應(yīng)用程序(或客戶端)在 HTTP Header 和請(qǐng)求正文中包括服務(wù)器端組件生成響應(yīng)所需要的所有參數(shù)、上下文和數(shù)據(jù)。 這種意義上的無(wú)狀態(tài)可以改進(jìn) Web 服務(wù)性能,并簡(jiǎn)化服務(wù)器端組件的設(shè)計(jì)和實(shí)現(xiàn),因?yàn)榉?wù)器上沒(méi)有狀態(tài),從而消除了與外部應(yīng)用程序同步會(huì)話數(shù)據(jù)的需要。用REST方法實(shí)現(xiàn)CRUD(以User management 為例)Dojo對(duì)REST的支持Dojo1.2以后的版本提供了對(duì)REST的支持。JsonRestStore是Dojo為REST提供的一種Restfuldojox.data 存儲(chǔ)為開(kāi)發(fā)人員提供了訪問(wèn)所創(chuàng)建的服務(wù)器端
8、服務(wù)的方式。dojox.data.JsonRestStore 文件提供了一種基于標(biāo)準(zhǔn)的方式,可以與使用 RESTful 架構(gòu)的基于 JSON (JavaScript Object Notation) 的服務(wù)交互。JsonRestStore 提供了通過(guò) HTTP/REST 執(zhí)行讀取、寫入和通知的方法。交互使用基于服務(wù)器的 GET、PUT、POST、DELETE 命令。下面的代碼行解釋了 dojox.data.JsonRestStore 的創(chuàng)建方式。目標(biāo)指定了資源的 URL,并且 idAttribute 是 ID 名稱。idAttribute 通常表示一個(gè)主鍵 ID,用于唯一地標(biāo)識(shí)服務(wù)器上的資源:
9、newStore = new dojox.data.JsonRestStore(target:"/MyTable/", idAttribute:"myId");dojox.data 的真正強(qiáng)大之處是能夠與各種廣泛的 Dojo UI 小部件集成。例如,dojox.grid 小部件是一個(gè)表顯示小部件。添加示例 dojox.data.JsonRestStore 非常簡(jiǎn)單,只需傳遞您創(chuàng)建的 dojox.data 存儲(chǔ)(清單 1)。清單 1gridLayout=name:'Address', field:'shipToAddress',editable:true,name:'Name',field: 'name',name:'Id',field:'myId'vargrid=new dojox.grid.DataGrid(store:newStore,structure: gridLayout,dojo.byId("gridElement");grid.startup();gridLayout 數(shù)組定義了列名和
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉(cāng)庫(kù)管理工作流程
- 礦區(qū)買賣居間合同范本
- 二零二五年度塔吊操作技能培訓(xùn)與勞務(wù)用工協(xié)議
- 2025年度股份解除與股權(quán)激勵(lì)解除合同
- 2025年中國(guó)硅膠燙印輪市場(chǎng)調(diào)查研究報(bào)告
- 2025年度車間出租與信息化建設(shè)服務(wù)合同
- 2025年度高新技術(shù)產(chǎn)業(yè)借款連帶擔(dān)保協(xié)議
- 科室護(hù)理半年總結(jié)
- 2025年度設(shè)備拆除與安全應(yīng)急預(yù)案合同
- 二零二五年度綠色辣椒種植與農(nóng)產(chǎn)品收購(gòu)合作協(xié)議
- 航天集團(tuán)人才隊(duì)伍建設(shè)經(jīng)驗(yàn)介紹
- 牙周炎-侵襲性牙周炎
- 心理委員工作記錄表
- 新教科版五下科學(xué)1-5《當(dāng)環(huán)境改變了》公開(kāi)課課件
- 教師的十大轉(zhuǎn)變課件
- 焦化廠生產(chǎn)工序及工藝流程圖
- 可下載打印的公司章程
- 中藥熏洗法課件
- 本特利探頭應(yīng)用
- QMR-110-00員工手部、接觸面等微生物檢驗(yàn)記錄記錄
- 外陰及陰道炎癥
評(píng)論
0/150
提交評(píng)論