`
polygoncell
  • 浏览: 55908 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅谈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

分享到:
评论
1 楼 sdyjmc 2009-12-18  
不错,搞明白Geronimo和ActiveMQ的关系了.也搞明白为什么有Geronimo.杰罗尼莫

相关推荐

    Apache Geronimo Documentation 3.0

    Apache Geronimo是一款开源的应用服务器,由Apache软件基金会开发,旨在提供一个用于部署和管理Java企业应用的平台。Geronimo 3.0是该软件的一个重要版本,它集成了许多改进和新特性,旨在提高性能、可扩展性和易用...

    geronimo的service化工具

    标题中的"geronimo的service化工具"指的是Apache Geronimo服务器的一种特殊配置或功能,它允许Geronimo作为Windows操作系统服务来运行。这确保了即使在没有用户交互的情况下,如系统启动时,Geronimo也能自动启动并...

    Geronimo的Eclipse插件

    **Geronimo的Eclipse插件** Geronimo的Eclipse插件是为开发者提供的一种集成开发环境(IDE)扩展,旨在简化在Eclipse中使用Apache Geronimo服务器进行Java应用开发的过程。这个插件允许用户直接在Eclipse内管理、...

    Apache Geronimo配置文件geronimo-web.xml各个标签的讲解

    Apache Geronimo是一款开源的应用服务器,它遵循Java EE规范,提供了部署Web应用程序的框架。`geronimo-web.xml`是Geronimo针对Web应用的特定部署计划文件,它与标准的`web.xml`文件一起使用,用于在Geronimo服务器...

    Geronimo服务器下部署Seam程序

    标题中的“Geronimo服务器下部署Seam程序”是指在Apache Geronimo应用服务器上安装和运行JBoss Seam应用程序的过程。Apache Geronimo是一个开源的应用服务器,它支持Java EE规范,而JBoss Seam是一个用于Java EE平台...

    geronimo-j2ee-management_1.1_spec-1.0.1-API文档-中文版.zip

    赠送jar包:geronimo-j2ee-management_1.1_spec-1.0.1.jar; 赠送原API文档:geronimo-j2ee-management_1.1_spec-1.0.1-javadoc.jar; 赠送源代码:geronimo-j2ee-management_1.1_spec-1.0.1-sources.jar; 包含...

    Apache Geronimo 中部署 Web 服務

    ### Apache Geronimo 中部署 Web 服务的知识点详解 #### 一、Apache Geronimo简介与Web服务支持 Apache Geronimo 是一个基于 J2EE 1.4 标准的强大开源应用服务器,由 Apache Software Foundation 发起。Geronimo ...

    geronimo-jms-1.1-spec-1.1.1-API文档-中英对照版.zip

    赠送jar包:geronimo-jms_1.1_spec-1.1.1.jar; 赠送原API文档:geronimo-jms_1.1_spec-1.1.1-javadoc.jar; 赠送源代码:geronimo-jms_1.1_spec-1.1.1-sources.jar; 包含翻译后的API文档:geronimo-jms_1.1_...

    开发JAR包- geronimo

    开发JAR包- geronimo 解压文件得到如下jar包 geronimo-activation_1.1_spec-1.0.2.jar geronimo-annotation_1.0_spec-1.1.1.jar geronimo-javamail_1.4_spec-1.6.jar geronimo-servlet_2.5_spec-1.2.jar geronimo-...

    geronimo-annotation_1.0_spec-1.1.1-API文档-中文版.zip

    赠送jar包:geronimo-annotation_1.0_spec-1.1.1.jar; 赠送原API文档:geronimo-annotation_1.0_spec-1.1.1-javadoc.jar; 赠送源代码:geronimo-annotation_1.0_spec-1.1.1-sources.jar; 赠送Maven依赖信息文件:...

    geronimo-web.xml

    服务器geronimo连接数据库的连接池要用的xml文件

    geronimo-jcache_1.0_spec-1.0-alpha-1-API文档-中文版.zip

    赠送jar包:geronimo-jcache_1.0_spec-1.0-alpha-1.jar; 赠送原API文档:geronimo-jcache_1.0_spec-1.0-alpha-1-javadoc.jar; 赠送源代码:geronimo-jcache_1.0_spec-1.0-alpha-1-sources.jar; 赠送Maven依赖信息...

    geronimo-jaxws-3.0.0

    geronimo-jaxws-3.0.0

    geronimo-javamail_1.4_spec-1.7.1.jar

    geronimo-javamail_1.4_spec-1.7.1.jar

    geronimo-jms_1.1_spec-1.0.jar

    geronimo-jms_1.1_spec-1.0.jar

    geronimo-jta-1.1-spec-1.1.1-API文档-中文版.zip

    赠送jar包:geronimo-jta_1.1_spec-1.1.1.jar; 赠送原API文档:geronimo-jta_1.1_spec-1.1.1-javadoc.jar; 赠送源代码:geronimo-jta_1.1_spec-1.1.1-sources.jar; 赠送Maven依赖信息文件:geronimo-jta_1.1_spec...

    geronimo-jaxws-ejb-builder

    geronimo-jaxws-ejb-builder

    geronimo-jta_1.1_spec-1.1.1.jar

    《深入理解geronimo-jta_1.1_spec-1.1.1.jar在Hibernate中的应用》 在Java开发领域,尤其是涉及到企业级应用时,规范的遵循与实现至关重要。`geronimo-jta_1.1_spec-1.1.1.jar`是Apache Geronimo项目提供的一份关于...

    Geronimo 和 Spring

    ### Geronimo与Spring框架详解 #### 一、引言 Apache Geronimo与Spring框架在企业级Java应用开发领域占据着重要的地位。Geronimo作为一个成熟的企业级应用服务器,而Spring框架则以其灵活的控制反转(Inversion of...

    geronimo-jta_1.1_spec-1.1-sources.jar.zip

    《深入理解Geronimo JTA 1.1规范与Hibernate集成》 在Java世界中,事务处理是确保数据一致性、可靠性和并发控制的关键组件。Geronimo JTA 1.1规范是Java Transaction API(JTA)的一个实现,它定义了在分布式环境中...

Global site tag (gtag.js) - Google Analytics