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

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

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

    閑人野居
    好好學(xué)習(xí),天天向上
    posts - 57,  comments - 137,  trackbacks - 0
        前面通過(guò)一個(gè)例子簡(jiǎn)單的介紹了如何快速的開(kāi)發(fā)一個(gè)osgi應(yīng)用。下面來(lái)具體說(shuō)明一下什么是osgi,以及osgi 能做什么,為什么使用osgi,以及到底o(hù)sgi能帶來(lái)什么益處。
        首先osgi是什么,osgi是由osgi alliance 制定的一個(gè)規(guī)范。由此規(guī)范,形成了osgi框架。基本上,osgi 也就是類(lèi)似于servlet規(guī)范一樣,提供相應(yīng)的接口。而具體的實(shí)現(xiàn),由相應(yīng)的平臺(tái)實(shí)現(xiàn),如equinox平臺(tái)。
        說(shuō)了那么多,具體osgi能做什么呢?個(gè)人歸納了一下,包括以下幾點(diǎn):
        1.提供更高層次的模塊管理,相對(duì)于java的包來(lái)說(shuō),osgi更加傾向于模塊管理。
        2.提供更好的封裝性,使用更加嚴(yán)格的類(lèi)裝載機(jī)制,讓模塊內(nèi)的封裝性變得更強(qiáng)。
        3.真正的面向接口,面向服務(wù)編程,使模塊之間的耦合度大大降低。
        4.支持熱部署,只要osgi內(nèi)核運(yùn)行著,其他模塊可以隨時(shí)更新,增加。
        5.易擴(kuò)展,便于使用插件的模式進(jìn)行擴(kuò)展。具體看看eclipse的插件體系就知道了。
        簡(jiǎn)單介紹了一下osgi,下面說(shuō)說(shuō)osgi的幾個(gè)層次:
        安全層:基于java2 安全機(jī)制,增加了相應(yīng)的限制和使用標(biāo)準(zhǔn)的java 許可。
        模塊層;定義標(biāo)準(zhǔn)的java 模型
        生命周期層:提供完整的bundles生命周期管理
        服務(wù)層:提供動(dòng)態(tài),簡(jiǎn)潔和持久化編程模型。
        相應(yīng)的實(shí)際服務(wù)接口。
        主要來(lái)說(shuō)說(shuō)模塊層,看過(guò)前面的例子應(yīng)該知道,那個(gè)例子一共包括10個(gè)模塊(包括系統(tǒng)模塊)osgi 以bundle作為一個(gè)基本的模塊單元。bundle主要包括需要的基礎(chǔ)資源,包括類(lèi)和其他資源文件;一個(gè)manifest文件,用于描述bundle信息,以及可選的osgi-opt目錄。
        manifest文件是最重要的描述文件,如果缺失,則bundle也就無(wú)法裝載。
        簡(jiǎn)單解釋一下前面定義過(guò)的bundle manifest;bundle 文件包括幾個(gè)必須的元素:
        Bundle-ManifestVersion: 2//定義了bundle遵循規(guī)范的規(guī)則,1表示r3規(guī)范 2表示r4和以后的版本
        Manifest-Version: 1.0 //主要的版本號(hào)
        //唯一的bundle名稱,相當(dāng)于在系統(tǒng)中的id。singleton表示是否使用單啟動(dòng)方式
        Bundle-SymbolicName: org.demo.helloworld;singleton:=true
        //以下是可選的
        Bundle-Name: Helloworld Plug-in//bundel 名稱
        Bundle-Vendor: zsoft//發(fā)布商
        Bundle-RequiredExecutionEnvironment: J2SE-1.5//需要的執(zhí)行環(huán)境
        //下面是一些引用包的信息,包括包名稱和版本號(hào),只有引用了這些包,才能讓classloader裝載。
        Import-Package: javax.servlet;version="2.4.0",
        javax.servlet.http;version="2.4.0",
        org.apache.commons.logging;version="1.0.4",
        org.osgi.framework;version="1.4.0"
       //這是直接引用整個(gè)bundle,一般不提倡整個(gè)引用,這里是用來(lái)定義擴(kuò)展
       Require-Bundle: org.eclipse.equinox.http.registry;bundle-version="1.0.100"
       這里簡(jiǎn)單的描述了一下主要的幾個(gè)bundle頭信息,如果需要詳細(xì)了解,具體參考相應(yīng)的規(guī)范。本篇的內(nèi)容就這些,下篇詳細(xì)講解一下osgi的類(lèi)裝載機(jī)制,這也是初學(xué)者最頭疼的。

    posted on 2009-02-14 16:28 布衣郎 閱讀(3458) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): eclipse

    FeedBack:
    # re: osgi 入門(mén) 二之關(guān)于osgi
    2009-03-06 18:12 | guooo
    學(xué)習(xí).  回復(fù)  更多評(píng)論
      

    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(12)

    隨筆分類(lèi)(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 358028
    • 排名 - 156

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲视频在线免费| 亚洲熟妇久久精品| 午夜a级成人免费毛片| 久久精品免费一区二区喷潮| 亚洲午夜精品一区二区| 成人无码a级毛片免费| 成年人视频在线观看免费| 亚洲精品久久久www | 亚洲精品视频免费在线观看| 国产精品99精品久久免费| 亚洲电影中文字幕| 69堂人成无码免费视频果冻传媒| 91亚洲va在线天线va天堂va国产| 亚洲JIZZJIZZ妇女| 男人的天堂亚洲一区二区三区 | 182tv免费观看在线视频| 亚洲第一永久在线观看| 国产精品无码免费播放| 在线观看亚洲免费视频| 亚洲黄片毛片在线观看| a毛片全部播放免费视频完整18| 精品国产一区二区三区免费看| 亚洲成aⅴ人片久青草影院按摩| 免费播放美女一级毛片 | 亚洲国产成人久久笫一页| 亚洲最大成人网色香蕉| 免费国产99久久久香蕉| 久久亚洲高清综合| 99久久久国产精品免费牛牛 | 免费日本一区二区| 亚洲国产午夜电影在线入口| 国产色爽免费无码视频| 亚洲喷奶水中文字幕电影| 午夜免费福利在线| 免费观看一区二区三区| 亚洲中文字幕AV在天堂| 亚洲一本大道无码av天堂| 又大又硬又爽又粗又快的视频免费| 久久精品亚洲日本波多野结衣| 夜夜春亚洲嫩草影院| www免费黄色网|