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

EJB 概觀 (下):應用角色、部署流程、容器基礎建設與 Inprise EJB 容器優勢

     編輯:J2EE

一、應用角色與部署操作角色詳細職掌

Enterprise Bean Provider

領域專家,提供業務任務、方法、Remote/Home 介面、部署描述符。專注應用邏輯,不關心分散/事務/安全系統級面向。

Application Assembler

組裝客製 Bean 與其他組件 (GUI Client、Applet、Servlet) 成完整應用。僅關心 Bean 介面,不關心實作。

Deployer (部署者)

為特定 Bean 配置操作環境:組合多 Bean、修改屬性 (部署描述符設定事務/安全策略)、整合既有 Enterprise 管理軟體。

System Administrator (系統管理員)

管理底層計算/網路服務 (含 EJB 服務/容器)。監控伺服器狀態、異常處理。用 Enterprise 管理工具透過容器 Hook 互動。

傳統開發者現兼任 Bean Provider/Assembler,專注應用問題。部署者定義策略,機制複雜性交給專門代理。

二、EJB 設計模式與命名慣例 (續)

  • 無狀態服務:提供功能不保持狀態,Client 不提供上次操作資訊 → Stateless Session Bean
  • 基於會話:產生中間層 Session 物件作 Client 代理,生命週期由 Client/服務程式決定 → Stateful Session Bean
  • 持久物件:綁定資料庫資料塊,多 Client 共享,生命期由資料存儲決定 → Entity Bean

規格中每種模式定義介面與命名慣例。

三、EJB 基礎建設

容器/服務提供者實現,處理分散式面向、事務管理、安全性。規格定義基礎建設與 Java API 要求,不指定技術/平台/協定實現細節。

  • 提供 Client-Bean 通訊通道 (安全性重要,特別是跨 Internet 存取)。
  • 加強 Bean 存取控制。
  • 保證 Bean 資料持久性。
  • 提供與企業級既存系統整合能力。
  • 所有通訊屬分散式事務一部分,由基礎建設管理。
  • 提供分散式應用管理工具 Hook 以利成功部署。

四、Container 核心概念

CORBA/RMI 解放開發者於網路傳輸 (物件定位、資料重組)。Container 更進一步:簡化安全性、事務協調、資料持久等分散式應用複雜面向。

Bean 打包成標準 ejb-jar 檔 (含一或多 Bean)。每 Bean 包含:介面、類別、部署描述符。

Bean Provider 提供之 ejb-jar 內容

  • Remote 介面:Client 可調用函數。
  • Home 介面:Client 產生/定位 Bean 實例。
  • Enterprise 類別:實現 Bean 語意。
  • Deploy Descriptor:部署者利用提供代碼未宣告資訊 (策略/屬性)。EJB 1.0 用 SessionDescriptor/EntityDescriptor 類別,1.1 建議用 XML 定義。

部署 Bean 含義

  1. 保證不同 Bean 能協同工作。
  2. 命名服務註冊 Bean。
  3. 透過 EJB 通訊系統提供存取入口。
  4. 執行事務管理與安全策略。

容器可含任意多 Bean、jar 檔。每 Bean 有部署描述符、Home/Remote 介面、實作代碼。容器亦提供部署工具。

五、為何選擇 Inprise EJB 容器?

完整服務支援

  • 完全支援 EJB 1.1 規格。
  • 有效運行/管理 EJB 容器。
  • 內建命名服務、事務服務、內嵌 Java RDBMS。編程/部署簡單。
  • 豐富範例示範 EJB/容器用法。

對 Bean 開發者的高階產品價值

完整、靈活的運行時環境

  • 100% 純 Java 服務,可單獨配置或完整分散式配置。彈性依需求調整應用。
  • 每個工具產生的 Bean 同時是 EJB 物件與 CORBA 物件。
  • 不限制 Bean/容器/機器數量對應關係。支援分散式事務協議、獨立裁決、部分配置最佳化效能。

建於 VisiBroker + RMI-IIOP 之上

  • VisiBroker 為經證明的 ORB 領導者 (大廠聯測/實際環境)。大量運行時優化、多路連線/連線池/執行緒池管理。
  • Client-Bean、Bean-Bean、Bean-CORBA 物件通訊皆用 VisiBroker IIOP。完整相容 CORBA 2.3、RMI-IIOP 以值傳遞實現 (複雜 Java 資料類型映射為 IDL 值類型)。
  • 與所有支援 RMI-over-IIOP 產品互通。
  • 安全特性由 VisiBroker 提供 (憑證從 Client 傳至服務)。
  • 事務上下文由 VisiBroker 傳播 (CORBA Client 發起事務存取 EJB 時)。
  • 兩階段提交由 Inprise ITS 管理。JDBC 支援 2PC 時 EJB 支援 2PC。

EJB 容器即 CORBA 物件

  • Java2IIOP 編譯器與容器皆相容 CORBA。容器理解 RMI 呼叫,用 IDL 存介面定義。產生 Stub/Skeleton/IDL 供其他語言 (C++、Delphi) 使用。
  • 對 CORBA Client,EJB 容器即 CORBA 服務,容器工具即 CORBA 工具。
  • 建於 JNDI/CosNaming、JTS/OTS 基礎,完全支援 CORBA。JNDI 容器可跑於其他 JNDI 實作 (如 LDAP) 上。

對多種 Bean 的支援

  • 有狀態/無狀態 Session Bean。
  • Entity Bean (CMP/BMP)。
  • 容器可含多 jar,每 jar 多 Bean,各有部署描述符、Home/Remote 介面、實作碼。

獨特的 Client 支援能力

  • VisiBroker 連線管理:單一服務支援超過 TCP 連線數的 Client 連線 (LRU 關閉)。
  • 容器本身無狀態:不為每個新 Session Bean 會話配置記憶體,支援任意多無狀態 Session Bean。

部署支援

  • 代碼生成編譯器、部署前驗證工具。
  • 支援 EJB 1.1 JNDI 命名、基於 XML 部署描述符。

事務管理器

  • 分散式兩階段提交支援。遵循 Sun JTS、OMG OTS 最新規格。開發少用 JTS,部署用健壯 ITS。

JDBC 連線池與事務整合

  • 所有 JDBC 存取透過 DataSource 實現,整合資料庫連線池、JTS 全域事務、JDBC 本地事務。

命名服務

  • 分散式命名管理。遵循 JNDI、OMG CosNaming。部署時可選 JNDI 或更健壯 INS。

安全性支援

  • 建於 CORBA 之上的 Inprise 安全服務 (附加式)。保證憑證從 Client 傳至服務。

Java 資料庫

  • 全關聯高效能資料庫儲存 Bean 狀態。可同進程或獨立進程 (效能) 運行。即插即用:終端用戶可替換後端儲存 (如用其他資料庫儲存 Session 狀態/Entity Data)。

容器管理 Entity Bean 持久性 (CMP)

  • CMP 引擎提供透明物件關係映射 (O/R Mapping) 與純 JDBC 持久框架。開放 API 允許第三方工具整合。

與其他組件整合

  • Client 連接 Bean (Java EJB 介面或 IDL CORBA 介面)。每 Bean 同時是 EJB 物件與 CORBA 物件。CORBA Client 可用 C++/Java/Delphi 實現。
  • Bean 資料庫存取 (Entity Bean,BMP/CMP)。
  • 後端服務:CORBA 服務 (C++/Java/Delphi、任何相容 ORB)、EJB 服務 (Inprise/其他 IIOP 廠商)、其他原生服務 (ERP、Mainframe 等)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved