詞語(yǔ)解釋
1.社會(huì)機(jī)構(gòu)OSGI(Open Service Gateway Initiative):
OSGI是Open Service Gateway Initiative的簡(jiǎn)稱(chēng),該組織建立于1999年,是一個(gè)非贏利機(jī)構(gòu),旨在建立一個(gè)開(kāi)放的服務(wù)規(guī)范,為通過(guò)網(wǎng)絡(luò)向設(shè)備提供服務(wù)建立開(kāi)放的標(biāo)準(zhǔn)。
2.計(jì)算機(jī)服務(wù)平臺(tái)OSGi:
OSGi規(guī)范為網(wǎng)絡(luò)服務(wù)定義了一個(gè)標(biāo)準(zhǔn)的、面向組件的計(jì)算環(huán)境。將OSGi服務(wù)平臺(tái)添加到一個(gè)網(wǎng)絡(luò)設(shè)備中,可以為其增加在網(wǎng)絡(luò)的任何地方管理組件的生命周期的能力。軟件組件可以從運(yùn)行中被安裝、升級(jí)或者移除而不需要中斷設(shè)備的操作。軟件組件可以動(dòng)態(tài)的發(fā)現(xiàn)和使用其他庫(kù)或者應(yīng)用程序。通過(guò)這個(gè)平臺(tái),軟件組件可以作為商品在柜臺(tái)中出售以及在家里開(kāi)發(fā)。OSGi聯(lián)盟已經(jīng)開(kāi)發(fā)出很多標(biāo)準(zhǔn)組件接口,從普通的功能如:HTTP server、configuration、 logging、security、user administration、XML等等很多。一致的插件機(jī)制可以使這些組件滿(mǎn)足不同買(mǎi)主的不同需求。
軟件組件架構(gòu)致力于一個(gè)軟件開(kāi)發(fā)中越來(lái)越大的問(wèn)題:大量的基礎(chǔ)配置需要開(kāi)發(fā)和維護(hù)。標(biāo)準(zhǔn)化的OSGI組件架構(gòu)顯然可以簡(jiǎn)化這個(gè)配置過(guò)程。
OSGi規(guī)范介紹
第一章 引言
OSGi(Open Service Gateway Initiative)最初的目的就是為各種嵌入式設(shè)備提供通用的軟件運(yùn)行平臺(tái),即可以屏蔽設(shè)備操作系統(tǒng)與硬件區(qū)別的中間件平臺(tái)。PC基本上被 Wintel架構(gòu)壟斷,運(yùn)行在PC上的應(yīng)用程序完全可以在另一臺(tái)PC上運(yùn)行;但對(duì)于其他設(shè)備來(lái)說(shuō)就不同,它們的硬件平臺(tái)可能完全不同,其操作系統(tǒng)也是來(lái)自不同廠商,所以任何設(shè)備上的應(yīng)用程序都需要定制,于是就產(chǎn)生了對(duì)中間件平臺(tái)的需求。
OSGi并不是專(zhuān)為家庭網(wǎng)絡(luò)而制定的,除了住宅網(wǎng)關(guān),像車(chē)載電腦等其他移動(dòng)嵌入式設(shè)備也都可以通過(guò)OSGi接入Internet,獲取不同的應(yīng)用服務(wù)。它為服務(wù)供應(yīng)商、軟件供應(yīng)商、網(wǎng)關(guān)開(kāi)發(fā)人員以及設(shè)備供應(yīng)商提供了一個(gè)開(kāi)放、通用的架構(gòu),使它們能互動(dòng)地開(kāi)發(fā)、部署和管理服務(wù)。其軟件環(huán)境基于Sun的 JAVA虛擬機(jī),并不涉及具體的連接協(xié)議。對(duì)于任何新設(shè)備,它都能夠靈活地將其納入現(xiàn)有網(wǎng)絡(luò)?梢允褂肙SGi的對(duì)象包括各種數(shù)字和模擬的機(jī)頂盒、服務(wù)網(wǎng)關(guān)、有線電視電纜調(diào)制解調(diào)器、消費(fèi)類(lèi)電子產(chǎn)品、PC、工業(yè)計(jì)算機(jī)、汽車(chē)等。
因?yàn)镺SGi基于JAVA技術(shù),而JAVA最大的好處就是平臺(tái)無(wú)關(guān)性。在不同類(lèi)型的住宅網(wǎng)關(guān)設(shè)備上都可以實(shí)現(xiàn)OSGi軟件。而且OSGi規(guī)范可以與各種設(shè)備訪問(wèn)標(biāo)準(zhǔn)橋接(如圖1所示),比如遵循OSGi的系統(tǒng)可以很好地部署和管理Jini服務(wù),它可以提供Jini設(shè)備與服務(wù)提供商之間的交互。對(duì)于像 HAVi、UPnP等基于非JAVA技術(shù)的標(biāo)準(zhǔn)和規(guī)范,OSGi也可以提供與它們溝通的橋梁。
第二章 OSGi規(guī)范介紹
2.1 OSGi規(guī)范的體系結(jié)構(gòu)
在OSGi規(guī)范中提供了一個(gè)參考的體系架構(gòu)[1],也基本上體現(xiàn)了OSGi的設(shè)計(jì)初衷。
OSGi的體系架構(gòu)是基于這樣一個(gè)模型的:經(jīng)營(yíng)者管理著一個(gè)潛在的巨大的服務(wù)網(wǎng)絡(luò)平臺(tái)。OSGi規(guī)范假設(shè)這個(gè)服務(wù)平臺(tái)是完全被這個(gè)經(jīng)營(yíng)者控制,并且經(jīng)營(yíng)者使用該服務(wù)平臺(tái)去運(yùn)行來(lái)自不同服務(wù)提供者提供的服務(wù)。然而這只是一個(gè)場(chǎng)景,還有其他模型,例如PC機(jī)的部署,工業(yè)應(yīng)用(如,移動(dòng)電話(huà)基站是一個(gè)管理中心完全控制著各個(gè)方面),中間件模型等。OSGi最廣泛的應(yīng)用是在網(wǎng)絡(luò)化的服務(wù)。除了參考模型之外,規(guī)范之中還提到了其他的一些模型。請(qǐng)參考OSGi 3.0規(guī)范[1]。
2.1.1 OSGi參考體系架構(gòu)的特點(diǎn)
1. 商業(yè)驅(qū)動(dòng):經(jīng)營(yíng)者的觀點(diǎn)驅(qū)動(dòng)OSGi的體系架構(gòu)。
2. 完美:體系架構(gòu)必須是足夠完善和詳細(xì)的,以致允許開(kāi)發(fā)商生產(chǎn)出健壯的產(chǎn)品。
3. 不受限的:由于經(jīng)營(yíng)者所操作的服務(wù)平臺(tái)在性能和網(wǎng)絡(luò)環(huán)境的變化是非常大的。
4. 開(kāi)放:標(biāo)準(zhǔn)不是為一個(gè)具體的系統(tǒng)而設(shè)計(jì)的,OSGi參考體系架構(gòu)必須考慮和支持許多不同的場(chǎng)景。
2.1.2 OSGi參考體系架構(gòu)所涉及到實(shí)體
1. 服務(wù)平臺(tái):一個(gè)JAVA虛擬機(jī)的實(shí)例,一個(gè)OSGi框架結(jié)構(gòu),和運(yùn)行著的服務(wù)包的集合。
2. 服務(wù)平臺(tái)服務(wù)器(SPS):駐留一個(gè)或多個(gè)服務(wù)平臺(tái)的硬件。
3. 運(yùn)營(yíng)商:掌控許多服務(wù)平臺(tái)的組織。
4. 服務(wù)應(yīng)用:一套軟件包,文檔和支撐軟件所組合起來(lái)的應(yīng)用,這些應(yīng)用向終端用戶(hù)提供服務(wù)。
5. 服務(wù)用戶(hù):獲取服務(wù)應(yīng)用服務(wù)的用戶(hù)。
6. 服務(wù)提供者:開(kāi)發(fā)服務(wù)應(yīng)用并且通過(guò)服務(wù)部署管理器部署到服務(wù)平臺(tái)上。
7. 服務(wù)部署管理器:部署和部分管理一個(gè)或多個(gè)服務(wù)提供者提供的服務(wù)應(yīng)用。
8. 服務(wù)運(yùn)行支持:支撐軟件和硬件,它們并不駐留在服務(wù)平臺(tái)服務(wù)器上,但是在運(yùn)行服務(wù)應(yīng)用時(shí)需要它們。
9. 服務(wù)集成者:負(fù)責(zé)確保來(lái)自不同服務(wù)提供者的服務(wù)應(yīng)用的集成。
10. 服務(wù)開(kāi)發(fā)者:開(kāi)發(fā)服務(wù)應(yīng)用。
11. 制造商:制造服務(wù)平臺(tái)服務(wù)器
12. 擁有者:服務(wù)平臺(tái)服務(wù)器擁有者。
13. 收費(fèi)提供者:接受帳戶(hù)信息,并且提供統(tǒng)一的帳單給服務(wù)消費(fèi)者。
14. 網(wǎng)絡(luò)提供者:提供服務(wù)平臺(tái)的網(wǎng)絡(luò)鏈接。
15. 證書(shū)授權(quán):管理證書(shū)的組織,這些證書(shū)被用來(lái)鑒別系統(tǒng),個(gè)人和組織。
首先是制造商制造服務(wù)平臺(tái)服務(wù)器,擁有者從制造商處購(gòu)買(mǎi)服務(wù)平臺(tái)服務(wù)器,網(wǎng)絡(luò)提供商提供服務(wù)平臺(tái)服務(wù)器和互聯(lián)網(wǎng)的接入。服務(wù)平臺(tái)的運(yùn)營(yíng)商使用網(wǎng)路提供者的接入基礎(chǔ)件接入服務(wù)平臺(tái)服務(wù)器,同時(shí)服務(wù)平臺(tái)經(jīng)營(yíng)者控制著一個(gè)或多個(gè)運(yùn)行在服務(wù)平臺(tái)服務(wù)器的服務(wù)平臺(tái)。另一方面,服務(wù)平臺(tái)經(jīng)營(yíng)者許可服務(wù)部署管理器去部署服務(wù)應(yīng)用到服務(wù)平臺(tái)上。
其次服務(wù)開(kāi)發(fā)者開(kāi)發(fā)服務(wù)應(yīng)用,一個(gè)服務(wù)應(yīng)用可能包含多個(gè)服務(wù)包而這些服務(wù)包是真正運(yùn)行在服務(wù)平臺(tái)上的。服務(wù)提供者從服務(wù)開(kāi)發(fā)者處得到服務(wù)應(yīng)用并且可能會(huì)委托服務(wù)運(yùn)行支撐系統(tǒng)去支撐該服務(wù)應(yīng)用在服務(wù)平臺(tái)上的運(yùn)行。服務(wù)集成者將服務(wù)提供者獲取的服務(wù)應(yīng)用和支持系統(tǒng)集成起來(lái)由服務(wù)部署管理器部署到服務(wù)平臺(tái)上。
最后服務(wù)消費(fèi)者訂閱服務(wù)提供者提供的服務(wù)。
更有意思的是這里還有一個(gè)服務(wù)用戶(hù)實(shí)體,從圖中可以看出服務(wù)消費(fèi)者可以包含多個(gè)服務(wù)用戶(hù),服務(wù)用戶(hù)是真正接受服務(wù)的實(shí)體。也就是說(shuō)服務(wù)消費(fèi)者是一個(gè)虛的實(shí)體,多個(gè)服務(wù)用戶(hù)可以消費(fèi)同一個(gè)服務(wù)消費(fèi)者訂閱的服務(wù)。這好比不同的人可以通過(guò)同一個(gè)電話(huà)打電話(huà)一樣。這無(wú)疑提高了OSGi規(guī)范靈活性。
官方網(wǎng)站:http://www.osgi.org/
掃碼付費(fèi)即可復(fù)制
XGIAC | 幀中繼數(shù)據(jù)傳輸業(yè)務(wù) | 光纖電纜 | EDACS | DIAC | 通信衛(wèi)星 | AR-ADDR | AM-ADDR | ADFE | WNP | 阻塞呼叫清除系統(tǒng) | 數(shù)字接收機(jī) |