領先一步
VMware 提供培訓和認證,加速您的進展。
深入瞭解OSGi 聯盟已發布 服務平台規格 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"/>
定義了一個 bean「myBean」(只是一個常規的 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 而言,它只是另一個命名空間,我們可以輕鬆地將其對應到現有功能)。目前支援基於 Spring DM 的程式設計模型,供希望利用其 OSGi 功能的 SpringSource 應用程式平台,當然會更新為包含 RI,從而為基於 OSGi 的企業應用程式提供基於標準的程式設計和組態模型。
企業專家組的下一次會議將在幾週後舉行,我們將繼續完善規格。針對那些從事規格隨附的 RI 工作的人員的「程式碼訓練營」計劃在今年稍後舉行。