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

企業 JavaBeans 技術白皮書:架構設計目標、組件模型與開發角色

     編輯:J2EE

企業開發面臨的挑戰

  • 分散式商務應用開發複雜度高
  • 需可靠執行商務邏輯 → 綜合化程度更高
  • 企業營運環境多樣,期望「寫一次,到處部署」,不受單一平台限制

EJB 技術正是為此而生:可重用伺服器端組件,建立可升級、安全、跨平台、商務導向應用。

什麼是企業 JavaBeans 技術?

Java 平台上的伺服器端組件模型。讓開發者專注商務邏輯,消除編寫「管道代碼」(交易、安全、連線池、執行緒) 的需求,委託伺服器廠商完成。

核心收益

  • 生產力:專注商務邏輯,效率倍增
  • 業界支援:25+ 公司接受/支援/應用,多方案選擇
  • 投資保護:建立於既有系統之上,今日系統明日運行 EJB
  • 架構獨立:隔離開發者與底層中介軟體,廠商可改進中介層不干擾應用
  • 伺服器端 Write Once, Run Anywhere:只要伺服器提供 EJB API,應用即可運行

設計目標

  • 減少建立分散式應用過程:將手工編碼特性轉為 Bean 宣告屬性 (安全/交易以「標記」設定)
  • 建立底層結構處理系統級編程 (交易、安全、執行緒、命名、物件生命週期、資源共享、遠端存取、持久化)
  • 簡化存取既有應用,提供統一開發模型供工具建立/使用

企業應用程式模型:兩大基本模式

  1. Session Bean:客戶從對象開始對話,對象代表客戶執行工作 (含多重資料庫交易)。瞬時對話、資料庫讀寫在交易中、狀態瞬時 (伺服器/客戶崩潰即消失)。典型用於 PL/SQL 等資料庫程式語言。
  2. Entity Bean:客戶存取代表資料庫實體的對象。代表資料及操作方法。關聯式資料庫每列一 Bean。交易性、長壽命 (資料存在 Bean 即存在)。典型用於物件導向資料庫。

注意:EJB 規範強制支援 Session Bean,Entity Bean 1.x 為選擇性,2.0 將強制。

EJB 架構圖解

EJB 架構

EJB 架構

  • 支援任何客戶端類型,不強制遠端協議 (RMI/IIOP/DCOM 皆可),客戶端不限 Java
  • EJB Server:分散式交易/物件管理/調用、低層系統服務集合,管理 EJB 組件資源
  • Container:Bean 生活環境,提供可升級/安全/交易環境,處理物件生命週期、狀態管理
  • Container 透明於客戶端,安裝 Bean 時提供:EJBHome 實作、Remote 介面實作 (EJBObject)、JNDI 發布 EJBHome
  • EJBObject 代理遠端呼叫,轉派至 Bean 實例
  • EJBHome 允許建立/清除/查詢 Bean,Entity Bean 含 Finder 方法

關鍵特性

  • 分散式交易支援:部署階段宣告交易行為,負擔轉移容器/伺服器;高階需求可程式化管理
  • 安全:發揮 Java 安全模型,兩種方式:EJB-JAR 安全描述符、Java.security 程式化管理
  • 通訊協議獨立:客戶端免選擇協議,伺服器建立者實作最重要協議 (ORB→CORBA, UNIX→RMI+CORBA),對 Bean 開發者透明
  • Java 平台繼承優勢:跨平台部署、升級性 (效能問題可遷移至高效能平台)
  • 專用容器簡化既有應用存取:非 Java 應用以 Bean 形式出現,Java 開發者無需了解既有系統即可存取

五大開發角色

  1. Server Provider:分散式交易專家 (資料庫/TP 監控器廠商)
  2. Container Provider:系統程式專家,橋接既有應用 (SAP R/3, CICS),需安全/升級/交易經驗
  3. Enterprise Bean Provider:領域專家,撰寫商務邏輯 Bean,產出 EJB JAR (物件庫廠商)
  4. Application Assembler:領域專家,用第三方 Bean 建立應用,可能建立客戶端 GUI
  5. Deployer:熟悉企業營運環境,設定安全/交易描述符,可能修正商務邏輯

開發流程範例:帳戶檢查 Session Bean

  1. 用 IDE (Java Workshop, Cafe, JBuilder) 撰寫商務邏輯
  2. 編譯打包成 EJB JAR (含序列化 DeploymentDescriptor:安全/交易設定)
  3. 用伺服器廠商部署工具安裝 Bean
  4. 部署者設定站點屬性 (交易模式/安全等級)
  5. 客戶端調用遠端方法

電子商務範例:購物車 Bean

// Remote Interface
public interface ShoppingCart extends EJBObject {
    boolean addItem(int itemNumber) throws RemoteException;
    boolean purchase() throws RemoteException;
}

// Bean Class
public class ShoppingCartEJB implements SessionBean {
    public boolean addItem(int itemNumber) { /* JDBC code */ }
    public boolean purchase() { /* JDBC update */ }
    public void ejbCreate(String accountName, String account) { /* init */ }
}

// Home Interface
public interface CartHome extends EJBHome {
    ShoppingCart create(String customerName, String account) throws RemoteException, BadAccountException;
}

// Client
Context ctx = new InitialContext();
CartHome home = (CartHome) ctx.lookup("application/mall/shopping-carts");
ShoppingCart cart = home.create("Emma", "0507");
cart.addItem(100);
cart.addItem(251);
cart.purchase();

EJB 未來發展

  • 1.0 規範 (1998 JavaOne) 奠定基礎,非終點
  • 需改進:持久化物件模型、標準化開發工具/系統協議、統一除錯介面
  • 相容性計劃:定義「EJB 相容」伺服器標準、確保不同廠商伺服器互操作性

結論

EJB 技術提供開發/部署/管理分散式商務應用新途徑,簡化可重用伺服器組件開發,無需擔心系統級編程。代表企業應用開發/部署/管理簡化的巨大進步。

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