ASP.NET創(chuàng)建XML Web服務全接觸(2)
發(fā)表時間:2024-06-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]為了在網(wǎng)絡多樣性方面取得成功,XML Web服務必須不關心所選擇的操作系統(tǒng)、對象模型和程序語言。而且,XML Web服務為了和其他基于Web的技術一樣被廣泛接受,它們必須: 松散耦聯(lián):如果兩個系統(tǒng)中,只有使用的命令能理解前面提到過的自我描述基于文本的消息,那么這兩個系統(tǒng)就被認為是松散耦聯(lián)的。而另...
為了在網(wǎng)絡多樣性方面取得成功,XML Web服務必須不關心所選擇的操作系統(tǒng)、對象模型和程序語言。而且,XML Web服務為了和其他基于Web的技術一樣被廣泛接受,它們必須:
松散耦聯(lián):如果兩個系統(tǒng)中,只有使用的命令能理解前面提到過的自我描述基于文本的消息,那么這兩個系統(tǒng)就被認為是松散耦聯(lián)的。而另一方面,緊密耦聯(lián)的系統(tǒng)使用大量的定制的軟件來增強系統(tǒng)間的通訊,并且需要對系統(tǒng)之間了解的更多。
無所不在的通信:現(xiàn)在個人不太可能能夠構造一個操作系統(tǒng),或者在近期內(nèi)也不會整合接入因特網(wǎng)的能力,所以這就要求提供一個無所不在的通信渠道。同樣,把幾乎任何系統(tǒng)和設備連接到因特網(wǎng)的能力將確保這樣的系統(tǒng)和設備能夠被連接到因特網(wǎng)的其他的系統(tǒng)或設備使用。
通用的數(shù)據(jù)格式:通過采用現(xiàn)有的開放標準而不是專用的閉環(huán)式通信方法,任何系統(tǒng)都能支持能夠理解XML Web服務的相同的開放標準。使用自我描述的基于文本的消息,XML Web服務和它們的客戶可以共享這些消息,而不必知道每個底層系統(tǒng)的組成,這將能夠在獨立的完全不同的系統(tǒng)之間通信。XML Web服務使用XML來實現(xiàn)這個功能。
XML Web服務使用一個提供下列功能的基礎結構:一個發(fā)現(xiàn)機制,用于定位XML Web服務;一個服務描述,用于定義如何使用這些服務;以及用來通信的標準連接格式。下列插圖顯示了這個基礎結構的一個實例。
基礎結構塊 | 職能 |
XML Web服務目錄 | XML Web服務目錄提供一個中央地址,用于定位其他組織提供的XML Web服務。象UDDI登記這樣的XML Web服務目錄實現(xiàn)這個職能。XML Web服務的客戶端可以引用XML Web服務目錄,也可以不引用XML Web服務目錄。 |
XML Web 服務發(fā)現(xiàn) | XML Web服務發(fā)現(xiàn)是使用Web服務描述語言(WSDL)定位或發(fā)現(xiàn)一個或多個描述特別的XML Web服務的相關文檔。DISCO規(guī)格定義了定位服務描述的規(guī)則。如果XML Web服務客戶了解服務描述的位置,他們可以繞過發(fā)現(xiàn)步驟。 |
XML Web服務描述 | 為了了解如何與一個特定的XML Web服務交互作用,需要提供一個描述來定義XML Web服務支持的交互操作。XML Web服務客戶端在可以使用一個XML Web服務之間必須了解如何與它交互。 |
XML Web服務連接格式 | 為了能夠進行通用通信,XML Web服務使用開放連接格式來進行通信,這些是任何支持最普通的Web標準的系統(tǒng)都能夠理解的協(xié)議。SOAP是用于進行XML Web服務通信的關鍵協(xié)議。 |
XML Web服務目錄
和使用因特網(wǎng)上任何其他的資源一樣,XML Web服務目錄如果沒有某些查找方法的話,它是不可能夠找到一個特定的XML Web服務的。XML Web服務目錄提供了中央地址,可以讓XML Web服務供應者在其上發(fā)布他們提供的XML Web服務的信息。這樣的目錄甚至可以是XML Web服務本身,可以編程訪問并且提供搜索結果來響應XML Web服務客戶端的查詢。使用一個XML Web服務目錄來定位一個提供XML Web服務作為特定目的的組織,或者判斷一個特定組織提供了什么XML Web服務,這可能是非常必要的。
UDDI(統(tǒng)一描述發(fā)現(xiàn)和集成規(guī)范)規(guī)格定義了一個標準方法來發(fā)布和發(fā)現(xiàn)XML Web服務的信息。與UDDI關聯(lián)的XML模式定義了四個信息類型,能讓開發(fā)者使用一個發(fā)布的XML Web服務。這些是:商業(yè)信息、服務信息、綁定信息和其他用于服務的規(guī)范的信息。
作為UDDI工程的核心組件,UDDI Business Registry(業(yè)務登記)允許業(yè)務編程定位其他組織發(fā)布的XML Web服務的信息。開發(fā)者可以使用UDDI Business Registry來定位發(fā)現(xiàn)文件和服務描述。更多信息,請看UDDI Web站點(http://uddi.microsoft.com)。
XML Web服務發(fā)現(xiàn)
XML Web服務發(fā)現(xiàn)是使用Web服務描述語言WSDL定位或發(fā)現(xiàn)一個或多個描述特定的XML Web服務的文件的操作。它讓XML Web服務客戶端得知一個XML Web服務是否存在并且到哪里找到這個XML Web服務的描述文件。
一個發(fā)布的.disco文件,是包含連接到其他描述XML Web服務的資源的XML文件,能夠編程發(fā)現(xiàn)一個XML Web服務。下面的代碼給出了一個發(fā)現(xiàn)文件的結構的例子:
<?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> |
注意:發(fā)現(xiàn)文檔是一個元素容器,一般包含到提供用于XML Web服務的發(fā)現(xiàn)信息的資源的鏈接。如果關聯(lián)的是URL,它們假定關聯(lián)到發(fā)現(xiàn)文檔的位置。
然而,一個實現(xiàn)XML Web服務的Web站點不必支持發(fā)現(xiàn)。另一個站點可以負責描述這個服務,例如一個XML Web服務目錄。沒有一種公共的方法用來發(fā)現(xiàn)服務,例如當你創(chuàng)建一個私人使用的服務時。