COM原理及应用之基于COM的程序设计
1、COM的作用
COM作为一种软件模型,提供了程序之间通信的标准,但其最大的贡献在于对程序设计方法的变革。COM结合了对象技术和组件技术两种特性。对象特性使得应用系统的设计和实现更加符合现实世界的面貌;组件特性使得应用系统可以充分发挥组件的优势,以适应现代应用的需要。
2、组件的特性
组件之间可以在二进制级别上进行集成和重用;组件必须被独立地生产、获得和配置。
组件接口描述了组件对外提供的服务,组件和组件之间、组件和客户之间同时通过接口进行交互。组件接口必须是能够自我描述的,组件应该保持接口不变。
3、基于COM的组件化程序设计方法
组件化程序设计方法继承并发展了面向对象程序设计方法。组件化程序设计方法强调真正的软件重用和高度的互操作性。
4、MTS
MTS,Microsoft Transaction Server,它为我们提供基本的组件运行和配置环境。MTS为分布式应用提供了底层的基础设施,它把应用系统的客户程序与应用组件对象以及各种资源有机地组织起来。
在MTS应用中,所有的组件对象都运行在MTS运行环境中,这些组件对象实现了基本的应用逻辑规则。由于MTS把组件对象有机地管理起来,它的运行环境负责所有并发性处理、资源管理、安全性管理、环境管理等系统级特性处理,因此,开发人员在编写组件对象时可以忽略这些要素,只需简单地实现基本的应用逻辑规则即可。
MTS应用可以包括多个MTS服务进程,每个服务进程运行一个或多个组件对象,所以MTS应用的每个组件对象必须是进程内组件对象,它们运行在MTS服务进程中。在MTS服务进程中,除了这些应用组件对象之外,MTS也提供了许多服务,包括线程管理服务、环境管理服务、资源分发管理等等。MTS正是通过这种方式来提供各种系统服务的。
资源管理器是MTS应用管理永久数据的基本手段,它使用了Microsoft的DTC(distributed transaction coordinator,分布式事务协调器)系统服务,通过两阶段提交的方式实现了事务(transaction)功能。
MTS实现了两种资源分发器:ODBC资源分发器和共享属性管理器。
MTS只是一个COM组件对象的管理器,它通过一组内置的服务来简化复杂应用系统的开发。
5、MTS程序设计概念
(1)事务
事务是一个抽象概念,它是指一组数据操作的整体。事务具有四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和永久性(durability),这些特性可简写为ACID。
(2)MTS对象
MTS对象是指运行在MTS环境下的COM组件的一个实例,MTS为每个对象维护一个环境对象。
(3)MTS客户
MTS客户是指MTS对象的客户程序,它可以是一个应用程序,运行在MTS环境之外,这种客户我们称为基客户;MTS客户也可以是另一个MTS对象,所以,MTS客户与对象的概念也是一个相对概念。
(4)安全性控制
MTS推荐使用基于角色的安全模型,角色是MTS安全模型的核心,一个角色定义了用户的逻辑组合。
6、MTS管理程序
MTS管理程序的主要功能为配置和发布MTS对象或组件,MTS对象是指运行在MTS环境中的COM对象,它所在的进程既为MTS服务进程。在MTS管理程序中,一个基本的概念是MTS包(MTS Package),MTS包的概念与MTS服务进程紧密相关。一个MTS包可以包括多个MTS组件,这些MTS组件共享同一个进程,共享同一套安全角色定义。
MTS管理程序使用了标准的MMC管理界面工具。
7、MTS特性
MTS作为COM对象的运行和管理环境,在分布式应用或一般的企业应用中所占的地位越来越重要。
(1)对象管理器
MTS实际上是一个功能强大的对象管理。MTS使COM对象由统一的环境管理,为基于COM的组件应用系统提供了配置和管理的基础;并且MTS也使 DCOM技术的用法更为简化,为建立基于COM分布式应用提供了极大的方便。MTS还有一个特性,即MTS对象的及时激活(JIT激活,Just-In- Time Activation)特性
(2)安全管理器
MTS的安全模型可以直接为应用系统所用,利用MTS管理程序用户可以灵活地配置每个角色所对应的成员。
(3)事务管理器
事务特性是MTS环境的一个重要特性,MTS运行环境利用Microsoft DTC建立起来了事务特性。
8、多层软件结构
COM、DCOM以及MTS构成了多层结构的基础平台。层与层之间可以通过COM接口联系起来,它们可以运行在不同的进程中,甚至运行在不同的机器上,COM及DCOM提供了进程透明和位置透明特性。MTS又为中间的业务层提供了统一的配置和管理环境,我们可以把业务逻辑封装到MTS对象中,然后由 MTS负责运行和包装这些业务组件。利用MTS提供的事务特性、安全模型,我们可以简化业务逻辑代码,即使是很复杂的业务逻辑,也可以当作普通的COM组件来实现。
9、多层应用软件结构
在分布式应用系统中,直接面对客户的表现层软件与数据层往往是分离的。
在中间层,MTS可以把所有的业务组件管理起来,并提供运行环境。
10、多层软件结构的优点
可伸缩性、可配置性、灵活性、可靠性、MTS事务和安全模型、跨平台特性和软件集成思想。
11、Web应用基本结构
12、用COM设计Web应用
ASP是服务器一端的脚本环境。ASP脚本通过Server对象创建COM对象,这种对象称为Active Server Object,简称ASP对象。
从完整的ASP应用的角度看,它可以把复杂的业务规则放到ASP组件中,然后在.asp文件中通过脚本代码控制这些ASP对象。ASP对象既可以直接运行在ASP环境中,也可以运行在MTS环境中,享受MTS环境的特性。
文章出处:http://www.diybl.com/course/3_program/c++/cppxl/20081118/151925.html