淺談ASP.NET XML Web服務(wù)
ASP.NET XML Web服務(wù)基礎(chǔ)結(jié)構(gòu)
基礎(chǔ)結(jié)構(gòu)塊職能
XML Web服務(wù)目錄XML Web服務(wù)目錄提供一個中央地址,用于定位其他組織提供的XML Web服務(wù)。象UDDI登記這樣的XML Web服務(wù)目錄實(shí)現(xiàn)這個職能。XML Web服務(wù)的客戶端可以引用XML Web服務(wù)目錄,也可以不引用
XML Web服務(wù)目錄
XML Web 服務(wù)發(fā)現(xiàn)XML Web服務(wù)發(fā)現(xiàn)是使用Web服務(wù)描述語言(WSDL)定位或發(fā)現(xiàn)一個或多個描述特別的XML Web服務(wù)的相關(guān)文檔。DISCO規(guī)格定義了定位服務(wù)描述的規(guī)則。如果XML Web服務(wù)客戶了解服務(wù)描述的位置,他們可以繞過發(fā)現(xiàn)步驟。
XML Web服務(wù)描述為了了解如何與一個特定的XML Web服務(wù)交互作用,需要提供一個描述來定義XML Web服務(wù)支持的交互操作。XML Web服務(wù)客戶端在可以使用一個XML Web服務(wù)之間必須了解如何與它交互。
XML Web服務(wù)連接格式為了能夠進(jìn)行通用通信,XML Web服務(wù)使用開放連接格式來進(jìn)行通信,這些是任何支持最普通的Web標(biāo)準(zhǔn)的系統(tǒng)都能夠理解的協(xié)議。SOAP是用于進(jìn)行XML Web服務(wù)通信的關(guān)鍵協(xié)議。
ASP.NET XML Web服務(wù)目錄
和使用因特網(wǎng)上任何其他的資源一樣,XML Web服務(wù)目錄如果沒有某些查找方法的話,它是不可能夠找到一個特定的XML Web服務(wù)的。XML Web服務(wù)目錄提供了中央地址,可以讓XML Web服務(wù)供應(yīng)者在其上發(fā)布他們提供的XML Web服務(wù)的信息。這樣的目錄甚至可以是XML Web服務(wù)本身,可以編程訪問并且提供搜索結(jié)果來響應(yīng)XML Web服務(wù)客戶端的查詢。使用一個XML Web服務(wù)目錄來定位一個提供XML Web服務(wù)作為特定目的的組織,或者判斷一個特定組織提供了什么XML Web服務(wù),這可能是非常必要的。
UDDI(統(tǒng)一描述發(fā)現(xiàn)和集成規(guī)范)規(guī)格定義了一個標(biāo)準(zhǔn)方法來發(fā)布和發(fā)現(xiàn)XML Web服務(wù)的信息。與UDDI關(guān)聯(lián)的XML模式定義了四個信息類型,能讓開發(fā)者使用一個發(fā)布的XML Web服務(wù)。這些是:商業(yè)信息、服務(wù)信息、綁定信息和其他用于服務(wù)的規(guī)范的信息。
作為UDDI工程的核心組件,UDDI Business Registry(業(yè)務(wù)登記)允許業(yè)務(wù)編程定位其他組織發(fā)布的XML Web服務(wù)的信息。開發(fā)者可以使用UDDI Business Registry來定位發(fā)現(xiàn)文件和服務(wù)描述。更多信息,請看UDDI Web站點(diǎn)(http://uddi.microsoft.com)。
ASP.NET XML Web服務(wù)發(fā)現(xiàn)
XML Web服務(wù)發(fā)現(xiàn)是使用Web服務(wù)描述語言WSDL定位或發(fā)現(xiàn)一個或多個描述特定的XML Web服務(wù)的文件的操作。它讓XML Web服務(wù)客戶端得知一個XML Web服務(wù)是否存在并且到哪里找到這個XML Web服務(wù)的描述文件。
一個發(fā)布的.disco文件,是包含連接到其他描述XML Web服務(wù)的資源的XML文件,能夠編程發(fā)現(xiàn)一個XML Web服務(wù)。下面的代碼給出了一個發(fā)現(xiàn)文件的結(jié)構(gòu)的例子:
- <?xml version="1.0" encoding="utf-8" ?>
- <discovery xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xmlns=
"http://schemas.xmlsoap.org/disco/">- <contractRef ref="http://www.contoso.com/Counter.asmx?wsdl" docRef=
"http://www.contoso.com/Counter.asmx"- xmlns="http://schemas.xmlsoap.org/disco/scl/" />
- <soap address="http://www.contoso.com/Counter.asmx" xmlns:q1=
"http://tempuri.org/" binding="q1:CounterSoap"- xmlns="http://schemas.xmlsoap.org/disco/soap/" />
- </discovery>
【編輯推薦】