隨筆 - 19, 文章 - 1, 評論 - 21, 引用 - 0
          數(shù)據(jù)加載中……

          打造一個基于OSGi的Web Application——在OSGi容器中管理Web元素的實(shí)現(xiàn)思路

          要在OSGi容器中動態(tài)的管理Web相關(guān)的元素,目前有兩種方式。

          一種是通過類似于bridge的方式,現(xiàn)在外層的Web Application中配置一個對應(yīng)的元素,然后通過對這個元素將外部的訪問橋接到OSGi容器內(nèi)部。在OSGi容器內(nèi)部,會有一個總控的service,通過這個service來提供Web元素的動態(tài)管理,以及對外界請求的響應(yīng)和分發(fā)。Equinox的Servlet Bridge就是采用的這種方式。

          另一種方式就是通過使用Web Container提供的原生的API來實(shí)現(xiàn)Web元素的動態(tài)管理,將Web Container的部分功能作為Service注冊到OSGi中,然后在OSGi中通過這個Service來動態(tài)的管理Web元素。

          兩種方式各有利弊:

          對于bridge方式來說,優(yōu)點(diǎn)是與Web Container實(shí)現(xiàn)無關(guān),在多種Web Container中均能正常使用;缺點(diǎn)也很明顯,無法使用Web Container提供的各種特性,并且相當(dāng)于自己要實(shí)現(xiàn)一部分Web Server的功能,不僅是重復(fù)造輪子,而且還是個不怎么好的輪子,能否滿足企業(yè)級應(yīng)用的需求,還只是個未知數(shù)。

          對于使用原生API的方式來說,優(yōu)點(diǎn)就是完全使用Web Server自身的機(jī)制,可以保證性能和功能需求;缺點(diǎn)同樣也很明顯,現(xiàn)在流行的Web Server開源的并不多,而且就算是開源的,也不一定提供了可以動態(tài)管理Web元素的API,就算是有相應(yīng)的API,也不一定適合OSGi環(huán)境,而且同一個Web Server的不同版本,API也很有可能會變化,這直接導(dǎo)致了原生方式實(shí)現(xiàn)的多樣性和不兼容性。

          幸運(yùn)的是,在Tomcat 5.5.x和6.0.x中都提供了這樣的API,在以后的章節(jié)中,我會著重針對Tomcat 5.5.x、6.0.x版本以及對bridge方式這三個場景,來實(shí)現(xiàn)對Web元素的動態(tài)管理。

          Servlet 2.4中描述了如下可以在web.xml中配置的元素,這也是我要實(shí)現(xiàn)動態(tài)管理的目標(biāo):
          1. Context Parameter
          2. Error Page
          3. Filter
          4. Filter Mapping
          5. Listener
          6. Security role
          7. Servlet
          8. Servlet Mapping
          9. Welcome Page


          posted on 2010-03-25 17:34 dbstar 閱讀(2218) 評論(0)  編輯  收藏 所屬分類: OSGi

          主站蜘蛛池模板: 东明县| 仁寿县| 沿河| 德安县| 崇仁县| 五原县| 二连浩特市| 无为县| 红桥区| 泰顺县| 德江县| 孟州市| 淮北市| 茶陵县| 湟源县| 台东县| 罗城| 新疆| 和龙市| 桓台县| 莱阳市| 建瓯市| 江阴市| 泽州县| 乐清市| 西和县| 南郑县| 徐州市| 尖扎县| 奉新县| 镶黄旗| 鄄城县| 延川县| 全椒县| 六枝特区| 大安市| 武穴市| 尚义县| 汶上县| 贵德县| 台东县|