- 相關(guān)推薦
什么是J2EE
J2EE: 電子商務(wù)和信息技術(shù)的快速發(fā)展以及對它們的需求給應(yīng)用程序開發(fā)人員帶來了新的壓力。必須以比以前更少的金錢、更少的資源來更快地設(shè)計(jì)、開發(fā)企業(yè)應(yīng)用程序。為了降低成本,并加快企業(yè)應(yīng)用程序的設(shè)計(jì)和開發(fā), J2EE 平臺提供了一個(gè)基于組件的方法,來設(shè)計(jì)、開發(fā)、裝配及部署企業(yè)應(yīng)用程序。J2EE 平臺提供了多層的分布式的應(yīng)用模型、組件再用、一致化的安全模型以及靈活的事務(wù)控制。您不僅可以用比以前更快的速度向市場推出創(chuàng)造性的客戶解決方案,而且您的平臺灣搞獨(dú)立立的、基于組件的J2EE 解決方案不會被束縛在任何一個(gè)廠商的產(chǎn)品和API 上。
1. J2EE 規(guī)范定義了以下種類的組件
應(yīng)用客戶組件。
Enterprise JavaBeans 組件。
Servlet及JavaServer Pages(JSP 頁面)組件(也被稱作Web 組件)。
Applet。
一個(gè)多層的分布式的應(yīng)用模型意味著應(yīng)用邏輯被根據(jù)功能劃分成組件,并且可以在同一個(gè)
服務(wù)器或不同的服務(wù)器上安裝組成J2EE 應(yīng)用的這些不同的組件。一個(gè)應(yīng)用組件應(yīng)被安裝在什么
地方,取決于該應(yīng)用組件屬于該多層的J2EE 環(huán)境中的哪一層。這些層是客戶層、We b層、業(yè)務(wù)
層及企業(yè)信息系統(tǒng)層( EIS )等。
(1) 客戶層
J2EE 應(yīng)用可以是基于Web 的,也可以是不基于Web 的。在一個(gè)基于Web 的J2EE 應(yīng)用中,用戶的瀏覽器在客戶層中運(yùn)行,并從一個(gè)We b服務(wù)器下載Web 層中的靜態(tài)HTML 頁面或由J S P或Servlet 生成的動(dòng)態(tài)HTML 頁面。在一個(gè)不基于Web 的J2EE 應(yīng)用程序中,一個(gè)獨(dú)立客戶程序不運(yùn)行在一個(gè)HTML 頁面中,而是運(yùn)行在其他一些基于網(wǎng)絡(luò)的系統(tǒng)(比如手持設(shè)備或汽車電話)中,Applet 程序,在客戶層中運(yùn)行,并在不經(jīng)過Web 層的情況下訪問Enterprise Beans。這個(gè)不基于Web 的客戶層可能也包括一個(gè)JavaBeans 類來管理用戶輸入,并將該輸入發(fā)送到在企業(yè)層中運(yùn)行的Enterprise Beans類來進(jìn)行處理。根據(jù)J2EE 規(guī)范,JavaBeans 類不被視為組件。為J2EE 平臺編寫的JavaBeans 類有實(shí)例變量和用于訪問實(shí)例變量中的數(shù)據(jù)的“ get 和set 方法”。以這種方式使用的JavaBeans 類在設(shè)計(jì)和實(shí)現(xiàn)上通常都是簡單的,但是它們必須符合JavaBeans 規(guī)范中列出的命名和設(shè)計(jì)約定。
(2) Web 層
J2EE Web 組件可以由JSP 頁面、基于Web 的A p p l e t以及顯示HTML 頁面的S e r v l e t組成。調(diào)用S e r v l e t或者JSP 頁面的HTML 頁面在應(yīng)用程序組裝時(shí)與Web 組件打包在一起。就像客戶層一樣,Web 層可能包括一個(gè)JavaBeans 類來管理用戶輸入,并將輸入發(fā)送到在業(yè)務(wù)層中運(yùn)行的Enterprise Beans 類來進(jìn)行處理。運(yùn)行在客戶層的Web 組件依賴容器來支持諸如客戶請求和響應(yīng)及Enterprise Bean 查詢等。
(3) 業(yè)務(wù)層
作為解決或滿足某個(gè)特定業(yè)務(wù)領(lǐng)域(比如銀行、零售或金融業(yè))需要的邏輯的業(yè)務(wù)代碼由運(yùn)行在業(yè)務(wù)層的Enterprise Beans 來執(zhí)行。一個(gè)Enterprise Bean 從客戶程序處接收數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理(如果需要),再將數(shù)據(jù)發(fā)送到企業(yè)信息系統(tǒng)層存儲起來。一個(gè)Enterprise Beans 還從存儲中檢索數(shù)據(jù),并將數(shù)據(jù)送回客戶程序。運(yùn)行在業(yè)務(wù)層的Enterprise Beans 依賴于容器來為諸如事務(wù)、生命期、狀態(tài)管理、多線程及資源存儲池等提供通常都非常復(fù)雜的系統(tǒng)級代碼。業(yè)務(wù)層經(jīng)常被稱作Enterprise JavaBeans (EJB )層。業(yè)務(wù)層和Web 層一起構(gòu)成了3 層J 2 E E應(yīng)用的中間層,而其他兩層是客戶層和企業(yè)信息系統(tǒng)層。
(4) 企業(yè)信息系統(tǒng)層
企業(yè)信息系統(tǒng)層運(yùn)行企業(yè)信息系統(tǒng)軟件,這層包括企業(yè)基礎(chǔ)設(shè)施系統(tǒng),例如企業(yè)資源計(jì)劃(E R P)、大型機(jī)事務(wù)處理( mainframe transactionprocessing )、數(shù)據(jù)庫系統(tǒng)及其他遺留信息系統(tǒng)(legacy informationsystems )。J2EE 應(yīng)用組件因?yàn)槟撤N原因( 例如訪問數(shù)據(jù)庫) 可能需要訪問企業(yè)信息系統(tǒng)。J2EE 平臺的未來版本將支持Connector 架構(gòu),該架構(gòu)是將J2EE 平臺連接到企業(yè)信息系統(tǒng)上的一個(gè)標(biāo)準(zhǔn)A P I。
(5) 查詢服務(wù)
因?yàn)橐粋(gè)J2EE 應(yīng)用程序的組件是單獨(dú)運(yùn)行的,并且往往在不同的設(shè)備上運(yùn)行,因此,需要一種能讓客戶層和Web 層代碼查詢并引用其他代碼和資源的方法?蛻魧雍蚖eb 層代碼使用Java 命名和目錄接口(JNDI )來查詢用戶定義的對象(例如Enterprise Beans )、環(huán)境條目(例如一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)器的位置)、企業(yè)信息系統(tǒng)層中用于查找資源的JDBC DataSource對象,以及消息連接。
(6) 安全和事務(wù)管理
諸如安全和事務(wù)管理這樣的應(yīng)用行為可以在部署時(shí)在Web 和Enterprise Beans 組件上進(jìn)行配置。這個(gè)特征將應(yīng)用邏輯從可能隨裝配而變化的配置設(shè)定中分開了。J2EE 安全模型允許配置一個(gè)Web 或Enterprise Beans 組件,使系統(tǒng)資源只能由授權(quán)的用戶訪問。例如,一個(gè)Web 組件可以被配置成提示輸入用戶名和密碼。一個(gè)Enterprise Beans 組件可以被配置成只讓特定團(tuán)體中的成員調(diào)用其某些方法;蛘撸粋(gè)Servlet 組件可以被配置成讓某個(gè)組織中的所有人都能訪問其某些方法,同時(shí)只讓該組織中的某些享有特權(quán)的人訪問其中一些方法。同樣是該Servlet 組件,可以針對另外一個(gè)環(huán)境而被配置成讓每個(gè)人都能訪問其所有方法,或者僅讓選定的少數(shù)人訪問其所有方法。
J2EE 事務(wù)模型使得能夠在部署時(shí)定義構(gòu)成一個(gè)單一事務(wù)的方法之間的關(guān)系,以使一個(gè)事務(wù)中的所有方法被處理成一個(gè)單一的單元。這是我們所希望的,因?yàn)橐粋(gè)事務(wù)是一系列步驟,這些步驟要么全部完成,要么全部取消。例如,一個(gè)Enterprise Beans 可能有一組方法,使我們可以通過從第一個(gè)賬戶借出并存入第二個(gè)賬戶的方式而將錢從第一個(gè)賬戶轉(zhuǎn)移到第二個(gè)賬戶。我們希望全部的操作被作為一個(gè)單元對待,這樣,如果在借出之后存入之前發(fā)生了故障,該借出操作被取消。事務(wù)屬性是在裝配期間定義在一個(gè)組件上的。這使得能將來自多個(gè)應(yīng)用組件的方法歸到一個(gè)事務(wù)中,這說明,我們可以輕易變更一個(gè)J2EE 應(yīng)用程序中的應(yīng)用組件,并重新指定事務(wù)屬性,而不必改變代碼或重新編譯。在設(shè)計(jì)應(yīng)用組件時(shí),要記住,盡管Enterprise Beans 有一個(gè)可使應(yīng)用組件的容器自動(dòng)啟動(dòng)多步事務(wù)的機(jī)制,但是Applet 和應(yīng)用的客戶容器可能并不支持這一點(diǎn)。然而, Applet 和應(yīng)用客戶容器總是能夠調(diào)用支持這一點(diǎn)的一個(gè)Enterprise Beans。還應(yīng)當(dāng)注意, JSP 頁面和Servlet 沒有被設(shè)計(jì)成是事務(wù)的,它們通常應(yīng)當(dāng)將事務(wù)工作交給一個(gè)Enterprise Bean 來完成。然而,如果事務(wù)工作在一個(gè)JSP 頁面或Servlet 中是必須的,那么此種工作也應(yīng)當(dāng)是非常有限的。
(7) 可重用應(yīng)用組件
J2EE 組件(Applet 、應(yīng)用的客戶、Enterprise Beans 、JSP 頁面及Servlet )都被打包成模塊,并以Java Archive (JAR )文件的形式交付。一個(gè)模塊由相關(guān)的組件、相關(guān)的文件及描述如何配置組件的配置描述文件組成。例如,在組裝過程中,一個(gè)HTML 頁面和Servlet 被打包進(jìn)一個(gè)模塊之中,該模塊包含H T M L文件、Servlet 組件及相關(guān)的配置描述文件,并以一個(gè)Web Archive(WAR )文件的形式交付,該WAR 文件是一個(gè)帶.war 擴(kuò)展名的標(biāo)準(zhǔn)JAR 文件。模塊的使用使得利用相同組件中的某些組件來組裝不同的J2EE 應(yīng)用程序成為可能。例如,一個(gè)J2EE 應(yīng)用程序的Web 版可能有一個(gè)Enterprise Beans 組件,還有一個(gè)JSP 頁面組件。該Enterprise Beans 組件可以與一個(gè)應(yīng)用客戶組件結(jié)合,以生成該應(yīng)用程序的非Web 版本。這不需要進(jìn)行額外的編碼,只是一個(gè)裝配和部署的問題。并且,可重用組件使得將應(yīng)用開發(fā)和部署過程劃分成由不同的角色來完成成為可能,這樣,不同的人或者公司就能完成封裝和部署過程的不同部分。
【什么是J2EE】相關(guān)文章:
j2ee介紹03-20
J2EE的概念03-19
J2EE發(fā)展?fàn)顩r03-19
J2EE的基本術(shù)語03-16
J2EE基礎(chǔ)概念03-30
J2EE發(fā)展背景03-19
j2ee的學(xué)習(xí)路線03-18
j2ee安裝教程03-30
J2EE技術(shù)簡介03-20