J2EEArchitecture(12)

chszs發表於2007-05-16
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/1611378

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