SAP Netweaver和Hybris的資料庫層

ABAP Netweaver

在SAP基於Netweaver的ABAP應用裡,應用開發人員用Open SQL訪問數據庫, 這些Open SQL會被Database interface(數據庫接口)轉換成各種數據庫提供商支持的原生SQL語句然後執行。

SAP Netweaver和Hybris的數據庫層

Netweaver 支持的數據庫提供商在表DBCON的DBMS字段裡能看到:

SAP Netweaver和Hybris的數據庫層

除了普通的ABAP Open SQL的語句用於業務數據的增刪查改之外,SAP CRM和C4C裡還支持Enterprise Search(有時也成為simple search,模糊搜索), 就是類似Google搜索一樣,用戶只需要指定待搜索值,而無需指定該搜索值對應的搜索條件。

SAP Netweaver和Hybris的數據庫層

在這兩個產品裡的Enterprise Search實現原理實際上是應用程序發起一個RFC(Remote Function Call)到TREX服務器上拿到查詢結果。

關於SAP TREX介紹請參考wikipedia.

https://en.wikipedia.org/wiki/TREX_search_engine

SAP Netweaver和Hybris的數據庫層

Hybris

Hybris裡也有和CRM WebUI裡的API層起同樣作用的層,封裝了對DB的操作。

SAP Netweaver和Hybris的數據庫層

Hybris裡對數據庫的訪問實現是封裝在大量以DAO(Data Access Object)結尾的Java class實現的,相當於SAP CRM API層的那些function module。

SAP Netweaver和Hybris的數據庫層

隨便點開一個DAO看實現,裡面也是拼SQL語句然後拋到DB去執行:

SAP Netweaver和Hybris的數據庫層

上圖代碼裡拼裝的SQL語句也不是數據提供商相關的原生SQL語言,而是一種新的語言,稱為Flexible Search。類似ABAP的OPEN SQL一樣,它將Hybris應用訪問數據庫層的代碼和底層數據庫解耦。

在Hybris幫助文檔上能看到支持的數據庫列表:

SAP Netweaver和Hybris的數據庫層

在Hybris開發環境下使用的數據庫名叫HSQLDB: 一個輕量級的純Java開發的開放源代碼的關係數據庫系統

SAP Netweaver和Hybris的數據庫層

原文鏈接:https://my.oschina.net/u/3771578/blog/1793604


分享到:


相關文章: