COM/DOM/COM+

 

一 COM

     

      组件对象模型(COM),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块;等等。

      COM是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程序及操作系统。 
      COM所含的概念并不止是在Microsoft Windows操作系统下才有效。COM并不是一个大的API,它实际上象结构化编程及面向对象编程方法那样,也是一种编程方法。在任何一种操作系统中,开发人员均可以遵循“COM方法”。

 

二 DCOM

 

      DCOM是微软与其他业界厂商合作提出的一种分布组件对象模型,它是COM在分布计算方面的自然延续,为分布在网络不同节点的两个COM组件提供了互操作的基础结构。DCOM增强COM的分布处理性能,支持多种通信协议,加强组件通信的安全保障,把基于认证Internet安全机制同基于Windows NT的C2级安全机制集成在一起。但从系统内部的实现机制而言,DCOM所采用的技术仍符COM模式。
      DCOM自动建立连接、传输信息并返回来自远程组件的答复。DCOM在组件中的作用有如PC机间通信的PCI和ISA总线,负责各种组件之间的信息传递,如果没有DCOM,则达不到分布计算环境的要求。微软通过纳入事务处理服务、更容易的编程以及对Unix和其它平台的支持扩充了DCOM。
      建立DCOM时和使用COM建立对象的方式是相同的,只需再加入一个机器名称的参数。如果COM通过Windows API的CoGetClassObject建立对象,只需再输入机器名称的参数即可在远程指定的计算机中建立对象,并且取得指定接口的信息。它构造于RPC的技术之上,并且使用TCP/IP作为网络通信协议。

 

三 COM+

 

      COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现。COM+继承了COM几乎全部的优势,同时又避免了COM实现方面的一些不足,把COM、DCOM和MTS的编程模型结合起来,继承了它们的绝大多数特性,在原有的特性上增加了新的功能。

      以下列出COM+的几个主要特性:

      COM+不仅继承了COM所有的优点,而且还增加了一些服务,比如队列服务、负载平衡、内存数据库、事件服务等。

 

四 COM/DCOM/COM+关系


四 DCOM/MTS/MQ/COM+

 

     为了让企业级的应用程序能使用上COM,它必需要有以下的特定的能力。

  · 验证能力
  · 对象池(Object Pooling)
  · 事务处理
  · 支持分布式架构

  为了使开发者不必去为他们的组件添加这些能力,微软公司出品了DCOM(Distributed COM分布式COM)和MTS(Microsoft Transaction Server微软事务服务器)。使用这两种技术,开发者就可以把精力用在他们的商业逻辑上,而不必放在后台的他们的组件上。

 

  DCOM是一个用于分布式的组件之间的通讯的RPC(Remote Procedure Call)协议。客户端向一个本地机的代理类发送请求,然后由代理类将这个请求隐含地给安装在远程机器上的"根"类,然后执行结果原路送回给代理类,最后代理类把它们回送给客户端。因此,客户程序的位置完全与组件的位置无关。DCOM的缺点在于,由于DCOM使用的是一个独立的硬件端口,而不是HTTP协议的80端口,所以在组件间通讯的过程中,必须保证这个端口是开着的。这是一个严重的安全问题。所以DCOM不能够轻易地穿越防火墙。

 

  为了使用MTS,程序员在它们的组件里放置特别的MTS钩子,编译后把他们放在MTS包中。把有关系的组件放在一个单一的包中有它自己的好处。当客户请求一个包中的一个组件的一个实例的时候,MTS确保为这个包建立一个新的专门的线程,一个新的组件实例被建立在这个线程上并被应用事务服务。至于对象池服务和安全服务是否要被建立,那就要看开发者的请求了。

  MTS允许相关的作业单元被当作一个事务来对待,这意味着如果所有的作业单元被成功地完成,整个事务就被当作成功地完成,反之如果有一个单元未成功完成,整个事务将被重新轮回。

  在客户请求对象和释放对象后,MTS仍保存着这个对象,所以当另一个客户请求同一个组件的时候,MTS就将保存着的对象交给它。通过这种方式,MTS减少了在服务器源实例化的次数。

  MTS允许开发者用安全措施来组装他们的组件,以使其具有识别请求它的服务的客户的能力。这能够确保未经授权的客户不能够使用组件的功能。

 

  MTS以COM+的名义被完整地整合到了微软公司的Windows 2000操作系统中,但是COM+不仅仅只有MTS,它还包括一些其它的服务。MSMQ(Microsoft Message Queue Server),一个与MTS一同发布的服务,也被以COM+的名义整合到了Windows 2000中。MSMQ允许服务器端和客户端进行同步的通讯。事件服务(Event Service)也被加了进来,它使服务器能够与客户端同步地交流事件的发生。负载平衡服务(Load Balancing)自动地实例化机器上的具有最多资源的服务器上的请求对象。

 

