《COM原理及应用》学习笔记之第一章

来源:互联网 发布:maxwell软件理论基础 编辑:程序博客网 时间:2024/05/16 19:36

第一章 概述

 

1、组件的设计的原始目的

跨平台、跨网络、积木式搭建程序

 

2、组件的两个规范:CORBA COM

OMCObject Management Group,对象管理组织)的CORBACommon Object Request Breaker Arehitecture ,公共对象请求中介体系结构)。

MicrosoftCOMComponent Objedt Model,组件对象模型)。

 

3COM的定义

       COM是由Microsoft提出的组件标准,他不仅定义了组件程序之间进行交互的标准,并且也提供了组件程序运行所需的环境。

       COM标准包括规范和实现两大部分,规范部分定义了组件之间通信的机制,实现部分是COM库,COM库为COM规范的具体实现提供了一些核心服务。

 

4COM的分类

进程内组件(DLL in-process component)。客户程序和组件程序在同一进程空间。

进程外组件(EXE out –of-process component)。客户程序和组件程序不在同一进程空间。

 

5COM跨语言原因

       COM对象是建立在二进制可执行代码级的基础上,而C++等语言中的对象是建立在源代码级基础上的。

 

6COM技术的应用

       OLEObject Linking and Emnedding ,对象链接和嵌入)技术,它所表达的是复合文档(Compound Document )的概念。

       ActiveX技术。

 

7COM的组件、对象、接口的关系

       一个COM组件可以包含多个COM对象,一个COM对象可以有多个COM接口。COM对象是以接口的方式提供服务的。

 

8COM的基本概念

对象:相当于C++中对象的概念,对象是某个类的一个实例

客户:使用对象的应用(或另一个对象)称为客户,或对象的用户。

接口:一组逻辑上相关的函数集合,其函数也被称为接口成员函数。通常以“I”为前缀。

 

9COM接口使用说明

COM模型中,对象本身对于客户来说是不可见的,客户请求服务时,只能通过接口进行。每个接口都由一个128位的全局唯一标识符(GUID Gloally Unique Identifier)来标示。客户通过GUID获得接口的指针,在通过接口指针,客户就可以调用其相应的成员函数。

一般来说,接口是不变的。因为对象可以包含多个接口,所以组件对象的升级可以通过增加接口的方法来实现。

 

10COM对象的说明

       与接口类似,每个对象也用一个128位的GUID来标识,称为CLSIDClass Identifier,类标识符或类ID)。

 

11COM库的说明

       Microsoft Windows操作系统环境下,COM库以 .dll 文件的形式存在。COM库一般步在应用程序层实现,而是在操作系统层次上实现,因此一个操作系统只有一个COM库实现

 

12COM的特性:面向对象的特性。

 

13COM的特性二:客户/服务器特性。

 

14COM的特性三:语言无关性,但是只有用CC++语言才能是想COM中所有的特性。

 

15COM的特性四:进程透明特性

       两类进程模型:进程内对象和进程外对象。进程内对象在客户进程空间中运行,效率高,但不稳定;进程外对象运行在同一机器上的另一个进程空间或者在远程机器的进程空间中。组件对象服务程序分类:进程内服务程序、本地服务程序、远程服务程序。

       实现这种进程透明性的关键在于COM库,COM库负责组件程序的定位,管理组件对象的创建和对象与客户之间的通信。

 

16COM的特性五:可重用性

       COM标准建立在二进制代码级的基础上是其与面向对象语言中的对象的重用过程不同。

       COM用两种机制实现对象的重用:包容方式和聚合方式。

 

17OLE技术的焦点集中在解决桌面环境中应用程序之间如何进行交互,包括数及交换和界面交互。

 

18COMWindows操作系统

       16位平台中COM的使用并不完善,32位平台中,很多系统部件都以COM形式实现。比如:DirectX多媒体软件包、RDORemote Data Object ,远程数据对象)和DAOData Access Object ,数据访问对象)数据库访问对象库、Internet Client SDKMAPIMessaging API ,消息应用编程接口)、ADSIActive Directory Service Interface ,活动目录服务接口)

 

19COM与数据库

       Microsoft推出的数据库访问对象库有RDODAOOLE DBADO

 

20COMInternet应用

       系统集成的软件接口可以利用COM。在多层次软件结构模型中位于中间层的业务层主要通过COM组件来实现。

 

21COMInternet

       Internet的开放性要求正体现了COM的优势。Microsoft提出的ActiveX技术包含了所有基于COMInternet相关的软件技术。