OSGi 服務平台 4.2 版規格早期草案現已發布

工程 | Adrian Colyer | 2008 年 9 月 1 日 | ...

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 工作的人員的「程式碼訓練營」計劃在今年稍後舉行。

取得 Spring 電子報

隨時掌握 Spring 電子報的最新資訊

訂閱

領先一步

VMware 提供培訓和認證,加速您的進展。

深入瞭解

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

深入瞭解

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部