- 相關(guān)推薦
J2EE的層次和組成
J2EE組件和“標(biāo)準(zhǔn)的” Java類(lèi)的不同點(diǎn)在于:它被裝配在一個(gè)J2EE應(yīng)用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對(duì)其進(jìn)行管理。以下是關(guān)于J2EE的層次和組成,歡迎大家參考!
目前,Java 2平臺(tái)有3個(gè)版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺(tái)Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統(tǒng)的Java 2平臺(tái)標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java 2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫(xiě)一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBC API、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì) EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開(kāi)發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。
J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。事實(shí)上,sun設(shè)計(jì)J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶(hù)端擔(dān)當(dāng)了過(guò)多的角色而顯得臃腫,在這種模式中,第一次部署的時(shí)候比較容易,但難于升級(jí)或改進(jìn),可伸展性也不理想,而且經(jīng)常基于某種專(zhuān)有的協(xié)議??通常是某種數(shù)據(jù)庫(kù)協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難。現(xiàn)在J2EE 的多層企業(yè)級(jí)應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個(gè)多層化應(yīng)用能夠?yàn)椴煌拿糠N服務(wù)提供一個(gè)獨(dú)立的層。
這四層分別是 運(yùn)行在客戶(hù)端機(jī)器上的客戶(hù)端層(Client Tier)、 運(yùn)行在Web服務(wù)器上的Web層(Web Tier)、 運(yùn)行在EJB服務(wù)器上的業(yè)務(wù)層(Business Tier)和 運(yùn)行在EIS服務(wù)器上企業(yè)信息系統(tǒng)層(Enterprise Information System Tier)其中Web層和業(yè)務(wù)層共同組成了三層J2EE應(yīng)用的中間層,其他兩層是客戶(hù)端層和存儲(chǔ)層或企業(yè)信息系統(tǒng)層。一般情況下,許多開(kāi)放商把Web服務(wù)器和EJB服務(wù)器產(chǎn)品結(jié)合在一起發(fā)布,稱(chēng)為應(yīng)用服務(wù)器或J2EE服務(wù)器。J2EE平臺(tái)規(guī)范也定義了相應(yīng)層的組件:
I. 客戶(hù)端層組件
應(yīng)用客戶(hù)端程序和瀏覽器是客戶(hù)端層組件?蛻(hù)端層組件可以是基于Web方式的即作為Web服務(wù)器的瀏覽器,也可以是基于傳統(tǒng)方式的(非基于Web方式)即獨(dú)立的應(yīng)用程序,可以完成瘦客戶(hù)機(jī)無(wú)法完成的任務(wù)。
II. Web層組件
Java Servlet和JavaServer Pages(JSP)是Web層組件。如圖2所示的客戶(hù)層那樣,Web層可能包含某些 JavaBean 對(duì)象來(lái)處理用戶(hù)輸入,并把輸入發(fā)送給運(yùn)行在業(yè)務(wù)層上的Enterprise Bean 來(lái)進(jìn)行處理。按照J(rèn)2EE規(guī)范,靜態(tài)的HTML頁(yè)面和Applets不算是Web層組件。這里的JavaBean和EJB(Enterprise JavaBean)除了共用“JavaBean”這個(gè)名字外,這兩種組件模式完全沒(méi)有關(guān)系。許多文章把EJB作為原始的“JavaBean”的擴(kuò)展,這是錯(cuò)誤的。EJB并沒(méi)有擴(kuò)展或使用JavaBean組件模式。最初的JavaBean(java.beans包)在進(jìn)程內(nèi)部(intraprocess)使用,而EJB(javax.ejb包)是在進(jìn)程間(interprocess)使用的組件。即最初的JavaBean不是為分布式組件而設(shè)的。它是最好的組件模式,可能是至今發(fā)現(xiàn)的最好的過(guò)程內(nèi)部開(kāi)發(fā)的組件模式,但它不是一個(gè)服務(wù)器端的組件模式。EJB則能解決在三層結(jié)構(gòu)中由管理分布式商務(wù)對(duì)象多帶來(lái)的問(wèn)題。
III. 業(yè)務(wù)層組件
Enterprise JavaBeans(EJB)是業(yè)務(wù)層組件。業(yè)務(wù)層代碼的邏輯用來(lái)滿足銀行,零售,金融等特殊商務(wù)領(lǐng)域的需要,由運(yùn)行在業(yè)務(wù)層上的EJB 進(jìn)行處理。 EJB從客戶(hù)端程序接收數(shù)據(jù),進(jìn)行處理(如果必要的話), 并發(fā)送到企業(yè)信息系統(tǒng)層(EIS) 層儲(chǔ)存的,這個(gè)過(guò)程也可以逆向進(jìn)行。
有三種企業(yè)級(jí)的Bean: 會(huì)話(Session)Beans, 實(shí)體(Entity) Beans, 和 消息驅(qū)動(dòng)(Message-driven) Beans。 會(huì)話Bean 表示與客戶(hù)端程序的臨時(shí)交互。 當(dāng)客戶(hù)端程序執(zhí)行完后, 會(huì)話Bean 和相關(guān)數(shù)據(jù)就會(huì)消失。相反, 實(shí)體Bean 表示數(shù)據(jù)庫(kù)的表中一行永久的記錄。 當(dāng)客戶(hù)端程序中止或服務(wù)器關(guān)閉時(shí), 就會(huì)有潛在的服務(wù)保證實(shí)體Bean 的數(shù)據(jù)得以保存。消息驅(qū)動(dòng)Bean 結(jié)合了會(huì)話Bean 和 JMS的消息監(jiān)聽(tīng)的機(jī)器的特性, 允許一個(gè)業(yè)務(wù)層組件異步接收J(rèn)MS 消息。
IV. 企業(yè)信息系統(tǒng)層組件
處理企業(yè)信息系統(tǒng)軟件包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng)例如企業(yè)資源計(jì)劃 (ERP), 大型機(jī)事務(wù)處理, 數(shù)據(jù)庫(kù)系統(tǒng),和其它的遺留信息系統(tǒng)組成了企業(yè)信息系統(tǒng)層。 例如,J2EE應(yīng)用組件可能為了數(shù)據(jù)庫(kù)連接需要訪問(wèn)企業(yè)信息系統(tǒng)。
J2EE平臺(tái)由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對(duì)開(kāi)發(fā)基于Web的多層應(yīng)用提供了功能支持,下面對(duì)J2EE中的13種技術(shù)規(guī)范進(jìn)行簡(jiǎn)單的描述:
JDBC(Java Database Connectivity)
JDBC API為訪問(wèn)不同的數(shù)據(jù)庫(kù)提供了一種統(tǒng)一的途徑,象ODBC一樣,JDBC對(duì)開(kāi)發(fā)者屏蔽了一些細(xì)節(jié)問(wèn)題,另外,JDCB對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)也具有平臺(tái)無(wú)關(guān)性。
JNDI(Java Name and Directory Interface)
JNDI API被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來(lái)存取和操作企業(yè)級(jí)的資源如DNS和LDAP,本地文件系統(tǒng),或應(yīng)用服務(wù)器中的對(duì)象。
EJB(Enterprise JavaBean)
J2EE技術(shù)之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個(gè)框架來(lái)開(kāi)發(fā)和實(shí)施分布式商務(wù)邏輯,由此很顯著地簡(jiǎn)化了具有可伸縮性和高度復(fù)雜的企業(yè)級(jí)應(yīng)用的開(kāi)發(fā)。EJB規(guī)范定義了EJB組件在何時(shí)如何與它們的容器進(jìn)行交互作用。容器負(fù)責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池以及容錯(cuò)性。但這里值得注意的是,EJB并不是實(shí)現(xiàn)J2EE的唯一途徑。正是由于J2EE的開(kāi)放性,使得有的廠商能夠以一種和EJB平行的方式來(lái)達(dá)到同樣的目的。
RMI(Remote Method Invoke)
正如其名字所表示的那樣,RMI協(xié)議調(diào)用遠(yuǎn)程對(duì)象上方法。它使用了序列化方式在客戶(hù)端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。
Java IDL/CORBA
在Java IDL的支持下,開(kāi)發(fā)人員可以將Java和CORBA集成在一起。他們可以創(chuàng)建Java對(duì)象并使之可在CORBA ORB中展開(kāi), 或者他們還可以創(chuàng)建Java類(lèi)并作為和其它ORB一起展開(kāi)的CORBA對(duì)象的客戶(hù)。后一種方法提供了另外一種途徑,通過(guò)它Java可以被用于將你的新的應(yīng)用和舊的系統(tǒng)相集成。
JSP(Java Server Pages)
JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶(hù)端所請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶(hù)端的瀏覽器。
Java Servlet
Servlet是一種小型的Java程序,它擴(kuò)展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請(qǐng)求時(shí)開(kāi)始執(zhí)行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類(lèi)似,不過(guò)實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫(xiě)成并且生成HTML。
XML(Extensible Markup Language)
XML是一種可以用來(lái)定義其它標(biāo)記語(yǔ)言的語(yǔ)言。它被用來(lái)在不同的商務(wù)過(guò)程中共享數(shù)據(jù)。
XML的發(fā)展和Java是相互獨(dú)立的,但是,它和Java具有的相同目標(biāo)正是平臺(tái)灣的獨(dú)立立性。通過(guò)將Java和XML的組合,您可以得到一個(gè)完美的具有平臺(tái)灣的獨(dú)立立性的解決方案。
JMS(Java Message Service)
MS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點(diǎn)對(duì)點(diǎn)的域,有支持發(fā)布/訂閱(publish/subscribe)類(lèi)型的域,并且提供對(duì)下列類(lèi)型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另
一種方式來(lái)對(duì)您的應(yīng)用與舊的后臺(tái)系統(tǒng)相集成。
JTA(Java Transaction Architecture)
JTA定義了一種標(biāo)準(zhǔn)的API,應(yīng)用系統(tǒng)由此可以訪問(wèn)各種事務(wù)監(jiān)控。
JTS(Java Transaction Service):
JTS是CORBA OTS事務(wù)監(jiān)控的基本的實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。該事務(wù)管理器是在高層支持Java Transaction API (JTA)規(guī)范,并且在較底層實(shí)現(xiàn)OMG OTS specification的Java映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨(dú)立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。
JavaMail
JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類(lèi)。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器。
JAF(JavaBeans Activation Framework)
JavaMail利用JAF來(lái)處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對(duì)象,或者轉(zhuǎn)換自Java對(duì)象。大多數(shù)應(yīng)用都可以不需要直接使用JAF。
【J2EE的層次和組成】相關(guān)文章:
Java Web開(kāi)發(fā)和J2EE的區(qū)別07-07
人工單價(jià)的組成和確定方法09-18
什么是J2EE07-05
j2ee介紹07-22
J2EE的概念08-23
J2EE發(fā)展背景10-28
J2EE技術(shù)簡(jiǎn)介08-05
j2ee安裝教程09-07
j2ee的學(xué)習(xí)路線10-28
品牌的層次10-04