軟件中間件技術(shù)UNIT4_第1頁
軟件中間件技術(shù)UNIT4_第2頁
軟件中間件技術(shù)UNIT4_第3頁
軟件中間件技術(shù)UNIT4_第4頁
軟件中間件技術(shù)UNIT4_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第四章J2EE

(Java2平臺企業(yè)版,Java2Platform,EnterpriseEdition)J2EE

J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。J2EEJ2EE的概念J2EE的優(yōu)勢J2EE的四層模型J2EE的結(jié)構(gòu)J2EE產(chǎn)品提供者J2EE的核心API與組件J2EE的概念

目前,Java2平臺有3個(gè)版本:適用于小型設(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的概念

J2EE是一種利用Java2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java2平臺的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫的JDBCAPI、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場時(shí)間的體系結(jié)構(gòu)。

J2EE的概念

J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。J2EE的優(yōu)勢

J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制1.保留現(xiàn)存的IT資產(chǎn)由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個(gè)以漸進(jìn)的方式建立在已有系統(tǒng)之上的服務(wù)器端平臺機(jī)制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資,BEATuxedo,IBMCICS,IBMEncina,Inprise(Borland)VisiBroker以及NetscapeApplicationServer。這之所以成為可能是因?yàn)镴2EE擁有廣泛的業(yè)界支持和一些重要的“企業(yè)計(jì)算”領(lǐng)域供應(yīng)商的參與。每一個(gè)供應(yīng)商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進(jìn)入可移植的J2EE領(lǐng)域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。J2EE的優(yōu)勢

J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制2.高效的開發(fā)

J2EE允許把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開發(fā)時(shí)間。高級中間件供應(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),極大提高整體部署的伸縮性。3.支持異構(gòu)環(huán)境

J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個(gè)方案所需的費(fèi)用。J2EE的優(yōu)勢

J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制J2EE的優(yōu)勢

J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制4.可伸縮性

企業(yè)必須要選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進(jìn)行商業(yè)運(yùn)作的大批新客戶?;贘2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個(gè)處理器。(這是NT服務(wù)器所望塵莫及的),J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署,這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足商業(yè)應(yīng)用的需要。5.穩(wěn)定的可用性一個(gè)服務(wù)器端平臺必須能全天候運(yùn)轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因?yàn)镮NTERNET是全球化的、無處不在的,即使在夜間按計(jì)劃停機(jī)也可能造成嚴(yán)重?fù)p失。若是意外停機(jī),那會有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如SunSolaris、IBMOS/390。最健壯的操作系統(tǒng)可達(dá)到99.999%的可用性或每年只需5分鐘停機(jī)時(shí)間。這是實(shí)時(shí)性很強(qiáng)商業(yè)系統(tǒng)理想的選擇。J2EE的優(yōu)勢

J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制J2EE的四層模型J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。事實(shí)上,sun設(shè)計(jì)J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔(dān)當(dāng)了過多的角色而顯得臃腫,在這種模式中,第一次部署的時(shí)候比較容易,但難于升級或改進(jìn),可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議,如:通常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難?,F(xiàn)在J2EE的多層企業(yè)級應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個(gè)多層化應(yīng)用能夠?yàn)椴煌拿糠N服務(wù)提供一個(gè)獨(dú)立的層。以下是J2EE典型的四層結(jié)構(gòu):

J2EE的四層模型J2EE典型的四層結(jié)構(gòu):運(yùn)行在客戶端機(jī)器上的客戶層組件運(yùn)行在J2EE服務(wù)器上的Web層組件運(yùn)行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件運(yùn)行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterpriseinformationsystem)層軟件J2EE的四層模型J2EE四層模型J2EE的四層模型J2EE應(yīng)用程序組件:

J2EE應(yīng)用程序是由組件構(gòu)成的。J2EE組件是具有獨(dú)立功能的軟件單元,它們通過相關(guān)的類和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。J2EE說明書中定義了以下的J2EE組件:應(yīng)用客戶端程序和applets是客戶層組件。

JavaServlet和JavaServerPages(JSP)是web層組件。

EnterpriseJavaBeans(EJB)是業(yè)務(wù)層組件。J2EE的四層模型

