从一个小例子开始,我们在上网浏览网页的时候经常需要看到一些多媒体的信息,
比如一端小录象,那么是不是在包括IE在内的浏览器会给自己加上一个多媒体播
放功能呢?答案显然是否定的。但显然我们也看到了听到了那些我们所需要的内容。
大家一定会说,这是因为我们的系统中有像Media player,RealOne Player这样
的播放软件,浏览器在需要它的时候会自动调用它。OK,有了这样的亲身感受,在
接下来的学习COM的技术中你就会非常的轻松。
但是到这还得向您补充一点关于服务器与客户端的知识,因为在后面的内容中经
常涉及到。就像“文化”一词的解释,有他狭义与广义两方面的解释,狭义的可能
就是上小学甚至初中时老师说的科学文化知识,文化水品等等,总之就是一个人
掌握的知识;那现在呢,换一个角度、说民族文化,企业文化,甚至饮食文化等等
等等,这些都是文化。那关于服务器与客户端呢?前面我们学习数据库的时候有
sqlserver服务器,学习ASP的时候有IIS服务器,这些就可以称为我们所理解的
狭义的服务器,而像涉及到数据库的应用程序,浏览器这些就是客户端,那广义的
呢,我们可以说,凡是调用或使用其他程序,组件,甚至更微小的程序单位的程序
就是客户端,而被掉用的一方就是服务器。这样的话服务器与客户端的定义就不是
绝对的了,在不同的功能调用关系中他们之间的位置可以完全转化。
那么到底什么是COM呢?我们不妨从上面的例子中进行分析,首先正在使用的一个应
用程序(IE)需要某种功能(上面是播放录象),而它自己却不具备,那么我们解决
问题的方法显然是从新开发下个版本,使它实现这样的功能,这对我们程序员听起来
显然不是什么高兴的事情,那有别的方法吗?对了,就像上面的例子中看到的那样,
它可以使用别的实现了这一功能的应用程序(Media player,RealOne Player),
这样的话根据上一段的解释,IE就应该是客户端,而多媒体播放器就应是服务器。现在
又有新问题出现了,那IE怎么找到RealOne Player呢?别忘了windows操作系统的核
心文件system.dat(注册表),我们每一个装在windows上的程序都是必须在注册表中
注册过的,然后各种程序可以根据注册表方便的找到它所需要的哪个。
OK,那现在我们就来说COM吧,在上面的例子中,我们遇到了这样的麻烦,我们希望可以
像使用自己应用程序功能那样的使用别的应用程序的功能,可是自己却不知道该怎么做,
这样的话COM出来了,它对我说:小伙子,你应该这样做,找一个地方,专门注册你的程
序,而且你的这些程序必须是实现了某种接口的,在那地方你要详细说明他们的功能,标
明他们的地址,这样在需要的时候可以很方便的找到他们。这就是COM,他告诉我的就这
么多。所以说COM是只是标准,是告诉的一个实现准则,他是指导思想,是一个蓝皮书,
他完全是理论上的,而不是一个实现了的东西。
那上面的的注册表以及那些程序呢?对,他们就是COM技术的一种实现,而我们看到的结果,就是这种实现技术的一种表现形式。