COM和COM+的主要区别是什么?请高手简要说下

解决方案 »

  1.   

    COM是一个组件的二进制标准,COM+是微软操作系统Windows2000以上关于COM、DCOM的一套软件系统体系结构
      

  2.   

    以前微软DNA架构是基于COM的,提供了整套的解决方案;
    但现在是基于.NET的,与COM不兼容,但提供了互操作的方法;很多现成的COM的东西,也不可能抛弃的
      

  3.   

    ///主要区别是COM+多一个加号
    呵呵,这个解释好
      

  4.   

    com很难用,COM+用起来很顺手。
      

  5.   

    简单说一点
    COM就是独立于开发平台的二进制兼容的组件模型,是一种规范。你可以用VB、Delphi、VC等来开发COM组件。COM是几乎Windows平台下所有组件模型的基础(例如DCOM、ActiveX、OLE2、COM+等)。当然Corba和.NET不在此列。
    但是对于企业开发,COM有一些局限,例如事务处理、对象池等都不能实现、组件生命周期也需要开发人员编程来实现维护,COM+是为了满足这些要求提出的规范。
    简单来说,COM+是在COM基础上的企业级组件模型
      

  6.   

    COM+系列学习篇之一
    这个系列主要阐述COM+的一些概念,配置等问题,希望大家能提出批评意见
    文章可能没有连贯性,但是不影响每篇文章的完整性1. COM+的简单介绍及与其他的关系
    可能有许多人已经用COM设计过应用程序并知道它有很多局限性。实际上,这项技术的一个主要问题是它不太适用于通常通过公司的局域网(LAN)或广域网(WAN)进行发布的企业级应用程序。
    MS很久以前就意识到了这种限制,并试图通过分布式COM(DCOM)来弥补这个缺陷。
    但是DCOM也存在一些限制,所以MS在Windows2000中提出了COM+.
    COM+不是一项新技术,它是对当前技术的一个扩充。
    COM+中增加的主要东西包括两种已有的技术,微软事务服务器(MTS)和微软消息对列(MSMQ)。MTS通过事务增加了COM的可靠性。它确保每次COM数据传输至少发生一次,而且只有一次。另一方面MSMQ还改正了另一个与COM有关的问题,就是紧密连接的应用程序的问题。当使用位于本地机器上的应用程序时,客户和服务器同时存在。但是分布式应用程序就不能保证这一点。用户可能在没有连接到服务器上但同时又创建了新的工作。分布式应用程序需要提供一个强健的环境,允许用户在服务器处于不可用状态时仍然可以工作。
    1.1 COM+的历史
    DDE和OLE是MS早期的东东。后来OLE发展成了ActiveX(一种特殊类型的组件技术)。ActiveX实际上包含有DDE和OLE中的多种概念和技术,它增加了一种思想,既可以将ActiveX控件(独立的专用程序或库,通常很小)用于传统的应用程序或嵌入到HTML文档中在internet上使用。
    DCOM它依赖于开放软件基金会(OSF)分布式计算环境(DCE)的远程程序调用网络协议获得了成功。它可以使应用程序通过网络以DDE、OLE和COM进行通信。另外,DCOM创建的链接即安全又持久。如果移动了服务器端的组件,则客户机无论如何也找不到它。不过,排除掉那些不合理的东西DCOM还是十分可靠的。
    DCOM的问题在于它与协议结合的台紧密了。这意味着客户和服务器必须同时存在并且在他们之间有连接。
    DCOM还存在其他的问题。对于一次通信至少要发生一次而且只能发生一次来说DCOM就不能提供任何保证。
    那么COM+有多好呢?实际上COM+是三种技术的结合:DCOM、MTS和MSMQ。DCOM有一个并且只有一个问题,就是信息的传输。将MTS加进来就解决了这个问题。现在每次数据传输都将作为一个事务而发生,这就意味着每次传输将只发生一次,而且至少发生一次。DCOM不能在非连接的环境中工作。MSMQ使用一个消息协议解决了这个问题。
    1.2 COM+要点
    COM+有两种连通性。第一,COM+所包含的MTS确保了通信的可靠性。每一次通性都保证发生且仅发生一次。第二,非连接的应用程序的开发意味着无论在何处都可以产生数据,即使没有直接连接到服务器也可以。1.3 COM+和COM的比较
    从创建组件的角度来讲,COM和COM+是相同的。实际上,在谈及组件时COM+仅是对现存COM技术的一个扩充。COM+是COM的一个超集,所以在应用程序中用COM+代替COM不会丢失任何东西。
    1.4 COM+设计目标
    一个主要的目标是使服务器组件的开发能像客户端的组件的开发一样容易。COM+消除了大量的由多用户环境所带来的问题。如多个用户同时对同一组件进行访问。
    第二个目标是使企业级的开发变得容易。创建适用于任何规模的组件。
    1.5 COM+服务
    事件:应用程序能够接收到服务器上产生的事件,就好像发生在本地机器上一样。
    安全性:COM+实际上依靠MTS来实现它的安全性。
    组件负载平衡:
    队列组件:
    补偿资源管理器:实际上是在老的服务器应用程序上搭建一个支架,使客户机可以用COM+提供的所有新功能对应用程序进行访问。
    管理:使用MMC插件对服务器端的组件进行管理。
    发布/预定事件模型:这种新模型使开发人员可以创建一种应用程序,在执行一项任务时可以不用知道彼此的情况。组件将事件发出去而不管这些事件去向那里。应用程序可以订阅事件,而不用知道他们的来源。
      

  7.   

    COM+ 是 COM 的扩展,COM+ 组件在服务器上运行,COM 组件只能运行在本机。
      

  8.   

    另外一个区别区别是COM比COM+少一个加号嘿嘿
    开玩笑,楼上各位已经说得够详细了,偶就来顶吧