工程管理
会员登陆可自行发布信息
首页资讯供应求购招商招聘展会社区
长期信息合作请联系:QQ66821730
机电之家工程首页 ---->工程管理工程技术工程案例工程论文机电招聘 ┊ 行业培训资料下载
应急预案
我 要 找
标题 内容 作者
工程管理技术资料订阅工程管理资料信息
电工技术资料 您的位置: 机电之家-->工程管理资料栏目首页-> 工程论文 -> 软件工程论文 --> 我们的梦想 用COM重造我们的软件
阅读工程管理资料相关资料
我们的梦想 用COM重造我们的软件
本文作者 未知 摘自 机电之家

关键词:

COM OLE ACTIVE X CONTAINER AUTOMATION CONTROLE Iunknown IDispatch SELF_CONTAINED
CLASS FACTORY DCOM COM+ MTS MSMQ


概论

一个应用程序通常是由一个二进制文件组成。当编译器生成此文件后,在对下一版本重新编
译并发行新生成的版本值之前,应用程序一般不会发生任何变化。操作系统、硬件及客户需
求的改变都必须等到整个应用程序被重新编译后才能够得以认可。整个软件业就是这样随着
已发行软件的日益“老化”而奔向未来的。目前,这种状况已经发生了变化。开发人员找到
的一种方案是将单个的应用程序分割成多个独立的部分。即组件。也就是将软部件看成对象。

这种做法的好处是可以随技术的不断发展而用新的组件取代已有的组件。此时的应用程序将
不再是以前那样是一个在发行前就已注定过时的实体,而是可以随着新组件不断取代就组件
而趋于完善。

这一点对我们来说并没有太大的诱惑力。谁都知道我们不可能天天给用户发行新的版本。
但有一点你一定喜欢,当你根据需要更改了DLL中的一些实现函数,生成了DLL后,不需要重新编
译整个程序,就能使用新的性能。是不是有些不可思议。

使用COM模型给软件带来的影响将是巨大的。是软件工业的革命。对于一个软件的编程者,谁
不想在编程中能够使用像MFC那样方便的使用类,而不是面对枯燥而又嵌得很深的函数,使人
眼花缭乱全局变量。在改动程序前花费大量的时间去理解源程序。COM提供了一种二进制标准
的、面向对象、可扩充、可重用的通讯协议。如果你继续读下去,就会发现构建基于COM的测
量软件给你带来的好处将是巨大的。花点时间、金钱将得到事半功倍的回报。

每个程序员恐怕都有这样的经历:当修改一个大型程序时,由于程序本身结构的复杂性,使
某些功能的实现难度非常大。怎样才能构造出一个逻辑清晰、结构完整、功能相对独立、便
于扩充的逻辑模型?MICROSOFT提供了COM,APPLE有它的OPENDOC,IBM有SOM。现在的软件业
正在走着二十年前硬件所走过的道路。二十年前,人们制造了集成电路块,用一块块能完成
特定工作的小芯片,构造新的更大的芯片,去完成新的功能。这就是软件业所面临的问题。
当今计算机界最热门的两项新技术是COM和DCOM。COM似乎成为了解决所有软件开发弊端的良
方。当然这不意味着使用COM后你将一劳永逸。软件业是没有”银弹”神话的。只不过COM对
我们今天面临的新问题有了更好的解决方案。例如分布式程序的开发,事务处理的安全,跨
平台的可重用性------

使用组件的优点:

使用组件的优点是应用程序可随时间的流逝而发展进化。除此之外,使用组件可是对已有应
用程序的升级更方便和灵活。组件构架从本质上讲是可定制的,用户可以用更能满足他们需
要的组件来将某个组件替换掉。象类一样,COM是一个软件编程的构造模型,而不是一个数学
模型。

一组件技术的演变

观察组件技术的演变是理解COM和DCOM的开始,虽然面向对象技术已经经历了一个完整的自身
演变的过程,但组件技术作为面向对象技术的一个派生物,却有着自己的演变过程。组件技
术的演变的主要根基是WINDOWS OS。当然,其他的一些技术也起了很大的作用。

1.在WINDOWS 3.0中出现的定制控制(CUSTOM CONTROL)。一个定制控制就是一个可以输出
定义好的函数集合的动态链接库。但与一般的DLL 不同的是,一个定制控制能进行特性操作
,并能处理由用户或程序输入所引起的触发事件。

2.1991年MICROSOFT推出的VBX,使小型的可重用组件的重要作用体现得淋漓尽致。但遗憾的
是,VBX软件包内约束太多,16位的结构,且没有一个开放的接口,限制了VBX的应用。

