UDDI v2新特性:關聯關係和發佈者斷言

UDDI v2新特性:關聯關係和發佈者斷言

(本文最初由 IBM developerWorks 中國網站發表,其網址是http://www.ibm.com/developerWorks/cn/)

(本文是我在developerWorks專欄發表的UDDI v2新特性: 關聯關係和發佈者斷言
的縮減版,需要瀏覽未縮減版原文,請訪問http://www.ibm.com/developerWorks/cn/)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

企業的需求促成了關聯關係特性

隨着UDDI 1.0註冊中心的發佈和測試使用的進行中,許多大型的企業集團,以及一些諸如交易市場和貿易團體等的虛擬商業實體認爲UDDI規範第1版對於註冊複雜的商業信息的支持不夠。同時,對於UDDI規範第1版的實現的反饋信息表明,爲每個獨立的商業實體複製服務和綁定信息(可能他們使用了同一個服務)可實施性很強,但是不夠優化。另外,另一些反饋表明要求用戶對於區分商業實體,僅能使用的這一商業實體的一個名稱來實現,這常常使的用戶感到迷惑(因爲一些企業往往有多個習慣使用的名稱)

而在20017月發佈的UDDI規範2.0版爲了解決這一使用中的核心問題,引入了一個基於發佈者斷言(publisher assertion)”的斷言特性。發佈者斷言是這樣一種機制的基礎,這種機制能令多於一個的已註冊的businessEntity元素以某種方式互相鏈接,用以表示一種特定類型的關聯關係。這也是這一特性常常被成爲關聯關係特性的原因。發佈者斷言一旦完整創建,即被用於在已註冊的數據中建立公共可見的關聯關係,這樣一種斷言的表現結果將可通過新增的UDDI v2中的通用查詢消息find_relatedBusinesses進行證實,find_relatedBusinesses是用於在UDDI註冊中心中尋找與指定businessEntity具備某種關聯關係的那些businessEntityAPI調用。

圍繞使得商業實體能在不同的組成部分之間描述關聯關係的設計目標是爲了滿足大型商業實體爲在UDDI中描述數據的需要,使得他們在UDDI註冊中心中能以多個組成部分的形式來實施註冊。畢竟,大型商業實體是由很多小型的組成部分所組成的,同時對於其中的每個商業個體都有很多不同種類的Web服務需要描述。在UDDI規範2.0版之前,那些想對非常複雜的商業實體進行建模的註冊者是無法完成需要的功能的。

爲了使得關聯關係中的任一方對於關聯關係的公共可見性都具有一定的控制能力,因此另一個設計目標就是確保在一個潛在的關聯關係中雙方在同一時刻都表示同意該假設事實,那麼才使該關聯關係可見。這個設計目標是針對以下潛在問題的:當一個實體虛假地宣稱其註冊的businessEntity數據是一個大公司的一個組成部分,那麼將會對這個未同意該斷言的大公司帶來損失。對於該項註冊數據的閱讀者而言,他們就有可能被虛假地引導,而相信這個註冊的商業實體的的確確是那另一個大公司的組成部分。

關聯關係模型

UDDI v2中,關聯關係的基本模型是使用了publisherAssersion這個斷言元素,一個發佈者斷言(publisherAssertion)表示了一個用戶對businessEntity之間的關聯關係的斷言。發佈者斷言(publisherAssertion)的基本結構如下:

 

<publisherAssertion>

  <fromKey> [businessKey] </fromKey>

  <toKey> [businessKey] </toKey>

  <keyedReference tModelKey=”uuid:tbd” keyName=”[relationship_name]” keyValue=” [relationship]” />

</publisherAssertion>

 

一個發佈者斷言(publisherAssertion)由三個子元素fromKeytoKeykeyedReference組成,形成了如下圖所示的有向關係:

 

image001.gif<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

其中fromKeytoKey分別是一個businessKey,指向一個現有的已註冊的businessEntitykeyedReference表示了從fromKey所指代的businessEntity到從toKey指代的businessEntity之間的是何種關係。

我們看到,keyedReference元素仍然遵循UDDI v1中的keyedReference的結構,tModelKey指明瞭是使用何種關聯關係定義的規範,這裏用了”uuid:tbd”UDDI內置的關聯關係表示規範。keyValue指明瞭關聯關係的代碼,而keyName則是keyValue所指明的關聯關係代碼的名稱描述。

 

管理關聯關係的可見性

發佈者API定義了若干條消息,以使得UDDI發佈者能夠管理斷言。這些消息可以分爲兩大類:協助管理功能和維護功能。協助管理類別的消息爲發佈者提供檢閱他所管理的商業實體所關聯的斷言。特別的,get_assertionStatusReport對於判斷髮布者所管理的所有商業實體所涉及的斷言是否完整非常有用。該消息不僅能使你發現那些斷言是你尚需要去完成的,同時也可以讓你發現是否有其他發佈者在嘗試創建與你的商業實體相關的斷言,而這個斷言可能是你並不知道的或者不同意的。

維護功能類消息能夠使發佈者既能對所有斷言執行單條操作(如,add_publisherAssertionsdelete_publisherAssertions)也能對所有斷言作爲一組(如,get_publisherAssetionsset_publisherAssertions)一起操作。如果發佈者在某個時刻想要增加一條斷言,但又不想在此刻了解其之前所下的所有斷言,那麼使用那些面向單條斷言的消息是非常方便的。

注意:set_publisherAssertions消息能夠通過在一次調用中刪除所有斷言而用於令所有斷言不再有效。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章