領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多OSGi Alliance 釋出了 服務平臺規範 4.2 版的早期草案。 SpringSource 員工是聯盟核心心平臺專家組 (CPEG) 和企業專家組 (EEG) 的積極成員。我個人主要參與 EEG,特別是 RFC 124“OSGi 的元件模型”。
RFC 124 是 Spring Dynamic Modules 核心思想的標準化。如果你檢視配置模式,你會發現它與 Spring Dynamic Modules (DM) 提供的“osgi”名稱空間非常相似。RFC 124 彙集了我們在過去幾年開發 Spring DM 的經驗,並結合了核心和企業專家組其他成員的一些關鍵見解,從而產生了一個既基於真實世界經驗又與 OSGi 服務平臺本身緊密整合的規範。非常感謝 Spring DM 開發團隊:- Costin Leau、Oracle 的 Hal Hildebrand 和 BEA(現為 Oracle)的 Andy Piper,感謝他們在幫助開發和測試 Spring DM 以及隨後幫助我們推動該模型作為 OSGi 服務平臺標準化基礎方面所做的辛勤工作。
試圖標準化 Spring DM 會帶來一個有趣的難題。在 Spring DM 中,定義元件並將其作為服務公開到服務登錄檔中很容易。例如
<bean id="myBean" class="com.xyz.SomeClass">
<osgi:service ref="myBean" interface="org.xyz.SomeInterface"/>
定義了一個名為“myBean”的 bean(只是一個普通的 Spring bean 定義),並將其在 SomeInterface 介面下的 OSGi 服務登錄檔中公開。
“osgi:service”元素來自 Spring DM,但“bean”元素來自核心 Spring Beans 模式。一個基於 Spring DM 名稱空間元素但無法定義它們所引用元件的標準將毫無用處。因此,RFC 124 是一個基於 Spring DM 名稱空間元素和語義以及 Spring 本身核心(即 bean 模式及其語義)的標準。在 RFC 124 中,元件是使用“component”元素定義的,但除了將 bean 改名為 component 之外,你會發現屬性和語義都非常熟悉。
以下是基於 RFC 124 的相同元件和服務註冊的標準化定義
<component id="myComponent" class="com.xyz.SomeClass">
<service ref="myComponent" interface="org.xyz.SomeInterface"/>
這對 Spring DM 意味著什麼?隨著標準塵埃落定(某些領域仍有工作要做),我們將在 Spring DM 中實現 RFC 124 的 RI(就 Spring 和 Spring DM 而言,它“只是另一個名稱空間”,我們可以輕鬆地將其對映到現有功能)。SpringSource 應用程式平臺目前支援基於 Spring DM 的程式設計模型,供那些希望利用其 OSGi 功能的人使用,當然也會更新以包含 RI,為基於 OSGi 的企業應用程式提供基於標準的程式設計和配置模型。
企業專家組的下一次會議將在幾周後舉行,屆時我們將繼續完善該規範。為規範提供 RI 的“編碼訓練營”計劃於今年晚些時候舉行。