打造一個基於OSGi的Web Application——動機和目標

OSGi技術發展至今也有好幾年了,然而除了在富客戶端應用(以Eclipse爲代表)和服務器應用(如大多數的應用服務器)方面大放光芒之外,在Web Application方面的應用和資料卻少之又少。一方面,在OSGi規範中,對於Web應用方面的規劃尚不成熟,即使在最新的4.2版中,也僅僅只有一個HttpService,這個簡陋的service甚至不能覆蓋任何一個現有的Servlet規範;另一方面,各個OSGi實現廠商對HttpService的實現也是不完全的,在開發實現一個常規的Web Application時,這些實現也是完全不夠用的。本文章的目的,也就是爲了探索OSGi在Web Application上的開發之路該如何走,從我的視角提出一些看法,做一些嘗試,希望對大家有所幫助。

現在OSGi與Web Application的結合,大致有兩個方向:

  1. OSGi包含Web Container:目前能完美嵌入OSGi的Web Container似乎只有jetty一個,tomcat的catalina似乎有希望能成爲第二個。我們完全不能指望Websphere和Weblogic能在短期內具有能嵌入OSGi的能力,所以這個方向理所當然的被我放棄了。
  2. Web Container包含OSGi:這個方面目前只有equinox的Servlet Bridge這麼一個著名的實現,equinox通過Servlet Bridge的方式來實現一個OSGi的HttpService服務,這個服務目前能做的事情還非常有限,還不足以覆蓋Servlet規範。

我的目標是構建一個OSGi與Web Application結合的方式,它要能滿足一下幾點需求:

  1. 基於OSGi的bundle和service。
  2. 適合絕大對數支持Servlet 2.4和Jsp 2.0規範的Web服務器。
  3. 適合現有的實現OSGi 4.2規範的OSGi Framework實現:equinox、felix和knopflerfish。
  4. 支持大部分Servlet 2.4和Jsp 2.0規範中聲明的功能。
  5. 提供一個基於HttpService的服務實現,以此來兼容其他使用HttpService的service。

毫無疑問,我將採用Web Container中包含OSGi的方式來實現,具體的內容將在以後陸續提供。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章