熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET創建Web服務之XML基礎結構

2013-11-13 10:03:45  來源: .NET編程 

  為了在網絡多樣性方面取得成功XML Web服務必須不關心所選擇的操作系統對象模型和程序語言而且XML Web服務為了和其他基於Web的技術一樣被廣泛接受它們必須

  松散耦聯如果兩個系統中只有使用的命令能理解前面提到過的自我描述基於文本的消息那麼這兩個系統就被認為是松散耦聯的而另一方面緊密耦聯的系統使用大量的定制的軟件來增強系統間的通訊並且需要對系統之間了解的更多

  無所不在的通信現在個人不太可能能夠構造一個操作系統或者在近期內也不會整合接入因特網的能力所以這就要求提供一個無所不在的通信渠道同樣把幾乎任何系統和設備連接到因特網的能力將確保這樣的系統和設備能夠被連接到因特網的其他的系統或設備使用

  通用的數據格式通過采用現有的開放標准而不是專用的閉環式通信方法任何系統都能支持能夠理解XML Web服務的相同的開放標准使用自我描述的基於文本的消息XML Web服務和它們的客戶可以共享這些消息而不必知道每個底層系統的組成這將能夠在獨立的完全不同的系統之間通信XML Web服務使用XML來實現這個功能

  XML Web服務使用一個提供下列功能的基礎結構一個發現機制用於定位XML Web服務一個服務描述用於定義如何使用這些服務以及用來通信的標准連接格式下列插圖顯示了這個基礎結構的一個實例

  XML Web服務基礎結構

  基礎結構塊職能
XML Web服務目錄XML Web服務目錄提供一個中央地址用於定位其他組織提供的XML Web服務象UDDI登記這樣的XML Web服務目錄實現這個職能XML Web服務的客戶端可以引用XML Web服務目錄也可以不引用XML Web服務目錄
XML Web 服務發現XML Web服務發現是使用Web服務描述語言(WSDL)定位或發現一個或多個描述特別的XML Web服務的相關文檔DISCO規格定義了定位服務描述的規則如果XML Web服務客戶了解服務描述的位置他們可以繞過發現步驟
XML Web服務描述為了了解如何與一個特定的XML Web服務交互作用需要提供一個描述來定義XML Web服務支持的交互操作XML Web服務客戶端在可以使用一個XML Web服務之間必須了解如何與它交互
XML Web服務連接格式為了能夠進行通用通信XML Web服務使用開放連接格式來進行通信這些是任何支持最普通的Web標准的系統都能夠理解的協議SOAP是用於進行XML Web服務通信的關鍵協議

  XML Web服務目錄

  和使用因特網上任何其他的資源一樣XML Web服務目錄如果沒有某些查找方法的話它是不可能夠找到一個特定的XML Web服務的XML Web服務目錄提供了中央地址可以讓XML Web服務供應者在其上發布他們提供的XML Web服務的信息這樣的目錄甚至可以是XML Web服務本身可以編程訪問並且提供搜索結果來響應XML Web服務客戶端的查詢使用一個XML Web服務目錄來定位一個提供XML Web服務作為特定目的的組織或者判斷一個特定組織提供了什麼XML Web服務這可能是非常必要的

  UDDI(統一描述發現和集成規范)規格定義了一個標准方法來發布和發現XML Web服務的信息與UDDI關聯的XML模式定義了四個信息類型能讓開發者使用一個發布的XML Web服務這些是商業信息服務信息綁定信息和其他用於服務的規范的信息

  作為UDDI工程的核心組件UDDI Business Registry(業務登記)允許業務編程定位其他組織發布的XML Web服務的信息開發者可以使用UDDI Business Registry來定位發現文件和服務描述更多信息請看UDDI Web站點()

  XML Web服務發現

  XML Web服務發現是使用Web服務描述語言WSDL定位或發現一個或多個描述特定的XML Web服務的文件的操作它讓XML Web服務客戶端得知一個XML Web服務是否存在並且到哪裡找到這個XML Web服務的描述文件

  一個發布的disco文件是包含連接到其他描述XML Web服務的資源的XML文件能夠編程發現一個XML Web服務下面的代碼給出了一個發現文件的結構的例子

  <?xml version= encoding=utf ?>
