Tomcat,JBoss与JBoss Web
最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考。
一、Tomcat
Tomcat 服务器是免费开源的Web 应用服务器。支持最新的Servlet 和JSP 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,不过,Tomcat处理静态HTML的能力不如Apache服务器。另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式,基于Tomcat的开发其实主要是Jsp和Servlet的开发。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。
Tomcat也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。
二、Jboss
JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码并且免费的应用服务器。
JBoss支持EJB 1.1,EJB 2.0和 EJB3.0的规范,它是一个管理EJB的容器和服务器。JBoss的目标是一个源代码开放的J2EE环境。但是JBoss核心服务仅是提供EJB服务器。JBoss4之前不包括Servlet/JSP的WEB容器,当然可以和Tomcat或Jetty绑定使用。JBoss4之后内嵌了web服务器。
JBoss具有如下六大优点:
1、JBoss免费,开源。
2、JBoss需要的内存和硬盘空间较小。
3、安装简单。先解压缩JBoss打包文件再配置环境变量就可以了。
4、JBoss能够"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就可以了。如果没有加载就加载它;如果已经 加载了就卸载掉,然后LOAD这个新的。
5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
三、JBoss Web
JBossWeb服务器是一个新的开源项目,它将为JSP,Servlet技术,Microsoft ASP.net,PHP和CGI提供一个独立,高性能的部署平台。JBossWeb构建在Apache Tomcat,APR(Apache Portable Rumtime)和Tomcat native技术之上以达到稳定性和性能都能与Apache Http服务器相匹敌甚至是超越它。
JBoss Web服务器具有以下特性:
能够处理10,000多个并发连接数;
支持http,https和AJP(Apache Jserv Protocol)协议;
支持OpenSSL安全套接层;
提供一个灵活的URL rewriting操作引擎支持无限个规则数和规则条件;
支持CGI和PHP脚本,ASP.NET应用程序的in和out-of-process执行等。
四、三者关系:
应用程序服务器是指能够管理Web应用程序的技术构架。从某种意义上web服务器属于应用服务器的子集。
一般来说,Web服务器专门处理HTTP请求(request),而应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。JBoss属于应用服务器,遵循J2EE规范,可以部署EJB应用,而Tomcat不能。JBoss4之前的版本不能处理Servlet和Jsp,需要与Tomcat(或其他web服务器)结合来使用,而JBoss4之后的版本已将Tomcat内嵌在其中,具备了web服务器的功能。
Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。
应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时有些应用服务器也支持Jsp和Servlet.而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,Jsp和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat.
JBoss在Tomcat的基础上,对其进行本地化,将Tomcat 以内嵌的方式集成到 JBoss 中。
JBoss Web通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足。混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。结果,JBoss Web达到了可扩展性,性能参数匹配甚至超越了本地Apache HTTP服务器或者IIS。譬如JBoss Web能够提供数据库连接池服务,不仅支持 JSP 等 Java 技术,同时还支持其他 Web 技术的集成,譬如 PHP、.NET 两大阵营。
与Tomcat 相比,JBoss Web在静态资源访问方面性能优越。JBoss Web支持两种组件模式——纯Java和Native I/O。
OpenSSL是业界最为快速和安全的开源传输组件,可借助操作系统和硬件的特性实现高效的安全承载。JBoss Web集成了OpenSSL,可提供高效的安全传输服务,使得安全机制更上台阶。研究表明, JBoss Web中的SSL性能比单纯的Tomcat快四倍。
Tomcat 不具备URL重写功能,JBoss Web则可提供一个灵活的URL rewriting操作引擎,支持无限个规则数和规则条件。URL可被重写以支持遗留的URL错误处理,或应对服务器不时产生的其他问题。
JBoss Web既可单独运行,也可无缝嵌入JBoss应用服务器,成为JBoss中间件平台的一部分。不仅后台服务调用的性能将得以提升,也可利用以下JBoss平台的特性提升Web应用功能
所以JBossWeb可以说是一款超级改良版的Tomcat,两者都是web 服务器,并都可与应用服务器JBoss完美结合。