对象组件技术COM+

早在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

展开阅读全文
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
最近在学习数据编程,这本书相当不错,共享一下,有需要的朋友就下载吧~第1章 ADO/MTS/COM十和分布式多层架构 1-1 认识ADO 1-2 使用原生ADO对象 1-3 ADO和分布式多层架构 1-4 Delphi的数据存取技术 1-5 原生ADO对象和ADOExpress组件 1-6 结论第2章 撰写使用ADO技术的应用系统(一) 2-1 ADOExpress组件 2-2 数据库应用程序 2-3 Master/Detall应用程序 2-4 事务管理 2-5 BatchUpdate模式 2-6 搜寻数据 2-7 过滤数据 2-8 排序数据 2-9 结论第3章 撰写使用ADO技术的应用系统(二) 3-l 处理多个数据表Join的数据 3-2 使用ADO处理BLOB信息 3-3 调用存储过程 3-4 使用ADO的异步执行能力 3-5 处理错误 3-6 使用ADO存取Excel 3-7 使用ADOx 3-8 RDS 3-9 使用ADO开发分布式多层应用系统 3-10 ADO和WebBroker应用程序 3-11 结论 第4章 深入了解ADO 4-l AD0的Cursor Engine 4-2 ADO修改数据的流程 4-3 ADOExpress和AD0 4-4 ADO和BDE/IDA贝 4-5 ADO的执行效率 4-6 优化ADO的执行效率 4-7 结论 第5章 MTS/COM+和分布式多层应用系统 5-1 什么是MTS 5-2 COM+COM的基本概念 5-3 MTS的系统架构 5-4 COM+的系统架构 5-5 状态对象和无状态对象 5-6 结论 第6章 MTS/COM+的核心技术事务管理 6-1 数据库事务管理 6-2 MTS/COM+事务对象 6-3 资源管理 6-4 MTS/COM+的事务生命周期 6-5 以程序代码自行控制事务管理 6-6 结论 第7章 MTS/COM+的安全机制 7-1 安全机制 7-2 MTS/COM+的角色 7-3 实现宣告式安全机制 7-4 资源鉴定控制 7-5 安全机制检查的时机 7-6 实际的范例 7-7 结论 第8章 设计MTS/COM+对象和MTS/COM+应用系统 8-1 开发MTS/COM+组件 8-2 开发存取数据的MTS/CoM+组件 8-3 较为复杂和实际的MTS/COM+应用系统 8-4 MT3/COM+的共享信息机制 8-5 管理和分发MTS/COM+应用系统 8-6 如何调试MTS/COM+应用系统 8-7 结论第9章 以DeIphi技术开发MTS/COM+应用系统 9-l 一个典型的场景 9-2 使用TDCoMConnection建立MTS/COM+对象 9-3 维护事务管理的正确性 9-4 MTS/COM+应用系统架构的实现 9-5 第二种思考方式 9-6 结论第10章 撰写高效率的MTS/COM+组件和MTS/COM+应用系统 10-1 你应该牢记的事情 10-2 快速建立和调用远程MTS/COM+对象 10-3 MTS/COM+对象和数据的传送 10-4 状态信息 10-5 结论
相关推荐
第一部分 了解COM 第1章 COM概述 何谓CoM COM术语 COM利与弊 COM的好处 COM的局限性 COM组件与接口 何谓接口 接口特征 接口类型 接口规则 接口设计 COM组件的实现规则 实现IUnknown规则 内存管理规则 引用计数规则 COM激活 COM类型 COM客户机 COM服务器 ActiveX控件 COM与面向对象技术 包装 抽象 多态 继承 COMTrader应用程序 小结 第2章 由VC++建立并使用COM服务器 IDL文件 建立第一个COM服务器 定义自定义接口 实现IUnknown和自定义接口 完成COM服务器 生成测试客户机 用ATL建立COM服务器 关于ATL 用ATL建立进程内COM服务器 用ATL建立进程外COM服务器 线程与COM服务器 Win32多线程应用 线程COM组件 自动化与IDispatch 用VC++实现IDispatch ATL与自动化 Automation数据类型 再谈类型库 C++自动化客户机 VB自动化客户机 小结 第3章 用VB建立并使用COM服务器 选择COM项目 设计接口 描述接口 浏览接口 生成对象 使用ClassBuilder 增加属性 增加方法 增加事件与枚举 使用ActiveXDataObject(ADO) 在服务器组件中使用Recordset对象 在客户机组件中使用ADOR 生成断开的Recodset 生成自己的RecodsctS 使用用户定义类型 错误处理 服务器客户机错误处理 使用VBErr.Raise机制 在VB中使用线程模型 设置线程模型 了解再入性与公寓 小结 第二部分 COM与Internet 第4章 在VC++中建立并使用ActiveX控件 ACtiveX控件概还 属性与方法 控件与容器通信 事件与连接点 建立第一个控件 生成控件 测试控件 增加方法 增加属性 增加事件 增加属性页 允许属性保持 使用控件 建立复合控件 增加复合控件 增加功能 增加事件 处理复合控件事件 处理错误 使用控件 小结 第5章 在VB中建立并使用ActiveX控件 VB控件简介 约束与无约束控件 控件生成技术 属性类型 方法 属性配置 过程属性 环境属性配置 运行时只读属性 只在运行时有效的属性 扩展属性 容器属性 合成控件属性 可关联属性 持续与属性包 属性包 使用ActiveX控件界面向导 了解控件寿命 生成ActiveX控件 生成无约束控件 生成设计时数据约束控件 生成运行数据约束控件 小结 第6章 用VC++建立InternetCOM组件 IEActiveX控件 轻量级控件 安全控件 持续属性 文档对象模型编程 活动服务器组件 活动服务器页面 ASP页面的COM组件 小结 第7章 用VB建立InternetCOM组件 无窗口控件 ActiveX控件容器的线程模型 ActiveX控件的安全性 Web页面访问 VBDHTML项目 DHTML项目基础 DHTML应用程序样本 VBIIS应用程序 WebClass 一个IIS应用程序样本 设计控件 设计控件与HTML文件 样本设计控件 小结 第三部分 了解DCOM 第8章 DCOM概述 何谓DCOM 为什么使用DCOM DCOM操作 DCOM组件位置 进程内或进程外组件 代理 RPC(RemoteProcedureCall,远程过程调用) 调动 数据传递 DCOM配置实用程序 DCOM应用程序的安全机制 验证 授权 加密 整性检查 小结 第9章 用VC++建立DCOM服务器 标准与自定义调动 标准调动 自定又调动 网络通伯 远程激活 AppID注册表项 可配置AppID注册表项参数 IUknown优化 DCOM与NT服务 NT服务解剖 基于NT服务的COM服务器 小结 第10章 用VB建立DCOM服务器 应用程序对象模型 何谓对象模型 如何生成对象模型 DCOM设计准则与技术 再论调动 按数值与按引用 DCOM进程外服务器 建立DCOM组件 增加测试客户机 IIS应用程序 增加WebClasses 使用模板 增加自定义Webltems 远程错误处理 小结 第四部分 了解COM++ 第11章 COM++概述 COMWindowsDNA 用户界面层技术 中间层技术 数据库层技术 组件服务配置 事务处理 排队组件(QC
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

shawls

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值