淺析Tomcat、JBOSS、WebSphere、WebLogic、Apache

   

      做任何web項目,都離不開服務器,有錢的公司用WebSphere、WebLogic,沒錢公司用nginx+tomcat,不要小瞧nginx+tomcat麻雀雖小,五臟俱全。

      服務器的知識,在筆試、面試中會經常被問到,對於一個合格的程序員,在豐富自己的編程知識外,也要儘可能多的瞭解開發相關的知識來豐富自己。

      對於一個菜鳥的我來說,僅用過tomcat和Apache。而我在實際開發工作中,僅關注代碼一層,對於服務器的部署和調優知之甚少。因此,最近蒐集了市面上常用的5中J2EE應用服務器(Tomcat僅能稱得上是Servlet容器)的相關信息,不求研究得有多深入,但也略知一二。下面來總結一下Tomcat、JBOSS、WebSphere、WebLogic、Apache這五種應用服務器的優缺點。

      J2ee開發主要是瀏覽器和服務器進行交互的一種結構.邏輯都是在後臺進行處理,然後再把結果傳輸回給瀏覽器。可以看出服務器在這種架構是非常重要的。

      Tomcat:應用也算非常廣泛的web服務器,支持部分j2ee,免費,出自apache基金組織,支持Servletjsp 
     
JBoss:開源的應用服務器,比較受人喜愛,免費(文檔要收費)   
      Weblogic與Websphere:應該說算是業界第一的app  server,全部支持j2ee1.4,  對於開發者,有免費使用一年的許可證。

      Apache:全球應用最廣泛的http服務器,免費,出自apache基金組織,可以作爲web服務器使用。不過只支持靜態網頁,如(asp,php,cgi,jsp)等動態網頁無法支持。  

      TomcatJBOSSWebSphereWebLogicApache,都是web服務器,有什麼區別和聯繫呢?

    (一)Tomcat

Tomcat服務器是一個免費的開源的Web應用服務器,是Apache軟件基金會的Jakarta項目中的一個核心項目,由ApacheSun和其他一些公司及個人共同開發而成。由於有了Sun的參與和支持,最新的ServletJSP規範總是能在Tomcat中得到體現,Tomcat 5支持最新的Servlet2.4JSP 2.0規範。因爲Tomcat技術先進、性能穩定,運行時佔用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能;而且很重要的是她免費,因而深受Java愛好者的喜愛並得到了部分軟件開發商的認可,成爲目前比較流行的Web應用服務器。而且由於開源,它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。
   
  Tomcat 很受廣大程序員的喜歡,因爲它運行時佔用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。 
      Tomcat 是一個小型的輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認爲,當在一臺機器上配置好Apache 服務器,可利用它響應對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務器的擴展,但它是獨立運行的,所以當你運行tomcat 時,它實際上作爲一個與Apache 獨立的進程單獨運行的。 
      當配置正確時,Apache 爲HTML頁面服務,而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態HTML的能力不如Apache服務器。 
      Tomcat 最新版本是4.0x.4.0x與3.x的架構不同,而是重新設計的。Tomcat4.0x中採用了新的Servlet容器:Catalina,完整的實現了Servlet2.3和Jsp1.2規範。由於Java的跨平臺特性,基於Java的Tomcat也具有跨平臺性。 
      與傳統的桌面應用程序不同,Tomcat中的應用程序是一個WAR(Web Archive)文件。WAR是Sun提出的一種Web應用程序格式,與JAR類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織:通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會有一個WEB-INF目錄,這個目錄很重要。通常在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當然也可以放到系統的CLASSPATH中,但那樣移植和管理起來不方便。 
     在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,並將其解壓。你在瀏覽器中訪問這個應用的Jsp時,通常第一次會很慢,因爲Tomcat要將Jsp轉化爲Servlet文件,然後編譯。編譯以後,訪問將會很快。

     Tomcat不僅僅是一個Servlet容器,它也具有傳統的Web服務器的功能:處理Html頁面。但是與Apache相比,它的處理靜態Html的能力就不如Apache.我們可以將TomcatApache集成到一塊,讓Apache處理靜態Html,而Tomcat處理JspServlet.這種集成只需要修改一下ApacheTomcat的配置文件即可。 
    
