前言
EJB (Enterprise JavaBeans) 是 Java EE 平台上構建分散式、交易性、安全企業應用的組件模型。理解 EJB 規範定義的六大角色及其職責,是掌握 EJB 架構的基礎。
EJB 組件架構六大角色
-
EJB 組件開發者
- 職責:編寫業務邏輯 Bean 類別、定義 Remote/Home 介面、提供部署描述檔 (
ejb-jar.xml)。
- 特點:領域專家,不需關心系統級服務 (交易、安全、並發)。
-
應用組合者
- 職責:組裝多個 EJB 組件成完整應用,撰寫前端頁面 (JSP/Servlet)、整合第三方組件。
- 特點:只需懂 EJB 的 Home/Remote 介面,不需知曉實作細節。
-
部署者
- 職責:將 EJB-JAR 部署至特定 EJB 伺服器/容器環境,配置資源 (JDBC、JMS)、執行容器產生的 Stub/Skeleton 類別安裝。
- 特點:目標環境專家,負責調整交易屬性、安全角色對應、資源參考綁定。
-
EJB 伺服器提供者
- 職責:提供底層分散式基礎設施:交易管理、分散式物件管理、叢集、負載平衡。通常由中間件/資料庫廠商 (IBM, Oracle, Red Hat) 提供。
-
EJB 容器提供者
- 職責:實作 EJB 容器,提供 Bean 生命週期管理、交易/安全攔截、持久化服務、部署工具、監控工具。與伺服器提供者通常同一廠商。
- 特點:系統級編程專家,對開發者暴露標準 API 隱藏複雜度。
-
系統管理員
- 職責:維護伺服器/容器運行環境 (OS、網路、JVM 調優)、監控運行狀態、處理故障轉移與效能調優。
EJB 組件類型
- Session Bean:有狀態 / 無狀態,處理業務流程。
- Entity Bean (EJB 2.x):CMP (容器管理持久化) / BMP (Bean 管理持久化),代表領域實體。EJB 3.0 以 JPA 取代。
- Message-Driven Bean:非同步訊息消費者,整合 JMS。
現代發展
EJB 3.0+ 大幅簡化開發:註解取代 XML、POJO 程式設計模型、依賴注入、JPA 標準化持久化。Spring 框架提供輕量級替代方案,兩者在企業級應用中長期共存互補。
掌握角色分工與組件類型,有助於團隊明確職責、選擇適合的技術棧。