原文地址:http://www.ibm.com/developerworks/cn/webservices/ws-featuddi/

2002 年 7 月 01 日

統(tǒng)一描述、發(fā)現(xiàn)和集成(Universal Description, Discovery, and Integration,UDDI)項(xiàng)目繼續(xù)豐富企業(yè)用于在 UDDI 業(yè)務(wù)注冊(cè)中心表示 Web 服務(wù)并建立其模型的工具集。本文將介紹 UDDI 和它在 Web 服務(wù)發(fā)展過程中所起到的促進(jìn)作用。您可以了解到 UDDI 的工作原理,并發(fā)現(xiàn) UDDI 規(guī)范新的即將出現(xiàn)的功能。

何為 UDDI?

UDDI 項(xiàng)目鼓勵(lì) Web 服務(wù)相互操作和相互采用。它是一種工商界居于領(lǐng)先地位的企業(yè)之間的伙伴關(guān)系,這種關(guān)系最早是由 IBM、Ariba 和 Microsoft 建立的。現(xiàn)在參加的公司已逾 300 家。UDDI 提供了一組基于標(biāo)準(zhǔn)的規(guī)范用于描述和發(fā)現(xiàn)服務(wù),還提供了一組基于因特網(wǎng)的實(shí)現(xiàn)。UDDI 繼續(xù)快速發(fā)展,并贏得了業(yè)界的支持。這一規(guī)范之所以發(fā)展很快,是因?yàn)橛锌焖賹?shí)現(xiàn)在背后提供支持,不僅證明了思想,而且為進(jìn)一步完善規(guī)范提供了豐富的實(shí)踐基礎(chǔ)。

UDDI 解決了企業(yè)遇到的大量問題。首先,它能幫助拓展商家到商家(B2B)交互的范圍并能簡(jiǎn)化交互的過程。對(duì)于那些需要與不同顧客建立許多種關(guān)系的廠家來說,每家都有自己的一套標(biāo)準(zhǔn)與協(xié)議,UDDI 支持一種適應(yīng)性極強(qiáng)的服務(wù)描述,幾乎可以使用任何接口。對(duì)于一家地處澳洲的花店,雖然很希望能進(jìn)入世界上的所有市場(chǎng),但苦于不知道怎樣才能成功,UDDI 提供了一種能實(shí)現(xiàn)這一目標(biāo)的辦法。規(guī)范允許企業(yè)在注冊(cè)中心中發(fā)布它所提供的服務(wù),這樣發(fā)現(xiàn)企業(yè)及服務(wù)就變得高效而且簡(jiǎn)單了。

對(duì)于 B2B 交易場(chǎng)所提供者,他們需要獲得這一行業(yè)內(nèi)的供應(yīng)商的分類數(shù)據(jù),以及它們與計(jì)費(fèi)服務(wù)、包裝商、運(yùn)輸商、保險(xiǎn)公司等之間的關(guān)系,UDDI 允許動(dòng)態(tài)發(fā)現(xiàn)相關(guān)的 Web 服務(wù)并將其集成到聚合的業(yè)務(wù)過程中。UDDI 提供一站式搜索有關(guān)企業(yè)和電子化服務(wù)的信息。在 UDDI 中發(fā)布企業(yè)與服務(wù)信息使其它企業(yè)能大范圍的訪問到這些信息。

UDDI 基于現(xiàn)成的標(biāo)準(zhǔn),如可擴(kuò)展標(biāo)記語言(Extensible Markup Language,XML)和簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol,SOAP)。UDDI 的所有兼容實(shí)現(xiàn)都支持 UDDI 規(guī)范。公共規(guī)范是機(jī)構(gòu)成員在開放的、兼容并蓄的過程中開發(fā)出來的。目的在于先生成并實(shí)現(xiàn)這個(gè)規(guī)范的三個(gè)連續(xù)版本,之后再把將來開發(fā)得到的成果的所有權(quán)移交給一個(gè)獨(dú)立的標(biāo)準(zhǔn)組織。UDDI 版本 1 規(guī)范于 2000 年 9 月發(fā)布,版本 2 于 2001 年 6 月發(fā)布。版本 3 還在開發(fā)中,預(yù)計(jì)到 2002 年年中發(fā)布。版本 1 打下了注冊(cè)中心的基礎(chǔ),版本 2 則添加了企業(yè)關(guān)系等功能,版本 3 接下去要解決正在進(jìn)行的 Web 服務(wù)開發(fā)中的重要領(lǐng)域內(nèi)的問題,如安全性、改善了的國(guó)際化、注冊(cè)中心之間的互操作性以及為進(jìn)一步改進(jìn)工具而對(duì) API 進(jìn)行的各種改進(jìn)。


