我正在参与一个客户/服务器系统的开发,用到三层结构,但是普通的Com技术如果应用在网络环境下,对网络通讯的压力较大。我看到有一些软件应用了DCOM技术,有谁能解释一下DCOM编程和COM最大的不同。我有一个设想不知如何实现,就是在客户端只传递很少的信息到服务器,在服务器运行一个消息接受的服务程序,服务端程序与后台数据库通过中间层访问(也就是说,服务端采用三层结构),所有处理在服务器完成,处理结果以消息的方式发送到客户端。不知这样是否可行?如果有例程更好。十分感谢!

解决方案 »

  1.   

    按你的想法可采用B/S三层结构,客户端用WEB浏览,服务器端运行WEB服务器软件,中间层为COM组件,完成商务逻辑运算,负责数据库和WEB服务器的数据交换。
      

  2.   

    一篇很好的文章:
    http://www.ourfly.com/forum/View.aspx?fbId=9&Id=307
      

  3.   

    非常感谢各位的大力支持,楼上推荐的文章我也曾经看过,但是采用此种方式,对于客户端来说调用的是本地的动态链接文件,而本地动态链接文件仍然是采用ADO来访问服务器端的数据库。按照我以往的体验,此种经客户端通过ADO访问服务器上数据库的方式,网络占用还是太大。至于采用B/S结构,虽然可以实现,但是并非我想要的结果。也就是说,在服务器端还是采用C/S结构,因为是本地访问数据库不会增加网络压力,只是在服务器端做一个消息服务器来完成客户端请求和服务端处理结果的传递。我想知道这种服务端程序如何实现?
      

  4.   

    用sock套接字数据包来做服务器有一端口监听,接收请求,调用本地com组件访问数据库,通过sock返回处理后的数据客户机通过sock发送特定数据包来请求数据,并接收处理服务器返回的数据
    建议数据包使用xml,并在此基础上自定义业务协议需要考虑的是服务器端的多线程处理,不过VB就不太适合干这个了
      

  5.   

    不过现在的DCOM是不好,不能穿透防火墙,用VB.net+XML比较好
    我试过用vb.net+6.0的socket控件来做,效果好象还行