Enterprise JavaBeans (EJB) 技術是 Java 企業級開發的基石之一。本文梳理 EJB 的發展脈絡,幫助讀者快速掌握其核心概念與歷史背景。雖然 EJB 組件依賴 Java Transaction Service 等底層服務,但開發者無需深究這些細節即可發揮 EJB 的優勢。
「Enterprise JavaBeans」這一名稱沿用了「Java Bean」—— 可移植、可重用的 Java 軟體組件——的聲譽。EJB 技術將 Java 組件的概念從客戶端領域延伸至伺服器端,這是 Java 技術邁向成熟、支撐任務關鍵型企業資訊系統的關鍵一步。
Java 初期因 Applet(可下載的小程式)在 Web 開發者中走紅。JDK 1.0 時代,Java 開發圍繞 Applet 與應用程式展開。然而,JDK 並未提供讓 Java 專門在伺服器機器上運行的介面或套件。Sun Microsystems 於是制定了 Java Servlet 規範:Servlet 專為 Web 伺服器設計,由容器管理,透過請求-回應模型與客戶端互動,效率與可移植性優於傳統 CGI 程式,逐漸取代後者成為中間層組件的主流選擇。
Web 程式向伺服器端演進,推動架構從傳統「客戶端-伺服器」兩層模型轉向三層架構。兩層模型雖將計算下放至客戶端,但隨著規模增長,伺服器擴展性與客戶端代碼膨脹問題凸顯。三層架構引入中間層(應用伺服器),集中管理業務邏輯,輕量化客戶端(如瀏覽器),並靈活對接後端資料庫,成為 Web 計算平台的標準藍圖。
JavaBeans 規範將「組件軟體」概念引入 Java:符合命名慣例(屬性、方法、事件)的類即可成為 Bean,支援可視化建構工具拖放組裝。Bean 特徵包括:設計模式、可視化開發支援、可定制化、內省機制、持久化能力。雖常被視為客戶端 GUI 組件,但 Bean 同樣適用於伺服器環境。
1997 年 Sun 發布 Java 2 Platform, Enterprise Edition (J2EE),定義了一組獨立於廠商的中間件 API,核心即 Enterprise JavaBeans API。J2EE 整合了 EJB、JNDI、JTA、JMS、Servlet、JSP、JDBC 等技術,為 EJB 提供運行環境。各技術並非完全相依,規範文件明確界定相關性(如 EJB 1.0 規範指定與 JNDI、JTA 的交互)。