J2ee開發主要是瀏覽器和伺服器進行互動的一種結構.邏輯都是在後臺進行處理,然後再把結果傳輸回給瀏覽器。可以看出伺服器在這種架構是非常重要的。
這幾天接觸到兩種Java的web伺服器,做專案用的Tomcat,看視訊看的是WebLogic Server(WLS),都是web伺服器,有什麼區別和聯絡呢?
(一)先簡單介紹一下這兩種伺服器。
WebLogic是美國bea公司出品的一個application server,確切的說是一個基於Javaee架構的中介軟體,純java開發的,最新版本WebLogic Server 9.0是迄今為止釋出的最卓越的BEA應用伺服器。BEA WebLogic是用於開發、整合、部署和管理大型分散式Web應用、網路應用和資料庫應用的Java應用伺服器。將Java的動態功能和Java Enterprise標準的安全性引入大型網路應用的開發、整合、部署和管理之中。完全遵循J2EE 1.4規範。
Tomcat伺服器是一個免費的開源的Web 應用伺服器,是Apache 軟體基金會的Jakarta 專案中的一個核心專案,由Apache、Sun 和其他一些公司及個人共同開發而成。因為Tomcat 技術先進、效能穩定,執行時佔用的系統資源小,擴充套件性好,支援負載平衡與郵件服務等開發應用系統常用的功能;而且很重要的是她免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。而且由於開源,它還在不斷的改進和完善中,任何一個感興趣的程式設計師都可以更改它或在其中加入新的功能。
(二)相同點:
WebLogic和Tomcat都是基於java的基礎架構來滿足實時處理需求,不同的版本與jdk版本相容和有所不同;因為都是要和前臺互動,所以他們都基於sun公司的servlet來實現的。
(三)不同點:
功能性:
WebLogic更加強大。weblogic是j2ee的應用伺服器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商業軟體裡排名第一的容器(JSP、servlet、EJB等),並提供其他如JAVA編輯等工具,是一個綜合的開發及執行環境。
WebLogic應該是J2EE Container(Web Container + EJB Container + XXX規範)!
Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只實現了JSP/Servlet的相關規範,不支援EJB(硬傷啊)!不過Tomcat配合jboss和apache可以實現j2ee應用伺服器功能
一般來說考慮stucts等架構tomcat就可以了,但如果考慮EJB的話,WebLogic是比較好的選擇。
擴充套件性:
用WebLogic執行標準的java可能並不是最好的方式,WebLogic裡支援他自己的一些東西,這些東西雖然是在純java基礎上開發的,但其他工具裡都沒有。WebLogic Server憑藉其出色的群集技術,擁有處理關鍵Web應用系統問題所需的效能、可擴充套件性和高可用性。
WebLogic Server既實現了網頁群集,也實現了EJB元件 群集,而且不需要任何專門的硬體或作業系統支援。網頁群集可以實現透明的複製、負載平衡以及表示內容容錯 。
無論是網頁群集,還是元件群集,對於電子商務解決方案所要求的可擴充套件性和可用性都是至關重要的。共享的客戶機/伺服器和資料庫連線以及資料快取和EJB都增強了效能表現。這是其它Web應用系統所不具備的
所以,在擴充套件性方面WebLogic是遠遠超越了Tomcat。
費用上:
Tomcat開源免費。
WebLogic不開源不免費。
總之,在功能強大和擴充套件性和可用性等方面WLS比Tomcat好很多,但這也不能說明WLS適合每一方面,從Tomcat的使用流行度便可以看出,Tomcat雖功能有限,但也很受歡迎。其實關鍵看你要做什麼。
Tomcat 是免費開源的jsp,servlet引擎,入門級別的Web伺服器,剛入門的IT人使用Tomcat簡單易上手。而且它一個輕量級應用伺服器,最重要的是它免費,所以在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。Tomcat比較輕巧,消耗資源較少。當然,專案大的時候,WLS肯定再合適不過,而且Tomcat也無法滿足太多需求,但是,WLS的費用也是不可小覷的。
總之,關鍵看你做什麼,權衡利弊做選擇。
此外,還有其他J2EE Application Server,例如: IBM的websphere、Sun的Glassfish、resin等。Apache全球應用最廣泛的http伺服器,免費。同樣開源免費的JBoss, 國內廠商生產的還有像東方通的Tongweb、金蝶Apusic應用伺服器等。都是應用比較廣泛的。