圖 1. UDDI 的分層 Web 服務(wù)協(xié)議棧
UDDI 的分層 Web 服務(wù)協(xié)議棧

圖 1中所示,UDDI 包含于完整的 Web 服務(wù)協(xié)議棧之內(nèi),而且是協(xié)議棧基礎(chǔ)的主要部件之一,支持創(chuàng)建、說明、發(fā)現(xiàn)和調(diào)用 Web 服務(wù)。

UDDI 構(gòu)建于網(wǎng)絡(luò)傳輸層和基于 SOAP 的 XML 消息傳輸層之上。諸如 Web 服務(wù)描述語言(Web Services Description Language,WSDL)之類的服務(wù)描述語言提供了統(tǒng)一的 XML 詞匯(與交互式數(shù)據(jù)語言(Interactive Data Language,IDL)類似)供描述 Web 服務(wù)及其接口使用。您可以通過添加分層的功能搭起整個(gè)基礎(chǔ),比如使用 Web 服務(wù)流程語言(Web Services Flow Language,WSFL)的 Web 服務(wù)工作流描述、安全性、管理和服務(wù)質(zhì)量功能,從而解決系統(tǒng)可靠性和可用性問題。





回頁(yè)首


UDDI 的工作原理

UDDI 注冊(cè)中心包含了通過程序手段可以訪問到的對(duì)企業(yè)和企業(yè)支持的服務(wù)所做的描述。此外,還包含對(duì) Web 服務(wù)所支持的因行業(yè)而異的規(guī)范、分類法定義(用于對(duì)于企業(yè)和服務(wù)很重要的類別)以及標(biāo)識(shí)系統(tǒng)(用于對(duì)于企業(yè)很重要的標(biāo)識(shí))的引用。UDDI 提供了一種編程模型和模式,它定義與注冊(cè)中心通信的規(guī)則。UDDI 規(guī)范中所有 API 都用 XML 來定義,包裝在 SOAP 信封中,在 HTTP 上傳輸。


圖 2. UDDI 消息在客戶機(jī)和注冊(cè)中心之間的流動(dòng)
UDDI 消息在客戶機(jī)和注冊(cè)中心之間的流動(dòng)

圖 2 說明了 UDDI 消息的傳輸,通過 HTTP 從客戶機(jī)的 SOAP 請(qǐng)求傳到注冊(cè)中心節(jié)點(diǎn),然后再反向傳輸。注冊(cè)中心服務(wù)器的 SOAP 服務(wù)器接收 UDDI SOAP 消息、進(jìn)行處理,然后把 SOAP 響應(yīng)返回給客戶機(jī)。就注冊(cè)中心條例而言,客戶機(jī)發(fā)出的要修改數(shù)據(jù)的請(qǐng)求必須確保是安全的、經(jīng)過驗(yàn)證的事務(wù)。


圖 3. UDDI 工作原理
UDDI UDDI 工作原理

圖 3說明了如何往 UDDI 注冊(cè)中心送入數(shù)據(jù),顧客又如何能發(fā)現(xiàn)和使用這一信息。UDDI 注冊(cè)中心建立在顧客提供的數(shù)據(jù)的基礎(chǔ)之上。要使數(shù)據(jù)能在 UDDI 中物盡其用需要幾個(gè)步驟。如第 1 步中所示,在軟件公司和標(biāo)準(zhǔn)組織定義關(guān)于在 UDDI 中注冊(cè)的行業(yè)或企業(yè)的規(guī)范時(shí),開始向注冊(cè)中心發(fā)布有用的信息。這些規(guī)范叫做技術(shù)模型或者更常見的說法是 tModel

在第 2 步中,公司還會(huì)注冊(cè)關(guān)于其業(yè)務(wù)及其提供的服務(wù)的描述。如第 3 步中所示,UDDI 注冊(cè)中心會(huì)給每個(gè)實(shí)體指定一個(gè)在程序中唯一的標(biāo)識(shí)符,叫做唯一通用標(biāo)識(shí)符(Unique Universal Identifier,UUID)鍵,從而能隨時(shí)了解所有這些實(shí)體的情況。UUID 鍵必須是唯一的,并且在一個(gè) UDDI 注冊(cè)中心中從來都不會(huì)變化。這些鍵看上去象格式化好的十六進(jìn)制隨機(jī)字符串(例如 C0B9FE13-179F-413D-8A5B-5004DB8E5BB2)。可以利用這些鍵來引用與之相關(guān)聯(lián)的實(shí)體。在一個(gè)注冊(cè)中心中創(chuàng)建的 UUID 鍵只在該注冊(cè)中心的上下文中有效。

在第 4 步,諸如電子交易場(chǎng)所(e-Marketplace)和搜索引擎等其它類型的客戶機(jī)與商業(yè)應(yīng)用程序(例如,基于工作流聚合起來的 Web 服務(wù))使用 UDDI 注冊(cè)中心來發(fā)現(xiàn)它們感興趣的服務(wù)。接著,另外的企業(yè)就可以調(diào)用這些服務(wù),簡(jiǎn)便的進(jìn)行動(dòng)態(tài)集成,如第 5 步中所述。

UDDI 注冊(cè)中心里的數(shù)據(jù)從概念上可以分為四類,每一類表示 UDDI 最上層的一種實(shí)體。每個(gè)這樣的實(shí)體都指定有自己的 UUID,利用這個(gè)標(biāo)識(shí)符總能在 UDDI 注冊(cè)中心的上下文中找到它:

  • 技術(shù)模型(Technical model)
  • 企業(yè)(Business)
  • 企業(yè)服務(wù)(Business service)
  • 服務(wù)綁定(Service binding)

 

我們可以把企業(yè)與服務(wù)的注冊(cè)信息分成以下三組:白頁(yè)、黃頁(yè)和綠頁(yè)。

白頁(yè)表示有關(guān)企業(yè)的基本信息,如企業(yè)名稱、經(jīng)營(yíng)范圍的描述、聯(lián)系信息等等。它還包括該企業(yè)任何一種標(biāo)識(shí)符,如 Dun & Bradstreet D-U-N-S® 號(hào)碼。

黃頁(yè)信息通過支持使用多種具有分類功能的分類法系統(tǒng)產(chǎn)生的類別劃分,使您能夠在更大的范圍內(nèi)查找在注冊(cè)中心注冊(cè)的企業(yè)或服務(wù)。這樣的類別劃分不僅可以關(guān)聯(lián)企業(yè)及其服務(wù),還可以關(guān)聯(lián) tModel。單提供白頁(yè)和黃頁(yè)中的一種或者這兩種都提供,那么對(duì)于通過程序發(fā)現(xiàn)和使用服務(wù),注冊(cè)中心的條目的價(jià)值就很有限。為此,有關(guān)怎樣、哪里能通過程序的方式調(diào)用服務(wù)的信息就很有必要了,而綠頁(yè)就提供了這樣的信息。

綠頁(yè)是指與服務(wù)相關(guān)聯(lián)的綁定信息,并提供了指向這些服務(wù)所實(shí)現(xiàn)的技術(shù)規(guī)范的引用和指向基于文件的 URL 的不同發(fā)現(xiàn)機(jī)制的指針。

UDDI 注冊(cè)中心由 UDDI 規(guī)范的一種或多種實(shí)現(xiàn)組成,它們可以互操作以共享注冊(cè)中心數(shù)據(jù)。有一種特殊的 UDDI 注冊(cè)中心是由一組對(duì)外公開訪問的叫做節(jié)點(diǎn)的 UDDI 實(shí)現(xiàn)構(gòu)成。它們互操作以共享注冊(cè)中心數(shù)據(jù),合在一起就形成了 UDDI 業(yè)務(wù)注冊(cè)中心。該注冊(cè)中心免費(fèi)向大眾開放。在所有的運(yùn)營(yíng)商(Operator)站點(diǎn)上都冗余的放著 UDDI 業(yè)務(wù)注冊(cè)中心的全部條目,但只有在創(chuàng)建條目的站點(diǎn)才能對(duì)條目進(jìn)行更改。