J2EE組件由Java編程語言寫成,并和用該語言寫成的其它程序一樣進(jìn)行編譯。J2EE組件和“標(biāo)準(zhǔn)的”Java類的不同點(diǎn)在于:它被裝配在一個(gè)J2EE應(yīng)用程序中,具有固定的格式并遵守J2EE規(guī)范,它被部署在產(chǎn)品中,由J2EE服務(wù)器對其進(jìn)行管理。J2EE的四層模型客戶層組件

J2EE應(yīng)用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的。

web層組件

J2EEweb層組件可以是JSP頁面或Servlets,按照J(rèn)2EE規(guī)范,靜態(tài)的HTML頁面和Applets不算是web層組件。web層可能包含某些JavaBean對象來處理用戶輸入,并把輸入發(fā)送給運(yùn)行在業(yè)務(wù)層上的enterprisebean來進(jìn)行處理。J2EE的四層模型Web層組件J2EE的四層模型業(yè)務(wù)層組件

業(yè)務(wù)層代碼的邏輯用來滿足銀行,零售,金融等特殊商務(wù)領(lǐng)域的需要,由運(yùn)行在業(yè)務(wù)層上的enterprisebean進(jìn)行處理。有三種企業(yè)級的bean:

會話(session)beans,

實(shí)體(entity)beans和消息驅(qū)動(message-driven)beans。會話bean表示與客戶端程序的臨時(shí)交互,當(dāng)客戶端程序執(zhí)行完后,會話bean和相關(guān)數(shù)據(jù)就會消失。實(shí)體bean表示數(shù)據(jù)庫的表中一行永久的記錄,當(dāng)客戶端程序中止或服務(wù)器關(guān)閉時(shí),就會有潛在的服務(wù)保證實(shí)體bean的數(shù)據(jù)得以保存。消息驅(qū)動bean結(jié)合了會話bean和JMS的消息監(jiān)聽器的特性,允許一個(gè)業(yè)務(wù)層組件異步接收J(rèn)MS消息。J2EE的四層模型業(yè)務(wù)層組件J2EE的四層模型企業(yè)信息系統(tǒng)層企業(yè)信息系統(tǒng)層處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng)例如企業(yè)資源計(jì)劃(ERP),大型機(jī)事務(wù)處理,數(shù)據(jù)庫系統(tǒng)和其它的遺留信息系統(tǒng)。

例如,J2EE應(yīng)用組件可能為了數(shù)據(jù)庫連接需要訪問企業(yè)信息系統(tǒng)。J2EE客戶端

一個(gè)J2EE客戶端既可以是一個(gè)Web客戶端,也可以是一個(gè)應(yīng)用程序客戶端。Web客戶端Applets應(yīng)用程序客戶端

一個(gè)Web客戶端由兩部分組成:由運(yùn)行在Web層的Web組件生成的包含各種標(biāo)記語言(HTML、XML等等)的動態(tài)Web頁面和接受從服務(wù)器傳送來的頁面并將它顯示出來的Web頁面。一個(gè)Web客戶端有時(shí)被稱之為瘦客戶端。瘦客戶端一般不做象數(shù)據(jù)庫查詢、執(zhí)行復(fù)雜的商業(yè)規(guī)則及連接傳統(tǒng)應(yīng)用程序這樣的操作。當(dāng)你使用一個(gè)瘦客戶端時(shí),象這樣的重量級的操作被交給了在J2EE服務(wù)器執(zhí)行的enterprisebean。這樣就可以充分發(fā)揮J2EE服務(wù)器端技術(shù)在安全性、速度、耐用性和可靠性方面的優(yōu)勢。J2EE客戶端Applets

