web服務器、容器和中間件的區別

學習Java web技術時,總是容易被諸如web服務器、容器、中間件之類的概念弄混淆,導致理解上本來很清晰的思路一下變得模糊了,以下是通過網上搜索的資料整理的一份對這幾個概念的初步理解,便於後續深入的學習,相信只有對每一個概念進行了深入的學習和理解,模糊不清的東西才會變得清晰並最終融會貫通。

[x]中間件

提供系統軟件和應用軟件之間連接的軟件,以便於軟件各部件之間的溝通。中間件處在操作系統和更高一級應用程序之間。他充當的功能是:將應用程序運行環境與操作系統隔離,從而實現應用程序開發者不必為更多系統問題憂慮,而直接關注該應用程序在解決問題上的能力 。我們後面說到的容器的概念就是中間件的一種。

J2EE提出的背景:

1、企業級應用框架的需求:在許多企業級應用中,例如數據庫連接、郵件服務、事務處理等都是一些通用企業需求模塊,這些模塊如果每次再開發中都由開發人員來完成的話,將會造成開發週期長和代碼可靠性差等問題。於是許多大公司開發了自己的通用模塊服務。這些服務性的軟件系列統稱為中間件。

2、 為了通用必須要提出規範,不然無法達到通用:在上面的需求基礎之上,許多公司都開發了自己的中間件,但其與用戶的溝通都各有不同,從而導致用戶無法將各個公司不同的中間件組裝在一塊為自己服務。從而產生瓶頸。於是提出標準的概念。其實J2EE就是基於JAVA技術的一系列標準。

目前常見的中間件角色:

Apache的Tomcat、IBM公司的WebSphere、BEA公司的WebLogic、Kingdee公司的Apusic都屬於中間件。並且中間件技術已經不侷限於應用服務器、數據庫服務器。圍繞中間件,在商業中間件及信息化市場主要存在微軟陣營、Java陣營、開源陣營。

[x]容器

充當中間件的角色

WEB容器:給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,JSP容器和SERVLET容器。使JSP,SERVLET直接跟容器中的環境變量接口交互,不必關注其它系統問題。主要由WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規範中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行業領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規範的EJB放入該

容器,馬上就會被容器進行高效率的管理。並且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理。

WEB容器和EJB容器在原理上是大體相同的,更多的區別是被隔離的外界環境。WEB容器更多的是跟基於HTTP的請求打交道。而EJB容器不是。它是更多的跟數據庫、其它服務打交道。但他們都是把與外界的交互實現從而減輕應用程序的負擔。例如SERVLET不用關心HTTP的細節,直接引用環境變量session,request,response就行、EJB不用關心數據庫連接速度、各種事務控制,直接由容器來完成。

[x]web服務器(程序/軟件)

即:www服務器或http服務器。提供Web信息瀏覽服務。它只需支持HTTP協議、HTML文檔格式及URL。向瀏覽器提供服務的程序。

目前常見web服務器:

大型:Microsoft IIS、IBM WebSphere、BEA WebLogic、Apache、Tomcat

小型:nginx、 micro_httpd、mini_httpd、thttpd、 lighttpd、Shttpd


分享到:


相關文章: