複製鏈接
請複製以下鏈接發送給好友

應用服務器

(通過各種協議把商業邏輯曝露給客户端的程序)

鎖定
應用服務器是指通過各種協議把商業邏輯曝露給客户端的程序。它提供了訪問商業邏輯的途徑以供客户端應用程序使用。應用服務器使用此商業邏輯就像調用對象的一個方法一樣。
中文名
應用服務器
提    供
訪問商業邏輯的途徑
實    現
動態網頁技術
分    類
靜態動態活動
屬    於
“瘦客户機”模式
服務器區別
應用服務器和WEB服務器

應用服務器定義

隨着Internet的發展壯大,“主機/終端”或“客户機/服務器”的傳統的應用系統模式已經不能適應新的環境,於是就產生了新的分佈式應用系統,相應地,新的開發模式也應運而生,即所謂的“瀏覽器/服務器”結構、“瘦客户機”模式。應用服務器便是一種實現這種模式核心技術。 [1] 
Web應用程序駐留在應用服務器(Application Server)上。應用服務器為Web應用程序提供一種簡單的和可管理的對系統資源的訪問機制。它也提供低級的服務,如HTTP協議的實現和數據庫連接管理。Servlet容器僅僅是應用服務器的一部分。除了Servlet容器外,應用服務器還可能提供其他的Java EE(Enterprise Edition)組件,如EJB容器,JNDI服務器以及JMS服務器等。
市場上可以得到多種應用服務器,其中包括Apache的Tomcat、IBM的WebSphere Application Server、Caucho Technology的Resin、Macromedia的JRun、NEC WebOTX Application Server、JBoss Application Server、Oracle(併購了BEA)的WebLogic等。其中有些如NEC WebOTX Application Server、WebLogic、WebSphere不僅僅是Servlet容器,它們也提供對EJB(Enterprise JavaBeans)、JMS(Java Message Service)以及其他Java EE技術的支持。每種類型的應用服務器都有自己的優點、侷限性和適用性。

應用服務器分類

通常,根據確定文檔內容的時間,所有文檔可以劃分為如下三類。

應用服務器靜態

靜態:靜態Web 文檔是一個存儲於Web服務器的文件。靜態文檔的作者在寫作的時候確定文檔的內容。由於文檔內容不會變化,所以對靜態文檔的每次訪問都返回相同結果。

應用服務器動態

動態:動態web文檔不是以一個預先定義的格式存在,而是在瀏覽器訪問web服務器時創建。當一個請求到達時,web服務器運行一個應用程序創建動態文檔(dynamic documents),服務器返回程序的輸出作為應答。由於每次訪問都要創建新的文檔,動態文檔的內容是變化的。

應用服務器活動

活動:一個活動文檔不完全由服務器一端説明,而是包括一個計算並顯示值的程序。當瀏覽器訪問活動文檔時,服務器返回一個瀏覽器可以本地執行的程序。當該程序運行時,它可以和用户交互執行並不停地改變顯示。這樣,活動文檔的內容是不固定的-只要用户讓程序保持運行,它總是在不停地變化。靜態文檔的主要優點在於它的簡單、可靠性和性能。由於靜態文檔是直接指定格式。它可以由不懂編程的人創建。更重要的是,在已經創建和測試之後,靜態文檔永遠是正確的。最後,瀏覽器可以快速存取文檔,同時通過把文檔放在本地盤上的緩衝區內以加快以後對這些文檔的訪問速度。 靜態文檔的主要缺點是不靈活-當信息變化時文檔必須重新設計。另外,改變是很耗費時間的,因為它需要人工修改文件。因此,靜態文檔不適合頻繁變化的報告信息。動態文檔的主要優點是它報告當前信息的能力。例如,一個動態文檔可以用來報告股市行情、天氣預報或音樂會售票情況等內容。當瀏覽器申請信息的時候,服務器運行一個應用程序,訪問所需要的信息,並創建一個文檔,服務器於是將該文檔返回給瀏覽器。動態文檔把任務放在服務器一端,瀏覽器採用和靜態文檔同樣的方法訪問動態文檔。實際上,從瀏覽器的角度來看。動態文檔和靜態文檔是無區別的。由於動態文檔和靜態文檔都採用H T M L 編寫,瀏覽器不知道服務器是從一個磁盤文件還是計算機程序中取得文檔。動態文檔的主要缺點是增加成本和不能顯示變化的信息。和靜態文檔類似,動態文檔在瀏覽器取得文檔後不會再改變。因此在信息發送給瀏覽器之後,文檔就開始過時。例如一個報告股市信息的動態文檔,由於股市信息變化迅速,當用户訪問時文檔很快就過時。動態文檔的創建和訪問成本比靜態文檔昂貴。創建動態文檔的代價較高,因為動態文檔的創建者必須懂得如何寫程序。另外,程序必須仔細編寫和廣泛測試,以保證輸出的合法性。驗證這樣一個程序的正確性是很困難的,因為輸入可以包含不同來源的多種數據。動態文檔除了創建成本高,所需的硬件成本也較高,因為服務器端需要更強大的計算機。最後取出動態文檔需要的時間稍多些,因為服務器需要額外的時間去運行程序創建文檔。儘管在申請到達時動態文檔才創建,但信息可能很快過時,活動文檔相對於動態文檔的主要優點在於它持續更改信息的能力。例如,只有活動文檔能夠快速改變顯示以顯示動畫。更重要的是,活動文檔能夠直接訪問信息源並連續更改顯示。例如,一個顯示股市行情的活動文檔可以連續讀取股市信息,並且不需要用户干預而自動修改顯示。活動文檔的主要缺點是創建和運行這種文檔所需的額外費用,同時缺少安全性。首先,活動文檔的顯示需要更復雜的瀏覽器軟件和一個強有力的計算機運行瀏覽器。另外,寫正確的活動文檔比寫其他畫面需要更多的編程技巧,所得到的結果文檔更難於測試。而且,由於活動文檔必須運行在客户端而不是服務器端,程序必須解決在不同客户上的兼容性問題,最後,活動文檔存在着潛在的安全性問題,因為文檔既輸入信息又輸出信息。

