0
我將以下面的情況爲例。公司開發部署在客戶端的組件A(該組件位於客戶端區域,該客戶端可能不被公司信任)。組件需要訪問存儲在位於公司區域(可信區域)的數據庫服務器中的數據。該公司開發的核心模塊之一是數據模型,使用Hibernate作爲ORM。直接訪問數據庫與間接訪問數據庫
一種方法是組件A直接依賴數據模型模塊並直接訪問數據庫(通過Hibernate)。第二種方法是間接訪問數據庫,使用連接組件A和數據庫服務器的中間模塊。
將組件直接連接到數據庫服務器可能會出現哪些問題?使用API的優點是什麼?你有什麼建議?
謝謝
我知道多層架構的存在,但對我來說似乎不同,因爲這裏並不意味着單個物理機器。你認爲數據訪問層必須分發給客戶端嗎?通常,數據訪問層直接訪問數據庫(有時通過ORM工具),但直接從客戶端訪問數據庫(使用數據訪問層)會讓我認爲可能會出現安全問題。 – 2011-12-19 10:00:26
如果客戶端機器不受您的控制,並且客戶端計算機可以直接連接數據庫,則安全性可能會受到影響。 API模塊(即使它處於與客戶端應用程序不同的進程中)可能會被篡改,反向設計等。使用N層體系結構,可以使用訪問數據庫的API層,並且客戶端只能使用API層訪問一個定義良好的API,適當的安全性可能審計,讓它只執行明確定義的行爲,沒有什麼比這更少的了。 DAL將成爲您的API層的實現細節。 – softveda 2011-12-19 10:57:09
順便說一句當我說API時,我的意思是某種形式的遠程API使用低層傳輸,比如套接字,RMI/.Net遠程處理,或者更高級別的SOAP,REST等。 – softveda 2011-12-19 10:59:39