天天看點

J2EE Architecture(12)

J2EE Architecture(12)

1、EJB規範

EJB(Enterprise JavaBean)是最重要的元件,也是J2EE技術的重要組成部分。

與Servlet和JSP不同,EJB能夠為企業應用程式提供業務邏輯和資料通路邏輯支援。

2、EJB描述了一些不同的EJB角色

1)EJB提供者

其建立Bean,Bean執行企業需要的業務操作。提供者根據企業的業務規則,将業務規則編入适當方法。

2)應用程式組裝者

其根據需要,将一個或多個EJB提供者建立的Bean組裝為可部署的應用程式單元。

組裝者還組裝其它元件,如Web元件,以建立更大規模的企業應用程式。

3)應用程式部署者

應用程式部署者的任務是在符合企業要求的操作環境中,“部署”組裝的企業應用程式。

部署者要確定在适當的EJB容器和EJB伺服器中完成開發,確定在部署時分析所有外部實體,并確定企業應用程式可以使用所有資源。

4)EJB Server提供者

其實際上就是廠商。廠商有能力建立需要關鍵功能的分布式企業應用程式。

5)EJB容器提供者

EJB協助提供EJB工具和運作時支援。工具可幫助部署者在操作環境中部署應用程式。

6)系統管理者

其職責包括企業系統運作和分布式網絡環境的維護,包括EJB Server和EJB容器。

EJB規範可以確定不同角色能共同工作。

3、EJB詳解

1)介紹

Bean并非普通Java對象,而是3個實體的組合:home接口、component接口和Object Identity(對象辨別)。

部署在作業系統的Bean包含所有這些實體。各實體在Bean的生命期和功能方面擔當不同的角色。

local(本地)接口時EJB2.0引入的新特性,能在設計級别完善EJB。

2)home接口

它用來建立、查找或删除同類EJB,定義适當方法建立、查找或删除EJB。

home接口還支援特殊home業務方法,home業務方法不針對任何特殊Bean執行個體。

遠端用戶端使用遠端home接口,本地用戶端使用本地home接口。

3)component接口

它負責在EJB上“執行業務方法”,聲明企業應用程式需要的所有業務方法。

component接口可以是本地或遠端接口。

4)本地接口

本地用戶端可能是一個企業Bean,與其它企業Bean處在同一個JVM中。

在使用本地接口時,不需要遠端開銷,故能優化通路企業Bean。

本地接口可與“遠端”接口共存。

與本地用戶端不同,遠端用戶端需要遠端JNDI查找功能。

本地Bean可互相通信,以調用執行業務流程需要的業務方法,傳輸的參數和傳回值不需要串行化,參數按引用傳遞。

5)對象辨別

對象辨別實際上就是EJB對象。EJB2.1開始支援3類EJB對象:

(1)會話Bean

會話Bean是企業應用程式的會話建立者,代表EJB伺服器中的本地或遠端用戶端。

會話Bean是輕量級伺服器端元件,支援事務,能執行業務操作。

當用戶端準備執行時,容器将建立會話Bean,或從Bean池中檢索會話Bean;當執行結束時,容器将銷毀會話Bean,或将Bean的内容設定為“空”或預設值後,将會話Bean傳回Bean池。

會話Bean可能有狀态,也可能無狀态。無狀态會話Bean可為本地或遠端用戶端提供“Web服務端點”。

(2)實體Bean

實體Bean提供共享資料庫的持久資料視圖。它們是持久資料,隻要相應資料存在,實體Bean的執行個體就一直存在。

與會話Bean和不同,當容器崩潰時,實體Bean、實體Bean的遠端引用相應主鍵可存活下來。

(3)消息驅動Bean

消息驅動Bean(Message Driven Bean,MDB)在多個方面的表現與會話Bean和實體Bean不同,MDB不包含home或component接口,沒有Web服務端點,MDB能在某種程度上執行與會話Bean類似的業務邏輯操作。

MDB無狀态,支援事務,是輕量級伺服器端元件,可以以異步方式為消息傳輸中間件提供“橋梁”。

MDB可通路底層資料庫中的共享資料。