2.3.4 应用服务器技术
随着Internet的发展壮大,“主机/终端”或“客户机/服务器”的传统应用系统模式已经不能适应新的环境。于是就产生了新的分布式应用系统,相应地,新的开发模式也应运而生,即所谓的“浏览器/服务器”结构、“瘦客户机”模式。应用服务器便是一种实现这种模式的核心技术。应用服务器是指通过各种协议把商业逻辑暴露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。
Web应用程序驻留在应用服务器(Application Server)上。应用服务器为Web应用程序提供一种简单的和可管理的对系统资源的访问机制。它也提供低级的服务,如HTTP协议的实现和数据库连接管理。Servlet容器仅仅是应用服务器的一部分。除了Servlet容器外,应用服务器还可能提供其他Java EE(Enterprise Edition)组件,如EJB(Enterprise JavaBeans)容器、JNDI服务器以及JMS(Java Message Service)服务器等。
市场上可以得到多种应用服务器,其中包括Apache的Tomcat、IBM的websphere、Caucho Technology的Resin、Macromedia的JRun、NEC WebOTX Application Server、JBoss Application Server、BEA的WebLogic等。其中有些如NEC WebOTX Application Server、WebLogic、WebSphere不仅仅是Servlet容器,它们也提供对EJB、JMS以及其他Java EE技术的支持。每种类型的应用服务器都有自己的优点、局限性和适用性。
应用服务器和Web服务器的区别如下:
①Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户机端应用程序可以调用的方法。确切地说,Web服务器专门处理HTTP请求,但是应用程序服务器通过很多协议为应用程序提供商业逻辑。
②Web服务器(Web Server)可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,Web服务器可以响应一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给其他程序,如CGI脚本,JSP(Java Server Pages)脚本、Servlets、ASP(Active Server Pages)脚本、服务器端Java Script,或者其他服务器端技术。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应让浏览器可以浏览。
③企业Web服务器是面向企业网络用户的信息交流平台,Web在企业生产管理过程中的应用越来越多,是信息化应用的入口,一些应用系统都集成在Web服务器上。Web服务器的代理模型非常简单,当一个请求被送到Web服务器中来时,它只单纯地把请求传递给可以很好地处理请求的程序。Web服务器仅仅提供一个可以执行服务器端程序和返回(程序所产生的)响应的环境,而不会超出职能范围。服务器端程序通常具有事务处理,数据库连接和消息等功能。
④虽然Web服务器不支持事务处理或数据库连接池,但它可以配置各种策略来实现容错性和可扩展性,如负载平衡,缓冲。集群特征经常被误认为仅仅是应用程序服务器专有的特征。
⑤应用程序服务器通过各种协议,可以包括HTTP,把商业逻辑暴露给客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就像用户调用对象的一个方法(或过程语言中的一个函数)。
⑥应用程序服务器的客户端[包含有图形用户界面(GUI)的]可能会运行在一台PC、一个Web服务器或者其他应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭的信息不仅仅局限于简单的显式标记。相反,这种信息就是程序逻辑。正是由于这种逻辑取得了数据和方法调用的形式而不是静态HTML,所以客户机端才可以随心所欲地使用这种被暴露的商业逻辑。
⑦在大多数情形下,应用程序服务器是通过组件的应用程序接口把商业逻辑暴露给客户端应用程序的,例如基于Java EE应用程序服务器的EJB组件模型。此外,应用程序服务器可以管理自己的资源,如看大门的工作包括安全、事务处理、资源池和消息。就像Web服务器一样,应用程序服务器配置了多种可扩展和容错技术。
互联网的发展使所有企业越来越意识到共享分布式资源的重要,而作为网络基石的服务器,扮演了一个十分重要的角色。然而由于传统服务器的复杂性和高成本,使得应用服务器向低成本、高性能以及提供专门的完整解决方案的方向不断发展。