IBM 和 Microsoft 共同經(jīng)營(yíng)第 1 版的 UDDI 業(yè)務(wù)注冊(cè)中心節(jié)點(diǎn),這兩個(gè)公司以及 HP 和 SAP 目前正在經(jīng)營(yíng)能支持大部分的第 2 版 UDDI 規(guī)范的 beta 測(cè)試站點(diǎn)。這四家公司計(jì)劃于 2002 年年中支持版本 2 生產(chǎn)注冊(cè)中心。每家公司都支持由 UDDI 規(guī)范定義的 SOAP API。通過商務(wù)合同來確保一致。幾家公司可以自由提供超出規(guī)范所要求的服務(wù)范圍之外的附加服務(wù),比如,基于瀏覽器的用戶界面(所有公司都做到了這一點(diǎn))。





回頁(yè)首


UDDI 規(guī)范一窺

UDDI 規(guī)范是由一些文檔組成的。API 規(guī)范描述允許您執(zhí)行發(fā)現(xiàn)和發(fā)布操作的 SOAP API。還描述了請(qǐng)求/響應(yīng)語義和錯(cuò)誤處理。此外,還有大量關(guān)于約定和用法的信息。附帶的文檔包括數(shù)據(jù)結(jié)構(gòu)規(guī)范(Data Structure specification)和 API Schema,它們定義了消息和數(shù)據(jù)語義。

UDDI API 屬于 Inquiry 或 Publishing 類別。第 1 版支持 API 操作,如 清單 1 中所示。


清單 1. UDDI V1 API 綜述
Inquiry Operations:      Publishing Operations:
            Find                      Save
            find_business             save_business
            find_service              save_service
            find_binding              save_binding
            find_tModel               save_tModel
            Get details               Delete
            get_businessDetail        delete_business
            get_serviceDetail         delete_service
            get_bindingDetail         delete_binding
            get_tModelDetail          delete_tModel
            get_registeredInfo        get_registeredInfo
            Security
            get_authToken
            discard_authToken
            

查詢 API 把自身歸為三種查詢模式:

UDDI 版本 2.0

UDDI 在數(shù)據(jù)模型內(nèi)定義了四種核心數(shù)據(jù)元素:

  • businessEntity(建立企業(yè)信息模型)
  • businessService(描述服務(wù))
  • tModel(描述規(guī)范、分類或標(biāo)識(shí))
  • binding Template(在 businessService 和描述其技術(shù)特征的 tModel 集之間進(jìn)行映射)
除這些核心元素之外,版本 2 添加了建立企業(yè)之間的關(guān)系模型的支持。

UDDI 規(guī)范和 UDDI 業(yè)務(wù)注冊(cè)中心提供了一組參考實(shí)現(xiàn),它們之間互操作共享注冊(cè)、依據(jù)客戶機(jī)需要啟用支持設(shè)計(jì)時(shí)或運(yùn)行時(shí)發(fā)現(xiàn)服務(wù)的編程模型。IBM Web 服務(wù)倡議(Web Services Initiative)的即時(shí)集成價(jià)值取向加上其它重要的使能技術(shù)(例如 WSDL)允許機(jī)構(gòu)執(zhí)行在運(yùn)行時(shí)動(dòng)態(tài)發(fā)現(xiàn)和綁定 Web 服務(wù)。

UDDI 規(guī)范一直以來的不斷發(fā)展解決了關(guān)鍵領(lǐng)域內(nèi)的問題(例如數(shù)據(jù)完整性、訪問控制、身份識(shí)別、認(rèn)證、互操作性、改進(jìn)的數(shù)據(jù)建模能力、查詢和本地化)進(jìn)一步增加了 UDDI 注冊(cè)中心的價(jià)值。

 

  • 瀏覽器模式需要使用查找操作,查找操作允許您在瀏覽條目時(shí)使用不同類型的標(biāo)準(zhǔn),例如分類法類別、標(biāo)識(shí)符或利用 find_xxx API 查找不完整的名稱信息。
  • 逐步深入模式涉及到獲得有關(guān)您已經(jīng)找到的條目的詳細(xì)信息。 get_xxx API 支持這一功能。
  • 調(diào)用模式是最后一種模式。調(diào)用服務(wù)需要使用綁定模板信息,通常客戶機(jī)將這一信息放在緩存區(qū)以供重復(fù)使用,不需要客戶機(jī)在每次需要時(shí)再回到注冊(cè)中心去獲取同樣的信息。如果綁定信息變化了,那么一旦無法獲得或使用服務(wù),客戶機(jī)就會(huì)返回到注冊(cè)中心以更新這一信息。這被稱為調(diào)用模式。

 

