对象组件技术COM+

原创 2002年02月18日 12:03:00

早在1997年,MICROSOFT已经宣布了COM+的一些概貌,但是在这近两年的时间里,我们一直都不清楚COM+的真正面貌。随着Windows2000的发布,COM+作为融合在操作系统中的组件技术将会在以后越来越被广泛使用。
COM+并不是COM的简单升级,COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容,COM+综合了COM、DCOM和MTS这些技术要素,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此,COM+与操作系统的结合更加紧密。
COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现。COM+继承了COM几乎全部的优势,同时又避免了COM实现方面的一些不足,把COM、DCOM和MTS的编程模型结合起来,继承了它们的绝大多数特性,在原有的特性上增加了新的功能:
如COM+扩充了MTS安全模型,它允许开发人员或管理员指定到方法级的安全控制,通过COM+对象环境信息,使得COM+的安全模型更为有效细致;
COM+支持MTS的事务语义,不仅可以通过SetAbort或SetComplete完成事务操作,而且COM+还支持BYOT(BringYourOwnTransaction),即允许COM+组件参与非MTS事务处理环境管理的事务;COM+继承了MTS对象池的概念,并且真正实现了对象池的功能。
     COM+不仅继承了原有的多数特性,而且还增加了一些服务,比如负载平衡、队列服务、内存数据库、事件服务等。
      队列服务对于分布式应用非常有意义,特别是在现在网络速度很慢的情况下,这种机制可以保证应用系统能够可靠地运行。在应用系统包含大量节点但服务器又繁忙的情况下,客户应用程序可以把它们的请求放到队列中,当服务器负载比较轻的时候再处理这些请求;
      又如COM+提供了负载平衡服务,它可以实现动态负载平衡,而且COM+应用程序的负载平衡特性并不需要编写代码来支持,客户程序和组件程序都可以按通常的方式实现。获得负载平衡特性并不是用程序设计的方式来实现的,而是通过配置实现分布式应用程序的负载平衡,如上所讲的队列服务,其实也反映了一种负载平衡。
      那么,在COM+中怎样来进行管理呢?在COM+中采用了一种称为MMC标准界面环境管理程序。它类似于MTS的管理程序,但并不完全一样,每一个COM+应用可以包括一个或多个COM+组件以及与应用有关的角色信息。通过COM+管理程序,我们可以设置COM+应用和COM+组件的属性信息,比如组件的事务特性、安全特性等等。
     COM+把大多数的组件信息保存在COM+目录中。COM+目录把COM和MTS的注册模型统一起来,并提供了一个专门针对组件的管理环境。我们既可以通过COM+管理程序检查或设置COM+目录信息,也可以在程序中通过COM+提供的一组COM接口访问COM+目录信息。
COM+也继承了MTS的安全模型,支持说明性编程模型,也就是说,开发人员可以按尽可能通用的方式开发组件程序,把一些细节留到配置时刻再确定。
利用COM+的服务和管理工具以及其它开发工具,开发一个COM+组件要比开发一个COM组件容易得多,因为COM+组件本身是建立在COM+系统服务基础上的应用程序,而COM+系统服务本身也满足多层应用的一些基本要求,为应用提供了许多新特性,我们可以直接利用这些系统服务,避免了底层的细节处理,减少开发成本,降低代码量,同时也减小了犯错误的可能性;而且我们也可以通过系统服务来访问底层的系统资源,而不用直接跟底层打交道,使得应用程序更加可靠和健壮;通过COM+系统服务,我们在获得可靠性的同时,也可以使我们的组件或者应用程序更趋于标准化。如下图表示了利用COM组件技术和利用COM+编写组件的一些不同之处:
         图:利用COM和COM+编写组件的不同之处
