OSGi是什么:Java語言的動態模塊系統

          OSGi是什么

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

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

          a) 您可以在不重啟容器的情況下,動態地安裝、卸載、啟動和停止您的應用程序中的不同模塊;

          b) 對于您應用程序中的某一特定模塊,容器可以同時運行該模塊的多個版本;

          c) OSGi為開發嵌入式應用、移動應用、富互聯網應用(RIA)提供了非常優秀的基礎架構

          如果說您使用Servlet容器開發您的網絡應用,使用EJB容器開發交易式應用,您可能會問,為什么我們還需要另外的容器呢?對這個問題的簡短回答是,OSIG容器是專門為開發復雜的Java應用準備的,在這些應用的開發過程中,您非常需要將這些應用分割為一個個的模塊。在本系列以后的文章中,我將針對這個問題進行展開并深入回答。

          1. OSGi在企業開發中的應用

          OSGi聯盟(OSGiAlliance)于1999年3月開始著手制定OSGi規范,其主要目的就是要制定一套開放式標準,以便向局域網及其中的設備提供可管理的服務;其基本思路是,一旦您在網絡設備(如服務器和嵌入式設備)上使用了OSGi服務平臺,您就可以在網絡上的任何地方管理這些設備上運行的軟件組件的生命周期,可以在后臺對這些組件進行安裝、升級或卸載,但不需要打斷該設備的正常運行。

          近年來,OSGi技術在嵌入式系統及網絡設備市場得到廣泛應用。現在,由于Eclipse的成功,OSGi在企業開發中逐漸成為切實可行的、較有價值的一種技術。

          1.1. 業界對OSGi的支持逐漸上升

          2003年,Eclipse開發團隊開始想辦法提高Eclipse工具集的模塊化,以便讓它成為更加動態的富客戶端平臺。Eclipse團隊最終選中OSGi框架作為其組件的運行時模型,2004年6月發布的Eclipse3.0就是第一個基于OSGi平臺的版本。現在幾乎所有的企業應用服務器都支持OSGi,Spring也通過一個叫“OSGi服務平臺上的Spring動態模型(亦稱之為OSGiSpring)”的項目來支持OSGi。該項目提供OSGi基礎架構,以便我們在Spring的企業開發中更容易使用OSGi。

          2. 開放源碼的OSGi容器

          從企業開發者的角度看,OSGi容器的要求很低,您可以很容易地把它嵌入到企業應用中,比如我們在開發Web應用時,我們可以把這個Web應用分為多個模塊,一個模塊負責視圖層,另一個模塊負責DAO層,第三個模塊負責數據訪問層,如果我們使用OSGi容器來管理這些模塊之間的交叉依賴,我們就可以在不用重啟該Web應用的前提下,將DAO層從速度較慢的升級到速度較快的DAO。

          只要您的應用和OSGi規范兼容,您的應用就應該可以運行在任何OSGi容器中,現在比較流行的開放源碼的OSGi容器有以下三種:

          a) Equinox容器是參照OSGi規范第4版實現的,它構成了Eclipse IDE的核心—模塊化的Java運行時;它實現了OSGi規范4中規定的必須強制實現的功能,同時,它也實現了OSGi規范中大部分的可選功能;

          b) Knoflerfish是OSGi規范第3版和第4版的開源實現,它實現了OSGi規范規定的必須實現的功能及部分可選功能;

          c) Apache的Felix是Apache軟件基金會實現的OSGi開源容器,至本文截稿時為止,該容器還沒有和OSGi規范完全兼容。在本文中,我們將使用Equinox作為我們的OSGi容器。

          對OSGi是什么的介紹就先到這里,下面的部分將繼續介紹OSGi的基礎知識。

          posted on 2010-02-24 16:46 飛熊 閱讀(200) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2010年2月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28123456
          78910111213

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南靖县| 博爱县| 安泽县| 广安市| 仁化县| 尚志市| 子长县| 托克托县| 布尔津县| 淮北市| 雷州市| 新平| 正定县| 绥化市| 阳春市| 苍溪县| 夹江县| 荔浦县| 保靖县| 萍乡市| 龙江县| 永昌县| 尼玛县| 炎陵县| 赣榆县| 通渭县| 北流市| 武邑县| 慈利县| 凤阳县| 贵州省| 大余县| 玉门市| 休宁县| 罗江县| 宕昌县| 涿州市| 南皮县| 宁化县| 郯城县| 禹州市|