程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> OSGi要火 IBM和Eclipse將大力發展Java模塊化

OSGi要火 IBM和Eclipse將大力發展Java模塊化

編輯:J2EE

之前51cto曾發出過2010年將是Java模塊化的一年的聲音,我們也曾獨家采訪淘寶網平台架構部架構師關於其對Java模塊化的理念,目前為Java提供模塊化的OSGi,正在受到IBM和Eclipse基金會的大力支持。IBM將在它的應用服務器新版本中采用OSGi,而Eclipse也會在一個新框架中通過OSGi訪問其他企業技術。

前不久IBM發布了一個基於OSGi和JPA技術的WAS Beta版本。這個版本暫時使用了一個很笨重的名字:IBM Websphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API(JPA) 2.0 Open Beta。

按照IBM Websphere Application Server的產品經理Erik Kristiansen所說,“OSGi在WAS內部提供了卓越的模塊性和版本功能。OSGi為那些期望把自己的應用建立在WAS之上的企業客戶帶來了OSGi的模塊性和組件化。”

OSGi

值得注意的是,IBM之前已經發布過alpha形式的OSGi feature pack,但並未聲明公開版本發布的具體日期。IBM的feature pack是基於apache ArIEs項目,來為企業應用開發者提供OSGi服務。

OSGi致力於提供更加容易的代碼庫管理的同時,允許創建更多動態的可以在運行時運行插件和擴展的軟件。RedMonk的分析師Michale Cote認為,“因為某些原因,Java代碼越發往整體復雜的趨勢發展,但也一直存在技術和文化上的努力在與巨大的復雜性進行斗爭。從設計的角度看,OSGi和Java中的其他組件會是一種比較好的方式,來組織工程中的代碼,讓開發者的日子更好過。”

在Eclipse方面,新建立的Gemini項目是與Eclipse運行時相關聯的孵化項目,它基於OSGi。根據EclipseCon 2010技術大會中有關Gemini話題的網頁,以及前Eclipse董事會成員之一Mik Kersten所說的,“Gemini的目標是在一個模塊化框架中提供對標准企業技術的訪問。Gemini將會采用OSGi,並讓企業服務器端模塊集成在一起更加簡單。Gemini將會為在OSGi中使用企業技術提供“隨時可用的實現”。另外一個新項目Eclipse Virgo則提供來一個基於OSGi的應用服務器,Virgo起源於Spring Source dm Server產品。”

關於OSGi

OSGi亦稱做Java語言的動態模塊系統,它為模塊化應用的開發定義了一個基礎架構。OSGi容器已有多家開源實現,比如Knoflerfish、Equinox和apache的Felix。您可以通過這些容器,把您的應用程序劈分為多個模塊單元,這樣,您就可以更容易地管理這些模塊單元之間的交叉依賴關系。

OSGi規范和Servlet規范及EJB規范類似,該規范定義了兩種對象,一是容器對外提供的服務對象,另一個是容器和您的應用程序之間必須遵守的契約,其中,服務對象是容器要實現的。您如果想要在OSGi平台上進行開發,首先,您必須要使用OSGi API來創建您的應用,然後將之部署到OSGi容器中。

關於Java模塊化

模塊化是個一般概念,這一概念也適用於軟件開發,可以讓軟件按模塊單獨開發,各模塊通常都用一個標准化的接口來進行通信。實際上,除了規模大小有區別外,面向對象語言中對象之間的關注點分離與模塊化的概念基本一致。通常,把系統劃分外多個模塊有助於將耦合減至最低,讓代碼維護更加簡單。

Java語言並不是按照模塊化思想設計的(除了package,按照Java語言規范introduction一 節的介紹,package類似於Modula-3模塊),但是在Java社區依然有很多實際存在的模塊。任何一個Java類庫實際上都是一個模塊,無論其 是Log4J、Hibernate還是Tomcat。通常,開源和非開源的應用都會依賴於一個或多個外部類庫,而這種依賴關系又有可能傳遞到其他類庫上。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved