久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

創(chuàng)新觸手可及: 為使用企業(yè)級 OSGi 做好準備了嗎,?

 ahappyday 2010-12-31

 

簡介: 在過去一年里,,有很多關于 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 中文版


IBM 和 OSGi

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)驗,以確保任何標準都能夠得到廣泛支持,。

為什么是企業(yè)級 OSGi,?

在介紹 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

去年啟動了提供 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 功能包

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 組件解決。

功能包的一些主要功能如下所述,。下面將詳細介紹這些功能以及其他一些功能,。

  • Enterprise Bundle Archives

    組成 OSGi 應用程序的 bundle 經(jīng)過合理組裝,可形成可部署的 Enterprise Bundle Archive 或 EBA,。開發(fā) Java EE 應用程序時,,通常會將所有模塊庫(應用程序內(nèi)容)放在 EAR 文件中。相反,,盡管 EBA 中的應用程序元數(shù)據(jù)描述應用程序內(nèi)容,,但是無需在 EBA 中包含二進制內(nèi)容。EBA 可以僅指從 bundle 庫的相應階段獲得的 bundle,。最常見的情形可能包括在 EBA 中放置其他 bundle 并包含其他內(nèi)容,。例如,Web 模塊是應用程序的主要部分,,所以它們自然位于 EBA 文件中,;而非應用程序特定內(nèi)容(比如共享庫)從 bundle 庫獲得可能會更好。后續(xù)文章將探討 bundle 庫,,以及如何且何時提供 bundle。

  • Web 應用程序

    正如 OSGi Web Container 規(guī)范定義的那樣,,OSGi 應用程序的 Web 內(nèi)容僅是具有其他 OSGi 元數(shù)據(jù)的 Web 模塊,。該規(guī)范定義了 Web 應用程序 bundle 所需的元數(shù)據(jù)。部署時,,WebSphere Application Server 將 EBA 中的 WAR 文件轉換為 OSGi bundle,。將 Web 模塊作為 bundle 部署的優(yōu)勢是,可以將其依靠的庫從 WAR 移動到集中式,、托管的,、版本化的 bundle 庫中,在 WebSphere Application Server 部署流程中使用該庫,。

  • Blueprint

    OSGi 服務平臺企業(yè)規(guī)范 介紹了 Java EE 中一種稱為 Blueprint 的主要技術,,這是 Spring Dependency Injection 模型的標準化。盡管企業(yè)級 OSGi 應用程序不需要使用 Blueprint,,但是 WebSphere Application Server 實現(xiàn)提供了許多功能,,這些功能使 Blueprint 成為開發(fā)人員樂于使用的一種技術。

    OSGI 功能包的 Blueprint 實現(xiàn)提供了用戶期望 Dependency Injection (DI) 容器擁有的功能,;例如,,使用 POJO 進行構建的能力,以及使容器控制那些 POJO 生命周期的能力,。通過 DI 容器(比如 Spring Framework)進行 Blueprint 實現(xiàn)的一個好處是 OSGi 整合,。這意味著發(fā)布服務的 bundle 稍后可以被注入其他組件甚至是其他 bundle 中,。此依賴性注入模型還支持在 Java EE 或 OSGi 運行時以外的時間進行單元測試。

    在 OSGi 功能包中實現(xiàn)的 Blueprint 容器是中間件的一部分,,而不再是應用程序的一部分,,這就為應用程序員消除了一個令人頭疼的問題。

  • JPA 持久化

    OpenJPA 是 WebSphere Application Server 默認的持久化提供者,。OSGi 功能包包括 JPA 2.0 支持,,所以開發(fā)人員可以使用 WebSphere Application Server V7 中現(xiàn)有的 JPA 1.0 支持或 OSGi 應用程序中的新 JPA 2.0 支持。

    除了 OSGi 服務平臺企業(yè)規(guī)范中介紹的 JPA 模型,,功能包還包括擴展的 JPA 支持,,向 Blueprint 組件提供由容器完全托管的 JPA,從而向目前正在使用 Java EE 的 JPA 的應用程序開發(fā)人員提供一種熟悉的開發(fā)體驗,。

    此功能包還包括對 Blueprint 的擴展,,所以容器可以將持久化單元和上下文注入到 Blueprint bean 中。EJB 中應用程序開發(fā)人員熟悉的事務性行為同樣存在于 OSGi 功能包中,。


結束語

尋找可靠和已驗證的模塊化技術的企業(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 技術,并期待它提供的許多好處,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多