国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Web Service描述語言 WSDL 詳解(1)--為什么使用WSDL?[轉]

2024-07-21 02:21:56
字體:
來源:轉載
供稿:網友
  像internet協議之類的標準有沒有為權威所利用,或者人們這樣看待它是因為順之所獲的好處遠遠超出了代價?曾經有許多試圖建立的標準都流產了。有時候,那些還沒有普遍使用的標準甚至由法令或政府規定強行推出:ada語言就是一例。

  我相信正是跟隨標準所帶來的好處使它廣泛接受。例如,對于鐵路服務來說,真正重要的是,不同公司所鋪設的鐵路結合到一起,或者是來自好幾個公司的產品協調的工作在一起。幾家大的企業合力建立了soap標準。web service描述語言(wsdl)向這種web service的提供商和用戶推出了方便的協調工作的方法,使我們能更容易的獲得soap的種種好處。幾家公司的鐵道并在一起不算什么難事,他們所需遵循的只是兩軌間的標準距離。對web service來說,這要復雜得多。我們必須先制定出指定接口的標準格式。

  曾經有人說soap并不真需要什么接口描述語言。如果soap是交流純內容的標準,那就需要一種語言來描述內容。soap消息確實帶有某些類型信息,因此soap允許動態的決定類型。但不知道一個函數的函數名、參數的個數和各自類型,怎么可能去調用這個函數呢?沒有wsdl,我可以從必備文檔中確定調用語法,或者檢查消息。隨便何種方法,都必須有人參與,這個過程可能會有錯。而使用了wsdl,我就可以通過這種跨平臺和跨語言的方法使web service代理的產生自動化。就像com和corba的idl文件,wsdl文件由客戶和服務器約定。

  注意由于wsdl設計成可以綁定除soap以外的其他協議,這里我們主要關注wsdl在http上和soap的關系。同樣,由于soap目前主要用來調用遠程的過程和函數,wsdl支持soap傳輸的文檔規范。wsdl 1.1已經作為記錄遞交給w3c(見http://www.w3.org/tr/wsdl.html)

  wsdl文檔結構

  若要理解xml文檔,將之看作塊狀圖表非常有用。下圖以xml的文檔形式說明了wsdl的結構,它揭示了wsdl文檔五個欄之間的關系。

  wsdl文檔可以分為兩部分。頂部分由抽象定義組成,而底部分則由具體描述組成。抽象部分以獨立于平臺和語言的方式定義soap消息,它們并不包含任何隨機器或語言而變的元素。這就定義了一系列服務,截然不同的網站都可以實現。隨網站而異的東西如序列化便歸入底部分,因為它包含具體的定義。

  l 抽象定義

    types

    獨立與機器和語言的類型定義

    messages

    包括函數參數(輸入與輸出分開)或文檔描述

    porttypes

    引用消息部分中消息定義來描述函數簽名(操作名、輸入參數、輸出參數)

  2 具體定義

    bindings

    porttypes部分的每一操作在此綁定實現

    services

    確定每一綁定的端口地址

  下面的圖中,箭頭連接符代表文檔不同欄之間的關系。點和箭頭代表了引用或使用關系。雙箭頭代表"修改"關系。3-d的箭頭代表了包含關系。這樣,各messages欄使用types欄的定義,porttypes欄使用messages欄的定義;bindings欄引用了porttypes欄,services欄引用bindings欄,porttypes和bindings欄包含了operation元素,而services欄包含了port元素。porttypes欄里的operation元素由bindings欄里的operation元素進一步修改或描述。

  在此背景中,我將使用標準的xml術語來描述wsdl文檔。element是指xml的元素,而"attribute"指元素的屬性。于是:

<element attribute="attribute-value">contents</element>
  內容也可能由一個或多個元素以遞歸的方式組成。根元素是所有元素之中最高級的元素。子元素總是從屬于另一個元素,父元素。

  注意,文檔之中可能只有一個types欄,或根本沒有。所有其他的欄可以只有零元素、單元素或是多元素。wsdl的列表要求所有的欄以固定的順序出現:import, types, message, porttype, binding, service。所有的抽象可以是單獨存在于別的文件中,也可以從主文檔中導入。



       圖一:抽象定義和具體定義

原文地址:http://www.yesky.com/20011013/200759.shtml
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠州市| 乌兰县| 罗源县| 蒲城县| 迁安市| 安丘市| 青海省| 永福县| 和龙市| 绿春县| 科技| 彭水| 浦东新区| 垫江县| 阳东县| 徐闻县| 绵竹市| 龙胜| 商水县| 闻喜县| 子洲县| 淮安市| 临夏市| 万安县| 边坝县| 富蕴县| 临城县| 卢湾区| 宝兴县| 射洪县| 新野县| 嘉兴市| 怀柔区| 景宁| 班戈县| 沽源县| 旺苍县| 尉犁县| 龙游县| 通城县| 唐河县|