天天看點

基于中間件的開發---應用伺服器技術

 應用伺服器技術

    Web 應用開發大緻經曆了三個階段。在第一階段,大家都使用 Web 伺服器提供的伺服器擴充接口,使用 C 或者 Perl 等語言進行開發,例如 CGI、API 等。這種方式可以讓開發者自由地處理各種不同的 Web 請求,動态地産生響應頁面,實作各種複雜的 Web 系統要求。但是,這種開發方式的主要問題是對開發者的素質要求很高,往往需要懂得底層的程式設計方法,了解 HTTP 協定,此外,這種系統的調試也相當困難。

    在第二階段,大家開始使用一些伺服器端的腳本語言進行開發,主要包括 ASP、PHP、Livewire 等。其實作方法實質上是在 Web 伺服器端放入一個通用的腳本語言解釋器,負責解釋各種不同的腳本語言檔案。這種方法的首要優點是簡化了開發流程,使 Web 系統的開發不再是計算機專業人員的工作。此外,由于這些語言普遍采用在 HTML 中嵌入腳本的方式,友善實際開發中的美工和程式設計人員的分段配合。對于某些語言,由于提供了多種平台下的解釋器,是以應用系統具有了一定意義上的跨平台性。但是,這種開發方式的主要問題是系統的可擴充性不夠好,系統一旦比較繁忙,就缺乏有效的手段進行擴充。此外,從一個挑剔者的眼光來看,這種方式不利于各種提高性能的算法的實施,不能提供高可用性的效果,內建效果也會比較差。

    為了解決這些問題,出現了一個新的 Web 應用開發方法,也就是應用伺服器的方式。目前,應用伺服器已經成為電子商務應用中一種非常關鍵的中間件技術。如今,各大主要軟體廠商紛紛将應用伺服器作為其電子商務平台的基礎,如 IBM 的 Websphere,Oracle 的 Internet 應用伺服器,Sybase 的 Enterprise 應用伺服器等。本節将闡述應用伺服器的概念、相關技術及發展方向,并就目前主流的應用伺服器産品進行簡單的介紹。

