OSGi 服務平臺 4.2 版規範的早期草案現已釋出

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

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 的“編碼訓練營”計劃於今年晚些時候舉行。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有