OSGI(社會機構)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

OSGI是Open Service Gateway Initiative的簡稱,該組織建立於1999年,是一個非贏利機構,旨在建立一個開放的服務規範,為通過網路向設備提供服務建立開放的標準。

基本介紹

  • 中文名:OSGI
  • 外文名:Open Service Gateway Initiative
  • 建立:1999年
  • 類型:非贏利機構
規範介紹,制定背景,體系結構,

規範介紹

OSGi規範為網路服務定義了一個標準的、面向組件的計算環境。將OSGi服務平台添加到一個網路設備中,可以為其增加在網路的任何地方管理組件的生命周期的能力。軟體組件可以從運行中被安裝、升級或者移除而不需要中斷設備的操作。軟體組件可以動態的發現和使用其他庫或者應用程式。通過這個平台,軟體組件可以作為商品在櫃檯中出售以及在家裡開發。OSGi聯盟已經開發出很多標準組件接口,從普通的功能如:HTTP server、configuration、 logging、security、user administration、XML等等很多。一致的外掛程式機制可以使這些組件滿足不同買主的不同需求。
軟體組件架構致力於一個軟體開發中越來越大的問題:大量的基礎配置需要開發和維護。標準化的OSGI組件架構顯然可以簡化這個配置過程。

制定背景

OSGi(Open Service Gateway Initiative)最初的目的就是為各種嵌入式設備提供通用的軟體運行平台,即可以禁止設備作業系統與硬體區別的中間件平台。PC基本上被 Wintel架構壟斷,運行在PC上的應用程式完全可以在另一台PC上運行;但對於其他設備來說就不同,它們的硬體平台可能完全不同,其作業系統也是來自不同廠商,所以任何設備上的應用程式都需要定製,於是就產生了對中間件平台的需求。
OSGi並不是專為家庭網路而制定的,除了住宅網關,像車載電腦等其他移動嵌入式設備也都可以通過OSGi接入Internet,獲取不同的套用服務。它為服務供應商、軟體供應商、網關開發人員以及設備供應商提供了一個開放、通用的架構,使它們能互動地開發、部署和管理服務。其軟體環境基於Sun的 JAVA虛擬機,並不涉及具體的連線協定。對於任何新設備,它都能夠靈活地將其納入現有網路。可以使用OSGi的對象包括各種數字和模擬的機頂盒、服務網關、有線電視電纜數據機消費類電子產品、PC、工業計算機、汽車等。
因為OSGi基於JAVA技術,而JAVA最大的好處就是平台無關性。在不同類型的住宅網關設備上都可以實現OSGi軟體。而且OSGi規範可以與各種設備訪問標準橋接(如圖1所示),比如遵循OSGi的系統可以很好地部署和管理Jini服務,它可以提供Jini設備與服務提供商之間的互動。對於像 HAVi、UPnP等基於非JAVA技術的標準和規範,OSGi也可以提供與它們溝通的橋樑。

體系結構

2.1 OSGi規範的體系結構
在OSGi規範中提供了一個參考的體系架構[1],也基本上體現了OSGi的設計初衷。
OSGi的體系架構是基於這樣一個模型的:經營者管理著一個潛在的巨大的服務網路平台。OSGi規範假設這個服務平台是完全被這個經營者控制,並且經營者使用該服務平台去運行來自不同服務提供者提供的服務。然而這只是一個場景,還有其他模型,例如PC機的部署,工業套用(如,行動電話基站是一個管理中心完全控制著各個方面),中間件模型等。OSGi最廣泛的套用是在網路化的服務。除了參考模型之外,規範之中還提到了其他的一些模型。請參考OSGi 3.0規範[1]。
2.1.1 OSGi參考體系架構的特點
1. 商業驅動:經營者的觀點驅動OSGi的體系架構。
2. 完美:體系架構必須是足夠完善和詳細的,以致允許開發商生產出健壯的產品。
3. 不受限的:由於經營者所操作的服務平台在性能和網路環境的變化是非常大的。
4. 開放:標準不是為一個具體的系統而設計的,OSGi參考體系架構必須考慮和支持許多不同的場景。
2.1.2 OSGi參考體系架構所涉及到實體
1. 服務平台:一個JAVA虛擬機的實例,一個OSGi框架結構,和運行著的服務包的集合。
2. 服務平台伺服器(SPS):駐留一個或多個服務平台的硬體。
3. 運營商:掌控許多服務平台的組織。
4. 服務套用:一套軟體包,文檔和支撐軟體所組合起來的套用,這些套用向終端用戶提供服務。
5. 服務用戶:獲取服務套用服務的用戶。
6. 服務提供者:開發服務套用並且通過服務部署管理器部署到服務平台上。
7. 服務部署管理器:部署和部分管理一個或多個服務提供者提供的服務套用。
8. 服務運行支持:支撐軟體和硬體,它們並不駐留在服務平台伺服器上,但是在運行服務套用時需要它們。
9. 服務集成者:負責確保來自不同服務提供者的服務套用的集成。
10. 服務開發者:開發服務套用。
11. 製造商:製造服務平台伺服器
12. 擁有者:服務平台伺服器擁有者。
13. 收費提供者:接受帳戶信息,並且提供統一的帳單給服務消費者。
14. 網路提供者:提供服務平台的網路連結
15. 證書授權:管理證書的組織,這些證書被用來鑑別系統,個人和組織。
首先是製造商製造服務平台伺服器,擁有者從製造商處購買服務平台伺服器,網路提供商提供服務平台伺服器和網際網路的接入。服務平台的運營商使用網路提供者的接入基礎件接入服務平台伺服器,同時服務平台經營者控制著一個或多個運行在服務平台伺服器的服務平台。另一方面,服務平台經營者許可服務部署管理器去部署服務套用到服務平台上。
其次服務開發者開發服務套用,一個服務套用可能包含多個服務包而這些服務包是真正運行在服務平台上的。服務提供者從服務開發者處得到服務套用並且可能會委託服務運行支撐系統去支撐該服務套用在服務平台上的運行。服務集成者將服務提供者獲取的服務套用和支持系統集成起來由服務部署管理器部署到服務平台上。
最後服務消費者訂閱服務提供者提供的服務。
更有意思的是這裡還有一個服務用戶實體,從圖中可以看出服務消費者可以包含多個服務用戶,服務用戶是真正接受服務的實體。也就是說服務消費者是一個虛的實體,多個服務用戶可以消費同一個服務消費者訂閱的服務。這好比不同的人可以通過同一個電話打電話一樣。這無疑提高了OSGi規範靈活性。

相關詞條

熱門詞條

聯絡我們