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

Enterprise JavaBeans 組件全景解析 (一):技術演進、設計目標、核心優勢與 JNDI/JTA 基石

     編輯:Java 相關知識

從 Applet 到企業級平台的演進

  • JDK 1.0 時代: Applet 與 Application 為核心,無伺服器專用 API
  • Servlet 規範誕生: 專為 Web 伺服器設計的 Java 類別,請求-回應模型,效能與可攜性遠超 CGI
  • 三層架構興起: 解決兩層 (Client/Server) 擴展性瓶頸,中間層承載業務邏輯,Web Browser 成瘦客戶端

JavaBeans 組件模型奠基

  • 可視化建構工具支援、屬性/方法/事件慣例、內省、持久化、可定制
  • 非限於 GUI,同樣適用伺服器端
  • EJB 將組件模型從客戶端延伸至伺服器端

J2EE 平台整合藍圖

Sun 發起 Java 2 Platform, Enterprise Edition (J2EE),整合關鍵技術:

  • EJB、Java IDL、JMS、JNDI、RMI/序列化、Servlet、JTA/JTS、JSP、JDBC
  • 各技術獨立規範,EJB 規範明確宣告對 JNDI (命名)、JTA (事務) 的相依

EJB 設計目標 (規範 1.0)

  1. 標準化分散式 OO 商務應用組件架構,支援多廠商組件組裝
  2. 簡化開發:應用開發者免處理事務、狀態、執行緒、資源共享等底層複雜度
  3. Write Once, Run Anywhere:Bean 僅開發一次,多平台部署免重編譯
  4. 涵蓋開發、部署、運行全生命週期
  5. 多廠商工具互操作約定
  6. 相容既有伺服器平台,廠商可擴展支援
  7. 相容其他 Java API
  8. 非 Java 應用互操作性
  9. 相容 CORBA

採用 EJB 的七大核心優勢

  1. 開發簡化: 容器代管系統服務 (事務、安全、連接池...)
  2. 可攜性: 標準化 Bean-Container API,跨環境免改碼
  3. 組件裝配: 如客戶端 JavaBeans 般裝配伺服器應用
  4. 內建企業服務: 分散式物件、事務、資料庫、安全、全域命名
  5. 多廠商選擇: Bean/Container/Server 可混搭,標準保證互操作
  6. 可擴展性: 組件嚴格分離,應用可跨伺服器遷移擴展
  7. 保護投資: Legacy 系統包裝成 Entity Bean 接入 Web 前端,免重寫

JNDI:命名服務的統一抽象層

雙層架構

  • JNDI API: 應用端統一介面,廠商中立
  • JNDI SPI: 服務提供者介面,對接 LDAP、NIS、COS Naming、檔案系統、RMI Registry、Novell NDS 等

核心概念

  • Binding (名稱-物件綁定)、Context (綁定集合)、Naming System、Namespace
  • 名稱分類:Atomic、Compound、Composite
  • 所有操作從 InitialContext 起始

EJB 應用中的角色

Context ctx = new InitialContext();
CartHome home = (CartHome) PortableRemoteObject.narrow(
    ctx.lookup("applications/shopping_cart"), CartHome.class);

容器部署時建立名稱綁定,應用透過 JNDI 查找 Bean 起始引用,實現位置透明。

JTA:分散式事務的 Java 標準

事務 ACID 特性

  • Atomicity (原子性)、Consistency (一致性)、Isolation (隔離性)、Durability (持久性)

規範體系

  • OMG OTS (Object Transaction Service) — 語言中立基礎
  • JTS (Java Transaction Service) — OTS 的 Java Mapping (org.omg.CosTransactions)
  • JTA (Java Transaction API) — 應用層介面 (javax.transaction),支援應用/伺服器/外部管理器三種管理模式
  • XA Interface — 資源管理器與外部事務管理器協議,JTA 包含其 Java Mapping

關鍵介面

javax.transaction.UserTransaction:begin/commit/rollback/setTransactionTimeout,供 BMT Bean 與 Java 客戶端使用。

系列導讀

本文為三部曲第一篇。第二篇將深入程式設計模型、介面代理、容器架構與 Bean 類型;第三篇涵蓋部署流程、持久化策略、事務安全與三層架構實戰。

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