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