您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > JBoss,Geronimo还是Tomcat三种开源Java应用服务器的比较
JBoss,Geronimo还是Tomcat?——三种开源Java应用服务器的比较目录1.Java企业特性比较1.1.JavaEE5兼容性1.2.EJB3(企业JavaBeans技术)能力1.3.JSP2.1和Servlet2.5能力1.4.JSF1.2支持1.5.定制化插件支持1.6.业务规则引擎支持1.7.Hibernate3.x支持1.8.JBossSeam支持1.9.集群支持1.10.EclipseIDE支持2.安装与部署2.1.部署3.性能基准4.结论概述像JBoss、Tomcat和ApacheGeronimo这样的开源JavaEE应用服务器轻松地立足于同类商业产品之中,并且真正地在技术革新中处于市场领先地位。但是这些开源JavaEE应用服务器并不完全等同。在这篇文章中,我将从特性、部署和性能方面对JBoss4.2,Geronimo2和Tomcat6三种服务器进行了比较。当涉及到企业级应用开发时,Java企业版(JavaEE)应用服务器被视为Web开发的标准。虽然有商业产品可供选择,但研究表明开源已经成为企业IT基础设施中熟悉的一部分。JBoss4.2,Geronimo2和Tomcat6是3种被广泛使用的开源的JavaEE服务器。在它们之中,尽管JBoos和Tomcat都没有和JavaEE完全兼容,但它们仍然保有主要的市场。与此同时,具有完全JavaEE兼容性的Geronimo正迅速呈现出强劲的势头。如果你想在JavaEE的职业市场中取得竞争优势,你就应该熟悉上述3种开放源代码的服务器,并了解它们之间的不同。在本文中,我会在特性、部署和性能方面比较这三种领先的开源Java应用服务器。并且解释为什么在每种应用服务器有多种多样的不同特性,同时也提供一些对如哪种服务器更适合你的企业架构的调查。我在这里发表的讨论包括来自RedHat的ChantalYang和Apache软件基金会的评论。1.Java企业特性比较表1提供了JBoss4.2、Tomcat6和Geronimo2在实现JavaEE功能特性方面的快速比较。请注意,特性被标记为部分表示没有完全被服务器支持,你需要安装额外的软件包。如果被标记为可选,则你必须安装第三方软件包才能使用。这三种服务器都已经在Linux、Solaris、微软Windows和MacOSX上测试过,JBoss已经在HP-UX和AIX上的测试,而Tomcat也在AIX上也测试过。在下面的表格中,你可以找到更多关于它们各自特性的信息以及为什么这些特性如此重要。表1.JavaEE的特性比较如果你的Java应用需求尤为广泛或者你希望保持全部的JavaEE5兼容性的话,那么Geronimo2将是明智的选择。虽然JBoss4.2没有完全兼容Sun的JavaEE5标准,但是JBoss4.2小组负责了一些尖端技术,而这些技术将被所有的服务器使用并且将被添加到标准的JavaEE5中。Tomcat6本身是一个轻量级的解决方案,它不包含所有的JavaEE5特性以及在JBoss和Geronimo中提供的额外软件包,但它不需要太多的内存,甚至在小型服务器上也能运行得很快。现在,让我们看看为什么这些特性如此重要。1.1.JavaEE5兼容性如果你的企业级Java应用必须完全兼容Sun的JavaEE5服务器特性的话,那么JavaEE兼容性就是一个重要的问题。Geronimo是三种服务器中唯一完全兼容JavaEE5的。JBoss4.2支持大部分的JavaEE5特性,而且RedHat马上就要公布的JBoss5将对JavaEE5完全兼容。Tomcat是一个JSP/Servlet容器,它只支持基本的Java应用服务器特性。1.2.EJB3(企业JavaBeans技术)能力企业JavaBeans(EJB)是一个为JavaEE服务器应用开发服务的Java组件架构。它允许将功能封装到可重用组件中。早期版本的EJB被认为是难以开发的,即使其意图是给开发带来好处。而新的EJB3就是为了解决较早版本中存在的困难,并且提供了一些新的功能。JBoss4.2和Geronimo都支持EJB3。Tomcat本身不提供EJB3的兼容性,但是你可以将Apache的OpenEJB项目可以嵌入到Tomcat中使其支持EJB3。根据Apache基金会的JeffGenender所述,Tomcat也可以在JBoss的嵌入式版本中运行。1.3.JSP2.1和Servlet2.5能力JSP/servlet特性是任何Java服务器中最基本的能力。JSP2.1和servlet2.5是新版JavaEE5中提供的能力。JBoss4.2、Geronimo2和Tomcat6都支持这些新的JSP/servlet版本。1.4.JSF1.2支持JSF(JavaServerFaces)是一个JavaEE的应用开发架构,它使得开发基于Web的用户界面更加容易。JSF不是一个需求驱动的MVC(模型视图-控制器)的体系结构,而是使用了基于组件的方法。JBoss4.2和Geronimo2都支持最新的JSF1.2版本。JSF1.2也可以在Tomcat6上运行,但是发现了一些问题。1.5.定制化插件支持插件支持是一种可以将新功能或特性引入到服务器中的架构。JBoss称它的插件开发特性为MBeans(被管理的Beans)。Geronimo也有被称为GBeans的相似功能。这些定制的Beans提供了一套开发和管理定制资源的接口,而这些接口也可以作为插件组件被重用。根据JeffGenender所言,Geronimo使插件机制更进了一步:使用Geronimo,你可以从许多组件中挑选一部分来建立符合需要的应用服务器栈。例如,如果想安装Liferay门户、或者Apache目录服务,你可以在管理控制台中添加URL并通过网络安装插件。插件管理系统可以检索出所有必须的依赖并且安装它们。Geronimo也可以定制组件,Jeff总结如下:它具有使应用程序如你所愿的变成轻量级或者重量级的能力。你可以充分利用包括所有组件的JavaEE5栈,或者通过将Geronimo作为Web容器来使用少量的G,或者使用微型的G——它仅仅是Geronimo内核和一个完美的SOA和ESB解决方案的基础。你可以添加和删除组件,来只提供自己想用的那部分。如果不需要EJB的话,你可以简单从控制台中删除组件。RedHat的ChantalYang表示:JBoss4提供了“从微内核”组建应用服务器的好处。就像Yang所说,这使得JBoss能够以插件方式提供多种的组件来建立一个定制的应用服务器。Yang还表示,JBoss5和它的微容器将极大地提高MBeas的插件支持能力,还没有别的应用服务器在其核心具有这样一个改进的基于POJO的微容器。1.6.业务规则引擎支持几乎每一种应用都是建立在一系列业务规则上的,这也称为业务逻辑。业务规则引擎可以使业务逻辑规划更容易管理。在大多数的规划中,基本逻辑就是必须的工作。业务规则引擎可以使你容易实现更加智能的逻辑。JBoss4.2,Geronimo2和Tomcat6都支持Drools,它是一个流行的、标准兼容并且强大的业务规则引擎。虽然Geronimo是一个完全JavaEE5认证的服务器,并可以运行Drools,但是JBoss在编写本文时已经提供了三年的Drools支持,这使得JBoss的Drools是一个更加强大的业务规则解决方案。JBoss公司最近已将Drools命名为JBossRules。此Drools项目本身开始于2001年。1.7.Hibernate3.x支持Hibernate为Java语言提供对象关系映射(ORM)服务。其易于使用的框架允许你将面向对象的模型映射到传统的关系数据库中,这对于Java开发是一个有力的促进。简而言之,Hibernate管理持久化,让你能够将POJO存储到几乎任何类型的SQL数据库中。并且在进行操作时,对你的程序来说那些对SQL数据的访问是透明的,这使得应用数据和对象管理更加容易。Hibernate是一个开放源码包,最初是由JBoss的GavinKing领导的小组所开发。现在运行在许多JavaEE服务器上,并且也能与J2SE一起工作。JBoss4.2,Geronimo2和Tomcat6都支持Hibernate3。1.8.JBossSeam支持JBossSeam是一个强大的应用框架,它整合了许多Java和Web技术,包括Ajax(asynchronousJavaScriptandXML)、JSF、EJB3、JavaProtlets和BMP(business-processmanagement)。Seam是JBoss的一个项目,所以JBoss自然支持它,同样Geronimo也支持。根据Seam的厂商所言,Seam应用可以运行在使用了JBoss可嵌入EJB3容器的Tomcat上。1.9.集群支持集群是一个技术术语,它是多个并行运行的服务器,这些服务器提供相同服务、以求获得高可用性:因为通过服务器集群可以支持更多的客户,如果集群中的某个服务器崩溃,其它的服务器可以继续为客户提供服务。在JavaEE服务器案例中,即使在集群中的一台服务器崩溃,Java应用仍然可以使用。集群为企业级Java应用提供了可扩展性、提高了性能,并消除了单点故障。JBoss4.2,Geronimo2和Tomcat6都以某种方式支持集群。据ChantalYang称,JBoss使用“通过伙伴复制和细粒复制以高性能和高可靠的集群层”。Geronimo最近发布了一个针对纠正Geronimo2集群问题的补丁,所以在这点看来,Geronimo可能还要做一些测试。如果你对Geronimo的集群感兴趣,可以咨询Apache软件基金会。1.10.EclipseIDE支持Eclipse可以说是Java开发中最受欢迎的IDE,所以将它同你的JavaEE服务器集成是培养良好开发的途径。JBoss、Geronimo和Tomcat都支持Eclipse集成。JBoss公司有自己版本的Eclipse,被称作是RedHatDeveloperStudio,在编写本文时还处于测试阶段。2.安装与部署根据测试,安装以上三种Java服务器都是非常容易的。除了将已下载的zip或者tar包解压,你所要做的就是设置JAVA_HOME环境变量指向Java1.5的安装目录。在运行startup或者是shutdown脚本以启动或停止这些服务器之前,必须设置这个环境变量。注意在Linux/Unix系统中,可能还需要使用chmod命令赋予这些脚本可执行权限。2.1.部署当谈到通用配置和部署时,Geronimo2是非常光彩夺目的。我发现通过它的Web控制台(见下面的图1)来配置和部署Java应用是一件轻而易举的事。正如JeffGenender的解释:Geronimo控制台包含许多不同的向导以帮助使得应用服务器的配置尽可能简单。Geronimo包含的向导让你可以测试数据库连接池,安全领域等。你可以通过一个易于使用的向导来取代过去编辑XML配置或停止和重新启动服务器的工作,数据库连接池向导甚至可以为你从网络上下载大部分的驱动,以使你无需去找适合数据库的驱动。Geronimo控制台也可以配置大多数内嵌在Tomcat6容器中的特性,甚至不必接触到一个XML配置文件。图1.GeronimoWeb控制台(点击可放大图像)JBoss4.2也有一个外观漂亮的管理控制台(见图2),但它并不提供和类似于Geronimo的特性。它主要是提供JBoss状况和监控信息,但缺乏部署功能。要部署一个应用程序,你可以简单的拷贝它到default/deploy目录中,然后它会被自动迅速的部署。当然,你可以在jboss-service.xml配置文件中指定自定义部署目录。图2.JBossWeb控制台(点击可放大图像)Tomcat6快速轻巧,正真形成一个轻量级的应用服务器。通过提供一个漂亮的Web控制台,它提供你所需要的基础功能(见图3)。你可以从基于Web的Tomcat管理器中启动/停止和部署/卸载WAR应用
本文标题:JBoss,Geronimo还是Tomcat三种开源Java应用服务器的比较
链接地址:https://www.777doc.com/doc-2879223 .html