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可通路底層資料庫中的共享資料。