在討論多層開發前,先談一下老的C/S 程式。
幾個月前,我的一個朋友找我,說是我以前給他做的一個系統,原來是在區域網路的啟動並執行,現在有兩個校區,另外一個校區也想使用,
兩個校區都可以上互連網,讓想辦法解決。我去看了一下,是我10年前給開發的c/s 系統,原始碼早都不見了。我說可以按現在的模式
重新開發一套,但是需要時間和money.朋友要求一周內就要解決,同時認為系統現有的功能已經足夠了,而且系統非常穩定,他們已經習慣操作了,
沒有必要再開發了。看現有的條件下如何快速、安全的實現兩個校區的連網運行。沒有了原始碼,只能通過網路來解決這個問題,可以把資料庫伺服器
IP直接設為公網IP,遠程直接存取。但是這是一個愚蠢的做法,因為直接把資料庫暴露在互連網上,估計不出一天伺服器就完蛋了(同時系統傳輸的資料隨時都可以被駭客或木馬嗅探)。
所以必須使用硬體VPN辦法解決這個問題了。還好現在有非常便宜的VPN 裝置(大概就是1000-2000元)。我們一天就實現了系統的擴充。
系統網路拓撲圖如下:
當然還有一種解決方案就是利用windows 的vpn 功能,伺服器端需要一台windows VPN 伺服器,用戶端需要運行程式時,先進行
VPN 撥號,然後就可以使用了,當然為了保證windows 伺服器自身的安全,必須安裝或開啟防火牆功能。
這種系統的網路拓撲圖如下:
以上兩個辦法由於不用改動原始碼,因此理論上適合任何C/S 系統程式。
當然如果有原始碼的話,我們可以更加靈活的實現以上功能,當然前提條件是對系統功能不產生任何改變。
這裡我們要使用SSH建立安全連線,SSH 是目前較可靠,專為遠程登入工作階段和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊泄露問題。
建立串連後,再使用連接埠轉寄功能,把遠端資料庫監聽連接埠,映射到本機伺服器或本機上,實現安全訪問資料庫伺服器。
delphi 裡面可以使用Devart 的 SecureBridge實現以上功能。
其工作網路拓撲圖如下: