2007 年,IBM Master Data Management 團隊規劃 WebSphere Customer Center 重要新版(更名為 IBM InfoSphere Master Data Management Server),架構關鍵決策之一是如何處理基於 EJB 2 容器管理持久性(CMP)實體 Bean 與本地 JDBC 呼叫的現有持久機制——該機制正逐漸過時。本文為兩部分系列之首,闡述為何決定採用 pureQuery 技術、遷移規劃、以及驗證決策的效能與功能測試結果。
IBM InfoSphere MDM Server 管理驅動組織核心業務流程的主資料實體(客戶、帳戶、產品),提供全面 MDM 解決方案,具備服務所有主資料管理方法的高度開箱即用功能。使用 MDM Server,組織可將關鍵資料集中至單一受信來源——識別最高價值客戶、增加收入、降低成本、從既有系統獲取更大價值、提升客戶滿意度、快速發現新市場。

MDM 系統關鍵共同需求:統一多域主資料庫(知識層)、提供 SOA 業務服務操作查詢資料、管理資料品質正確性、提供智能前瞻業務邏輯參與資料生命週期、提供資料治理功能實現審計交易與資料存取安全。
實際上,MDM Server 為 SOA 應用,擁有豐富預定義業務服務維護資料庫主資料。接受 XML 格式更新請求 → 解析為物件 → 安全檢查 → 驗證標準化複寫 → 透過持久層套用變更。持久層為本文關注焦點。MDM Server 為 WebSphere Customer Center 繼任者,增強帳戶與產品主資料域。
IBM Data Studio 產品組合提供整合、模組化資料管理環境,跨資料管理生命週期設計、開發、部署、管理資料與應用。本文聚焦 Data Studio Developer 與 Data Studio pureQuery Runtime 提供的 pureQuery 技術:構建於 JDBC 之上的高效能 Java 資料存取技術,簡化資料庫應用與服務開發部署。pureQuery 在 Java 與資料庫間搭建橋樑,解決連結兩領域的大量效能與生產力問題。
直接寫 JDBC 冗長乏味,且需精通 JDBC/SQL 才能確保高效。為獲最佳效能,開發者必須掌握 JDBC API、善用批次處理與結果優化等特性。ORM 框架雖減少初始工作,但診斷執行期效能問題時增加開銷與複雜度——開發者無法控制發送到資料庫的 SQL,難以修改 SQL 或確定發出應用。pureQuery 解決這些問題:
注意:pureQuery 非成熟持久層,無受管物件支援;若需成熟持久層/受管物件,可能需 OpenJPA 等。未來版本望向所有 Java 應用(不限 pureQuery API 編寫)實現優勢。
使用兩種機制:因 EJB 2 查詢效能問題,早期決定查詢操作用直接 JDBC 呼叫,CRUD 操作用 EJB 2 CMP。

四層架構(左至右):請求框架操作轉換訊息 → Tx 控制器處理交易邏輯 → 業務元件處理元件邏輯 → 持久層(CMP 實體 Bean)執行 CRUD。業務元件從業務物件 (BObj) 取得實體物件 (EObj) 送持久層,返回後再以 BObj 包裝 EObj。EObj 與表一對一映射,作為持久層與業務元件間傳輸物件。

查詢操作持久層由業務元件呼叫,支援直接 JDBC 呼叫。查詢參數傳遞至 BObjQuery(不同業務元件有不同實現)→ 呼叫共用 SQLQuery 類取得 SQL ResultSet → 傳遞至 ResultSetProcessor 建立業務物件(每業務元件有特定實現)。
基於問題與未來規劃,需新持久機制,要求:
調查三種機制:現有 EJB 2/CMP、EJB 3/JPA、pureQuery。前二者為受管持久方案,pureQuery 非。表 1 依需求評價:
| 評價維度 | EJB 2/CMP | EJB 3/JPA | pureQuery |
|---|---|---|---|
| 簡單 O/R 映射 | 半支援 | 完全支援 POJO 風格 | 完全支援 POJO 風格 |
| 易於開發/跨伺服器運行 | 複雜(不同 CMP 實現產生不同碼) | 簡單(不同 JPA 實現產生不同碼) | 簡單(Java 編輯器整合 SQL 輔助,跨伺服器單一碼產生) |
| 彈性與擴展性 | 產生 CRUD SQL 不可改 | 產生 INSERT SQL 不可改 | 產生 CRUD SQL 可改 |
| 效能 | 基準(查詢差、更新需讀寫、實體管理額外成本) | 較好(JPA 查詢 API 執行查詢、仍需讀寫更新、實體管理成本) | 最好(查詢 API/方法風格佳、更新只需更新、無實體管理成本) |
| 遷移與向後相容 | 無遷移(起點) | 需遷移,基於 JEE 規範向後相容 | 需遷移,基於設計向後相容 |
| 技術可用性 | 可用 | 可用 | 可用(預發布碼) |
| 技術路線圖 | 不推薦 | JCP 掌控,新特性採用可能較慢 | IBM 持久策略一致的清晰路線圖,可快速採用新特性 |
| 風險 | 伺服器停止支援未來高成本、實體管理潛在效能問題 | 實體管理潛在效能問題 | 風險最小 |
顯然,受管持久方案不符團隊編程模型,團隊欲釋放 SQL 威力而非隱藏它,實體管理增加不必要開銷且負面影響效能。鑑於 Data Studio Developer 工具對 SQL 開發的協助與以資料為中心的開發關注,pureQuery 成最自然選擇。為支援決策,制定計畫驗證技術:
本文概述 MDM Server 與 pureQuery,深入剖析 Customer Center 原持久機制與問題,依期望比較三技術,pureQuery 脫穎而出並制定執行計畫。下期將詳細討論技術驗證結果:遷移實體 Bean 至 pureQuery 的開發者生產力、查詢與 CRUD 效能結果、交易一致性,並分享經驗教訓助類似專案。