需求:
1.服务端初始化一个数据对象
2.多个客户端调用或者绑定该对象
3.客户端对该对象的操作后,能够使得所有客户端都能够发生变化。(数据的联动)
步骤:
1.本地化共享数据对象的实现
2.分布式共享数据对象的实现
现在我用简单的Com的方式基本实现了本地地共享数据对象
原理是客户端通过接口调用方法修改数据,然后触发连接点
发消息给所有客户端要求所有客户端重新读数据
问题是如果用来做一个系统这种方式不太方便而且效率太低
我想问问是不是有什么OLE或者其他基于Com的方式来实现
该方法能够本身带有对数据对象的操作等等功能。
不行的化所有的数据维护都得自己来做太惨了!分数不是问题,如果能够解决问题我会多多给分得了。

解决方案 »

  1.   

    可以在客户端装个组件
    定期查找
    浏览器可用ActiveX
      

  2.   

    我想我是可以通过连接点得方式实现所有客户端得联动!
    这样远比你得定期查找好得多!
    而且万一数据量大怎么办,以后做成DCOM网络负载过于大了怎么办!
    所以我肯定要在客户端做一个副本,通过连接点直接传送消息,通知所有客户端所做得修改。客户端再修改本地得副本。问题是是否有一种机制可以自动完成这些东西。否则代码量太大!
      

  3.   

    我知道,你说得这种方法正是opc,数据量大是没有办法的事情,要不怎么会有人说opc在数据量大的时候速度也不快呢?我个人认为在数据量较大的情况下,如果你用socket,自定义一个通信规约来实现数据共享,这将是一个减少网络通信量的最好方法,com库在网络上的传输量肯定会比你自定义的通信规约的传输量多得多
      

  4.   

    这位兄弟能不能说明一下什么是OPC我还不知道这种定义!
    我手上就有一个socket的控件用例,以前我们网络组的组长留下来的。
    问题是项目经理想用com完成,因为这样可以不用管网络协议。对于用户来说简便一些。
    我这里的数据有点大,可能是从数据库中读取的上万条记录在内存的映像,一般的对数据的修改可以传递一条修改指令就可以了不用反复读所有的数据。问题是客户端启动的时候一定是要从服务端读所有的数据。这个时候数据传输很大。如果按照先前那位兄弟说的是每次修改都重读,速度就很成问题了。我主要是想有没有已经比较成熟的这种技术了。不用我从com底层写代码。毕竟我才搞了不到一个月com!
      

  5.   

    想了解opc就进去
    http://www.opcfoundation.org/opc提供了一个应用程序共享数据的平台,以前dde用得很多,但是dde不可靠,根据我们的经验,应该说数据量稍大一点,dde就变得很不可靠,经常出现数据收不到的情况,组态软件基本上都支持dde,opc是在com基础上发展起来的,比起dde要稳定可靠得多(别人都这样说,我自己没测试过),只是最近听一个人提到过数据量很大的时候,opc也不快。我认为,这其实也不是缺点,数据量太大,谁都没有办法。针对你说的“问题是客户端启动的时候一定是要从服务端读所有的数据。这个时候数据传输很大。如果按照先前那位兄弟说的是每次修改都重读,速度就很成问题了”,服务器端能够接受客户端的修改数据指令,那么客户端也可以做成接收服务器端修改数据指令,这样的话,在程序运行中网络上的传输量就主要是修改的那些数据,对不对?
      

  6.   

    兄弟所言即使,我正是采用这样的方法,客户端调用服务段的接口的方法,该方法在处理的同时触发连接点事件,这样就可以触发所有的连接的客户端事件。这里可以将改变转发给所有的客户端。这点我一开始就设想到了。我的问题是是否有现成的某种技术可以实现该共享对象不用我从com底层来写,我注意到opc主要用于工控,企业信息化中主要是一套解决方案这样对我们公司可能不是很有用,这样太受对方限制,项目经理的意思是最好是一种比较共享的开放的技术,我们公司是做企业信息化的,可能更加强调过程一些,所以需要技术能动性比较大。我现在已经开始着手用com,dcom来写了。注意到opc是一个规范,前几天我在google上找到一些资料了。我尽量用这个规范来写吧!第一次做设计,小心得很。这几天公司搬家没有空上来,耽误了一些时间。谢谢你啊!