小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

OSGi是什么:Java語言的動態(tài)模塊系統(tǒng)

 hehffyy 2012-05-31

之前51CTO曾發(fā)過一篇文章叫做《OSGi為什么重要:向模塊化轉(zhuǎn)移的主攻手 》,里面對于OSGi的優(yōu)勢進(jìn)行了分析。不過,對于 究竟什么是OSGi,很多人仍然只有一個模糊的概念。本系列(你好,OSGi )從基礎(chǔ)開 始介紹了OSGi。本部分介紹OSGi是什么,以及OSGi容器的一些現(xiàn)狀。(注:本文英文原文于08年3月發(fā)布在JavaWorld網(wǎng)站)

51CTO編輯推薦: OSGi入門與實(shí)踐全攻略

OSGi是什么

OSGi亦稱做Java語言的動態(tài)模塊系統(tǒng),它為模塊化應(yīng)用的開發(fā)定義了一個基礎(chǔ)架構(gòu)。OSGi容器已有多家開源實(shí)現(xiàn),比如 Knoflerfish、Equinox和Apache的Felix。您可以通過這些容器,把您的應(yīng)用程序劈分為多個模塊單元,這樣,您就可以更容易地管 理這些模塊單元之間的交叉依賴關(guān)系。

OSGi規(guī)范和Servlet規(guī)范及EJB規(guī)范類似,該規(guī)范定義了兩種對象,一是容器對外提供的服務(wù)對象,另一個是容器和您的應(yīng)用程序之間必須遵守 的契約,其中,服務(wù)對象是容器要實(shí)現(xiàn)的。您如果想要在OSGi平臺上進(jìn)行開發(fā),首先,您必須要使用OSGi API來創(chuàng)建您的應(yīng)用,然后將之部署到OSGi容器中。從開發(fā)者的角度看,OSGi具有以下優(yōu)點(diǎn):

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

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

c) OSGi為開發(fā)嵌入式應(yīng)用、移動應(yīng)用、富互聯(lián)網(wǎng)應(yīng)用(RIA)提供了非常優(yōu)秀的基礎(chǔ)架構(gòu)

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

1. OSGi在企業(yè)開發(fā)中的應(yīng)用

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

近年來,OSGi技術(shù)在嵌入式系統(tǒng)及網(wǎng)絡(luò)設(shè)備市場得到廣泛應(yīng)用?,F(xiàn)在,由于Eclipse的成功,OSGi在企業(yè)開發(fā)中逐漸成為切實(shí)可行的、較有價 值的一種技術(shù)。

1.1. 業(yè)界對OSGi的支持逐漸上升

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

2. 開放源碼的OSGi容器

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

只要您的應(yīng)用和OSGi規(guī)范兼容,您的應(yīng)用就應(yīng)該可以運(yùn)行在任何OSGi容器中,現(xiàn)在比較流行的開放源碼的OSGi容器有以下三種:

a) Equinox 容器 是參照OSGi規(guī)范第4版實(shí)現(xiàn)的,它構(gòu)成了Eclipse IDE的核心—模塊化的Java運(yùn)行時;它實(shí)現(xiàn)了OSGi規(guī)范4中規(guī)定的必須強(qiáng)制實(shí)現(xiàn)的功能,同時,它也實(shí)現(xiàn)了OSGi規(guī)范中大部分的可選功能;

b) Knoflerfish是OSGi規(guī)范第3版和第4版的開源實(shí)現(xiàn),它實(shí)現(xiàn)了OSGi規(guī)范規(guī)定的必須實(shí)現(xiàn)的功能及部分可選功能;

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多