Tomcat4中,你還可以利用Servlet2.3提供的事件監聽器功能,來對你的應用或者Session實行監聽。Tomcat也提供其它的一些特徵,如與SSL集成到一塊,實現安全傳輸。還有Tomcat也提供JNDI支持,這與那些J2EE應用服務器提供的是一致的。

    (二)JBoss

     一個基於J2EE的開放源代碼的應用服務器。因爲JBoss代碼遵循LGPL許可,你可以在任何商業應用中免費使用它,而不用支付費用。JBoss支持EJB 1.1EJB 2.0 EJB3.0的規範,它是一個管理EJB的容器和服務器。類似於Sun'sJ2SDK Enterprise EditionJ2EE),JBoss的目標是一個源代碼開放的J2EE環境。但是JBoss核心服務僅是提供EJB服務器。JBoss不包括serverlers/JSPpageWEB容器,當然可以和TomcatJetty綁定使用。 
JBoss
還具有如下六大優點: 
1
JBoss是免費的,開放源代碼J2EE的實現,它通過LGPL許可證進行發佈。 
2
JBoss需要的內存和硬盤空間比較小。 
3
、安裝非常簡單。先解壓縮JBoss打包文件再配置一些環境變量就可以了。 
4
JBoss能夠"熱部署",部署BEAN只是簡單拷貝BEANJAR文件到部署路徑下就可以了。如果沒有加載就加載它;如果已經加載了就卸載掉,然後LOAD這個新的。 
5
JBossWeb服務器在同一個Java虛擬機中運行,Servlet調用EJB不經過網絡,從而大大提高運行效率,提升安全性能。 
6
、用戶可以直接實施J2EE-EAR,而不是以前分別實施EJB-JARWeb-WAR,非常方便。 

    () WebLogic

     WebLogic是美國bea公司(目前被Oracle收購)出品的一個application server,確切的說是一個基於Javaee架構的中間件,純java開發的,最新版本WebLogic Server 9.0是迄今爲止發佈的最卓越的BEA應用服務器。BEAWebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和JavaEnterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。完全遵循J2EE 1.4規範。目前weblogic在世界application server市場上佔有最大的份額
     BEAWebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和JavaEnterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。 
     BEAWebLogic Server擁有處理關鍵Web應用系統問題所需的性能、可擴展性和高可用性。 
     與BEA WebLogic Commerce ServerTM配合使用, BEA WebLogic Server可爲部署適應性個性化電子商務應用系統提供完善的解決方案。 
     BEA WebLogic Server具有開發和部署關鍵任務電子商務Web應用系統所需的多種特色和優勢,包括: 
1)領先的標準 
    對業內多種標準的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web應用系統的實施更爲簡單,並且保護了投資,同時也使基於標準的解決方案的開發更加簡便。 
2)無限的可擴展性 
    BEA WebLogic Server以其高擴展的架構體系聞名於業內,包括客戶機連接的共享、資源pooling以及動態網頁和EJB組件羣集。 
3)快速開發 
    憑藉對EJB和JSP的支持,以及BEA WebLogic Server 的Servlet組件架構體系,可加速投放市場速度。這些開放性標準與WebGain Studio配合時,可簡化開發,並可發揮已有的技能,迅速部署應用系統。 
4)部署更趨靈活 
    BEA WebLogic Server的特點是與領先數據庫、操作系統和Web服務器緊密集成。 
5)關鍵任務可靠性 
    其容錯、系統管理和安全性能已經在全球數以千記的關鍵任務環境中得以驗證。 
