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

EJB 技術全景:從兩層到三層、從 CORBA 到 EJB 的分布式計算演進

     編輯:Java 相關知識

前言:EJB 是什麼?

Enterprise JavaBean (EJB) 1.1 規範定義了開發、部署基於事務性、分布式對象應用的伺服器端軟體組件架構。企業可自建組件或採購第三方組件。這些伺服器端組件稱為 Enterprise Bean,駐留在 EJB 容器中,為網絡分布的客戶端提供遠程服務。

架構演進:兩層 → 三層的必然選擇

兩層 C/S 模式的瓶頸

  • 應用邏輯駐留客戶端(胖客戶端),客戶端龐大複雜
  • 直接訪問數據庫/事務服務,耦合供應商特定軟體
  • 眾多客戶端競爭單一後端資源 → 瓶頸,隨客戶端增長抑制擴展性、可用性、性能

三層架構的雙重動機

  1. 改進擴展性、可用性、性能:中間層統一管理後端資源,連接池、叢集實現資源複用與故障轉移
  2. 提升業務靈活性與可擴展性:業務邏輯與服務(安全、事務)下沉中間層,對客戶端透明,變更不影響前端

三層的可移植性紅利

客戶端與中間件均以 Java 實現 → 類文件可輕鬆重新部署至最合適主機,擺脫硬件綁定。

分布式對象技術演進脈絡

技術來源定位核心痛點
CORBAOMG開放標準,解決供應商壟斷編程模型極複雜,廠商規範一致性差,可移植性不及預期
Java RMI (JRMP)SunJava 原生遠程調用僅限 Java 語言互操作
DCOM / MTS (COM+)MicrosoftWindows 平台組件模型平台鎖定,跨語言困難
EJBSunCORBA 可移植性與複雜性的解決方案早期版本(1.x/2.x)仍過於複雜

EJB 如何解決 CORBA 難題?

1. 簡化的編程模型

  • 開發者創建可移植分布式組件——Enterprise Bean
  • 使用極簡編程模型 + 聲明式屬性創建安全、事務、持久的業務對象
  • 對比 CORBA 複雜 API,EJB 通過部署描述符聲明自動應用安全、事務等服務
  • 開發者專注業務邏輯,容器托管複雜基礎設施

2. 嚴格契約保障可移植性

  • 規範明確定義 EJB 容器(廠商伺服器)與 EJB 組件(業務對象)的契約
  • 精確規定:容器必須提供的服務、Bean 開發者使用的 API/聲明、Bean 完整生命週期
  • 廠商知曉運行時如何管理 Bean,開發者知曉 Bean 存在期間能做什麼

3. 協議無關的統一訪問語義

  • 應用伺服器可使用任意分布式網絡協議:JRMP、專有協議、IIOP
  • 但 EJB 統一使用 Java RMI-IIOP API 與語義 訪問分布式對象
  • 協議細節對應用/Bean 開發者透明,所有廠商定位/使用 Bean 方式一致

關鍵辨析:Enterprise Bean vs JavaBean

維度JavaBeanEnterprise Bean
包java.beans (J2SE)javax.ejb (J2EE 擴展)
運行範圍單機、單地址空間(進程內)多機、跨地址空間(進程間)
訪問方式本地調用遠程調用(RMI)
典型用途GUI 組件、數據傳輸對象分布式業務組件
部署要求無特殊容器必須部署於 EJB 容器

總結

EJB 簡化了分布式對象的開發、部署、訪問。它承接 CORBA 開放標準衣缽,以 Java 原生優勢解決複雜性與可移植性難題,確立了容器托管基礎設施、開發者專注業務的企業級開發範式,為後續 Spring、Java EE 奠定核心基因。

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