本文主要針對Java EE涉及的一些概念做一些整理。
-------------------------------------------------------------------------------
1.中間件
中間件是企業級開發中常用的術語,一聽貌似很難懂,不着急,我們就解決兩個問題:
為什么需要中間件?
什么是中間件?
早先企業級應用程序的體系結構為兩層體系結構,兩層體系結構分為客戶層與服務器層,即常常被提到的C/S模式。
在C/S模式中,客戶層幾乎包攬了除數據服務之外的其他所有職能,包括用戶交互、應用邏輯、數據訪問等,而服務器層僅提供數據服務。
明顯這樣的體系結構分工不合理嘛,存在的缺陷有n,這里列舉三點:
1.客戶端應用程序一般體積肥大,部署極其麻煩,業務需求稍有變更就得更新客戶層。
2.客戶端直接與數據庫交互,上來就直接剛,極不安全。
3.大量客戶端與數據庫服務器交互,服務器表示壓力山大。
啊?兩層不行就多加一層嘛。0.0簡單粗暴
於是於是,就有了三層體系結構應用程序,不要看到三層就說什么MVC啊,我只能說,你太天真了。
這里的三層體系結構,就是在前面的客戶層與數據庫服務層之間加了一層,應用服務器,主要用於實現應用邏輯、數據訪問。這樣客戶端就不能直接接觸到數據庫,安全性大大提高啦,又由於客戶端常是由計算機的瀏覽器扮演,所以客戶端的部署基本就不關應用程序什么事了。更有其他優點自己百度啦。
那么,重點來啦,在三層體系結構中,應用服務器層又被稱為“中間件服務器”或“中間件”。
當然,在后續的發展中人們又將中間件按應用邏輯划分為若干個子層,這樣就有了多層體系結構的應用程序。
(這里補充一點,所謂的體系結構,就是指應用程序中各個組件之間的組織方式)
2.Java EE
首先,JavaEE是一個標准中間件體系結構,說到底,J2EE就是一套規范中間件的標准,那么問題來了
為什么需要JavaEE這套標准呢?
JavaEE這套標准到底規范了些什么?
剛剛也提到了中間件為何存在,但是我們說的中間件這時候還是個抽象概念,像一個未被實例化的類,首先我們需要定義一個類,其次我們需要去實例化。
於是,我們也需要去定義“一個”中間件,其次我們才能去實現這個中間件。
任何人任何廠商都可以實現自己的中間件,自己搗鼓幾下,讓程序跑起來不就得了。
確實,在J2EE未被提出之前,存在幾家主要的中間件開發商各自為政,你整一套中間件我整一套中間件,互不兼容。
於是,J2EE出現了,J2EE就是為了統一中間件的開發標准而出現的。
典型的J2EE結構的應用程序包括四層:客戶層,表示邏輯層(web層),業務邏輯層和企業信息系統層。
J2EE定義了一些標准組件,如jsp,jsf,servlet,EJB等,這些組件運行在實現了J2EE標准的應用服務器上,如JBoss,Tomcat,Websphere,GlassFish等,同時也是J2EE中的“容器”。
組件運行在容器之中,容器由各個廠商根據J2EE標准各自實現,組件由程序員根據業務邏輯需求自行實現。這也是J2EE的一個“組件-容器”編程思想。
