做一个系统,客户端大概有1000多个,这样的系统,用什么架构才保证了数据能够快速传递和数据的安全性问题呢??用c/s架构的话,数据库应该放在哪里呢??如果说主要的数据库放入服务器中,并且在每个客户端上面也放入一个次要数据库的话,再用定时器来将服务器的数据拷贝到客户端的数据库里面,这样的话,会不会对数据库的安全有很多的帮助呢??

解决方案 »

  1.   

    三层,数据传输用socket,后台运算程序使用线程池,每个线程分批处理请求,不过服务器性能也是有要求的
      

  2.   

    我之前做过一个简单的三层的例子,可是那个客户端有限制,一旦到了8个左右就出错了,不知道是什么原因?报错信息是:“cannot find engine configuration file”,这个是什么问题呢??
      

  3.   

    使用ADO,并发问题ADO都会自动处理好。
    两层,在无论在开发效率和行动效率上,都要快于三层。当然,很多并发连接,其性能主要决定于数据库
      

  4.   

    如果支持1000客户端,服务器是个考验,这个也无法表达,需要你仔细调试,然后找出问题的根源,提高性能。一般三层很难支持到1000,用INDY可以,如果追求更高就自己写SOCKET用完成端口
      

  5.   

    如果是c/s,后台就是数据库,通信不用你担心,
    但是安全(基本无解)、限制(如果用户位于互联网,只能开放数据库服务端口)、数据库的许可费(通过连接池解决)是个问题如果采用b/s,开发起来比较累(使用c#可能会方便一些),用户的使用效果也差一点如果采用client/webserver,楼上的担心也可以不用了:现成的webserver比你自己写的socket服务稳定、高效的多
      

  6.   

    数据库效率不用担心,倒是重点放在安全上
    偶公司就七八百台电脑,数据库Session 2500个左右 
      

  7.   

    如果数据库不是mssql,c/s还需要安装数据库驱动,有些是很讨厌的(如db2的驱动是按光盘计算的)
      

  8.   

    1000多个客户端,用三层根本就是不可能的,可以用二层,那就不存在服务器端了,客户端直接连数据就是了,这样估计对数据库的压力也是很大的通过SOCKET是个不错的选择,当然1000多个客户端同时连接服务器端的话,INDY10以前的版本也不大好办,如果数据量不大,且不是长连接,INDY也是可以考虑的或者你直接调用API来实现也行,直接非阻塞模式就可以了,IOCP不是必须的,但IOCP效率会更高些,可喜的是INDY10开始,已经支持IOCP了,楼主自己研究下吧
      

  9.   

    直接用API?winsocket?可能会把自己累跛的。
    如果你的客户端界面不是很复杂,可以考虑这样的方案:
    数据库使用oracle,用intraweb开发,编译成dll方式在iis中发布,速度会非常的快。