3.也就是同一年MICROSOF开发了OLE1.0规范。(OBJECT LINKING AND EMBEDDING )。OLE1.0
努力朝着文件中心的方向发展,而不是传统的以应用为中心的发展方向。“复合文档”是
这个思想的产物,是在单个文件中以文本、图形、视频、图形和声音等多种格式存储数据的
方法。office套件中的word我们是再熟悉不过了。但ole1.0由于自身的复杂性,及实现的技
术方面的不成熟。在市场上遭到了冷遇。

4.Microsoft 并没被ole1.0的困难所吓倒,而是继续致力于ole的改进与提高。1993年发布
了ole2.0规范,推出了一个完全基于对象的服务结构,易于扩展、定制和增强。通过这种结
构可得到的服务是:

Com

剪贴板(clipboard)

拖放(drag and drop)

嵌入(embedding)

定点激活(in-place activation)

链接(linking)

标记(永久命名)(moniker(persistent naming))

ole自动化(ole automation)

ole控制(ole control)

ole文档(ole document)

结构化存储(structrued storage)

同一数据传输(uniform data transfer,UDT)


5.ACTIVE X

1996年3月INTERNET专业开发人员研讨会(Internet PDC)上提出ACTIVE X一词,当初仅做为一
种号召而非具体的应用程序开发技术。称为:Active the Internet随着INTERNET的飞速发展
,Active X成为定义从Web页面到OLE控件的所有内容的核心。一方面,它代表了将用户联到
MICROSOFT,INTERNET和业界的新技术的小型快速得重用组件。另一方面:ACTIVE X代表着
INTERNET与应用程序集成的策略.

有一种说法:“ACTIVE X是OLE 与INTERNET碰撞的产物,INTERNET使它变成了今天的样子".
今天的ACTIVE X包括:

ACTIVE X 文档

ACTIVE X 控件

COM

INTERNET标记

Active X超级链接

Active x会议

Active X服务器扩展

Active X脚本

代码签名

HTML扩展

活动电影


二初探COM

组件对象模型(简称COM)是windows对象的二进制标准。为WINDOWS提供了统一的,面向对象的
,可扩充的通讯协议。这意味着描述一个对象的可执行代码(.dll 或.exe 文件的代码)可以
被其它对象执行。即使两个对象使用不同语言来编写的,他们可以用COM标准来进行通信。

个人认为:COM是MICROSOFT发展的产物,日前MICROSOFT所提出的大部分概念都是基于COM的。
COM随着MICROSOFT的壮大而不断完善,MICROSOFT也为COM引以为豪。如今MICROSOFT 产品已发
展成为一个软件大家族。OFFICE系列、VISUAL BASIC、VISUAL C++、VISUAL J++都已成为
WINDOWS程序设计的标准,为了在不同应用程序之间进行数据交换,达到资源共享的目的,迫切
需要一种接口规则与协议。建立一个软件模块同另一个软件模块的连接,然后将其描述出来
,当这种连接建立起来后,两个模块之间就可以通过成为接口的机制来进行通讯。COM立足于
二进制这一层,是语言无关的接口规范。

曾经使用的数据交换技术存在的问题:

*WINDOWS API有太大的编程“接口面”(超过350个单独函数)

*VBA 不能在WIN32环境中使用

*DDE 是一个关于应用程序,主题和项目的复杂系统。

*DLL 是完全面向应用程序的


COM的特征在于:

*为WIN32客户EXE载入和调用WIN32 DLL提供了一种标准的与语言无关的方法。

*为一个EXE控件同一机器的另一个EXE提供了通用的方法。(可代替DDE)

*用ACTIVE X代替了VBX。

*为应用程序与操作系统的交互操作提供了一种新的方法。

*为适应新的协议提供了可扩充性,如MICROSOFT的OLE DB数据接口。

*分步式COM(DCOM)允许一个EXE与不同及其上的另一个EXE进行通讯。

*COM+则综合了COM、DCOM、MTS和MSMQ。


1.COM的基本设计思路:

通常我们描述一个对象是将其划分若干的方法和属性。通过继承这一机制来获取对方法使用
和属性访问的权利,以达到数据处理的目的。而COM模块不再允许客户直接调用对象的方法(
包括属性及其构造函数,析构函数),COM只提供一个标准的全局函数来访问对象。从而最大
限度的将客户与服务分离。在客户与服务器之间通过接口来连结,使用虚拟函数表(vtbl)
的内存结构,实现了一组指向虚拟函数实现的指针。

2.COM如何进行数据交换?
通过接口。

这个接口定义了函数调用方法,标准的基于结构的数据传输技术,以及一些标准的函数调用。
接口是虚函数的集合,实质上是函数名的集合。它是没有数据的C++类。是纯的虚函数,对
象从这个类继承,并提供函数代码,其他函数通过调用这些函数来获得代码,所有组件对象必须
有一个称为IUnknow 的接口。