1 應用伺服器的概念

    應用伺服器是在當今 Internet 上企業級應用迅速發展、電子商務應用出現并快速膨脹的需求下産生的一種新技術,通過它能将一個企業的商務活動安全有效地實施到 Internet 上,實作電子商務。它并非一種傳統意義上的軟體,而是一個可以提供通過 Internet 來實施電子商務的平台。在分布式、多層結構及基于構件和伺服器端程式設計的企業級應用開發中,它提供的是一個開發、部署、運作和管理、維護的平台。它可以提供軟體“叢集” 的功能,因而可以讓多個不同的、異構伺服器協同工作、互相備份,以滿足企業級應用所需要的可用性、高性能、可靠性和可伸縮性等。

    故而,從某種意義上說,應用伺服器提供了一個“企業級應用的作業系統”。實作 J2EE規範的應用伺服器稱為 J2EE 應用伺服器。

    現代社會商機稍縱即逝,電子商務應用要求能很快地開發出功能強大的系統。應用伺服器可以幫助企業快速架構一個基Internet 的電子商務系統,而且擁有極高的穩定性、可擴充性和安全性。它能夠:

   (1)更合理地分工企業級應用開發,加快應用的開發速度,減少應用的開發量。應用伺服器将系統功能與業務功能分開,使得程式設計人員能夠集中精力在業務功能上,在系統内建立/部署的構件越來越多,并且為分布式架構的時候,系統功能必将變得越來越複雜;而與此同時,對可靠性(負載均衡、容錯和故障恢複)的需求也會越來越高。開發人員隻關注編碼業務方面的功能,對系統一級的功能并沒有多少興趣。因為系統級底層功能的實作,一般需要非常複雜的專業技能,是以對功能實作的合理分離可以允許技能的優化。

    在應用伺服器上開發采用的子產品化方法,提供了大量的可重用子產品。一個新的系統可以通過組合一些現成的架構和子產品,再加上一定的開發來快速完成。而新開發出的代碼又可作為今後重複利用的子產品,這一點對于降低開發成本,提高開發速度是非常重要的。

    另外,為了便于開發,有些應用伺服器還提供開發版的伺服器,以便進行各種調試工作。應用伺服器一般還提供內建開發環境,将本地編輯、上傳、項目管理和調試工具等集中在一起,使開發工作在一個界面内全部完成。還有一些開發環境同時提供背景系統的開發環境,以便同時進行開發管理。此外,還有一些産品内置一些代碼的自動生成器,資料庫設計輔助工具等,例如ORM(ObjectRelation Mapping,對象關系映射)等,這些都有效地提高了開發速度,減少了應用開發量。

    (2)應用設計、開發、部署、運作、管理、維護的平台。應用伺服器既是應用開發的平台,包括表示層、應用層和資料層的設計模式和程式設計環境;同時又是多層結構應用的部署、運作平台,對多層結構應用進行配置、啟動、監控、調整,并在開發的不同階段承擔不同的職責。

    設計:應用伺服器完成底層通信、服務,并屏蔽掉複雜的底層技術細節,向使用者提供結構簡單、功能完善的程式設計接口,讓使用者可以專心于商務邏輯的設計。

    開發:應用伺服器提供了完全開放的程式設計語言和應用接口,使用者可以用任何自己習慣的開發工具來工作。另外應用伺服器自己也提供快速開發的工具和手段,幫助使用者提高開發效率。

    部署:應用伺服器可以部署在任何硬體平台、任何作業系統上,而且可以分布在異構網絡中,應用伺服器幫助使用者在複雜的網絡環境中配置系統參數,使系統發揮最大的性能,擁有最好的穩定可靠性。

    運作:應用伺服器采用的是開放技術标準,它提供了一個完整的标準實作,即提供了系統的運作環境,任何基于同樣标準的系統都能很好地運作于這個環境中。在運作中提供應用系統的名字解析、路由選擇、負載平衡、事務控制等服務,并提供系統容錯、修複、遷移、更新擴充等功能。

    管理:應用伺服器讓使用者通過圖形化的界面友善地管理自己的資源,而且在系統運作時也能動态監控和管理。

    (3)使得應用與底層平台無關,便于商業邏輯的實作與擴充。一個好的應用伺服器通過提供對作業系統/資料庫平台的廣泛支援,或采用平台無關技術,如 J2EE,進而能夠做到讓應用獨立于作業系統/資料庫平台。顯然,它可以確定企業應用具備很好的移植性并保護了企業在應用和開發技能上的投資。

    另外一個方面,在激烈的市場競争條件下,企業的商業邏輯不可能一成不變,而随着生産經營的拓展,首先需要解決的一個問題就是将按需地對現有的業務系統,友善地進行擴充和更新。應用伺服器技術可以很好地解決這個問題,因為它采用了三層結構體系,應用伺服器将業務流程單獨作為一層,客戶可以根據自己的商業邏輯來專心設計這一層。應用伺服器能提供這種設計能力,當客戶業務擴充時,隻需專注于改進中間層的設計,原系統就能平滑友善地更新。

    (4)為企業應用提供現成的、穩定而強健的、靈活的、成熟的基礎架構。在建構電子商務應用的競争中,許多企業已經沒有時間去從容地“千錘百煉”一個電子商務架構體系。通過應用伺服器,立刻就可以擁有一個成熟的架構,包括基礎平台、标準、應用開發工具和預制構件。

    另外一方面,随着經濟全球化的步伐加快,許多企業的業務服務于全球,計算機業務系統需要提供 24 小時不間斷的服務,系統在大負荷量和長時間運轉情況下的穩定性至關重要。應用伺服器通過分布式體系來保障這一點,表現為:

  • 當系統處理能力不夠時,可以通過簡單地增加硬體來解決;
  • 動态調整不同主機間的負載可以最大地利用系統資源,同時提高單機的穩定性;
  • 當系統中的某台機器出現故障時,它的工作可由其他機器來承擔,不會影響系統整體的運作,即無單點故障。

    目前市面上的應用伺服器的解決方案基本都具備了這些作用,因而企業在選購應用伺服器産品的時候,不能簡單地判斷優劣,而需要先充分了解自己的需求到底是什麼,然後在各個主要技術問題上,确定适合自己的解決方案,最後尋找使用這些解決方案的産品來完成自己的系統。

