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

Oracle Database 10g Web 服務完整指南:從資料庫虛擬化到 SOA 整合

     編輯:Oracle 資料庫基礎

兩大運作模式

模式角色核心能力典型應用
Web 服務消費者 從資料庫內部呼叫外部 Web Service JPublisher 產生 Java Proxy + PL/SQL Wrapper,支援靜態/動態調用,表函數機制將結果集視為虛擬表 即時匯率查詢、信用卡授權、外部基因資料庫、舊系統包裝
Web 服務提供者 將資料庫操作發布為 Web Service 供外部呼叫 JPublisher 產生 Java Proxy 部署至 Oracle Application Server,發布 PL/SQL、Java Stored Procedure、SQL Query/DML,支援 Ref Cursor/Boolean 映射 重用既有 PL/SQL 資產、DBA 無需懂 Java 即可服務化資料庫功能

消費者模式實作步驟

  1. 下載 Database Web Services Callout Utility (OTN 免費),解壓至 $ORACLE_HOME。
  2. 載入 dbwsclient.jar 至 SYS 或目標 Schema:
    loadjava -u sys/pwd -r -v -f -s -grant public -genmissing sqlj/lib/dbwsclient.jar
  3. 對每個目標 Web Service 執行靜態調用(推薦):
    使用 JPublisher 讀取 WSDL,產生 Java Proxy、PL/SQL Wrapper、載入資料庫。
    關鍵選項:-proxywsdl (WSDL URL)、-user (目標 Schema)、-httpproxy、-sysuser (SYSDBA)、-proxyopts=tabfun (產生表函數)、-dir (輸出目錄)。
  4. 動態調用(UTL_DBWS):運行時動態產生 Proxy,僅支援基本型別。

提供者模式架構

JPublisher 產生 Java Proxy → 部署至 OracleAS (J2EE 容器) → OracleAS 管理端點生命週期 → 呼叫端透過 SOAP/HTTP 呼叫 → Proxy 經 JDBC 呼叫資料庫操作 → 結果包裝為 SOAP 回應。
優勢:DBA/開發人員專注資料庫邏輯,無需撰寫 Java/Web Service 程式碼。

部署架構選擇:資料庫內建 vs 中介層分離

  • 資料庫內建 HTTP/SOAP 處理:技術可行,適合簡單服務,但無法滿足企業級 SOA 的擴展性、QoS 需求。
  • 中介層部署(推薦):Web Service 框架複雜、標準演進快(WS-Reliability, WS-Security, BPEL),中介層環境更靈活、升級不影響資料庫穩定性,且可統一管理資料庫層與應用層服務。

SOA 整合:Oracle Fusion Middleware 賦能

透過中介層部署,資料庫 Web Service 自動繼承企業級 SOA 能力:

  • WS-I Basic Profile 1.0 互操作性:符合 SOAP 1.1, WSDL 1.1, HTTP 1.1, XML Schema 標準。
  • 可靠訊息傳遞:OASIS WS-Reliability / WS-ReliableMessaging,保證一次/不重複/有序送達。
  • WS-Security:XML 數位簽章、加密、UsernameToken/X.509 憑證傳播,Oracle Web Services Manager 統一管理。
  • Web 服務管理:存取控制、單一登入、集中安全策略、法規遵循 (SOX, GLBA, HIPAA)、稽核監控,透過 JMX MBean 暴露。
  • BPEL 流程編排:資料庫服務成為複雜業務流程節點,支援 RPC/Encoded 與 Doc/Literal 訊息模式。

結論

資料庫 Web 服務是企業 SOA 的關鍵基礎設施。對 DBA/開發人員最大價值在於零 Java/WS 程式碼成本下,將既有 PL/SQL、SQL 資產服務化,同時獲得企業級安全、可靠、管理、編排能力。

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