IUnknown接口的目的:找到其他的接口。它有一个QueryInterface()函数,该函数使用一个接
口ID,返回一个指向该对象接口的指针。所有其它接口都从IUnknown中继承,因此,所用接口中
都有Query Interface()。


interface IUnknown{

public:

BEGIN_INTERFACE

virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,

void_RPC_FAR *_RPC_FAR *ppvObject)=0;

virtual ULONG STDMETHODCALLTYPE AddRef(void)=0;

virtual ULONG STDMETHODCALLTYPE Release(void)=0;

END_INTERFACE};


其中AddRef() 和Release()用来跟中那些正在使用接口的应用程序.
所有三个函数被所有接口继承.

接口的实现:

可以通过多重继承。但多重继承遇到的问题是:当多个接口方法符号名冲突的问题。即多个
接口都含有同名的方法,而不同接口的方法实现各不相同。编译器仅允许程序员提供一个方
法的实现。显然通过多重继承来实现接口是有问题的。

[本文共有 2 页,当前是第 1 页] <<上一页 下一页>>

·工程项目经理培训
·欧姆龙PLC编程维护培训
·杭州西门子PLC应用培训
·模具加工设计培训
·变频器维修培训
·安全员认证培训
·电工培训


·招聘项目管理人员
·首席技术执行官
·自控工程师
·数控编程学徒
·总工程师


最新商业情报

代理
[代理] 寻求地区代理
[代理] 电工产品诚招代理..
采购
[采购] 电动车控制器外壳
[采购] 高品质缓冲器
 我们的梦想 用COM重造我们的软件 相关资料
  • 钢筋砼预应力T梁预制施工工艺
  • 渗透结晶型防水涂料防水施工工艺
  • 厨厕防水施工工艺及控制要点
  • 水乳型氯丁橡胶沥青防水涂料施工工艺
  • 中型砌块砌筑工程施工工艺标准
  • 明挖扩大基础施工工艺
  • 实现三个转移是提升工程质量安全监管水平的关键
  • 工程质量监督模式探讨
  • 加强工程质量监督的几点思考
  • 质量控制中存在的主要问题及解决方法
  • ⊕这地方投资政策最优
    ⊕上千份机电行业研究报告
    ⊕机电项目招商啦
    ⊕谁把我买了?
    ⊕机电行业展会大全
    ⊕十万企业抢登行业网址大全
    机电之家会议开通
    ⊕每日最新求购信息
    ⊕电工技术资料为了谁?
    ⊕机电设备维修与管理
    机电之家(中国)工程管理技术资料中心资讯版权声明:
    1、凡注明“机电之家采编”字样的所有作品均系本网原创,版权归机电之家所有,任何媒体摘编或享用本作品,需注明文章来源。违反声明者,本网将追究其相关法律责任。
    2、凡本网注明“来源:XXX网(非本网)”的作品,均转载自其他媒体,目的在于传达更多资讯,本网不承担相关法律责任。

    3、如在资讯、广告等方面想与本网合作,请致电:0571-87774297。Email:donemi@hz.cn

    合作网站:
    | 中国机电网机电之家安全生产网 | 机电论文 | 机电论坛 | 机电设备贸易 | 机电网址大全 | 浙江机电网 | 陕西机电网 | 单片机技术网 |
    电工园地 | 工程管理网 |环球会展网机电产品网 | 机电人才网 | 中国工控网 | 五金工具网 | 安全生产网 | 商业情报站 | 图纸资料下载 |
    友情连接:
    | 中国机电网 | 哆来咪网 | 中国工控网 | 行业培训网 | 中国工程机械网 | 机电一体化网 | 行业下载网 | PLC技术网 | 变频器技术网 |
    关于我们 | 联系我们 | 广告联系 | 付款方式 | 使用帮助 | 工程管理网 | 会员助手 | 友情链接
    电话:0571-87774297(杭州) 传真:0571-87774298(杭州)点击这里给我发消息66821730(技术) 点击这里给我发消息58733127(审核)
    机电之家 工程管理网所共享的
    工程管理,合同与档案管理,质量与成本管理,进度管理,风险管理,施工与现场管理,工程监理,
    项目管理知识,竣工验收管理,工程技术,工程施工方案,施工工艺流程,施工技术方法,工程施工设计,工程案例,
    成功工程案例,失败工程案例,工程论文,软件工程论文,工程项目管理论文,工程造价论文,工程材料论文工程,
    监理论文,工业工程论文,等都是来自会员发表或 网上收集发表。如果有任何侵犯您权益的地方,
    请联系我们,我们将马上进行处理。
    企业登陆可自行免费发布资料,本站代发布邮箱为88ctv@163.com
    Copyright 2007 diangong.jdzj.com Inc All Rights Reserved.工程管理网
    技术支持:杭州滨兴科技有限公司 mailto:88ctv@163.com
    免费发布信息主办:浙江-杭州-工程管理网网络运营部安全生产