雖然每個(gè)頂層實(shí)體都可以被保存和刪除(利用 save_xxxdelete_xxx API),而且主要是自動(dòng)說明的,但是應(yīng)該注意,通常 UDDI 中的保存操作的行為具有破壞性。舉個(gè)例子,再次保存同一個(gè)服務(wù),但信息有所不同,結(jié)果以前代表該服務(wù)的那個(gè)實(shí)體會(huì)被完全替換掉。

authTokens 有關(guān)的操作要求您向某個(gè) UDDI 業(yè)務(wù)注冊(cè)中心節(jié)點(diǎn)預(yù)注冊(cè),提供確認(rèn)發(fā)布者身份所必需的憑證。這些憑證用于獲取用于執(zhí)行發(fā)布操作(利用 save_xxx API)的 authToken 。如果我們假定 authToken 沒有過期,在緊緊相隨的發(fā)布操作期間有一小段時(shí)間內(nèi)它是可以重用的。運(yùn)營(yíng)商制訂的規(guī)定將決定 authToken 的內(nèi)容和壽命。





回頁(yè)首


UDDI 版本 2 中有哪些新內(nèi)容?

UDDI 版本 2 引入了一些很關(guān)鍵的功能,有了這些功能可以提高版本 1 規(guī)范 UDDI 注冊(cè)中心的使用質(zhì)量和效率。下面會(huì)分幾部分描述版本 2 中的新功能:

  • 為復(fù)雜機(jī)構(gòu)提供建模支持
  • 更強(qiáng)大的客戶機(jī)分類和標(biāo)識(shí)符支持
  • 增強(qiáng)的查詢
  • 國(guó)際化功能
  • 基于對(duì)等的復(fù)制

 





回頁(yè)首


支持建模

有關(guān)支持建模的更新主要目的在于幫助大的機(jī)構(gòu)更高效的建立其企業(yè)和服務(wù)的模型。從牽涉到不同種類的風(fēng)險(xiǎn)的大型集團(tuán)企業(yè)到集中精力經(jīng)營(yíng)一種業(yè)務(wù)而且希望按它們服務(wù)的地理區(qū)域來劃分其 Web 產(chǎn)品的公司,許多都希望它們?cè)?Web 上表現(xiàn)為獨(dú)立卻相互關(guān)聯(lián)的企業(yè)。在 UDDI 版本 1 中,對(duì)于這些情況,唯一的選擇就是保持企業(yè)獨(dú)立但卻毫無關(guān)系。版本 2 允許您定義企業(yè)之間的關(guān)系,例如 父-子關(guān)系伙伴-伙伴關(guān)系等同關(guān)系。這樣,您就能根據(jù)具體情況為有下屬子公司、外部業(yè)務(wù)伙伴或者內(nèi)部的各種部門的公司建立模型。任意兩個(gè)企業(yè)(據(jù)其獨(dú)一無二的企業(yè)鍵的定義)之間都可能會(huì)形成關(guān)系。新建的 Business Relationship 類型的規(guī)范的 tModel 支持這一能力,而且還有一些新的發(fā)布 API,允許您定義、刪除和請(qǐng)求關(guān)系的狀態(tài),如 清單 2 中所示。

