web服務器和應用服務器概念比較

 一 常見的WEB服務器和應用服務器

  在UNIX和LINUX平臺下使用最廣泛的免費web服務器是W3C、NCSA和APACHE服務器,而Windows平臺NT/2000/2003使用IIS的WEB服務器。

  在選擇使用WEB服務器應考慮的本身特性因素有:性能、安全性、日誌和統計、虛擬主機、代理服務器、緩衝服務和集成應用程序等,下面介紹幾種常用的WEB服務器。

    常見的web服務器: (其實IIS和Apache同時也支持基礎的應用服務器的功能)

  Microsoft IIS

  Microsoft的Web服務器產品爲Internet Information Server (IIS), IIS 是允許在公共Intranet或Internet上發佈信息的Web服務器。IIS是目前最流行的Web服務器產品之一,很多著名的網站都是建立在IIS 的平臺上。IIS提供了一個圖形界面的管理工具,稱爲 Internet服務管理器,可用於監視配置和控制Internet服務。

  IIS是一種Web服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器, 分別用於網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發佈信息成了一件很容易的事。它提供 ISAPI(Intranet Server API)作爲擴展Web服務器功能的編程接口;同時,它還提供一個Internet數據庫連接器,可以實現對數據庫的查詢和更新。

 

  Apache

  Apache 源於NCSAhttpd服務器,經過多次修改,成爲世界上最流行的Web服務器軟件之一。 Apache是自由軟件,所以不斷有人來爲它開發新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩定,並可做代理服務器來 使用。本來它只用於小型或試驗Internet網絡,後來逐步擴充到各種Unix系統中,尤其對Linux的支持相當完美。

   Apache是以進程爲基礎的結構,進程要比線程消耗更多的系統開支,不太適合於多處理器環境,因此, 在一個Apache Web站點擴容時,通常是增加服務器或擴充羣集節點而不是增加處理器。到目前爲止Apache仍然是世界上用的最多的Web服務器,世界上很多著名的網站 都是Apache的產物,它的成功之處主要在於它的源代碼開放、有一支開放的開發隊伍、支持跨平臺的應用(可以運行在幾乎所有的Unix、 Windows、Linux系統平臺上)以及它的可移植性等方面。

 

 

   常見的應用服務器: (貌似都是Java的哦。asp.net被IIS支持了,php,python等貌似一般不需要單獨的應用服務器哦)

  IBM WebSphere

  WebSphere Application Server 是 一 種功能完善、開放的Web應用程序服務器,是IBM電子商務計劃的核心部分,它是基於 Java 的應用環境,用於建立、部署和管理 Internet 和 Intranet Web 應用程序。 這一整套產品進行了擴展,以適應 Web 應用程序服務器的需要,範圍從簡單到高級直到企業級。

  WebSphere 針對以 Web 爲中心的開發人員,他們都是在基本 HTTP服務器和 CGI 編程技術上成長起來的。IBM 將提供 WebSphere 產品系列,通過提供綜合資源、可重複使用的組件、功能強大並易於使用的工具、以及支持 HTTP 和 IIOP 通信的可伸縮運行時環境,來幫助這些用戶從簡單的 Web 應用程序轉移到電子商務世界。

  BEA WebLogic

  BEA WebLogic Server 是一種多功能、基於標準的web應用服務器,爲企業構建自己的應用提供了堅實的基礎。各種應用開發、部署所有關鍵性的任務,無論是集成各種系統和數據庫, 還是提交服務、跨 Internet 協作,起始點都是 BEA WebLogic Server。由於 它具有全面的功能、對開放標準的遵從性、多層架構、支持基於組件的開發,基於 Internet 的企業都選擇它來開發、部署最佳的應用。

  BEA WebLogic Server 在使應用服務器成爲企業應用架構的基礎方面繼續處於領先地位。BEA WebLogic Server 爲構建集成化的企業級應用提供了穩固的基礎,它們以 Internet 的容量和速度,在連網的企業之間共享信息、提交服務,實現協作自動化。BEA WebLogic Server 的遵從 J2EE 、面向服務的架構,以及豐富的工具集支持,便於實現業務邏輯、數據和表達的分離,提供開發和部署各種業務驅動應用所必需的底層核心功能。

   IPlanet Application

  IPlanet Application Server作爲Sun與Netscape聯盟產物的iPlanet公司生產的iPlanet Application Server 滿足最新J2EE規範的要求。它是一種完整的WEB服務器應用解決方案,它允許企業以便捷的方式,開發、部署和管理關鍵任務 Internet 應用。該解決方案集高性能、高度可伸縮和高度可用性於一體,可以支持大量的具有多種客戶機類型與數據源的事務。

  iPlanet Application Server的基本核心服務包括事務監控器、多負載平衡選項、對集羣和故障轉移全面的支持、集成的XML 解析器和可擴展格式語言轉換(XLST)引擎以及對國際化的全面支持。iPlanet Application Server 企業版所提供的全部特性和功能,並得益於J2EE系統構架,擁有更好的商業工作流程管理工具和應用集成功能。

  Oracle IAS

  Oracle iAS的英文全稱是Oracle Internet Application Server,即Internet應用服務器,Oracle iAS是基於Java的應用服務器,通過與Oracle 數據庫等產品的結合,Oracle iAS能夠滿足Internet應用對可靠性、可用性和可伸縮性的要求。

  Oracle iAS最大的優勢是其集成性和通用性,它是一個集成的、通用的中間件產品。在集成性方面,Oracle iAS將業界最流行的HTTP服務器Apache集成到系統中,集成了Apache的Oracle iAS通信服務層可以處理多種客戶請求,包括來自Web瀏覽器、胖客戶端和手持設備的請求,並且根據請求的具體內容,將它們分發給不同的應用服務進行處 理。在通用性方面,Oracle iAS支持各種業界標準,包括 JavaBeans、CORBA、Servlets以及XML標準等,這種對標準的全面支持使得用戶很容易將在其他系統平臺上開發的應用移植到 Oracle平臺上。

  Tomcat

  Tomcat是一個開放源代碼、運行servlet和JSP Web應用軟件的基於Java的Web應用軟件容器。Tomcat Server是根據servlet和JSP規範進行執行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規範且比絕大多數商業應用軟件服務器要好。

  Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技術的標準實現,是基於Apache許可證下開發的自由軟件。Tomcat是完全重寫的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代碼,特別是Apache服務適配器。隨着Catalina Servlet引擎的出現,Tomcat第四版號的性能得到提升,使得它成爲一個值得考慮的Servlet/JSP容器,因此目前許多WEB服務器都是採 用Tomcat。


