Tomcat服务器是一个免费的开放源代码的Web应用服务器web应用服务器。因为Tomcat技术先进备案域名、性能稳定且免费,所以深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。web应用服务器,怎样区分Tomcat与Web服务器(简述tomcat服务器的特点)一、Tomcat与应用服务器到目前为止,Tomcat一直被认为是Servlet/JSP API的执行器,也就所谓的Servlet容器。 然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EE API的支持。很有意思的是,目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。 由于Tomcat允许开发者只需通过加入一行致谢,就可以把Tomcat嵌入到它们的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。对于开发者来说,如果是为了寻找利用Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用。 虽然整合会带来相关的问题,但是这种方式是最为有效的。。二、Tomcat与Web服务器Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说, Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。 尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。一般来说,大的站点都是将Tomcat与Apache的结合,Apache负责接受所有来自客户端的和JSP的请求转发给Tomcat来处理。 Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。 应用服务器是业务支撑环境的主体,它提供各种增值业务或智能业务的业务逻辑的驻留和执行环境,而且还提供各种开放的API,为第三方的业务开发提供创作平台。业务管理服务器和业务生成环境也可以作为应用服务器的组成部分,使得应用服务器能够提供对业务管理和业务创建的支持。 应用服务器通过开放的协议或API与软交换设备交互来间接地利用底层的网络资源,从而实现业务与呼叫控制的分离,有利于新业务的引入。 应用服务器的功能与传统智能网中的SCP(业务控制点)的功能有些类似,但也存在很大的不同,其主要功能包括: 第一,提供增值业务及其驻留和运行环境。 主要包括业务的性能监测、系统资源监测、系统日志和业务日志、负载控制与平衡、故障处理等功能。业务的性能监测、系统资源监测以及日志功能与负载控制、负载平衡和故障处理相配合,共同为业务提供电信级的运行支持。 第二,提供对业务生命周期管理的支持。 主要包括对业务加载、业务激活和对激活、业务卸载等的支持。作为下一代网络中的一种电信级的核心设备,在不影响正在运行业务的前提下,实现业务的动态加载和动态版本更新是必须的关键功能。 第三,提供对第三方业务驻留、运行和管理的支持。新的业务层出不穷,应用服务器除了需要提供一定的自身业务外,还必须提供对第三方业务的运行管理支持,以保持对业务提供的可扩展性和开放性。 大量第三方业务的引入势必会加大网络运营的不安全因素,因此在引入第三方业务的同时,必须充分需要考虑由此带了的安全性问题。 第四,提供基于Web、结合代理技术的个性化业务。Internet成功的一个关键因素是,用户可以通过浏览器方便地使用大量基于Web的应用,而代理技术的引入又为用户带来了个性化的业务提供方式。 将这两点成功的经验运用到应用服务器的业务提供中,可以为用户提供更为人性化业务,也完全符合业务提供商的利益。而由此带来的一个挑战就是,应用服务器必须处理在Internet的开放环境下业务访问的安全性问题。 第五,业务冲突的避免、检测和解决。 随着下一代网络中业务种类和数量的激增,业务间发生冲突的可能性也迅速增加,在这一背景下,业务冲突管理功能显得尤为重要。在具体实施上,为了将复杂的业务冲突管理与业务运行的支持分离开来,可以设置专门用以解决业务冲突的应用服务器。 第六,提供不同层次的业务开发接口。 为了方便第三方业务的开发,应用服务器可以提供多种编程接口,如Parlay API、SIP Servlet API、SIP CGI API、CPL、VoiceXML等。从抽象程度的角度来看,这些接口出于不同的抽象层次上。接口的抽象层次越高,业务开发越简单。