理解UDDI
2024-07-21 02:23:34
供稿:網(wǎng)友
services(web服務(wù))是通過(guò)因特網(wǎng)或者其它網(wǎng)絡(luò)而進(jìn)行服務(wù)。然而,很多時(shí)候公司或者企業(yè)都需要發(fā)布服務(wù)提供,服務(wù)目的,以及服務(wù)協(xié)議的廣告。例如,如果你在你的web站點(diǎn)上加入證券報(bào)價(jià)機(jī),你可以通過(guò)web服務(wù)來(lái)產(chǎn)生關(guān)于證券報(bào)價(jià)機(jī)方面的廣告。但是,你如何知道這一廣告是否有用?它的作用在哪里?它會(huì)給你帶來(lái)利益嗎?而且,在哪里及如何訪問(wèn)這些廣告?答案就是uddi (統(tǒng)一描述、發(fā)現(xiàn)和集成,即universal description, discovery以及 integration)
一個(gè)基于web services的“電話(huà)號(hào)碼簿”
uddi開(kāi)始是作為一個(gè)協(xié)議而產(chǎn)生,這一個(gè)協(xié)議是描述web services地址和提供這些地址的公司或企業(yè)的規(guī)范。現(xiàn)在uddi技術(shù)已經(jīng)包括uddi業(yè)務(wù)注冊(cè)中心(uddi business registry)──有時(shí)候也稱(chēng)之為cloud services。這一注冊(cè)中心與一個(gè)電話(huà)號(hào)碼簿非常類(lèi)似,因?yàn)轭櫩涂梢酝ㄟ^(guò)注冊(cè)中心查詢(xún)已經(jīng)注冊(cè)seb services的公司列表。
一個(gè)uddi注冊(cè)中心的每一web service都可以以三個(gè)部分來(lái)描述:第一,“白頁(yè)(white pages)”描述了提供web service的公司的所有信息,包括產(chǎn)品,聯(lián)系信息等。第二,“黃頁(yè)(yellow pages)”通過(guò)分類(lèi)很容易地劃分和定位類(lèi)似的web服務(wù),比如將web services分成pdas,無(wú)線電通訊,體育評(píng)說(shuō)等。最后,“綠頁(yè)(green pages)”提供了有關(guān)聯(lián)系這一web service方法的詳細(xì)信息,比如一個(gè)soap的uri地址,或者描述這一服務(wù)及其性質(zhì)的wsdl文件。“綠頁(yè)”的內(nèi)容是由wed service提供者提供的,一般都是提供進(jìn)一步聯(lián)系信息的網(wǎng)址或者一個(gè)java rmi。
不同的賣(mài)主都有獨(dú)立的注冊(cè)中心節(jié)點(diǎn)“nodes”,包括微軟本身。如果你對(duì)節(jié)點(diǎn)及web services發(fā)布的更多信息感興趣,可以訪問(wèn)oasis站點(diǎn),這一站點(diǎn)是一個(gè)致力于“在電子商務(wù),web services等方面的開(kāi)發(fā),集成,采用結(jié)構(gòu)信息標(biāo)準(zhǔn)”的行業(yè)組織。
查看uddi注冊(cè)中心
你可以很容易地在visual studio中瀏覽uddi節(jié)點(diǎn)。任何visual studio語(yǔ)言中uddi節(jié)點(diǎn)的工作模式都是相同的,現(xiàn)在我們從visual basic角度說(shuō)明這一過(guò)程。啟動(dòng)一個(gè)vb.net工程并選擇project|add web reference。
可以看到一個(gè)將add web reference對(duì)話(huà)框作為“查找web services的出發(fā)點(diǎn)”的選擇。你可以要么鍵入一個(gè)url,要么在以下提供的超鏈接列表中點(diǎn)擊其中的一個(gè):
當(dāng)?shù)貦C(jī)器上的web services
在局域網(wǎng)中瀏覽uddi服務(wù)器(請(qǐng)記住局域網(wǎng)與廣域網(wǎng)一樣,都可以使用web services。)
查詢(xún)uddi業(yè)務(wù)注冊(cè)中心以找到web services的產(chǎn)品與公司。
探測(cè)微軟的uddi地址。
第四個(gè)鏈接是出于測(cè)試目的。微軟的地址目錄中提供很多服務(wù),你可以使用這些服務(wù)來(lái)學(xué)習(xí)如何訪問(wèn)和合并程序中的web services。
現(xiàn)在我們做一個(gè)試驗(yàn):通過(guò)第三方鏈接,查找uddi業(yè)務(wù)注冊(cè)中心。(注意:為了能夠使范例正常運(yùn)行,系統(tǒng)中一定要安裝vs.net。) 點(diǎn)擊并連接到微軟開(kāi)發(fā)的http://uddi.microsoft.com/visualstudio。這是一個(gè)節(jié)點(diǎn),你可以在這一節(jié)點(diǎn)中搜索服務(wù)類(lèi)型(比如天氣),提供者(比如xyz天氣服務(wù)),或者在類(lèi)別方案(categorization scheme)中選擇,而類(lèi)別方案其實(shí)就是一個(gè)小的uddi“黃頁(yè)”集。
在服務(wù)名稱(chēng)中輸入w%(%類(lèi)似于*,意味著以w為入口),我這里獲得29種結(jié)果──也許你的結(jié)果不一樣,因?yàn)榕c網(wǎng)絡(luò)上的站點(diǎn)一樣,web services都是不斷變化的。
現(xiàn)在在類(lèi)別方案列表中選擇并點(diǎn)擊vs web服務(wù)搜索分類(lèi)(vs web service search categorization)。在子類(lèi)別表中點(diǎn)擊日歷,然后點(diǎn)擊搜索(search)按鈕。你可以看到提供日期/時(shí)間或者其它與日歷相關(guān)的web服務(wù)的很多列表。如果你對(duì)其中某一方面感興趣,點(diǎn)擊+就可以展開(kāi)所有的入口,你可以看到顯示很多uddi數(shù)據(jù)選項(xiàng)的一個(gè)清單,包括:服務(wù)描述(service description),綁定(bindings,查看與服務(wù)相關(guān)的站點(diǎn)),訪問(wèn)站點(diǎn)(access point,你可以通過(guò)這一地址發(fā)送一個(gè)信息以激活一個(gè)特定的服務(wù)),描述(description),接口定義(interface definitions,傳遞到注冊(cè)中心的任何參數(shù))。
這里,最重要的數(shù)據(jù)選項(xiàng)是描述,比如提供美國(guó)任何一個(gè)地區(qū)的地方天氣情況。
次要重要的數(shù)據(jù)選項(xiàng)是訪問(wèn)站點(diǎn)(access point),訪問(wèn)站點(diǎn)等同于一個(gè)普通應(yīng)用程序調(diào)用的函數(shù)名稱(chēng)。你將給出函數(shù)的名稱(chēng)(在本例中為localweather)以及web service響應(yīng)。最后,點(diǎn)擊接口定義,這里你可以看到,當(dāng)訪問(wèn)web service時(shí),你必須提供必要的參數(shù)和數(shù)據(jù)類(lèi)型,如下所示:
localweather(zipcode as integer)
你也可以恢復(fù)響應(yīng)及其數(shù)據(jù)類(lèi)型:
returns: forecast as string
此時(shí),一些描述被操作完成并清除,而另一些描述并沒(méi)有被清除。節(jié)點(diǎn)上的絕大多數(shù)服務(wù)只是作為測(cè)試而發(fā)布,很多服務(wù)都是無(wú)法正常運(yùn)行,或者無(wú)法訪問(wèn)到。然而,如果你對(duì)如何在程序中操作web 服務(wù)感興趣,你可以練習(xí)這些測(cè)試服務(wù),而微軟開(kāi)發(fā)的這一站點(diǎn)也十分適合于服務(wù)的測(cè)試操作。
你也可以在visual studio ide中通過(guò)一個(gè)不同的進(jìn)程來(lái)訪問(wèn)web服務(wù)。選擇help|show啟動(dòng)頁(yè),然后點(diǎn)擊online resources tab鍵。點(diǎn)擊右面板中鏈接的xml web服務(wù)。你可以看到查找和注冊(cè)web服務(wù)的各種選擇。
在查找頁(yè)中,在uddi產(chǎn)品環(huán)境中點(diǎn)擊search選擇,然后在種類(lèi)(category)下拉式列表中選擇miscellaneous,點(diǎn)擊go就可以查找你感興趣的服務(wù)。而且,你還可以通過(guò)點(diǎn)擊不同的tab鍵和鏈接檢查綁定,描述,以及接口的信息。
wsdl的發(fā)展走向
有關(guān)自描述的概念,包括元數(shù)據(jù),發(fā)現(xiàn),以及映象等,都是很時(shí)髦的東西。你可以認(rèn)為uddi列表(服務(wù)描述,尤其是接口描述)的描述部分只是具有理論性,但是你應(yīng)該完全相信,另一xml派生的語(yǔ)言已經(jīng)由委員會(huì)構(gòu)建,這也就是wsdl(web服務(wù)描述語(yǔ)言)。wsdl的目的是建立各種規(guī)范,通過(guò)這些規(guī)范可以實(shí)現(xiàn)描述錯(cuò)誤處理,對(duì)象成員,信息,以及web 服務(wù)行為的標(biāo)準(zhǔn)化。
雖然歷史以來(lái)這種元語(yǔ)言特別地難于實(shí)施,但是希望是永遠(yuǎn)存在的。如果在閱讀本篇文章之前你已經(jīng)閱覽了其它的一些uddi注冊(cè)的描述,你應(yīng)該沒(méi)有任何疑問(wèn)的注意到,除了被廣為接受的wsdl外,還沒(méi)有其它的web服務(wù)描述的標(biāo)準(zhǔn)。而且,如果你使用.net來(lái)建立web 服務(wù),.net可以自動(dòng)生成wsdl文檔。如果你對(duì)進(jìn)一步地探索wsdl有興趣,可以從w3c(萬(wàn)維網(wǎng)聯(lián)盟)找到完整的,行話(huà)豐富的信息。