应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。
随着的发展壮大,“主机/终端”或“客户机/服务器”的传统的应用系统模式已经不能适应新的环境,于是就产生了新的分布式应用系统,相应地,新的开发模式也应运而生,即所谓的“浏览器/服务器”结构、“瘦客户机”模式。应用服务器便是一种实现这种模式核心技术。[1]
Web应用程序驻留在应用服务器(ApplicationServer)上。应用服务器为Web应用程序提供一种简单的和可管理的对系统资源的访问机制。它也提供低级的服务,如HTTP协议的实现和数据库连接管理。Servlet容器仅仅是应用服务器的一部分。除了Servlet容器外,应用服务器还可能提供其他的JavaEE(EnterpriseEdition)组件,如EJB容器,JNDI服务器以及JMS服务器等。
市场上可以得到多种应用服务器,其中包括Apache的Tomcat、IBM的WebSphereApplicationServer、CauchoTechnology的Resin、Macromedia的JRun、NECWebOTXApplicationServer、JBossApplicationServer、Oracle(并购了BEA)的WebLogic等。其中有些如NECWebOTXApplicationServer、WebLogic、WebSphere不仅仅是Servlet容器,它们也提供对EJB(EnterpriseJavaBeans)、JMS(JavaMessageService)以及其他JavaEE技术的支持。每种类型的应用服务器都有自己的优点、局限性和适用性。
静态:静态Web文档是一个存储于Web服务器的文件。静态文档的作者在写作的时候确定文档的内容。由于文档内容不会变化,所以对静态文档的每次访问都返回相同结果。
动态:动态web文档不是以一个预先定义的格式存在,而是在浏览器访问web服务器时创建。当一个请求到达时,web服务器运行一个应用程序创建动态文档(dynamicdocuments),服务器返回程序的输出作为应答。由于每次访问都要创建新的文档,动态文档的内容是变化的。
活动:一个活动文档不完全由服务器一端说明,而是包括一个计算并显示值的程序。当浏览器访问活动文档时,服务器返回一个浏览器可以本地执行的程序。当该程序运行时,它可以和用户交互执行并不停地改变显示。这样,活动文档的内容是不固定的-只要用户让程序保持运行,它总是在不停地变化。静态文档的主要优点在于它的简单、可靠性和性能。由于静态文档是直接指定格式。它可以由不懂编程的人创建。更重要的是,在已经创建和测试之后,静态文档永远是正确的。最后,浏览器可以快速存取文档,同时通过把文档放在本地盘上的缓冲区内以加快以后对这些文档的访问速度。静态文档的主要缺点是不灵活-当信息变化时文档必须重新设计。另外,改变是很耗费时间的,因为它需要人工修改文件。因此,静态文档不适合频繁变化的报告信息。动态文档的主要优点是它报告当前信息的能力。例如,一个动态文档可以用来报告股市行情、天气预报或音乐会售票情况等内容。当浏览器申请信息的时候,服务器运行一个应用程序,访问所需要的信息,并创建一个文档,服务器于是将该文档返回给浏览器。动态文档把任务放在服务器一端,浏览器采用和静态文档同样的方法访问动态文档。实际上,从浏览器的角度来看。动态文档和静态文档是无区别的。由于动态文档和静态文档都采用HTML编写,浏览器不知道服务器是从一个磁盘文件还是计算机程序中取得文档。动态文档的主要缺点是增加成本和不能显示变化的信息。和静态文档类似,动态文档在浏览器取得文档后不会再改变。因此在信息发送给浏览器之后,文档就开始过时。例如一个报告股市信息的动态文档,由于股市信息变化迅速,当用户访问时文档很快就过时。动态文档的创建和访问成本比静态文档昂贵。创建动态文档的代价较高,因为动态文档的创建者必须懂得如何写程序。另外,程序必须仔细编写和广泛测试,以保证输出的合法性。验证这样一个程序的正确性是很困难的,因为输入可以包含不同来源的多种数据。动态文档除了创建成本高,所需的硬件成本也较高,因为服务器端需要更强大的计算机。最后取出动态文档需要的时间稍多些,因为服务器需要额外的时间去运行程序创建文档。尽管在申请到达时动态文档才创建,但信息可能很快过时,活动文档相对于动态文档的主要优点在于它持续更改信息的能力。例如,只有活动文档能够快速改变显示以显示动画。更重要的是,活动文档能够直接访问信息源并连续更改显示。例如,一个显示股市行情的活动文档可以连续读取股市信息,并且不需要用户干预而自动修改显示。活动文档的主要缺点是创建和运行这种文档所需的额外费用,同时缺少安全性。首先,活动文档的显示需要更复杂的浏览器软件和一个强有力的计算机运行浏览器。另外,写正确的活动文档比写其他画面需要更多的编程技巧,所得到的结果文档更难于测试。而且,由于活动文档必须运行在客户端而不是服务器端,程序必须解决在不同客户上的兼容性问题,最后,活动文档存在着潜在的安全性问题,因为文档既输入信息又输出信息。
Web文档根据文档内信息改变的时间可分为三类。静态文档的信息只有当作者修改时才会改变,动态文档的信息在服务器端收到文档申请时改变,活动文档显示的信息在文档下载到浏览器一端运行后改变。由于创建动态文档的责任在管理文档的服务器一端,支持动态文档也只需修改服务器。实际上,变化意味着扩展,管理动态文档的服务器也包含了处理静态文档的代码。处理动态文档的Web服务器需要三个特性。
首先,服务器程序必须扩展,当每次请求到达时,能够执行一个单独的创建文档的应用程序。服务器必须编成能够捕获应用程序的输出,并且将该文档返回给浏览器。
最后,服务器必须配置成能够知道哪一个URL对应于动态文档和哪一个URL对应于静态文档。对每个动态文档,配置时必须说明产生文档的应用程序。每个申请包含着一个对应动态或静态文档的URL,服务器使用配置信息和收到的请求中的URL决定如何处理。如果配置信息说明申请中的URL对应着一个静态文档,服务器就跟往常一样取出文件。如果申请中的URL对应着动态文档,服务器选择生成该文档的应用程序,运行程序,并且把程序的输出作为文档返回给浏览器。
通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(businesslogic)。
Web服务器(WebServer)可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamicresponse)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServerPages)脚本,servlets,ASP(ActiveServerPages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
企业WEB服务器是面向企业网络用户的信息交流平台,WEB在企业生产管理过程中的应用越来越多,是信息化应用的入口,一些应用系统都集成在WEB服务器上。要知道,Web服务器的代理模型(delegationmodel)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transactionprocessing),数据库连接(databaseconnectivity)和消息(messaging)等功能。[2]
虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(faulttolerance)和可扩展性(scalability),例如负载平衡(loadbalancing),缓冲(caching)。集群特征(clustering-features)经常被误认为仅仅是应用程序服务器专有的特征。
根据定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就像你调用对象的一个方法(或过程语言中的一个函数)一样。
应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(programlogic)。正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。
在大多数情形下,应用程序服务器是通过组件ponent)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java2Platform,EnterpriseEdition)应用程序服务器的EJB(EnterpriseJavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keepingduties)包括安全(security),事务处理(transactionprocessing),资源池(resourcepooling),和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(faulttolerance)技术。
IMS网络是一个基于IP承载并向用户提供各项多媒体服务的开放系统,AS(ApplicationServer,应用服务器),是IMS系统中位于最上层的应用层设备。AS网元与CSCF之间通过标准SIP协议进行交互,进而实现各种网络业务的触发和执行。
IMS网络中的基本业务包括点到点的语音呼叫、视频呼叫以及呼叫异常提示,点到点指呼叫可以是两个IMS用户之间,也可以是IMS用户与其他网络的用户,如PSTN固话用户、移动网GSM用户等;呼叫异常提示指在被叫忙、无应答、号码空号、主叫欠费等各种条件下的语音和视频呼叫,给主叫用户播放通知音;IMS网络中提供的补充业务种类包括号码显示、呼叫转移、呼叫限制、呼叫完成以及多方通话业务等。
多方通话是建立在至少三个用户之间的网络应用,其中任意一个人的语音可以被会议中的所有其他人员听到,多媒体会议在多方通话传输语音信息的基础上,又提供了视频图像,从而使人们之间进行交互的媒体种类更加的丰富。
提供用户在互联网上的各类通讯方式和业务,比如即时消息(IM:InstantMessage)、文件和视频共享等。
除此之外,AS提供的业务功能还包括短信网关、标准话务台、群业务等,极大地丰富了IMS网络的各种应用。
百科词条内容由用户共同创建和维护,不代表百科立场。如果您需要医学、法律、投资理财等专业领域的建议,我们强烈建议您独自对内容的可信性进行评估,并咨询相关专业人士。