Java中常見的服務器

Web服務器是運行及發佈Web應用的容器,只有將開發的Web項目放置到該容器中,才能使網絡中的所有用戶通過瀏覽器進行訪問。開發Java Web應用所採用的服務器主要是與JSP/Servlet兼容的Web服務器。

0x01:jetty

Jetty是一個開源的servlet容器,它為基於Java的web容器,例如JSP和servlet提供運行環境。Jetty是使用Java語言編寫的,它的API以一組JAR包的形式發佈。開發人員可以將Jetty容器實例化成一個對象,可以迅速為一些獨立運行(stand-alone)的Java應用提供網絡和web連接。在做基於Maven的Java項目開發時,常用Jetty來運行。

特點

  • 輕量級:Jetty體積小巧,佔用系統資源較少。
  • 易嵌入性:Jetty既可以像tomcat一樣獨立運行,也可以很方便的嵌入到工具、框架或其他應用服務器中運行。Jetty在設計之 初就是作為一個可以嵌入到其他的Java代碼中的servlet容器而設計的,因此開發小組將Jetty作為一組Jar文件提供出來,可以非常方便的在自 己的容器中將Jetty實例化成一個對象並操縱該容器對象。
  • 靈活性:Jetty的體系架構及其面向接口的設計實現了功能模塊高度可插拔和可擴展的特性,可以非常方便的根據需要來配置Jetty啟用的功能。
  • 穩定性:Jetty運行速度較快,即使有大量服務請求併發的情況下,系統性能也能保持在一個可以接受的狀態。

0x02:Tomcat

目前最為流行的Tomcat服務器是Apache-Jarkarta開源項目中的一個子項目,是一個小型、輕量級的支持JSP和Servlet 技術的Web服務器。Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 服務器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。

特點

  • 部署簡單:與傳統的桌面應用程序不同,Tomcat中的應用程序是一個WAR(WebArchive)文件。WAR是Sun提出的一種Web應用程序格式,與JAR類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織:只需將你的WAR放到Tomcat的Webapp目錄下,Tomcat會自動檢測到這個文件,並將其解壓。另外Tomcat也提供了一個應用管理器,通過這個應用,輔助於Ftp,可以在遠程通過Web部署和撤銷應用,當然本地也可以。可見一個Web應用在Tomcat中的部署與管理都是如此的簡單方便。Tomcat短小精悍,配置方便,能滿足實際的需求,這種情況下自然會選擇Tomcat。
  • 安全管理:Tomcat提供Realm支持。Realm類似於Unix裡面的group。在Unix中,一個group對應著系統的一定資源,某個group不能訪問不屬於它的資源。Tomcat用Realm將不同的運用(類似系統資源)賦給不同的用戶(類似group)。沒有權限的用戶則不能訪問這個應用。Tomcat提供三種Realm:JDBCRealm:這個Realm將用戶信息存在數據庫裡,通過JDBC獲得用戶信息來進行驗證; JNDIRealm:用戶信息存在基於LDAP的服務器裡,通過JNDI獲取用戶信息;MemoryRealm:用戶信息存在一個xml文件裡面,驗證用戶時即使用此種Realm。通過Realm可以方便地對訪問某個應用的客戶進行驗證。在Tomcat中,還可以利用Servlet2.3提供的事件監聽器功能,來對應用程序或者Session實行監聽,進行身份權限控制。Tomcat也提供其他的一些特徵,如與SSL集成到一塊,實現安全傳輸。
  • 易操作:基於Tomcat的開發其實主要是JSP和Servlet的開發,開發JSP和Servlet非常簡單,可以用普通的文本編輯器或者IDE,然後將其打包成WAR即可。這裡要提到另外一個工具Ant,Ant也是Jakarta中的一個子項目,它所實現的功能類似於Unix中的make。只需要寫一個build.xml文件,然後運行Ant就可以完成xml文件中定義的工作,這個工具對於一個大的應用來說非常好,只需在xml中寫很少的東西就可以將其編譯並打包成WAR。事實上,在很多應用服務器的發佈中都包含了Ant。另外,在JSP 1.2中,可以利用標籤庫實現Java代碼與HTML文件的分離,使JSP的維護更方便。
  • 集成方便:Tomcat也可以與其他一些軟件集成起來實現更多的功能。如與JBoss集成起來開發EJB,與Cocoon(Apache的另外一個項目)集成起來開發基於XML的應用,與OpenJMS集成起來開發JMS應用。除了提到的這幾種外,可以與Tomcat集成的軟件還有很多。 Tomcat目前已經被許多軟件集成,例如Eclipse、IDEA等IDE軟件,它們能夠方便地集成Tomcat的各種版本。這些IDE軟件在開發中能夠自由的配置指向Tomcat的安裝路徑,可以隨意選擇Tomcat的不同安裝版本,在開發環境中即可嵌入Tomcat運行環境,進行集成調試。這時的Tomcat就好比一個插件,即插即用,十分方便。

0x03:JBoss

JBoss是全世界開發者共同努力的成果,一個基於J2EE的開放源代碼的應用服務器。因為JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用它,而不用支付費用。2006年,Jboss公司被Redhat公司收購。JBoss是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3.0的規範。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。

