什麼是J2EE

J2EE: 電子商務和信息技術的快速發展以及對它們的需求給應用程序開發人員帶來了新的壓力。必須以比以前更少的金錢、更少的資源來更快地設計、開發企業應用程序。爲了降低成本,並加快企業應用程序的設計和開發, J2EE 平臺提供了一個基於組件的方法,來設計、開發、裝配及部署企業應用程序。J2EE 平臺提供了多層的分佈式的應用模型、組件再用、一致化的安全模型以及靈活的事務控制。您不僅可以用比以前更快的速度向市場推出創造性的客戶解決方案,而且您的平臺灣搞獨立立的、基於組件的J2EE 解決方案不會被束縛在任何一個廠商的產品和API 上。

什麼是J2EE

1. J2EE 規範定義了以下種類的組件

應用客戶組件。

Enterprise JavaBeans 組件。

Servlet及JavaServer Pages(JSP 頁面)組件(也被稱作Web 組件)。

Applet。

一個多層的分佈式的應用模型意味着應用邏輯被根據功能劃分成組件,並且可以在同一個

服務器或不同的服務器上安裝組成J2EE 應用的這些不同的組件。一個應用組件應被安裝在什麼

地方,取決於該應用組件屬於該多層的J2EE 環境中的哪一層。這些層是客戶層、We b層、業務

層及企業信息系統層( EIS )等。

(1) 客戶層

J2EE 應用可以是基於Web 的,也可以是不基於Web 的。在一個基於Web 的J2EE 應用中,用戶的瀏覽器在客戶層中運行,並從一個We b服務器下載Web 層中的靜態HTML 頁面或由J S P或Servlet 生成的動態HTML 頁面。在一個不基於Web 的J2EE 應用程序中,一個獨立客戶程序不運行在一個HTML 頁面中,而是運行在其他一些基於網絡的系統(比如手持設備或汽車電話)中,Applet 程序,在客戶層中運行,並在不經過Web 層的情況下訪問Enterprise Beans。這個不基於Web 的客戶層可能也包括一個JavaBeans 類來管理用戶輸入,並將該輸入發送到在企業層中運行的Enterprise Beans類來進行處理。根據J2EE 規範,JavaBeans 類不被視爲組件。爲J2EE 平臺編寫的JavaBeans 類有實例變量和用於訪問實例變量中的數據的“ get 和set 方法”。以這種方式使用的JavaBeans 類在設計和實現上通常都是簡單的,但是它們必須符合JavaBeans 規範中列出的命名和設計約定。

(2) Web 層

J2EE Web 組件可以由JSP 頁面、基於Web 的A p p l e t以及顯示HTML 頁面的S e r v l e t組成。調用S e r v l e t或者JSP 頁面的HTML 頁面在應用程序組裝時與Web 組件打包在一起。就像客戶層一樣,Web 層可能包括一個JavaBeans 類來管理用戶輸入,並將輸入發送到在業務層中運行的Enterprise Beans 類來進行處理。運行在客戶層的Web 組件依賴容器來支持諸如客戶請求和響應及Enterprise Bean 查詢等。

(3) 業務層

作爲解決或滿足某個特定業務領域(比如銀行、零售或金融業)需要的邏輯的業務代碼由運行在業務層的Enterprise Beans 來執行。一個Enterprise Bean 從客戶程序處接收數據,對數據進行處理(如果需要),再將數據發送到企業信息系統層存儲起來。一個Enterprise Beans 還從存儲中檢索數據,並將數據送回客戶程序。運行在業務層的Enterprise Beans 依賴於容器來爲諸如事務、生命期、狀態管理、多線程及資源存儲池等提供通常都非常複雜的系統級代碼。業務層經常被稱作Enterprise JavaBeans (EJB )層。業務層和Web 層一起構成了3 層J 2 E E應用的中間層,而其他兩層是客戶層和企業信息系統層。

(4) 企業信息系統層

企業信息系統層運行企業信息系統軟件,這層包括企業基礎設施系統,例如企業資源計劃(E R P)、大型機事務處理( mainframe transactionprocessing )、數據庫系統及其他遺留信息系統(legacy informationsystems )。J2EE 應用組件因爲某種原因( 例如訪問數據庫) 可能需要訪問企業信息系統。J2EE 平臺的未來版本將支持Connector 架構,該架構是將J2EE 平臺連接到企業信息系統上的一個標準A P I。

