問. 什么是 java API for xml Registries (JAXR)? 答. Java API for XML Registries(JAXR)提供一個統一的、標準的 Java API,用于訪問不同類型的 XML Registries。XML 注冊項是構建、部署和發現 Web 服務的基礎設施。 問. JAXR API 與其他 XML API 之間有何關系? 答. JAXR 提供者的實現可以使用 Jav API for XML-Based RPC (JAX-RPC) 在 JAXR 提供者與注冊項提供者之間的通信,此注冊項提供者輸出類似 RPC 的基于 SOAP 的接口(例如, UDDI )。 JAXR 提供者的實現可能會使用 Java API for XML Messaging(JAXM)在 JAXR 提供者與注冊項提供者之間進行通信,該注冊項提供者輸出基于 XML Messaging 的接口(如 ebXML TRP )。 Java API for XML PRocessing (JAXP) 與 Java Architecture for XML Binding (JAXB)會被 JAXR 提供者和 JAXR 客戶端使用,用于處理向 Registry 提交或從 Registry 中獲取的 XML 內容。 問. 為什么對 Java Naming and Directory Interface(JNDI)需要有一個新的 JAXR API ? 答. JNDI API 采用與 JAXR API 完全不同的需求集合進行設計。這兩種抽象的 API 都遵循現有的規范。然而,抽象目錄服務與用于發布和發現 Web 服務的 XML Registries 有很大的不同。JAXR API 需要更豐富的元數據能力以及查詢能力來進行分類和關聯。 問. 通過對 JAXR API 增加功能來增強 JNDI API 會不會更好? 答. 這個選擇被考慮過。要滿足 XML Registries 的額外需求,需要細化信息模型。為了解決目錄服務的需求,在 JNDI API 設計中強制使用了一個現有的信息模型。擴展 JNDI API 將限制 JAXR API ,并需要考慮實現 JNDI API的后向兼容性。 問. JAXR 信息模型中的 Association 的作用是什么?在所有 API 中都沒有用到過它。 答. Association 用于彼此關聯兩個 RegistryObjects 。在注冊項中的兩個對象之間可以定義一個 Association,并使用 GenericLifeCycleManager 的 saveObjects 方法進行提交。 問. JAXR 信息模型中的 Classification 的作用是什么?在所有 API 中都沒有用到過它。 答. Classification 用于對 RegistryObject 進行分類。可根據 RegistryObject 定義一個 Classification,并使用 GenericLifeCycleManager 的 saveObjects 方法提交該分類。 問. 為何 JAXR 是一個抽象 API,并且沒有像 UDDI 或 ebXML 那樣針對特定的注冊項。 答. 抽象 JAXR API 可以讓開發人員編寫注冊項客戶端程序,這些程序是跨越多個目標注冊項可移植的。這與 Java 的“一次編寫,到處運行”(Write Once, Run Anywhere)的理念是一致的。它還提供了超越注冊項本身功能的增值能力。例如,一個非 JAXR 的 UDDI 用戶不具備分類瀏覽和分類智能查詢的能力,而 JAXR UDDI 用戶具備這些能力。 問. 為什么 JAXP API 不使用 UDDI 的術語和概念? 答. JAXR API 不針對 UDDI 或其他任何一種注冊規范。它是一種涵蓋多種規范的抽象 API。它可讓開發人員在使用 Web 服務注冊項和/或知識庫之間做出選擇。當 UDDI 適用于 JAXR 信息模型時(例如,Service、ServiceBinding 以及 BusinessQueryManager 和 BusinessLifeCycleManager 中的方法名),JAXR API 使用 UDDI 術語和概念。 問. 為什么 JAXR 信息模型使用 ebXML Registry Information Model 作為基礎,而不采用 UDDI 數據結構? 答. JAXR API 用于支持多注冊項。 ebXML Registry Information Model 比 UDDI 數據結構更通用且更易于擴展。出于這種特點,可以將 ebXML Registry Information Model 進行擴展,來滿足 UDDI 和其他注冊項的需要。 問. 為什么沒有完整地開發 JAXR 信息模型? 答. 信息模型的開發需要很長時間。從現有信息模型出發對其進行改進是很輕易的。