廣泛描述、探索與整合 (UDDI) 規格定義如何發佈以及探索關於 Web 服務的資訊。UDDI 具有兩項功能:(1) 它是 SOAP 型的通訊協定,定義 UDDI 用戶端如何與登錄通訊,(2) 它是一組特定廣域複製登錄。
登錄服務包括四個核心資料結構類型:
如果需要 UDDI 資料類型的詳細資訊,請參閱本主題尾端的相關參照主題。
Web 服務說明語言 (WSDL) 是一種 XML 型的標準規格,用來描述 Web 服務。WSDL 定義一個 XML 格式,將網路服務說明成為一組端點,這些端點所操作的訊息中,可包含以文件驅動或以程序驅動的資訊。
WSDL 服務說明可用許多方法來加以建構。不過, 為了協助能夠在 UDDI 登錄中發佈及尋找 WSDL 服務說明,WSDL 文件是由兩個主要部分所組成:
當您使用 IBM® SOAP 執行時期環境來建立 Web 服務時, 本產品中的工具會在從 Java™ Bean、EJB 和 URL 產生 Web 服務時,將這兩個主要部分儲存在三份不同 XML 文件中:WSDL 服務文件、WSDL 連結文件以及 WSDL 介面文件。從 DADX 檔產生 Web 服務時,這兩個主要部分會儲存在兩個個別的 XML 文件:WSDL 連結文件和 WSDL 服務文件。如果需要 WSDL 服務、連結及介面文件的詳細資訊,請參閱本主題尾端的相關參照主題。
當您使用 WebSphere® 執行時期環境或 Apache Axis 執行時期環境來建立 Web 服務時,Web 服務工具會在從 Java Bean 或 EJB 產生 Web 服務時,建立一份 WSDL 文件。這份 WSDL 文件含有服務介面和實作文件。
服務介面是由含有 types、import、message、portType 及 binding 元素之 WSDL 文件加以說明。 服務介面含有將用來實作一或多個服務的 WSDL 服務定義。 它是 Web 服務的抽象定義,而且用來說明特定類型的服務。本文件可以使用一個 import 元素,來參照另一份服務介面文件。本產品中的 Web 服務工具會產生一份服務介面文件,來僅含有連結文件(僅含有 portType 的連結)所參照的 message 和 portType 元素。
服務實作文件含有 service 元素。服務實作文件含有實作服務介面之服務的說明。至少有一個 import 元素含有 WSDL 服務介面文件的參照;不過,單一的 WSDL(如利用 Axis 和 WebSphere 執行時期環境建立的 WSDL)並沒有 import。服務實作文件可以含有多個服務介面文件的參照。
服務提供者會負責控管 Web 服務,並讓它可利用 SOAP/HTTP 和 SOAP/JMS 這類的通訊協定來存取。 Web 服務以儲存於提供者的伺服器,或是特定儲存庫中的 WSDL 文件來說明。 WSDL 文件是由 UDDI 商業服務(服務文件)和 tModels(連結文件)所參照。這些指標可讓您透過服務要求者來探索 Web 服務。
圖 1. 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 部分是選用的(視執行時期環境而定); 單一的 WSDL(如利用 Axis 和 Axis 和 WebSphere 執行時期環境建立的 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。