EJB 定位:可發布的伺服器端組件
- Java Bean:功能元件,非可執行程式,需依賴環境運行
- EJB:可發布元件,部署至容器,組裝成大型系統
- 容器類比:Applet→Browser,Servlet→Web Server,EJB→Application Server
EJB 核心價值
- 軟體生產工業化
- 多層應用簡單化
- 交易處理、併發安全內建
兩大 Bean 類型 (EJB 1.1)
- Session Bean (Stateful/Stateless):業務流程邏輯(計算、查詢、工作流)
- Entity Bean:資料邏輯(帳戶餘額修改等持久資料操作)
標準介面契約
javax.ejb.EnterpriseBean:標記介面,無方法
SessionBean / EntityBean:繼承 EnterpriseBean,定義生命週期回呼
- Remote 介面:繼承
EJBObject,客戶端呼叫商業方法
- Home 介面:繼承
EJBHome,定義 create/finder/remove 方法,由容器工具產生 Home Object
Session Bean 實作要點
- 實作
SessionBean 四大生命週期方法 + ejbCreate()
- Stateful:
ejbPassivate/Activate 管理資源
- Stateless:
ejbCreate 無參數,Home 對應無參 create()
客戶端呼叫流程
- JNDI 查找 Home Object
- Home Object 建立 EJBObject
- 透過 EJBObject 呼叫商業方法
- 移除 EJBObject
JNDI 實現位置透明:部署描述符關聯「暱稱」,客戶端用暱稱查找,資源遷移無需改碼。
主流分散式架構比較
- Microsoft DNA:NT/DCOM/MTS/COM+,專有、綁定 Windows
- Sun J2EE:開放標準、跨平台、內建 CORBA、多廠商支援
- OMG CORBA:標準化、IIOP 協議、語言中立