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

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

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

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

    posted on 2009-02-14 16:28 布衣郎 閱讀(3448) 評論(1)  編輯  收藏 所屬分類: eclipse

    FeedBack:
    # re: osgi 入門 二之關于osgi
    2009-03-06 18:12 | guooo
    學習.  回復  更多評論
      

    <2009年2月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    1234567

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 357300
    • 排名 - 155

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一区二区三区免费在线观看| 色婷五月综激情亚洲综合| 国产精品亚洲精品久久精品| 久久精品免费一区二区喷潮| 亚洲伊人久久大香线蕉啊| 99久热只有精品视频免费观看17| 久久久久久a亚洲欧洲AV| 欧洲人成在线免费| 久久久无码精品亚洲日韩蜜桃| 免费av片在线观看网站| 亚洲三级电影网址| 97碰公开在线观看免费视频| 亚洲av极品无码专区在线观看| 在线播放高清国语自产拍免费| 亚洲AV日韩AV永久无码色欲| 亚洲欧洲久久久精品| 久久美女网站免费| 久久亚洲精品人成综合网| 久久午夜免费视频| 狠狠综合亚洲综合亚洲色| 亚洲国产成人久久综合野外| 一区二区免费电影| 亚洲AV成人一区二区三区AV| 麻豆视频免费播放| 国产精品亚洲专区无码不卡| 亚洲精品自产拍在线观看| 中文字幕天天躁日日躁狠狠躁免费| 亚洲制服丝袜精品久久| 日韩亚洲国产二区| 天黑黑影院在线观看视频高清免费 | 午夜精品射精入后重之免费观看| 亚洲影院在线观看| 女人18毛片水最多免费观看| 男人扒开添女人下部免费视频| 久久亚洲国产欧洲精品一| 免费视频爱爱太爽了| 免费看一级一级人妻片| 亚洲Aⅴ无码专区在线观看q| 午夜一级免费视频| 国产一二三四区乱码免费| 亚洲一区在线观看视频|