pb三层架构
? ? ?我們的pb程序很多是以前開發(fā)的,采用典型的CS架構(gòu),由程序直接連接數(shù)據(jù)庫。現(xiàn)在需要改成在外網(wǎng)可以直接操作軟件。先把數(shù)據(jù)庫搬到了阿里云上,測試發(fā)現(xiàn)直接連數(shù)據(jù)庫和VPN連接測試速度很慢,直連還容易掉線。服務(wù)器申請大的帶寬又太貴。把數(shù)據(jù)訪問和一些業(yè)務(wù)邏輯改寫成服務(wù),由于軟件太大,開發(fā)和測試需要投入大量工作,也不現(xiàn)實。最后通過使用SATRDA解決了問題。
? ? SATRDA 服務(wù)器和客戶端通過HTTP實現(xiàn)通訊,只有需要數(shù)據(jù)交互的時候才與服務(wù)器通訊,解決了連接掉線的問題。通過提供ODBC驅(qū)動的方式,使得客戶端代碼不需要改變,就實現(xiàn)了兩層到三層的轉(zhuǎn)換。
SATRDA使用過程
服務(wù)端配置
1.QQ群:345559891?群文件下載最新版本satrda。解壓后,運行服務(wù)端server/satserver
2.啟動satserver.exe后,打開瀏覽器(支持chrome,IE8以上,360等),輸入http://127.0.0.1:5555/admin 顯示登錄窗口,賬號和密碼都輸入satrda 登錄到后臺管理,可以進行相關(guān)配置。
3.選擇左邊連接管理,顯示連接管理界面,用于設(shè)置服務(wù)端和數(shù)據(jù)庫的連接
默認有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 + "'"?
完成后,其它代碼和原來一致,無需改變。
?
?
速度對比(其中服務(wù)器配置為阿里云單核1G內(nèi)存1M帶寬):
?
總結(jié)
- 上一篇: BZOJ 1137 半平面交
- 下一篇: NN求解NS方程进一步探讨