Equinox的OSGi實(shí)現(xiàn)與應(yīng)用服務(wù)器
Equinox項(xiàng)目是Eclipse開(kāi)源組織提供的OSGi框架的實(shí)現(xiàn)。Eclipse自3.0版本開(kāi)始,其內(nèi)核移植到OSGi框架上。通過(guò)OSGi框架強(qiáng)大的組件控制,交互和管理能力,再加上Eclipse插件的自有特點(diǎn),Eclipse開(kāi)源框架得到了跳躍式的發(fā)展。同時(shí),OSGi規(guī)范得益于Eclipse IDE環(huán)境龐大的使用者,OSGi聯(lián)盟也進(jìn)入了快速發(fā)展時(shí)期。
OSGi作為應(yīng)用服務(wù)器的基礎(chǔ)架構(gòu)已經(jīng)成為現(xiàn)實(shí)。Equinox提供了一組基礎(chǔ)的Bundle,使得使用JSP、Servlet和Struts等J2EE技術(shù)的Web應(yīng)用項(xiàng)目可以運(yùn)行于Equinox OSGi環(huán)境中。同樣的,Equinox通過(guò)一組Bundle,可以將Equinox OSGi應(yīng)用嵌入到現(xiàn)有的Web服務(wù)器(如Tomcat,Jetty等)和應(yīng)用服務(wù)器(如Websphere,Weblogic等)中。
下面是Equinox在J2EE應(yīng)用方面的部分Bundle列表:
org.eclipse.equinox.servletbridge
Servlet Bridge
該Bundle提供一個(gè)底層的Hook servlet,使得Equinox可以嵌入到現(xiàn)有的應(yīng)用服務(wù)器中運(yùn)行。該Bundle中的servlet啟動(dòng)嵌入的Equinox并使其可以處理來(lái)自底層應(yīng)用服務(wù)器接收的HTTP請(qǐng)求。
org.eclipse.equinox.http.servletbridge
HTTP ServletBridge
該Bundle為底層的應(yīng)用服務(wù)器(如Tomcat,Jetty等)發(fā)布為OSGi HTTP服務(wù)提供一層封裝。封裝的應(yīng)用服務(wù)器必須安裝該servlet bridge。
以上兩個(gè)bundle是將應(yīng)用服務(wù)器作為bundle集成進(jìn)入OSGi大環(huán)境的關(guān)鍵。
org.eclipse.equinox.http.servlet
HTTP Servlet
該Bundle為在Equinox中發(fā)布其他servlet處理引擎(如傳統(tǒng)的應(yīng)用服務(wù)器)為OSGi HTTP服務(wù)提供支持 。
org.mortbay.jetty
Jetty
嵌入式Jetty實(shí)現(xiàn)的Bundle封裝。目前Equinox提供的Jetty實(shí)現(xiàn)版本為5.x。
org.eclipse.equinox.http.jetty
HTTP Jetty
該Bundle封裝Jetty為標(biāo)準(zhǔn)的OSGI HTTP服務(wù)。目前該服務(wù)只能使用Jetty 5.x版本;如果用戶希望使用Jetty 6.x版本的Bundle封裝,可以參考o(jì)ps4j上的實(shí)現(xiàn)。
【編輯推薦】