應用服務器概括

Web 文檔根據文檔內信息改變的時間可分為三類。靜態文檔的信息只有當作者修改時才會改變,動態文檔的信息在服務器端收到文檔申請時改變,活動文檔顯示的信息在文檔下載到瀏覽器一端運行後改變。由於創建動態文檔的責任在管理文檔的服務器一端,支持動態文檔也只需修改服務器。實際上,變化意味着擴展,管理動態文檔的服務器也包含了處理靜態文檔的代碼。處理動態文檔的Web服務器需要三個特性。
首先,服務器程序必須擴展,當每次請求到達時,能夠執行一個單獨的創建文檔的應用程序。服務器必須編成能夠捕獲應用程序的輸出,並且將該文檔返回給瀏覽器。
其次,必須為每個動態文檔寫一個單獨的應用程序。
最後,服務器必須配置成能夠知道哪一個URL 對應於動態文檔和哪一個URL 對應於靜態文檔。對每個動態文檔,配置時必須説明產生文檔的應用程序。每個申請包含着一個對應動態或靜態文檔的URL,服務器使用配置信息和收到的請求中的URL決定如何處理。如果配置信息説明申請中的URL對應着一個靜態文檔,服務器就跟往常一樣取出文件。如果申請中的URL對應着動態文檔,服務器選擇生成該文檔的應用程序,運行程序,並且把程序的輸出作為文檔返回給瀏覽器。

應用服務器區別

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

應用服務器Web型

Web服務器(Web Server)可以解析(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服務器是面向企業網絡用户的信息交流平台,WEB在企業生產管理過程中的應用越來越多,是信息化應用的入口,一些應用系統都集成在WEB服務器上。要知道,Web服務器的代理模型(delegation model)非常簡單。當一個請求(request)被送到Web服務器裏來時,它只單純的把請求(request)傳遞給可以很好的處理請求 (request)的程序(譯者注:服務器端腳本)。Web服務器僅僅提供一個可以執行服務器端(server-side)程序和返回(程序所產生的)響 應(response)的環境,而不會超出職能範圍。服務器端(server-side)程序通常具有事務處理(transaction processing),數據庫連接(database connectivity)和消息(messaging)等功能。 [2] 
雖然Web 服務器不支持事務處理或數據庫連接池,但它可以配置(employ)各種策略(strategies)來實現容錯性(fault tolerance)和可擴展性(scalability),例如負載平衡(load balancing),緩衝(caching)。集羣特徵(clustering-features)經常被誤認為僅僅是應用程序服務器專有的特徵。 [3] 

應用服務器應用程序型

應用程序服務器(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)技術。

應用服務器網元設備

IMS網絡是一個基於IP承載並向用户提供各項多媒體服務的開放系統, AS(Application Server,應用服務器),是IMS系統中位於最上層的應用層設備。AS網元與CSCF之間通過標準SIP協議進行交互,進而實現各種網絡業務的觸發和執行。
具體來説,IMS網絡中的應用服務器AS提供以下幾方面的業務應用:
  • 基本業務和補充業務
IMS網絡中的基本業務包括點到點的語音呼叫、視頻呼叫以及呼叫異常提示,點到點指呼叫可以是兩個IMS用户之間,也可以是IMS用户與其他網絡的用户,如PSTN固話用户、移動網GSM用户等;呼叫異常提示指在被叫忙、無應答、號碼空號、主叫欠費等各種條件下的語音和視頻呼叫,給主叫用户播放通知音;IMS網絡中提供的補充業務種類包括號碼顯示、呼叫轉移、呼叫限制、呼叫完成以及多方通話業務等。
  • 多媒體會議
多方通話是建立在至少三個用户之間的網絡應用,其中任意一個人的語音可以被會議中的所有其他人員聽到,多媒體會議在多方通話傳輸語音信息的基礎上,又提供了視頻圖像,從而使人們之間進行交互的媒體種類更加的豐富。
  • 融合通訊
提供用户在互聯網上的各類通訊方式和業務,比如即時消息(IM: Instant Message)、文件和視頻共享等。
除此之外,AS提供的業務功能還包括短信網關、標準話務台、羣業務等,極大地豐富了IMS網絡的各種應用。
參考資料