傳統的應用系統模式是“主機/終端”或“客戶機/服務器”,隨著Internet 的發展壯大 ,這些傳統模式已經不能適應新的環境,于是就產生了新的分布式應用系統,相應地, 新的開發模式也應運而生,即所謂的“瀏覽器/服務器”結構、“瘦客戶機”模式。如何 實現這種模式呢?應用服務器便是一種核心技術。據Forrester Research 預測,到2006年時,應用服務器的營業額將超過50億美元。既然有這么好的前景,那么到底何謂應用 服務器?它是如何分類的呢?它有什么樣的特點呢?本期技術特寫將向大家全面闡述應 用服務器的概念、分類、產生、發展以及應用服務器的代表性產品。
概念篇
目前應用服務器市場還是一個非常容易弄混的市場,有大約40家公司聲稱他們擁有應用 服務器產品,而每家提供的功能卻往往大相徑庭。所以,盡管今天有許多應用服務器可 供選擇——從知名的領先于市場的大公司到小型新興公司的產品,應有盡有,但這種技 術還沒有成為一種完全成熟的商品,所以選購者在在購買時難下決斷。 由于應用服務器是門新的技術,它的概念還尚未統一,它到底應該包含什么還是仁者見 仁,智者見智,但總體來說,應用服務器通過把用戶接口、商業邏輯和后端服務分割開 來,向開發者提供了一種創建、部署和維護企業規模的Web應用的模塊化方式,為要轉向 Web的用戶提供了高性能多線程的環境。它是一種支持多種工業標準的協議和界面引擎, 它支持的標準包括數據庫互聯標準ODBC和JDBC、CORBA、COM/DCOM、Enterprise JavaBe ans(EJB)對象模型等。 三層或N層分布式Web計算技術的發展導致了應用服務器技術的革新。在分布式三層環境 中,應用服務器駐留在中間層,夾在客戶器前端的用戶界面與后端的數據和企業應用之 間。 分布式多層體系結構要求應用服務器主要考慮三方面的技術。首先是開發環境,開發人 員需要 一種創建新組件、并將已有組件加以集成的開發環境。其次是應用程序的集成, 由于企業計算環境比較復雜,它綜合了傳統的應用程序和新型應用程序,因此開發人員 需要集成各種應用程序,以創建出更強大的應用。第三是應用程序的配置,由于典型的 Web 應用程序是分布式,其組件運行在不同的服務器上,并且有大量的用戶對其進行訪 問,因此需要配置平臺的支持,以便在用戶劇增時能有效地擴展,并保持系統的穩定。 這種分布式多層應用體系結構將會為企業帶來實際利益。首先,應用功能被分為幾個模 塊化部分,使應用的創建、修改和維護更加容易。其次,當業務邏輯從后端移向中層的 一般較便宜的硬件上時,就會帶來實際利益。這種體系結構的模塊化特征還使公司能實 施革新應用,從而改善業務流程,保持對競爭者的優勢。
分類篇
目前的應用服務器已根據功能劃分為獨立的類別,在購買時請檢查應用服務器所支持的 功能。 隨著應用服務器市場的發展,新的和合并的功能將會出現,但目前市場中主要有六種類 型:事務服務器、知識服務器、帶有集成開發工具的應用服務器、協作服務器、瘦服務 器和主機訪問服務器。 事務服務器包括從電子商務實施到處理幫助桌面或人力資源數據共享的部門服務器的種 種功能。事務服務器離商用功能還有很長一段距離。每種實施計劃都需要用戶進行努力 開發,因此,這些計劃成本仍在增加。 21世紀將會有大量需求事務部署。有鑒于此,帶有集成開發工具的事務服務器和應用服 務器正合并成一種能同時處理事務管理和開發需求的服務器。IBM、Oracle、微軟、Net scape、BEA和Sun等廠商在支持企業大型事務應用功能的同時,正在努力簡化自己的產品 的設計和開發。 知識服務器是一種更新的應用服務器,一般能從結構化和非結構化來源中搜集數據并編 索引。這些服務器通常具有HTTP支持、編索引功能和支持廣泛的數據和文件格式的檢查 和析取的工具。知識服務器還可以支持工作流和業務邏輯處理能力。 Lotus和Netscape等廠商正增加大量工作流,由于知識服務器支持工作流,因而,協作服 務器可能會與之合并,以改善公司的數據管理。這一領域的供貨商正在制定標準化協作 方面的協議,可能將提高使用不同的協作服務器的機構間的互操作性。這一協議有可能 大大使基于Web的商家對商家事務的集成更加容易。 帶有集成開發工具的應用服務器在激烈的競爭中走向成熟。該領域的供貨商正在為開發 和部署工具補充事務能力,創建一種更加完善的解決方案。 許多早期采用應用服務器技術的人士抱怨它缺乏足夠的開發工具支持。BEA/Weblogic、 Bluestone、Forte和SilverStream等供貨商在支持部署能力的同時大幅簡化了開發程序 。但是,這種服務器仍很復雜,應予以認真的分析對待。 瘦服務器是一類與眾不同的應用服務器。這些解決方案通常是支持HTTP及另外的具體功 能(如Web頁面緩存)的軟、硬件的組件。將來,它們可能與其它種類合并。 Cobalt等廠商推出了瘦服務器功能,當這種功能與另一種解決方案集成時,性能將超過 同類特征;這對某種關鍵功能的高度優化來說至關重要。 最近,主機訪問服務器已接近商用服務器。這些服務器管理著主機應用的訪問和表示, 通常是通過服務器管理的基于瀏覽器的5250或3270仿真對話進行管理。 IBM、Attachmate等添加了平臺支持、可管理性和客戶端自定義特征。下一代主機訪問服 務器可能將通過支持對主機數據更具客戶化的訪問與其它應用服務器合并。 在某些情況下,應用服務器可能會不受分類所限,支持不只一種服務。例如,SilverSt ream和Sybase所推出的應用服務器就有集成開發工具,同時還具備事務支持。將來,服 務器操作系統中也可能包含一種或多種功能。Solaris、OS/400、NetWare、Linux、Win dows和其它服務器操作系統已具備Web技術,預計將來還會添加更多的應用服務器功能。 其實,這種方式意味著把所有的雞蛋都放在一個籃子里。 在購買前對應用服務器作出評價并非易事。你必須衡量它是否滿足你的需求,關鍵是要 檢查部署能力和安全功能,評估可伸縮性和可靠性。最后,還要考慮到這種市場處于不 斷發展變化之中。
專家篇
應用服務器走向成熟 中國科學院軟件所 李淵明(lyming@public.east.cn.net) 應用服務器的由來 回顧軟件平臺的主要發展過程及趨勢,對于理解應用服務器的發展是非常有幫助的。軟 件發展的過程就是一個從舊平臺不斷向新平臺進化的過程。 每當一個新平臺出現的時候,都會有許多人首先開發出局部產品,每個產品可以滿足一 小部分的功能。隨著市場的發展成熟,會出現幾個主導公司,他們將許多局部產品的功 能綜合到他們的產品中,形成主導產品。關系數據庫市場就是一個很好的例子,一開始 有許多局部產品,如數據倉庫、對象存儲、全文檢索、事務處理、位圖索引等,現在這 些都已經包含在主導產品中了,如Orcale 8、Sybase Adaptive Server等。在客戶應用 中,一開始有各種各樣的小型軟件產品,分別用于文字處理、電子表格、圖文處理、郵 件處理、拼寫檢查、記事簿、活動安排等等,現在微軟、Lotus等已經將許多標準的辦公 功能集成到了一個單一的產品套裝中,成為主導產品,現在我們一般不再需要五花八門 的單一功能的辦公軟件產品了。 我認為Web市場和應用服務器市場也會如此。Web市場現在還處于百家爭鳴的時代,開發 一個Web系統往往需要六、七種工具,但往往還不湊手,需要時刻注意新的小工具的出現 ,包括網上查找、四處搜集,這些都可能是解決問題的素材。更大的難度是將所有這些 小工具集成到一起,因為這些小工具是各自獨立開發的,誰也沒有考慮集成的問題。不 象客戶機/服務器開發中,PowerBuilder、Delphi已全面集成了幾乎所有所需的功能,我 們只需專心開發。 現在,Web的主導產品已經出現,如SilverStream、NetDynamics、Bluestone等,他們全 面集成了開發所需的功能,包括集成開發環境、分層次開發機制、源代碼控制功能、安 全管理功能、加密功能、服務器集群(構造Cluster)能力、不間斷的失敗恢復能力、廣 泛的協議標準支持能力、廣泛的數據連接能力、事務處理能力、電子郵件處理能力、工 作流處理能力、觸發代理功能等,各項功能分工合理,和諧統一。這個市場正處于統一 的過程中。 隨著基于Web的瘦客戶機結構的發展,Web世界發生了巨大的變化,這種變化將Web開發和 傳統的IT開發聯系在一起。IT系統需要Web的規范界面,廣泛應用,方便維護,而Web系 統需要IT系統的規范化數據存儲、海量數據訪問、安全性及事務完整性保證。在這種情 況下,就需要一種新的產品將兩個平臺聯系到一起,在這種平臺上,各組織機構可以結 合這兩種技術進行開發。這種平臺,就是三層體系結構的中間層。 下一代的計算平臺已經很明顯是基于瘦客戶端和Web的計算了。支持Web和瘦客戶應用自 然就必須將更多的處理放到中間層去,中間層的重要性就是顯而易見的了。瘦客戶端就 需要一個肥服務器,不能兩者都瘦。而一般的Web服務器實在是太瘦了,因此需要我們費 很大力氣到處尋找營養來養肥它。應用服務器則是一個全面集成的肥服務器,本身就能 夠滿足我們大多數的需求。 應用服務器的發展過程 在基于Web和瘦客戶計算之前,我們可以看到一些局部產品具有中間層,如: 分布對象服務(ORB、OTM等) TP監視器,事務管理器等 連接產品,提供應用程序訪問歷史遺留數據、ERP應用、關系數據庫等 這些產品的一個突出特點是不能提供任何功能來支持用戶界面,就是所謂的表演性服務 。并且這些產品都是分立的專用產品。 基于Web的中間層服務——表演性服務器(PresentationServer) 從1994年開始,基于要創建動態交互式Web應用的想法,逐漸導出了一種新的中間層產品 思想:應用服務器思想。這種產品的第一代是簡單的Web服務器運行CGI程序,第二代產 品則致力于使開發和發布動態生成的HTML頁面變得容易。這一代產品的主要目的是提供 表演性功能,這種結構的主要缺點是業務邏輯是嵌在Web頁面的Script中的。這一代產品 的主要功能為: 表演性服務:動態HTML生成、狀態和會話管理 集成工具:服務器附帶有集成開發工具,用來幫助開發基于HTML的應用。 表演性服務器廠商著眼于擴充性及各種不同的數據源的連接性。如果你習慣于生成些Se rvlet及使用JDBC編寫組件,則這種服務器就可能引起你的興趣。代表性的服務器包括M icrosoft ASP、IBM WebSphere等,這些產品各不相同,大致來說,這些服務器注重幫助 開發者采用COM、EJB組件和Servlet等,并將其作裁減縮放。用戶可以使用自己喜歡的I DE生成組件,并裝入應用服務器中。因為HTML頁面生成是通過Servlet完成,因此用戶可 以使用服務器的Wizards來幫助創建頁面或使用任何HTMLIDE來生成Servlet。 基于事務處理的中間層服務——事務處理服務器(TransactionServer) 事務處理服務器是第三代應用服務器,第三代應用服務器有了長足的發展,具備了許多 新特性: 有限的分布對象服務 當開發者認識到將業務邏輯放到Web頁面的Script中的缺陷之后,便希望能將這部分邏輯 放到可重用的中間層對象中去。這一代服務器大多數支持通過RMI和CORBA訪問這些對象 。有些產品還支持COM對象。 連接服務 這一代產品加入了健壯的、服務器級的關系數據庫連接驅動程序,可以方便地訪問大多 數ERP應用和歷史遺留數據。 企業配置服務 如果要使電子商務站點支持大量的并發用戶訪問,可擴展性和可靠性就變得非常重要了 。負載平衡和失敗恢復功能是必不可少的,安全性和可管理性也是關鍵的功能。 Java客戶程序 基于Web的HTML應用可以滿足很多Internet用戶的需要,但對于Intranet上的用戶,他們 往往長時間地和同一個系統打交道,他們需要更為豐富、方便的用戶界面。這一點HTML 往往難以作到,而Java客戶可以方便地作到,而且不失瘦客戶計算的本質。 這種服務器主要用于事務處理性的應用,代表性的服務器包括:Oracle Application S erver,Microsoft MTS,BEA Weblogic,Gemstone,Sybase Jaguar等。但這類服務器不提供 豐富的基于WEB的用戶界面生成功能,即表演性服務器提供的那些功能。 綜合性中間層服務——綜合應用服務器 到現在為止,我們已經看到了Web應用服務器和事務處理服務器,這兩種服務器都有缺點 ,以SilverStream、Bluestone為代表的新一代應用服務器是這兩種服務器的結合。它不 僅具備事務處理能力,還具備表演性服務能力,并且還包括集成的開發工具。這是一種 集成完美的開發環境,是一種將開發、應用、表演、事務捆綁在一起的應用服務器。利 用它,開發者能很快建立和使用Web應用。其著重點是在優美的環境下高度交互式地進行 開發。這一代產品具備的功能包括: 表演性服務、分布式對象服務、分布式事務服務、應用服務、連接服務、企業配置服務 、集成開發工具以及對第三方開發工具的開放性。 應用服務器的發展方向 由上述發展狀況,筆者認為,應用服務器是朝著集成、擴展的方向發展的,正如關系數 據庫和辦公軟件的發展一樣。一方面,應用服務器會集成越來越多的功能,不管是應用 服務器廠家自己開發的,還是從第三方廠家買來的,對用戶來說是一個和諧的整體。另 一方面,應用服務器會向著多方兼容和中立的方向發展,包括: 跨平臺能力:UNIX、NT等 跨數據庫能力:Oracle、DB/2、Microsoft SQLServer、Sybase、Informix等 跨分布式對象標準能力:CORBA、DCOM、EJB、RMI等 兼容多種應用和歷史遺留數據的能力:SAP、Peoplesoft、Lotus Notes、CICS、MQ、Tu xedo等 應用服務器市場是一個快速發展的市場,在過去的一年里得到了飛快的發展,在今后的 一到兩年里還會有激烈的競爭。盡管現在還沒有統一,但用戶對該技術的需求已比較明 朗,統一的趨勢已經非常明顯,它正在逐漸走向成熟。
產品篇
盡管應用服務器的市場還相當稚嫩,但它的發展相當迅猛,除了有一些新興廠商之外, 很多著名的廠商紛紛進入這一領域,包括IBM、微軟、SUN、Oracle等。以下便是幾種有 代表性的應用服務器產品,希望讀者能從中更加深入地了解應用服務器。 BEA WebLogic BEA WebLogic產品系列包括可單獨使用或結合使用的適用于各種規模企業的一系列應用 服務器解決方案: BEA WebLogic Enterprise是高可伸縮、高可用、支持企業Java標準和CORBA且具有主機 互操作性的企業應用服務器,是運行關鍵任務Web應用的擴展型WebLogic組件中間件系列 的旗艦產品。BEA WebLogic Enterprise能夠幫助大型企業將其Web和Java應用與現有臺 式機應用、企業數據和原有系統集成起來。 BEA WebLogic Server是BEA Web應用服務器的旗艦產品,為用戶提供了一個可伸縮、滿 足企業Java標準的應用服務器。BEA WebLogic Server通過支持建立在網絡上互聯的Jav a應用程序而對BEA WebLogic Express進行擴展。BEA WebLogic Server是第一個提供EJ B組件、Java消息傳遞和事件服務、微軟COM集成以及零管理客戶機的Web應用服務器。 BEA WebLogic Express為用戶提供了一個入門級Web應用服務器。使用BEA WebLogic Ex press能夠生成動態Web頁面并放入數據庫查詢結果。Web表示邏輯由企業Java Servlets 以及Java Server Pages定義,關系型數據則通過BEA的Java數據庫連接(JDBC)解決方案 實現。BEA WebLogic Express支持HTML和Java客戶機。 IBM WebSphere Application Server IBM WebSphere Application Server是一個完善的、開放的Web應用服務器。它是IBM電 子商務應用架構的核心。WebSphere應用服務器嚴格地遵循普遍流行的開放標準,如HTT P、HTML、JSP、JNDI和IIOP。 WebSphere應用服務器基于Java Servlet引擎,將通常的Web服務器(如Apache Server, Microsoft IIS,Netsacpe Enterprise Server和Lotus Domino Go WebServer)增強為基 于Java的Web應用服務器。作為IBM電子商務應用架構的核心,WebSphere應用服務器提供 了無限的擴展性,允許用戶利用IBM或其它廠商提供的Java技術擴展其運行環境。 WebSphere應用服務器滿足維護一個Web站點的任何需求:簡單安裝,圖形用戶界面(方便 Servlet管理),基于Web的遠程管理和安全特性。它支持標準的Java Servlet(包括Java Server Page scripts),并增強其服務,例如會話狀態,用戶描述文件,通過連接管理器 (連接緩沖區)實現高性能的數據庫訪問。利用IBM Connector系列,實現與后臺系統(CI CS,IMS,MQSeries)的連接。WebSphere應用服務器支持Enterprise Java Beans(EJB)編 程模型及CORBA。聯合Enterprise Java Server(EJS)和一個Java Object Request Brok er(ORB),可以通過IIOP訪問分布的對象,利用這個標準的、廣泛的編程模型,可在您的 Web應用中實現對各種商業對象的訪問和運行服務。 Microsoft Transaction Server Microsoft Transaction Server (MTS) 2.0是 Windows NT 的一個重要特性,它采用Mi crosoft 組件對象模型 (COM) 技術,簡化以服務器為中心的應用程序的開發和配置。M TS 2.0 是在Windows NT 上構建和配置基于COM 的應用程序的最簡便的方法。MTS 完全 分成三層結構,從表示層到應用邏輯, 這使 MTS 開發人員在構造他們的應用程序時,就 象收集一組單用戶COM 組件,然后在相應的層設置這些組件一樣。 MTS 2.0 提供全面的組件功能,如自動事務支持、簡單但強大的基于角色的安全性、訪 問各種數據庫及消息隊列產品等。 IIS(Microsoft Internet InformationServer)與 MTS 2.0 集成 ,使用MTS 進行許多運 行時刻服務,如事務管理。事務支持使 IIS Active Server Pages能夠在數據完整性的 完全保護下訪問數據庫、主機應用程序和消息隊列。MTS集成還給IIS 提供進程來防止單 個故障影響Web站點的其它部分,增強的運行時刻服務如線程和連接池提高了性能,并簡化 了組件管理。MTS 2.0 與MSMQ(Microsoft Message Queue Server)的集成使基于 MTS 的 應用程序能夠以可靠、松散耦合的方式通信。MSMQ 操作 (如發送和接收)自動得益于MT S事務以保護數據完整。MTS 2.0 與 Microsoft SNA Server 4.0 的集成有助于主機應用 程序的構建及相應的事務管理。 Oracle Application Server Oracle應用服務器提供了一個開放的標準架構,是開發部署Web上的應用的理想平臺。它 的伸縮性、分布架構和高度數據庫集成是支持關鍵事務,交易型應用的基礎,通過采用 Netscape和Microsoft HTTP服務器,提供了易于使用的界面,并為Oracle方案提供了簡 易的升級方法。 以符合CORBA2.0標準的ORB為基礎,Oracle Application Server將應用程序插件(Appli cation Cartridge)與所有系統服務作為分布對象。這樣的設計使應用處理能被分散于數 部主機,有效而經濟地解決性能瓶頸。與其它Web解決方案比較起來,Oracle Applicat ion Server架構本身即保證其可擴展性。 Oracle Application Server是聯系數據網絡應用程序和數據庫最簡單的方法。內含的P L/SQL插件(PL/SQL Cartridge)使出版數據庫內的資料非常快速而簡單。當企業需出版動 態資料訊息時,傳統進行靜態內容設計的Web服務器需撰寫單調且困難的腳本,Oracle Application Server的應用程序插件將使這些工作變得毫無需要。集成各種類型數據庫 、舊型主機系統(legacy system)與網絡運算、瘦客戶端時,Oracle Application Serv er的表現尤其杰出。 以對所有網絡客戶端提供跨平臺支持為基礎,Oracle Application Server提高對HTML、 Java、CORBA、DCOM等各種組件模型提供的易于擴展的能力。 SilverStream SilverStream是一個全面的集成產品。它既包含了高性能的應用服務器,又包含了高效 的開發環境。在統一的界面中,既支持HTML開發,又支持Java開發;既支持一般數據, 又支持多媒體數據。特別是,許多服務器基于對Web的擴充,而SilverStream則基于對標 準的完整集成。它使用HTTP1.1進行客戶通訊,SMTP/POP3進行郵件操作,JNDI/LDAP和X .509進行認證,SSL3.0進行加密,SNMP進行系統管理,CORBA,RMI和COM和遠程對象通訊 ,JDBC/ODBC用于數據存取。 SilverStream具有完整的集成開發環境——可視化、事件驅動工具和單一且一致的界面 。所以無論你是構造數據驅動的HTML網頁、Java應用程序或事物對象,利用SilverStre am提供的豐富的函數,都能快速、方便的實現。 用戶可以使用SilverStream管理控制臺來管理和監控任何事情,這包括安全性、服務器 統計數據、均衡負載能力、數據庫、電子郵件等等,或者通過SilverStream管理應用編程 接口,創建自己的管理應用程序。這無疑給用戶提供了很大的靈活性。 SilverStream可連接的數據源非常廣泛,不管是存儲在關系數據庫中,還是存儲在IBM主 機中,不管是您自己開發的系統,還是SAP、Notes、CICS、Peopsoft,都可以統一在Si lverStream中。 SilverStream為獲取最大的吞吐量和均衡性作了優化,而并未犧牲其他性能。它的應用 級觸發器技術,使得推技術的應用簡單而自然。 Sybase Enterprise Application Server Sybase Enterprise Application Server 3.0(EA Server)是Sybase Internet應用開 發包Enterprise Application Studio 3.0中的重要組成部分,它將Sybase 的組件事務 處理服務器Jaguar CTS 和Web 應用服務器PowerDynamo 緊密集成并加以發展,是同時實 現Web OLTP 和動態信息發布的企業級應用服務器平臺,并且支持所有標準的組件模型, 包括JavaBeans、COM和CORBA等。 Jaguar CTS支持基于各種組件模式和客戶類型的應用的迅速開發和提交,而PowerDynam o 支持標準的Web技術,二者的聯合對于要求動態頁面服務、基于組件的業務邏輯和事務 處理的Web 應用非常有利。PowerDynamo 的模板和腳本語言能夠處理任何數據和業務邏 輯,并按客戶端需求生成相應的HTML 頁面,送往Web 服務器,它通過嵌入在模板中的SQ L 指令訪問數據,通過調用Jaguar CTS 組件的方法訪問復雜的業務邏輯。 EA Server 可以支持多種客戶類型。客戶端可以用HTML、Java、ActiveX、PowerBuider 等工具開發或是它們中幾種工具組合開發。原有的應用程序可以完美地被移植到新的應 用環境中,使得客戶端應用可以根據它們的實現特征選擇合適的開發工具。


