"这篇资料主要探讨了COM(构件对象模型)的基本原理以及组件开发的相关内容,涉及COM的历史发展,从OLE1、OLE2到ActiveX,再到DCOM、MTS和COM+。同时,提到了COM在不同层次上的计数机制,包括构件、对象和接口的引用计数。"
COM技术的起源与发展:
COM最初由微软提出,作为OLE(Object Linking and Embedding)的升级版,旨在解决DDE(Dynamic Data Exchange)在程序间通信的效率低、稳定性差和使用不便的问题。OLE2以COM为基础,后来的ActiveX虽是OLE的后续,但并未充分展示COM的优势。COM的核心在于定义了客户与构件之间的互操作标准,包括独立于特定语言和操作系统的规约,以及实现这些规约的COM库。
COM的层次计数:
COM中的引用计数主要涉及到构件、对象和接口三个层次。构件引用计数关注的是整个组件的使用情况,而对象引用计数则追踪单个对象实例的生命周期。当一个对象被多个客户端引用时,其引用计数会增加;当引用减少到零时,对象会被释放。接口引用计数则是在对象的不同接口之间进行,每个接口都有自己的计数,确保正确管理接口的生命周期。
分布式计算的演变:
为了适应分布式计算环境,COM进化为DCOM(Distributed Component Object Model),通过网络协议替代本地进程通信,增加了位置透明性、网络安全性和跨平台调用等功能。随后,微软推出了MTS(Microsoft Transaction Server),以支持企业级应用,提供了事务处理和资源管理。最终,这些技术在Windows 2000中融合成COM+,提供了一种中间件服务,支持更高效的企业级分布式应用开发。
Windows DNA与COM+:
Windows DNA是微软提出的分布式网络应用架构,包括各种开发工具、数据库、操作系统、编程模型和服务。COM+是这个架构的重要组成部分,它不仅包含了COM和DCOM的特性,还整合了MTS的功能,提供操作系统级别的分布式服务。COM+简化了事务处理、安全性、资源管理等复杂问题,使得开发者能更加专注于业务逻辑。
总结:
这篇资料详细介绍了COM从诞生到成熟的过程,包括其在不同层次的引用计数机制,以及如何逐步演化以适应分布式计算和企业级应用的需求。通过理解COM,开发者能够更好地掌握组件开发,实现高效且可靠的软件系统。