pb三层架构

来源:互联网 发布:s7200plc编程软件下载 编辑:程序博客网 时间:2024/06/01 09:43

     我们的pb程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库。现在需要改成在外网可以直接操作软件。先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容易掉线。服务器申请大的带宽又太贵。把数据访问和一些业务逻辑改写成服务,由于软件太大,开发和测试需要投入大量工作,也不现实。最后通过使用SATRDA解决了问题。

    SATRDA 服务器和客户端通过HTTP实现通讯,只有需要数据交互的时候才与服务器通讯,解决了连接掉线的问题。通过提供ODBC驱动的方式,使得客户端代码不需要改变,就实现了两层到三层的转换。

SATRDA使用过程

1. 首先打开server/config目录下的dbconfig文件,

{"<span style="font-family: Arial, Helvetica, sans-serif;">odbctest</span>": {"DBType": "odbc","Provider": "driver=sql server;server=127.0.0.1;uid=sa;pwd=sql;database=test"},"orcl": {"DBType": "odbc","Provider": "driver=Oracle in OraDb10g_home1;SERVER=ORCL;uid=system;pwd=sql;EXC=T"}}

修改数据库连接设置。其中  odbctest是客户端连接的名字,可以随意取,DBType为odbc是固定的。server对应数据库服务名,uid为用户名,pwd为密码,database为数据库名,

2. 运行satserver.exe

3. 修改连接字符串如下。

//原来的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 = FalseSQLCA.DBParm = "ConnectString='driver=Smart ODBC Driver;UID=sa;PWD=123456;Server=" + ls_server +&";DB_NAME=" + ls_db + "'"


完成后,其它代码和原来一致,无需改变。


速度对比(其中服务器配置为阿里云单核1G内存1M带宽):



下载地址:

http://download.csdn.net/detail/pcwe2002/9690008

最新版本下载,交流请到QQ群:345559891 

0 0
原创粉丝点击