日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

OSGI 面向Java的动态模型系统

發(fā)布時間:2025/3/21 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OSGI 面向Java的动态模型系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OSGI (面向Java的動態(tài)模型系統(tǒng))
  OSGi(Open Service Gateway Initiative)技術(shù)是Java動態(tài)化模塊化系統(tǒng)的一系列規(guī)范。OSGi一方面指維護OSGi規(guī)范的OSGI
官方聯(lián)盟,另一方面指的是該組織維護的基于Java語言的服務(wù)(業(yè)務(wù))規(guī)范。簡單來說,OSGi可以認為是Java平臺的模塊層。

  OSGi服務(wù)平臺向Java提供服務(wù),這些服務(wù)使Java成為軟件集成和軟件開發(fā)的首選環(huán)境。Java提供在多個平臺支持產(chǎn)品的可移植性。
OSGi技術(shù)提供允許應(yīng)用程序使用精煉、可重用和可協(xié)作的組件構(gòu)建的標準化原語,這些組件能夠組裝進一個應(yīng)用和部署中。

背景

OSGi給出了一套Java模塊化規(guī)范,這套規(guī)范給出了OSGi框架的定義,而具體的OSGi平臺,如Felix和Equinox則分別是 Apache和Eclipse開源社區(qū)給出的標準規(guī)范的實現(xiàn)。

  OSGi服務(wù)平臺提供在多種網(wǎng)絡(luò)設(shè)備上無需重啟的動態(tài)改變構(gòu)造的功能。為了最小化耦合度和促使這些耦合度可管理,
OSGi技術(shù)提供一種面向服務(wù)的架構(gòu),它能使這些組件動態(tài)地發(fā)現(xiàn)對方。OSGi聯(lián)盟已經(jīng)開發(fā)了例如像HTTP服務(wù)器、配置、
日志、安全、用戶管理、XML等很多公共功能標準組件接口。這些組件的兼容性插件實現(xiàn)可以從進行了不同優(yōu)化和
使用代價的不同計算機服務(wù)提供商得到。然而,服務(wù)接口能夠基于專有權(quán)基礎(chǔ)上開發(fā)。

  因為OSGi技術(shù)為集成提供了預(yù)建立和預(yù)測試的組件子系統(tǒng),所以O(shè)SGi技術(shù)使你從改善產(chǎn)品上市時間和降低開發(fā)成本上獲益。
因為這些組件能夠動態(tài)發(fā)布到設(shè)備上,所以O(shè)SGi技術(shù)也能降低維護成本和擁有獨一無二的新的配件市場機會

安全協(xié)議

  安全機制是建立在Java和Java2安全模型基礎(chǔ)之上。Java語言的設(shè)計對很多結(jié)構(gòu)進行了限
制。例如病毒中經(jīng)常遇到的緩存溢出是不可能發(fā)生的。Java語言中的訪問控制符限制了代碼可見性。

  OSGI平臺通過使用私有類(在Java中不能用標準方式使用的機制)擴展了該模型。
Java2安全模型提供了一個完整模塊檢查代碼對于資源的可訪問性。OSGI增加了完全動態(tài)的權(quán)限管理,簡化了操作者和系統(tǒng)管理員的工作。

  OSGI聯(lián)盟已經(jīng)定義了很多協(xié)議服務(wù),這些服務(wù)將外部協(xié)議映射為OSGI服務(wù)。HTTP服務(wù)(HttpService)該HTTP服務(wù)是servlet運行器。
bundles提供servlets,這些服務(wù)端小程序基于HTTP協(xié)議成為可用的。OSGi服務(wù)平臺的動態(tài)更新功能使HTTP服務(wù)成為一個非常具有吸引力的Web服務(wù)器,
它能伴隨著新的servlet被更新,如果需要可以遠程更新而無需重啟。

  UPnP服務(wù)(UPnPService)通用即插即用(UPnP)是一個正在形成中的消費電子標準。
OSGi中的UPnP服務(wù)在一個UPnP網(wǎng)絡(luò)上將設(shè)備映射到服務(wù)注冊中。同樣,它也可以將OSGi服務(wù)映射到UPnP網(wǎng)絡(luò)。
這是發(fā)布版本3中的推薦規(guī)范。

  DMT管理(DMTAdmin)開放移動聯(lián)盟(OMA)基于設(shè)備管理樹為移動設(shè)備管理提供了一個完整規(guī)定。
