<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-1  評(píng)論-9  文章-7  trackbacks-0

    OSGi誕生初期,其目的主要是能夠靈活方便并遠(yuǎn)程管理互聯(lián)的網(wǎng)絡(luò)嵌入設(shè)備,OSGi聯(lián)盟上對(duì)于OSGi service platform有這樣一句解釋?zhuān)?/span>The OSGi service platform delivers an open, common architecture for service providers, developers, software vendors, gateway operators and equipment vendors to develop, deploy and manage services in a coordinated fashion.OSGi service platform是一個(gè)開(kāi)放并且提供通用接口標(biāo)準(zhǔn)的體系框架,基于這個(gè)體系框架,服務(wù)提供商,程序開(kāi)發(fā)人員,軟件提供商,服務(wù)網(wǎng)管運(yùn)營(yíng)商,設(shè)備提供商能夠協(xié)調(diào)地聯(lián)合起來(lái)開(kāi)發(fā),部署以及管理向用戶(hù)提供的各種服務(wù))。隨著OSGi的發(fā)展,逐漸被引入到企業(yè)應(yīng)用領(lǐng)域。

    目前,OSGi規(guī)范的最新版本為R4.2,有關(guān)該規(guī)范的詳細(xì)情況請(qǐng)閱讀OSGi實(shí)戰(zhàn)的第7節(jié)——深入OSGiOSGi框架主要分為四部分:運(yùn)行環(huán)境(executionenvironment)、模塊(Modules)、生命周期管理(Life Cycle)、服務(wù)注冊(cè)(Service Registry)。運(yùn)行在OSGi環(huán)境中的是一個(gè)個(gè)的Bundle,也就是Modules的具體實(shí)現(xiàn)。

    對(duì)于每個(gè)bundle,都有各自的ClassLoader,在這一點(diǎn)上和傳統(tǒng)的Web應(yīng)用有相似之處,在傳統(tǒng)的Web應(yīng)用開(kāi)發(fā)完成之后,都會(huì)將其部署在TomcatJboss等服務(wù)器上,這些Web應(yīng)用都有著各自的ClassLoader環(huán)境,而兩者之間的區(qū)別在于,傳統(tǒng)的Web應(yīng)用無(wú)法做到資源的共享,因?yàn)樗鼈兪峭耆?dú)立、隔離的。OSGi框架為bundle之間的協(xié)作提供了底層支持,通過(guò)在bundleMANIFEST.MF文件中Import-PackageExport-Package等項(xiàng),bundle之間就能相互共享資源及服務(wù),在以后的博文中,我將給出一個(gè)具體的示例。

    由于OSGi具有良好的模塊化結(jié)構(gòu),我個(gè)人認(rèn)為這將為將來(lái)的軟件開(kāi)發(fā)方式帶來(lái)很大的沖擊,將更進(jìn)一步推進(jìn)模塊化開(kāi)發(fā)。目前Web應(yīng)用的開(kāi)發(fā)一般采用SSH框架,將整個(gè)應(yīng)用大致分為Web(負(fù)責(zé)前臺(tái)展現(xiàn))、Service(負(fù)責(zé)業(yè)務(wù)邏輯處理)、DAO(負(fù)責(zé)數(shù)據(jù)持久化)、Domain(全局實(shí)體類(lèi))幾個(gè)模塊,而發(fā)布的時(shí)候,將被一起打成WAR包,部署至服務(wù)器上。如果采取bundle的形式,每個(gè)模塊可以做為獨(dú)立的bundle進(jìn)行開(kāi)發(fā)和部署,bundle之間的協(xié)作可以通過(guò)上述的方式進(jìn)行,而這樣帶來(lái)的好處就是,一旦需要對(duì)某個(gè)模塊進(jìn)行更改,在保證依賴(lài)接口不變的前提下,就可以單獨(dú)更改相應(yīng)的bundle,再進(jìn)行熱部署即可,這樣一來(lái),好處是顯而易見(jiàn)的,有效的分離了各個(gè)模塊,減少了維護(hù)成本。

    由于采用bundle的形式,也增強(qiáng)了模塊的復(fù)用性。這也是得益于OSGi良好的模塊化方式。

    另外一個(gè)很重要的點(diǎn)就是OSGi具備熱拔插特性,bundle的安裝、啟動(dòng)、停止、卸載都可以在運(yùn)行時(shí)指定,并且可以隨時(shí)更改。這樣一來(lái),我們就可以做到無(wú)需重啟整個(gè)應(yīng)用,而只對(duì)需要更改的部分進(jìn)行升級(jí)或打補(bǔ)丁即可。Bundl的狀態(tài)圖轉(zhuǎn)換如下圖所示:


    1 OSGi bundle狀態(tài)轉(zhuǎn)換圖

    以上將OSGi的一些基本的,但也是很重要的東西大概介紹了一下,在以后的博文中逐步深入吧。以上都是關(guān)于OSGi原理性的東西,那么實(shí)現(xiàn)該規(guī)范的有哪些產(chǎn)品呢?最有名的應(yīng)該要數(shù)EclipseEquinox框架了,在網(wǎng)上查資料見(jiàn)有人說(shuō)過(guò),Eclipse3.0的那一次升級(jí)把自身的構(gòu)架做了一次非常大的調(diào)整,其主要原因就是采用了OSGi框架,更好的支持了Eclipse的插件體系。另外還有Felixknopflerfish等。

    不過(guò)話(huà)說(shuō)回來(lái),盡管OSGi有很多好處,但是現(xiàn)在主要還是應(yīng)用在服務(wù)器端,如現(xiàn)在的應(yīng)用服務(wù)器基本上都采用OSGi的框架,而真正的應(yīng)用市場(chǎng)仍處理起步階段,這和OSGi的生態(tài)環(huán)境還不成熟,可喜的是Spring推出了其Spring DMSpringSource DM Server,前者能夠很方便發(fā)布和引用服務(wù),并且與Spring Framework平臺(tái)相融合,將OSGibundle contextSpring applicationContext融合在一起,大大方便了OSGi的應(yīng)用。后者是OSGi bundle的運(yùn)行環(huán)境,是一個(gè)將EquinoxTomcat融合在一起的服務(wù)器。在以后的博文中將詳細(xì)介紹這些內(nèi)容。

    posted on 2010-03-28 11:47 Dreava 閱讀(611) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): OSGi

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久亚洲国产精品123区| 四虎影视永久免费观看地址| 亚洲情XO亚洲色XO无码| 成人在线免费视频| 亚洲M码 欧洲S码SSS222| 黄色毛片免费观看| 免费人成视频在线观看视频| 爱情岛论坛亚洲品质自拍视频网站| 在线a级毛片免费视频| 2020国产精品亚洲综合网| 久久久久免费看黄A片APP| 亚洲人成7777| 日韩伦理片电影在线免费观看| 亚洲精品无码久久久久久| 国产成人3p视频免费观看 | 成人午夜免费福利视频| 亚洲一级毛片免费在线观看| 毛片免费视频播放| 亚洲成在人线aⅴ免费毛片| 免费一看一级毛片全播放| 一区二区三区在线观看免费 | 最近免费最新高清中文字幕韩国| 亚洲视频日韩视频| 成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片 | 亚洲一区二区三区日本久久九| 亚洲电影在线免费观看| 亚洲xxxx视频| 亚洲第一页综合图片自拍| 三级网站免费观看| 亚洲一区二区三区乱码在线欧洲| 国产yw855.c免费视频| fc2免费人成在线| 亚洲的天堂av无码| 又爽又黄无遮挡高清免费视频 | 亚洲国产精品VA在线看黑人| 99在线精品免费视频九九视| 国产亚洲精品成人久久网站| 亚洲AV无码专区国产乱码4SE| 成人毛片免费在线观看| 久久久受www免费人成| 亚洲人成7777影视在线观看|