一.J2EE的概念
目前,Java2平臺有3個版本,它們是適用于小型設(shè)備和智能卡的Java2平臺Micro版(Java2PlatformMicroEdition,J2ME)、適用于桌面系統(tǒng)的Java2平臺標(biāo)準(zhǔn)版(Java2PlatformStandardEdition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺企業(yè)版(Java2PlatformEnterpriseEdition,J2EE)。
J2EE是一種利用Java2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java2平臺的標(biāo)準(zhǔn)版,
J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費用和復(fù)雜性,同時提供對現(xiàn)有應(yīng)用程序集成強有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強了安全機制,提高了性能。
二.J2EE的優(yōu)勢
J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機制:
保留現(xiàn)存的IT資產(chǎn):由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進(jìn)的(而不是激進(jìn)的,全盤否定的)方式建立在已有系統(tǒng)之上的服務(wù)器端平臺機制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資,如一些公司使用的BEATuxedo、IBMCICS,IBMEncina,、InpriseVisiBroker以及NetscapeApplicationServer。這之所以成為可能是因為J2EE領(lǐng)域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。
高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開發(fā)時間。高級中間件供應(yīng)商提供以下這些復(fù)雜的中間件服務(wù):
狀態(tài)管理服務(wù)--讓開發(fā)人員寫更少的代碼,不用關(guān)心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。
持續(xù)性服務(wù)--讓開發(fā)人員不用對數(shù)據(jù)訪問邏輯進(jìn)行編碼就能編寫應(yīng)用程序,能生成更輕巧,與數(shù)據(jù)庫無關(guān)的應(yīng)用程序,這種應(yīng)用程序更易于開發(fā)與維護(hù)。
分布式共享數(shù)據(jù)對象CACHE服務(wù)--讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。
支持異構(gòu)環(huán)境:J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;?a >J2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。
可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進(jìn)行商業(yè)運作的大批新客戶。基于J2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署。這種部署可達(dá)數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。
穩(wěn)定的可用性:一個服務(wù)器端平臺必須能全天候運轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因為INTERNET是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴(yán)重?fù)p失。若是意外停機,那會有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如SunSolaris、IBMOS/390。最健壯的操作系統(tǒng)可達(dá)到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業(yè)系統(tǒng)理想的選擇。
三.J2EE的四層模型
J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)他們所在的層分布在不同的機器上。事實上,sun設(shè)計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔(dān)當(dāng)了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進(jìn),可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議??通常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難。現(xiàn)在J2EE的多層企業(yè)級應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個多層化應(yīng)用能夠為不同的每種服務(wù)提供一個獨立的層,以下是J2EE典型的四層結(jié)構(gòu):
運行在客戶端機器上的客戶層組件
運行在J2EE服務(wù)器上的Web層組件
運行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件
運行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterpriseinformationsystem)層軟件
J2EE應(yīng)用程序組件
J2EE應(yīng)用程序是由組件構(gòu)成的.J2EE組件是具有獨立功能的軟件單元,它們通過相關(guān)的類和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。
2EE說明書中定義了以下的J2EE組件:應(yīng)用客戶端程序和applets是客戶層組件.JavaServlet和JavaServerPages(JSP)是web層組件.EnterpriseJavaBeans(EJB)是業(yè)務(wù)層組件.
客戶層組件:J2EE應(yīng)用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的.
web層組件:J2EEweb層組件可以是JSP頁面或Servlets.按照J2EE規(guī)范,靜態(tài)的HTML頁面和Applets不算是web層組件。web層可能包含某些JavaBean對象來處理用戶輸入,并把輸入發(fā)送給運行在業(yè)務(wù)層上的enterprisebean來進(jìn)行處理。
業(yè)務(wù)層組件:業(yè)務(wù)層代碼的邏輯用來滿足銀行,零售,金融等特殊商務(wù)領(lǐng)域的需要,由運行在業(yè)務(wù)層上的enterprisebean進(jìn)行處理.下圖表明了一個enterprisebean是如何從客戶端程序接收數(shù)據(jù),進(jìn)行處理(如果必要的話),并發(fā)送到EIS層儲存的,這個過程也可以逆向進(jìn)行。
有三種企業(yè)級的bean:會話(session)beans,實體(entity)beans,和消息驅(qū)動(message-driven)beans.會話bean表示與客戶端程序的臨時交互.當(dāng)客戶端程序執(zhí)行完后,會話bean和相關(guān)數(shù)據(jù)就會消失.相反,實體bean表示數(shù)據(jù)庫的表中一行永久的記錄.當(dāng)客戶端程序中止或服務(wù)器關(guān)閉時,就會有潛在的服務(wù)保證實體bean的數(shù)據(jù)得以保存.消息驅(qū)動bean結(jié)合了會話bean和JMS的消息監(jiān)聽器的特性,允許一個業(yè)務(wù)層組件異步接收J(rèn)MS消息.
企業(yè)信息系統(tǒng)層
企業(yè)信息系統(tǒng)層處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng)例如企業(yè)資源計劃(ERP),大型機事務(wù)處理,數(shù)據(jù)庫系統(tǒng),和其它的遺留信息系統(tǒng).例如,J2EE應(yīng)用組件可能為了數(shù)據(jù)庫連接需要訪問企業(yè)信息系統(tǒng)
一.J2EE的概念
目前,Java2平臺有3個版本,它們是適用于小型設(shè)備和智能卡的Java2平臺Micro版(Java2PlatformMicroEdition,J2ME)、適用于桌面系統(tǒng)的Java2平臺標(biāo)準(zhǔn)版(Java2PlatformStandardEdition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺企業(yè)版(Java2PlatformEnterpriseEdition,J2EE)。 護(hù)數(shù)據(jù)的安全模式等等,同時還提供了對EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全面支持。其最終目的就是成為一個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結(jié)構(gòu)。 J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機制: 分布式共享數(shù)據(jù)對象CACHE服務(wù)--讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。
J2EE是一種利用Java2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java2平臺的標(biāo)準(zhǔn)版,
J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費用和復(fù)雜性,同時提供對現(xiàn)有應(yīng)用程序集成強有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強了安全機制,提高了性能。
二.J2EE的優(yōu)勢
保留現(xiàn)存的IT資產(chǎn):由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進(jìn)的(而不是激進(jìn)的,全盤否定的)方式建立在已有系統(tǒng)之上的服務(wù)器端平臺機制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資,如一些公司使用的BEATuxedo、IBMCICS,IBMEncina,、InpriseVisiBroker以及NetscapeApplicationServer。這之所以成為可能是因為J2EE領(lǐng)域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。
高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開發(fā)時間。高級中間件供應(yīng)商提供以下這些復(fù)雜的中間件服務(wù):
狀態(tài)管理服務(wù)--讓開發(fā)人員寫更少的代碼,不用關(guān)心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。
持續(xù)性服務(wù)--讓開發(fā)人員不用對數(shù)據(jù)訪問邏輯進(jìn)行編碼就能編寫應(yīng)用程序,能生成更輕巧,與數(shù)據(jù)庫無關(guān)的應(yīng)用程序,這種應(yīng)用程序更易于開發(fā)與維護(hù)。
支持異構(gòu)環(huán)境:J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;?a >J2EE
可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進(jìn)行商業(yè)運作的大批新客戶。基于J2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署。這種部署可達(dá)數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。
穩(wěn)定的可用性:一個服務(wù)器端平臺必須能全天候運轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因為INTERNET是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴(yán)重?fù)p失。若是意外停機,那會有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如SunSolaris、IBMOS/390。最健壯的操作系統(tǒng)可達(dá)到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業(yè)系統(tǒng)理想的選擇。
三.J2EE的四層模型
J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)他們所在的層分布在不同的機器上。事實上,sun設(shè)計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔(dān)當(dāng)了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進(jìn),可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議??通常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難?,F(xiàn)在J2EE的多層企業(yè)級應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個多層化應(yīng)用能夠為不同的每種服務(wù)提供一個獨立的層,以下是J2EE典型的四層結(jié)構(gòu):
運行在客戶端機器上的客戶層組件
運行在J2EE服務(wù)器上的Web層組件
運行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件
運行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterpriseinformationsystem)層軟件
J2EE應(yīng)用程序組件
J2EE應(yīng)用程序是由組件構(gòu)成的.J2EE組件是具有獨立功能的軟件單元,它們通過相關(guān)的類和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。
2EE說明書中定義了以下的J2EE組件:應(yīng)用客戶端程序和applets是客戶層組件.JavaServlet和JavaServerPages(JSP)是web層組件.EnterpriseJavaBeans(EJB)是業(yè)務(wù)層組件.
客戶層組件:J2EE應(yīng)用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的.
web層組件:J2EEweb層組件可以是JSP頁面或Servlets.按照J2EE規(guī)范,靜態(tài)的HTML頁面和Applets不算是web層組件。web層可能包含某些JavaBean對象來處理用戶輸入,并把輸入發(fā)送給運行在業(yè)務(wù)層上的enterprisebean來進(jìn)行處理。
業(yè)務(wù)層組件:業(yè)務(wù)層代碼的邏輯用來滿足銀行,零售,金融等特殊商務(wù)領(lǐng)域的需要,由運行在業(yè)務(wù)層上的enterprisebean進(jìn)行處理.下圖表明了一個enterprisebean是如何從客戶端程序接收數(shù)據(jù),進(jìn)行處理(如果必要的話),并發(fā)送到EIS層儲存的,這個過程也可以逆向進(jìn)行。
有三種企業(yè)級的bean:會話(session)beans,實體(entity)beans,和消息驅(qū)動(message-driven)beans.會話bean表示與客戶端程序的臨時交互.當(dāng)客戶端程序執(zhí)行完后,會話bean和相關(guān)數(shù)據(jù)就會消失.相反,實體bean表示數(shù)據(jù)庫的表中一行永久的記錄.當(dāng)客戶端程序中止或服務(wù)器關(guān)閉時,就會有潛在的服務(wù)保證實體bean的數(shù)據(jù)得以保存.消息驅(qū)動bean結(jié)合了會話bean和JMS的消息監(jiān)聽器的特性,允許一個業(yè)務(wù)層組件異步接收J(rèn)MS消息.
企業(yè)信息系統(tǒng)層
企業(yè)信息系統(tǒng)層處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng)例如企業(yè)資源計劃(ERP),大型機事務(wù)處理,數(shù)據(jù)庫系統(tǒng),和其它的遺留信息系統(tǒng).例如,J2EE應(yīng)用組件可能為了數(shù)據(jù)庫連接需要訪問企業(yè)信息系統(tǒng)