6)體系結構 
    BEA WebLogic Server是專門爲企業電子商務應用系統開發的。企業電子商務應用系統需要快速開發,並要求服務器端組件具有良好的靈活性和安全性,同時還要支持關鍵任務所必需的擴展、性能、和高可用性。BEA WebLogic Server簡化了可移植及可擴展的應用系統的開發,併爲其它應用系統和系統提供了豐富的互操作性。 
    憑藉其出色的羣集技術,BEA WebLogic Server擁有最高水平的可擴展性和可用性。BEAWebLogic Server既實現了網頁羣集,也實現了EJB組件羣集,而且不需要任何專門的硬件或操作系統支持。網頁羣集可以實現透明的複製、負載平衡以及表示內容容錯,如Web購物車;組件羣集則處理複雜的複製、負載平衡和EJB組件容錯,以及狀態對象(如EJB實體)的恢復

     () WebSphere

     WebSphere IBM的集成軟件平臺。它包含了編寫、運行和監視全天候的工業強度的隨需應變 Web應用程序和跨平臺、跨產品解決方案所需要的整個中間件基礎設施,如服務器、服務和工具。WebSphere提供了可靠、靈活和健壯的集成軟件。(太貴了,瞭解不多)

    (五)Apache

     Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。在Apache基金會裏面Apache Server永遠會被賦予最大的支持。

    Apache支持靜態頁,Tomcat支持動態的,比如Servlet等,一般使用Apache+Tomcat的話,Apache只是作爲一個轉發,對JSP的處理是由Tomcat來處理的。

    Apache可以支持PHPcgiperl,但是要使用Java的話,你需要TomcatApache後臺支撐,將Java請求由Apache轉發給Tomcat處理。

     ApacheWeb服務器,Tomcat是應用(Java)服務器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認爲是Apache的擴展,但是可以獨立於Apache運行。

     Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)

     TomcatApache組織在符合Java EEJSPServlet標準下開發的一個JSP服務器.

     Apache是一個Web服務器環境程序,啓用他可以作爲Web服務器使用,不過只支持靜態網頁(ASP,PHP,CGI,JSP)等動態網頁的就不行。

     如果要在Apache環境下運行jsp的話就需要一個解釋器來執行jsp網頁,而這個jsp解釋器就是Tomcat, 爲什麼還要JDK呢?因爲jsp需要連接數據庫的話,就要jdk來提供連接數據庫的驅程,所以要運行jspweb服務器平臺就需要Apache+tomcat+JDK。整合的好處是:

    ◆如果客戶端請求的是靜態頁面,則只需要Apache服務器響應請求。

    ◆如果客戶端請求動態頁面,則是Tomcat服務器響應請求。

    ◆因爲JSP是服務器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷。

    Apache:側重於HTTPServer

    Tomcat:側重於Servlet引擎,如果以Standalone方式運行,功能上與Apache等效支持JSP,但對靜態網頁不太理想;

    ApacheWeb服務器,Tomcat是應用(Java)服務器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認爲是Apache的擴展,但是可以獨立於Apache運行。

    換句話說,Apache是一輛卡車,上面可以裝一些東西如Html等。但是不能裝水,要裝水必須要有容器(桶),而這個桶也可以不放在卡車上。



     Apache+Tomcat整合的好處是: 


    1)如果客戶端請求的是靜態頁面,則只需要Apache服務器響應請求;如果客戶端請求的是動態頁面,則讓Tomcat服務器響應請求 
    2
Apache的特點是簡單、速度快、性能穩定,並可做代理服務器來使用。本來它只用於小型或試驗Internet網絡,後來逐步擴充到各種Unix系統中,尤其對Linux的支持相當完美。Apache有多種產品,可以支持SSL技術,支持多個虛擬主機。Apache是以進程爲基礎的結構,進程要比線程消耗更多的系統開支,不太適合於多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充羣集節點而不是增加處理器。Apache成功之處主要在於它的源代碼開放、有一支開放的開發隊伍、支持跨平臺的應用(可以運行在幾乎所有的UnixWindowsLinux系統平臺上)以及它的可移植性等方面。 
  幾乎所有的Linux發佈都安裝Apache作爲默認配置。SuSE7.1甚至預安裝有包括各種高級模塊選項的Apache,如PHP3mod_perlLDAP等等。用戶會驚奇地發現系統安裝成功就會有一個功能強大的Web服務器可供選擇。雖然安裝Apache並不是非常簡單,但是如果有具有新的特性或安全補丁的Apache發佈,則下載源代碼包並編譯新的Apache是值得的。 
