準則: 指出 Enterprise JavaBeans (EJB)
這個準則討論如何指出和塑造 J2EE 應用程式的 EJB。
關係
相關元素
主要說明

簡介

這個準則以指出 EJB 為重點。準則:Enterprise JavaBean (EJB) 提供 EJB 的其他指引

指出 EJB

EJB 通常用來實作伺服器端商業物件,這些物件需要交易、安全及遠端存取的支援,或操作共用的資料(例如更新帳戶資訊)。

通常是在工作成果:分析類別中尋找設計類別時指出 EJB。控制類別很適合做為 Session Bean,因為 Session Bean 很適合提供控制邏輯。實體類別適合做為 Entity Bean,因為 Entity Bean 很適合保存持續資料。

請參閱下列更詳細的準則:

比較階段作業、訊息驅動及 Entity Bean

總結先前提及的一些準則,下表指出不同 EJB 扮演的角色、如何存取及狀態的本質。

  階段作業 訊息驅動 實體

角色

實作用戶端特有的商業邏輯

實作訊息處理特有的商業邏輯

實作商業實體特有的商業邏輯

存取方法

透過本端或遠端介面的單一用戶端

透過 JMS MessageListener 介面的儲存區;用戶端不可直接存取

許多同時透過本端和遠端介面的用戶端

狀態

可以保留用戶端和儲存區之間的暫時交談狀態

Stateless,但可以維護實例中的資源控點

持續狀態儲存到資料庫


建模 EJB

EJB 塑造為一組模板類別。尤其是 Bean 類別和任何 EJB 介面類別。根據準則:J2EE 應用程式的介面中探討的理由,EJB 介面塑造會為模板類別,不是 UML 介面。

Bean 類別和 EJB 介面之間的關係塑造為 Bean 類別至介面的相依性,而不是實現關係。Java 實作建構通常以介面和類別之間的實現來表示。不過,EJB 類別不實作介面類別,所以相依關係比較適當。下圖顯示範例。如需此特定範例的詳細資訊,請參閱準則:設計 J2EE 應用程式的子系統

隨文解釋的圖型。

EJB 和 Helper 類別範例

以下是適用於建模 EJB 的 UML 模板。

模板 適用於 定義

<<EJBSessionHomeInterface>>
<<EJBEntityHomeInterface>>

Class 分別表示階段作業或實體 Home 介面。
<<EJBRemoteInterface>> Class 表示 EJB 遠端介面。
<<EJBLocalInterface>> Class 表示 EJB 本端介面。
     
<<EJBSession>> Class 表示 EJB Session Bean 類別。
<<EJBEntity>> Class 表示 EJB Entity Bean 類別。
<<EJBMessageDriven>> Class 表示類別是訊息驅動 Bean。

EJB 通常群聚在子系統中,伴隨著關係密切的類別和 EJB。這樣可讓設計師提供 EJB 的一種無關於實作規格觀點,並配合其他設計元素來形成更高階的抽象概念。如需其他詳細資料,請參閱準則:設計 J2EE 應用程式的子系統

如需表示 EJB 構造的完整模板清單,請參閱 UML/EJB 對映規格 (RSC01)。

建模訊息驅動 Bean

塑造對於訊息驅動 Bean 所訂閱的主題或佇列的相依性。如需在 J2EE 應用程式中建模並行元素的其他指引,請參閱準則:描述 J2EE 應用程式的執行時期架構

建模 EJB 內容

使用儲存區管理的持續性、交易、授權等機制,可以塑造為 Bean 類別的其他內容,或直接納入 Bean 類別相關的文字說明中。

使用序列圖來考量使用這些機制的情況。

建模 EJB 物件互動

互動圖(合作圖和序列圖)可用來顯示 EJB 的動態行為,以及非 EJB(包括 Web 元件和外部用戶端應用程式)與 EJB 的互動。

根據作業:使用案例設計的描述,這些互動圖在本質上都一樣。互動可以用 Bean 顯示為黑箱,只與 EJB 介面產生互動。互動也可能經由表達 EJB 介面和 Bean 實作類別之間的互動來顯示 Bean 實作。請注意,通常不會顯示干預儲存區的互動。

訊息驅動 Bean 會耗用從其他來源非同步抵達的訊息。您可以選擇顯示直接從生產者流向消費者的非同步訊息,或經由建模主題和佇列以更精確地塑造關係。

圖 2 顯示一個序列圖範例,示範用戶端類別和 EJB 介面的互動。

隨文解釋的圖型。

圖 2:用戶端類別和 EJB 介面的互動

圖 3 是類似圖 2 的序列圖,但顯示與 Bean 實作的互動。

隨文解釋的圖型。

圖 3:與 EJB 實作互動的範例

建模替代方案

EJB 也可以塑造為子系統或元件,做成一組 Bean 實作類別加上 EJB 介面。

有些設計師也可能選擇將 EJB 塑造為類別,並為操作加上模板,表示操作是屬於「本端」、「遠端」或 Home 介面。這種表示法比其他替代方案更精簡。