首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 for z/OS Data Web Services 實戰 (上):以存儲過程為核心,零代碼發布 SOA 服務與 Web 應用

     編輯:DB2 教學

前言:從遺產資產到可重用服務

大型機上沉澱數十年的 COBOL/SQL 存儲過程,封裝核心業務邏輯並直連 VSAM、IMS、CICS、MQ 等異構資源。IBM Data Web Services (DWS) 讓這些資產以標準 SOAP/REST 介面對外公開,無需重寫代碼,配合 XSLT 更可秒變 HTML Web 應用,實現 SOA 與傳統開發的雙贏。

存儲過程類型與優勢回顧

  • Native SQL Procedure:純 SQL 撰寫,效能最佳,僅存取 DB2 資源。
  • External Procedure (C/Cobol/PL/I/Java):可呼叫既有子程式、存取非 DB2 資源 (VSAM/QSAM/IMS/MQ/CICS),重用遺產代碼。

共同優點:減少網路來回、權限最小化 (僅需 EXECUTE 權限)、簡化客戶端開發、WLM 管理下具高可用與擴展性。

業務場景:銀行帳戶查詢三部曲

三個既有存儲過程:

  1. ListCustomer:依姓名/編號/生日模糊查詢,回傳客戶清單。
  2. AccountSummary:給定客戶號,回傳帳戶摘要清單。
  3. AccountDetail:給定帳戶號,回傳詳細交易狀態。

Call Center / Bank Branch 呼叫 1→2→3;Internet Banking 登入後直接呼叫 2→3。介面定義見圖:

ListCustomer 介面 AccountSummary 介面 AccountDetail 介面

DWS 執行環境與處理流

DWS 運行時環境

  1. Client (SOAP UDF / Data Studio / 瀏覽器) 發送 SOAP/HTTP 請求。
  2. WebSphere Application Server for z/OS (WAS) 接收,轉交 DWS 通用 Servlet。
  3. Servlet 解析 SOAP → JDBC (Type 2/4) 呼叫 CALL schema.proc(...)。
  4. DB2 執行存儲過程,回傳結果集。
  5. Servlet 封裝為 XML 回應 Client。

Data Studio Developer 圖形化發布全流程

  1. 連線:Data Source Explorer 建立 DB2 for z/OS 連線 (圖 6-7)。
  2. 瀏覽存儲過程:列出目標 Schema 下的 Procedure (圖 8)。
  3. 建立 Data Development Project:Data_Account_Inquiry (圖 9)。
  4. 新增 Web Service Project:AccountInquiry (圖 10)。
  5. 拖曳存儲過程至 Web Service:自動生成操作與 CALL 語句 (圖 11-13)。
  6. Build & Deploy → 產生 WAR:勾選包含 Test Client (圖 14-15)。
  7. 取得 WAR 路徑:Navigator → Properties (圖 16)。

WAS for z/OS 安裝與測試

  1. ISC 定義 JNDI Data Source:jdbc/DBLN (Type 4, DB2 Location RDBNDBLN, Port 446)。
  2. Applications → Install New Application 上傳 WAR。
  3. Enterprise Applications → Start 啟動。

測試工具鏈

  • DB2 for z/OS SOAP UDF:SQL 內直接呼叫 Web Service (需完成 UDF 設定)。
  • Data Studio Web Services Explorer:圖形化測試。
  • Data Web Service Test Client:WAR 內建瀏覽器介面。

本文採 SOAP UDF 展示:

VALUES DB2XML.SOAPHTTPV(
  'https://host:port/AccountInquiry/ListCustomer',  -- Endpoint
  'ListCustomer',                                  -- SOAP Action
  '...John...'  -- Request
)

回傳 VARCHAR XML,存檔格式化後清晰可見 (圖 18-19)。AccountSummary / AccountDetail 同理 (圖 20-21)。

XSLT 轉換:XML 秒變 HTML Web 應用

運行時擴展:REST 風格 + XSLT 輸出轉換

含 XSLT 的 DWS 環境

  1. 瀏覽器發送 HTTP GET (REST 風格 URL)。
  2. WAS 接收 → DWS Servlet → JDBC 呼叫存儲過程。
  3. XML 回應經 XSLT Processor 轉換為 HTML。
  4. 瀏覽器渲染 HTML,超連結支援鑽取 (ListCustomer → AccountSummary → AccountDetail)。

三份 XSLT 樣式表 (隨源碼提供)

操作XSLT 檔案關鍵輸出
ListCustomerListCustomertoHtml.xsl客戶表格,客戶號超連結帶參數呼叫 AccountSummary
AccountSummaryAccountSummarytoHtml.xsl帳戶表格,帳號超連結呼叫 AccountDetail
AccountDetailAccountDetailtoHtml.xsl詳細資訊卡片,無後續鑽取

轉換前後對比 (圖 23-31):XML 結構化資料 → 含超連結的 HTML 表格/卡片。

綁定 XSLT 至操作

  1. Data Project Explorer 右鍵操作 → Manage XSLT (圖 32)。
  2. Configure XSL 選擇對應 .xsl 檔 (圖 33)。
  3. 重新 Build WAR → 重新安裝至 WAS。

實測:瀏覽器體驗零代碼 Web 應用

  1. 輸入 REST URL:https://host:port/AccountInquiry/ListCustomer?cusName=John (參數 URL 編碼)。
  2. 呈現客戶清單 (圖 34),點擊客戶號 36505633552。
  3. 自動導向 AccountSummary (圖 35),顯示該客戶帳戶。
  4. 點擊帳號 9000000002,進入 AccountDetail (圖 36)。

全程無 Java/JS 代碼,純配置 + XSLT 完成。

結語與展望

DWS 讓 DB2 for z/OS 存儲過程零改造成為 SOA 服務,XSLT 再橋接 Web 體驗。後端開發人員無需 Java 技能即可參與服務化。下集將介紹 User-Defined Function (UDF) 整合 z/OS Data Set 與 USS 檔案系統,進一步拓展 DWS 資料來源邊界。

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