---- COM+推出之后,它的开发模式也会有一些转变,尤其对于C++程序员,在编译时刻程序员可以在代码中使用一些说明性的语句来设置COM+组件的属性,比如CLSID、ProgID、线程模型以及双接口等,如果不指定这些属性,编译器将使用缺省值。而以前我们为了使COM组件支持某些非缺省的特性,我们必须通过编写代码来实现这些特性,所以程序员一定要对各种特性了解得非常清楚才能够编写出正确的代码来,这也是实现COM组件的一个难点。
      而基于属性的编程模型将直接把COM+组件的属性信息写到C++源代码中,指导编译器产生COM+组件,这样可以使程序员不必编写底层的处理代码,因为这些代码对于几乎所有的组件都差不多,因此让开发工具直接产生这些代码可避免重复劳动,这种方式比MFC的宏以及ATL的模板类来的更为直接。
    虽然COM+仍然以COM和MTS为底层基础,但是COM+增加了很多新的技术,我们可以利用这些新的技术更快、更方便地来编写组件或应用程序。与COM相比较,COM+与Windows操作系统结合得更为紧密,集成了很多底层的、繁琐的工作;与MTS相比较,COM+更加适合于分布式应用的开发,它提供了许多大型分布式应用系统才可能用到的一些功能,COM+将使得企业应用直接进入分布式应用领域。 


       以上代码来自: 源代码数据库(SourceDataBase)
           当前版本: 1.0.392
               作者: Shawls
           个人主页: Http://Shawls.Yeah.Net
             E-Mail: ShawFile@163.Net
                 QQ: 9181729

对象组件技术COM+

对象组件技术COM+中国科学院软件所微软认证高级技术中心 杭炯早在1997年,MICROSOFT已经宣布了COM+的一些概貌,但是在这近两年的时间里,我们一直都不清楚COM+的真正面貌。随着Windo...
  • ldcr
  • ldcr
  • 2001年08月10日 14:30
  • 416

COM组件开发(三)——类厂对象

COM类厂对象的实现         COM客户程序要使用COM对象是通过COM库创建而来的,而实际上COM库是调用COM对象的类厂来创建的。COM类厂对象也是一个COM对象,所以它也从IUnkno...
  • q5806622
  • q5806622
  • 2015年02月04日 19:32
  • 2468

delphi操作windows COM+组件服务三

在Windwos2000的管理工具里有一个“组件服务”工具,可以实现对COM+组件的应用的安装、启动、删除和对组件的安装、删除。这在安装一个有COM+组件的应用系统时时非常有用的,我们可以通过程序控制...
  • jian704
  • jian704
  • 2008年05月23日 17:22
  • 832

com+组件的注册,卸载和管理

com+打开命令:dcomcnfg 注册和卸载 “Regsvr32.exe”命令是用来对“ActiveX控件”进行注册的。Regsvr32命令格式/u       卸载ActiveX控件/s     ...
  • educast
  • educast
  • 2008年09月05日 21:12
  • 4757

Delphi 编写COM+组件的知识和样例

一、COM组件的基础知识介绍: 1、什么是COM          COM是微软定的一种组件编写的规范,目的是为了实现组件的重用,不管你是用C、DELPHI、VB什么语言写的,只要遵守这种规范就是...
  • zang141588761
  • zang141588761
  • 2016年04月26日 09:19
  • 1320

vb.net 封装组件成com的方法

 方法如下:  新建一个 项目 ,选择 Visual Basic / Window / 类库 ,假设项目名为ClassLibrary1  然后 在 solution manager(解决方案资源管理器...
  • cooldidi1
  • cooldidi1
  • 2007年10月07日 19:34
  • 488

windows server 2008 r2 COM+配置

1 服务器角色,增加“应用程序服务器”。 2 组件服务-计算机-我的电脑-属性-默认属性页的默认身份验证级别是“连接”,默认模拟级别是“标识” 3 COM安全页-访...
  • yz304zhang
  • yz304zhang
  • 2017年02月14日 11:13
  • 749

面向对象和面向组件的区别

今天被问到你们项目是用面向对象做的还是面向组件做的   当时我就傻了  面向组件是什么?  于是查了些资料  觉得面向组件在效率上要比面向对象高不少  确实值得学习 现把面向对象和面向组件的区别贴出...
  • qq_20026817
  • qq_20026817
  • 2015年08月13日 12:00
  • 726

.Net下开发COM+组件

一、问题的提出1、最终用户的每次请求,都将读取Mapping文件--可以通过缓存解决; 2、子系统需要不断的写入Mapping文件--也可以先写入内存然后批量写入文件解决; 二、分析解决问题由于分别有...
  • yellow1234
  • yellow1234
  • 2007年11月02日 18:30
  • 336

PB中如何编写COM和COM+程序.

    COM/COM+作为取代OLE的一种新技术,问世已经很久了,PB7中也早已提供了对它的支持,不过从现实情况上看,似乎大家使用到的不是很多,其实对于新一代的互联网应用,它还是能够发挥很大作用.下...
  • daixf_csdn
  • daixf_csdn
  • 2004年11月06日 11:20
  • 4826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对象组件技术COM+
举报原因:
原因补充:

(最多只允许输入30个字)