WSDL - 描述Web服務(wù)的XML格式
WSDL(Web服務(wù)描述語言,Web Services Description Language)是為描述Web服務(wù)發(fā)布的XML格式。W3C組織(World Wide Web Consortium)沒有批準(zhǔn)1.1版的WSDL,當(dāng)前的WSDL版本是2.0,是W3C的推薦標(biāo)準(zhǔn)(recommendation)(一種官方標(biāo)準(zhǔn)),并將被W3C組織批準(zhǔn)為正式標(biāo)準(zhǔn)。
簡介
WSDL(Web服務(wù)描述語言,Web Services Description Language)是為描述Web服務(wù)發(fā)布的XML格式。W3C組織(World Wide Web Consortium)沒有批準(zhǔn)1.1版的WSDL,當(dāng)前的WSDL版本是2.0,是W3C的推薦標(biāo)準(zhǔn)(recommendation)(一種官方標(biāo)準(zhǔn)),并將被W3C組織批準(zhǔn)為正式標(biāo)準(zhǔn)。
在諸多技術(shù)文獻中通常將Web服務(wù)描述語言簡寫為WSDL,讀音通常發(fā)為:"wiz-d?l"。
WSDL描述Web服務(wù)的公共接口。這是一個基于XML的關(guān)于如何與Web服務(wù)通訊和使用的服務(wù)描述;也就是描述與目錄中列出的Web服務(wù)進行交互時需要綁定的協(xié)議和信息格式。通常采用抽象語言描述該服務(wù)支持的操作和信息,使用的時候再將實際的網(wǎng)絡(luò)協(xié)議和信息格式綁定給該服務(wù)。
組成
WSDL文檔可以分為兩部分。頂部分由抽象定義組成,而底部分則由具體描述組成。
歷史
在2001年3月,WSDL 1.1被IBM、微軟作為一個W3C紀(jì)錄(W3C note)提交到有關(guān)XML協(xié)議的W3C XML活動,用于描述網(wǎng)絡(luò)服務(wù)。(W3C紀(jì)錄僅供討論。一項W3C紀(jì)錄的發(fā)布并不代表它已被W3C或W3C團隊亦或任何W3C成員認(rèn)可。)在2002年7月,W3C發(fā)布了第一個WSDL 1.2工作草案。
2000年以后,人們普遍認(rèn)識到基于公共——專有互聯(lián)網(wǎng)之上的電子商務(wù)具有極大的發(fā)展?jié)摿?,因此需要?chuàng)建一套全新的基于互聯(lián)網(wǎng)的開放通信框架,以滿足企業(yè)對電子商務(wù)中各分立系統(tǒng)之間通信的要求。于是,人們提出了Web服務(wù)的概念,希望通過將企業(yè)對外服務(wù)封裝為基于統(tǒng)一標(biāo)準(zhǔn)的Web服務(wù),實現(xiàn)異構(gòu)系統(tǒng)之間的簡單交互。這一時期,出現(xiàn)了三個著名的Web服務(wù)標(biāo)準(zhǔn)和規(guī)范:
簡單對象訪問協(xié)議(Simple Object Access Protocal,SOAP)
Web服務(wù)描述語言(Web Services Description Language,WSDL)
通用服務(wù)發(fā)現(xiàn)和集成協(xié)議(Universal Discovery Description and Integration,UUDI)
這三個標(biāo)準(zhǔn)可謂Web服務(wù)三劍客,極大地推動了Web服務(wù)的普及和發(fā)展。短短幾年之間,互聯(lián)網(wǎng)上出現(xiàn)了大量的Web服務(wù),越來越多的網(wǎng)站和公司將其對外服務(wù)或業(yè)務(wù)接口封裝成Web服務(wù),有力地推動了電子商務(wù)和互聯(lián)網(wǎng)的發(fā)展。Web服務(wù)也是互聯(lián)網(wǎng)Web 2.0時代的一項重要特征。
元素
WSDL元素基于XML語法描述了與服務(wù)進行交互的基本元素:
Type(消息類型):數(shù)據(jù)類型定義的容器,它使用某種類型系統(tǒng)(如XSD)。
Message(消息):通信數(shù)據(jù)的抽象類型化定義,它由一個或者多個part組成。
Part:消息參數(shù)
Operation(操作):對服務(wù)所支持的操作進行抽象描述,WSDL定義了四種操作:1.單向(one-way):端點接受信息;2.請求-響應(yīng)(request-response):端點接受消息,然后發(fā)送相關(guān)消息;3.要求-響應(yīng)(solicit-response):端點發(fā)送消息,然后接受相關(guān)消息;4.通知(notification):端點發(fā)送消息。
Port Type(端口類型):特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范。
Binding:特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范。
Port:定義為綁定和網(wǎng)絡(luò)地址組合的單個端點。
Service:相關(guān)端口的集合,包括其關(guān)聯(lián)的接口、操作、消息等。
