EJB 2.0 規範引入本地介面,賦予企業級 Java 組件前所未有的部署彈性:同一 Bean 可同時暴露本地介面 (同一 JVM 高效呼叫) 與遠端介面 (跨進程/機器分散式呼叫)。本系列文章以樣本應用 Dual 為載體,系統闡述雙介面設計模式、多拓撲部署實作、原始碼機制與效能基準測試,助力架構師做出最優決策。
Servlet 容器與 EJB 容器運行於同一 WebSphere Application Server、同一 JVM、同一節點。WSAD 測試環境 (WTE) 預設即此拓撲。生產環境亦常用於中小型應用。

圖 1:簡單的 J2EE 應用拓撲 - All-in-One
優勢:部署簡單、延遲最低 (可用本地介面)。
出於安全隔離、獨立擴縮或異構技術棧需求,將 Web 容器 (Tomcat) 與 EJB 容器 (WAS) 分離部署於不同節點/進程。Web 層**必須**透過遠端介面 (IIOP) 與 EJB 通訊。

圖 2:拓撲 - 分離容器
註:本文為教學清晰引入 Tomcat,實際生產 WAS 亦可同時充當高效 Web/EJB 容器。
| 場景代號 | 拓撲 | 介面模式 | 說明 |
|---|---|---|---|
| All-in-One-All-Local | All-in-One | 全本地 | 同一 JVM,EJB 間、Web→EJB 均用本地介面 |
| All-in-One-All-Remote | All-in-One | 全遠端 | 同一 JVM 但強制用遠端介面 (測試開銷基準) |
| Separate Containers | 分離容器 | Web→EJB 遠端,EJB 間本地 | 真實分散式部署模擬 |
採用標準 MVC (Model 2) 架構:
DualServlet 處理 HTTP 請求、協調流程。index.html (輸入)、result.jsp (輸出)。Person 類) → DualSession (Stateless Session Bean) → DualEntity (CMP Entity Bean) → 資料源 dualDB (表 PERSON)。交互鏈路:Servlet → DualSession → DualEntity → DB。
DualEARForAllInOne、DualEARForEJBContainer、DualEARForWeb。DualJavaModule00 (含 Person VO)。DualEJBModule01 (Entity)、DualEJBModule02 (Session)。DualWebModule03 (Servlet/JSP/HTML)。dualDB。**每個主要組件均可獨立部署至不同節點,零代碼修改。** 僅需在客戶端、Web 元件、EJB 元件、JDBC 驅動配置中提供相對主機名。本文為教學目的將所有組件佈署於單一開發機,但架構特性不受限定。
請按序閱讀以獲得完整知識鏈路。