OSGi規(guī)范介紹
第一章 引言
OSGi(Open Service Gateway Initiative)最初的目的就是為各種嵌入式設備提供通用的軟件運行平臺,即可以屏蔽設備操作系統(tǒng)與硬件區(qū)別的中間件平臺。PC基本上被 Wintel架構壟斷,運行在PC上的應用程序完全可以在另一臺PC上運行;但對于其他設備來說就不同,它們的硬件平臺可能完全不同,其操作系統(tǒng)也是來自不同廠商,所以任何設備上的應用程序都需要定制,于是就產生了對中間件平臺的需求。
OSGi并不是專為家庭網(wǎng)絡而制定的,除了住宅網(wǎng)關,像車載電腦等其他移動嵌入式設備也都可以通過OSGi接入Internet,獲取不同的應用服務。它為服務供應商、軟件供應商、網(wǎng)關開發(fā)人員以及設備供應商提供了一個開放、通用的架構,使它們能互動地開發(fā)、部署和管理服務。其軟件環(huán)境基于Sun的 JAVA虛擬機,并不涉及具體的連接協(xié)議。對于任何新設備,它都能夠靈活地將其納入現(xiàn)有網(wǎng)絡。可以使用OSGi的對象包括各種數(shù)字和模擬的機頂盒、服務網(wǎng)關、有線電視電纜調制解調器、消費類電子產品、PC、工業(yè)計算機、汽車等。
因為OSGi基于JAVA技術,而JAVA最大的好處就是平臺無關性。在不同類型的住宅網(wǎng)關設備上都可以實現(xiàn)OSGi軟件。而且OSGi規(guī)范可以與各種設備訪問標準橋接(如圖1所示),比如遵循OSGi的系統(tǒng)可以很好地部署和管理Jini服務,它可以提供Jini設備與服務提供商之間的交互。對于像 HAVi、UPnP等基于非JAVA技術的標準和規(guī)范,OSGi也可以提供與它們溝通的橋梁。
第二章 OSGi規(guī)范介紹
2.1 OSGi規(guī)范的體系結構
在OSGi規(guī)范中提供了一個參考的體系架構[1],也基本上體現(xiàn)了OSGi的設計初衷。
OSGi的體系架構是基于這樣一個模型的:經營者管理著一個潛在的巨大的服務網(wǎng)絡平臺。OSGi規(guī)范假設這個服務平臺是完全被這個經營者控制,并且經營者使用該服務平臺去運行來自不同服務提供者提供的服務。然而這只是一個場景,還有其他模型,例如PC機的部署,工業(yè)應用(如,移動電話基站是一個管理中心完全控制著各個方面),中間件模型等。OSGi最廣泛的應用是在網(wǎng)絡化的服務。除了參考模型之外,規(guī)范之中還提到了其他的一些模型。請參考OSGi 3.0規(guī)范[1]。
2.1.1 OSGi參考體系架構的特點
1. 商業(yè)驅動:經營者的觀點驅動OSGi的體系架構。
2. 完美:體系架構必須是足夠完善和詳細的,以致允許開發(fā)商生產出健壯的產品。
3. 不受限的:由于經營者所操作的服務平臺在性能和網(wǎng)絡環(huán)境的變化是非常大的。
4. 開放:標準不是為一個具體的系統(tǒng)而設計的,OSGi參考體系架構必須考慮和支持許多不同的場景。
2.1.2 OSGi參考體系架構所涉及到實體
1. 服務平臺:一個JAVA虛擬機的實例,一個OSGi框架結構,和運行著的服務包的集合。
2. 服務平臺服務器(SPS):駐留一個或多個服務平臺的硬件。
3. 運營商:掌控許多服務平臺的組織。
4. 服務應用:一套軟件包,文檔和支撐軟件所組合起來的應用,這些應用向終端用戶提供服務。
5. 服務用戶:獲取服務應用服務的用戶。
6. 服務提供者:開發(fā)服務應用并且通過服務部署管理器部署到服務平臺上。
7. 服務部署管理器:部署和部分管理一個或多個服務提供者提供的服務應用。
8. 服務運行支持:支撐軟件和硬件,它們并不駐留在服務平臺服務器上,但是在運行服務應用時需要它們。
9. 服務集成者:負責確保來自不同服務提供者的服務應用的集成。
10. 服務開發(fā)者:開發(fā)服務應用。
11. 制造商:制造服務平臺服務器。
12. 擁有者:服務平臺服務器擁有者。
13. 收費提供者:接受帳戶信息,并且提供統(tǒng)一的帳單給服務消費者。
14. 網(wǎng)絡提供者:提供服務平臺的網(wǎng)絡鏈接。
15. 證書授權:管理證書的組織,這些證書被用來鑒別系統(tǒng),個人和組織。
首先是制造商制造服務平臺服務器,擁有者從制造商處購買服務平臺服務器,網(wǎng)絡提供商提供服務平臺服務器和互聯(lián)網(wǎng)的接入。服務平臺的運營商使用網(wǎng)路提供者的接入基礎件接入服務平臺服務器,同時服務平臺經營者控制著一個或多個運行在服務平臺服務器的服務平臺。另一方面,服務平臺經營者許可服務部署管理器去部署服務應用到服務平臺上。
其次服務開發(fā)者開發(fā)服務應用,一個服務應用可能包含多個服務包而這些服務包是真正運行在服務平臺上的。服務提供者從服務開發(fā)者處得到服務應用并且可能會委托服務運行支撐系統(tǒng)去支撐該服務應用在服務平臺上的運行。服務集成者將服務提供者獲取的服務應用和支持系統(tǒng)集成起來由服務部署管理器部署到服務平臺上。
最后服務消費者訂閱服務提供者提供的服務。
更有意思的是這里還有一個服務用戶實體,從圖中可以看出服務消費者可以包含多個服務用戶,服務用戶是真正接受服務的實體。也就是說服務消費者是一個虛的實體,多個服務用戶可以消費同一個服務消費者訂閱的服務。這好比不同的人可以通過同一個電話打電話一樣。這無疑提高了OSGi規(guī)范靈活性。
您正在閱讀:OSGi規(guī)范介紹【編輯推薦】