UDDI 與 WSDL 之間的關係

普及探索描述與整合 (UDDI) 規格定義如何發佈以及探索關於 Web 服務的資訊。UDDI 具有兩項功能:(1) 它是 SOAP 型的通訊協定,定義 UDDI 用戶端如何與登錄通訊,(2) 它是一組特定廣域複製登錄。

登錄服務包括四個核心資料結構類型:

如果需要 UDDI 資料類型的詳細資訊,請參閱本主題尾端的相關參照主題。

Web 服務說明語言 (WSDL) 是一種 XML 型的標準規格,用來描述 Web 服務。WSDL 定義一個 XML 格式,將網路服務說明成為一組端點,這些端點所操作的訊息中,可包含以文件驅動或以程序驅動的資訊。

WSDL 服務說明可用許多方法來加以建構。不過,為了協助在 UDDI 登錄中發佈和尋找 WSDL 服務說明,WSDL 文件由兩個主要部分組成:

在以 Apache Axis 執行環境來建立 Web 服務時, 如果從 Java™ Bean 或 EJB 產生 Web 服務, Web 服務工具會建立一份 WSDL 文件。這份 WSDL 文件含有服務介面和實作文件。

服務介面是由含有 types、import、message、portType 及 binding 元素之 WSDL 文件加以說明。 服務介面含有將用來實作一或多個服務的 WSDL 服務定義。 它是 Web 服務的抽象定義,而且用來說明特定類型的服務。本文件可以使用一個 import 元素,來參照另一份服務介面文件。本產品中的 Web 服務工具會產生一份服務介面文件,來僅含有連結文件(僅含有 portType 的連結)所參照的 message 和 portType 元素。

服務實作文件含有 service 元素。服務實作文件含有實作服務介面之服務的說明。至少有一個 import 元素含有 WSDL 服務介面文件的參照; 不過,利用 Axis 執行環境所建立這類整體 WSDL 並沒有 import。服務實作文件可以含有多個服務介面文件的參照。

服務提供者會負責控管 Web 服務,並讓它可利用 SOAP/HTTP 和 SOAP/JMS 這類的通訊協定來存取。 Web 服務以儲存於提供者的伺服器,或是特定儲存庫中的 WSDL 文件來說明。 WSDL 文件是由 UDDI 商業服務(服務文件)和 tModels(連結文件)所參照。這些指標可讓您透過服務要求者來探索 Web 服務。

圖 1. UDDI 與 WSDL 之間的關係。

UDDI 與 WSDL 之間的關係的圖例。

圖 1 說明 UDDI 與 WSDL 之間的關係。WSDL service 元素參照 WSDL binding 元素。含有 WSDL binding 元素之文件的 URL 會發佈至 UDDI Business Registry 作為 tModel。含有 WSDL service 元素之文件的 URL 會發佈至 UDDI Business Registry 作為 businessService,並含有 bindingTemplate 的相關資訊。 如果需要 UDDI 登錄資料結構類型的詳細資訊,請參閱本文件尾端的相關參照區段。請注意,圖解中的 import 部分是選用的,視執行環境而定; 利用 Axis 執行環境所建立這類整體 WSDL 並沒有 import。

服務實作說明一個服務實例。實例是使用 WSDL service 元素來定義的。 服務實作文件中的 service 元素是用來發佈 UDDI businessService。當發佈 WSDL 服務說明時,必須發佈一個服務介面作為 tModel 後,才能發佈服務實作來作為 businessService。

服務實作是在 UDDI 登錄中, 被當作具有一或多個 bindingTemplate 元素的 businessService 的一部分加以發佈。 businessService 是由服務提供者所發佈。有一個新的 businessService 會建立給服務實作文件中所定義的 service 元素。新的 bindingTemplate 元素是建立在每一個 port 元素(在 service 元素內定義)的 businessService 內。

如果需要 WSDL 和 UDDI 之間關係的詳細資訊,請參考 uddi.org/bestpractices.html