客户要求开发一个进销存系统:
一、环境如下:
1.开发环境是:Delphi5.0+Sql 7.0;
2.在一个城市内,有多个网点,通过VPN联接,带宽为512k(可看成是一个只有512K带宽的局域网)。
二、系统初期目标:
1.各个网点都要使用本系统(能下订单、查库存、进行相关审核等);
2.希望各网点数据能实时同步;
三、系统远期目标:
1.能在Internet范围内使用本系统。
针对第初期目标,现在两个初步建议:
1、开发三层系统,通过SocketConnection/DCOMConnection作一分布式系统,只架一台SQL服务器。
2、通过SQL发布--订阅方式自动同步,每个网点架一SQL服务器。
就这样,若各位有什么看法,欢迎计论。
用方式一,如用方式2就要解决数同步问题
如果走VPN,方式二同样可行。
小弟看法是:如果数据量大的话用方法二比较妥当!
原因:1、能加快局部数据访问的请求!
2、设置SQL服务器的数据自动同步相对来说,不是很难!
3、客户端的程序比方法1会简单的多!
4、发生同时操作同一条记录的几率降低!如果记录操作不是很频繁的话,不必考虑记录锁定的问题!!
5、WEB方式的安全性太低,不适合进销存系统!
以上是本人的一点看法,请各位大哥多提建议
1.第一种方案a.是否考虑过效率问题,b.如果服务器不能运行怎么处理.
2.对于第二种方案可以这样改进
每个分网点都单独运行,然后总部有台服务器负责数据同步。分网点和总部数据间通过msmq同步。
不是作成SocketConnection/DCOMConnection方式吧!
不用解决数据同步的问题!
up
msmq是MS的消息队列服务,是用来实现进程间的异步通讯的
用MSMQ就可以作到了,服务器出问题了,客户端照常运行
b\s比较适合逻辑比较简单的情况,如果很复杂的话用b\s很麻烦的。
二.2不太好吧,我认为如果用GPRS专线还可行,因为它“发呆”不要钱,只有有数据流通时才收费的
3.WEB方式:一是界面不够理想,二是效率底下;但好处是客户端可以不做任何设定。
我在考MCSD的时候,微软是建议用WEB方式的,理由最主要的是维护方便,如果你的客户端需要升级,那么WEB方式将只要更新你的服务器,而C/S方式意味着你的维护每一台客户。
从安全角度来讲,其他方式都有安全问题,C/S方式将SQL服务器暴露在INTERNET上,可能更危险。
其实如果你们用过银行的网上交易系统,我觉得你们要的就是哪个样子。
考虑到安全性建议C/S结构,
WEB的方式大家都清楚,真正用到企业管理不建议使用。
我建议开发应该以客户安全性为第一重任
to h_q_p() :
不是的,我没有用MSMQ或其他的MQ,我不是说我们的中间件比他们的要好,我们的不可能与M$相比。但你用任何别人的东西都不可能针对自己的项目进行有效的优化。当然如果你用MQ也是一个相当不错的选择,只是有可能出现你无法控制的BUG,或无法实现的功能。我比较喜欢“掌握一切”。至于"...在服务器不能工作时客户端仍能工作...",我是记录所有因该发往服务器的通信包,待服务器起来后再送过去。安全性方面,我们有自己写的3DES模块。当然自己写的东西不见得是最好的,但它肯定是在自己的项目中最实用的,且不断地写可以把BOSS的技术力量不断的积累起来,BOSS会为你考虑一些问题的