<discovery xmlns:xsd= xmlns:xsi=instance xmlns=
<contractRef ref= docRef=
xmlns= />
<soap address= xmlns:q= binding=q:CounterSoap
xmlns= />
</discovery>

  注意發現文檔是一個元素容器一般包含到提供用於XML Web服務的發現信息的資源的鏈接如果關聯的是URL它們假定關聯到發現文檔的位置

  然而一個實現XML Web服務的Web站點不必支持發現另一個站點可以負責描述這個服務例如一個XML Web服務目錄沒有一種公共的方法用來發現服務例如當你創建一個私人使用的服務時
  XML Web服務描述

  XML Web服務基礎結構創建在使用遵循一個公布的服務描述的基於XML的消息的通信的基礎上服務描述是一個使用WSDL語言的XML語法編寫的XML文檔定義了XML Web服務能理解的XML Web服務消息格式服務描述起一個協定的作用用來定義一個XML Web服務的行為並且指示潛在的客戶如何與之交互XML Web服務的行為取決於服務定義和支持的消息類型

  這些模式在概念上指示了服務使用者在相應格式的消息被發送到XML Web服務時可以期待什麼

  例如與遠程過程調用(RPC)風格的服務關聯的請求/響應模式將定義哪個SOAP消息模式用來調用一個特定的方法這個模式還將定義響應SOAP消息將遵循的格式

  消息模式的另一個例子表示單方面的交互操作這個模式在單向通信發生的時候被使用在這種情況下發送方不會從XML Web服務中接收任何消息包括故障消息 定義SOAP消息格式的模式可以在內部定義來進行實際的服務描述它們也可以在外部定義並被導入服務描述

  除了消息格式的定義和消息模式以外服務描述還可選擇性的包含每個XML Web服務入口點的地址這個地址的格式對應於用於訪問服務的協議例如URL對應於HTTP或者電子郵件地址對應於SMTP(簡單郵件傳送協議)

  更多WSDL規格的信息請看WC Web站點()

  XML Web服務連接格式

  象DCOM那樣的二進制協議由一個去掉專有的通信協議的頂部的方法請求層組成這樣的協議對創建普遍可用的XML Web服務沒有幫助這麼說並不是說阻止你們在XML Web服務方案中使用這樣的協議但是使用它們的缺點在於這樣的協議依靠它們的底層系統的特定結構因此限制了潛在客戶的增加

  取而代之你可以構造XML Web服務來協同一個或多個開放協議一起工作就象HTTP和SOAP的綜合使用一樣象你所料想的那樣基礎結構要求支持不同的協議

  XML Web服務不局限於提供遠程過程調用訪問它們還可以被構造來交換結構化的信息例如采購訂單和發貨單並且還可用於自動化和連接內部與外部的業務處理

  HTTPGET和HTTPPOST

  HTTPGET和HTTPPOST是使用HTTP的標准協議動詞用於編碼和傳送變量名/變量值對參數並且使用相關的請求語義每個HTTPGET和HTTPPOST都由一系列HTTP請求頭組成這些請求頭定義了客戶端從服務器請求了什麼而響應則是由一系列HTTP應答頭和應答數據組成如果請求成功則返回應答

  HTTPGET以使用MIME類型application/xwwwformurlencoded的urlencoded文本的格式傳遞參數Urlencoding是一種字符編碼保證被傳送的參數由遵循規范的文本組成例如一個空格的編碼是%附加參數還能被認為是一個查詢字符串

  與HTTPGET類似HTTPPOST參數也是被URL編碼的然而變量名/變量值不作為URL的一部分被傳送而是放在實際的HTTP請求消息內部被傳送

  SOAP簡介

  SOAP是一個簡單的重量輕的基於XML的協議用於交換Web上的結構化的和模式化的信息SOAP的總體設計目標是使它保持盡可能的簡單並且提供最少的功能這個協議定義了一個不包含應用程序或傳輸語義的消息框架因此這個協議是模塊化的並且非常利於擴展
通過越過標准傳輸協議SOAP能利用因特網現有的開放體系結構並且能夠被任何支持最基本的因特網標准的系統所接受通過越過標准傳輸協議SOAP能利用因特網現有的開放體系結構並且能夠被任何支持最基本的因特網標准的系統所接受你可以看到基礎結構要求支持一個雖然簡單但是功能強大的遵從SOAP的XML Web服務因為它基本不向現有的因特網基礎結構中添加新的內容

  然而卻有助於訪問SOAP構造的服務

  SOAP協議規范由四個主要的部分組成第一部分定義了一個強制的可擴展信封(envelope)用於封裝數據SOAP信封定義了一條SOAP消息和在SOAP信息處理器之間交換的基本單元這是這個規格唯一的強制性的部分

  SOAP協議規范的第二部分定義了可選數據編碼規則用於表示應用程序定義的數據類型和直接圖表以及一個用於序列化非語法數據模型的統一模型

  第三部分定義了一個遠程過程調用風格(請求/響應)信息交換的模式每個SOAP消息都是單向傳輸雖然SOAP的根源於RPC但是它不局限於請求/響應機制XML Web服務經常聯合SOAP消息來實現這樣的模式但是SOAP並不必須使用信息交換模式並且規格的這個部分是可選的

  這個規格的第四部分定義了SOAP和HTTP之間的綁定然而這個部分還是可選的你可以讓SOAP和任何轉送協議或機制一起協同使用這些傳送協議能夠傳送SOAP信封包括SMTPFTP甚至一個軟盤


From:http://tw.wingwit.com/Article/program/net/201311/12445.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.