Chinaunix首页 | 论坛 | 博客
  • 博客访问: 591090
  • 博文数量: 748
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-08 12:36
文章分类

全部博文(748)

文章存档

2011年(1)

2008年(747)

我的朋友

分类:

2008-09-08 18:22:50

    在开源的应用领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域的先行者。当然,所有的 EE应用的实现不尽相同,但其很多方面具有一定程度的可比性。本文对JBoss4.2、Geronimo 2及Tomcat 6三种开源的Java EE应用服务器,就他们的特性、部署及性能等方面进行一一比较。
一、        前言
当企业级的Java应用程序需要真正的应用部署时,Java EE应用服务器是必不可少的工具。研究表明,除了商业的应用服务器之外,开源的Java EE应用服务器开始成为很多Java企业级应用的最佳选择。而JBoss、Tomcat及Apache的Geronimo是其中最主流的开源Java EE应用服务器。而这三者中,尽管JBoss和Tomcat并非100%的实现了Java EE 5标准,但这二者占有的市场份额相对比较大。Geronimo是对Java EE 5标准100%的实现,正在快速的发展。如果读者想在Java EE领域找份像样的工作,对这三种开源的应用服务器应该达到比较熟悉的程度,并能在一定程度上进行比较区分。
在本文中,对这三种主流的应用服务器,就其特性、部署及性能等方面进行比较。分析了他们各自的特色对该应用服务器的重要性,当然,也提供了一些如何选择适合项目的服务器的原则及建议。

二、        特性比较
表1就JBoss 4.2、Tomcat 6及Geronimo 2的特性进行全面的比较。请注意,表中用到的“部分支持”表述,表明该应用服务器并非完全的支持,需要安装一些额外包。而其中的“原则上支持”表述,表明该应用服务器需要第三方的安装包的支持。注:三种应用服务器均在Linux、Solaris、及Mac OS X上进行过测试。
表1.Java EE应用服务器特性比较

 
特性
JBoss 4.2
Geronimo 2
Tomcat 6
Java EE 5一致性
部分支持
完全支持
部分支持
支持EJB 3.0
支持
支持
原则上支持
JSP2.1和Servlet2.5
支持
支持
支持
JSF1.2
支持
支持
原则上支持
客户化插件
支持
支持
不支持
业务规则引擎
原则上支持
原则上支持
原则上支持
Hibernate3.x
支持
原则上支持
原则上支持
集群
支持
支持
部分支持
Eclipse IDE
支持
支持
支持
 
当读者的应用需要比较特殊的扩展,或是想与Java EE 5最贴近时,那么,Geronimo 2是最佳的开源Java EE应用服务器选择。尽管JBoss 4.2与Sun的Java EE标准在实现上有一定的出入,但JBoss 4.2 team提供了许多与Java EE标准很符合的技术,同时也扩充了Java EE 5的标准范围。而Tomcat 6本身就是一种轻量级的解决方案,所以它不并包括Java EE 5的所有特性,或是在JBoss及Geronimo中所提供的特性,但正是由于它的轻量级,才使它对内存的占有量比较少,并且比其它两种服务器运行起来更快。
1.Java EE 5一致性
Sun公司的Java EE 5标准是一种行业标准,而作为这种标准的实现,开源的Java EE 5应用服务器应该与其尽量的保持一致,因此Java EE 5的一致性是一个很重要的指标。在这三种开源的实现中,Geronimo是实现得最好,与Java EE 5标准最贴近的应用服务器。JBoss 4.2支持绝大部分Java EE 5的特性,当然,不久即将发布的JBoss 5将完全支持Java EE 5的所有特性。而Tomcat一般看成是JSP/servlet的容器,仅仅支持Java应用服务器的基本特性。

2.支持EJB3
EJB(Enterprise JavaBeans)是指能在Java EE服务器部署的Java组件。它通常将一些业务功能打包成可重用的组件。新发布的EJB3提供了许多新功能,解决了旧版本中许多问题。JBoss 4.2及Geronimo 2均支持EJB3。Tomcat 6本身并不支持EJB3,但Apache OpenEJB项目可以使Tomcat支持EJB3,据称Tomcat可以运行一种的JBoss EJB3容器。

3.支持JSP 2.1/Servlet2.5
对JSP/servlet的支持是绝大部分Java服务器应提供的最基本功能。JSP2.1和Servlet2.5是Java EE 5对JSP/servlet的升级功能。JBoss 4.2、Geronimo 2及Tomcat 6均支持JSP/servlet这一特性。

4.支持JSF 1.2
JSF(Java Server Faces)是一种在Java EE应用部署的组件式架构。提供基本的Web开发的用户界面。与请求驱动的MVC(Model-View-Controller)的架构不同的是,JSF采用了组件驱动的模式。就目前的JSF1.2而言,JBoss 4.2及Geronimo 2都有很好的支持,而运行在Tomcat 6时有不少的问题待解决。

5.支持客户化插件
客户化插件支持,意味着可以在原有应用服务器功能的基础上,开发新的功能,并能很好的协同使用。在JBoss中使用MBeans(managed beans)来处理插件开发。而Geronimo也采用类似的处理方式,只是名称不一样,叫GBeans。这些客户的Beans为开发及部署客户资源时,提供一系列统一的接口。

6.支持业务规则引擎
几乎所有的应用程序都是建立在一系列业务规则之上,或称之为业务逻辑。而业务规则引擎组件则能帮助管理与简化业务逻辑编程。一般的编程过程中,程序员最常见的逻辑有如if/then逻辑。而有了业务规则引擎,则可以实现许多更加智能的业务逻辑。Drools作为一种业内很流行、标准化的业务规则引擎,在JBoss 4.2、Geronimo 2及Tomcat 6中均可得到支持。Geronimo完全支持Drools,而JBoss支持Drools的历史最久,已达三年之久,并使JBoss/Drools成为了一种非常有市场竞争力的业务规则解决方案。

7.支持Hibernate 3.x
Hibernate为Java编程提供了强有力的关系/对象模型(ORM,Object-relational mapping)。Hibernate可以将面向对象的模型映射为关系型数据库,这对Java开发来说是最有吸引力的。Hibernate作为一种开源的软件,最早就是由于JBoss的一个团队所开发(Gavin King)。当然,JBoss 4.2、Geronimo 2及Tomcat 6均支持Hibernate 3。

8.支持JBoss Seam
JBoss Seam是一种著名的应用框架,集成了众多的Java及Web技术,例如Ajax、JSF、Java Portlets、BPM(Business-process management)等技术。Seam是JBoss的项目,理所当然,JBoss 4.2自然支持它,同样Geronimo 2也支持JBoss Seam。据JBoss Seam的开发团队称,Tomcat可以通过使用JBossEJB 3容器来支持JBoss Seam。

9.支持集群
集群通过并行在多台服务器运行同样的服务,从而大大的提高应用的吞吐量,达到所谓的高负荷的效果。由于采用了数台服务器同时运行,所以当其中的某台服务暂时或死机时,对客户不会造成服务停止,从而达到业务的可持续。集群极大的提高了企业级的Java应用的性能、吞吐量等能力。
JBoss 4.2、Geronimo 2及Tomcat 6均以同样的方式来支持集群。JBoss在集群层使用及时复制的方式来达到集群的目的。而Geronimo所发布的集群,还处于测试阶段,需要时间的考验,如果有兴趣,可以与Apache基金组织联系。

10.              支持Eclipse IDE
Eclipse是目前最流行的Java开发工具,自然,与Eclipse的集成是众多Java EE 5应用服务器应该提供的功能。JBoss、Geronimo及Tomcat均支持与Eclipse整合。特别地,JBoss还有自己的Eclipse版本,称为Red Hat Developer Studio,目前正处于测试的阶段。利用Geronimo提供的工具,可以省去手工配置XML文件的烦琐。同时,数据库连接池工具都可以自动的所需要的数据库连接驱动。

[1]   

【责编:Zenghui】

--------------------next---------------------

阅读(427) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~