二 web服務器和應用服務器比較

通俗的講,Web服務器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程序服務器提供的是客戶 端應用程序可以調用(call)的方法(methods)。確切一點,你可以說:Web服務器專門處理HTTP請求(request),但是應用程序服務 器是通過很多協議來爲應用程序提供(serves)商業邏輯(business logic)。

下面讓我們來細細道來:

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)等等),而且給最佳產品的 選取留有餘地。


三 比較

-------------------------
1.WEB服務器

 

 

  理解WEB服務器,首先你要理解什麼是WEB?WEB你可以簡單理解爲你所看到的HTML頁面就是WEB的數據元素,處理這些數據元素的應用軟件就叫WEB服務器,如IIS、apache。 WEB服務器與客戶端打交道,它要處理的主要信息有:session、request、response、HTML、JS、CS等。

-------------------------
2.應用服務器
  應用服務器如JSP,處理的是非常規性WEB頁面(JSP文件),他動態生成WEB頁面,生成的WEB頁面在發送給客戶端(實際上當應用服務器處理完一個JSP請求並完成JSP生成HTML後它的任務就結束了,其餘的就是WEB處理的過程了)。

-------------------------
3.兩者關係
  WEB服務器一般是通用的,而應用服務器一般是專用的,如Tomcat只處理JAVA應用程序而不能處理ASPX或PHP。而Apache是一個WEB服 務器f(HTTP服務器),後來連接Tomcat應用服務器來支持java。
 

 

完!

感謝,Thanks!

作者:iTech
出處:http://itech.cnblogs.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章