當前位置:才華齋>IT認證>J2EE>

J2EE的層次和組成

J2EE 閱讀(9.35K)

J2EE元件和“標準的” Java類的不同點在於:它被裝配在一個J2EE應用中,具有固定的格式並遵守J2EE規範,由J2EE伺服器對其進行管理。以下是關於J2EE的層次和組成,歡迎大家參考!

J2EE的層次和組成

目前,Java 2平臺有3個版本,它們是適用於小型裝置和智慧卡的Java 2平臺Micro版(Java 2 Platform Micro Edition,J2ME)、適用於桌面系統的Java 2平臺標準版(Java 2 Platform Standard Edition,J2SE)、適用於建立伺服器應用程式和服務的Java 2平臺企業版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺來簡化企業解決方案的開發、部署和管理相關的複雜問題的體系結構。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優點,例如"編寫一次、隨處執行"的特性、方便存取資料庫的JDBC API、CORBA技術以及能夠在Internet應用中保護資料的安全模式等等,同時還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術的全面支援。其最終目的就是成為一個能夠使企業開發者大幅縮短投放市場時間的體系結構。

J2EE使用多層的分散式應用模型,應用邏輯按功能劃分為元件,各個應用元件根據他們所在的層分佈在不同的機器上。事實上,sun設計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統模式中,客戶端擔當了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難於升級或改進,可伸展性也不理想,而且經常基於某種專有的協議??通常是某種資料庫協議。它使得重用業務邏輯和介面邏輯非常困難。現在J2EE 的多層企業級應用模型將兩層化模型中的不同層面切分成許多層。一個多層化應用能夠為不同的每種服務提供一個獨立的層。

這四層分別是 執行在客戶端機器上的客戶端層(Client Tier)、 執行在Web伺服器上的Web層(Web Tier)、 執行在EJB伺服器上的業務層(Business Tier)和 執行在EIS伺服器上企業資訊系統層(Enterprise Information System Tier)其中Web層和業務層共同組成了三層J2EE應用的中間層,其他兩層是客戶端層和儲存層或企業資訊系統層。一般情況下,許多開放商把Web伺服器和EJB伺服器產品結合在一起釋出,稱為應用伺服器或J2EE伺服器。J2EE平臺規範也定義了相應層的元件:

  I. 客戶端層元件

應用客戶端程式和瀏覽器是客戶端層元件。客戶端層元件可以是基於Web方式的即作為Web伺服器的瀏覽器,也可以是基於傳統方式的(非基於Web方式)即獨立的應用程式,可以完成瘦客戶機無法完成的任務。

  II. Web層元件