名叫 find_relatedBusinesses 的新查詢 API 使您能就給定的公司匿名搜索涉及到它的關(guān)系。 清單 2 中的其它新的發(fā)布 API 都與特定的發(fā)布者創(chuàng)建并擁有的關(guān)系有關(guān),并且這些關(guān)系都不能通過匿名查詢來訪問。一個(gè)企業(yè)關(guān)系由一對(duì)相同的關(guān)系斷言組成,每個(gè)關(guān)系斷言都會(huì)將這兩家企業(yè)連在一起,并標(biāo)志所建立的特定關(guān)系。為了形成外部可見的企業(yè)關(guān)系,所涉及的兩家企業(yè)每家必須聲明相同的關(guān)系斷言。只有那些匹配的關(guān)系斷言才會(huì)作為 find_relatedBusinesses() 查詢結(jié)果返回。

下面的示例展示了關(guān)系怎樣形成,日后怎樣發(fā)現(xiàn)關(guān)系。首先,您會(huì)得到一個(gè)發(fā)布授權(quán)令牌:


清單 2. 得到一個(gè) authToken
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
            <Body>
            <get_authToken generic="2.0"
            xmlns="urn:uddi-org:api_v2"
            userID="businessA_UserId"
            cred="businessA_Password" />
            </Body>
            </Envelope>
            

其返回內(nèi)容如下:


清單 3. 得到 authToken 的響應(yīng)
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
            <Body>
            <authToken generic="2.0"
            operator="www.ibm.com/services/uddi"
            xmlns="urn:uddi-org:api_v2" >
            <authInfo>businessA_AuthToken</authInfo>
            </authToken>
            </Body>
            </Envelope>
            

接著,您建立一個(gè)企業(yè)斷言將企業(yè) A 和企業(yè) B 聯(lián)系起來,在此我們不使用典型的 UUID 格式,而是把它們的 businessKeys 分別簡(jiǎn)寫為 businessKeyAbusinessKeyB 。為了簡(jiǎn)潔起見,我們不再展示 SOAP 信封。

<add_publisherAssertions generic="2.0"
            xmlns="urn:uddi-org:api_v2">
            <authInfo>businessA_AuthToken</authInfo>
            <publisherAssertion>
            <fromKey>"businessKeyA"</fromKey>
            <toKey>"businessKeyB"</toKey>
            <keyedReference keyValue="parent-child"
            keyName="Subsidiary"
            tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4"/>
            </publisherAssertion>
            </add_publisherAssertions>
            

一旦企業(yè) B 的主人也建立了一個(gè)相同的斷言,就能在注冊(cè)中心中看到一個(gè)對(duì)大眾公開可見的企業(yè)關(guān)系。然后,您可以利用 find_relatedBusinesses() API 執(zhí)行一個(gè)簡(jiǎn)單的查詢:

<find_relatedBusinesses generic="2.0"
            xmlns="urn:uddi-org:api_v2">
            <businessKey>"businessKeyA"</businessKey>
            </find_relatedBusinesses>
            

清單 3 展示了返回的 XML。更加細(xì)粒度的查詢可能會(huì)包括一個(gè)標(biāo)識(shí)正在查找的特定關(guān)系的 keyedReference

版本 2 中為支持大企業(yè)的建模需求而新增的另一項(xiàng)重要功能叫做服務(wù)投影(Service Projection),它允許一家企業(yè)創(chuàng)建對(duì)另一家企業(yè)擁有的服務(wù)的引用。這在有些情況下是很有用的,例如,對(duì)于在兩個(gè)或以上的行業(yè)內(nèi)提供相同的服務(wù)的公司和通用服務(wù)(例如過夜運(yùn)輸)都很有用,有許多企業(yè)都想要把某個(gè)通用服務(wù)鏈接到它們自己提供的服務(wù)上來鼓勵(lì)使用這種服務(wù)。

投影的服務(wù)引用的功能不過如此。服務(wù)投影的創(chuàng)建者不能改變所引用的真正服務(wù),但在其它所有方面,這個(gè)服務(wù)都好象真的是創(chuàng)建投影的企業(yè)所擁有一樣。服務(wù)是 get_businessDetail()get_serviceDetail() API 調(diào)用返回的一部分。通過與服務(wù)相關(guān)聯(lián)的具有所有權(quán)的企業(yè)鍵,您可以把投影服務(wù)與真正的服務(wù)區(qū)分開來。這個(gè)鍵始終與擁有服務(wù)的真正企業(yè)相匹配,而不是與創(chuàng)建服務(wù)投影的企業(yè)相配。





