求助:OPCServer结构 点击:1416 | 回复:2



tomzhu

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2002年6月20日
发表于:2003-10-13 10:19:00
楼主
在认识OPCServer的过程中,我有一个小小的疑惑,望各位指教! 众所周知,OPC是基于COM/DCOM技术的,在COM规范中有两个很重要的概念既 包容与聚合,具体意义我不在此解释。而OPC规范中提到,要开发OPC服务器,要 用到两个重要的COM对象即OPCServer和OPCGroup,这两个COM对象都有自己的 一大堆接口。当客户方访问服务器方时,总是先创建OPCServer对象,再由 OPCServer创建OPCGroup对象,然后由OPCGroup对象操作Items。 所以有个问题是,在用VC++开发OPC数据服务器,我想知道OPCServer与OPCGroup 这两个对象是采用包容关系还是聚合关系好呢?望指教!!!



OPCStorm

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2002年12月09日
发表于:2002-12-09 00:50:00
1楼
因为OPCGroup不需要通过CLSID来创建,因此不需要对外公开(不需注册),它只要符合OPCGroup的接口就行了,因此,它可以是组件内部的类(从IUnknown,IOPC...等接口继承),因此,就谈不上组件技术中的包容和聚合的说法了。可以在OPCServer中设一个OPCGroup的数组或向量(vector)。 包容和聚合都是组件技术中实现组件复用的两种不同的技术,如: A和B是两个组件,A要复用B,也即A也要实现B的接口(注意:OPCServer不需要实现OPCGroup的接口),那么,用包容技术实际上是在A内部包含一个B的对象作为成员,然后A在其要实现B的接口时直接用B的相关接口函数作为其实现;而聚合则是直接将B的接口对外公开,就像B和A是合为一体了,二者生命期一致,这样就要求二者生命期的管理一致,增加了复杂性。

parrot

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 12回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2002年12月30日
发表于:2003-10-13 10:19:00
2楼
说得对,可是OPCServer中设一个OPCGroup的数组,OPCGroup本身也是一个接口呀,如何进行生成实例呢

热门招聘
相关主题

官方公众号

智造工程师