WEB服务器和应用服务器

今天在路上跟朋友聊天时,谈到服务器方面上的问题?由于自己也不是很懂,他说的我也觉得不是很对,所以回来之后就通过查询了下资料。可能不是很全,提供相互学习。

web服务器专门处理web服务请求,也就是HTTP协议的80端口或者是8080端口的数据处理以及交互等。
 应用服务器: 1.FTP服务器就是提供文件存储等,是通过21端口提供文件服务器的功能。 2.网络游戏服务器,例如传奇等,通过8000端口提供游戏过程中服务器与游戏玩家的客户端之间的数据传输以及处理。 3.qq聊天软件,通过制定的窗口传输qq软件之间通过服务器来传输文字,视频,音频数据等。 所以应用服务器指的是通过特定的网络通道来传输数据进行特定的数据交互来实现一些功能,而之所以分Web服务器和应用服务器我想是根据功能来分类的,广义上说web服务器也属于应用服务器的一种。而所谓的商业逻辑就是你想实现的特定功能是什么,例如淘宝实现的是一个网上交易平台,他提供了很多的服务,这这些服务的集合就是一种商业逻辑。

 

应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。

web服务器通常比应用服务器简单,如apache就是web服务器,
Jboss就是EJB应用服务器。

应用服务器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache

 

1.(客户端--应用服务器--数据服务器
桥节作用,好处是客户端体积小,改动少,比如我们天天上的网,那个网站里的IIS服务就是类似一种应用服务器)
应用服务器(无论是什么功能的应用服务器)在数据库服务器和终端用户之间占有很大一部分计算领地。这个领域有一个广为人知名字,这个名字就是中间件,这个名字也告诉了你应用服务器都做什么事情。

  首先也是最重要,应用服务器把数据库信息(通常来源于一个数据库服务器)与终端用户或者客户端程序(常常在Web浏览器里运行)连接在一起。在这个连接中存在一个中间层很多理由。这些理由包括减少客户端程序的大小和复杂性、缓存和更好的控制数据流以提供更好的性能以及为数据通信和用户通信提供安全保障。

  然而,这并不是应用服务器功能的全部。在应用服务器早期应用的时候,人们就发现应用软件本身(人们用来完成工作的程序)正变得越来越大并且越来越复杂。无论应用程序的编写和维护都是如此。

  与此同时,应用程序共享数据和有时候共享功能的压力也越来越大。更多的应用程序被放在网络上或使用报网络扩展功能。让某些类型的应用程序在网络上运行似乎是合乎逻辑的:这有助于以有组织和有效率地方式共享应用程序的功能,使应用程序更容易编写、管理和维护


2.Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。例如,假设你要提供免费公司资讯,只要建立一张免费请求表单,它就会要求你的读者输入邮寄及公司信息;读者填完表后,点击提交按钮,该表单将送至服务器计算机上的某一程序,它负责处理该请求,并用E-mail给读者发一份免费资讯。你还可以让该程序把客户提供的信息发给你,以便用于某数据库上。用于执行这些功能的程序或脚本称为网关脚本/程序,或称为CGI(通用网关界面)脚本。在Web上,你所见到的大多数表单和搜索引擎上都使用了该技术。
3.
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.0.16。

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。


4.IIS(Internet Information Server)是一组Internet服务器加上一些可以在NT操作系统下运行的服务组成,microsoft就包括了一系列用于建立管理网站、搜索引擎的程序集,Microsoft指出,由于IIS和NT服务器在许多方面是一体化的,因此可以提供更快的网页服务。


5.WebLogic是用于开发、集成、部署和管理大型分布式Web应用、 网络应用和数据库应
用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的
开发、集成、部署和管理之中。
BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能 、可扩展性和高可用性。
与BEA WebLogic Commerce ServerTM配合使用, BEA WebLogic Server可为部署适应性个性化
电子商务应用系统提供完善的解决方案。

 

web服务器(web server)

web服务器可以解析(handles)http协议。当web服务器接收到一个http请求(request),会返回一个http响应 (response),例如送回一个html页面。为了处理一个请求(request),web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如cgi脚本,jsp(javaserver pages)脚本,servlets,asp(active server pages)脚本,服务器端(server-side)javascript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个html的响应(response)来让浏览器可以浏览。

要知道,web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求 (request)的程序(译者注:服务器端脚本)。web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。

虽然web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。

应用程序服务器(the application server)

根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括http,把商业逻辑暴露给(expose)客户端应用程序。web服务器主要是处理向浏览器发送html以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法 (或过程语言中的一个函数)一样。

应用程序服务器的客户端(包含有图形用户界面(gui)的)可能会运行在一台pc、一个web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(program logic)。正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态html,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(api)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于j2ee(java 2 platform, enterprise edition)应用程序服务器的ejb(enterprise javabean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling),和消息(messaging)。就象web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

一个例子

例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询 (query)后,网站会进行查找(lookup)并把结果内嵌在html页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

情景1:不带应用程序服务器的web服务器

在此种情景下,一个web服务器独立提供在线商店的功能。web服务器获得你的请求(request),然后发送给服务器端(server- side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和xml文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)html形式,最后web服务器把会它发送到你的web浏览器。

简而言之,web服务器只是简单的通过响应(response)html页面来处理http请求(request)。

情景2:带应用程序服务器的web服务器

情景2和情景1相同的是web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端(server -side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。这时当该脚本程序产生html响应(response)时就可以使用该服务的返回结果了。

在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。

通过从响应产生(response-generating)html的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在 html页中了。

总而言之,在情景2的模型中,在web服务器通过回应html页面来处理http请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。

警告(caveats)

现在,xml web services已经使应用程序服务器和web服务器的界线混淆了。通过传送一个xml有效载荷(payload)给服务器,web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。

另外,现在大多数应用程序服务器也包含了web服务器,这就意味着可以把web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有web服务器的功能)。相反,如果需要,他们通常会把web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的web请求(request)就不会影响应用程序服务器了),分开配置(专门的web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

posted on 2012-11-19 16:33  云端飘  阅读(1142)  评论(0编辑  收藏  举报

导航