系统采用C/S结构,客户端用户比较多(几十万),客户端需要向服务器写入数据,以及从服务器得到一部分数据写入本地数据库,而且对速度要求很高,不能超过20秒,请问有什么好的解决方案?
我有以下几种解快方案,请大家评判一下,可不可行:
1.客户端直接访问数据库.
2.在服务器端写一个代理程序,负责处理客户端发过来的请求,客户端采用SOCKET的方式回送数据.(目前采用的方法,太慢,要一分钟)
3.在服务器端发布一个WEB服务,客户端直接请求.(服务器端必须用JAVA,客户端为.NET,会不会存在问题,比如大数据量时)不知那位做过这方面的应用,有没有好的解决方案,谢谢!

解决方案 »

  1.   

    如果所有的客户端全部都在一个局域网内部,那么直接写就可以啦!如果在公网上,你需要建立web service,否则没有意义。你的这个系统,应用场景是什么样?并发量有多少?业务高峰期在什么时间?
      

  2.   

    建立web service,速度可以保证?由于服务端必须用JAVA,客户端用.NET,会不会出问题
    并发量有十几万吧,业务高峰在休息时间
      

  3.   

    如果.net和j2ee一起搞,你要考虑互操作的问题。
      

  4.   


    1.客户端使用WebService,
    2.服务器端模拟一个任务队列,起到缓冲的作用,服务器段处理使用Windows服务。
    也可以试试.net Remoting,不过条件没有WebServic来的低。
    服务器端也使用队列,起到缓冲的作用。
      

  5.   

    在建立分布式应用时最常用的范例便是客户机/服务器模式。客户机/服务器模式包括连接在一个网络中的多台计算机。那些处理应用程序,请求另一计算机的服务(如访问数据库)的计算机称为客护端(Client),而处理服务请求(例如对数据库进行检索,将结果返回)的计算机称为服务器(Server)。在这种方案中客户端应用程序向服务器程序请求服务,这种方式隐含了在建立客户机/服务器间通信时的非对称性。客户机/服务器模式工作时要求有一套为客户机和服务器所公认的协议来保证服务能被提供(或接受)。根据不同的情况,协议可以是非对称的也可以是对称的。在对称的协议中,每一方都有可能扮演主从的角色;在非对称协议中,一方被不可改变的是主机,而另一方则是从机。无论具体的协议是对称的还是非对称的,当服务被提供时必然存在“客户进程”和“服务进程”。1、服务的被动性
       一个服务程序通常在一个众所周知的地址监听对服务的请求。换句话说,服务进程一直处于修满的状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务进程被“唤醒”并且为客户提供服务-对客户的请求作出适当的响应。
       客户机软件由网络借口软件, 支持用户需求的应用程序以及实现网络能力的实用程序(如电子邮件和群件)组成。网络借口软件提供各种数据传输服务。应用程序软件执行具体的任务,如字处理,电子表格和数据库查询生成。实用程序软件通常执行几乎所有网络用户都要求的标准任务。由客户机执行的计算称为前端处理。服务器软件既包括遵循于OSI或其他网络结构的网络软件,又包括由该服务器提供给网络上的应用程序或服务软件。在服务器上执行的计算称为后端处理。
     
    2、“胖客户”与“瘦客户”
         胖客户相对于客户机而言。胖即是客户机执行很多功能,分担了服务器的部分计算功能;”瘦“客户则是说客户机只是实现简单的功能。3、中间件(MiddleWaer)
         中间件是一个软件层,它保护应用程序开发人员避免受到各种通信协议、操作系统以及数据库管理系统的影响,也用它来完成身份验证,进行一些预处理等。它为建立可与以前沿袭下来的应用程序并存的新应用程序打下基础。中间件有好几种类型,包括应用程序借口(API),远程过程调用(RPC)、网络通信、数据访问以及计算机辅助软件工程(CASE)工具!
      

  6.   

    将服务段程序分开,一台用于连接数据库(resource),一台用作webservice。