??xml version="1.0" encoding="utf-8" standalone="yes"?>
整合的好处是Q?br /> 如果客户端请求的是静(rn)态页面,则只需要Apache服务器响应请?br /> 如果客户端请求动态页面,则是Tomcat服务器响应请?br /> 因ؓ(f)jsp是服务器端解释代码的Q这h合就可以减少Tomcat的服务开销
============================几种常见的服务器===============================
?Microsoft IIS
Microsoft的Web服务器品ؓ(f)Internet Information Server (IIS)Q?IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最行的Web服务器品之一Q很多著名的|站都是建立在IIS的^C。IIS提供?jin)一个图形界面的理工具Q称?Internet服务理器,可用于监视配|和控制Internet服务?
IIS是一UWeb服务lgQ其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于|页览、文件传输、新L务和邮g发送等斚wQ它使得在网l(包括互联|和局域网Q上发布信息成了(jin)一件很Ҏ(gu)的事。它提供ISAPIQIntranet Server APIQ作为扩展Web服务器功能的~程接口Q同Ӟ它还提供一个Internet数据库连接器Q可以实现对数据库的查询和更新?
?IBM WebSphere
WebSphere Application Server 是一U功能完善、开攄Web应用E序服务器,是IBM?sh)子商务计划的核心(j)部分,它是Z Java 的应用环境,用于建立、部|和理 Internet ?Intranet Web 应用E序?q一整套产品q行?jin)扩展,以适应 Web 应用E序服务器的需要,范围从简单到高直到企业U?
WebSphere 针对?Web Z?j)的开发h员,他们都是在基?HTTP服务器和 CGI ~程技术上成长h的。IBM 提?WebSphere 产品pdQ通过提供l合资源、可重复使用的组件、功能强大ƈ易于使用的工兗以?qing)支?HTTP ?IIOP 通信的可伸羃q行时环境,来帮助这些用户从单的 Web 应用E序转移到电(sh)子商务世界?/p>
?BEA WebLogic Server
是一U多功能、基于标准的web应用服务器,Z业构q应用提供?jin)坚实的基础。各U应用开发、部|所有关键性的dQ无论是集成各种pȝ和数据库Q还是提交服务、跨 Internet 协作Qv始点都是 BEA WebLogic Server。由?它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,Z Internet 的企业都选择它来开发、部|最佳的应用?
BEA WebLogic Server 在应用服务器成Z业应用架构的基础斚wl箋处于领先C。BEA WebLogic Server 为构建集成化的企业应用提供?jin)稳固的基础Q它们以 Internet 的容量和速度Q在q网的企业之间共享信息、提交服务,实现协作自动化。BEA WebLogic Server 的遵?J2EE 、面向服务的架构Q以?qing)丰富的工具集支持,便于实现业务逻辑、数据和表达的分,提供开发和部v各种业务驱动应用所必需的底层核?j)功能?
?IPlanet Application Server
作ؓ(f)Sun与Netscape联盟产物的iPlanet公司生的iPlanet Application Server 满最新J2EE规范的要?/strong>。它是一U完整的WEB服务器应用解x案,它允怼业以便捷的方式,开发、部|和理关键d Internet 应用。该解决Ҏ(gu)集高性能、高度可伸羃和高度可用性于一体,可以支持大量的具有多U客hcd与数据源的事务?
iPlanet Application Server的基本核?j)服务包括事务监控器、多负蝲q选项、对集群和故障{Ud面的支持?strong>集成的XML 解析器和可扩展格式语a转换QXLSTQ引擎以?qing)对国际化的全面支?/font>。iPlanet Application Server 企业版所提供的全部特性和功能Qƈ得益于J2EEpȝ构架Q拥有更好的商业工作程理工具和应用集成功能?
⑤Oracle IAS
Oracle iAS的英文全U是Oracle Internet Application ServerQ即Internet应用服务器,Oracle iAS是基于Java的应用服务器Q通过与Oracle 数据库等产品的结合,Oracle iAS能够满Internet应用对可靠性、可用性和可~性的要求?
Oracle iAS最大的优势是其集成性和通用性,它是一个集成的、通用的中间g产品。在集成性方面,Oracle iAS业界最行的HTTP服务器Apache集成到系l中Q集成了(jin)Apache的Oracle iAS通信服务层可以处理多U客戯求,包括来自Web览器、胖客户端和手持讑֤的请求,q且Ҏ(gu)h的具体内容,它们分发给不同的应用服务进行处理。在通用性方面,Oracle iAS支持各种业界标准Q包?JavaBeans、CORBA、Servlets以及(qing)XML标准{,q种Ҏ(gu)准的全面支持使得用户很容易将在其他系l^C开发的应用UL到Oracleq_上?
?Apache
Apache源于NCSAhttpd服务器,l过多次修改Q成Z界上最行的Web服务器Y件之一。Apache是自pYӞ所以不断有人来为它开发新的功能、新的特性、修改原来的~陷。Apache的特Ҏ(gu)单、速度快、性能E_Qƈ可做代理服务器来使用。本来它只用于小型或试验Internet|络Q后来逐步扩充到各UUnixpȝ中,其对Linux的支持相当完?/font>?
Apache是以q程为基的结构,q程要比U程消耗更多的pȝ开支,不太适合于多处理器环境,因此Q在一个Apache Web站点扩容Ӟ通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的|站都是Apache的物,它的成功之处主要在于它的源代码开放、有一支开攄开发队伍、支持跨q_的应用(可以q行在几乎所有的Unix、Windows、Linuxpȝq_上)(j)以及(qing)它的可移植性等斚w?
?Tomcat
Tomcat是一个开放源代码、运行servlet和JSP Web应用软g的基于Java的Web应用软g容器。Tomcat Server是根据servlet和JSP规范q行执行的,因此我们可以说Tomcat Server也实行了(jin)Apache-Jakarta规范且比l大多数商业应用软g服务器要?/font>?
Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现Q是ZApache许可证下开发的自由软g。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用?jin)JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出玎ͼTomcatW四版号的性能得到提升Q得它成ؓ(f)一个值得考虑的Servlet/JSP容器Q因此目前许多WEB服务器都是采用Tomcat?/p>
web服务器和应用服务器得区别
通俗的讲QW(xu)eb服务器传?serves)面使浏览器可以览Q然而应用程序服务器提供的是客户端应用程序可以调?call)的方?methods)。确切一点,你可以说QWeb服务器专门处理HTTPh(request)Q但是应用程序服务器是通过很多协议来ؓ(f)应用E序提供(serves)商业逻辑(business logic)?/p>
下面让我们来l细道来Q?/p>
Web服务?Web Server)
Web服务器可以解?handles)HTTP协议。当Web服务器接收到一个HTTPh(request)Q会(x)q回一个HTTP响应(response)Q例如送回一个HTML面。ؓ(f)?jin)处理一个请?request)QW(xu)eb服务器可以响?response)一个静(rn)态页面或囄Q进行页面蟩?redirect)Q或者把动态响?dynamic response)的生委?delegate)l一些其它的E序例如CGI脚本QJSP(JavaServer Pages)脚本QservletsQASP(Active Server Pages)脚本Q服务器?server-side)JavaScriptQ或者一些其它的服务器端(server-side)技术。无论它?译者注Q脚?的目的如何,q些服务器端(server-side)的程序通常产生一个HTML的响?response)来让览器可以浏览?/p>
要知道,W(xu)eb服务器的代理模型(delegation model)非常单。当一个请?request)被送到Web服务器里来时Q它只单U的把请?request)传递给可以很好的处理请?request)的程?译者注Q服务器端脚?。Web服务器仅仅提供一个可以执行服务器?server-side)E序和返?E序所产生?响应(response)的环境,而不?x)超能范围。服务器?server-side)E序通常h事务处理(transaction processing)Q数据库q接(database connectivity)和消?messaging){功能?/p>
虽然Web服务器不支持事务处理或数据库q接池,但它可以配置(employ)各种{略(strategies)来实现容错?fault tolerance)和可扩展?scalability)Q例如负载^?load balancing)Q缓?caching)。集特?clustering—features)l常被误认ؓ(f)仅仅是应用程序服务器专有的特征?/p>
应用E序服务?The Application Server)
Ҏ(gu)我们的定义,作ؓ(f)应用E序服务器,它通过各种协议Q可以包括HTTPQ把商业逻辑暴露l?expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供览Q而应用程序服务器提供讉K商业逻辑的途径以供客户端应用程序用。应用程序用此商业逻辑p你调用对象的一个方?或过E语a中的一个函?一栗?/p>
应用E序服务器的客户?包含有图形用L(fng)?GUI)?可能?x)运行在一台PC、一个Web服务器或者甚x其它的应用程序服务器上。在应用E序服务器与其客L(fng)之间来回I梭(traveling)的信息不仅仅局限于单的昄标记。相反,q种信息是E序逻辑(program logic)?正是׃q种逻辑取得?takes)数据和方法调?calls)的Ş式而不是静(rn)态HTMLQ所以客L(fng)才可以随?j)所Ʋ的使用q种被暴露的商业逻辑?/p>
在大多数情Ş下,应用E序服务器是通过lg(component)的应用程序接?API)把商业逻辑暴露(expose)(l客L(fng)应用E序)的,例如ZJ2EE(Java 2 Platform, Enterprise Edition)应用E序服务器的EJB(Enterprise JavaBean)lg模型。此外,应用E序服务器可以管理自q资源Q例如看大门的工?gate-keeping duties)包括安全(security)Q事务处?transaction processing)Q资源池(resource pooling)Q?和消?messaging)。就象Web服务器一P应用E序服务器配|了(jin)多种可扩?scalability)和容?fault tolerance)技术?/p>
一个例?
例如Q设想一个在U商?|站)提供实时定h(hun)(real-time pricing)和有效?availability)信息。这个站?site)很可能会(x)提供一个表?form)让你来选择产品。当你提交查?query)后,|站?x)进行查?lookup)q把l果内嵌在HTML面中返回。网站可以有很多U方式来实现q种功能。我要介l一个不使用应用E序服务器的情景和一个用应用程序服务器的情景。观察一下这两中情景的不同会(x)有助于你?jin)解应用E序服务器的功能?/p>
情景1Q不带应用程序服务器的Web服务?/p>
在此U情景下Q一个Web服务器独立提供在U商店的功能。Web服务器获得你的请?request)Q然后发送给服务器端(server-side)可以处理h(request)的程序。此E序从数据库或文本文?flat fileQ译者注Qflat file是指没有Ҏ(gu)格式的非二进制的文gQ如properties和XML文g{?中查扑֮价信息。一旦找刎ͼ服务器端(server-side)E序把结果信息表C成(formulate)HTML形式Q最后Web服务器把?x)它发送到你的Web览器?/p>
而言之,W(xu)eb服务器只是简单的通过响应(response)HTML面来处理HTTPh(request)?/p>
情景2Q带应用E序服务器的Web服务?/p>
情景2和情?相同的是Web服务器还是把响应(response)的生委?delegates)l脚?译者注Q服务器?server-side)E序)。然而,你可以把查找定h(hun)的商业逻辑(business logic)攑ֈ应用E序服务器上。由于这U变化,此脚本只是简单的调用应用E序服务器的查找服务(lookup service)Q而不是已l知道如何查找数据然后表CZؓ(f)(formulate)一个响?response)?q时当该脚本E序产生HTML响应(response)时就可以使用该服务的q回l果?jin)?/p>
在此情景中,应用E序服务器提?serves)?jin)用于查询品的定h(hun)信息的商业逻辑?服务器的)q种功能(functionality)没有指出有关昄和客L(fng)如何使用此信息的l节Q相反客L(fng)和应用程序服务器只是来回传送数据。当有客L(fng)调用应用E序服务器的查找服务(lookup service)Ӟ此服务只是简单的查找q返回结果给客户端?/p>
通过从响应?response-generating)HTML的代码中分离出来Q在应用E序之中该定?查找)逻辑的可重用性更Z(jin)。其他的客户端,例如收款机,也可以调用同L(fng)服务(service)来作Z个店员给客户l帐。相反,在情?中的定h(hun)查找服务是不可重用的因ؓ(f)信息内嵌在HTML中?jin)?/p>
总而言之,在情?的模型中Q在Web服务器通过回应HTML面来处理HTTPh(request)Q而应用程序服务器则是通过处理定h(hun)和有效?availability)h(request)来提供应用程序逻辑的?/p>
警告(Caveats)
现在QXML Web Services已经使应用程序服务器和W(xu)eb服务器的界线h?jin)。通过传送一个XML有效载荷(payload)l服务器QW(xu)eb服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了(jin)?/p>
另外Q现在大多数应用E序服务器也包含?jin)Web服务器,q就意味着可以把Web服务器当作是应用E序服务器的一个子?subset)。虽然应用程序服务器包含?jin)Web服务器的功能Q但是开发者很把应用E序服务器部|?deploy)成这U功?capacity)(译者注Q这U功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常?x)把Web服务器独立配|,和应用程序服务器一前一后。这U功能的分离有助于提高性能(单的Webh(request)׃?x)?jing)响应用程序服务器?Q分开配置(专门的Web服务器,集群(clustering){等)Q而且l最佳品的选取留有余地?/p>