《COM技术 (2).ppt》由会员分享,可在线阅读,更多相关《COM技术 (2).ppt(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、COM技术12软件工程(服务外包)1班奚忆楠Page 2目录n一、定义一、定义n二、优点二、优点n三、历史三、历史n四、发展四、发展n五、国内现状五、国内现状n六、概念六、概念n七、创建七、创建COMCOM对象对象n八、软件发展面临的问题和趋势八、软件发展面临的问题和趋势Page 31、定义nCOM(ComponentObjectModel,组件对象模型),是由微软推出的一套接口规范,通过设定不同组件之间需要遵守的标准与协议,主要用来跨语言、跨进程之间的模块通信。n所谓COM是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标
2、准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。Page 4简单地说,COM是一种跨应用和语言共享二进制代码的方法。与C+不同,它提倡源代码重用。ATL便是一个很好的例证。源码级重用虽然好,但只能用于C+。它还带来了名字冲突的可能性,更不用说不断拷贝重用代码而导致工程膨胀和臃肿。Page 52、优点n首先,用户一般希望能够定制所用的应用程序,而组件技术从本质上讲就是可被定制的,因而用户可以用更能满足他们需要的某个组件来替换原来的那个。n其次,由于组件是相对应用程序独立的部件,我们可以在不同的程序中使用同一个组件而不会产生任
3、何问题,软件的可重用性将大大的得到增强。n第三,随着网络带宽及其重要性的提高,分布式网络应用程序毫无疑问的成为软件市场上越来越重要的买点。组件架构可以使得开发这类应用程序的过程得以简化。Page 63、历史nOLE(ObjectLinking&Embedding)是1991年首次出现的(是WINDOWS3.1自带的)。OLE最初的含义是对象链接和嵌入,当时用DDE(动态数据交换)作为底层通讯协议。n1993,COM首次出现。微软推出OLE2.0,开始用COM代替DDE作为底层通讯协议。这也是COM第一个重要的用途。n1996年,大多数开发人员开始编写32位的WIN95应用程序。他们发现,OLE
4、使用COM的方式是一种非常好的设计软件的方法。开发人员开始使用类似的方法编写自己的对象和界面。另外,操作系统也开始要求使用COM技术编程,如编写WIN95用户界面。这些即不是OLE,也不是AUTOMATION,那么他到底是什么呢?这个属于大多数人倾向于使用COM。Page 74、发展n1996年,微软推出NT4.0,DCOM首次出现,作为NT的一部分。它实现了将COM在分布式系统中的应用。n1997年开始流行ATL。COM作为一种技术规范,最早是由C语言来实现的,但是实现起来比较复杂。出现VC以后,又对COM进行了预制和封装,大大简化COM应用的开发。这就是ATL(ActiveTemplate
5、Library)。Page 85、国内现状n在对象技术和组件技术方面,国内落后n问题:n好的技术没能及时引进了n缺乏好的教材、技术杂志、技术书籍n缺乏良好的教育环境的工业环境Page 96、概念n1)COM接口:接口只不过是一组函数。这些函数被称为方法。接口名字以大写的I开头,例如C+中的IShellLink,接口被设计成一个抽象基类,其中只有纯粹的虚拟函数。接口可以从其它接口继承,这里所说的继承的原理就好像C+中的单继承。接口是不允许多继承的。n2)coclass:简称组件对象类componentobjectclass,被包含在DLL或EXE中,并且包含着一个或者多个接口的代码。组件对象类(
6、coclasss)实现这些接口。COM对象在内存中表现为组件对象类(coclasss)的一个实例。Page 10n3)组件:na.进程内组件:Inprocserver-ExportEntrysnb.进程外组件:OutofprocserverPage 11nc.远程组件:remoteserverPage 127、创建COM对象n为了创建COM对象并从这个对象获得接口,必须调用COM库的API函数,CoCreateInstance()。其原型如下:HRESULTCoCreateInstance(REFCLSIDrclsid,LPUNKNOWNpUnkOuter,DWORDdwClsContext,REFIIDriid,LPVOID*ppv);Page 138、软件发展面临的问题和趋势n问题:软件的复杂度增加n软件的升级和更新n分布式软件的发布的配置n依赖于全才开发人员n软件的可扩展性n趋势:组件软件、软件组件n软件基础设施的重要性n软件的可重用性要求nAPI的多样化n软件方案(solution),consulting的市场