簡介: 在過去一年里,,有很多關于 OSGi? 企業(yè)級應用程序是否就緒的激烈辯論,。OSGi 是一種已證實的且經(jīng)過測試的技術,所以從這個意義上來說,,它已經(jīng)就緒有一段時間了,。缺少的是 Java? EE 程序員正確利用 OSGi 企業(yè)功能所需的工具和框架的規(guī)范與實現(xiàn)。最近發(fā)布的 OSGi Service Platform Enterprise Specification (4.2) 和 IBM? WebSphere? Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 改變了這一情況,。下面將概述此新功能包以及其發(fā)展背后的原因,。 本文來自于 IBM WebSphere Developer Technical Journal 中文版。 OSGi 是 Java 語言的動態(tài)模塊系統(tǒng),。IBM 是 OSGi 聯(lián)盟的初始成員之一,,該聯(lián)盟旨在促進 OSGi 服務平臺的廣泛采用,確保通過網(wǎng)絡交付和管理的應用程序和服務的互操作性,。多年來,,IBM 一直在 IBM Lotus? 和 WebSphere 產(chǎn)品中使用 OSGi 技術,。事實上,從 IBM WebSphere Application Server 6.1 版本就開始使用 OSGi 了,。用戶看不到它,,因為使用 OSGi 是為了實現(xiàn)底層應用程序服務器架構的模塊化,從而使其易于開發(fā)和支持,。WebSphere Foundation 一直在使用 OSGi 改進 IBM 產(chǎn)品,, 現(xiàn)在 WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 (以下簡稱為 OSGi 功能包)支持您使用 OSGi 改進自己的應用程序和服務。 引進企業(yè)級 OSGi 應用程序編程模型的關鍵因素之一是確保它是整個行業(yè)認可的標準,。這是 OSGi 聯(lián)盟的企業(yè)專家組 (EEG) 的焦點,。該企業(yè)專家組的專家由來自 Oracle、SAP,、VMWare、Redhat,、Progress 和 IBM 等的代表組成,。許多供應商都向該組提供專業(yè)經(jīng)驗,以確保任何標準都能夠得到廣泛支持,。 在介紹 OSGi 功能包的重要內(nèi)容之前,值得花些時間概述一下它有助于解決的問題,。 值得一提的是,,組織使用 WebSphere Application Server 的功能部署和管理大量應用程序。這些應用程序通常包含公共庫,。在這種情況下,,應用程序開發(fā)人員在其應用程序中包含相同的庫就很正常。盡管這是每個應用程序獲得預期庫的一種安全方法,,但是此策略可能會占用過量內(nèi)存并使應用程序更新變得比較困難,。軟件供應商提供了解決此問題的解決方案,但他們是針對供應商的,,并且會導致管理時間成本增加,。 有時會在應用程序中使用供應商庫,通常開發(fā)人員無法控制這些庫的依賴關系,。所以當一個應用程序使用的兩個庫具有不同且不兼容的內(nèi)部依賴關系時,,就會出現(xiàn)問題。例如,,一個庫可能需要 ASM 3.0,,而同一應用程序使用的另一個庫可能需要 ASM 2.0。要解決這種問題,,通常需要更改代碼,。 總的說來,,這兩個問題在 Java EE 中通常都可以解決,那么為什么要忍受 OSGi 可以解決的問題呢,? OSGi 聯(lián)盟的 EEG(企業(yè)專家組)成立于 2007 年,,并且制定了 OSGi 功能包實現(xiàn)規(guī)范。EEG 的目的是查看最常用的 Java EE 技術(例如,,JPA,、JTA、JNDI 和 JMX 等),,并構建使用部署到 OSGi 框架的應用程序綁定技術的標準方法,。 去年啟動了提供 OSGi 企業(yè)規(guī)范實現(xiàn)的兩個開源項目。Apache Aries 孵化器項目在 2009 年 9 月啟動,,并具有由 Apache Geronimo 社區(qū)開發(fā)的 Blueprint 實現(xiàn),。2009 年啟動的企業(yè)模塊項目(Enterprise Modules Project)由 Eclipse Foundation 主辦,該項目與 Aries 項目的目標大致相同,。 在很短的時間內(nèi),,就建立了許多與 Apache Aries 相關的活躍團體。參與者包括來自 IBM,、Progress,、RedHat、Ericsson,、SAP,、Prosyst 和 LinkedIn 等的個人。由于 Blueprint 的最初貢獻,,JTA,、 JPA、JNDI 和 JMX 的組件都已添加,。演示如何使用這些技術(包括 Blog Sample 和 Aries Trader 應用程序)的示例是項目的重要部分,。 Aries 積極開發(fā)的另一個領域是 “應用程序” 概念,這是將 bundle 分組為單個應用程序或 Enterprise Bundle Archive (EBA) 的一種方式,。 OSGi 功能包提供了一個整合應用程序框架,,有助于 Java EE 應用程序開發(fā)人員利用 OSGi 企業(yè)架構。該功能包整合了 Apache Aries 開發(fā)的組件和 WebSphere Application Server 運行時與管理,。(JPA 2.0 支持也是功能包的一部分,,但在本文中不會詳細介紹它。) 具體來說,,功能包交付 OSGi Blueprint Container 規(guī)范的開放社區(qū)和基于標準的實現(xiàn),,并且具有將應用程序組裝、部署和管理為 OSGi bundle 版本集合的能力,。常見 Web 應用程序的模塊設計,、簡單的基于 POJO 的組件和高效數(shù)據(jù)訪問需求,,都可以使用 OSGi 應用程序和功能包的 JPA 2.0 組件解決。 功能包的一些主要功能如下所述,。下面將詳細介紹這些功能以及其他一些功能,。
尋找可靠和已驗證的模塊化技術的企業(yè) Web 應用程序開發(fā)人員,,已經(jīng)有很多都轉向了使用 OSGi。IBM WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 提供了一種環(huán)境,,該環(huán)境支持 Java EE 開發(fā)人員使用 OSGi 功能構建應用程序,。 用戶對 OSGi 功能包的反饋、對 Apache Aries 的興趣,,以及對現(xiàn)有 WebSphere Application Server 的興趣表明,,Java EE 開發(fā)人員樂于使用 OSGi 技術,并期待它提供的許多好處,。 |
|