Apache不但具有龐大的用戶羣基礎,並且有豐富的配置使用文檔。Apache提供服務器端對腳本技術的支持,比如PerlPHP等,Apache結合使用Apache JServ可以實現對Java servletsJSP的支持。Apache的很多模塊實現安全方面的防護:如mod_auth提供對對服務器上數據進行適當的保護,而SSL模塊則用來保護服務器和客戶端之間的通信安全。 
  下面我們再介紹一下Tomcat服務器軟件,TomcatSunApache合作做出來的JSPServer,支持Servlet2.2JSP1.1等版本。筆者建議大家使用Tomcat,而且Tomcat未來將會取代JServ,成爲Apache主要的Servlet&JSPEngineTomcat在設計上是以獨立的Server執行,而不像Jserv是附在Apache,這樣就更可以發揮在servlet,HttpServlet的能力。TomcatJava程序,所以只要有JDK就可以使用,不需要考慮操作系統平臺。 

     相同點:

     五個服務器都是基於java的基礎架構來滿足實時處理需求,不同的版本與jdk版本兼容和有所不同;因爲都是要和前臺交互,所以他們都基於sun公司的servlet來實現的。

     不同點:

     1.應用服務器提供更多的J2EE特徵,如EJBJMSJAAS等,同時也支持JspServlet.Tomcat則功能沒有那麼強大,它不提供EJB等支持。但如果與JBoss(一個開源的應用服務器)集成到一塊,則可以實現J2EE的全部功能。

     2.事實上,我們的很多中小應用不需要採用EJB等技術,JspServlet已經足夠,這時如果用應用服務器就有些浪費了。而Tomcat短小精悍,配置方便,能滿足我們的需求,這種情況下我們自然會選擇Tomcat. 

     3.Tomcat也可以與其它一些軟件集成起來實現更多的功能。如與上面提到的JBoss集成起來開發EJB,與CocoonApache的另外一個項目)集成起來開發基於Xml的應用,與OpenJMS集成起來開發JMS應用
    
4.價位不同:

     JBossTomcat的是免費的。

     5.開源性不同:

     JBossTomcat的是完全開源的,而其他兩個不是。

     6.對技術的支持:

     Tomcat不支持EJBJBoss是實現了EJB容器,再集成了Tomcat

    JBossWebLogicWebSphere都含有JspServlet容器,也就可以做web容器。
    JBoss
WebLogicWebSphere也都包含EJB容器,是完整的J2EE應用服務器

    WebLogicWebSphere都是對業內多種標準的全面支持,包括EJBJSBJMSJDBCXMLWML,使Web應用系統的實施更爲簡單,並且保護了投資,同時也使基於標準的解決方案的開發更加簡便。 

    JBoss是實現了EJB容器,同時內嵌Tomcat,處理靜態頁面Jboss的速度要比較快,可以作應用服務器。

     7.擴展性的不同:

WebLogicWebSphere都是以其高擴展的架構體系聞名於業內,包括客戶機連接的共享、資源 pooling以及動態網頁和EJB組件羣集。

     8.WebLogic更加強大。weblogicj2ee的應用服務器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商業軟件裏排名第一的容器(JSPservletEJB等),並提供其他如JAVA編輯等工具,是一個綜合的開發及運行環境。

     WebLogic應該是J2EE Container(Web Container + EJB Container + XXX規範)

     Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只實現了JSP/Servlet的相關規範,不支持EJB(硬傷啊)!不過Tomcat配合jbossapache可以實現j2ee應用服務器功能

       一般來說考慮stucts等架構tomcat就可以了,但如果考慮EJB的話,WebLogic是比較好的選擇。

     9.WebLogic運行標準的java可能並不是最好的方式,WebLogic裏支持他自己的一些東西,這些東西雖然是在純java基礎上開發的,但其他工具裏都沒有。WebLogicServer憑藉其出色的羣集技術,擁有處理關鍵Web應用系統問題所需的性能、可擴展性和高可用性。

     WebLogic Server既實現了網頁羣集,也實現了EJB組件羣集,而且不需要任何專門的硬件或操作系統支持。網頁羣集可以實現透明的複製、負載平衡以及表示內容容錯

     無論是網頁羣集,還是組件羣集,對於電子商務解決方案所要求的可擴展性和可用性都是至關重要的。共享的客戶機/服務器和數據庫連接以及數據緩存和EJB都增強了性能表現。這是其它Web應用系統所不具備的

所以,在擴展性方面WebLogic是遠遠超越了Tomcat

     總之,在功能強大和擴展性和可用性等方面WLSTomcat好很多,但這也不能說明WLS適合每一方面,從Tomcat的使用流行度便可以看出,Tomcat雖功能有限,但也很受歡迎。其實關鍵看你要做什麼。

     Tomcat是免費開源的jsp,servlet引擎,入門級別的Web服務器,剛入門的IT人使用Tomcat簡單易上手。而且它一個輕量級應用服務器,最重要的是它免費,所以在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP程序的首選。Tomcat比較輕巧,消耗資源較少。當然,項目大的時候,WLS肯定再合適不過,而且Tomcat也無法滿足太多需求,但是,WLS的費用也是不可小覷的。

  

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章