版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第3章:章:SOAP:簡單對象訪:簡單對象訪問協(xié)議問協(xié)議山東大學(xué)計(jì)算機(jī)學(xué)院SOAP SOAP是一個(gè)基于XML的通信協(xié)議,它在兩個(gè)計(jì)算機(jī)之間交換消息,而無須考慮這兩個(gè)計(jì)算機(jī)的操作系統(tǒng)、編程環(huán)境或?qū)ο竽P涂蚣?SOAP原先是簡單對象訪問協(xié)議(simple object access protocol)的首字母縮寫,現(xiàn)在它僅是一個(gè)名字 SOAP是Web服務(wù)消息傳輸協(xié)議的事實(shí)上的標(biāo)準(zhǔn) SOAP的主要應(yīng)用是應(yīng)用程序間的通信 當(dāng)使用HTTP作為請求和響應(yīng)參數(shù)時(shí),SOAP使用XML作為編碼模式 SOAP方法是一個(gè)遵循SOAP編碼規(guī)范的HTTP請求和響應(yīng) SOAP端點(diǎn)是一個(gè)基于HTTP的URL,該URL標(biāo)識(shí)
2、了方法調(diào)用的目標(biāo)對象山東大學(xué)計(jì)算機(jī)學(xué)院目錄 SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的SOAP SOAP的優(yōu)缺點(diǎn) 小結(jié)山東大學(xué)計(jì)算機(jī)學(xué)院SOAP的目標(biāo) 不同的分布式計(jì)算平臺(tái)具有異構(gòu)性,SOAP的目標(biāo)就是試圖消除這一異構(gòu)性所產(chǎn)生的各種障礙 與其他成功的Web協(xié)議一樣,SOAP也是通過下列幾方面來實(shí)現(xiàn)目標(biāo) 簡單性 靈活性 防火墻的友好性 平臺(tái)中立性 基于XML的消息傳送(基于文本)對于Web上的分布式通信的標(biāo)準(zhǔn)化而言,SOAP僅是簡單地使用了已有的互聯(lián)網(wǎng)技術(shù),SOAP本身并不是一個(gè)新的技術(shù)山東大學(xué)計(jì)算機(jī)學(xué)院Web服務(wù)通信和消息傳送網(wǎng)絡(luò)SOAP是一個(gè)在服務(wù)實(shí)例之間傳送消息的網(wǎng)絡(luò)應(yīng)用
3、協(xié)議,而這些服務(wù)實(shí)例使用WSDL進(jìn)行描述SOAP消息使用諸如HTTP等不同的協(xié)議來傳送消息,并使用這些協(xié)議來定位與Web服務(wù)關(guān)聯(lián)的遠(yuǎn)程系統(tǒng)SOAP描述了如何將消息格式化,但沒有規(guī)定如何傳送消息,因此有必要將消息嵌入在傳送層協(xié)議中HTTP是最常用的傳輸層協(xié)議也可使用其他協(xié)議,如SMTP、FTP等Web服務(wù)通信和消息傳送網(wǎng)絡(luò)山東大學(xué)計(jì)算機(jī)學(xué)院Web服務(wù)通信和消息傳送網(wǎng)絡(luò) SOAP消息作為HTTP消息體被送到目的地,而HTTP消息則作為TCP流數(shù)據(jù)通過連接進(jìn)行發(fā)送 在另一端(目的地),HTTP偵聽程序?qū)TTP消息體傳送給SOAP處理器 SOAP處理器能夠理解SOAP消息的語法,并有能力處理它所收到
4、的消息 SOAP是一個(gè)無狀態(tài)的單向消息交換協(xié)議 沒有定義諸如編程模型等任何應(yīng)用語義,也沒有定義任何具體語義的實(shí)現(xiàn) 不關(guān)心SOAP消息的路由、可靠的消息傳送、防火墻的穿越等問題山東大學(xué)計(jì)算機(jī)學(xué)院使用SOAP的分布式消息傳送為調(diào)用駐留在遠(yuǎn)程服務(wù)提供者(1)中的Web服務(wù)操作,服務(wù)請求者的應(yīng)用程序需建立一個(gè)SOAP消息來進(jìn)行請求網(wǎng)絡(luò)基礎(chǔ)設(shè)施將消息發(fā)送給消息提供者的SOAP運(yùn)行時(shí)系統(tǒng)(2)SOAP服務(wù)器將請求消息發(fā)送給服務(wù)提供者的Web服務(wù)實(shí)現(xiàn)代碼(3)服務(wù)請求者的URI給出了提供者的節(jié)點(diǎn)作為請求目的地(4)網(wǎng)絡(luò)基礎(chǔ)設(shè)施將XML響應(yīng)轉(zhuǎn)換為源(服務(wù)請求者)應(yīng)用程序(6)所能理解的對象山東大學(xué)計(jì)算機(jī)學(xué)院單
5、向傳送、請求/響應(yīng)傳送交換模式 單向消息傳送 SOAP消息沿著一個(gè)方向傳送、從發(fā)送者到接收者發(fā)送者 - () - 接收者SOAP消息 請求/響應(yīng)消息傳送 SOAP消息從發(fā)送者傳送給接收者,然后接收者將返回一個(gè)響應(yīng)給發(fā)送者山東大學(xué)計(jì)算機(jī)學(xué)院目錄 SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的SOAP SOAP的優(yōu)缺點(diǎn) 小結(jié)SOAP信封SOAP頭部SOAP消息體山東大學(xué)計(jì)算機(jī)學(xué)院SOAP消息的結(jié)構(gòu) 當(dāng)前的SOAP規(guī)范v1.2描述了 如何將關(guān)聯(lián)的XML模式中定義的數(shù)據(jù)類型進(jìn)行HTTP(或其他傳輸協(xié)議)上的串行化 為正確交換信息,SOAP消息提供者和請求者都必須訪問相同的XML模式 通常
6、在互聯(lián)網(wǎng)上將模式進(jìn)行公告,信息交換的任何一方都可下載這些模式 每一個(gè)SOAP消息本質(zhì)上是一個(gè)XML文檔山東大學(xué)計(jì)算機(jī)學(xué)院SOAP消息的結(jié)構(gòu) SOAP消息包含一個(gè)元素,元素必須包含一個(gè)元素,和一個(gè)可選的元素 234 . . 山東大學(xué)計(jì)算機(jī)學(xué)院SOAP信封 SOAP信封用于包裹任何交換的XML文檔,還提供一種擴(kuò)大有效消息載荷的方式,可添加一些附加信息,這些附加信息可幫助將消息路由到最終目的地SOAP信封是每一個(gè)SOAP消息單一的根對于遵循SOAP的消息,必須出現(xiàn)SOAP信封 使用命名空間來區(qū)分具有類似名字的不同元素和屬性,從而使這些具有類似名字的不同元素和屬性可以在同一文檔中共存,而且不會(huì)導(dǎo)致混亂
7、。更重要的一點(diǎn),命名空間使得SOAP消息具有可擴(kuò)展性信封模式根據(jù)SOAP規(guī)范v1.2進(jìn)行定位,URI是“/2003/05/soap-envelop”。假如SOAP應(yīng)用接收了基于其他一些命名空間的消息,它將會(huì)報(bào)錯(cuò)。該規(guī)則確保所有符合標(biāo)準(zhǔn)的消息精確的使用同一個(gè)命名空間和XML模式,所以也會(huì)采用相同的處理規(guī)則。山東大學(xué)計(jì)算機(jī)學(xué)院SOAP頭部 最多包含一個(gè)子元素 必須是第一個(gè)子元素 元素 包含一些信息塊,主要關(guān)于如何處理消息 包含與端點(diǎn)或中間傳輸點(diǎn)相關(guān)的所有處理線索 如文檔將要發(fā)往何處、文檔源自哪里等信息,傳送數(shù)字簽名 的目的 對擴(kuò)展的消息格式封裝,且無須與有效載荷發(fā)生
8、關(guān)聯(lián),也不需要修改SOAP的基本結(jié)構(gòu) SOAP消息可以在不違反規(guī)范的前提下不斷添加新的特性和功能 許多消息傳送系統(tǒng) 都可以使用SOAP,并且這些消息傳送系統(tǒng)可以按照非傳統(tǒng)的方式組合起來 Web服務(wù)客戶端可在消息的頭部存放擴(kuò)展數(shù)據(jù),使服務(wù)中每一個(gè)方法調(diào)用無須將數(shù)據(jù)作為變量山東大學(xué)計(jì)算機(jī)學(xué)院元素的頭塊 SOAP 元素的模式允許在頭部放置數(shù)量不限的子元素 直接子元素稱作“頭塊”,并表示為一個(gè)數(shù)據(jù)邏輯分組 從發(fā)送者傳送到最終接收者的路徑中有一些SOAP節(jié)點(diǎn),這些數(shù)據(jù)邏輯分組可以描述這些SOAP節(jié)點(diǎn) 每一個(gè)頭塊都應(yīng)當(dāng)有自己的命名空間,因?yàn)槊臻g能夠幫助SOAP應(yīng)用標(biāo)識(shí)頭部以及分別處理返些頭塊 W3C和
9、OASIS等正在開發(fā)各種標(biāo)準(zhǔn)化的頭塊,涉及許多主題,諸如安全性、事務(wù)或其他的一些服務(wù)特性 被提議的每一個(gè)標(biāo)準(zhǔn)都定義了自己的命名空間、XML模式及處理需求山東大學(xué)計(jì)算機(jī)學(xué)院SOAP Header樣例52GRAAL-5YF3元素包含兩個(gè)頭塊,第一個(gè)頭塊處理有關(guān)付款單的事務(wù)完整性規(guī)則,第二個(gè)頭塊包括一個(gè)公證服務(wù),這個(gè)公證服務(wù)將一個(gè)標(biāo)記與一個(gè)特定的訂購單關(guān)聯(lián)起來,作為第三方保證訂購單已經(jīng)妥當(dāng)處理,并且訂購單已經(jīng)包含了所要訂購的特定產(chǎn)品山東大學(xué)計(jì)算機(jī)學(xué)院SOAP消息體 在消息交換中,具體應(yīng)用的XML數(shù)據(jù)(有效載荷)存放在SOAP體中 SOAP消息必須包含元素,并且該元素必須是的直接后代,位于消息中所定義
10、的任何頭部之后 SOAP體可以包含任意數(shù)目的子元素,也可以為空 元素的直接子元素都必須有合適的命名空間 默認(rèn)情況下,SOAP體的內(nèi)容可以是任何XML,并且不局限于任何專門的編碼規(guī)則 SOAP Body 元素 Apples 上面的例子請求蘋果的價(jià)格 注意,上面的 m:GetPrice 和 Item 元素是應(yīng)用程序?qū)S玫脑亍K鼈儾⒉皇?SOAP 標(biāo)準(zhǔn)的一部分山東大學(xué)計(jì)算機(jī)學(xué)院 SOAP 響應(yīng) 1.90 山東大學(xué)計(jì)算機(jī)學(xué)院山東大學(xué)計(jì)算機(jī)學(xué)院SOAP消息體 元素包含具體應(yīng)用的數(shù)據(jù)或一個(gè)出錯(cuò)消息 具體應(yīng)用的數(shù)據(jù)是與Web服務(wù)進(jìn)行交換的消息,可以是任何XML數(shù)據(jù)或者方法調(diào)用的參數(shù) 對方法調(diào)用的響應(yīng)及錯(cuò)誤
11、信息也存放在SOAP體中 SOAP Fault 元素用于存留 SOAP 消息的錯(cuò)誤和狀態(tài)信息 可選的 SOAP Fault 元素用于指示錯(cuò)誤消息。 如果已提供了 Fault 元素,則它必須是 Body 元素的子元素。在一條 SOAP 消息中,F(xiàn)ault 元素只能出現(xiàn)一次 元素和根元素的一個(gè)區(qū)別是 它既是請求對象又是響應(yīng)對象 僅當(dāng)出現(xiàn)錯(cuò)誤時(shí),才使用出錯(cuò)消息 發(fā)現(xiàn)問題的接收節(jié)點(diǎn)會(huì)將出錯(cuò)消息發(fā)回給消息路徑上的前面的發(fā)送者 SOAP消息可以攜帶具體應(yīng)用的數(shù)據(jù)或出錯(cuò)信息,但不能同時(shí)攜帶返兩類信息例子 http:/ http:/ http:/ SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的S
12、OAP SOAP的優(yōu)缺點(diǎn) 小結(jié)山東大學(xué)計(jì)算機(jī)學(xué)院基于HTTP的SOAP SOAP使用XML作為請求和響應(yīng)參數(shù)的編碼模式,并且使用HTTP作為傳輸協(xié)議來抵達(dá)互聯(lián)網(wǎng)上的任何目的地,而無須任何額外的包裹或編碼 當(dāng)SOAP端點(diǎn)是一個(gè)基于HTTP的URL時(shí),該URL標(biāo)識(shí)了方法調(diào)用的目標(biāo),SOAP方法可以是一個(gè)遵循SOAP編碼規(guī)則的HTTP請求或響應(yīng) SOAP并且需要將一個(gè)具體的對象束縛于一個(gè)特定的端點(diǎn),而是由實(shí)現(xiàn)者決定如何將對象端點(diǎn)標(biāo)識(shí)符映射到一個(gè)提供者的對象上 使用HTTP POST方法可將HTTP和SOAP請求/響應(yīng)消息交換模式進(jìn)行綁定 HTTP POST方法可在HTTP請求消息體中傳送請求內(nèi)容,通
13、過POST方法,SOAP信封將變?yōu)镠TTP請求消息的數(shù)據(jù)部分,在HTTP響應(yīng)中,將會(huì)返回SOAP響應(yīng)山東大學(xué)計(jì)算機(jī)學(xué)院封裝的HTTP/SOAP請求樣例一個(gè) SOAP 實(shí)例 一個(gè) GetStockPrice 請求被發(fā)送到了服務(wù)器 此請求有一個(gè) StockName 參數(shù)山東大學(xué)計(jì)算機(jī)學(xué)院一個(gè) SOAP 實(shí)例 一個(gè) GetStockPrice 請求被發(fā)送到了服務(wù)器 在響應(yīng)中則會(huì)返回一個(gè) Price 參數(shù)山東大學(xué)計(jì)算機(jī)學(xué)院山東大學(xué)計(jì)算機(jī)學(xué)院目錄 SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的SOAP SOAP的優(yōu)缺點(diǎn) 小結(jié)山東大學(xué)計(jì)算機(jī)學(xué)院SOAP的主要優(yōu)點(diǎn) SOAP的主要優(yōu)點(diǎn)可以概括如下 簡單性:所基于的XML具有高度的結(jié)構(gòu)化,并且很容易解析 可移植性:無須依賴底層平臺(tái),不需考慮字節(jié)順序或計(jì)算機(jī)字長等問題 與防火墻的相容性:POST機(jī)制具有廣泛的可用性,可以穿過防火墻 使用開放標(biāo)準(zhǔn):使用XML開放標(biāo)準(zhǔn)來格式化數(shù)據(jù) 互操作性:建立在開放技術(shù)至上,而丌是基于特定廠商的技術(shù) 被廣泛接受:在消息通信領(lǐng)域,SOAP是最被接受的標(biāo)準(zhǔn) 適應(yīng)變化:SOAP基礎(chǔ)架構(gòu)的變化通常不會(huì)影響到使用協(xié)議的應(yīng)用山東大學(xué)計(jì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工業(yè)廠房交易全程服務(wù)合同4篇
- 2024音樂制作方與影視制作公司版權(quán)許可合同
- 二零二五年度交通樞紐害蟲防治與消毒作業(yè)合同3篇
- 專業(yè)水電安裝及消防系統(tǒng)承包合同2024年版版B版
- 2025年度12年首次智慧旅游項(xiàng)目合作協(xié)議3篇
- 2025年度叉車租賃合同范本(叉車租賃與維護(hù))4篇
- 2025年度智慧城市基礎(chǔ)設(shè)施場地平整與物聯(lián)網(wǎng)協(xié)議4篇
- 2025年度奶牛養(yǎng)殖牛場租賃合同范本3篇
- 2025年廠房租賃合同風(fēng)險(xiǎn)評(píng)估與管理規(guī)范4篇
- 2024年04月廣西桂林銀行南寧分行社會(huì)招考筆試歷年參考題庫附帶答案詳解
- 三年級(jí)數(shù)學(xué)寒假作業(yè)每日一練30天
- 二年級(jí)數(shù)學(xué)上冊100道口算題大全 (每日一套共26套)
- 根因分析(huangyan)課件
- 圓形蓄水池工程量及配筋Excel計(jì)算
- 浙教版初中科學(xué)八下《表示元素的符號(hào)》課件
- 總住院醫(yī)師管理制度
- 八年級(jí)上冊歷史 第二單元 社會(huì)主義制度的建立與社會(huì)主義建設(shè)的探索
- DB31T 360-2020 住宅物業(yè)管理服務(wù)規(guī)范
- 園林綠化工程大樹移植施工方案
- 應(yīng)收賬款最高額質(zhì)押擔(dān)保合同模版
- 基于新型光彈性實(shí)驗(yàn)技術(shù)的力學(xué)實(shí)驗(yàn)教學(xué)方法探索
評(píng)論
0/150
提交評(píng)論