- 相關(guān)推薦
WEB服務(wù)器與應用服務(wù)器有什么區別
JFox是由開(kāi)放源碼社區的開(kāi)發(fā)人員協(xié)同研發(fā)完成,現在是中國NO.1 的開(kāi)放源碼Java應用服務(wù)器,它已經(jīng)被全世界的開(kāi)發(fā)人員下載了2058個(gè)拷貝,并逐步被廣泛的使用。下面我們一起談?wù)刉EB服務(wù)器與應用服務(wù)器有什么區別,歡迎大家參與!
1Web服務(wù)器和應用服務(wù)器簡(jiǎn)介
通俗的講,Web服務(wù)器傳送頁(yè)面使瀏覽器可以瀏覽,然而應用程序服務(wù)器提供的是客戶(hù)端應用程序可以調用(call)的方法(methods)。確切一點(diǎn),你可以說(shuō):Web服務(wù)器專(zhuān)門(mén)處理HTTP請求(request),但是應用程序服務(wù)器是通過(guò)很多協(xié)議來(lái)為應用程序提供(serves)商業(yè)邏輯(business logic)。
1。應用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器則主要是讓客戶(hù)可以通過(guò)瀏覽器進(jìn)行訪(fǎng)問(wèn)。
2。應用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器是用于處理HTML文件的。web服務(wù)器通常比應用服務(wù)器簡(jiǎn)單,如apache就是web服務(wù)器,Jboss就是EJB應用服務(wù)器。
應用服務(wù)器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache
下面讓我們來(lái)細細道來(lái):
Web服務(wù)器(Web Server)
Web服務(wù)器可以解析(handles)HTTP協(xié)議。當Web服務(wù)器接收到一個(gè)HTTP請求(request),會(huì )返回一個(gè)HTTP響應(response),例如送回一個(gè)HTML頁(yè)面。為了處理一個(gè)請求(request),Web服務(wù)器可以響應(response)一個(gè)靜態(tài)頁(yè)面或圖片,進(jìn)行頁(yè)面跳轉(redirect),或者把動(dòng)態(tài)響應(dynamic response)的產(chǎn)生委托(delegate)給一些其它的程序例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,服務(wù)器端(server-side)JavaScript,或者一些其它的服務(wù)器端(server-side)技術(shù)。無(wú)論它們(譯者注:腳本)的目的如何,這些服務(wù)器端(server-side)的程序通常產(chǎn)生一個(gè)HTML的響應(response)來(lái)讓瀏覽器可以瀏覽。
要知道,Web服務(wù)器的代理模型(delegation model)非常簡(jiǎn)單。當一個(gè)請求(request)被送到Web服務(wù)器里來(lái)時(shí),它只單純的把請求(request)傳遞給可以很好的處理請求(request)的程序(譯者注:服務(wù)器端腳本)。Web服務(wù)器僅僅提供一個(gè)可以執行服務(wù)器端(server-side)程序和返回(程序所產(chǎn)生的)響應(response)的環(huán)境,而不會(huì )超出職能范圍。服務(wù)器端(server-side)程序通常具有事務(wù)處理(transaction processing),數據庫連接(database connectivity)和消息(messaging)等功能。
雖然Web服務(wù)器不支持事務(wù)處理或數據庫連接池,但它可以配置(employ)各種策略(strategies)來(lái)實(shí)現容錯性(fault tolerance)和可擴展性(scalability),例如負載平衡(load balancing),緩沖(caching)。集群特征(clustering—features)經(jīng)常被誤認為僅僅是應用程序服務(wù)器專(zhuān)有的特征。
應用程序服務(wù)器(The Application Server)
根據我們的定義,作為應用程序服務(wù)器,它通過(guò)各種協(xié)議,可以包括HTTP,把商業(yè)邏輯暴露給(expose)客戶(hù)端應用程序。Web服務(wù)器主要是處理向瀏覽器發(fā)送HTML以供瀏覽,而應用程序服務(wù)器提供訪(fǎng)問(wèn)商業(yè)邏輯的途徑以供客戶(hù)端應用程序使用。應用程序使用此商業(yè)邏輯就象你調用對象的一個(gè)方法(或過(guò)程語(yǔ)言中的一個(gè)函數)一樣。
應用程序服務(wù)器的客戶(hù)端(包含有圖形用戶(hù)界面(GUI)的)可能會(huì )運行在一臺PC、一個(gè)Web服務(wù)器或者甚至是其它的應用程序服務(wù)器上。在應用程序服務(wù)器與其客戶(hù)端之間來(lái)回穿梭(traveling)的信息不僅僅局限于簡(jiǎn)單的顯示標記。相反,這種信息就是程序邏輯(program logic)。 正是由于這種邏輯取得了(takes)數據和方法調用(calls)的形式而不是靜態(tài)HTML,所以客戶(hù)端才可以隨心所欲的使用這種被暴露的商業(yè)邏輯。
在大多數情形下,應用程序服務(wù)器是通過(guò)組件(component)的應用程序接口(API)把商業(yè)邏輯暴露(expose)(給客戶(hù)端應用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)應用程序服務(wù)器的EJB(Enterprise JavaBean)組件模型。此外,應用程序服務(wù)器可以管理自己的資源,例如看大門(mén)的工作(gate-keeping duties)包括安全(security),事務(wù)處理(transaction processing),資源池(resource pooling), 和消息(messaging)。就象Web服務(wù)器一樣,應用程序服務(wù)器配置了多種可擴展(scalability)和容錯(fault tolerance)技術(shù)。
2分析Web服務(wù)器的不同之處
一個(gè)例子
例如,設想一個(gè)在線(xiàn)商店(網(wǎng)站)提供實(shí)時(shí)定價(jià)(real-time pricing)和有效性(availability)信息。這個(gè)站點(diǎn)(site)很可能會(huì )提供一個(gè)表單(form)讓你來(lái)選擇產(chǎn)品。當你提交查詢(xún)(query)后,網(wǎng)站會(huì )進(jìn)行查找(lookup)并把結果內嵌在HTML頁(yè)面中返回。網(wǎng)站可以有很多種方式來(lái)實(shí)現這種功能。我要介紹一個(gè)不使用應用程序服務(wù)器的情景和一個(gè)使用應用程序服務(wù)器的情景。觀(guān)察一下這兩中情景的不同會(huì )有助于你了解應用程序服務(wù)器的功能。
情景1:不帶應用程序服務(wù)器的Web服務(wù)器
在此種情景下,一個(gè)Web服務(wù)器獨立提供在線(xiàn)商店的功能。Web服務(wù)器獲得你的請求(request),然后發(fā)送給服務(wù)器端(server-side)可以處理請求(request)的程序。此程序從數據庫或文本文件(flat file,譯者注:flat file是指沒(méi)有特殊格式的非二進(jìn)制的文件,如properties和XML文件等)中查找定價(jià)信息。一旦找到,服務(wù)器端(server-side)程序把結果信息表示成(formulate)HTML形式,最后Web服務(wù)器把會(huì )它發(fā)送到你的Web瀏覽器。
簡(jiǎn)而言之,Web服務(wù)器只是簡(jiǎn)單的通過(guò)響應(response)HTML頁(yè)面來(lái)處理HTTP請求(request)。
情景2:帶應用程序服務(wù)器的Web服務(wù)器
情景2和情景1相同的是Web服務(wù)器還是把響應(response)的產(chǎn)生委托(delegates)給腳本(譯者注:服務(wù)器端(server-side)程序)。然而,你可以把查找定價(jià)的商業(yè)邏輯(business logic)放到應用程序服務(wù)器上。由于這種變化,此腳本只是簡(jiǎn)單的調用應用程序服務(wù)器的查找服務(wù)(lookup service),而不是已經(jīng)知道如何查找數據然后表示為(formulate)一個(gè)響應(response)。 這時(shí)當該腳本程序產(chǎn)生HTML響應(response)時(shí)就可以使用該服務(wù)的返回結果了。
在此情景中,應用程序服務(wù)器提供(serves)了用于查詢(xún)產(chǎn)品的定價(jià)信息的商業(yè)邏輯。(服務(wù)器的)這種功能(functionality)沒(méi)有指出有關(guān)顯示和客戶(hù)端如何使用此信息的細節,相反客戶(hù)端和應用程序服務(wù)器只是來(lái)回傳送數據。當有客戶(hù)端調用應用程序服務(wù)器的查找服務(wù)(lookup service)時(shí),此服務(wù)只是簡(jiǎn)單的查找并返回結果給客戶(hù)端。
通過(guò)從響應產(chǎn)生(response-generating)HTML的代碼中分離出來(lái),在應用程序之中該定價(jià)(查找)邏輯的可重用性更強了。其他的客戶(hù)端,例如收款機,也可以調用同樣的服務(wù)(service)來(lái)作為一個(gè)店員給客戶(hù)結帳。相反,在情景1中的定價(jià)查找服務(wù)是不可重用的因為信息內嵌在HTML頁(yè)中了。
總而言之,在情景2的模型中,在Web服務(wù)器通過(guò)回應HTML頁(yè)面來(lái)處理HTTP請求(request),而應用程序服務(wù)器則是通過(guò)處理定價(jià)和有效性(availability)請求(request)來(lái)提供應用程序邏輯的。
警告(Caveats)
現在,XML Web Services已經(jīng)使應用程序服務(wù)器和Web服務(wù)器的界線(xiàn)混淆了。通過(guò)傳送一個(gè)XML有效載荷(payload)給服務(wù)器,Web服務(wù)器現在可以處理數據和響應(response)的能力與以前的應用程序服務(wù)器同樣多了。
另外,現在大多數應用程序服務(wù)器也包含了Web服務(wù)器,這就意味著(zhù)可以把Web服務(wù)器當作是應用程序服務(wù)器的一個(gè)子集(subset)。雖然應用程序服務(wù)器包含了Web服務(wù)器的功能,但是開(kāi)發(fā)者很少把應用程序服務(wù)器部署(deploy)成這種功能(capacity)(譯者注:這種功能是指既有應用程序服務(wù)器的功能又有Web服務(wù)器的功能)。相反,如果需要,他們通常會(huì )把Web服務(wù)器獨立配置,和應用程序服務(wù)器一前一后。這種功能的分離有助于提高性能(簡(jiǎn)單的Web請求(request)就不會(huì )影響應用程序服務(wù)器了),分開(kāi)配置(專(zhuān)門(mén)的Web服務(wù)器,集群(clustering)等等),而且給最佳產(chǎn)品的選取留有余地。
【W(wǎng)EB服務(wù)器與應用服務(wù)器有什么區別】相關(guān)文章:
J2EE應用服務(wù)器08-05
J2EE應用服務(wù)器集群08-11
J2EE應用服務(wù)器介紹09-29
J2EE應用服務(wù)器基本特色08-24
關(guān)于J2EE應用服務(wù)器集群簡(jiǎn)介08-20
有關(guān)web服務(wù)器硬件配置的進(jìn)階知識08-20
滑水和沖浪有什么區別10-26