JavaBean 與 EJB 皆為元件:擁有屬性/方法/事件介面,可被工具識別組裝,支援「先建構、後復用」的元件化開發模式。兩者皆從容器獲取額外服務,行為隨環境適應。
| 維度 | JavaBean | EJB (Enterprise JavaBean) |
|---|---|---|
| 部署層級 | 客戶端/桌面/瀏覽器 (可視元件) | 伺服器端 (非可視業務元件) |
| 可視性 | 通常可視 (按鈕、表格、圖表等 GUI) | 非可視,純業務邏輯 |
| 遠端存取 | 不支援原生遠端呼叫 | 內建 RMI/IIOP 遠端介面,透明分散式呼叫 |
| 容器服務 | 無標準容器服務 (僅設計時工具支援) | 交易、安全、併發、持久化、生命週期、資源池化 |
| 部署描述符 | 無 (靠 BeanInfo/反射) | XML 部署描述符 (ejb-jar.xml) 聲明服務品質需求 |
| 開發/部署分離 | 開發即部署 | Bean 開發者聲明「需什麼服務」,部署者決定「如何實現」 |
| ActiveX 支援 | 可封裝為 ActiveX 元件 | 本身不可為 ActiveX,但可透過代理/Web 服務間接存取 |
| 平台獨立性 | 純 Java,跨平台 | 純 Java,一次編寫,任意 J2EE 伺服器部署 |
JavaBean 解決「介面與展示」元件化;EJB 解決「業務邏輯與企業級服務」元件化。IT 團隊可將精力集中於商業邏輯創新,將交易、持久化、安全等底層難題交給 EJB 容器與 WebSphere 等頂級應用伺服器。