Java Servlet和JavaServer Pages(JSP)是Web層元件。如圖2所示的客戶層那樣,Web層可能包含某些 JavaBean 物件來處理使用者輸入,並把輸入傳送給執行在業務層上的Enterprise Bean 來進行處理。按照J2EE規範,靜態的HTML頁面和Applets不算是Web層元件。這裡的JavaBean和EJB(Enterprise JavaBean)除了共用“JavaBean”這個名字外,這兩種元件模式完全沒有關係。許多文章把EJB作為原始的“JavaBean”的擴充套件,這是錯誤的。EJB並沒有擴充套件或使用JavaBean元件模式。最初的JavaBean(s包)在程序內部(intraprocess)使用,而EJB(包)是在程序間(interprocess)使用的元件。即最初的`JavaBean不是為分散式元件而設的。它是最好的元件模式,可能是至今發現的最好的過程內部開發的元件模式,但它不是一個伺服器端的元件模式。EJB則能解決在三層結構中由管理分散式商務物件多帶來的問題。

  III. 業務層元件

Enterprise JavaBeans(EJB)是業務層元件。業務層程式碼的邏輯用來滿足銀行,零售,金融等特殊商務領域的需要,由執行在業務層上的EJB 進行處理。 EJB從客戶端程式接收資料,進行處理(如果必要的話), 併發送到企業資訊系統層(EIS) 層儲存的,這個過程也可以逆向進行。

有三種企業級的Bean: 會話(Session)Beans, 實體(Entity) Beans, 和 訊息驅動(Message-driven) Beans。 會話Bean 表示與客戶端程式的臨時互動。 當客戶端程式執行完後, 會話Bean 和相關資料就會消失。相反, 實體Bean 表示資料庫的表中一行永久的記錄。 當客戶端程式中止或伺服器關閉時, 就會有潛在的服務保證實體Bean 的資料得以儲存。訊息驅動Bean 結合了會話Bean 和 JMS的訊息監聽的機器的特性, 允許一個業務層元件非同步接收JMS 訊息。

  IV. 企業資訊系統層元件

處理企業資訊系統軟體包括企業基礎建設系統例如企業資源計劃 (ERP), 大型機事務處理, 資料庫系統,和其它的遺留資訊系統組成了企業資訊系統層。 例如,J2EE應用元件可能為了資料庫連線需要訪問企業資訊系統。

J2EE平臺由一整套服務(Services)、應用程式介面(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支援,下面對J2EE中的13種技術規範進行簡單的描述:

  JDBC(Java Database Connectivity)

JDBC API為訪問不同的資料庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發者遮蔽了一些細節問題,另外,JDCB對資料庫的訪問也具有平臺無關性。

  JNDI(Java Name and Directory Interface)

JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地檔案系統,或應用伺服器中的物件。

  EJB(Enterprise JavaBean)

J2EE技術之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分散式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度複雜的企業級應用的開發。EJB規範定義了EJB元件在何時如何與它們的容器進行互動作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩衝池以及容錯性。但這裡值得注意的是,EJB並不是實現J2EE的唯一途徑。正是由於J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。

  RMI(Remote Method Invoke)

正如其名字所表示的那樣,RMI協議呼叫遠端物件上方法。它使用了序列化方式在客戶端和伺服器端傳遞資料。RMI是一種被EJB使用的更底層的協議。

  Java IDL/CORBA

在Java IDL的支援下,開發人員可以將Java和CORBA整合在一起。他們可以建立Java物件並使之可在CORBA ORB中展開, 或者他們還可以建立Java類並作為和其它ORB一起展開的CORBA物件的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用於將你的新的應用和舊的系統相整合。

  JSP(Java Server Pages)

JSP頁面由HTML程式碼和嵌入其中的Java程式碼所組成。伺服器在頁面被客戶端所請求以後對這些Java程式碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。

  Java Servlet

Servlet是一種小型的Java程式,它擴充套件了Web伺服器的功能。作為一種伺服器端的應用,當被請求時開始執行,這和CGI Perl指令碼很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML程式碼中嵌入少量的Java程式碼,而servlets全部由Java寫成並且生成HTML。

  XML(Extensible Markup Language)

XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享資料。

XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平臺灣的獨立立性。通過將Java和XML的組合,您可以得到一個完美的具有平臺灣的獨立立性的解決方案。

  JMS(Java Message Service)

MS是用於和麵向訊息的中介軟體相互通訊的應用程式介面(API)。它既支援點對點的域,有支援釋出/訂閱(publish/subscribe)型別的域,並且提供對下列型別的支援:經認可的訊息傳遞,事務型訊息的傳遞,一致性訊息和具有永續性的訂閱者支援。JMS還提供了另

一種方式來對您的應用與舊的後臺系統相整合。

  JTA(Java Transaction Architecture)

JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。

  JTS(Java Transaction Service):

JTS是CORBA OTS事務監控的基本的實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支援Java Transaction API (JTA)規範,並且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用伺服器、資源管理器、獨立的應用以及通訊資源管理器提供了事務服務。

  JavaMail

JavaMail是用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類。不僅支援SMTP伺服器,也支援IMAP伺服器。

  JAF(JavaBeans Activation Framework)

JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的位元組流可以被轉換成Java物件,或者轉換自Java物件。大多數應用都可以不需要直接使用JAF。