申請免費試用、咨詢電話:400-8352-114
AMTeam.org
把你的Web服務展現在世界面前
在前一篇文章里,我們通過一個基本示例演示了用.NET創(chuàng)建XML
Web服務的方便性。所做的工作無非是創(chuàng)建了一個簡單的文本文件,然后把它放Web服務器上而已,輕敲少許代碼,你就輕松擁有了一種具有完備功能意義的Web服務。但是,我們還需要采取什么措施才能發(fā)布這個簡單的服務使得別人能夠用到它呢?此外,其他人用什么法子才能找到我們的服務呢?
在這篇文章里,我們就將探討一下這些問題。首先讓我們了解下名稱空間這一(namespaces)概念,有了它才能有效地避免同其他Web服務發(fā)生沖突。然后,我們接著討論如何在目錄里發(fā)布你的Web服務以便其人能夠使用它。
名稱空間
當我們在前面的文章中創(chuàng)建ConvertMoney
Web服務并且用瀏覽器訪問它的時候,.NET框架會自動地產生一個網頁。這一網頁的出現使得測試服務變得相當容易。但是,正如你從圖A所看到的那樣,網頁中包含了大量信息。大多數開發(fā)者不會花時間去閱讀這些網頁展示的信息。然而,你應該理解這些內容在向你傳達些什么信息,為什么說這些信息非常重要。
圖A
.NET Web 服務生成的ConvertMoney網頁
網頁上的頭兩行說明以下內容:
該Web服務用http://tempuri.org/ 作為默認的名稱空間。
在XML
Web服務公開發(fā)布之前建議修改默認的名稱空間。
這到底是什么意思呢?原來,每一種Web服務都需要一個名稱空間(namespace)。所謂名稱空間就是標識Web服務的一種附加的方法。如果你和某人都創(chuàng)建了同名的ConvertMoney
Web服務,那么這兩個Web服務將在不同的名稱空間之內存在,這樣不會發(fā)生混淆。
.NET Web服務的缺省名稱空間是tempuri.org。其含義是“temporary uniform resource
identifiers”,中文的意思是“臨時性的統(tǒng)一資源標識符”,也可以簡稱temp
URI。微軟建議,在你公開發(fā)布自己的Web服務之前最好修改這一名稱空間,哪怕“公共”這個詞語只意味著在你的公司內部有效。通常的情況下,最好用你公司的域名作為命名空間。
設置名稱空間很簡單,在你的Web服務中添加少許代碼即可。要加入的代碼不過是出現在類之前的WebService關鍵詞的一個屬性。就我們的ConvertMoney
Web服務而言,代碼的前3行原本如下所示:
<%@ WebService Language="VB" Class="ConvertMoney"
%>
Imports System.Web.Services
<WebService()>Public Class
ConvertMoney
為了修改名稱空間你只需要在WebService標簽之前添加Namespace屬性即可,如下所示:
<%@ WebService Language="VB" Class="ConvertMoney"
%>
Imports System.Web.Services
<WebService(Namespace:="http://volanttraining.com")> _
Public Class
ConvertMoney
由于增加了這個Namespace屬性,現在你的ConvertMoney Web服務就同其他人的 ConvertMoney
Web服務區(qū)分開了。如果你再運行Web服務,關于tempuri.org的提示信息就不再出現了(圖B)。該服務的運行沒什么變化,和以前一樣,但它不再使用tempuri.org這個缺省的名稱空間了,現在它正使用的名稱空間是volanttraining.com。
圖B
沒有提示信息的ConvertMoney Web服務
UDDI:用于Web服務的黃頁
為了發(fā)布你的Web服務以便其它人能使用它,你需要在一個可查找的目錄中登記自己的服務。幸好,這樣的一種目錄已經出現了:這就是所謂的UDDI。UDDI是一種開放的、與供應商無關的標準,它就像是網絡世界中的黃頁。你可以通過UDDI找到現有的Web服務或者發(fā)布你自己的Web服務。其實,Web服務并沒有拷貝到UDDI服務器上,UDDI的作用不過是列出現有的服務指引人們找到服務所在的服務器。從這一意義來看,它是一種真正的信息索引目錄而不是存儲具體信息的倉庫。
你可以訪問UDDI的網站了解有關UDDI的更多信息。這是公共的UDDI,任何人都能從中檢索它,通過它列出Web服務信息。為了使用公共的UDDI目錄,你必須注冊一個帳號。當然,你還可以在自己的機構內引入UDDI;在你的企業(yè)內部安裝UDDI服務器之后,你的開發(fā)人員就可以發(fā)布、發(fā)現和使用Web服務了。
當你訪問UDDI網站的時候,你可以在目錄中注冊你的公司。因為UDDI是一個開放的計劃,所以微軟、HP以及IBM等公司都在使用它。參與該計劃的每家公司都運行著自己的UDDI服務器,因此你必須選擇自己想訪問的公司。版本1就是目前的UDDI版本,版本2還處于測試階段。如果你決定訪問微軟版本1
UDDI站點,那么你可以從這里檢索現有的Web服務。
UDDI在檢索特定服務或功能方面具有相當高的靈活性。你可以根據公司的名字、商業(yè)地點、SIC代碼或其他標準檢索服務。例如,如果你想檢索術語“zip”,搜索條件設置為“按名稱檢索”,那么返回的Web服務的名字將包含“zip”字樣。
除了檢索服務以外,你還可以注冊自己。一旦你在網站上注冊了自己的公司,你就能為你注冊的Web服務添加服務名、服務說明和Web地址。
小結
我們現在知道用.NET創(chuàng)建XML
Web服務以及添加名稱空間來區(qū)別其他Web服務的過程相當簡單。然后,你可以把自己的服務發(fā)布到使用UDDI的公共目錄以便其它人能發(fā)現并且消費你的Web服務。你還可以用UDDI尋找其他的Web服務用在自己的應用程序里,此外,你甚至可以你的機構內部使用UDDI,通過它為你的企業(yè)開發(fā)注冊Web服務。
|