應用服務(wù)器:選擇J2EE還是.NET?
(2002.04.23) 來(lái)自:Donews
(作者:中國科學(xué)院軟件研究所 范國闖 陳寧江)
目前在Internet/Intranet/Extranet環(huán)境中,企業(yè)級應用系統大多采用三層或多層應用模式。為了方便開(kāi)發(fā)、部署、運行和管理基于多層結構的應用,需要以網(wǎng)絡(luò )和分布式計算的底層技術(shù)為基礎,構建一個(gè)完整的應用框架,提供相應的支撐平臺作為多層應用的基礎設施,這一支撐平臺的關(guān)鍵就是位于中間層的應用服務(wù)器。應用服務(wù)器是一個(gè)創(chuàng )建、部署、運行、集成和維護多層分布式企業(yè)級應用的平臺。如果應用服務(wù)器與Web服務(wù)器相結合,或者包含了Web服務(wù)器的功能,則稱(chēng)之為Web應用服務(wù)器。
在企業(yè)應用中,應用服務(wù)器可以提供如下好處:提高企業(yè)應用開(kāi)發(fā)的有效性,保障業(yè)務(wù)邏輯和組件的重用性;提高企業(yè)應用的性能,如高運行性能和響應時(shí)間、可伸縮性、可靠性等;使企業(yè)應用更易于監控和管理,降低系統維護和升級成本。由于應用服務(wù)器的重要作用和關(guān)鍵地位,它已經(jīng)成為當今業(yè)界的一個(gè)熱點(diǎn)。
技術(shù)決定陣營(yíng)
從實(shí)現技術(shù)的角度看,可以將應用服務(wù)器劃分為基于J2EE的解決方案、Microsoft .NET解決方案和其他技術(shù)3大類(lèi)。
近年在應用服務(wù)器市場(chǎng)上最具意義的進(jìn)展,就是J2EE(Java 2 Platform Enterprise Edition)的出現。J2EE 是Sun公司提出的開(kāi)發(fā)、部署、運行和管理基于Java分布式應用的標準平臺。它以Java 2平臺標準版(J2SE)為基礎,繼承了標準版的許多優(yōu)點(diǎn),還提供了對EJB、Java Servlet、JSP等技術(shù)的全面支持。J2EE使用EJB Server作為商業(yè)組件的部署環(huán)境,在EJB Server中提供了分布式計算環(huán)境中組件需要的服務(wù),例如組件生命周期的管理、數據庫連接的管理、分布式事務(wù)的支持、組件的命名服務(wù)等。J2EE用于實(shí)現應用服務(wù)器有其優(yōu)勢,它可以利用Java語(yǔ)言自身具有的跨平臺性、可移植性、對象特性、內存管理等方面的性能,為應用服務(wù)器的實(shí)現提供一個(gè)完整的底層框架。J2EE中定義的各種服務(wù),包括JSP和Servlet容器、EJB容器、JDBC、JNDI(名字目錄服務(wù))、JTS/JTA(事務(wù)服務(wù))、JMS(消息服務(wù))等,也分別為應用服務(wù)器提供了各種支持。目前,基于J2EE的應用服務(wù)器主要有BEA WebLogic、IBM Websphere、Oracle 9iAS、Sun iPlanet、SilverStream eXtend等。
另一方面,微軟在應用服務(wù)器上的解決方案代表了另一種思路,可以說(shuō),選擇了微軟的應用服務(wù)器解決方案也就意味著(zhù)選擇了完全的微軟平臺。微軟的目標是分布式的Web應用開(kāi)發(fā)環(huán)境,它并沒(méi)有提供一個(gè)類(lèi)似通常所說(shuō)的應用服務(wù)器的軟件或軟件包,而是將Windows NT/2000看做其應用服務(wù)器的基礎,通過(guò)附加一系列具備中間件功能的軟件包來(lái)實(shí)現應用服務(wù)器平臺。目前,應用服務(wù)器的實(shí)現體現在微軟命名為.Net的Web應用開(kāi)發(fā)框架中。.NET戰略引入了許多新概念,包含了一些新的技術(shù),如Web Services和C#語(yǔ)言,但.NET在很大程度上是微軟以前開(kāi)發(fā)的企業(yè)級應用平臺DNA的重新包裝。微軟在.NET中提供了一系列企業(yè)級服務(wù)器,為部署、管理和建立基于XML和Web的應用構筑了.NET服務(wù)器結構,包括Application Center、BizTalk Server、Commerce Server、Exchange Server、SQL Server等,它們結合Windows平臺上的一系列開(kāi)發(fā)工具和技術(shù)(包括Visual Studio .NET、ASP .NET等),提供了強有力的應用服務(wù)器解決方案。
由于應用需求和技術(shù)的原因,尚有一些應用服務(wù)器使用其他語(yǔ)言和技術(shù)實(shí)現。Macromedia公司的ColdFusion服務(wù)器就是采用標記語(yǔ)言CFML(ColdFusion Markup Language)實(shí)現,使得熟悉HTML的開(kāi)發(fā)者能夠簡(jiǎn)單快速地進(jìn)行應用開(kāi)發(fā),在開(kāi)發(fā)的簡(jiǎn)單性和快速的生產(chǎn)力方面較有優(yōu)勢。ColdFusion的目標是致力于中小型的企業(yè)應用環(huán)境,但是它也具有高性能和良好的可靠性,在市場(chǎng)上仍能占有一定的份額。PHP是開(kāi)放源代碼的服務(wù)器端腳本語(yǔ)言,它為實(shí)現應用服務(wù)器提供了一種易于編程的實(shí)現手段,PHP應用服務(wù)器的代表有Midgard和PhpLens。Zope則是使用Python語(yǔ)言編寫(xiě)的開(kāi)放源碼應用服務(wù)器,它也為Web應用提供了完整的實(shí)現框架和手段。
選擇的標準
由于目前應用服務(wù)器產(chǎn)品的功能多樣,實(shí)現不盡相同,各自的描述和理解有所混淆。為了幫助企業(yè)選擇合適的應用服務(wù)器構建企業(yè)多層應用,快速實(shí)現企業(yè)信息化,筆者建議從應用服務(wù)器的基本特性和擴展特性?xún)蓚€(gè)方面來(lái)考察企業(yè)應用服務(wù)器。
基本特性是指應用服務(wù)器的實(shí)現應該包括的基本運行環(huán)境和支持標準:國際標準的兼容性,指對J2EE等標準的支持程度(.NET除外);操作系統,指支持應用服務(wù)器運行的操作系統平臺;Web服務(wù)器,指應用服務(wù)器對Web服務(wù)器的支持策略(如內置或集成)及Web服務(wù)器產(chǎn)品;數據層支持,指支持的數據庫連接標準(JDBC/ODBC)和數據庫產(chǎn)品;對象模型支持,指對主要分布式對象模型(EJB/CORBA/DCOM)的支持。
擴展特性描述了應用服務(wù)器為獲得高性能和競爭能力而需要提供的特性,主要包括:
可用性 指系統在預期的長(cháng)時(shí)間內可以進(jìn)行的持續性操作,保證和提高應用服務(wù)器的運行性能和可靠性。用于提供可用性的技術(shù)主要有負載均衡、失效恢復、緩存等。
可伸縮性 指用戶(hù)負載增加后,系統仍能維持同樣的響應時(shí)間。用于提供可伸縮性的技術(shù)主要是集群。(需要說(shuō)明的是,集群也可用于實(shí)現可用性)。
可管理性 指對應用服務(wù)器及部署在其上的應用進(jìn)行管理的能力,包括組件的部署能力、系統資源和性能的監控和調整能力等。
安全性 指保證應用和數據安全的特性,包括加密、訪(fǎng)問(wèn)控制、目錄服務(wù)、認證和授權等服務(wù)。
集成性 指應用服務(wù)器具有哪些與其他應用系統連接和集成的能力。
開(kāi)發(fā)有效性 指支持建立各層應用開(kāi)發(fā)的能力,用于幫助提高在應用服務(wù)器平臺上的開(kāi)發(fā)效率。
Web Services支持 Web Services是Internet上電子商務(wù)的標準,它允許企業(yè)應用通過(guò)標準的協(xié)議互相訪(fǎng)問(wèn),也被認為是下一代Inetrnet上企業(yè)應用的標準,所以應用服務(wù)器有支持Web Services的必要。
趨勢前瞻
在各種應用服務(wù)器的解決方案中,J2EE和微軟.net是兩大主流陣營(yíng),占據了絕大部分的市場(chǎng)。不過(guò)需要注意區別的是,.NET是一個(gè)產(chǎn)品套件,是產(chǎn)品戰略,而J2EE是編寫(xiě)產(chǎn)品時(shí)的標準,二者在能力上各有千秋。例如,在對已有系統的集成能力方面,J2EE要優(yōu)于.NET,它通過(guò)JCA(Java Connector API)可以更容易地將已有的企業(yè)應用進(jìn)行集成。微軟的解決方案則在Windows平臺上提供了一系列快速開(kāi)發(fā)和部署應用的工具,但由于微軟對Java的支持并不好,所以在一定程度上影響了其接受程度。J2EE的接受程度則較高,因為它定義了一個(gè)應用服務(wù)器在Java體系結構下的基本服務(wù)和能力的規范,為不同廠(chǎng)商的應用服務(wù)器產(chǎn)品的標準化提供了一條可行途徑。J2EE應用服務(wù)器可以使用戶(hù)在此標準下創(chuàng )建的應用程序都能運行于其上,更重要的是,在滿(mǎn)足J2EE兼容性的條件下,在不同的應用服務(wù)器上的應用組件可以很好地互操作,這樣可以降低移植的風(fēng)險和代價(jià),提高應用的靈活性,有助于保護用戶(hù)的投資。因此,許多應用服務(wù)器廠(chǎng)商已經(jīng)轉向采用J2EE標準,而且所實(shí)現的J2EE應用服務(wù)器在Windows平臺上也可以很好地工作。
雖然目前很難說(shuō)J2EE和.NET哪一個(gè)會(huì )在競爭中獲勝,但是可以肯定,采用J2EE應用服務(wù)器具有切實(shí)的可行性,擁有良好的前景,是應用服務(wù)器研究和開(kāi)發(fā)中的一個(gè)正確方向。
聯(lián)系客服