(5) 查詢服務

因爲一個J2EE 應用程序的組件是單獨運行的,並且往往在不同的設備上運行,因此,需要一種能讓客戶層和Web 層代碼查詢並引用其他代碼和資源的方法。客戶層和Web 層代碼使用Java 命名和目錄接口(JNDI )來查詢用戶定義的對象(例如Enterprise Beans )、環境條目(例如一個數據庫驅動器的位置)、企業信息系統層中用於查找資源的JDBC DataSource對象,以及消息連接。

(6) 安全和事務管理

諸如安全和事務管理這樣的應用行爲可以在部署時在Web 和Enterprise Beans 組件上進行配置。這個特徵將應用邏輯從可能隨裝配而變化的.配置設定中分開了。J2EE 安全模型允許配置一個Web 或Enterprise Beans 組件,使系統資源只能由授權的用戶訪問。例如,一個Web 組件可以被配置成提示輸入用戶名和密碼。一個Enterprise Beans 組件可以被配置成只讓特定團體中的成員調用其某些方法。或者,一個Servlet 組件可以被配置成讓某個組織中的所有人都能訪問其某些方法,同時只讓該組織中的某些享有特權的人訪問其中一些方法。同樣是該Servlet 組件,可以針對另外一個環境而被配置成讓每個人都能訪問其所有方法,或者僅讓選定的少數人訪問其所有方法。

J2EE 事務模型使得能夠在部署時定義構成一個單一事務的方法之間的關係,以使一個事務中的所有方法被處理成一個單一的單元。這是我們所希望的,因爲一個事務是一系列步驟,這些步驟要麼全部完成,要麼全部取消。例如,一個Enterprise Beans 可能有一組方法,使我們可以通過從第一個賬戶借出並存入第二個賬戶的方式而將錢從第一個賬戶轉移到第二個賬戶。我們希望全部的操作被作爲一個單元對待,這樣,如果在借出之後存入之前發生了故障,該借出操作被取消。事務屬性是在裝配期間定義在一個組件上的。這使得能將來自多個應用組件的方法歸到一個事務中,這說明,我們可以輕易變更一個J2EE 應用程序中的應用組件,並重新指定事務屬性,而不必改變代碼或重新編譯。在設計應用組件時,要記住,儘管Enterprise Beans 有一個可使應用組件的容器自動啓動多步事務的機制,但是Applet 和應用的客戶容器可能並不支持這一點。然而, Applet 和應用客戶容器總是能夠調用支持這一點的一個Enterprise Beans。還應當注意, JSP 頁面和Servlet 沒有被設計成是事務的,它們通常應當將事務工作交給一個Enterprise Bean 來完成。然而,如果事務工作在一個JSP 頁面或Servlet 中是必須的,那麼此種工作也應當是非常有限的。

(7) 可重用應用組件

J2EE 組件(Applet 、應用的客戶、Enterprise Beans 、JSP 頁面及Servlet )都被打包成模塊,並以Java Archive (JAR )文件的形式交付。一個模塊由相關的組件、相關的文件及描述如何配置組件的配置描述文件組成。例如,在組裝過程中,一個HTML 頁面和Servlet 被打包進一個模塊之中,該模塊包含H T M L文件、Servlet 組件及相關的配置描述文件,並以一個Web Archive(WAR )文件的形式交付,該WAR 文件是一個帶 擴展名的標準JAR 文件。模塊的使用使得利用相同組件中的某些組件來組裝不同的J2EE 應用程序成爲可能。例如,一個J2EE 應用程序的Web 版可能有一個Enterprise Beans 組件,還有一個JSP 頁面組件。該Enterprise Beans 組件可以與一個應用客戶組件結合,以生成該應用程序的非Web 版本。這不需要進行額外的編碼,只是一個裝配和部署的問題。並且,可重用組件使得將應用開發和部署過程劃分成由不同的角色來完成成爲可能,這樣,不同的人或者公司就能完成封裝和部署過程的不同部分。