從Web層接收的一個(gè)Web頁面可以包含內(nèi)嵌的applet。一個(gè)applet是一個(gè)用Java編程語言編寫的小的客戶端應(yīng)用程序,它在安裝在Web瀏覽器中的Java虛擬機(jī)中運(yùn)行。然而,為了在Web瀏覽器中成功地運(yùn)行applet,客戶端系統(tǒng)很可能需要Java插件和安全策略文件。 Web組件是用來建立一個(gè)Web客戶端程序的首選的API,因?yàn)檫@樣在客戶端系統(tǒng)中就不需要插件和安全策略文件。同樣的,使用Web組件可以有效地改善應(yīng)用程序設(shè)計(jì),因?yàn)樗鼈兲峁┝艘粋€(gè)將應(yīng)用程序設(shè)計(jì)和Web頁面設(shè)計(jì)有效分離的途徑。Web頁面的設(shè)計(jì)者可以不必關(guān)心Java編程語言的語法就能很好地完成自己的工作。Applets應(yīng)用程序客戶端

一個(gè)J2EE應(yīng)用程序客戶端運(yùn)行在客戶端機(jī)器上,它使得用戶可以處理需要比標(biāo)記語言所能提供的更豐富的用戶界面的任務(wù)。具有代表性的是用Swing或抽象窗口工具包(AWT)API建立的圖形用戶界面(GUI),但是一個(gè)命令行界面也當(dāng)然是可能的。應(yīng)用程序客戶端直接訪問運(yùn)行在商業(yè)層的enterprisebean。然而,如果應(yīng)用程序需要授權(quán),一個(gè)J2EE應(yīng)用程序客戶端可以打開一個(gè)HTTP連接來與一個(gè)運(yùn)行在Web層的servlet建立通信。JavaBeans組件體系結(jié)構(gòu)

服務(wù)器層和客戶層也可以包含以JavaBean組件體系結(jié)構(gòu)(JavaBeans組件)為基礎(chǔ)的組件來管理在一個(gè)應(yīng)用程序客戶端或applet與運(yùn)行在J2EE服務(wù)器上的組件之間的數(shù)據(jù)流動以及服務(wù)器端組件與數(shù)據(jù)庫之間的數(shù)據(jù)流動。在J2EE規(guī)范中JavaBeans組件不被認(rèn)為是J2EE組件。

JavaBeans組件具有實(shí)例變量以及用來訪問實(shí)例變量中的數(shù)據(jù)的get方法和set方法。作這種用途的JavaBeans組件在設(shè)計(jì)和執(zhí)行時(shí)相當(dāng)簡單,但是它必須遵守JavaBeans組件體系結(jié)構(gòu)的命令和設(shè)計(jì)慣例。J2EE服務(wù)器通信

服務(wù)器通信

圖顯示了客戶層組成的多種方式??蛻舳丝梢灾苯雍瓦\(yùn)行在J2EE服務(wù)器中的商業(yè)層進(jìn)行通信。如果是一個(gè)運(yùn)行在瀏覽器中的客戶端,也可以通過運(yùn)行在Web層中的JSP頁面和Servlet進(jìn)行這種通信。

J2EE應(yīng)用程序是采用瘦客戶端還是胖客戶端。要作出這樣的決定,應(yīng)該明白胖客戶端是將功能留在客戶端,使它與用戶更接近,而瘦客戶端是將功能的實(shí)現(xiàn)盡可能地交給服務(wù)器。由服務(wù)器處理更多的功能,就更容易分發(fā)、部署和管理應(yīng)用程序;而將更多的功能留在客戶端對于有經(jīng)驗(yàn)的用戶也許是個(gè)明智的選擇。

J2EE服務(wù)器通信Web組件商業(yè)組件

J2EE服務(wù)器通信Web組件J2EE的Web組件既可以是Servlets也可以是JSP頁面。Servlets是一個(gè)Java編程語言類,它可以動態(tài)地處理請求并作出響應(yīng)。JSP頁面是一個(gè)基于文本的文檔,它以Servlets的方式執(zhí)行,但是它可以更方便建立靜態(tài)內(nèi)容。

在裝配應(yīng)用程序時(shí),靜態(tài)的HTML頁面和applet被綁定到Web組件中,但是它們并不被J2EE規(guī)范視為Web組件。服務(wù)器端的功能類也可以被綁定到Web組件中,與HTML頁面一樣,它們也不被J2EE規(guī)范視為Web組件。

如圖中所示,和客戶層一樣,Web層也可以包含一個(gè)JavaBeans組件以管理用戶的輸入并將輸入發(fā)送到運(yùn)行在商業(yè)層的enterprisebean進(jìn)行處理。圖Web層和J2EE應(yīng)用程序Web組件商業(yè)組件