五 未来

.NET代替COM

RPC或WebService代替DCOM

WCF代替COM+

 

完!

第一部分 了解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++概述 COM与WindowsDNA 用户界面层技术 中间层技术 数据库层技术 组件服务配置 事务处理 排队组件(QC) 实时结构的限制 事务性消息排队 排队组件结构 排队组件故障恢复 QC安全性 动态负荷平衡 对象地 小结 第12章 用VC++建立COM++组件 ADO编程 ADO与OLEDB VC++中的ADO VC++的ADO扩展 建立COM++应用程序 温习IObjectContext接口 用ATL建立COM++组件 编制基于角色的安全性 处理COM+事务 控制事务结果 指定事务属性 确定事务情境 传递接口指针 共享状态 建立事务性COM+组件 小结 第13章 用VB建立COM+组件 了解事务 事务与多层应用程序 COM+与事务 事务属性:ACID COM+系统简介 COM+运行环境 COMComponentServices COM+接口 资源分配器 应用程序组件 探索COM+编程模型 COM+组件作为COMDLL 基本COM+编程规则 COM+API 用VB编程COM+ 对象描述表 COM+组件的生命周期 ObjectControl接口 MTS活动 COM+中生成对象 安全引用 组件之间的参数传递 数据类型 使用分布式事务 分布式事务协调器(MSDTC) COM+事务的工作 事务与有状态对象 使用共享属性管理器(SPMSharedProperyManager) 小结 第14章 了解MSMQ 何谓MSMQ MSMQ的好处 MSMQ组件 队列 消息 MSMQ对象模型 MSMQ设置 MSMQ基础 消息发送 消息接收 MSMQ事件 MSMQ事务 小结 第五部分 高级COMCOM+ 第15章 VC++与VB中的COM+服务 了解COM+激活 描述表包装器 激活顺序 使用即时(JIT)激活 使用对象构造 中性公寓简介 了解同步域 表示事务状态 取得对象信息 使用对象地 对象池的好处 对象地要求 对象地配置 使用排队组件 QC限制 QC配置 QC调用 QC播放控件 使用负荷平衡 负荷平衡要求 负荷平衡配置 小结 第16章 COMCOM+安全性 何谓安全性 WindowsNT安全简介 NT验证 NT扮演 NT访问控制 COM安全结构 验证 访问控制 启动权限 标_ 扮演与掩盖 安全总括 COM+安全 COM+说明性安全 COM+角色 编程COMCOM+安全 整个进程安全 接口级安全 激活安全 服务器方安全 调用描述表安全信息 SecuntyProperty信息 安全性与数据库访问 小结 第17章 Windows2000中的新COM特性 同步机制 COM同步API COM同步接口 异步COM 异步接口构造 异步接口调用 关于异步服务器与客户机 让服务器进行异步处理 调用序列化与自动完成 COM管道 COM管道接口 异步管道与提前读取 调用对象与调用取消 调用取消请求 调用取消处理 轻量级处理器 标准LWH 自定义LWH 小结 第六部分 调试与部署COMCOM+应用程序 第18章 调试与剖析COMCOM+应用程序 调试VB组件 调试MTS组件 调试COM+组件 使用条件编译 调试VC++组件 用VisualStUdioAnalyzer剖析 小结 第19章 部署COMCOM+应用程序 DCOM应用程序部署 配置DCOM服务器 配置DCOM客户机 在Internet上部署 Internet上部署与包装 签名CAB文件 许可ActiveX控件 自动化COM+配置 使用COMAdmin接口与集合 配置COM+应用程序 配置组件 配置角色 部署COM+应用程序 小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值