• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ASP.NET創建Web服務之XML基礎結構

    發表于:2007-05-25來源:作者:點擊數: 標簽:webxmlASP.NET創建服務
    為了在 網絡 多樣性方面取得成功,XML Web服務必須不關心所選擇的操作系統、對象模型和程序語言。而且,XML Web服務為了和其他基于Web的技術一樣被廣泛接受,它們必須: 松散耦聯 :如果兩個系統中,只有使用的命令能理解前面提到過的自我描述基于文本的消息
    為了在網絡多樣性方面取得成功,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站點(http://uddi.microsoft.com)。

      XML Web服務發現

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

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

    <?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>

      注意:發現文檔是一個元素容器,一般包含到提供用于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規格的信息,請看W3C Web站點(http://www.w3.org/TR/wsdl)。

      XML Web服務連接格式

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

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

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

      HTTP-GET和HTTP-POST

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

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

      與HTTP-GET類似,HTTP-POST參數也是被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信封,包括SMTP、FTP甚至一個軟盤。

      更多SOAP規格的信息,請看W3C Web站點(http://www.w3.org/TR/soap)。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>