商業(yè)代碼,表示了例如銀行、零售和財(cái)政這樣的特定的商業(yè)領(lǐng)域的相適應(yīng)的邏輯。它由運(yùn)行在商業(yè)層的enterprisebean處理。圖顯示了一個(gè)enterprisebean如何從客戶端接受數(shù)據(jù),對它進(jìn)行處理(如果需要),并將其發(fā)送到企業(yè)信息系統(tǒng)層以作存儲。一個(gè)enterprisebean也可以從存儲器獲取數(shù)據(jù),對它進(jìn)行處理(如果需要),并將其發(fā)送到客戶端應(yīng)用程序。圖

商業(yè)層和EIS層

有三種類型的enterprisebeans:sessionbeans、entitybeans和message-drivenbeans。一個(gè)sessionbean描述了與客戶端的一個(gè)短暫的會話。當(dāng)客戶端的執(zhí)行完成后,sessionbean和它的數(shù)據(jù)都將消失。與些相對應(yīng)的是一個(gè)entitybean描述了存儲在數(shù)據(jù)庫的表中的一行的持久穩(wěn)固的數(shù)據(jù)。如果客戶端終止或者服務(wù)結(jié)束,底層的服務(wù)會負(fù)責(zé)entitybean數(shù)據(jù)的存儲。商業(yè)組件J2EE的四層模型J2EE容器容器服務(wù)容器類型

J2EE容器

通常,客戶端的多層應(yīng)用程序是很難編寫的,這是因?yàn)檫@得包括許多行復(fù)雜的代碼以處理事務(wù)、狀態(tài)管理、多線程、資源池和其它復(fù)雜的底層詳細(xì)資料。基于組件并與平臺無關(guān)的J2EE體系結(jié)構(gòu)使得J2EE應(yīng)用程序易于編寫,這是因?yàn)樯虡I(yè)邏輯被封裝到可重用的組件中,此外,J2EE服務(wù)器以容器的形式為每一個(gè)組件類型提供底層服務(wù)。因?yàn)槲覀儾恍枰约洪_發(fā)這些服務(wù),這使我們可以全力以赴地著手處理商業(yè)問題。容器服務(wù)

容器是一個(gè)組件和支持組件的底層平臺特定功能之間的接口,在一個(gè)Web組件、enterprisebean或者是一個(gè)應(yīng)用程序客戶端組件在被執(zhí)行前,它們必須被裝配到一個(gè)J2EE應(yīng)用程序中,并且部署到它們的容器。

裝配的過程包括為J2EE應(yīng)用程序中的每一個(gè)組件以及J2EE應(yīng)用程序本身指定容器的設(shè)置。容器設(shè)置定制了由J2EE服務(wù)器提供的底層支持,這將包括諸如安全性、事務(wù)管理、Java命名目錄接口(JNDI)搜尋以及遠(yuǎn)程序連接。

下面是其中的主要部分:

1、J2EE的安全性模式可以讓你對一個(gè)Web組件或enterprisebean進(jìn)行配置以使得只有授權(quán)用戶訪問系統(tǒng)資源。

2、J2EE的事務(wù)模式可以讓你指定方法之間的關(guān)系以組成一個(gè)單個(gè)的事務(wù),這樣在一個(gè)事務(wù)中的所有方法將被視為一個(gè)單一的整體。

3、JNDI搜尋服務(wù)為企業(yè)中的多種命名目錄服務(wù)提供一個(gè)統(tǒng)一的接口,這使得應(yīng)用程序組件可以訪問命名目錄服務(wù)。

4、J2EE遠(yuǎn)程連接模式管理客戶端和enterprisebean之間的底層通信。在一個(gè)enterprisebean被建立后,客戶端在調(diào)用其中的方法時(shí)就象這個(gè)enterprisebean就運(yùn)行在同一個(gè)虛擬機(jī)上一樣。容器服務(wù)

