




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第3章:章:SOAP:簡單對象訪:簡單對象訪問協(xié)議問協(xié)議山東大學(xué)計算機學(xué)院SOAP SOAP是一個基于XML的通信協(xié)議,它在兩個計算機之間交換消息,而無須考慮這兩個計算機的操作系統(tǒng)、編程環(huán)境或?qū)ο竽P涂蚣?SOAP原先是簡單對象訪問協(xié)議(simple object access protocol)的首字母縮寫,現(xiàn)在它僅是一個名字 SOAP是Web服務(wù)消息傳輸協(xié)議的事實上的標準 SOAP的主要應(yīng)用是應(yīng)用程序間的通信 當使用HTTP作為請求和響應(yīng)參數(shù)時,SOAP使用XML作為編碼模式 SOAP方法是一個遵循SOAP編碼規(guī)范的HTTP請求和響應(yīng) SOAP端點是一個基于HTTP的URL,該URL標識
2、了方法調(diào)用的目標對象山東大學(xué)計算機學(xué)院目錄 SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的SOAP SOAP的優(yōu)缺點 小結(jié)山東大學(xué)計算機學(xué)院SOAP的目標 不同的分布式計算平臺具有異構(gòu)性,SOAP的目標就是試圖消除這一異構(gòu)性所產(chǎn)生的各種障礙 與其他成功的Web協(xié)議一樣,SOAP也是通過下列幾方面來實現(xiàn)目標 簡單性 靈活性 防火墻的友好性 平臺中立性 基于XML的消息傳送(基于文本)對于Web上的分布式通信的標準化而言,SOAP僅是簡單地使用了已有的互聯(lián)網(wǎng)技術(shù),SOAP本身并不是一個新的技術(shù)山東大學(xué)計算機學(xué)院Web服務(wù)通信和消息傳送網(wǎng)絡(luò)SOAP是一個在服務(wù)實例之間傳送消息的網(wǎng)絡(luò)應(yīng)用
3、協(xié)議,而這些服務(wù)實例使用WSDL進行描述SOAP消息使用諸如HTTP等不同的協(xié)議來傳送消息,并使用這些協(xié)議來定位與Web服務(wù)關(guān)聯(lián)的遠程系統(tǒng)SOAP描述了如何將消息格式化,但沒有規(guī)定如何傳送消息,因此有必要將消息嵌入在傳送層協(xié)議中HTTP是最常用的傳輸層協(xié)議也可使用其他協(xié)議,如SMTP、FTP等Web服務(wù)通信和消息傳送網(wǎng)絡(luò)山東大學(xué)計算機學(xué)院Web服務(wù)通信和消息傳送網(wǎng)絡(luò) SOAP消息作為HTTP消息體被送到目的地,而HTTP消息則作為TCP流數(shù)據(jù)通過連接進行發(fā)送 在另一端(目的地),HTTP偵聽程序?qū)TTP消息體傳送給SOAP處理器 SOAP處理器能夠理解SOAP消息的語法,并有能力處理它所收到
4、的消息 SOAP是一個無狀態(tài)的單向消息交換協(xié)議 沒有定義諸如編程模型等任何應(yīng)用語義,也沒有定義任何具體語義的實現(xiàn) 不關(guān)心SOAP消息的路由、可靠的消息傳送、防火墻的穿越等問題山東大學(xué)計算機學(xué)院使用SOAP的分布式消息傳送為調(diào)用駐留在遠程服務(wù)提供者(1)中的Web服務(wù)操作,服務(wù)請求者的應(yīng)用程序需建立一個SOAP消息來進行請求網(wǎng)絡(luò)基礎(chǔ)設(shè)施將消息發(fā)送給消息提供者的SOAP運行時系統(tǒng)(2)SOAP服務(wù)器將請求消息發(fā)送給服務(wù)提供者的Web服務(wù)實現(xiàn)代碼(3)服務(wù)請求者的URI給出了提供者的節(jié)點作為請求目的地(4)網(wǎng)絡(luò)基礎(chǔ)設(shè)施將XML響應(yīng)轉(zhuǎn)換為源(服務(wù)請求者)應(yīng)用程序(6)所能理解的對象山東大學(xué)計算機學(xué)院單
5、向傳送、請求/響應(yīng)傳送交換模式 單向消息傳送 SOAP消息沿著一個方向傳送、從發(fā)送者到接收者發(fā)送者 - () - 接收者SOAP消息 請求/響應(yīng)消息傳送 SOAP消息從發(fā)送者傳送給接收者,然后接收者將返回一個響應(yīng)給發(fā)送者山東大學(xué)計算機學(xué)院目錄 SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的SOAP SOAP的優(yōu)缺點 小結(jié)SOAP信封SOAP頭部SOAP消息體山東大學(xué)計算機學(xué)院SOAP消息的結(jié)構(gòu) 當前的SOAP規(guī)范v1.2描述了 如何將關(guān)聯(lián)的XML模式中定義的數(shù)據(jù)類型進行HTTP(或其他傳輸協(xié)議)上的串行化 為正確交換信息,SOAP消息提供者和請求者都必須訪問相同的XML模式 通常
6、在互聯(lián)網(wǎng)上將模式進行公告,信息交換的任何一方都可下載這些模式 每一個SOAP消息本質(zhì)上是一個XML文檔山東大學(xué)計算機學(xué)院SOAP消息的結(jié)構(gòu) SOAP消息包含一個元素,元素必須包含一個元素,和一個可選的元素 234 . . 山東大學(xué)計算機學(xué)院SOAP信封 SOAP信封用于包裹任何交換的XML文檔,還提供一種擴大有效消息載荷的方式,可添加一些附加信息,這些附加信息可幫助將消息路由到最終目的地SOAP信封是每一個SOAP消息單一的根對于遵循SOAP的消息,必須出現(xiàn)SOAP信封 使用命名空間來區(qū)分具有類似名字的不同元素和屬性,從而使這些具有類似名字的不同元素和屬性可以在同一文檔中共存,而且不會導(dǎo)致混亂
7、。更重要的一點,命名空間使得SOAP消息具有可擴展性信封模式根據(jù)SOAP規(guī)范v1.2進行定位,URI是“/2003/05/soap-envelop”。假如SOAP應(yīng)用接收了基于其他一些命名空間的消息,它將會報錯。該規(guī)則確保所有符合標準的消息精確的使用同一個命名空間和XML模式,所以也會采用相同的處理規(guī)則。山東大學(xué)計算機學(xué)院SOAP頭部 最多包含一個子元素 必須是第一個子元素 元素 包含一些信息塊,主要關(guān)于如何處理消息 包含與端點或中間傳輸點相關(guān)的所有處理線索 如文檔將要發(fā)往何處、文檔源自哪里等信息,傳送數(shù)字簽名 的目的 對擴展的消息格式封裝,且無須與有效載荷發(fā)生
8、關(guān)聯(lián),也不需要修改SOAP的基本結(jié)構(gòu) SOAP消息可以在不違反規(guī)范的前提下不斷添加新的特性和功能 許多消息傳送系統(tǒng) 都可以使用SOAP,并且這些消息傳送系統(tǒng)可以按照非傳統(tǒng)的方式組合起來 Web服務(wù)客戶端可在消息的頭部存放擴展數(shù)據(jù),使服務(wù)中每一個方法調(diào)用無須將數(shù)據(jù)作為變量山東大學(xué)計算機學(xué)院元素的頭塊 SOAP 元素的模式允許在頭部放置數(shù)量不限的子元素 直接子元素稱作“頭塊”,并表示為一個數(shù)據(jù)邏輯分組 從發(fā)送者傳送到最終接收者的路徑中有一些SOAP節(jié)點,這些數(shù)據(jù)邏輯分組可以描述這些SOAP節(jié)點 每一個頭塊都應(yīng)當有自己的命名空間,因為命名空間能夠幫助SOAP應(yīng)用標識頭部以及分別處理返些頭塊 W3C和
9、OASIS等正在開發(fā)各種標準化的頭塊,涉及許多主題,諸如安全性、事務(wù)或其他的一些服務(wù)特性 被提議的每一個標準都定義了自己的命名空間、XML模式及處理需求山東大學(xué)計算機學(xué)院SOAP Header樣例52GRAAL-5YF3元素包含兩個頭塊,第一個頭塊處理有關(guān)付款單的事務(wù)完整性規(guī)則,第二個頭塊包括一個公證服務(wù),這個公證服務(wù)將一個標記與一個特定的訂購單關(guān)聯(lián)起來,作為第三方保證訂購單已經(jīng)妥當處理,并且訂購單已經(jīng)包含了所要訂購的特定產(chǎn)品山東大學(xué)計算機學(xué)院SOAP消息體 在消息交換中,具體應(yīng)用的XML數(shù)據(jù)(有效載荷)存放在SOAP體中 SOAP消息必須包含元素,并且該元素必須是的直接后代,位于消息中所定義
10、的任何頭部之后 SOAP體可以包含任意數(shù)目的子元素,也可以為空 元素的直接子元素都必須有合適的命名空間 默認情況下,SOAP體的內(nèi)容可以是任何XML,并且不局限于任何專門的編碼規(guī)則 SOAP Body 元素 Apples 上面的例子請求蘋果的價格 注意,上面的 m:GetPrice 和 Item 元素是應(yīng)用程序?qū)S玫脑?。它們并不?SOAP 標準的一部分山東大學(xué)計算機學(xué)院 SOAP 響應(yīng) 1.90 山東大學(xué)計算機學(xué)院山東大學(xué)計算機學(xué)院SOAP消息體 元素包含具體應(yīng)用的數(shù)據(jù)或一個出錯消息 具體應(yīng)用的數(shù)據(jù)是與Web服務(wù)進行交換的消息,可以是任何XML數(shù)據(jù)或者方法調(diào)用的參數(shù) 對方法調(diào)用的響應(yīng)及錯誤
11、信息也存放在SOAP體中 SOAP Fault 元素用于存留 SOAP 消息的錯誤和狀態(tài)信息 可選的 SOAP Fault 元素用于指示錯誤消息。 如果已提供了 Fault 元素,則它必須是 Body 元素的子元素。在一條 SOAP 消息中,F(xiàn)ault 元素只能出現(xiàn)一次 元素和根元素的一個區(qū)別是 它既是請求對象又是響應(yīng)對象 僅當出現(xiàn)錯誤時,才使用出錯消息 發(fā)現(xiàn)問題的接收節(jié)點會將出錯消息發(fā)回給消息路徑上的前面的發(fā)送者 SOAP消息可以攜帶具體應(yīng)用的數(shù)據(jù)或出錯信息,但不能同時攜帶返兩類信息例子 http:/ http:/ http:/ SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的S
12、OAP SOAP的優(yōu)缺點 小結(jié)山東大學(xué)計算機學(xué)院基于HTTP的SOAP SOAP使用XML作為請求和響應(yīng)參數(shù)的編碼模式,并且使用HTTP作為傳輸協(xié)議來抵達互聯(lián)網(wǎng)上的任何目的地,而無須任何額外的包裹或編碼 當SOAP端點是一個基于HTTP的URL時,該URL標識了方法調(diào)用的目標,SOAP方法可以是一個遵循SOAP編碼規(guī)則的HTTP請求或響應(yīng) SOAP并且需要將一個具體的對象束縛于一個特定的端點,而是由實現(xiàn)者決定如何將對象端點標識符映射到一個提供者的對象上 使用HTTP POST方法可將HTTP和SOAP請求/響應(yīng)消息交換模式進行綁定 HTTP POST方法可在HTTP請求消息體中傳送請求內(nèi)容,通
13、過POST方法,SOAP信封將變?yōu)镠TTP請求消息的數(shù)據(jù)部分,在HTTP響應(yīng)中,將會返回SOAP響應(yīng)山東大學(xué)計算機學(xué)院封裝的HTTP/SOAP請求樣例一個 SOAP 實例 一個 GetStockPrice 請求被發(fā)送到了服務(wù)器 此請求有一個 StockName 參數(shù)山東大學(xué)計算機學(xué)院一個 SOAP 實例 一個 GetStockPrice 請求被發(fā)送到了服務(wù)器 在響應(yīng)中則會返回一個 Price 參數(shù)山東大學(xué)計算機學(xué)院山東大學(xué)計算機學(xué)院目錄 SOAP作為消息傳送協(xié)議 SOAP消息的結(jié)構(gòu) 基于HTTP的SOAP SOAP的優(yōu)缺點 小結(jié)山東大學(xué)計算機學(xué)院SOAP的主要優(yōu)點 SOAP的主要優(yōu)點可以概括如下 簡單性:所基于的XML具有高度的結(jié)構(gòu)化,并且很容易解析 可移植性:無須依賴底層平臺,不需考慮字節(jié)順序或計算機字長等問題 與防火墻的相容性:POST機制具有廣泛的可用性,可以穿過防火墻 使用開放標準:使用XML開放標準來格式化數(shù)據(jù) 互操作性:建立在開放技術(shù)至上,而丌是基于特定廠商的技術(shù) 被廣泛接受:在消息通信領(lǐng)域,SOAP是最被接受的標準 適應(yīng)變化:SOAP基礎(chǔ)架構(gòu)的變化通常不會影響到使用協(xié)議的應(yīng)用山東大學(xué)計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河道養(yǎng)護工作總結(jié)
- 收費站應(yīng)急管理培訓(xùn)課程
- 2025年度財務(wù)部工作方案怎么寫
- 2025年企業(yè)疫情復(fù)工復(fù)產(chǎn)方案
- 2025年銷售人員個人下半年工作方案
- 教育小孩拒絕偷竊行為-教室演講
- 哈林花式籃球項目介紹
- 房地產(chǎn)項目投資策劃營銷
- 廈門工學(xué)院《Unty游戲開發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遺傳病防范知識培訓(xùn)課件
- 2025年北京市房山區(qū)高三一模政治試卷(含答案)
- 2025 年深入貫徹中央八項規(guī)定精神學(xué)習(xí)教育實施方案
- 《Python程序設(shè)計》全套教學(xué)課件
- 2025年空壓機行業(yè)發(fā)展戰(zhàn)略研究及投資潛力預(yù)測評估報告
- 2024年廣東惠州仲愷高新區(qū)招聘中學(xué)教師筆試真題
- 馬化騰的創(chuàng)業(yè)故事
- 院科兩級人員緊急替代程序與替代方案
- 高中主題班會 心懷感恩志存高遠課件-高一上學(xué)期感恩教育主題班會
- 2024年晉城市城區(qū)城市建設(shè)投資經(jīng)營有限公司招聘考試真題
- 社工證筆試題庫及答案
- 2025年湖北省初中學(xué)業(yè)水平考試數(shù)學(xué)模擬卷(二)(原卷版+解析版)
評論
0/150
提交評論