SAP Netweaver和Hybris的數據庫層

ABAP Netweaver

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

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

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

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

關於SAP TREX介紹請參考wikipedia.接口

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

Hybris

Hybris裏也有和CRM WebUI裏的API層起一樣做用的層,封裝了對DB的操做。開發

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

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

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

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

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

要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼:

相關文章
相關標籤/搜索