回頁(yè)首


強(qiáng)大的分類功能

在版本 1 中提供了三種內(nèi)置的分類法供為企業(yè)和服務(wù)分類使用。它們是 NAICS 行業(yè)分類法、UNSPC 項(xiàng)目和服務(wù)分類法和 ISO-3166-2 地理分類法。UDDI 注冊(cè)中心會(huì)在內(nèi)部檢查這些分類法的使用情況;試圖保存無效的代碼會(huì)遭到拒絕。在 UDDI 中有針對(duì)性的分類法的重要性再怎么強(qiáng)調(diào)也不會(huì)過分。既然查找感興趣的有用信息功能最為強(qiáng)大的方法只有這一種,那么提高業(yè)界創(chuàng)建和控制新的分類法的能力將繼續(xù)占有較高的優(yōu)先級(jí)。

版本 2 新增的能力使機(jī)構(gòu)能定義新的外部檢查的分類法,可以在 UDDI 中提供這些分類法供大眾使用。這些外部分類法提供者必須支持 validate_values Web 服務(wù),并使 UDDI 業(yè)務(wù)注冊(cè)中心能夠訪問該服務(wù),以支持對(duì)客戶機(jī)想要與它們?cè)谧?cè)中心中的條目相關(guān)聯(lián)的分類法值進(jìn)行外部檢查和驗(yàn)證。這是一個(gè)受控的過程。只有得到 UDDI 業(yè)務(wù)注冊(cè)中心運(yùn)營(yíng)商的批準(zhǔn),外部驗(yàn)證的分類法才能完成注冊(cè)。

這個(gè)驗(yàn)證新功能允許分類法提供者以靈活的方式來保證使用它們的分類法客戶機(jī)只能保存那些有效的分類法值。當(dāng)客戶機(jī)請(qǐng)求使用提供者的分類法的時(shí)候,提供者在驗(yàn)證請(qǐng)求者是否是合法使用分類法之外,還可以選擇進(jìn)行有上下文的驗(yàn)證。更為常見的無上下文方案也支持將分類法數(shù)據(jù)緩存在 UDDI 業(yè)務(wù)注冊(cè)中心以減少對(duì)提供者的外部分類法服務(wù)的依賴。





回頁(yè)首


增強(qiáng)的查詢

版本 2 在以前提供的查詢能力的基礎(chǔ)上添加了一些強(qiáng)大的功能來按更復(fù)雜的要求進(jìn)行查詢。為了增強(qiáng)現(xiàn)有的 find_xxx 查詢 API 添加了幾種新的過濾條件(查找限定符),包括 orLikeKeysorAllKeyscombineCategoryBagsserviceSubsetandAllKeys 。其中,我們特別感興趣的有 combineCategoryBagsserviceSubsetorLikeKeys

combineCategoryBags 限定符允許您將與一個(gè)企業(yè)相關(guān)聯(lián)的所有分類法數(shù)據(jù)以及該企業(yè)所包含的所有服務(wù)(包括任何服務(wù)投影)分在一個(gè)集合內(nèi),然后就對(duì)這個(gè)集合執(zhí)行搜索。這個(gè)限定符有用的原因在于,通過同時(shí)查看企業(yè)和它所包括的服務(wù)減少了查找感興趣的企業(yè)的步驟。

同樣, serviceSubset 過濾器允許您使用分類法標(biāo)準(zhǔn)來搜索企業(yè),只對(duì)與構(gòu)成企業(yè)的服務(wù)相關(guān)聯(lián)的分類進(jìn)行這樣的測(cè)試。在這種搜索方法中不包括與企業(yè)本身相關(guān)聯(lián)的分類。

最后, orLikeKeys 限定符特別有用,因?yàn)樗С謴?fù)雜的偽碼查詢。例如,您可以查找位于美國(guó)、墨西哥或者加拿大同時(shí)提供冷藏服務(wù)或一般的運(yùn)輸服務(wù)的企業(yè)。這使您可以搜索分在不同特征級(jí)別的類別中的企業(yè),同時(shí)允許一個(gè)查詢條件引用多種不同分類法。





回頁(yè)首


國(guó)際化

一直以來都在努力改進(jìn) UDDI 的國(guó)際化程度,現(xiàn)在已經(jīng)添加了一些新功能。已經(jīng)給 businessEntity 和 businessService 增加了對(duì)多個(gè)名字和 xml:lang 代碼的支持。雖然您必須提供至少一個(gè)名字,但是也可以提供多個(gè)名字(每個(gè)名字使用一種不同的語言代碼)。

版本 2 中的另一個(gè)國(guó)際化功能是新增了一類分類法,叫做 postalAddress ,它能讓您創(chuàng)建描述本地化郵政地址的 tModel,然后把它們與在業(yè)務(wù)實(shí)體中找到的地址相關(guān)聯(lián)。





回頁(yè)首


復(fù)制

雖然 UDDI 客戶機(jī)不能直接看到,但版本 2 已經(jīng)對(duì)注冊(cè)中心運(yùn)營(yíng)商之間的復(fù)制操作做了重大改進(jìn)。UDDI 版本 1 僅支持基于文件的復(fù)制模式,隨參與到 UDDI 注冊(cè)中心中的注冊(cè)中心節(jié)點(diǎn)實(shí)現(xiàn)數(shù)目的增長(zhǎng),其復(fù)雜程度以 n 的平方增長(zhǎng)。版本 2 能滿足數(shù)目更多的參與節(jié)點(diǎn),它們相互復(fù)制。復(fù)制可以以一種基于對(duì)等的方式進(jìn)行,在任何一個(gè)節(jié)點(diǎn)上都可以獲得在其它所有節(jié)點(diǎn)上發(fā)生的注冊(cè)中心更新。現(xiàn)在由于定義了一組允許處理更改和過程管理的 API,復(fù)制得到了更進(jìn)一步的支持。





回頁(yè)首


下一步

UDDI 規(guī)范的下一版本計(jì)劃在 2002 年年中推出,重點(diǎn)在安全性、高級(jí)數(shù)據(jù)管理以及進(jìn)一步的國(guó)際化上。通過增強(qiáng)訪問控制、身份標(biāo)識(shí)和認(rèn)證提高 UDDI 數(shù)據(jù)完整性從而使安全性問題得以解決。這要包括支持如 W3C 和 OASIS 這樣的機(jī)構(gòu)提供的現(xiàn)有的和新興的安全性技術(shù)。高級(jí)數(shù)據(jù)管理功能將繼續(xù)增強(qiáng)搜索能力以提供更為精確和命中率更高的查詢、更好的解釋查詢結(jié)果、對(duì)企業(yè)和服務(wù)更為豐富且更有意義的描述的捕捉能力以及更好管理現(xiàn)有數(shù)據(jù)。對(duì)國(guó)際化的改進(jìn)將包括支持跨國(guó)公司描述其在國(guó)際業(yè)務(wù)分支所進(jìn)行全球操作,還將解決 UDDI 數(shù)據(jù)和服務(wù)的本地化問題。





回頁(yè)首


結(jié)束語

UDDI 繼續(xù)快速發(fā)展。由多家 UDDI 業(yè)務(wù)注冊(cè)中心運(yùn)營(yíng)商于 2001 年提供 UDDI 版本 2 對(duì)公眾開放測(cè)試版實(shí)現(xiàn)。隨著這個(gè)規(guī)范的版本 3 將于 2002 年年中出現(xiàn),注冊(cè)中心會(huì)繼續(xù)添加通過 Web 做生意、解決安全性和逐步提高的國(guó)際化等領(lǐng)域的問題所需要的功能,及一些附加功能以支持使用注冊(cè)中心和互操作性。



參考資料



關(guān)于作者

作者

Tom Bellwood 是在 IBM 工作的一位資深技術(shù)人員,很多年都從事技術(shù)方面的工作,范圍從半導(dǎo)體設(shè)計(jì)領(lǐng)域和設(shè)計(jì)自動(dòng)化到開發(fā)系統(tǒng)和應(yīng)用程序。他是一位 UDDI 和 UDDI 如何支持不斷發(fā)展的 Web 服務(wù)世界方面的專家。他還是 IBM UDDI 業(yè)務(wù)注冊(cè)中心的技術(shù)主管,曾多次在技術(shù)會(huì)議上發(fā)言。