在开源Java应用服务器领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域的先行者。当然,所有的Java 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、Windows及Mac OS X上进行过测试。
特性
|
JBoss 4.2
|
Geronimo 2
|
Tomcat 6
|
Java EE 5一致性
|
部分支持
|
完全支持
|
部分支持
|
支持EJB 3.0
|
支持
|
支持
|
原则上支持
|
JSP2.1和Servlet2.5
|
支持
|
支持
|
支持
|
JSF1.2
|
支持
|
支持
|
原则上支持
|
客户化插件
|
支持
|
支持
|
不支持
|
业务规则引擎
|
原则上支持
|
原则上支持
|
原则上支持
|
Hibernate3.x
|
支持
|
原则上支持
|
原则上支持
|
集群
|
支持
|
支持
|
部分支持
|
Eclipse IDE
|
支持
|
支持
|
支持
|
表1.Java EE应用服务器特性比较
当读者的应用需要比较特殊的扩展,或是想与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可以通过使用JBoss嵌入式EJB 3容器来支持JBoss Seam。
9.支持集群
集群通过并行在多台服务器运行同样的服务,从而大大的提高应用的吞吐量,达到所谓的高负荷的效果。由于采用了数台服务器同时运行,所以当其中的某台服务暂时或死机时,对客户不会造成服务停止,从而达到业务的可持续。集群极大的提高了企业级的Java应用的性能、吞吐量等能力。
JBoss 4.2、Geronimo 2及Tomcat 6均以同样的方式来支持集群。JBoss在集群层使用及时复制的方式来达到集群的目的。而Geronimo所发布的集群,还处<
分享到:
相关推荐
本文档是一份关于Java应用服务器比较的报告,报告内容涉及到多个Java应用服务器的比较。主要知识点包括Java应用服务器的定义、主要产品、特性、性能比较、技术支持、适用的平台等。 首先,Java应用服务器是一种...
基于Apache Tomcat的一站式Java应用服务器解决方案,包括系统整体架构设计以及监控运维管理平台Open Tomcat的构建。Open Tomcat通过松散耦合的方式对各应用节点进行管理,并集成了开源监控工具PsiProbe,同时为了...
Apache Tomcat 版本号: 8.5 ,10.0(新增) 配置方法及常见问题处理: 1、启动内存参数的配置 2、修改Tomcat的JDK目录 3、如何增加虚拟目录 4、GET方式URL乱码问题解决 5、虚拟主机配置文件 ...
Java 开源即时通讯(IM)系统在 Android 端的实现是一个复杂且充满挑战的任务,涉及到网络通信、数据传输、用户界面设计等多个方面。在这个项目中,开发者通常会利用 Java 语言的优势,结合 Android SDK 来构建高效...
该项目为SimpleWebServer,是一款基于Java NIO技术构建的超轻量级开源Web应用服务器。源码包含82个文件,主要涉及63个Java源文件、3个属性文件、3个Shell脚本以及少量HTML、Markdown等辅助文件,旨在为用户提供高效...
本文主要介绍2022年常用的Java应用服务器,包括WEB服务器和Java EE服务器。 1. **WEB服务器** - **Apache Tomcat**:作为最流行的选择之一,Tomcat是一款免费的开源服务器,它实现了Servlet和JSP规范,并由Apache...
- **简介**:JBoss是一款开源的Java应用服务器,最初由JBoss集团开发,后被Red Hat收购。 - **特点**: - 免费且开源。 - 支持最新的EJB标准。 - 不直接支持Web容器,通常与Tomcat等结合使用。 - 社区活跃,...
【Java应用服务器详解——云服务构建JavaWeb项目】 在Java世界中,应用服务器扮演着至关重要的角色,它们为Java应用程序提供了运行环境,尤其是对于Web应用和企业级Java应用(JavaEE应用)。根据功能,Java应用...
开源图片服务器CshBBrainPP是一款专为图片管理和分发设计的Java应用程序,它提供了基本的上传和下载功能,利用了非阻塞I/O(NIO)技术来提高性能和可扩展性。这款服务器旨在简化图片存储、访问和管理流程,尤其适合...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
Tomcat是一个流行的Java应用服务器,常用于部署Web应用程序。因此,我们可以推断这个开源GIS项目是用Java编写的,并能在Tomcat环境下运行,这为开发者提供了稳定、高效的运行环境。 标签 "开源GIS" 暗示了这个项目...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...
Java应用服务器Tomcat是一款开源、轻量级的Web应用程序服务器,尤其适合运行Java Servlet和JavaServer Pages(JSP)技术。Tomcat是Apache软件基金会Jakarta项目的一部分,它以其高效、稳定性和易用性赢得了广泛的...
JAVA服务器基于JAVA NIO I. 实现HTTP协议 II. 实现HTTPS协议 III. 实现FASTCGI协议(Client端) 运行HTTP/HTTPS服务器 运行开发包下jar文件 java -jar http-server-version-{version}.jar ...
7. jar文件:jmailsrv.jar是Java应用程序的可执行文件,包含了Java邮件服务器的全部源代码编译后的类文件。运行这个jar文件可以启动邮件服务器服务。 8. 源代码:虽然未直接提供源代码文件,但通常Java邮件服务器...
- Tomcat是最受欢迎的开源Java Web服务器之一,由Apache软件基金会的Jakarta项目维护。它是一个小型、轻量级的服务器,特别适合于中小规模系统和并发访问量不高的场景。Tomcat支持最新的Servlet和JSP规范,并因其...
Java TCP服务器框架是一种用于构建高性能、可扩展网络应用的核心组件,尤其适合开发需要稳定通信的分布式系统。这个框架是基于Java编程语言实现的,利用了Java的Socket编程接口来搭建服务器与客户端之间的TCP连接。...
为了部署和运行这个Java Web项目,开发者可能使用了Tomcat、Jetty等Java应用服务器,这些服务器可以解析并执行Web应用中的Servlet和JSP。数据库方面,MySQL、Oracle或PostgreSQL可能是常见的选择,用于存储和检索...
BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...