實(shí)際上,J2EE體系結(jié)構(gòu)提供了可配置的服務(wù)意味著在相同的J2EE應(yīng)用程序中的應(yīng)用程序組件根據(jù)其被部署在什么地方在實(shí)際運(yùn)行時(shí)會有所不同。例如,一個(gè)enterprisebean可能在一個(gè)產(chǎn)品環(huán)境中擁有包含訪問數(shù)據(jù)庫數(shù)據(jù)的某種級別的安全性設(shè)置,而在另一個(gè)產(chǎn)品環(huán)境中是另一個(gè)訪問數(shù)據(jù)庫的級別。容器服務(wù)容器服務(wù)

容器還管理諸如一個(gè)enterprisebean和Servlet的生存周期、數(shù)據(jù)庫連接資源池以及訪問在J2EEAPIs中介紹的J2EE平臺API這樣不能配置的服務(wù)。盡管數(shù)據(jù)持久化是一個(gè)不能配置的服務(wù),但是J2EE體系統(tǒng)結(jié)構(gòu)允許你在你想要獲得比默認(rèn)的容器管理持久化所能提供更多的控制時(shí),通過在你的enterprisebean執(zhí)行中包含適當(dāng)?shù)拇a以重載容器管理持久化。例如,你可以使用bean管理持久化以實(shí)現(xiàn)你自己的finder(查找)方法或者是建立一個(gè)定制的數(shù)據(jù)庫緩沖區(qū)。容器類型

部署時(shí)會將J2EE應(yīng)用程序組件安裝到J2EE容器中。

1、J2EE服務(wù)器:是J2EE產(chǎn)品的運(yùn)行部分。一個(gè)J2EE服務(wù)器提供EJB容器和Web容器。EnterpriseJavaBeans(EJB)容器:管理J2EE應(yīng)用程序的enterprisebean的執(zhí)行。Enterprisebean和它的容器運(yùn)行在J2EE服務(wù)器中。

2、Web容器:管理J2EE應(yīng)用程序的JSP頁面和Servlet組件的執(zhí)行。Web組件和它的容器也運(yùn)行在J2EE服務(wù)器中。

3、客戶端應(yīng)用程序容器:管理應(yīng)用程序客戶端組件的運(yùn)行。應(yīng)用程序客戶端和它的容器運(yùn)行在客戶端中。

4、Applet容器:管理applet的執(zhí)行。由運(yùn)行在客戶端的一個(gè)Web瀏覽器和Java插件一同組成。J2EE的結(jié)構(gòu)容器這種基于組件,具有平臺無關(guān)性的J2EE結(jié)構(gòu)使得J2EE程序的編寫十分簡單,因?yàn)闃I(yè)務(wù)邏輯被封裝成可復(fù)用的組件,并且J2EE服務(wù)器以容器的形式為所有的組件類型提供后臺服務(wù)。因?yàn)槟悴挥米约洪_發(fā)這種服務(wù),所以你可以集中精力解決手頭的業(yè)務(wù)問題。容器和服務(wù)容器設(shè)置定制了J2EE服務(wù)器所提供得內(nèi)在支持,包括安全,事務(wù)管理,JNDI(JavaNamingandDirectoryInterface)尋址,遠(yuǎn)程連接等服務(wù)。J2EE的結(jié)構(gòu)J2EE的結(jié)構(gòu)

服務(wù)

J2EE安全(Security)模型可以讓你配置web組件或enterprisebean,這樣只有被授權(quán)的用戶才能訪問系統(tǒng)資源。

每一客戶屬于一個(gè)特別的角色,而每個(gè)角色只允許激活特定的方法。你應(yīng)在enterprisebean的布置描述中聲明角色和可被激活的方法。由于這種聲明性的方法,你不必編寫加強(qiáng)安全性的規(guī)則。

J2EE事務(wù)管理(TransactionManagement)模型讓你指定組成一個(gè)事務(wù)中所有方法間的關(guān)系,這樣一個(gè)事務(wù)中的所有方法被當(dāng)成一個(gè)單一的單元。當(dāng)客戶端激活一個(gè)enterprisebean中的方法,容器介入一管理事務(wù)。因有容器管理事務(wù),在enterprisebean中不必對事務(wù)的邊界進(jìn)行編碼。要求控制分布式事務(wù)的代碼會非常復(fù)雜。你只需在布置描述文件中聲明enterprisebean的事務(wù)屬性,而不用編寫并調(diào)試復(fù)雜的代碼。容器將讀此文件并為你處理此enterprisebean的事務(wù)。JNDI尋址(JNDILookup)服務(wù)向企業(yè)內(nèi)的多重名字和目錄服務(wù)提供了一個(gè)統(tǒng)一的接口,這樣應(yīng)用程序組件可以訪問名字和目錄服務(wù)。J2EE的結(jié)構(gòu)

