原創(chuàng)|其它|編輯:郝浩|2009-03-10 15:41:25.000|閱讀 577 次
概述:在開(kāi)源Java應(yīng)用服務(wù)器領(lǐng)域,像JBoss、Tomcat及Apache的Geronimo,他們不僅僅是商業(yè)領(lǐng)域的領(lǐng)跑者,同時(shí)是技術(shù)領(lǐng)域的先行者。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在開(kāi)源Java應(yīng)用服務(wù)器領(lǐng)域,像JBoss、Tomcat及Apache的Geronimo,他們不僅僅是商業(yè)領(lǐng)域的領(lǐng)跑者,同時(shí)是技術(shù)領(lǐng)域 的先行者。當(dāng)然,所有的Java EE應(yīng)用服務(wù)器的實(shí)現(xiàn)不盡相同,但其很多方面具有一定程度的可比性。本文對(duì)JBoss4.2、Geronimo 2及Tomcat 6三種開(kāi)源的Java EE應(yīng)用服務(wù)器,就他們的特性、部署及性能等方面進(jìn)行一一比較。
一、前言
二、特性比較
表1就JBoss 4.2、Tomcat 6及Geronimo 2的特性進(jìn)行全面的比較。請(qǐng)注意,表中用到的“部分支持”表述,表明該應(yīng)用服務(wù)器并非完全的支持,需要安裝一些額外包。而其中的“原則上支持”表述,表明 該應(yīng)用服務(wù)器需要第三方的安裝包的支持。注:三種應(yīng)用服務(wù)器均在Linux、Solaris、Windows及Mac OS X上進(jìn)行過(guò)測(cè)試。
特性 |
JBoss 4.2 |
Geronimo 2 |
Tomcat 6 |
Java EE 5一致性 |
部分支持 |
完全支持 |
部分支持 |
支持EJB 3.0 |
支持 |
支持 |
原則上支持 |
JSP2.1和Servlet2.5 |
支持 |
支持 |
支持 |
JSF1.2 |
支持 |
支持 |
原則上支持 |
客戶化插件 |
支持 |
支持 |
不支持 |
業(yè)務(wù)規(guī)則引擎 |
原則上支持 |
原則上支持 |
原則上支持 |
Hibernate3.x |
支持 |
原則上支持 |
原則上支持 |
集群 |
支持 |
支持 |
部分支持 |
Eclipse IDE |
支持 |
支持 |
支持 |
表1.Java EE應(yīng)用服務(wù)器特性比較
當(dāng)讀者的應(yīng)用需要比較特殊的擴(kuò)展,或是想與Java EE 5最貼近時(shí),那么,Geronimo 2是最佳的開(kāi)源Java EE應(yīng)用服務(wù)器選擇。盡管JBoss 4.2與Sun的Java EE標(biāo)準(zhǔn)在實(shí)現(xiàn)上有一定的出入,但JBoss 4.2 team提供了許多與Java EE標(biāo)準(zhǔn)很符合的技術(shù),同時(shí)也擴(kuò)充了Java EE 5的標(biāo)準(zhǔn)范圍。而Tomcat 6本身就是一種輕量級(jí)的解決方案,所以它不并包括Java EE 5的所有特性,或是在JBoss及Geronimo中所提供的特性,但正是由于它的輕量級(jí),才使它對(duì)內(nèi)存的占有量比較少,并且比其它兩種服務(wù)器運(yùn)行起來(lái)更 快。
1.Java EE 5一致性
Sun公司的Java EE 5標(biāo)準(zhǔn)是一種行業(yè)標(biāo)準(zhǔn),而作為這種標(biāo)準(zhǔn)的實(shí)現(xiàn),開(kāi)源的Java EE 5應(yīng)用服務(wù)器應(yīng)該與其盡量的保持一致,因此Java EE 5的一致性是一個(gè)很重要的指標(biāo)。在這三種開(kāi)源的實(shí)現(xiàn)中,Geronimo是實(shí)現(xiàn)得最好,與Java EE 5標(biāo)準(zhǔn)最貼近的應(yīng)用服務(wù)器。JBoss 4.2支持絕大部分Java EE 5的特性,當(dāng)然,不久即將發(fā)布的JBoss 5將完全支持Java EE 5的所有特性。而Tomcat一般看成是JSP/servlet的容器,僅僅支持Java應(yīng)用服務(wù)器的基本特性。
2.支持EJB3
EJB(Enterprise JavaBeans)是指能在Java EE服務(wù)器部署的Java組件。它通常將一些業(yè)務(wù)功能打包成可重用的組件。新發(fā)布的EJB3提供了許多新功能,解決了舊版本中許多問(wèn)題。JBoss 4.2及Geronimo 2均支持EJB3。Tomcat 6本身并不支持EJB3,但Apache OpenEJB項(xiàng)目可以使Tomcat支持EJB3,據(jù)稱Tomcat可以運(yùn)行一種嵌入式的JBoss EJB3容器
3.支持JSP 2.1/Servlet2.5
對(duì)JSP/servlet的支持是絕大部分Java服務(wù)器應(yīng)提供的最基本功能。JSP2.1和Servlet2.5是Java EE 5對(duì)JSP/servlet的升級(jí)功能。JBoss 4.2、Geronimo 2及Tomcat 6均支持JSP/servlet這一特性。
4.支持JSF 1.2
JSF(Java Server Faces)是一種在Java EE應(yīng)用部署的組件式架構(gòu)。提供基本的Web開(kāi)發(fā)的用戶界面。與請(qǐng)求驅(qū)動(dòng)的MVC(Model-View-Controller)的架構(gòu)不同的是,JSF 采用了組件驅(qū)動(dòng)的模式。就目前的JSF1.2而言,JBoss 4.2及Geronimo 2都有很好的支持,而運(yùn)行在Tomcat 6時(shí)有不少的問(wèn)題待解決。
5.支持客戶化插件
客戶化插件支持,意味著可以在原有應(yīng)用服務(wù)器功能的基礎(chǔ)上,開(kāi)發(fā)新的功 能,并能很好的協(xié)同使用。在JBoss中使用MBeans(managed beans)來(lái)處理插件開(kāi)發(fā)。而Geronimo也采用類似的處理方式,只是名稱不一樣,叫GBeans。這些客戶的Beans為開(kāi)發(fā)及部署客戶資源時(shí), 提供一系列統(tǒng)一的接口。
6.支持業(yè)務(wù)規(guī)則引擎
7.支持Hibernate 3.x
Hibernate為 Java編程提供了強(qiáng)有力的關(guān)系/對(duì)象模型(ORM,Object-relational mapping)。Hibernate可以將面向?qū)ο蟮哪P陀成錇殛P(guān)系型數(shù)據(jù)庫(kù),這對(duì)Java開(kāi)發(fā)來(lái)說(shuō)是最有吸引力的。Hibernate作為一種開(kāi)源的 軟件,最早就是由于JBoss的一個(gè)團(tuán)隊(duì)所開(kāi)發(fā)(Gavin King)。當(dāng)然,JBoss 4.2、Geronimo 2及Tomcat 6均支持Hibernate 3。
8.支持JBoss Seam
JBoss Seam是一種著名的應(yīng)用框架,集成了眾多的Java及Web技術(shù),例如Ajax、JSF、Java Portlets、BPM(Business-process management)等技術(shù)。Seam是JBoss的項(xiàng)目,理所當(dāng)然,JBoss 4.2自然支持它,同樣Geronimo 2也支持JBoss Seam。據(jù)JBoss Seam的開(kāi)發(fā)團(tuán)隊(duì)稱,Tomcat可以通過(guò)使用JBoss嵌入式EJB 3容器來(lái)支持JBoss Seam。
9.支持集群
集群通過(guò)并行在多臺(tái)服務(wù)器運(yùn)行同樣的服務(wù),從而大大的提高應(yīng)用的吞吐量,達(dá)到所謂的高負(fù)荷的效果。由于采用了數(shù)臺(tái)服務(wù)器同時(shí)運(yùn)行,所以當(dāng)其中的某臺(tái)服務(wù) 暫時(shí)或死機(jī)時(shí),對(duì)客戶不會(huì)造成服務(wù)停止,從而達(dá)到業(yè)務(wù)的可持續(xù)。集群極大的提高了企業(yè)級(jí)的Java應(yīng)用的性能、吞吐量等能力。
JBoss 4.2、Geronimo 2及Tomcat 6均以同樣的方式來(lái)支持集群。JBoss在集群層使用及時(shí)復(fù)制的方式來(lái)達(dá)到集群的目的。而Geronimo所發(fā)布的集群,還處于測(cè)試階段,需要時(shí)間的考驗(yàn),如果有興趣,可以與Apache基金組織聯(lián)系。
10.支持Eclipse IDE
Eclipse是目前最流行的Java開(kāi)發(fā)工具,自然,與Eclipse的集成是眾多Java EE 5應(yīng)用服務(wù)器應(yīng)該提供的功能。JBoss、Geronimo及Tomcat均支持與Eclipse整合。特別地,JBoss還有自己的Eclipse版 本,稱為Red Hat Developer Studio,目前正處于測(cè)試的階段。利用Geronimo提供的工具,可以省去手工配置XML文件的煩瑣。同時(shí),數(shù)據(jù)庫(kù)連接池工具都可以自動(dòng)的下載所需 要的數(shù)據(jù)庫(kù)連接驅(qū)動(dòng)。
三、部署
這三種應(yīng)用服務(wù)器的安裝均十分簡(jiǎn)單。在相關(guān)的網(wǎng)站上下載zip或tar包進(jìn)行解壓,唯一需要配置的是設(shè)置JAVA_HOME環(huán)境變量(不過(guò)一般均有配置)。注意,在Linux/Unix系統(tǒng)下,需要先發(fā)送chmod命令。
1.Geronimo
對(duì)Geronimo 2來(lái)說(shuō),進(jìn)行配置及部署Java應(yīng)用程序非常的簡(jiǎn)單,特別是通過(guò)它提供的Web控制臺(tái)更加簡(jiǎn)單。Geronimo控制提供了許多簡(jiǎn)單的功能來(lái)幫助開(kāi)發(fā)人員進(jìn)行應(yīng)用程序的配置。可以進(jìn)行數(shù)據(jù)庫(kù)的連接池測(cè)試及安全設(shè)置或配置等。
圖片看不清楚?點(diǎn)擊圖片看大圖
2.JBoss
JBoss 4.2有非常漂亮的Web管理控制臺(tái),但它所提供的管理功能及特性與Geronimo不盡相同。首先看到的是JBoss的狀態(tài)及其監(jiān)測(cè)信息,但并沒(méi)有提供 部署功能。而部署Java應(yīng)用時(shí),只需要將它復(fù)制到default/deploy文件夾下面,JBoss會(huì)自動(dòng)的檢測(cè)到它并進(jìn)行相關(guān)的快速部署。當(dāng)然,也 可以通過(guò)修改配置jboss-service.xml來(lái)進(jìn)行客戶應(yīng)用程序所在目錄的映射。
圖2.JBoss控制臺(tái)
3.Tomcat
Tomcat 6不愧為一款快速的輕量級(jí)的應(yīng)用服務(wù)器。它的控制臺(tái)提供了基本的部署功能。可以通過(guò)Tomcat的控制臺(tái)進(jìn)行服務(wù)的啟動(dòng)/停止及WAR包的deploy/undeploy操作。當(dāng)然也提供了Tomcat的運(yùn)行狀態(tài)及監(jiān)測(cè)信息,同時(shí)有很好的用戶授權(quán)系統(tǒng)。
圖3.Tomcat控制臺(tái)
四、性能
就可靠性而言,性能應(yīng)該是所以的應(yīng)用服務(wù)器所應(yīng)該提供的最重要的特性。在本 文中,筆者做了一個(gè)小實(shí)驗(yàn),使用JSP頁(yè)面及編譯好的servlet來(lái)測(cè)試應(yīng)用服務(wù)器所能處理的用戶會(huì)話個(gè)數(shù)以及所能連接的用戶數(shù)量。當(dāng)然,實(shí)際的 Java應(yīng)用是更加復(fù)雜的,而本實(shí)驗(yàn)中的JSP頁(yè)面及servlet是比較簡(jiǎn)單的,主要用于測(cè)試Web應(yīng)用服務(wù)器的穩(wěn)定性、可靠性及速度。
使用的測(cè)試機(jī)器為:雙核-64位 CPU,4G的內(nèi)存,在實(shí)驗(yàn)中,讓第一種應(yīng)用服務(wù)器運(yùn)行到1200000個(gè)會(huì)話。當(dāng)然,這些會(huì)話不并是同時(shí)連接。
圖4.多Session測(cè)試JSP頁(yè)面結(jié)果
圖5.多Session測(cè)試servlet結(jié)果
測(cè)試所用的代碼量只有區(qū)區(qū)的幾百行,為了準(zhǔn)確起見(jiàn),筆者對(duì)三種服務(wù)器使用了相同之處的配置。當(dāng)然,如果采用實(shí)際的Java應(yīng)用程序來(lái)測(cè)試時(shí),所得到的數(shù)據(jù)結(jié)果圖會(huì)有一定的出入,但大概的趨勢(shì)會(huì)一致。
JBoss 4.2的表現(xiàn)不如Geronimo2,畢竟Geronimo 2所采用的實(shí)現(xiàn)技術(shù)及思想都是最新的。正如圖所示,Tomcat 6的性能最好,因?yàn)門omcat 6本身就是為JSP/servlet量身定做的Java EE 5應(yīng)用服務(wù)器。相比起JBoos或Geronimo需要20秒進(jìn)行啟動(dòng)的長(zhǎng)時(shí)間,Tomcat僅僅需要3秒鐘。
五、 小結(jié)
在本文中,筆者比較了主流的Java EE應(yīng)用服務(wù)器的特性、部署及性能方面的內(nèi)容,特性方面的比較應(yīng)該有利于讀者選擇更加適合自己項(xiàng)目的Java EE應(yīng)用服務(wù)器,做到有目的性的選擇服務(wù)器,從而達(dá)到適合的效果。
同時(shí),筆者測(cè)試比較了商用或開(kāi)源的Java應(yīng)用服務(wù)器,發(fā)現(xiàn)商業(yè)的Java應(yīng)用服務(wù)器不一定比開(kāi)源的好,反而在商業(yè)的應(yīng)用服務(wù)器(如Sun的Java應(yīng)用服務(wù)器或BEA的WebLogic)中的Bug比開(kāi)源的的應(yīng)用服務(wù)器更多些。
JBoss、Geronimo及Tomcat是快速可靠的可用于處理部署大規(guī)模的Java企業(yè)級(jí)應(yīng)用的服務(wù)器。特別值得一提的是,很多的高性能Java服務(wù)器技術(shù)都是從這些開(kāi)源的應(yīng)用服務(wù)器中總結(jié)與借鑒過(guò)來(lái),而不是從那些商業(yè)的應(yīng)用服務(wù)器中發(fā)展而來(lái)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:baidu博客