首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

靈活運用 EJB 本地與遠端介面 (一):架構設計動機與應用藍圖

     編輯:Java 相關知識

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

一、 核心動機:為什麼需要雙介面?

  • 本地介面:同一 JVM 內直接傳遞物件引用,避免序列化/網路開銷,**效能最優**。
  • 遠端介面:支援 RMI-IIOP 跨 JVM/機器呼叫,適用分散式拓撲。
  • 雙介面共存:單一應用程式碼無縫適配多種部署場景,**僅需調整部署描述符**,零代碼修改,極大降低架構鎖定風險。

二、 J2EE 應用拓撲選擇

1. All-in-One 拓撲 (圖 1)

Servlet 容器與 EJB 容器運行於同一 WebSphere Application Server、同一 JVM、同一節點。WSAD 測試環境 (WTE) 預設即此拓撲。生產環境亦常用於中小型應用。

All-in-One 拓撲

圖 1:簡單的 J2EE 應用拓撲 - All-in-One

優勢:部署簡單、延遲最低 (可用本地介面)。

2. Separate Containers 拓撲 (圖 2)

出於安全隔離、獨立擴縮或異構技術棧需求,將 Web 容器 (Tomcat) 與 EJB 容器 (WAS) 分離部署於不同節點/進程。Web 層**必須**透過遠端介面 (IIOP) 與 EJB 通訊。

Separate Containers 拓撲

圖 2:拓撲 - 分離容器

註:本文為教學清晰引入 Tomcat,實際生產 WAS 亦可同時充當高效 Web/EJB 容器。

3. 衍生測試場景

場景代號拓撲介面模式說明
All-in-One-All-LocalAll-in-One全本地同一 JVM,EJB 間、Web→EJB 均用本地介面
All-in-One-All-RemoteAll-in-One全遠端同一 JVM 但強制用遠端介面 (測試開銷基準)
Separate Containers分離容器Web→EJB 遠端,EJB 間本地真實分散式部署模擬

三、 Dual 應用架構藍圖

採用標準 MVC (Model 2) 架構:

  • Controller:DualServlet 處理 HTTP 請求、協調流程。
  • View:index.html (輸入)、result.jsp (輸出)。
  • Model:VO 模式 (Person 類) → DualSession (Stateless Session Bean) → DualEntity (CMP Entity Bean) → 資料源 dualDB (表 PERSON)。

交互鏈路:Servlet → DualSession → DualEntity → DB。

四、 構件清單與先決條件

開發產出物

  1. 3 個 EAR 模組:DualEARForAllInOne、DualEARForEJBContainer、DualEARForWeb。
  2. 1 個 Java 模組:DualJavaModule00 (含 Person VO)。
  3. 2 個 EJB 模組:DualEJBModule01 (Entity)、DualEJBModule02 (Session)。
  4. 1 個 Web 模組:DualWebModule03 (Servlet/JSP/HTML)。
  5. 1 個資料源:映射 DB2 dualDB。
  6. 2 個測試伺服器:WAS Test Environment、Tomcat Test Environment。

運行環境需求

  • DB2 V8.1
  • WebSphere Studio Application Developer 5.1 (WSAD)
  • Tomcat 4.1.29
  • 下載包含完整 EAR 模組、原始碼、測試客戶端與建表腳本。

五、 部署靈活性核心論點

**每個主要組件均可獨立部署至不同節點,零代碼修改。** 僅需在客戶端、Web 元件、EJB 元件、JDBC 驅動配置中提供相對主機名。本文為教學目的將所有組件佈署於單一開發機,但架構特性不受限定。

六、 系列文章導覽

  1. (一) 架構設計動機與應用藍圖 (本文)
  2. (二) 專案建立、實體映射與依賴配置實戰
  3. (三) JNDI 綁定配置與原始碼深度解析
  4. (四) 部署架構實戰與效能測試分析

請按序閱讀以獲得完整知識鏈路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved