2015-08-14 66 views
-1

我有一個Delphi應用程序使用SQL數據庫在本地局域網上運行。德爾福 - SQL廣域網

我現在想通過廣域網(原則上)推出Delphi應用程序,因爲我想設置總部/分支機構,所以我們有許多分支機構運行Delphi應用程序,但SQL數據庫存儲在總公司總部。

這怎麼能最好地實現?

+0

在我的公司,我們通過Citrix將衛星辦公室和家庭用戶連接到總部(這幾乎就像遠程桌面)。對於160多個用戶在總部訪問MS Sql Server,它的工作就像一個魅力。 Fwiw ... – MartynA

+2

我會關心將數據庫暴露給互聯網的安全問題。理想情況下,應用程序將從客戶端服務器遷移到n層系統,但是要感謝這可能比您的僱主願意簽署更多的工作。像思傑這樣的東西可能效果最好(這是我們如何運行我們的Delphi客戶端託管的解決方案)。 Bog標準遠程桌面在總部需要大量的硬件基礎設施,具體取決於併發用戶的數量。 –

+0

是的,我同意你關於數據庫安全。這就是爲什麼我在考慮某種類型的MPLS,在專用站點(即安全WAN)之間建立專用鏈路。以n層運行應用程序是一個好主意,雖然這需要相當長一段時間來重新編碼,所以我的上司不會太高興。 –

回答

1

今天,n層/ SOA架構似乎滿足您的需求。

切勿將數據庫暴露給Internet,也不要通過Wire發送SQL請求,而是從客戶端使用設計服務。

您仍然可以使用RAD來設計您的用戶界面,但最好將您的業務邏輯和數據庫遠離應用程序。

您可以嘗試使用的DataSnap(這可能是你的Delphi的版本),或嘗試一些SOA框架,例如我們的開放源碼mORMot framework。詳盡的文檔has some chapters introducing those new concepts, like nTier/SOA/ORM/MVC。它在REST上使用HTTP和JSON,所以如果需要的話,甚至可以使用AJAX客戶端。

enter image description here

mORMot框架有一個非常獨特的master/slave replication feature,作爲其ORM能力的一部分。如果您需要,它可以輕鬆實現Main Office/Local Office data synchronization。該同步可以在實時中定義,使用WebSocket。因爲每個本地辦公室都有自己的(SQLite3自託管的)數據庫,所以主服務器的請求會少一些,而且如果主辦公室服務器崩潰,本地辦公室甚至可以繼續工作,或者在互聯網連接丟失的情況下。