淺談Geronimo的現狀

時間過得真快,轉眼間Geronimo(名字來源:阿帕切人的領袖,他反對美國政府的政策,以通過在西南部領導一系列對墨西哥人和美國人定居地的襲擊來鞏固其族人的居留地)已經開發了1年多了,目前最新版本是於去年11月在LasVegas發佈的1.0M3。回想起一年以前,當apache發佈消息說要開始開發Geronimo時,當時的情景真可謂是盛況空前!在我的記憶中,似乎再也找不到第二個軟件項目能像Geronimo這樣在項目確立之日就能吸引住如此多的注意力!出人意料卻也是意料之中的事情,不是麼?光是“Apache製造”+“Open source”+"J2EE Server"這3樣法寶就已經可以橫掃天下,傲視羣雄了!(說到J2EE Server就不能不提JBoss,這位當初打着“免費”大旗和其他業界巨頭爭搶市場份額的毛頭小夥,現在已經成長爲EJB3規範制定的領頭羊了,現在紅得發紫!讓人不得不感嘆,不是我不明白,是這世界變化太快!)

親眼看着JBoss從無到有,從小到大,從不入流的小混混到舉足輕重的業界大佬,Apache自然是百感交集,再想到自己手裏有無數J2EE規範的官方指定實現,卻偏偏沒有自己拿得出手的J2EE Server,更是坐立不安。無奈只好請出Geronimo,希望藉助領袖的神力帶領他們殺入J2EE Server市場,爭得一片安身之地。1年多過去了,讓我們來看看領袖是怎樣煉成的。

Kernel
首先說說Geronimo的核心,開項目的時候apach考慮過使用開發和JBoss類似的JMX結構,或是採用已有的HiveMind,和PicoContainer。這3位候選者都是經是鼎鼎大名的了,我就不做進一步介紹了,不太瞭解她們(請原諒我用對待MM的心情來對待軟件)的同志們請去她們各自的主頁作進一步的賞析。經過長時間的討論,最後JMX被相中了,在這個發佈版本中所用到的JMX based infrastructure可以說是和JBoss的微內核很相似。不過,各位可千萬別誤會,以爲Apache是拿來主義,不是,絕對不是!高手過招講的是神似,想踢你的PP就絕對會用腿,至於怎麼踢,是直踢,側踢,還是飛身踢,旋轉踢,每個高手都有自己的套路,各不相同。Geronimo的JMX實現可以說從概念上和JBoss的沒什麼太大的不同,可是從實現上來說可是千差萬別了,無法類比。簡單來說,所有的模塊都是由一種叫做GBeans的東東實現的。在實現整個內核的時候,開發人員採納了一些PicoContainer的設計,結果導致這個內核看起來非常的IoC。

EJB Support
除了核心外,最重要的部分非EJB Support莫屬了。同意的同志們請舉右手,不同意的同志們請舉左手,好!全票通過! 鼓掌!
Apache最終選擇了OpenEJB作爲EJB-Container,這是我個人認爲比較無奈的選擇,因爲OpenEJB目前只支持EJB1.1和很小一部分EJB2.1,而且要命的是不支持EJB-QL(想想EJB2.0中EJB-QL不支持"ORDER BY",真是噩夢一場,會嚇壞小孩子的)。爲什麼說它無奈呢? 因爲的確是沒有其他更好的選擇,有總比沒有好!希望Apache能幫助OPenEJB儘快發展,不然等到Geronimo成品發佈時你只是支持EJB1.1或EJB2.1,而人家JBoss可是支持EJB3.0,上過小學一年級的小朋友都會算 3.0 〉1.1,瞭解EJB的同志們肯定明白EJB3.0相對EJB2.1的巨大飛躍意味着什麼吧!Geronimo到時候不但當不成”JBoss Killer“,反而會成爲”JBoss killed“。祝Geronimo一路走好。

Web-Container
如果EJB-Container是Geronimo的右臂,那麼Web-Container就是他的左膀了。絕對要慎重選擇。一說到Web-Container很多人,包括我在內,都會毫不考慮的說:當然是用Tomcat!嘿嘿!人家高手就是高手,人家最開始選用了Jetty,因爲Jetty長得漂亮,身材好,而且也支持JSP2.0和Servlet 2.4。不過,幸好有個不過!,後來由於Tomcat經過一番內部整容,以及由於明星效應逐漸擴散開的知名度,使得Apache又開始考慮Tomcat5.x。最終決定Jetty和Tomcat並存。目前還有一些關於安全方面的小問題需要解決。

JMS Support
對於目前的J2EE Server來說,JMS support也是一個必不可少的部分。在項目開始的時候,apache選擇使用已有的JMS open source OpenJMS,可是後來發現,OpenJMS只是很簡單的支持部分J2EE1.4規範,而且直接邀請James Strachan參加到開發團隊來是件不太現實的事情,最終James Stachan,Hiram Chirino和一些Geronimo的開發員決定開發一個新的JMS實現:ActiveMQ。目前,ACtiveMQ是通過JCA1.5整合進Geronimo中的,以後,如果需要的話,用戶完全可以選擇其他支持JCA1.5的JMS Server來代替ActiveMQ。

Web Services Support
輪到當今最火的功能塊了。Web services 已經熱火了兩年多了,星運正盛,如日中天,Geronimo當然不能放過她。目前這部分還沒有實現,不過如果不出什麼意外的話,Axis會被整合進來,不錯的選擇,我舉雙手贊成。可惜Geronimo是開源項目,不然的話,我強烈建議選擇Systinet WASP。 詳情請看我的碩士論文 http://www.sts.tu-harburg.de/people/pa.hupe/studenttheses/GeDA.pdf , 個人拙見,絕對不是做廣告,還請各位前輩指教。

其他
當然Geronimo還實現了很多重要的的功能,比方說AOP,JNDI,JTA/JTS,JCA1.5等等,我就不一一解說了,有興趣的同志們請去Geronimo他家逛逛!MM優先!

目前Geronimo正在快速的成長過程中,以上所介紹的內容可能很快就被修改的面目全非了,如有錯漏之處,還望同志們本着治病救人的原則,幫兄弟一把。

Links

Geronimo.apache.org

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