服務(wù)J2EE的結(jié)構(gòu)

服務(wù)

J2EE遠(yuǎn)程連接(RemoteClientConnectivity)模型管理客戶端和enterprisebean間的低層交互。

當(dāng)一個(gè)enterprisebean創(chuàng)建后,

一個(gè)客戶端可以調(diào)用它的方法就象它和客戶端位于同一虛擬機(jī)上一樣。

J2EE的結(jié)構(gòu)生存周期管理(LifeCycleManagement)模型管理enterprisebean的創(chuàng)建和移除,一個(gè)enterprisebean在其生存周期中將會歷經(jīng)幾種狀態(tài)。容器創(chuàng)建enterprisebean,并在可用實(shí)例池與活動狀態(tài)中移動它,而最終將其從容器中移除。即使可以調(diào)用enterprisebean的create及remove方法,容器也將會在后臺執(zhí)行這些任務(wù)。J2EE的結(jié)構(gòu)

數(shù)據(jù)庫連接池(DatabaseConnectionPooling)模型是一個(gè)有價(jià)值的資源。獲取數(shù)據(jù)庫連接是一項(xiàng)耗時(shí)的工作,而且連接數(shù)非常有限。容器通過管理連接池來緩和這些問題。enterprisebean可從池中迅速獲取連接。在bean釋放連接之可為其他bean使用。J2EE產(chǎn)品提供者EJB服務(wù)器提供商EJB容器提供商EJB開發(fā)者應(yīng)用程序組裝器部署器系統(tǒng)管理員應(yīng)用程序的用戶界面開發(fā)者EJB服務(wù)器提供商

提供的應(yīng)用服務(wù)器應(yīng)是一個(gè)分布式事務(wù)處理,系統(tǒng)服務(wù)等方面的專家。

EJB容器提供商

提供EJB組件實(shí)例運(yùn)行環(huán)境和部署工具。EJB開發(fā)者

一個(gè)enterprisebean開發(fā)者執(zhí)行下面的任務(wù)并遞交一個(gè)包含enterprisebean的EJBJAR文件:1、編寫并編譯源代碼2、詳細(xì)說明部署描述3、將.class文件和部署描述綁定到一個(gè)EJBJAR文件中應(yīng)用程序組裝器

把一些由Bean提供商開發(fā)的EJB組件組裝成一個(gè)完整的J2EE應(yīng)用程序。部署器

在應(yīng)用程序部署的目標(biāo)產(chǎn)品環(huán)境中是專家,它在應(yīng)用服務(wù)器中安裝應(yīng)用組件并配置它們的事務(wù),持久化和安全方面。系統(tǒng)管理員

負(fù)責(zé)服務(wù)器的配置和管理,運(yùn)行監(jiān)控和負(fù)載平衡。應(yīng)用程序的用戶界面開發(fā)者

負(fù)責(zé)用戶界面和表示邏輯。J2EE的核心API與組件J2EE平臺由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對開發(fā)基于Web的多層應(yīng)用提供了功能支持,J2EE中包含13種技術(shù)規(guī)范:JDBC(JavaDatabaseConnectivity)

JDBCAPI為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一的途徑,象ODBC一樣,JDBC對開發(fā)者屏蔽了一些細(xì)節(jié)問題,另外,JDBC對數(shù)據(jù)庫的訪問也具有平臺無關(guān)性。J2EE的核心API與組件JNDI(JavaNameandDirectoryInterface)

JNDIAPI被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來存取和操作企業(yè)級的資源如DNS和LDAP,本地文件系統(tǒng),或應(yīng)用服務(wù)器中的對象。J2EE的核心API與組件EJB(EnterpriseJavaBean)

J2EE技術(shù)之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個(gè)框架來開發(fā)和實(shí)施分布式商務(wù)邏輯,由此很顯著地簡化了具有可伸縮性和高度復(fù)雜的企業(yè)級應(yīng)用的開發(fā)。EJB規(guī)范定義了EJB組件在何時(shí)如何與它們的容器進(jìn)行交互作用。容器負(fù)責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池以及容錯(cuò)性。但這里值得注意的是,EJB并不是實(shí)現(xiàn)J2EE的唯一途徑。正是由于J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達(dá)到同樣的目的。J2EE的核心API與組件RMI(RemoteMethodInvoke)

正如其名字所表示的那樣,RMI協(xié)議調(diào)用遠(yuǎn)程對象上的方法。它使用了序列化方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。J2EE的核心API與組件JavaIDL/CORBA

在JavaIDL的支持下,開發(fā)人員可以將Java和CORBA集成在一起。他們可以創(chuàng)建Java對象并使之可在CORBAORB中展開,或者他們還可以創(chuàng)建Java類并作為和其它ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將你的新的應(yīng)用和舊的系統(tǒng)相集成。J2EE的核心API與組件JSP(JavaServerPages)

JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端所請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。J2EE的核心API與組件JavaServlet

Servlet是一種小型的Java程序,它擴(kuò)展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請求時(shí)開始執(zhí)行,這和CGIPerl腳本很相似。Servlet提供的功能大多與JSP類似,不過實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。J2EE的核心API與組件XML(ExtensibleMarkupLanguage)

XML是一種可以用來定義其它標(biāo)記語言的語言。它被用來在不同的商務(wù)過程中共享數(shù)據(jù)。

XML的發(fā)展和Java是相互獨(dú)立的,但是,它和Java具有的相同目標(biāo)正是平臺獨(dú)立性。通過將Java和XML的組合,您可以得到一個(gè)完美的具有平臺獨(dú)立性的解決方案。J2EE的核心API與組件JMS(JavaMessageService)JMS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點(diǎn)對點(diǎn)的域,有支持發(fā)布/訂閱(publish/subscribe)類型的域,并且提供對下列類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應(yīng)用與舊的后臺系統(tǒng)相集成。J2EE的核心API與組件JTA(JavaTransactionArchitecture)

JTA定義了一種標(biāo)準(zhǔn)的API,應(yīng)用系統(tǒng)由此可以訪問各種事務(wù)監(jiān)控。J2EE的核心API與組件JTS(JavaTransactionService)

JTS是CORBAOTS事務(wù)監(jiān)控的基本的實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。該事務(wù)管理器是在高層支持JavaTransactionAPI(JTA)規(guī)范,并且在較底層實(shí)現(xiàn)OMGOTSspecification的Java映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨(dú)立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。J2EE的核心API與組件JavaMail

JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器。J2EE的核心API與組件JAF(JavaBeansActivationFramework)

JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對象,或者轉(zhuǎn)換自Java對象。大多數(shù)應(yīng)用都可以不需要直接使用JAF。技術(shù)規(guī)范技術(shù)規(guī)范是有關(guān)使用設(shè)備工序,執(zhí)行工藝過程以及產(chǎn)品、勞動、服務(wù)質(zhì)量要求等方面的準(zhǔn)則和標(biāo)準(zhǔn)。當(dāng)這些技術(shù)規(guī)范在法律上被確認(rèn)后,就成為技術(shù)法規(guī)。技術(shù)規(guī)范是標(biāo)準(zhǔn)文件的一種形式,是規(guī)定產(chǎn)品,過程或服務(wù)應(yīng)滿足技術(shù)要求的文件。它可以是一項(xiàng)標(biāo)準(zhǔn)(即技術(shù)標(biāo)準(zhǔn))、一項(xiàng)標(biāo)準(zhǔn)的一部分或一項(xiàng)標(biāo)準(zhǔn)的獨(dú)立部分。其強(qiáng)制性弱于標(biāo)準(zhǔn)。技術(shù)法規(guī)技術(shù)規(guī)范是有關(guān)使用設(shè)備工序,執(zhí)行工藝過程以及產(chǎn)品、勞動、服務(wù)質(zhì)量要求等方面的準(zhǔn)則和標(biāo)準(zhǔn)。當(dāng)這些技術(shù)規(guī)范在法律上被確認(rèn)后,就成為技術(shù)法規(guī)。技術(shù)規(guī)范是標(biāo)準(zhǔn)文件的一種形式,是規(guī)定產(chǎn)品,過程或服務(wù)應(yīng)滿足技術(shù)要求的文件。它可以是一項(xiàng)標(biāo)準(zhǔn)(即技術(shù)標(biāo)準(zhǔn))、一項(xiàng)標(biāo)準(zhǔn)的一部分或一項(xiàng)標(biāo)準(zhǔn)的獨(dú)立部分。其強(qiáng)制性弱于標(biāo)準(zhǔn)。虛擬機(jī)

