在網(wǎng)上看到這么一句話覺得總結(jié)的非常好:
從高內(nèi)聚,低耦合到設(shè)計模式,從 Ioc 、 Spring 框架 到 SOA 我們一步一步的抽象著、分離著。很顯然,我們需要一個靈活而不失嚴(yán)謹(jǐn)?shù)募軜?gòu),需要一個功能強(qiáng)進(jìn)而不令人生畏的產(chǎn)品;
企業(yè)的應(yīng)用軟件發(fā)展還有著很大的空間和尺度,也大概明白為什么OSGI起源于1999年卻近幾年才進(jìn)入軟件行業(yè),當(dāng)時軟件業(yè)確實(shí)還不發(fā)達(dá),人們確實(shí)想不了這么多,做軟件只為了能解決一些問題而做。而如今更多是要資源最大化共享,就想著怎么能把原來做過的軟件集成起來,不用再做個新的,于是就有了SOA。隨著Eclipse的成功,大家對它以O(shè)SGI為核心的插件體系無不贊嘆,原來做軟件可以像搭積木一樣的拼裝,多么美妙,人們也就認(rèn)識到了OSGI的重要性和帶來的好處,近兩年OSGI正在飛速發(fā)展,相信以后會有更大的發(fā)展空間,網(wǎng)上有人預(yù)言說將來OSGI一定會裝在60%的java虛擬機(jī)上,還有人說這么好的架構(gòu)應(yīng)該直接納入JDK,這些都有點(diǎn)極端,但是可以看出它是多么的優(yōu)秀。越來越多的軟件開始支持OSGI。
OSGI的強(qiáng)項是它的動態(tài)加載和對Bundle之間的通信和管理及依賴關(guān)系,而更細(xì)粒度bundle內(nèi)部則沒有嚴(yán)格的管理體系,Spring可以對bundle內(nèi)部進(jìn)行更為細(xì)粒度的管理,Spring將在配置文件中增加直接支持OSGI的配置項。
他們的組合可以把底耦合的應(yīng)用程序“模塊化”。
運(yùn)行期間多個版本的應(yīng)用同時部署,動態(tài)選擇,當(dāng)然這是OSGI的特性,但是有Spring的配置將更好。
運(yùn)行期間多模塊(服務(wù))的替換。
運(yùn)行期間動態(tài)部署,更新或反部署模塊。
應(yīng)用Spring配置,裝配模塊。
用簡單和熟悉的編程方式開發(fā)具有OSGI特征的程序。
Hibernate現(xiàn)在也可以集成到OSGI,為OSGI持久層又添了一筆,可以看出Spring+OSGI+hibernate前途無量。