DMT管理服務(wù)定義該樹如何被訪問和/或者在OSGi服務(wù)平臺中被擴充。

框架結(jié)構(gòu)

OSGI規(guī)范的核心組件是OSGI框架。這個框架為應(yīng)用程序(被叫做組件(bundle))提供了一個標準環(huán)境。
整個框架可以劃分為一些層次:
L0:運行環(huán)境
L1:模塊
L2:生命周期管理
L3:服務(wù)注冊

還有一個無處不在的安全系統(tǒng)滲透到所有層。
  L0層執(zhí)行環(huán)境是Java環(huán)境的規(guī)范。Java2配置和子規(guī)范,像J2SE,CDC,CLDC,MIDP等等,都是有效的執(zhí)行環(huán)境。
OSGi平臺已經(jīng)標準化了一個執(zhí)行環(huán)境,它是基于基礎(chǔ)輪廓和在一個執(zhí)行環(huán)境上確定了最小需求的一個小一些的變種,
該執(zhí)行環(huán)境對OSGi組件是有用的。

  L1模塊層定義類的裝載策略。OSGi框架是一個強大的具有嚴格定義的類裝載模型。它基于Java之上,
但是增加了模塊化。在Java中,正常情況下有一個包含所有類和資源的類路徑。
OSGi模塊層為一個模塊增加了私有類同時有可控模塊間鏈接。模塊層同安全架構(gòu)完全集成,
可以選擇部署到部署封閉系統(tǒng),防御系統(tǒng),或者由廠商決定的完全由用戶管理的系統(tǒng)。

  L2生命周期層增加了能夠被動態(tài)安裝、開啟、關(guān)閉、更新和卸載的bundles。這些bundles依賴于于具有類裝載功能的模塊層,
但是增加了在運行時管理這些模塊的API。生命周期層引入了正常情況下不屬于一個應(yīng)用程序的動態(tài)性。
擴展依賴機制用于確保環(huán)境的操作正確。生命周期操作在安全架構(gòu)保護之下,使其不受到病毒的攻擊。

  L3層增加了服務(wù)注冊。服務(wù)注冊提供了一個面向bundles的考慮到動態(tài)性的協(xié)作模型。bundles能通過傳統(tǒng)的類共享進行協(xié)作,
但是類共享同動態(tài)安裝和卸載代碼不兼容。服務(wù)注冊提供了一個在bundles間分享對象的完整模型。定義了大量的事件來處理服務(wù)的注冊和刪除。
這些服務(wù)僅僅是能代表任何事物的Java對象。很多服務(wù)類似服務(wù)器對象,例如HTTP服務(wù)器,而另一些服務(wù)表示的是一個真實世界的對象,
例如附近的一個藍牙手機。這個服務(wù)模塊提供了完整安全保障。該服務(wù)安全模塊使用了一個很聰明的方式來保障bundles之間通信安全。

標準服務(wù)

  在該框架之上,OSGi聯(lián)盟定義了很多服務(wù)。這些服務(wù)通過一個Java接口指定。bundles能夠?qū)崿F(xiàn)這個接口,
并在注冊服務(wù)層注冊該服務(wù)。服務(wù)的客戶端在注冊庫中找到它,或者當(dāng)它出現(xiàn)或者消失時做出響應(yīng)。
這個同SOA架構(gòu)使用Web服務(wù)進行發(fā)布的方式相似。

  兩者主要不同是Web服務(wù)總是需要傳輸層,這個使它比采用直接方法調(diào)用的OSGi服務(wù)慢幾千倍。
同時,OSGi組件能夠?qū)@些服務(wù)的出現(xiàn)和消失做出響應(yīng)。更多的信息可以從OSGi服務(wù)平臺發(fā)行版本4手冊或者PDF下載中找到。
需要注意的是每一種服務(wù)都是抽象定義的,與不同計算機服務(wù)商的實現(xiàn)相獨立。

框架服務(wù)

OSGi框架提供一個權(quán)限管理服務(wù),一個包管理服務(wù)和一個開始級別服務(wù)。這些服務(wù)是一個可選部分,指示框架的操作。框架服務(wù)如下:
權(quán)限管理(PermissionAdmin)目前或者將來的bundles的權(quán)限通過這種服務(wù)進行維護。一旦設(shè)置了它們,權(quán)限服務(wù)立即激活。
包管理(PackageAdmin)bundles同類和資源分享包。bundles的更新可能需要系統(tǒng)重新計算這些依賴。
這個包管理服務(wù)提供關(guān)于系統(tǒng)的實際包分享狀態(tài)和能夠刷新已經(jīng)共享的包。也就是,取消依賴和重新計算依賴。
啟動級別(StartLevel)啟動級別是一個bundles集合,它們應(yīng)該同時運行或者應(yīng)該在其它已經(jīng)啟動以前被初始化。
啟動級別服務(wù)設(shè)置當(dāng)前的啟動級別,為每個bundle排一個啟動級別和審核當(dāng)前的設(shè)置。
URL處理者(URLHandler)Java環(huán)境為URL處理者支持一個提供者模型。然而,這是一個單件,
不可能在一個象OSGi可能有很多提供者的協(xié)作環(huán)境上使用它。此服務(wù)規(guī)范使任何組件提供額外的URL處理者。

系統(tǒng)服務(wù)

  系統(tǒng)服務(wù)提供水平功能,它在每個系統(tǒng)是必須的。日志服務(wù),配置管理服務(wù),設(shè)備訪問服務(wù),
用戶管理服務(wù),IO連接器服務(wù)和參數(shù)服務(wù)都是系統(tǒng)服務(wù)的一個方面。

  日志服務(wù)(LogService)日志信息,警告,調(diào)試或者錯誤信息通過日志服務(wù)來處理的。
它接受日志實體并分派這些實體到訂閱了這個信息的其他bundles。

  配置管理服務(wù)(ConfigurationAdminService)該服務(wù)提供一個設(shè)置和獲取配置信息的靈活、動態(tài)模型。

  設(shè)備訪問服務(wù)(DeviceAccessService)設(shè)備訪問是OSGi為一個新的設(shè)備匹配一個驅(qū)動,
并自動下載一個實現(xiàn)該驅(qū)動的bundles的機制。這個可用作即插即用方案。

  用戶管理服務(wù)(UserAdminService)該服務(wù)使用一個用于授權(quán)和驗證目的的用戶信息數(shù)據(jù)庫。

  IO連接器服務(wù)(IOConnectorService)該IO連接器服務(wù)實現(xiàn)了CDC/CLDCjavax包,并作為一個服務(wù)。
該服務(wù)允許bundles提供新的可交換協(xié)議模式。

  參數(shù)服務(wù)(PreferencesService)該服務(wù)提供了參數(shù)層級數(shù)據(jù)庫的可訪問性,同Windows注冊表或者Java參數(shù)類相似。

  組件運行時服務(wù)(ComponentRuntime)服務(wù)的動態(tài)特性--它們能夠在任何時間來去自由--使編寫軟件變得更難。
組建運行時規(guī)范通過提供一個基于依賴聲明的XML文件來簡化處理這些動態(tài)方面。

  部署管理服務(wù)(DeploymentAdmin)OSGi的主要部署格式是bundle,它是一個JAR/ZIP文件。
部署管理提供第二種可選格式:部署包。部署包能夠?qū)undles和相應(yīng)資源聯(lián)接成可被安裝和卸載的單個交付。
完整的資源處理器模型允許用戶代碼擴充資源類型。

  事件管理服務(wù)(EventAdmin)很多OSGi事件有特定的類型化的接口,使其很難接收和過濾事件。
事件服務(wù)提供一個泛化的基于主題的事件機制。這個規(guī)范包括為所有已存框架和服務(wù)事件的映射。

  應(yīng)用程序管理服務(wù)(ApplicationAdmin)OSGibundle模型不同于依賴于啟動和關(guān)閉形式的典型的桌面或者移動電話應(yīng)用程序模型。
該應(yīng)用程序管理服務(wù)提供了傳統(tǒng)應(yīng)用程序模型和它所要求的管理設(shè)施。

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的OSGI 面向Java的动态模型系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。