特點

  • JBoss是免費的,開放源代碼J2EE的實現,通過LGPL許可證進行發佈。但同時也有閉源的,開源和閉源流入流出的不是同一途徑。
  • JBoss需要的內存和硬盤空間比較小。
  • 安裝便捷:解壓後,只需配置一些環境變量即可。
  • JBoss支持"熱部署",部署BEAN時,只拷貝BEAN的JAR文件到部署路徑下即可自動加載它;如果有改動,也會自動更新。
  • JBoss與Web服務器在同一個Java虛擬機中運行,Servlet調用EJB不經過網絡,從而大大提高運行效率,提升安全性能。
  • 用戶可以直接實施J2EE-EAR,而不是以前分別實施EJB-JAR和Web-WAR,非常方便。
  • Jboss支持集群。

0x04:WebSphere

WebSphere是IBM公司的產品,可進一步細分為 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基於Java 的應用環境,可以運行於 Sun Solaris、Windows NT 等多種操作系統平臺,用於建立、部署和管理Internet和Intranet Web應用程序。

特點

  • 基於Java和Servlets的Web應用程序運行環境,包含了為Web站點提供服務所需的一切,包括項目管理,連接數據庫,Java Servlet代碼生成器,beans和servlets開發工具,HTML編輯器,網站發佈等,為開發Servlets和Javabeans提供了多種嚮導。 WebSphere Performance Pack作為網絡優化管理工具,可以減少網絡服務器的擁擠現象,擴大容量,提高Web服務器性能。
  • 運 行 時 可 以 協 同 並 擴 展Apache、Netscape、 IIS 和IBM 的HTTPWeb服務器,因此可以成為強大的Web應用服務器。
  • 包含了eNetworkDispatcher、WebTrafficeExpress代理服務器和AFS分佈式文件系統,可以提供可伸縮的Web服務器環境。 其基本工作過程: 客戶發出請求後,由HttpServer將Servlet調用請求交給Application Server,由Application Server 和Java Servlet Engine 執 行 用 戶 調 用 的Servlet 進 行數據庫連接,將Sql請求 發送給數據庫進行處理。數據庫將結果返回Appliction Server。Servlet生成動態頁面後,將 處理結果交給HttpServer。HttpServer將頁面返回給用戶。 Websphere由於面向專業人員,要完全掌握有一定的難度。 另外,Websphere本身有2G多的容量,需要256M以上內存支持,系統要求很高。 如果有興趣可訪問ibm的software站點。

0x05: WebLogic 服務器

WebLogic 是BEA公司的產品,可進一步細分為 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特別強大。WebLogic 支持企業級的、多層次的和完全分佈式的Web應用,並且服務器的配置簡單、界面友好。對於那些正在尋求能夠提供Java平臺所擁有的一切應用服務器的用戶來說,WebLogic是一個十分理想的選擇。

特點

  • 標準:對業內多種標準的全面支持,包括EJB、JSP、JMS、JDBC、XML(標準通用標記語言的子集)和WML,使Web應用系統的實施更為簡單,並且保護了投資,同時也使基於標準的解決方案的開發更加簡便。
  • 可擴展性:WebLogic Server以其高擴展的架構體系聞名於業內,包括客戶機連接的共享、資源pooling以及動態網頁和EJB組件群集。
  • 快速開發:憑藉對EJB和JSP的支持,以及WebLogic Server 的Servlet組件架 構體系,可加速投放市場速度。這些開放性標準與WebGain Studio配合時,可簡化開發,並可發揮已有的技能,迅速部署應用系統。
  • 更趨靈活:WebLogic Server的特點是與領先數據庫、操作系統和Web服務器緊密集成。
  • 可靠性:其容錯、系統管理和安全性能已經在全球數以千計的關鍵任務環境中得以驗證。
  • 體系結構:WebLogic Server是專門為企業電子商務應用系統開發的。企業電子商務應用系統需要快速開發,並要求服務器端組件具有良好的靈活性和安全性,同時還要支持關鍵任務所必需的擴展、性能、和高可用性。WebLogic Server簡化了可移植及可擴展的應用系統的開發,併為其它應用 系統和系統提供了豐富的互操作性;憑藉其出色的群集技術,WebLogic Server擁有最高水平的可擴展 性和可用性。BEA WebLogic Server既實現了網頁群集,也實現了EJB組件 群集,而且不需要任何專門的硬件或操作系統支持。網頁群集可以實現透明的複製、負載平衡以及表示內容容錯,如Web購物車;組件群集則處理複雜的複製、負載平衡和EJB組件容錯,以及狀態對象(如EJB實體)的恢復;無論是網頁群集,還是組件群集,對於電子商務解決方案所要求的可擴展性和可用性都是至關重要的。共享的客戶機/服務器和數據庫連接以及數據緩存和EJB都增強了性能表現。這是其它Web應用系統所不具備的。

雖然J2EE容器眾多,但是一般的項目中Jetty和Tomcat使用的最多的容器。只要掌握這兩種容器的使用就已經能夠滿足日常的95%以上的需要。而WebSphere和WebLogic一般只有銀行系統才會使用到,小編在這麼長時間的工作中只偶爾一次機會接觸過WebLogic。


分享到:


相關文章: