pb三层架构
? ? ?我們的pb程序很多是以前開發的,采用典型的CS架構,由程序直接連接數據庫。現在需要改成在外網可以直接操作軟件。先把數據庫搬到了阿里云上,測試發現直接連數據庫和VPN連接測試速度很慢,直連還容易掉線。服務器申請大的帶寬又太貴。把數據訪問和一些業務邏輯改寫成服務,由于軟件太大,開發和測試需要投入大量工作,也不現實。最后通過使用SATRDA解決了問題。
? ? SATRDA 服務器和客戶端通過HTTP實現通訊,只有需要數據交互的時候才與服務器通訊,解決了連接掉線的問題。通過提供ODBC驅動的方式,使得客戶端代碼不需要改變,就實現了兩層到三層的轉換。
SATRDA使用過程
服務端配置
1.QQ群:345559891?群文件下載最新版本satrda。解壓后,運行服務端server/satserver
2.啟動satserver.exe后,打開瀏覽器(支持chrome,IE8以上,360等),輸入http://127.0.0.1:5555/admin 顯示登錄窗口,賬號和密碼都輸入satrda 登錄到后臺管理,可以進行相關配置。
3.選擇左邊連接管理,顯示連接管理界面,用于設置服務端和數據庫的連接
默認有3條連接配置,點擊mycon1的修改操作圖標,修改mycon1的配置
點擊測試連接,顯示連接成功后,點提交,進行保存。
PB客戶端示例
客戶端按示例修改連接字符串就可以,示例如下:
//原來的OLEDB直連 //SQLCA.DBMS = "OLE DB" //SQLCA.LogId = "sa" //SQLCA.LogPass = "sql" //SQLCA.AutoCommit = False //SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='X6P2J80LPMLFALP\SQLEXPRESS',PROVIDERSTRING='database=test'"//改為 ls_server = "127.0.0.1:5555" ls_db = "odbctest"SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='driver=Smart ODBC Driver;UID=sa;PWD=123456;Server=" + ls_server +&";DB_NAME=" + ls_db + "'"?
完成后,其它代碼和原來一致,無需改變。
?
?
速度對比(其中服務器配置為阿里云單核1G內存1M帶寬):
?
總結
- 上一篇: BZOJ 1137 半平面交
- 下一篇: NN求解NS方程进一步探讨