1.4 Web服务器和应用服务器

目前大型Java EE服务器主要有IBM的WebSphere和BEA的WebLogic。但是,在进行一般的学习和小型项目开发时,可以使用那些免费的,轻量级的服务器,例如JBoss、Tomcat和Resin等。

1. WebSphere

WebSphere Application Server是一种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,具有以下的特性。

(1)基于Java和Servlet的Web应用程序运行环境,包含了为Web站点提供服务所需的一切,包括项目管理,连接数据库,Java Servlet代码生成器,Bean和Servlet开发工具,HTML编辑器,网站发布等,为开发Servlet和JavaBean提供了多种向导。WebSphere Performance Pack作为网络优化管理工具,可以减少网络服务器的拥挤现象,扩大容量,提高Web服务器性能。

(2)运行时可以协同并扩展Apache、Netscape、IIS和IBM的HTTPWeb服务器,因此可以成为强大的Web应用服务器。

(3)包含了eNetworkDispatcher、WebTrafficeExpress代理服务器和AFS分布式文件系统,可以提供可伸缩的Web服务器环境。

其基本工作过程:客户发出请求后,由HttpServer将Servlet调用请求交给Application Server,由Application Server和Java Servlet Engine执行用户调用的Servlet进行数据库连接,将Sql请求发送给数据库进行处理。数据库将结果返回Appliction Server。Servlet生成动态页面后,将处理结果交给HttpServer将页面返回给用户。Websphere由于面向专业人员,要完全掌握有一定的难度。另外,Websphere本身有2 GB多的容量,需要256 MB以上内存支持,系统要求很高。如果有兴趣可访问I BM的software站点。

WebSphere的优点如下:

●支持Java EE标准。

●详细的,全方位的管理及运行监控。

●友好的界面,操作简单。

●网络服务和SOAP支持。

●插件更新,支持和其他的应用服务器集成。

2. WebLogic

BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。与BEA WebLogic Commerce ServerTM配合使用,BEA WebLogic Server可为部署适应个性化电子商务应用系统提供完善的解决方案。

BEA WebLogic Server具有开发和部署关键任务电子商务Web应用系统所需的多种特色和优势,包括:

(1)领先的标准

对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。

(2)无限的可扩展性

BEA WebLogic Server以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源pooling以及动态网页和EJB组件群集。

(3)快速开发

凭借对EJB和JSP的支持,以及BEA WebLogic Server的Servlet组件架构体系,可加速投放市场速度。这些开放性标准与WebGain Studio配合时,可简化开发,并可发挥已有的技能,迅速部署应用系统。

(4)部署更趋灵活

BEA WebLogic Server的特点是与领先数据库、操作系统和Web服务器紧密集成。

(5)关键任务可靠性

其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。

3. JBoss

近年来,在Java EE应用服务器领域,JBoss是发展最为迅速的应用服务器。JBoss是免费的,开放源代码Java EE的实现,它通过LGPL许可证进行发布,这使得JBoss广为流行。JBoss是一个运行EJB的Java EE应用服务器,例如:数据库访问JDBC、交易(JTA/JTS)、消息机制(JTS)、命名机制(JNDI)和管理支持(JMX)。它是开放源代码的项目,遵循最新的Java EE规范。JBoss是纯Java实现,能运行于任何平台。

从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的Java EE的一个Web操作系统,它体现了Java EE规范中最新的技术,无论是学习还是应用,JBoss为我们提供了一个非常优秀的平台。

JBoss具有革命性的JMX微内核服务作为其总线结构,其他本身就是面向服务的架构(Service-Oriented Architecture, SOA),还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。

●JBoss的服务器架构概述

JBoss的构架和其他Java EE应用服务器的构架有着巨大的不同。JBoss的模块架构是建立在JMX底层上的。

(1)JMX

JMX(Java Management Extensions, Java管理扩展)是一个可复用框架,它为远程和本地管理工具扩展了应用。它的架构是层式架构。它们是实现层(instrumentation layer)、代理层(agent layer)和发布层(distribution layer)。其中,发布层还在等待未来的标准化。简要的表述是,用户使用管理Bean(即Mbean)来提供获得相应资源的实现方法。实现层实现相关的特性资源并将它发布于JMX相关应用中,它的代理层控制和发布相应的注册在MBeanServer代理上的管理资源。

(2)JBoss主要模块

主要的JBoss模块是在MeanServer上的可管理MBean。

● JBoss EJB容器是JBoss服务器的核心实现。它有两个特性,第一是在运行期产生EJB对象的Stub和Skeleton类,第二是支持热部署。

● JBossNS是JBoss命名服务用来定位对象和资源的。它实现了JNDI Java EE规范。

● JBossTX是由JTA/JTS支持的交易管理控制。

●部署服务支持EJB、Web应用文档和企业级应用文档的部署。它会时刻关心Java EE应用的URL情况,一旦它们被改变或出现的时候将自动部署。

● JBossMQ使Java消息规范(JMS)的实现。

● JBossSX支持基于JAAS的或不支持JAAS机制的安全实现。

● JBossCX实现了部分JCA的功能。JCA制订了Java EE应用组件如何访问基于连接的资源。

● Web服务器支持Web容器和Servlet引擎。

4. Tomcat

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache, Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。Tomcat提供了各种平台的版本供下载,可以从jakarta.apache.org网站上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理HTML页面。但是与Apache相比,它处理静态HTML的能力不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态HTML,而Tomcat处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

另外,Tomcat提供Realm支持。Realm类似于UNIX里面的group。在UNIX中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。

Tomcat提供三种Realm:

(1)JDBCRealm,这个Realm将用户信息存在数据库中,通过JDBC获得用户信息来进行验证。

(2)JNDIRealm,用户信息存在基于LDAP的服务器中,通过JNDI获取用户信息。

(3)MemoryRealm,用户信息存在一个xml文件中,上面讲的manager应用验证用户时即使用此种Realm。通过Realm我们可以方便地对访问某个应用的客户进行验证。

Tomcat也提供其他的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些Java EE应用服务器提供的是一致的。

通常所说的应用服务器(如WebLogic)与Tomcat是有区别的。应用服务器提供更多的Java EE特征,如EJB, JMS, JAAS等,同时也支持JSP和Servlet。而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现Java EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,JSP和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat。

基于Tomcat的开发其实主要是JSP和Servlet的开发,开发JSP和Servlet非常简单,用户可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。

Tomcat也可以与其他一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoo(n Apache的另外一个项目)集成起来开发基于XML的应用,与OpenJMS集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。

5. Resin

Resin提供了最快的JSP/Servlet运行平台。在Java和JavaScript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML Stylesheet Language)可以使得形式和内容相分离。

如果选用JSP平台作为Internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,Resin十分出色,表现更成熟,很具备商业软件的要求。而且,它是全免费的。从站点下载的就是完整版本。

相对于Tomcat,后者更像是一个正在研究的项目。目前Resin可以支持Sun的Java EE,而Tomcat不能直接支持,而Java EE是基于Java服务器端大系统的基础。但Tomcat结构非常合理,而且是Apache组织的产品,因此有着很好的远景。