基本定義
web服務檢視語言(WSIL)是一種xml文檔的格式,以簡便並可擴展的樣式來簡化Web服務描述的發現和聚合。它與統一描述、集成和發現(UDDI)規範在作用域上類似,但WSIL是一種補充,不僅僅是對於服務發現的競爭和典範。
WSIL 規範的益處
規範旨在從不同級別和多種角度來描述 Web 服務。這個被提議的 Web 服務描述語言(WSDL)的目標是在功能級別上描述服務。統一描述、發現和集成(UDDI)概要旨在提供一個更加以企業中心化的透視圖。這些被建議的標準依然沒有提供的是綁定在一起的能力,在提供服務這一點上,以一種易於創建和使用的方式提供不同的信息資料。Web 服務檢查規範通過定義 XML 語法解決了這種需要。對服務描述文檔的不同類型,XML 語法便於引用聚合,而且對這種語法的例子提供了定義良好的使用模式。這樣,Web 服務檢查規範便提供了檢查服務提供的站點的方式。作為聚集 Web 服務描述信息的倉庫現已存在。Web 服務檢查規範提供了引用和利用現存倉庫的機制,所以,如果包含在其中的信息不需要複製的話就不必進行複製了。
WSIL 文檔對 Web 地址中的其它可獲得的 Web 服務文檔進行指示。WSIL 文檔能指向其它的 WSIL 文檔,UDDI 企業或服務入口和 WSDL 文檔。一旦您找到需要的服務,就能為 Web 服務導入 WSDL 文檔生成 Web 服務調用客戶代理。
UDDI 註冊中心和 WSIL 通過 Web 服務檢查數據標籤 wsiluddi 緊密相連。在 WSIL 中,參考指示用來連線公布在 UDDI 註冊中心的企業或服務。
WSIL 規範為訪問現存的服務提供了強有力的方式;然而,WSIL 文檔可能包含一些對其它 WSIL 文檔的引用,這些文檔能創建 n 層 WSIL 文檔樹。確定當 WSIL 引用了多少服務時就變得非常麻煩了。
越來越多的人正在體驗將 WSIL 用作他們的 Web 服務的便利的註冊。企業需要做的是將他們可獲得的 Web 服務連結到默認位置的 WSIL 文檔中。因此,在 WSIL 文檔中高效地掃描企業應用程式(已經作為 Web 服務公布)便成為一個至關重要的問題。
SOAP, UDDI, WSIL和WSDL間的關係
UDDI:UDDI: 發現和集成
WSDL:WSIL:WSIL: Web服務檢查語言
WS - I:WS-L: Web服務互操作性(Web Services Interoperability)
SOAP:SOAP: 簡單對象訪問協定與UDDI(Universal Description,Discovery,and Integration)的區別 自從它發布後,UDDI因執行而被廣為批評,並且對它適當的質疑接二連三的出現在Web服務體系發展舞台上。WSIL是由IBM組織和微軟工程師創造的,並在2001年11月發布。它因其基於文檔的方式而顯的很有意義,它更輕量級和直接,並更好地在現有地Web體系中起槓桿的作用。這種方式使得規範上升的更加顯著。
WSIL and UDDI: Same Space, Different Models. WSIL和UDDI作用於服務的出版和發現上,但是它們的模型不一樣。在本部分里,我們將詳細介紹它們的區別。
UDDI用中央模型來實現服務發現,該模型是一個或多個包含多重業務實體及所提供服務的倉庫,你可以把UDDI比作是你電話簿里的黃頁,在此你可以組織多重業務並能列表提供的貨物和服務描述及如何與它們聯繫。本規範通過簡單對象訪問協定(SOAP)提供了高水準的功能,需要明確一種基礎構造以紮實地往高處發展,並且根據需要來利用。
WSIL以一種分散的方式來實現服務發現,服務描述信息可以用一種簡單可擴展的XML文檔格式來分布到任何位置。與UDDI相比,它並不關係到業務實體信息,也不需要明確一種特殊的服務描述格式。WSIL運作在假定你已經熟悉服務供應者的前提下,並依靠其他的一些服務描述機制,比如Web服務描述語言(WSDL)。
WSIL文檔採用現存一些簡單、規範的Web結構來定位。一般來說,WSIL就像一張名片,它可以表現明確的實體、服務及聯繫信息,並且可以有特色地被用來傳送。WSIL的一些簡單的功能和特性留給了開發者來處理實現。如果一篇文檔內容很多或者是文檔集結構很雜,WSIL開始停滯並且對查詢及管理操作難以處理。最後,在WSIL工具包發展的同時它的發展效果將會降低,類似於Apache軟體基金會下的Axis項目。功能簡單的XML文檔格式也可以很輕鬆的創建一些新穎有創造性的程式。
正如你所見,UDDI和WSIL都是關於Web服務發現的機制,但它們的模型完全兩樣,可以根據你的條件來選擇用那一種。在一般情況下,兩者兼而用之效果會更好。下面你會看到,WSIL可以用在UDDI倉庫而且在裡面有服務描述。
WSIL模型比UDDI更寧靜。在許多方面,WSIL就像支持Web服務的RDF站點摘要(rss)。RSS是一種採用指示器來發布可以組合內容的檔案格式,WSIL是一種採用引用來發布可以被發現和綁定的Web服務的檔案格式。
WSIL核心定義:
WSIL規範被設計以支持一些簡單、輕量級及可擴展的服務發現,而且,WSIL可以使得信息能被創建、發布以及維護。WSIL核心原理包含六種標記。在本部分里,我將在測試前先帶大家回顧一下WSIL文檔結構的文法。使用XML名空間,WSIL可以被擴展以支持一些服務描述和集合關於發現進程所需的信息。
所有的WSIL文檔以inspection做為根節點,該標記包含文檔名空間聲明及其他一些服務信息和引用標記。由於這只是個簡單的文檔,所以只定義了WSIL名空間。
抽象標記
抽象標記是一種隨意的標記,可以插入到允許子標記含有信息以描述父標記的標記集裡。在這裡我們提供了一個簡短的文本描述,以後我們也將用該抽象標記來為服務提供些文檔,並且提供一些其他文檔的連線。如果描述是用一種規範的語言寫的,我可以隨意定義一個xml:lang屬性,如同XML1.0規範里所述的。
在本例中,我定義了一個指向單一服務描述的引用,也就是一個WSDL檔案,以服務標記集開頭。名稱類似於抽象標記,可以允許作者定義一個服務描述名稱,比如:存儲發現服務。該名稱僅用於文檔而且可以不唯一,正如抽象標記一樣,它也可以定義一個xml.lang屬性。
描述標記集是服務的核心模組,它包含了發現特殊的服務描述的所有信息。在本例子裡,我們僅僅引用一個定義了服務描述的WSDL檔案,而不需要保留消費者額外的信息。描述標記用一個referencedNameSpace屬性來指定服務描述名空間,該名空間引用可以決定合適的引用及是否在引用末端保留服務描述。描述也可以用一個自定義的location屬性來定義一個服務描述的直接引用。該機制對我們這個簡單的引用已經足夠了,但是WSIL的擴展性可以很好的在描述標記集裡插入附加信息以給客戶保存服務信息。服務區能提供多重描述標記以支持客戶的不同服務描述的選擇。例如:一個服務可以定義對一個WSIL、UDDI和Html文檔的引用。
除了對服務描述的引用,WSIL提供對其他服務指示器集合的連線,比如其他的WSIL檔案或UDDI倉庫。這個可以通過link標記集加以簡化,就如服務區裡的描述標記,link標記集以相同的方式來實現referenceNamespace和location. 同樣的,它包含擴展WSIL的元素以的客戶連線到此集合上,在我們的例子中,我們連線到另一個WSIL文檔,大概帶有Acme產業商業性服務的服務描述。進入討論組討論。
現存的 WSIL 搜尋機制
要定位和使用給定公司的 Web 服務有幾種方法。Borland 示例了一些尋找可用的 Web 服務的方法。您可以在 Borland Web 站點查看例子:[來源:Web Services Explorer from Borland]:
“進入您想搜尋的 Web 站點 URL 或者本地 URL。[執行對於指定的 WSIL 文檔的查找。]擴展新的 WSIL 節點來查看可用的服務和連結節點。如果引用是針對其它的 WSIL 文檔,那么選擇 WSIL 引用連結並在具體頁面點擊 Execute 按鈕。擴展連結節點以顯示羅列在 WSIL 中的服務。”通過連結獲取所有的 Web 服務,(通過服務名稱或企業名稱進行查找)您需要重複第四步。必須手動存儲信息。
毫無疑問,生活在自動化世界裡是一種更好的方式。以下是上面所提到的主要問題:
不存在程式化的方法來聚集多重連結的 WSIL 文檔。 不存在有效的方法深入探索連結的 WSIL 文檔;在 WSIL 文檔中手動查詢太浪費時間。不存在遍歷過的 WSIL 文檔的清單。Web 服務是 WSDL 檔案中描述的有標準接口的 Web 組件,客戶普遍能對其訪問,例如無限設備、Web 客戶和其它的 Internet 套用客戶。
Web 服務可公布到 UDDI 註冊中,公共的或私有的文檔,或 Web 服務檢查文檔中。對 UDDI 程式設計的介紹, 檢查 IBM developerWork 指南“用 WSDK V5.1:UDDI 發現 Web 服務”。
對於學習如何利用定位在 UDDI 註冊中的 Web 服務的資料在“對為註冊 UDDI 中的 Web 服務開發 UDDI Java 應用程式”。
旅行代理 WSIL 的檔案結構
正如您所看到的,每一個 WSIL 檔案都有其自己的服務,其中的一些能被連結到一個或更多的 WSIL 檔案中。請參閱位於 ws-wsilroadblcode.zip 中的 Travel.wsil 檔案作為例子,您可以在文章的頂部或底部點擊 code 圖示進行下載。為了更好地理解 WSIL Explore 工具的使用,我們用 IBM ® WebSphere®Studio Application Developer V5.1.2 或者 IBM Rational® Application Developer V6(Application Developer)兩個組件來示例檔案結構。在上面的圖形中,我們很自然利用“樹”控制來展示檔案結構。另一方面,每次用戶點擊樹的一個節點,我們都用數據格線控制來羅列節點下的所有服務。
查看 parseWsilServlet.java(位於 ws-wsilroadblcode.zip 中),了解如何實現從 WSIL Explore 工具中得到所有的探查結果的過程。
wsilResult.jsp(位於 ws-wsilroadblcode.zip 中)從會話中獲得探查結果,並構造數據格線控制所需要的 EMF 數據模型。