2 主要的應用伺服器

    本節介紹五種主要的應用伺服器産品。

    1.BEA WebLogic

    BEA WebLogic 作為新一代基于 Java 的 Web 應用伺服器,是一款滿足 Web 站點對性能和可靠性要求很高的産品。在提供傳統的應用伺服器功能的同時,還針對當今的 Internet 技術和 Java 技術提供了衆多功能,它符合最新 Java 标準。安裝 WebLogic 非常容易。 

    WebLogic EJB Deployer Tool 提供了對管理多個 EJB.jar檔案和配置 WebLogic Server 部署特性和資源的控制。Deployer Tool 支援兩級 EJB 部署的合法性檢測,它自動地檢查特性和引用,以確定它們包含正确的值,并檢驗關鍵 EJB 所需的類是否符合 EJB1.1 規範。

    名為 WebLogic Zero Administration Client(ZAC)釋出向導的圖形實用程式使使用者可以建立、釋出和管理包括應用程式、小程式或 Java 代碼庫的軟體包。ZAC 使使用者可以開發用戶端Java 應用并将這些應用打包分發。

    2.IBM WebSphere

    IBM 的 WebSphere 強調其在應用開發(WebSphere Studio 和 VisualAge for Java)、資料庫(DB2)和消息服務(MQseries)的內建性。這些産品構成了該公司總體電子商務産品戰略的基礎。WebSphere 以對多種平台的支援和符合最新的 Java 标準,提供了開發電子商務應用的可靠平台。

    WebSphere 安裝簡單易行。對 WebSphere伺服器及它運作的應用的控制是在 WebSphere 進階管理控制台中執行的。由于WebSphere 可以運作多個伺服器,是以,使用者必須從控制台分别啟動每一個伺服器程序。如果必須重新開機系統的話,WebSphere 可以記住目前每個不同伺服器的狀态并自動地重新啟動運作的伺服器。

    IBM 提供了像 WebSphereStudio和 VisualAgeforJava 這類專為開發基于 Java 應用而設計的其他産品。WebSphere 的進階版和企業版在發送時附帶了 IBM 的 DB2 資料庫産品和 SecureWay 輕型目錄通路協定伺服器。企業版包括用于連接配接到外部資料庫、CICS、IMS 或 MQSeries 應用的一個構件代理應用擴充卡。

    3.SUN iPlanet

    作為 SUN 與 Netscape 聯盟産物的 iPlanet 公司生産的 iPlanet 應用伺服器滿足最新 J2EE 規範的要求,并通過了全套 J2EE 證書測試套件的測試。iPlanet 應用伺服器的基本核心服務包括事務監控器、多負載平衡選項、對叢集和故障轉移全面的支援、內建的 XML 解析器和可擴充格式底稿語言轉換(XLST)引擎,以及對國際化的全面支援。包括 Directory Server、Web Server 和用于EAI(Enterprise Application Integration,企業應用內建)的另一些附件在内的其他 iPlanet 産品之間實作了緊密的內建。

    IPlanet Application Deployment 工具是基于 Java 的程式,它可以指導使用者完成一個應用的部署過程。iAS 提供了一款與 WebGainStudio、InspireJBuilder、IBMVisualAge 及 Java企業版的SUNForte 這類第三方工具內建在一起的獨立産品 iPlanet Application Builder。

    4.Oracle Internet ApplicationServer

    毫無疑問,Oracle 公司的資料庫産品是多種平台上的市場領先産品,憑借這種得天獨厚的優勢,Oracle 的 Internet Application Server(iAS)與其餘 Oracle 産品實作了互相內建,例如,可以利用 Oracle iAS 向 Web 部署任何基于 OracleForms 應用的 Oracle Forms Service。

    Oracle 利用一些擴充的 ApacheWeb Server 作為進入 Oracle iAS 的入口點。iAS 管理器是配置和管理應用的工具,提供了綜合操作各種系統管理功能的統一界面。Oracle 為 Apache 開發了插件盒子產品來處理 Java 應用程式、Perl 程式、PL/SQL 程式及 SSL 上的安全網頁。插件盒子產品是一個共享庫,可以實作程式邏輯通路。插件盒子產品中可運作一個或多個插件盒執行個體,包括 PL/SQL 插件盒、Jweb 插件盒、LiveHTML 插件盒、Perl 插件盒、C 插件盒、ODBC 插件盒等。

    iAS 允許開發基于 CORBA 對象的應用,通信協定采用 IIOP。iAS 支援以下兩種應用模式:CORBA 應用和 EJB 應用。這兩種模式都允許不同的 CORBA 客戶通路。iAS 企業版配置了 Oracle Portal。Oracle Portal 提供了部署企業資訊使用者所需的工具。

    Oracle iAS 是該公司将應用推向 Web戰略的關鍵組成部分。Oracle 的客戶可以比較容易地将他們的 Oracle Forms 和 Oracle Reports 放到 Web 上運作。但是,Oracle iAS 價格也比較昂貴。

    5.Sybase Enterprise ApplicationServer

    Sybase Enterprise Application Serve(rEAServer)将 Sybase 的 JaguarCTS 和PowerDynamo緊密內建并加以發展,是同時實作 Web 聯機事務處理(WebOLTP)和動态資訊釋出的企業級應用伺服器平台。它對各種工業标準提供廣泛的支援,符合基于構件的多層架構,是支援所有主要構件模型的應用伺服器産品,并且在它的最新版本中加強了對 PowerBuilder 構件和 EJB 的深層支援。這樣,使用者可以運用它提供的靈活的開發能力,充分利用多樣化的計算環境,建立更加高效的企業 Web 應用系統。

    EAServer 支援多種構件模型,同一應用中可以結合使用各種構件,支援标準腳本語言和任意客戶類型,內建了 PowerSite 開發環境,使 Web 應用開發和送出友善快捷。除了優良的性能之外,EAServer 還支援多種資料庫通路方式,給使用者提供了可靠的安全性。

繼續閱讀