虛擬機(jī)(VirtualMachine)指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。通過虛擬機(jī)軟件,你可以在一臺物理計(jì)算機(jī)上模擬出一臺或多臺虛擬的計(jì)算機(jī),這些虛擬機(jī)完全就像真正的計(jì)算機(jī)那樣進(jìn)行工作,例如你可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。對于你而言,它只是運(yùn)行在你物理計(jì)算機(jī)上的一個(gè)應(yīng)用程序,但是對于在虛擬機(jī)中運(yùn)行的應(yīng)用程序而言,它就是一臺真正的計(jì)算機(jī)。因此,當(dāng)我在虛擬機(jī)中進(jìn)行軟件評測時(shí),可能系統(tǒng)一樣會崩潰,但是,崩潰的只是虛擬機(jī)上的操作系統(tǒng),而不是物理計(jì)算機(jī)上的操作系統(tǒng),并且,使用虛擬機(jī)的“Undo”(恢復(fù))功能,我可以馬上恢復(fù)虛擬機(jī)到安裝軟件之前的狀態(tài)。SSHSSH是struts,spring,hibernate這三種框架的組合。Struts是目前Web開發(fā)中比較流行的一個(gè)開源框架,它主要是采用Servlet和JSP技術(shù)實(shí)現(xiàn)了MVC(Model、View、Control)的設(shè)計(jì)模式,很好地使顯示、控制、模型相分享。開發(fā)人員利用它開發(fā)時(shí),不需要再編碼實(shí)現(xiàn)MVC模式各個(gè)部分,可以節(jié)省開發(fā)時(shí)間。Struts框架Structs框架結(jié)構(gòu)如圖:Struts框架Mudel部分Structs的Model部分由ActionForm和Javabean組成,其中ActionForm用于封裝用于請求參數(shù),所有的用戶請求參數(shù)會自動封裝成ActionForm對象;該對象被ActionServlet轉(zhuǎn)發(fā)給Action;然后Acion根據(jù)ActionForm里的請求參數(shù)處理用戶請求。Javabean的主要作用則是封裝底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫訪問等。Struts框架View部分視圖部分主要由JSP頁面組成,Structs提供了豐富的標(biāo)簽庫,通過標(biāo)簽庫可以最大幅度的減少腳本的使用。整個(gè)應(yīng)用有客戶端請求驅(qū)動,當(dāng)客戶端請求被ActionServlet攔截時(shí),ActionServlet根據(jù)請求決定是否需要調(diào)用Model處理用于請求,當(dāng)用戶請求處理完成后,jsp會顯示處理的結(jié)果,并把結(jié)果呈現(xiàn)在用戶面前。Struts框架Controller部分Struts中的Controller主要是其自身提供的ActionServlet。ActionServlet接收所有來自客戶端的請求并根據(jù)配置文件(struts-config.xml)中的定義將控制轉(zhuǎn)移到適當(dāng)?shù)腁ction對象。通過Web.XML文檔的配置,對平臺進(jìn)行了模塊化控制,在web.xml中配置struts-config.xml的信息,如路徑等。而Controller會根據(jù)Struts-config.xml中配置實(shí)現(xiàn)業(yè)務(wù)處理或跳轉(zhuǎn)切換等動作。Spring框架Spring框架起源于其締造者RodJohnson2002年所寫的ExpertOne-on—OneJ2EEDesignandDevelopmen

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論