严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容。而JSP,ASP,PHP等动态内容需要通过CGI、FastCGI、ISAPI等接口交给其他程序去处理。这个其他程序就是应用服务器。
这个架构主要基于Web。中间层是业务逻辑所在的应用服务器。而第三层,则是事务服务器的数据库。应用程序服务器充当的是用户和数据库之间的交互。
应用服务器通过各种协议把商业逻辑曝露给客户端的程序。它还可以包括计算机、web服务器或其他应用服务器上的图形用户界面。业务逻辑通过组件API公开。它还管理自己的资源以及执行安全性、事务处理、资源池以及消息传递。
对于高端需求,应用服务器往往具有高可用性监视、集群化、负载平衡、集成冗余和高性能分布式应用服务,以及对复杂的数据库访问的支持。
在流行的应用服务器平台中有J2EE,WebLogic,Glassfish,JBoss企业应用平台,以及ApacheTomcat和ApacheGeronimo等等。
可扩展性是使用应用服务器的另一个原因和好处。应用程序服务器可以连接数据库连接池。这意味着组织可以在不增加数据库连接量的情况下扩展Web“服务器农场”。
另一个好处是安全。使用单独的数据访问层执行数据验或显示业务逻辑,可以确保以Web表单输入的文本不被SQL调用。通过集中化身份验证过程以及数据访问管理,安全性也有所提高。
应用程序服务器与Web服务器不同,因为前者通过多种协议处理向应用程序提供业务逻辑,而Web服务器响应并处理HTTP请求。虽然Web服务器可能不支持事务或数据库连接池,但它可能具有容错和可扩展性功能,如负载平衡、缓存和集群。
应用服务器与数据库服务器不同,因为该服务器执行诸如数据分析、存储、数据处理、归档以及其他与数据管理相关的任务。数据库服务器则使用诸如ODBC、JDBC等协议来命名。